From 325ec0d0e38b884e61b8bc9363e0c2c131a3106f Mon Sep 17 00:00:00 2001 From: allisonpham7 Date: Sat, 7 Oct 2023 17:51:23 -0700 Subject: [PATCH 01/58] Edited subtitle --- package-lock.json | 129 ++++++++++++++---------------------- src/components/Subtitle.jsx | 8 ++- 2 files changed, 55 insertions(+), 82 deletions(-) diff --git a/package-lock.json b/package-lock.json index c5c1985..2539f59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -198,9 +198,9 @@ } }, "node_modules/@next/env": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.3.tgz", - "integrity": "sha512-X4te86vsbjsB7iO4usY9jLPtZ827Mbx+WcwNBGUOIuswuTAKQtzsuoxc/6KLxCMvogKG795MhrR1LDhYgDvasg==" + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.4.tgz", + "integrity": "sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ==" }, "node_modules/@next/eslint-plugin-next": { "version": "13.5.3", @@ -212,9 +212,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.3.tgz", - "integrity": "sha512-6hiYNJxJmyYvvKGrVThzo4nTcqvqUTA/JvKim7Auaj33NexDqSNwN5YrrQu+QhZJCIpv2tULSHt+lf+rUflLSw==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.4.tgz", + "integrity": "sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w==", "cpu": [ "arm64" ], @@ -227,9 +227,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.3.tgz", - "integrity": "sha512-UpBKxu2ob9scbpJyEq/xPgpdrgBgN3aLYlxyGqlYX5/KnwpJpFuIHU2lx8upQQ7L+MEmz+fA1XSgesoK92ppwQ==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.4.tgz", + "integrity": "sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw==", "cpu": [ "x64" ], @@ -242,9 +242,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.3.tgz", - "integrity": "sha512-5AzM7Yx1Ky+oLY6pHs7tjONTF22JirDPd5Jw/3/NazJ73uGB05NqhGhB4SbeCchg7SlVYVBeRMrMSZwJwq/xoA==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.4.tgz", + "integrity": "sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w==", "cpu": [ "arm64" ], @@ -257,9 +257,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.3.tgz", - "integrity": "sha512-A/C1shbyUhj7wRtokmn73eBksjTM7fFQoY2v/0rTM5wehpkjQRLOXI8WJsag2uLhnZ4ii5OzR1rFPwoD9cvOgA==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.4.tgz", + "integrity": "sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg==", "cpu": [ "arm64" ], @@ -272,9 +272,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.3.tgz", - "integrity": "sha512-FubPuw/Boz8tKkk+5eOuDHOpk36F80rbgxlx4+xty/U71e3wZZxVYHfZXmf0IRToBn1Crb8WvLM9OYj/Ur815g==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.4.tgz", + "integrity": "sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg==", "cpu": [ "x64" ], @@ -287,9 +287,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.3.tgz", - "integrity": "sha512-DPw8nFuM1uEpbX47tM3wiXIR0Qa+atSzs9Q3peY1urkhofx44o7E1svnq+a5Q0r8lAcssLrwiM+OyJJgV/oj7g==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.4.tgz", + "integrity": "sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg==", "cpu": [ "x64" ], @@ -302,9 +302,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.3.tgz", - "integrity": "sha512-zBPSP8cHL51Gub/YV8UUePW7AVGukp2D8JU93IHbVDu2qmhFAn9LWXiOOLKplZQKxnIPUkJTQAJDCWBWU4UWUA==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.4.tgz", + "integrity": "sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w==", "cpu": [ "arm64" ], @@ -317,9 +317,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.3.tgz", - "integrity": "sha512-ONcL/lYyGUj4W37D4I2I450SZtSenmFAvapkJQNIJhrPMhzDU/AdfLkW98NvH1D2+7FXwe7yclf3+B7v28uzBQ==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.4.tgz", + "integrity": "sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw==", "cpu": [ "ia32" ], @@ -332,9 +332,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.3.tgz", - "integrity": "sha512-2Vz2tYWaLqJvLcWbbTlJ5k9AN6JD7a5CN2pAeIzpbecK8ZF/yobA39cXtv6e+Z8c5UJuVOmaTldEAIxvsIux/Q==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.4.tgz", + "integrity": "sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg==", "cpu": [ "x64" ], @@ -3017,18 +3017,17 @@ "dev": true }, "node_modules/next": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/next/-/next-13.5.3.tgz", - "integrity": "sha512-4Nt4HRLYDW/yRpJ/QR2t1v63UOMS55A38dnWv3UDOWGezuY0ZyFO1ABNbD7mulVzs9qVhgy2+ppjdsANpKP1mg==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/next/-/next-13.5.4.tgz", + "integrity": "sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA==", "dependencies": { - "@next/env": "13.5.3", + "@next/env": "13.5.4", "@swc/helpers": "0.5.2", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", + "postcss": "8.4.31", "styled-jsx": "5.1.1", - "watchpack": "2.4.0", - "zod": "3.21.4" + "watchpack": "2.4.0" }, "bin": { "next": "dist/bin/next" @@ -3037,15 +3036,15 @@ "node": ">=16.14.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.5.3", - "@next/swc-darwin-x64": "13.5.3", - "@next/swc-linux-arm64-gnu": "13.5.3", - "@next/swc-linux-arm64-musl": "13.5.3", - "@next/swc-linux-x64-gnu": "13.5.3", - "@next/swc-linux-x64-musl": "13.5.3", - "@next/swc-win32-arm64-msvc": "13.5.3", - "@next/swc-win32-ia32-msvc": "13.5.3", - "@next/swc-win32-x64-msvc": "13.5.3" + "@next/swc-darwin-arm64": "13.5.4", + "@next/swc-darwin-x64": "13.5.4", + "@next/swc-linux-arm64-gnu": "13.5.4", + "@next/swc-linux-arm64-musl": "13.5.4", + "@next/swc-linux-x64-gnu": "13.5.4", + "@next/swc-linux-x64-musl": "13.5.4", + "@next/swc-win32-arm64-msvc": "13.5.4", + "@next/swc-win32-ia32-msvc": "13.5.4", + "@next/swc-win32-x64-msvc": "13.5.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -3062,29 +3061,6 @@ } } }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", @@ -3381,10 +3357,9 @@ } }, "node_modules/postcss": { - "version": "8.4.30", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", - "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", - "dev": true, + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -4572,14 +4547,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/src/components/Subtitle.jsx b/src/components/Subtitle.jsx index 56e68b1..b442f81 100644 --- a/src/components/Subtitle.jsx +++ b/src/components/Subtitle.jsx @@ -1,5 +1,11 @@ const Subtitle = ({ title }) => { - return
Subtitle
; + return ( +
+ Subtitle +

Testing subtitle

+

Testing paragraph.

+
+ ); }; export default Subtitle; From 0dc544c6b0c7acfa73259cdd1c06949427840d68 Mon Sep 17 00:00:00 2001 From: allisonpham7 Date: Thu, 12 Oct 2023 02:52:22 -0700 Subject: [PATCH 02/58] Add Subtitle --- src/app/page.js | 2 ++ src/components/Subtitle.jsx | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/app/page.js b/src/app/page.js index 7f02076..5a6c71e 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -2,6 +2,7 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; +import Subtitle from "@/components/Subtitle"; const Home = () => { return ( <> @@ -9,6 +10,7 @@ const Home = () => { + ); }; diff --git a/src/components/Subtitle.jsx b/src/components/Subtitle.jsx index b442f81..66c65d5 100644 --- a/src/components/Subtitle.jsx +++ b/src/components/Subtitle.jsx @@ -1,9 +1,14 @@ -const Subtitle = ({ title }) => { +import React from "react"; +const Subtitle = ({ title = "| Motivation" }) => { + // const Subtitle = ({ title }) => { + const blueColor = "#1151D3"; + const greenColor = "#80C393"; return (
- Subtitle -

Testing subtitle

-

Testing paragraph.

+

{title}

+

+ Rural communities are already disadvantaged socioeconomically +

); }; From 8f96bcce148830b0a1f342b08c1e6fb628de337c Mon Sep 17 00:00:00 2001 From: Kevin Loritsch Date: Sat, 14 Oct 2023 13:32:56 -0700 Subject: [PATCH 03/58] kevin/event --- src/components/home/Event.jsx | 46 +++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index 0bf7ebc..82f83d7 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -1,5 +1,47 @@ -const Event = ({ start, end, location, name, descripton }) => { - return
Event
; +// Color Passing In: blue -> blue, anything else -> green +// Date Start: Month/Day/Start Time +// Date End: End Time +// Include AM / PM on time +// Pass Month as ALL CAPS Three Letter Word + +const Event = ({ start, end, location, name, descripton, color }) => { + const startDate = start.split("/"); + + let bgcolor = ""; + if (color === "blue") { + bgcolor = "#1051D3"; + } else { + bgcolor = "#80C393"; + } + + return ( +
+
+

+ {startDate[0]} {startDate[1]} +

+

+ {startDate[2]}-{end} +

+
+ +
+
+ {name} +
+
+ {location} +
+
{descripton}
+
+
+ ); }; export default Event; From a438c4f2798f6a908c3b25d2fc822ee2516ddeef Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Tue, 17 Oct 2023 16:57:28 -0700 Subject: [PATCH 04/58] Added Focus Component --- package-lock.json | 2 +- package.json | 2 +- src/app/page.js | 9 +++++++++ src/components/home/Focus.jsx | 15 ++++++++++++++- src/data/icons.js | 3 +++ 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2539f59..51a5396 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "react": "^18.2.0", "react-bootstrap": "^2.8.0", "react-dom": "^18.2.0", - "react-icons": "^4.10.1" + "react-icons": "^4.11.0" }, "devDependencies": { "autoprefixer": "^10.4.15", diff --git a/package.json b/package.json index 1082d49..61601cc 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "react": "^18.2.0", "react-bootstrap": "^2.8.0", "react-dom": "^18.2.0", - "react-icons": "^4.10.1" + "react-icons": "^4.11.0" }, "devDependencies": { "autoprefixer": "^10.4.15", diff --git a/src/app/page.js b/src/app/page.js index 7f02076..edf8040 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -2,6 +2,9 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; +import { ICONS } from "../data/icons"; +import Focus from "../components/home/Focus"; + const Home = () => { return ( <> @@ -9,6 +12,12 @@ const Home = () => { + ); }; diff --git a/src/components/home/Focus.jsx b/src/components/home/Focus.jsx index 87e7723..9ccf715 100644 --- a/src/components/home/Focus.jsx +++ b/src/components/home/Focus.jsx @@ -1,5 +1,18 @@ +import ArrowLink from "../ArrowLink"; + const Focus = ({ title, description, link, icon }) => { - return
Focus
; + return ( +
+
+ {icon} +
+

{title}

+

+ {description} +

+ +
+ ); }; export default Focus; diff --git a/src/data/icons.js b/src/data/icons.js index a6a5650..8cf99d4 100644 --- a/src/data/icons.js +++ b/src/data/icons.js @@ -1,6 +1,9 @@ import { BsEnvelope, BsFacebook, BsLinkedin } from "react-icons/bs"; +import { MdOutlineHandshake } from "react-icons/md"; + export const ICONS = { email: , facebook: , linkedin: , + handshake: , }; From 7f19bd498849651e376b6f993e099e228825571d Mon Sep 17 00:00:00 2001 From: Kevin Loritsch Date: Wed, 18 Oct 2023 16:20:47 -0700 Subject: [PATCH 05/58] kevin/event --- src/components/home/Event.jsx | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index 82f83d7..2a663b7 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -1,44 +1,29 @@ -// Color Passing In: blue -> blue, anything else -> green -// Date Start: Month/Day/Start Time -// Date End: End Time -// Include AM / PM on time -// Pass Month as ALL CAPS Three Letter Word +import { COLORS } from "@/data/colors"; -const Event = ({ start, end, location, name, descripton, color }) => { +const Event = ({ start, end, location, name, description, color }) => { const startDate = start.split("/"); - let bgcolor = ""; - if (color === "blue") { - bgcolor = "#1051D3"; - } else { - bgcolor = "#80C393"; - } - return ( -
+
-

+

{startDate[0]} {startDate[1]} -

-

+

+

{startDate[2]}-{end}

{name}
-
- {location} -
-
{descripton}
+
{location}
+
{description}
); From 877e545f73e160e9b17bf51ef0e89a3344709c9f Mon Sep 17 00:00:00 2001 From: Kevin Loritsch Date: Fri, 20 Oct 2023 09:42:50 -0700 Subject: [PATCH 06/58] kevin/event --- src/components/home/Event.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index 2a663b7..d7397fc 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -4,9 +4,9 @@ const Event = ({ start, end, location, name, description, color }) => { const startDate = start.split("/"); return ( -
+

{startDate[0]} {startDate[1]} From c4e13096099b9d96e6ded8e763ec67b66e052020 Mon Sep 17 00:00:00 2001 From: menthy-wu Date: Sat, 21 Oct 2023 08:16:44 -0700 Subject: [PATCH 07/58] fix nav text color --- src/components/Navigation.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Navigation.jsx b/src/components/Navigation.jsx index a3b3ddf..90859c0 100644 --- a/src/components/Navigation.jsx +++ b/src/components/Navigation.jsx @@ -46,7 +46,7 @@ const Navigation = () => { {item.name} @@ -71,7 +71,7 @@ const Navigation = () => { onClick={() => setSelected(item.name)} className={`hover:cursor-pointer rounded-full mb-0 py-0 px-4 no-underline !text-black text-lg whitespace-nowrap !font-normal hover:!text-blue-600 duration-300 ${ selected === item.name && - "!bg-ewb-blue-200 rounded-full text-white hover:!text-white" + "!bg-ewb-blue-200 rounded-full !text-white hover:!text-white" }`} > {item.name} From a783ac074d28ab0afdb3c1880168354b2732df81 Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Mon, 23 Oct 2023 15:18:21 -0700 Subject: [PATCH 08/58] Removed Focus Import --- src/app/page.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/app/page.js b/src/app/page.js index edf8040..0ca661a 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -2,8 +2,6 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; -import { ICONS } from "../data/icons"; -import Focus from "../components/home/Focus"; const Home = () => { return ( @@ -12,12 +10,6 @@ const Home = () => { - ); }; From 06b3bc782a6e773d6cd2e497873eebc7f811140e Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Mon, 23 Oct 2023 17:07:39 -0700 Subject: [PATCH 09/58] Added Project-Header --- src/app/projects/costa-rica/page.js | 11 ++++++++++- src/components/projects/Header.jsx | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/app/projects/costa-rica/page.js b/src/app/projects/costa-rica/page.js index a54c709..f07e9a3 100644 --- a/src/app/projects/costa-rica/page.js +++ b/src/app/projects/costa-rica/page.js @@ -1,7 +1,16 @@ import React from "react"; +import Header from "../../../components/projects/Header"; const page = () => { - return

page
; + return ( +
+ page +
+
+ ); }; export default page; diff --git a/src/components/projects/Header.jsx b/src/components/projects/Header.jsx index b03dfbb..3675cce 100644 --- a/src/components/projects/Header.jsx +++ b/src/components/projects/Header.jsx @@ -1,5 +1,12 @@ +import Title from "../Title"; + const Header = ({ img, title }) => { - return
Header
; + return ( +
+ Image + + </div> + ); }; export default Header; From 7e9f0b0977ad80e40ce9e75e423c953188f466bf Mon Sep 17 00:00:00 2001 From: Menthy Wu <73259022+menthy-wu@users.noreply.github.com> Date: Mon, 23 Oct 2023 17:28:04 -0700 Subject: [PATCH 10/58] Update page.js --- src/app/page.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/page.js b/src/app/page.js index 0ca661a..7f02076 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -2,7 +2,6 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; - const Home = () => { return ( <> From d003e389eb55a5a162c23c95839149ae87fe9ddd Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 27 Oct 2023 13:04:58 -0700 Subject: [PATCH 11/58] kevin/event --- src/components/home/Event.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index d7397fc..dd300dc 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -6,7 +6,7 @@ const Event = ({ start, end, location, name, description, color }) => { return ( <div className=" bg-ewb-blue-100 w-3/5 inline-flex"> <div - className={`text-white text-center w-1/4 aspect-square p-1 ${COLORS[color].bg}`} + className={`text-white text-center w-1/4 aspect-square p-1 flex flex-col items-center justify-center ${COLORS[color].bg}`} > <p className="font-bold text-6xl break-all px-4 align-middle "> {startDate[0]} {startDate[1]} From ade9828fa103710ab60d9cff69c66583332e3560 Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 27 Oct 2023 14:59:43 -0700 Subject: [PATCH 12/58] kevin/footer --- src/components/Footer.jsx | 49 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index d62b37e..941d635 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -1,5 +1,52 @@ +import whiteLogo from "../../public/assets/whiteLogo.svg"; +import Image from "next/image"; +import { ICONS } from "@/data/icons"; + const Footer = () => { - return <div>Footer</div>; + return ( + <div className="w-full bg-ewb-green"> + <p className="leading-4">   </p> + + <div className="w-full bg-ewb-blue-200 border-t-8 border-ewb-green"> + <br /> + <br /> + <br /> + <br /> + <br /> + <table className="w-full"> + <tbody> + <tr> + <td className="w-1/2"> + <div className="mt-6 mx-6"> + <div className="inline-flex"> + <Image + src={whiteLogo} + alt="EWB Logo" + className="scale-125" + /> + <div className="text-white pt-10 pl-4 font-bold text-xl"> + EWB at UCR + </div> + </div> + </div> + </td> + <td className="w-1/2 text-right text-white py-6 px-8 text-sm"> + <div className="inline-flex scale-125 px-1"> + <div className="mx-2"> {ICONS["email"]} </div>{" "} + <div> {ICONS["facebook"]} </div> + </div> + <div>900 University Ave</div> + <div>Riverside, CA 92521</div> + <div>United States</div> + <div>ewb.ucriverside@gmail.com</div> + <div>619-395-3534</div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + ); }; export default Footer; From fc1ed88fa164d3dd08a749a0ac7ddefeb8594046 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Wed, 1 Nov 2023 09:49:09 -0700 Subject: [PATCH 13/58] add landing pic --- public/images/landing.webp | Bin 0 -> 41860 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/landing.webp diff --git a/public/images/landing.webp b/public/images/landing.webp new file mode 100644 index 0000000000000000000000000000000000000000..d283850c124679868b8286182fd0b1f719032a5f GIT binary patch literal 41860 zcmV(pK=8j(Nk&F|qW}O`MM6+kP&goPqW}QVGXtFgD!>EK0zQ#OolB*oqbH-2S>W&z z32AD=zh3`}|Nl*2wq;TFe?Oeuh5mmsHfr>D{x>>r|NS>)BEZ5Vz~y6&*HT|DAcB15 zTxZbJ!JxNjFaP#9u%G+ZH-F^v^Uu^j`}yJe&-`Dx{!IS8`!D~0;d`S0rJcX8`up{J z{4e?c|NrLqL;tsh|HS{x=Ij42)T949%X?4${)1my|AW&{{=EDC&;PGWAOE~~k30YG z@Bgo#<Ny5r{`+!`v#TL;dC|KjTA3E~q-JIXl`)b%dD_fqv42$Wj4#F~e1$XN{%CID zR0k%CXb0mgb;0!>-M><Vd;;h0U_qX<Du&u^D@c2>T^Sd}kNmc5_#WRox*RffgCwE8 zm{)xtIbCBVt$8C~&)$2FL@iYVh@L913mM>W9_C92rN^F*<bwm|vcx4Rkp)FZJ+53= zYs%B6vu8^I)>n<2oWJ-GM_$tJkBERsRz2<>7Be7|;Q_Z9Hf7UJSm!Q<mJsThU)UCy z_oovAjqIeH%GrExHym1$Ol*GDNO<;NKP-^`TUT(2bDJ9`5#2T-ubE{pl+M&kxZmyW zcR+<MC;0k)i>hw54EfI_5^G)OO7R%qChlvCqn#9B1=_WDb|CKP_h^FqLq<f{lLx>z zb6$025cUsg^*e%leD2Q8uUa^FpD%RX1x;Ej)SX#y)FB^?3WlqrvFs@CtrKL7gl_D0 zQ*>&CS+i$R(sV=+=+O=RFuRcFRGVT)Ijo!V+QdGPtA$jRuw?^Lag04KFuovqgBV8c zO5*VrlmFSc1v%s6DOY1iXy@F?7@2_#?-dw1)~iRkc9blAdzyvqOWbEKuNjS4)xIQ) z`9dlfF&tgI1x{@h&CMwq<*b?DPIioT72gpfac<{)w!w7)<@uHu3g#;7-)(A4%X9e< zZhNmW?cLd5hdyw}S}KnsD+f&hI>6tqReaLn{|{mah9M`$ilrT05@0P<4&3x6*+jOq z#*aXE878@kxjE5a7_&q-@sZ%F#<j`sv<b=hu0sstR6nzBaNuYR>dAa&UAGs%kWD)B zmDP&4tz^-ag%XCBVkRvWtYVF>m;r(u>`m6nt?Z>n`g%+qx2kw~3E{~F^SlST?DVyh z#F|?=<a=kb;zXL1^%d+X8)C;7linY<Nn7GJrS5i~q(b!~p)G$@?;zaH+h2;CG5zed z%*xT2D3P?{m6pMNo<MZPd6SPi3LMzmdfZ;ZoJtLP3X3h?-M*TC{tuNInu;rqj}N~N zG(4{@0Xze_3-$<sfc4nhYMJ3nUbTOB_^2QR*cEbq6>ZW>v7?KG3I3-tc*#8zT(5sh zy!3s6N}6B~Ten~84P!srSXJ@V_uYoly50B$kfjhl1RMxJT<vsW6viw|99O?7X5Uy$ zhDtWTdrf&K2N%Y%5;xYT<`%r7>Z1Pw66KQl^{MT%PjrR46?+3wAjG%@<hu(x<`R~~ z!=R-Ija7c>*<t!r>^GG>A%NhxF6PqDr04%6%P%x)-T}7P%|RjWqj{cfxinzGo%7xR zN(Kt**V~oDU44wYobw-1!rizmzCkmuBUoR(Vnzu{E|w$Gm&1%9u5$}1C1hLTbG_3+ zcnpGvW%XKpLSpp)p;S|?Ea*slS&nl9`ejBAEc%bjt)phUcKm@%w{8goyIJW{VMwe` z)G2fwlAOf7Fnrk-M>Q0LLsl|pVaq@o7#bh9@1vt3P~?%z*3?rT@Pbc4P(DSoJVN&6 zeGT1l&B7X0(U``(#;BH!Ox4!Q=^zU7N$p_K)lG&k-8w+!-gQ6qw6|{Hgb{~-P+a+I z76-bmF*FuoFA14E0-eQz!|uL*yFdDPuVB8v&PL2G$tur=2j|VXQNqk5)6_(^$QsZ3 zCp}}M51&tUs;Lx#7^mYqMFCBkANW6*EPhx@e8Wju@uav#rHzDOxEJkZC!fCJPHNl5 zrntE;1C;2Nj<oo6GuSh2I@ny-(EG~JsbnT0E7SO$<LV>(kP04d(b5O1#D&LhM@)Jn zF8MJTi1Zey0iiz8mt(A?P&(|#yBkpx4Yib|LWS2>IfU}A0X;>>F(tp--g)LkwBvYh zAs+nLe@cJ?vstLiZONI@Ra?NXo^f(oyIKZifZF2T?wOqh8UeucuDfUybTqf)`)3v; zM1s+zxN4_$x~{20<it|>&qOR-ljXoyY4~-C0c4464#BWE2-oh@#?!`(fR3+2l=uev zGnjH$m12@c{ytZAGP)Z5DhnEg#sCW*$hvm>z<A+FJWOEwzl4YIcTzNk8GDL9K{*Wi zqESmu9KlG1z-Vv#<CsU`GX`i!?*n3WHWE1bG)&wdPf2+MVH>p~FffD64QcZhZx}}D zxjSX9o^*JpxnmdGb6Tx#Y`j+AQGS5Ld%9_)FY%$W;U7V#R=Lt?d9#-a*Y`<nE!f*{ zSvOm}>HXH>nkVNvN*|41&&e}fges;a$>Ao8HXiv})=c9o=3d<hE7{ZdC&zm`I>W;; zq$`*aicP)r6-fj@tBtEj4f|L7pt19jlF%fvSv0)rrlSLv?|$n1s#?O72UU)QCqGuI zA0tohd*E;s<*{V`_+L)zD<`q1sBm8iq)rE_-jM<Y9hamN2psbuqa#HHJ@M{{>0TQ# zlTdf>+HM*w8Xw!~llXQ7I-(gThcQq=cz8wRy--BH4#rRynLj&!C@?@jj1*aPv9j{> z#Ld_2up@+su|cK5aV6y&fI3l_R5?<#iNqrRwr01aU|euX9RSbm6wY^(aqX_`Sq1U1 z^(s2KR8*F3TH*M^;RYVdc<A(9Z@sg1wGyge6eRe-RH!`53+Q1YWkRz68N~@W%N+3; zAdI+PQD39^8Bjblc<Bz!#FWsz*UGWEm`&%>ol$8@+C>l~sY`zTIkYV6r3?NiYmWye z2{{Zm<kVQ|!z_yz#Oz`{=JH|SmO%6uL@&1qF7UyY%whs=W8Wr!6LjQ_App@=Y-8d@ z8Z-h?T(-cy#YJgYX|ggEo=`iNa@F%~)hB^@tGQ)~q85D5N!sjQc+AEE>PuULx!kAk zyc-2zd!vgsC>lD5V9isLJ=j?)kS0IcZR%apJu&o`PiAp)<cv*N6Lqk*-8ImuTVN;m zs^Pd?l;aTW9ZG@$OT6Z_?tB3Lg4<Rr!|}QeHPCsHSj7&eL$A3ri$wx+T<^#y*l7EW zYFe+^OX}T@BA}4lbHKwcG80h$>}f@yJSVk3WN#<NR}OZ@px*PXd~#xVL8DUSy?z_M z$5;Ghol;Y$o8jpf$LDhwmc7dca5bef_4x&akvJG0__isVF*Stada}G{(2S^}^G|#f zLk!pCYlixpmc*V(B3!CMhsLI;B7)1|Z^Owpj_~wg>}q8aA%m}$CO2XWtJX7gX&gr2 z?D7B2sCv_8%1Xqv%1Df5pIcff^2_$a=(61`FKu;q`drY+%bjlR87puLYLQ<t1ZMLn zsD~LJH)*(z<g?;~wtKa&^ONENK<uBDk8NL;nxDZ#9K!D)O9}0IVTJZnuii_s(IdP( z<2ihz;*GmvV8~@h{cqV<U-RYCDpwq!Z=1+|h<RgWq0yT08A51?aCQ*=Tp@K-9AEtt zXf~p*cz_KiOBHpwC}?#|xF7wqGQ@^{X|A0s*+V2`Oij{C>MFT_s6oO|B3mQ6SL%6Y zxI@_d`1kEQ#}g6<9+Wyg-7J84FB>Lic9X?vv)=jy@DS_BLZ~4k&!)OtzE`Bb31N7{ z643qt8mvEJxN|KRtFre?IPr6#h7M>2`AK+=*8V0I&XI5^h>EES_6-r#wQWuuo=7Ik zZc>Jdyyp{MHveVtb2%zC(<f(r7oac6@DpDcAbu10wh}L~<)C*{ougd<guSpk7hJyd zVtxEr&9flmK(ZBY2@-rQ9r6IDtzZ&GS;Fjl3=RMg7DU)dj#dddp_VvW3|`Zj8R+>q zY*@5Ck4zj{=JeO2g*H^Ly@}2P=9rSK>Q3w7f@%4Nywp*)t(Fu>fMHY=i9h7YS!iHb zjF^Ide%q>YGX!CLi`x5#V$KX#sF39uYnHQIoU6mC$22b#Vl~JH-DhnI-NHr6sG_BW zonVQGnr0{0dputipGbIuB=P%Vws<0t)$2f?-T`E-rpj`#LsjXO(wPaWz5jz13Dp*5 zX`aPN%_9+O-?ht~GF$xjIVH@(3k~IvcE#Fm?m;wwE(J6FQ+oc(0{kqITUbLx<Dpz_ zPhLhIG7{YLaOK3>|ARPie*UIx&bWFOo+Mve>mh6IN_p^$dbu{PRyhYqG!bf~R??lJ z*X(EF%0nl;?>xgVhjm@>WuX3FzX1H%p|b!*WbNK^uh7L(fF!(r=zV<Saog6WuUApw z7AA>d-<a0#8=Vjwqnjw@;<F$VRfxTh0xxp8vj=jshmlm|U+wD$GAKv>CVD_5g`X2F z)bVpgLu1$H=c4G-_WENFCTtXvX8fWR!g#aFMb~ODY+VLRtJk0;zl*Sf5d@YGap({A z<%{@3-F8)mVI9EQ7f6&dvK|91?6#;Aq|gEa+Q1fo2u_sw4$%=Gh~u1J-XQ{H&8{sq zUxsOUhNHnm>m}+o6oNP8BDQK9Htsb-A<4c8$iG79shI>Z5qa582<PD-QZ;4caeMEp z=A{OfyhpCrgcFt=Eyq%1eALBSbhQy4l?mh~{=;*o^s=zQtl}qae8Jq+N-fT!ghMk* zR9zNHomv0*x$xid$v2<_`!e7z44*erY#BC>zF2b{SDG>U;v-HHUN%h}Tw4#_Hu}qU zErDp1VVJkK%eB%{78AbB?b&qD<pkt=p8xTqc1Y|>Wt@Ds<yXa{SPMd*IqCx47_g@4 zd32&WPG$4?lhZ5zN?uo<5F25N7NT6QORw})NC$+U9D2ksO=vQ_Lkv5w*cTRmd}nK= zt3~+B_igd3Dns^zc`J9y%9nbm$piuF><o1n(+3Yx(3~s;;V{XRteM)*3;jMFsB!Hi zNXo8>dX5l&4;PVxa<0S|Isg{^o=xyY&J#&usQL%Sn3`6k>V_l)U41=J(2knE6GN*N z@<h8mkZnoz%awe4t!#&Y2<<k*hJE`9I@Qdp2p#XmYAG+$jM9-|>JDUO7xMph56lE= zNS9x{bRvm*Krz?s@o1z?H_^tL{GB9&J~#1}-rDBcGJ$f6-6rU*;{Q!(#H!uLpIqd+ zr552|aTF5X=Y#XoKC2jb&1`jm&+H|aDHJTk(K$w-65RcHnUfCjGLe*6q=-@lY(ulx z0~2DhQ3!*dCWSs88aC{Q<Xw~Vrx(H`aO5hY85bhBMA$z<rg7-+%3kmd^kJUu)4ClO zDXIWx)RZQgPa^j;7myn7VIRfs;d$y_reRJTlPiw}RrVS#;FP?ywm<vLR)ZcXek@$C z@NoPVTF%hazdK_y52_e5?Ssq7VyubM5%7xyJcb$wur-G=a^goa!zq~m@P+|ZZ4x|z znj=af;V4ywtB+mejq`hlcBkcBgWQ#R#eKJ-5WA?NL=TKSdtI6qu_AH{DLV8AAx~C& z);(=pXJaKzZj%8_4uEy$p(to%OPOvV$y5FdHd55mt7cJ{{b6tY>pw)AwgoQzCAUX= z1fc|>2XEg!e|QYr;_6Lt?l74H!ZO@>#0tiB`szVBS7D(mwo;%eB38{FI&PMqP48_N zqn2cndXOjesb%e-GrNvjo;-6hPHjY@rK(i^C@}S&9awAlXMwSkv$BA)Y0FNWgDTsC zWA-9qR|!<ZO}XNo_qYOuP9ZJ#jM|0sR0Ox&)EnzkCJv{HRs|(x!_uUF{CHnrbawbS z-yDLDW?-zmO88&2qc7HiIu$!_<m5!0ppps>*5Z2?qL;y7Z~hOUS5X64=Oe)di|mXo zc=@O6iQg=}{-7zUl~faDjx2jqc9>4>kLdyoOrXb_r>b*Y>ywqy44potO;nYyRDyGN z`f?$n!C2RgqBnB?L961zncVkOhuyz<Z5s+Ib%NqzzCBF8GNqcsO08X$ls7mP{!Xcm z%$NMVPCZytWHAXTP!w%_+m-f?xC*Yn8_ACVCe=m+{U4**th&TMD0g}~(~iaLpR#`i z>+gMZsB-QK$}94cK1V8nxB7H1XeZR&nA=WXj(LZEpv10?UvTuIzA^jU)TT??OiovD z7gbf3mu3b*lS+Y{u&R4#m+~3{J=4VZ)v+aQ^+TWO#zkgN0RRU(FjAcPj5uhTwD~h* zu}0%DrQbPuLp7;}>|P)O99S0{atH=bd!UA))Qk8F&08uCG!crM;q@tn&@qBk|7Hzf z`rfB?w9tR+Y2VWPripQJ#lIC|S+PYlJ)>&ZrD97LLs_(pa9sr-07HcZbUyrc;{SV# z4%!~tS4WExNM93;sXX$Rz0r3ZcEgs8)b|HKK8iJFz2viS)5gtYCPDd2#w>RXmE23d zU-^kq_i8r{-A_ItAz|hcIFPiI_#e34>{Kl!GU!rK{+|`Z|6s}X%@daG@G-a5^uorG zrzc8+6Z;PjU?jA$+?|#3iXMvWF<}1M2t&Y7ObNH~n~G(Mz%En9&Q9r;phdw}>j5rD zs*)%ystBUNy0c@`mNsA6;O~xxe)$dz57OT2!Q?*~VS1uhFVGt9W(=+q0cMf)N5=;| ztKQ!2<NQjOa)q6WFqd+70^|k9m?T$6aIvPqW7>>SU=?Df_n{L>ZzSf^rdyf>Bb!XG zu~l-44B~%fK%J$eG%@q^A)@*qY#5vb(dE`SB{v#y5GAg03ExNEU?!D1bPlLn2EP>& zJF0r#Bj-#)m#WZXE5Q$MW>%Olk>MNqY(bWK#6=(n6t^4%rax&vv|z-9To~?aBn-Hh zyk>KW`8w8Pie+(rh6H?ZL=>0Rc#bN}>SS`l*_$l;Ulf|nmEwl#X7zQ})ggMkZoDBQ z{C+dY)Gr``o_RtPV^TD{6p7*&!1;CyOVY|hiiB7i(%#(=ZdL)wG=ouZm1;y%HZ$Z} z&U~xTHqOVavP1Lsg!0-?1N>zHnJbaVCFg*G+O_AeLLf3gv;BiOX=IaDv=V(-zc40m zM&H}WrH=dp(d?v8pkkacPaTx@E9()q#ChT)fGab!5@FDU<Re3J1BoP&h!rM`QWfyQ zJr(S~5}=WMrR`~kFJE(l0l|a8!67tHwD68V<acPr+|#YD!GZ+VcOWHSKZC#}@?T}g zr3_7e7@xY83nQxtf|HPSVQc^S0>t15i2WAm9HD7T#X|BR4VCTjRZhi3l3UWc+!f36 z;H;m&GKo+JCSR}sVrEe@0lFN`objKdn}^0B18G?;ekH)&jip{8LGAYdXTw;gRW`j} zI18D)6a8{}l!LN_9l9KO&%cEax``@b5fn&i5GYaKQgtQ2%{Sm#_Eyj`ny2bwJ=_=Z zg>fVRa2v_cL}Nrv>HJr{LP+;uuQ?vDLk)-Iqo{`b1mw<Q%aUj*)yhjphcb+4pRE4w zk#3mUrFLD-WmWtRE&b#^k7goCNWv3g7^v9om>QD;?_&(?D|>RJCG9^j$-o1+tnhUj zlgi$k{Ak<?;oX!2%nzvu&)mbhA8&3p$5y&FqzsJgB?P|<q-hELK#~}Ws8F&+lx>kf z1h4)Ankxpo_y2*=>cCK{Sf`Cqa}#>MSNo5WO{gV+-5TTEpe>V<-?-vYBLUn3HTOLr z;@+@>oEG7&=*~66tt4302E?bu&jU!zDvkp|BhYdeccNFJq9#lUg9!~yJpDEUG|j*} zA3<2WtQaOvL$)nx(HL4Zy*i-#gdC)RnncRFwtE`imbfV$S0f>&(NnM=E-dRQ7Y%H+ z`oL1bkJ4qrJWpgPXvohQ9JUV)%~D8@@)zc#0Tpz=*EUX)IizAap~t88F+Sy|gbHO; zX5R<b9Cv&_tmEYUCFq^JdVP|OrPUNX&BXP<3F55wL%5|AN;%#7>J|?eo^59}rfLP` zgP9~iaM^5G6}$Wec>!7c>5z0~rlH8v-LT6W(T^8UpoRw$P_Cri-gIVEjCgbr@{8{q z*84VoFB7;ci5WXKP+K@mLJc%+%cs=`3Ps6M{XgDi`FH*2<l(!gA4yjxA~gKHLUhyb zc;F1NR#H>gDHO6&>Ka4eT|bRP@Rgm}LQ{5Z9WH37PaD&^a8;ZNTK%tFGUQDP!D3nE zkmr0YL=a6UDD=72`H-dler-478hwXao`~wDUQZp<j{4-5<miI_uW?TRdtJY6IxH<c zs)asrU9Pn9wkYBaa&vAB#qaNwewa`bGwp5X|A8%9sS&zsmljig`j)C*{xMR*UIDq1 zlTB7MakV)iZKGE1gXVema!1;P!uisDsY$EPjhmMk!Lij)PS#2UFb)~NznSD93f2aH zXa+nrjN`>&bus1GI~^i?M5-G?@v)?RWXtKxg}NAC`N<><RS#MHIH2IOX^9ylk$m-Y z(te5#6$KuGCTxANnri|#E|^z~!iUAJyij@lLlII<T|VxggA+75Ax9$dM9`P%yPvtf z>@B-n;sR)l!p_=L$o%P%Y@AoW;fqIku*1;SrKeYTI9}@zx(E?r5eY!Sl4h$k3`?vI zWqz6!?<bur>O(YI#eU{=)F@X{Qj#5A6T7!0z*&i)*Z<>O-gOX~2)DI%;#pNopdT!5 zL4WVWehphu*8MWB;k-S8Yqy?t(C2dG#>;ob5LIw({teO)7KYgYwg3SBsNn2&C&t?* zM1{ZZFpt%;@Y|lEbZnB12L2+qbVn9oRB*p+NI#kFnWi&Uf-#b2t$x^IkhyTAkWMy= zNB3L5%_C)7b(y%%fq$GAUrOtYeO=t#kl5&=0r;O_?%xw#;>LAuf`AMLJ8dBG6CrS& zw7XMX^y9OV-ZpTvoC7ejAuGvA$i_6Z9O=ga8tDTi>MVDJj7)pBIoKNI9+riT;}UK` z3-(&RuQMkEWP|&-<W~I!gY6yVC^(tfc1O@jpx8he;=up$R9H&3lDw2JIrz$tXR=1G ziwpkqYD57_hR@=`p?>J4kZnuEr7c7uyD<7S{!ReWx~jLqBfnWZ=nP*MluFDi!^h6m zX=aUhI0q4-3lWc=vG15*inGi3ZDZ^BRkQXk!_o#z9YN`pSt#*ikO29q&}!vvTmr(( z4Zi*|lZkj?(Etn@ckK0m@XM+ESp1`B6(g`yURtPQryX0X(XonDf>>5wTlT{#4VtDa zz3gfV3kyuRX*l(ay1E^RhxrgVD|4_YLcYQXPRy|i#UAB)<;Z7r*H~#CC=wxnVGl0= zW~jM3mr^st6j{-%a@J+2Kj7kAAf$qND0LQ5MM_H=n~O~CijH_@90W4=-$d0G=cq2# z)q{03O)ay{hNjr~i3eI?lijMQ3n^+efuNUR0Y70JCEcI^0Jpdpw`2kGj2a$$rPp)| z6TE;5%%b2YZV?V9gSd(!KQ7V$^`!eEg3XDSmH=D}2N&^u#S$&1cPD^5L2le>+4IlY zMrvq{04dgd(|uPN_bJ0^PGuqF3BotS(Ujzww$kgm(b~s`7?D4~DfL?)oxo&b@UbaE ziRoVgn)r|5B*|&D;?a)jyrqW9#y<EYVv7Z7{5F5X8F$LEw9$u04fHvB;Xsge%0}JK z(L;vRQ~$>q!kM;r@S<!`QRYBeP2Vx}A+_566(S^583Vu8ceFjkdM8djCWVJ5Eh#fg zyqDO^9!J9rCs+_n1=Xvkz=*$u000R4LpVX|o~UvthUXFHvh!>{oCKi6YBlPR%JoY} zz2Ld?gTP_B$SezuLskswRVVt^QeOWs@hB98*q5nxeb4RwP1L}j52ZU>Y*ZbvTo)v6 z_MeK}r+2~f6+wlL2|=llk`Y`9cjv>>$ca4>UNJGD(~HpJ$Paxmxd`l_0>hBSq*nX1 zOmdTD4rdnK|B<wLg|66Z4UW@)qfqEHU~vhpyhnRt)(>PX6YGVj1dnipV~Fpj;^+BU zoG^OES~~zNz5r`}C}^~DyV2;(0fM*_+;QvzS$z%#)#Zl}LM7U)3fq&@*{74hL|IZR zf6^OdX@3Ok#2bN;98gKH8&gs?RW-v%yCE<o6>_}<84WBY%5%J`MzBGn6Bopq^x8hq z`Q{QRwOK%@Ip_cf)@K~qq4`eYV5}n&BF&yy)j!U)62h4SBcK3cJOgtzw2XQv%|wqE zDK6TgdfeaHUq?s!4<id}BUO{sMdkr+$S#H>i4ht1@k`BKaa`0I{GoZfZb-mg!VLr0 zVnl|csSyY+!IU8s>1q8h+C!MlihPZ!7pm5&DA|&Gg@GdX|CjesIA15i8;p_Th#Xk} z!9fYsaiB)zMW#p>I$<jYWBOSzT_Tm-n80H){R86i;uP49+|&N*2$Ii$kN^M%1zqlW zHegn8@bLjIZ!0@-v{G1YPoj040!7+nQ0+@G=UOzWiUSKY?FI8svt=UU-WZ>0y&fI% zB-R@`$K#mI#h5Hh%_#KLEbQKwa8y#-U*RH~#mgAM@psc@tO1sZ2pW1p4N8&KPCsws zAP73nE<6;6k%l>-j6^FBLkqx5|4KZxdw}FuiS_|YVtR<T9-RD7b3wkPavY->67=Gr zGUR+j7bV(oQgB_*dYbY}UKoB3kweFJCEySvkW^#Ok9(|%)-@kb>$;WVw!9xI1g)oP zeKb)b{-KyAcelt9YHf%MyY}&aGe2r{)9ZJP27q7kD7?K5`*%rTc+UW`6BaGz_fp|& z#wW>6IFJp~w_;MQc5PO0QH|1FvC)+VzbiG;XlzP$LiRLp%H+^5MS{o#0%6+OMf*P{ z5j-)I&bOg3=jNQnzvSaC=!uq8b`8ojMm}(JQGY4|_x8#v?hd8m!@I)D@(_QrGag)U z%C**nN`goT`J^Q}&Qps+0mK^tZh~}g2$#23uDXovNfJOQ^Y@M@F1t&!o4KJZ+iQPK z$rPu!vY}LUA!1bWSt+j?_FesqG2c)KZb<9CVPY$z+d?jgBA&!)UrGc);?fC>vc#?f zZuZfXmH~i%PQ|dU9O11)xr>FIqzKGK>8$1yCRmwuCdn!2jaCN6wGHamZ(pc7avs2j zcu5XVe3(EmzM`PCcztlAtf3fna}RZL-BSlmPtg-$zHHDCY_|y%A+)OP8Z`8B1W}j+ zx<k{^CvOAieq7NELJH{`s#ZsTbmmVr6AokKSr(3edv;}~Z=WT)v$4y}VW~?CL8s~* zb11TX8H=~?DqaPaIy-^H!6EWhp(mdioC9wQV@to<Ud8CEtZW%wW<crGLoeTut3-$Z z0ZhxQ;zUdi@AZ18AN+#gNWrBitpbEYQ`TmV5Sv!N3QgVF6Wy(r096~c6@*pl`LnMl zrZ*_E^a#szg~yx^F_4mp%((kq`2^i>a?yK1X|&vZa9JCWC!ziS+r{BU_bXVIfVA}Y z7(E6pu6jCMvEIQ^;_tUCStb(1OQ7B`;`2p51l6qhjzvq&XvhU=t$<whwg3cASbY>q zOjg$J<+20?W=QmJlStg<xyT1`CIlp5H`!7>+`NLvx_Z_@*aTmZ-4E*W%36Ovo^*#Q zL^L?vBeDG<_JcmV>FrGkM_j*TN(B_VBEG~bhXCZ;G6C-wu#2R6__e=**SiX*5O6r7 zD~N_tDXg252_<#f#;-7%e|2)z2ohE?0=P`donuF}U$bcrQw))H5G{FSK>{D45bn9M zG*VTq!ao(R-hP}VJ@-W$2ME=9EA>`XFR`o0fngDu%k_p>*NY^$^MLtdu>Cisj$wdV z<Lc|j2`IfdQm3*FTo3DLA=At`YfiE>n3V+f^OfKqPPFf!F7dl>;@o~psc8QX>f<_Z zF~<g=y{TC4eTVO4Ss(_vXoD#{0ccHd$kQ2z&fR*!g<=E67$T-<qx5&QQ8aH0luA<F zT{I3I9X-8ZU3gq7>LSDntTvY>WR-wC4}PDWyH!QDIBk5B=V<t7hglQQ+1+(X%Sp+| z{UnA^Dghd@vnQOyoH9>Sl^ezQIt<fw9A_%AS#&Av5M!G%^xxL-mSCiS!3#J!0QoZD zoA<uGYMk92Ub+<fqe!JenZ&QC9~I-+pxoFR(ALNWh*w3%Pdi2>1bdFFrl(?Sy|t9< zdnf&$?_mi8I2akI{YqCNbmRiQ^s9H#>ry3rtGb|A6vfk=qm94^kx*RZMXgvMO{+)C z7D$TrxehpvoF`W@t&|W;pB_LJd$qqK%@yXAd;mMhSkP3jm%u}Nv@gykEt1K@d(sP} zs$5oPZ<uEkfl3#Lxsne$80&YL8Ex1rhSRW^Ujynpf%crbkt!eOjD$00Nqt`;6+1e> zI+f?FOt`ZPnVf(n{0dm3l^69h%Li%#Ti7J!59(?*(ku-&O^=X{Ka8%~-_UJ@Fv&~Z zpDv~*EVf*)%xb0QT>h{l@I!BTLpE6O=5Kdg$#%grmA98J85`wntMRLq*=M6ZmmfH` zok-WH_Of5?(MEO{wY-e6lj;ggM)e4p`Td{B+-@!37;T>vx;JlUd?^4cS*f=X#WIN_ zwg()UPT_JbWvHAMbOI1@S83+4p`VBUgWU2)=a)VC;Jpx{feG4R;A%oiYeq_hpY$q@ z$oaLQ8Av!o9D8p0>@7Q|@LI@oVGit`QmQ&1)9K4Zr6f=`pe-r}Oy2tW9B$M(|4Z_Z za#%6LODl(Zpd*v(j(#!4xpbc%6#r`!<5hwwv~2Z^Rv1J(==y&8m1)p0rh2JyMCy;9 zfi7V`#g-iHeMp}@16uW49p%{oAK)913)uChz@n-DAMt~;`ho6Z{LA$D^?i&7XEd9% zqx)Yn;+;#i_=r0Kzy)rjFgh;E&2-XTZSJo*AG<?7RnY<cu}*T?ow5<jl<PLYD##k{ z(tKPclmG<9P3}onFq%*j?iSmUYjTcod%<I=>xr}h*qFV(lv}GYR_BhkKcra1HQvhH zni3$~%KO6D6<9{~t7I#9P`@yFUJudLK@mG-PPFTA9biaeKMeHB9{{LsO%a%;CFX-D zG29Bxyc{;h%pz;Y(bE?R24Bz4F$b`Kds?0R3m<YcmxykOxm+Dp9nBR`U2>0#?<z<Y zeVjJ{0tXoO{q913oXod{Wqrw-Q~63OWq!+uXv{>T8U}7?e79)phN&5<aamfw<e?qr zc>;1<pGwl8&)rB|8rycS*?^M2@Iw5fV$rw7;bu6^^bZ-u%FW&24icx9ZesE7!8lfR z{{fR{ydOk^*|N6)$ckhbB74_Z4;8;4LMeLVv`{fF5(4UG_LJRkjg&bZ_FXE7C0K~` zf8FNsmN;P%QX0cN(jh`2uAXAVrGnpd-`m9n`)%a{rK{POnhIE4mhPHia9A7okaH&Y z&wzx6#$7rBHD&Ze{lN82F^s;;hPP4N9ZFmO5DkT!wmSQRNRI3Qf<$0nAQ#*d29-DS zFZ%%Hz?~PNL>-2XY0sJ>l)=GcE93qo^u*`CmZn(dS$nbqy*-Bg7B~F11-YfXQx1Dw zs6+m0QAkYuAH5)aA2nNyJ1Ge*<F8zn&UojY)^jh?_!+H6c9kc@aZy+RJY<xqkh-u# z^`s5iLXnF(N_qmy>s)1@frT=;b$kwdB8#?)&4FBT+e)RW9D`w|5J%rE7F<uST65kp zsrw?N%siAW($LJ1I6L=Pk7H9h;psu-VlUhaZZD|D6rvfV_QMB2g|k!MwYC@UVXwra z^(a9==4DtM^D0awub=}4nXgZ86bs{6gRvE&c0;8U=Nl#H9muij{w-BZk?2|1k?m6i zs6e(avhTw=x3fOKyROe75%Ji6*eYb*_D!aXc8hvWFy3!Ds`Rh!)T9&3MWwH8gU7s* zGGEK8Ju><)Y|o-GWZeQd>Mkli>IC0i`HWQ7*&6&NmhxFADxJf&O(6)G=zL~2E&6%e z#nQmv#DM{Q*=++zBt6(C-&n;?{Y^GDyy%~KuBq`XfzYtcyKD>B+^Okn3nF;@ar8E& z5mDDee_Ae*$ApmoqA?zHP>3sIzaE+Mp>XHXkItV)_6poD5xMbn4fg;*0TKDH5D9MH z1mo=q-ZM>e$~H&U`V~URD;{@aBxq{NKNFZ_+XhA!PdZwniA#{F`*sK<k}6!en<s(7 zl0UU4j)OnWoB`(FKdt-DiR=$Madc;d&GaM-%0kSj>4Y8@<B{G1^R_T;-N1BZU|C2V zwK{loAzc9E$H5Nnjz8_GH|cxd@X6kdS6_fXhY7H6dmw#OVe<Y#)}wJpS@rDIw6azG z@y$5<ql}&c^|D+ap$y&4F}HB5D?8nd3{0LfvGTA#9!&Z3ya5IbXqS~<k9zH}qrr=I zFF;k75ljvQx|sMyoFoJW<;UPB*=b3TNATa6n0f2tQ|a92FNR{Nh!Wqk-S5xnHI@>6 z35%KAS`M5WwLM?xt-3h<hrjP%WF(tiXSUeNsU5=f&{|E@i4tuR>?V4bsi@rM_q{d4 z5@s~U=VJ;g78478<kY=am?A?FDM~E4mpJ$B1wnn?-*^eo2kAK6_VnAmZ}S<cPWP<9 zcEa%cJsp351T`f^?)mFwKxBTh+Tiz~qFPLB0XeRuFuE!g@JAdO;ECS?@mO^NAR%FD z>L*$|(+la%p~~srThzg~c&NsG=*Bu>5HXsPI++fDh-TM~^$%fZZbg|C{xuO6W5+av zV7yA5m^-dT>fh>cPMJpxco~0j$!GrraOA3nUx{lsd<H(;1UuJR7knvqeR{7BQAYZ- zOekePgV~M1H06%^cK%34U{t^94gQ=&Rs7S=r+`QMV07XtCS1(}P-6}~axNRZj-m0t zZ`k=5Ws3`UzM03^jC^1TnxAq6qM~FF?LzIDFTltM1zr3sU`#Rymw3mQhnS@~GikGk ze&T?+Pkdi0Sn*T)m0W4kOvamLcX7RpeC<UG#CUa|f8X4*Bkyt{zjW}ly+2OP52iE- zJAV4K-A4>cbA^3l)MHz^?9mlom$La?iU&t(h~&+dY<Fi|d6?{`6<&)Xp55@ANz(q) zKmp%_+hlcqVgFpc>^Ub)kSui4#=gfMHw!7L+e_{Qk;fbV8+(&zlzc_*CIWm`P+-=Z zqk@>=w?YoTe@-bTg6iq(tMsV?Ukjzf^DcNyeR3!<XR^Us#`qi6$>_2*%MAI22=I(} z_imGV$VG|*lE{{oj0<Knz?j)wPmNKrTz1tHC}=$>k`wIWXzzXf5iO!_(hT!S6y7LX z_YtUWxD>s1{RLdBD4|VU4!s@4V#QNr$nN{s=$0cLqOyHvafI6`cLJnRsm%6&J4jPI zkU!RE{9g=kcne60t25G=kU@*)igvhR)(Ebcr0yS@JP^&M<~A$iW{HT>9O5RJrQo=w zafT^q<cHWzK5V62ER!53p0yqy!L|ez_dFo1C^**+i`w^>sa#iwuvZEoDB+&v&3T;| zLu&`b%9x>Fe|C(Mh5ot+3JT^_ZB=$*B_S)*yBh-HyoOWQ#(h$4HUA7>9ki&~(Kjzr zM><8!d0EX>YmI+a+04~W$+*6CE}&AkIgxKZ%XimQi6=z(_y4C>@>{`u*D_$3{*0UU z6>f};yThtI>A!hYmO0wGWXvD==L`4_rs=N6Xz$3N5ooe(jd6s|>K~hd^xQki1%lfe z^$=tx(iwTo+ywj*+C<Q$1P=l@1RAfI1G-M7yU~t-0$qux#2A9L;_=!2mDU9y6pA-< zl|6JP>qX^E+$X`LEA8%l3ACOMC9kuxC*hYgtn{!EEo~9tBZC++N|X6f=Q}K-UBZLt z<o+FEP;fjK8E9_Nw=}`7n%-kbs^59A153N<rPQT(J>L%}VOtHi$mi&d^@c>3uw`?I zHW1{_7;L&$<sIjKbE4|3R2bN#iE&cB)iKe4(RQ=H4F(f4Q|FhG%<u@R9!Vr0Kv_kN zhAoAZfBL$vgX9x(Xn`oUR|nA=mNtZsJmOmOuH;$~+Boe;thr5O=bI`-e8$bl7vk5! zz0m}$bK@lhFB1#cWm4dH>$EzFL6?4aQ_0JZC~h;8A^|%K;3QSMJEj40&4_Kr5Ui(C z&f(4Y&?C0F>~wf~H2P4_*f(#WkJL7sBvVR|t$^EFASlC(Cnh*+3l0J+{6(E!e5pu| zNw%x4>#Anu@a!<7;;5yk(n=vH3x5<?wWzgvilnVDUM0fQ3FBG7FP=z{@b*)XMa6iB zZac|K$N>+cyhw`hWF%@<(n65~YcrE&@YY6W%>A|Y(1Bbfp>W~!B(lxU;(O47T>ZAS zq6OnzV53`mPIWGJQ6rW3wk2!bf)~rmg}~;pn#%dna!;fy5vy;S_t#2K6_spQt><od zM7D~i4YyT{NtPj<Unnxka=Kx5T5+WnibH?cak|74T={J{dq>)rU)aTJ)F6W;sApJE zFM+}nwIRZ8M()yMROO$5H42^sbWB^QymTNE0Nn;JZ2l_&XLU>L^s}X`a*-yqq6?ZW z);ECRalUYAAKJJj%cZuCv-m#GzDHD0Y?8MRPOQ!;3G@ANER0hvS_&&50m0iIOVCj2 zv9>;V=A;F`hHH4uI0mz(7Nkgc@f{rU*uW+C4X0Dft`uyXv{F!=JPl`52aLguc$MH% zT9j}*tYgqfl*<p^C;=$1Lah8SzIRG2O1Ve2&mcFbK%wy;t)|N`QnPugK?)ULEfQPZ zUVhl3-4JX0!^C2S)_wXd$CD4z6+k|Oc6@BB`(Zr{0H6~hpHL({XY{mo#*UOJNT!jC zN^0nbVHzmH`EO3|yP+%^uf<ON6Gy)H`8`<DDGJlxN~^s;Pp%iW2vpL~;q}u9j3rYL zukT3HWv0w%%R3LHTt76#eg*|qEqXbYTDXj~dWRJP9<ylfnkTiLLej5Gslp364k+YY zbiBA|?M1qf(nS_M1e^|Mtbli@n?$Xv<}x#I{*_TtS;)67V(gmzVtiOX4gX(oIY3U1 zy@dNZbi)=bCtP43=V%xG_|W&KO=829(-N2!j;N8C1`%M0N_gXdu2&^xHz9?3V@_fX zlBmD^_CUH@%}3w&B&+_FsuyceKon|#gz82y`(B29#r{YG*yD%^s(m&;XouYS^pN^u z-Yo&I7zTV-l~{W^go={9FGn>2@Q3rs>|!+ER#kHHFd!J3Eu@*K5Cm&k8aJFLB~89t zJhW_?g|Td|9WtXEz@se0O7!5C0za|hYx<@*BN70sZ#=LH_DQ>g{kb;EG<nH54EVlX zr9bG=NTlc~cb7;zpQpb4ZE{7O1%h4udtyfVVPj2i*oR6t*4Xm0&_u_59oE1NmX}t@ zn+(x@>?9BYg+(9|vV_;TT-IUP_(q83hWVJgldhj_(At+K+Dr@<u6aF*>}0+QyeK}S zO{YZS!1hMdqr$JCQOxFqs~~VdYh!laT~&#G>lYyTAAk?9V-3n%>)ICbcsWRm8kbbN z0`e!G+T2yoataFg*f@U-t|?Kh;UqMn{qakwVc|}g2C28nl=KxSS$d)#W8TK55w6t? zyc>y;=ddyCy~?n%jtajO{HNuG`5vI?>GkPXFU}m^ZkeDQpnwRqEahsDqCHa`EcjO; z<9L*+gN7H=K6hp6$&#sF6+y1KL*$h-v(hW|#6~<s$OOYaujg_ZV5K1iD9X4!XkEe= z-u|Eemb|Gi!W#3EQ*@A+sgUD&12f(z2Ca2Lk~H)%ktV2ZuZTuH*edzNMet<t3UAkZ z9Vn`WL6|qb?+chrg2n3Fu;&m9QW{>vEO!@SnNpya71>sfC@caT%Zu&pg5r}6B;&H3 z5*!MXSwNWh$^vd#w1Lvgs4p;dhAk|nE2Nj4nBG^wGjA|>HA^5Bd96tKH}X0PB`b&T z)j}53_Gq?sv>PC|LvBauk>(!lergl=I3Pb*7G9FR*c$X?rwZ^y0VlJe^BAuHZvtF5 zBK29e)htIlsu<kK?%obYeLl`eoam>$dv)Raib-1`H@$*;8Wd>%IXamt1XlcmVPuGb znZ#)Xj_x~v_wgyzEAYhU@=OIM_5X{6g*Y+|ju1KB^fkzB2nvEVUc?Ls)%|OLyU}+s z>5Pt!Zn>SwsS$G-<sN(W(>8)%2f;Id>Q;kyRS&Vw2Q^R6as)2jE*FUdT|BWouAOkK znPf7}pS;U3fc)nlyn;&?UWzXV&;J54LCCn8L(u|NU<ET4)JGllmxO>f=*gs$zPF%q ziVsmwN1{I;UxRS@702*x%bv;iQ*Il^x(~E)=~<f|Bo}+R7G-(tt+eZoYe`=8#eI@8 zTZ;EJ+TZfu5DGCy5p(E6wu_a$0oK=$Ui{i{d6>k7-Fi!36i04DU*+ga=Gor=qvdN| zzuWc8uc-Ga71Wb)thZo3je``!%sivAk|X{qVO79_C-(3~BpyX3<M&x!+;qDfx(1~2 zNNNpAr-mJQ3MCa`W$L6L_8FgAp(4HCg%>+>daiX@ZkLW6kpD&nxtmAKTiz__JlG}k z71}|coW|7;5|6}60gWc=;4<_K1;}FU$F&fWCkG=k7N~?*uT>>JR$fhDZ+oU&y&Z9c zR7poLyDvQYqtQQ&UAVSGnSdK2-4lan@&y#oMRkq@D#M<=6&FGF-(mDAAP<N~SpI?q z;3xqYl2jY=@tw6cI}n-et|ZX!3smdM7by!QvNAqGjk8+ZE#!B<*`Lpy*d+gg-8w^Q zS0W}7>~!5qG_JJ74>7P)JQyQR{oJ3J{o0fGtuKUl*Bm|ee|F9Z=2_?S{c0Y&j`6hJ z2<DU=ced(of`5ZNpiPCe6v@J$1gKxQ8&z71ez3gO!M*)eh2prkL$))eZH;A0^a48e zf<i5ozs2AWDJ(#@EM&Vvg%4-Z3{V4cCOw-Pm88qIJf#(qtRNCL6Ylht^uvbnJ@aLf zAWkJs2%VEsN8?HxmKBkB6L~H4Y_tvynkBdjdlo=7dq)j3^ieB-+jXIWchVX#2|sj3 zo|#S`b!&D?8-$eVh{`A0{oc9<A9RkMKBvh<9N4({?_;KIr#ZmXdwIP_^v4>XO(*!7 zsb=)twm}3f_%41h=?3kZMjM|Cb1`yET9vdkSLazGgpWOVu2d+AX@@S7R_k=}s)Hr0 ztlyHYe7z9LxAc@AFrdYagK7qaZ25{lG%s_lNS^h$Lj;-qF^Spg<4T}-tfHU2XpmD< zc!m#@;ag~p<$KR=BaK9*Gd1U^KjaR<_^bawGW(Y7Xkz_jlvN@%DQ`HtBa-;;-Pp}( zA-ZO2MIm?2^E?F3!ru=-DVS9IECa~!n9WkbV*wgy;wBFtp(??=fB!+5rxja{NoQJG zdIfoHay|81cvRlEpU2BO)J*)UUzGyLS(C3Ful}yjsO@LuGTn}wv36?ssWU>`7j@2+ zj`aM^-^+6zsY*g7Ty-wpg0WDp>ep$9@U85*ga}quI26AS!2Bgf$_=5{6z@8X%pEqV zk+o5#M6{ECH}odw6EtVL^2vF_J&=tvgg1#Xq5<FUXnVKR(c%3hDi#0@#DUM7vDqef zC816-4m-29CeXUx=k6B$3?HvCHgJD+)z+)>?gy~SlX3@nCJBGj`MF^eQy!jhkqhHB zs*lSb#{zC2!8Hu1?SJ=9XL7UKWdY?)9z-e2QVc#-i;~Y?=tl+i!XKN>Z!+N#!uD!v z2TX3khw6kKzS3mP<V>+xI0=<Ar`7y60%ubylYAr`$Eki;j~j1@a}A1s437=kRV;8R zxlhCkw$IXv-9+o)d_dM#ivZSAR4uNpJhD*jrKApQ%=~{!!8%F1p3)*VEf!we0`&6O zg#PT}6Ms>aeDskEP!MK|A{?x-fsN^XgK}GW(|q)ML?6dH^d3e4V7d|UI+>@MgnmMB z*ntrjY&#vq)N#L8`1J2Be!PFBs?KHGv-=|=$Y)|SpOG|Pk*24)5-cP9n1k=5|Kv5B z-qRK~*=f2PxE~j!|DlptE<3)FEvit-?Z$$96TB`4a=s_J(PoYMDM)bg(1m<B&n|0G zrJa+idJQ8a4tjz*Slx?qwx|#U7)V74lnm%7w)mukx=uEnbkTR};&ImTV=o6TWca6j zn=4!3oTzuxv4BqN*S&GmWo9x2h_MLKHa*q@h0NzAMpbHms-zGquzK~LHm~-Y_dA4f zJ&-4#Ch<*;9^m*6rL%qo=8MjGwjKO$=eQG$17sPRY|@C#%7g$OvICo`DV_e<WJUpg z!=8%;*?o&5boHWorh6N3p|a1@BSyy`;OQnW>N-aoJ$7D>-@?X*z?X-^@rlCEk8dP= z13Rpn-wybtsfDnN&<ZcrBg0fNV!dOh8|w&IN<zQx_{$a^-skiGC_n@y6ph3213<dA z1AwYE^Kanx5OF-Z5bKB<UFi}wqyM%ARHX^tXqdoG3%{D9Ji3(l!(F2QAZoYDa0RN@ zy-w!pclU0AMVxf~;O{uTLna?;NBx~8%9KUZhhWhbsXKnlFK;=$rxhoHMZi%)>7yI- zBmM7{je0kD<3de}J#;j&&9^q6Ns)$#Iy7d@X3YDOAk3iPt;oA6Kr%z#Z|XT>LL||S z;-G{oUrRr3MJ|r?Jk4dEP|V0LH@2t8<VhDuZyaXJolAq!5_v1s0Il5?$pzCY6D_|@ zG17d`<_`3VLz7<D+{3i_9bJN;t>4|u+A>PYn0FHTo^!`xThjf0Nvm3*w^o0it6pfE zU9;}`JNso9>g!9K<Y!h@Zvt@8^5&+<_U%#cear2h$L3D?V|t;J`?YvV&?)aK=Ag<g zUv)K0Y5IlTQF3>Jp^{PxDy6{T=|OP!6i?0N-lc2R%%y6FQLQLapOw;B&K`(Wvx8dL z$Pf>J1p3~{2=WM%rf`TZp)b`x{|2<Y&n5XLiN|vgmQ7;U?H3HGiW>?Ns|Y-GB@z~G z+7bSns1i>+j#kpnI%mEfVu0yDz8)~`T}QRCRCRjoQD(Q^m(KO(Pp^|DPq}?g0KT)$ zI>oaKQ^(EgAqLPKW*rjBNnZ<K(+QCXHm7AguamTyT4auL4Bv=|E7Oqd4-Ima4&V3` z8%wOm=eIEYGkWhmmA{@lECu1yFE?8j6wWadUE*3;Ibv+2Ae_>b6CNC@NF$`8GQ(xD zmAc(Z*6*}^{`<$Y%dgEvIKDC#9Mt~}Q(H+?UuUZ2f8TEGkx6^FJXP0bpZQpMWHN(M zU?C8{7|qqsJfZ3mD`=aOBlqAKQs8&qQ=^?2+MS=OrM*Iy`9MpsUk7~v0*4H5z-oQK znjx*UMrVc<HtP?95Fxk_Bu}dnx`b_2bBjL;qU8Zn-Adr*8!mC3w|6@N0p^}mRH*!J z>|sy+3lZ3=iR0(`)1`7q)?&h3o0qCcmo<MoBe`qFZfF)p$Ke$E>N8E&IP}xGAh_oR zP2Yo4zo9W6EL3Gm^z_#q-M29I4#weu>WzyyG=xuph2rwr5#2exgfSiWql%ZPsm45g z-8j&6<12LpjLXW0D$-ly9~r%3hT~N74{A#*+FEYr`>xbdeBzo6j_xEam{vRpW{g~6 z*RCfj3_1qA6kqn2kexuNfKCh-Cb@f#Oe3m>;A?#B-)#&xJ(Ke3-~LQ`?{imV`w&!$ z4>|ur13RISB#-$5xkR6h_hX&H;%_d%d0)!Rw#NJ5VgN_7L=ta3%wL(jCC(gVREi1h zP9}bZql;)+g}(h(CKg9}-K_e{0F}BamT((GI?;N!|7Vn}b-=gJDmkY!>_2Re8SFE% zx82Uu2~F>LAGgZDUXzM>4+s@q>l?S2;vN7qK+L~rNB5e^-SjJxLQRpB31Y8L!X_zC zVx0os*Uxh5!~-8O1d>sinhlCCDE`{^x>K%kn+1KgF26n7y;c5L^+ub^dt1sdr4zTM zm6w1VlKueOPU9+F_*+5&i778(&V$4%g@Q**$8V;pcvWD5G}62az|0O8KHy#>RsJF? z7pdLp<{bPE&Ss5K6c?e)nlEPiwA$4qTLB!5+;el!x$wM@OuhRuHo_<cZgM?<Cs==j z2mDKgW&%P$nP)_&p9b@eV|?xCzt2y^o3gN?#~-CM5U^3S;Yb?zcwEsn{YeKY?upxt zocnElt-L~(Z3*gJaXq5Elweb8l;n^K+ck6SId(37a5n?b*;!}p3B0N)BVdKnf|)Fx z?w-50zbstTWA2KZo1pY2`{elRA`U*j;j}y~aaqSbBJUQ^Wro1~7Bi*5_B9~{2~ZuV zF6khnG`PK$7=rYrE|3!Vk;C(LJ6QWnju6w0@{YJjO8=Zq`M{bUAF5UI(<T2wWC=uk zo>hjw7=>A1nciIKbZ02pv3D%rP}}Ad#U(GSEoWH3BknmorCUc3kvKMCE)kn{WD$0o zISXOLP;N6lniK+3!e7BRS{%dutt5X^R~xsG%j@cvfN|Dbq84NZ5j97?Z>iw|LxT*6 zj)k%Ub8kwKqj7uj(0f9tf8y=3VhF${!$1q8%i{Ai+s-pzdYYT|6k3TUu21-7{^7KV z1>HNA<;L$UM;zZb=k0Kty2$zTt{O0?qwuvgG&fG?2ovnTLbr>rv##y)Y`%uh@1E(Z zSFu0FF}-ksyns1a{s_&Gj*W*^&f!cg-zdKlrg<jT?zjyW)O+R3^}?uVecavJC#l`d zs5!V72vA^of!Fdd5Qw-d(RFRHu45qzcxEX3Qz>rk1V&91P!X6_uBK!1ve&k1^@|HK z)$HQ;bo$7qRK>VNP}4P#hK>mk@2{$6xd6dS6hAWS2O#%u*ddoB!y2YiL)P3;+2@(e z)&k@xZwZXmIs^U@se2C_t{D${&O@j1q)+wmE@3O`pid-$Ll8s3s`xQ3kooXoM{SUr zKSf<FcVNyiJTM?RVAiae62eedJyTax^R8Rd#-KoxwUf=?wU|fyMhc_Kvh<wjE!^ej zN^vS0Y04?(1UKL1T)PE(z^$=Ub^GV73QteMO5Bb)PIP?|OKA<1Bn)GIB$xFlq4YDD za!&J#9okMd%SbF&EzDyJsghV4e<&9v2#UH-QwOjR{Cw8_CDF$tkyk}YqD-6xR+y;R zet<rRFNl26!e!!q>d%40#MeKCKfWg|33GL#$CS6x<n1_*l1CP{TSZbG*Hzc$vOQ`u zwH?2M5Sz)~#-lLVGDNEI9%HLUS~^MOLz|69VZu|hjNE2!wQt*1@ZB#oWw<xpIJ-CF zhx|cR0ro@#hmm{Uj%_ge^hGBZsaW+((HxqYL32@xcZLS7)!uLJ5J(GN0_dzS84Dg3 z-sSxBZ;HwG5O_j{mH}<jSpM*tm<hu+)MM98(GiCEjSknAR~m&ymtEBIC>seAv^u-P z7Xg<5&tjsXe)q%>YEe>6jayMvsCPooR50CajrVox4hoS~41M$h=B?{V-yZ)aA^kN@ zitwKn!98?1?Tq!6WYLejZ?vqCYAYpG<PXU+%VbAPWTGb7+!;}t`g8!yzNbuLJaJX2 zWiTJ<bPgXhq;u9oy!c<fy*XH&A#hw+nb?Ws4!WxIb{^yRFpNK=SWy+{u4P}m32FZR zrNbkbx&}2k{^fw2E%=Ao(J@HC>XnpL0%0T&Nf0nD$-FV?k!wt9AvJUZS{<moJOGwc zyF`qT<|FyKio7=i>k>ak;-xrfOF001eMvJ81_bt)mRe;P_RyVN%*hDoB8X%ORLa@^ zNiTA*P%I+O#12%DAvNK@KMoI4-{5dB!nYp54~+gWF-G5ci4a3DFwF0Ah2aDaBvCW+ z{mG>eyWOMV7IORv!?b4HY7?I2zmFEaB)*hT>nW}HT`l?OIU)b)0yjbBL0rTUMe7ub zvK8Mqm|I172$KGWMhU$cv=jIa=Y^F5I&r$(@LZvZ7N)yRL?oT|1{2p$6PY=TjbiXB z(c!zDkWY}KVDCwr+G;k6cCAPA5Ht68kVaR?CA(?1&!jVYvg%~x%4;gjL6R37b{ZZb zvTt)Wr~7G7H8m{2!B^Jqd6ra}xxWoaW(b~WObKvP4=9!{=ojMZP=wzKshz^seIC9j zFK9QoxYWeu%#!mOtWbaOc4zs@dx7oc1q`>U51c}_&5nG6l6Zj16P%;xMiH_o)N%nb zcu(#h<BsAm<9t&PDbj%^Qx*cS`vyqo+-1?_$|oEImZ_huLbeO;z1??!fzN6H$u3p4 zcw41CX$^;_=<;0Q9uOP$psbE81^M!7#aY*%rR}H$Q#$HU7}U8qqQi?74vDM4HKMwC z`V#C{R<4yQJ9ZJi3}a8$Mmc@pzW~K5g`z4b;OijrOBHJm0D6grr}lSE&4VPBGnBC; z$acMu31r<F8or}B(d1_d+5Bha>R-IM4pIBR6H}19G2d22>EJY!R{8ft+;NM~m!CO> zR7+S=mi$i3S7)R!24eu2cB8*v)Qs(TS~O3^_zw!x^3GT8+<ASg!73VT`K+$ct@b}Y zmr`^7x0Ytb+nGxbFKg#;wccpm{1|U+hqbZ=N5UN18=Dl3X_7PS;$nBVkYe%z44ADS znn{dUUoI#sbEvOR=SH=PHKAC<*r^~UcV<HQRF*OChpxV+mHm}th3hZHQ4L!!*M}cV zX3&QaJp`|r0-gk+ZOYc5!BC6w*h;!%0I-J>3WGWjVv`4KP^X|8xZNX&<BT$Tm&bp2 zxS$fC!#^yrEK%OBhStE!I_^2Ki{ytynu+K`Abh_29?@xya$)%&d9VJTM$dh3Tp`+; zbfd6-Nzl|!O<07E5c>bxjBK5~?PM~`JLtGDYi9i)7q-#fi5#9Yobn9PjdgogJ?%_} z>Hl4c0sl`$yyb0d<NovbF1){szYgci7DZwsM0L%3ALmZ9iLu-;lB1-3z3HqU@3O|v z9!~Td*ZBbWa^I+rderw$(-LB<xC5UjP!NlU1J%jZCD5LAHpaw5zrC9k=~Ik*Y<0Dl z_5L+3|J}OXZMh6;qhmVa#c3>S-0HM?C*vZfhVp;cuV(!pT+yVd^Mhh7K)W=bBm*-y z!x@yj@-*oG3?xOj{F`5Us=5@-%i<hA))wW^NjXLUDBPzKu66$#vQWePbA^97NcKTc zTfP=UM#4rO1GR*r1F|DS09`W0=D3Svk2`u)`~}!~yeZyEdDCW<>ItK21^w7*@r^8z zEjBx{5>0wK_u)LN%BNY7VNdVT&dI(fOT3E|I$Oal@#Qe2E8)>5!qF{_#XHhHr&L); za9O_>w-8)rx!%m$o?yCYSB#Ud;kB#4a!KYf=3AD3_3JGLg_W!CtYXyn*Pw0Uc99zf z?U`%014xmNvcq?1IYp7@I4hsdb*tFT-7YZp37ty_G<@MJ?oq+^gkq~XgTL<Gk8(W~ z3Mrf#oH@XfRX<^QD9iq89&;px040gxBRlxPJ#Z=*ukhKsI^^*C9zoqjU&7|4_5+bY zXO{x>gboSG%FgD+MMgr%cB#tTvy}+A_r2Q#`|4L0g-(epj)k?+9n1T4U+Q{E%%J#D z?gjVl>z-uNGQQQ`{!>2&ldI-VaUM?9p;&fJa@*311Ko0?06^q<`jafuwUaZ^d+w<6 zr&!^vG8)JpqLLrsI7QbdEer6BcedCT;>z?42c$Iy0pvZgPA})<Gd8-xwLa6u85**? z#p$zliqJIl#bz<%WoB~aF`4_f@A#Z^vThW_PYug(S<8!-DlATzZ?(NL{W6T-EU!Q0 ze(*=|n(;%+b)KCP;3!ZxI!u%yo<hDr`HwW}^>>AY^<^e_gK}2%ovOs@4PzEKoR7H` zIOI`+ukKb5YZJTZ@rW7G0|Z_*@|eEmn~SlYjp!~(vSP1*@ELuZe?3xEIzlNtuy=En zZpcK)+6q7h6ldmW{_hhO*)#Q;G{=#~<YGWn$~-el1^VGg6w}MsIglGd%m$7V!r1PV zR4^1!eZH@o(~ef{KNo5?p-UVK8~KDHq@5(F3&i1o)Mi}#VJZo)xgR{HznZD8m)yaC zpBhbCWJguY9I5t_Qh1r7(W2KlBboD}I;A6Y{);m|j6qfElT37?Pkb=r@!nZc-NGM1 zF+M{LB|!$hEvj;Fw~ht;o;6?bc1maKWO!n~;1e)#2#*Y#1!$nFhQDwTA?2JKKryb! zH%%P+rF}O!*Dc9fhWtwW0@G2+9+e~-zLr#W7>FGjm_+}hIw@4^D@0pMZQuA^V^MyB zEGD44FFqx7WenvM7BmqGPLM+}lWD{*I`ODhH155L`PeCacKP;%U}5Jpq=cm3W<m+w z_E~;mz73$td+B)~gC9XAX`kL!mZ{kyvvf(5O;JFDqzH&7i@5xR<K;h?g<Dk-o|J}B zJcQ^qD25w~@Zzi1mkLPjNdlh}5dyM(eWWgsAAn>vs@rmlvrfB+2yzi?%EL*&a>I<` zJTWY*`PF$X^P>B(nlknt8rRJ--jBZmz<cXwyAP|Z@?45SyibiiYOf_?o~e-HjDTX$ z6qKr9DG33D+ItbD`wNonA-X|K;Y|=&a)>s2Q3ja9vvrkZ*_T*RKiB_Gl?=xQ=KE|| zlxSe!;KZIl9kPa3b<Ud$2G!NDvDeJxy$9Z>Oi_*abH{C#(7F@i1UjS(%jEx>^pFQr zYK9cvacDSajGSN=!`(dAnx{9e6|N`sWJLVBLS?;RG*7~+POPH3@agY$zpj%vQ^1x^ zrLqoXX&-m*cWVBJ+(In5rFIwSHg)XeaZTJtn@>zvv>(4@8$BC3*m_dUb0`Ano^Nu* zv*D3d7w<q}=2h@-OC&4Bzvzt0S~Mj1J+i;}kIvF{N-Vdu0fu{=jBC^6zK2dmq4s@~ zQs#*1TW{FR6y9(7|0d$$heijUSen^N^hTQ*2Z`U&w;e1Sm)OHnh!0I<0WUOyd<+x^ zh@NT72f^+Tz4QBm7ToO?r0(QUi&x){S9pHft!k-@J2Xc7h@Vc#0zDQnv`^0{q`g-m zU`5y5yKS)Yj;sfqz@#85U99yhn0E-X9c*YoTcw;v%gpnsO;9UBDFs<hUTpdq_?!tH z@337I_Z1kr=QBQHAbaBcYyFiYY0P?35>S8u_yVlFAziI7f>0}7jyTi_1mgMrP;HnF z_eu3}6T^~p4(`|nIEc{kDa!7m=5CYjsBtEsF%Z=RxGJ}}EDCmeIygyW2UJ_SZ9x57 z)wEdIgAvW#%i34%H~#0z0qv$zQW0U<J~b)t_|6UPXwV#Wz0+Twnu%5#0j>5C1J#O! zg%27R25lvU%B*<c*kyS>dDh^2a)Tp!gv|>Gg0b4eoyN?}8)%b`?a8A}1vxjHGz*zK z%3<95YW50i55)p|i?{Z_EjgVerJ?LsW3-0H@`w4_GPXjD$%B`G2t~_8duBH<?TMHR zbF$LPvXpm)BTL9oRx_!}3u1?+M<$)u6V8Eg6x0-dM0v*ZbsUI69Rj&SNFJ&(xlGex z@3#LXvo6!_%$;PQWPjmf^W)DVahOe#T6VLGwS?7f==4qd#DZ6S&Jj$4v*Jlku`F-7 zW7iOF`7kAB%pM`{zjj~c1fh4eSN20pxP7Se?;;-T&}s2n`Ol<+Ho4brMs8ZGPOa34 zd$ya7{R5n%qNQF{G4t7Y6sv_8O<T38Eq<ohUoxbh%b7dtB86uf<nZDc>?KIKJK(j) zlt?mDZj{5jBCZ{duX3vqYHma;@V(A9y6y1^xL6p3-g^8g%0hH*PyO1n{xo05=yJ=p zcw(E!f^f+%DG#L>Lq3oDgFH<iq}Z0srt~PtH+t7CWgaXOpEH_!S^{jI{j;AQkn8hw z?OhUVzX?7nydBy^k)yoLEU(-tfl_#$l6w<&UF0YrTIHC2L4K!RKwnSR<t6Uz=Sfxz zd_ASHVKY3$`5cQ9;QG;(luwlZLkmrh1ZO(?US=?tU;xEsRLJnbp>bVMi97<}4r`kq zY5lJ%vRU+FzbU2@hagNO$qE6FLV+IMCvy3)(Qj#|-BdBH?MpO^u#n7OTFxh(i`tA< z2bR%1)4f|FH;M~yV5gh-rDud-+Ht0PzW}4JTsiAnpH|>sV4mw9;&`QvF$)^yby08U z+u6bK5C?(+er9*?K$iZ;T#)4{;+CIfI^8o6-T_6CF>H&$A&YdI9MGAOo$Xg&Mb>*4 z)W$s+qGS6Y=Poqhsn&w~w$G<;Am1`hd;{UG!>Y<x=PYOH=-6+qDOKmgS<akw;WeE` z;EsM^$8t6ELp%}5qPel;yA6M^13_W45*9FErXz!KDQq4behsM~VnfFpe>c$Yu2w^g zd07hc&i5%n9en9CyB}KAjVyq6H5;ulBO9M@$UR^&0PdaI?!ag9wy=4y+Il49aGX_4 zWE3p!V7Y#j8MxVQOu}T564HA3CO@NX>xn8F;yh*aF*SEOl(Ts*(`V%h`sirRB#6=i zDn>E&0f5FO$>`e0EM3PT$tnxbm#4E&L%!4f$N@7K4#cT+-Z+bVR%PA2EkPU)wtZ?V z8#umrox-$;&T65fa?U+%7_R{+w`DhfHSVK9(3%Y+<V^jdyNL~r_1&KoyDeI{bHPAn zwC<mg5A<H(%wS(=hKLPOl#LgEZMn*pzou`23T{9~K$y|U0!)1hp#|T>rg$AxL3;M} z9|b+Kgh!2{h|_8lN9BSxjr&l`WcfJ7r`-fL^29zTo^71Wih|4n9&tL=99cY<Yj12( zPb-@h?tfL_c&X)SGX(LQwpzPTKL?9dE+PzIiR*ps*s@k|;I-P4z*VBm&kryz)L@^$ zj={6!$)}u*@ag)$)4B2l7*q>%285yIpA{=QzPlb(MU1=k+4-rb91|4QRp27oNzYus zYZr~oVLnzJ^Y?rM^oxUGX+}=+89je&7cadB<%Bi~c9~9CL5e9@4sH{!OY2S>6)5ai z!f+tLl$+IUgh^B%3d(H`HZL+>_x0qa8TsI~IeaGb9ciYgG-B<=ssvK6*rPWf6M=<C zWqUg)z4RSLe`oeg5G9TL0m<jlwkE2bdHc@_@sPz44M`*}_!VeklG?9#H`1F}iV@E0 z<mdr=iIG6zSpPxr`C4>wOVic`f|{#&f-}hSPInEhRJVjc1~Wk{B%!&<{8JF#r|BtZ zg+=)RwO$|yP8Q|2d}eV-Sni%tt|Q?H+}@>yz36i$3aej_%?;KmRa$zLg?VY;*(F;X z2_c+)s#gXV-o<ar8236sf9-1B#0I#DOU*Xm{}t!hz1~m2-AlVr^n+h(*(zNts}{<L zPof|=pq6NsY_ZG9wc?gc4Y>IsnB*PZ@QxKy68~iCzj0r3wu=^mNrYxP6{P_+pR;WN z0XE4|@2STOrPJ{<R$fR7(Dbo+hJ%!^9@hu3tbXmg>{fb_<6I^se!O7~1@}(>_1$Ct z%nGi-i#;7I$%e!}wi0Rthl-;G@I*8&!h#peZ!|!hxPq^7HGYb8qiU2a3^5T)ZzPAL za&7EV`P@2%TnoD#Nrez%p;<2)U<USt!;*GUuIhDu^bQ+%0@1GlwpvPIx3Q+ILIY4D zLjd%Grr&(j8#fOPJS#iv(MK-(0ZFf+ZV<^_c6~2GuQi2$bd&#NDdX^k`Z!{%I~>=l zCr{v2pB*+{U+M+u{=PT{#E$1rM0d~zEwjhUE<tGHjKQ>tH8C)Qc<u7_YxDc>!u#Pw z6~m)wC-O}!YX4Z{BkHk3)A}-<2vw-yvv+dAEn}O<d$8YFFS^Cv2O!dGsut&UeM5#< zb%k$ETC^}Z+C(*A8SSN2LI2acIR;I&&N-^fMn*h~OU-V20$fBM>~&t=NcV@8?=iO{ zZv<<bh7HQo(MH)7@HW{4(B@f`7-8?Up%La4?|RUINks52x7g}-aVq-7XgB2-1cWZ~ zPj2{F5yr}}p*M%@h51AFM$JA?@!a_$>FbjGSH0S*&;flu)apQ&V@!D^c7~o;5KW<z zJl!Wmv|LJU>q$8w&`7H7U~k}{q8RT<N2D(U`KsX0)<BbRkwU5STuC7Gf6-n3g?I`Z z*<}84(73%P8{sl`ecK{jZ}<oCH1h~~?dhk$N|W}C+LyuL#CIuw%PL-Bw@=Uw%2>B0 zcm0<FLBQzRrYKD;H(bZDts}w}IYL$nITL3Vgz}y+T)rP!!%3#7Y|bsC%924^#42?R zXA=%R^kyff7TtL#fHu<`$@Tx_hRv}FF_DRU`uRV!^Tp@AYPD5j$K`;W*8!^gbz^Ta zFvD0|%LD<+RC@TFrZY(1N^Vfq0D^uLqYqaibJbhMG4P7TR((*>&C`jvE0@>sN)GIj zq0BnuWWx+cXSz`f)@b2c@8VUsWn_uLLIE_OA2kR;gC;ry2Yo@W)LC6wVvXPs-i@6A z_%s@w*?3uA1);-T_UE6|>1B+rqjnF80Z`xcfs{ugZnMi|FEXJN6gP(MFMLF7W&abI zM7@y3Qx3`drrNT;$I^;a&v1@X-GcNkZ(I@keBl=7&N`}RL+|y|j?*8A7P>bj?lyX{ zpAqoz{|@;qi+a31MQlr87?ki9-vTP_{;u*t-~~#w9A}gDRVusp-VKpTet3k|v|vhg znOP%A8*1M+$czL>%&>t?Q!7X#{c_k$$YP$)GnY}Fj>n;f9|OSI(pD)X8l~o=##I#g zu@{`O1|TiyjQ3ZjNH<N9o5pB<01>Kev8QOQeqal77oXBCQ#=D*U<|C+M)Y8A%^OKa zF+F;vnlzTCI=s?Nxr9tW%hN2BE@H2?wEQnU^!Y%jadB(n-e8bpN!%d$p9fx#ITvxe zJNR9}2KR1V?D~w#mtv01s1?z&(_AB`y&QxL!pv+-@jPfp6OAlI<nY3C%e|r;v@aR< zl=}f1%Ut^?%S_Ip3o|1JUAkq^7x2Dg=U7^Sd`Yg`nmKdwwSZq-E)Tg_(`T`p%N4%S zW9s)A@ZzV$&+8q)1wuw`1;|u7n8R`W+n-aqLnAQxJ#CD9Y3Dwp)I{gnxX*b1?jTi@ zLi^Ij0UD&F@xlRkwF9L2*9vLeArsNipV=jPB5oq{g2Ha9fGw*HJ~wctL*IoS`1c0h zwE>!4-Uq1~x$qs=5qI&UtJg5!?&z9SFKvY=f%af)`1SCnOcNX;KITnPy^smkNZ8(| zB^tt<Q!1!^0={tm9VTvYfY9euW2*n&bvIoTy-{oN6&HessXJJ7S5$k&br;0?NtQ*q zh)o(pZm{))iT55yt*Y*qkgE@dk^hVdO8W}lqK<m>G4Vs<UDd`TQ#Zj?xxhb<ncPfv zzn*~Bshp#{Ze*NWeE3@-u%QkMdWl^@u5qx+sKshuMj5r=)Lu<R*gb}ndvxIvTaMz; zG^mgTHcL?Dt)RZyIjAb$oX{wtk^ab07QJJxzlU$$rY-`qvUYbCM_&^M6#l6L)KWEy zJ4W_QPT>74`yVW)C;-KjPC0Dp>gXy2nU9<9#HSddeU{fB8IhWfpzxd2GJnZ$h0er0 zQ4N;Km}FHHq|d$#kP?B@L|H?EyJj4QJRXovJF(Tnqh2^u$yLlYU^O&Ey+^PS*btN5 zHPEur7VC3D^qlJJ$hU3nIN3?JO4#~;L_W28fF8ojjIJDo|5hN8F}PUU>sZA6r%h`U zkLCIjrxt3Y3v^3c<n$uG_?=vkVxR6d7?vt-z=J$x!IVU}RNe#r`WaZ7DW~f5Xe<NW zas&@!^ks>@7CSnXD|A3R|M#!amx8H1b6Y2OK<NZq--}Hi93HR@yhgk<<McnR@CR#> zXpj`NuXT4G2(gb)4bJz+>HMmIjFCqx5IAi!AO1RpLtNcyh1>wEz)jRC8HMJp0JeBv zu`hS)75KX&XL?JW@-}}q>UFaPR_Z_9qXU@5McMf*`bMj{Im^LjD1#3&2dD=7Hm`*M zk;}-rFMffhM=dx6#o@^lr#`s00ye%EP#9~5i}UM8ECo>^VwB~15>_`S-+`~tD+qX^ z%x{$BwxKmj!2cXwo^q}`N)`53bMT1#?OA8F#RCoXisBlw<HEDxSyVtza^+U0>0HID z_EcTL2fjOB`^Lp@NPQSNUK5oQpGdms7oHQ%Pd1@*vGqR-&YPz$?>douH&;33gUK<r z3`N=U@!G9AbnlUr;CjRI0fo|$IdAP=GiN%;t_3R>SYJ2WnvV^E%)^TSX?+!8`h|Xl zBbQz@+o^ARS$YhsP6F520vv4kN;Ak$93OQRuS!(L`rL!Wor3O(m{$~^H5K*a-L~M1 zX-J>o(#ZY=+dyr@)hdSMmelPHH5;*tQosLdFuyfN#(rFAT!vu+i3}O5f6blw7m1GY zDP!+R$^d?y0R5w~NjkB3?HH<fc#E!<+9(P6)mp@itbZx(vNGJ5V9opv)z)V@#CYGc z(o^p4<i}|m*V~8DLoRB2zu!<^f-q8TT^Z^>5i$nB6IV{Yz+&3R#aMX!Em1K60Zy(t z6Es_ja!RoCak}mt71GnG`;PA|zan|V*mJHTm$1#6eT0LbHjJM36@j6sn6K^Em_0RU zI4xJeahNyoMnHWJreqxu_gRm+iz$(W<!wqx7Dczky~7HT(McQ>x}w1%-X=nP)ip{w z7H?{GJ=if!fLKLVJuF%G)mhBFpCUS52dXqh&&Yql5RnJb0&x8FxD;UV1kM-*Wy~W~ zFTZgEr1lD9p+GNBX3-}Jhh1|fEhx$oY@L+i2d1DZNRsAN{5(FRQ`mu~l=1_8WN6!< zKQg{7(agE0KpU0Dv)$;GxOIWodRz`YPcsDV`rQkuYHS+dbjBATm`&8Sd<HaO0$gg} z0e`jlUHlqh19tK&1`ILK*~xmB$RY*e20iZl+C<0sGCg*kg5PcHTS;U^P`C~E<jh3| z;VOWYR6hvH)ff&yHI)2%9L_3@X-uaXBpa?6AmOwFUnrGlg1Ge>i<@;CcI1D~JBRB; zwCJEfsNwv=JJ+Al)G8nw`sY5*^5-p}%a}%I)^n>in`_Q<SMua?6uMF<?jI>HQ+W6Q z<w7TKEb4^{{XDU$E6T7Eon<}Kv=E+h#AYJDW{R5qUO1WFE6@4O-w{F%5b<)9cCJDG zLQtfi){>%ZVaiRY5nv&WKxdFamo@88m=7S;zH~*7hRLIp7xEasR|`QFA)r@A%R^8a z{7%r%^VR=(m;qtIPD&!wy;lSxB47d`lr(Srzjc8JPoL*K%v-*_YDkQq!%Khg{0glE z#zic2WIIsRwq?LJksls$3kH@n@RyB#er&)tu7xaP<<&z5z>ugV(ru_g8Q$aol;)W# z1~&~vF=ezb>XlXR8&f%|RL-Q2g$kZElJA$jYS(Iysrp1bBkd3Jn8)^N5Rj|@x>aam zxLTJ*56eNCpW~TeD?CoyieU_c1<R4<Nh)33^!s-e&|>ghY(S2QJj&89XLIGvIXp3# z0so1XVi|r|CL)+jToiCBJ)ddFJYNAx%tb?_((peUxBz4qzM|QqyI2kCV$gTT6%l1( z#*M#0$MmU8Z8;v1F<%2>qqI`gh4iU|4Z<Z)5J<bsWOwv^8*F&UM(+WJMr2ZlQ3#Tv zdS=_iIql;3<#HPPGvDxi|48(=u&Ra_U>zEjV)F$%wOEqcIUsa1BWqtKqF6wiNxMfK z@jVo~6%}ukCu-T=#7`mHe~X$X`L8o)p;UNVqDr=J*ow6s=n*3qzaxg?X^??KL3i@S z)}+H_)(VKaaRK3|um=_v$o!>$!HsnMn_!vIk2;Zj08D{}y8M4T$!5eBe&q<}xqLV= z`NCK{9phjJA-Jm&a7}^Gx||~_V@ln6qxzaqNu75l6bu~{Hl)dgBCXiNdVsIRD_lH3 zGRG)L(TZuD<m+}<*RPUn$>0X(8B<<D6xidU@;f%<*ak#<Hv6+FBthsYoC*sEH$CIR zkMi()a;Pi2f#76fP5!5k`{}k5bG3&oD<UU%^M0kBh%WYKojsd754`w^o6XIVgIHlT zIu-kYBY^G#;Qa}gvd=~W@BWZ%9&}-B$N=9_XjCOx|2g9_IoPhEtGS2npYbe;RqtsR zPj)JfR>lLhfn_4#tFcK7OIWYY$OXo=AWDal$+`2_c4_Yd4HN+2%h=<K2U+Hv2a%ml zt1Im6Hubx0TlMi%fG2cpUq*%(IN*(%GD2H`Ds3Bz2y#&l2=4MVV{0*v@8b;}o?aW1 z42|K5U(T&7X%<`HShXDWWx6Ya?)q^-xN*A9-ZdL#Q5DOiX<Q(O&2?-Co8;RXE3wQ- zEV{nIOapyjaGbaL$#uoK@Kz&^vmQZtr_DCp?<dZt1nI$HFf;r<&8By7*m$21)NI); zWS5j6ekM1<v-al6*H3!!R{I6HBpADd40w+TJnNUuXAyEG_X#}r;X+yyC6dMzkVz9B z`zbTu>6VF5pbYj21-<bxp^TqD`AGtd?W~{K-QRk^Ig&FCHkcuEJr*k$j@VHP1)4Q1 z@z)N7!M0YTK@Mi7WQ(vtA~|7s*2i6^2r7@bl01-Hk;s?+nMt?mibum9W{-fs{od%N zwB>vAe3ie(Bwxni+r(BS@jJ_cj5n34%1Lp3X8W*w+|s2~|B1sYz*m^FNXax{5Z}m` zbB~zDvH4sV4Dp5C=7+c-#~`gNrLJrlpe}0~e=T2=gSry?fVK5gnSy#3J9~7uVv}SK z8&oJK;Z?~qewbIuIPo)bJsCwf&G#_ufZd=XvoT`sB_efb30W-7PUOu>dGH*es4yiS zef!>9XN|E5KWtck$7o@<K@K)doJ@2tI@E=y7agYK8@m{4)CjT!0O!gfzOAx-6xk_h zf-$h^e+twg>SLD|bev`x6<FTf1e?Yq0F+I=n>AO}@s~jn@fE}Dthkl!6ziNE;Q!HQ zwCATfb#Hv;jv%idAH*8}u*++&VvZ+_p!Oy_#`OE(+urPT6iBKS01tvW5PvuOR`rL{ zvlwww{Twn;Z<zb-nba_23Wvo68M$D;jNImJMP75&R!$){wzvoSF6slO@y~I;D+tPr z=fg&XSLz6<7uOQB)lm!pm$oiw@`C>OzO0WIFad?8i#}acH^5#i!7N};oiD^>_Jvt` z%)c@pwqDm*@*L?1Y}E9?E}c}k1L1DIYtRx$Ot*DI_;f*brBcatG`qdX@fTx`nIklD zl9{=cwS-d<c7CP{qDocXvIXiCNM7Um^NmY;7~KnwxWcP*N_d3eJtF60kbcpVTIyR$ zEr~s`jyh97{4Xum@Q!eXr74Z?ZSg=Ou@nCV66@z&?rFjKKhCgSaWjw{rG%_$;-@pG zpTW56wMv+SS+hGO?>?Y@4jmV$$TqHXxUiMOcJ&PX0iZ3Fp*=(w#vQ9p9@jO%Y=73q zOfqEuQxn$(N<OU^UeJ(@9#lw~Yn<@x&x8#Q{o2~TOW1Pb;-pyQ7O)p%-)eE;O}`SX z^*h}uVj+=;5JN?%-=OeE0ZNUHi{Kc#k<H~|Y1V2RO+Y?t(i|N<pdrN6A<NtODV%Lq zw`+e$Euw+YQ@9EetWA#7f@8DBfV0=JpWU)BF|>r_&Gs^7MzT5F-2f#$SP0xbainEn zQw>kS-A+bf%*9R!ks%k{2^1`?x(?M;B8qAfmKe>|d0?@It&siYQtlW&)W#_ttmH8M z2_GM4%{xB|Vw+^V`BZhOt?)p&|13Q`MR1N@ZtEK}B25zsNC0;b_B&R%Nfs_qbgSNd zar%iCMu?jjIw$(YI{6fHoXCY8DM8OH^L0PT0rP88U7!#oX7@*nR-0nN#a6bVG3cyM ze2?m)Ig=a;_uyCNz)DlAS8$>6Iu0*NQWHqT^a-9I#|7){gK;<r{#CYYm$H8pqe@6? z%CUT>9YbcDa-uspU<jJJGSC_h6n*Rm>14JxmvmMWlaD83HmE>NMB`$bEeCqnA#0^* z))F@O8ICLtgbzh6_XUt5$Uv6DDeV0RrqY~uv$uFrhz)LimU+oz<p>c}E)HmFCuh$W zF7k*|ny-*XEDY`aNtXfpT2@CW+WT=9^K$6Le+7YPPX1AZrv;B&<?(=50YK`tXu$3) zwtS|-lHt<|M)Fjs+$K=ia@A6^v+KN_ZWLs|&R2z}<9hfTy<6cQS?KS)LRh~=5a_Nk z$Uo2ec&%I$v8e;I`qJVVhJxQkfV_!xE9kdbe4ab18WSD~q6%qdC2@|^wMfbN6w%7F z`V{&a^C-Shj6;}b+rHY$bE*GJ0mq820~m?Me_a5XThMbIkIowV@*)FTk~jDpzV!3K zvk%oz)KtLs@zAm%n=*S$xs}UJNq$UUz-G;a*8p|SYq<4Lz6ru}>d-BDCic=E(q6Vf zoj=x}z7iL;q*Y7kO?*BqGatOgC)%3xY$PnR(8=LnmAqF<xbf-mh8z@;!L)ZziD8qL z*91Pa@tf6he<U610=_IF|6x$_inn6wrudYj0=9le6$}92n1NX_?mrous;J>{bgUds z&51inB_!*2WT~G?t<JjWt^4oK_w+3o#zBIN!$x;rw8915w)An}-*?hzH73m7Hv3aX z+%W#g#B3w@7!$wA!<lpw_LX-)-5lw_%q2Me!Mg*9gMAm6mQ(JG=gp6*iC}U)^Qk~c z!IFZd*+)|8Fs;Okva!DTu?lEoXeExXK^tGX7%tA|C$X+3X?Wp<PQ7nUZ>$0#$T?_R z+Q14*iZHqta(Dkpk>?s?m)ee~m)CFPav_6}XT3rBj4_qJSwr8#1NoO;-+xH$b&(oy z9Xu+o#hnYXwkXcS^UN@Smr8ccr{ef6O>?dwDiYM^rw`qA6Qcb8S6{!SzOy~AtwN9N zjW}HMi1-?TvbIOw&d2zRahLc@d^xSAEP~TkButQ&t|~Xi=Ht&BN8?KhTqc=4Rp+{T z71bFqJfzn4jdI>eQ^R5b6fPS;Rs}E=!jc2@zI|@9h#@^bndXyMf~nP<ip-xm?a(`T z&~wt7VK+wr%JOtK75f}0dcGfn*ji2g3*x1HYC-MFka?~$W)N_wpC&M`#oX0i9ZpSA zencjAqXHB?%_a+Ua39NoyM0MGEwdI#c&<H^(dgSV8D+2FHk*7D#bpNa&8~^5ciS%d z6rD0Pr6zkZ9}~C=m&#;NPsc+E?%)WM3*`_*P|@8T1nNB0mLTaE(&ykK#GhmET=JyA zgZFfZr6U~%4?!x`%gVY_Wi2-!%<0TXz7H%-Yrf<RQIvPv(9un-C@3~qW4Ak_H-}wo z^^$0XaF}&M3)DPxM!qTM>UPPS@E;|Ke^7W=gX*DxljwYP{eh@hOciK???o0+W#r%% z>gjnlFS<;ppVK5zs3{n-(6<hiN$9@Cx?Z_XKmz`DzX*B6&&n?s91+XboW?(TAp_#_ zK}T8bls?>F5Q2sjY=Rt2;SAE%n0qU3F?#bwlHlnVeXd*^y0z#?R-jiOvDa?D)aAPX zgd|NG>LvfMmf{QEPD5EjjCh8=CH76`T;CK2I@V44PyZR7ju7!$-3cUFNKrg8_p6QK zNxUACtZGn~a8HP*c>a;q%?AU^_|AzMfv><7Kf&?gswtL@kPB`2&mJsc(+zNJ9<hNB z=b&>=xwuB>-{k6B6!2`-rCH~RC~r8R*&YG0O-A$bl<A<fFpFg@zV;AbGyk)?@El4l zyj$IxTB4!^JhyGJ^g=T2{7c*!AFWZW-CGsMO6OT2!nXVME28}%vUf=%X4=!wG>V0v zpP!4ei`>Kqk_b7<AD_A_UUNROA{Pooac0__&Jnr);w<hl5x_2M)o#^wPFJkdsZZYn zE!q4<L3{8;s#}3g>_32HKb^z=RFQt30gyJAKCkdO%X@8f-O;SO7`iY+O|$P<ducE1 zp*{dIDw}Ms9^DnJ9!yxspjHkFToVtZ9#40IkAWm%cpKw65Ya0nlsRDWeIGo#jb>(W zE`l9);bX;^UzN%fc6D@C`-ezq@rcXiiZQvO(Xzp_F@H~LlfNGyAWnTlE5i=25^jYQ ze=>|x3$%mgLI>drRN%!CzG!1n+X!2O{WLT!F0{m2ie8ex)HW`BWX4+(k!nPO(la2B zWF$o$QoPFSMy9y|Fh8C`rS?|xubF(169*>0ZIwb@A;T!q5x#FnD56GFUq|8j1emTF z4ixa%E$t8e`qVb<Tq89YuZAo!Zg1n#$P7Cs&ZeWWkj=1@SYRxlrG;EAX`|jxG}k}< z<^W`>OB{{7pClg?SC@37V(!oDP^Rg{CGK-A#IW)e<r7=*A<yDBv*9A_PQ@s}FkU_c zWCQSY8ER#MGG(PyP$B%xb%{{Y;{@*FVmfdb-t48Y4I_$pG6N;+2Jdh!v#ra4&|Jd8 z1h{K|{zD1?^k1$)%-CNHpPRC!7Z_&|FLK!I8!}^sLGs2a4rMJG*T0PiJ|sdhr7kjT z_$2#=r1#RdnoZ2YD^f&AjDP!f909>~Z&JkfJ{XUt(y_K$Mx`<;HlwbwfFf(d11%~1 ziev-aCuqYGlj{NUpFx2PkBbWE?DB~L#oq28v6i;B9ptyN(p+BWQIytAocxh1-M8>d zRvsRc@)=fEZEwPTtReUH^p6R^Z~CtJMqJ>jXIG*TU=+v?vo6BV4)AO)qeBexlBok( zlgPTNdu|r@XQX(gS~+hN4(N!tr>e%Mu};Q$tAz5E_^zp#L7p`wk0fW-$kge^5Rf@i zHBh%)dO&PKqKZ|)W<k4kh^xD~)(CuP$tU0}%^lncb-#~qkh58M0dGV>Zxl!ndvL=T zXU@&LhH|#J%6R{|q3fjr!p2Z#|3?#V3p4(vk+}Oq1Ch~n8|qn~u=9#$aAvv1;CBta zgW%ed23c5@)6hou*nY;L&97QLn|?kXxFte~y}MQ9&Qq2XwPlJb_i^Ohg;L+7@bZ=| zadrzCB%zpibeD&|W&F)xOnM22xRaJVKA)<2oY#AM0&i5>%-Onsi-K^>PqQj?Bt6I* zg{dm<O|i=VfAomHP3%=GA5-`5=ps4ll^|yM1+<MKx4qm5O@9f696aW_o95p=xLa%H z(&|8o7ARX$9(eWPbGG}qy#pB^ag<GFfhP@YceuW}>hW))i+g8{)9UqI;F)pbnOXwq z`H8_dXr|ACo*_Kxqq!FkC!p*Lma0tI%)30SrE<&!I(Ls`g(=3=Wl;k)z#;f<c43@e zM^}lo0cZqJC@E%d`~{IEwPcG4hc#R=VKnGolV|9Ia!qT+|4!33rRhizjIm@(jN-^A zX^lQC|Aox0^P{HY#9CQimQ3<u$=VXu3oO8%9AOI#QBHGOi$LY8$Kz&pe0F{6U(mKg z!3LUC*_+>?#@WmI>;6i~kXNAP3%v#{L;kA4Dc!qcNC6*BQ%oNb*GUkKW0Zm5_XXtO z6lW5TsyzxY-S7!a+cFES`bV2wJ4-;+(TV|s7(={=FsT!8i$;CbNV9+AiWxW{pkqVx zWZmygB%1icPOou?*J=dnp@2Inxr=!F`L{<{@<z^3*vlpd9!#s-eLz~@OVUM{;>fJ& z1k!sZ-6b*h@~d0VFzS6M?FYAP7(z7{zJiDl>FnFaZ7Z7$oI=F;sCMCpC4jc0gGct# z-cfRcLRWr7w_v2uVndhRm}?n9)KM;em`d<F&@=|lTmtV+qrJ+5vg6nGoc5<}4zaWp zcJ$A*^q;T;K2^aC50nP^Fdx=$v0DsB)rmFB_r^+8q;N99Z1PyP2<Rf!loIu#WfijY zPcCC>-v%hs49469-;!E`=_EWQrUO=mi=6QcsD!;J^%S16eQH2bhm4_=W5Nly$sk|G z<9l`i+2VS7=pZn1xJ)ohG+#cETu=Aev{7$N;WBk8DRPZQA7!Oox>sRDFmD9b5tPnH zV2!D15rra<zkmk?kj6P(Ho>hNq)kqHVGp5CsLEaWmt*;8jmK>l=J#~9r}FrN8I%*V zg2ZHiZi|_TNs|v`tia!8*R_cz#D`0DtR$6qy*;&YTr?`T#w;4AWGB+`PgjS);2^up z?<m><@WNQwJ(bI?jG$=6wj~5kAR=KXY=_iH=i4&@6d1XHY_u;&!vs3~5=7`o^;azc z^p1#qB0Gm4Y=yKiA>;`wN!{VL<+;8Smk>)%%m?aafRVDHpVdfQRh;tc#*9FFLcKd@ zYTrE0rUmlfP9<i-?`s!$)N{8o>^O3`;6My{-lA_E++TT02X!_<zx$^Z^FA0s`e#>! zzqCPY2Of#7)VN>Li#SPh<v-e#InXq+tqvj)gozA-)+a=~036)sE`&l;L!ya=&J4N| z^>48dvOy>>N{+!r`r^BH1IS*N>$!T#a;Em~nrd40Ilr43v!iQ(fOO~4hn4+N<1G2q zJ*QuQYbh7ZHe{^+4%YXPYsls;n$za$VyxvkJg#JM{}AKoO!XZWJQUfI@`~z$hjS_G zH;U!JUbD9A`NuMi(j2l7)ZSM3Xquc#;F8xIJn^=m(bQ~lhA*9N++^M)wjG;Ca&rhu zLDo%eVmcHMIvWL-F9~)MN9JV0i`>f~&j4nLN=jW-v<{}Os$q=Bn_PCi+HAgJuO&_H z+A>A>y5Kw}LV;(`5qLGc65WI=%^@z9!Jms19?Ar=!xM(V2(;)cZ`D4-0HY6#=W?jS z##dioB@n5^>qN+hT>oV09~?#nb3>JoCsN5RWe=~x7jI+ZutN#k%b9}!TAhh7Ef$K1 zGp};bdMwr6;NOEiXj7D{^@C@W=K7oQ>+t#ce_}<{>bvgFG1qD;S?M8;Kt4Vqx991y zv--EY1al__VSrqEnaFYWd_2kB0eU+=r3M;~cmx4Ru82-ensQ<f#(%4hW=bo-%8V<F zbnmD240sDyAty9&2M6FXuf|_rDlE2^6KmAe7iUd-{l)Knlt-4jx3k*`-{PC<$YFYx z!to*DvhiB_-DNQ3^~pNFpL*zjD&-ATFE?oAEK{IO8zXU-fY(nr3|e#Du|k8MfrzjN zde2UX_2egV-%?MSyYoB9M{zMw9RS0wQd`6WnMG>CBuzNz=4*TQNx!}PBd<XR_-*WF z>>|X`R6xted|7lQMMHkOdUvG6mk3_~y71gOT&BqO@BEGL)>rF&yCo+I#+~B`gOqHr zj<ccy`ZC;WgcAg-&?Ee}C}C~#ScN+KyKmoGkfRH+KDJhpttM<P@8Ff|$<uZg7wqP6 z!TTatN83&!ht<Kcck^w1iSK^{cxTJ!of*GWcqzkb;lV36mioBz54b@tQjdVZHEBYk z@v>;PHvikCCo_PUU{;@KO%PkAUd+y%`>_pt>&4WPcIvuZ`GkA64xK(NDz?D_M*A}Y zh?1V4Ywi?utvkHlp}JaGd1Y3cZ1?!Ast#9$J+%j&grqYv_y)Q`mT&-o@%AwC<2Ywn zmw)8i$2&-3X<{ySYr1qHZeGa3>D^B3p$c&7Xq1Q^Te#Uf@)KrrS<6-K$g?RAUsj2G zJl&Msd;|+5pbf7pUFP1<Fl7=-fxA@aBhqxbQlHa%9kt7;J;L!T5-%QA3*hi6+E^kx z9NWeMMZU={;V!Hj9TvIdQzDbbh??Ri@XQct#J#DW@suJ05a0el8(WFA4Bo6tM_IyR z6b<p9NCz4MYIZ5E2<>}WEf@@4aU8&rutTQ<llXRK_r0%0Om;aj9~MoAtHkMU1r}5$ zH^DZgzLBM&V*EevGKz6$F+`B-XgG2xtyTJR$+&w_fK37`khx@(q>uAlr1J};r$qM; z-?n8=X#Qlq9i!BN#6a~d91J6GrD*_ra}8J5bq-uE+Z4x^x!0M2xrq3N5TG%l*!de@ z=1s|`KJ_2qV4EDKlkztnE~0nQ*+vj<W!x5(zk(|zS*P?u?+Kg$eDtRggiyh%L$ayZ zFB1ZIGD6goRnCMF87`%UOb>Fsw-g>z|9nj2=TNZ}+BdVf7I#3^Wcpqops8;gDax44 z$akw*x8ss2N6)3~oqYdQ@%88+uH1IFIN=7^t?Ced8q+A1-KPt2<-{xJb1-Vv=hx&8 zJVo>aB;n#p1u9P5fufl^kcDZaEt5k5bru=0WeV2t6tV-*gj4b172H~@5Ff0yd9E5M z<eCb3&U<;*O$xUnkBu&3sf%YZWk&iTw4-KsdF(A+ov@UL&u`Y1Yl|P=9wiw~y;?4R z`O@V-+NA?SGU%tqx&5{{0R1IN+ThktmpnQ|C8YN_1OKwX7Kij*?SS#~;%f!kk1+;m zZf?1y$OiVlrefd2<Nhb$>Cu5JnszaTduYAe)$kdv0$abcd$o7KC?hiZw@4=FjY=gp z73yf{-}M&}<Oo??d0lwS)t6OxO-|;hZSg|Di`R>Sty=Lg){o}-t*)rWtze#yS)dp= zpFjEXB;(Mw3i31z;lpnHV+qTUl8x$&iy^~STLDsIo{r+cf^DI6!$w#&nb193(3Drg zv}pWVM5%hAFIsQNDLRvBiH7==pq>w;G=&r|w4J=ECrpz%U7@q&*Q!CBP_rfz@d5_N zW$1x)DmYfn{Fs!1`O01%?F<pYJ8}M?@9uUFMq8v0`Gb+(vpUh!l!HSKrW!s%3jnCV zFApV<Drs#X!+~CigHrbp5{~qavxTTv8dYtjICQsQn~Op*zx6Y<kLMY#Q8}hE4c<Ic z19kpv@HN_6i-7h;T6)f~a%EU7gF1l76K8<a?yzWa(xGTJIyv@a*@_8?!WdqQm*K}Y z`XA=b;2VYcz+RH339gT+_vHd=I}XnAY{wtb39OBwZcbysoL|i6g$&jqjGifYpJsJf zE5N$53t`sJe|NO8ejS8!qKF`je##mR=MN4)mN!#eM}9~=)HI%G55j<<W;Z7hVP)p= z6ukV*<H*bm(eaLZ64S)JyIq@Zd=J0<dM*^~eJ9hQkCK8D9gqU353SEm|Iu`^N>-lO zp^fgRy~Idp^f4~w+{QdAsP=%x2l8Z05(ji7aEe#AA<04x`H$%9g4E#^gv5B!!=oM9 zteQwG?>W-h0F_)jU|u^mMKF1HzWW{N#)661DMyau3StAUn^#$QtB@mhDcMLM0RDGE zopifq-bSPgOwwQx!41}d6^j2~Im^s}0g7F7<!r~~&Bh6{7R8<VLzs0K=QugQ-ckc@ zEIdq4CBxDu+#1KZF$giE0PmHfjqQx9mpX{(5#ei6+0Fn(S_k&G{-CDE^uOeiCUBGZ zFXO6A`?<v(|Eo1(Qy?Q0`B#M<`Wu<}{N7iuS_o1Qf_|wAT~rM>ZYH7O%o7jWvq`{q zpuDw>p~82@_Ax}>wPTY^1dKMDkjS$>-|1htgG$q0%Zs&t@JucqIrthiil&^FrI`AS zH(0~Q@31VoZ@nTX>t*zE!`wsL`l?Sd@|~zLG%_SaO*TA3&a`V-?Hcr)#2ohDT|;w@ zwCZv~3T`rm-k{_cceQJn9gJ|Y`$!sMUZfgKeIkP8v>d9krVuNV&R{M<n(3MW6K_V? zr03Q-dy=;^N%ftMtU~r9;4#|SSE*A@1Lf_r4@-uowIc&XPJWq0ng^#Usl8Z6yOd5y z$?v*j#0=O#cLx^Ag4lLM20&B2Wt1122Dw-7NnidkZ3dFi!!PjASS>S!p=58gzx3?I zxH!^ay6sf!ud_?q0sG*FBjk7nOH4d3iAMxzjFtQ#>`-Aeg1~=2Z3RwH);PbtTZ%gF z{`M+;JdUrSv4^ek0L6j@Qv?Mx(U~mRvWstG_T3I8nC<~WBfZ=}L^8>RI3((kHCqb1 z+K7w>LA^1)oT^K%S53{qMJz(l83qGvQ7!k}*f(8~k)nikWH)xtbDc1lu#;#Pc@ouD z{VTLFq^Iwm1%B){#-A-7KJUP$6ArjvF-_m?!aU6<0aKtfC+AwUiaHg^xYU`ZCg?k6 zszn%01Ef%%R;5!Yv?wG7uzRx(0&?E*qcLdP4`0Pp6Zm!b;;Q%UBgdSoP3o$yh6<Sm zZv~E7tIo05$tOo|`il~hS5?s40LOfi_%^gDDwf)1u0|NqNlC;rh1_QiTLjTAGN%NH z0v`tP2At&{oeP?uWNX(2N-Ns^Xr2!0L(K5#3M+aC(`zVrH^iJ!%6BujZ51UD1lE^r zB6bpnlMnr=GmL?e*T@IC8BH{k2@rFQHJCFtA_VLj@NN@^9vnI<sv*$Zng^mWYJj7s zi*kOXZe@ILYC~V9$QVp<t@$ozD8I9Fz8ohe+T3~;bcojVm~;MEB&)gv%_BKP$WN-Q zLrzXk*Ru~3huIeBf+ImL`Y@0f5*X$ii;R-5s1cwQ@~fIRp@|yDb-v-U@fS45m^Wda zYm>E)EH?>)6XvOM_@)fPa54tX8_F&2d8UDIuN>l}X)voZ!@dwkDw69&48;7eL_{RY z&xp|K+G%U<*WAQJF{tozu$es{wMLO#s0$k$&vIgy8^t4a0UtO(#BzYCRe$qstA%Ph z1K{x24WD~%F}82&F_wN(b(G^TXX2M>>C%J099FfHyk_XBHpdv|qth=$aFP?jL9CVo z{^{;QZOKawE*pwuFdQcuP31NBJp*bA{DFS{Wus+F9X&g#v@@b2NXC`Z^h$aFu-OA= zvFc&x>5*XOSxzXqw!Bl;FXJ43F<ivxRFB9;&m@%i)ik7K{_<-fDR~`nP&Yva1yMBp zzv8XGsBhm^B>Iv>a^}`;CUFhDF%H9(#V5&rcp8+)`Q6vm(#=10Ybk4b+UV?ZqVihs z4&dC=jlpuZz`=M)k!4pM9TXfq8yGJk$X%F%c}S4IUS1h6-GR(k-%)wV2vVHTMKhu~ z4s$`FlXV{OAI(+qcx0Q!_{<s8rc!qY+TvdncH&$6{LXt#GlFILKg$1KGR!TJb_ppJ z?oYU6^3I;&7Bg`TYf*`ENNbZmF9-J59w|m&GO(_RHJTL&;q|Li3V)_at?X4#ukR#- z9Jnw3G@1@P`GEYkz#MI@7!XGcx>&ul=&%i$_QRpf^j+>WZj*pDoSc@bT9GQ#Tg!Fc zW5Q(`I&QQzNI1rwE68TK-BjTm21tTuQ${LI!wAoF?xk`ERlpI#u77satfyNSF)Onq zQoqP}N?4-peIR1`n?x-(+ApKtg5|XmzvVcgL;t3#GUG9kXh}+S6nhUg=<lANep`$n zHKQgex<enBIqqB76)+v3p2z{wst#Hf5&Af{6<aiE+qBA~0@^do7>9|4Upegba+hbK zzANS66x)T@;Hg5D;IJ0j+?mZV<1E;fy*|Si_BF=46)5lsu8C2Npk{&4u#{6*6aLYJ ztzka5z&L{B>Mz}}k~T&R3$~&btXZYT{U5oI*orm3X#N%>o{mpRd3zfTW1&`*10LL9 zSyRhJ8~2Tpm+`dUviB=6?z}C2QW`1_kba!IOo$yU)$;CyFwj<IJd1v~9szF0^ZP%+ zXT;y&bAg(F@T3Mr>_@EDW;qs^L%=WnXViYUJSi8Rr#YQx=0hieppR*;(fQFRjADLG zL`XS$;W^3`ZnB9Ic&nEz=PafvA8~tJ1XT!twiOT6Y$pttQ3PXLbgCz3qWW&of*x&Q z8Vv{2b;=^=)^Tdxitg|{4v{U=E+iD4y>FJm1hvexIq3@4d!F0BCd&3Ym?n`Y*VbDv ziSH!(WX|*KU5A!@o@}I7K_}VTRe+CrVp~F%9&qD7cOpGAtZ_hX=QAB@)(@{Sh-{v# z*3L%KLOoc*7QH^rxl@pGVG}i&VE>vnkfVIR03wrr&nZbp;kp3^5)}2L#2CcA^|~9$ zgc$rsoF9|jmPBQ5P@p~TF^c3m=946;fJ^Rxi-BC#W;iCjVCekKxh?dN7Mbkh7Ymua zW#T<67!#Su0w2CmJ3>Z8g-2JjZN3!1n!YPx%lsw%_<_PZa**CQ7D#w(<$HO|WVuNj zXFXNl1tPVHhCg{5gt4N*bWdlG^>qqGtpo7$I@_ZP_m8-VD3&dV_-MBKu0}DDk$v>@ z?hl9RB^8(l-S>=uZ=uDE3mDDz0B_V}D+DKdtH&0|HxqcRPk)19s+{LK;}yu*5I`1D z?y6FOp>}fN@%e+|5hb%k*$ryK!X3kz6ikOexdHTb(nCYBC<5B(Vy=G=dE08}$wQO@ z+HH+sn2|di0-59hgvq-pSE&B%(j&6sQqY~x`#kLh=(d=Tq(woU{#1t6de(mWrM<K? zRt`R^8??Jh4d?|5%gs$_6#*wFp0$nr%BvE{jd?5tAxRrt%>NKO@zfLw@4rI2`c7@_ zkoEN^bg;pUzid^O4&EC>lujYY8C_o(oBVgfEB!ETXq#IQJaqxNRy>yYq5c|ZCyvq7 zg7@`P&igMDD6|}cKmg0P;I}{54xeMnnyf4igVfvVgvhqufJn1Ot52L5N)WJ@#@2nM zluoCI1mL}Azc~u7NY0+~!9=WG)QV->=f(Bu2bW)^lsXI>02jl>f84ypD&%yLQ}zfT zWn0AKwZz4aND!QQ?APp6gg@1{Z6dD=MVW!R{EI;9E#-Zl;IQLHi&+XngN?3m%rAT# zPVq|fT@WvIbL55Jn#T`JI23Eab{vnjy@_I}WCy`<u<MsLwPfh*_ha6q4!P7PXl z9py~XBIJE9kw*Xbz$RRXo$dmXnMgP_Me-mQOuZJg7ld984o0f!EaKRnA$J*~;V(XM zV-BN>(%VoMlzsfdr>jf`A=K4@_I|0yNq{pq90&29;M#4?_bdh|17GeTGdw1B?LV}{ zPU6lIei8ZLse1j_tqRN|HGRLe`}2mBp(uHTGs5hGO&D9TgW0f}WP@SU*|QcLbV5Nq z?t29XOLQffBP`ps>wL*Ia<Q>%S1xIeMUGwHF^21jiQZU?o(iy#oi|KmauT!dehN-T z40Kkg>~X1(K>jYGSn3U;2K#A4CVJC*)%pNRlf;mytd*m8(Qe@Lpbog$yUaVw2xpK# zDrqV@M^b<rs%uIHK9jf-{oH^|xPd~mc-<xlA=$N@l}IibR$s8XD-sM>0E}t*WBiA+ ze`UC|O1d-Tp@U4c8Sz>`0sr!C&(9dsyOh^8I3*Q?F*|hVTe|qU@<#~K8D~TuF8H>7 zK4?giS+;O9Mq%`iwL)x9Y|<3s08h}dsnO`PN@U$ON&VTykkD>UVc48<_cA&3g0OkN zS@;f3MPVwc`VcGvhC(E{;8C#N++DkQl>ZO+XCK5?lHIv}vj<X-#Kr80rKKxWoD(aZ zf;A<L*Iczke7Ik)=SW4{E0h?Iv)30W60VGbe$@BUmGNuzHgz25I|u#gmK^g-6nXNS zyC%s3fM8j;{mfp!bGyOusy6V}N7Td!5vTH83+1-w;W2N&_De3TTQRgIWUsIm#va*b zmgk5PGC23pyLY27>9@!7<^-)+OB9%ooeUvC9Rf}*eCXNDBIt7j(|;}ejQ*KHD!%Ai zsOD=Lm{^wp=j6s@7R+#{CbcCSes6dHlrR{tXG7ub5jJ;*VDZ9Q(|`Rij7*`Ys2^gl zB?tag0?n}qqJr2)=0z1n3K*Zjk@Z#!%HnsA0p9Ji<%T-qW>sm5f0y03G6D^)dk9n_ zNr+Nlv$^;a3z9cuJkYRg3fcL{RY8IU%ndXIrTI_wHR|0ECv6+o@qFML{cz!}#HYXd zr(-$_1uitu#&A12Yi2X!yTw#Jtvf6#`xXHQUl^{}c4sUS`N9%#%XHGIA&gQyr1K?? zF_+Aqulz7M(k98FATi8eBl9ZQb#AmDUC12#H=H*yuGCFuBVA=s>`eJ?jilASf#d3@ z&j&k7qpSo93{s%NI*T<u1?VrqUz{g3V=W5uCz~bcC}vi0`+j2Wc2NAc5cZdK!@g)b za&)vXfCOZMC?vy_NiGPKHGg#fRf3@ckw#u%4F2mzYa#g<?<k`03M3*STi!G^Ms)FZ zfh`x!GKnIbm$TQDAYE)6=^oe=Yy*@+sD%U8gP%UA`Z3Y}hcn&M>h6$pFe4c~oYWdM z*5Pjn<L?F@Y<jYr^t*=_8$KK$B1XQsspwkfR}WXGpIOA^7m`)KFxHW6!a(RcsKl89 zhHfXYz}&-`etcO6{?#RkV2&=8?!DRSQAMeTJsQ=X!pPP`ZXXy-8yE>pNTZnryD8P; zPt<=EtcdXb&SLBJ@=odkNf2g!i}2stX@U|*P67ngjJ97J^V4cjseXWHBaV}VX8O;q zUn%2FG`vZY@C1prKjjt~nP^Gqjw`@z^$PC$6*6R+-dmRArHx;l@I%0v#8~~YzBbKQ zP}}{$QK#$<kePb-M36DqylyR?e5Jj)@sPnAo@F<LbPpP$3k%)HQ2`n9Nzm~ls;G|@ z(l(?Je+qjzIPLt(jiT-bp4QkE^ENicL%Dpcf)&~mtw`qp!u<3F{uGa|`;%k(Y7p!( zPt$$zui!69d;|kYJA;^nW?!O#7mzt4){z=_v{a&S|4|4JMz2kCc{#lc*?@Rm>7xQ^ zl(@GQkB^kQeT-1)3Io~cBy<XLSz-y}+A;kk@l~BKW290K22lx^^qU2uxib8N&|;o+ zvFVh{f8!COQRChDPK2-Omo%LN!CF5xVAY>nu{WH)Qurl-p6qhOo=B-)t;ioj6v=Cj zqr7H?b`=eAlj?4NbFhl&D&3k42H1N&<#MS$5|0gOa_L&K)uk{=m;AE5&Ky7Sx$ubP zD@IlWIpRB-2Sh`#@xzR+=rIU&x^~(2TMg>&5K9LjRWIfx!&x_;9Lb=j2DX8d=n%pK z1OiYnDxh;tNq<H^#V6nJrR(IrriXd08kagAa!MYg5*O+IrI|Tu+Jac_oK~HTwJDD= zOlptpnM+heaj!^*V2(}I<}ooSnz~o58L-%yV_r#+sM6RmtaK&$cO%A#INNS;n0gDK zJQl7<e#gT#4$>WVhqvp)o|GZGh4tsyNKt^ie)&TTR#No3=<SIJce>x*(<;NTUgLQ9 zyFIJrbq04j!gBxbtV_^;!QB+P+0_RW!c)P+PfvF!L88o7xHM8iP>uraGW!8I7Ae$^ z8VbFdx5xm9uDcJSw<s<LKYX>5w)IejoE?@XVX6O*@Z!imVyB-zo9*<is<2Npd9`!2 zTxy_nH^`-OuxP}`v_K}UapBJSV7H^W@hfo_GMumBwl_aHb+cO<$ALtScg5!9l#8u; zV}!;-8y_Qfk2V>d6brR#uQqSKz+b>WRtT+B*zW4jLylSJ&0+*%)YCFzFIk1xbS!I> zI0%K?BX4m}CMEl#aRBrqi?a!c#xUE8ZqtDpqMFy_er>c!xgat%HW9@_I$kc0>=CF9 zIPr1BItgDjUDbJ+p;F3LzfvYM?fsfhsD|S{`F!3QZn}+=g=?dnLd<hUl<}Vqshsp} zYJhUxqEZ4kGc3t7#zdL8qpk6}_ot9+W+@K8rdN*lDc?xex^un(RlBBX8(?(GAh?#f z^e#$W_!eSSO?KT3RHHt1+g?tS4rPTh=-4@Uh*KR;Sp4o)FDLit5Tyg_hc0DT@q!VW z7w&9-s4+$fL83+#-03Y(NuX37j=fw&{#pKT4hqo|;4JX$v&iH)lqJ&f*)sP0cL7>; zB5pRhazL<uYde0geBYM#37yWD78L73DGF;EoxD8o88uAs;}HI-&(`Ij4y!@8=}fXF zC8kLwH;c3WhkUgd%U;zDnEDB;+Cv~ZULy9t6=)f}XXuhC{!)&5vjXj6iJJ|TE}gsd zVs}Hu|GMzLFa(*WzU}jezYI1=!7UTKsuI+QvC}1XS(gWm7gK*SGp#r>oR4<cC`3$p zk3V?b;fAQ4q?TS1ERx%1b(#c6y%>{2*?QQa-m+uaQ0tppY3_I{s(XXCy8XQ#+n>YH zY>lgoHqI3(9NmCF0)^2HGPIyyaR2gV<Eo@EUubTT5f(cU{h9oPJVzNDoeOhFnaX?w z4{_TBGzRjRcktTDARh&7?WyLfQ;~&>GP>~m=*nuNQ*9lIOY}}MqblE9>JnoW_1UFb z@>o0bl4uYvj!78U=OpOfm4XEMs{4f#_w~<j^kDFa@?b6vrb#*&$npOb*p0LrEA~5X zdidJv?=6PdkW%_o**xbhg}h8%X<7pdL|d!=EbytH+-srDC=y{F;~)sbQZdGi9~Zi| zEy|CWu8@2W9dBUA9oIbBkobApEsq^&dhw9Wa42HNoP+Cl-;DU_;#sCNOZ+t)pCM)o zBNK$JnH!r9pg(ZnM&LvZ*}J?hN--B?KrRB8pAQ6{qd<5M`Wd`u;(5<Xy#n%Eb^AqR zz_i$iz?;Kimu~uEuDS$70TcZWBcDI)O4uVTa_l(N7G@xdYA~E!l6TtP@LW4=*z3<k zTt~v)S`tjuM^^TsxA!(h3wzH-(&>T#Obs*Q_JYgjrZqSbj%RBRDK?H{e@%fRryzWD z^WEqwHnYW~+f37}>8T4XEQ=7l<trhWJ6=i)YoIi+VGdb>F0cKUdP++s?Y|><$o%+| z9n2g{l>$}b&Ou7;JOJE0G!5{yp-uUPq1mFy5c{(DLNrGEj1NFy^<-ocub3mErR4BW zo-7v~jflX2L{*34?#o?|u3n3$K-eR%%>K=B80a_+bAi1REH9-uZn$DuTfGG#Q`qrJ zcknbN6lB^{y&Ns#J@_6*y%(*&>3L+<=xn4FF->m<>*a*{-HDvAKLmg7#q!$6dVhsg z2;gby-k>{GYuXbok%^*s<ZCw904&2`Z9Khk#3Z`dH%WuH(1RTS;9JLH=mzF;dY2F; zDWD>tTr7~FrVs=ZYE=i4xMiFGKuxR6f9@%io5ulAStw0c!p;wKzT;N2ceR>nD0;&; zeYX6}57ad-E_j3{VXFV)W7hau_%R{$wK9!tEQOeg$#CZ$KMM&#yhQ^=w4_RRjN>-@ zY#f;pES(I0lSa9|cOguvP`C*;I`B(Lq!W!0yn%M*Lg{v7pp;0+BF9q1a>gZD$qVL_ z9;(Ddvvw<@-~EweRR^$2<>mj?<q#`^*Q$th=`Ar$D3rEG30}Z&ly!mRY9nFD$AAz7 z9u``J^7gCj=cA%#nm?Kthx%n~xf-2ItULjxmc<dWlb)33BBcTVsH^tVS02vQD@O;R z8dy@p@s74R;pjFf$I%2J5BAk9i8YIWJ~Cn{AwRhppOvzfv!TXXnR(aqdhCk*NFO8K z@naXIQTTfDrkU0OCM!!ops{kE06fFT4Y6@0TZ5<TPs}<lw^)pS^arXcFjHEU9I8Q8 zTIw6ZN~(Qp<C7?q=s@&dlP&m%b6$-XstAerT?bbcgSBCf)g9eXAS(yrg%O_LIL+OC zA0?yU*Xi*|r*i~&;RIuq1haqbPLK&DrqV0#&!!)hcPZ0RuoQ-vN4cF0rj*NSyun7j zXAjdw9qr>#l#;7KQ5}>X4aqR=ly;S>TAMSUh+=>e)sgYxgP%A=p|2TE5wOk;WM$Sl zwDRJ9sdH;jr|t9~DzVTleIA61Gww9?Vm~4WPQ9k)>v+YOfW)4VJP)%ayUS<tfm$?G zVzqsMQ?Hc<A(;a$)1a8e&-ul29U3}NYByXnxDRsRSwiy5NA4z>6|-QNwB}9xl#wXT zG?7GeaDJxlx(8q}$a8ovlI?B3f~!psH+Kihj;SmnH`K7a%q4I_qh81`Y)b&5N})2g zkPc>PpDt0ss`fK@)3Szk)Z}3i%c!xD6!}|>Vv?48^jkI=f33b*H@k+1T$++wJsEx) zW4<$?6de1oFo^ug=fE4f<7k3#d%TEdLq=OujDA&&g8Np3r#o~K;?V|#20}5Gub|;X z{OKC~m(+b5HVnmM6pU{{v$YAb8gy0y!gkiK)yVyv|EZ*QeT|MFre|r_R_~Lu<f_+S zP1X0*a3}Dey*S9&NsEJe#Egj(L#oYcIIcZ=b`zEfC(DYROEzB78f20@hn7t-%hIvp zQNlZXF(~Vi)b5(IGIL<Lbg7|S;W!0mPY4AAQTuo7rJY~YAkF76cn;>{z~zr1CEPH< zEiIf2pJ<Pb;;ZpO3=T)LfQmW^eSPoUu^s@q<SHcQwU_2^ChVjol+gF_dMO8ZT!5tW zEy^4FckLG`_)Ltt*^U~ugo*&Z4)qlJxs1ia`WQr}mGDiokQm<<Q-kG5Enh&X?Iguy zpQ2*r3Z4wpoJb23v4@47Z9>ibZn|A$KQZ#!tYt8tTfPg7=)e-dCH$PC{!o{2_+!My zk_Z^BD70)S*OXLTH{cbAK*LOPb?^0jFTKn2mj{zFiKnq~6ie}=m}@(2J2gXM-LkfN zrX&wB4<PoTY;XLUx_By|HJ~wG3pJi)UsA;hx9jpil;TghSD!435bp4eRE>|dzJSM= z3*9<gHla2Njy;Z0**YDkJ13Nwssnx@TXQVyHVJMj-QrSwqv?PKCUCqWz*2ln@GBP+ zs3=i~%!Kx(rrnlr)c-QpS<OABmEeE*<>{P3)DRt=nG@oW7ru#}ErWk}bjEZy^WgB; z0Q&-P2lrcIL`+;-{lEUm7l@0dLFebgWoB-Cnw-$Mgss9$@lZhj?Q%ML!$B)wNZv9= zt%32W6%kCOTT~OE)H7YJkC`}Ilv!YLHc7$g$Bf)t50WWfmXS-0S`I^u3<}O#3vry_ z*-poDdTeZ<Sw<E5j6{!mbB*kqC#{yf)?PU;!mp*q@Utmmd2_hn2|;@avdQ`zJNSr2 z@gE<-_LICqR1=t}o5D?hb{qPx5$nN4_^BUl;d)ul8%~i_$vs7zR@P`xFL*TZ#$4lZ zg<g^cZ>~g++pV7bdk3hf(gtTZl=^^SzkFqGzv;?X%njgt=7TZz7<Q?c86u6RB*KPo z*hpK@$vE$08CIh3@~cOutZ?%i5rREty4$t%3NJO8vbO1yI``KO?VCb|)K!gl<}k%S zRfw-?n4(PwHA#6aM`mtVWp9V%+!O^vMuMcb1A7RP3JRCo)$SP5p6H&w8c=dKXap(q zeD+eUa()~1u+`{s4N6Arn{fW6Zo|$!B>Y{6osxoSdswSRjk1-sTrKL5fmdsc>*X=+ z1pn={jiyeWc0SdoT3xd8xNH5}z*HOeMyP9p&ZT_Ph9EAn-*eLSeM$o;A+v>hFq`OH zJ#Q3;tT+72MRc)bpQ(Z(?3HpBafK~Ij<46zT%??tkKh_hR9?Ml8W?R_Uh~dVhK|;Y z40v^R3<?QwIUkvNIak}}W|9FQKz5aECoaK6B+Z+-@l%QPKb54>q~8&zGG}J`*QWVg zjX-1}Q`SYz(2jA=w|m90#X(3W_TcU9c&WNjj=O~jxd=-Xb3&>|2cJfoLIjH{U>dM` zag~VmoSht8fl+WTv`kTYo~m%!_R=uWs0ax39{3bK@IyZ38Pso*I8@JSv%iK%H@w|o zOx3%qjX1FP_Jdnm(Sbs?tzktiF863kWE?kMDc%iAG(5(NdXy19-ppP+zvZ;Lc+>S3 zk_u!{UMEIuvd5b1!cyC|S`Jl~Lp<Nv4nUULnRJJpzVLM>3`@1D&+`esAIwWL?rq{y zD8)NdB}Z=CxJd|^Z;Uss@Wih}ng21j!Bj(4+-OG5?#t9m=fBV1qO0x`7&hxDpObZ6 zmTlmXXj;+DyoQa#5^k@z+a!8*ck9fw{VQ2xX@57SJB=%JM|DI|Z6RMqZem066oH+v z4OBYyEu|G{U_XKyD2_dKg-=O}%q`e$x;oR$LkTY#%-IT&V`nEfv7HgOib&%|u~v!L zW-9s~pK|&LyP^-dLEb{>0%sTAfia=>aM3k<d$&i8b!-}EzJMmb^C8RaG&%he_2<0! z%p(Dtt{0r=ODd_5r#a45I|`PtVZkO4QzX7L)`f|$I2>v5wZ+cH!NQ7`&Z-!CxwSt~ z+~L?2cHZvZ4`L?f_TaLapy|P&9t&?+Wj->sv;qynMPE0rJB_OPnN4dQd0oqxEo6v! zvDdyH??Fy1jEh5%qK~4@Hm^S;`#=ca#ZE8;^E@Wqki#W@R3hHepA1{An_1$MJ-jQ_ zuWgeVX<Jr%tlc-^9t#1-a=U5Wq+gkbBr<~HsoWR*(PQPXH7)^KecvUMP-)egob)@X zGkZVW138CIzrYwKQ!%|fttbCT8m0Qic*aJOSbf8iom=yUyEsAn7a(y4m@K>B1OW62 zGwn=`|6~#Jn$!XN7#s?^5dpKGhj{%Ok`=XSm<9r<jOe|?U~%I2=+;amkVaIb%8ku< zkygsG*w?2uy!ILsg!4$1V>YSR;iTGKFGx~O+|%d&^E-qq-5Nq&4SNi70>*OK)V%NJ zm_WN><F_*tH-;VS5aTXdw&m=+R)`=ZgqFS*X+F8>f}illPW8$zFM+|#_T2PaWi-WP zzm0xIw|*WIQvtrkXXJ5IEZ7Izo8)DkmIFA{_+8g!zTG;Q;LUQ;0H#42X&<Jr81=pg z4~2EucXhEFtMlT8T`_jF!OCX)1ifk6G+}CIse7kTR4c|+;O$zQx*lVZnSN%4sJtd& zLP*CR{s|v@u$T;9;aNFCACxB6b`}o{u%p&=SP&FGIPC9+CPz@5&(NpsLEfNWeLQL9 zqbAyK#_FI{zTT2*Uc`$QG*sbFS3MiSng_zosl0=*#KyHXgR3R#qo*bti|stqa<cTQ z$JUm>$GTYsuxRPfR{%8y@L>wIrZK4_cp|(@0)c^;Q`zNw`45-mJ8y-VMSIfkWk~%F zF>4h<flUd42hlw}WWB-;%Q(-Bqs3sZrG`|IfKaFU1+?)6SOgQsc!V>4*}qv}pnogG zX^pt!EM>uH6RaCRGa^xjh5JO>rEThr-#G*DUyh_tVo6`$lx_SOF@0+a;|<mmp|2ct zsXIFoZTeG(wl`Mub3hiS3ideKx#is-5_0`N((FipM%xYOx16)iEY&@x+W;5Bvsb!q zp++E-+F670wD7Ycg>GIqUU-h%n`4F&1M|=8<<t6sNUT73uW{wbBN3>ZlCLAr<6Gbe z5E2WT=Yq{|C=`FXs6k%@?F2d7=XmvRYsCej8TZjC5}<8R;qUhk9$@*XjabODW>vK< ze_Nm5yARN3nI3(wXK7C3(RE{(3^D{CrgJ<0a&;e!>e3HjpwjY0gQ^zw<Q@>V;FI<f z7$Hr@Rt1omVKzCHuNtbX@0i{V@J4RA$ZA@TZQM|y8`3$T()-|XC{iN{$7se>v#YBS z1`%A5hyghcd9)@1u&sFSjC8SB`{N1W9Ib72ncwo5?MsVz!R8Ta;if2VPKL*9YYPm3 z+J3=RULMt<GK-wcgX|Y+pJsH^?Y-hcEZ3w8klv@MCMqQNGHK6xE7h?-Q&KUTN$Pf# zfFbr{ho+TXw5Vs<3bzYd7F?@BB;ef_zUriF^h^E`w|fjtukF{2O?`3V*XfO@R;3e^ z!TZQ7aWHs8JU;&$N+uZ+sk7WpJta6nQuMa!`cCzN8SR%i69a$WO0O-y>EWo@Qx02+ zAOz|vC_i@~eg<<rKGN?WgDqJ4u7~v1qF2zf6ZfCvTw@wcL<_Hqia4e;JtOdAftVsQ zvW`RkXXj18(%}l~0<T0~B$HIOQ5-*PO=yP0!iS<t=w6ce$oSb>s!~$e^XzCL==)t~ zX5z9Yx-MSEPFddG2<K;|J#?Ek>sZXLdNma<C7}X`ZrbzlT==hid3aE_{#|tj`uKHx zb4^hvktxjYa3zy+Cl=f-K08Uk?}%D6!=7bZX3;KXC{Sb2{pBSU`4TrBfFy+>P?8;B UdNlX<UtPT)08C$;$*@2`0AjyQa{vGU literal 0 HcmV?d00001 From dfeafcefe388092fb2c5b546a629b884b08ea103 Mon Sep 17 00:00:00 2001 From: Dylan Wong <user.name> Date: Thu, 2 Nov 2023 11:58:57 -0700 Subject: [PATCH 14/58] added Picture --- src/components/Picture.jsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/Picture.jsx b/src/components/Picture.jsx index 6236ab2..cc5345d 100644 --- a/src/components/Picture.jsx +++ b/src/components/Picture.jsx @@ -1,5 +1,12 @@ const Picture = ({ picture }) => { - return <div>Picture</div>; + return ( + <div> + <img + className="shadow-[20px_-16px_0px_0px] shadow-ewb-green" + src={picture} + alt="" + /> + </div> + ); }; - export default Picture; From bd5d8ebe541d5186fe3d41bc2fa098ede37da968 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Thu, 2 Nov 2023 23:42:38 -0700 Subject: [PATCH 15/58] fix styling --- src/app/page.js | 2 ++ src/components/home/Event.jsx | 52 +++++++++++----------------------- src/components/home/Events.jsx | 19 ++++++++++++- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/app/page.js b/src/app/page.js index 7f02076..6118389 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -2,6 +2,7 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; +import Events from "@/components/home/Events"; const Home = () => { return ( <> @@ -9,6 +10,7 @@ const Home = () => { <About /> <WhyJoin /> <Projects /> + <Events /> </> ); }; diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index 82f83d7..fed9345 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -1,44 +1,24 @@ -// Color Passing In: blue -> blue, anything else -> green -// Date Start: Month/Day/Start Time -// Date End: End Time -// Include AM / PM on time -// Pass Month as ALL CAPS Three Letter Word - +import { COLORS } from "@/data/colors"; +const getTimeString = (date) => { + const dateArr = date.toLocaleTimeString().split(":"); + return `${dateArr[0]}:${dateArr[1]}${dateArr[2].split(" ")[1]}`; +}; const Event = ({ start, end, location, name, descripton, color }) => { - const startDate = start.split("/"); - - let bgcolor = ""; - if (color === "blue") { - bgcolor = "#1051D3"; - } else { - bgcolor = "#80C393"; - } - return ( - <div className=" bg-ewb-blue-100 w-4/6 inline-flex"> + <div className="bg-ewb-blue-100 flex w-full font-bold"> <div - className="text-white text-center max-w-fit w-1/4 pt-6 pb-1" - style={{ backgroundColor: `${bgcolor}` }} + className={`text-4xl text-white text-center w-1/6 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} > - <h1 className="font-bold text-6xl break-all px-12 align-middle"> - {startDate[0]} {startDate[1]} - </h1> - <p className="font-normal text-2xl align-middle"> - {startDate[2]}-{end} - </p> - </div> - - <div className="px-3 w-3/4"> - <div - className="pt-3 text-ewb-blue-200 text-[40px] font-bold leading-[48px]" - style={{ color: `${bgcolor}` }} - > - {name} + <div>{start.toString().split(" ")[1]}</div> + <div>{start.getDate()}</div> + <div className="font-normal text-lg"> + {getTimeString(start)}- {getTimeString(end)} </div> - <div className="leading-7 text-ewb-black font-bold text-[19px]"> - {location} - </div> - <div className="leading-7 text-[19px]">{descripton}</div> + </div> + <div className="p-3 w-5/6 text-ewb-black "> + <div className={`text-2xl ${COLORS[color].text}`}>{name}</div> + <div className="text-base">{location}</div> + <div className="text-base font-normal">{descripton}</div> </div> </div> ); diff --git a/src/components/home/Events.jsx b/src/components/home/Events.jsx index 72795a4..8b0039e 100644 --- a/src/components/home/Events.jsx +++ b/src/components/home/Events.jsx @@ -1,5 +1,22 @@ +import { EVENTS } from "@/data/mockEvents"; +import Event from "./Event"; + const Events = () => { - return <div>Events</div>; + return ( + <div className="w-7/12 flex flex-col items-center justify-center gap-4"> + {EVENTS.map((event, index) => ( + <Event + key={index} + start={event.start} + end={event.end} + location={event.location} + name={event.name} + descripton={event.description} + color={event.color} + /> + ))} + </div> + ); }; export default Events; From a7f86e396cb199652c2849165a63680cf97e38e6 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Thu, 2 Nov 2023 23:50:43 -0700 Subject: [PATCH 16/58] fix styling --- src/app/page.js | 5 ++++- src/components/Subtitle.jsx | 17 ++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/app/page.js b/src/app/page.js index 5a6c71e..2129c45 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -10,7 +10,10 @@ const Home = () => { <About /> <WhyJoin /> <Projects /> - <Subtitle /> + <Subtitle + title="Motivation" + descripton=" Rural communities are already disadvantaged socioeconomically" + /> </> ); }; diff --git a/src/components/Subtitle.jsx b/src/components/Subtitle.jsx index 66c65d5..414745c 100644 --- a/src/components/Subtitle.jsx +++ b/src/components/Subtitle.jsx @@ -1,14 +1,13 @@ -import React from "react"; -const Subtitle = ({ title = "| Motivation" }) => { - // const Subtitle = ({ title }) => { - const blueColor = "#1151D3"; - const greenColor = "#80C393"; +const Subtitle = ({ title, descripton }) => { return ( <div> - <h2 style={{ color: blueColor }}>{title}</h2> - <p style={{ color: greenColor }}> - Rural communities are already disadvantaged socioeconomically - </p> + <div className="flex items-center gap-1"> + <div className="bg-ewb-green h-5 w-1" /> + <div className="text-ewb-blue-200 text-2xl font-bold">{title}</div> + </div> + <div className="text-ewb-green font-semibold text-lg ml-2"> + {descripton} + </div> </div> ); }; From c3a34272edf7b2815e0c06b886e5330769d6fdf9 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Thu, 2 Nov 2023 23:51:24 -0700 Subject: [PATCH 17/58] remove from page --- src/app/page.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/app/page.js b/src/app/page.js index 2129c45..0ca661a 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -2,7 +2,7 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; -import Subtitle from "@/components/Subtitle"; + const Home = () => { return ( <> @@ -10,10 +10,6 @@ const Home = () => { <About /> <WhyJoin /> <Projects /> - <Subtitle - title="Motivation" - descripton=" Rural communities are already disadvantaged socioeconomically" - /> </> ); }; From 515810dbbb71d915dd777be71e5e519ff5487fa7 Mon Sep 17 00:00:00 2001 From: Stanley Lew <stanley43595@gmail.com> Date: Fri, 3 Nov 2023 00:40:52 -0700 Subject: [PATCH 18/58] join us section added --- src/app/page.js | 2 ++ src/components/home/Join.jsx | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/app/page.js b/src/app/page.js index 6118389..cd2cd13 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -3,6 +3,7 @@ import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; import WhyJoin from "@/components/home/Contacts"; import Events from "@/components/home/Events"; +import Join from "@/components/home/Join"; const Home = () => { return ( <> @@ -11,6 +12,7 @@ const Home = () => { <WhyJoin /> <Projects /> <Events /> + <Join /> </> ); }; diff --git a/src/components/home/Join.jsx b/src/components/home/Join.jsx index e549ca4..17e0a4d 100644 --- a/src/components/home/Join.jsx +++ b/src/components/home/Join.jsx @@ -1,5 +1,14 @@ +import Title from "../Title"; +import Social from "./Social"; const Join = () => { - return <div>Join</div>; + return ( + <div className = "p-10"> + <Title subTitle = "JOIN US AND GET INVOLVED" title = "JOIN US"/> + <div className = "p-10"> + <Social /> + </div> + </div> + ); }; export default Join; From 7dc8937046156b1b0497659460e4678536865b02 Mon Sep 17 00:00:00 2001 From: Stanley Lew <stanley43595@gmail.com> Date: Fri, 3 Nov 2023 00:46:25 -0700 Subject: [PATCH 19/58] forgot to format code and stuff whoops --- src/components/home/Join.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/home/Join.jsx b/src/components/home/Join.jsx index 17e0a4d..f48d21b 100644 --- a/src/components/home/Join.jsx +++ b/src/components/home/Join.jsx @@ -2,9 +2,9 @@ import Title from "../Title"; import Social from "./Social"; const Join = () => { return ( - <div className = "p-10"> - <Title subTitle = "JOIN US AND GET INVOLVED" title = "JOIN US"/> - <div className = "p-10"> + <div className="p-10"> + <Title subTitle="JOIN US AND GET INVOLVED" title="JOIN US" /> + <div className="p-10"> <Social /> </div> </div> From 3fa4b2ba6cbce5c5fcf55a81f21e23ceab0d456b Mon Sep 17 00:00:00 2001 From: Stanley Lew <stanley43595@gmail.com> Date: Fri, 3 Nov 2023 02:01:30 -0700 Subject: [PATCH 20/58] Added costa rica page --- src/app/projects/costa-rica/page.js | 8 ++- src/components/Subtitle.jsx | 4 +- src/components/projects/CostaRica.jsx | 85 ++++++++++++++++++++++++++- 3 files changed, 92 insertions(+), 5 deletions(-) diff --git a/src/app/projects/costa-rica/page.js b/src/app/projects/costa-rica/page.js index a54c709..a37e943 100644 --- a/src/app/projects/costa-rica/page.js +++ b/src/app/projects/costa-rica/page.js @@ -1,7 +1,11 @@ import React from "react"; - +import CostaRica from "@/components/projects/CostaRica"; const page = () => { - return <div>page</div>; + return ( + <> + <CostaRica /> + </> + ); }; export default page; diff --git a/src/components/Subtitle.jsx b/src/components/Subtitle.jsx index 414745c..23e4955 100644 --- a/src/components/Subtitle.jsx +++ b/src/components/Subtitle.jsx @@ -1,4 +1,4 @@ -const Subtitle = ({ title, descripton }) => { +const Subtitle = ({ title, description }) => { return ( <div> <div className="flex items-center gap-1"> @@ -6,7 +6,7 @@ const Subtitle = ({ title, descripton }) => { <div className="text-ewb-blue-200 text-2xl font-bold">{title}</div> </div> <div className="text-ewb-green font-semibold text-lg ml-2"> - {descripton} + {description} </div> </div> ); diff --git a/src/components/projects/CostaRica.jsx b/src/components/projects/CostaRica.jsx index b227e2b..e5a1595 100644 --- a/src/components/projects/CostaRica.jsx +++ b/src/components/projects/CostaRica.jsx @@ -1,5 +1,88 @@ +import Subtitle from "../Subtitle"; const CostaRica = () => { - return <div>CostaRica</div>; + return ( + <div className="grid grid-cols-3 gap-10 m-28"> + <div className="col-span-2 pb-4"> + <Subtitle title="General Overview"></Subtitle> + <p className="ml-2 mt-1"> + In collaboration with Claudia Chaves Villarreal, a Ph.D. Candidate and + her organization Biogas Pococi, we are working to implement + Biodigestor tanks and micro controlling systems. She has already + implemented this system for 38 families! The Biodigestor provides + clean fuel without the emission of harmful particulates that has had + detrimental impacts on the health of rural inhabitants. The + Biodigestor also provides a source of fertilizer for farmers to use. + </p> + </div> + <div> + <img + src="/images/CostaRica/CostaRica1.gif" + alt="Costa Rica Image 1" + ></img> + </div> + + <div className="col-span-2 pb-4"> + <Subtitle + title="Motivation" + description="Rural communities are already disadvantaged socioeconomically" + ></Subtitle> + <p className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li> + Include them in the building process by teaching them the basics + of engineering + </li> + <li>Inspire them to peruse education</li> + <li>Improve infrastructure of land and quality of life</li> + </ul> + </p> + </div> + <div> + <img + src="/images/CostaRica/CostaRica2.gif" + alt="Costa Rica Image 2" + ></img> + </div> + + <div className="col-span-3 pb-4"> + <Subtitle + title="Educational Micro Controller Projects" + description="Education is very hard to obtain affecting isolated rural communities the most" + ></Subtitle> + <p className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li> + Providing some micro controllers and electronic parts allow for + community members, from kids to adults, gain a valuable skill that + improves their future opportunities + </li> + <li> + Is beneficial for both the volunteer(you), to gain once a lifetime + experience, and to the disadvantage community by improving their + way of life + </li> + <li> + {" "} + A water treatment system will also be implemented, to learn more + check out the{" "} + <a + href="water-quality-and-filtration" + className="text-ewb-blue-200 font-bold hover:text-ewb-green" + > + water quality and filtration + </a> + </li> + </ul> + </p> + </div> + </div> + ); }; export default CostaRica; From 3aed59309b7b8462b90c39e06f8d682243e6748e Mon Sep 17 00:00:00 2001 From: Byron Bhuiyan <rafidb8@gmail.com> Date: Fri, 3 Nov 2023 03:49:48 -0700 Subject: [PATCH 21/58] Create PR for meeting (not ready) --- src/app/projects/air-quality-system/page.js | 8 ++- src/components/projects/ AirQuality.jsx | 80 ++++++++++++++++++++- 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/src/app/projects/air-quality-system/page.js b/src/app/projects/air-quality-system/page.js index db4d387..b5f9c7f 100644 --- a/src/app/projects/air-quality-system/page.js +++ b/src/app/projects/air-quality-system/page.js @@ -1,5 +1,11 @@ +import React from "react"; +import AirQuality from "@/components/projects/ AirQuality"; const page = () => { - return <div>page</div>; + return ( + <> + <AirQuality /> + </> + ); }; export default page; diff --git a/src/components/projects/ AirQuality.jsx b/src/components/projects/ AirQuality.jsx index 545ff0d..87fa9fa 100644 --- a/src/components/projects/ AirQuality.jsx +++ b/src/components/projects/ AirQuality.jsx @@ -1,5 +1,83 @@ +import React from "react"; +import Subtitle from "../Subtitle"; const AirQuality = () => { - return <div> AirQuality</div>; + return ( + <div className="grid grid-cols-3 gap-10 m-28"> + <div className="col-span-2 pb-4"> + <Subtitle title="General Overview"></Subtitle> + <p className="ml-2 mt-1"> + Air quality has overtime deteriorated due to developing countries + industrialization. This has in turn put the health of population in + risk of respiratory disorders, cardiovascular diseases and + asthma/allergy. This project focuses on creating a micro controlled + gas sensor system aimed at alerting the user when dangerous levels of + pollutants are in the air. We are also developing an automated air + filtration system to decrease exposure from harmful particulates in + the air. + </p> + </div> + <div> + <img + src="/images/airQualitySystem/AirQualitySystem1.webp" + alt="Air Quality System 1" + /> + </div> + + <div className="col-span-4 col-start-1 bg-white p-6 mb-6 "> + <Subtitle title="Motivation"></Subtitle> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li className="mb-2"> + Air quality poses a threat to people all over the world, by + developing this system; we present a solution that would otherwise + be unobtainable to developing communities. + </li> + <li className="mb-2"> + Make an impact on someone's life by improving quality of life + through smart sensors and ventilation technology + </li> + <li className="mb-2"> + Gain on hands experience on how to calibrate and program sensors + </li> + </ul> + </div> + <div> + <img + src="/images/airQualitySystem/AirQualitySystem2.webp" + alt="Air Quality System 2" + /> + </div> + + <div className="col-span-3 bg-white p-6 "> + <Subtitle title="Micro Controller"></Subtitle> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li className="mb-2"> + Gas sensor system will be able to detect a series of contaminants in + the are including Ozone, Carbon Monoxide, Methane, and CO2. + </li> + <li className="mb-2"> + Ventilation system will be controlled by gas sensing micro + controller to maximize power and filter life. + </li> + <li className="mb-2"> + Gas Sensing unit will be able to alert user and recommend proper + procedure to avoid unnecessary exposure to harmful particulates + </li> + </ul> + </div> + <div> + <img + src="/images/airQualitySystem/AirQualitySystem3.gif" + alt="Air Quality System 3" + /> + </div> + </div> + ); }; export default AirQuality; From 05605228bb1530893154cb6885dcad61a46f8606 Mon Sep 17 00:00:00 2001 From: Byron Bhuiyan <rafidb8@gmail.com> Date: Fri, 3 Nov 2023 04:15:55 -0700 Subject: [PATCH 22/58] made improvements --- src/components/projects/ AirQuality.jsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/projects/ AirQuality.jsx b/src/components/projects/ AirQuality.jsx index 87fa9fa..05b7d3a 100644 --- a/src/components/projects/ AirQuality.jsx +++ b/src/components/projects/ AirQuality.jsx @@ -2,8 +2,8 @@ import React from "react"; import Subtitle from "../Subtitle"; const AirQuality = () => { return ( - <div className="grid grid-cols-3 gap-10 m-28"> - <div className="col-span-2 pb-4"> + <div className="grid grid-cols-3 gap-10 m-28 justify-around"> + <div className="col-span-2 pb-4 "> <Subtitle title="General Overview"></Subtitle> <p className="ml-2 mt-1"> Air quality has overtime deteriorated due to developing countries @@ -23,7 +23,7 @@ const AirQuality = () => { /> </div> - <div className="col-span-4 col-start-1 bg-white p-6 mb-6 "> + <div className="col-span-2 col-start-0 bg-white mb-2 "> <Subtitle title="Motivation"></Subtitle> <ul className="marker:text-ewb-blue-200 ml-4" @@ -35,7 +35,7 @@ const AirQuality = () => { be unobtainable to developing communities. </li> <li className="mb-2"> - Make an impact on someone's life by improving quality of life + Make an impact on someone's life by improving quality of life through smart sensors and ventilation technology </li> <li className="mb-2"> @@ -50,7 +50,7 @@ const AirQuality = () => { /> </div> - <div className="col-span-3 bg-white p-6 "> + <div className="col-span-2 col-start-1 bg-white mb-2 "> <Subtitle title="Micro Controller"></Subtitle> <ul className="marker:text-ewb-blue-200 ml-4" From bd48652e22a1327bfb36c6ccd9fd74757ef7ef6d Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 3 Nov 2023 10:40:08 -0700 Subject: [PATCH 23/58] kevin/footer --- src/components/Footer.jsx | 55 +++++++++++++-------------------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 941d635..3853619 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -7,43 +7,24 @@ const Footer = () => { <div className="w-full bg-ewb-green"> <p className="leading-4">   </p> - <div className="w-full bg-ewb-blue-200 border-t-8 border-ewb-green"> - <br /> - <br /> - <br /> - <br /> - <br /> - <table className="w-full"> - <tbody> - <tr> - <td className="w-1/2"> - <div className="mt-6 mx-6"> - <div className="inline-flex"> - <Image - src={whiteLogo} - alt="EWB Logo" - className="scale-125" - /> - <div className="text-white pt-10 pl-4 font-bold text-xl"> - EWB at UCR - </div> - </div> - </div> - </td> - <td className="w-1/2 text-right text-white py-6 px-8 text-sm"> - <div className="inline-flex scale-125 px-1"> - <div className="mx-2"> {ICONS["email"]} </div>{" "} - <div> {ICONS["facebook"]} </div> - </div> - <div>900 University Ave</div> - <div>Riverside, CA 92521</div> - <div>United States</div> - <div>ewb.ucriverside@gmail.com</div> - <div>619-395-3534</div> - </td> - </tr> - </tbody> - </table> + <div className="w-full bg-ewb-blue-200 border-t-8 border-t-ewb-green pt-32 flex justify-between"> + <div className="inline-flex pl-6 pt-10 text-white font-bold text-xl"> + <Image src={whiteLogo} alt="EWB Logo" className="scale-125" /> + <p className="pt-16 pl-4">EWB at UCR</p> + </div> + + <div className="px-1 text-right text-white m-3 text-sm"> + <div className="ml-3 scale-125 float-right"> + {" "} + {ICONS["facebook"]}{" "} + </div> + <div className="scale-125 float-right"> {ICONS["email"]} </div> + <p className="pt-4">900 University Ave</p> + <p>Riverside, CA 92521</p> + <p>United States</p> + <p>ewb.ucriverside@gmail.com</p> + <p>619-395-3534</p> + </div> </div> </div> ); From dc71b8bba3f3db8d94609fe614480e5ffd32591a Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 3 Nov 2023 14:31:57 -0700 Subject: [PATCH 24/58] kevin/footer --- src/components/Footer.jsx | 33 ++++++++++++------------------- src/components/home/Event.jsx | 37 +++++++++++++++-------------------- 2 files changed, 29 insertions(+), 41 deletions(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 3853619..b62a6b6 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -4,27 +4,20 @@ import { ICONS } from "@/data/icons"; const Footer = () => { return ( - <div className="w-full bg-ewb-green"> - <p className="leading-4">   </p> - - <div className="w-full bg-ewb-blue-200 border-t-8 border-t-ewb-green pt-32 flex justify-between"> - <div className="inline-flex pl-6 pt-10 text-white font-bold text-xl"> - <Image src={whiteLogo} alt="EWB Logo" className="scale-125" /> - <p className="pt-16 pl-4">EWB at UCR</p> - </div> + <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> + <div className="inline-flex pl-6 pt-10 text-white font-bold text-xl"> + <Image src={whiteLogo} alt="EWB Logo" className="scale-125" /> + <p className="pt-16 pl-4">EWB at UCR</p> + </div> - <div className="px-1 text-right text-white m-3 text-sm"> - <div className="ml-3 scale-125 float-right"> - {" "} - {ICONS["facebook"]}{" "} - </div> - <div className="scale-125 float-right"> {ICONS["email"]} </div> - <p className="pt-4">900 University Ave</p> - <p>Riverside, CA 92521</p> - <p>United States</p> - <p>ewb.ucriverside@gmail.com</p> - <p>619-395-3534</p> - </div> + <div className="px-1 text-right text-white m-3 text-sm"> + <div className="ml-3 scale-125 float-right">{ICONS["facebook"]}</div> + <div className="scale-125 float-right"> {ICONS["email"]} </div> + <p className="pt-4">900 University Ave</p> + <p>Riverside, CA 92521</p> + <p>United States</p> + <p>ewb.ucriverside@gmail.com</p> + <p>619-395-3534</p> </div> </div> ); diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index dd300dc..fed9345 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -1,29 +1,24 @@ import { COLORS } from "@/data/colors"; - -const Event = ({ start, end, location, name, description, color }) => { - const startDate = start.split("/"); - +const getTimeString = (date) => { + const dateArr = date.toLocaleTimeString().split(":"); + return `${dateArr[0]}:${dateArr[1]}${dateArr[2].split(" ")[1]}`; +}; +const Event = ({ start, end, location, name, descripton, color }) => { return ( - <div className=" bg-ewb-blue-100 w-3/5 inline-flex"> + <div className="bg-ewb-blue-100 flex w-full font-bold"> <div - className={`text-white text-center w-1/4 aspect-square p-1 flex flex-col items-center justify-center ${COLORS[color].bg}`} + className={`text-4xl text-white text-center w-1/6 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} > - <p className="font-bold text-6xl break-all px-4 align-middle "> - {startDate[0]} {startDate[1]} - </p> - <p className="font-normal text-2xl pl-1 text-center align-middle"> - {startDate[2]}-{end} - </p> - </div> - - <div className="px-3 w-3/4"> - <div - className={`pt-3 text-ewb-blue-200 text-4xl font-bold ${COLORS[color].text}`} - > - {name} + <div>{start.toString().split(" ")[1]}</div> + <div>{start.getDate()}</div> + <div className="font-normal text-lg"> + {getTimeString(start)}- {getTimeString(end)} </div> - <div className="text-ewb-black font-bold text-lg">{location}</div> - <div className=" text-lg">{description}</div> + </div> + <div className="p-3 w-5/6 text-ewb-black "> + <div className={`text-2xl ${COLORS[color].text}`}>{name}</div> + <div className="text-base">{location}</div> + <div className="text-base font-normal">{descripton}</div> </div> </div> ); From 6ee5382a4dbc9d3ac353d92c23265eaa2b65cc09 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 3 Nov 2023 14:41:55 -0700 Subject: [PATCH 25/58] revert page --- src/app/projects/costa-rica/page.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/app/projects/costa-rica/page.js b/src/app/projects/costa-rica/page.js index f07e9a3..a54c709 100644 --- a/src/app/projects/costa-rica/page.js +++ b/src/app/projects/costa-rica/page.js @@ -1,16 +1,7 @@ import React from "react"; -import Header from "../../../components/projects/Header"; const page = () => { - return ( - <div> - page - <Header - img="../../../../images/costaRica/CostaRicaHeader.webp" - title="Costa Rica" - /> - </div> - ); + return <div>page</div>; }; export default page; From 98179f353d9cdd2fe447eb88b3bfc3e0671dc428 Mon Sep 17 00:00:00 2001 From: Stanley Lew <stanley43595@gmail.com> Date: Fri, 3 Nov 2023 14:42:34 -0700 Subject: [PATCH 26/58] removed div --- src/components/home/Join.jsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/home/Join.jsx b/src/components/home/Join.jsx index f48d21b..cb1442a 100644 --- a/src/components/home/Join.jsx +++ b/src/components/home/Join.jsx @@ -2,11 +2,9 @@ import Title from "../Title"; import Social from "./Social"; const Join = () => { return ( - <div className="p-10"> + <div className="p-10 flex flex-col gap-y-8"> <Title subTitle="JOIN US AND GET INVOLVED" title="JOIN US" /> - <div className="p-10"> - <Social /> - </div> + <Social /> </div> ); }; From 34a29af939d1d3fbe4eab0f5dd64f54376fad16f Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 3 Nov 2023 14:42:42 -0700 Subject: [PATCH 27/58] add width full --- src/components/projects/Header.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/projects/Header.jsx b/src/components/projects/Header.jsx index 3675cce..c5adb5d 100644 --- a/src/components/projects/Header.jsx +++ b/src/components/projects/Header.jsx @@ -3,7 +3,7 @@ import Title from "../Title"; const Header = ({ img, title }) => { return ( <div> - <img src={img} alt="Image" className="mb-2.5" /> + <img src={img} alt="Image" className="mb-2.5 w-full" /> <Title subTitle="" title={title} /> </div> ); From 6d2d66c6834589aaf149f2196e513e3f82270b26 Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 3 Nov 2023 15:27:29 -0700 Subject: [PATCH 28/58] kevin/footer --- src/components/Footer.jsx | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index b62a6b6..80d92d0 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -1,23 +1,37 @@ import whiteLogo from "../../public/assets/whiteLogo.svg"; import Image from "next/image"; +import Link from "next/link"; import { ICONS } from "@/data/icons"; +import { LINKS } from "@/data/links"; const Footer = () => { return ( <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> <div className="inline-flex pl-6 pt-10 text-white font-bold text-xl"> <Image src={whiteLogo} alt="EWB Logo" className="scale-125" /> - <p className="pt-16 pl-4">EWB at UCR</p> + <p className="pl-4 pt-20">EWB at UCR</p> </div> - <div className="px-1 text-right text-white m-3 text-sm"> - <div className="ml-3 scale-125 float-right">{ICONS["facebook"]}</div> - <div className="scale-125 float-right"> {ICONS["email"]} </div> - <p className="pt-4">900 University Ave</p> - <p>Riverside, CA 92521</p> - <p>United States</p> - <p>ewb.ucriverside@gmail.com</p> - <p>619-395-3534</p> + <div className="text-right text-white text-sm flex flex-col m-0 p-0"> + <div className="flex flex-row scale-75 ml-20"> + {LINKS.map((social, index) => ( + <Link + key={index} + href={social.link} + className="no-underline text-white hover:text-ewb-white mx-1 flex flex-col items-center hover:-translate-y-0.5 duration-300" + > + <icons className="text-4xl">{ICONS[social.text]}</icons> + <div className="font-semibold uppercase">{social.text}</div> + </Link> + ))} + </div> + <div className="mx-4 pb-3"> + <div>900 University Ave</div> + <div>Riverside, CA 92521</div> + <div>United States</div> + <div>ewb.ucriverside@gmail.com</div> + <div>619-395-3534</div> + </div> </div> </div> ); From 51f2a0fa540a8fd117d6ebfd0cc847ea83776943 Mon Sep 17 00:00:00 2001 From: Stanley Lew <stanley43595@gmail.com> Date: Fri, 3 Nov 2023 16:40:32 -0700 Subject: [PATCH 29/58] made changes --- src/components/projects/CostaRica.jsx | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/components/projects/CostaRica.jsx b/src/components/projects/CostaRica.jsx index e5a1595..2dafb33 100644 --- a/src/components/projects/CostaRica.jsx +++ b/src/components/projects/CostaRica.jsx @@ -3,8 +3,8 @@ const CostaRica = () => { return ( <div className="grid grid-cols-3 gap-10 m-28"> <div className="col-span-2 pb-4"> - <Subtitle title="General Overview"></Subtitle> - <p className="ml-2 mt-1"> + <Subtitle title="General Overview"/> + <div className="ml-2 mt-1"> In collaboration with Claudia Chaves Villarreal, a Ph.D. Candidate and her organization Biogas Pococi, we are working to implement Biodigestor tanks and micro controlling systems. She has already @@ -12,21 +12,21 @@ const CostaRica = () => { clean fuel without the emission of harmful particulates that has had detrimental impacts on the health of rural inhabitants. The Biodigestor also provides a source of fertilizer for farmers to use. - </p> + </div> </div> <div> <img src="/images/CostaRica/CostaRica1.gif" alt="Costa Rica Image 1" - ></img> + /> </div> <div className="col-span-2 pb-4"> <Subtitle title="Motivation" description="Rural communities are already disadvantaged socioeconomically" - ></Subtitle> - <p className="ml-2 mt-1"> + /> + <div className="ml-2 mt-1"> <ul className="marker:text-ewb-blue-200 ml-4" style={{ listStyleType: "square" }} @@ -38,21 +38,21 @@ const CostaRica = () => { <li>Inspire them to peruse education</li> <li>Improve infrastructure of land and quality of life</li> </ul> - </p> + </div> </div> <div> <img src="/images/CostaRica/CostaRica2.gif" alt="Costa Rica Image 2" - ></img> + /> </div> <div className="col-span-3 pb-4"> <Subtitle title="Educational Micro Controller Projects" description="Education is very hard to obtain affecting isolated rural communities the most" - ></Subtitle> - <p className="ml-2 mt-1"> + /> + <div className="ml-2 mt-1"> <ul className="marker:text-ewb-blue-200 ml-4" style={{ listStyleType: "square" }} @@ -68,9 +68,8 @@ const CostaRica = () => { way of life </li> <li> - {" "} A water treatment system will also be implemented, to learn more - check out the{" "} + check out the {" "} <a href="water-quality-and-filtration" className="text-ewb-blue-200 font-bold hover:text-ewb-green" @@ -79,7 +78,7 @@ const CostaRica = () => { </a> </li> </ul> - </p> + </div> </div> </div> ); From 3f3719441f43ffad8c02c9787244fb887a8dbeba Mon Sep 17 00:00:00 2001 From: Stanley Lew <stanley43595@gmail.com> Date: Fri, 3 Nov 2023 16:42:54 -0700 Subject: [PATCH 30/58] forgot to format again whoopsies --- src/components/projects/CostaRica.jsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/components/projects/CostaRica.jsx b/src/components/projects/CostaRica.jsx index 2dafb33..15d824d 100644 --- a/src/components/projects/CostaRica.jsx +++ b/src/components/projects/CostaRica.jsx @@ -3,7 +3,7 @@ const CostaRica = () => { return ( <div className="grid grid-cols-3 gap-10 m-28"> <div className="col-span-2 pb-4"> - <Subtitle title="General Overview"/> + <Subtitle title="General Overview" /> <div className="ml-2 mt-1"> In collaboration with Claudia Chaves Villarreal, a Ph.D. Candidate and her organization Biogas Pococi, we are working to implement @@ -15,10 +15,7 @@ const CostaRica = () => { </div> </div> <div> - <img - src="/images/CostaRica/CostaRica1.gif" - alt="Costa Rica Image 1" - /> + <img src="/images/CostaRica/CostaRica1.gif" alt="Costa Rica Image 1" /> </div> <div className="col-span-2 pb-4"> @@ -41,10 +38,7 @@ const CostaRica = () => { </div> </div> <div> - <img - src="/images/CostaRica/CostaRica2.gif" - alt="Costa Rica Image 2" - /> + <img src="/images/CostaRica/CostaRica2.gif" alt="Costa Rica Image 2" /> </div> <div className="col-span-3 pb-4"> @@ -69,7 +63,7 @@ const CostaRica = () => { </li> <li> A water treatment system will also be implemented, to learn more - check out the {" "} + check out the{" "} <a href="water-quality-and-filtration" className="text-ewb-blue-200 font-bold hover:text-ewb-green" From ce19910fd27f2f3ebc2f2e2d1e8de073bc0da81d Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 3 Nov 2023 17:40:42 -0700 Subject: [PATCH 31/58] fix some stiling --- src/components/Footer.jsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 80d92d0..33f212a 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -7,25 +7,24 @@ import { LINKS } from "@/data/links"; const Footer = () => { return ( <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> - <div className="inline-flex pl-6 pt-10 text-white font-bold text-xl"> - <Image src={whiteLogo} alt="EWB Logo" className="scale-125" /> - <p className="pl-4 pt-20">EWB at UCR</p> + <div className="flex items-end m-3 gap-3 text-white font-bold text-xl w-1/2"> + <Image src={whiteLogo} alt="EWB Logo" /> + <p>EWB at UCR</p> </div> - <div className="text-right text-white text-sm flex flex-col m-0 p-0"> - <div className="flex flex-row scale-75 ml-20"> + <div className="text-right text-white text-sm flex flex-col m-0 p-0 mx-4 w-1/2"> + <div className="flex flex-row ml-20 self-end"> {LINKS.map((social, index) => ( <Link key={index} href={social.link} className="no-underline text-white hover:text-ewb-white mx-1 flex flex-col items-center hover:-translate-y-0.5 duration-300" > - <icons className="text-4xl">{ICONS[social.text]}</icons> - <div className="font-semibold uppercase">{social.text}</div> + <icons className="text-2xl">{ICONS[social.text]}</icons> </Link> ))} </div> - <div className="mx-4 pb-3"> + <div className="py-2"> <div>900 University Ave</div> <div>Riverside, CA 92521</div> <div>United States</div> From b9c490ef6626fa748fa55444b7d2dff3b91d7a15 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 3 Nov 2023 17:47:37 -0700 Subject: [PATCH 32/58] remove empty string --- src/components/projects/CostaRica.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/projects/CostaRica.jsx b/src/components/projects/CostaRica.jsx index 15d824d..4766788 100644 --- a/src/components/projects/CostaRica.jsx +++ b/src/components/projects/CostaRica.jsx @@ -63,7 +63,7 @@ const CostaRica = () => { </li> <li> A water treatment system will also be implemented, to learn more - check out the{" "} + check out the <a href="water-quality-and-filtration" className="text-ewb-blue-200 font-bold hover:text-ewb-green" From 3fed50b0d8ad628a68b6171dfe202a3cec2be7f4 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 3 Nov 2023 18:01:45 -0700 Subject: [PATCH 33/58] add header --- src/app/projects/costa-rica/page.js | 4 ++++ src/components/projects/Header.jsx | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/app/projects/costa-rica/page.js b/src/app/projects/costa-rica/page.js index a37e943..aad0954 100644 --- a/src/app/projects/costa-rica/page.js +++ b/src/app/projects/costa-rica/page.js @@ -1,8 +1,12 @@ import React from "react"; import CostaRica from "@/components/projects/CostaRica"; +import Header from "@/components/projects/Header"; +import header from "../../../../public/images/costaRica/CostaRicaHeader.webp"; + const page = () => { return ( <> + <Header img={header.src} title="Costa Rica Project" /> <CostaRica /> </> ); diff --git a/src/components/projects/Header.jsx b/src/components/projects/Header.jsx index c5adb5d..ac9e159 100644 --- a/src/components/projects/Header.jsx +++ b/src/components/projects/Header.jsx @@ -2,8 +2,8 @@ import Title from "../Title"; const Header = ({ img, title }) => { return ( - <div> - <img src={img} alt="Image" className="mb-2.5 w-full" /> + <div className="w-full"> + <img src={img} alt="Image" className="mb-3 w-full object-cover" /> <Title subTitle="" title={title} /> </div> ); From 7546d99a07de77d83acf91c07d6dbe69a3748b0a Mon Sep 17 00:00:00 2001 From: Byron Bhuiyan <rafidb8@gmail.com> Date: Fri, 3 Nov 2023 21:27:07 -0700 Subject: [PATCH 34/58] fixed formatting issues --- src/components/projects/ AirQuality.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/projects/ AirQuality.jsx b/src/components/projects/ AirQuality.jsx index 05b7d3a..dcfb3dd 100644 --- a/src/components/projects/ AirQuality.jsx +++ b/src/components/projects/ AirQuality.jsx @@ -2,8 +2,8 @@ import React from "react"; import Subtitle from "../Subtitle"; const AirQuality = () => { return ( - <div className="grid grid-cols-3 gap-10 m-28 justify-around"> - <div className="col-span-2 pb-4 "> + <div className="grid grid-cols-3 gap-10 m-28 justify-around "> + <div className="col-span-2 pb-4 w-5/6 "> <Subtitle title="General Overview"></Subtitle> <p className="ml-2 mt-1"> Air quality has overtime deteriorated due to developing countries @@ -23,7 +23,7 @@ const AirQuality = () => { /> </div> - <div className="col-span-2 col-start-0 bg-white mb-2 "> + <div className="col-span-2 col-start-0 bg-white mb-2 w-5/6 "> <Subtitle title="Motivation"></Subtitle> <ul className="marker:text-ewb-blue-200 ml-4" @@ -50,7 +50,7 @@ const AirQuality = () => { /> </div> - <div className="col-span-2 col-start-1 bg-white mb-2 "> + <div className="col-span-2 col-start-1 bg-white mb-2 w-5/6 "> <Subtitle title="Micro Controller"></Subtitle> <ul className="marker:text-ewb-blue-200 ml-4" From ab469346ff61eecddb96172d12a6745c396d3a6e Mon Sep 17 00:00:00 2001 From: Byron Bhuiyan <rafidb8@gmail.com> Date: Fri, 3 Nov 2023 21:30:38 -0700 Subject: [PATCH 35/58] github glitched :( --- src/components/projects/ AirQuality.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/projects/ AirQuality.jsx b/src/components/projects/ AirQuality.jsx index dcfb3dd..3c71310 100644 --- a/src/components/projects/ AirQuality.jsx +++ b/src/components/projects/ AirQuality.jsx @@ -18,7 +18,7 @@ const AirQuality = () => { </div> <div> <img - src="/images/airQualitySystem/AirQualitySystem1.webp" + src="/images/airQualitySystem/AirQualitySystem1.webp " alt="Air Quality System 1" /> </div> From 60599f10121f5b3e51c6732ce61aa56a2f08db38 Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Sat, 4 Nov 2023 12:17:31 -0700 Subject: [PATCH 36/58] Added Tanazania.jsx --- src/components/projects/Tanzania.jsx | 116 ++++++++++++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/src/components/projects/Tanzania.jsx b/src/components/projects/Tanzania.jsx index a0a2e9c..7b36eeb 100644 --- a/src/components/projects/Tanzania.jsx +++ b/src/components/projects/Tanzania.jsx @@ -1,5 +1,119 @@ +import Subtitle from "../Subtitle"; + const Tanzania = () => { - return <div>Tanzania</div>; + return ( + <div> + <div className="grid grid-cols-3 gap-10 m-28"> + <div className="col-span-3 p-4"> + <Subtitle title="General Overview" /> + <div className="ml-2 mt-1"> + In collaboration with a Civil Developer in Tanzania and the + professional chapter of E.W.B in L.A. We are looking to install a + micro controlled solar water pump system for a school, of 400+, in + Tanzania. Currently students have to make themselves down a + treacherous path of around 300 meters. This takes time out of their + studies and puts their health and safety at risk! + </div> + </div> + <div className="col-span-2 p-4"> + <Subtitle title="Motivation" /> + <div className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li> + Make an impact on underprivileged students by supplying them + with technology to overcome physical barriers to an education + </li> + <li> + Inspire them to continue their education through mentoring + programs + </li> + </ul> + </div> + </div> + <img + className="w-full" + src="/images/tanzania/tanzania1.gif" + alt="image" + /> + <div className="col-span-2 p-4"> + <Subtitle title="Micro Controlled Solar Water Pump System" /> + <div className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li>Install solar panels to provide power for water pump</li> + <li>Install water pump and all the required tubing</li> + <li> + Install two communication Micro Controller to monitor power + supply and water control + </li> + <li> + Provide tutorials/ learning exercises on water controlled pump + for maintenance + </li> + </ul> + </div> + </div> + <img + className="w-full" + src="\images\tanzania\tanzania2.webp" + alt="image" + /> + <div className="col-span-2 p-4"> + <Subtitle + title="Educational Micro controller projects" + description="Education is very hard to obtain affecting isolated rural communities the most" + /> + <div className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li> + Providing some micro controllers and electronic parts allow for + community members, from kids to adults, gain a valuable skill + that improves their future opportunities + </li> + <li> + Is beneficial for both the volunteer(you), to gain once a + lifetime experience, and to the disadvantage community by + improving their way of life + </li> + <li> + Please see{" "} + <a + href="costa-rica" + className="text-ewb-blue-200 font-bold underline hover:text-ewb-green" + > + Costa Rica + </a>{" "} + page for examples on educational Micro Controller Projects + </li> + <li> + A water treatment system will also be implemented, to learn more + check out the{" "} + <a + href="water-quality-and-filtration" + className="text-ewb-blue-200 underline font-bold hover:text-ewb-green" + > + water quality and filtration + </a> + </li> + </ul> + </div> + </div> + <img + className="w-full" + src="\images\tanzania\tanzania3.gif" + alt="image" + /> + </div> + </div> + ); }; export default Tanzania; From 41d6f5e515ebb7963455ccaec43551d0ef040ba0 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sun, 5 Nov 2023 13:59:01 -0800 Subject: [PATCH 37/58] add project and focus data --- src/data/focus.js | 31 +++++++++++++++++++++++++++++++ src/data/projects.js | 36 +++++++++++++++++++++--------------- 2 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 src/data/focus.js diff --git a/src/data/focus.js b/src/data/focus.js new file mode 100644 index 0000000..c65f954 --- /dev/null +++ b/src/data/focus.js @@ -0,0 +1,31 @@ +import { MdOutlineHandshake } from "react-icons/md"; +import { FaUserTie } from "react-icons/fa"; +import { PiProjectorScreenChartLight } from "react-icons/pi"; +import { BsFillPeopleFill } from "react-icons/bs"; + +export const FOCUS = [ + { + title: "OUTREACH", + description: + "Get connect with our community and make an impact on our society", + icon: <MdOutlineHandshake />, + }, + { + title: "PROFESSIONAL DEVELOPMENT", + description: + "Building skills to stay current and competitive in the ever-evolving workplace.", + icon: <FaUserTie />, + }, + { + title: "PROJECTS", + description: + "Make your impact and learn on hand experience from our projects", + icon: <PiProjectorScreenChartLight />, + }, + { + title: "SOCIALS", + description: + "Join our events to know more people who share your passion and build connections", + icon: <BsFillPeopleFill />, + }, +]; diff --git a/src/data/projects.js b/src/data/projects.js index c48b840..d62809d 100644 --- a/src/data/projects.js +++ b/src/data/projects.js @@ -1,26 +1,32 @@ export const PROJECTS = [ { - start: new Date("October 2, 2023 03:30:00"), - end: new Date("October 2, 2023 04:30:00"), - name: "Event Name", + title: "Costa Rica", description: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ", - location: "WCH 205", + "In collaboration with Claudia Chaves Villarreal, a Ph.D. Candidate and her organization Biogas Pococi, we are working to implement Biodigestor tanks and micro controlling systems. She has already implemented this system for 38 families! The Biodigestor provides clean fuel without the emission of harmful particulates that has had detrimental impacts on the health of rural inhabitants. The Biodigestor also provides a source of fertilizer for farmers to use.", + link: "/projects/costa-rica", }, { - start: new Date("October 5, 2023 05:30:00"), - end: new Date("October 5, 2023 06:30:00"), - name: "Pizza Party", + title: "Tanzania", description: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ", - location: "WCH 206", + "In collaboration with a Civil Developer in Tanzania and the professional chapter of E.W.B in L.A. We are looking to install a micro controlled solar water pump system for a school, of 400+, in Tanzania. Currently students have to make themselves down a treacherous path of around 300 meters. This takes time out of their studies and puts their health and safety at risk!", + link: "/projects/tanzania", }, { - start: new Date("October 8, 2023 01:30:00"), - end: new Date("October 8, 2023 02:30:00"), - name: "Boba Party", + title: "Water Quality and Filtration", description: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ", - location: "WCH 206", + "Water is one of the most imperative substances to life. With an ever increasing population, there will need to be more sources of water to be treated and tested. This however is not so easy in developing countries, as time and resources may be scarce. That is why a need for a water quality and filtration system that is affordable and easily implemented is needed.", + link: "/projects/water-quality-and-filtration", + }, + { + title: "Robotics Project", + description: + "In collaboration with Claudia Chaves Villarreal, a Ph.D. Candidate and her organization Biogas Pococi, we are working to implement Biodigestor tanks and micro controlling systems. She has already implemented this system for 38 families! The Biodigestor provides clean fuel without the emission of harmful particulates that has had detrimental impacts on the health of rural inhabitants. The Biodigestor also provides a source of fertilizer for farmers to use.", + link: "/projects/robotics", + }, + { + title: "Air Quality System", + description: + "In collaboration with Claudia Chaves Villarreal, a Ph.D. Candidate and her organization Biogas Pococi, we are working to implement Biodigestor tanks and micro controlling systems. She has already implemented this system for 38 families! The Biodigestor provides clean fuel without the emission of harmful particulates that has had detrimental impacts on the health of rural inhabitants. The Biodigestor also provides a source of fertilizer for farmers to use.", + link: "/projects/air-quality-system", }, ]; From 2d4fa3fbf44bf129ef2ce41bdd8262b78efde767 Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Sun, 5 Nov 2023 20:42:17 -0800 Subject: [PATCH 38/58] Deleted Extra Div --- src/components/projects/Tanzania.jsx | 206 +++++++++++++-------------- 1 file changed, 102 insertions(+), 104 deletions(-) diff --git a/src/components/projects/Tanzania.jsx b/src/components/projects/Tanzania.jsx index 7b36eeb..9446d81 100644 --- a/src/components/projects/Tanzania.jsx +++ b/src/components/projects/Tanzania.jsx @@ -2,116 +2,114 @@ import Subtitle from "../Subtitle"; const Tanzania = () => { return ( - <div> - <div className="grid grid-cols-3 gap-10 m-28"> - <div className="col-span-3 p-4"> - <Subtitle title="General Overview" /> - <div className="ml-2 mt-1"> - In collaboration with a Civil Developer in Tanzania and the - professional chapter of E.W.B in L.A. We are looking to install a - micro controlled solar water pump system for a school, of 400+, in - Tanzania. Currently students have to make themselves down a - treacherous path of around 300 meters. This takes time out of their - studies and puts their health and safety at risk! - </div> + <div className="grid grid-cols-3 gap-10 m-28"> + <div className="col-span-3 p-4"> + <Subtitle title="General Overview" /> + <div className="ml-2 mt-1"> + In collaboration with a Civil Developer in Tanzania and the + professional chapter of E.W.B in L.A. We are looking to install a + micro controlled solar water pump system for a school, of 400+, in + Tanzania. Currently students have to make themselves down a + treacherous path of around 300 meters. This takes time out of their + studies and puts their health and safety at risk! </div> - <div className="col-span-2 p-4"> - <Subtitle title="Motivation" /> - <div className="ml-2 mt-1"> - <ul - className="marker:text-ewb-blue-200 ml-4" - style={{ listStyleType: "square" }} - > - <li> - Make an impact on underprivileged students by supplying them - with technology to overcome physical barriers to an education - </li> - <li> - Inspire them to continue their education through mentoring - programs - </li> - </ul> - </div> + </div> + <div className="col-span-2 p-4"> + <Subtitle title="Motivation" /> + <div className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li> + Make an impact on underprivileged students by supplying them with + technology to overcome physical barriers to an education + </li> + <li> + Inspire them to continue their education through mentoring + programs + </li> + </ul> </div> - <img - className="w-full" - src="/images/tanzania/tanzania1.gif" - alt="image" - /> - <div className="col-span-2 p-4"> - <Subtitle title="Micro Controlled Solar Water Pump System" /> - <div className="ml-2 mt-1"> - <ul - className="marker:text-ewb-blue-200 ml-4" - style={{ listStyleType: "square" }} - > - <li>Install solar panels to provide power for water pump</li> - <li>Install water pump and all the required tubing</li> - <li> - Install two communication Micro Controller to monitor power - supply and water control - </li> - <li> - Provide tutorials/ learning exercises on water controlled pump - for maintenance - </li> - </ul> - </div> + </div> + <img + className="w-full" + src="/images/tanzania/tanzania1.gif" + alt="image" + /> + <div className="col-span-2 p-4"> + <Subtitle title="Micro Controlled Solar Water Pump System" /> + <div className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li>Install solar panels to provide power for water pump</li> + <li>Install water pump and all the required tubing</li> + <li> + Install two communication Micro Controller to monitor power supply + and water control + </li> + <li> + Provide tutorials/ learning exercises on water controlled pump for + maintenance + </li> + </ul> </div> - <img - className="w-full" - src="\images\tanzania\tanzania2.webp" - alt="image" + </div> + <img + className="w-full" + src="\images\tanzania\tanzania2.webp" + alt="image" + /> + <div className="col-span-2 p-4"> + <Subtitle + title="Educational Micro controller projects" + description="Education is very hard to obtain affecting isolated rural communities the most" /> - <div className="col-span-2 p-4"> - <Subtitle - title="Educational Micro controller projects" - description="Education is very hard to obtain affecting isolated rural communities the most" - /> - <div className="ml-2 mt-1"> - <ul - className="marker:text-ewb-blue-200 ml-4" - style={{ listStyleType: "square" }} - > - <li> - Providing some micro controllers and electronic parts allow for - community members, from kids to adults, gain a valuable skill - that improves their future opportunities - </li> - <li> - Is beneficial for both the volunteer(you), to gain once a - lifetime experience, and to the disadvantage community by - improving their way of life - </li> - <li> - Please see{" "} - <a - href="costa-rica" - className="text-ewb-blue-200 font-bold underline hover:text-ewb-green" - > - Costa Rica - </a>{" "} - page for examples on educational Micro Controller Projects - </li> - <li> - A water treatment system will also be implemented, to learn more - check out the{" "} - <a - href="water-quality-and-filtration" - className="text-ewb-blue-200 underline font-bold hover:text-ewb-green" - > - water quality and filtration - </a> - </li> - </ul> - </div> + <div className="ml-2 mt-1"> + <ul + className="marker:text-ewb-blue-200 ml-4" + style={{ listStyleType: "square" }} + > + <li> + Providing some micro controllers and electronic parts allow for + community members, from kids to adults, gain a valuable skill that + improves their future opportunities + </li> + <li> + Is beneficial for both the volunteer(you), to gain once a lifetime + experience, and to the disadvantage community by improving their + way of life + </li> + <li> + Please see{" "} + <a + href="costa-rica" + className="text-ewb-blue-200 font-bold underline hover:text-ewb-green" + > + Costa Rica + </a>{" "} + page for examples on educational Micro Controller Projects + </li> + <li> + A water treatment system will also be implemented, to learn more + check out the{" "} + <a + href="water-quality-and-filtration" + className="text-ewb-blue-200 underline font-bold hover:text-ewb-green" + > + water quality and filtration + </a> + </li> + </ul> </div> - <img - className="w-full" - src="\images\tanzania\tanzania3.gif" - alt="image" - /> </div> + <img + className="w-full" + src="\images\tanzania\tanzania3.gif" + alt="image" + /> </div> ); }; From 54f8a71d2ec6ac6029502e69665f3dfec137be52 Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Sun, 5 Nov 2023 20:58:48 -0800 Subject: [PATCH 39/58] Added Mobile Responsiveness to Footer --- src/components/Footer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 33f212a..93a31db 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -9,7 +9,7 @@ const Footer = () => { <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> <div className="flex items-end m-3 gap-3 text-white font-bold text-xl w-1/2"> <Image src={whiteLogo} alt="EWB Logo" /> - <p>EWB at UCR</p> + <p className="text-lg" >EWB at UCR</p> </div> <div className="text-right text-white text-sm flex flex-col m-0 p-0 mx-4 w-1/2"> From 82335417be4897fd579d0426935e721b0facd61b Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Sun, 5 Nov 2023 21:21:36 -0800 Subject: [PATCH 40/58] Mobile Responsive for Event --- src/components/Footer.jsx | 2 +- src/components/home/Event.jsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 93a31db..db28012 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -9,7 +9,7 @@ const Footer = () => { <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> <div className="flex items-end m-3 gap-3 text-white font-bold text-xl w-1/2"> <Image src={whiteLogo} alt="EWB Logo" /> - <p className="text-lg" >EWB at UCR</p> + <p className="text-lg">EWB at UCR</p> </div> <div className="text-right text-white text-sm flex flex-col m-0 p-0 mx-4 w-1/2"> diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index fed9345..2a23957 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -7,7 +7,7 @@ const Event = ({ start, end, location, name, descripton, color }) => { return ( <div className="bg-ewb-blue-100 flex w-full font-bold"> <div - className={`text-4xl text-white text-center w-1/6 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} + className={`text-4xl text-white text-center w-1/2 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} > <div>{start.toString().split(" ")[1]}</div> <div>{start.getDate()}</div> @@ -18,7 +18,7 @@ const Event = ({ start, end, location, name, descripton, color }) => { <div className="p-3 w-5/6 text-ewb-black "> <div className={`text-2xl ${COLORS[color].text}`}>{name}</div> <div className="text-base">{location}</div> - <div className="text-base font-normal">{descripton}</div> + <div className="text-sm font-normal">{descripton}</div> </div> </div> ); From 8c38c1ef7d55387e93f29b531254f12c17e83a0d Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <120443522+Blumacaw25@users.noreply.github.com> Date: Sun, 5 Nov 2023 21:28:05 -0800 Subject: [PATCH 41/58] Ran Prettier --- src/components/Footer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 93a31db..db28012 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -9,7 +9,7 @@ const Footer = () => { <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> <div className="flex items-end m-3 gap-3 text-white font-bold text-xl w-1/2"> <Image src={whiteLogo} alt="EWB Logo" /> - <p className="text-lg" >EWB at UCR</p> + <p className="text-lg">EWB at UCR</p> </div> <div className="text-right text-white text-sm flex flex-col m-0 p-0 mx-4 w-1/2"> From e00cf9483f88f1cfce0afe6e165d886cf6777bf2 Mon Sep 17 00:00:00 2001 From: Byron Bhuiyan <rafidb8@gmail.com> Date: Wed, 8 Nov 2023 22:25:50 -0800 Subject: [PATCH 42/58] Created Landing Page --- src/components/home/Landing.jsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/home/Landing.jsx b/src/components/home/Landing.jsx index 9337b53..51f1420 100644 --- a/src/components/home/Landing.jsx +++ b/src/components/home/Landing.jsx @@ -1,5 +1,20 @@ +import React from "react"; const Landing = () => { - return <div>Landing</div>; + return ( + <div className="relative flex items-center justify-center h-1/6 w-3/6"> + <img + src={"images/landing.webp"} + alt="landing img" + className="w-full object-cover aspect-[32/9] " + /> + <div className=" start-20 absolute flex-row "> + <div className="text-2xl text-white">Engineers Without Borders USA</div> + <div className="text-base text-white"> + at University of California - Riverside + </div> + </div> + </div> + ); }; export default Landing; From adaee74a8fcbf19257af25da52b0cfe0fe030477 Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <fuyuki325@gmail.com> Date: Thu, 9 Nov 2023 15:50:50 -0800 Subject: [PATCH 43/58] Added Breakpoints to Event --- package-lock.json | 90 +++++++++++++++++------------------ package.json | 2 +- src/components/home/Event.jsx | 4 +- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f877f7..2519631 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "dependencies": { "bootstrap": "^5.3.0", - "next": "^13.5.4", + "next": "^14.0.2", "react": "^18.2.0", "react-bootstrap": "^2.8.0", "react-dom": "^18.2.0", @@ -198,9 +198,9 @@ } }, "node_modules/@next/env": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.4.tgz", - "integrity": "sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ==" + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.2.tgz", + "integrity": "sha512-HAW1sljizEaduEOes/m84oUqeIDAUYBR1CDwu2tobNlNDFP3cSm9d6QsOsGeNlIppU1p/p1+bWbYCbvwjFiceA==" }, "node_modules/@next/eslint-plugin-next": { "version": "13.5.3", @@ -212,9 +212,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.4.tgz", - "integrity": "sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.2.tgz", + "integrity": "sha512-i+jQY0fOb8L5gvGvojWyZMfQoQtDVB2kYe7fufOEiST6sicvzI2W5/EXo4lX5bLUjapHKe+nFxuVv7BA+Pd7LQ==", "cpu": [ "arm64" ], @@ -227,9 +227,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.4.tgz", - "integrity": "sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.2.tgz", + "integrity": "sha512-zRCAO0d2hW6gBEa4wJaLn+gY8qtIqD3gYd9NjruuN98OCI6YyelmhWVVLlREjS7RYrm9OUQIp/iVJFeB6kP1hg==", "cpu": [ "x64" ], @@ -242,9 +242,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.4.tgz", - "integrity": "sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.2.tgz", + "integrity": "sha512-tSJmiaon8YaKsVhi7GgRizZoV0N1Sx5+i+hFTrCKKQN7s3tuqW0Rov+RYdPhAv/pJl4qiG+XfSX4eJXqpNg3dA==", "cpu": [ "arm64" ], @@ -257,9 +257,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.4.tgz", - "integrity": "sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.2.tgz", + "integrity": "sha512-dXJLMSEOwqJKcag1BeX1C+ekdPPJ9yXbWIt3nAadhbLx5CjACoB2NQj9Xcqu2tmdr5L6m34fR+fjGPs+ZVPLzA==", "cpu": [ "arm64" ], @@ -272,9 +272,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.4.tgz", - "integrity": "sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.2.tgz", + "integrity": "sha512-WC9KAPSowj6as76P3vf1J3mf2QTm3Wv3FBzQi7UJ+dxWjK3MhHVWsWUo24AnmHx9qDcEtHM58okgZkXVqeLB+Q==", "cpu": [ "x64" ], @@ -287,9 +287,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.4.tgz", - "integrity": "sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.2.tgz", + "integrity": "sha512-KSSAwvUcjtdZY4zJFa2f5VNJIwuEVnOSlqYqbQIawREJA+gUI6egeiRu290pXioQXnQHYYdXmnVNZ4M+VMB7KQ==", "cpu": [ "x64" ], @@ -302,9 +302,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.4.tgz", - "integrity": "sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.2.tgz", + "integrity": "sha512-2/O0F1SqJ0bD3zqNuYge0ok7OEWCQwk55RPheDYD0va5ij7kYwrFkq5ycCRN0TLjLfxSF6xI5NM6nC5ux7svEQ==", "cpu": [ "arm64" ], @@ -317,9 +317,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.4.tgz", - "integrity": "sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.2.tgz", + "integrity": "sha512-vJI/x70Id0oN4Bq/R6byBqV1/NS5Dl31zC+lowO8SDu1fHmUxoAdILZR5X/sKbiJpuvKcCrwbYgJU8FF/Gh50Q==", "cpu": [ "ia32" ], @@ -332,9 +332,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.4.tgz", - "integrity": "sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.2.tgz", + "integrity": "sha512-Ut4LXIUvC5m8pHTe2j0vq/YDnTEyq6RSR9vHYPqnELrDapPhLNz9Od/L5Ow3J8RNDWpEnfCiQXuVdfjlNEJ7ug==", "cpu": [ "x64" ], @@ -3017,11 +3017,11 @@ "dev": true }, "node_modules/next": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/next/-/next-13.5.4.tgz", - "integrity": "sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-14.0.2.tgz", + "integrity": "sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg==", "dependencies": { - "@next/env": "13.5.4", + "@next/env": "14.0.2", "@swc/helpers": "0.5.2", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", @@ -3033,18 +3033,18 @@ "next": "dist/bin/next" }, "engines": { - "node": ">=16.14.0" + "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.5.4", - "@next/swc-darwin-x64": "13.5.4", - "@next/swc-linux-arm64-gnu": "13.5.4", - "@next/swc-linux-arm64-musl": "13.5.4", - "@next/swc-linux-x64-gnu": "13.5.4", - "@next/swc-linux-x64-musl": "13.5.4", - "@next/swc-win32-arm64-msvc": "13.5.4", - "@next/swc-win32-ia32-msvc": "13.5.4", - "@next/swc-win32-x64-msvc": "13.5.4" + "@next/swc-darwin-arm64": "14.0.2", + "@next/swc-darwin-x64": "14.0.2", + "@next/swc-linux-arm64-gnu": "14.0.2", + "@next/swc-linux-arm64-musl": "14.0.2", + "@next/swc-linux-x64-gnu": "14.0.2", + "@next/swc-linux-x64-musl": "14.0.2", + "@next/swc-win32-arm64-msvc": "14.0.2", + "@next/swc-win32-ia32-msvc": "14.0.2", + "@next/swc-win32-x64-msvc": "14.0.2" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", diff --git a/package.json b/package.json index 285e2a6..75b6dee 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "bootstrap": "^5.3.0", - "next": "^13.5.4", + "next": "^14.0.2", "react": "^18.2.0", "react-bootstrap": "^2.8.0", "react-dom": "^18.2.0", diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index 2a23957..bc6fa57 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -7,7 +7,7 @@ const Event = ({ start, end, location, name, descripton, color }) => { return ( <div className="bg-ewb-blue-100 flex w-full font-bold"> <div - className={`text-4xl text-white text-center w-1/2 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} + className={`text-4xl text-white text-center w-1/2 md:w-1/6 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} > <div>{start.toString().split(" ")[1]}</div> <div>{start.getDate()}</div> @@ -18,7 +18,7 @@ const Event = ({ start, end, location, name, descripton, color }) => { <div className="p-3 w-5/6 text-ewb-black "> <div className={`text-2xl ${COLORS[color].text}`}>{name}</div> <div className="text-base">{location}</div> - <div className="text-sm font-normal">{descripton}</div> + <div className="text-sm sm:text-base font-normal">{descripton}</div> </div> </div> ); From 22aca2d6ebb0c388a181e9ba3512d94a9bb7b929 Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <fuyuki325@gmail.com> Date: Thu, 9 Nov 2023 15:53:46 -0800 Subject: [PATCH 44/58] changed breakpoint for description --- src/components/home/Event.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index bc6fa57..115dd87 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -18,7 +18,7 @@ const Event = ({ start, end, location, name, descripton, color }) => { <div className="p-3 w-5/6 text-ewb-black "> <div className={`text-2xl ${COLORS[color].text}`}>{name}</div> <div className="text-base">{location}</div> - <div className="text-sm sm:text-base font-normal">{descripton}</div> + <div className="text-sm md:text-base font-normal">{descripton}</div> </div> </div> ); From f6d459c7c2357c48eabd4199ff84801d5f6f522b Mon Sep 17 00:00:00 2001 From: Fuyuki Malahom <fuyuki325@gmail.com> Date: Thu, 9 Nov 2023 16:33:04 -0800 Subject: [PATCH 45/58] Added breakpoint to Footer --- src/components/Footer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index db28012..8bb9194 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -9,7 +9,7 @@ const Footer = () => { <div className="w-full bg-ewb-blue-200 border-t-[20px] border-t-ewb-green pt-32 flex justify-between"> <div className="flex items-end m-3 gap-3 text-white font-bold text-xl w-1/2"> <Image src={whiteLogo} alt="EWB Logo" /> - <p className="text-lg">EWB at UCR</p> + <p className="text-xs md:text-lg">EWB at UCR</p> </div> <div className="text-right text-white text-sm flex flex-col m-0 p-0 mx-4 w-1/2"> From 01e2e5f93e8c0fd7696db4fe3daac651aacd8cd2 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 10 Nov 2023 21:49:47 -0800 Subject: [PATCH 46/58] fix nextjs yml --- .github/workflows/nextjs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index 768c7a4..8968cf7 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -34,7 +34,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: "16" + node-version: "18" - name: Setup Pages uses: actions/configure-pages@v3 with: From facde1fe0de633f3e3be966199cbdbe6223f97ad Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Fri, 10 Nov 2023 22:22:31 -0800 Subject: [PATCH 47/58] fix nextjs yml --- .github/workflows/pull-request.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml index d170095..68276c4 100644 --- a/.github/workflows/pull-request.yaml +++ b/.github/workflows/pull-request.yaml @@ -14,7 +14,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: "16.14.2" + node-version: "18" - run: npm ci - run: npm run check lint: @@ -26,7 +26,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: "16.14.2" + node-version: "18" - run: npm ci - run: npm run eslint build: @@ -38,6 +38,6 @@ jobs: - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: "16.14.2" + node-version: "18" - run: npm ci - run: npm run build From d8ead89cdad0b924ac4946b45729751d6dc33da1 Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 10 Nov 2023 22:34:20 -0800 Subject: [PATCH 48/58] kevin/projectSection --- src/components/home/Project.jsx | 4 ++-- src/components/home/Projects.jsx | 34 +++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/components/home/Project.jsx b/src/components/home/Project.jsx index bd8b4a5..8e8499d 100644 --- a/src/components/home/Project.jsx +++ b/src/components/home/Project.jsx @@ -2,11 +2,11 @@ import ArrowLink from "../ArrowLink.jsx"; const Project = ({ name, description, link }) => { return ( - <div className="bg-ewb-blue-100 w-1/4"> + <div className="bg-ewb-blue-100 w-1/3"> <div className="text-ewb-blue-200 text-4xl font-bold underline underline-offset-8 decoration-ewb-green text-center pt-4"> {name} </div> - <div className="pt-6 pb-6 px-14 text-center text-lg">{description}</div> + <div className="pt-6 pb-6 px-14 text-center text-base">{description}</div> <div className="flex items-center justify-center text-blue-800 font-bold pb-2 text-xl"> <ArrowLink text="learn more" link="{link}" /> </div> diff --git a/src/components/home/Projects.jsx b/src/components/home/Projects.jsx index ea52133..6dda8a0 100644 --- a/src/components/home/Projects.jsx +++ b/src/components/home/Projects.jsx @@ -1,5 +1,37 @@ +import Title from "../Title"; +import { PROJECTS } from "@/data/projects"; +import Project from "@/components/home/Project"; + const Projects = () => { - return <div>Projects</div>; + return ( + <div> + <Title subTitle="LEARN FROM EXPERIENCE" title="OUR PROJECTS" /> + <br /> + <div className="flex flex-wrap items-center justify-center gap-4"> + {PROJECTS.map((project, index) => ( + <Project + key={index} + name={project.title} + description={project.description} + link={project.link} + /> + ))} + </div> + <br /> + </div> + ); }; export default Projects; + +// import Social from "./Social"; +// const Join = () => { +// return ( +// <div className="p-10 flex flex-col gap-y-8"> +// +// <Social /> +// </div> +// ); +// }; + +// export default Join; From 194bc55fb3a738cb1aee5a76c3fd23917b24bbaf Mon Sep 17 00:00:00 2001 From: Kevin Loritsch <kloritsch58@gmail.com> Date: Fri, 10 Nov 2023 22:36:36 -0800 Subject: [PATCH 49/58] kevin/projectSection --- src/components/home/Projects.jsx | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/components/home/Projects.jsx b/src/components/home/Projects.jsx index 6dda8a0..6afc171 100644 --- a/src/components/home/Projects.jsx +++ b/src/components/home/Projects.jsx @@ -23,15 +23,3 @@ const Projects = () => { }; export default Projects; - -// import Social from "./Social"; -// const Join = () => { -// return ( -// <div className="p-10 flex flex-col gap-y-8"> -// -// <Social /> -// </div> -// ); -// }; - -// export default Join; From f6955b50b956bb1eec525ca43a06f1fa7d4c249f Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sat, 11 Nov 2023 01:45:47 -0800 Subject: [PATCH 50/58] fix styles --- src/app/page.js | 2 +- src/app/projects/air-quality-system/page.js | 5 +- src/components/Subtitle.jsx | 6 ++- src/components/Title.jsx | 6 +-- src/components/home/Contacts.jsx | 5 -- src/components/home/Landing.jsx | 15 +++--- src/components/home/WhyJoin.jsx | 5 ++ src/components/projects/ AirQuality.jsx | 55 ++++++++++----------- src/components/projects/Header.jsx | 10 ++-- 9 files changed, 59 insertions(+), 50 deletions(-) delete mode 100644 src/components/home/Contacts.jsx create mode 100644 src/components/home/WhyJoin.jsx diff --git a/src/app/page.js b/src/app/page.js index cd2cd13..33aae24 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -1,7 +1,7 @@ import About from "@/components/home/About"; import Landing from "@/components/home/Landing"; import Projects from "@/components/home/Projects"; -import WhyJoin from "@/components/home/Contacts"; +import WhyJoin from "@/components/home/WhyJoin"; import Events from "@/components/home/Events"; import Join from "@/components/home/Join"; const Home = () => { diff --git a/src/app/projects/air-quality-system/page.js b/src/app/projects/air-quality-system/page.js index b5f9c7f..2fd84aa 100644 --- a/src/app/projects/air-quality-system/page.js +++ b/src/app/projects/air-quality-system/page.js @@ -1,8 +1,11 @@ -import React from "react"; import AirQuality from "@/components/projects/ AirQuality"; +import Header from "@/components/projects/Header"; +import header from "../../../../public/images/airQualitySystem/AirQualitySystemHeader.webp"; + const page = () => { return ( <> + <Header img={header.src} title="Air Quality System" /> <AirQuality /> </> ); diff --git a/src/components/Subtitle.jsx b/src/components/Subtitle.jsx index 23e4955..f0cbc3a 100644 --- a/src/components/Subtitle.jsx +++ b/src/components/Subtitle.jsx @@ -3,9 +3,11 @@ const Subtitle = ({ title, description }) => { <div> <div className="flex items-center gap-1"> <div className="bg-ewb-green h-5 w-1" /> - <div className="text-ewb-blue-200 text-2xl font-bold">{title}</div> + <div className="text-ewb-blue-200 text-xl md:text-2xl font-bold"> + {title} + </div> </div> - <div className="text-ewb-green font-semibold text-lg ml-2"> + <div className="text-ewb-green font-semibold text-sm md:text-lg ml-2"> {description} </div> </div> diff --git a/src/components/Title.jsx b/src/components/Title.jsx index a5576e7..af30cde 100644 --- a/src/components/Title.jsx +++ b/src/components/Title.jsx @@ -4,17 +4,17 @@ const Title = ({ subTitle, title }) => { return ( <div className="flex flex-col justify-center items-center"> <p className={COLORS.green.text + " font-semibold mb-0"}>{subTitle}</p> - <p className="mt-0 font-bold text-3xl"> + <p className="mt-0 font-bold text-2xl md:text-3xl"> <span className={ COLORS.blue.bg + - " text-white underline underline-offset-[14px] decoration-ewb-green decoration-8" + " text-white underline underline-offset-[14px] decoration-ewb-green decoration-8 px-1 mr-1" } > {titleWords[0]} </span> <span className={COLORS.blue.text}> - {" " + titleWords.slice(1).join(" ")} + {titleWords.slice(1).join(" ")} </span> </p> </div> diff --git a/src/components/home/Contacts.jsx b/src/components/home/Contacts.jsx deleted file mode 100644 index 19e6257..0000000 --- a/src/components/home/Contacts.jsx +++ /dev/null @@ -1,5 +0,0 @@ -const Contacts = () => { - return <div>Contacts</div>; -}; - -export default Contacts; diff --git a/src/components/home/Landing.jsx b/src/components/home/Landing.jsx index 51f1420..8a70990 100644 --- a/src/components/home/Landing.jsx +++ b/src/components/home/Landing.jsx @@ -1,15 +1,16 @@ -import React from "react"; +import landing from "../../../public/images/landing.webp"; + const Landing = () => { return ( - <div className="relative flex items-center justify-center h-1/6 w-3/6"> + <div className="relative flex items-center justify-center w-full"> <img - src={"images/landing.webp"} + src={landing.src} alt="landing img" - className="w-full object-cover aspect-[32/9] " + className="w-full object-cover aspect-[16/5] " /> - <div className=" start-20 absolute flex-row "> - <div className="text-2xl text-white">Engineers Without Borders USA</div> - <div className="text-base text-white"> + <div className="left-[10%] absolute border-l-4 border-ewb-green pl-2"> + <div className="text-5xl text-white">Engineers Without Borders USA</div> + <div className="text-2xl font-thin text-white"> at University of California - Riverside </div> </div> diff --git a/src/components/home/WhyJoin.jsx b/src/components/home/WhyJoin.jsx new file mode 100644 index 0000000..b931741 --- /dev/null +++ b/src/components/home/WhyJoin.jsx @@ -0,0 +1,5 @@ +const WhyJoin = () => { + return <div>WhyJoin</div>; +}; + +export default WhyJoin; diff --git a/src/components/projects/ AirQuality.jsx b/src/components/projects/ AirQuality.jsx index 3c71310..acd3a82 100644 --- a/src/components/projects/ AirQuality.jsx +++ b/src/components/projects/ AirQuality.jsx @@ -1,11 +1,14 @@ -import React from "react"; import Subtitle from "../Subtitle"; +import img1 from "../../../public/images/airQualitySystem/AirQualitySystem1.webp"; +import img2 from "../../../public/images/airQualitySystem/AirQualitySystem2.webp"; +import img3 from "../../../public/images/airQualitySystem/AirQualitySystem3.gif"; + const AirQuality = () => { return ( - <div className="grid grid-cols-3 gap-10 m-28 justify-around "> - <div className="col-span-2 pb-4 w-5/6 "> - <Subtitle title="General Overview"></Subtitle> - <p className="ml-2 mt-1"> + <div className="grid grid-cols-3 gap-10 my-16 justify-around w-10/12 md:w-9/12"> + <div className="col-span-3 md:col-span-2 justify-center flex flex-col"> + <Subtitle title="General Overview" /> + <p className="mt-1 text-justify"> Air quality has overtime deteriorated due to developing countries industrialization. This has in turn put the health of population in risk of respiratory disorders, cardiovascular diseases and @@ -16,15 +19,13 @@ const AirQuality = () => { the air. </p> </div> - <div> - <img - src="/images/airQualitySystem/AirQualitySystem1.webp " - alt="Air Quality System 1" - /> - </div> - - <div className="col-span-2 col-start-0 bg-white mb-2 w-5/6 "> - <Subtitle title="Motivation"></Subtitle> + <img + src={img1.src} + alt="Air Quality System 1" + className="col-span-3 md:col-span-1" + /> + <div className="col-span-3 md:col-span-2 justify-center flex flex-col"> + <Subtitle title="Motivation" /> <ul className="marker:text-ewb-blue-200 ml-4" style={{ listStyleType: "square" }} @@ -43,15 +44,14 @@ const AirQuality = () => { </li> </ul> </div> - <div> - <img - src="/images/airQualitySystem/AirQualitySystem2.webp" - alt="Air Quality System 2" - /> - </div> + <img + src={img2.src} + alt="Air Quality System 2" + className="col-span-3 md:col-span-1" + /> - <div className="col-span-2 col-start-1 bg-white mb-2 w-5/6 "> - <Subtitle title="Micro Controller"></Subtitle> + <div className="col-span-3 md:col-span-2 justify-center flex flex-col"> + <Subtitle title="Micro Controller" /> <ul className="marker:text-ewb-blue-200 ml-4" style={{ listStyleType: "square" }} @@ -70,12 +70,11 @@ const AirQuality = () => { </li> </ul> </div> - <div> - <img - src="/images/airQualitySystem/AirQualitySystem3.gif" - alt="Air Quality System 3" - /> - </div> + <img + src={img3.src} + alt="Air Quality System 3" + className="col-span-3 md:col-span-1" + /> </div> ); }; diff --git a/src/components/projects/Header.jsx b/src/components/projects/Header.jsx index ac9e159..eda926e 100644 --- a/src/components/projects/Header.jsx +++ b/src/components/projects/Header.jsx @@ -2,10 +2,14 @@ import Title from "../Title"; const Header = ({ img, title }) => { return ( - <div className="w-full"> - <img src={img} alt="Image" className="mb-3 w-full object-cover" /> + <> + <img + src={img} + alt="Image" + className="mb-5 w-full object-cover aspect-[16/5]" + /> <Title subTitle="" title={title} /> - </div> + </> ); }; From d189d07a528770706c7205defa4d3fe9c60e382d Mon Sep 17 00:00:00 2001 From: jvarCS <vargassegoviano@gmail.com> Date: Sun, 12 Nov 2023 04:06:06 -0800 Subject: [PATCH 51/58] Added board --- src/app/board/page.js | 21 +++++++++++- src/components/board/Board.jsx | 51 ++++++++++++++++++++++++++-- src/data/mockBoard.js | 62 +++++++++++++++++++++++++++++++++- 3 files changed, 130 insertions(+), 4 deletions(-) diff --git a/src/app/board/page.js b/src/app/board/page.js index db4d387..1cf8571 100644 --- a/src/app/board/page.js +++ b/src/app/board/page.js @@ -1,5 +1,24 @@ +import { BOARD } from "../../data/mockBoard"; +import Board from "../../components/board/Board"; +import Row from "react-bootstrap/Row"; + const page = () => { - return <div>page</div>; + return ( + <Row className="my-6 flex w-8/12 "> + {BOARD.map((item, index) => ( + <Board + key={index} + name={item.name} + position={item.position} + grade={item.grade} + major={item.major} + links={item.links} + pronouns={item.pronouns} + picture={item.picture} + /> + ))} + </Row> + ); }; export default page; diff --git a/src/components/board/Board.jsx b/src/components/board/Board.jsx index fff2ec1..0a7655f 100644 --- a/src/components/board/Board.jsx +++ b/src/components/board/Board.jsx @@ -1,5 +1,52 @@ -const Board = ({ name, position, grade, major, links, pronouns, pictures }) => { - return <div>Board</div>; +/* eslint-disable new-cap */ +import Image from "next/image"; +import Col from "react-bootstrap/Col"; +import { FaLinkedinIn } from "react-icons/fa6"; +import { MdEmail } from "react-icons/md"; +import Link from "next/link"; + +const Board = ({ name, position, grade, major, links, pronouns, picture }) => { + return ( + <Col className="flex items-center justify-center"> + <div className="w-[270px] h-[450px] bg-gray-200 flex items-start justify-center my-3 shadow-[12px_-12px_0px_0px] shadow-ewb-green"> + <Image src={picture} className=" w-10/12 object-cover my-4" /> + <div className="font-medium text-ewb-blue-200 -translate-x-6 absolute my-[246px] text-3xl "> + {name} + </div> + <div className="font-light mr-[131px] absolute mt-[280px] text-2xl"> + {position} + </div> + <Link + href="https://www.google.com" + rel="noreferrer" + target="_blank" + title="LinkedIn" + className="absolute mr-56 w-1 h-1" + > + <div> + <FaLinkedinIn className="my-80 text-4xl text-ewb-blue-200 hover:text-blue-400 " /> + </div> + </Link> + <Link + href="https://www.google.com" + rel="noreferrer" + target="_blank" + title="Email" + className="absolute w-1 h-1 mr-32" + > + <div> + <MdEmail className=" my-[322px] text-4xl text-ewb-blue-200 hover:text-blue-400 " /> + </div> + </Link> + <div className="font-light items-start w-[230px] justify-start absolute mt-[360px] text-lg"> + {grade} {"\u2E31"} {major} + </div> + <div className="font-light items-start w-[230px] justify-start absolute mt-[388px] text-lg"> + Pronous: {pronouns} + </div> + </div> + </Col> + ); }; export default Board; diff --git a/src/data/mockBoard.js b/src/data/mockBoard.js index d14329a..3c6ca87 100644 --- a/src/data/mockBoard.js +++ b/src/data/mockBoard.js @@ -8,7 +8,67 @@ export const BOARD = [ linkedin: "mailto:email@gmail.com", }, grade: "Sophmore", - major: "Computer Science", + major: "Comp Sci", + pronouns: "She/Her/Hers", + picture: board, + }, + { + name: "Evan Littlecat", + position: "President", + links: { + email: "mailto:email@gmail.com", + linkedin: "mailto:email@gmail.com", + }, + grade: "Sophmore", + major: "Comp Sci", + pronouns: "She/Her/Hers", + picture: board, + }, + { + name: "Evan Littlecat", + position: "President", + links: { + email: "mailto:email@gmail.com", + linkedin: "mailto:email@gmail.com", + }, + grade: "Sophmore", + major: "Comp Sci", + pronouns: "She/Her/Hers", + picture: board, + }, + { + name: "Evan Littlecat", + position: "President", + links: { + email: "mailto:email@gmail.com", + linkedin: "mailto:email@gmail.com", + }, + grade: "Sophmore", + major: "Comp Sci", + pronouns: "She/Her/Hers", + picture: board, + }, + { + name: "Evan Littlecat", + position: "President", + links: { + email: "mailto:email@gmail.com", + linkedin: "mailto:email@gmail.com", + }, + grade: "Sophmore", + major: "Comp Sci", + pronouns: "She/Her/Hers", + picture: board, + }, + { + name: "Evan Littlecat", + position: "President", + links: { + email: "mailto:email@gmail.com", + linkedin: "mailto:email@gmail.com", + }, + grade: "Sophmore", + major: "Comp Sci", pronouns: "She/Her/Hers", picture: board, }, From 3a946d87f7d92824bcdbf13e93d1914604987e26 Mon Sep 17 00:00:00 2001 From: jvarCS <vargassegoviano@gmail.com> Date: Sun, 12 Nov 2023 04:12:32 -0800 Subject: [PATCH 52/58] Updated temp picture --- src/data/mockBoard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/mockBoard.js b/src/data/mockBoard.js index 3c6ca87..6be0f81 100644 --- a/src/data/mockBoard.js +++ b/src/data/mockBoard.js @@ -1,4 +1,4 @@ -import board from "../../public/images/image 11.png"; +import board from "../../public/images/landing.webp"; export const BOARD = [ { name: "Evan Littlecat", From 79d87b0930c51931433c399994d0a9ab246cd18e Mon Sep 17 00:00:00 2001 From: jvarCS <vargassegoviano@gmail.com> Date: Sun, 12 Nov 2023 04:16:13 -0800 Subject: [PATCH 53/58] Margin fix --- src/components/board/Board.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/board/Board.jsx b/src/components/board/Board.jsx index 0a7655f..4cfa6dd 100644 --- a/src/components/board/Board.jsx +++ b/src/components/board/Board.jsx @@ -8,7 +8,7 @@ import Link from "next/link"; const Board = ({ name, position, grade, major, links, pronouns, picture }) => { return ( <Col className="flex items-center justify-center"> - <div className="w-[270px] h-[450px] bg-gray-200 flex items-start justify-center my-3 shadow-[12px_-12px_0px_0px] shadow-ewb-green"> + <div className="w-[270px] h-[450px] bg-gray-200 flex items-start justify-center my-14 shadow-[12px_-12px_0px_0px] shadow-ewb-green"> <Image src={picture} className=" w-10/12 object-cover my-4" /> <div className="font-medium text-ewb-blue-200 -translate-x-6 absolute my-[246px] text-3xl "> {name} From 98f3a3a1930f114f30a601d20f7dd5a5664ca986 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sun, 12 Nov 2023 09:36:14 -0800 Subject: [PATCH 54/58] fix board --- src/app/board/page.js | 5 ++- src/components/board/Board.jsx | 62 +++++++++++----------------------- src/data/icons.js | 8 ++++- src/data/mockBoard.js | 24 ++++++------- 4 files changed, 39 insertions(+), 60 deletions(-) diff --git a/src/app/board/page.js b/src/app/board/page.js index 1cf8571..188fe04 100644 --- a/src/app/board/page.js +++ b/src/app/board/page.js @@ -1,10 +1,9 @@ import { BOARD } from "../../data/mockBoard"; import Board from "../../components/board/Board"; -import Row from "react-bootstrap/Row"; const page = () => { return ( - <Row className="my-6 flex w-8/12 "> + <div className="grid grid-cols-4 w-9/12 gap-8"> {BOARD.map((item, index) => ( <Board key={index} @@ -17,7 +16,7 @@ const page = () => { picture={item.picture} /> ))} - </Row> + </div> ); }; diff --git a/src/components/board/Board.jsx b/src/components/board/Board.jsx index 4cfa6dd..0df1cc5 100644 --- a/src/components/board/Board.jsx +++ b/src/components/board/Board.jsx @@ -1,51 +1,29 @@ -/* eslint-disable new-cap */ import Image from "next/image"; -import Col from "react-bootstrap/Col"; -import { FaLinkedinIn } from "react-icons/fa6"; -import { MdEmail } from "react-icons/md"; import Link from "next/link"; +import { ICONS } from "@/data/icons"; const Board = ({ name, position, grade, major, links, pronouns, picture }) => { return ( - <Col className="flex items-center justify-center"> - <div className="w-[270px] h-[450px] bg-gray-200 flex items-start justify-center my-14 shadow-[12px_-12px_0px_0px] shadow-ewb-green"> - <Image src={picture} className=" w-10/12 object-cover my-4" /> - <div className="font-medium text-ewb-blue-200 -translate-x-6 absolute my-[246px] text-3xl "> - {name} - </div> - <div className="font-light mr-[131px] absolute mt-[280px] text-2xl"> - {position} - </div> - <Link - href="https://www.google.com" - rel="noreferrer" - target="_blank" - title="LinkedIn" - className="absolute mr-56 w-1 h-1" - > - <div> - <FaLinkedinIn className="my-80 text-4xl text-ewb-blue-200 hover:text-blue-400 " /> - </div> - </Link> - <Link - href="https://www.google.com" - rel="noreferrer" - target="_blank" - title="Email" - className="absolute w-1 h-1 mr-32" - > - <div> - <MdEmail className=" my-[322px] text-4xl text-ewb-blue-200 hover:text-blue-400 " /> - </div> - </Link> - <div className="font-light items-start w-[230px] justify-start absolute mt-[360px] text-lg"> - {grade} {"\u2E31"} {major} - </div> - <div className="font-light items-start w-[230px] justify-start absolute mt-[388px] text-lg"> - Pronous: {pronouns} - </div> + <div className="w-full bg-gray-200 my-4 shadow-[12px_-12px_0px_0px] shadow-ewb-green p-4"> + <Image src={picture} className="w-full object-cover aspect-square" /> + <div className="font-semibold text-ewb-blue-200 text-2xl">{name}</div> + <div className="font-light text-lg">{position}</div> + <div className="flex gap-2"> + {Object.entries(links).map(([icon, link], index) => ( + <Link + key={index} + href={link} + className="text-2xl text-ewb-blue-200 hover:text-ewb-green" + > + {ICONS[icon]} + </Link> + ))} </div> - </Col> + <div className="font-light text-sm"> + {grade} {"\u2E31"} {major} + </div> + <div className="font-light text-lg">Pronous: {pronouns}</div> + </div> ); }; diff --git a/src/data/icons.js b/src/data/icons.js index 8cf99d4..e156433 100644 --- a/src/data/icons.js +++ b/src/data/icons.js @@ -1,4 +1,9 @@ -import { BsEnvelope, BsFacebook, BsLinkedin } from "react-icons/bs"; +import { + BsEnvelope, + BsFacebook, + BsInstagram, + BsLinkedin, +} from "react-icons/bs"; import { MdOutlineHandshake } from "react-icons/md"; export const ICONS = { @@ -6,4 +11,5 @@ export const ICONS = { facebook: <BsFacebook />, linkedin: <BsLinkedin />, handshake: <MdOutlineHandshake />, + instagram: <BsInstagram />, }; diff --git a/src/data/mockBoard.js b/src/data/mockBoard.js index 6be0f81..1355fa7 100644 --- a/src/data/mockBoard.js +++ b/src/data/mockBoard.js @@ -1,26 +1,22 @@ import board from "../../public/images/landing.webp"; export const BOARD = [ { - name: "Evan Littlecat", + name: "Vinesh Manian", position: "President", - links: { - email: "mailto:email@gmail.com", - linkedin: "mailto:email@gmail.com", - }, - grade: "Sophmore", - major: "Comp Sci", - pronouns: "She/Her/Hers", + links: {}, + grade: "3rd ", + major: "Materials Science and Engineering ", + pronouns: "He/Him", picture: board, }, { - name: "Evan Littlecat", - position: "President", + name: "Leslie Kin", + position: "Webmaster & Social Media", links: { - email: "mailto:email@gmail.com", - linkedin: "mailto:email@gmail.com", + instagram: "https://www.instagram.com/yukiki.kin/?hl=en", }, - grade: "Sophmore", - major: "Comp Sci", + grade: "2nd Year ", + major: "Chemical Engineering", pronouns: "She/Her/Hers", picture: board, }, From 1d5e69290eab21a3a52e266f44dfd19096f562f1 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sun, 12 Nov 2023 09:40:54 -0800 Subject: [PATCH 55/58] add title --- src/app/board/page.js | 31 ++++++++++++++++++------------- src/components/Title.jsx | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/app/board/page.js b/src/app/board/page.js index 188fe04..5e331c6 100644 --- a/src/app/board/page.js +++ b/src/app/board/page.js @@ -1,21 +1,26 @@ import { BOARD } from "../../data/mockBoard"; import Board from "../../components/board/Board"; +import Title from "@/components/Title"; const page = () => { return ( - <div className="grid grid-cols-4 w-9/12 gap-8"> - {BOARD.map((item, index) => ( - <Board - key={index} - name={item.name} - position={item.position} - grade={item.grade} - major={item.major} - links={item.links} - pronouns={item.pronouns} - picture={item.picture} - /> - ))} + <div className="relative w-full flex flex-col items-center mt-14"> + <div className="absolute w-1/2 aspect-square bg-ewb-blue-100/40 rounded-full -translate-y-14" /> + <Title title="MEET THE TEAM" /> + <div className="relative grid grid-cols-4 w-9/12 gap-8 mt-14"> + {BOARD.map((item, index) => ( + <Board + key={index} + name={item.name} + position={item.position} + grade={item.grade} + major={item.major} + links={item.links} + pronouns={item.pronouns} + picture={item.picture} + /> + ))} + </div> </div> ); }; diff --git a/src/components/Title.jsx b/src/components/Title.jsx index af30cde..2db0189 100644 --- a/src/components/Title.jsx +++ b/src/components/Title.jsx @@ -2,7 +2,7 @@ import { COLORS } from "../data/colors"; const Title = ({ subTitle, title }) => { const titleWords = title.split(" "); return ( - <div className="flex flex-col justify-center items-center"> + <div className="relative flex flex-col justify-center items-center"> <p className={COLORS.green.text + " font-semibold mb-0"}>{subTitle}</p> <p className="mt-0 font-bold text-2xl md:text-3xl"> <span From 54fdffe9925f645b2d4a97a55a3d758e8e05da25 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sun, 12 Nov 2023 09:55:45 -0800 Subject: [PATCH 56/58] fix project section --- src/components/ArrowLink.jsx | 2 +- src/components/home/Project.jsx | 10 +++++----- src/components/home/Projects.jsx | 6 ++---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/components/ArrowLink.jsx b/src/components/ArrowLink.jsx index 90dc8fe..c464ed0 100644 --- a/src/components/ArrowLink.jsx +++ b/src/components/ArrowLink.jsx @@ -4,7 +4,7 @@ const ArrowLink = ({ text, link }) => { return ( <Link href={link} - className="no-underline text-ewb-blue-200 hover:text-ewb-blue-200 flex items-center hover:-translate-y-0.5 duration-300" + className="no-underline text-ewb-blue-200 hover:text-ewb-blue-200 flex items-center hover:-translate-y-0.5 duration-300 text-lg" > {text} <BiRightArrowAlt /> </Link> diff --git a/src/components/home/Project.jsx b/src/components/home/Project.jsx index 8e8499d..914a391 100644 --- a/src/components/home/Project.jsx +++ b/src/components/home/Project.jsx @@ -2,14 +2,14 @@ import ArrowLink from "../ArrowLink.jsx"; const Project = ({ name, description, link }) => { return ( - <div className="bg-ewb-blue-100 w-1/3"> - <div className="text-ewb-blue-200 text-4xl font-bold underline underline-offset-8 decoration-ewb-green text-center pt-4"> + <div className="bg-ewb-blue-100 w-full h-full md:last:translate-x-1/2 flex flex-col justify-between p-4 items-center"> + <div className="text-ewb-blue-200 text-lg md:text-2xl font-bold underline underline-offset-8 decoration-ewb-green text-center"> {name} </div> - <div className="pt-6 pb-6 px-14 text-center text-base">{description}</div> - <div className="flex items-center justify-center text-blue-800 font-bold pb-2 text-xl"> - <ArrowLink text="learn more" link="{link}" /> + <div className="py-6 px-4 text-center text-xs md:text-base"> + {description} </div> + <ArrowLink text="learn more" link={link} /> </div> ); }; diff --git a/src/components/home/Projects.jsx b/src/components/home/Projects.jsx index 6afc171..766cedc 100644 --- a/src/components/home/Projects.jsx +++ b/src/components/home/Projects.jsx @@ -4,10 +4,9 @@ import Project from "@/components/home/Project"; const Projects = () => { return ( - <div> + <div className="flex flex-col w-11/12 md:w-7/12"> <Title subTitle="LEARN FROM EXPERIENCE" title="OUR PROJECTS" /> - <br /> - <div className="flex flex-wrap items-center justify-center gap-4"> + <div className="grid grid-cols-1 md:grid-cols-2 gap-4 my-10"> {PROJECTS.map((project, index) => ( <Project key={index} @@ -17,7 +16,6 @@ const Projects = () => { /> ))} </div> - <br /> </div> ); }; From 60929f0648c9ad65b5996912f87340d6fc810628 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sun, 12 Nov 2023 10:01:45 -0800 Subject: [PATCH 57/58] fix events --- src/components/home/Event.jsx | 8 +++----- src/components/home/Events.jsx | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/home/Event.jsx b/src/components/home/Event.jsx index 115dd87..1a773db 100644 --- a/src/components/home/Event.jsx +++ b/src/components/home/Event.jsx @@ -5,15 +5,13 @@ const getTimeString = (date) => { }; const Event = ({ start, end, location, name, descripton, color }) => { return ( - <div className="bg-ewb-blue-100 flex w-full font-bold"> + <div className="bg-ewb-blue-100 flex flex-col md:flex-row w-full font-bold"> <div - className={`text-4xl text-white text-center w-1/2 md:w-1/6 aspect-square flex flex-col items-center justify-center ${COLORS[color].bg}`} + className={`text-4xl text-white text-center w-full md:w-1/3 lg:w-1/4 md:aspect-square flex flex-col items-center justify-center py-2 ${COLORS[color].bg}`} > <div>{start.toString().split(" ")[1]}</div> <div>{start.getDate()}</div> - <div className="font-normal text-lg"> - {getTimeString(start)}- {getTimeString(end)} - </div> + <div className="font-normal text-lg">{getTimeString(start)}</div> </div> <div className="p-3 w-5/6 text-ewb-black "> <div className={`text-2xl ${COLORS[color].text}`}>{name}</div> diff --git a/src/components/home/Events.jsx b/src/components/home/Events.jsx index 8b0039e..7418b26 100644 --- a/src/components/home/Events.jsx +++ b/src/components/home/Events.jsx @@ -1,9 +1,11 @@ import { EVENTS } from "@/data/mockEvents"; import Event from "./Event"; +import Title from "../Title"; const Events = () => { return ( <div className="w-7/12 flex flex-col items-center justify-center gap-4"> + <Title subTitle="CHECK OUT WHAT IS NEW" title="UPCOMING EVENTS" /> {EVENTS.map((event, index) => ( <Event key={index} From c50d5df84d34d0df6ff6edf4b1c65199e5a0e5b3 Mon Sep 17 00:00:00 2001 From: menthy-wu <wumengxuan0728@gmail.com> Date: Sun, 12 Nov 2023 10:07:46 -0800 Subject: [PATCH 58/58] add tanzania --- src/app/projects/tanzania/page.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/app/projects/tanzania/page.js b/src/app/projects/tanzania/page.js index a54c709..5911e3d 100644 --- a/src/app/projects/tanzania/page.js +++ b/src/app/projects/tanzania/page.js @@ -1,7 +1,14 @@ -import React from "react"; +import Tanzania from "@/components/projects/Tanzania"; +import Header from "@/components/projects/Header"; +import header from "../../../../public/images/tanzania/tanzaniaHeader.webp"; const page = () => { - return <div>page</div>; + return ( + <> + <Header img={header.src} title="Project" /> + <Tanzania /> + </> + ); }; export default page;