From 625b337c1311822979ef25d3b1c4425bf8bb728d Mon Sep 17 00:00:00 2001 From: David Date: Sun, 3 Mar 2024 10:14:27 -0600 Subject: [PATCH 01/29] Session 01 --- apps/react-app/src/App.tsx | 31 + apps/react-app/src/app/app.module.css | 1 - apps/react-app/src/app/app.spec.tsx | 15 - apps/react-app/src/app/app.tsx | 8 - apps/react-app/src/assets/.gitkeep | 0 apps/react-app/src/components/.gitkeep | 0 .../src/components/Banner/Banner.styles.tsx | 30 + .../src/components/Banner/Banner.tsx | 22 + apps/react-app/src/components/Banner/index.ts | 1 + .../CategoryButtonGroup.styles.tsx | 13 + .../CategoryButtonGroup.tsx | 45 + .../components/CategoryButtonGroup/index.ts | 1 + .../CommentCard/CommentCard.styles.tsx | 23 + .../components/CommentCard/CommentCard.tsx | 25 + .../src/components/CommentCard/index.ts | 1 + .../components/Comments/Comments.styles.tsx | 15 + .../src/components/Comments/Comments.tsx | 14 + .../src/components/Comments/index.ts | 1 + .../CreatePostButton.styles.tsx | 9 + .../CreatePostButton/CreatePostButton.tsx | 16 + .../src/components/CreatePostButton/index.ts | 1 + .../src/components/Header/Header.styles.tsx | 9 + .../src/components/Header/Header.tsx | 1 + apps/react-app/src/components/Header/index.ts | 1 + .../src/components/HomePage/HomePage.tsx | 5 + .../src/components/HomePage/index.ts | 1 + .../src/components/Loading/Loading.tsx | 19 + .../react-app/src/components/Loading/index.ts | 1 + .../components/PostList/PostList.styles.tsx | 40 + .../src/components/PostList/PostList.tsx | 109 + .../src/components/PostList/index.ts | 1 + .../components/PostPage/PostPage.styles.tsx | 23 + .../src/components/PostPage/PostPage.tsx | 44 + .../src/components/PostPage/index.ts | 1 + apps/react-app/src/containers/.gitkeep | 0 apps/react-app/src/main.tsx | 7 +- apps/react-app/src/pages/.gitkeep | 0 apps/react-app/src/services/.gitkeep | 0 apps/react-app/src/styles.css | 15 +- apps/react-app/src/utils/index.tsx | 4 + db.json | 62 + package-lock.json | 1835 +++++++++++++++-- package.json | 8 +- 43 files changed, 2232 insertions(+), 226 deletions(-) create mode 100644 apps/react-app/src/App.tsx delete mode 100644 apps/react-app/src/app/app.module.css delete mode 100644 apps/react-app/src/app/app.spec.tsx delete mode 100644 apps/react-app/src/app/app.tsx delete mode 100644 apps/react-app/src/assets/.gitkeep delete mode 100644 apps/react-app/src/components/.gitkeep create mode 100644 apps/react-app/src/components/Banner/Banner.styles.tsx create mode 100644 apps/react-app/src/components/Banner/Banner.tsx create mode 100644 apps/react-app/src/components/Banner/index.ts create mode 100644 apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx create mode 100644 apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx create mode 100644 apps/react-app/src/components/CategoryButtonGroup/index.ts create mode 100644 apps/react-app/src/components/CommentCard/CommentCard.styles.tsx create mode 100644 apps/react-app/src/components/CommentCard/CommentCard.tsx create mode 100644 apps/react-app/src/components/CommentCard/index.ts create mode 100644 apps/react-app/src/components/Comments/Comments.styles.tsx create mode 100644 apps/react-app/src/components/Comments/Comments.tsx create mode 100644 apps/react-app/src/components/Comments/index.ts create mode 100644 apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx create mode 100644 apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx create mode 100644 apps/react-app/src/components/CreatePostButton/index.ts create mode 100644 apps/react-app/src/components/Header/Header.styles.tsx create mode 100644 apps/react-app/src/components/Header/Header.tsx create mode 100644 apps/react-app/src/components/Header/index.ts create mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/HomePage/index.ts create mode 100644 apps/react-app/src/components/Loading/Loading.tsx create mode 100644 apps/react-app/src/components/Loading/index.ts create mode 100644 apps/react-app/src/components/PostList/PostList.styles.tsx create mode 100644 apps/react-app/src/components/PostList/PostList.tsx create mode 100644 apps/react-app/src/components/PostList/index.ts create mode 100644 apps/react-app/src/components/PostPage/PostPage.styles.tsx create mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx create mode 100644 apps/react-app/src/components/PostPage/index.ts delete mode 100644 apps/react-app/src/containers/.gitkeep delete mode 100644 apps/react-app/src/pages/.gitkeep delete mode 100644 apps/react-app/src/services/.gitkeep create mode 100644 apps/react-app/src/utils/index.tsx create mode 100644 db.json diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx new file mode 100644 index 00000000..3fe215a7 --- /dev/null +++ b/apps/react-app/src/App.tsx @@ -0,0 +1,31 @@ +import { Grid, Typography } from '@mui/material'; + +import { Container } from './components/Header/Header.styles'; + +function App() { + return ( + + {/* Activity 2 - Move all Container content to Header component */} + + + + [ + Making your Life Easier + ] + + + + + Discovering the World + + + + + + {/* Activity 1 - Render HomePage and PostPage */} + + + ); +} + +export default App; diff --git a/apps/react-app/src/app/app.module.css b/apps/react-app/src/app/app.module.css deleted file mode 100644 index 7b88fbab..00000000 --- a/apps/react-app/src/app/app.module.css +++ /dev/null @@ -1 +0,0 @@ -/* Your styles goes here. */ diff --git a/apps/react-app/src/app/app.spec.tsx b/apps/react-app/src/app/app.spec.tsx deleted file mode 100644 index 9a016c35..00000000 --- a/apps/react-app/src/app/app.spec.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { render } from '@testing-library/react'; -import { BrowserRouter } from 'react-router-dom'; - -import App from './app'; - -describe('App', () => { - it('should render successfully', () => { - const { baseElement } = render( - - - - ); - expect(baseElement).toBeTruthy(); - }); -}); diff --git a/apps/react-app/src/app/app.tsx b/apps/react-app/src/app/app.tsx deleted file mode 100644 index 139fd9dd..00000000 --- a/apps/react-app/src/app/app.tsx +++ /dev/null @@ -1,8 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import styles from './app.module.css'; - -export function App() { - return
; -} - -export default App; diff --git a/apps/react-app/src/assets/.gitkeep b/apps/react-app/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/react-app/src/components/.gitkeep b/apps/react-app/src/components/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/react-app/src/components/Banner/Banner.styles.tsx b/apps/react-app/src/components/Banner/Banner.styles.tsx new file mode 100644 index 00000000..e85f1f8d --- /dev/null +++ b/apps/react-app/src/components/Banner/Banner.styles.tsx @@ -0,0 +1,30 @@ +import { Box, Typography } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Box)<{ image: string }>` + display: flex; + flex-grow: 1; + height: 100%; + color: white; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + background-image: ${(props) => `url(${props.image})`}; +`; + +export const BannerContent = styled(Box)` + flex-grow: 1; + padding: 16px; + background-color: #4b4b4b3b; +`; + +export const BannerTitle = styled(Typography)` + display: flex; + flex-grow: 1; + text-align: center; + align-items: center; + justify-content: center; + height: calc(100% - 103px); + font-weight: 600; + padding: 30px; +`; diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx new file mode 100644 index 00000000..4033c6d9 --- /dev/null +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -0,0 +1,22 @@ +import Button from "@mui/material/Button"; +import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; +import { BannerContent, BannerTitle, Container } from "./Banner.styles"; + +// const postTitle = "A good place to camp"; +const postImage = + "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0"; + +function Banner() { + return ( + + + + {/* Activity 1 - Render post title */} + + + ); +} + +export default Banner; diff --git a/apps/react-app/src/components/Banner/index.ts b/apps/react-app/src/components/Banner/index.ts new file mode 100644 index 00000000..b927b809 --- /dev/null +++ b/apps/react-app/src/components/Banner/index.ts @@ -0,0 +1 @@ +export { default } from './Banner'; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx new file mode 100644 index 00000000..ceee193f --- /dev/null +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -0,0 +1,13 @@ +import { Button, Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Grid)` + display: flex; + flex-grow: 1; + justify-content: center; + padding-bottom: 16px; +`; + +export const StyledButton = styled(Button)<{ selected: boolean }>` + background-color: ${(props) => (props.selected ? "#DCDCDC" : undefined)}; +`; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx new file mode 100644 index 00000000..2f94d5ec --- /dev/null +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -0,0 +1,45 @@ +import { ButtonGroup } from "@mui/material"; + +import { Container, StyledButton } from "./CategoryButtonGroup.styles"; + +// const categoryOptions = [ +// { +// key: "all", +// name: "All", +// }, +// { +// key: "healt", +// name: "Health", +// }, +// { +// key: "travel", +// name: "Travel", +// }, +// { +// key: "sports", +// name: "Sports", +// }, +// ]; + +function CategoryButtonGroup() { + return ( + + + + {/* Activity 1 - Render category name */} + + + {/* Activity 1 - Render category name */} + + + {/* Activity 1 - Render category name */} + + + {/* Activity 1 - Render category name */} + + + + ); +} + +export default CategoryButtonGroup; diff --git a/apps/react-app/src/components/CategoryButtonGroup/index.ts b/apps/react-app/src/components/CategoryButtonGroup/index.ts new file mode 100644 index 00000000..761f5b91 --- /dev/null +++ b/apps/react-app/src/components/CategoryButtonGroup/index.ts @@ -0,0 +1 @@ +export { default } from './CategoryButtonGroup'; diff --git a/apps/react-app/src/components/CommentCard/CommentCard.styles.tsx b/apps/react-app/src/components/CommentCard/CommentCard.styles.tsx new file mode 100644 index 00000000..0e427e12 --- /dev/null +++ b/apps/react-app/src/components/CommentCard/CommentCard.styles.tsx @@ -0,0 +1,23 @@ +import { Grid, Box, Typography } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Grid)` + display: flex; + gap: 16px; + flex-grow: 1; + padding: 16px; + margin-bottom: 24px; + background-color: white; + border-radius: 8px; + height: fit-content; +`; + +export const Content = styled(Box)` + display: flex; + flex-direction: column; +`; + +export const Author = styled(Typography)` + font-weight: bold; + margin-bottom: 8px; +`; diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx new file mode 100644 index 00000000..2f6c2187 --- /dev/null +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -0,0 +1,25 @@ +import { Typography } from "@mui/material"; +import AccountCircleIcon from "@mui/icons-material/AccountCircle"; + +import { Container, Content, Author } from "./CommentCard.styles"; + +// const comment = { +// id: "2.1", +// author: "Anonymus", +// content: +// "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.", +// }; + +function CommentCard() { + return ( + + + + {/* Activity 1 - Render author */} + {/* Activity 1 - Render comment content */} + + + ); +} + +export default CommentCard; diff --git a/apps/react-app/src/components/CommentCard/index.ts b/apps/react-app/src/components/CommentCard/index.ts new file mode 100644 index 00000000..378b8fd1 --- /dev/null +++ b/apps/react-app/src/components/CommentCard/index.ts @@ -0,0 +1 @@ +export { default } from './CommentCard'; diff --git a/apps/react-app/src/components/Comments/Comments.styles.tsx b/apps/react-app/src/components/Comments/Comments.styles.tsx new file mode 100644 index 00000000..93d9a036 --- /dev/null +++ b/apps/react-app/src/components/Comments/Comments.styles.tsx @@ -0,0 +1,15 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Grid)` + flex-grow: 1; + justify-content: center; +`; + +export const Title = styled(Grid)` + flex-grow: 1; +`; + +export const FormContainer = styled(Grid)` + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx new file mode 100644 index 00000000..e7e711db --- /dev/null +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -0,0 +1,14 @@ +import { Title, Container } from "./Comments.styles"; + +function Comments() { + return ( + + + <h4>Comments</h4> + + {/* Activity 1 - Render CommentCard */} + + ); +} + +export default Comments; diff --git a/apps/react-app/src/components/Comments/index.ts b/apps/react-app/src/components/Comments/index.ts new file mode 100644 index 00000000..fff63290 --- /dev/null +++ b/apps/react-app/src/components/Comments/index.ts @@ -0,0 +1 @@ +export { default } from './Comments'; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx new file mode 100644 index 00000000..c09e2ab1 --- /dev/null +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -0,0 +1,9 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Grid)` + display: flex; + flex-grow: 1; + justify-content: end; + padding-right: 16px; +`; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx new file mode 100644 index 00000000..a3bd3ea1 --- /dev/null +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx @@ -0,0 +1,16 @@ +import EditIcon from "@mui/icons-material/Edit"; +import { IconButton } from "@mui/material"; + +import { Container } from "./CreatePostButton.styles"; + +const CreatePostButton = () => { + return ( + + + + + + ); +}; + +export default CreatePostButton; diff --git a/apps/react-app/src/components/CreatePostButton/index.ts b/apps/react-app/src/components/CreatePostButton/index.ts new file mode 100644 index 00000000..27cac79e --- /dev/null +++ b/apps/react-app/src/components/CreatePostButton/index.ts @@ -0,0 +1 @@ +export { default } from './CreatePostButton'; diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Header/Header.styles.tsx new file mode 100644 index 00000000..a96059ce --- /dev/null +++ b/apps/react-app/src/components/Header/Header.styles.tsx @@ -0,0 +1,9 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Grid)` + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2; +`; diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/react-app/src/components/Header/Header.tsx @@ -0,0 +1 @@ + diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts new file mode 100644 index 00000000..6df4c0d6 --- /dev/null +++ b/apps/react-app/src/components/Header/index.ts @@ -0,0 +1 @@ +// export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx new file mode 100644 index 00000000..8c747833 --- /dev/null +++ b/apps/react-app/src/components/HomePage/HomePage.tsx @@ -0,0 +1,5 @@ +function HomePage() { + return <>{/* Activity 1 - Render CreatePostButton, CategoryButtonGroup and PostList */}; +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/HomePage/index.ts new file mode 100644 index 00000000..bf97a3e7 --- /dev/null +++ b/apps/react-app/src/components/HomePage/index.ts @@ -0,0 +1 @@ +export { default } from './HomePage'; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx new file mode 100644 index 00000000..5ea16a52 --- /dev/null +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import CircularProgress from '@mui/material/CircularProgress'; +import Grid from '@mui/material/Grid'; + +/** + * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display + */ +export default function Loading(): React.JSX.Element { + return ( + + + + ); +} diff --git a/apps/react-app/src/components/Loading/index.ts b/apps/react-app/src/components/Loading/index.ts new file mode 100644 index 00000000..62141369 --- /dev/null +++ b/apps/react-app/src/components/Loading/index.ts @@ -0,0 +1 @@ +export { default } from './Loading'; diff --git a/apps/react-app/src/components/PostList/PostList.styles.tsx b/apps/react-app/src/components/PostList/PostList.styles.tsx new file mode 100644 index 00000000..bcecb52c --- /dev/null +++ b/apps/react-app/src/components/PostList/PostList.styles.tsx @@ -0,0 +1,40 @@ +import { Grid, Box } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PostCard = styled(Grid)<{ image: string }>` + display: flex; + flex-grow: 1; + color: white; + cursor: pointer; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + background-image: ${(props) => `url(${props.image})`}; + + :hover .card-actions { + visibility: visible; + } +`; + +export const CardContainer = styled(Box)` + display: flex; + flex-grow: 1; + flex-direction: column; + justify-content: space-between; + background-color: #4b4b4b3b; +`; + +export const CardContent = styled(Box)` + display: flex; + padding: 24px; + padding-top: 160px; + flex-direction: column; +`; + +export const CardActions = styled(Box)` + gap: 16px; + padding: 16px; + display: flex; + visibility: hidden; + justify-content: end; +`; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx new file mode 100644 index 00000000..24c61238 --- /dev/null +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -0,0 +1,109 @@ +import EditIcon from "@mui/icons-material/Edit"; +import DeleteIcon from "@mui/icons-material/Delete"; +import { Grid, IconButton, Typography } from "@mui/material"; + +import { shorten } from "../../utils/index"; +import { + CardActions, + CardContainer, + CardContent, + PostCard, +} from "./PostList.styles"; + +const posts = [ + { + id: "1.23", + title: "A good place to camp", + image: + "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", + description: + "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", + category: "Travel", + comments: [ + { + id: "2.1", + author: "Anonymus", + content: + "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.", + }, + { + id: "2.2", + author: "Anonymus", + content: + "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.", + }, + ], + }, + { + id: "1.24", + title: "The average path a grandparent took to get to school", + image: + "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", + description: + "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", + category: "Travel", + comments: [ + { + id: "2.1", + author: "Anonymus", + content: + "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.", + }, + ], + }, +]; + +function PostList() { + return ( + + + + +

{/* Activity 1 - Render post title */}

+

+ {/* Activity 1 - Render comments length */} + {" Comment"} +

+

{shorten(posts[0].description, 70)}

+ + {/* Activity 1 - Render post category */} + +
+ + + + + + + + +
+
+ + + +

{/* Activity 1 - Render post title */}

+

+ {/* Activity 1 - Render comments length */} + {" Comment"} +

+

{shorten(posts[1].description, 70)}

+ + {/* Activity 1 - Render post category */} + +
+ + + + + + + + +
+
+
+ ); +} + +export default PostList; diff --git a/apps/react-app/src/components/PostList/index.ts b/apps/react-app/src/components/PostList/index.ts new file mode 100644 index 00000000..5285635b --- /dev/null +++ b/apps/react-app/src/components/PostList/index.ts @@ -0,0 +1 @@ +export { default } from './PostList'; diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/PostPage/PostPage.styles.tsx new file mode 100644 index 00000000..5e0a4d5f --- /dev/null +++ b/apps/react-app/src/components/PostPage/PostPage.styles.tsx @@ -0,0 +1,23 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const Container = styled(Grid)` + height: 100%; + flex-direction: column; + background-color: #f0f0ff; +`; + +export const BannerContainer = styled(Grid)` + flex-grow: 1; +`; + +export const DescriptionContainer = styled(Grid)` + padding: 16px; +`; + +export const CommentsContainer = styled(Grid)` + display: flex; + flex-grow: 1; + padding: 16px; + justify-content: center; +`; diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx new file mode 100644 index 00000000..d0cd4fb7 --- /dev/null +++ b/apps/react-app/src/components/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// id: "1.23", +// title: "A good place to camp", +// image: +// "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", +// description: +// "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", +// category: "Travel", +// comments: [ +// { +// id: "2.1", +// author: "Anonymus", +// content: +// "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.", +// }, +// { +// id: "2.2", +// author: "Anonymus", +// content: +// "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.", +// }, +// ], +// }; + +function PostPage() { + return ( + + {/* Activity 1 - Render Banner */} + +

{/* Activity 1 - Render post description */}

+
+ {/* Activity 1 - Render Comments */} +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/PostPage/index.ts new file mode 100644 index 00000000..9374e837 --- /dev/null +++ b/apps/react-app/src/components/PostPage/index.ts @@ -0,0 +1 @@ +export { default } from './PostPage'; diff --git a/apps/react-app/src/containers/.gitkeep b/apps/react-app/src/containers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/react-app/src/main.tsx b/apps/react-app/src/main.tsx index 0d4ef43d..8b92f083 100644 --- a/apps/react-app/src/main.tsx +++ b/apps/react-app/src/main.tsx @@ -1,15 +1,12 @@ import { StrictMode } from 'react'; import * as ReactDOM from 'react-dom/client'; -import { BrowserRouter } from 'react-router-dom'; -import App from './app/app'; +import App from './App'; const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); root.render( - - - + ); diff --git a/apps/react-app/src/pages/.gitkeep b/apps/react-app/src/pages/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/react-app/src/services/.gitkeep b/apps/react-app/src/services/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/react-app/src/styles.css b/apps/react-app/src/styles.css index 90d4ee00..a7f2c8b1 100644 --- a/apps/react-app/src/styles.css +++ b/apps/react-app/src/styles.css @@ -1 +1,14 @@ -/* You can add global styles to this file, and also import other style files */ +body { + margin: 0; + } + :root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + \ No newline at end of file diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/utils/index.tsx new file mode 100644 index 00000000..30d39a3d --- /dev/null +++ b/apps/react-app/src/utils/index.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; +} diff --git a/db.json b/db.json new file mode 100644 index 00000000..2840848c --- /dev/null +++ b/db.json @@ -0,0 +1,62 @@ +{ + "posts": [ + { + "id": "1.24", + "title": "The average path a grandparent took to get to school", + "image": "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", + "description": "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", + "category": "Travel", + "comments": [ + { + "id": "2.1", + "author": "Anonymus", + "content": "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." + } + ] + }, + { + "id": "3", + "title": "Peaceful activities to do on a Monday morning", + "image": "https://www.cairnsskydivers.com.au/wp-content/uploads/2021/07/skydivingoverthegreatbarrierreef.jpg", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ", + "category": "Sports", + "comments": [ + { + "id": "3.1", + "author": "Anonymus", + "content": "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." + } + ] + }, + { + "id": "4", + "title": "A good choice to eatt", + "image": "https://th.bing.com/th/id/R.2d66d3ce21d052726c2c527a03da4f4c?rik=3FedcY2H7LDtBw&riu=http%3a%2f%2ftheartofplating.com%2fwp-content%2fuploads%2f2015%2f06%2fEvan_Feature.jpg&ehk=KCxZkONbpjuAYhfpKxoeHgIizR%2fy1U0LM6olKn1d8go%3d&risl=&pid=ImgRaw&r=0", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ", + "category": "Health", + "comments": [ + { + "id": "4.1", + "author": "Anonymus", + "content": "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." + } + ] + }, + { + "id": "0.34674599859102395", + "title": "New", + "image": "https://th.bing.com/th/id/R.385e7dbec0e6c313cfd6dc3b6fff1c95?rik=Ps5ZHpTWtX4y3A&pid=ImgRaw&r=0", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ", + "category": "Travel", + "comments": [] + }, + { + "id": "0.18206228009545122", + "title": "Latest", + "image": "https://media.geeksforgeeks.org/wp-content/uploads/Screen-Shot-2017-11-13-at-10.23.39-AM.png", + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ", + "category": "Sports", + "comments": [] + } + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c1ea404a..a80b2967 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,13 +17,19 @@ "@angular/platform-browser": "~17.0.0", "@angular/platform-browser-dynamic": "~17.0.0", "@angular/router": "~17.0.0", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.15.11", + "@mui/material": "^5.15.11", "@swc/helpers": "~0.5.2", - "axios": "^1.0.0", + "axios": "^1.6.7", "express": "~4.18.1", + "json-server": "^1.0.0-alpha.23", "mongoose": "^8.0.3", "normalize.css": "^8.0.1", "react": "18.2.0", "react-dom": "18.2.0", + "react-hook-form": "^7.51.0", "react-router-dom": "6.11.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", @@ -2372,7 +2378,6 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -2385,7 +2390,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -2397,7 +2401,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2411,7 +2414,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -2419,14 +2421,12 @@ "node_modules/@babel/code-frame/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -2435,7 +2435,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -2679,7 +2678,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -2801,7 +2799,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -2810,7 +2807,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -2856,7 +2852,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -2870,7 +2865,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -2882,7 +2876,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2896,7 +2889,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -2904,14 +2896,12 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -2920,7 +2910,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -4402,10 +4391,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", - "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", - "dev": true, + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -4452,7 +4440,6 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -4499,6 +4486,163 @@ "node": ">=10.0.0" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", @@ -4971,6 +5115,40 @@ "node": ">=14" } }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.13", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", @@ -5528,6 +5706,251 @@ "sparse-bitfield": "^3.0.3" } }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.37", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.37.tgz", + "integrity": "sha512-/o3anbb+DeCng8jNsd3704XtmmLDZju1Fo8R2o7ugrVtPQ/QpcqddwKNzKPZwa0J5T8YNW3ZVuHyQgbTnQLisQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz", + "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.11.tgz", + "integrity": "sha512-R5ZoQqnKpd+5Ew7mBygTFLxgYsQHPhgR3TDXSgIHYIjGzYuyPLmGLSdcPUoMdi6kxiYqHlpPj4NJxlbaFD0UHA==", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.11.tgz", + "integrity": "sha512-FA3eEuEZaDaxgN3CgfXezMWbCZ4VCeU/sv0F0/PK5n42qIgsPVD6q+j71qS7/62sp6wRFMHtDMpXRlN+tT/7NA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.37", + "@mui/core-downloads-tracker": "^5.15.11", + "@mui/system": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", + "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.11", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz", + "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.11.tgz", + "integrity": "sha512-9j35suLFq+MgJo5ktVSHPbkjDLRMBCV17NMBdEQurh6oWyGnLM4uhU4QGZZQ75o0vuhjJghOCA1jkO3+79wKsA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.11", + "@mui/styled-engine": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", + "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@ngtools/webpack": { "version": "17.0.9", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.9.tgz", @@ -6752,8 +7175,16 @@ "node_modules/@polka/url": { "version": "1.0.0-next.24", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", - "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", - "dev": true + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } }, "node_modules/@remix-run/router": { "version": "1.6.2", @@ -7774,6 +8205,276 @@ "react-dom": "^18.0.0" } }, + "node_modules/@tinyhttp/accepts": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.2.1.tgz", + "integrity": "sha512-2DHJLSJX1gqR5F6nKuu7+hyCNoPRNOxvnQ11m0X8klkSVoBFBO2HMf3bJ8P+fmNv1e6RjHzHF+G+hJ3dxXIQXQ==", + "dependencies": { + "mime": "4.0.1", + "negotiator": "^0.6.3" + }, + "engines": { + "node": ">=12.20.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" + } + }, + "node_modules/@tinyhttp/accepts/node_modules/mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@tinyhttp/app": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.2.3.tgz", + "integrity": "sha512-njr499Tx9BwlnIGfJjTuqfPwaUSTsjhUeRq/jVtHJpS95UgWECH7kiq8+bEx6TFRXiNKpARZ6KJUemlMyV+iCg==", + "dependencies": { + "@tinyhttp/cookie": "2.1.0", + "@tinyhttp/proxy-addr": "2.1.3", + "@tinyhttp/req": "2.2.2", + "@tinyhttp/res": "2.2.2", + "@tinyhttp/router": "2.2.2", + "header-range-parser": "1.1.3", + "regexparam": "^2.0.1" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "individual", + "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" + } + }, + "node_modules/@tinyhttp/content-disposition": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.0.tgz", + "integrity": "sha512-w1dJaSAtcCinOlT/YQg35RnFCOBbCHBGDVhH4yLoiJVtecRAJ2cYMf5HP+UhfbXURa38GC8fkRXO0vODDTjmeg==", + "engines": { + "node": ">=12.20.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" + } + }, + "node_modules/@tinyhttp/content-type": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@tinyhttp/content-type/-/content-type-0.1.4.tgz", + "integrity": "sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==", + "engines": { + "node": ">=12.4" + } + }, + "node_modules/@tinyhttp/cookie": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.1.0.tgz", + "integrity": "sha512-o56utxXvIuLTCtPm66r8lcyUufpw0RkO+u4wQrTbc6snyyGZZ9hHzGRxPyko0ks90ctOkLh0mNKn7YZaTWlvfw==", + "engines": { + "node": ">=12.20.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" + } + }, + "node_modules/@tinyhttp/cookie-signature": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.1.0.tgz", + "integrity": "sha512-bpOXBGf9rKoajtEG75O7xjwW+u2I/NNPkJWJTDdr6j7Vx0lG5R9Hnl3ty80Af4jwyo90ywXVpZIxKLubPK6RzA==", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/cors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz", + "integrity": "sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==", + "dependencies": { + "es-vary": "^0.1.1" + }, + "engines": { + "node": ">=12.4 || 14.x || >=16" + } + }, + "node_modules/@tinyhttp/encode-url": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.1.1.tgz", + "integrity": "sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/etag": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.1.1.tgz", + "integrity": "sha512-AcHGK1nMlKIHmlbg8bb8UY/KhiaAX17SAn3/6wlgwwdX4UizA8HETDfCH3KLdu2ZASokynuwVFNDJCo1DAawGw==", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/forwarded": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.1.2.tgz", + "integrity": "sha512-9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/proxy-addr": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.1.3.tgz", + "integrity": "sha512-Z0Q/0wEJpvall7LlBezXDy96CXLzPZb6xJawwEgsMXXQhmjb+r3EkpCBwMrWm2GlbJFL/UxKxpdumiNW3Ne06g==", + "dependencies": { + "@tinyhttp/forwarded": "2.1.2", + "ipaddr.js": "^2.1.0" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/proxy-addr/node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tinyhttp/req": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.2.2.tgz", + "integrity": "sha512-LaL/RFRro0qjOQ0g3vxE6i9bWl9hhv9en7opykzLU4NimFPg2C8wl7Qkoyc0mDuoRMQmWpq730PDWXSUmLiT2A==", + "dependencies": { + "@tinyhttp/accepts": "2.2.1", + "@tinyhttp/type-is": "2.2.2", + "@tinyhttp/url": "2.1.1", + "header-range-parser": "^1.1.3" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/res": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.2.2.tgz", + "integrity": "sha512-YeEYFwozag2qO5xoTj1Df+d5l6MXUefxz3xbcJD6ASVqUQytTEYtOC0FjhQKLpTLjMJKlS4mkKmeIdDLFO9btg==", + "dependencies": { + "@tinyhttp/content-disposition": "2.2.0", + "@tinyhttp/cookie": "2.1.0", + "@tinyhttp/cookie-signature": "2.1.0", + "@tinyhttp/encode-url": "2.1.1", + "@tinyhttp/req": "2.2.2", + "@tinyhttp/send": "2.2.1", + "@tinyhttp/vary": "^0.1.3", + "es-escape-html": "^0.1.1", + "mime": "4.0.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/res/node_modules/mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@tinyhttp/router": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.2.2.tgz", + "integrity": "sha512-i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/send": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.2.1.tgz", + "integrity": "sha512-uFW0fxmYIPpB5RKP2vpL8QuafjUrCBmBWxZMIhFb7uBQky87t7x1QdpRB0vc+w11a2kok+Nc8ClD5kc6CRJCFg==", + "dependencies": { + "@tinyhttp/content-type": "^0.1.4", + "@tinyhttp/etag": "2.1.1", + "mime": "4.0.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/send/node_modules/mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@tinyhttp/type-is": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.2.2.tgz", + "integrity": "sha512-DmTm0MkdrUxEPI2WBBoYJT0bitWx6+xeUd3lya1NGbKmYArzyUE+KVro/9y/h6Bxh+RaAKNeTCF4H/ksbe/ULQ==", + "dependencies": { + "@tinyhttp/content-type": "^0.1.4", + "mime": "4.0.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/type-is/node_modules/mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@tinyhttp/url": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.1.1.tgz", + "integrity": "sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@tinyhttp/vary": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@tinyhttp/vary/-/vary-0.1.3.tgz", + "integrity": "sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==", + "engines": { + "node": ">=12.20" + } + }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -8186,14 +8887,12 @@ "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { "version": "15.7.11", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", - "dev": true + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/qs": { "version": "6.9.11", @@ -8211,7 +8910,6 @@ "version": "18.2.33", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -8227,6 +8925,14 @@ "@types/react": "*" } }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -8245,8 +8951,7 @@ "node_modules/@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { "version": "7.5.6", @@ -9349,7 +10054,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -9609,9 +10313,9 @@ } }, "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "dependencies": { "follow-redirects": "^1.15.4", "form-data": "^4.0.0", @@ -9848,6 +10552,20 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", @@ -10179,7 +10897,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, "engines": { "node": ">=8" } @@ -10261,7 +10978,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -10756,7 +11472,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -10867,7 +11582,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "funding": [ { "type": "individual", @@ -11020,6 +11734,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -11448,7 +12170,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -11780,8 +12501,7 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -12138,6 +12858,15 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -12216,6 +12945,31 @@ "tslib": "^2.0.3" } }, + "node_modules/dot-prop": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz", + "integrity": "sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==", + "dependencies": { + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dotenv": { "version": "16.3.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", @@ -12487,7 +13241,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -12545,6 +13298,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-escape-html": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz", + "integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==", + "engines": { + "node": ">=12.x" + } + }, "node_modules/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -12617,6 +13378,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-vary": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/es-vary/-/es-vary-0.1.2.tgz", + "integrity": "sha512-pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==", + "engines": { + "node": ">=12.x" + } + }, "node_modules/esbuild": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", @@ -12685,7 +13454,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -13293,6 +14061,17 @@ "node": ">=0.10.0" } }, + "node_modules/eta": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz", + "integrity": "sha512-Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -13722,7 +14501,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -13801,6 +14579,11 @@ "semver": "bin/semver.js" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -14070,7 +14853,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -14217,7 +14999,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -14475,6 +15256,27 @@ "he": "bin/he" } }, + "node_modules/header-range-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.3.tgz", + "integrity": "sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", @@ -14876,7 +15678,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -14892,7 +15693,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -14934,6 +15734,14 @@ "node": ">=8" } }, + "node_modules/inflection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-3.0.0.tgz", + "integrity": "sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -15150,8 +15958,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -15169,7 +15976,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -15209,7 +16015,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -15251,7 +16056,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15278,7 +16082,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -15326,7 +16129,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -16635,8 +17437,7 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -16644,6 +17445,42 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/json-server": { + "version": "1.0.0-alpha.23", + "resolved": "https://registry.npmjs.org/json-server/-/json-server-1.0.0-alpha.23.tgz", + "integrity": "sha512-FPL1veNELhkr3tttwbIutKPkc/AUfLWSmslTwLYYPzl9RbCJQrwSPJceYWg2LnK1cv20tcEMLI2Kxl1lHz155Q==", + "dependencies": { + "@tinyhttp/app": "^2.2.3", + "@tinyhttp/cors": "^2.0.0", + "chalk": "^5.3.0", + "chokidar": "^3.5.3", + "dot-prop": "^8.0.2", + "eta": "^3.2.0", + "inflection": "^3.0.0", + "json5": "^2.2.3", + "lowdb": "^7.0.1", + "milliparsec": "^2.3.0", + "sirv": "^2.0.4", + "sort-on": "^6.0.0" + }, + "bin": { + "json-server": "lib/bin.js" + }, + "engines": { + "node": ">=18.3" + } + }, + "node_modules/json-server/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -16654,7 +17491,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -17139,6 +17975,20 @@ "get-func-name": "^2.0.1" } }, + "node_modules/lowdb": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-7.0.1.tgz", + "integrity": "sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==", + "dependencies": { + "steno": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -17311,6 +18161,14 @@ "node": ">=8.6" } }, + "node_modules/milliparsec": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/milliparsec/-/milliparsec-2.3.0.tgz", + "integrity": "sha512-b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==", + "engines": { + "node": ">=12.4" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -18053,7 +18911,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -18299,7 +19156,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -18718,7 +19574,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -18730,7 +19585,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -18747,8 +19601,7 @@ "node_modules/parse-json/node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/parse-node-version": { "version": "1.0.1", @@ -18853,8 +19706,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.10.1", @@ -18890,7 +19742,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -18933,7 +19784,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -19751,7 +20601,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -19761,8 +20610,7 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -19940,11 +20788,25 @@ "react": "^18.2.0" } }, + "node_modules/react-hook-form": { + "version": "7.51.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.0.tgz", + "integrity": "sha512-BggOy5j58RdhdMzzRUHGOYhSz1oeylFAv6jUSG86OvCIvlAvS7KvnRY7yoAf2pfEiPN7BesnR0xx73nEk3qIiw==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/react-refresh": { "version": "0.14.0", @@ -19985,6 +20847,21 @@ "react-dom": ">=16.8" } }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -20120,7 +20997,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -20155,8 +21031,7 @@ "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -20190,6 +21065,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexparam": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz", + "integrity": "sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==", + "engines": { + "node": ">=8" + } + }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -20256,7 +21139,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -21071,7 +21953,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -21085,7 +21966,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "dev": true, "engines": { "node": ">=10" } @@ -21252,6 +22132,20 @@ "node": ">=0.10.0" } }, + "node_modules/sort-on": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/sort-on/-/sort-on-6.0.0.tgz", + "integrity": "sha512-d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==", + "dependencies": { + "dot-prop": "^8.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -21442,6 +22336,17 @@ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, + "node_modules/steno": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/steno/-/steno-4.0.2.tgz", + "integrity": "sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -21740,6 +22645,11 @@ "postcss": "^8.4.31" } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "node_modules/stylus": { "version": "0.59.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", @@ -21830,7 +22740,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -22201,7 +23110,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -22210,7 +23118,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -22247,7 +23154,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, "engines": { "node": ">=6" } @@ -23730,7 +24636,6 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, "engines": { "node": ">= 6" } @@ -25162,7 +26067,6 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, "requires": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -25172,7 +26076,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -25181,7 +26084,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -25192,7 +26094,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -25200,20 +26101,17 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -25403,7 +26301,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, "requires": { "@babel/types": "^7.22.15" } @@ -25488,14 +26385,12 @@ "@babel/helper-string-parser": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" }, "@babel/helper-validator-identifier": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { "version": "7.23.5", @@ -25529,7 +26424,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -25540,7 +26434,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -25549,7 +26442,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -25560,7 +26452,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -25568,20 +26459,17 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -26569,10 +27457,9 @@ "dev": true }, "@babel/runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", - "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", - "dev": true, + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", "requires": { "regenerator-runtime": "^0.14.0" } @@ -26610,7 +27497,6 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "dev": true, "requires": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -26650,6 +27536,137 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, + "@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "requires": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + } + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, "@esbuild/aix-ppc64": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", @@ -26881,6 +27898,36 @@ "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", "dev": true }, + "@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "requires": { + "@floating-ui/utils": "^0.2.1" + } + }, + "@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "requires": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "requires": { + "@floating-ui/dom": "^1.6.1" + } + }, + "@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, "@humanwhocodes/config-array": { "version": "0.11.13", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", @@ -27317,6 +28364,105 @@ "sparse-bitfield": "^3.0.3" } }, + "@mui/base": { + "version": "5.0.0-beta.37", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.37.tgz", + "integrity": "sha512-/o3anbb+DeCng8jNsd3704XtmmLDZju1Fo8R2o7ugrVtPQ/QpcqddwKNzKPZwa0J5T8YNW3ZVuHyQgbTnQLisQ==", + "requires": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + } + }, + "@mui/core-downloads-tracker": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz", + "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==" + }, + "@mui/icons-material": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.11.tgz", + "integrity": "sha512-R5ZoQqnKpd+5Ew7mBygTFLxgYsQHPhgR3TDXSgIHYIjGzYuyPLmGLSdcPUoMdi6kxiYqHlpPj4NJxlbaFD0UHA==", + "requires": { + "@babel/runtime": "^7.23.9" + } + }, + "@mui/material": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.11.tgz", + "integrity": "sha512-FA3eEuEZaDaxgN3CgfXezMWbCZ4VCeU/sv0F0/PK5n42qIgsPVD6q+j71qS7/62sp6wRFMHtDMpXRlN+tT/7NA==", + "requires": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.37", + "@mui/core-downloads-tracker": "^5.15.11", + "@mui/system": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + } + }, + "@mui/private-theming": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", + "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", + "requires": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.11", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz", + "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==", + "requires": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.11.tgz", + "integrity": "sha512-9j35suLFq+MgJo5ktVSHPbkjDLRMBCV17NMBdEQurh6oWyGnLM4uhU4QGZZQ75o0vuhjJghOCA1jkO3+79wKsA==", + "requires": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.11", + "@mui/styled-engine": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", + "requires": {} + }, + "@mui/utils": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", + "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", + "requires": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + } + }, "@ngtools/webpack": { "version": "17.0.9", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.9.tgz", @@ -28197,8 +29343,12 @@ "@polka/url": { "version": "1.0.0-next.24", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", - "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", - "dev": true + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" + }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, "@remix-run/router": { "version": "1.6.2", @@ -28798,6 +29948,177 @@ "@types/react-dom": "^18.0.0" } }, + "@tinyhttp/accepts": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.2.1.tgz", + "integrity": "sha512-2DHJLSJX1gqR5F6nKuu7+hyCNoPRNOxvnQ11m0X8klkSVoBFBO2HMf3bJ8P+fmNv1e6RjHzHF+G+hJ3dxXIQXQ==", + "requires": { + "mime": "4.0.1", + "negotiator": "^0.6.3" + }, + "dependencies": { + "mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" + } + } + }, + "@tinyhttp/app": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.2.3.tgz", + "integrity": "sha512-njr499Tx9BwlnIGfJjTuqfPwaUSTsjhUeRq/jVtHJpS95UgWECH7kiq8+bEx6TFRXiNKpARZ6KJUemlMyV+iCg==", + "requires": { + "@tinyhttp/cookie": "2.1.0", + "@tinyhttp/proxy-addr": "2.1.3", + "@tinyhttp/req": "2.2.2", + "@tinyhttp/res": "2.2.2", + "@tinyhttp/router": "2.2.2", + "header-range-parser": "1.1.3", + "regexparam": "^2.0.1" + } + }, + "@tinyhttp/content-disposition": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.0.tgz", + "integrity": "sha512-w1dJaSAtcCinOlT/YQg35RnFCOBbCHBGDVhH4yLoiJVtecRAJ2cYMf5HP+UhfbXURa38GC8fkRXO0vODDTjmeg==" + }, + "@tinyhttp/content-type": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@tinyhttp/content-type/-/content-type-0.1.4.tgz", + "integrity": "sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==" + }, + "@tinyhttp/cookie": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.1.0.tgz", + "integrity": "sha512-o56utxXvIuLTCtPm66r8lcyUufpw0RkO+u4wQrTbc6snyyGZZ9hHzGRxPyko0ks90ctOkLh0mNKn7YZaTWlvfw==" + }, + "@tinyhttp/cookie-signature": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.1.0.tgz", + "integrity": "sha512-bpOXBGf9rKoajtEG75O7xjwW+u2I/NNPkJWJTDdr6j7Vx0lG5R9Hnl3ty80Af4jwyo90ywXVpZIxKLubPK6RzA==" + }, + "@tinyhttp/cors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz", + "integrity": "sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==", + "requires": { + "es-vary": "^0.1.1" + } + }, + "@tinyhttp/encode-url": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.1.1.tgz", + "integrity": "sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==" + }, + "@tinyhttp/etag": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.1.1.tgz", + "integrity": "sha512-AcHGK1nMlKIHmlbg8bb8UY/KhiaAX17SAn3/6wlgwwdX4UizA8HETDfCH3KLdu2ZASokynuwVFNDJCo1DAawGw==" + }, + "@tinyhttp/forwarded": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.1.2.tgz", + "integrity": "sha512-9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==" + }, + "@tinyhttp/proxy-addr": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.1.3.tgz", + "integrity": "sha512-Z0Q/0wEJpvall7LlBezXDy96CXLzPZb6xJawwEgsMXXQhmjb+r3EkpCBwMrWm2GlbJFL/UxKxpdumiNW3Ne06g==", + "requires": { + "@tinyhttp/forwarded": "2.1.2", + "ipaddr.js": "^2.1.0" + }, + "dependencies": { + "ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" + } + } + }, + "@tinyhttp/req": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.2.2.tgz", + "integrity": "sha512-LaL/RFRro0qjOQ0g3vxE6i9bWl9hhv9en7opykzLU4NimFPg2C8wl7Qkoyc0mDuoRMQmWpq730PDWXSUmLiT2A==", + "requires": { + "@tinyhttp/accepts": "2.2.1", + "@tinyhttp/type-is": "2.2.2", + "@tinyhttp/url": "2.1.1", + "header-range-parser": "^1.1.3" + } + }, + "@tinyhttp/res": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.2.2.tgz", + "integrity": "sha512-YeEYFwozag2qO5xoTj1Df+d5l6MXUefxz3xbcJD6ASVqUQytTEYtOC0FjhQKLpTLjMJKlS4mkKmeIdDLFO9btg==", + "requires": { + "@tinyhttp/content-disposition": "2.2.0", + "@tinyhttp/cookie": "2.1.0", + "@tinyhttp/cookie-signature": "2.1.0", + "@tinyhttp/encode-url": "2.1.1", + "@tinyhttp/req": "2.2.2", + "@tinyhttp/send": "2.2.1", + "@tinyhttp/vary": "^0.1.3", + "es-escape-html": "^0.1.1", + "mime": "4.0.1" + }, + "dependencies": { + "mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" + } + } + }, + "@tinyhttp/router": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.2.2.tgz", + "integrity": "sha512-i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==" + }, + "@tinyhttp/send": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.2.1.tgz", + "integrity": "sha512-uFW0fxmYIPpB5RKP2vpL8QuafjUrCBmBWxZMIhFb7uBQky87t7x1QdpRB0vc+w11a2kok+Nc8ClD5kc6CRJCFg==", + "requires": { + "@tinyhttp/content-type": "^0.1.4", + "@tinyhttp/etag": "2.1.1", + "mime": "4.0.1" + }, + "dependencies": { + "mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" + } + } + }, + "@tinyhttp/type-is": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.2.2.tgz", + "integrity": "sha512-DmTm0MkdrUxEPI2WBBoYJT0bitWx6+xeUd3lya1NGbKmYArzyUE+KVro/9y/h6Bxh+RaAKNeTCF4H/ksbe/ULQ==", + "requires": { + "@tinyhttp/content-type": "^0.1.4", + "mime": "4.0.1" + }, + "dependencies": { + "mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" + } + } + }, + "@tinyhttp/url": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.1.1.tgz", + "integrity": "sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==" + }, + "@tinyhttp/vary": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@tinyhttp/vary/-/vary-0.1.3.tgz", + "integrity": "sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==" + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -29192,14 +30513,12 @@ "@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "@types/prop-types": { "version": "15.7.11", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", - "dev": true + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "@types/qs": { "version": "6.9.11", @@ -29217,7 +30536,6 @@ "version": "18.2.33", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", - "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -29233,6 +30551,14 @@ "@types/react": "*" } }, + "@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "requires": { + "@types/react": "*" + } + }, "@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -29251,8 +30577,7 @@ "@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "@types/semver": { "version": "7.5.6", @@ -30106,7 +31431,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -30281,9 +31605,9 @@ "dev": true }, "axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "requires": { "follow-redirects": "^1.15.4", "form-data": "^4.0.0", @@ -30451,6 +31775,16 @@ "@types/babel__traverse": "^7.0.6" } }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, "babel-plugin-polyfill-corejs2": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", @@ -30704,8 +32038,7 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "bl": { "version": "4.1.0", @@ -30782,7 +32115,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -31164,8 +32496,7 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camelcase": { "version": "5.3.1", @@ -31241,7 +32572,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -31341,6 +32671,11 @@ "mimic-response": "^1.0.0" } }, + "clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -31687,7 +33022,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -31914,8 +33248,7 @@ "csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "damerau-levenshtein": { "version": "1.0.8", @@ -32172,6 +33505,15 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -32228,6 +33570,21 @@ "tslib": "^2.0.3" } }, + "dot-prop": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz", + "integrity": "sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==", + "requires": { + "type-fest": "^3.8.0" + }, + "dependencies": { + "type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" + } + } + }, "dotenv": { "version": "16.3.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", @@ -32440,7 +33797,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -32492,6 +33848,11 @@ "which-typed-array": "^1.1.13" } }, + "es-escape-html": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz", + "integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==" + }, "es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -32554,6 +33915,11 @@ "is-symbol": "^1.0.2" } }, + "es-vary": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/es-vary/-/es-vary-0.1.2.tgz", + "integrity": "sha512-pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==" + }, "esbuild": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", @@ -32605,8 +33971,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "escodegen": { "version": "2.1.0", @@ -33054,6 +34419,11 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "eta": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz", + "integrity": "sha512-Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==" + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -33399,7 +34769,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -33461,6 +34830,11 @@ } } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -33647,7 +35021,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "optional": true }, "function-bind": { @@ -33753,7 +35126,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -33935,6 +35307,26 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "header-range-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.3.tgz", + "integrity": "sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==" + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", @@ -34234,7 +35626,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -34243,8 +35634,7 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" } } }, @@ -34270,6 +35660,11 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, + "inflection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-3.0.0.tgz", + "integrity": "sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -34432,8 +35827,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -34448,7 +35842,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -34473,7 +35866,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "requires": { "hasown": "^2.0.0" } @@ -34496,8 +35888,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -34515,7 +35906,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -34547,8 +35937,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-like": { "version": "1.0.8", @@ -35518,8 +36907,7 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema-traverse": { "version": "0.4.1", @@ -35527,6 +36915,32 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "json-server": { + "version": "1.0.0-alpha.23", + "resolved": "https://registry.npmjs.org/json-server/-/json-server-1.0.0-alpha.23.tgz", + "integrity": "sha512-FPL1veNELhkr3tttwbIutKPkc/AUfLWSmslTwLYYPzl9RbCJQrwSPJceYWg2LnK1cv20tcEMLI2Kxl1lHz155Q==", + "requires": { + "@tinyhttp/app": "^2.2.3", + "@tinyhttp/cors": "^2.0.0", + "chalk": "^5.3.0", + "chokidar": "^3.5.3", + "dot-prop": "^8.0.2", + "eta": "^3.2.0", + "inflection": "^3.0.0", + "json5": "^2.2.3", + "lowdb": "^7.0.1", + "milliparsec": "^2.3.0", + "sirv": "^2.0.4", + "sort-on": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" + } + } + }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -35536,8 +36950,7 @@ "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonc-eslint-parser": { "version": "2.4.0", @@ -35902,6 +37315,14 @@ "get-func-name": "^2.0.1" } }, + "lowdb": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-7.0.1.tgz", + "integrity": "sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==", + "requires": { + "steno": "^4.0.2" + } + }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -36041,6 +37462,11 @@ "picomatch": "^2.3.1" } }, + "milliparsec": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/milliparsec/-/milliparsec-2.3.0.tgz", + "integrity": "sha512-b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==" + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -36587,8 +38013,7 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-range": { "version": "0.1.2", @@ -36774,8 +38199,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { "version": "1.13.1", @@ -37078,7 +38502,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } @@ -37087,7 +38510,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -37098,8 +38520,7 @@ "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" } } }, @@ -37183,8 +38604,7 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-scurry": { "version": "1.10.1", @@ -37212,8 +38632,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pathe": { "version": "1.1.1", @@ -37242,8 +38661,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "2.3.0", @@ -37777,7 +39195,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -37787,8 +39204,7 @@ "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" } } }, @@ -37914,11 +39330,16 @@ "scheduler": "^0.23.0" } }, + "react-hook-form": { + "version": "7.51.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.0.tgz", + "integrity": "sha512-BggOy5j58RdhdMzzRUHGOYhSz1oeylFAv6jUSG86OvCIvlAvS7KvnRY7yoAf2pfEiPN7BesnR0xx73nEk3qIiw==", + "requires": {} + }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "react-refresh": { "version": "0.14.0", @@ -37943,6 +39364,17 @@ "react-router": "6.11.2" } }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -38045,7 +39477,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -38074,8 +39505,7 @@ "regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "regenerator-transform": { "version": "0.15.2", @@ -38103,6 +39533,11 @@ "set-function-name": "^2.0.0" } }, + "regexparam": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz", + "integrity": "sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==" + }, "regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -38156,7 +39591,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "requires": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -38780,7 +40214,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "dev": true, "requires": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -38790,8 +40223,7 @@ "mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "dev": true + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==" } } }, @@ -38927,6 +40359,14 @@ "sort-keys": "^1.0.0" } }, + "sort-on": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/sort-on/-/sort-on-6.0.0.tgz", + "integrity": "sha512-d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==", + "requires": { + "dot-prop": "^8.0.2" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -39087,6 +40527,11 @@ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, + "steno": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/steno/-/steno-4.0.2.tgz", + "integrity": "sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==" + }, "stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -39292,6 +40737,11 @@ "postcss-selector-parser": "^6.0.15" } }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "stylus": { "version": "0.59.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", @@ -39356,8 +40806,7 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "svg-parser": { "version": "2.0.4", @@ -39630,14 +41079,12 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -39660,8 +41107,7 @@ "totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==" }, "tough-cookie": { "version": "4.1.3", @@ -40614,8 +42060,7 @@ "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, "yargs": { "version": "17.7.2", diff --git a/package.json b/package.json index adbb7479..02839adc 100644 --- a/package.json +++ b/package.json @@ -17,13 +17,19 @@ "@angular/platform-browser": "~17.0.0", "@angular/platform-browser-dynamic": "~17.0.0", "@angular/router": "~17.0.0", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.15.11", + "@mui/material": "^5.15.11", "@swc/helpers": "~0.5.2", - "axios": "^1.0.0", + "axios": "^1.6.7", "express": "~4.18.1", + "json-server": "^1.0.0-alpha.23", "mongoose": "^8.0.3", "normalize.css": "^8.0.1", "react": "18.2.0", "react-dom": "18.2.0", + "react-hook-form": "^7.51.0", "react-router-dom": "6.11.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", From 39372b0b0f5d29052c3b83d838a6677cf1747232 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Sun, 3 Mar 2024 10:42:34 -0600 Subject: [PATCH 02/29] Session 02 --- apps/react-app/src/App.tsx | 26 +--- .../src/components/Banner/Banner.tsx | 9 +- .../CategoryButtonGroup.tsx | 24 ++-- .../components/CommentCard/CommentCard.tsx | 9 +- .../src/components/Comments/Comments.tsx | 6 +- .../CreatePostButton/CreatePostButton.tsx | 5 +- .../src/components/Header/Header.tsx | 22 +++ apps/react-app/src/components/Header/index.ts | 2 +- .../src/components/HomePage/HomePage.tsx | 68 ++++++++- .../src/components/PostList/PostList.tsx | 133 ++++++------------ .../src/components/PostPage/PostPage.tsx | 63 +++++---- apps/react-app/src/types/index.ts | 27 ++++ apps/react-app/src/utils/index.tsx | 33 +++++ 13 files changed, 264 insertions(+), 163 deletions(-) create mode 100644 apps/react-app/src/types/index.ts diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 3fe215a7..1136789f 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,16 @@ -import { Grid, Typography } from '@mui/material'; +import { Grid } from '@mui/material'; -import { Container } from './components/Header/Header.styles'; +import Header from './components/Header'; +import HomePage from './components/HomePage'; +import PostPage from './components/PostPage'; function App() { return ( - {/* Activity 2 - Move all Container content to Header component */} - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - +
- {/* Activity 1 - Render HomePage and PostPage */} + + ); diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 4033c6d9..bada1252 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -2,13 +2,12 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; import { BannerContent, BannerTitle, Container } from "./Banner.styles"; -// const postTitle = "A good place to camp"; -const postImage = - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0"; - function Banner() { return ( - + + + + + ); +}; + +export default Form; diff --git a/apps/react-app/src/components/Form/index.ts b/apps/react-app/src/components/Form/index.ts new file mode 100644 index 00000000..8bc7b770 --- /dev/null +++ b/apps/react-app/src/components/Form/index.ts @@ -0,0 +1 @@ +export { default } from './Form'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx index d881115b..67f292c6 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/HomePage/HomePage.tsx @@ -1,19 +1,23 @@ -import { useContext } from "react"; +import { useContext, useState } from "react"; import CategoryButtonGroup from "../CategoryButtonGroup"; import CreatePostButton from "../CreatePostButton"; import PostList from "../PostList"; import { Post } from "../../types"; import { PostContext } from "../../context"; import Loading from "../Loading"; +import Form from "../Form"; function HomePage() { const { posts, // getPosts } = useContext(PostContext); + const [selectedPost, setSelectedPost] = useState(null); + const [open, setOpen] = useState(false); const handleOpenForm = (defaultValues?: Post) => { - console.log(defaultValues); + setOpen(true); + if (defaultValues) setSelectedPost(defaultValues); }; // const handleSelectCategory = (category: string) => { @@ -27,11 +31,16 @@ function HomePage() { return ( <> - {/* Activity 3 - Send handleOpenForm prop */} - + {/* Activity 3 - Send categorySelected and handleSelectCategory props */} +
); } diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index a3d43187..8e3ce6e1 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -29,7 +29,7 @@ function PostList({ posts, handleOpenForm }: PostListProps) { > -

{/* Activity 1 - Render post title */}

+

{/* Activity 1 - Render post title */}

{/* Activity 1 - Render comments length */} {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 4170ea96..0abbf253 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,4 +1,4 @@ -import React, { createContext, useState, useCallback } from "react"; +import React, { createContext, useState, useCallback, useEffect } from "react"; import { Post } from "../types"; @@ -6,6 +6,13 @@ interface PostContextProps { posts: Post[] | null; getPosts: (category: string) => void; deletePost: (postId: string) => void; + createOrUpdatePost: ({ + method, + newPost, + }: { + method: "post" | "patch"; + newPost: Post; + }) => void; } interface PostProviderProps { @@ -16,6 +23,7 @@ export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, deletePost: () => {}, + createOrUpdatePost: () => {}, }); const postList = [ @@ -64,8 +72,22 @@ const postList = [ export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - const [serverData, setServerData] = useState(postList); + const [serverData, setServerData] = useState(postList); const [posts, setPosts] = useState(postList); + const [updateData, setUpdateData] = useState(false); + + const createOrUpdatePost = useCallback( + ({ method, newPost }: { method: "post" | "patch"; newPost: Post }) => { + if (method === "post") setServerData((prev) => [...prev, newPost]); + if (method === "patch") { + setServerData((prev) => + prev.map((post) => (post.id === newPost.id ? newPost : post)) + ); + } + setUpdateData(true); + }, + [setUpdateData] + ); const getPosts = useCallback( (category: string) => { @@ -85,17 +107,24 @@ export function PostProvider({ const filteredList = prev.filter((post: Post) => post.id !== postId); return filteredList; }); - getPosts("All"); + setUpdateData(true); }, - [getPosts] + [setUpdateData] ); + useEffect(() => { + if (!updateData) return; + setUpdateData(false); + getPosts("All"); + }, [updateData, getPosts]); + return ( {children} From 436cc18dd8ab2533b5bd83fefa3e7ff511f5a3a4 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Sun, 3 Mar 2024 10:52:51 -0600 Subject: [PATCH 05/29] Session 05 --- apps/react-app/src/App.tsx | 30 +++-- apps/react-app/src/api/axios.ts | 10 ++ .../AddCommentForm/AddCommentForm.tsx | 1 + .../components/CommentCard/CommentCard.tsx | 2 +- apps/react-app/src/components/Form/Form.tsx | 31 +++-- .../src/components/HomePage/HomePage.tsx | 2 + .../src/components/PostList/PostList.tsx | 11 +- .../src/components/PostPage/PostPage.tsx | 7 + apps/react-app/src/context/PostProvider.tsx | 127 +++++------------- 9 files changed, 107 insertions(+), 114 deletions(-) create mode 100644 apps/react-app/src/api/axios.ts diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7a66ca05..7042ef43 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,22 +1,28 @@ -import { Grid } from '@mui/material'; +import { Grid } from "@mui/material"; -import { PostProvider } from './context'; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { PostProvider } from "./context" +import Header from "./components/Header"; +import HomePage from "./components/HomePage"; +import PostPage from "./components/PostPage"; function App() { return ( // Activity 7 - Render SnackbarProvider - -
- - - + +
+ + + + - - + ); } diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts new file mode 100644 index 00000000..2946fd6a --- /dev/null +++ b/apps/react-app/src/api/axios.ts @@ -0,0 +1,10 @@ +import axios from "axios"; + +const axiosInstance = axios.create(); + +axiosInstance.interceptors.request.use((config) => { + config.baseURL = "http://localhost:3000/posts"; + return config; +}); + +export default axiosInstance; diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx index 156d3193..b130c473 100644 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx @@ -1,5 +1,6 @@ function AddCommentForm() { // Activity 8 - Place the code to create new comments here + // Activity 9 - Call the API to create a new comment when submitting the form return
AddCommentForm
; } diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..083ae108 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -8,7 +8,7 @@ function CommentCard() { - {/* Activity 1 - Render comment author */} + {/* Activity 1 - Render comment author */} {/* Activity 1 - Render comment content */} diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9ee6e67a..9cc590d3 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -13,7 +13,9 @@ import { SelectChangeEvent, FormHelperText, } from "@mui/material"; +import { AxiosError, AxiosResponse } from "axios"; +import axios from "../../api/axios"; import { Post } from "../../types"; import { validator } from "../../utils"; import { PostContext } from "../../context"; @@ -29,7 +31,7 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; post?: Post | null; - // categorySelected: string; + categorySelected: string; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -37,15 +39,12 @@ interface FormProps { const Form = ({ open, post, - // categorySelected, + categorySelected, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { - // getPosts, - createOrUpdatePost, - } = React.useContext(PostContext); + const { getPosts } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; @@ -80,9 +79,23 @@ const Form = ({ comments: post?.comments ?? [], }; - createOrUpdatePost({ method: post ? "patch" : "post", newPost }); - // getPosts(categorySelected); - handleClose(); + axios({ + method: post ? "patch" : "post", + url: post ? `/${post.id}` : undefined, + signal: AbortSignal.timeout(5000), + data: newPost, + }) + .then((response: AxiosResponse) => { + if (response.status === 200 || response.status === 201) { + getPosts(categorySelected); + handleClose(); + // Activity 9 - Use createAlert function to show a notification with success message + } + }) + .catch((error: AxiosError) => { + // Activity 9 - Use createAlert function to show a notification with error message + console.error(`${error}`); + }); }; const handleChange = ( diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx index 67f292c6..0410073f 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/HomePage/HomePage.tsx @@ -14,6 +14,7 @@ function HomePage() { } = useContext(PostContext); const [selectedPost, setSelectedPost] = useState(null); const [open, setOpen] = useState(false); + const categorySelected = "All"; const handleOpenForm = (defaultValues?: Post) => { setOpen(true); @@ -38,6 +39,7 @@ function HomePage() { diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 8e3ce6e1..b13fe13c 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -1,9 +1,11 @@ +import { useContext } from "react"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; import { shorten } from "../../utils/index"; import { Post } from "../../types"; +import { PostContext } from "../../context"; import { CardActions, CardContainer, @@ -17,6 +19,7 @@ interface PostListProps { } function PostList({ posts, handleOpenForm }: PostListProps) { + const { deletePost } = useContext(PostContext); return ( {posts?.map((post) => ( @@ -50,7 +53,13 @@ function PostList({ posts, handleOpenForm }: PostListProps) { > - + { + e.stopPropagation(); + deletePost(post.id); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx index 777b35d3..405ef03d 100644 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/PostPage/PostPage.tsx @@ -1,6 +1,7 @@ import Banner from "../Banner"; import Comments from "../Comments"; import { Post } from "../../types"; +import Loading from "../Loading"; import { Container, BannerContainer, @@ -8,7 +9,11 @@ import { DescriptionContainer, } from "./PostPage.styles"; +const postId = "1.23" + function PostPage() { + // Activity 9 - Call the API "/:postId" to get the post. To save the result use useState + const post: Post = { id: "1.23", title: "A good place to camp", @@ -33,6 +38,8 @@ function PostPage() { ], }; + if (!post || !postId) return ; + return ( diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 0abbf253..03e1e61f 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,18 +1,13 @@ -import React, { createContext, useState, useCallback, useEffect } from "react"; +import React, { createContext, useState, useCallback } from "react"; +import { AxiosError, AxiosResponse } from "axios"; +import axios from "../api/axios"; import { Post } from "../types"; interface PostContextProps { posts: Post[] | null; getPosts: (category: string) => void; deletePost: (postId: string) => void; - createOrUpdatePost: ({ - method, - newPost, - }: { - method: "post" | "patch"; - newPost: Post; - }) => void; } interface PostProviderProps { @@ -23,108 +18,58 @@ export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, deletePost: () => {}, - createOrUpdatePost: () => {}, }); -const postList = [ - { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }, - { - id: "1.24", - title: "The average path a grandparent took to get to school", - image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - ], - }, -]; - export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - const [serverData, setServerData] = useState(postList); - const [posts, setPosts] = useState(postList); - const [updateData, setUpdateData] = useState(false); + const [posts, setPosts] = useState(null); - const createOrUpdatePost = useCallback( - ({ method, newPost }: { method: "post" | "patch"; newPost: Post }) => { - if (method === "post") setServerData((prev) => [...prev, newPost]); - if (method === "patch") { - setServerData((prev) => - prev.map((post) => (post.id === newPost.id ? newPost : post)) + const getPosts = useCallback((category: string) => { + axios({ + method: "get", + signal: AbortSignal.timeout(5000), + }) + .then((response: AxiosResponse) => { + const selectedCategory = response.data.filter( + (post: Post) => post.category === category ); - } - setUpdateData(true); - }, - [setUpdateData] - ); - - const getPosts = useCallback( - (category: string) => { - const selectedCategory = serverData.filter( - (post: Post) => post.category === category - ); - const newPosts = category === "All" ? serverData : selectedCategory; - setPosts(newPosts); - // Activity 7 - Call to the createAlert function here. Include message and severity. - }, - [serverData] - ); + const newPosts = category === "All" ? response.data : selectedCategory; + setPosts(newPosts); + }) + .catch((error: AxiosError) => { + // Activity 9 - Use createAlert function to show a notification with error message + console.error(`${error}`); + }); + }, []); const deletePost = useCallback( (postId: string) => { - setServerData((prev) => { - const filteredList = prev.filter((post: Post) => post.id !== postId); - return filteredList; - }); - setUpdateData(true); + axios({ + method: "delete", + url: `/${postId}`, + signal: AbortSignal.timeout(5000), + }) + .then((response: AxiosResponse) => { + if (response.status === 200 || response.status === 201) { + getPosts("All"); + // Activity 9 - Use createAlert function to show a notification with success message + } + }) + .catch((error: AxiosError) => { + // Activity 9 - Use createAlert function to show a notification with success message + console.error(`${error}`); + }); }, - [setUpdateData] + [getPosts] ); - useEffect(() => { - if (!updateData) return; - setUpdateData(false); - getPosts("All"); - }, [updateData, getPosts]); - return ( {children} From 0bdbf84e4f8db0d23f9b6494bc51fb2daf27d6ef Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Sun, 3 Mar 2024 10:55:31 -0600 Subject: [PATCH 06/29] Session 06 --- apps/react-app/src/App.tsx | 24 ++++----------- .../CategoryButtonGroup.tsx | 2 +- .../components/NotFoundPage/NotFoundPage.tsx | 23 ++++++++++++++ .../src/components/NotFoundPage/index.ts | 1 + .../{ => Page}/HomePage/HomePage.tsx | 14 ++++----- .../components/{ => Page}/HomePage/index.ts | 0 apps/react-app/src/components/Page/Page.tsx | 30 +++++++++++++++++++ apps/react-app/src/components/Page/index.ts | 2 ++ .../src/components/PostList/PostList.tsx | 1 + .../src/components/Router/Router.tsx | 12 ++++++++ apps/react-app/src/components/Router/index.ts | 1 + 11 files changed, 83 insertions(+), 27 deletions(-) create mode 100644 apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx create mode 100644 apps/react-app/src/components/NotFoundPage/index.ts rename apps/react-app/src/components/{ => Page}/HomePage/HomePage.tsx (79%) rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/Page.tsx create mode 100644 apps/react-app/src/components/Page/index.ts create mode 100644 apps/react-app/src/components/Router/Router.tsx create mode 100644 apps/react-app/src/components/Router/index.ts diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7042ef43..3b3b6d8b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,14 @@ -import { Grid } from "@mui/material"; +import { RouterProvider } from "react-router-dom"; -import { PostProvider } from "./context" -import Header from "./components/Header"; -import HomePage from "./components/HomePage"; -import PostPage from "./components/PostPage"; +import Router from "./components/Router"; +import { PostProvider } from "./context"; function App() { return ( // Activity 7 - Render SnackbarProvider - -
- - - - - - + + ); } diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..cd6ac296 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -21,7 +21,7 @@ import { Container, StyledButton } from "./CategoryButtonGroup.styles"; // }, // ]; -const categorySelected = "All" +const categorySelected = "All"; function CategoryButtonGroup() { return ( diff --git a/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx b/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx new file mode 100644 index 00000000..81c92cc2 --- /dev/null +++ b/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx @@ -0,0 +1,23 @@ +import React from "react"; +import Typography from "@mui/material/Typography"; +import { Grid } from "@mui/material"; + +export default function NotFoundPage(): React.JSX.Element { + return ( + + Page Not Found. +
+ + You have ended up on a URL for a page that does not exist. You can use + the back button in your browser to return to where you were. + +
+ ); +} diff --git a/apps/react-app/src/components/NotFoundPage/index.ts b/apps/react-app/src/components/NotFoundPage/index.ts new file mode 100644 index 00000000..35f02dc1 --- /dev/null +++ b/apps/react-app/src/components/NotFoundPage/index.ts @@ -0,0 +1 @@ +export { default } from './NotFoundPage'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx similarity index 79% rename from apps/react-app/src/components/HomePage/HomePage.tsx rename to apps/react-app/src/components/Page/HomePage/HomePage.tsx index 0410073f..fd03a30e 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -1,11 +1,11 @@ import { useContext, useState } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; -import Form from "../Form"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import PostList from "../../PostList"; +import { Post } from "../../../types"; +import { PostContext } from "../../../context"; +import Loading from "../../Loading"; +import Form from "../../Form"; function HomePage() { const { diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Page/Page.tsx b/apps/react-app/src/components/Page/Page.tsx new file mode 100644 index 00000000..787ebf10 --- /dev/null +++ b/apps/react-app/src/components/Page/Page.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import Header from "../Header"; + +interface PageProps { + /** + * The page component that will be rendered inside the global Page component template + */ + page: React.JSX.Element; +} + +/** + * The global page template which wraps the page component (provided as a prop) in the global site template/header/footer + */ +export default function Page({ page }: PageProps): React.JSX.Element { + return ( + +
+ + {page} + + + ); +} diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..456c3975 --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,2 @@ +export { default as HomePage } from "./HomePage"; +export { default } from "./Page"; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index b13fe13c..cc2abbed 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -29,6 +29,7 @@ function PostList({ posts, handleOpenForm }: PostListProps) { key={post.id} image={post.image} md={posts.length === 1 ? 12 : 6} + // Activity 10 - Navigate to PostPage onClick event > diff --git a/apps/react-app/src/components/Router/Router.tsx b/apps/react-app/src/components/Router/Router.tsx new file mode 100644 index 00000000..07d55ecf --- /dev/null +++ b/apps/react-app/src/components/Router/Router.tsx @@ -0,0 +1,12 @@ +import { createBrowserRouter } from "react-router-dom"; +import Page, { HomePage } from "../Page"; + +const Router = createBrowserRouter([ + { + path: "/", + element: } />, + }, + // Activity 10 - Render the PostPage component with the dynamic postId and the NotFoundPage component as the default page in case of route errors +]); + +export default Router; diff --git a/apps/react-app/src/components/Router/index.ts b/apps/react-app/src/components/Router/index.ts new file mode 100644 index 00000000..1c664800 --- /dev/null +++ b/apps/react-app/src/components/Router/index.ts @@ -0,0 +1 @@ +export { default } from './Router'; From 8c4c6e82caa51116016f645c36e638aeca8c6523 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Tue, 14 May 2024 12:16:14 -0600 Subject: [PATCH 07/29] Branch updated for wave 4 --- apps/react-app/src/App.tsx | 35 ++--- .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../src/common/utils/inputsValidator.tsx | 34 +++++ apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 +++++++ .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 13 -- .../CategoryButtonGroup.tsx | 45 ------ .../components/CategoryButtonGroup/index.ts | 1 - .../components/CommentCard/CommentCard.tsx | 16 +- .../src/components/Comments/Comments.tsx | 7 +- .../CreatePostButton.styles.tsx | 9 -- .../CreatePostButton/CreatePostButton.tsx | 16 -- .../src/components/CreatePostButton/index.ts | 1 - .../src/components/Header/Header.tsx | 1 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 5 - .../src/components/Loading/Loading.tsx | 19 --- .../react-app/src/components/Loading/index.ts | 1 - .../CategoriesPage/CategoriesPage.styles.tsx | 11 ++ .../Page/CategoriesPage/CategoriesPage.tsx | 20 +++ .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 6 + .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 42 ++++++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../components/PostList/PostList.styles.tsx | 40 ----- .../src/components/PostList/PostList.tsx | 109 -------------- .../src/components/PostList/index.ts | 1 - .../src/components/PostPage/PostPage.tsx | 44 ------ apps/react-app/src/types/index.ts | 140 ++++++++++++++++++ apps/react-app/src/utils/index.tsx | 4 - 37 files changed, 368 insertions(+), 349 deletions(-) create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts create mode 100644 apps/react-app/src/common/utils/inputsValidator.tsx create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx delete mode 100644 apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx delete mode 100644 apps/react-app/src/components/CategoryButtonGroup/index.ts delete mode 100644 apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx delete mode 100644 apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx delete mode 100644 apps/react-app/src/components/CreatePostButton/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx delete mode 100644 apps/react-app/src/components/Loading/Loading.tsx delete mode 100644 apps/react-app/src/components/Loading/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostList/PostList.styles.tsx delete mode 100644 apps/react-app/src/components/PostList/PostList.tsx delete mode 100644 apps/react-app/src/components/PostList/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx create mode 100644 apps/react-app/src/types/index.ts delete mode 100644 apps/react-app/src/utils/index.tsx diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 3fe215a7..d837a9b1 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,30 +1,21 @@ -import { Grid, Typography } from '@mui/material'; +import { Grid } from "@mui/material"; -import { Container } from './components/Header/Header.styles'; +import { HomePage } from "./components/Page"; +import { PageContainer } from "./components/Page/LoginPage/LoginPage.styles"; function App() { return ( - - {/* Activity 2 - Move all Container content to Header component */} - - - - [ - Making your Life Easier - ] - + <> + + {/* ACT 1 - Render PostPage, and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + + Login Page + + Form - - - Discovering the World - - - - - - {/* Activity 1 - Render HomePage and PostPage */} - - + + ); } diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/common/utils/inputsValidator.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx new file mode 100644 index 00000000..507751d3 --- /dev/null +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -0,0 +1,34 @@ +function validateUrl(url: string) { + const re = + /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; + return re.test(url); +} + +export const validator = ({ name, value }: { name: string; value: string }) => { + let error = ""; + if (!value) return (error = "Please fill out this field."); + + switch (name) { + case "title": + if (value.length < 5 || value.length > 25) + error = + "The title must contain more than 5 and less than 25 characters."; + break; + + case "description": + if (value.length < 20) + error = "The description must contain more than 20 characters."; + break; + + case "image": + if (!validateUrl(value)) error = "Please enter a valid URL."; + break; + + default: + break; + } + + return error; +}; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 4033c6d9..5d853fb7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,10 +1,10 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; -// const postTitle = "A good place to camp"; -const postImage = - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0"; +const postImage = ""; // ACT 1 - Put some image URL +// const postTitle = ""; //ACT 1 - Write a title function Banner() { return ( @@ -13,7 +13,9 @@ function Banner() { - {/* Activity 1 - Render post title */} + + {/* ACT 1 - Render postTitle */} + ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx deleted file mode 100644 index ceee193f..00000000 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Button, Grid } from "@mui/material"; -import { styled } from "@mui/system"; - -export const Container = styled(Grid)` - display: flex; - flex-grow: 1; - justify-content: center; - padding-bottom: 16px; -`; - -export const StyledButton = styled(Button)<{ selected: boolean }>` - background-color: ${(props) => (props.selected ? "#DCDCDC" : undefined)}; -`; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx deleted file mode 100644 index 2f94d5ec..00000000 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { ButtonGroup } from "@mui/material"; - -import { Container, StyledButton } from "./CategoryButtonGroup.styles"; - -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -function CategoryButtonGroup() { - return ( - - - - {/* Activity 1 - Render category name */} - - - {/* Activity 1 - Render category name */} - - - {/* Activity 1 - Render category name */} - - - {/* Activity 1 - Render category name */} - - - - ); -} - -export default CategoryButtonGroup; diff --git a/apps/react-app/src/components/CategoryButtonGroup/index.ts b/apps/react-app/src/components/CategoryButtonGroup/index.ts deleted file mode 100644 index 761f5b91..00000000 --- a/apps/react-app/src/components/CategoryButtonGroup/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './CategoryButtonGroup'; diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 2f6c2187..ba73b75c 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -4,19 +4,21 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; // const comment = { -// id: "2.1", -// author: "Anonymus", -// content: -// "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.", -// }; +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }; // ACT 1 - Fill all the properties with random data function CommentCard() { return ( - {/* Activity 1 - Render author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index e7e711db..90099cc0 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,4 +1,4 @@ -import { Title, Container } from "./Comments.styles"; +import { Title, Container, FormContainer } from "./Comments.styles"; function Comments() { return ( @@ -6,7 +6,10 @@ function Comments() { <h4>Comments</h4> - {/* Activity 1 - Render CommentCard */} + {/* ACT 1 = Render CommentCard component */} + + Form + ); } diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx deleted file mode 100644 index c09e2ab1..00000000 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Grid } from "@mui/material"; -import { styled } from "@mui/system"; - -export const Container = styled(Grid)` - display: flex; - flex-grow: 1; - justify-content: end; - padding-right: 16px; -`; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx deleted file mode 100644 index a3bd3ea1..00000000 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import EditIcon from "@mui/icons-material/Edit"; -import { IconButton } from "@mui/material"; - -import { Container } from "./CreatePostButton.styles"; - -const CreatePostButton = () => { - return ( - - - - - - ); -}; - -export default CreatePostButton; diff --git a/apps/react-app/src/components/CreatePostButton/index.ts b/apps/react-app/src/components/CreatePostButton/index.ts deleted file mode 100644 index 27cac79e..00000000 --- a/apps/react-app/src/components/CreatePostButton/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './CreatePostButton'; diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index 8b137891..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 6df4c0d6..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -// export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 8c747833..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,5 +0,0 @@ -function HomePage() { - return <>{/* Activity 1 - Render CreatePostButton, CategoryButtonGroup and PostList */}; -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx deleted file mode 100644 index 5ea16a52..00000000 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; - -/** - * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display - */ -export default function Loading(): React.JSX.Element { - return ( - - - - ); -} diff --git a/apps/react-app/src/components/Loading/index.ts b/apps/react-app/src/components/Loading/index.ts deleted file mode 100644 index 62141369..00000000 --- a/apps/react-app/src/components/Loading/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Loading'; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..b9b245fd --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,20 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; + +function CategoriesPage() { + return ( + + Categories Page + + //Add category (Icon button) + + + //Table + + //Modal + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..ecabd5fd --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,6 @@ +function HomePage() { + const pageTitle = "Home Page"; + return <>{pageTitle}; +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..2b12840d --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,42 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.styles.tsx b/apps/react-app/src/components/PostList/PostList.styles.tsx deleted file mode 100644 index bcecb52c..00000000 --- a/apps/react-app/src/components/PostList/PostList.styles.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Grid, Box } from "@mui/material"; -import { styled } from "@mui/system"; - -export const PostCard = styled(Grid)<{ image: string }>` - display: flex; - flex-grow: 1; - color: white; - cursor: pointer; - background-size: cover; - background-position: center; - background-repeat: no-repeat; - background-image: ${(props) => `url(${props.image})`}; - - :hover .card-actions { - visibility: visible; - } -`; - -export const CardContainer = styled(Box)` - display: flex; - flex-grow: 1; - flex-direction: column; - justify-content: space-between; - background-color: #4b4b4b3b; -`; - -export const CardContent = styled(Box)` - display: flex; - padding: 24px; - padding-top: 160px; - flex-direction: column; -`; - -export const CardActions = styled(Box)` - gap: 16px; - padding: 16px; - display: flex; - visibility: hidden; - justify-content: end; -`; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx deleted file mode 100644 index 24c61238..00000000 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import EditIcon from "@mui/icons-material/Edit"; -import DeleteIcon from "@mui/icons-material/Delete"; -import { Grid, IconButton, Typography } from "@mui/material"; - -import { shorten } from "../../utils/index"; -import { - CardActions, - CardContainer, - CardContent, - PostCard, -} from "./PostList.styles"; - -const posts = [ - { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }, - { - id: "1.24", - title: "The average path a grandparent took to get to school", - image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - ], - }, -]; - -function PostList() { - return ( - - - - -

{/* Activity 1 - Render post title */}

-

- {/* Activity 1 - Render comments length */} - {" Comment"} -

-

{shorten(posts[0].description, 70)}

- - {/* Activity 1 - Render post category */} - -
- - - - - - - - -
-
- - - -

{/* Activity 1 - Render post title */}

-

- {/* Activity 1 - Render comments length */} - {" Comment"} -

-

{shorten(posts[1].description, 70)}

- - {/* Activity 1 - Render post category */} - -
- - - - - - - - -
-
-
- ); -} - -export default PostList; diff --git a/apps/react-app/src/components/PostList/index.ts b/apps/react-app/src/components/PostList/index.ts deleted file mode 100644 index 5285635b..00000000 --- a/apps/react-app/src/components/PostList/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './PostList'; diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index d0cd4fb7..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -// const post = { -// id: "1.23", -// title: "A good place to camp", -// image: -// "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", -// description: -// "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", -// category: "Travel", -// comments: [ -// { -// id: "2.1", -// author: "Anonymus", -// content: -// "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.", -// }, -// { -// id: "2.2", -// author: "Anonymus", -// content: -// "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.", -// }, -// ], -// }; - -function PostPage() { - return ( - - {/* Activity 1 - Render Banner */} - -

{/* Activity 1 - Render post description */}

-
- {/* Activity 1 - Render Comments */} -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts new file mode 100644 index 00000000..9b876432 --- /dev/null +++ b/apps/react-app/src/types/index.ts @@ -0,0 +1,140 @@ +export type Input = { + value: string; + error: string; +}; + +export type FormInputs = { + title: Input; + description: Input; + category: Input; + image: Input; +}; + +export type NewPost = { + title: string; + image: string; + description: string; + category: string; +}; + +export type Comment = { + id: string; + author: string; + content: string; +}; + +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: string; + label: string; + type: string; + options?: string[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/utils/index.tsx deleted file mode 100644 index 30d39a3d..00000000 --- a/apps/react-app/src/utils/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} From 7cd2bdcf4757ce59386042b289b3585e1a8c6590 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 18:16:55 -0600 Subject: [PATCH 08/29] Readme file updated --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes 5 files changed, 633 insertions(+) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 zcmaI71z1$w*YJ&^pi%_#C@9!HfBiifa4a@ML3#Kk zCn>J(Wq7diQlDV+2K|^yh&n3#C$-EQTq5p9by@XkeFes|MND5|yruqI$Rqu&k4y>wd$3_gyZrloxXlwTBO@c;J~_$11@)e^i`}WPK#{)* zqs}889T^z-M`ln~76l$YetpT}@1dcR(F2SbRsjJ4b}p`|!tn6o%0JiH;l=)I*V!GQ zl5?-}*BTU;)iRIb)y2IMQvUhNzv6Hk>i?%a|4RmA_<5JOq@+957(!C=0`;$09iOA> zpK|BX(Q#GoI?qJ@730oGVjkfBJ2bP% zj-qn04yF3PrT?XDzw?mr)9SjqkkHUj!D%!d9i6@JX=x=%Zxk;T(Ol13?(`)*JQ{SV zewE{Zp}dd)?4EbzNc2@KS89%kU3WOiWDLdU|u|KeNBv zC)p?4vqcJ8*F)EcUuTdCnsP4rUBS=F5z(B+dVS)bW?9YOy0Z zZKgk5KzVFuiyu_`sF?7UGq|mP2;Sc#;bjlWeZ3L*GjE{{_Dgkmd5eK0k2WZ`NVAr` zPQ2Oy=FKXS8WSh39KqNrCYa`JF(g*+ZCB|lWl&aJ5Nyo{fVz&)+{0=sG-Wk{{;9b~ z1*++EcguK%-SzK@C6I%>qcz=}hp%WaFj5yyF!h8cJ~v!$Z({VYak z83N49t*LTzVscXQkX}$$NOsy6cm<g`4PF8A;6)7KvvP$VwqL)6Vg^aMLAnokz{ z2}dC(0sEdV&yCQN0+)%5r3narIm7z3+x?ma@Bc)xl|E=T{2A5RYa{hm*^j35#E~B8 zU!C%uOi7tDlpjLg6 z&I+FE*V)+NH_c?y;7S6`Y8UeZkxLSf-v`gbYQ=JwP+jZ0(_#14XA@<+&kq9JIs7Lf z^7)142XYAnle9s?&hLNIsMo2Aytmj5jvo_#)=}6n__^a{>QeXQDV=G+!>b(oNa?}` zZF_ZCPO;g)O?ys1=8pZoB>vbLh0~ESC#L>%!OW=VBuDEle|a5L1^ajx7KUco_~-b! zdCkLAD&NMe=z*d4CV_pq>9W#Fqa)Oi0s`v{MD0V=YW1E_65XH@KDe~V$9jf&JUOn7 z>YWX))|Klk{XKA3uqKgu2rpK&t~n2%7pB55s+3fOi&xL)xUPkA)Y5e`nFlT}a;0ttXxIbCzG%5oyar?>!9Fv->qpU@5rFl%w|KVqTNM{S1Jh0L?4vo+Y6h%V~cUB8CKsA`Q zW&phsKC&%LW;s~j`02+hb?mUIesHT=eGpWgAk)oc&X?SA{c5YN#E%yQj#vv$JN7=d zj+jK2Tfh_j&JpNdC3cP;^oKFn8ZU#qKiGk!nA3s8ZoopC23BqgXc3ed>wE zvt{X#-k_I@xALmTeh0nAd%WGqAal%9e(cw$l4mQLw@B#`wC zbYKG8b#9DD5*iKBS#T7;&4HCu?j7^VqZhRCzM5=N5||0oZLChzm=AwXNJt>VtkiGV zx$5+~(lEKSY1Us3k4uC%wBS$UKleA9U^%^+-=C(USsGOH_35Qr3<7UYt7;4c(oFPs zeaW7d?oV*q+Rh@@lkLwo(J`mJ#+-E&bNDb~(0GbmAMrU5E{tUq%zFUZuNB7)bSe6- z7lSnecHcG}2!U7<2J#WF-E1xLqgPsDq?_TOinG~zD>y@b;gYOmV|=yc_uFlBuZ@zV z@8}<14bR(h9C(kA^1U|D6`&TmeCGdfA~AAzPkVgq=Z7%%eQU}>c|9j@K4j?SKg9fu zTdsfIu^(_WCO-jmJ)Qv=7*o_giEFF-Y+xkE$O&+~vNc*C68hRx#@o4dPmlW(mG$6; z+|@`Vn$__R19nsQ?J%ilzRK^3=sYbC`%CzP~Rxf{TBJM5%^3@vwLgwY- z+4xeJMCwDg#Lni*)7hbT{_1V|HjW2$`*vrFrDF+QlpGBob=q*12J6YxL*!+N}Y%ndaSggFn+r1h}Wdh@= z_zV-a6Exg$e%^H!S*L=AOo> z5OK_co~%afBsbx9=wWvbQW{o)Ng`;-{Cj5yGxlyFUuKIoHcA@lJR82*Dzl|7ebB00 z_^9iL$7&}MnQ<~?<308DmQQ91U)6bYO@|vkM`@9Kt#>&(G-9!mq6#cQRvC!Bb9+#6 zHxzeKQ*dx1*!rYPNcj>Rdj{!vZ?ZC%4fDSdgMZb-??Keu@^_SsbyK0UnjopRXEHWv z(7f^#!sx1MIJLHoS}V1-DFpqcvZ%P5cm(ThF%>X+ZqHI2jDHu(E(?w0+Y4t+U!=>+ zD-G;nSvt|(%-Xwkc+wTRHHT=xpTV3A37E*)z4n-&S=jYuj(x&RBX2MyzU_2!J6HF& zqwQO}q62^-+jM->%O**$Bj$&Ts!m#02JdvT;Bwv-d-0VC^`TXP!cBx|%$u7)Vxq zG}g2{LONVX!Qr)r;&$%waZ6+KVn5(x_^FTgAqq6vsj=iu?rEFqyeo_z`>k-)`>1qXOSNAgJ!h%2( zu_r2-L?VopPEN#fNT9Gj40R;QRoO$6S1Cuax73LGH~;{29kVX{Q(5pQpDor(tx*24 zFTnt{QuQ7y32xdYMyCSEPGFAlgCYrfEx7~Wp7re&Rgp2OD{pk_taR#|d2#!|+tU5k z2D&Ub#u({YcX0}Rw~S~M)i3q*Ma=Hw)ryJ9OS(LoOH&vd`s<=hw~e+x@I!32ZOmTj z0ocuM%!}CL?s?qNEBgx-eI;RAZSyDP$h^H(^@$6I0)HdS{TEp@uLE58W+j^d>f0f0 zaJ>ZhP8=cg7b7(lh%Q3IC#J-inDcqu_lTwtAm7Los*kSI z?fA!*I2(-X+CJ~Ax4lyHeJ$qMrKCM%xvYf5xBrH@lGQxz2`ZZLKr97;E|dURK9a%5 z2EEG<0v-+d54u;Vbd9tvjn1FN%9wp4(xr3kMJjkQL3`=WK6710-U7cQnzlnT(2JoA z=yUyfcc@Q}oq00hvt`>7o4|gouZQcPs#V&kaqxpSrl)AcTFxZ9SDsjvqrfZ`m!Zr< zYyv9~cYKvHzD%^+=hv$!B*pHkmQKo)czJ| zZ3w=qk3aIhC^b9VWSQ7`n_qtvZ;lF^Xwmlpn zA;%o;i&yls?V@;;i=O~SiKpIP*T1o@{3D_}qN^8$)$X=!&!Cy*eg&rle*#}JeV)4$ zO}_Vfwv_yNd{%^zO`*BwHX4+KP=Cx9z4r+o;(Rq0e}#w(FkPCXvfZC(IGMR$d>R?Z z21AMzxy+s1%NUs~<=CFU0~h^52WY4OOY!yErIivS$>n|VEL4EG<0@5>^b!@gZN zwr5J2LGhsvL+Vle2729xl?}4s%%k2rz0(WOpTEqfG9ioloH&@$?Oh zlyS&Ccb@e^A5^E|N@6oJi+s+PUj3WJc*u4*-{nO&pCoSth1hDD)_ znh@pTe%aWo+Roq1@zE7IZF%=rT9yK6#($#l*SBBCzyc^bcSGook=vNjUVAnSw(WAU{u8!^qVs_7filJkM275L07EjE z?vD{Z>NqVAo-Z$4CDw}#Glw1b$>L_ry0$-goW~RDB*3+7G>acR=SRxA&2HGq10SI$ zW6n@E&%V>g>(6K(Kq(zb`$T!pDx%*rP8TvIma%#iN>@U^jCk4dSTHX}R+SUJ@XJFl z{Lt58eebn>@A2^*u3bEmQ+xB_hklFcq{1P)v>{&}O(FIL8n&aVk(j0XvvL2oTcg#T zTOdqxu6B`FTJwoi3P{uE4qx(&&H7)3`euxCnLglki{%1>vTCbxwsVOD=nMo*RKY85!NLST zM{s`-2tCjDv&Ur#AcL5@r&P!F4CU>V|NPNz3oYwy0g-GY^K=+zl5_c%&CXi_1Phr4 z+$}b64@BNz4PQb$j~=izZI+!3BihqnnbE=iG+Sjxsg0gvt>m8VMOsiw%{jUoY=@^C zBBZbPMex!pg4lsuA2#*6I&1ETN4~?OLZ>Iz8Ro%OJL& zQ9Yk|cns9P*lcn1<fI@wNR0!YSUH{WW0N;OMY86z zn`h>5is20+=JQ=CtMpMfc;qHz5P4q;EAB+IvzCC#0G$DWSv1vEQzHPGptMZ4>w7h_8%~ zVUTOzXtv2wh9#sYT^m~Tz}5ZYJrNRFQh+EE=m6QALgTM@-k)*g%HY4<#heW|e!8mN zOr*t0F>w;_?G@nTV5OLwxUw601=OqZpEAsxkdG0j1BN1~>`=+THQ5Ww>q&?5>s)Yv zG?fm*`B}%sQ$sH%Vsw1FH4Z20`@5g(?u;^G(Fd>NvY3K#+xDYRgC&#G0uebJBa|Yx zg#8{aA@|El%qp{I{g7bUnlBBO%fqQfXq(c2-3L&HHw!fODzr9&K zt?by3gzCZeg|J;BTYrVZalb-T)xG0pmT=hGrl;k`bKHnx%pXtF4PTwAI;>GOo+A~Z zQX}GZlI`|4&+%mfkz9;AnB$aB_#7wL9K)}N5c%~kA_41j);l5x4(DWdPcE6DU$8|6 z0JFevDP?wlst=72q_ZbCIH?}Wj&@(DV&l5e7LrNCilb)GG$^L=Z1(tG>w#+1U7y2?E`Dak0yo#WElsf^kE6Y~0gQ}TY98JvTHT|6PLI?E zWtD=ZBzV%x*(H3su`aCDNY3XR-ZF`(RaoB5kPWK%&u^QVlWkQWDO9vi14nk9D$X^* z2IY0t-QM#hy9@-e1HcQ2>fWKTm$1iSTwj`Ngq5-FODd4GO@fgeA7{10zRrP|n+|y0 z>*|VtXSjcEfCL+>!q~#$+wh6?-hRM}zvl1M>wVd_^!IPgOZc#OD&{OprUsOZLPfz< zV}1wqO)72$SO!hOtX)ZTjzs&hv&%w9k}R;If2#a zjeovm`n}yw9JA$9Qs^zC8=MBLY;l((Pw=vr$SV9^{C1iPCQMxzAmg3GHok{hR%@rR zrTOH~Nuk6D0itQy>zsp_CST(_D+2EzahHJ84lTg_4RdeEFS1#0jmj@cFi}O4lwAsl zaD4%-;8h%PSQ=A*ZYw~zn-8SsFErK%1XAEOxN%D>X9bdQ(Hjo}nQ)Id-l!EZu)R!; zaK7ig-X6o0$U8-x&qd^M$(KI%8uCG8E{5|pOr+H*j>TQklvxJr6U&q-pn`W-MN>9t zP|y8)>E4BXC--Uzgi@tbRio;toCBk`i*gNPftoFT&t20W_h6S()cW3F8)Prqe%kf3O>88x5&u)q97oj^V zO*eb(7MXC2nvmc!qLyVo@^}@_9X$BkJvf5+i1&ck$bH=1y)ayP@UXYJ zty`qa>ps|bRd}oNX4dZ5t-**p_I|rpav<^Y6mGm;^hG;vS5A4C^Drf`sH6k7ka6dV zfiZ!D%VF&~7rF9qtMd^LEsCKvdX+vhw$eevJEp{D9X+QX;@qYz5XD%&w#PBSU8OaZ|D={_mCaZ$Fx;8M9J;(ZhS zf)}U3dRLMy*~x{Yvl9+^0^<9xh@kE4W!ss~w>|YX;w)(SjasVhaCn?1`A6v@6wE=O z1N0S|l99XTg7Q@_x z3yWPur?|+P7cbm%s~=7XP;7Fc;I^x}T>IX=N9_?{({!19EtJPHF{!m`03Zl{ZJu>{ zqw%m3s4XO;|6s60W&YrqS*so#nRf+MPN#-~ZUT&EzID)?#e4Fq+)u#Ph-i+xE%$M6 zXT3(2-(hJl{#^Qc>+P-8(D79~PPqqT3flRq;`4lye>5ojBADh!6+%pTJ=CZUjXgsM z;u`SL2XB;IKknku=NTg3^yBOX7x}BFjO%xeKBqaJ)^l8op_ei4djeLq2#&q8EOymW zJ_<&sQ|?hy77dkRGACi`k|{UN zq`*L=pp1}_F$bK71#y_}Q9pZVd&ag*79Csy5pq8=vO=TAP3j&cs#=@F__{*j<(Dn& zYFA36J2*w{qgR*Hf@XVPgz4(rrE=eEp!>lU0a$`+B}EWgO`sFc)$^3sDw#e^xP6?X z#984%eE$lD?s|xr1Nq~v|O1mns82~ z_9wv8xpFuFKwD#=drsN?^xYv8?>loWq!ZR|@qG)P&RZ=ZZ9zCWRclf)?X4O~IZ^E` zwnB^gmWhjub+lnG#>H9`3i7c^PJ&39*45K-!FQ!BQ|Zj0HL zn0`o|2ITuHlL{7|mlGaj3E;*;IK~jnm?#-Ey@61n4!qWQO z_&A({Sd8Pfp-XCdJNLbQJ9AKom=eusCCMVU7Tu^cjpzzRu#p!jK>8{-|1_WNQoZiR z%<;Enpq%0F#K)=DS-yyVR-)Ka)QPrvYDuIH5SIgTEk4)qq-u-*6G*4Wb3}swWcXwG zgDg6&3kpYvI)rwcYM;YL#vpAB1T2ht@6!eiR`qC+66m zaeiZerXKayw2-bNv3cV#MaEI@`!@*{RH!EW4SHk{+=xv2~mSNg)~6 zPw|OhswNKDJo#`pb!yJq8jdCqHrt&MA12jWNhUt0gOEfCKlbYH_3v*&B?`q*D=DNm zc=Wh!H?h&<=&Hbk5j}J|)oC)Z@219wAolSi)euemQH0Y@P{iIfkk#UMYB+}h3+_Ga zRe4Iw(FbU)+}EYA%V)Q1A3f(S7V{!xj`-}}aeh~G%d?3n{nG@(bvH_kWm)^Co%xDK zz}u3tKW+YVQ~h^JDe&4>X2g8B9w-KrJP|tgIOY&k|D{+*P*e)y0N(<~uTGsqipMm} z{(xW;ADN)42(07>!QvZ|U@ij6f@a0d=CF4Q<}<&leo897luk@>rh0YROt0vmSr$?h%=%Uy_{^D5HB}tBlC)O3T z)f#MtKBLvsC9O$_qmVSSQK;JoTxA^2FJL6cqgUk@qtBn-(Va_S@HJ~R&u!?Zm*__g zP*2tW;?zpWZKLxH{48mt`0ZEy5PUE?x(y|xMxSo-yPb;&o-YeY1GcK#uiHEINu)+? z`n{*wQK@vu7;L0yug(VEb!NjwX*Gdc2(+Z9v-T{(INqU8bAp_>*zp+ZSh(&>#uI_2{LHL2^GGhje-b?Z{)YYCP40quByZ=wr!+gVc%) zzZp5u>aD|UcDUe^B+M!pAvG*GF`ePQMJ47E!kGItyX@iyVJ4|x9VR!LLTU6D$mu8S zm+tnS-n#Kp%w|yyT&XUv$VbL}QkN_s{jhX3M{=RiRW?k1eyTcp%t3$h?NsVT6rmMj zk;1CtHl{E~Z%h2VxXZypFe+`Pkg#@)hjz zd!n=Xy{^v|*65A4WIq!;m&K^V0uHZ8m9E-#dW*SHR+09eoU#%Ri7^bUM%=NnZvuV zI$RIupaF9fI4amj)P!pWXUAl0-zRE>tkr56b}>QNxA|aWZd$S~8A-vu?LLmyK#KTk zImj4%aeHs3>~Zm?ZLH{zELY}aqNQ`B$f|wT`s%U{SYUnm!TND60fTs{14Ebh$sZ*u z8Mi>dgGHCvw*u}>w%%7*1?H_IVD0-+mvXWAr&>85h0hO|M}Q`8{A_0LhHizAx+7Tf zovAleqHQsH;ewGmi{+*Uvc2<2|ITtp59)LBpZj>>3sft?YcloMjWi5z&gwr0>nzb~ zlZ73_>+VhUH=h{LH{Ezh4lH*`2$;yc6_vX-U^%<+>FIH39+kkGUCwv|q$_>7jnsq) z0AgK^y#G)guCE!#B;dYma;exrB$XHbf>LNbD7L1B#@dqs4(>#EW_b8kTDqHf)s^^% z<`TIQOZYELK6%SZWaY%`tPNdo&kGO&&zcKFmls@dEd}+o{3)-Ps zv{y#=-CUkViTONsmOa`;LKeZq7y0n5o{5ej&fVx~31Z_}eT0SDoa$6vMytzVLPW;% zQU*oGHhjCQSfzH4Rz;|0C8WJSabNJk19Gy!jZ#||_G4>x|G9z!o7;rLJrN6DH6%y; ze*dR%GPZ-0r~6m)c6tX!WyKa92S#S*&xaDADsf$!AGuZDoa!33Qc?`WiNzS=BJYrI z@6vf3mbI~tUIMnV{T}xtp1gZl3e=wK^72dF#R5~0ia;D|9>-Wur{RtmzD?W6?CRc& zL2cTky(jUo7a~c~$yx7V6*Mj0I@C8;MtDX{&jnKGXvBYDe}4a-<~K2a`4{(Xgqq^L z5MxUZey)DNMu#?AkmyS}NDXgR|CVF>+48IC04w2Doo0OWhh*bi8ezd}lk+m8^)mW8 z^N?RL@7T3I;I!RNA+8X_Vs37--D&wk)&83{h*WdNk&>qN1hI`1~ zqxLyk12^}l^v81q8RQlEJPb`l-u!q&imk?8$RIIQ=5?+%jAc9}fa4KQ6H9v2_5%l0 ziqgG>kV!1`b&gp?-Jr%E5wJbCjsoeysW??mna0Ou3|szkcqX3iD^R_`r@!c}YX1~% zaSA$lt8mcZBw4Wv!q&omv$Cw_tc|#yS!&@snOuL$cceJ@yJ}`T3Ws``l@c+-^p1gI zKR_soCnNuO^FhgUb5Tw9^DK=)iK~n+S$!N8O`OGLRTZ}u^3{*~Dzq!#H8(Trd*pA9 zdLt^ZDA^&{aoc+DGkJJqsD10#Pw8{c{cEE~gKgv$)2;9Jah(HJbm7BuWg<~?yjqp| z%@v}Tw8Nl+Xz-s{1Z#ewDMakn__^n^qen1ye#PjW;DsorY zbw;o3b@FBu#~GH0G)!Ii2Q!}YZN)ocPUZ)8pG(2Dv9s{TsV=Ra7%7~$ z^cuZ)k=vaMDqxDJ~WNcGx`8(EB9URGb-a)*dC~r})sT z>-LEZp2y{HSl<7SMLoSfha0Q`F7Ruwj!Uz>J}+9m!gr?u&&SS&ac_N3pj8f7b@897 zjuc*#MA>2s)(v~^IepA1#FlNR<{L>WqZ-n@;1p@p`!l+XlEx{71|B8?oX~ss^sDjJXFT)?`7x3vOBtZwxeC%@U#eCnGj=%G+I#`AvSZ0lC*9ng z3{cG+2oDu|82r7*BuH*l%ea zrwk#YoV5c!>lHtX&n5OkA1j+X?2d9aTO`X5_kkB5N)I3wSUo<$aT?G8DHpYpxK^2r{! znFv1q%KiK%xh*9ExSe|>T^s8qz<1`r*}h1l<86E5Xl^s?-GlQ*CW@BXXZLyAPwahX z>6{QQUk_6_r8_U~N@bR7^;*h@`iEv=D&w9U2o6b@q1R~u902LTF@bc)o!qyco!l?g zI(4*+n35+mKPMt;B1TS5-K@GgeIFkGkjZVIQru8w8y6<}@Cx2>A=-X(`=qWBWm5UD zpYvd#6s)Su`XaR%jjDqe-8I?o8~P#xsJWerjF8mOux)k+d4WvjS*2|SB^Psafx~&U zU0?5N2>R-*h?YuTOXeZln08>dBtM#nl>p?k)k8F3CwOKVi z$YY23s2V6Zwl=*}FMh_Ev^?_{QE1dRmlr0$u(cHOir#rDNBpWEXSZ%e@@V zAv&3q&ph=SOP^w?tG}`DNQXzbGbHTFd;$TWGZ63WxW^SL z&PyasaJ4mCvp1zPFK#Rr3odt4Qu<3*=-TYgWcAA*Kc;5d%hS0XzEWnT|1^Sc?QHEw zHdJI80|2p!WR0Ggw2nGaV7Vh=;cIKmOCGZyI)Ybk*G`IX$GJ(u0#ba?FOM|*{co@b zh>dhUne2Y+EZR0bQhTyz8*N9i{1eE@lWw*mcWIy#?0cGSJNJ2UiQ)6R0U^7U85l6p z@p1EDA<}F}R9|IWz{X-E4A}OMo zkA@|Sw8v0~{rv(hyr=((1J5oh$7OX9ruT0v3zPNi7dvE#&I6F131l3Nm=DaQiSCU$ z7i&7>vYENF8}l<4mBZW+uxVs|zmq)9^TnTyUi}N#_ie&I3EzqNZ{m7>h(pe`a%j%m zumfEQ-^n6@he9mGVfUgT#@8erm#zo=hvA(86$3#-;xBxRUnTo_Q?+pg3JDQX%qO_| zLa9d)ahiXwR}-t_L`b54TgiJ&UPm!lEfxf(htdO&MDV5wA9uIk-Pqu;7 zZhUKpaIkDsf|6sa*tOaf5?$3oF_0KVQ{dNEUt|v9J%kigq_MGE@%(MdY0Dj`VQOIZ z+Xv~qs1%`P@Gbi#u2CI=xn(yIqi-5$?mriq?$X{NwPj+*{~A5afrdkWlqOytZ0HdT zr3q}_#=6GNzSv@p{sFb=b7G;ZqIWlb8_fEaw_U3;8p%%sOQlug%41SlMlB!ki+p$r~$eJ;m zvTb3t_E0;kJq~}eq;lm~n_mf;u3*lIAJPhqIZ<$5m6W`2itUGIU^Bgce#XE=80?cY z_BiZex?s}r?mrM-;3Ij(J8W&1X=FI$n+yPi(6kAkb#FFi`o7XHTQ!9ml8+sQuQx;C zF70ZSmfMUSLIqM?lTB4bMWALHW{kr zFv}#Cy=c4o%~r<=oNwDiR`2EHuJgTByW!0=!U%bd)V_h? zq>gJOHwOia4RfB1m(4*ccP{rZqbc}MsUA259#Rr&^uya44P>J4JXn(3ksR&NO6I9v zG~Se0Kvd1(^;n&SxKMOIju>kn63z&}7)GXYSTI|Brm85<3WwM}WK13Rl-!CrXenjK zP{q>sbosuf0}Ep$pf!B!xk$JY*SVy(Poq+@Q7+oN{AGFItBmW4N9LMAUnVu`(DQBM zlGttR?efGl>27uF$xswkv7)WK2(aet>ExjK4Hc&#gkVX2Ua^$B$tV$vr`mX&se)sQW#+)pCJ&YJ}$aL#rIL8Z&jv%^GtZA|sk=CXX zKD>Y>iu}vxbx2TDlam0!VOu7Lk0jXznqRlOh{r>T2eT`gY4v^nSk=W3uBVhhaim>8 z!0F5@gxM&BXK|__O~$`dtD~=He|-+~Lex_bjXScpf2P%>NrNn+B6q^+Jg3sn0e`(H zdBzW`ASP3Fau-t(SC$Ic*LvZVgIG*_I^av^0bh6myx)B@Uc+Y5E=cMso3PC zuktJxgI>H-)1u~<3+vprkO+JIIlC3pgjb^4N`{vDA-4C%vXzEo1Ajy{pg+uXc8U$K zNy3Mjaf-d_eI{4;QZM}X_Adq{Uw5EX{F#r*w(m7%vC_VOR5x@RZ$f@MT%~8RSkc}v zvNbT~-GohtuS;yaYfPr=#xl+JTLGdWfn5&)w~W-eoFc)IZemAs=`EAn;|tB+MoQZ& zWEz6B|Ay8W5ecf&5^1BU-pV&V_+Z zucHi0SXuMTp<<5z8UrmCZ&EbcY|G8m+7P;0_mEv}MB7gk8~ek}yk1r>Sm_$6#^Ro{ z)M2v9Zd>;(|7;E^yoogS`6;4Ah7?sF#JcDsGaWA;3r^*?rvAoFViSta^jzQ7x)*fDe}D zt?5m;bsxhuLQT$Q6<(Hp>1nnF<6^fwXjR~Vt@1i?Hwfm6fym1pjcE)Mtp8oq7#9|ki(*E}xbcmC$G0rPGa{On*)WR34?4tlm z-b~UMUda5Y;#VlUxqy8d4BGw`eU-DVW1!&I)!xFrjhO$Z026v_i_5SaOT5eW6?|BS z`YVxvKX-jx>^1g=y~@dYrw3}MKy*MpsmdQ^NZrc5ZR zVv4CGLR(pX3Y?ZcsNBfhpPtt1z-4lWo~8x!pu=VM|9OskB5(U`-GH1OvbJjV^sh7U zvsDp7s=c>)bss_ZEKVld_o|34t$)!2+Rl98^3+7|q>EoW8yo81fYpz?F=V96(GvPD zUBjS{!Xl1Ur~3#3zlJHo(ccvDBvfH~g!swWPOk1Br9Uy_$$KWLT0`uB0($S7i#w9!Rdoiym95Xodum=+DsEc_cIFa}Qz^(;>9A4^i$5OM zUrFC}wy>AIw?Ca0_hd!$9)n&3hANG(aG>or7de(o27Dr;PgB?v`a>{K7-Hct7dbNHi3}abq)9b zFevK0k5*8Fwim5vr8S~9_MQvtU`Fx+*+dmgfF%5hyiQ7exFIi>KOIOdvIHFUtiE`t zLX{3EXVH|~yAv1~#lg444m%7q_5*Kn|6s|Q*vx)OJab3a&<-YUWhxGx?LPK10`9r4 zG`2a?Wjh4C-0!%?^<^{b7T*rzh{Fl6!!4V#57$n??!drhbx@3#GJQ!QD>cPzz@F(3O!b`Y|B(vj4L8jNf&b zQ~KAksLnvi6u*`}{WARu{@I1GuI<9&qULxzw?vU>_Ta5A5jOOuS1v}w`R~}yqsl6Lm6eq*kR5Uf zbnmf$XYdU)yKa9^RKEh%N6wBk;s|po1GKR20L9P&Ab&S2pEMLXur?7e+Ivn<*}KB> z+sW*r<77EVP3krq#D8(0ncz%GU&$+tcoNLvH)xEx7eKVQ&<}twvQ^!E+7x{`b_TpC z8FSC^+QOXFLv)Sj_OM?aJ$bQHD$x(sJK21|UXyNU`11ab^O)d=$myZS@;INE_VM8A zFFh)Avc=u@Vx7}kbai;RY+n4S&#BI!rOWM=^M$+TiaXK$6%5DTUb0?hslomP0qx`K zG5%4lMe)k)!1|Y@x=3oZmL~@QWe|?cxJ4jUcs0?Sn{iftBr7I)xE+sb_&eObh98%L=fzwziB5$j2`rP)+r!l<>51V9O^w zd`~nR9udBWo(;c7rpw0-yi%Dl>8HexDy7>Rh@jdG7f5I2z zb>=D!u6JHOzLg>&HT4BOJ-vNoDc-;8?VpLV&fdN8*BD-DsojRhU9+U1=)k+{{DOM4FO4g0*X;E8kVuWeMQoLi~1;C#hrnJBJTgA>st3YySOl(P}+kr z4oJ9OPfbnD1Vn^0{y15Ga^1+AW%<~w{w=W73(u~mv2m`jxJF&WcuZYhKJuoWpoBXR zjF<7J+;-!eP_U1rx(@BfgM2@i z(Emp|v>=qZbg2}^Wnuhxg%$_N<@l&KY7AKZy_NoD(10>ScO!Sd{=XBVf7Req3*gQ9 z&_sXK8!9SL%w~0Mt%QwDDX)e=i^pN){u~H)uu!Wjcb#O}YVJ$QV^g5GLb;G55r%E8 zCaJEa(I-$tE!XjNlG4r8G*9!>f7-(4`q9y&Lo!#8mk-L%&*#;sHw6Idt5043slFKO zgB4FGaIZt`;kNe1QR>5(2Q=W}ZWH@J?mH(ftz-suUQ6VED?aZgCJw4BS7F!`lk%96jBI6#vv25w z|Koksr;_-p_;xJ;SRkoURht7shtYIhO8C zajiNn)|CEdovJHn$QUaxdpLo{)cv?&hUZoej;W*a1N9xAe}?C_O@Dh!s3>aWJUXn! zju~kObttPv7p{tdiBC=PS)TLvv&<8HOF_eIS4+jWflZO*j6a&Qgai>J(Izy~#vzyz zs1s95&v`8tpK1(szv9)Lx!1@lv*xQ%sxz5i6W`f}V|cc{nwPdT!XyKTsl|eBg(5;Nm9&%gZHKj-x>5)Vo=`iUPCt;Goy%A74Ke zvVHz9t9DO(2B)2;?-GW+{hYD&25%(cXZABhK_5u`nJL+sI#v41sJkFL?E+^Nq#E(<8rk|~dpaIzXrzUS#_v+p2+C&YxMRcx8XLu=_bwHk{5Ep->b`sHoTQ99jlZbq9Y3&uk$Cgnnx_@O z+dpn?Mm@RuUCB1HqJpGS!DxnS%Bcow$l3z=`raQLZRK^j)3K1E=N7pXvLXoW!6bq{}{-rCxc2tT2+GXIKm8|G7r^R{S!s%Mn_a5Yl~ z=NwTlBY&kt&i?zDsk{v=hUN<)RdsT3{h&l9@2Cfa%-32i)NJlAdd0tL6|grqf9%U3 zVDLga(DwqWR-{z&pcxXm?64r(yneL3t+nx%ZvjJkIHLH7X}@`E>vx9DRJY6Me4RBu zHkD}k??7GFGv&uQ?`6Ivt)i2BTAMV)Jngiqq2Ze$Xr&2cHma;R5Mxi~it3^Sp#Kzb z@Lku!V(tq|Yx@DfOi~)f0@C1JuMzB1)5h#;zG`PCDfM%Gg~oWQIpe0qh08S%6o9TR zbJ#r!bC#X5e4MSI@+JInI#R_>M>d2>sM7v%uo}h~Dz0q^`t?h|rKTpHh$j9shr(Mu zhJ*tqoql0-ozQv?Yr0|G9>^r#mVi$4?=R_k3!SSK?}ZPhoOVq)Ipg`1&Gq3d@QUw; zs;i<*OXcJ489xx!4K>U@$j|e9ju?o{Gk$MTm68l*v*piy?wedgc8gE!4=Uervi`36 z|CoEn=sNc;{HrlA+if!ArZQD)K*ftuov2B}8a-Z(K&)Mfc#=T?Q`|dt( zRjg^0D!yq4t~E*DotYfx0WQ^ijH&@aQdFcncin(6ekh2hnXiR6!<=jMjnsJo}y@Rf^3rpQldD%;wnsK3%;$GM!KBR5h@MXeYE`(hv=i#QqmVYe6;fd~Ue!N!RDZRL# zSP|W=2?^+qOAb_0fL}G+m1S_ASTsQ;X)=$z|MnYk8I)BIT6}}+P<><;s6X6`?g*ym zOAC{IIq%VIf7TP7B*mUyMx^vwj1CvO-_m~bBqUWI*lhjen%mM{=@GJ%=LscP&5$y9W-TS@x}Eynt8+%gx4EC*cbQo0O%CVScm{csDn%s ze9v^iObpZLSFp3IVN>#IXlNi``)=5;#mS%_9TFyou|F85FpJ~<$$Qnm$s05>wh#}` zH`FGv_+)PNEeql*;AO*oMzUi8=DY4y&af9sTt%h$*k-{Rh}FJ*HrZ zbnZ#ITb3UB;e9j6d8yZfUsH&x?94HihT!R=rO@k*Nc%JAZbRti!8`udHm64j+@4T$ zJ3S=Su+MkdU;Qwz>+P-sy`7~O3=d;tEg|tr4TMe*`VNm5ho3%dMqv)SjnyX7U&H4M z1?jD;_A(l-m$17z+xRNB5ULKls~e_tG%{&3z2MVtI)Kx=EE|3t5m1E+p)}Qy-Ii;S zfN!kaCw%Ejsp8`H{JnH5-2pS*OhjeE0XQ@-W~CuN?h&2se8q}oo8uSy?E|6@$ni!g z*{w*R1k27;NVsWFla0_dFFqTk;h5YR>p61#MMABo9FV=?7d6f9hDm!W&!%M<0;n7Q z??sl-pxf>Z!Z{AP4HvmDc){|I$CG4u^y-VoZw=$a)j1Xo`0BPIRiI+hUZ!H`&N*}f zH5HQqxEL2R_PY$~N3iJx_j{C!wnB^TMY)qyMtypKaB7X}V=8}`yZSn+b&E)`dRX!) zXE01;;VPNYjXy+p$sRw+gA-4XHxg@640;{&{c6sc4NonsmcOyC+y(LIowJbKfrkS@ zXanJfgp;9XsYoOgBDK1K+NF}3qce7wwHEYf9SF+TtC$# zjenN?t5Tq*xF)XSE}wc_&hW&QCnB0JJ&X{cV)JJ0_F;EEQ>FHY4&iFA%ek^)Y7?u= zZZ=U-cgJ4*YxoAG+UCJPFT=|Ro!>u}FY^c9(?PqTbQV?OMBLAf@kd{0>u)e?=RVe9 zKzj`mh$QodA8OMa-(yE`p8tmP*NobV*PXs>e@d&Nwd~J=IDNg&ekMZdZtd_zi!`Xnb2ah%F^)B7DhuSW<<*YotaZ@IPz=O-Z2V2hea0f~I z82eWGzZ|a3J3sO}Gsr9{LvC6>852wYgC3MbJ}66ZWME@p$fBMqHwi7b@!FbT_DJ za!jR>7#-z5u8nNF{j0mAx7+6qBniLPbr+tuaoCf!4w&_}FBty3b%qzbT5Xi?!0U6e znwkztDtZV%YXu!vIuQzsZ#x}$N9*F=!}GWHA9A$6(Ha89iFeoUqdbhEk3z528J%UR zJ}));dqeWHYNNvJh<%k7^^pd1{nm&!Q;PVLDV6*eEOkby2fI^}B8YYYMo@AIs!jsOr0;f4L4OZlK+odzU!aJB4;wnpq^@N5m zrSBi0;JG81>{vkOsT^z+jC`Gmofc)O_(l}&Pr0RAsnJBmD$4?AUatz?yAe=G;NCq? z4k;_ETn~wk!^q*v#aQ_n?{MQVB_sr`dJ+%(hbbe+l`~0(`q9;FsxPNQxx-)xS5jkk z4U&iy$yx_>+7ML9b4;ZDCgdHl0p4qi%o;^w=H^~nBrp(00_-nud^A@eH3s8~OF6vx zk>>Y4(VXegQYvua(tpMYYsBP$LE%ReUhoBmv!qY9@posmVn6Su>`t4+++IT`##;&KYv93L7HCHs5rD~TSr?xUpV3DN}zXV~0Dx|m&~HJQ5B{e7IN zdNGg5|LlIb^ZRWp{mruHu6((g*M;GVx8|)^2|qEoHkhwWYK=RG09TvaN4q1TxS`7V zUDd#CkpzvVZg=|<>I@qEiQ+rcIQgd~W&-hPNlHNTi2`ITE_3Dt zWx1~&=Q~=M<;!Y$ZB1v*1k(+FW8q;4G{Ttqmi)o= zm2t}=&2lDg^aI%H*CToBcXv_@Hzg*+RoM+K+}D=tIj^UiV3ZtU9-^zk$D&j*_}Q7c z!F;6b`7Z7!nj2;)!A&(}Yw68B?Wq{373AIGa2|zPp@Ko`5-v+-BMI}7=-BGSiiu3f zmct#Pw4>YGF*%^*v_Mh^zO{>_+|j2 z3#4J=!@}R|O_J~=d`aF20 zHi1*{_51tTvvO5AKV0Z$a63z-mn;I2_H^ryBzeQ~bMT#0qV2ZeHdYCpoDyhGpU+H= z3he#7y{1Lf_Q(x6@E=E#c_R9p)p)48fMFg5Fved zK5ejrV>qz<}Cr36`+^%fF%lk_Z@>e!Bc z5?`tGi=)R}=s?@#u)9Dev1gye$B@H-Twt*c^z6Bp@{tMPWFUz?-_)T-Y01u)t?4>usq& zMz$MdaWDo~m$p=(@|N$Ll^UI@#^!Y5QwjXf*f5=K<4(>)M@$@<}9b7{)(dgn)a)yuOhb{S}0KrQEJ8uM%ptNOZrfZ?US`9Wt_ z=_Dc^KxZs9J>OxSa+6-%b|0)fkVL)ez#qRvn$N#C*XWyK-`A_Keb~aXcyy%Zds9>| z3rm5zHB<}NKa-J;?*8}?8Kt>{BM|(@p zcVA+p^4M@Vrtv`H8x?fDZPb{OiLXhn-IWTo97|YDWwuse`x$tm9l9wjjWvF*N;Ifj zc{U_;=*xGRf=>4IO;|XGqWpF>SFe$pb*7QRq#WD^A2;2omz5)x#o&f7gi{D= z@O;)3r&8~0{&h6#37AJ`#SWH!HI3 zZ&IYYwG3@NgN3o&D|m^NF-C}u6yw82eTl?)t*w#xUrq3}bK>+)KKCK1DaBBSB*^sDOnB-Cg2p=ilD$<7 zbcpQq1YP~BakKXy#!EvBxg6ZtWWLQ@roQj!gSd0J@OGgnjBpbCx$+Bps*;v#r5%1V zF6`(e{Jk)rk4oAp@jp{Alg(-+1cO!yookS1ns0k}D;cfYC-_U@%f9Q%vX*$-_kr)V zRa=*YRnk0xlSB!5$A_Z9a6G}LW7Z9wShZ^>*`3r{H@x}l%&_e{ ziTeyCZT9m5_f1k^LVw2FdRLe8-g}19A1yM8O#gl0f8wm5sfa>Tw6v*wqhY09QclS9 z{RF#IdNO%wEp_Ue&)b8)Myjr1zGg>(HVyP4?crz_STDbwdu48>dEox|jDtBgI_d+` zSLQHX&)bt)J2-JQpKw4tJqw8bu1jpM?tF7V*PUJ4ME5ef=#sa;>U*%4%i3vbghQJ49JqsRNrINEvl6RknvdQsw2y?i7VFU-j7Z zCi=TpYT>xpndhPrG`Jr0FS-a#XpRS)BWm~GYbF!g%-?mdjH5ZD=bEWlh9YDsL57u#;tXlBYUD z!S_+xrK*8Kol)?3hU;1k6$azam~EWsW~Gf!*a4LcbZC_?-3L#!#~StT_zRW@{~l)~ zOpce^$`?a>Dk{!6fvO`;`uAsVo8OJkgiB|@AG}^2Jm}#pU*D~tHN)QL+Fx|84l|7y zZB`tM*qSe^eW-FcH)S0;KiMo8Rv_$s*6@Ait*sK6yL`dtSz*J;)o$~JY<}NWLJlnU zKg*=E`Rv@QRW2c)uVfb%7l{=Ke^eTp9Xp}Pp2{tcvjTdhCjVq?;)V?YFP%#vA?(Ol zdZEc>JL>bA4J%ZeT}`arCiE*8Zn(lWdtoB2$BTQ{w3a$xE_xAYb7QLe%8+=sRiZ|~A2*ZOJ>x^g1n4cVHyZd?G zZ!QbiR^;a>eMiL3pOIgbbp*fF)8|q#($;=WAm4zX2LSJV5=*VJaZc4XgBwx6Ily#TRvgXG z_CV2_LtH*Xb3iXusm$GqwL$V25zmt&2>~zkao+*E(T39q%C%P(ZcY4)2g)&~-qvWM zT6`uTSk>~5S;RRwz2M4L3$C{Wp)2J_!fm!HWMy|P1N8&4(K9y*wF6&El;T?XHF}u} z4~DO}=8kw+SIa$x-nXhbF|EcqOMB z{6Rqf+*R3~Qb5*B7|8YJtM_`pD7~3ivB`P77os|Ocx6UhT-?S%5wEId-~XntKK;o- zB?9@GEzZbHpCJEl3Mw|0ay1WhWjgvW1_#Vx7ID8;hM|-OefYj_pccNzvR7GDd7tWL zU|?E%%{aq(@ zi8#eR=gedW%6S(QQNn~hu|rQFjs(0?%`DZ6X#TWc0CyC(8R_V35sx+euuX^i7UV4 z5I;33foFPuxqx=@0wR_o?BsqYtPmw`1Fs+u>!k-kd8DqxGQQ=Jl_kw z=G0R-bq{!g|=*cIIU4;BL?L+gu|N%=eSn0_CjLfyd@N%-M2bxxVYk$w^FFS_ue<8CX*8 z-~Rk5WEu7^E>IE&$T5fBo234wPyL_o7W#h#G5&w?3B?Ng{c&h`_!&TK``@F8<;YT} z(tN(+PbAxBXAmWW%Mq4RI_u|o=UWtIwuhX0-VuxW9Q^%?eKhVx2~44Mc9i}=RPilI z@8$Nu<$kue-r-b%S$m>LtJCSlW-!s#%l-PmU@U3<)YbL%b?;=Z;IArO!T*5@0I6@Q z>i=YrJ#%xI%Z=9a;-%3LLuXCfh-F&sxU|X@LMA3AR<8GFtFtZ5UN0?b zN=nL=T8eMH?ss%b*&m&$_j>RY!g$dL6IX;vl=OKKJRCvhoxVTXMTO@D0bJ z@9F6Q8yXrC6%&)yCdD!7zs2;hUaau(dFQw?Fd(8CeAogSdcHZF78y$!86WSjH=nQL zY>e}aJ56}ErmXE*V03N?Fap5ZpuDfyY$rUn6MqUQXZt57V-dO?5E~d8ZuSJi9dVI8 zPp+?PdumU=prCRjK0Q94ch<*k-A@-4dB(V%uC_Klalv2@KjEy9(s2Lp+$xba1#|xg z(SRd=kFKATNDXsmuCkRZyWCrVI z0SMAj-65Z-Q7*(Y85NBq)%&5Lc*@cd6xqWeS6)U&+4O&x*u0V*fK1-vT|#|c7#SU% z=`RU_xF_>bj!6)^PK`@-1k{g-k7FY~4^7cVKok;sJ?H{7+M+J11DEp|KB3FT`+D!@ z%Fb8Z)8$5Gf3t5>`NjeQU{FYe5v^w}Z~#prQ#(i|N@bvmg@x7jxR-9`lm+pfEQHnV z#^g6}^@=~pA8tqJJBx5!P-o(O*6U2CXUghCh&&ZMtq;?sYUapHjLCd!3qk36{Si23 zNtrizRI2V*xR*2X(wl4U=Y2_^)MqT?EqNRcVp>4@{SmUs)Sr-$kXT(Py2VL{=Hg$k z$fl+Id{7+{ER#1fE$n4vV$xFY0W4%6>Pm8mX@cikvg1XgS}!o|(zxu)v}cSX-aY@^ zrC+^dr3cqxW~P{y+SFtp&DQ{IG>?lAU`0-u|zG3E2IiE=oW3zmXnL) z`ZOXwDZ_LZMgsB{H&F8PME!{hkTQzQiyoeyv+t5)EEk*Ye=I5IEYzDPAY5K zMEVDs0S4GIFpf*3M)KO@Gmlf{i2l+(jiXiwSpFi@;4IR+Z ze3kh34hSjCqvI{a)74BtbkT?dvCA;{BbY;Xke|hrl&R^>(JWjz<|jFSRb5?Ov#(-c zj)i}CO{lyGvagPhSBCYjAY%SfKzoo?hrCu*FPK>=KKKY(D2N5kglXODp-HYW;x{kk|051X}*L zLeE>V_gRL7JWkw+eMxw6z3juXZ~pTvOts{hw)RF-<6ET|t=D*1)n(SapYKl1Qe!&y z3^K1OV}Md?8uR~l7nM~holks3tg{-@DIpvalHOsX%h zF7C>oTN4Z6OGbL)kHjbAulFsElfw72t2GR=n73Cn?_CP+O57f6Aj=4KHyc2Y0F%g3 zEC=+o3rr#NDf%pfK`|Sd!J9a8i5Z>QBH8b-2q$7Tpc*Xl*7Mp4KHy>?T6XrDMw9V& z$sz9yTus>&o-&z@8pUF&LFsH}4CM@sz?gh`2CRb_I)P$#{kg20%=_Qh6Z)$yj%K{6 zPtEsvo2)M}i!~FhG#V^=F0Rcs0F-%n=3SNmQ zz$uEqWiv7|n)O%naLCPolm2%Wum%UpAwrC*zY0SM9o1f0wpH2DG< zKlRWS9&|r?u&sMt4N=bO3;KnS5EJviXt>>-6hje& z78%9Zm)rzWk9{0jr~P*wRlpkrKiVJ9lvjTPw%&9lH7*!FG@F8H$%9N!oS9Pno$G`N zMLzAvj8ef!gcBH;GsPf)Lo9yJJM=NuC(fWxEIx)SQ)+B9o!7mgCBvWx*nE&kzeUJA zdpZ2PmK?!WDSd6NZKpTaM=`9i5`HbqxZ zjU#DlCJ$y~2k!Cu`_U{uGfwk8Fg6;Ww5|y6?(WQ7byFSUd@1>POwVRizD&&&8{msGC=BwIsnx>* zmYc#oe+?LU7iD&|N0Q#@QvH!JgW)hbt9f)tNw&eSVOOOm;(t;PfTI(+(^1P)_xZj> zT#)HDPHpW6NLG^~yVhe(vAiF^+7!u3%S56Ho7`^AVnH0@$YM`@+`!KBDb=oUOkBJ$ z#b7{;$bKrofS;+;bh^-NvZN}4dlA#w*_k!OxFr8JDaimAuzGWq~Nq=%8KbYHEkj*gL^r!J;rH5fyj!e*J4 z)=l~XhblWJ`^&ez+y6u9*lEop=s%W8$!QQ0QB))zyP3RjIAK%Tn6*+qF5yBv-@Td@ zQ8_44yZlT)`iO97(EY4=f2NT04X`Hu6g?;dMFWgQe|qoybvXJtP%7fWAI;LwUb-?@ zDN9N7Ttd{|ii@S~B)kH~;Zea|^nXA6=Pv*c^-U89{=fXg|9<)Z%~#6+Qi}j}{-<=|-$VALKjOcj>z^Bzr{?o7K>X+TrLHkTqzBd> zQl^_K5%cntBc#9W?2@H}R23Fu)E4vj5+AXY=QBwN(|7@6-KbPhIm5IP?IZ-3nr>`5 z_^>L64;?_Yhh3(UC zBEn$X7f?gbFzh5HUSgzg1OG$93?9_oww zcaz_s8|H@-Mnums5f}}1^es%y3KMsoNB9!wC&^VVA4$qwDmSvmex_XVADmgKecx3$ zu$4{Q9xXy`D3%ed-T@-XH;=&uzuUqexc_cum6tYB4&#-67A2x)BE4d?vr(vpQ7s0_-c1g^N8)X z7NUVg2619gvtjCxnc*oKqO8RLQrmfZT?dom&6VK#Z9J$k*zjy!CQJRkc!kZ| zPr5@b*pL>>95M}Nb<+~d*JhgLQ{@#QR$?_Ma4ABXPd(I8LOJhiIeKnLC-~npxTIPQ z$vWcwk$(dxN7D-(T_L_;uj%l`IkpED<*pHsiNG@&p_+C53z1TlWQZl9l@ml&NN%AJRF`hNXs>b5DBjwrj9p=q1Oa;j&6YM?2+o12lTw4>u#9MkK zI;+@gf<#?MkO(t|cI(nXH+1!M>rR6@bcJbRV|B0slhEGrI`Q;iL^l3u4@Sp@qeQUY z(qI4d7;=&`1E+M2tmYI{4Zd?TeUhD1HVBHpe5rFxI`D1XIK}p7KGv%PV?^vIzX^FT zPh~@BQcZndyr@zD!dp}^B&JqOXV|QyBQnqr>e{L}8$}oy)JY57qphr;qL4(VixwUC z`R@73u9B1iv!K2)$MCECnQVqj`M6YvEyLrR8Uf}LP8gZc?`8sTe8zI_kAvEet$f~4 zU$UoR6>2(2__*UI*pq*J2{Kz&*s;|u8MI^>>;whTaheJ!%<&qITSPGPD%nNn<}ryN zR3;nF7>R-!6v;AQ!I$6Q1v}KJZ<^?SpLZo(x^y~bU-J>I^KUcQkE27F+5f#r71{Al z{+wdSlkQDBk4M-hIpZRP1NDT$xn(rv{pOo6j1=jw>#0WKDjqX1dTB(f=-7_5hQdAb z#%bC}ZsgwVAIQ9zS25>d?*5>Rg_kxvsy2hz8A(0a_CuYt?cQRIiJkAFoBgHURiR+i z!^6X_?vm;6iVI@rM4Fh=QrfNU?Rsipqm#7Ll9n6=!O=7VZMk%MgAkS!aK!r8>MCp` z|7sD@gN+$u(XzOj>0?iP0JI0tb8F}sM|u(nb`Y}A3J$d{z_GGutQv?5yw@>-Gk099 z9kfjpy!VyhPpuB;z0B%)=I$ z*qE4{#68Lpcx;Au+)gJ{cBxl(&dwqh7G-RXt@)upbw!sj!Oy>HFC5%f#db-0Q0+zI zgd6Vf>Ah4lUL@Ag@!mXf1a!<3af3POIr$*6iC6O}B4wxsBHoX^Ut9GXB)(L^It$Oy zVw*HxDjNCuRu4}fof?gN%j=kO^T?jUDeBsOjIM|4?A zsehxMdqf*xwJCK1&*6{LPPt=P!;29iNYACGxEz~Oi2*WOhOQ;B>Y}9+q(xC$u#*=2 zdEORPP2Eo-QFeA3aTdin>}A;7&jpujT(hx`sd8%$Yh)S@GTRMFB}lZCoCsJOhGoMk zUid8nOF^4#|4N7meU=iLsBWzzb(WZmF^6Ouw0!7t!)H!K=a8PiIN_9<(s^z4+8L{U zM~!UntrcLKNr2#3u22Lrf@h=6?%ly)TED>QuS5tw2Y;=SO=9#2(p6z|XW6rkH>4nb zn6zlJx&*Lt1GR%HlL4s*k{%Sx^6ao0DdMoJf#m;)L@bLegm&qOzMwam7~kVZA$` zG9lSjswXUw8RZ}s|6FbLc*3&(HzkFBL5p^f=X`K~_wu^BsxgF;>ACb@CWZo0!kyN9 zbF24UKh3z$kLArq!nt7;#5_c;pI?$R`uKax1XQ*kQ`cN7Gv~IXoDi*g;2VzYTR1tY z_wl(r$-DUvi7Gjv7Tza+KKxabig4xpJ=@>EGqXRlbSlyIgU4$SB?SxZB!!;#y8&wzKbXnief$ztxD&L-zKF=-O37EsXeStNu9QIlfPkOu;WpAtIs~9vC z-+Em3TvB-ig5ZfR(Mdq_HX#Lbx@ELLG8|jee4`JLybFY8g`?}O*M4qW0nnq7jct6CP0>R9z#9 zUB27i49GMhk2a}OpKk=l5(V|_jf(YHg{X8&=%N9_k7dy#D$A8qZ!r|W`U=x9q~T@yfs^F%k5Mq1U7B9Qwkj7Y=>ej~Hb<=gReADwhx<*{bbAn;3qaCxsDenS$v>AW< zajf#iLaB)Er5QY5h%fF;=^z0{3(dW2Xr0wbRqYW5MgYRv`jEg|r6Yj&NRZ{I{_Te_{}NU0Kuh(~XQATOA9!yG&Q}*XEikbo>w`>96h) zxOU2PC}*R*=TBquPx>z0%0Dxn7H#m;Q*|S15&B)#NY?Uk5VUFG=niI(xpp6r*o}@= zRk}M}*?OW@f9l=lsV`c4LL~_wAfVAOk6NuFhe-CTurgH)4s}QLQioJGDrS!gDnSX* zrvfEaidHd}R&eSc&nUbYOx@UcsKK8ooS?1r5WV$R7|FrK5b$&);o#zpzQUcvlUUp# z1A%5dv?N>!0h^EC7C$O$b{O$&JA3=#9M>C0eeN%F-295?%|oa|)zW9bx>+9mH6`tq zGD%keiGJ5U<-4I0jbqJTo87ogfVq2lPKG$oxYZ(szsGao%&!yTVe{7~eElyQDLtzL*4SEtK^P#N|_ea{~3Ei zer~8;fXi&r!Ecqf29#trop*#ujFFL))Y9Q@S17CN#==|QbRB)PuIG3asv}+&d&Z<~ zn`osYD?wUP>HT)9!2wtMdP_T(841F;u7bBhcl`NWtqrMsNlk*Jp(3> zqKmhAGlfHNBM730Z>BJC-_v9pC7OA;ZjTFZN#{-zA+dDgSj8mn6MIE1TtA1g&T7ZZ z${yFRE_|uMuE*o0IwQrjL!v+&{L^=MnWR$icH?+pr-_#JNgOd|myZfLfe3}7UE`y$ ztLb2yzi@&IX<2iVtvBMQIS?EJ-e$l6A#liN z#LTWxwAhqWZH9Bn=#=fp+7-QqOl7k*m?%Cq{`c``H$h{I40JPvikSmCdvUW1HOI(O z`0{JVjX7Iil9{LO?W4rKNGT=_o?fbZ^I9}20`8d=;nbU=_K#l$ zzP*}gGILvI!nm~=VKawF^ep184a)xkbMgNIbK`)d-X@S}goc3`V*d@q6;A5}qs*}q# z?8hB}vK7oIGGpzCRE&t*?)WhHJcvj4-pei5lgUEGZI4Y$Tp`Kk(Ae}i$_`>cce?9P^mt;NV?+v_T1@naPzeziBXHK7ANKV@ z^j0KgU-eXEBt%9nG6NMmQ*SQ!ErOfd%a9vL5d}Y+8baQSF&Yh-K}@tDt#L$8B8)J2 z-$BqNun}L&9<5+Au-JWC=6{rY2yA^W5k#qQ+h+9pmTi?$Tmy z0&;*>HkDO{T!tx(`rnGdJu4uWUk2q!@1Q`o9lIz z`TS=`0RE^K4gWT{w_YuU15{e!#{cjRuaMRnwA4C}z78t#A201IXD?G{@efYpMUTD? zPV`<6bwwv1LsC@tJDu#Y$QVi>P4z%I7Oq&6I&j9>d?ok&iVSMo!mC6%5zL z&V2@kdh!-r_ykuX<;t1!q&=gkT-)=GYM7|@Wt*FMAoD_&nyG#v#4YQcE(&fuIDKY@ zUJi}XpVG<9RTqT~*i2Q_Txe^Ab1A2~AKI_9>|q@$_bE_*{&W~+9FvhBwy-+56e(dV zr?SXyac>pyw!v{*XMfLZME`TRo|uX*cWTT$g3T!B`re0j3%M3V%YeavZ>a%i0EKuJ zIR5Q1q7borp%@T?8sf5uN{rEcA60R2H`9;Na#taIuda+4XepoDgOdGm86!B5*;psY z_F)3)!Sq&uPNSTz=F_*-Qo(^>(6Z<+U8D3Z0S80g&lo?pW2smjY<1V1sCs*5zibA- z(fy>cWc(-2fcW`g*HUn9H82&DYapJ2ExMrlVzdIs;?(!Jf2Wl;^nm3Q8yAyl1*hzj zym<4mLtW4HQjssS8mH-Z)(lgdO12NT5a8~!LVoT*8q+P;AL1o1FK=d#M`F98^~^6k z91aiy2=MXA8ce zGz^I{-O0y167n3POIeQuOKQtLv?CKRt%C!%#)kLbdz`YE2ougE*3lVAJ?w7`NMNi)){`--TDrbSgYE3|8oFgqIinRY-d@ z0|LnXV=(>fg0K)HVLYG1ln>Z2Xwcyr1520h4}UWTP4qEC*M3p)!_cN50Bg?YW``?v zqU2}SLusH(Ew(sDr&FoN-R2tZ5vDq9qB}X)xfihDtC+d(&DQHS>FqfBHr^kcUH0{& z2J)6IJ@u~;NRd%f7+SGWRXw9%ZNuk>Q$F{)xxKDw$kJys&m&?qSrH%Uw>h;IJNvGE zLC{&UgHjmQx)~77d6=4It**1`eSt@s?(gR3+m0*h z=M@^-catgS)7jbS#>~dVBsT`eGS-3?XRFL0O7)&cKPYRowz}FkFc1<5kid>j#vA4z z${3xa$VS#sf`xmxzT?IH{`~#B?N+ky!qx3p{3SMAeV#_R#$9TlgnFB*w@o(kw*NxMg!k9@_g0*r6zGC$oRbkBOoQ!FL5pDxgTdn`e% zQquS2Ju;)@V*ncJwD)d0M-#Eb&L?hk&{M=ly&gQ*Nw{<1m^}W0%cz@xGAVcB`Nm*2 z*2h6keA@La>jUtqF>tG>sLA>mQc1>PycUIB4h`KD1;`tpV14-UvgtWjygecbA<;Mt zzcVMn9bPMy^${@cJM!MT*pU=kc7`_@E{9c(YAsa?y8v2>W@AzVYgnVy{>y52>q=qcI+zI1O=T;OL!RH0vP(MO?hRN$L<;|W%6MHr!T_n_M=i}a0uBOCRy zrwQT=(%THui%JGeUV%46y%{boXR%<$bKE1ZeUbPLcTxzr?CeDP-h{uSY$a>q$EY>} zHG89<7y-GskcUcQfBIt#XPynCgUaovV)GQD4?>>aIJBR|(0DMhFLbyyJeNNVtR48^ z#pC7rN8(u2PG1f<-I5nz-p;a~$h7V-2nO?&!+YL+vI@3tQQc?}gX63Bg}68428776 z!6NArqcSrIW4T+pZPe?tZU#wKH_YggV)3w+q|W))teQSq}B? z{$$brPgy~Vph8y~|_jH&LkurqzInvu+Auoh6G4&A=-S2tTGP;Lbnf}w9 zQ{gDZkwPFdc@r&o_NG8d6p8cn5JRepKYVJ^oI%;eum!sD&6mu$Q?}qB^c;@~5?{`t04gP@oe;-mbY>se$Fd z8$TaPG9_+*tN4_7i@R4IudF6sAGjQA zja@#1f5zU3tK9bd$PGt%r`_L#p=>Kd>z5AKk-CB&T{pPiH*gC#f4P**_@M9-xd>!* z%%a{qp`y1zCkHCe82-Fw=H6;|8a9`gzu1bP^7t62nYP^+3|iB6UH2zu8ep2RZY&`6XiZ?ktjht?Lg=n96KyCXs-@5dSrcjiUChmTE?dW0XIhG+Mh>X zjU5`t1Ri|Nv2l#42&a4A+qW+DP!Pk|zfNwm;a$?A=&s8|| z(rLbqHRI#kRR)(D@bxPZIL@HYEH2`IJK7kPE#U6WD<_ve$>bJ>JfP@vM01ceX36`Y z=fxb98e3{6816cExZPhZnWVonWOa{eQNZ0Bi_idESiz=}%g;>!%ss9g3l%jlF(J}m zSZq#9%$Ij)G=4(hX)yl&8GzV+HQDO(+|I~1FZ%7moQTbc0{PYj$ zKM31*C^SHnqX^EIwqd4fqWK5F4$fTH<1?R4}*p{mqng?u}*)dQ>8_h~79`?|*^{k7klO zl^wb|=a`O#(Y*f_<<4Tvl+pleSAf(HK}pGoG+|254Pjy7?y)ft!k{7q%vu_hGPyZD z?MNLnPy~|4bx=TjQSzRj7bQ*hV-aOd0reOS>``b2zQyPK&_lA}x;t`Cuw>Jj|N72hkJAi*3 zF__Izv6xK0TWy^`foA*T*CZ;z3$XvGgBzBS{1Wx|;}cT2pDpgnVn8^X-Ob5jnWpY; z{ey(QH2{8zGc*E%@DHiX8K3M}h<7i)f7ek9uKur-7@)_u4+d0}uauVZ^V-g9I_CmH zha4Uc41e&(L|l9x7i3_q6{^%~pE(>H6m4p1()s;xX=a}}#hz7JS;;j)1rQvk+NH)5 zS&v{o|D4cYFAB^vLtR-hz;(@adV2%hAmBZLtBGX+4poUS7tEBH&pEJN^Z`&7gHG4G z`sQ(fT-gGw>Zv3)l~$+nCF1P_YWa&P33?z=|38OW0<)AsrOYZ#N>PiTvUD*kj5nzYu|)~8j$fBvn4eBys%_C*33u;6Kq^Au(j z6YFQw{lgPOL&ZPc>m1qiqpdIi0Kh^2)0PH|SyID^}yZRqlkN-J}Fm?V94YZJd-k=fw_6=%ubhHl0r~Q58E&X4ty=71x z@6z_00D%xZB)F462<{HS2@VT)g1fsza1ZVl+}&MPaCdiiSvY6N-uv1A=bU=KymjV7 zRux5snOXOA_w@a{uBIf{wpzv-lU}}6^?!O3VVd^G<62Ks` zC~zHgPXL@e9DqtBFR&ViZ%ZC_sFeX%8%3kp90)*|FJ629K59S!+~6LBUz)Lx9)n-!m}2m~W}si>%^(LFmOfZhAAWtw~w5a&C(x&&Hg6mXDe zk9>45N9I3F>7TO?>}X6;N#XOJ-IcCDHgZL1t80UVZ*Jwy70-%`izlC=zk-1M!KvIu zpi_L_=d4jSV+#7XF<)c4J6RCTkro%HxL^C{f9(DWqnX+$P)b}~T{l)ceD#9^nCe|n z6$>ic^92O>Ta`X)i^THGe;P;n~?_+jq0NX?bzzmK>u>z=ZMw^{&0hF?Ha8QEszZ8%2 z=9=9eNIGeS$~>1qRwxp2?AP&F67}Qx0-o!D#3%LH2+^s_P=|frB%>kGf7ujZMdgz*+}{m+WT&fpBlp}JN9$YhoWzm`V+Q;m z`Nuk-l>dCuf`U`o^6rOAV@00f0tQ^`AcmT(aUEb00>AZ-rI_y$Lso9+adFqf0C)9| z1q=KklmCy!CsObK6&j`uhk50#?~;-& zM=$r~z?abTK^CbVd+*9c9YEHp0b?p!;JZB=VqM7q%uJPA-Pq%3Gzw!eN&tS}%F3#J zxy99bqZg?pCa{qI<*WU-4cp7@PypEZm(YMgLqk($x}pC=Uq2^IAuTjCbipJ2yt%f~ z{$$hVcMPIFVP(xPE~F!>F@ePN$QaGthjEwP%z((0l+YK%7LXH&NJt=ZadFXEt$qX4 zB>#$$RJ`ywy{w)>i$xAwV#ZM5Kf69Z2=@32rQk-;Roas`^6Z&xrW9@5()}<00BM) z1R6k4MkOFX*3!}fWFAynuxZw*01^#E_2R~q-Gw?@GKqv&sZx0cH>vElu=kJ?r5$(` zr6R?W$i&1Tz#o zuYuPfKw9!+IEB6bptR|9-n6WMk7L5VpXfyqumr+pYHL3NSn-ddCP(&z}rC!XY=J3EgBu-lrdr$ z9W@n5z+A=HnNNjf>Cbzz5BFVkW(&5mNXy^n!X_oIxJ$`%iYA2KTm_E_0Y7U@_k8yz=UzU(Dia z3fsrTe3quULO);%gFW`$C6xs33R-e2Ug!?FL-*8AyPwbQ8fuM)pI$+x)hr8qnL2KP zesMN%4Zse7><;8)Me7LH@9kODK_`gpBY^V}JZ&)GRK0UDa*bUy!m=R!Q^lFVW* zSGE6+R3+wDSp2VFSyBTo>CW5O%tl7@o4FLugng5o*6V_;5J2LGWM*bIT4SnIBO%I| zvEmL%WfA(%>IOdL9RVF;PoslbDEBk2_h-wyuBjeHbH$58X90h8Yhb+xz|)>|6l!Hh zCZu@3ei}OKDB`Afsn4qwoO_w?HWU-h$FNsfS$PVS?nRQy@8BOAnwm)2*sxwWV>n}E zkdNp1q`^e4fA zd~qYg!^a;3@}Bv3BA{x-{byBEs0NrX{{TO?hTo|H?1VH;SsQa)|ySzL^l(h})oyurEJp_6v=6#s>bi5iB`-5O6ZZX0Vi9dq()5%6|FOhohz zU$IOR2}tKP6yl(G8Vxzdo6s)cu9sVH2>5w`K0?;i&cZtI@YD8^WeK&Z|DW*vOFe;bg0p41JV$2E>W!! zLt00|W0N^Dl~!-_zy~6oa>b7~nm~lGk9@TVv{teVuKWT5iXPAGfznY+1_%}oCjJ_- z4-XHML`#bewr8upD204NeTauMW$Cqo9=~2EBqaqO9-1{jUN1B(kSu&2vMyDtlT!Qj zk35_IV!iF}y3% z5#&S0Vz)kT5Kd=xBi4XdZ<+gnXfJIYK%AAw0=WhD#)`_KukLPc^4-s|lP_bonQ~}b z0sqx(Ai3}q(;Y~7oI1Z!n&-2rUk zOy<&P0nGm*fM=U9rjl@TwKwS=G3+|>H(pcn|Ykwo7$VYSF zIox2ora6sJxevKm?jB5J97yG4gmARoa~k>&t~a^eR+<$~^!L95)Cz(T1l;H9QZTP} z1`~aGpKb&!q634;X=tSI|NGQsRq6pn>n@`z?Dd~7z`BZkT>~g7_1|3D34W8&o7%fP zn30Cvw)1Xj4lHh(E>RnhXlb6N2)wPcT#1vk-Vc10ZqyHg!HU3R&x(65`yD9o#3Cq) z@sGR{L_cjlEs6D2l>6FV!PS2RF-R(a-pFQS;AvI{7z`*Zw&lcqRH}l_Ut&fYTUit= zR29@qVQ7rtR&5HDm-Iz$C0m8+AGq>3;;6UqF@I7{U9bY_L(HTmc1W#Ufuf z0b;pqAmzW5Wx(m>O@GSj&tQUbZ7mxV8oAs58Tl*pXT40y;uHF{AKi@{*YGZ{`TJ%n z+8-M!S8PRb7=8sc=qXeLL=0bFtBlAswfHnF(+GVtV=Y}Uxao@7_Hc~$}5!YXm5Ux&pE5W?qeQ>kJ&)vzgp-ojz ztlN1EVKxtMLT*{Eb#Nuw>o{!W$I0x*ADMyG31sS(!#7IFxNLJ9aC(o3`NEQH9uHje zHTebRwmhU5It!k?x1Sxi%-Y|Tnm+q-v( zZua+4vBWm|E681%y9gtV82xFK48PEBA!ufg9fX-ebC2o}!wx71dm+>lj7kqzS)6pF zzv)HZLqfQH(UQq5xuISCkzB=PU9ubh;eAlYXF}zodG1%kB_&aA2EcXlWGz&D{4hXPrgrUH2lOehckhqtR)81XEHhT< za=Sh`_TqVuw|w8P);KM`!s7DOk?A%#b#!Uonyz_Y@8S5 z?#x+h3BPv0)usCDjBo0k%8`4E;?1{0KP5YEB&hO7c;O7KjpdM8Je4Bst8`clx2-|e zK;;s_v7he_dGP#@34-3}=O%B7oN5gP}4qs~QP^2zM=qxv! zmzRj`;y2?WfY0Nrs&MI{v*+3B%i+y!o<|=(d#zmNaa_#%9y$-%_pBe4wMLHq;{lH% zp?j}n=j^h+Lmf2_h&I&KosLVgOdIm`iqRGPF+)~56!!qyv?fW`W-0v*En+ekd>2PS zG{3PM%ilhY>@6KOQc=7?dqEDuU{UbOwP|G5>q6y*_SR>&$#d)yMJj>i*5C-9JJD-jR-nt0*e4r0C>*2<8~#tQBy-QsVWYALu)LEh{2rq%s?% zpR%S`QpbP~GG*(tFC0)JvREc4k6;h-Le20Hr!`j;!f2T(7HL*oI{2{RP}wBMIJ0Y(Ex##Cl+Rrh*Zq0e~wR643-tJ(8eREOM+=*eILt4vZ%#XtoCs$B1vV|@sxBih(=CX8zRHSj30Dsg*J=e*-X{c`Z#8RH zEhC7S=H#LY*Z2c|SJRIBOp9X~`Xn?%kMBJRhHep9P$o?^q0ySANz4pMgxoDeUbCXX*}0QvjmqQBfRLszof8v63ogvA)81Z(?;6#7 znhBwYR1|aEYBG`t3`sRid@T$*=z)h#?rZe7iHVPwDp^%L!a$~;3)CgvH@rRzQ*ONf zN-$|roPx%_X^Zmb;)#kER5W0^JSk?GhzFK01uf$SThUIqq98_iUUS&2-2W?j{!YA; z^mmseV!URvpf&dk)W=6VQ=t55$q~LOk>PTWM#ri|d600M5iCilf9e|)q#74ZZ-1G1 zZ+tL=+UDODG8w%>w6=+c#iB9yfy^egUwcZPdVtup$z7Y|Sx3pboI;9(q+iZN(t3ML zUAsxPihlMyQq=;kY^*H96W#RpXL8CF7%J@~j36(hkP1%a$!V7FyEh{$%Di*$rbXN5 zEO&Hu%PR&_e+peFmiN*588Z{zO=3J4Phh&^B#}sR@i0jW|0xwxwrAp_g5f-&cgiV) zE1vijRXkWn7Y3e7Z|mr_oxj~GVi#^@eQ!TZ)3fgCe%eu$%f@8N{!m4tGCyO6c|#CK zs2K8L-TkyN&wPB$^b&4&LYZAL*SOzWT;Q_dO1YUDa8S753171DRni50q681{6O=J4 zH{TZGP%-*}tD@-^7vOU#_UWaAx+~J-e}MJPk?Jxh=!Yp_3`^89W04}QRL$ymG!qZ} zux?wo#srJR)RgorK0GWpBBl65m85Py1>G96Uh53c>&}~V;tlYuNN|rn*Q}iumNd`U zF!vt>v-zjD&U+WxI9?4$VH{~kXQiNt;diHWCkd%da%|-UN?Omm>I@D%uIa?WZka2D zhf!qFnsw|WHEzQpG--agKBBWZ)Mlzf-|?5rQRR}-6cuhFpSVm~A3VUT_wzc5({)T> z)4o+No4Hy+$kAj*_`P%uE-bsw%&@q?dxEfVs1S6Qo{>+z7edlUZL3bcfx1KX)&!;G z(wXKBHlu~eYYZg6+lggdO{~Vgf3j7eE(n5MkrvDztvOA122mG%J2(Dn`*6pYu;=j( z#2MD(AUmqfrC62>yW+Av`pH<^qTm4u0`8R6t&p2}tXPpSOJXH3#}~3q6T`o7f+3Lh zud5T*Xk(3gY$a&fn8{qIszS}B@rO7P=@p|thaB#9lKO04qtt+F2&WP?Og;{Lz1id6?Xm7hWpPV zA%l909F?#Go(KxZiTx}*yU?s#X+M(4N(YQmRNAmO`4P)9nUvc}HZUHPXnR`Ex$v95 zq`!8jMlF|VAQvpscm8@q5V`Zn-i`(mt__H;Z~Hp%$?)fol@w++SS?@O!bd!@-nrd7 zqpe?$*!Yc(LFb9NrlJZbnzKmr(lMy+LsDDx) zXP#4WN>!J%p4NB`Uc-;|)c;I$m$xR`%>9~q1q;UXC((Hb-)Nv89*@Y7jz{_Q{iBxH z?CZs)2eNVf>cKa;8Z(^*8r1SrZ{9O9i$2)GXF*>W9asIVczLV~GY(hv3=7?f^2&EP zu-tKS);Akf5||B<4TkOzUt3F^o?ZAA6lVhS$&tZNtOzG9dG4=_E^WdJbs^+psdH83 zH%6Zh7m)p>&kY6>b7Ck44x5bMvC?X>4a^UXL5xvWJ8^QJ@CIf5nGIi$Q4|?xWua>%!I8Be+@$)Kd52J|KcKJsYr+qr(Wn_tCqwv)((;7Z*C*7xWssYGlC&zlNKrnWMYqh(sMVahc`qe zDujm&4YGyZF|!Y_%I{E_;R^U#hBl&{I3u*Ak|cbGtaz1^$%%Nh-&mBW`uvH6Noct1 z$lTF0$DfhbUTMWBBva?_hD=yr+!LY!lhi27=*vH7Y{i;Wh7Gc-Z+oBu(gdrNdU_*W$GaDfUX@r`h+vONhf)`jDR9 z7OeX#YFrWoiah(_2iUL%C1OtGcF`46TV3ZVoGP_FVBare{ON@|!uis4e~)qXs3e%) zeb+_oWeM(2TnOcH@aYzN6XFW-MuaUYJ`OfSx4mG zLYU&X9IfSgo3b$jtVva0V+w-jE@BPorK|%X=Xj3My zB3L=Hg-`j^pERjK#_PwFmX*E|PelppW3Fo?RB{2vq>J7muH_b~Ntt_$ILidvZ|8aN z#Yap-th5O<7jR%Mwp$ZE`PgMi=^{zF^D-1k&4w2!V`Jr{%DnL)2wW{pGrIqUb81S5 zyDS;gxZ}Z}QTquqsvti8p?@Hht&B(E_;VfA=x?y7L?RDv)k?AtJ@;azufe$sT4L|r z%m4A@ ztw=I6AgS@v9~+%Lvo=pWCiYnV)|T#G4OO{ou{-k}6bBy058N3ym%IVLtj`4BzL&ty zZ23%?E+Cm23o)%*yY@u#c}ndU)`KPE{x(g1yA`I)rsizEF97qm`Sn$&(UVb+NF+Mm z89Qu$$g~3nr~8TJZIW73l!rakkMNLhDeT2+;dGVZY5OIzy0b*e$)=H3+8pn@Xo?tZ zjMkuWZHczlBLX=qVD`=^Gv=;If5dufCb-^YB;|v;RPR}tUjws$qtLG4kDuw_*FtOz zNa6@zwz={z0XNq1&F}kk@3}RitsO3G%&XLXQ4}ZNXwU9`Phfb2cB3<8>E%k~l(*+4 zHuQDx(I_PXmv3o*F>B7#zAoNNIG-22G~Q5eRr$b?t9fc>6#VBDw_FiAM^>jUQn88M zW&2DZ=g0RzdNU0AC+}rn0}*94s3>AjY@S`I5J8Fe+B^A}#*OJR+84nphwk(iPL!*c z7%g7W+KaAgMC7LOBA-fA>D;K&G0=SBNKC6URWkw`l0{g;zfVUW+Qbq;A&bXt<3L?{ zIvFSlu#2RwG77OP66&G&CVw$3ZK+E7uJngK7EFo5N?SNls78OcXFYG*-l-ed;lPuy zo@2Iz6YdhE&0f}|)^^n12S!NcD-fAp zs_0M4vEhk1CsvVY0@gSZ8Rr#lcd|YS-kJFMPISK0XRfyLG!_9`+S}Opf=$#zwI*c) zw;`=+g8P_(CJ%^p0>`Aly``je%csR&W?#?99Ae^q3=;IqV@#kLJ6@6tk7-q_cc8?^ zn0DB=Bd|E>4F`QcbvlOLvNgaV3nPF{ClkJASDBBwzwOhC(_K4+(Ct(y%sP=^I2^(1 zjjcMextD*jCF?9nMs;Lp6+*H`nvoA*Vm-xd@rO7 z@9(g?99p|{zN(O_ZJM55P-CmjtDV+pI(IwAdXf*A5f|Nh^ex1zfxHh9 zDc*lZ7>*Ng9GkPA=@*A9+F#ueo`WljwcQDTKrvuwdpd{GWPNz&K54XwuAAHDrz44g zVyHY>niGya@UDgz7ZxR@`$QMA?%^Tnn41$qh_3jKFWEq6m;5QP@>>xU&H&W9=aFS>F0C#W7V>_*5OiB*1J z!?mtpMsXH-F?hfC0c$kDGk>QzI`LJQ(IL1GrS{0ZTK~=HPdq_0?Q5$MPgW8Xe7;7} zsR8wn?h~@r>)}`3KNkgq&&zm<$ne*gY(7(&n#R*w{>|MD7gqNCHlq$y>P^u1;VD9Y zjx?DQEdpQO}Lufx_=8OStq#6F(cBuw&{2Qfj?`!;|m4 zGL2%FzB_aHLsLmUso5T`Miy3Iqw@8>km$a0#gy&}7-0#MogqV#&Ah$jizNp+A>#Wx zU}VnLbr8&f} zIgsf2z~!zJI8={zXiy}@YkNzYC6V#UMlnY!ljU-GVLE>ET5X{YR~GA=#SgwNQ}`xO zV~&}o*wu3N*?q$q+^GJd^;v1@Yi+^J3)8-mE?7Q_l;}#?sPQ7H-;pkE;wQmRY_Xfj zCv}FMO%1Sl$b&vQG#SJLk5T&xnLw`eM|Wwxex2JkDwR4cnYP3lYrB+%jDxGkq1Kfx zE}h7(^od0(-_okDKGVY-^l1^jrEd%TVcKC@G^8O=w~6J)(63u%JEr&3)J<6#MVZw# zE*=~_P9+iZD`pn+p$!4`a4~O>b|Rw#B03_>CDQF=m)*HB9LgCbzwPe5I-D*45W+j> zQ-pmrR%)xi&l&qtIOa3lqM?+U#I)6DPh8l_Pf0HnH9LH|i(dHT7Xc5?v5 z*wT7l$d!4-PfUHzFdkMIO?`XF8n|eU*O&MWDgCy*FxhcJanCVZ50q)3u#v&esDbYx zsUP^5Z$a36J}n=5ki*huY=SgGX0H=vgIQ-WfV0)ri$GvM zf$Bmp!k7>o$w(|(ZYPk8Ve>8%&A9yf(3dA|o(IXbmFumfU^J9Vmf(ui6#m%k5Vn*s zOTd>(2`DI9lA#im-Yc1i2tVAr&}(no2NgUH8cOV*(gn6qGhP28S4Yxrv6<&AhS|Ov z9LRF-q6ov`>NuGzJGAj@HjEh9I?avI2_eoE{yE6l@~|kIV`y*QeEVh1%YeNtRTK6!uBtn1RBam~ zG+NmbSW^st;jll-|7<_$V@^$UEL9*vOyI+A28Y!CYKhL8hlTpo&s2`?36-x2SG;1U z8a9noQD;m>y5Z+ef_}ovz{fN11v=>uFjU=XAttF$^V(@U2M6?xlHs^M)u;h6jioKF zUECCaUx!S{g^u+mLGg^Af&Ok#+Yi;4_;gViKQanPTdPw}09;t5-f*M`Oo5I{UXq?|_yveSH}wPQpie#`<7fm+*_JYrZ@;&1xK)Y3#6!Z%Zin zS$b{1rc!abN=l<0(&xkFOXI&|J^h}4$n|5KXRTH`Hm;KyosyaNDHZCN>_K?O+0S87 zD_A5?y3rntR4fl~3vSztAP#MY+jRB}?{MF;tFX1mSv)za9>7q+c|b`KKTXmf(Qz<6)ZWEtFuVO;MzkT0C|uQuc#3zDl-8Xy7R4y8QG zINH3zgS8YIih6BDu#AR5*57tIQrZDM_qo&JQ~F!J!t)c&Cc~L5;egxn-ByH}dCF&* z5s7b$S_omq(OpOIfjo&`66mJ0+!w?W7bfVJKDCLGAP8Unlq1EU+DO1w`)&S&Da`&Q zezCc5^_tb>{uG>)Z+!c>Eo`B)M<5PTPg^##XlsSy2=mAK$#{kT#0h@6;W*R_XHC@LP8vj%k^H5U_h=}|gAB+cXW;sBWt!laH=;KRW} z&xVis6Kl3(B9FQ-fUx^}OYT~5O-c*7+x#r?cBoT%Q5>@w3h#{G5d*~6`ic+Q?syE2 z+x5%A(J{1iGF!@GGb~)TjsIkSxNSP$X%W7+7ZN#IT2+JhE*4wOQ7GB8_07hj`On~u z@kZ|X>XX25{PdraHx?<9=KdTgQlzU{EUYwJE{G57Esq8wJFsIDKdSRB5 z&SNX=)V+%JACe3mb1m2$h9jzNxSl8=q^neFf^XdU|wDjT-xTlk$rNN-J|iztx_Da;@nJ4xJ_J=WBbv?J`SxivfxnCePeV z6q%)Gnqr5=D9;`{XYqO$Y-?Z;-ckXelfu|>VYM^UM5(VpF>SlYmpxaX(4?(NaxIz> zcXVQ|;a6XkzF`4&!pC|N?h}fm9iY^HsOc;Q8rGy^A_vvi+cUFhOl>LVuDYm8R-f&M z(r6y7;hjWGc)nSS)5o=Q7jE#6G3_W*6JcV4?>)9}Bg)SR$&4{BI}$cp=tJOHnz|P( zB9FN^rmFRNeT{0wrj@>z=yz2Q!U~WTvDqjK!bM zToqcGkHO+E)QMcoqgc6hQ6$t^BC4Z9Qej}UB>8=ZTgF5j+e~%B>d|?1hcffkdBgus zY{+{5>lkHdPT9z$M%dofG-0ONw;`5YVjLaSbJw=}p+U1GzaG~M?)!57_OTBRQjDkL zWCfqXkYx8^lHYHuEAj~8$%1hss^WtL(jzINU#00n2D=KsnGWG7MKI;7s`%Gew#!c~ zU~RXwu!6uI{2aq1SC*8&XG~uoz*^*w?ZPY1Cz5VWTQ5G^GmHz_Wb3%=9Yk}PmkeHpl?rvS9o)j5oPoeLirD)wdEw{D$Ai4I|Qsz&6h`j@8V9DPl#zcD|* z!-TstU9Qw}H5h#8@reXo>|__~YFSmeOVv63-69eKC)+|IG4a>RRhI}Ke$66!@Z{t? zycDw>nmcE%mu=UF>2Rt3iiqA4tc?+(qejUyqHT;&wc^)Fz>pOaygMjz49rJ~A@NvN z;f+KoRx9mpotTFa?0!CREkr9;k;ww?w}W|FTuLX)Mj#PiQ?*C5-*H%r*Ye*)}Lr zH1o{zcax?IANjq{fCc)KAk6Z3%{flYs%aHPia@F6F5Y7;v zk=OrfFd#|l{Fr!4w)ad#dRD0#hl!am>GYl~@y!%tt`t46UnOR5s>d@MCV@6OAhbkt zOuXTNmQ>&(3XC=M4;Y)u9qXKYrzj$mAZF|{**pXy-50u!4I!Jg3v>rkKX%K{plXs5&hwyI;GQoPcs7sY)XJoqhOn@OTC8cRF# z#?{&>pEL49Xc)*v=kB#V?8iXw7MmZcgzlOI(1c@-CSo|_g^8U^q_346sliF@i$fUb zf8iDdGQ`6dpKv{kZ&nOAZ4ER|Hu5p#|N$sH>-N z09@Qw$3SKhhoUonQ+!tVzu_TS+1dGdjJwb{?-qvjsazI}!BhSt)u}Bz0|PRWlh3+m zbvxzG5Z?R^qo6sNH+y@D4E2z`8AGcFvrmh-^Xo0&%|{FD&E-o>NOqn* z9x!r;kh*(6b8kJQ_>_S&S7w*?V~BO3U9%{L42F{W&HzuzE$kH2xysLri;FLWFJPJZ z;`|&=$mt+4Z0q0&_FYO7+5Azt~T60h}enTa_HKkGGI`EsqX>LDpi|x=gOKTH}Aw z`-numLopw?kHyIExs3N^v0Hr{`F)-$RvDF>7%3!Dy zkY>>Um+SVot@3ZEQQjjI{;(pVg(3I*cW|xy%-LEhPb~ZYH*j6o3qgwYt--%5F+*CE)QJ3W0ioo98`H9RA7Tk zZ;ivAswFdm1)#Sau!vY*fE+Ok00>Xd&wqK>Jw4uU0I*7&J(*O>mmPpy7JoXLt0D*H zU5sV$L9_Gn0-lq-FLv7if3yLpBfSAz^)$~XXM37|ud}}&TYkV}Pr`7sKUKm1L+-2G z1cS^{=ZBdtbi}(MbV+MP*=1r@CEN#(2NpRw#?$Q^MYe~DR}$&7II@sm)=y&9s!e+K zd*g2aZ`m7w$c#!z_!1CHsnp+|`gR>2a5IfhbQX`Jin{2z0q&*M^OHMpUVvX}7a(-l zx&aK4fv3_NFt6-0{u@00{ZBu@ROuIMh>N5wvwtYUyy+}Zw4W>9=GB4UUwkm1B?!gL z#cM}dcoH^qd*^a9*)`72>2buhD4 zO_apze!A+-5nI=MH-SFn^gq6zz>Sc7!jh!W1)c>I%tt?Lgs1L{vXl6Yti3_FK4T;0 z5gf(1TocKR#3pd=WG>CP%-NN>rKc zsXTip|2_KY-@zFe8G$`BgK#>3?bbv!|*tL;Rkj-hmWZ z4e~&Gzl!eNaz>h@qdnqZNikw#pnzu0s#2Q$J7};8xOoE}r*>&B`xLVa3#3d;@=_rj zz$M1JAM80fIkorp3a9?_erEmZY}b54?|SwfkKJ00Ws3deNNRTvgrZd1vp!Ka^2YS`o@iuproVj?yyGM*9L&D~wUGaL$m;7}6t89-}y zE-h)m-n`(T4THd1)K3L$VgKx5Ga6`*|Nfr9~7Zg({Q@r7nDeo{vU%U^tvGSOEAoF|PGT!d(Ysg8Ls?msQ_d_?f}_I?3aRYP97J^wkxppw^r2TWJ$i`O?a5R;Mu!>crY zJzk>8Zgu6d{f~+$upi}q_N6rVWAwjI^u;jyAID|j|3yZoJ3Br7^YZ38KK}mu_wW1i zdsZ*Sr+f^D0uxFV724Q_=;92*K|)ROWRVhz{lRo>YL8-(A`%4!h0Th^N^98ZsZ|Ze z-UfZq;>{CUY}lu|*P<4q=mpn9QN|Vs=#qGYS+t$&y*$ePW=f{q1Wqdy_*|ubPx_Ls zyX|v#8}Yl&7ctKFkHqDMy1Kp?)T%_x%pU>eMqqe&97=b$FFn9p*Eco-vL-}K8uf2( zZq1F88)4vLn~i%Bd6x0RB%;y{iQgPfg`XP|mk@l8&YbDO8nWWJlK%0xK6(x5B{V@5 zV8#=XQl3wJP{0ZEN-TL}bwbCa(=>G+9OTXYQWk|OE_-vIeJci-RlwHxE5Cri)cE55 zOc}~n6#_6J!Sj$XG^LusxxHruQ^`ldB!PaA;NT9OGB%X$hfT4J$^oEVkYa1+`ze z&&bx1J%YMd4+Df0n&8?SYMA8&YDs=91dM9=S!kXo`UP@SD^kCx!3vFd1cz8*J5*EO zGfXgvN=khj5Bey|c9E^B8kf}Bor@+B=@okOs-_sFFd{8N75Uqb_T)ew>u(en-nXkG zYm@Ej(|?*PKCY?p#B6+wrT6CkyZS!*+{C)-pmf8~YfYkG5jy7B4Eob_<<>CL7g}0g zUK_tAuc=>8ifADwo^AS;$|MZDC17oaJX|>R!;ahrtOX}7u;@H>>+CKqV4C9=^u#XS zTp6NPTDEd1jD>;k7>U`cJeoN)+|KRORmzGh>;fgYA2XIkTBxjVOOizIW;LHaPH<$U z1Q>RCx;_#}&><-UPZn0nEhm-Z)-;4RSi@#C$~UHhUh zg{@LPvwJXMJ4kZK?M&gS^~~ejQe@bvlv<`>0|}Rtb$o*-a_wEx!Y)TDfJ$hC-nX}% ze>@FmFG4-!;q`+7N0D~O3nY%2p!7!W7qjTtD}`cp?G;a8hZMg=anN9U8nc$#eey*O znbl9B;C3SGKgrZyElfRm$ODbM>^s?@ZwzAw9ts$!H>Oh(_gWHtx~Mi=u92Kp z)}$Cx$-xB^7(X_8^y*QP!tf8k@fubmZ(9+re@qm=whDgN-S~`t&w(Hg;8g_&PE-r5 zydqX*>xI*`q*M}KaO6CKn|FMH3)7gg;us_x1a#I$ZxGge zaQl7gT_C-$c+bAgptt(MYI`x<)J_f$d}l%<+crHou=R7)vS&}+`@Fvu4_puB{^d2z z64?B+=V0~y@mB(t915)v8~hL-&1AOLmbImCcwpHC7SmsDUh(%g2l%W@6^92Jn{d%K zEe+QrGK#5qC$Us@AKJDU0?Y{x{#Z8rQsmfazGmBT^W1FE_+uSc#wn8892c$MPfuy$ z&U7kld4<4K<~U!Bc=%v-q+gPkaRAD3HAk_19xovU-={<$Cv16!?H|KCH;a6x zYT%Q$mq;$ynHXKwvQQCh@Yqg!vT=@@@j6~iW5Z<>*~gD6wxt6*%lw+*qmLPOCl4r| zNwa<4KyzCsdSc77XnVV3F?}0z(2Twlbv?W1d9AnPX!ED+K__`uq%)Y0QOKh3Q%pOUZ(MwX=+k(_+ERFhgPuu&nNDzQ0|w zv~j4CgM%H>TFjxw<%ALy4gMH)tD{PX7RzQ&>6vGKmCWYLZNNReA5|HDrJ7yat)`FRhAS8qi>S2^!bwu@`tBfWiX%~tn^si z^!YmE@pIxsj=I4jMVD#Q>ZGIawBzr>RKo$AfME}lpsYP6^QC3dS9$POSUUkYHvR~B zSNlnj>C%bX0tVu^y%n+hhYVrL$+#=kc6p69_j{fn;c-I;<(LPA^sow73sPknv*4G+ zx-|#Z1f(0MfQE$hv(Q6IFWXe1LKjGy+Yj*3FZ$dNw7q1&0Y^MKj=Ri)Vj0>N4`R*G>1M>-m*OXPvgU)Y_nIHil~?D5nQ+-CM`kcQJ@9kCUR0M!G6mcs zGI>W?K^&CAt?5`AulTLPH_Eubcq=!|z;+2cb*jUl#*z$8g<;(f+QIbOf9%F&Wc3I> zJHn6kt3EMw(92WWbTGJF`!-v3-bl;0^7TbE-QjJUMMAx*b1WsYZf-=8 zL(^SZMdX&4>R!r4X~OM+W@wq?y9-syo!l?yYW`i6F3@V=tc7Z*;qJfuC_9V8iQnFN z3W3*@Cyh^;JE|hj7~zH9=cAfc4-*a!ztFF$j}^zWXAq|Z%cI<8>3LJj_F&$MKO<;- zMN6a4x+=e043?yIT=FVz4MT?Kyv2QEE+o_g*11F@WZjIRxs7d~RgeoeU@5LFTs$Rj5m3!AdMu zo29-#zLbp27u)j4%&D#DSSe{bA74;`?R5qlk~iFbLAJU<%IwZxw)<$9&YuqFYB%Yo zA>rUgf=7CB2zCj9EBSN5E>Pa7Dl&*&afTXt%=9=>&9fke?_m7cgmXP_$*XT|##w1w zD{5KpCYCSlyP2S*xBkO*WLTDAir-U$fQ%GKaT=$yZ+X z5XJoPra*2xC<-*Sm=jB|4$lo$3QnMX4Zqo}UP9fez!0)UejJ{UtG7}l&3>Yk|HP;w zozgXh`eAhC-PdKf)pZ4gqziG>hBn~t>Jh#eLsJC8sS7z1k-a2Wer6*Cuvft@SyJ2~ z{l|qa{55V1mg=x#=l>&s3VQO<0N0d|LaiK<9oQvT;_F;5C!DsH7S!q}b6b8`%&yfn zLDAhFL$6R z&%5+etXvKGN^ir7FI2MO*~x0O`8x1hH?Exz_fJ-!aL+mlSJds@u(L;IWqM`y<^INA zAVoEZI7-lEu{)f+VWe+uVTWoPEtPIg_qJcaX_hwM8S17(L3-FRT`4k<4(&<%qIBuu z(OO(*;Um{ds*H`$TU$J%d}H&u#BTVOZZNqGsbhN?t42`I^ve!pq1CFT0>A3ryM6cr zDdI0n_-T#T-`(#rDzeY(3OVOnGpRc>hOO#?M6B9-vu2cr%Rox69JiXs&V|#-e!R{p z9%8yxf`Q{~S|H-NiSY5oCcIQyCf&0Cn%%(}11a=l$q%SFs4xoUB&jQ!xkq23Gxfyd z0=orIH5OxZ^rELliI1*GvMbrYW&$j&*{Az2Dsgj<;eE45oDd~cy`Q9wMgopl2iJ~S z`C1%fyxguylcOLXE7Dy1T{bt}f6SY_@ zvYufLysl85Tw&#ZQOxC~dv{AGMI?dMq+dw;@Hw{X8e^Svut}zQ=kN|?-ILxe0QsA$ z4v9HScnqdZDWyn1S;q=7Js$wkSu!FDA7RL&xok zn$B?s%NzZ|M_4_h z`j@Q?igYqQdF4_{`h{P4P)_me5nl^l|gh#@!E0P|9{h8Q-El3Gp zR!XS4c^|XL*Ote>*Eg8_Kg_*#R8?EtHmcGkY!Hw}Qc}7kWfMwCcc+AubV*2uDBXf| zcY`zn64G7L-3@nc&pDp+zW0uCzx&_aW2mqPTh^Lu=JR{v!Kd2`2!VVmIWLC@^IH{$ zJ2F+m!GaH~(t($7`OaUH;+cJ2YulN9QUM~DjEa}mfCner|d_&H(`e;mMn%PS}oM@W$1Zs2IMx8pef65{;c)FqH zs`KdS!@f2PO<%pa8T`-33F09_r4JRI%-9)Q9i_z<9E>@OHYxMC{adD4(cMhsIvh{F zs0_wZmhM&{?#ewJ!HX(U5HPu%b4IkQTVk-jjYpVk65omNO$9+4qC zLRWCZCK>L(!xLl!;YPn?%1^ng5QYzt#(2K-&QURL(zlB4xpnBNUBK!wU#QYJ?fk%s z_u#;Q5NA1l0_T=rXWVO`;E9t&d0KirUpX=Zyv8h zf&|Fql*^0C5)FF^-^onRss)j+B%L1r6jX2`8GKxH;Jx2$_VDa<%4u@Cn3edm&p`l) z7%}%)LDh1RuRTq0wji70ejM0&vIKD!t{o$+9!-&81^;L3GrA&z|=R^%z z8xxN5&vgi)tI6Tr-3)=hhjM0;wNzPn&{FZn`e*?GU)ZP#E6VL!d+jfH)r-C1bX_Fs z+z}z}B1`rLA+OAtRI8~a0__r^Sf74vy_JbE8;c=b-hhhXno`JO55|1wcWtJ@o|8$O z5-jiWsQe1wB1}HjzEg!FU!v@T&wa-X>R=eVwaH&-jZhJ#1hmcR_=%yF2TVTOLYTLk zRa7yse9q0`rV{ItpX9CC3PB;_2{s8TdpdrnT3h_m>DkKjPgRm%?sVwZ4$6dAnyYM% zKO)#TmB~AD^#}G{^(@f*90>c?XzT%LGC-kt5Kj37FGpb*L$)n82h&qYIm+z=7`VAq zWEH<0dS6~+*-E_lXujm5AsUko__v=9QFs3uu+*YP+cI4;yzV}M40I)yKam`CwZ7cw zEGwbm^`uHmknzayhfmq5`6M{BOM@%g4Upk$isRxJu1mply1K2IXp?Q{v_HK0iV$0hKPlvONvAqn z9kiSqe&#Eja+Xk!2%{_`E2i)2E2*R{JePb#EtG!tOAdonBUnEx6xq48Q{08DXsug+ z@)1g#>Mzv2*frpL(0G0ndMK!c+9GXjSmq6AuLn`9SNJ^kq^ExMhTr0<0%thUa2zl@ zSW(&SiKoSmX!5;#SuE>ww2&~SU;M%dGv5tAPZN!EV13NBo6IWAD+rfZ^TM7QODaTJ zSKZ)B%x{D3Qrx9gKoB`V@ZpP+u;+Z33ckKCMUbx*G==W$pIC=;t-2WTT0xDZ!-a(n z_$fx^J#1OUcoot3V#Iq)g~}eg=>|o7nhdG!zWVGs3ty}_$11RPQ|gi5eEOsjGG4=9 zrB91NHZ_kd+Hn3MBfKFsq3sB_?M8cN4RwN--Yxy(G-}sN--TC?TbGtb4?daVC6jQ@ zI2SG4i~cjJol!7SDS(dL=~`3mMgMAMa6#H9mZ$@W$({pSIA~@Z2iICyd{T zxh@>2RTpX*oDC+XdrLN|+juDZv!w!9g`1zfper6oVPV90-M_m!H$}G2@i?MN<~{k{ zhfHi|dY}M8lJ9BkooQvU9~sW(c0C(=xP*iNSHE#W5H~K6xxyl?S%u=}HJ%a?dm2)2 z|L~E{9l>Yfnon6=Kx1{P80~b07?IQe$LnweSrf;v=D6D5Z`iO?h<8_DlSBg34 z>J6?WFYEo%dD&L&gZEuC7^7k=>`QDM>Fn`@V7u6*shin^2F>9H6vtz)yR^?Pw>a&7 zW_n8ta91XoM_3G|HW9y_?&t{!jXL+l{fWW4G-r)vPsWlviH=t}N*`P?Z3-cBX0Zr7 zm=Eg~y)WsK)^~gkanK=#cUzhNxWU~|vD+OHi2l=LJ36!C$TYIxy6~VK-Z+&|q@9>d zYdUq!x}2Wkw@hGW7L*W+io|*xB2PN(s9PG$68jTr(6djsTS#y8uN*DsZ6)`{kEpYy zBjR&;L(QU!pasN}gm2RcSQ|x}Q`zFi6(tV2EGKCSQU$SgktG(2qT{&j8SxPDNI9PF z+I1+`?WH~^9+mVdOs=03o!MBAUY@AiIGKHPekA6nUYD^m@y2ZWweLc+3Wenrrynnu zI9aOvzEY3R1H8P-5FN7nLW>49Tp89HL{3&X_S{vA8a0%JS1!E^X~^)KF;9=Rx<&f~ z7BaIJ4Al)@Z8j-%I~eu>KbF!kiG6S4t9q%)`9e3FSB3I1XE-eYq<26+-W>{4UCp(CW`pH|Q zj~p`gG`1*v%BX0pzz*B)lk zTPyTee;?Ai?w@iNaaw*~cd{SKygy~aZxTXg7&<~4`z9>9S$^?cR5qIIsA&m*`F;sr zb5D$=9>r%S&TcHs_(3=o%1Rk2_0iE$)+oAZw@X014K~z8;}Q^(P`;^XtYcUh)ZtkE zD$-heUG!^t@VW}^pohLM*dy$btWZr?8bDPb(Wp51N~3pzI4-J)y?q4=AL$bsquOF6 z>r+ER6R$pIxmy)%D#)FhCfV5V7&yuZAI8glOc^i!@<=&v>o#ohfns*j-JG)|r2gaM z!Up)YtP+=244Rsdc6-ET=ls8sMtope#m>$?Qmm`XL>HGsyBV@V+T+avZN)u-iU*PI zRh{U4CiN$u^h<-ZE`4FG7QQaZjpJi-Q!CxVFF4mT&NV`gnq;jf{@^U7>b!X-pB48@ zXAE=0$LQ3@qRkY&97AUuQ|rFfEXfz%M(kw7@Q#sqw9>cv%_1ryo?v#hjb6Rtw(Nj+ z)GHX!Yv^hPq$nUoWS2*ZQ(ijP}GMTHox!xe1t7IeN45;Z&o#3 zZ&?tlDeMQtU4wsrB&L=t9&ykAb#JhQQRpvsgBz2x~_SCbT^u_*6#0$tQM1w+qKlKg}h1*KJ_h}8^Qe;(L^dyWd#}vaodWr0d+ODz-S>Df_mI(W$S?Y^XP!NcDY(G0y?XX!FO@KgSo_aR%bfGYT?l(V(h`a6 z{qQeH38!L{T!+q!GP6Z;1B@l>r+3I@XCj4P81#l*1sS9Ebi!|tzVxTD9&Wjtl%0~j z#QR~=+Gh*j$7lJ$L#j;${in5G@7~MNgi!xsWMfTAPann4=H{ucd`^)x>480h>J0N8 z=FWI0SN$qfy7l?)Un~$c58x`NO(V5joA;P)f0sf&*etdpfU^0cOFij6{1fO+fTJPZ zY0}s?`*wOp!aOUR9{WDFzP**;^KVvhv{Iq_E8_6tysb|C=F&%Ff@6=iF3i817wGB| zV%VBTe`nQfeBiy@<6%|wc>k70+6)t(OikV&bK^njzAzTYj{yDA7nO9SF`r9r zJE{;d={kz%e-Kr5P)*_|GBnJqMWB$_!(+Vd5{09!X%+yXG8KFE^1aa|3NCloG5ViU zDO(+Xv>jgzgR=*3gKoUFk$uVZL2vC-9XIsq7AC~ZI6>b6Ycs?-}}dOUATu@NgA zlvn9PYdT}!qASgD+gj4T8UF&dPvx#{%6F>K_t8q%(#s+!n_AsZJU6GjXqvFD>g}4U zf&^zR6sj`o#}FBl!sb3uJrZP`UOqyr;yl@iIVT!vm$hUD0UD>i(b1VvoU8$tR< zO)spq#p57&mkev3zH{rdYLtnKj53*aTB>qgpM)`H0+`ztPs&;Iin$wZ5cPhxHclL9 zXf8}~G1BFHAA1~jU0}g4c^1!$eiTbTUYL|CS4%TLrv16cR;LCPu7mY?gOXbWi}<&9 zeba>K_IvRY6;^^Y80MjA)LS<6-*J}l8Ky%IyMj@86Mk0Nux)265xC}`)&2Yg;X#X3 z#r~*Mh-dD&FCv3v|5cn=qJ8zHx(stBS$udPJ9o69>BC;cw9hx7_RriWo^gV9V3!ts9da%lVY@zD6{ad~;Bv(%^oPY+EDwEUHul@-B>$5RDG@ z?}s;%?h<8hUZbrlb2{5l-h&X)=E!_R5-vZnzaaVES4l}+f97r2tC2&|BxRN2Jp%Up zlck(BL|?pf%P}__c)-|6q+Gm~seKpok-Em|micG&<*GyUo}tQO&DHcIv3Dc2B)>CC zg0#JoYE#JQyS=Y5M9-FIjMr~Do$odyUUR9w`OTfeec|rTA5JC|4!A#GfEP@TV)ny4 z<u{6Wl8U8eu;--?nR{5?z_l2doO4K+UI88cq#XNMz!66-P+=D5@KK1Lzme; zaqC3#f-C2|gcH+t&ZakvbJ{rY?~<~#1MDmtt)I1@ZcR;U=*MxtA+4IX?O-|abag&( zcBZ*xIGfzqtZKJlYZ$}3fa))v^1Ep;ux7EUF4*jI`t|{5E!bnwWh8snUU&5VjA(O9 zwdi@5-p+|$8b`73i>TE#@%o)aPsb>d;G|@tE z%`(Hm?)gT~sOI~^@{-mCc6-4(iPRns-EhqII>QqdbsaG5RK}ip5+6==)tcjV-zD2R zJ2{YlBEoE|_^^b8{CRLpHa@b*a;b-`Hi5qC4ZBXQ(B_F^9(t-Qvw~b^2iE&2ZNZvK z=Lc_#62kYX3$YH`;JH`St!^TL|ItW{nWW(5XOdXfB-REg z8mYesJ3NyjYfrt9FHDQ}>_*bpt>~eg01Kkq^Hp}3$8iqD1y*T~6W&2%ho0I9#Hm`E z?OHH8_a^+EedOu$@gK#Pgr2cIS|Lb6@1WNd@dgViLXSu~kGTdlS-Z=&E=H$$(zFE96kM?uV7 zZ&ij0fn+>J8JmWbl(YjCssST{(_M`hX0{9sLFDD-HLB`&ans5F$jzSwH@kzNJZ*CTBwN+*vp6BYOh`e&u|Zsg_X+q;Hv-2&UTLr$fK@I zp`Z^jT-}@{vf4DWvC8+#Jti`%Km^n47$jj~XMfy7zPDxA`W|7T#Nu($w;4=U2MyP@ z=YoR^9&F~d3a^>ht|@zQ=RBsr$=hR0V@7So=V`Iem7t)zpKoPCcNtRlNk$%X9bAyb zwies&@b&E_b*6lKQ1tOrow$_9r|ElC-0ML~SF7C|)zJj5CPVnfsjeO7p6t(7j(J}z zW!lfvZEWr7k8z{t-z8xVq;0HoR5>qpEIlo}aw#p2_bKW^aD)70Ks|zzeW7-q+nkqL zng>T>Lv34gPp{DHEXHC-7>_Rf8r{dGcqm6_9AWHqRkE=T&&e_7Ed!a@lUt@Iw;1wR zh^M5A&z*MtfHgNC0u?RoGH?kz2R56f1|6uC6*ej=Dr&$NGlAPW9PsD#KvMkq`EtZ) zEwu&U&#q5ZGR(QGkq`r#EfaP6Cxyrdzx`l4GB6P9u4Fpxi;qY{%Yaej%Gs z{EPTS>cSMM#r?_Hh;W2SH;%)>L?Cga;$H&rIsNpTyx~VM(<&ielW+7)Zl_J?=mGYH&K}mO4 z2bytQ+*m}h$5BW2s7<5+o`z2OivG~fl)++Mp$kY!hG98c>V$3xU95%~hj!sT~ z1oK^8t?d%LC>a0o1A~Bo0C9SFV4}RFa;&dcS z;W+~d?ZmL$Z~aDV!_7xf+;sMQ&ZCmE&cUuT$UbtS>5eaDa~-{znYqS}2`?j?q<#8X zb!YP>S7+0E7Gl(f4}wia>pz>A$1IzCn)}6C#_9-DcDE^FCo34>vwe3dn4circD>DY z(|cO{Ed}NVI@yp_be$0)*lIr@KnoYCoTn7oQkCj;t8TJ-13Y%4?+ZhWhRrz2cn4rX z5T|6UhMnlZK@^zC;+44rf8M~Lpcdf9DBtYqF*)v6TgwYvI%%q(@I~TJYuDI(L7&Ua z%4%(IhmL91z02);`p8=V^5~I_|K_mzuM#@ z4K>O1sdm>I!@%OwJZp}zwYS%aL)&K=5*unNykZXysiDQ)^}&a^$dv{^k??d@-Vz4H`lybff14#C1DaBGDHUcjnEcA-49oh0L7ZmVY8d> z;lqc4VPVl%6sL3`*3)VVWc~b?EG*FTc!GhJ!nat5gn^1ClY)~8Zj?#dR)Ak5URKdU z7z{u$mw*{9tNp8kX~~yAz9lYeF7C_0v3M9*Kxd^oFBpc*chW&zQVZ}N{YC!3Zr=R} zV|#ns2ul|0W)1k?8+`vn%|^7_pZpw58)1D}IPuO1FXiOAyy1|3k)soGNSbU0(eOGL zgW)PBEPM~-dQri-QfNvVApqO$-ive;+0vwL)JM~JQ1(<{-1}+RAho@&y$UM)U!T== z`A)z`wiy2j$##0!v5C-Rlc%iBm46`@$0b@sPE>`o{DBT>zpbhnLX_%5DtJ=zE*vw3 zY@ulEDPQExScU{9Z(!5m&!0b8tmpVa9uGiLs;d0KdQxRM=>wj_cM*X>0*LLXLs_!ojjsjB*Ait=j8SI;VNI)Pg zsm4D?d`IOkH2rw~?vNW%_8jA``Wn4YIzLSUAHULZ=;mlZs4QNZ^%~5>z_-^>}ZP_rue0)c>5v?pNSUD)*eT zs0sQe(%JvGP6^m`YLmGc402}BB~0==U63Z!jJB)V*BMBrimUPGqt#Uu`&w`>l{kQl zz!Zc`5DBFdAf8%2O*||xQNe{ceO}=s9m5p5CQqz>j@ZTR>iVH#|XPW+erkIpPPMUO^3mL`Uy9&~&58!2;LT;|wv+WqXKxLVZirrSwE7U} ztdD(HM}$+ob63}HYlGZO?#$NX%gV|=W;O6*eC~c;V)??pGnBvvgpDWjIlv5>mx0A& zD~QT4A~6io(=#)B3JB8yV20{01Dk%}U*Ggm6f8Z)EOG@`z{fTM{m@~1LjJ8P$A-(% zs!T2VpUDOS*u%j<4P&?c4nBpj3gcO$gCrB{J6d{_;=XGVCReNW?p&ln{RI>B_!|7K z0r8#-iu~dMsrvoxnt2xEQ+fWI)`y|a9zs6Fre}s{bEaJ@hat@Z#W9b5z*Gr0mkyKj zDcv(T@vi9w%K0i2Ko^959OUvlJiRl;%;acTPAFR4o8q`Prw%#(z48^-^`r-mNq{6DgzqhxsSx`4R1_Tuugb!JBE zw2;>49j2(!B8aAvMm#!1o!D5VrK0*aKd%dR20v+bw>$bF?$lJ>mEi5c9wmAd^b&?fX5Km#8Ps2 z?rTDMQ`OcHn1bi`z*%1zeEx74T{KI&{gJVAt|n7ufjj?>0@7K8hfj)tTaW%A64EH| zKYbYr6@%$!HYR!?Zez!-8@fo{izDH;c9*p}Co9)em3hlv<$R0h&jt)eubIzpx|-DP zIuy<36|P=S6*h4;-A)h%a38mn@lG{|+)c|Po^yGP3RpB=`abnid;9k7`fzpxal5k) z6i>U^^JZaf4T*t)0VWdxS{9`>bKDBj(uTL{B=Qpc@c8kr1~ZeB>Qy2Pn}K}-^0LsV zMC8qjbe$Zb(||m&l>+}|oXy97T6Cx_cXMH3{|itLnwXeus%_+|6cQ>ZDvth^4odk- zkudP@Xybe7Ms$6ujI~)dq0r!VdM_bLMEsoOL$&T(Z{{8IWu-xZf|+yfpFi0Ki!#}o zBQZ{iYlBeQ61!J05$9T~6Mf`=6reUt@wAMLz&CGWbPRotlpN@WdYCd;UhE)pSz@*< zE<=zTqjPq>zbv)|^fnW5zm4)bIs{X*;c8#}`dA@Rozot3`3hJkeCNIHwEOWzs(=|j z`rXBVmk~=b*Z`Il0nuLq#~UAAuN&nt21|kB##2IA%pDp&^TO(n#IkL$9Cg90e7DAn zGmLv<9&?&U&FD0`o*13#NJ=8Zwwqhn0`y=-qJW#QwY4=5iYY8)N^xF7fr^XgQEOa8 z3!#UJXN2SSO-&Jk!Lq4@usDMIENl-s`?VM2oGXg#558|JEn-QvkzZAwy4?}y1@$YY zh^$QuE$RhoNdD<3(LT-(U4g*N$iyU%y2Eh$NC^!sSRp(+eU+XKWb@>(sq+CyuQEJrBt;zKC}Oj(a8JrCwr9f(yzm#CccO} zPg_)^@VU-N97q`>E1k?+N-jY$*^t8}Y>`S}0&f63*4Yw&pQD6@-}lvAfo(a{7EHFI zqoXrXZW>X*4(yHFJ3G@oJ*@E3_4-^<%gsmW8P!Ve0iDc5qg!>~FPv#A*C^P=0w_g4 zpxcFPiAqR^h-gU^Hyj3QpsIs!jN5f@wsuQ#UEu4vt{Ht@al7oKXWWrUX!{Y|#{c-H zrw4R=)8U24*w>9zL4lkP+=jls4leiGxdGIE6xA0?uPgIV2H4w4bv5fTfo&WjtdiH`H%CY&M+mixW1Vm}7&&N&=h zT#>L;$iY>Lf5(3FWpQzl$LqF1;{h+Tk7K3zo2wff2XK`31>L**%_0cCk(8BH$qv=T z99m`u^DD_PS8*;8w6;iH_CS@Jc~!pS^f;+-qS`vu(aZx;AfO?@ca#6mQklL40tiC2 zub<Ir zaOKG7m4&QdEk_9ba?gAG(33@yi-<9Ry|C1pJ#pzTH&)n+9q?ZTp@f|HQtRkr{-Hs{ z)aLQ~11EVA2*cBD`C*i|C{o|T;q=Qeo4$Au8uVc~9dGGilB5(+!?{76%FCBu{hY0L zTKx5kD)DL<1b?7y@9aSE@MyBdNK{o-C#_RtVTa|IlyKH92#BhBoh?h^fC{u+e(~|~ zd}7CDINp3iBU#8}LCxvUUXp+>pUziW#3p4^_PjfS)-oslC+3S(`yW4(uZ%v-6vGUh zoXWq~^(u~XAE^$`lC+-xrS}3FPlpeH>r8ZpEly-WQ+9D zIPRNkqj@GL%g@*Pqodzi|DZP33Dyd*&gR=UGxBBcsgq4&s7cKQQ(W7~$RjX`>;o+t zA=F032tH_G28IfVhY>z``V{$ObF|H(xDj#1J+j5GH}+ZYirB{@u;T}307MXiPBU)t z=1tIawKXieh|^raK&LC5#CSM~hKA-bn^7P-Ua&2s;vDeb7q_?3$;imST=N24cNV{x zmj^Tg)mBGBT)d~5H^`3l*H_IfP>Q%|2(-|g5u#_yHX&I!T%hQmkyMcCX=6}3eMv&> zekx08XE5sxvl*Z6BGHOnW(6sh+}>rH1E5~eX&7s zxb(Q$Z^J}X7ab5dBh~?t5(LgTw9}x~j7#>w&b%y0_)E!2;Femkp>P5*E}1ZOCt zi7!(0+}n7hlej-y+RF#r8k&Z45r@$`DoDSs8zV*lPL7})EEs0LA+bj@4+zM?#p?%pE)t^W-3VM*V zB3~Mm#c$f56jWt3-E)gB#-8A_jxQH=bdIAe_&W{n?>qjP7YIvs8WKG^K8Au*&q|O7 zI898-kwKJY|EtD)qYPjcn3@ys(IY<)NN8}jJNq~K_V?x@8vFlnr~7KK** zG!(t^t8=JFO3%L;gRozcF3~P(yiNUE8r=3bWDPDpn#NYwv~#X4zl6Z8c(=t(Afv>* z`$@$dKThQ-XXlx2{!urNu?xE9yOz~(R<#N~V!5y#--Ir&)@l3^7o`W5`zdx>(^EO0 z1G{oD>RGv8Bs1!3dtB+|O=GNpAxdekp84(Q<6oVH)c*Ia&>N@t(irqaZR<;-IUo*E zO2B9PFW>e2B7WwsX^4o~wVFFAn&KdqCRyCCF<;QFLHE=wb(z)aMDB5!Bmq|v5|Q<9 zk4JDvJwCAgwyP1);YB3im*^j`G2*rPqm`T*+C=130Ac6*gtbyh_?{6x^&L`PA9ISF zakz=1{POju6dGrA8Q-Y>es)6{-ZHk>kVvJA#3f7rCyG-Pu5GTw!Ac>I*d~x*JEfOQ zblTCCbp2zxx}vc;E^3!8^p#Y5WqkIshDotHF{71XaaWt@4lk&yINP<8?-@jF6dMw! z$XCtFR-=|)$5*MJSX++m#?FKqv!!s2$^{PK*9yYI;n9?642uJTe^yOhF!J)|j6q7|iZZskEt;LnET5RxR<=MGe}}bq>-tYH;PK;p;Aa2( z=<_pU3J4^&9RhC&=1G_ng%dsX23lK*!R+t6Pp+Pv$Soy>_BAt;lA2nXiPgwhS^J_G z1sezLc80S`M+dk-eAm-FBKLhC$9yjqcjohbHa*jUIUY*1ik9k5e0!vxiY+*U49~Wo z#4RGT4Mg~{3n18**4cKRMHu56#o+EzM5*?xr^gfR|| zSz~`9dDKf{qtLrOu!f9>TUN;b7;&NfP&>+((MOE}YXafzt2f>8M>&O|1%p;X=P^wzTSnMY27W*M=i z+z$ti-*tuksJj)E4^-|2KR$txH*}9BI`~clp7hgTNo;fjs=2kyG3n3Wg_>6E`Sb_aVrkff9a)Ob{mM; zTTb5-blGlZN89echn8fxn0VGsPLnScoi=LOAM<0c#HG!y@o((dPqLbL1(yvtJ|_2Z zeRcCOzXL5P*f92S@^fS-su!v%L*Y+gb65l4jPkvEw74&!B1+)f=-&oH>qE=nv?p_b z@Q{(AoQCHJo6L!9QQyht$YgG33akT^zcik{^`933c2v%yx&}*d(D{&#!oBw@vgRWrujy#D$L zls&?{Ji`Bn!RADoj*P>xt)U_&&n*sKa!`O~1oPvJzparV5L^Tp7q0tB;e0NH@F8TTrYAr){DXkMDTx27t9+Ovp^|g3PbeM z{sw$I=aZAB)A3JAq38h*oLQF=N{tME|#j{A!eKJ+{^^f zA8Q`3iixH#qq*#eO_2S)#OFnU+J;zDQxnWI!wv()=BWUa7WtQl#2gUC>-RSyQavezs-z~Q;Xp?}!?rOWH9VT)OWJ!6LhHOxC&5EGIv9YVu{ zv=w{bkUwfetI`hqXDJELTqUc8HlLPT`eV;+?xrbA-T-AdyM= zn={^D=N$z%>XZqk1@q+f;oAdpB+ukKwJx({813IQt1I7%QtLWFRn||2Kri0YUxLec) zrllY+B=Z_h1jYhnW2)kfFGvlCA@t^SpiGAIm#avgUVndojl)(9pRznh+ef-47IgXb znfBX`X~<7B)Be zdtTlb%ACu4@{I8G^Vue;6`2G5P~QsJ0^yXQ{D?P;RsA{i*Fw)rf7WqOUGV0KQ#>-4 z$yq*aRr$Qw72z)~-{!8bP9(NUT)A|cRUID+4oq#%ey{L#Hr`iS9L4U9n4%r5byX+= zy4podj7$_#vO;S3UZf!^TL?CGefTo=tDq(&QhWc>yEJKQ@Vk>Hh42J*>g{xEskYUn zqGi`JS0_Q4cblvRsbc#U<`%QHuB6!pn&~ffw)&k?#e}7&=e3zTc>F(%MqX_>w%IhM zPbxqr&;^2@XqH{g^tuY!MVSsUWy`Lr7pL7s_D(Opch_xq8^4EN)~QM1DC*fVc^#y8 zivDcjJll6aWjEpPp6d!9xR&O$J0l`4?ysT1-zg}E%lfr7Wr(dr^%c|vW&yOgw^tlv zl&@Y+lO>x>@9PGF!Ih;jf{anjfa?`8G4UaPI8>>O-b=68Ag9k;AYFkP?p1nje>zfl zj=|>^%P0}@#J~24Iiaj2s?Z2?J-I=IvqKyrq7Yrri_F1$sokhaz~Tj9rAYSn_TY5b zV_4<5qfww%`l3*|23A^h0JYgA;5cUf=ED5vR}_%gOCK@1Jy{N-#veL7ghV4Ep1wi^ za|l9ryj6^@Be^m~vEF3Umv5^nacX^xs(;;TdN3%4P`F0HxgkKj3xFe6OMm}ESkk6O z!ZbMSQp4#ig$ce}$GSaV#w181;xPNj?`Sajtm*tkp>_!yheYTtkB1?du^VxUyyU}JOs8kqM0D)HB>tUSfcww|86 z5#NAJF{7VB1@%iDx$(d^44k8T?& zug`KlS%MueX#>+zksote&uJlIw6#^P0aWtsnw-f} zJTKo=m<_e+@p`0xm$tUHt`#zH)2@3LIXzs=P(|4zMw3#5oSu;}$~(2vA^7#{*KTq{ z5HD}DIYOrdDzzXO5_WPQP3YW-SYIvybsqIA#i=#=p$y@faZbW8K4lgF$h)Mb&F~8( z(x2VFrlMBqA9(h6=c1tai49KY1<;C^a~5!HG1u3ZUuU0^pfDWh=s*CBjy3=x*np~4 z<;cezc9%mV;73F?&qw{zXd9(thd~bhtKT)-DRkj2sQH56)$da=O@OG70RUFDX3s{; zR)q#fc{z^p_>`1z^U=IT5T41#bKb{3pf^)vd)SUm8_H8Fc<~Eod!`mg)E~Vi(YlEa z&WvK6Cgu**y^XT;Y-~!<%YxFj!MP4Nk|4-Pc6OLJ^PY)abRXr#bOQp;QWsSOwT;M zMHDCuI(1(DhZQlD@rA-)n1OO9MP7-0%#5zcT zawT^E?CtG|W?%&|_5>q1>UI?5j-Z}8DV^O-^T=bL(`rh|q|4*xWE{qeF-|)L*usa1 zhzRt}AXfl4C-fD#Eq=iNbqq@Q#*WFz#Hcv5vQR(;CmuGts!2eCX5P^q>ryC7wguD5`gx6sPie;(e8SShyC-l&L`r7>v4ds{`I5k` zb9X2E41;`6Sh+ypMLU|Zo`*m&eNIxE%n%cl1)Ob^ORlL87Lo(+9hAWuX<1Q-jD*@H@qdC-#~>y-6z z*<)THAcd-=BD-rhxf1}4F81b#nuaE?@`$#KO{_egf;@)^sxl8MMW7+DZYFR$SX1oSnP3`9QIVqk}GCegtw~V#v?b%q&MkfyeMvqG1f?b0>&+ zceCfU+<~tPH8P^AbKIei{TEIGut@=F?YERPwBK!$JesfCi(bV&@2+?nLhECkj>#8U zIFYB!01pqpFi~pA#t!QUdNS}g(DEcoiEs|HU`6;#sA62Yu2AHnD!^^yF=(gka2>?r zVaeRzw}m1x=(Zv2hB~C_q^YrxGldxq+Z9N*4P;O) zS^$&)OkmJxv@bo;;KD9=bF4_fPt5(680Lfs>WDC$->!+gsv5Yzaahk011zy!PUyyu zHpTfxOvp-@ao_Frp4Z)HkF$-{=94kabI?DG5Xm4zhF0wZk8f7kCJd?gJTCBE!(R8& z$;tKIqWNZrDrGAH9Eqs1HNEMr84^RoOf~+T`PUd#qiEaIe|*&F3H~V?L#tvv^>R3P z`1pEEh#4|sbzEO^VSr>^z$^&s=D?Y>|Gg+Hute&E=;`MKuW{5}T_BToz(DWwmBa0| z3s@}FBFf9l(eG{Ic#H0%W%&Y_*H^_7_0kQ4(mS4&^r?mZ|2gJBrx(BDPw*RK>wE|-rgn55>IdlDNQhP z6gIU7JlsUN*og?|d6>Q@08-IOpRwhv?bF7D5rnWBoUh8I{dj)9j!^mFPrsC>?hI{I zpty|0QFlte=w8C=4Zf%L629ft=k5ndoECU6ID2G7NvTjnIVQy9MYc>Ljjsz-iC5`1 zv@vUc(~h7kJnyrDqO|7a!q4&BOH~W?r7FLTlIInJk0>@s@bQAm#3dZVhDe2)~KtRs}&KlMlL7`_XhqF2Pn z46!-9KOBj5hysKia10oz0kjN*40%Dh4A5@_BR$D$xXkAM+rMkH(Z<4B>Wg|HGP~Rl3G6_+LMZaFXxO-}x|0 zXcl$dl!*wxj+rE5L7u@?lPIX3ROe;xnVy~pA&x@ro?$)!iF)}x>?j&CCmIm39 zN6Tk-?PV`}BfTg)sO5x8OwG-`>9exBCFR64^27@x3tvU&<(O+=(DdB>WdHdwB__T9 zdsaRiPNuAR@F6vYOtRtA{1gf%0fhLC4Z9gNL~l+K-*1zW6HYo2X1?3}5XmFaB%Lvx zl&$Yy2KgwY_FTT*odns$c_5$0GPh+;%2>vqVDfqJl1`9UWn=KK_9XQ79^vaXC#;=obYfca%g?@y!79V?GtZy2T!KUX?5OQ4j7MaaK1?X zl0C@hHPe1WSh+y%6LjhXxyfL&+I!%};bVnitbqvWs3}NJ)Z)S%;fWx5|f{`$SS{I`ukg97@($KkPI#GEy|QjMlCAZOo%N?+Uk7 zWd50Ba~>GLJhMr)C1RKNG15eaO-FsoqEjO2eVsPmUHjHtQKU^ESJi~L84#M6>^8*}T|*tSy2pAMq{^v2q|SuoCfYr$%i_fy zdJ^}ALFh3$5+~OA%PsfI(SJ(s>2@I77y=QvB-UEU43D86x;A-r=0@XP(drOjw`l$Fh5wqx|61zR zlt())U3QaI_&x0ml?$YucOp%nAvwERL^~q}{~TrVcz*lONwlG{1Lst8#>6Qlrq}OW z5M~MQafioP3Ash9cnH1w^y4imE2u??S?q(%Saf z=$k^?1iG#7sNDpLNHy7^6I}V3QE#5V>*Zzg@$w?QL2_`t3#A>wuHBsrvsp9i_dG^D zWW7Z}*nFoRL*l&MfX+llF}TLLqFHe3NEsu2ATQM;O3_sN$a{0Q@W5^iEkCRps+go6 z^=1fuP4UwBo3N_!rDyuK@1GJgJsxZ+Hn=I6|G&A80l%ioTp%3YI_lR5o5y>sQ~ zW45Z;~l)G$1KZ)iW*6+(B&4%0lWCw zTfZyQrf)GFuIj$#wc)p(W{H>{lvgL~y$4h1rxKH~3_~Of*vW>P;)H^3l&&ETA8vz7 z%g4;oq@*%braX_{eex-Nt19XEnz_q;h-1yPZX(BgL9uag_GL1bU6E*ZiPb;Loq)mi z4he+FP0lg&T>SI%c?+-}^q*HA{QvtK(jc6GZS;Vmw4ws4pzw)L znU9!+1n}B2WpRJ}PB`Jg{@+j;c!qz!j@Kdot8n<&9z(x-P{Ojhy}kfO zzz`kR4eCn2K>7fa$4hHI`-6#_?=DwQsp1cdMRW@%I16~29aPEv9~uaVwLu4& zHozPhOXSPfuT;OOmXn7D8(KJ4f`mRMpWV_HoB7gP794ZT-}+CWEwWVS-!Fb9@nr)l z#Nk_QMLBJbpg1}@)_C6V<*62j1J`0+xj`nFmnW|f zZ6wJ=p(b~21R!PG*xHH!@;!Rh6PPC+%_QI<$*-+Cw=?G5`Q`{e zKX|PM=b?p~M^!=;JR3VZ7?_xtwL(KfLz~3u!BYRlrmU1CWwnO}XmRh)lZZtr;yBk* zEw{$Mrphbt?H`V-zraDCgM_~zQIR-x&F(av z6TYgNs@|P{7BC6J09|4k{Hb}j@kt|N;adta zYOqTP{xdG*Pbf=J>yaD?fEjF$*X3&qVYIPr!P0OLm!Q8s_@%~aFU7LysC+tpW~JZK%{i(rmZiT z_4cl#SC)N$QG2|2r9D>7r+3AFx6C);2CoMNW#LnwlxrMg8N$agi4#30X&TE1)GNYo zCjCQQ?)PnP>COh`1(wFBE<$%;U(M*->{yL*Cv3RIGygN4PcInCr{0hfQTNT_da?y@ zrwAI2#+6Ps(qIxDZ^>AYnhkmMbP_snC7+N)fX(#nPzsHcB~Af4=`xvq>KOv1*_p7v zK|%n8uJcx_n!2^*7{kR*yXVI+^|5T}MNI;Z!5abs0))a_&~*n3ZCgR}CkMKgoF*pT zHH?r!WZw)LV7b9qHYz74h3f@%M*Rpuf3TINmVR}*ZXoi;t$K#ubG0m7Q)w53`jvt@ zxMBgn25{i{H(lZ*sAw9Ja@-^ao~uqac2=Sqz7~2f31KA&>ntxJ!B(|2BZ7bdm_#g#rbtca^pnKl3M4r|@|Wh7;tNZ~cmA60@&P+L zQ8-pU`#BJrAHs?Pm}E1z=zfX%wj%qzvsR={6t)!WT(Chw97k^9)%^*{vu|`)7(RNW z2|!QXUCpfq0b8vGv8$xgB%z0Rgh;%@VxHNH0|bX8N(py?Tf@^7@ZW2E!CrB@G4dBv zY2ddjX_(?LPyaTb@4p!Pj2#+L(q=x&^%tzEM9T9YV`!IRv6UV4T9NrC-95BK5iWc;0P&^KHkDr)mX{X3meWHP{8!=g8A#`7 ztq45t?R_2M4R{Cg&2mdnOk(;GTfU_skeoAmsG$N!!a6EBjsHWh*Nv>>a}o+4cD+LfT()Xd|-hk3ECbPIjA~K$per zvt_L*Ki4?4Qy7@R%kDZYSsr}tTAADN_H$kWi_vn`OCkXY$>|^cJx9NLFHVmUefKLZ z+&P%aYPiPm!&FOwpu=6>j0;;}q^u;Jk|}$Y^Cme*PXCyZvU>6j_krVpA*S^3>d_<( zZ#%W-nc}@?;A8B$8_-n^%tY&l@0gGl4ipNJ+MalYKz}nIA>D!`maq%A@hk_Z6!vXp z?ewuD_){;27{rU}#R;o?s}(uNc>ktH-1G}Y>$y1WJxZe7o$P%IPEq*fkG;=48cTe6 z#^p5QH4feG<%1LS=NLMP%oIUv+u^q~Yh~fyE2t>eeb@5>7c0MW$=Z+d1WrA$*_P*V za%*aB*&~#aXFq;mikzdW|84ATw&5S=ZtO8GL7_`M5Fzgz-vFHC#pUI9I!>#TbtVZb zzDWDs=ua^^zzojj9BaI*X{G9T8m79f$=2MQ7mvr2c3!|9%MnpM+bNa$g16D*Fh~jq z6!gO)G_ZL?qoai;dTr>XLG6hej0f2gQEFzGD(iW0!TMw$C+J>5ij3BLGiHI6g3uzy zI22@Z7WNplw(3k(bazojzt9YA%_t%n4r+a@$}XY7fwPC+HVSI(D-zL=4HloFiS*3Z z_H(j)YydXDFv0MknsLd8q?->45~pZZ1(tGY+LtU{lfGaYk5GDUhGxj>0$_L3*i>g> z^pSOCusQ&un{{<{Wo=416`p^KY;Xd!G_~`vjZF&I6Y{7IQ+5#Q4aW}0yOl{vfBrnTWL12102go|h%aiw3NMZ&PPxaX*K&S32gq1lY@EF2#40!TQ zZbw($A1iQPTh}}45EII?yLDKe4N0qoi64UM$>#T6grJ{P@@WeQ03-bIk-aR7M3zWn zv@Q(Yzg7&SU75Kddl%vQKS>pFVw(IAqI0Y6IQt`lZm^PT!}TSGoWpbLHUT}2gt9&J z$&fj+m0IyTf`#4-{$mRueJ&lJ{&mBp*;si+8rk1ntH{d}HBUJbB=>u^$#z(Md>t#` z(vpEyR1KN;1B}zobWdEnrNUf2C+ZfwdhTvdDh+nxx+Jt_VN-=_# zY1r-fJqCsE{l3p%zo^^pdsXnO1_%4OF)|rQ=D%JU+_1Vzw@Il!do1E-gU@0-@P7t*7r46Mf6Csg z(00LUiiX3(+Vyt;=U2=;|Eiym1|qbf{k}n@d;BB&Xa0&RD$tW$)|*TvkVMzF9xl$c z;-=DQfi`#){R~SLkjk|&lmL>>_0KeweDQzygA-_j6Y}E)$l2MFiHV62H`hBf6qA=H z^_PL^XWSbH#5dJ~l%q9&Yfb)MhoDLhuXji9K2g%`fA%Wi9g;2ZV^Cj`|BFH|Tk~2C zF?&gyS##Uki!TcCk8EG3NoC$&^_B&d)^zD-X{@tIN&S7)m$;A#cUw$seB@vTISH>X zhEg#bT=UmjoJCqV=I+;zr>mN$&e^X7>GsH&ZGgoYC{CJfuvzWa+0OKiml;=2YyII7E&8G1K%{tD&L{x z)>H#D>Xx{}QOM;1acW)1Jo$^@aY;&U+~5bw{Lg^3qe^QkACJzx=+=M0UOwue0?E}=HfjLom`0>=`)lK+(6^OfA#{j6{L#1Za5K>KhJ^$ zz!@6opW$VLwm)Kh`1$!!^@qYU_5AoM#HW)|sO$bE?og)7Y?K!f@ literal 0 HcmV?d00001 From 31e2d4f1183fea6b2f33e8a975267fae34bcde56 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 18:44:52 -0600 Subject: [PATCH 09/29] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 40 +- .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 15 +- .../CreatePostButton.styles.tsx | 3 +- .../CreatePostButton/CreatePostButton.tsx | 12 +- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 71 --- .../src/components/Loading/Loading.tsx | 19 - .../react-app/src/components/Loading/index.ts | 1 - .../src/components/NavBar/NavBar.tsx | 73 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 20 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 44 ++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 44 ++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 24 +- .../src/components/PostPage/PostPage.tsx | 53 -- apps/react-app/src/types/index.ts | 119 +++- apps/react-app/src/utils/getErrorMessage.tsx | 8 + apps/react-app/src/utils/index.ts | 4 + .../utils/{index.tsx => inputsValidator.tsx} | 7 +- apps/react-app/src/utils/shorten.tsx | 4 + apps/react-app/src/utils/sortTable.tsx | 52 ++ 39 files changed, 1116 insertions(+), 255 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx delete mode 100644 apps/react-app/src/components/Loading/Loading.tsx delete mode 100644 apps/react-app/src/components/Loading/index.ts create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx create mode 100644 apps/react-app/src/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/utils/index.ts rename apps/react-app/src/utils/{index.tsx => inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/utils/shorten.tsx create mode 100644 apps/react-app/src/utils/sortTable.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 1136789f..097749ed 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,18 +1,38 @@ -import { Grid } from '@mui/material'; +import { Grid } from "@mui/material"; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { HomePage } from "./components/Page"; +// import { PageContainer } from "./components/Page/LoginPage/LoginPage.styles"; +import NavBar from "./components/NavBar"; function App() { + const page: string = "HomePage"; return ( - -

- - - + <> + + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} + {/* + Login Page + + //Form + + */} + - + ); } diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index e3fa2afd..b3ffbb24 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,5 +1,6 @@ -import { Title, Container } from "./Comments.styles"; -import CommentCard from "../CommentCard"; +import { Title, Container, FormContainer } from "./Comments.styles"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -7,10 +8,12 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} + + Form + ); } diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx index 78922576..4589f496 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx @@ -1,15 +1,17 @@ import EditIcon from "@mui/icons-material/Edit"; import { IconButton } from "@mui/material"; +import { Post } from "../../types"; import { Container } from "./CreatePostButton.styles"; -const CreatePostButton = () => { +interface CreatePostButtonInterface { + handleOpenForm: (defaultValues?: Post) => void; +} + +const CreatePostButton = ({ handleOpenForm }: CreatePostButtonInterface) => { return ( - { - // Activity 3 - Uncomment next line - //handleOpenForm() - }}> + handleOpenForm()}> diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 75d55a40..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; - -const posts = [ - { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }, - { - id: "1.24", - title: "The average path a grandparent took to get to school", - image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - ], - }, -]; - -function HomePage() { - // const categorySelected = "All"; - - const handleOpenForm = (defaultValues?: Post) => { - console.log(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // console.log(category); - // }; - - return ( - <> - {/* Activity 3 - Send handleOpenForm prop */} - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx deleted file mode 100644 index 5ea16a52..00000000 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; - -/** - * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display - */ -export default function Loading(): React.JSX.Element { - return ( - - - - ); -} diff --git a/apps/react-app/src/components/Loading/index.ts b/apps/react-app/src/components/Loading/index.ts deleted file mode 100644 index 62141369..00000000 --- a/apps/react-app/src/components/Loading/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Loading'; diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..2066a987 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,73 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..b9b245fd --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,20 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; + +function CategoriesPage() { + return ( + + Categories Page + + //Add category (Icon button) + + + //Table + + //Modal + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..6727989d --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,44 @@ +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import { Category } from "../../../types"; + +const categories: Category[] = [ + { id: "123", name: "Travel" }, + { id: "1234", name: "Food" }, +]; +const selectedCategory: Category = { id: "123", name: "Travel" }; +const posts = [ + { + id: "345", + title: "The average path a grandparent took to get to school", + image: + "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", + description: + "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", + category: null, + comments: ["13242"], + }, +]; + +function HomePage() { + const handleOpenForm = () => {}; + const handleSelectCategory = (category: Category) => { + console.log(category); + }; + + return ( + <> + + + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..fbe967a0 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index a3d43187..91206d5c 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,14 +2,14 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; import { CardActions, CardContainer, CardContent, PostCard, } from "./PostList.styles"; +import { Post } from "../../types"; interface PostListProps { posts: Post[]; @@ -19,7 +19,7 @@ interface PostListProps { function PostList({ posts, handleOpenForm }: PostListProps) { return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
- + { + e.stopPropagation(); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 777b35d3..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -function PostPage() { - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9b876432 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: string; + label: string; + type: string; + options?: string[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} diff --git a/apps/react-app/src/utils/getErrorMessage.tsx b/apps/react-app/src/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/utils/index.ts b/apps/react-app/src/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/utils/shorten.tsx b/apps/react-app/src/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/utils/sortTable.tsx b/apps/react-app/src/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} From 0978559f76dd2ca633e1c4d80b4bf12c53c474dc Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:10:30 -0600 Subject: [PATCH 10/29] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 38 +- .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 15 +- .../CreatePostButton.styles.tsx | 3 +- .../CreatePostButton/CreatePostButton.tsx | 12 +- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 39 -- .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 79 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 30 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 54 ++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 44 ++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 35 +- .../src/components/PostPage/PostPage.tsx | 53 -- apps/react-app/src/context/PostProvider.tsx | 97 +-- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 2 +- apps/react-app/src/types/index.ts | 119 +++- apps/react-app/src/utils/getErrorMessage.tsx | 8 + apps/react-app/src/utils/index.ts | 4 + .../utils/{index.tsx => inputsValidator.tsx} | 7 +- apps/react-app/src/utils/shorten.tsx | 4 + apps/react-app/src/utils/sortTable.tsx | 52 ++ 41 files changed, 1212 insertions(+), 261 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx create mode 100644 apps/react-app/src/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/utils/index.ts rename apps/react-app/src/utils/{index.tsx => inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/utils/shorten.tsx create mode 100644 apps/react-app/src/utils/sortTable.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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
- - - + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} - + + ); } diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index e3fa2afd..b3ffbb24 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,5 +1,6 @@ -import { Title, Container } from "./Comments.styles"; -import CommentCard from "../CommentCard"; +import { Title, Container, FormContainer } from "./Comments.styles"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -7,10 +8,12 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} + + Form + ); } diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx index 78922576..4589f496 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx @@ -1,15 +1,17 @@ import EditIcon from "@mui/icons-material/Edit"; import { IconButton } from "@mui/material"; +import { Post } from "../../types"; import { Container } from "./CreatePostButton.styles"; -const CreatePostButton = () => { +interface CreatePostButtonInterface { + handleOpenForm: (defaultValues?: Post) => void; +} + +const CreatePostButton = ({ handleOpenForm }: CreatePostButtonInterface) => { return ( - { - // Activity 3 - Uncomment next line - //handleOpenForm() - }}> + handleOpenForm()}> diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index d881115b..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { useContext } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; - -function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - - const handleOpenForm = (defaultValues?: Post) => { - console.log(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; - - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time - - if (!posts) return ; - - return ( - <> - {/* Activity 3 - Send handleOpenForm prop */} - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..015d89e9 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,79 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..be750d4f --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,30 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +// const categories: Category[] = [ +// { id: "663fef70d513515319551d1f", name: "Travel" }, +// { id: "663fef70d513515319546d1f", name: "Food" }, +// ]; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + + //ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + return ( + + Categories Page + + //Add category (Icon button) + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + //Modal + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..e61688ed --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,54 @@ +import { useCallback, useContext, useEffect, useState } from "react"; + +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import { Category } from "../../../types"; +import { PostContext } from "../../../context"; +import Loading from "../../Loading"; + +const categories: Category[] = [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, +]; + +function HomePage() { + const { posts, getPosts } = useContext(PostContext); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + + const handleOpenForm = () => {}; + + const handleSelectCategory = useCallback( + (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + getPosts(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPosts] + ); + + useEffect(getPosts, [getPosts]); + + if (!posts) return ; + + return ( + <> + + + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..fbe967a0 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index a3d43187..8c87c501 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,24 +2,29 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; import { CardActions, CardContainer, CardContent, PostCard, } from "./PostList.styles"; +import { Category, Post } from "../../types"; +import { PostContext } from "../../context"; +import { useContext } from "react"; interface PostListProps { posts: Post[]; + selectedCategory: Category | null; handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, handleOpenForm }: PostListProps) { +function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
- + { + e.stopPropagation(); + removePost({ + postID: post.id, + selectedCategoryID: selectedCategory?.id, + }); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 777b35d3..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -function PostPage() { - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 4170ea96..786c39e3 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -4,8 +4,14 @@ import { Post } from "../types"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + getPosts: (categoryID?: string) => void; + removePost: ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => void; } interface PostProviderProps { @@ -15,48 +21,46 @@ interface PostProviderProps { export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, - deletePost: () => {}, + removePost: () => {}, }); -const postList = [ +const postList: Post[] = [ { - id: "1.23", - title: "A good place to camp", + id: "664128a212f505651c18d676", + title: "A nice place to camp", image: "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319551d1f", + name: "Travel", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, { - id: "1.24", - title: "The average path a grandparent took to get to school", + id: "664128a212f505651c18d6kf6", + title: "Favorite food ;)", image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", + "https://th.bing.com/th/id/R.2d66d3ce21d052726c2c527a03da4f4c?rik=3FedcY2H7LDtBw&riu=http%3a%2f%2ftheartofplating.com%2fwp-content%2fuploads%2f2015%2f06%2fEvan_Feature.jpg&ehk=KCxZkONbpjuAYhfpKxoeHgIizR%2fy1U0LM6olKn1d8go%3d&risl=&pid=ImgRaw&r=0", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319546d1f", + name: "Food", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, ]; @@ -68,24 +72,27 @@ export function PostProvider({ const [posts, setPosts] = useState(postList); const getPosts = useCallback( - (category: string) => { + (categoryID?: string) => { const selectedCategory = serverData.filter( - (post: Post) => post.category === category + (post: Post) => post.category?._id === categoryID ); - const newPosts = category === "All" ? serverData : selectedCategory; + const newPosts = categoryID ? selectedCategory : serverData; setPosts(newPosts); - // Activity 7 - Call to the createAlert function here. Include message and severity. }, [serverData] ); - const deletePost = useCallback( - (postId: string) => { - setServerData((prev) => { - const filteredList = prev.filter((post: Post) => post.id !== postId); - return filteredList; - }); - getPosts("All"); + const removePost = useCallback( + ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => { + setServerData((prev) => prev.filter((post: Post) => post.id !== postID)); + getPosts(selectedCategoryID); + // ACT 7 - Use createAlert function to notify the user that the item was successfully deleted }, [getPosts] ); @@ -95,7 +102,7 @@ export function PostProvider({ value={{ posts, getPosts, - deletePost, + removePost, }} > {children} diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..56933391 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,2 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9b876432 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: string; + label: string; + type: string; + options?: string[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} diff --git a/apps/react-app/src/utils/getErrorMessage.tsx b/apps/react-app/src/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/utils/index.ts b/apps/react-app/src/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/utils/shorten.tsx b/apps/react-app/src/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/utils/sortTable.tsx b/apps/react-app/src/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} From 58fad3fae5033f22812e9881bf6a55144d54b6f4 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:14:11 -0600 Subject: [PATCH 11/29] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 44 +- .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../utils/inputsValidator.tsx} | 7 +- apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 ++ .../AddCommentForm/AddCommentForm.tsx | 6 - .../src/components/AddCommentForm/index.ts | 1 - .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 13 +- .../CreatePostButton.styles.tsx | 3 +- apps/react-app/src/components/Form/Form.tsx | 181 +++--- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 48 -- .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 79 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 30 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 61 ++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../components/Page/LoginPage/LoginPage.tsx | 15 + .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 44 ++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 29 +- .../src/components/PostPage/PostPage.tsx | 53 -- apps/react-app/src/context/PostProvider.tsx | 149 ++--- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 2 +- apps/react-app/src/types/index.ts | 119 +++- 44 files changed, 1340 insertions(+), 390 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts rename apps/react-app/src/{utils/index.tsx => common/utils/inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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
- - - + <> + + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} + - + ); } diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/common/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx deleted file mode 100644 index 156d3193..00000000 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ /dev/null @@ -1,6 +0,0 @@ -function AddCommentForm() { - // Activity 8 - Place the code to create new comments here - return
AddCommentForm
; -} - -export default AddCommentForm; diff --git a/apps/react-app/src/components/AddCommentForm/index.ts b/apps/react-app/src/components/AddCommentForm/index.ts deleted file mode 100644 index 13ea9aa0..00000000 --- a/apps/react-app/src/components/AddCommentForm/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {default} from "./AddCommentForm" \ No newline at end of file diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 973428b1..c321f8f2 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,6 +1,6 @@ import { Title, Container, FormContainer } from "./Comments.styles"; -import CommentCard from "../CommentCard"; -import AddCommentForm from "../AddCommentForm"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -8,12 +8,11 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} - + {/* ACT 8 - Create a form to add comments */} ); diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9ee6e67a..ca36df4b 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -6,18 +6,45 @@ import { DialogActions, DialogContent, DialogTitle, - InputLabel, MenuItem, - FormControl, - Select, SelectChangeEvent, - FormHelperText, } from "@mui/material"; -import { Post } from "../../types"; -import { validator } from "../../utils"; +import { NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; -import { FormInputs } from "../../types"; +import { FormInputs, Inputs } from "../../types"; + +const inputs: Inputs = [ + { + id: "title-id", + name: "title", + label: "Title", + type: "text", + }, + { + id: "description-id", + name: "description", + label: "Description", + type: "text", + }, + { + id: "category-label", + name: "category", + label: "Category", + type: "menu", + options: [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, + ], + }, + { + id: "url-id", + name: "image", + label: "URL of the image", + type: "url", + }, +]; const emptyInputs: FormInputs = { title: { value: "", error: "" }, @@ -29,30 +56,20 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; post?: Post | null; - // categorySelected: string; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } -const Form = ({ - open, - post, - // categorySelected, - setOpen, - setSelectedPost, -}: FormProps) => { +const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { - // getPosts, - createOrUpdatePost, - } = React.useContext(PostContext); + const { createOrUpdatePost } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; const existingPost = { title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, - category: { value: post.category, error: "" }, + category: { value: post.category?._id || "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -71,17 +88,18 @@ const Form = ({ const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: Post = { - id: post?.id ?? Math.random().toString(), + const newPost: NewPost = { title: formData.title.value, image: formData.image.value, description: formData.description.value, category: formData.category.value, - comments: post?.comments ?? [], }; - createOrUpdatePost({ method: post ? "patch" : "post", newPost }); - // getPosts(categorySelected); + createOrUpdatePost({ + method: post ? "patch" : "post", + newPost, + postID: post?.id, + }); handleClose(); }; @@ -123,75 +141,50 @@ const Form = ({ Create Post - - - - Category - - {formData.category.error} - - + {inputs.map((input, idx) => ( + + {(input.type === "text" || input.type === "url") && ( + + )} + {input.type === "menu" && ( + + {input.options?.map((option, idx) => ( + + {option.name} + + ))} + + )} + + ))} diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 67f292c6..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { useContext, useState } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; -import Form from "../Form"; - -function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - const [selectedPost, setSelectedPost] = useState(null); - const [open, setOpen] = useState(false); - - const handleOpenForm = (defaultValues?: Post) => { - setOpen(true); - if (defaultValues) setSelectedPost(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; - - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time - - if (!posts) return ; - - return ( - <> - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..015d89e9 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,79 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..a54caca1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,30 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +// const categories: Category[] = [ +// { id: "663fef70d513515319551d1f", name: "Travel" }, +// { id: "663fef70d513515319546d1f", name: "Food" }, +// ]; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + + //ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + return ( + + Categories Page + + {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..545110c8 --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,61 @@ +import { useCallback, useContext, useEffect, useState } from "react"; + +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import { Category, Post } from "../../../types"; +import { PostContext } from "../../../context"; +import Loading from "../../Loading"; +import Form from "../../Form"; + +const categories: Category[] = [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, +]; + +function HomePage() { + const [openForm, setOpenForm] = useState(false); + const { posts, getPosts } = useContext(PostContext); + const [selectedPost, setSelectedPost] = useState(null); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + + const handleOpenForm = (defaultValues?: Post) => { + setOpenForm(true); + if (defaultValues) setSelectedPost(defaultValues); + }; + + const handleSelectCategory = useCallback( + (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + getPosts(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPosts] + ); + + useEffect(getPosts, [getPosts]); + + if (!posts) return ; + + return ( + <> + + + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..20512000 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,15 @@ +import { PageContainer } from "./LoginPage.styles"; +import { Grid } from "@mui/material"; + +const LoginPage = () => { + return ( + + Login Page + + {/* ACT 8 - Create a form to Login and SignUp */} + + + ); +}; + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..fbe967a0 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 8e3ce6e1..b8d10727 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,14 +2,16 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; import { CardActions, CardContainer, CardContent, PostCard, } from "./PostList.styles"; +import { Post } from "../../types"; +import { PostContext } from "../../context"; +import { useContext } from "react"; interface PostListProps { posts: Post[]; @@ -17,9 +19,11 @@ interface PostListProps { } function PostList({ posts, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
- + { + e.stopPropagation(); + removePost(post.id); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 777b35d3..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -function PostPage() { - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 0abbf253..7a632565 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,17 +1,19 @@ -import React, { createContext, useState, useCallback, useEffect } from "react"; +import React, { createContext, useCallback, useEffect, useState } from "react"; -import { Post } from "../types"; +import { NewPost, Post } from "../types"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + getPosts: (categoryID?: string) => void; + removePost: (postID: string) => void; createOrUpdatePost: ({ method, newPost, + postID }: { method: "post" | "patch"; - newPost: Post; + newPost: NewPost; + postID?:string }) => void; } @@ -22,49 +24,47 @@ interface PostProviderProps { export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, - deletePost: () => {}, + removePost: () => {}, createOrUpdatePost: () => {}, }); -const postList = [ +const postList: Post[] = [ { - id: "1.23", - title: "A good place to camp", + id: "664128a212f505651c18d676", + title: "A nice place to camp", image: "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319551d1f", + name: "Travel", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, { - id: "1.24", - title: "The average path a grandparent took to get to school", + id: "664128a212f505651c18d6kf6", + title: "Favorite food ;)", image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", + "https://th.bing.com/th/id/R.2d66d3ce21d052726c2c527a03da4f4c?rik=3FedcY2H7LDtBw&riu=http%3a%2f%2ftheartofplating.com%2fwp-content%2fuploads%2f2015%2f06%2fEvan_Feature.jpg&ehk=KCxZkONbpjuAYhfpKxoeHgIizR%2fy1U0LM6olKn1d8go%3d&risl=&pid=ImgRaw&r=0", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319546d1f", + name: "Food", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, ]; @@ -72,58 +72,69 @@ const postList = [ export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - const [serverData, setServerData] = useState(postList); + const [serverData, setServerData] = useState(postList); const [posts, setPosts] = useState(postList); - const [updateData, setUpdateData] = useState(false); - - const createOrUpdatePost = useCallback( - ({ method, newPost }: { method: "post" | "patch"; newPost: Post }) => { - if (method === "post") setServerData((prev) => [...prev, newPost]); - if (method === "patch") { - setServerData((prev) => - prev.map((post) => (post.id === newPost.id ? newPost : post)) - ); - } - setUpdateData(true); - }, - [setUpdateData] - ); const getPosts = useCallback( - (category: string) => { + (categoryID?: string) => { const selectedCategory = serverData.filter( - (post: Post) => post.category === category + (post: Post) => post.category?._id === categoryID ); - const newPosts = category === "All" ? serverData : selectedCategory; + const newPosts = categoryID ? selectedCategory : serverData; setPosts(newPosts); - // Activity 7 - Call to the createAlert function here. Include message and severity. }, [serverData] ); - const deletePost = useCallback( - (postId: string) => { - setServerData((prev) => { - const filteredList = prev.filter((post: Post) => post.id !== postId); - return filteredList; - }); - setUpdateData(true); + const createOrUpdatePost = useCallback( + ({ + method, + newPost, + postID, + }: { + method: "post" | "patch"; + newPost: NewPost; + postID?: string; + }) => { + const { category: postCategory, ...rest } = newPost; + const selectedCategory = postList + ?.map((post) => post.category) + .filter((category) => category?._id === postCategory)[0]; + if (method === "post") { + const post: Post = { + id: Math.random().toString(), + category: selectedCategory, + comments: [], + ...rest, + }; + setServerData((prev) => [...prev, post]); + } + if (method === "patch") { + setServerData((prev) => + prev.map((post) => + post.id === postID + ? { ...post, ...newPost, category: selectedCategory } + : post + ) + ); + } }, - [setUpdateData] + [] ); - useEffect(() => { - if (!updateData) return; - setUpdateData(false); - getPosts("All"); - }, [updateData, getPosts]); + const removePost = useCallback((postID: string) => { + setServerData((prev) => prev.filter((post: Post) => post.id !== postID)); + // ACT 7 - Use createAlert function to notify the user that the item was successfully deleted + }, []); + + useEffect(() => setPosts(serverData), [serverData]); return ( diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..56933391 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,2 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9f8ec72a 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: keyof FormInputs; + label: string; + type: string; + options?: { id?: string; name: string }[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} From b9fa7ba7bb71f438d574137d45a453223447b411 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:15:53 -0600 Subject: [PATCH 12/29] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 36 +- apps/react-app/src/api/axios.ts | 6 +- apps/react-app/src/api/endpoints/auth.ts | 121 ++++ .../react-app/src/api/endpoints/categories.ts | 36 ++ apps/react-app/src/api/endpoints/comments.ts | 35 ++ apps/react-app/src/api/endpoints/index.ts | 4 + apps/react-app/src/api/endpoints/posts.ts | 173 ++++++ apps/react-app/src/api/index.ts | 1 + .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../utils/inputsValidator.tsx} | 7 +- apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 ++ .../AddCommentForm/AddCommentForm.tsx | 7 - .../src/components/AddCommentForm/index.ts | 1 - .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 13 +- .../CreatePostButton.styles.tsx | 3 +- apps/react-app/src/components/Form/Form.tsx | 200 +++--- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 50 -- .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 79 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 26 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 101 +++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../components/Page/LoginPage/LoginPage.tsx | 16 + .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 30 + .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 28 +- .../src/components/PostPage/PostPage.tsx | 60 -- apps/react-app/src/context/PostProvider.tsx | 179 ++++-- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 2 +- apps/react-app/src/types/index.ts | 119 +++- 51 files changed, 1791 insertions(+), 388 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png create mode 100644 apps/react-app/src/api/endpoints/auth.ts create mode 100644 apps/react-app/src/api/endpoints/categories.ts create mode 100644 apps/react-app/src/api/endpoints/comments.ts create mode 100644 apps/react-app/src/api/endpoints/index.ts create mode 100644 apps/react-app/src/api/endpoints/posts.ts create mode 100644 apps/react-app/src/api/index.ts create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts rename apps/react-app/src/{utils/index.tsx => common/utils/inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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
- - - + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} - + + ); } diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 2946fd6a..9d2ab0d9 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -1,9 +1,13 @@ import axios from "axios"; const axiosInstance = axios.create(); +const token = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1Nzk4NTc2LCJleHAiOjE3MTU4MDIxNzZ9.EgW4AcErd_fwDVwZa-pzJCw12xKBzGJ32B8Ry92XRs8"; axiosInstance.interceptors.request.use((config) => { - config.baseURL = "http://localhost:3000/posts"; + config.baseURL = "https://test.neuraac.com/api"; + config.headers.Authorization = `Bearer ${token}`; + config.signal = AbortSignal.timeout(5000); return config; }); diff --git a/apps/react-app/src/api/endpoints/auth.ts b/apps/react-app/src/api/endpoints/auth.ts new file mode 100644 index 00000000..8fe82a11 --- /dev/null +++ b/apps/react-app/src/api/endpoints/auth.ts @@ -0,0 +1,121 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { User, AuthResponse, AuthLoginResponse, NewUser } from "../../types"; + +export const createUser = async ({ + newUser, + onSuccess, + onError, + onLoading, +}: { + newUser: NewUser; + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/register`, + data: newUser, + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const login = async ({ + user, + onSuccess, + onError, + onLoading, +}: { + user: User; + onSuccess?: (data: AuthLoginResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/login`, + data: user, + }) + .then((response: AxiosResponse) => { + const data: AuthLoginResponse = response.data; + if (response.status === 200 && onSuccess) { + const token = data.accessToken; + localStorage.setItem("apiToken", token); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const logout = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/logout`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) { + localStorage.removeItem("apiToken"); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const refreshToken = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/refresh`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/categories.ts b/apps/react-app/src/api/endpoints/categories.ts new file mode 100644 index 00000000..6d15b977 --- /dev/null +++ b/apps/react-app/src/api/endpoints/categories.ts @@ -0,0 +1,36 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { + // Category, + CategoriesResponse, + // NewCategory +} from "../../types"; + +export const getCategories = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/categories", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +// ACT 9 - Create callbacks fuctions to call create, update and delete APIs diff --git a/apps/react-app/src/api/endpoints/comments.ts b/apps/react-app/src/api/endpoints/comments.ts new file mode 100644 index 00000000..218636cd --- /dev/null +++ b/apps/react-app/src/api/endpoints/comments.ts @@ -0,0 +1,35 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { NewComment, CommentResponse } from "../../types"; + +export const createComment = async ({ + postID, + newComment, + onSuccess, + onError, + onLoading, +}: { + postID: string; + newComment: NewComment; + onSuccess?: (data: CommentResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts/${postID}/comments`, + data: newComment, + }) + .then((response: AxiosResponse) => { + const data: CommentResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/index.ts b/apps/react-app/src/api/endpoints/index.ts new file mode 100644 index 00000000..efbe5817 --- /dev/null +++ b/apps/react-app/src/api/endpoints/index.ts @@ -0,0 +1,4 @@ +export * from "./categories"; +export * from "./comments"; +export * from "./posts"; +export * from "./auth"; diff --git a/apps/react-app/src/api/endpoints/posts.ts b/apps/react-app/src/api/endpoints/posts.ts new file mode 100644 index 00000000..574451d8 --- /dev/null +++ b/apps/react-app/src/api/endpoints/posts.ts @@ -0,0 +1,173 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { PostsResponse, PostResponse, NewPost } from "../../types"; + +export const getPosts = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/posts", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPostsByCategory = async ({ + selectedCategoryID, + onSuccess, + onError, + onLoading, +}: { + selectedCategoryID: string; + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/category/${selectedCategoryID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: (data: PostResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const createPost = async ({ + newPost, + onSuccess, + onError, + onLoading, +}: { + newPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts`, + data: newPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const updatePost = async ({ + postID, + updatedPost, + onSuccess, + onError, + onLoading, +}: { + postID: string; + updatedPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "patch", + data: updatedPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const deletePost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: () => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "delete", + }) + .then((response: AxiosResponse) => { + if (response.status === 204 && onSuccess) onSuccess(); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/index.ts b/apps/react-app/src/api/index.ts new file mode 100644 index 00000000..c9cd5154 --- /dev/null +++ b/apps/react-app/src/api/index.ts @@ -0,0 +1 @@ +export * from "./endpoints" \ No newline at end of file diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/common/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx deleted file mode 100644 index b130c473..00000000 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ /dev/null @@ -1,7 +0,0 @@ -function AddCommentForm() { - // Activity 8 - Place the code to create new comments here - // Activity 9 - Call the API to create a new comment when submitting the form - return
AddCommentForm
; -} - -export default AddCommentForm; diff --git a/apps/react-app/src/components/AddCommentForm/index.ts b/apps/react-app/src/components/AddCommentForm/index.ts deleted file mode 100644 index 13ea9aa0..00000000 --- a/apps/react-app/src/components/AddCommentForm/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {default} from "./AddCommentForm" \ No newline at end of file diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 083ae108..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 973428b1..c321f8f2 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,6 +1,6 @@ import { Title, Container, FormContainer } from "./Comments.styles"; -import CommentCard from "../CommentCard"; -import AddCommentForm from "../AddCommentForm"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -8,12 +8,11 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} - + {/* ACT 8 - Create a form to add comments */} ); diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9cc590d3..8e12cdcb 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -6,20 +6,45 @@ import { DialogActions, DialogContent, DialogTitle, - InputLabel, MenuItem, - FormControl, - Select, SelectChangeEvent, - FormHelperText, } from "@mui/material"; -import { AxiosError, AxiosResponse } from "axios"; -import axios from "../../api/axios"; -import { Post } from "../../types"; -import { validator } from "../../utils"; +import { Category, NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; -import { FormInputs } from "../../types"; +import { FormInputs, Inputs } from "../../types"; + +const inputs: Inputs = [ + { + id: "title-id", + name: "title", + label: "Title", + type: "text", + }, + { + id: "description-id", + name: "description", + label: "Description", + type: "text", + }, + { + id: "category-label", + name: "category", + label: "Category", + type: "menu", + options: [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, + ], + }, + { + id: "url-id", + name: "image", + label: "URL of the image", + type: "url", + }, +]; const emptyInputs: FormInputs = { title: { value: "", error: "" }, @@ -30,8 +55,9 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; - post?: Post | null; - categorySelected: string; + post: Post | null; + categories: Category[] | null; + selectedCategory: Category | null; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -39,19 +65,20 @@ interface FormProps { const Form = ({ open, post, - categorySelected, + categories, + selectedCategory, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { getPosts } = React.useContext(PostContext); + const { addPost, updatePostData } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; const existingPost = { title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, - category: { value: post.category, error: "" }, + category: { value: post.category?._id ?? "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -63,39 +90,29 @@ const Form = ({ setSelectedPost(null); }; - const hanldeSubmit = (event: React.FormEvent) => { + const hanldeSubmit = async (event: React.FormEvent) => { event.preventDefault(); const inputs = Object.values(formData); const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: Post = { - id: post?.id ?? Math.random().toString(), + const newPost: NewPost = { title: formData.title.value, image: formData.image.value, description: formData.description.value, category: formData.category.value, - comments: post?.comments ?? [], }; - axios({ - method: post ? "patch" : "post", - url: post ? `/${post.id}` : undefined, - signal: AbortSignal.timeout(5000), - data: newPost, - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts(categorySelected); - handleClose(); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + handleClose(); + + post + ? await updatePostData({ + postID: post.id, + updatedPost: newPost, + selectedCategoryID: selectedCategory?.id, + }) + : await addPost(newPost); }; const handleChange = ( @@ -136,75 +153,50 @@ const Form = ({ Create Post - - - - Category - - {formData.category.error} - - + {inputs.map((input, idx) => ( + + {(input.type === "text" || input.type === "url") && ( + + )} + {input.type === "menu" && ( + + {categories?.map((option, idx) => ( + + {option.name} + + ))} + + )} + + ))} diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 0410073f..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { useContext, useState } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; -import Form from "../Form"; - -function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - const [selectedPost, setSelectedPost] = useState(null); - const [open, setOpen] = useState(false); - const categorySelected = "All"; - - const handleOpenForm = (defaultValues?: Post) => { - setOpen(true); - if (defaultValues) setSelectedPost(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; - - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time - - if (!posts) return ; - - return ( - <> - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..015d89e9 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,79 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..6d5defcf --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,26 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + // ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + // ACT 9 - Use the getList, create, edit, delete and update categories APIs + + return ( + + Categories Page + + {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..eba5b28a --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,101 @@ +import { useState, useContext, useEffect, useCallback } from "react"; + +import Form from "../../Form"; +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import { + PostContext, + // SnackbarContext +} from "../../../context"; +import { CategoriesResponse, Category, Post } from "../../../types"; +import Loading from "../../Loading"; +import CreatePostButton from "../../CreatePostButton"; +import { getCategories } from "../../../api"; + +function HomePage() { + // const createAlert = useContext(SnackbarContext); + const { posts, loadingPosts, getPostList } = useContext(PostContext); + const [open, setOpen] = useState(false); + const [loadingCategories, setLoadingCategories] = useState(false); + const [selectedPost, setSelectedPost] = useState(null); + const [categories, setCategories] = useState(null); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + + const handleOpenForm = (defaultValues?: Post) => { + setOpen(true); + if (defaultValues) setSelectedPost(defaultValues); + }; + + const handleSelectCategory = useCallback( + async (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + await getPostList(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPostList] + ); + + const getCategoriesList = useCallback(async () => { + const onSuccess = (data: CategoriesResponse[]) => { + const newRows = data.map((category) => ({ + id: category._id, + name: category.name, + })); + setCategories(newRows); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + setLoadingCategories(isLoading); + }; + + await getCategories({ onSuccess, onError, onLoading }); + }, []); + + useEffect(() => { + getPostList(); + getCategoriesList(); + }, [getPostList, getCategoriesList]); + + if (!categories || loadingCategories) return ; + + return ( + <> + + + + {!posts || loadingPosts ? ( + + ) : ( + + )} + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..284a5168 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,16 @@ +import { PageContainer } from "./LoginPage.styles"; +import { Grid } from "@mui/material"; + +const LoginPage = () => { + // ACT 9 - Use the login and register APIs + return ( + + Login Page + + {/* ACT 8 - Create a form to Login and SignUp */} + + + ); +}; + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..e3eba149 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,30 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const postID = "664128a212f505651c18d676" + +function PostPage() { + // ACT 9 - Use postID variable to fetch the post data + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index b13fe13c..31cbc21f 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -3,8 +3,8 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; +import { Category, Post } from "../../types"; import { PostContext } from "../../context"; import { CardActions, @@ -15,14 +15,16 @@ import { interface PostListProps { posts: Post[]; + selectedCategory: Category | null; handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, handleOpenForm }: PostListProps) { - const { deletePost } = useContext(PostContext); +function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
{ e.stopPropagation(); - deletePost(post.id); + removePost({ + postID: post.id, + selectedCategoryID: selectedCategory?.id, + }); }} > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 405ef03d..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import Loading from "../Loading"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -const postId = "1.23" - -function PostPage() { - // Activity 9 - Call the API "/:postId" to get the post. To save the result use useState - - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }; - - if (!post || !postId) return ; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 03e1e61f..e5121b50 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,13 +1,41 @@ -import React, { createContext, useState, useCallback } from "react"; -import { AxiosError, AxiosResponse } from "axios"; +import React, { + createContext, + useState, + // useContext, + useCallback, +} from "react"; -import axios from "../api/axios"; -import { Post } from "../types"; +import { NewPost, Post, PostsResponse } from "../types"; +// import { SnackbarContext } from "../context"; +import { + createPost, + deletePost, + getPosts, + getPostsByCategory, + updatePost, +} from "../api"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + loadingPosts: boolean; + addPost: (newPost: NewPost) => void; + removePost: ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => void; + getPostList: (selectedCategoryID?: string) => void; + updatePostData: ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => void; } interface PostProviderProps { @@ -15,61 +43,122 @@ interface PostProviderProps { } export const PostContext = createContext({ - posts: [] || null, - getPosts: () => {}, - deletePost: () => {}, + posts: null, + loadingPosts: false, + addPost: () => {}, + removePost: () => {}, + getPostList: () => {}, + updatePostData: () => {}, }); export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { + // const createAlert = useContext(SnackbarContext); const [posts, setPosts] = useState(null); + const [loadingPosts, setLoadingPosts] = useState(false); - const getPosts = useCallback((category: string) => { - axios({ - method: "get", - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - const selectedCategory = response.data.filter( - (post: Post) => post.category === category - ); - const newPosts = category === "All" ? response.data : selectedCategory; - setPosts(newPosts); - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + const onLoading = (isLoading: boolean) => { + setLoadingPosts(isLoading); + }; + + const onError = useCallback(() => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); }, []); - const deletePost = useCallback( - (postId: string) => { - axios({ - method: "delete", - url: `/${postId}`, - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts("All"); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with success message - console.error(`${error}`); - }); + const getPostList = useCallback( + async (selectedCategoryID?: string) => { + const onSuccess = async (data: PostsResponse[]) => { + const newList = data.map((post) => ({ + id: post._id, + title: post.title, + image: post.image, + description: post.description, + category: post.category, + comments: post.comments, + })); + setPosts(newList); + }; + + const params = { onSuccess, onError, onLoading }; + selectedCategoryID + ? await getPostsByCategory({ selectedCategoryID, ...params }) + : await getPosts(params); + }, + [onError] + ); + + const addPost = useCallback( + async (newPost: NewPost) => { + const onSuccess = async () => { + await getPostList(); + // createAlert({ + // message: "Post successfully created.", + // severity: "success", + // }); + }; + + await createPost({ newPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const updatePostData = useCallback( + async ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully updated.", + // severity: "success", + // }); + }; + + await updatePost({ postID, updatedPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const removePost = useCallback( + async ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully deleted.", + // severity: "success", + // }); + }; + setLoadingPosts(true); + await deletePost({ postID, onSuccess, onError }); }, - [getPosts] + [onError, getPostList] ); return ( {children} diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..56933391 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,2 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9f8ec72a 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: keyof FormInputs; + label: string; + type: string; + options?: { id?: string; name: string }[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} From fafc72514595a93d72643d491c82a230d04cb08b Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:17:41 -0600 Subject: [PATCH 13/29] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 14 +- apps/react-app/src/Router/PrivateRoute.tsx | 37 ++ apps/react-app/src/Router/Router.tsx | 16 + .../src/{components => }/Router/index.ts | 0 apps/react-app/src/api/axios.ts | 7 +- apps/react-app/src/api/endpoints/auth.ts | 121 ++++ .../react-app/src/api/endpoints/categories.ts | 36 ++ apps/react-app/src/api/endpoints/comments.ts | 35 ++ apps/react-app/src/api/endpoints/index.ts | 4 + apps/react-app/src/api/endpoints/posts.ts | 173 ++++++ apps/react-app/src/api/index.ts | 1 + .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../utils/inputsValidator.tsx} | 7 +- apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 ++ .../AddCommentForm/AddCommentForm.tsx | 7 - .../src/components/AddCommentForm/index.ts | 1 - .../src/components/Banner/Banner.tsx | 14 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 13 +- .../CreatePostButton.styles.tsx | 3 +- apps/react-app/src/components/Form/Form.tsx | 200 +++--- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 77 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 26 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 95 ++- .../LoginPage/LoginPage.styles.tsx} | 9 +- .../components/Page/LoginPage/LoginPage.tsx | 24 + .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/NotFoundPage/NotFoundPage.tsx | 0 .../{ => Page}/NotFoundPage/index.ts | 0 apps/react-app/src/components/Page/Page.tsx | 23 +- .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 31 + .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 5 + .../src/components/PostList/PostList.tsx | 30 +- .../src/components/PostPage/PostPage.tsx | 60 -- .../src/components/Router/Router.tsx | 12 - apps/react-app/src/context/AuthProvider.tsx | 54 ++ apps/react-app/src/context/PostProvider.tsx | 179 ++++-- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 3 +- apps/react-app/src/types/index.ts | 119 +++- 57 files changed, 1881 insertions(+), 378 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png create mode 100644 apps/react-app/src/Router/PrivateRoute.tsx create mode 100644 apps/react-app/src/Router/Router.tsx rename apps/react-app/src/{components => }/Router/index.ts (100%) create mode 100644 apps/react-app/src/api/endpoints/auth.ts create mode 100644 apps/react-app/src/api/endpoints/categories.ts create mode 100644 apps/react-app/src/api/endpoints/comments.ts create mode 100644 apps/react-app/src/api/endpoints/index.ts create mode 100644 apps/react-app/src/api/endpoints/posts.ts create mode 100644 apps/react-app/src/api/index.ts create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts rename apps/react-app/src/{utils/index.tsx => common/utils/inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/NotFoundPage/NotFoundPage.tsx (100%) rename apps/react-app/src/components/{ => Page}/NotFoundPage/index.ts (100%) rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx delete mode 100644 apps/react-app/src/components/Router/Router.tsx create mode 100644 apps/react-app/src/context/AuthProvider.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/common/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx deleted file mode 100644 index b130c473..00000000 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ /dev/null @@ -1,7 +0,0 @@ -function AddCommentForm() { - // Activity 8 - Place the code to create new comments here - // Activity 9 - Call the API to create a new comment when submitting the form - return
AddCommentForm
; -} - -export default AddCommentForm; diff --git a/apps/react-app/src/components/AddCommentForm/index.ts b/apps/react-app/src/components/AddCommentForm/index.ts deleted file mode 100644 index 13ea9aa0..00000000 --- a/apps/react-app/src/components/AddCommentForm/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {default} from "./AddCommentForm" \ No newline at end of file diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..615b527e 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,20 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index cd6ac296..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All"; +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 083ae108..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 973428b1..c321f8f2 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,6 +1,6 @@ import { Title, Container, FormContainer } from "./Comments.styles"; -import CommentCard from "../CommentCard"; -import AddCommentForm from "../AddCommentForm"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -8,12 +8,11 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} - + {/* ACT 8 - Create a form to add comments */} ); diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9cc590d3..8e12cdcb 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -6,20 +6,45 @@ import { DialogActions, DialogContent, DialogTitle, - InputLabel, MenuItem, - FormControl, - Select, SelectChangeEvent, - FormHelperText, } from "@mui/material"; -import { AxiosError, AxiosResponse } from "axios"; -import axios from "../../api/axios"; -import { Post } from "../../types"; -import { validator } from "../../utils"; +import { Category, NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; -import { FormInputs } from "../../types"; +import { FormInputs, Inputs } from "../../types"; + +const inputs: Inputs = [ + { + id: "title-id", + name: "title", + label: "Title", + type: "text", + }, + { + id: "description-id", + name: "description", + label: "Description", + type: "text", + }, + { + id: "category-label", + name: "category", + label: "Category", + type: "menu", + options: [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, + ], + }, + { + id: "url-id", + name: "image", + label: "URL of the image", + type: "url", + }, +]; const emptyInputs: FormInputs = { title: { value: "", error: "" }, @@ -30,8 +55,9 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; - post?: Post | null; - categorySelected: string; + post: Post | null; + categories: Category[] | null; + selectedCategory: Category | null; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -39,19 +65,20 @@ interface FormProps { const Form = ({ open, post, - categorySelected, + categories, + selectedCategory, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { getPosts } = React.useContext(PostContext); + const { addPost, updatePostData } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; const existingPost = { title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, - category: { value: post.category, error: "" }, + category: { value: post.category?._id ?? "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -63,39 +90,29 @@ const Form = ({ setSelectedPost(null); }; - const hanldeSubmit = (event: React.FormEvent) => { + const hanldeSubmit = async (event: React.FormEvent) => { event.preventDefault(); const inputs = Object.values(formData); const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: Post = { - id: post?.id ?? Math.random().toString(), + const newPost: NewPost = { title: formData.title.value, image: formData.image.value, description: formData.description.value, category: formData.category.value, - comments: post?.comments ?? [], }; - axios({ - method: post ? "patch" : "post", - url: post ? `/${post.id}` : undefined, - signal: AbortSignal.timeout(5000), - data: newPost, - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts(categorySelected); - handleClose(); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + handleClose(); + + post + ? await updatePostData({ + postID: post.id, + updatedPost: newPost, + selectedCategoryID: selectedCategory?.id, + }) + : await addPost(newPost); }; const handleChange = ( @@ -136,75 +153,50 @@ const Form = ({ Create Post - - - - Category - - {formData.category.error} - - + {inputs.map((input, idx) => ( + + {(input.type === "text" || input.type === "url") && ( + + )} + {input.type === "menu" && ( + + {categories?.map((option, idx) => ( + + {option.name} + + ))} + + )} + + ))} diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..953e23c0 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,77 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { NavLink } from "react-router-dom"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + Discovering the World + + + Making your Life Easier + + + + + {/* ACT 10 - Use NavLink to navigate to categories page and change the backgroundcolor when is active */} + + {/* ACT 10 - Use NavLink to navigate to login page and change the backgroundcolor when is active*/} + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..b168bf2e --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,26 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + // ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + // ACT 9 - Use the getList, create, edit, delete and update categories endpoints + + return ( + + Categories Page + + {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx index fd03a30e..eba5b28a 100644 --- a/apps/react-app/src/components/Page/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -1,45 +1,96 @@ -import { useContext, useState } from "react"; -import CategoryButtonGroup from "../../CategoryButtonGroup"; -import CreatePostButton from "../../CreatePostButton"; +import { useState, useContext, useEffect, useCallback } from "react"; + +import Form from "../../Form"; import PostList from "../../PostList"; -import { Post } from "../../../types"; -import { PostContext } from "../../../context"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import { + PostContext, + // SnackbarContext +} from "../../../context"; +import { CategoriesResponse, Category, Post } from "../../../types"; import Loading from "../../Loading"; -import Form from "../../Form"; +import CreatePostButton from "../../CreatePostButton"; +import { getCategories } from "../../../api"; function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - const [selectedPost, setSelectedPost] = useState(null); + // const createAlert = useContext(SnackbarContext); + const { posts, loadingPosts, getPostList } = useContext(PostContext); const [open, setOpen] = useState(false); - const categorySelected = "All"; + const [loadingCategories, setLoadingCategories] = useState(false); + const [selectedPost, setSelectedPost] = useState(null); + const [categories, setCategories] = useState(null); + const [selectedCategory, setSelectedCategory] = useState( + null + ); const handleOpenForm = (defaultValues?: Post) => { setOpen(true); if (defaultValues) setSelectedPost(defaultValues); }; - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; + const handleSelectCategory = useCallback( + async (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + await getPostList(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPostList] + ); + + const getCategoriesList = useCallback(async () => { + const onSuccess = (data: CategoriesResponse[]) => { + const newRows = data.map((category) => ({ + id: category._id, + name: category.name, + })); + setCategories(newRows); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + setLoadingCategories(isLoading); + }; - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time + await getCategories({ onSuccess, onError, onLoading }); + }, []); - if (!posts) return ; + useEffect(() => { + getPostList(); + getCategoriesList(); + }, [getPostList, getCategoriesList]); + + if (!categories || loadingCategories) return ; return ( <> - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - + + + {!posts || loadingPosts ? ( + + ) : ( + + )} + diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..9241a302 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,24 @@ +import { PageContainer } from "./LoginPage.styles"; +import { Grid } from "@mui/material"; + +const LoginPage = () => { + // ACT 9 - Use the login and register endpoints + + // ACT 11 - After the login is successful, use the following to direct the user to the home page: + // const { protocol, host } = window.location; + // const signInUrl = `${protocol}//${host}/`; + // if (window.location.href !== signInUrl) { + // window.location.assign(signInUrl); + // } + + return ( + + Login Page + + {/* ACT 8 - Create a form to Login and SignUp */} + + + ); +}; + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..b00ddde9 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ +export {default} from "./LoginPage" \ No newline at end of file diff --git a/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx b/apps/react-app/src/components/Page/NotFoundPage/NotFoundPage.tsx similarity index 100% rename from apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx rename to apps/react-app/src/components/Page/NotFoundPage/NotFoundPage.tsx diff --git a/apps/react-app/src/components/NotFoundPage/index.ts b/apps/react-app/src/components/Page/NotFoundPage/index.ts similarity index 100% rename from apps/react-app/src/components/NotFoundPage/index.ts rename to apps/react-app/src/components/Page/NotFoundPage/index.ts diff --git a/apps/react-app/src/components/Page/Page.tsx b/apps/react-app/src/components/Page/Page.tsx index 787ebf10..2a7ef145 100644 --- a/apps/react-app/src/components/Page/Page.tsx +++ b/apps/react-app/src/components/Page/Page.tsx @@ -1,6 +1,6 @@ import React from "react"; import Grid from "@mui/material/Grid"; -import Header from "../Header"; +import NavBar from "../NavBar"; interface PageProps { /** @@ -14,15 +14,18 @@ interface PageProps { */ export default function Page({ page }: PageProps): React.JSX.Element { return ( - -
- + + + {page} diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..f97a6dc4 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,31 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const postID = "664128a212f505651c18d676" + +function PostPage() { + // ACT 9 - Use postID variable to fetch the post data + // ACT 10 - Get postID from route params + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts index 456c3975..99868e3c 100644 --- a/apps/react-app/src/components/Page/index.ts +++ b/apps/react-app/src/components/Page/index.ts @@ -1,2 +1,7 @@ export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +export { default as LoginPage } from "./LoginPage"; +// ACT 10 - export NotFoundPage componenet + export { default } from "./Page"; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index cc2abbed..4ef101d6 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -3,8 +3,8 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; +import { Category, Post } from "../../types"; import { PostContext } from "../../context"; import { CardActions, @@ -15,34 +15,33 @@ import { interface PostListProps { posts: Post[]; + selectedCategory: Category | null; handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, handleOpenForm }: PostListProps) { - const { deletePost } = useContext(PostContext); +function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
{ e.stopPropagation(); - deletePost(post.id); + removePost({ + postID: post.id, + selectedCategoryID: selectedCategory?.id, + }); }} > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 405ef03d..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import Loading from "../Loading"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -const postId = "1.23" - -function PostPage() { - // Activity 9 - Call the API "/:postId" to get the post. To save the result use useState - - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "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.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "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.", - }, - ], - }; - - if (!post || !postId) return ; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/components/Router/Router.tsx b/apps/react-app/src/components/Router/Router.tsx deleted file mode 100644 index 07d55ecf..00000000 --- a/apps/react-app/src/components/Router/Router.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { createBrowserRouter } from "react-router-dom"; -import Page, { HomePage } from "../Page"; - -const Router = createBrowserRouter([ - { - path: "/", - element: } />, - }, - // Activity 10 - Render the PostPage component with the dynamic postId and the NotFoundPage component as the default page in case of route errors -]); - -export default Router; diff --git a/apps/react-app/src/context/AuthProvider.tsx b/apps/react-app/src/context/AuthProvider.tsx new file mode 100644 index 00000000..32df0424 --- /dev/null +++ b/apps/react-app/src/context/AuthProvider.tsx @@ -0,0 +1,54 @@ +import axios, { AxiosResponse } from "axios"; +import React, { createContext, useCallback, useState } from "react"; + +interface AuthContextProps { + authLoading: boolean; + isAuthenticated: boolean | null; + validateToken: () => void; +} + +export const AuthContext = createContext({ + authLoading: false, + isAuthenticated: null, + validateToken: () => {}, +}); + +interface AuthProviderProps { + children: React.JSX.Element; +} + +export function AuthProvider({ + children, +}: AuthProviderProps): React.JSX.Element { + const [authLoading, setAuthLoading] = useState(false); + const [isAuthenticated, setIsAuthenticated] = useState(null); + + const validateToken = useCallback(async () => { + const token = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; + // ACT 11 - Get the token from localStorage + const onLoading = (isLoading: boolean) => setAuthLoading(isLoading); + + onLoading(true); + await axios({ + url: "https://test.neuraac.com/api/posts", + method: "get", + headers: { Authorization: `Bearer ${token}` }, + }) + .then((response: AxiosResponse) => { + if (response.status === 200) { + setIsAuthenticated(true); + } + }) + .catch(() => setIsAuthenticated(false)) + .finally(() => onLoading(false)); + }, []); + + return ( + + {children} + + ); +} diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 03e1e61f..e5121b50 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,13 +1,41 @@ -import React, { createContext, useState, useCallback } from "react"; -import { AxiosError, AxiosResponse } from "axios"; +import React, { + createContext, + useState, + // useContext, + useCallback, +} from "react"; -import axios from "../api/axios"; -import { Post } from "../types"; +import { NewPost, Post, PostsResponse } from "../types"; +// import { SnackbarContext } from "../context"; +import { + createPost, + deletePost, + getPosts, + getPostsByCategory, + updatePost, +} from "../api"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + loadingPosts: boolean; + addPost: (newPost: NewPost) => void; + removePost: ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => void; + getPostList: (selectedCategoryID?: string) => void; + updatePostData: ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => void; } interface PostProviderProps { @@ -15,61 +43,122 @@ interface PostProviderProps { } export const PostContext = createContext({ - posts: [] || null, - getPosts: () => {}, - deletePost: () => {}, + posts: null, + loadingPosts: false, + addPost: () => {}, + removePost: () => {}, + getPostList: () => {}, + updatePostData: () => {}, }); export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { + // const createAlert = useContext(SnackbarContext); const [posts, setPosts] = useState(null); + const [loadingPosts, setLoadingPosts] = useState(false); - const getPosts = useCallback((category: string) => { - axios({ - method: "get", - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - const selectedCategory = response.data.filter( - (post: Post) => post.category === category - ); - const newPosts = category === "All" ? response.data : selectedCategory; - setPosts(newPosts); - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + const onLoading = (isLoading: boolean) => { + setLoadingPosts(isLoading); + }; + + const onError = useCallback(() => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); }, []); - const deletePost = useCallback( - (postId: string) => { - axios({ - method: "delete", - url: `/${postId}`, - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts("All"); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with success message - console.error(`${error}`); - }); + const getPostList = useCallback( + async (selectedCategoryID?: string) => { + const onSuccess = async (data: PostsResponse[]) => { + const newList = data.map((post) => ({ + id: post._id, + title: post.title, + image: post.image, + description: post.description, + category: post.category, + comments: post.comments, + })); + setPosts(newList); + }; + + const params = { onSuccess, onError, onLoading }; + selectedCategoryID + ? await getPostsByCategory({ selectedCategoryID, ...params }) + : await getPosts(params); + }, + [onError] + ); + + const addPost = useCallback( + async (newPost: NewPost) => { + const onSuccess = async () => { + await getPostList(); + // createAlert({ + // message: "Post successfully created.", + // severity: "success", + // }); + }; + + await createPost({ newPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const updatePostData = useCallback( + async ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully updated.", + // severity: "success", + // }); + }; + + await updatePost({ postID, updatedPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const removePost = useCallback( + async ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully deleted.", + // severity: "success", + // }); + }; + setLoadingPosts(true); + await deletePost({ postID, onSuccess, onError }); }, - [getPosts] + [onError, getPostList] ); return ( {children} diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..28a329a1 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,3 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +export { AuthProvider, AuthContext } from "./AuthProvider"; +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9f8ec72a 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: keyof FormInputs; + label: string; + type: string; + options?: { id?: string; name: string }[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} From dc274bde84aaa01e296ca48f061d7a86873170eb Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Fri, 4 Oct 2024 12:07:44 -0700 Subject: [PATCH 14/29] Activity 1 --- apps/react-app/src/App.tsx | 5 ++- .../src/components/Banner/Banner.tsx | 6 +-- .../components/CommentCard/CommentCard.tsx | 20 ++++----- .../src/components/Comments/Comments.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 41 ++++++++++--------- 5 files changed, 41 insertions(+), 34 deletions(-) diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index d837a9b1..103de6d7 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -2,12 +2,15 @@ import { Grid } from "@mui/material"; import { HomePage } from "./components/Page"; import { PageContainer } from "./components/Page/LoginPage/LoginPage.styles"; +import { PostPage } from "./components/Page"; +import { CategoriesPage } from "./components/Page"; function App() { return ( <> - {/* ACT 1 - Render PostPage, and CategoriesPage components */} + + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} Login Page diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 5d853fb7..06da2698 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -3,8 +3,8 @@ import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; import { BannerContent, BannerTitle, Container } from "./Banner.styles"; -const postImage = ""; // ACT 1 - Put some image URL -// const postTitle = ""; //ACT 1 - Write a title +const postImage = "https://img-cdn.pixlr.com/image-generator/history/65bb506dcb310754719cf81f/ede935de-1138-4f66-8ed7-44bd16efc709/medium.webp"; // ACT 1 - Put some image URL +const postTitle = "Gatito chino"; //ACT 1 - Write a title function Banner() { return ( @@ -14,7 +14,7 @@ function Banner() { View Posts - {/* ACT 1 - Render postTitle */} + {postTitle} diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index ba73b75c..844c0ff8 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,22 +3,22 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; -// const comment = { -// _id: "", -// author: "", -// content: "", -// createdAt: "", -// updatedAt: "", -// __v: "", -// }; // ACT 1 - Fill all the properties with random data +const comment = { + _id: "412fsfa", + author: "José Valenzuela", + content: "Comentario", + createdAt: "2024-04-10 12:00:00", + updatedAt: "2024-04-10 12:00:00", + __v: "-v", +}; // ACT 1 - Fill all the properties with random data function CommentCard() { return ( - {/* ACT 1 - Render comment author */} - {/* ACT 1 - Render comment content */} + {comment.author} + {comment.content} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 90099cc0..87789636 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,4 +1,5 @@ import { Title, Container, FormContainer } from "./Comments.styles"; +import CommentCard from "../CommentCard"; function Comments() { return ( @@ -6,7 +7,7 @@ function Comments() { <h4>Comments</h4> - {/* ACT 1 = Render CommentCard component */} + Form diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index 2b12840d..a4d1f0fb 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -5,35 +5,38 @@ import { DescriptionContainer, } from "./PostPage.styles"; -// const post = { -// image: "", -// title: "", -// postID: "", -// comments: [ -// { -// _id: "", -// author: "", -// content: "", -// createdAt: "", -// updatedAt: "", -// __v: "", -// }, -// ], -// description: "", -// }; // ACT 1 - Fill all this properties with random data +import Banner from "../../Banner"; +import Comments from "../../Comments"; + +const post = { + image: "https://letsenhance.io/static/8f5e523ee6b2479e26ecc91b9c25261e/1015f/MainAfter.jpg", + title: "Camaleon", + postID: "121sq22", + comments: [ + { + _id: "4if91", + author: "José Valenzuela", + content: "Comentario", + createdAt: "2024-04-10 12:00:00", + updatedAt: "2024-04-10 12:00:00", + __v: "_v", + }, + ], + description: "Imagen de un camaleon", +} function PostPage() { return ( Post page - {/* ACT 1 - Render Banner component */} + -

{/* ACT 1 - Render post description */}

+

{post.description}

- {/* ACT 1 - Render Comments component */} +
); From 98c778c8b8eac6dc62fa7dc07505f94e5e227b79 Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Wed, 9 Oct 2024 10:53:40 -0700 Subject: [PATCH 15/29] Update --- apps/react-app/README.md | 51 +- package-lock.json | 2590 +++++++++++++------------------------- package.json | 12 +- 3 files changed, 874 insertions(+), 1779 deletions(-) diff --git a/apps/react-app/README.md b/apps/react-app/README.md index ff7bfc51..8b43a9a1 100644 --- a/apps/react-app/README.md +++ b/apps/react-app/README.md @@ -1,54 +1,11 @@ -# React - Discovering the World App +# React App ## Instructions -1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). -2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). -3. You can clone the repository to your local or you can create a codespace in github. -4. Checkout to branch `` this is the starter boilerplate - - `git checkout ` -5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) - - `git merge react/session-*` -6. Each session branch will have the challenges to accomplish and the expected results. -7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) - ## Recommendations -- Before make your commit format your files with prettier - -### Recommended extensions - -- Name: Error Lens - Id: usernamehw.errorlens - Description: Improve highlighting of errors, warnings and other language diagnostics. - Version: 3.17.0 - Publisher: Alexander - VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens - -- Name: Pretty TypeScript Errors - Id: YoavBls.pretty-ts-errors - Description: Make TypeScript errors prettier and more human-readable in VSCode - Version: 0.5.4 - Publisher: yoavbls - VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors - -- Name: ES7+ React/Redux/React-Native snippets - Id: dsznajder.es7-react-js-snippets - Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. - Version: 4.4.3 - Publisher: dsznajder - VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets - - -## How to +## Challenges -### Run postman collection +### Session * -1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` -2. Import collection to postman -3. Register a new user using the "register" API, inside the "Auth" folder - ![Register User](assets/register-user.png) -4. Use the credentials to generate a token using the "login" API - ![Generate token](assets/generate-token.png) -5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` - ![Postman Variables](/assets/postman-variables.png) +## How to \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a80b2967..4e7d20dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,19 +17,17 @@ "@angular/platform-browser": "~17.0.0", "@angular/platform-browser-dynamic": "~17.0.0", "@angular/router": "~17.0.0", - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.15.11", - "@mui/material": "^5.15.11", "@swc/helpers": "~0.5.2", - "axios": "^1.6.7", + "axios": "^1.0.0", + "bcrypt": "^5.1.1", + "cors": "^2.8.5", "express": "~4.18.1", - "json-server": "^1.0.0-alpha.23", + "helmet": "^7.1.0", + "jsonwebtoken": "^9.0.2", "mongoose": "^8.0.3", "normalize.css": "^8.0.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-hook-form": "^7.51.0", "react-router-dom": "6.11.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", @@ -2378,6 +2376,7 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -2390,6 +2389,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -2401,6 +2401,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2414,6 +2415,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -2421,12 +2423,14 @@ "node_modules/@babel/code-frame/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { "node": ">=4" } @@ -2435,6 +2439,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -2678,6 +2683,7 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -2799,6 +2805,7 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -2807,6 +2814,7 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -2852,6 +2860,7 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -2865,6 +2874,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -2876,6 +2886,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2889,6 +2900,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -2896,12 +2908,14 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { "node": ">=4" } @@ -2910,6 +2924,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -4391,9 +4406,10 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", + "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -4440,6 +4456,7 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -4486,163 +4503,6 @@ "node": ">=10.0.0" } }, - "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "node_modules/@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", - "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", - "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" - }, - "node_modules/@emotion/styled": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", - "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/is-prop-valid": "^1.2.1", - "@emotion/serialize": "^1.1.2", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", @@ -5115,40 +4975,6 @@ "node": ">=14" } }, - "node_modules/@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", - "dependencies": { - "@floating-ui/utils": "^0.2.1" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", - "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", - "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", - "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", - "dependencies": { - "@floating-ui/dom": "^1.6.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.13", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", @@ -5679,276 +5505,114 @@ "node": ">= 0.4" } }, - "node_modules/@mole-inc/bin-wrapper": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", - "integrity": "sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==", - "dev": true, - "dependencies": { - "bin-check": "^4.1.0", - "bin-version-check": "^5.0.0", - "content-disposition": "^0.5.4", - "ext-name": "^5.0.0", - "file-type": "^17.1.6", - "filenamify": "^5.0.2", - "got": "^11.8.5", - "os-filter-obj": "^2.0.0" + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@mongodb-js/saslprep": { + "node_modules/@mapbox/node-pre-gyp/node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", - "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "node_modules/@mui/base": { - "version": "5.0.0-beta.37", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.37.tgz", - "integrity": "sha512-/o3anbb+DeCng8jNsd3704XtmmLDZju1Fo8R2o7ugrVtPQ/QpcqddwKNzKPZwa0J5T8YNW3ZVuHyQgbTnQLisQ==", + "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@floating-ui/react-dom": "^2.0.8", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "@popperjs/core": "^2.11.8", - "clsx": "^2.1.0", - "prop-types": "^15.8.1" + "debug": "4" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/core-downloads-tracker": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz", - "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">= 6.0.0" } }, - "node_modules/@mui/icons-material": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.11.tgz", - "integrity": "sha512-R5ZoQqnKpd+5Ew7mBygTFLxgYsQHPhgR3TDXSgIHYIjGzYuyPLmGLSdcPUoMdi6kxiYqHlpPj4NJxlbaFD0UHA==", + "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { - "@babel/runtime": "^7.23.9" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">= 6" } }, - "node_modules/@mui/material": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.11.tgz", - "integrity": "sha512-FA3eEuEZaDaxgN3CgfXezMWbCZ4VCeU/sv0F0/PK5n42qIgsPVD6q+j71qS7/62sp6wRFMHtDMpXRlN+tT/7NA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/base": "5.0.0-beta.37", - "@mui/core-downloads-tracker": "^5.15.11", - "@mui/system": "^5.15.11", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^18.2.0", - "react-transition-group": "^4.4.5" + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@mui/private-theming": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", - "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.15.11", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@mui/styled-engine": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz", - "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==", + "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" + "abbrev": "1" }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0" + "bin": { + "nopt": "bin/nopt.js" }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } + "engines": { + "node": ">=6" } }, - "node_modules/@mui/system": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.11.tgz", - "integrity": "sha512-9j35suLFq+MgJo5ktVSHPbkjDLRMBCV17NMBdEQurh6oWyGnLM4uhU4QGZZQ75o0vuhjJghOCA1jkO3+79wKsA==", + "node_modules/@mole-inc/bin-wrapper": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", + "integrity": "sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.15.11", - "@mui/styled-engine": "^5.15.11", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" + "bin-check": "^4.1.0", + "bin-version-check": "^5.0.0", + "content-disposition": "^0.5.4", + "ext-name": "^5.0.0", + "file-type": "^17.1.6", + "filenamify": "^5.0.2", + "got": "^11.8.5", + "os-filter-obj": "^2.0.0" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", - "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/@mui/utils": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", - "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@types/prop-types": "^15.7.11", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "sparse-bitfield": "^3.0.3" } }, "node_modules/@ngtools/webpack": { @@ -7175,16 +6839,8 @@ "node_modules/@polka/url": { "version": "1.0.0-next.24", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", - "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", + "dev": true }, "node_modules/@remix-run/router": { "version": "1.6.2", @@ -8205,276 +7861,6 @@ "react-dom": "^18.0.0" } }, - "node_modules/@tinyhttp/accepts": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.2.1.tgz", - "integrity": "sha512-2DHJLSJX1gqR5F6nKuu7+hyCNoPRNOxvnQ11m0X8klkSVoBFBO2HMf3bJ8P+fmNv1e6RjHzHF+G+hJ3dxXIQXQ==", - "dependencies": { - "mime": "4.0.1", - "negotiator": "^0.6.3" - }, - "engines": { - "node": ">=12.20.0" - }, - "funding": { - "type": "individual", - "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" - } - }, - "node_modules/@tinyhttp/accepts/node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", - "funding": [ - "https://github.com/sponsors/broofa" - ], - "bin": { - "mime": "bin/cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@tinyhttp/app": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.2.3.tgz", - "integrity": "sha512-njr499Tx9BwlnIGfJjTuqfPwaUSTsjhUeRq/jVtHJpS95UgWECH7kiq8+bEx6TFRXiNKpARZ6KJUemlMyV+iCg==", - "dependencies": { - "@tinyhttp/cookie": "2.1.0", - "@tinyhttp/proxy-addr": "2.1.3", - "@tinyhttp/req": "2.2.2", - "@tinyhttp/res": "2.2.2", - "@tinyhttp/router": "2.2.2", - "header-range-parser": "1.1.3", - "regexparam": "^2.0.1" - }, - "engines": { - "node": ">=14.21.3" - }, - "funding": { - "type": "individual", - "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" - } - }, - "node_modules/@tinyhttp/content-disposition": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.0.tgz", - "integrity": "sha512-w1dJaSAtcCinOlT/YQg35RnFCOBbCHBGDVhH4yLoiJVtecRAJ2cYMf5HP+UhfbXURa38GC8fkRXO0vODDTjmeg==", - "engines": { - "node": ">=12.20.0" - }, - "funding": { - "type": "individual", - "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" - } - }, - "node_modules/@tinyhttp/content-type": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@tinyhttp/content-type/-/content-type-0.1.4.tgz", - "integrity": "sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==", - "engines": { - "node": ">=12.4" - } - }, - "node_modules/@tinyhttp/cookie": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.1.0.tgz", - "integrity": "sha512-o56utxXvIuLTCtPm66r8lcyUufpw0RkO+u4wQrTbc6snyyGZZ9hHzGRxPyko0ks90ctOkLh0mNKn7YZaTWlvfw==", - "engines": { - "node": ">=12.20.0" - }, - "funding": { - "type": "individual", - "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" - } - }, - "node_modules/@tinyhttp/cookie-signature": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.1.0.tgz", - "integrity": "sha512-bpOXBGf9rKoajtEG75O7xjwW+u2I/NNPkJWJTDdr6j7Vx0lG5R9Hnl3ty80Af4jwyo90ywXVpZIxKLubPK6RzA==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/cors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz", - "integrity": "sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==", - "dependencies": { - "es-vary": "^0.1.1" - }, - "engines": { - "node": ">=12.4 || 14.x || >=16" - } - }, - "node_modules/@tinyhttp/encode-url": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.1.1.tgz", - "integrity": "sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/etag": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.1.1.tgz", - "integrity": "sha512-AcHGK1nMlKIHmlbg8bb8UY/KhiaAX17SAn3/6wlgwwdX4UizA8HETDfCH3KLdu2ZASokynuwVFNDJCo1DAawGw==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/forwarded": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.1.2.tgz", - "integrity": "sha512-9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/proxy-addr": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.1.3.tgz", - "integrity": "sha512-Z0Q/0wEJpvall7LlBezXDy96CXLzPZb6xJawwEgsMXXQhmjb+r3EkpCBwMrWm2GlbJFL/UxKxpdumiNW3Ne06g==", - "dependencies": { - "@tinyhttp/forwarded": "2.1.2", - "ipaddr.js": "^2.1.0" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/proxy-addr/node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tinyhttp/req": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.2.2.tgz", - "integrity": "sha512-LaL/RFRro0qjOQ0g3vxE6i9bWl9hhv9en7opykzLU4NimFPg2C8wl7Qkoyc0mDuoRMQmWpq730PDWXSUmLiT2A==", - "dependencies": { - "@tinyhttp/accepts": "2.2.1", - "@tinyhttp/type-is": "2.2.2", - "@tinyhttp/url": "2.1.1", - "header-range-parser": "^1.1.3" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/res": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.2.2.tgz", - "integrity": "sha512-YeEYFwozag2qO5xoTj1Df+d5l6MXUefxz3xbcJD6ASVqUQytTEYtOC0FjhQKLpTLjMJKlS4mkKmeIdDLFO9btg==", - "dependencies": { - "@tinyhttp/content-disposition": "2.2.0", - "@tinyhttp/cookie": "2.1.0", - "@tinyhttp/cookie-signature": "2.1.0", - "@tinyhttp/encode-url": "2.1.1", - "@tinyhttp/req": "2.2.2", - "@tinyhttp/send": "2.2.1", - "@tinyhttp/vary": "^0.1.3", - "es-escape-html": "^0.1.1", - "mime": "4.0.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/res/node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", - "funding": [ - "https://github.com/sponsors/broofa" - ], - "bin": { - "mime": "bin/cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@tinyhttp/router": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.2.2.tgz", - "integrity": "sha512-i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/send": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.2.1.tgz", - "integrity": "sha512-uFW0fxmYIPpB5RKP2vpL8QuafjUrCBmBWxZMIhFb7uBQky87t7x1QdpRB0vc+w11a2kok+Nc8ClD5kc6CRJCFg==", - "dependencies": { - "@tinyhttp/content-type": "^0.1.4", - "@tinyhttp/etag": "2.1.1", - "mime": "4.0.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/send/node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", - "funding": [ - "https://github.com/sponsors/broofa" - ], - "bin": { - "mime": "bin/cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@tinyhttp/type-is": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.2.2.tgz", - "integrity": "sha512-DmTm0MkdrUxEPI2WBBoYJT0bitWx6+xeUd3lya1NGbKmYArzyUE+KVro/9y/h6Bxh+RaAKNeTCF4H/ksbe/ULQ==", - "dependencies": { - "@tinyhttp/content-type": "^0.1.4", - "mime": "4.0.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/type-is/node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", - "funding": [ - "https://github.com/sponsors/broofa" - ], - "bin": { - "mime": "bin/cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@tinyhttp/url": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.1.1.tgz", - "integrity": "sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@tinyhttp/vary": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@tinyhttp/vary/-/vary-0.1.3.tgz", - "integrity": "sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==", - "engines": { - "node": ">=12.20" - } - }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -8887,12 +8273,14 @@ "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true }, "node_modules/@types/prop-types": { "version": "15.7.11", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true }, "node_modules/@types/qs": { "version": "6.9.11", @@ -8910,6 +8298,7 @@ "version": "18.2.33", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", + "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -8925,14 +8314,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", - "dependencies": { - "@types/react": "*" - } - }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -8951,7 +8332,8 @@ "node_modules/@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true }, "node_modules/@types/semver": { "version": "7.5.6", @@ -10030,7 +9412,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -10054,6 +9435,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -10062,6 +9444,11 @@ "node": ">= 8" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, "node_modules/arch": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", @@ -10082,6 +9469,18 @@ } ] }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -10313,9 +9712,9 @@ } }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "dependencies": { "follow-redirects": "^1.15.4", "form-data": "^4.0.0", @@ -10552,20 +9951,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", @@ -10665,8 +10050,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -10721,6 +10105,24 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "node_modules/bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bcrypt/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -10897,6 +10299,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "engines": { "node": ">=8" } @@ -10968,7 +10371,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10978,6 +10380,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -11303,6 +10706,11 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -11472,6 +10880,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "engines": { "node": ">=6" } @@ -11582,6 +10991,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "funding": [ { "type": "individual", @@ -11608,7 +11018,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, "engines": { "node": ">=10" } @@ -11734,14 +11143,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", - "engines": { - "node": ">=6" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -11776,6 +11177,14 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -11893,8 +11302,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -11980,6 +11388,11 @@ "node": ">= 0.6" } }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -12148,7 +11561,6 @@ "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, "dependencies": { "object-assign": "^4", "vary": "^1" @@ -12170,6 +11582,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -12501,7 +11914,8 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -12731,6 +12145,11 @@ "node": ">=0.4.0" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -12757,6 +12176,14 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -12858,15 +12285,6 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -12945,31 +12363,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dot-prop": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz", - "integrity": "sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==", - "dependencies": { - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/dotenv": { "version": "16.3.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", @@ -13027,6 +12420,14 @@ "node": ">= 0.8.0" } }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -13068,8 +12469,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -13092,7 +12492,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -13102,7 +12501,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -13241,6 +12639,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -13298,14 +12697,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-escape-html": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz", - "integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==", - "engines": { - "node": ">=12.x" - } - }, "node_modules/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -13378,14 +12769,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-vary": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/es-vary/-/es-vary-0.1.2.tgz", - "integrity": "sha512-pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==", - "engines": { - "node": ">=12.x" - } - }, "node_modules/esbuild": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", @@ -13454,6 +12837,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -14061,17 +13445,6 @@ "node": ">=0.10.0" } }, - "node_modules/eta": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz", - "integrity": "sha512-Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -14501,6 +13874,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -14579,11 +13953,6 @@ "semver": "bin/semver.js" } }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -14846,13 +14215,13 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -14897,6 +14266,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -14979,7 +14367,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14999,6 +14386,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -15016,7 +14404,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -15219,6 +14606,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -15256,27 +14648,14 @@ "he": "bin/he" } }, - "node_modules/header-range-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.3.tgz", - "integrity": "sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==", + "node_modules/helmet": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.1.0.tgz", + "integrity": "sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==", "engines": { - "node": ">=12.22.0" + "node": ">=16.0.0" } }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", @@ -15678,6 +15057,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -15693,6 +15073,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "engines": { "node": ">=4" } @@ -15734,19 +15115,10 @@ "node": ">=8" } }, - "node_modules/inflection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-3.0.0.tgz", - "integrity": "sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -15958,7 +15330,8 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "node_modules/is-bigint": { "version": "1.0.4", @@ -15976,6 +15349,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -16015,6 +15389,7 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -16056,6 +15431,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -16064,7 +15440,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -16082,6 +15457,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -16129,6 +15505,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -17437,7 +16814,8 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -17445,42 +16823,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json-server": { - "version": "1.0.0-alpha.23", - "resolved": "https://registry.npmjs.org/json-server/-/json-server-1.0.0-alpha.23.tgz", - "integrity": "sha512-FPL1veNELhkr3tttwbIutKPkc/AUfLWSmslTwLYYPzl9RbCJQrwSPJceYWg2LnK1cv20tcEMLI2Kxl1lHz155Q==", - "dependencies": { - "@tinyhttp/app": "^2.2.3", - "@tinyhttp/cors": "^2.0.0", - "chalk": "^5.3.0", - "chokidar": "^3.5.3", - "dot-prop": "^8.0.2", - "eta": "^3.2.0", - "inflection": "^3.0.0", - "json5": "^2.2.3", - "lowdb": "^7.0.1", - "milliparsec": "^2.3.0", - "sirv": "^2.0.4", - "sort-on": "^6.0.0" - }, - "bin": { - "json-server": "lib/bin.js" - }, - "engines": { - "node": ">=18.3" - } - }, - "node_modules/json-server/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -17491,6 +16833,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -17543,6 +16886,57 @@ "node >= 0.2.0" ] }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonwebtoken/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -17558,6 +16952,25 @@ "node": ">=4.0" } }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/kareem": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", @@ -17915,12 +17328,42 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, "node_modules/lodash.isfinite": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "dev": true }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -17933,6 +17376,11 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -17975,20 +17423,6 @@ "get-func-name": "^2.0.1" } }, - "node_modules/lowdb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-7.0.1.tgz", - "integrity": "sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==", - "dependencies": { - "steno": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -18161,14 +17595,6 @@ "node": ">=8.6" } }, - "node_modules/milliparsec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/milliparsec/-/milliparsec-2.3.0.tgz", - "integrity": "sha512-b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==", - "engines": { - "node": ">=12.4" - } - }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -18423,7 +17849,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -18436,7 +17861,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -18447,8 +17871,7 @@ "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/mitt": { "version": "1.2.0", @@ -18744,6 +18167,44 @@ "dev": true, "optional": true }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -18911,6 +18372,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -19046,6 +18508,17 @@ "node": ">=8" } }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -19302,7 +18775,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -19574,6 +19046,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -19585,6 +19058,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -19601,7 +19075,8 @@ "node_modules/parse-json/node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/parse-node-version": { "version": "1.0.1", @@ -19689,7 +19164,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19706,7 +19180,8 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-scurry": { "version": "1.10.1", @@ -19742,6 +19217,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "engines": { "node": ">=8" } @@ -19784,6 +19260,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -20601,6 +20078,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -20610,7 +20088,8 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -20788,25 +20267,11 @@ "react": "^18.2.0" } }, - "node_modules/react-hook-form": { - "version": "7.51.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.0.tgz", - "integrity": "sha512-BggOy5j58RdhdMzzRUHGOYhSz1oeylFAv6jUSG86OvCIvlAvS7KvnRY7yoAf2pfEiPN7BesnR0xx73nEk3qIiw==", - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18" - } - }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true }, "node_modules/react-refresh": { "version": "0.14.0", @@ -20847,21 +20312,6 @@ "react-dom": ">=16.8" } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -20967,7 +20417,6 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -20997,6 +20446,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -21031,7 +20481,8 @@ "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -21065,14 +20516,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexparam": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz", - "integrity": "sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==", - "engines": { - "node": ">=8" - } - }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -21139,6 +20582,7 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -21299,7 +20743,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -21625,7 +21068,6 @@ "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -21667,7 +21109,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -21678,8 +21119,7 @@ "node_modules/semver/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/send": { "version": "0.18.0", @@ -21829,6 +21269,11 @@ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", "dev": true }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, "node_modules/set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", @@ -21931,8 +21376,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sigstore": { "version": "2.1.0", @@ -21953,6 +21397,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -21966,6 +21411,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, "engines": { "node": ">=10" } @@ -22132,20 +21578,6 @@ "node": ">=0.10.0" } }, - "node_modules/sort-on": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/sort-on/-/sort-on-6.0.0.tgz", - "integrity": "sha512-d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==", - "dependencies": { - "dot-prop": "^8.0.2" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -22336,17 +21768,6 @@ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, - "node_modules/steno": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/steno/-/steno-4.0.2.tgz", - "integrity": "sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -22379,7 +21800,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -22401,7 +21821,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -22495,7 +21914,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -22645,11 +22063,6 @@ "postcss": "^8.4.31" } }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, "node_modules/stylus": { "version": "0.59.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", @@ -22740,6 +22153,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -22815,7 +22229,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -22848,7 +22261,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -22860,7 +22272,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -22872,7 +22283,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -22881,7 +22291,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -22892,8 +22301,7 @@ "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/terser": { "version": "5.24.0", @@ -23110,6 +22518,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "engines": { "node": ">=4" } @@ -23118,6 +22527,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -23154,6 +22564,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, "engines": { "node": ">=6" } @@ -23746,8 +23157,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/utils-merge": { "version": "1.0.1", @@ -24512,6 +23922,14 @@ "node": ">=8" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -24556,8 +23974,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "4.0.2", @@ -24636,6 +24053,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "engines": { "node": ">= 6" } @@ -26067,6 +25485,7 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, "requires": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -26076,6 +25495,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -26084,6 +25504,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -26094,6 +25515,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -26101,17 +25523,20 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -26301,6 +25726,7 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, "requires": { "@babel/types": "^7.22.15" } @@ -26385,12 +25811,14 @@ "@babel/helper-string-parser": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true }, "@babel/helper-validator-identifier": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true }, "@babel/helper-validator-option": { "version": "7.23.5", @@ -26424,6 +25852,7 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -26434,6 +25863,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -26442,6 +25872,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -26452,6 +25883,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -26459,17 +25891,20 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -27457,9 +26892,10 @@ "dev": true }, "@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", + "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "dev": true, "requires": { "regenerator-runtime": "^0.14.0" } @@ -27497,6 +26933,7 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, "requires": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -27536,137 +26973,6 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, - "@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - } - } - }, - "@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "requires": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" - } - }, - "@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" - }, - "@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "requires": { - "@emotion/memoize": "^0.8.1" - } - }, - "@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", - "requires": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" - } - }, - "@emotion/serialize": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", - "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", - "requires": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" - } - }, - "@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" - }, - "@emotion/styled": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", - "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", - "requires": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/is-prop-valid": "^1.2.1", - "@emotion/serialize": "^1.1.2", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1" - } - }, - "@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" - }, - "@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "requires": {} - }, - "@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" - }, - "@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" - }, "@esbuild/aix-ppc64": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", @@ -27898,36 +27204,6 @@ "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", "dev": true }, - "@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", - "requires": { - "@floating-ui/utils": "^0.2.1" - } - }, - "@floating-ui/dom": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", - "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", - "requires": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" - } - }, - "@floating-ui/react-dom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", - "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", - "requires": { - "@floating-ui/dom": "^1.6.1" - } - }, - "@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" - }, "@humanwhocodes/config-array": { "version": "0.11.13", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", @@ -28340,6 +27616,69 @@ "call-bind": "^1.0.2" } }, + "@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + } + } + }, "@mole-inc/bin-wrapper": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", @@ -28364,105 +27703,6 @@ "sparse-bitfield": "^3.0.3" } }, - "@mui/base": { - "version": "5.0.0-beta.37", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.37.tgz", - "integrity": "sha512-/o3anbb+DeCng8jNsd3704XtmmLDZju1Fo8R2o7ugrVtPQ/QpcqddwKNzKPZwa0J5T8YNW3ZVuHyQgbTnQLisQ==", - "requires": { - "@babel/runtime": "^7.23.9", - "@floating-ui/react-dom": "^2.0.8", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "@popperjs/core": "^2.11.8", - "clsx": "^2.1.0", - "prop-types": "^15.8.1" - } - }, - "@mui/core-downloads-tracker": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz", - "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==" - }, - "@mui/icons-material": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.11.tgz", - "integrity": "sha512-R5ZoQqnKpd+5Ew7mBygTFLxgYsQHPhgR3TDXSgIHYIjGzYuyPLmGLSdcPUoMdi6kxiYqHlpPj4NJxlbaFD0UHA==", - "requires": { - "@babel/runtime": "^7.23.9" - } - }, - "@mui/material": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.11.tgz", - "integrity": "sha512-FA3eEuEZaDaxgN3CgfXezMWbCZ4VCeU/sv0F0/PK5n42qIgsPVD6q+j71qS7/62sp6wRFMHtDMpXRlN+tT/7NA==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/base": "5.0.0-beta.37", - "@mui/core-downloads-tracker": "^5.15.11", - "@mui/system": "^5.15.11", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^18.2.0", - "react-transition-group": "^4.4.5" - } - }, - "@mui/private-theming": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", - "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.15.11", - "prop-types": "^15.8.1" - } - }, - "@mui/styled-engine": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz", - "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==", - "requires": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - } - }, - "@mui/system": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.11.tgz", - "integrity": "sha512-9j35suLFq+MgJo5ktVSHPbkjDLRMBCV17NMBdEQurh6oWyGnLM4uhU4QGZZQ75o0vuhjJghOCA1jkO3+79wKsA==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.15.11", - "@mui/styled-engine": "^5.15.11", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - } - }, - "@mui/types": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", - "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", - "requires": {} - }, - "@mui/utils": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", - "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", - "requires": { - "@babel/runtime": "^7.23.9", - "@types/prop-types": "^15.7.11", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - } - }, "@ngtools/webpack": { "version": "17.0.9", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.9.tgz", @@ -29343,12 +28583,8 @@ "@polka/url": { "version": "1.0.0-next.24", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", - "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" - }, - "@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", + "dev": true }, "@remix-run/router": { "version": "1.6.2", @@ -29948,177 +29184,6 @@ "@types/react-dom": "^18.0.0" } }, - "@tinyhttp/accepts": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.2.1.tgz", - "integrity": "sha512-2DHJLSJX1gqR5F6nKuu7+hyCNoPRNOxvnQ11m0X8klkSVoBFBO2HMf3bJ8P+fmNv1e6RjHzHF+G+hJ3dxXIQXQ==", - "requires": { - "mime": "4.0.1", - "negotiator": "^0.6.3" - }, - "dependencies": { - "mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" - } - } - }, - "@tinyhttp/app": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.2.3.tgz", - "integrity": "sha512-njr499Tx9BwlnIGfJjTuqfPwaUSTsjhUeRq/jVtHJpS95UgWECH7kiq8+bEx6TFRXiNKpARZ6KJUemlMyV+iCg==", - "requires": { - "@tinyhttp/cookie": "2.1.0", - "@tinyhttp/proxy-addr": "2.1.3", - "@tinyhttp/req": "2.2.2", - "@tinyhttp/res": "2.2.2", - "@tinyhttp/router": "2.2.2", - "header-range-parser": "1.1.3", - "regexparam": "^2.0.1" - } - }, - "@tinyhttp/content-disposition": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.0.tgz", - "integrity": "sha512-w1dJaSAtcCinOlT/YQg35RnFCOBbCHBGDVhH4yLoiJVtecRAJ2cYMf5HP+UhfbXURa38GC8fkRXO0vODDTjmeg==" - }, - "@tinyhttp/content-type": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@tinyhttp/content-type/-/content-type-0.1.4.tgz", - "integrity": "sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==" - }, - "@tinyhttp/cookie": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.1.0.tgz", - "integrity": "sha512-o56utxXvIuLTCtPm66r8lcyUufpw0RkO+u4wQrTbc6snyyGZZ9hHzGRxPyko0ks90ctOkLh0mNKn7YZaTWlvfw==" - }, - "@tinyhttp/cookie-signature": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.1.0.tgz", - "integrity": "sha512-bpOXBGf9rKoajtEG75O7xjwW+u2I/NNPkJWJTDdr6j7Vx0lG5R9Hnl3ty80Af4jwyo90ywXVpZIxKLubPK6RzA==" - }, - "@tinyhttp/cors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz", - "integrity": "sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==", - "requires": { - "es-vary": "^0.1.1" - } - }, - "@tinyhttp/encode-url": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.1.1.tgz", - "integrity": "sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==" - }, - "@tinyhttp/etag": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.1.1.tgz", - "integrity": "sha512-AcHGK1nMlKIHmlbg8bb8UY/KhiaAX17SAn3/6wlgwwdX4UizA8HETDfCH3KLdu2ZASokynuwVFNDJCo1DAawGw==" - }, - "@tinyhttp/forwarded": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.1.2.tgz", - "integrity": "sha512-9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==" - }, - "@tinyhttp/proxy-addr": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.1.3.tgz", - "integrity": "sha512-Z0Q/0wEJpvall7LlBezXDy96CXLzPZb6xJawwEgsMXXQhmjb+r3EkpCBwMrWm2GlbJFL/UxKxpdumiNW3Ne06g==", - "requires": { - "@tinyhttp/forwarded": "2.1.2", - "ipaddr.js": "^2.1.0" - }, - "dependencies": { - "ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" - } - } - }, - "@tinyhttp/req": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.2.2.tgz", - "integrity": "sha512-LaL/RFRro0qjOQ0g3vxE6i9bWl9hhv9en7opykzLU4NimFPg2C8wl7Qkoyc0mDuoRMQmWpq730PDWXSUmLiT2A==", - "requires": { - "@tinyhttp/accepts": "2.2.1", - "@tinyhttp/type-is": "2.2.2", - "@tinyhttp/url": "2.1.1", - "header-range-parser": "^1.1.3" - } - }, - "@tinyhttp/res": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.2.2.tgz", - "integrity": "sha512-YeEYFwozag2qO5xoTj1Df+d5l6MXUefxz3xbcJD6ASVqUQytTEYtOC0FjhQKLpTLjMJKlS4mkKmeIdDLFO9btg==", - "requires": { - "@tinyhttp/content-disposition": "2.2.0", - "@tinyhttp/cookie": "2.1.0", - "@tinyhttp/cookie-signature": "2.1.0", - "@tinyhttp/encode-url": "2.1.1", - "@tinyhttp/req": "2.2.2", - "@tinyhttp/send": "2.2.1", - "@tinyhttp/vary": "^0.1.3", - "es-escape-html": "^0.1.1", - "mime": "4.0.1" - }, - "dependencies": { - "mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" - } - } - }, - "@tinyhttp/router": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.2.2.tgz", - "integrity": "sha512-i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==" - }, - "@tinyhttp/send": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.2.1.tgz", - "integrity": "sha512-uFW0fxmYIPpB5RKP2vpL8QuafjUrCBmBWxZMIhFb7uBQky87t7x1QdpRB0vc+w11a2kok+Nc8ClD5kc6CRJCFg==", - "requires": { - "@tinyhttp/content-type": "^0.1.4", - "@tinyhttp/etag": "2.1.1", - "mime": "4.0.1" - }, - "dependencies": { - "mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" - } - } - }, - "@tinyhttp/type-is": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.2.2.tgz", - "integrity": "sha512-DmTm0MkdrUxEPI2WBBoYJT0bitWx6+xeUd3lya1NGbKmYArzyUE+KVro/9y/h6Bxh+RaAKNeTCF4H/ksbe/ULQ==", - "requires": { - "@tinyhttp/content-type": "^0.1.4", - "mime": "4.0.1" - }, - "dependencies": { - "mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==" - } - } - }, - "@tinyhttp/url": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.1.1.tgz", - "integrity": "sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==" - }, - "@tinyhttp/vary": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@tinyhttp/vary/-/vary-0.1.3.tgz", - "integrity": "sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==" - }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -30513,12 +29578,14 @@ "@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true }, "@types/prop-types": { "version": "15.7.11", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true }, "@types/qs": { "version": "6.9.11", @@ -30536,6 +29603,7 @@ "version": "18.2.33", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", + "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -30551,14 +29619,6 @@ "@types/react": "*" } }, - "@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", - "requires": { - "@types/react": "*" - } - }, "@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -30577,7 +29637,8 @@ "@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true }, "@types/semver": { "version": "7.5.6", @@ -31415,8 +30476,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -31431,17 +30491,32 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, "arch": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", "dev": true }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -31605,9 +30680,9 @@ "dev": true }, "axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "requires": { "follow-redirects": "^1.15.4", "form-data": "^4.0.0", @@ -31775,16 +30850,6 @@ "@types/babel__traverse": "^7.0.6" } }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, "babel-plugin-polyfill-corejs2": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", @@ -31865,8 +30930,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", @@ -31903,6 +30967,22 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + }, + "dependencies": { + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + } + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -32038,7 +31118,8 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, "bl": { "version": "4.1.0", @@ -32105,7 +31186,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -32115,6 +31195,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -32366,6 +31447,11 @@ "ieee754": "^1.1.13" } }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -32496,7 +31582,8 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camelcase": { "version": "5.3.1", @@ -32572,6 +31659,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -32586,8 +31674,7 @@ "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "chrome-trace-event": { "version": "1.0.3", @@ -32671,11 +31758,6 @@ "mimic-response": "^1.0.0" } }, - "clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==" - }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -32703,6 +31785,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, "colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -32807,8 +31894,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "confusing-browser-globals": { "version": "1.0.11", @@ -32881,6 +31967,11 @@ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -33006,7 +32097,6 @@ "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, "requires": { "object-assign": "^4", "vary": "^1" @@ -33022,6 +32112,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -33248,7 +32339,8 @@ "csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true }, "damerau-levenshtein": { "version": "1.0.8", @@ -33416,6 +32508,11 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -33432,6 +32529,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -33505,15 +32607,6 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -33570,21 +32663,6 @@ "tslib": "^2.0.3" } }, - "dot-prop": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz", - "integrity": "sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==", - "requires": { - "type-fest": "^3.8.0" - }, - "dependencies": { - "type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" - } - } - }, "dotenv": { "version": "16.3.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", @@ -33627,6 +32705,14 @@ "chalk": "4.1.2" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -33656,8 +32742,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "emojis-list": { "version": "3.0.0", @@ -33674,7 +32759,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "optional": true, "requires": { "iconv-lite": "^0.6.2" @@ -33684,7 +32768,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -33797,6 +32880,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -33848,11 +32932,6 @@ "which-typed-array": "^1.1.13" } }, - "es-escape-html": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz", - "integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==" - }, "es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -33915,11 +32994,6 @@ "is-symbol": "^1.0.2" } }, - "es-vary": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/es-vary/-/es-vary-0.1.2.tgz", - "integrity": "sha512-pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==" - }, "esbuild": { "version": "0.19.11", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", @@ -33971,7 +33045,8 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true }, "escodegen": { "version": "2.1.0", @@ -34419,11 +33494,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "eta": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz", - "integrity": "sha512-Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==" - }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -34769,6 +33839,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -34830,11 +33901,6 @@ } } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -35014,13 +34080,13 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "optional": true }, "function-bind": { @@ -35046,6 +34112,22 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -35101,7 +34183,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -35115,7 +34196,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -35126,6 +34206,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -35276,6 +34357,11 @@ "has-symbols": "^1.0.2" } }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, "hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -35307,25 +34393,10 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "header-range-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.3.tgz", - "integrity": "sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==" - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } + "helmet": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.1.0.tgz", + "integrity": "sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==" }, "hosted-git-info": { "version": "7.0.1", @@ -35626,6 +34697,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -35634,7 +34706,8 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true } } }, @@ -35660,16 +34733,10 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "inflection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-3.0.0.tgz", - "integrity": "sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -35827,7 +34894,8 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "is-bigint": { "version": "1.0.4", @@ -35842,6 +34910,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -35866,6 +34935,7 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, "requires": { "hasown": "^2.0.0" } @@ -35888,13 +34958,13 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-generator-fn": { "version": "2.1.0", @@ -35906,6 +34976,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -35937,7 +35008,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-like": { "version": "1.0.8", @@ -36907,7 +35979,8 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -36915,32 +35988,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-server": { - "version": "1.0.0-alpha.23", - "resolved": "https://registry.npmjs.org/json-server/-/json-server-1.0.0-alpha.23.tgz", - "integrity": "sha512-FPL1veNELhkr3tttwbIutKPkc/AUfLWSmslTwLYYPzl9RbCJQrwSPJceYWg2LnK1cv20tcEMLI2Kxl1lHz155Q==", - "requires": { - "@tinyhttp/app": "^2.2.3", - "@tinyhttp/cors": "^2.0.0", - "chalk": "^5.3.0", - "chokidar": "^3.5.3", - "dot-prop": "^8.0.2", - "eta": "^3.2.0", - "inflection": "^3.0.0", - "json5": "^2.2.3", - "lowdb": "^7.0.1", - "milliparsec": "^2.3.0", - "sirv": "^2.0.4", - "sort-on": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" - } - } - }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -36950,7 +35997,8 @@ "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true }, "jsonc-eslint-parser": { "version": "2.4.0", @@ -36986,6 +36034,46 @@ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true }, + "jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -36998,6 +36086,25 @@ "object.values": "^1.1.6" } }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "kareem": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", @@ -37264,12 +36371,42 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, "lodash.isfinite": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "dev": true }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -37282,6 +36419,11 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -37315,14 +36457,6 @@ "get-func-name": "^2.0.1" } }, - "lowdb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-7.0.1.tgz", - "integrity": "sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==", - "requires": { - "steno": "^4.0.2" - } - }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -37462,11 +36596,6 @@ "picomatch": "^2.3.1" } }, - "milliparsec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/milliparsec/-/milliparsec-2.3.0.tgz", - "integrity": "sha512-b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==" - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -37663,7 +36792,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -37673,7 +36801,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -37681,8 +36808,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -37892,6 +37018,35 @@ "dev": true, "optional": true }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -38013,7 +37168,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-range": { "version": "0.1.2", @@ -38113,6 +37269,17 @@ "path-key": "^3.0.0" } }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -38301,7 +37468,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } @@ -38502,6 +37668,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "requires": { "callsites": "^3.0.0" } @@ -38510,6 +37677,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -38520,7 +37688,8 @@ "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true } } }, @@ -38592,8 +37761,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", @@ -38604,7 +37772,8 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "path-scurry": { "version": "1.10.1", @@ -38632,7 +37801,8 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true }, "pathe": { "version": "1.1.1", @@ -38661,7 +37831,8 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "2.3.0", @@ -39195,6 +38366,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -39204,7 +38376,8 @@ "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true } } }, @@ -39330,16 +38503,11 @@ "scheduler": "^0.23.0" } }, - "react-hook-form": { - "version": "7.51.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.0.tgz", - "integrity": "sha512-BggOy5j58RdhdMzzRUHGOYhSz1oeylFAv6jUSG86OvCIvlAvS7KvnRY7yoAf2pfEiPN7BesnR0xx73nEk3qIiw==", - "requires": {} - }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true }, "react-refresh": { "version": "0.14.0", @@ -39364,17 +38532,6 @@ "react-router": "6.11.2" } }, - "react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -39457,7 +38614,6 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -39477,6 +38633,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -39505,7 +38662,8 @@ "regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true }, "regenerator-transform": { "version": "0.15.2", @@ -39533,11 +38691,6 @@ "set-function-name": "^2.0.0" } }, - "regexparam": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz", - "integrity": "sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==" - }, "regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -39591,6 +38744,7 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, "requires": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -39718,7 +38872,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -39941,7 +39094,6 @@ "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, "requires": { "lru-cache": "^6.0.0" }, @@ -39950,7 +39102,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -39958,8 +39109,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -40114,6 +39264,11 @@ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", "dev": true }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, "set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", @@ -40195,8 +39350,7 @@ "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sigstore": { "version": "2.1.0", @@ -40214,6 +39368,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, "requires": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -40223,7 +39378,8 @@ "mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==" + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true } } }, @@ -40359,14 +39515,6 @@ "sort-keys": "^1.0.0" } }, - "sort-on": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/sort-on/-/sort-on-6.0.0.tgz", - "integrity": "sha512-d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==", - "requires": { - "dot-prop": "^8.0.2" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -40527,11 +39675,6 @@ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, - "steno": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/steno/-/steno-4.0.2.tgz", - "integrity": "sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==" - }, "stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -40555,7 +39698,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -40574,7 +39716,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -40646,7 +39787,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -40737,11 +39877,6 @@ "postcss-selector-parser": "^6.0.15" } }, - "stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, "stylus": { "version": "0.59.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", @@ -40806,7 +39941,8 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "svg-parser": { "version": "2.0.4", @@ -40859,7 +39995,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -40873,7 +40008,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "requires": { "minipass": "^3.0.0" }, @@ -40882,7 +40016,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -40892,20 +40025,17 @@ "minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -41079,12 +40209,14 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -41107,7 +40239,8 @@ "totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==" + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true }, "tough-cookie": { "version": "4.1.3", @@ -41498,8 +40631,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "utils-merge": { "version": "1.0.1", @@ -41976,6 +41108,14 @@ "stackback": "0.0.2" } }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -42007,8 +41147,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "4.0.2", @@ -42060,7 +41199,8 @@ "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true }, "yargs": { "version": "17.7.2", @@ -42104,4 +41244,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 02839adc..221fc6d9 100644 --- a/package.json +++ b/package.json @@ -17,19 +17,17 @@ "@angular/platform-browser": "~17.0.0", "@angular/platform-browser-dynamic": "~17.0.0", "@angular/router": "~17.0.0", - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.15.11", - "@mui/material": "^5.15.11", "@swc/helpers": "~0.5.2", - "axios": "^1.6.7", + "axios": "^1.0.0", + "bcrypt": "^5.1.1", + "cors": "^2.8.5", "express": "~4.18.1", - "json-server": "^1.0.0-alpha.23", + "helmet": "^7.1.0", + "jsonwebtoken": "^9.0.2", "mongoose": "^8.0.3", "normalize.css": "^8.0.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-hook-form": "^7.51.0", "react-router-dom": "6.11.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", From 9b1813a6f3483d2ec5a4c67668d823eb10f57c22 Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Wed, 9 Oct 2024 11:10:15 -0700 Subject: [PATCH 16/29] Activity 2 --- apps/react-app/src/App.tsx | 10 ++-------- .../src/components/Page/LoginPage/LoginPage.tsx | 15 +++++++++++++++ .../src/components/Page/LoginPage/index.ts | 2 +- apps/react-app/src/components/Page/index.ts | 2 +- 4 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 103de6d7..c80d33b0 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,7 +1,6 @@ import { Grid } from "@mui/material"; -import { HomePage } from "./components/Page"; -import { PageContainer } from "./components/Page/LoginPage/LoginPage.styles"; +import { HomePage, LoginPage } from "./components/Page"; import { PostPage } from "./components/Page"; import { CategoriesPage } from "./components/Page"; @@ -12,12 +11,7 @@ function App() { {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} - - Login Page - - Form - - + ); } diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..9944a8aa --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,15 @@ +import { PageContainer } from "../CategoriesPage/CategoriesPage.styles"; +import { Grid } from "@mui/material"; + +function LoginPage(){ + return ( + + Login Page + + Form + + + ); +} + +export default LoginPage; \ No newline at end of file diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts index a22c8b67..bcf79128 100644 --- a/apps/react-app/src/components/Page/LoginPage/index.ts +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -1 +1 @@ - // ACT 2 - Export LoginPage component +export { default } from './LoginPage'; diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts index 4351b1ab..4a6ca4ec 100644 --- a/apps/react-app/src/components/Page/index.ts +++ b/apps/react-app/src/components/Page/index.ts @@ -1,4 +1,4 @@ export { default as HomePage } from "./HomePage"; export { default as PostPage } from "./PostPage"; export { default as CategoriesPage } from "./CategoriesPage"; -// ACT 2 - Export LoginPage component +export { default as LoginPage } from "./LoginPage"; From d8c7775a7637442276fa7f8ad7d7325363e397ba Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Wed, 9 Oct 2024 12:07:16 -0700 Subject: [PATCH 17/29] Activity 4 --- apps/react-app/src/App.tsx | 17 +++++------------ apps/react-app/src/components/Banner/Banner.tsx | 2 +- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 0c010835..905fe26f 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -3,6 +3,8 @@ import { Grid } from "@mui/material"; import { HomePage, LoginPage } from "./components/Page"; import { PostPage } from "./components/Page"; import { CategoriesPage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PageContainer } from "./components/Page/CategoriesPage/CategoriesPage.styles"; function App() { const page: string = "HomePage"; @@ -21,25 +23,16 @@ function App() { }} > {page === "HomePage" && } - {/* ACT 1 - Render PostPage and CategoriesPage components */} - {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} - {/* + Login Page - //Form + Form - */} +
- <> - - - - {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} - - ); } diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 114bdc7e..6013ef0a 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -9,7 +9,7 @@ const postTitle = "Gatito chino"; //ACT 1 - Write a title function Banner() { return ( - + {/* ACT 3 - Send postImage as image prop to Container component */} + + ); +} + +export default AddCommentForm; \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx index f20c604b..008dc0cb 100644 --- a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -1,8 +1,10 @@ -import { Grid } from "@mui/material"; +import { Button, Grid, Modal, TextField } from "@mui/material"; import { useEffect, useState } from "react"; import { PageContainer } from "./CategoriesPage.styles"; import { Category } from "../../../types"; import TableComponent from "../../Table"; +import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; +import { IconButton, CardContent } from "@mui/material"; const categories: Category[] = [ { id: "663fef70d513515319551d1f", name: "Travel" }, @@ -11,26 +13,123 @@ import TableComponent from "../../Table"; const headers: string[] = ["Name", "Actions"]; + const style = { + position: 'absolute', + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + width: '50%', + bgcolor: 'background.paper', + boxShadow: 24, + p: 4, +}; + function CategoriesPage() { // ACT 6 - Create a state called "rows" const [rows, setRows] = useState(null); + const [isModalOpened, setIsModalOpened] = useState(false); + const [errorInput, setErrorInput] = useState(false); + const [newCategory, setNewCategory] = useState(""); + const [isUpdate, setIsUpdate] = useState(false); + const [updatedCategory, setUpdatedCategory] = useState(""); + const [initialValueUpdatedCategory, setInitialValueUpdatedCategory] = useState(""); // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. useEffect(() => { setRows(categories); }, []); //ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" - function handleEditItem(){} function handleDeleteItem(){} + + function handleClose(){ + setIsModalOpened(false); + } + + function openModal(){ + setIsUpdate(false); + setIsModalOpened(true); + } + + function handleCreate(){ + if(newCategory.length === 0){ + setErrorInput(true); + }else { + setErrorInput(false); + setRows([...(rows || []), {id: Math.random.toString(), name: newCategory}]); + setIsModalOpened(false); + } + } + + function handleChange(value: string){ + setNewCategory(value); + if(value.length > 0){ + setErrorInput(false); + }else{ + setErrorInput(true); + } + } + + function handleChangeUpdate(value: string){ + setUpdatedCategory(value); + if(value.length > 0){ + setErrorInput(false); + }else{ + setErrorInput(true); + } + } + + function updateCategory(){ + setRows((prevState) => { + const up = prevState?.map(row => { + if(row.name === initialValueUpdatedCategory){ + row.name = updatedCategory; + } + return row; + }) || []; + console.log(up); + return up; + }); + } + + function handleEdit(value: string){ + setIsUpdate(true); + setIsModalOpened(true); + setUpdatedCategory(value); + setInitialValueUpdatedCategory(value); + } + + function handleUpdate(){ + if(updatedCategory.length === 0){ + setErrorInput(true); + }else{ + updateCategory(); + setIsUpdate(false); + setIsModalOpened(false); + } + } return ( Categories Page {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + - + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + + {!isUpdate ?

Create Category

:

Update Category

} + {!isUpdate ? handleChange(event.target.value)}> : handleChangeUpdate(event.target.value)} value={updatedCategory}>} +
+ + {!isUpdate ? : } +
+
+
); } diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index 20512000..d8285d8b 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -1,12 +1,159 @@ +import { useState, FormEvent, Dispatch, SetStateAction } from "react"; import { PageContainer } from "./LoginPage.styles"; -import { Grid } from "@mui/material"; +import { Button, Grid } from "@mui/material"; +import TextField from "../../TextField"; + +export interface LoginFields{ + inputValueUsername: string | null, + inputValuePassword: string | null +} + +export interface SignUpFields{ + inputValueUsername: string | null, + inputValuePassword: string | null, + inputValueFirstName: string | null, + inputValueLastName: string | null, + inputValueConfirmPassword: string | null +} + +interface TextFields{ + id: string, + label: string, + type: string, + value: string | null, + keyName: string, + error?: boolean + setState: Dispatch>, + comparePasswords?: (password: string | null, confirmPassword: string | null) => void; +} const LoginPage = () => { + + const [signUp, setSignUp] = useState(false); + const [loginFields, setLoginFields] = useState({ + inputValueUsername: null, + inputValuePassword: null + }); + const [singUpFields, setSignUpFields] = useState({ + inputValueUsername: null, + inputValuePassword: null, + inputValueFirstName: null, + inputValueLastName: null, + inputValueConfirmPassword: null + }); + const [error, setError] = useState(false); + + function comparePasswords(password: string | null, confirmPassword: string | null) { + if (password !== confirmPassword) { + setError(true); + } else { + setError(false); + } + } + + const textFieldsLogIn: TextFields[] = [ + { + id: "username-id", + label: "User Name", + type: "text", + value: loginFields.inputValueUsername, + keyName: "inputValueUsername", + setState: setLoginFields + }, + { + id: "password-id", + label: "Password", + type: "password", + value: loginFields.inputValuePassword, + keyName: "inputValuePassword", + setState: setLoginFields + } + ]; + + const textFieldsSignUp: TextFields[] = [ + { + id: "username-id-signup", + label: "User Name", + type: "text", + value: singUpFields.inputValueUsername, + keyName: "inputValueUsername", + setState: setSignUpFields + }, + { + id: "password-id-signup", + label: "Password", + type: "password", + value: singUpFields.inputValuePassword, + keyName: "inputValuePassword", + error: error, + comparePasswords: comparePasswords, + setState: setSignUpFields + }, + { + id: "first-name", + label: "First Name", + type: "text", + value: singUpFields.inputValueFirstName, + keyName: "inputValueFirstName", + setState: setSignUpFields + }, + { + id: "last-name", + label: "Last Name", + type: "text", + value: singUpFields.inputValueLastName, + keyName: "inputValueLastName", + setState: setSignUpFields + }, + { + id: "confirm-password", + label: "Confirm Password", + type: "password", + value: singUpFields.inputValueConfirmPassword, + keyName: "inputValueConfirmPassword", + error: error, + comparePasswords: comparePasswords, + setState: setSignUpFields + } + ] + + function handleChangeLogin(keyName: string, value: string):void{ + setLoginFields({...loginFields, [keyName]: value}); + } + + function handleClickSignUp():void{ + setSignUp(true); + } + + function handleClickLogIn():void{ + setSignUp(false); + } + + function handleSubmit(event: FormEvent):void{ + event.preventDefault(); + } + return ( Login Page {/* ACT 8 - Create a form to Login and SignUp */} + {!signUp && ( +
+ {textFieldsLogIn.map(textField => { + return + })} + + )} + {signUp && ( +
+ {textFieldsSignUp.map(textField => { + return + })} + + )} + +
); diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index dcf60daa..6997b221 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -15,7 +15,7 @@ import { useContext } from "react"; interface PostListProps { posts: Post[]; - selectedCategory: Category | null; + selectedCategory?: Category; handleOpenForm: (defaultValues?: Post) => void; } diff --git a/apps/react-app/src/components/Table/Table.tsx b/apps/react-app/src/components/Table/Table.tsx index 6bb9f1b5..329e8631 100644 --- a/apps/react-app/src/components/Table/Table.tsx +++ b/apps/react-app/src/components/Table/Table.tsx @@ -8,11 +8,12 @@ import {Paper} from "@mui/material"; interface TableProps{ headers: string[], categories: Category[] | null, - handleEditItem: () => void, - handleDeleteItem: () => void + handleDeleteItem: () => void, + handleEdit: (value: string) => void; } -function TableComponent({headers, categories, handleEditItem, handleDeleteItem}:TableProps){ +function TableComponent({headers, categories, handleDeleteItem, handleEdit}:TableProps){ + return ( @@ -30,7 +31,7 @@ function TableComponent({headers, categories, handleEditItem, handleDeleteItem}: {category.name} - + handleEdit(category.name)}> ) diff --git a/apps/react-app/src/components/TextField/TextField.tsx b/apps/react-app/src/components/TextField/TextField.tsx new file mode 100644 index 00000000..825c6f44 --- /dev/null +++ b/apps/react-app/src/components/TextField/TextField.tsx @@ -0,0 +1,66 @@ +import { TextField as TextFieldMui } from "@mui/material"; +import { Dispatch, SetStateAction } from "react"; +import { LoginFields, SignUpFields } from "../Page/LoginPage/LoginPage"; + +interface TextFieldProps{ + id: string, + label: string, + type: string, + value: string | null, + keyName: string, + error?: boolean, + comparePasswords?: (password: string | null, confirmPassword: string | null) => void; + setState: Dispatch> +} + +function TextField({id, label, type, value, keyName, error, comparePasswords, setState}: TextFieldProps){ + + function handleChange(keyName: string, value: string):void{ + setState((oldValue) => { + return {...oldValue, [keyName]: value} + }); + } + + function handleChangePasswords(keyName: string, value: string): void { + setState((oldValue) => { + const updatedFields = { ...oldValue, [keyName]: value }; + + // Aquí llamamos a comparePasswords con los valores actualizados + if (comparePasswords && (keyName === "inputValuePassword" || keyName === "inputValueConfirmPassword")) { + comparePasswords(updatedFields.inputValuePassword, updatedFields.inputValueConfirmPassword); + } + + return updatedFields; + }); + } + + return ( + <> + {!id.includes("password") ? ( handleChange(keyName, event.target.value)} + sx={{pb:2}} + />) : ( handleChangePasswords(keyName, event.target.value)} + error={error} + sx={{pb:2}} + />)} + + + ) +} + +export default TextField; \ No newline at end of file diff --git a/apps/react-app/src/components/TextField/index.ts b/apps/react-app/src/components/TextField/index.ts new file mode 100644 index 00000000..4b6daa14 --- /dev/null +++ b/apps/react-app/src/components/TextField/index.ts @@ -0,0 +1 @@ +export { default } from './TextField'; \ No newline at end of file diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 90015116..9c13e89a 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,5 +1,5 @@ -import React, { createContext, useState, useCallback, useContext } from "react"; - +import React, { createContext, useState, useCallback, useContext, useEffect } from "react"; +import { NewPost } from "../types"; import { Post } from "../types"; import { SnackbarProvider, SnackbarContext } from "./SnackbarProvider"; From 4d70e6372455a84d43c81820b1d689358ca7efbd Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Fri, 18 Oct 2024 15:40:07 -0700 Subject: [PATCH 25/29] Activity 8 --- .../src/components/Page/CategoriesPage/CategoriesPage.tsx | 2 +- apps/react-app/src/components/Page/LoginPage/LoginPage.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx index 008dc0cb..cc1d4e19 100644 --- a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -125,7 +125,7 @@ function CategoriesPage() { {!isUpdate ?

Create Category

:

Update Category

} {!isUpdate ? handleChange(event.target.value)}> : handleChangeUpdate(event.target.value)} value={updatedCategory}>}
- + {!isUpdate ? : }
diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index d8285d8b..5c3c1925 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -152,7 +152,7 @@ const LoginPage = () => { })} )} - + From 62ce36b3ba35c65d6a7149b30d1e9faaf0bb56f1 Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Fri, 18 Oct 2024 15:59:50 -0700 Subject: [PATCH 26/29] Activity 8 fix --- apps/react-app/src/components/PostList/PostList.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 6997b221..a3769f91 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -34,17 +34,13 @@ function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { > -

{post.title}

{post.title}

{post.comments.length} {post.comments.length > 1 ? " Comments" : " Comment"} - {post.comments.length} - {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

{post.category?.name} - {post.category?.name}
Date: Wed, 30 Oct 2024 14:14:34 -0700 Subject: [PATCH 27/29] Activity 9 --- apps/react-app/src/api/axios.ts | 2 +- .../react-app/src/api/endpoints/categories.ts | 95 ++++++++++++ apps/react-app/src/components/Form/Form.tsx | 7 - .../Page/CategoriesPage/CategoriesPage.tsx | 138 ++++++++++++++---- .../components/Page/LoginPage/LoginPage.tsx | 45 +++++- .../src/components/PostList/PostList.tsx | 6 - apps/react-app/src/components/Table/Table.tsx | 8 +- .../src/components/TextField/TextField.tsx | 5 +- apps/react-app/src/context/PostProvider.tsx | 71 +-------- apps/react-app/src/types/index.ts | 2 +- 10 files changed, 258 insertions(+), 121 deletions(-) diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 9d2ab0d9..fdb9eddf 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -2,7 +2,7 @@ import axios from "axios"; const axiosInstance = axios.create(); const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1Nzk4NTc2LCJleHAiOjE3MTU4MDIxNzZ9.EgW4AcErd_fwDVwZa-pzJCw12xKBzGJ32B8Ry92XRs8"; + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzMwMjQyODQxLCJleHAiOjE3MzAyNDY0NDF9.-j9VzMtlUKmSCgYGOh0-j280-QjBT6iUW485hi4kvNQ"; axiosInstance.interceptors.request.use((config) => { config.baseURL = "https://test.neuraac.com/api"; diff --git a/apps/react-app/src/api/endpoints/categories.ts b/apps/react-app/src/api/endpoints/categories.ts index 6d15b977..e8e51964 100644 --- a/apps/react-app/src/api/endpoints/categories.ts +++ b/apps/react-app/src/api/endpoints/categories.ts @@ -33,4 +33,99 @@ export const getCategories = async ({ .finally(() => onLoading && onLoading(false)); }; +export const createCategories = async ({ + onSuccess, + onError, + onLoading, + name +}: { + onSuccess?: (data: CategoriesResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; + name: string; +}) => { + + onLoading && onLoading(true); + + await axios({ + url: "/categories", + method: "post", + data: { + name: name + } + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse = response.data; + if((response.status === 200 || response.status === 201) && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const updateCategories = async ({ + onSuccess, + onError, + onLoading, + id, + name +}: { + onSuccess?: (data: CategoriesResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; + id: string; + name: string; +}) => { + + onLoading && onLoading(true); + + await axios({ + url: "/categories/"+id, + method: "patch", + data: { + name: name + } + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse = response.data; + if((response.status === 200 || response.status === 201) && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const deleteCategories = async ({ + onSuccess, + onError, + onLoading, + id +}: { + onSuccess?: (data: CategoriesResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; + id: string; +}) => { + + onLoading && onLoading(true); + + await axios({ + url: "/categories/"+id, + method: "delete", + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse = response.data; + if((response.status === 200 || response.status === 200) && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + // ACT 9 - Create callbacks fuctions to call create, update and delete APIs diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index f1fe605f..d544a65c 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -10,10 +10,8 @@ import { SelectChangeEvent, } from "@mui/material"; -import { NewPost, Post } from "../../types"; import { validator } from "../../common/utils"; import { Category, NewPost, Post } from "../../types"; -import { validator } from "../../common/utils"; import { PostContext } from "../../context"; import { FormInputs, Inputs } from "../../types"; @@ -106,11 +104,6 @@ const Form = ({ category: formData.category.value, }; - createOrUpdatePost({ - method: post ? "patch" : "post", - newPost, - postID: post?.id, - }); handleClose(); post diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx index cc1d4e19..974a6c36 100644 --- a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -1,15 +1,11 @@ import { Button, Grid, Modal, TextField } from "@mui/material"; -import { useEffect, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; import { PageContainer } from "./CategoriesPage.styles"; -import { Category } from "../../../types"; +import { CategoriesResponse, Category } from "../../../types"; import TableComponent from "../../Table"; import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; import { IconButton, CardContent } from "@mui/material"; - - const categories: Category[] = [ - { id: "663fef70d513515319551d1f", name: "Travel" }, - { id: "663fef70d513515319546d1f", name: "Food" }, - ]; +import { getCategories, createCategories, updateCategories, deleteCategories } from "../../../api"; const headers: string[] = ["Name", "Actions"]; @@ -31,14 +27,103 @@ function CategoriesPage() { const [errorInput, setErrorInput] = useState(false); const [newCategory, setNewCategory] = useState(""); const [isUpdate, setIsUpdate] = useState(false); - const [updatedCategory, setUpdatedCategory] = useState(""); - const [initialValueUpdatedCategory, setInitialValueUpdatedCategory] = useState(""); + const [updatedCategory, setUpdatedCategory] = useState(); + const [initialValueUpdatedCategory, setInitialValueUpdatedCategory] = useState(); // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + + const getCategoriesList = useCallback(async () => { + const onSuccess = (data: CategoriesResponse[]) => { + const newRows = data.map((category) => ({ + id: category._id, + name: category.name, + })); + setRows(newRows); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + }; + + await getCategories({ onSuccess, onError, onLoading }); + }, []); + + const createCategory = useCallback(async (data: string) => { + const onSuccess = (data: CategoriesResponse) => { + getCategoriesList(); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + }; + + const name = data; + + await createCategories({ onSuccess, onError, onLoading, name }); + }, []); + + useEffect(() => { + getCategoriesList(); + }, []); + + const updateCategoryApi = useCallback(async (id: string, name: string) => { + const onSuccess = (data: CategoriesResponse) => { + getCategoriesList(); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + }; + + await updateCategories({ onSuccess, onError, onLoading, id, name }); + }, []); + + useEffect(() => { + getCategoriesList(); + }, []); + + const deleteCategoryApi = useCallback(async (id: string) => { + const onSuccess = (data: CategoriesResponse) => { + getCategoriesList(); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + }; + + await deleteCategories({ onSuccess, onError, onLoading, id }); + }, []); + useEffect(() => { - setRows(categories); + getCategoriesList(); }, []); //ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" - function handleDeleteItem(){} + function handleDeleteItem(id: string){ + deleteCategoryApi(id); + } function handleClose(){ setIsModalOpened(false); @@ -54,8 +139,10 @@ function CategoriesPage() { setErrorInput(true); }else { setErrorInput(false); - setRows([...(rows || []), {id: Math.random.toString(), name: newCategory}]); + //setRows([...(rows || []), {id: Math.random.toString(), name: newCategory}]); + createCategory(newCategory); setIsModalOpened(false); + } } @@ -68,9 +155,9 @@ function CategoriesPage() { } } - function handleChangeUpdate(value: string){ - setUpdatedCategory(value); - if(value.length > 0){ + function handleChangeUpdate(category: Category){ + setUpdatedCategory(category); + if(category.name.length > 0){ setErrorInput(false); }else{ setErrorInput(true); @@ -78,27 +165,18 @@ function CategoriesPage() { } function updateCategory(){ - setRows((prevState) => { - const up = prevState?.map(row => { - if(row.name === initialValueUpdatedCategory){ - row.name = updatedCategory; - } - return row; - }) || []; - console.log(up); - return up; - }); + updateCategoryApi(initialValueUpdatedCategory!.id, updatedCategory!.name); } - function handleEdit(value: string){ + function handleEdit(category: Category){ setIsUpdate(true); setIsModalOpened(true); - setUpdatedCategory(value); - setInitialValueUpdatedCategory(value); + setUpdatedCategory(category); + setInitialValueUpdatedCategory(category); } function handleUpdate(){ - if(updatedCategory.length === 0){ + if(updatedCategory?.name.length === 0){ setErrorInput(true); }else{ updateCategory(); @@ -123,7 +201,7 @@ function CategoriesPage() { > {!isUpdate ?

Create Category

:

Update Category

} - {!isUpdate ? handleChange(event.target.value)}> : handleChangeUpdate(event.target.value)} value={updatedCategory}>} + {!isUpdate ? handleChange(event.target.value)}> : handleChangeUpdate({id: updatedCategory!.id, name: event.target.value})} value={updatedCategory!.name}>}
{!isUpdate ? : } diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index 5c3c1925..5adad5c8 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -1,7 +1,9 @@ -import { useState, FormEvent, Dispatch, SetStateAction } from "react"; +import { useState, FormEvent, Dispatch, SetStateAction, useCallback } from "react"; import { PageContainer } from "./LoginPage.styles"; import { Button, Grid } from "@mui/material"; import TextField from "../../TextField"; +import { createUser, login } from "../../../api/endpoints/auth"; +import { AuthLoginResponse, AuthResponse } from "../../../types/index"; export interface LoginFields{ inputValueUsername: string | null, @@ -117,16 +119,47 @@ const LoginPage = () => { } ] - function handleChangeLogin(keyName: string, value: string):void{ - setLoginFields({...loginFields, [keyName]: value}); - } + + const createUserApi = useCallback(async () => { + const onSuccess = (data: AuthResponse) => { + + } + + const onError = () =>{}; + + const onLoading = () => {}; + + createUser({ newUser: {firstname: singUpFields.inputValueFirstName!, lastname: singUpFields.inputValueLastName!, username: singUpFields.inputValueUsername!, password: singUpFields.inputValuePassword!}, onSuccess, onError, onLoading}); + }, [singUpFields]); + + const loginApi = useCallback(async () => { + + const onSuccess = (data: AuthLoginResponse) => { + console.log(data); + } + + const onError = () => {}; + + const onLoading = () => {}; + + login({ user: {username: loginFields.inputValueUsername!, password: loginFields.inputValuePassword!}, onSuccess, onError, onLoading}); + + }, [loginFields]); function handleClickSignUp():void{ - setSignUp(true); + if(signUp){ + createUserApi(); + }else{ + setSignUp(true); + } } function handleClickLogIn():void{ - setSignUp(false); + if(signUp){ + setSignUp(false); + }else{ + loginApi(); + } } function handleSubmit(event: FormEvent):void{ diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 0bacf98a..31cbc21f 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -12,9 +12,6 @@ import { CardContent, PostCard, } from "./PostList.styles"; -import { Category, Post } from "../../types"; -import { PostContext } from "../../context"; -import { useContext } from "react"; interface PostListProps { posts: Post[]; @@ -22,9 +19,6 @@ interface PostListProps { handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { - const { removePost } = useContext(PostContext); - function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { const { removePost } = useContext(PostContext); diff --git a/apps/react-app/src/components/Table/Table.tsx b/apps/react-app/src/components/Table/Table.tsx index 329e8631..8b21fdc4 100644 --- a/apps/react-app/src/components/Table/Table.tsx +++ b/apps/react-app/src/components/Table/Table.tsx @@ -8,8 +8,8 @@ import {Paper} from "@mui/material"; interface TableProps{ headers: string[], categories: Category[] | null, - handleDeleteItem: () => void, - handleEdit: (value: string) => void; + handleDeleteItem: (id: string) => void, + handleEdit: (category: Category) => void; } function TableComponent({headers, categories, handleDeleteItem, handleEdit}:TableProps){ @@ -30,8 +30,8 @@ function TableComponent({headers, categories, handleDeleteItem, handleEdit}:Tabl {category.name} - - handleEdit(category.name)}> + handleDeleteItem(category.id)}> + handleEdit(category)}> ) diff --git a/apps/react-app/src/components/TextField/TextField.tsx b/apps/react-app/src/components/TextField/TextField.tsx index 825c6f44..8219515b 100644 --- a/apps/react-app/src/components/TextField/TextField.tsx +++ b/apps/react-app/src/components/TextField/TextField.tsx @@ -1,7 +1,5 @@ import { TextField as TextFieldMui } from "@mui/material"; import { Dispatch, SetStateAction } from "react"; -import { LoginFields, SignUpFields } from "../Page/LoginPage/LoginPage"; - interface TextFieldProps{ id: string, label: string, @@ -17,7 +15,8 @@ function TextField({id, label, type, value, keyName, error, comparePasswords, function handleChange(keyName: string, value: string):void{ setState((oldValue) => { - return {...oldValue, [keyName]: value} + console.log({...oldValue, [keyName]: value}); + return {...oldValue, [keyName]: value} }); } diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index cf173f0b..0fe1a1f2 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,12 +1,12 @@ import React, { createContext, useState, - // useContext, + useContext, useCallback, } from "react"; import { NewPost, Post, PostsResponse } from "../types"; -// import { SnackbarContext } from "../context"; +import { SnackbarContext } from "./SnackbarProvider"; import { createPost, deletePost, @@ -54,7 +54,7 @@ export const PostContext = createContext({ export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - // const createAlert = useContext(SnackbarContext); + const { createAlert } = useContext(SnackbarContext); const [posts, setPosts] = useState(null); const [loadingPosts, setLoadingPosts] = useState(false); @@ -63,10 +63,7 @@ export function PostProvider({ }; const onError = useCallback(() => { - // createAlert({ - // message: "Something went wrong.", - // severity: "error", - // }); + createAlert("error", "Something went wrong.") }, []); const getPostList = useCallback( @@ -95,10 +92,7 @@ export function PostProvider({ async (newPost: NewPost) => { const onSuccess = async () => { await getPostList(); - // createAlert({ - // message: "Post successfully created.", - // severity: "success", - // }); + createAlert("success", "Post successfully created.") }; await createPost({ newPost, onSuccess, onError, onLoading }); @@ -118,10 +112,7 @@ export function PostProvider({ }) => { const onSuccess = async () => { await getPostList(selectedCategoryID); - // createAlert({ - // message: "Post successfully updated.", - // severity: "success", - // }); + createAlert("success", "Post successfully updated.") }; await updatePost({ postID, updatedPost, onSuccess, onError, onLoading }); @@ -139,59 +130,13 @@ export function PostProvider({ }) => { const onSuccess = async () => { await getPostList(selectedCategoryID); - // createAlert({ - // message: "Post successfully deleted.", - // severity: "success", - // }); + createAlert("success", "Posts deleted successfuly"); }; setLoadingPosts(true); await deletePost({ postID, onSuccess, onError }); }, [onError, getPostList] ); - const createOrUpdatePost = useCallback( - ({ - method, - newPost, - postID, - }: { - method: "post" | "patch"; - newPost: NewPost; - postID?: string; - }) => { - const { category: postCategory, ...rest } = newPost; - const selectedCategory = postList - ?.map((post) => post.category) - .filter((category) => category?._id === postCategory)[0]; - if (method === "post") { - const post: Post = { - id: Math.random().toString(), - category: selectedCategory, - comments: [], - ...rest, - }; - setServerData((prev) => [...prev, post]); - } - if (method === "patch") { - setServerData((prev) => - prev.map((post) => - post.id === postID - ? { ...post, ...newPost, category: selectedCategory } - : post - ) - ); - } - }, - [] - ); - - const removePost = useCallback((postID: string) => { - setServerData((prev) => prev.filter((post: Post) => post.id !== postID)); - // ACT 7 - Use createAlert function to notify the user that the item was successfully deleted - createAlert("success", "Posts deleted successfuly"); - }, []); - - useEffect(() => setPosts(serverData), [serverData]); return ( ); -} +} \ No newline at end of file diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index 9f8ec72a..598c4cd6 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -127,7 +127,7 @@ export interface User { } export interface NewUser extends User { - firstame: string; + firstname: string; lastname: string; } From 3357843bf0a305a3c1f664158d5474ffa6b95a40 Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Wed, 30 Oct 2024 16:41:44 -0700 Subject: [PATCH 28/29] Activity 10 --- apps/react-app/src/App.tsx | 51 ++------- apps/react-app/src/Router/Router.tsx | 19 +++- apps/react-app/src/api/axios.ts | 5 +- .../src/components/Banner/Banner.tsx | 17 +-- apps/react-app/src/components/Form/Form.tsx | 100 +----------------- .../src/components/NavBar/NavBar.tsx | 53 +++++----- .../src/components/Page/PostPage/PostPage.tsx | 3 + apps/react-app/src/components/Page/index.ts | 1 + .../src/components/PostList/PostList.tsx | 7 ++ apps/react-app/src/context/AuthProvider.tsx | 2 +- 10 files changed, 79 insertions(+), 179 deletions(-) diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 95cecc9d..50e237d9 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,54 +1,19 @@ import { RouterProvider } from "react-router-dom"; import Router from "./Router"; -import { AuthProvider, PostProvider } from "./context"; -import { Grid } from "@mui/material"; -import { HomePage, LoginPage } from "./components/Page"; -import { PostPage } from "./components/Page"; -import { CategoriesPage } from "./components/Page"; -import NavBar from "./components/NavBar"; -import { PageContainer } from "./components/Page/CategoriesPage/CategoriesPage.styles"; -import { PostProvider, SnackbarProvider } from "./context"; +import { AuthProvider, PostProvider, SnackbarProvider } from "./context"; function App() { - const page: string = "HomePage"; - const postPage: string = "PostPage"; - const loginPage: string = "LoginPage"; - const categoriesPage: string = "CategoriesPage"; + return ( {/* ACT 7 - Rneder SnackbarProvider component */} - - - - - <> - - - - {page === "HomePage" && } - {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} - - {postPage === "PostPage" && } - {categoriesPage === "CategoriesPage" && } - {loginPage === "LoginPage" && } - - Form - - - - - - + + + + + + ); } diff --git a/apps/react-app/src/Router/Router.tsx b/apps/react-app/src/Router/Router.tsx index abfb3fac..83c6f088 100644 --- a/apps/react-app/src/Router/Router.tsx +++ b/apps/react-app/src/Router/Router.tsx @@ -1,12 +1,29 @@ import { createBrowserRouter } from "react-router-dom"; -import Page, { HomePage } from "../components/Page"; +import Page, { CategoriesPage, HomePage, LoginPage, PostPage } from "../components/Page"; import PrivateRoute from "./PrivateRoute"; +import NotFoundPage from "../components/Page/NotFoundPage"; const Router = createBrowserRouter([ { path: "/", element: } />} />, }, + { + path: "/post/:id", + element: } />} /> + }, + { + path: "/login", + element: } /> } /> + }, + { + path: "/categories", + element: } /> } /> + }, + { + path: "*", + element: + } // ACT 10 - Render PostPage component inside a private route and mark postID as a params // ACT 10 - Render CategoriesPage component inside a private route // ACT 10 - Render LoginPage component inside a private route diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 5ea68523..83701a0a 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -2,12 +2,9 @@ import axios from "axios"; const axiosInstance = axios.create(); const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzMwMjQyODQxLCJleHAiOjE3MzAyNDY0NDF9.-j9VzMtlUKmSCgYGOh0-j280-QjBT6iUW485hi4kvNQ"; + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzMwMzI5MjM0LCJleHAiOjE3MzAzMzI4MzR9.RHkHCiTYKcNvqH0DDPnjBDJ87Tf1tvw41pNb-FzDFfE"; axiosInstance.interceptors.request.use((config) => { - config.baseURL = "https://test.neuraac.com/api"; - config.headers.Authorization = `Bearer ${token}`; - config.signal = AbortSignal.timeout(5000); config.baseURL = "https://test.neuraac.com/api"; config.headers.Authorization = `Bearer ${token}`; config.signal = AbortSignal.timeout(5000); diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bf986b95..55496b5d 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -2,6 +2,7 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +import { NavLink } from "react-router-dom"; const postImage = "https://img-cdn.pixlr.com/image-generator/history/65bb506dcb310754719cf81f/ede935de-1138-4f66-8ed7-44bd16efc709/medium.webp"; // ACT 1 - Put some image URL const postTitle = "Gatito chino"; //ACT 1 - Write a title @@ -16,14 +17,14 @@ function Banner({postImage, postTitle}: BannerProps) { {/* ACT 3 - Send postImage as image prop to Container component */} - - - {postTitle} - + + + + {/* Activity 1 - Render post title */} ); diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 470363d2..f1113f91 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -10,43 +10,11 @@ import { SelectChangeEvent, } from "@mui/material"; -import { validator } from "../../common/utils"; import { Category, NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; import { FormInputs, Inputs } from "../../types"; -const inputs: Inputs = [ - { - id: "title-id", - name: "title", - label: "Title", - type: "text", - }, - { - id: "description-id", - name: "description", - label: "Description", - type: "text", - }, - { - id: "category-label", - name: "category", - label: "Category", - type: "menu", - options: [ - { id: "663fef70d513515319551d1f", name: "Travel" }, - { id: "663fef70d513515319546d1f", name: "Food" }, - ], - }, - { - id: "url-id", - name: "image", - label: "URL of the image", - type: "url", - }, -]; -import { FormInputs, Inputs } from "../../types"; - const inputs: Inputs = [ { id: "title-id", @@ -90,9 +58,6 @@ interface FormProps { post: Post | null; categories: Category[] | null; selectedCategory: Category | null; - post: Post | null; - categories: Category[] | null; - selectedCategory: Category | null; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -102,14 +67,11 @@ const Form = ({ post, categories, selectedCategory, - categories, - selectedCategory, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); const { addPost, updatePostData } = React.useContext(PostContext); - const { addPost, updatePostData } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; @@ -117,7 +79,6 @@ const Form = ({ title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, category: { value: post.category?._id ?? "", error: "" }, - category: { value: post.category?._id ?? "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -129,7 +90,6 @@ const Form = ({ setSelectedPost(null); }; - const hanldeSubmit = async (event: React.FormEvent) => { const hanldeSubmit = async (event: React.FormEvent) => { event.preventDefault(); @@ -137,7 +97,6 @@ const Form = ({ const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: NewPost = { const newPost: NewPost = { title: formData.title.value, image: formData.image.value, @@ -147,17 +106,6 @@ const Form = ({ handleClose(); - post - ? await updatePostData({ - postID: post.id, - updatedPost: newPost, - selectedCategoryID: selectedCategory?.id, - }) - : await addPost(newPost); - }; - - handleClose(); - post ? await updatePostData({ postID: post.id, @@ -249,50 +197,6 @@ const Form = ({ )} ))} - {inputs.map((input, idx) => ( - - {(input.type === "text" || input.type === "url") && ( - - )} - {input.type === "menu" && ( - - {categories?.map((option, idx) => ( - - {option.name} - - ))} - - )} - - ))} @@ -302,4 +206,4 @@ const Form = ({ ); }; -export default Form; +export default Form; \ No newline at end of file diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx index 015d89e9..597f44e2 100644 --- a/apps/react-app/src/components/NavBar/NavBar.tsx +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -2,6 +2,7 @@ import React from "react"; import Grid from "@mui/material/Grid"; import { Box, Button, Typography } from "@mui/material"; import TravelExploreIcon from "@mui/icons-material/TravelExplore"; +import { NavLink } from "react-router-dom"; export default function NavBar(): React.JSX.Element { return ( @@ -49,30 +50,34 @@ export default function NavBar(): React.JSX.Element { gap: 2, }} > - - + ({backgroundColor: isActive ? 'read' : 'blue'})}> + + + ({backgroundColor: isActive ? 'read' : 'blue'})}> + + ); diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index 8d77ce9c..4cf31345 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -7,6 +7,7 @@ import { import Banner from "../../Banner"; import Comments from "../../Comments"; +import { useParams } from "react-router-dom"; // const postID = "664128a212f505651c18d676" @@ -30,6 +31,8 @@ const post = { function PostPage() { // ACT 9 - Use postID variable to fetch the post data // ACT 10 - Get postID from route params + const { id } = useParams(); + console.log("PARAM ID: "+id); return ( Post page diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts index 99868e3c..641bb5c1 100644 --- a/apps/react-app/src/components/Page/index.ts +++ b/apps/react-app/src/components/Page/index.ts @@ -3,5 +3,6 @@ export { default as PostPage } from "./PostPage"; export { default as CategoriesPage } from "./CategoriesPage"; export { default as LoginPage } from "./LoginPage"; // ACT 10 - export NotFoundPage componenet +export { default as NotFoundPage } from "./NotFoundPage"; export { default } from "./Page"; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 4ef101d6..b8096860 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -12,6 +12,7 @@ import { CardContent, PostCard, } from "./PostList.styles"; +import { useNavigate } from "react-router-dom"; interface PostListProps { posts: Post[]; @@ -21,6 +22,11 @@ interface PostListProps { function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { const { removePost } = useContext(PostContext); + const navigate = useNavigate(); + + function handleClick(id: string){ + navigate("/post/"+id); + } return ( @@ -31,6 +37,7 @@ function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { key={post.id} image={post.image} md={posts.length === 1 ? 12 : 6} + onClick={() => handleClick(post.id)} // ACT 10 - Navigate to PostPage component and send postID as route params > diff --git a/apps/react-app/src/context/AuthProvider.tsx b/apps/react-app/src/context/AuthProvider.tsx index 32df0424..06c45843 100644 --- a/apps/react-app/src/context/AuthProvider.tsx +++ b/apps/react-app/src/context/AuthProvider.tsx @@ -25,7 +25,7 @@ export function AuthProvider({ const validateToken = useCallback(async () => { const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzMwMzI5MjM0LCJleHAiOjE3MzAzMzI4MzR9.RHkHCiTYKcNvqH0DDPnjBDJ87Tf1tvw41pNb-FzDFfE"; // ACT 11 - Get the token from localStorage const onLoading = (isLoading: boolean) => setAuthLoading(isLoading); From 325404e1d78f9a3dd72520ec48e830553b517a8d Mon Sep 17 00:00:00 2001 From: "jose.f.valenzuela" Date: Wed, 30 Oct 2024 17:56:52 -0700 Subject: [PATCH 29/29] Activity 11 --- apps/react-app/src/Router/PrivateRoute.tsx | 2 +- apps/react-app/src/Router/Router.tsx | 2 +- apps/react-app/src/api/axios.ts | 3 +- .../src/components/Comments/Comments.tsx | 5 +- .../src/components/Form/AddComentForm.tsx | 20 ++++-- .../components/Page/LoginPage/LoginPage.tsx | 15 ++--- .../src/components/Page/PostPage/PostPage.tsx | 63 ++++++++++++------- apps/react-app/src/context/AuthProvider.tsx | 3 +- apps/react-app/src/types/index.ts | 8 ++- 9 files changed, 76 insertions(+), 45 deletions(-) diff --git a/apps/react-app/src/Router/PrivateRoute.tsx b/apps/react-app/src/Router/PrivateRoute.tsx index a27eabaa..4dbc5adc 100644 --- a/apps/react-app/src/Router/PrivateRoute.tsx +++ b/apps/react-app/src/Router/PrivateRoute.tsx @@ -30,7 +30,7 @@ const PrivateRoute = ({ route }: PrivateRouteProps): JSX.Element => { // ACT 11 - Navigate to /login when the user is not authenticated return ( - <>{isAuthenticated ? { ...route } : } + <>{isAuthenticated ? { ...route } : } ); }; diff --git a/apps/react-app/src/Router/Router.tsx b/apps/react-app/src/Router/Router.tsx index 83c6f088..caaf2748 100644 --- a/apps/react-app/src/Router/Router.tsx +++ b/apps/react-app/src/Router/Router.tsx @@ -14,7 +14,7 @@ const Router = createBrowserRouter([ }, { path: "/login", - element: } /> } /> + element: }, { path: "/categories", diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 83701a0a..0ab1684e 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -1,8 +1,7 @@ import axios from "axios"; const axiosInstance = axios.create(); -const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzMwMzI5MjM0LCJleHAiOjE3MzAzMzI4MzR9.RHkHCiTYKcNvqH0DDPnjBDJ87Tf1tvw41pNb-FzDFfE"; +const token = localStorage.getItem("token"); axiosInstance.interceptors.request.use((config) => { config.baseURL = "https://test.neuraac.com/api"; diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 8c95cb41..d3119361 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -17,10 +17,11 @@ import { useState } from "react"; interface CommentsProps { comments: CommentProp[]; + id: string; } -function Comments({comments}: CommentsProps) { +function Comments({comments, id}: CommentsProps) { const [commentsState, setCommentsState] = useState(comments); @@ -35,7 +36,7 @@ function Comments({comments}: CommentsProps) { {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} {/* ACT 8 - Create a form to add comments */} - + ); diff --git a/apps/react-app/src/components/Form/AddComentForm.tsx b/apps/react-app/src/components/Form/AddComentForm.tsx index 2bbdbcaa..c904a6f3 100644 --- a/apps/react-app/src/components/Form/AddComentForm.tsx +++ b/apps/react-app/src/components/Form/AddComentForm.tsx @@ -3,26 +3,33 @@ import TextField from '@mui/material/TextField'; import { Button, FormControl } from "@mui/material"; import { useFormControlContext } from '@mui/base/FormControl'; import { CommentProp } from "../CommentCard/CommentCard"; +import { CommentResponse } from "../../types"; +import { AxiosError } from "axios"; +import { createComment } from "../../api"; interface AddCommentFormProps { setCommentsState: Dispatch>; + postId: string; } -function AddCommentForm({setCommentsState}: AddCommentFormProps){ +function AddCommentForm({setCommentsState, postId}: AddCommentFormProps){ const [inputValue, setInputValue] = useState(null); - let ref = useRef(); + const ref = useRef(); + + const createCommentApi = async (newComment: CommentProp) => { + const onSuccess = (data: CommentResponse) => {}; + const onError = (error: AxiosError) => {}; + const onLoading = () => {}; + createComment({postID: postId, newComment: newComment, onSuccess, onError, onLoading}); + } function handleSubmit(event: FormEvent):void{ event.preventDefault(); if(inputValue?.length <= 15){ const newComment: CommentProp = { - _id: "412fsffaf", author: "José Valenzuela", content: inputValue || "", - createdAt: "2024-04-10 12:00:00", - updatedAt: "2024-04-10 12:00:00", - __v: "-v", } setCommentsState((oldValue: CommentProp[]) => { return [...oldValue, newComment]; @@ -31,6 +38,7 @@ function AddCommentForm({setCommentsState}: AddCommentFormProps){ if(ref.current){ ref.current.value = ""; } + createCommentApi(newComment); } } diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index a17ffd17..8b20cb13 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -31,12 +31,9 @@ interface TextFields{ const LoginPage = () => { - // ACT 11 - After the login is successful, use the following to direct the user to the home page: - // const { protocol, host } = window.location; - // const signInUrl = `${protocol}//${host}/`; - // if (window.location.href !== signInUrl) { - // window.location.assign(signInUrl); - // } + //ACT 11 - After the login is successful, use the following to direct the user to the home page: + const { protocol, host } = window.location; + const [signUp, setSignUp] = useState(false); const [loginFields, setLoginFields] = useState({ @@ -142,7 +139,11 @@ const LoginPage = () => { const loginApi = useCallback(async () => { const onSuccess = (data: AuthLoginResponse) => { - console.log(data); + localStorage.setItem("token", data.accessToken); + const signInUrl = `${protocol}//${host}/`; + if (window.location.href !== signInUrl) { + window.location.assign(signInUrl); + } } const onError = () => {}; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index 4cf31345..151df6ff 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -8,44 +8,65 @@ import { import Banner from "../../Banner"; import Comments from "../../Comments"; import { useParams } from "react-router-dom"; +import { useEffect, useState } from "react"; +import { Post, PostResponse } from "../../../types"; +import { AxiosError } from "axios"; +import { getPost } from "../../../api"; // const postID = "664128a212f505651c18d676" -const post = { - image: "https://letsenhance.io/static/8f5e523ee6b2479e26ecc91b9c25261e/1015f/MainAfter.jpg", - title: "Camaleon", - postID: "121sq22", - comments: [ - { - _id: "4if91", - author: "José Valenzuela", - content: "Comentario", - createdAt: "2024-04-10 12:00:00", - updatedAt: "2024-04-10 12:00:00", - __v: "_v", - }, - ], - description: "Imagen de un camaleon", -} function PostPage() { // ACT 9 - Use postID variable to fetch the post data // ACT 10 - Get postID from route params const { id } = useParams(); - console.log("PARAM ID: "+id); + const [post, setPost] = useState(); + + useEffect(() => { + const fetchPost = async () => { + + const onSuccess = (data: PostResponse) => { + setPost({ + id: data._id, + title: data.title, + image: data.image, + description: data.description, + category: data.category, + comments: data.comments + }); + }; + + const onError = (error: AxiosError) => { + console.error("Error al obtener el post:", error); + }; + + const onLoading = () => { + }; + + onLoading(); + getPost({ postID: id!, onSuccess, onError }); + }; + + fetchPost(); + + }, []); + return ( + <> + {post && ( Post page - + -

{post.description}

+

{post!.description}

- + -
+ )} + ); } diff --git a/apps/react-app/src/context/AuthProvider.tsx b/apps/react-app/src/context/AuthProvider.tsx index 06c45843..adfaa44c 100644 --- a/apps/react-app/src/context/AuthProvider.tsx +++ b/apps/react-app/src/context/AuthProvider.tsx @@ -24,8 +24,7 @@ export function AuthProvider({ const [isAuthenticated, setIsAuthenticated] = useState(null); const validateToken = useCallback(async () => { - const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzMwMzI5MjM0LCJleHAiOjE3MzAzMzI4MzR9.RHkHCiTYKcNvqH0DDPnjBDJ87Tf1tvw41pNb-FzDFfE"; + const token = localStorage.getItem("token"); // ACT 11 - Get the token from localStorage const onLoading = (isLoading: boolean) => setAuthLoading(isLoading); diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index 4abdf010..eb0cfe02 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -1,3 +1,5 @@ +import { CommentProp } from "../components/CommentCard/CommentCard"; + export type Input = { value: string; error: string; @@ -10,7 +12,7 @@ export type FormInputs = { image: Input; }; -export type NewPost = { + export type NewPost = { title: string; image: string; @@ -73,7 +75,7 @@ export type Post = { image: string; description: string; category: CategoriesResponse | null; - comments: string[]; + comments: CommentProp[]; }; export type SelectedPost = { @@ -111,7 +113,7 @@ export interface PostResponse { image: string; description: string; category: CategoriesResponse | null; - comments: CommentResponse[]; + comments: CommentProp[]; createdAt: string; updatedAt: string; __v: number;

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%0D>h zF+70M!J!mDR0MQIVi(NJ#Sl!#g^Ed!g++XK*|48%{nW2Ig4fS&c&_4br$Z{~hkrBU$c(OAolDN0skA+e4b>-Ks;jw1 ze|G=;$>w-d1boeMQy*!%?6Bi)M=n0N1#HbF;6&BpgNi%istKID-T>b}YxjM7>YlZrZ$x64-E{x1Iqz zmps?Qn?oMdiLM#l+v`0KR-2W#FrMEl=C3bl#HoQPDf4*OtlX)lD45$};)((+E{%O# zEmg{-+f$AY=syhn%K2ePnkEf3P=-HPNVzn300HzRJIxaR%>gDFIiFe|IUStR=}QN9 z{*q^r;5}c7V)(eWw&u%b*q?o85*WdSg@?zJz=XNu3gcn0WR%3@gWp_a<%q&#v+W%W|@A=>OwfQ(vb4tTo;=a$WfX$0s_!c1k#ct++ zJHh*0rTp!HnD8p;pZx>AhtRfaDbbD=PoQC}Izr3xS{{{cU|C!PD&(it-!ea4% zpg61RN3>=-qG54PmF?8B_2miUzH1I;iK) zfCHi5`O*4Tj<6gVu+yWWrWW#0s07SMX>jlmpdkax%8m9HiG9^pi+7nc>a(-{wuZru zCixq$I_dbfyv<#fY$MO8h{#jffK+#Ky=v7^R;b8gwlSD$G+sy=!=xSvwgpJEe|Nem z9vT}_2*Z7cn=5Dgqw{V&cN(mr5czNK@J5+Nvt@)T#DS^Y1<~Ih0-XLWfeV^`gQmy+ zz^*}VVAa5?JBOtA+KjUilRMa#tT688gCZzxvB1t=ZTBnifq%nMllsKtFL&qH><=!^ zBsbR>0Zny{mJVoiP`ucjg+WQY42!8kw34LA^K`adj%Usq=KJTd0h}Tu_ zwPuLM&6x4IoILl|5|-P2D=pz`6Qc!j`CCDUEo00=kXeG<8k)itWU1JZs$a(Aq_yh*hsZ6cOT_nFe13sI%~f!YUgs=cuAI0PR7hXij6rlij%r1TB2== zgM4Zl2mnIugHx0eT}Ot^gxuwmn%-_h8f-jHbaby<6r3(6k^F|XHNFZs$QzP?ZM5x@oYnNj+XVny=s#k zl;aA`#o&R@TOZb?;pQd;HGV7bmXagFo+TKkBB0y3=SNAMcG$}koOf^M4;lPjZthL& z%XMb8mhQoO^|!w)wlCR8tE!0)zN_)>WuHph_C50)yc&v0gc z+LUn^azzE_e9m~&fi_KMJ+5a3aaiuh*o-gSrZtmE$<`VW<|kNd!T1_Z2&Z!{%AsJ7W($0C@y4is$ z6>e`OL5EA`ex~ilh%Ha|0xkad4lNZ!QAWs;tMA{>kQ{JW;--N7NO+n5scfBTDee4) z2@(2Ru9#>;G8RI*l3WEBzV};N;EY$Rb|Uofpt?gGI~VkHz(II3hh&>OE_0np6^;}E z&Oh8!5hiY|47bYzN85xG81^U0Y&|S>Ikj*FCEe!1(vKi( zz}A0hJPb@0)4Kgysc~eS+c^UNCM0*?_15O7EkAudGC*By!cMF_R|pQkcQgo|N5p@6+-&MgE(BRH?$|x`z(UKcw*xUD(HLVdWs>%MWw>!VHevuf0{ZcFQ$3Mk^>W zNV~pcnqua0|DYi_X%jMMd0AaUWKdEo&YpDjOw>F*UktMd3}&*O8}h*_M|5;_q@knB zU61UTo>uL{Ggw_;_v5kO+!z4n3LP51d+*;LxgFcW7ioHl6ykus>8MebK+A?1(q@78 zR{Mj-^QmJyk zhK}SZV#2xhfP9|kr8B^L6b$VH3or8!P{UOq9y=A|EbdoM67esPK;2pX?q8}As#;|@ z6tLX8@?#K;2EbOEM-c}B8{6V^K8C~2t53K&>&GKYm%ugJncG3*F=ETA({?|Y3_=9TG7(A1&dbP4{8>wTrLJd z7KyuB*O#ZFpm-UvMg1t20JD~pdjz(etYlnx)$_+0nW5khR~)YwUK4@?h8KZ34|p;z zfFf6}_36#c+&zaL1HW1^ZqB8ufulnZi%iyFxLCed~i~C{xGjp+W+Co;K4DJVd z461Bx;D!j-8bKw6@r0ar3F$nG;l7986}2Hv8L@FIxWLUd`ND-!-ag0EB({HfNgtB> zB74(|Xq0Ku_1o0bw3h!kxkW$r){a&K1>tDOW=|}$E;xux=2)q6ow`lItx=1jmtuN> zWuV_jPDmK=+b528u=wHb=FDpkoh>vSPIJMTbAt`C?XZiEs^!=XIdS(UG_$EkS*uv` ziyvB%s+A(V^qGvtAOttNViRPg52rNn7y&%JAVHQ!?Ejye%ZL%B)b%YRV*$t`{6j+C zsHh}>dJ*rvGb!CcVcqTrAu{*d>r?2vMVcbCD5uj|$GoN&u}T3WCoKgbr6q>y_fE+8 zf?I2PWRkjTf}h2fmYb(Ecj3}Un2#Ne^M_H34qFMBf5-iT3={P3<&RL)rg|M45uNPI z_LScG#bsKuf)6OJKe9RdTToy`z5V+G_$DuZD-JXnX2VBvYxkaog7sR_d8Pf$mJq)` zMUk_shzZ|X8Rpm+oD?kEX=is^A9(yAuaNJK{*xa>>}rSZ1i3IM6c5suoAA)2+Ng$B z>dQs8rmR$zexL4uK<(;v1+AvL_yD`}Z7x%xRoyoxwepdkbvA2;pB9Z3Glydz)2k{< z8)Jj?M`oz-)HuGNO=i!H3qbza4Wp^yf)6=_&mGCyIQO?E%jjdCE2m{~4FEIhzC=!D z2MWg6O+sXv+jz7NHi|Kkp077XG3lpQr90Ovn<3NCO0T+9BDGoKbg?L+PM)MdTNMs` zDUW-AhNdv50)5C|eggAZ96`N`)+H1#ap<8qJ}nG=##om+UGQFdPv=Ew#w08&clyEg z#W{j#*i!lNJ6V&j$_uaU3T+=8Je_naDMv1(*V(@T{%b4|t^H@w=DTfD30Q#kGg3C-7n455Y_`X4UcuzxWX zV2_OAha{dEIlC?@?>v&cibkwZJb|tmK^?GlO z(XPb%#V2FCcHcxvNNRAz=st6mEtkW}XQ)cun>$k@@0w5M$Bg!xFj7scmflu8-nW!d zEvU*4F+eXXHt%Dea(T0qk(`jHf_R4Fw7BH?KIX7c)q4;UpS?H#0Nu>RWc2V2@lS1Y z4?+24_C=Gd!PL~{qC2o@;HC#lpGe!et%ap3m093Rj$4KmGQvvbj|3Ar?5&`&`9J3r zUG_SgB#dnHP@3fa6wxv@ZI=pQaZ`akbc{S&B4GVt&*&ZX-CFTJ)tEXvldnb3_&CWm ztG~5VFicJ%uD*DobGo?y4cSOeQwrx-$wXpeM+6$cB#`ZiU7Cq7@`kceXG*20p8h<% zlDK-DKUs{DGghdeI2;jyFv2l9jNA5x1cDWWCZ1J(#q_1Ea8TOpeKk>dof8k@dhUo| za-W=-=u9I`k|H4KG;|05@YGe=VK+{?6@Oikxo-@`_H&%B-#e!f-jRB<g%F0_;wPTmgCOzRhI zF3VGmnvUGrtP;4LM$vk`J51PDzQSW~1~pq<`I?O|-B0o=Fu3;pkX%DPay`-boAyN~ zz3hrK29pufKn{ee)Yy8d{Vy96(wfm*yrnytC_Py!<}deQqOoLda?X3(JEo{glil23 zEO*O~kAHqN4Y_hQ9ee$rU??NcoD}W#EeEXPUG~GM6>g7vE*NWHjZa@$uYc62F8IPs zG_p31`lk(KXmUCQ)z&*6%_oq(rAvtfl053am$B7HD&x1#+aMTFBc`%W-nVyQ<$|+o&XS z4Ty`{O*)FDjl;_AU>Bc3+2Q>NtOX|su|w@ubs{Vm+D&|2$xoP&y>B`rp3{)_s-j$; z?zR_ZJ1Je>P3A5~YVx&cKADK(%G%M)nsZExE!x2f`+NHYnq3rl?=Gh!BO|jhk|SHP zc1r~J)6UqLsgad>N^Vm+(EM%6IfIU#@~I=Y=SWles)V(-*}C;hR=f%TB`HQ_W+z7a zQ`a=qo3!>dAb&XZrGBydB=V-a_}+op`niorgR1mxi}v;mk#}oX&Rc#*GJIymzT4*A zC1lPzE_n#IhO+WGqM-_@o+j(vb+fJ4svkZ87gwl7SamLwy!E*bvLtDUP;cmarK;0M zo0Ucg(?c|WdI z>l-%$0~!*MS{GA03k`gEd97RqwL}MjrUi=689#rn;&w!snE7H%1<6K*P4{NmW8*X5 zh4B)l`QGrc6IJ?YHUg^yt;UZ*>@$lpqPI_q6!05&5?9GD_5+`}B3?-=>i?X}v&OeG zvcnb)OP0$!s{ZVArYk@6{40cr0Jbxh9mWCiV*RR%*b|G)>47%5*)~urU>?OjIGBzR z9v{zN{hy}-LoQFV>4q4j7Em!{fmVBj<)eO=(aV@F4yhzAPXH9dRj-@Y0=AxFVZ{L8 z(u9COfR}K*k}USEIrGfa{kJ!4godz;`rOtAWi|q->j1rg!M8UT>((o8iI}os+?|~q zEm&|1za|$}w4Q9gcqf+|0$G*A$0nGYniSQ6om(}v^1Oq&(=7C1KRLJ8 zOL5O=-aQW{Qe_d#vntDnO{x_;_i&9ys1+yP_60+mG8_5Oea^) zjiZop`I1I>Q2qSyURXaje~RJn=d;#X9#qIts;Xd(hyH_LZ~!T~s=@SUZ5&z(x`xJl z+kmbltw^RlYFi(%+T;6C-0d{;z(TsjVwT74A?G`JxdI2m*c~q}d3BTTNciFq6lIz2 z6}Q~luf7kh4qD!*F>T|{f*F#0Zp*jY`q#diBXDJXo<`#dOqjE()GY7sZfs+%4d~ru zkfi6lwH0u#BDG?7cy(SB#U0;`x)UFLjPr~ift8A3;Ggh;wBI2b*>|&_G#4*vy$<$I zYW~N&H#&yz64V((Fj@o_R39RoY9t*f56C!`VI~irrHpJCB?7wDI^uBq{EVegVq3yX9wA>j%?X()L zIC2Pj9crLL2JkzthSMSvM05ylviuVC6>vNmG!Xl1iI$tD{{DB$Cegf8k9Y8}hbpMd zKbQaMOoYG5z{6Pr|E81tgDe%P)p&iD<&L|Yv~VT2A%Js9uD=yB46f>A2a3lQYI&&f z%$?6OnFUFDS{~Ipxw+EY?M>Vn&6Stg;xrd;$%t1iG1Dkkv1DeVM05;8A4*xJg|xQ) z9;ZIg)YQB>ZMuD7zKI;nwl=Ln zQn+oANnbh0oo8ez0mE`2hu)kS2SQm)aEAeoirmuDBA388Sr`_E$)wqsw0@mos02DV z`Tc&Qm$~Liyw32J-2{Ri9h#SySIg8B3HnlyQsD`jyIhAb|7_j}4ejBc>#OslYNvxV zQ0M>kl5<7#HO_A?UZ(F~njW<_n#{)_BZNM?dDqj-R%F?dH()0`zpF9P_zEe{UHo;5 zg$BW39xDbJPe=!SK}V02eH)@42tyI5fVbIct%QVdox_eC=9X7ftlbD!1&%b>b|X`nWxTBkKAMUbH09S2D3sUv>>V8wzw{0 zxhed;`OwO$TJ2w(TxfOaNFOBimxp4<7Pq;3q#3+)+&N;OV~)uimm7$aFfLW`PHgL|!Sn!|v(`|lJF zxYIsZ5V}+4#w_s?PU~MB<)n%n=iL;M`T+ouJNC)PX8|^@sW@GdDTc|0YS*QvhqG}3 zAbzVJ#;TP}2t0b^Z9B-jfdc?=yZ;+7?9ZFi0o^7@a9MF%X+MYi)*k|}436#d?}Gtt z?hY7SARr((f#!A}{O5V6^l6bb3e7B(kTziE(NBpRkUbMl5qGuW3;8n=%YF_AJ~4f} zj;b_vGktllw0E?5`RegFZX$eQ4Xz5C?#6LdLfS*k3ZT&I_;AnIcKg@niuf6s`gzHk znnl5~LQhoiI0+O$j)mE5tvn>QkRZcE_Y=R*d;9FOBK#oZ~d zL26JA$X-a+0)R|AaN;NiRs$8CEWS7tQK=XYZ2`-SmveNrLGK9_s)lkEZP2~({5{}3 zGEV^vRxtUmSO8i-ddUYSQMrooqhP2Po{*5s@4ZP%xAzCWfUi=!bQS^w-M!|Q^#_X> z^&FR&yjLxjo7T{FXT9~fq51&S3bi5(%CYuw^jK!Z15vhvQ+l3-W*3#EJo4MNLHhB9 zS){rJum^fJ5N*{2?d>nN<|@WKAAXqcurp=C#H9M-Hum^#8B=O%>KXVru*k>?*R7J# zglHf`W>r-VJ1P|oAYmb!y9tzUesDV$_;_p8`PVmKy1_pE@!wYUGR`epaUnyW}%>ZL?s4MTO|r8*hDyL`sCVE*SoA$X}iroonoQ zB^W(>f;1R*wNx&*i*hi@21{50fk7FL{pPFHyr?>jE6d;<2a^zMFmRkP@1i;i?NZYL zTgeB6A~+tz-3_d1{9o->3nBGhU0=fiaW?=({O7g$&|6zFj*k;3v5G!V`w?IZyz=r+ zSb!67);;R1PLc?NVo1Lq;2N^(SUqGvRRS9)!^g^vI>d{|??5;aM$^s3GvFlhJFTG{ zJ}X^BhtEpSE-uo*scXVi9L9I?w(qAr3C?SA2?_X75(3Z6DaWQ3$>wg=GoGujdGN8T zQq%R|4ITk-GD(DL5?UOb9V~CM|L0AD4glR-JHbCYYJ<&&wq0WGYu1WA6^tbLrh~4$ zPM1*Ry_(;&uY1^K$~E3}n(PSl7lgy9m$}+-hDai=5vhv5lnAq7pLhwUu)ha(;W9n4 zweDUiD)lrO+&F6R#DU2uqz#NdGLY`wTL7_43eBv_Rp7AFIYo=2#F__0kI_pBFEDr| zYXg=b0o&VVt|0hg(`~f~E&XglH!SD8t?}wme561XKj<-IOEQFZ`Y*Tnzv`Vd(}KUJ zxAM|}Kq3@E#6F^?jWfZ3{%dCx3~li4*gje*Egb0X7W`|xIi3K{yUhTx|J;Eet-p)1 z@BfrmpycU-ccyX(YG9W~v;TAUff6z~`iGkgyysxJbMh|_4u*ITX9V6*E%F3nn13OC zCAY90q@)i{tjV3Q$lSC2pDL<<3a(KV zV7~h#1pY0F*oeH-NR-)MvQGXKyY0COfWON5I~_u@22MpiKe}MceH$#2e$-KTU?q`o z_+*#R>KT(|pm2*mM17sz3@4M<0Ta2rz;|bQ$yz{)ImRNL)!K-@+<5#xA#r*{K0SWs z{7<%nm3@S2*f3O>YzTMf9PX15re#&78jeNgZ3l_>FD%lj;3mo{w0z|m_P#Bg$$T(X z8@VN|LZMB|%g|d@x{5B`ZTGI+&(RGFUbaGhp7K-Ao@9P3N6ChAX+G*qt;6i*jkV;D z`)=czcu%`-aAcYTr`Mh!Ti%15JrUt&LG$)P(E|L~jp=lBUfa+Gtzl(x;t&0V63IqN zO-v>VUG0+(#|zuW)73%TRa&BIK;wYC^l#f2ISrDq@7ne$t;7Y;$FFO>3x4`23QKD;lPiI*dyX3v)n*_}EiS-WMtLkQzt#9HO9WmKX zZKBtn{&J8I|IP)!h^XZD1qTflqF$Eu6^eB)LS#keduWLtQCnS)gI5zzzm^abRk-M) ztX4wdt6r`j?!hW7XF)?r#q=I>XhHhf(Ws=|(`YgCn!SS>8Z;T1$y)2&oEP!jqLWQ0 z{&*zZj+0T|W7{~Ak&gPs%X_I24sI>^=e9?9-!}}L`7xuSgi;6>Gc6UPKlyjFizhCj zj-oxXYakC3-T+Dz-a<$Wuf5vyUsf{Xb*mo++M5|E?@!uDyXfWlmWM`v;7axXZVrcLuIcUus+H!?(~C!*UGY#hg-i)IW6jHT$5w$tYG3kba z`@^WrW?okH!8Jx^$+q~SePoXca@`gD#&AA^ZX?Xe!4)M{9j3 zg()Ci2Ce=!e;;jU7X7AT2|M}cc;v37U_DX);GF@Du*FaGzG+g9laieGkYS=#bn95S zZfM+7E}VNjcNn+s8V-yJrC?JJDjp&sr+TbIxhl>1CB+D5;j&>$6E&`YCvI`VLO+|G z99nb|G zQZ)`0TMd4D`r82##pS4{jUTi8kd>z%Rk^V0`!kz#wwpM84T)*$a-LMc5@|ZY@~Sx5 zZh;ms{!}2o_S3y$Q%NvS94ve+Dcqjx&{klM#lxBF`H(*C5EEr>id^@W@9uRSbWuX- zQD}}ZVl9M&Fbv~?a8!_L$@N>vJ;=q~WRfvaOMFD^kt*VZwKj^2xX&~09!Iep#Qgeb-IlcnluiSh?iNv~%vKl0DyW>VTL zW=-hX#wW^R-tB{a%`tti##bg*XHc*cQSrWHrRV33(T-0=-(miGn9Clf$X9m==Tizu zbHhWC5D$z~*!VOh%q=8iL6VYvZ`NK8IY`+8o}bWZSOyzm@Fgf9kg)B~^9lF=yZY8}?omvmrS7@)@O4 zh*rh#?MrHFDW8)f1W!zUe zOE7?*gDkjX_t3j5$;W^7A*;ut$#%~@i2`3Oz4`hkmJ^e8KektbSfz9%B`Rdq_RZNH zcPoauwC=ZUlnCsYlc!jg}dS&k!{tNt3UCH!ALwL$2Q$qxSvjm~4wq zqC{B7J{d;gO!a*qbEyx`;ZZ(sjZK$E66(u2v`74z_Fo!MI`rZ6j!*gQ>#+p`tJs-% z?V%T~B~my1`ul=C7%?GT@^5~gkS47axnTdC5D?{VRbUw$s#*(@8* z^}C@Br&+egt9rfTCON);RV8QV6qAH~g1>71o| zQMSV4Tmf2^BSQrozfgp0rBqW9WA* zUShE$4zX@%(Bh5tx0>7?*M7@u=%ctd6(nSALz=dqaKl1S!NMrz7mIR^x= zq8pX23pl(1vI95mIe%y62(P|-+@dQxl0K7)W9#=;Lb#VhjD>osj4%$i=yJCIux2vS z$E~UTbwl@xgMB|)1a6QfpIY!}(a$zoAiUNNMK0;~6vROaMjto>hC2K(NE!BuvfcOfJZ;@yU(* zV~Me_-UZ`~JrpXIECdy7Edop859{ zA>4N#8uqu$obt6T^<9S3m)ug>lpc}pG3U4@-g~J{!W0@(xX#0F-V4mJM_u=yUx+mF|De`6rxNZA z3nwanBTWs%2}*Lif9}LC=n?gG5;@ya+JbEV=MBx9PdbW$CNL{j{n!}#sZzeMwCVgM zR}|Z11c5KEwXquJehLW@ zlg-k(IF2WnZO$m_dPZxUa`QII0julcy#cdkbfjOE-|FdTyXxL(H>bR&Z>!W=J_~_% zJ(NG#zdJR_tOs3LyD@|R39Zm|=7!BWmqc7z1pz0f`SgOULo)*bCL%&yX#vbIhx$t-LB26XDYKQI%Mgicw7} zhUC&4qHx=>gYZ|*!^Cw0>isZ8R@T$HF5!F7w`mVe#-f{QLFO!pLEzZ;&ooYoc8RN3 zjx6iWt+H-NY%P`>qa3E2Ztg093VZA!`WmO;UfUf-P$&VoPVT!Y;7Bs`@!U&0CWz{Y z6n%>&aX9OKxwCl?(x#=vYQMAKsZto)#P<#g`o4#1n#%TjbL!}Z@U98Yb(3R=$M%S3LP#iks7bCEYK(j>miMQso9|bT`Xo`K zV3#+fen~dqlCG3Vb7SD*W&Z@>)cKh#~jrI#H-Q4#n zLi@pI2$)uCZw2fuR5KZ0_+*SFziCe%V#AV&Si+&C#%Re*!(7S01LR#;eDH(iPj^4~~?%$Z)-d3CV!xAX%eEuAk}H?zgz3A)NdhMiSN^ z7AU><=ShpMO}#+&!OQ61J6h`QGndvnPm?~Zi#gZlG1^0ww93Ag&m*zfzge}+5|cUa zKBA{mPZ-~vO5CZc)K8tTVnLtG!l2~oe=$Oh&8>^#K=Qe!at7OKUaKeElSgPPqPoft z)75no!Qo4Na7BKZb4~Mf*`w5?T|Cid%4i%Hgu9j!{v54H!3RK2g0k|uN zP$cR%8)$)mzQ47Wz6nb#zjZnV!l41a%`iv)Pz7UC4zeF_j`Us27$hOF$HQj;)h?jQ z1%e>DIp`K6Oldfu#t8;6Tukv;Ci!1DA=iLJ#H!!@i1(b(ad`|2u_ z9T*)8*y&hi=Q||W+&_XhQaC91L@(V3pWK&{`Vxpb5Yl=UAj=A4?Kut1&mO%$v`!if zF+t^UIf0Tz(adM852>OXD+yYs`iCR86+CQ*fWo6TL;BXjw&BQ;rd4+@YjbTps+bh6kqfR9c7E146C zXyyYheqU_ysa68?nwVTfr~4JQQr*Fm7OF_Osra%O=GtF`>!Y?}%sKy!%_$2z2Do9O6Bl^OwxRnQ+SSOQ*(1O0Q6o0NlE6|L&HkhN2t|e6kwWd`x}0I^hhps?G-f@ zLlsb5hgQuoi3x2hOluAbYyC)2(o^SX-s_hkxb4(>`94U%4Ap%zvD|>2N^xvMIO3%Z{HD#b>YT^ z^DRAah*X1bmqnEEhc9kSg~Bgle4RzhgU%OF%CCz2$6KS1ljX~>Zl`sg&zhTO1#~`* zUsO8V74-RG*lad972M9Zf5_6J6=Q0GFsDkENc{ZW1q{VUl}WnV^n8YSw`KS}?X5?- z9rr`kYOK^L7h+-*ino^*I3xYC&t!Q8o0I}KbkzEln?7alNm;>s!ov7f@E?giEB?JV zJu}>FbJZez>`ET;xo3BOE3-oR8gbFQSK!0Q1J@GY`R@QQ+E|nSGjyYErRjHP#5xFw zCt!2-hTe?z%t{xi;9V7;u#l0@Js`e)+ak{9KCX!%K{8FID_YrpsJV1tD2S{%ZA zt{$Ec69OpC`><{DPYcRVbgN(A8vWP*oxDP>`cbb4VvJ-%s zi%rKtax#cFb_KS@TsABBe`ozx*VW~HRS*>P>ZTSbgj1q{1gxu1cEkZ#83)WYxGYC2 zY6uAXtXAFP(n)-8#pDl$i_w5-wOlKUWFiMT&}`@86Jke06crWqKsxF`HdT&l)h;`) zgGe>IjbBgvqYS<1UEloX71V(#{D_z&jG7-GSbm4E>d{g*><23n&MvGf;7s2qk{438q?jbb{9h4ppS$av3^XqR7CZ1p*1W0`(r7+-tVKjORJG z11t=_nc6;|*ELytWZgg{!9rLXE*~>bS#A!6#(f-i_Zyyi$(a$mc^Psv-)zREOfSO8 zTuodSRAml-uybZ6ZiO^7w+Ri>|I&mB_FV!Y^LzOCu2nSXrXd&2?d*S&gcU72*T3t@ zxHi1r7)q}}cupBMki?CMiP=Md8oAyUfLr6q5|NM)xNX*Bh0zkfgM}^Q9OHewlJNnh z#fSSDl9=S|6ISYH6>$OuNp|MbXg=8T?kb6LBcBSVyiM`$@zf`VY{7zNR0OJlJUvAgsR#GSP6LP1s zPxB+XgkvnPI`Y>rqRyN1r_O2@5A`W-jOcD|gi&~%q{Lle%P9mGD@65mTKH;c@~p** zx)8_7JdK9hn`|xpXup4r)U(rcSbBYdKeX}*iG-|iVkNEasi&;bsw^gX-$uwKO4aun zja;EEg@!VmjDuT{kgz+z}h}*H`nCqX)f39N>X7WMpOY%=oUI6u0l9Xef zz0T`_cB9!+GKbykhaTItJh5@qzz5+&b7pU^L^Ns=&#*Ju!?WKzfFE z9O+!IX9Q>9;ar~XiB_154uT+gfSI9Jn2xu9L_pl{qz=peuJGXlj{DVtXjbJiurh#K zqW}CU8@&T;#N`kw8RT=d04o5{2q=g+E%LpLmH?RC+1>p?h!IC-GJ->(kU7^082*Qm zVyknS+4^rlbrOZZZICOOm6%`8Jv%>FA0m&!1;l~xH`R7YkXR2h>;I7_y||U=(O3f1 zD8K#h55P)2*hmk{b#C&x*Z-JVBN*7{=dA0r`C}6Rsow*I)s+=3Fm_-t!UJ((th(*l zyl>1!y$o&FdS!~D?j+^|KJ5GuaBzTAlHh8*Zu&4kG(s;>{4Da{o@2s!{?U@c`mLj* zu*~@0($boEIx5;U;xKazY;`Gc9pJ@KnfU7xsA=%x?&SimwA>2E^XC#$4Y}Z* z18*U~z4$^;Ko>X_YBW)tO2l9dYI7`4n ztDk@#7Y{so!?JR!+a1# z3j`Cfzk@hfTMvzMtpm}?M3V!$9rP5t??rA1WwCB z{yLzcRX3reVvqt(`>Mm#`5@K735=?PNbi-=3zT>O9ri@2eo!l!PCb}?jN?v|{Iy`g zJWJ+{wQN6}JReH>iVB>l1CfBk0mh%&fZGq11oO3EJtN^?*a{#oJKVgpQZMnJTP%0; zH<4~R(f3{}1_{^4;^Jc7=3?O2m8+o*Xd@{XpQeGhO$JPJU3-50%z`n_&P-KVh5;v+ z+*;~1Q}Me@!*nu}`=_TJK$RK@cG_Q0zb)_Xh5}Ya-g)abVTj1zcaEzFG`6%iOw+&s z29PLG=%tc@#3*HW1ap>mVvVcllI4*cpXAbSAkuwQbWRw=3B5su9H z!LT^9_CPXZv&d>qg{dEQ12P%3!NbdCw-Ih4tD~b+3^H(aV1wqfwd^;0w>MI5drjbX zz~sJ4rSQRbvJ1chRlO-xE)xkM(*_!EuHF=W^1XVHEgLyMRbe_xrI(^N57#sK4eU%d zjuD0)iW7bdUE%7)yw0bY2lTtqFvOiM*5b9QqLj35vw<5DE8lBFzY#Y*JsS839(GHa z2Z$GHeWS*SiZM$g@uPsxlD^prW$L<0(R4rmcG2`T+PpytH4dSZqL)W%Hy#Wyxa{4Yw9}d#&{`W$7*Jn=yb9Dj#Uc@qV{$yw-F)L31!dlJ zt)4TN6xi{-=H4)xepA71W6^!n!-sl#RFu7?xS7i}9+rL;Iz_T|`A$RBo_4i_%=>U= z4KRsrI~&H#@eO+nXvb&Ejei1)M*j@(Y}f_;#!zg0=H|d`s2Zn@$0oGW92oL&(*YAX+T2SZ#m-q~xTIe9yBZw6m|X^|K;E8d zJ&l^&}`R_eoD{KstPRLDe&qJErI*f4cF)2ED< zN^Xknmb|;vm47@wP`B3@bbGbVUo#yIXcJ8AS9|~bp zr7cC0>x7WLQmA+aWJzss(*ui2*!HAsMNgY=<_luqaY*Z}ixHy+!SEr~>4$7=PjbVX@%B!ZY6qL)S=L0}F(^yi?= zwHhWkOJzG=Z{C1zL4gx*uXd}DSKtme*`fFjU|&2rwSDt=3mwa_tFI8e%{>qTB)1-& zB>uwYE!glzYvc!OM$+Cql=#9U|Aqbova`CHTGE9(i+0OBh~i|V&GmjOrqNXS(`2V5 zRLH1JJ&=EE>*?#~kZW5^SE2*EC%Jjq?Jl*P;VAXH%z*SeDx32}e{_w@gp=fpcW9;h z&@>5P4#Kl`fDo_SHjx@~xI)kX8&h?jB0-hr5uZ{u1}wSrTfBa@sj4$f?>dL07OuH2sjp*h5pIK7lw(6QTx-NjgXhQyO zSXSX~u*c=}{D^h5F2lMC`0l8i5b9Oe%!skEF^1*Wo(rIe&pvwBZIv!IAUVAy{CN8I zvdj6|r6IbNSZ#ilM@Z6^&D`7l*Zq{-yTg(WyEBA9$fW2D=Z%7em*bL;$-Dn?D!Cz2 zjUQ)2xl|8TP*Cvr(fU+i;JZRvQBS#?BhYcRYO!oQjVX^L@e9mCO6DW2SfJ2BEAE@yIuT0)FKJQ{~0)BaEL`1*14QQL_ z!sj$!XvXiLB)M9f%~Z4I%H^b0(mR`ZI8&fUxNb~0^~W4PiGoE+9g0&7@Di> zQG8$7lw3yNy7rdre9QmpqOjQf?JHM6$jjv&yZt;-*66oVW?5yfY02n)l_he6$QX3x zBnX_9J7_gxz?#`wA9h?EL(;=Cg)SrP=h8%N?;xn(4@sw})Lt zuf7#T?(H6?$Qc){_^tv3CEvoUGlbzhEN|xCXU&ryW{o0t<08GLZ&#J#0_FyQ{xss~ zP!rJzFbD`c^Q0yrlal+6D#7%{Q~wHc#$5DRR~r&Nj|V(tOWo1WxS+?`xh~w9I6mRz zb6vNhE16N@TFEmspKpVd_!adc5>rp|*CSy^UGFyKpf5Ua^#S`e6z(ZhvmSYDXEc_t z+-TeN&OL|umj7}kN@^sGeAV7YSE`Y?vyalS>;EF{J%FO>wyjYWB!_N5Vw1CgM4`#4 z$pQk3B#9y*AQ=QCNNloXkR~SsISGp7B$7dBK*>RZaqdetDRFF&taKT~})_Le7?@%7#T^`gUN}ri%J-LGZOsA9?T;g*5v3 z#6s4D|Ib;H&s)D5*j?Ud!73xYvGm=1$VRbN1;(kGhG^wIvC&KK|&e(c87@3jQUQ zzL`Cim(AHrsps!p1M~)1Cu0kK_)K4rv8B{KxfMtj0vRz?|H|cE+U?gGbUO{Segi+r z$Hq&lYGsW0yz0{^Ouh)8&_}k#?$_>I|INg&Hyxd9eu7{jV}=T{338AG>0+}ZbKj@G zc)Xj7XIY}JaajJ|kXxPjvEFHtcGO+<@5N!FNbVqrB3TDSQI$xI?KI%H_p7CiZ@8b< z0P4J{%rEnJ)2rFHTw2<`boFzVP2qXs=ZHx!srYZ@_yeDOkGHJzB`5hOUW0{Ec%QhL z^zAoMZ@P4A|Ey-$0>29FqfE|oKbb|+X|XZS%2?l)eG&IRLnoWLP;*%t^nKf*oRO4~ zU$5D>MWNL6$^<&6%^*}3*6z27J~B-;aaHSdq@^>RF&ciFJoou$j!<5(+WR9-vEPr3 zByp9QhR~DGGaU1FZDNH6GUJ&ZWxgf91LL1b z`yLU2C>qzyDDL_UM%?c5YF9v21n>RZKO$r)-#tYPod4X)7kJMk5aiHqMoY<={o3^+ ziz>rPPuy*5Gb1vj%K@mhtyuA1B!|1^yeqG0BN%?`oQ0T#3iWzGpmzOi%)D>S=hYfD{C2fx##sc3;nDF2BKM9H;_073%4{S#4ws6HI|YeacO3=! z$C9JV@`4fcNdtmE-IDlyV@+fSLSu>6y#Blr{EUA+`d0HW75VzouV7IF=f;$ayF}$1 zqRlo7!bY>`FzXy@`UN8a71p}kfa@!lS#%T_FvbRC+zw@niC#&u9Oo;U1Jebq!MNR* zL-_rY8Z?=`J+_-VEcW>cF+E#xf4HWqkX+Gy+L`B#j&lL9G$PMw&uK?1$xJ^;YwK!J zNUV(G;cL!}{nqh$^!FeuvT!EHOZ9kNpp^GS;bN^)9VHETi&sr>YR_D`ZokLv33-#q zMLI|t%ZGDk1oze!yB`S(|7Xkd>VPcVIe*t{?<40CA%e{F^g?}l!@q`>6@>eg%jMod zH)9z64s;%@D*E*cIv?#hP_Ub2?;7`NWFvjEW}tcT)GqxVd8lVA@XLeI{85yB+v(`) z14pcN(<>V`F_KRd>@70hvL{XV$NXy7olv?ctYe-`EE4vC%q!~#8zIsOQX3%>c?YA0 z)lzZC0bLEg`*FYD*EuQwUeuFg%5^X)U#Sw8{9B{-9zdS|ba*DBf^9g|ii8W$~OU1WB+;^+N=BLCF z;HG0`L_$Ix0zSdGCDK%*cu{m$LPZB$Hme^GeRp(rQ;&Hv)?;jL>%`duDNNPeG3!FG zeF_yoMSVlKBxj&!Pm;}jvxH%P)+Df?uaJ;~R-gn;Y|mQg)~LH3pV`E-tx?6S!T-(u zH3PTC49@EL!$wJm#Iv*#tnvMe5i#Cdx5$>4r&vkmIC+no7=8Za?q=rvPH*No{X!!- zs2dU1D2pa_AU;%N_r2|Htg}VazT)EdQCgNbH$`)aeyM>y4_U5d5w7%zBC zd~!qcJllp)M+np_ibqpybcWxZhSCNZEro8e>kM)$xgeUfcNoA0JpHd<%lf^}hpHT-<=RIKTPV7;Lc8(EO|`B@oO4H!dcrPaIx3yL@059`hyHX4jEEPxst?WOw1(>? z|EZBu>TN%*VAPedd?wBxB225y!ct1JX;f#WY?Dy%^r>8SV?pph%F-p&~<7+BK5uHg6Ui&=zlXT)cw4`db`a)JCOr$2Huu#Sr)7kiuf z=!X0!JT%!XT}|2`h)5M-gvP@4KF(o2_QaNM)#p58BUqWM^O8+z~)W5}d`x{mEO-ckY?Diz|=Q0y*+<`qj;f(}DGFCw2 zTf1A7)!Q>BKeJDIoE% zw5F%R_`jbj&IF&EQ>Yi`IH(SI_pYo6CtMRsp3u)+N?u1djGZl?1vd4~W`w*;sdt$-<%WjF zB&;{mDclNj8iv;)85Y1ZIbb9jzI_@^UWc;E^pFZB^0|lE)wSyeWmH&NFTgVO4XIk) zxOcT`>cY4;wtoEfUE-U?11mJ;2}v`oF4+Dd@ywge``>jtM0bdsoknHqJ&~|R-(U7Q z(k(7KwY$>h{NCCTw97_TsSxps0I3c9-WI3oZ2{5bBqx)oMq(}V;#YNc*SoyVW>A$^ z*%hBmgfEaN4d^Sz_vH=Ycw~*u-mgr#B?oU^4PhT6-B`_URHjtv`y5yIZJ+DKl$6eW zq4(Xa+?TR~C9YQKv-vC9A~j2}6?hzdUU%Vd3I5g2;+u+!2%8BHJ0V^+e%)tvsI^VMiY{8=ZlJZr(ZIgx| zTJ(l>%O}y;;9%yq6%qOv*}U9CXyHz6_wYVDoFUCks4z6gwB=Nd0E^alj7Fr)c4##1 z);cF`6xxk;#XUz=Op*Quyl#?z*~To|we961N|m*RnkKY8wTopaw{Oa^u5hsfvDb1O zy{WzyY_~J|cFAWv2wE^E`$4h44XHjZxWh`ADWjY)9AOi};GrX-LR-ZBL~>RBx5B}b zIz_F;#0@N>vAJWrqzYsRI+tDd59spAnts0Y)FO$E-U7y3aQR&#g4#~aSWMjRh5UJ< zs_;?2V8v57#95h>TIol@h+#&^AH|FmF9!J-$0}A;m#KJsWX&lK=xXMJ4~htrE_p_MFGS;%pH*kNeZ+{J@KEbCUmH+uQH z0nFz_6+4^G{ngx4r`i6uj}unoDG+EM>|l{NNWQ1bz}pq%qF^^<5Z8lz`Qu|1g$A1s zTqv>a+a5y4!JfCE`0yt$YDs&4+Td^T44geO)A1ZgZ({d&e#?eL%LAodqrJyknZ6ie z-y!)9Rs?@r|3nGauc;Y-Cb@lJEiYwrAaS|MQo%Qfa}>5pKF@$F;mJIlAX?lb+*3WC zAd1U*FGzeM0q=2{wPG%D1Z$QAcI*45nxy_#&fx5@>xK#VJD1))6bG&sUxwmz<{s59 zX>z_a8pYz_pi{3RmG~Wk68O1`y@TRRH0;heY0rpq17HK=-0K%<0q zV7s!-i%mu6Bxqtp|q{AUM1cAK(@bs z_3VQ+PyI_I1JZ9Ti+P1vWS+b~GCJnwL}Qa^C7Bf60oJRmk#C5%Y(6}U4HHA>Ly%^9 z#jIvtG*)l+rV!K!WkdG$RrmfS<9f8ariH%))uGsG|9RwG*p05r_tzh^ZEaM44DrTW zEMr%uP_(_Hg?)sR+VxSrQN|(}1W=dk$}LXUkH2hFcpr^4?lj6>aPUzZ5((UacV(rf zk1^xZ5_7HL*X7P9+&MXU&@Q-v%9#(7(~n?T&JAv_gns|iAwbI^xhIDxV9(h{u=4Wz z$crwb(^ckHdKUv>=40A&cNtqWyY0h~4|y+JUM5y& z>SV$1j4FgfzG?>3bCSgj5Z<8>zB%WEaYU49bXB9?r7zqEU2fg?jbJ=4{4?miQX+nisAjsmXCHx0Csazs(| zt(xDjX4iV=`w-MtU-RNQ&@5BA_!7y{HGOTOcFqPtp1j)<+ZW)bFsgVzmyCm#s(G{r zVcoDG<>EQwk@Uhn?>01i`Ao*Tz08%*hzGIi`ghcXZ=diu&A#=1`{^S_=be%9Rj)BV zDakS8WEk1o030TM0oMQ*TUS|bDnBI{5>8A$W*ptt`5{6vYIqr5=&Zcx{QkdokIdXq zYkGtp%JWw6IkhH=J|eqV*DocfZ_=M`ZqvfgGfC+3#X7u(?S#Ig~mA-9Z^w`e5#ifqPh|xqF7k~MO z?Kk6IJ(|_o<+FBsH3Qj(JcV;~bM%J4(f{81^vB8$U9aw#?4#Jamu|Gxv4zp!y)|EW zY~tE6MbKJ56^}gdegDKIXpsqb#^bg5_xPEI>-Kc-HzG`ze6fRh9pdOUEZNiVSFk%| z^h7285=Oic$zh9cK1M5C_$P_UC+YcFG&jmlhRRq&sT~4;cY7I>H7$H$rVxTB+Qh8V zTD(~^_*iR2yLYwp&!#xA@-C~|nc3ak^%vnFu8c^YJKJ#(l#ATxJ^vvoZzi2hOGWF- zNV_0r+q0i~d%F8Pz9mZ-kNu6b!k@u9o{GnY*{2s%_txpASkQONI31nJxF_D(s2PPl z-^X6QU3qjjK24!sc->#SY^rzn{e#RoWil3S&HjcXD$Vky=HE(9r%5hpoG7{$oCH3##puM+e-(_Fasu@m-lh_ z?A$&|2g@Ch4eudUG}YKMf+1liTE=mOf^&WxQ^8(0;yKP8Ch}@0VKef*Z(+ZFI*^=q z3?$qYRC;1F|EhpZ#hK^7bFMQIA_8q4quLhzhoZVa^kf&F6htFsl4sJ5E*Uzgur)7U zA<^+Vn|Ooyxz$Af=5F@NNyUU>`h z@(<|B^oln#$<1vJ-b<>al)^&l9e7u-L3vtb)I2c$UERLMY6iA{&J&A~rSG-rADZpe zeW`S08N{84#1qSs&tg2g0V}3e+HSu%BYqcYbZifz_C&CKBqKYaCr*EkJ|tR%zF&e@ zf(KdqgqaB9Cs0=4DtGZcNT`B%kQbV$*D za_<;b<=GS^UafKFW${{jR2cw^8q*w`?V}I*y>fQL&g_qfaL*gRQ9<)13OCm=mY=eQ z#Wy@yS#{D?gj+qw;(uW&U%E-dIVDO(1R^?~KfNm(^I~r{kdEqC<6RJ_B-^d-m=eJN?B|Ip8i)VFSyKFF?y6&Pp7y z#-Ximl}$&zJMC1w$Hu=sswWf6^t|M0D9%e+Fq&YUWlAa9#jaqJn4OtPB_hNhdaX{A@hJ_T(G~MU zw-7c%IE!Cchdxtf=>4T(>kVy)bk5O<<^83%sp;92A!7Nh(t%_^8usoPr|pAXdWf`B z!*Yr(54=0iImW1Mg(-4~lZk+Z(2%IUNNP|CY?z!FP_RGD=sIucHx$BL${nTrCT@adT@O+65!QcDi7ve|E;8 z*j6dX%fiBUJ5x^L)#-qF(Dpk$JS^Id0#*wFEDx+0rS({BR%$!EQF-l59c3$>W>8|fxh@J)of zE>z@Qsnh>?@zCjQQ)nzBu^Me|Qk+DkNqffP9CdzHfv|RPVi$LennW~;^*kq7zL;`e z3laH77@w2gQGZ5dhI58zW%q~j&giK%o8Y!Az2}UgvIXnA?V3@o;em=F=HknDUJK(v zBqD3o6@E!K&y~)_YSUektRySM3x-;mm3aI=09|ou34ixnIh(cEqm4VPC zVRS|HfCSIfBNP#w8WQE~lbBWU3(o~ci0GRiEBXbmPP5^VB@=0FFkh`-Nusy8)0_{c z?lMoxZ{cF~VIoCzorIP|%2HB>8FlFokJ2S1AFf~c!E0y72F?TadfeodIR`u>g9$%J zShu(8Gsu7qLa>Z*f>fkP;>!og8a2j-$4=!YCuK>V4@B%QHM+bmQl&pb!5fc3M{~LOz$>R$FYO3-wp{7S z3uG0Nm^#TPl0)~|)q^f~WM?ahr$spqKQwcT4M;i=W#@iFqtpkP9QjcPQo-KCRB-Jr z9!DYn_S!|God+wU2kh%sZd_PRSh0hF;m@2-h>zY2woJw-W{XhV>4JyU~BpL#M39dWr^zocj6Ji6^h4a}~q8jP&?(tYMx;e-bBwSaZyR>uBB%9nbO|TNOkp6wfW|MD$!t)k$-FWp= zM&qYHILMg4yQ$EBKeT3Ewy$+BH3`7xLCEwPm-SD-Jr`*94=xJYSK{hqZ1q^lf(#|Z zQ1ZO^T6J`<_3Ht63QE3+Z}Jrcp2?oLt(=JB6nm$_H@GHG%*|P@_hnQUhc+##=MeVW zJ2?vv=Q@il7uo0Mi{}TT5ceME==A@PKN0E*3loS*C{c(u??h6-a;Y7OI9T1F@2G1P zCHU@YnyTNG!scv&3o~=@vv-jz_Wp={qvhPVQTFv7t)ztPl1pLy4NbRMDiIH$hymeow*GftR z2VUElcWsW;go&Hx18%v+IEnDHaES;U3vuUn!woAa>ihlTd&Uwlu(8dT?o5z!CL$?< zkwjC0?zg;)Uu8QZS(KU}wsLeQTLJXJiGR@`(<_>#xV6 z#^RLLRaFPc;vthZ_$mUHh{DxWuMpobw2ENPW*H%+K<+Ien^r*kwbx#kz6QCprloiNTzx zlEH2%h0;?f*FmOXhF{lU4=-y%ze>@WNGk7*rk0N%aldeTkL%pAP}3d|ze&tO?~m*X z^rDb|F9YQQHBo&;{qF{b-kaN?F_P+Gx_lo5yUmhOe}kofbhU73k;YG#T5xmL*b`lyK?N#&6Aafv|U}O$G@2>8W zUJ+-yZFBU?5aK);)_P^aU$^MB8Jy&c*xS*1Wfc*(6Yqwk#Q{T%<9>M@OR>!sy8 z6w9C}MeWa82NuF^xsG}1_G|TT$%nYB^Y4am7U;{^C`6ZJ`pRc>KIB}tGhtVKap8-2 zphBd*?U#rA`w{z)Yw$*^ppz;ws;jso<(ElsIh`&T^od(=un!}HesxCAn+hFnx(xvzHbp282D3%gAqxIRQ<_jlJ8Bi~bCCS91&30eu6~}rnN&Pe8eP z=O5yVYh0Dt>fJdgk)^wrO|)aO(M<(cA09OsiFC;zrU>_~+;ZOio`0%A?+H^l-5$l8 zJ@q5CpDe(xix{wqr2L3IJ)Bz-7o&jEcHDRMEQei$)tJG1)~yH|UPc#{KC?0wUXz%I z+r2zDUhs4kX{S;gITu7Fy4KJAe!)KSCBsZ?lqAT4iV;`HL3( z-BrNxTCvj>EoL4xSIm}m)M}p-XZ9(alD_-G?c>kdpSJv>#j5niOD1%CGh;rp5k0x( z$oy=sQeNWHRq~|IO?A1sklTm@f*^WJC2^xF(oPSyyB~8W;+wcxJp6i}9$Z>D--15= ziPQBcf85Qm2BzfT0nO++k4cl170rhcH;|(A6fbc!mG)98D&HtMJP{uegs@E;eVb;` zA+o=5c&FWnfWltc7ywy(Ivz!NR*z)!`whYs_*fjVIxD(DNk~{{tL&`E@hngADvboH z5{5%#_`)KPW2r?|;_jv{LRPHJ8NgMLK;%!J`s$QoiP~3qoiAV8`7%Es`iYG zd+kme=*2Yo{!8ghDpVl;==&`iny|JwYGwB)ifP&Jt5O1MLYJ61%>+oMT|W>i6?j-Z zGgwsUodleUelCcxt?I`;-e;r;)(k1YFn)cV>IyuSq9P4n#6nv1LxHAV4({}zF? z&jB8g-rg(a!^!&zB!4jflXk|iCuV;42~>(vuId=$?fmy19w-ZIU#pUo;PT@^Tb7p|}!a~95kb)GW*x^szYhCusbsc0l%nR(B? zFj=2KuULy1mL~?qQ==u3 zz1Z1l!6FU8Tx_9P-#p4~AR-8Do%)ortbQSKWC{{SL_>yIOgrGahXDD*v#m;lfIqq6 zVR!Tmm|tFlK?L1gHHfp{K=cY@0DVX!Q{_wqj$rTIx9Xba)eGe`IH=dg2)7HFIG5zR#GT_ z`Ls<)QJ<7&bFW|EXezvYNyjOSCfgq>6Hx40Yyni@al^)-jU;jb5=3=Uw*>x+{%2c1Fz>*Bg@n4J) z3j_9C-Gj?R|91p@kZ2G%Lr02?w;+ERAQXMQ(L??7{#m1MTfucBtps0_t=%WcbN^lI zlck?ttM`P9`k;*~udk%~vgq3m;$)((pOClR$Snrq527CdLb62y)r@CR0VHVMT7B2&0oVMm_cLar_hX@*wP2xlZy$r(y90!FVaKxp zvXSPzu;9PQ0R;nASHjBJMG`tu-YXK97r@$&1S70@FwrB5XAdScMb0Xctw3f+L@`~u z?VzEjP1}DjaYUcll<=s(4n!zZinS^VZqmFd96ARG7}S<^BF*v(xP8%hPFkn>4CZpM zIMT7SLE5x{c5Wxe>2>~$0`(4^{|^~7)j7rg1h)9`a7%-m633gg&j(R=WPG;zPp(-s z?om>%P4Y#5J*^bj&CXwx_*3cGT+u4-+iCsV>@OwdQ_qMIvBU7wHXxD@PP?_kczvSs z3QSb6^pPFm7!Udj2}kDKZIj2Pr)WAXbqa01Smxio#tdU{ac9)ANtWYcy%psiT3{Ih z1}Dp;cmZv6Y##YJo5Th%5hVem8Xo*w0UgeMufR54v;i_JzC6e=<`-L{z{<{=8c4qk z-1_h58(;<~M0cxo_v#f$A;y{Z{PwLR z8u#2X`(I&o)S+-%x`Z5O%PSkg%}D zlL(M<TU2&Z5`qa{af_!L9h8PUw$bk^5LR2C$i|3?^y}xt z=+x~I2wL1Jd0-*wS0fyQk5xv!q@->LjYsHB;`~?g@<>sz(X3I6O*>SNWFZhA+b_b<^HKM{ysuG46gUPio`8Tr zq5^Y4*l8{X)_bm`+bDnKW=XKUJDu}i`OFLV&7YqpxC;k$-x!WIgK=oWG6yEUr$ejL z_MuJF<@8^8e@aI;A4b%>Z;ptUZC5^T9&!rzSOHT*S_nFb8K|B?2>Rsjms1Th;^?@n^p%@s9QEdXD zI~OqM5#ORqn?>IPXFDLi%d~RBPm(`ZhtPG^DMZFC48+QF)#l#;QBbg>P7oS1AD!e3HcG&^PoK_ z<`&IFw0i_B5h=;i`x2=1x%wh%^pR2v-{QM&-emAKHghhErWRxwkUjy%pP^W!QWXc9 zc)+jKi(1mtVXe8G$=XqIo1Wx_0~Z!Mwv`wtPNRcw1-d=E zapNf4b{|LBFooklaGsV2ATIKjaUXCtd?AnfT zjlT4m8yDy5_m+P33Fg1~D8KiJFP@kMFJ-O$Xu9~HT4qXu{;Irk?{Svw2et4}$uK1! zcVe?f*}|G4mxhH%9!u6MaQqW`&3N0`{e`J|pG?nQiAIXbo(;#ffn=A~=Xi_W^Os9E zyc`|DnMK{1Pf;p|MZ1d|kEDo_!(xS5a=31vC#=K-X5MvhXyM?l4-VBhLYz zyvB9``f=hc>8BqmceG&g#$j%~tzUs$qKK-RY@_8|VKs937Z1I^Er)0)CHVu$|}SB0jEEzmhZ&ZY5F;m zaCcVVqM@+bnr~Mp-Lhe`K$rj6k!V2{EB1u%uLNqoW;cx|<%l}ga^<-IZR>bJUoQ58W2OhxLIeAPbh!YKOKv0+t&VpBpGA_m*1+M$4>QXr|pB zpt@7d{Jl3x2!1H< z&vi2RE-Dh<-vbyPQ^4c)@Y4zF`IDL1(p_kIi3*`81>pPO>eqEp~Yd zly*n#mwvI|<+QIx;+|)1i!gdk;fj*O<3Iut`7=q z7M8#Cqio}elV$@BLd--Y(g#Cu3BFldT-{5-1pD%DN0G4v*d=WGzd_dNvShE%>jSz$ z+At~TZSEsq!0m>|h)!`yC?!I0;2~?sed%czBJ7VfPE31|9`N9`mKz_a?RYVSN@c!W z_?xj{H9V}|K-M6)w$t89mzrl5zW&{(4^3GZF=ffC*oRxcn3UcYcKMd>RW!GgNb)Lo z?MknzyN3YiVJt5NGLD`jYMpFBg`>4$)I=ee)W9wZf=k2HB1oHxhpS9-Jx>~d%=bK% zu8VtA9X(`iJSU0jhr3X;A+T-T7H)7T1c1&q3y=iGDH!n4VZoDAjb40k?&U7-cr*jI zP;2i$+6-=en(cRFh}n0P)2_=?pYeqt7a(9qbhk1`Dbh_7D)s78jCcqOM5~g92uwx6 zU0kLtohHTH21cH9{I~(R-RFI|K-G*~RWo!xOYns4Ew}Gx_8yyEADX#jND-|pyfg9m z`PjwRU*&7MP^IiTHBQJSXwO3~FEq{Z+R*=<#E$jB`B+JO9PcSQ;4LKQd=Ea`pn}R* zwa-a#wAIQ8J_%*=#|Uwc<8Iz~CZrY|Lp!?i_KI;HrOFdh0an4EyH{kjo#wX(_CaAC z^H)r$U2c8UlCgrghWz{MAU|_Ih7PZ@C8DzY?0!KSHaU@dw^%?Og+M%$mlJfj`6i4v zW|K`|*+P1@`sw{Fux!vegFzL_Dy)U+YC~^TZ1b!XY_M$6i3&H1UyfH2T?BxV&d>4s zuu#{VZ0+1=^)3q`PC=%;1AnSN&Yl7qWOvgA3e-$viT754m@oE-=4+3wnX))%(|+bQ z!e$p(=TOr#1y+Y9eTHiVx>ggDFq=0QOnHO6bMcymC7H|8sz)l2Rb-N*t}|By5#YzX zelwik1e~YCThPwin1_)kQr58YuEBBP`ZW7GLdz^qU_=5ngnYVo0;Ed;u(8g%mWwY1 z)#@EpsN&`CBjPG^wd>QSM zKhERulJmxT2yP&sw9M(`>8;sRlg@Z!E95nDSuuq84iM+^WC~j=FtN4~*NB4+SjCh> z&7p}yY{5c~d_X7j`qhJU;+;ekxpmxLp5{y7%fl-n1DiMgV7nHIq8K{S1AskHNSUd~2LK{p3XU=*j~+)9W&ib}ygJ`IYl+f*hH z`X;zyHFx_u)~$yOBkuC?RTQ@+)iXp0t&27bG@r#9Q+X#32J>5$&)5a ziraV#0~4gEyWJW@EH+711c$#mq~@3qq1!4SNXvcMUP9u^B&rKWILjHip?-r((r*D7-S$8JijG~Zx5@H;9=)z^&Zw%C)*&<}e8l?op8WHh zBYZ2NLfG<@Lm1$$Cn(S|O@te1CUW%MX`qp`K!MHrmK~K6!iXFZRw#~#Q5HG3h=fB@ zxP)2VI&&1t$M2DqnL*R z=uKuCPPF@2jAm(-2*t>A;c`;$KIgKw|wweNiuIs zkn~+9$9(~kTRY^@`b4?e1qxBI`8p&JlA=p2ii>cHCkPkkAww_==!(ZH(kM3AebCI)j;CKjo#I7Txg z))9Z(DA91+j}A!&FSPaZ!2`ZRba+%z3N%k(z@)!Q<10zkq?lUH3Y#Wizj3#VZui)v znU~1G`sP0+2`?T7Jngwf981_yrcM&QLfICWbpOG_0aY7R1DwOT?YYY4LYk6DJ52|d zrFqpcXwMLdP1C{{;JcXOuLRBUYnedfd5KKkf#jCLZ{(s($)OJvs8o91h1;K}UVIwL zSBXn&B2*n!SLZ`DI|NI&yY#&l?#pODW1-+C99RpbGKFu}PM8Y1Vh=}pdtfS*=5p*+ z%`?G~o?GX$;9IOj+9Ispnnv3P@vXqLqz}g`K!(<}{pL@+!zrYmMB-150j2Iomn;%>ICthHbEJtiwA*5v%Ioj%SRJnM&`1z`ki%-Xx?3 zJ`NHU*s%*nS9Mu*RQ^v=Nr{btji0?KPGA}*Q=opEumKhZDF)F%X)k~*J;u$rAihWL zqoOXB;K(tiz;GKBfJzL|jBK-=Xuhjn0Ui4&8%7qEz^CSA>0nGx2&gF}H$g9Ur~}bP zx;BTO_D91jQ}5;EUEh^hrC&BzXtx1z&P~u|EZBAjSIBJ$@>nN?#kv6$qj}#RbWhn8 zXXgFQ5O;fi(L{Ff5+Jo08w8i;0$!^*Idwy2iV3r;z0_BZCqD!sB~@;y!o6L(-foyI zo&}yMd{A6_Aa!30+Js;i#+?Mi3h9o$0TiO#Ee7TPMS9h|^3FcbjXqqoyG!2hx5tDM z=Vw*pB5+&5a`f^8-#K=}wmSZ(g0j|uWEN;OEHd67ZS^2805JCScilA=Ph-} zeeaCm8`>Y0R+raF%Xl20a;D2JZ*Whz7h8TpU%q#cc`Ir8e>KT4rdw<-3HJVPWY*SpJid1eXz~8je z)!9VX>B$$*DHsNXAH?jlnwu2uw5jTr)J(|7>gfhCMG&xH)}z4c`8U1sAd!oOg^;c9 z!^7AxJd5O`e~-xFi^DJhyv}cx!)iogZlB*xc=xY4P>6So7}Vcz&io|~2aQuS^4?Kv zQ)D0UzbEkYYj=Y=1ev;LKonG(1S+@Ah>}8=G$CvCG-+Q?U{K?3@I2kREkWZR4X125 zDbgGa#d%%-CogKjALFq%BDOyQ%qX@qks@^98`)|7b8NDV=>K{6E$ez_>nG{Cxa`_#dv}17m?Q8;b)NBU*UhtUF@)f8#e)>Er}U{^kKg?SF2B21OB%&nrHZ-1X(D#I^;c&b?TlAD;UoIBh5*f6l;L=g2FU_v z<%ki~&R!(+KUk(JrlCsUds3VvqjB>ef@G`7Hci}78Ne#lrz;uZn9zWMIp*KsGT=>^ z`Z~Uv52b4R_^FH*gK1QN=N1MgJ0#VW4S>i)j|rPYg&L^>uTOUV`7HPKG42N$qNNAf zHSEZi{h0_=x7>c{fAM`F9df+Q+D(Qy&C|i(uM(Z?*W3y zc~sNPQ5aa_*OvhValTvj%H4v%ssJIj$t@fK+P`lt@06RH*}B1O7Gu){}u5y%e%GpO@kGC6&q- zm?`vO0A6MH$MMJL@VQoqX@uAqHU=cOdFe`@Q)H-GM-$n9onzbkzwbe3#Vz;s8TOKZ zBhy@s?XCGk**HALIB&^=S*OGyt5Sc9&BxaS+cFof6zxT^85E|?Yn3DA3MUue;@aDO zQ{rcS@xcEiaJq!RJHB+rYuXh&lPVvILEsdXu>4 zF@S^DZ;vM@TVBm{v0%)|5D2vberE?K=kcs6U0gyPydhP<#X?s3Lw}keD{sw^LgfR8 z@U)a(PjF0x{`Q>aD{^^8cQpgNa_0er7dxBn(nX_#ogv}z!oaRDd7&u|zJPQFg?|`8 zb44(R(k}l_hV&7d)x`BX`#e~9ksF9-B#{=5RR1@hYmqx*_5o06xE(ze_@8BIx~@H* zMX%HP%}85}1eg+MQkvD&JjN4lJ`sAoxBk^Fl}2v`&(uvOfZ_QdiN%>pcIWjEd<)C`(}Q;e!S{upM9-4F6CBz!4=B zW49qlK*SskMorRD$^bZb2W&)vtAN9wPrAA8b%?^jui7~>9LT`Ti`;uIS#J|_|A$G(Mw>i7%-KQx27nK9iSLANZ{qKdg{~8hL-@M zEi7H>OYHK*q#kxL|B4YHqrS+c)(;$z{u(wZY!e!n;O$s^sHIxcJha_rb;L zpL!CXlHdFe&I6_{hR097hAO2#%{$O^0cIpr7@A5CI=+D6ZQPK|$ilG@0K~-%8)DjK zFPdQh?0jkfU}7tRuA~>c7?ukRV8^#FYj}QY-bglw-r~AsU*ddEDAdLe= zl~{+P0b~Qx59ub$e!ZtAMR~6J@Q8$7qN4^G7}(VS{HgbKc>j|zw<7}QSj$J*DJci{ z@BS`^8z=PY_H^N5v#*7VB%i%3WpMz2_&*Tp@FQ*M!$&88r=uVJ@EG7wB1k}4zP`{j zg0!i+$%jyVxC1S(Y8xw1OKb!4UQEyUI~>8jh-nC--JxkM0UT=KeP#k*yk~}60I7ae zhJ2ZHTZag`4bm@ON6f^O|9J^rbA{ar91EkDxJN;0=8=AK{b%+UJ;TKnyT$s+arvH_N*nFPPwh;S+a1mFOA?^Y>wONj>dbR_bj9a5h)u6NJZ8 zm(DvbO_d_JPwuN`s;Vm@YH9%GC9PAS4mIhM)sJGCP6`$Ru56DDO`t2F}>8zB+o zoMFJ#CbbUoKU5TkVh^BbClIjf;F+(ENNn$wMZ-(#yK!>6TbeBT7wbr$o*xlyOP{#{ z+D^jL5Y9UjklvtCyw#cawTkIs{JJxMe+dCU;RUcrWX=?zE82laa-O*;h@urBW_CXc z!!X1k2t7zA8zt2b9t)EbK@a*LRX6;g_xc6J0CHWn0*D3-cRX+><^88mQ99Q6b@F|d zW#!l`zcEKXIEWq^>7|4BVFP(0>m~q;T&^m>2|_`(_n$h2NI=*J(&#ne0H{FD_hc>-86~H#D4##KinqG-kJ7=O1WZ)}O6^vRWF)fL2-( zYXw{ae*q{luN`ov7oDSkP;Y};Qd?3e&~TFF45nNV_VDM6S^2NZ-xEj)nA+nS^@MSfC=W2i*oxg{-D zw39?lJ4YMsoCB92X@{C&WgUw1!GJ5hvw!DL2t|MoP710UkWYdmwXa{VcOpu@yJX9ZlHrdjS{dgT>pQ9z$y0j@FDEgo>j z&4f>$dOXIE{B1fa^mkH#y#lpbmy=2i?VaPyl^cqItYk6o`LOSI@WdVh&?ppx8ozYg ztn3a00HoLeBTmvT$n>LzUpRNs*o5?pPV*{fG0!c7eA%jvIUGi&4BTqGvRU>#APvyU z!oRI1(KC`zyL%u{`$vldo?<~M5a9GOC)i^W6EOcx-cS%9*=uAKbKlaZeKpIstj5z6 z4RSX>%NHHI0C)6^ruD@r33$pIb%CwLc=aH*TcRMRp*|57LcHTEhEd05d|gpfM~%p! z2O2Q4<@WwBmLA z=?s)n-_gLkD@|XA83=;jk?Uf60jsTp?Ei_!H8#;ii67r8$BXxXy7RGUavoBIR5`5n z>55m!0U+t=N0)^J=E00K-qO+mOlp+^fJ*q=dEk4)TbfBVvYKF-Do@f!*pO2R%Au}< zR*cOLYP*UO!@@!P<7BU1b#D9wX;%fP$hySg!064yh-ajcx{&!lL{-XRYLA_pX28yv z2T92zJaVYr%@o7u=_ge4MIgBER`5>dwy3Z4%ymD=ns0u zRT~C-1^d0JpMUwpJ}x6_*+r)~0#yTz>>!8%$|3z(myZKqPdU}Pg}RrxTHjNda%!mh zpKMxnbo9Ry)F`AX&+X!KU}&a(t!8{{xB%2)kHQL8F$`E9R~T}CKAbV7DN_-c)3t*l z5QalU4Z$2{RJzl9eLzYg=wC!c=TIU4AWAi4Qk|!iVwCe922MM)Yxbi zHU`mH5zMl02fIy1Tjb6;%YCM9_R^QY(#eVjWOfVzUx90QC?-V&erx-(&Hqnt=l%~> z8prW1WRh}5b`&Es6GBKuE|tu5!st3f(&RFkByt&}3xzh#a42eWo0u(4gLTO*3F*b6 z44Wx7w=O%@ZFa>g+pLf-`y5`{ANKb>f5Ca3*YkXz&-3}d&*vKjTD?tAZ*0C(W(Cq* z%AQk}#hBkGGP9UYj= z#}~^zi!XrKKzSa0$Yv}vVnm1TP$C19CUN!Jfx&>QM35KS3rHJ4?Z6e0M^Gk;36%sP zp^UKD{|+DWg^D3Qnwc=i3IQA>0i;@GRtfIi>hd^Z9=itElwN{$>vMgJp8%D+hNt_X z{XH;Fojc5Toe9S`uN^TO>8cl(mM5LC zsG_p!0&9ZT+%WmOEa8(lce+prNMmb4wsXAGAOwp_jX);4V65DZ*1htx5Mh!bLhFn=(P zhcdW^jtDu2m`tL1IJ$d$Tz+c&rF9Z@PR}qV!1O;SS{@F*xL06FOro2?0oXS@0Z-y2 z{uPxkHjLy=2XJkz;j2wjEP0VC80J{&XJ}kSsMO(|R)EL2!^wuUB*pLpAxrZYDF1rH zWBU~9YHW=r7#C0!sV?eR9$$>CEwW zcNQvz)jUFY7ow|^EQoak33Qa_xYM*jS+p|F&0#yuwL>+yDfWHf43r!6b8M<4!%=ys zkfOzstuHR4^a8+W#6mZuk_Lv@tXhIZVh$s_gewPdi*bMI_o?zdkU$JP-0$Ub5Ghlp zYO(5=7cz-8}-G{dI9`eBq`V6U9b8TRo66#HZ*CF7) zs)*8OpsmV^LRrK4Crbl01o$3H2GkThtX{nFB_u8=|Q?P$S0=!bkCdurg)6xYI*%>*9l2&el9=e~BqY-h_9D zory0dqDEg79PMwo7$GmFFkKbli)P6Ne%S^?6ET|kI%*1EBEI|<2+py{P$d_Xlvo5; z^&O`%7sH0l`fWVhG-WGN3o=TH^z*iMx$RQeyhv#Y+>t0VnARto{SHZhv0|~ShCL-?9hkZb8GbZpk{1Acf<&d`V zdIv%UKa1UN-J>p>k)CY?z=Sq$W2eD!H+51p5$7+T8Q4rZbjI5n%II{cP+Wclgq%XS zLmtoe&__DYf$R4`SYHcj5ccH%QKc+;Qyo6&=en!v6-vN?@sWeI9CkZ3QBoJ=rH^Z_ z1TrHuREPSlE}XM}(bd&%5rYFuRZU@vRWS(B;1-QkpA}E6eg6|9?fZzcSdiii+gTgI z$IG7;ALtTl*?nb9oR=zf+|4@RdFr8AGR=WcvdRQ_$-Jix7~%PXs!E`AX)>TNfvm8c zXW8FtZpbC`6{RXYyti(<`%P=TGoBcK69ZQ2|HWn(&N_7c{vTK|4v@HQ=<$U1($Hr6 z1W+M!A_q*%w#9QK#9Z^NjLG(l0Qfy%aCpe346 k4wvz-{YN6v)1WUqst>MMUb?<;_B-%UckP2qD9pHj01%{n^Z)<= literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 3b3b6d8b..79966cd6 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,14 +1,16 @@ import { RouterProvider } from "react-router-dom"; -import Router from "./components/Router"; -import { PostProvider } from "./context"; +import Router from "./Router"; +import { AuthProvider, PostProvider } from "./context"; function App() { return ( - // Activity 7 - Render SnackbarProvider - - - + + {/* ACT 7 - Rneder SnackbarProvider component */} + + + + ); } diff --git a/apps/react-app/src/Router/PrivateRoute.tsx b/apps/react-app/src/Router/PrivateRoute.tsx new file mode 100644 index 00000000..a27eabaa --- /dev/null +++ b/apps/react-app/src/Router/PrivateRoute.tsx @@ -0,0 +1,37 @@ +import { useContext, useEffect } from "react"; +import { Navigate } from "react-router-dom"; +import { Grid } from "@mui/material"; + +import { AuthContext } from "../context"; +import Loading from "../components/Loading"; + +interface PrivateRouteProps { + route: React.JSX.Element; +} + +const PrivateRoute = ({ route }: PrivateRouteProps): JSX.Element => { + const { authLoading, isAuthenticated, validateToken } = + useContext(AuthContext); + + useEffect(() => { + const initialize = async () => { + await validateToken(); + }; + initialize(); + }, [validateToken]); + + if (isAuthenticated === null || authLoading === null || authLoading) { + return ( + + + + ); + } + + // ACT 11 - Navigate to /login when the user is not authenticated + return ( + <>{isAuthenticated ? { ...route } : } + ); +}; + +export default PrivateRoute; diff --git a/apps/react-app/src/Router/Router.tsx b/apps/react-app/src/Router/Router.tsx new file mode 100644 index 00000000..abfb3fac --- /dev/null +++ b/apps/react-app/src/Router/Router.tsx @@ -0,0 +1,16 @@ +import { createBrowserRouter } from "react-router-dom"; +import Page, { HomePage } from "../components/Page"; +import PrivateRoute from "./PrivateRoute"; + +const Router = createBrowserRouter([ + { + path: "/", + element: } />} />, + }, + // ACT 10 - Render PostPage component inside a private route and mark postID as a params + // ACT 10 - Render CategoriesPage component inside a private route + // ACT 10 - Render LoginPage component inside a private route + // ACT 10 - Render NotFoundPage component for undefined routes +]); + +export default Router; diff --git a/apps/react-app/src/components/Router/index.ts b/apps/react-app/src/Router/index.ts similarity index 100% rename from apps/react-app/src/components/Router/index.ts rename to apps/react-app/src/Router/index.ts diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 2946fd6a..b17e05cb 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -1,9 +1,14 @@ import axios from "axios"; const axiosInstance = axios.create(); +const token = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; +// ACT 11 - Get the token from localStorage axiosInstance.interceptors.request.use((config) => { - config.baseURL = "http://localhost:3000/posts"; + config.baseURL = "https://test.neuraac.com/api"; + config.headers.Authorization = `Bearer ${token}`; + config.signal = AbortSignal.timeout(5000); return config; }); diff --git a/apps/react-app/src/api/endpoints/auth.ts b/apps/react-app/src/api/endpoints/auth.ts new file mode 100644 index 00000000..8fe82a11 --- /dev/null +++ b/apps/react-app/src/api/endpoints/auth.ts @@ -0,0 +1,121 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { User, AuthResponse, AuthLoginResponse, NewUser } from "../../types"; + +export const createUser = async ({ + newUser, + onSuccess, + onError, + onLoading, +}: { + newUser: NewUser; + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/register`, + data: newUser, + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const login = async ({ + user, + onSuccess, + onError, + onLoading, +}: { + user: User; + onSuccess?: (data: AuthLoginResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/login`, + data: user, + }) + .then((response: AxiosResponse) => { + const data: AuthLoginResponse = response.data; + if (response.status === 200 && onSuccess) { + const token = data.accessToken; + localStorage.setItem("apiToken", token); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const logout = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/logout`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) { + localStorage.removeItem("apiToken"); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const refreshToken = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/refresh`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/categories.ts b/apps/react-app/src/api/endpoints/categories.ts new file mode 100644 index 00000000..c934caf4 --- /dev/null +++ b/apps/react-app/src/api/endpoints/categories.ts @@ -0,0 +1,36 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { + // Category, + CategoriesResponse, + // NewCategory +} from "../../types"; + +export const getCategories = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/categories", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +// ACT 9 - Create callbacks fuctions to call create, update and delete endpoints diff --git a/apps/react-app/src/api/endpoints/comments.ts b/apps/react-app/src/api/endpoints/comments.ts new file mode 100644 index 00000000..218636cd --- /dev/null +++ b/apps/react-app/src/api/endpoints/comments.ts @@ -0,0 +1,35 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { NewComment, CommentResponse } from "../../types"; + +export const createComment = async ({ + postID, + newComment, + onSuccess, + onError, + onLoading, +}: { + postID: string; + newComment: NewComment; + onSuccess?: (data: CommentResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts/${postID}/comments`, + data: newComment, + }) + .then((response: AxiosResponse) => { + const data: CommentResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/index.ts b/apps/react-app/src/api/endpoints/index.ts new file mode 100644 index 00000000..efbe5817 --- /dev/null +++ b/apps/react-app/src/api/endpoints/index.ts @@ -0,0 +1,4 @@ +export * from "./categories"; +export * from "./comments"; +export * from "./posts"; +export * from "./auth"; diff --git a/apps/react-app/src/api/endpoints/posts.ts b/apps/react-app/src/api/endpoints/posts.ts new file mode 100644 index 00000000..574451d8 --- /dev/null +++ b/apps/react-app/src/api/endpoints/posts.ts @@ -0,0 +1,173 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { PostsResponse, PostResponse, NewPost } from "../../types"; + +export const getPosts = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/posts", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPostsByCategory = async ({ + selectedCategoryID, + onSuccess, + onError, + onLoading, +}: { + selectedCategoryID: string; + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/category/${selectedCategoryID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: (data: PostResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const createPost = async ({ + newPost, + onSuccess, + onError, + onLoading, +}: { + newPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts`, + data: newPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const updatePost = async ({ + postID, + updatedPost, + onSuccess, + onError, + onLoading, +}: { + postID: string; + updatedPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "patch", + data: updatedPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const deletePost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: () => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "delete", + }) + .then((response: AxiosResponse) => { + if (response.status === 204 && onSuccess) onSuccess(); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/index.ts b/apps/react-app/src/api/index.ts new file mode 100644 index 00000000..c9cd5154 --- /dev/null +++ b/apps/react-app/src/api/index.ts @@ -0,0 +1 @@ +export * from "./endpoints" \ No newline at end of file diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 zcmaI71z1$w*YJ&^pi%_#C@9!HfBiifa4a@ML3#Kk zCn>J(Wq7diQlDV+2K|^yh&n3#C$-EQTq5p9by@XkeFes|MND5|yruqI$Rqu&k4y>wd$3_gyZrloxXlwTBO@c;J~_$11@)e^i`}WPK#{)* zqs}889T^z-M`ln~76l$YetpT}@1dcR(F2SbRsjJ4b}p`|!tn6o%0JiH;l=)I*V!GQ zl5?-}*BTU;)iRIb)y2IMQvUhNzv6Hk>i?%a|4RmA_<5JOq@+957(!C=0`;$09iOA> zpK|BX(Q#GoI?qJ@730oGVjkfBJ2bP% zj-qn04yF3PrT?XDzw?mr)9SjqkkHUj!D%!d9i6@JX=x=%Zxk;T(Ol13?(`)*JQ{SV zewE{Zp}dd)?4EbzNc2@KS89%kU3WOiWDLdU|u|KeNBv zC)p?4vqcJ8*F)EcUuTdCnsP4rUBS=F5z(B+dVS)bW?9YOy0Z zZKgk5KzVFuiyu_`sF?7UGq|mP2;Sc#;bjlWeZ3L*GjE{{_Dgkmd5eK0k2WZ`NVAr` zPQ2Oy=FKXS8WSh39KqNrCYa`JF(g*+ZCB|lWl&aJ5Nyo{fVz&)+{0=sG-Wk{{;9b~ z1*++EcguK%-SzK@C6I%>qcz=}hp%WaFj5yyF!h8cJ~v!$Z({VYak z83N49t*LTzVscXQkX}$$NOsy6cm<g`4PF8A;6)7KvvP$VwqL)6Vg^aMLAnokz{ z2}dC(0sEdV&yCQN0+)%5r3narIm7z3+x?ma@Bc)xl|E=T{2A5RYa{hm*^j35#E~B8 zU!C%uOi7tDlpjLg6 z&I+FE*V)+NH_c?y;7S6`Y8UeZkxLSf-v`gbYQ=JwP+jZ0(_#14XA@<+&kq9JIs7Lf z^7)142XYAnle9s?&hLNIsMo2Aytmj5jvo_#)=}6n__^a{>QeXQDV=G+!>b(oNa?}` zZF_ZCPO;g)O?ys1=8pZoB>vbLh0~ESC#L>%!OW=VBuDEle|a5L1^ajx7KUco_~-b! zdCkLAD&NMe=z*d4CV_pq>9W#Fqa)Oi0s`v{MD0V=YW1E_65XH@KDe~V$9jf&JUOn7 z>YWX))|Klk{XKA3uqKgu2rpK&t~n2%7pB55s+3fOi&xL)xUPkA)Y5e`nFlT}a;0ttXxIbCzG%5oyar?>!9Fv->qpU@5rFl%w|KVqTNM{S1Jh0L?4vo+Y6h%V~cUB8CKsA`Q zW&phsKC&%LW;s~j`02+hb?mUIesHT=eGpWgAk)oc&X?SA{c5YN#E%yQj#vv$JN7=d zj+jK2Tfh_j&JpNdC3cP;^oKFn8ZU#qKiGk!nA3s8ZoopC23BqgXc3ed>wE zvt{X#-k_I@xALmTeh0nAd%WGqAal%9e(cw$l4mQLw@B#`wC zbYKG8b#9DD5*iKBS#T7;&4HCu?j7^VqZhRCzM5=N5||0oZLChzm=AwXNJt>VtkiGV zx$5+~(lEKSY1Us3k4uC%wBS$UKleA9U^%^+-=C(USsGOH_35Qr3<7UYt7;4c(oFPs zeaW7d?oV*q+Rh@@lkLwo(J`mJ#+-E&bNDb~(0GbmAMrU5E{tUq%zFUZuNB7)bSe6- z7lSnecHcG}2!U7<2J#WF-E1xLqgPsDq?_TOinG~zD>y@b;gYOmV|=yc_uFlBuZ@zV z@8}<14bR(h9C(kA^1U|D6`&TmeCGdfA~AAzPkVgq=Z7%%eQU}>c|9j@K4j?SKg9fu zTdsfIu^(_WCO-jmJ)Qv=7*o_giEFF-Y+xkE$O&+~vNc*C68hRx#@o4dPmlW(mG$6; z+|@`Vn$__R19nsQ?J%ilzRK^3=sYbC`%CzP~Rxf{TBJM5%^3@vwLgwY- z+4xeJMCwDg#Lni*)7hbT{_1V|HjW2$`*vrFrDF+QlpGBob=q*12J6YxL*!+N}Y%ndaSggFn+r1h}Wdh@= z_zV-a6Exg$e%^H!S*L=AOo> z5OK_co~%afBsbx9=wWvbQW{o)Ng`;-{Cj5yGxlyFUuKIoHcA@lJR82*Dzl|7ebB00 z_^9iL$7&}MnQ<~?<308DmQQ91U)6bYO@|vkM`@9Kt#>&(G-9!mq6#cQRvC!Bb9+#6 zHxzeKQ*dx1*!rYPNcj>Rdj{!vZ?ZC%4fDSdgMZb-??Keu@^_SsbyK0UnjopRXEHWv z(7f^#!sx1MIJLHoS}V1-DFpqcvZ%P5cm(ThF%>X+ZqHI2jDHu(E(?w0+Y4t+U!=>+ zD-G;nSvt|(%-Xwkc+wTRHHT=xpTV3A37E*)z4n-&S=jYuj(x&RBX2MyzU_2!J6HF& zqwQO}q62^-+jM->%O**$Bj$&Ts!m#02JdvT;Bwv-d-0VC^`TXP!cBx|%$u7)Vxq zG}g2{LONVX!Qr)r;&$%waZ6+KVn5(x_^FTgAqq6vsj=iu?rEFqyeo_z`>k-)`>1qXOSNAgJ!h%2( zu_r2-L?VopPEN#fNT9Gj40R;QRoO$6S1Cuax73LGH~;{29kVX{Q(5pQpDor(tx*24 zFTnt{QuQ7y32xdYMyCSEPGFAlgCYrfEx7~Wp7re&Rgp2OD{pk_taR#|d2#!|+tU5k z2D&Ub#u({YcX0}Rw~S~M)i3q*Ma=Hw)ryJ9OS(LoOH&vd`s<=hw~e+x@I!32ZOmTj z0ocuM%!}CL?s?qNEBgx-eI;RAZSyDP$h^H(^@$6I0)HdS{TEp@uLE58W+j^d>f0f0 zaJ>ZhP8=cg7b7(lh%Q3IC#J-inDcqu_lTwtAm7Los*kSI z?fA!*I2(-X+CJ~Ax4lyHeJ$qMrKCM%xvYf5xBrH@lGQxz2`ZZLKr97;E|dURK9a%5 z2EEG<0v-+d54u;Vbd9tvjn1FN%9wp4(xr3kMJjkQL3`=WK6710-U7cQnzlnT(2JoA z=yUyfcc@Q}oq00hvt`>7o4|gouZQcPs#V&kaqxpSrl)AcTFxZ9SDsjvqrfZ`m!Zr< zYyv9~cYKvHzD%^+=hv$!B*pHkmQKo)czJ| zZ3w=qk3aIhC^b9VWSQ7`n_qtvZ;lF^Xwmlpn zA;%o;i&yls?V@;;i=O~SiKpIP*T1o@{3D_}qN^8$)$X=!&!Cy*eg&rle*#}JeV)4$ zO}_Vfwv_yNd{%^zO`*BwHX4+KP=Cx9z4r+o;(Rq0e}#w(FkPCXvfZC(IGMR$d>R?Z z21AMzxy+s1%NUs~<=CFU0~h^52WY4OOY!yErIivS$>n|VEL4EG<0@5>^b!@gZN zwr5J2LGhsvL+Vle2729xl?}4s%%k2rz0(WOpTEqfG9ioloH&@$?Oh zlyS&Ccb@e^A5^E|N@6oJi+s+PUj3WJc*u4*-{nO&pCoSth1hDD)_ znh@pTe%aWo+Roq1@zE7IZF%=rT9yK6#($#l*SBBCzyc^bcSGook=vNjUVAnSw(WAU{u8!^qVs_7filJkM275L07EjE z?vD{Z>NqVAo-Z$4CDw}#Glw1b$>L_ry0$-goW~RDB*3+7G>acR=SRxA&2HGq10SI$ zW6n@E&%V>g>(6K(Kq(zb`$T!pDx%*rP8TvIma%#iN>@U^jCk4dSTHX}R+SUJ@XJFl z{Lt58eebn>@A2^*u3bEmQ+xB_hklFcq{1P)v>{&}O(FIL8n&aVk(j0XvvL2oTcg#T zTOdqxu6B`FTJwoi3P{uE4qx(&&H7)3`euxCnLglki{%1>vTCbxwsVOD=nMo*RKY85!NLST zM{s`-2tCjDv&Ur#AcL5@r&P!F4CU>V|NPNz3oYwy0g-GY^K=+zl5_c%&CXi_1Phr4 z+$}b64@BNz4PQb$j~=izZI+!3BihqnnbE=iG+Sjxsg0gvt>m8VMOsiw%{jUoY=@^C zBBZbPMex!pg4lsuA2#*6I&1ETN4~?OLZ>Iz8Ro%OJL& zQ9Yk|cns9P*lcn1<fI@wNR0!YSUH{WW0N;OMY86z zn`h>5is20+=JQ=CtMpMfc;qHz5P4q;EAB+IvzCC#0G$DWSv1vEQzHPGptMZ4>w7h_8%~ zVUTOzXtv2wh9#sYT^m~Tz}5ZYJrNRFQh+EE=m6QALgTM@-k)*g%HY4<#heW|e!8mN zOr*t0F>w;_?G@nTV5OLwxUw601=OqZpEAsxkdG0j1BN1~>`=+THQ5Ww>q&?5>s)Yv zG?fm*`B}%sQ$sH%Vsw1FH4Z20`@5g(?u;^G(Fd>NvY3K#+xDYRgC&#G0uebJBa|Yx zg#8{aA@|El%qp{I{g7bUnlBBO%fqQfXq(c2-3L&HHw!fODzr9&K zt?by3gzCZeg|J;BTYrVZalb-T)xG0pmT=hGrl;k`bKHnx%pXtF4PTwAI;>GOo+A~Z zQX}GZlI`|4&+%mfkz9;AnB$aB_#7wL9K)}N5c%~kA_41j);l5x4(DWdPcE6DU$8|6 z0JFevDP?wlst=72q_ZbCIH?}Wj&@(DV&l5e7LrNCilb)GG$^L=Z1(tG>w#+1U7y2?E`Dak0yo#WElsf^kE6Y~0gQ}TY98JvTHT|6PLI?E zWtD=ZBzV%x*(H3su`aCDNY3XR-ZF`(RaoB5kPWK%&u^QVlWkQWDO9vi14nk9D$X^* z2IY0t-QM#hy9@-e1HcQ2>fWKTm$1iSTwj`Ngq5-FODd4GO@fgeA7{10zRrP|n+|y0 z>*|VtXSjcEfCL+>!q~#$+wh6?-hRM}zvl1M>wVd_^!IPgOZc#OD&{OprUsOZLPfz< zV}1wqO)72$SO!hOtX)ZTjzs&hv&%w9k}R;If2#a zjeovm`n}yw9JA$9Qs^zC8=MBLY;l((Pw=vr$SV9^{C1iPCQMxzAmg3GHok{hR%@rR zrTOH~Nuk6D0itQy>zsp_CST(_D+2EzahHJ84lTg_4RdeEFS1#0jmj@cFi}O4lwAsl zaD4%-;8h%PSQ=A*ZYw~zn-8SsFErK%1XAEOxN%D>X9bdQ(Hjo}nQ)Id-l!EZu)R!; zaK7ig-X6o0$U8-x&qd^M$(KI%8uCG8E{5|pOr+H*j>TQklvxJr6U&q-pn`W-MN>9t zP|y8)>E4BXC--Uzgi@tbRio;toCBk`i*gNPftoFT&t20W_h6S()cW3F8)Prqe%kf3O>88x5&u)q97oj^V zO*eb(7MXC2nvmc!qLyVo@^}@_9X$BkJvf5+i1&ck$bH=1y)ayP@UXYJ zty`qa>ps|bRd}oNX4dZ5t-**p_I|rpav<^Y6mGm;^hG;vS5A4C^Drf`sH6k7ka6dV zfiZ!D%VF&~7rF9qtMd^LEsCKvdX+vhw$eevJEp{D9X+QX;@qYz5XD%&w#PBSU8OaZ|D={_mCaZ$Fx;8M9J;(ZhS zf)}U3dRLMy*~x{Yvl9+^0^<9xh@kE4W!ss~w>|YX;w)(SjasVhaCn?1`A6v@6wE=O z1N0S|l99XTg7Q@_x z3yWPur?|+P7cbm%s~=7XP;7Fc;I^x}T>IX=N9_?{({!19EtJPHF{!m`03Zl{ZJu>{ zqw%m3s4XO;|6s60W&YrqS*so#nRf+MPN#-~ZUT&EzID)?#e4Fq+)u#Ph-i+xE%$M6 zXT3(2-(hJl{#^Qc>+P-8(D79~PPqqT3flRq;`4lye>5ojBADh!6+%pTJ=CZUjXgsM z;u`SL2XB;IKknku=NTg3^yBOX7x}BFjO%xeKBqaJ)^l8op_ei4djeLq2#&q8EOymW zJ_<&sQ|?hy77dkRGACi`k|{UN zq`*L=pp1}_F$bK71#y_}Q9pZVd&ag*79Csy5pq8=vO=TAP3j&cs#=@F__{*j<(Dn& zYFA36J2*w{qgR*Hf@XVPgz4(rrE=eEp!>lU0a$`+B}EWgO`sFc)$^3sDw#e^xP6?X z#984%eE$lD?s|xr1Nq~v|O1mns82~ z_9wv8xpFuFKwD#=drsN?^xYv8?>loWq!ZR|@qG)P&RZ=ZZ9zCWRclf)?X4O~IZ^E` zwnB^gmWhjub+lnG#>H9`3i7c^PJ&39*45K-!FQ!BQ|Zj0HL zn0`o|2ITuHlL{7|mlGaj3E;*;IK~jnm?#-Ey@61n4!qWQO z_&A({Sd8Pfp-XCdJNLbQJ9AKom=eusCCMVU7Tu^cjpzzRu#p!jK>8{-|1_WNQoZiR z%<;Enpq%0F#K)=DS-yyVR-)Ka)QPrvYDuIH5SIgTEk4)qq-u-*6G*4Wb3}swWcXwG zgDg6&3kpYvI)rwcYM;YL#vpAB1T2ht@6!eiR`qC+66m zaeiZerXKayw2-bNv3cV#MaEI@`!@*{RH!EW4SHk{+=xv2~mSNg)~6 zPw|OhswNKDJo#`pb!yJq8jdCqHrt&MA12jWNhUt0gOEfCKlbYH_3v*&B?`q*D=DNm zc=Wh!H?h&<=&Hbk5j}J|)oC)Z@219wAolSi)euemQH0Y@P{iIfkk#UMYB+}h3+_Ga zRe4Iw(FbU)+}EYA%V)Q1A3f(S7V{!xj`-}}aeh~G%d?3n{nG@(bvH_kWm)^Co%xDK zz}u3tKW+YVQ~h^JDe&4>X2g8B9w-KrJP|tgIOY&k|D{+*P*e)y0N(<~uTGsqipMm} z{(xW;ADN)42(07>!QvZ|U@ij6f@a0d=CF4Q<}<&leo897luk@>rh0YROt0vmSr$?h%=%Uy_{^D5HB}tBlC)O3T z)f#MtKBLvsC9O$_qmVSSQK;JoTxA^2FJL6cqgUk@qtBn-(Va_S@HJ~R&u!?Zm*__g zP*2tW;?zpWZKLxH{48mt`0ZEy5PUE?x(y|xMxSo-yPb;&o-YeY1GcK#uiHEINu)+? z`n{*wQK@vu7;L0yug(VEb!NjwX*Gdc2(+Z9v-T{(INqU8bAp_>*zp+ZSh(&>#uI_2{LHL2^GGhje-b?Z{)YYCP40quByZ=wr!+gVc%) zzZp5u>aD|UcDUe^B+M!pAvG*GF`ePQMJ47E!kGItyX@iyVJ4|x9VR!LLTU6D$mu8S zm+tnS-n#Kp%w|yyT&XUv$VbL}QkN_s{jhX3M{=RiRW?k1eyTcp%t3$h?NsVT6rmMj zk;1CtHl{E~Z%h2VxXZypFe+`Pkg#@)hjz zd!n=Xy{^v|*65A4WIq!;m&K^V0uHZ8m9E-#dW*SHR+09eoU#%Ri7^bUM%=NnZvuV zI$RIupaF9fI4amj)P!pWXUAl0-zRE>tkr56b}>QNxA|aWZd$S~8A-vu?LLmyK#KTk zImj4%aeHs3>~Zm?ZLH{zELY}aqNQ`B$f|wT`s%U{SYUnm!TND60fTs{14Ebh$sZ*u z8Mi>dgGHCvw*u}>w%%7*1?H_IVD0-+mvXWAr&>85h0hO|M}Q`8{A_0LhHizAx+7Tf zovAleqHQsH;ewGmi{+*Uvc2<2|ITtp59)LBpZj>>3sft?YcloMjWi5z&gwr0>nzb~ zlZ73_>+VhUH=h{LH{Ezh4lH*`2$;yc6_vX-U^%<+>FIH39+kkGUCwv|q$_>7jnsq) z0AgK^y#G)guCE!#B;dYma;exrB$XHbf>LNbD7L1B#@dqs4(>#EW_b8kTDqHf)s^^% z<`TIQOZYELK6%SZWaY%`tPNdo&kGO&&zcKFmls@dEd}+o{3)-Ps zv{y#=-CUkViTONsmOa`;LKeZq7y0n5o{5ej&fVx~31Z_}eT0SDoa$6vMytzVLPW;% zQU*oGHhjCQSfzH4Rz;|0C8WJSabNJk19Gy!jZ#||_G4>x|G9z!o7;rLJrN6DH6%y; ze*dR%GPZ-0r~6m)c6tX!WyKa92S#S*&xaDADsf$!AGuZDoa!33Qc?`WiNzS=BJYrI z@6vf3mbI~tUIMnV{T}xtp1gZl3e=wK^72dF#R5~0ia;D|9>-Wur{RtmzD?W6?CRc& zL2cTky(jUo7a~c~$yx7V6*Mj0I@C8;MtDX{&jnKGXvBYDe}4a-<~K2a`4{(Xgqq^L z5MxUZey)DNMu#?AkmyS}NDXgR|CVF>+48IC04w2Doo0OWhh*bi8ezd}lk+m8^)mW8 z^N?RL@7T3I;I!RNA+8X_Vs37--D&wk)&83{h*WdNk&>qN1hI`1~ zqxLyk12^}l^v81q8RQlEJPb`l-u!q&imk?8$RIIQ=5?+%jAc9}fa4KQ6H9v2_5%l0 ziqgG>kV!1`b&gp?-Jr%E5wJbCjsoeysW??mna0Ou3|szkcqX3iD^R_`r@!c}YX1~% zaSA$lt8mcZBw4Wv!q&omv$Cw_tc|#yS!&@snOuL$cceJ@yJ}`T3Ws``l@c+-^p1gI zKR_soCnNuO^FhgUb5Tw9^DK=)iK~n+S$!N8O`OGLRTZ}u^3{*~Dzq!#H8(Trd*pA9 zdLt^ZDA^&{aoc+DGkJJqsD10#Pw8{c{cEE~gKgv$)2;9Jah(HJbm7BuWg<~?yjqp| z%@v}Tw8Nl+Xz-s{1Z#ewDMakn__^n^qen1ye#PjW;DsorY zbw;o3b@FBu#~GH0G)!Ii2Q!}YZN)ocPUZ)8pG(2Dv9s{TsV=Ra7%7~$ z^cuZ)k=vaMDqxDJ~WNcGx`8(EB9URGb-a)*dC~r})sT z>-LEZp2y{HSl<7SMLoSfha0Q`F7Ruwj!Uz>J}+9m!gr?u&&SS&ac_N3pj8f7b@897 zjuc*#MA>2s)(v~^IepA1#FlNR<{L>WqZ-n@;1p@p`!l+XlEx{71|B8?oX~ss^sDjJXFT)?`7x3vOBtZwxeC%@U#eCnGj=%G+I#`AvSZ0lC*9ng z3{cG+2oDu|82r7*BuH*l%ea zrwk#YoV5c!>lHtX&n5OkA1j+X?2d9aTO`X5_kkB5N)I3wSUo<$aT?G8DHpYpxK^2r{! znFv1q%KiK%xh*9ExSe|>T^s8qz<1`r*}h1l<86E5Xl^s?-GlQ*CW@BXXZLyAPwahX z>6{QQUk_6_r8_U~N@bR7^;*h@`iEv=D&w9U2o6b@q1R~u902LTF@bc)o!qyco!l?g zI(4*+n35+mKPMt;B1TS5-K@GgeIFkGkjZVIQru8w8y6<}@Cx2>A=-X(`=qWBWm5UD zpYvd#6s)Su`XaR%jjDqe-8I?o8~P#xsJWerjF8mOux)k+d4WvjS*2|SB^Psafx~&U zU0?5N2>R-*h?YuTOXeZln08>dBtM#nl>p?k)k8F3CwOKVi z$YY23s2V6Zwl=*}FMh_Ev^?_{QE1dRmlr0$u(cHOir#rDNBpWEXSZ%e@@V zAv&3q&ph=SOP^w?tG}`DNQXzbGbHTFd;$TWGZ63WxW^SL z&PyasaJ4mCvp1zPFK#Rr3odt4Qu<3*=-TYgWcAA*Kc;5d%hS0XzEWnT|1^Sc?QHEw zHdJI80|2p!WR0Ggw2nGaV7Vh=;cIKmOCGZyI)Ybk*G`IX$GJ(u0#ba?FOM|*{co@b zh>dhUne2Y+EZR0bQhTyz8*N9i{1eE@lWw*mcWIy#?0cGSJNJ2UiQ)6R0U^7U85l6p z@p1EDA<}F}R9|IWz{X-E4A}OMo zkA@|Sw8v0~{rv(hyr=((1J5oh$7OX9ruT0v3zPNi7dvE#&I6F131l3Nm=DaQiSCU$ z7i&7>vYENF8}l<4mBZW+uxVs|zmq)9^TnTyUi}N#_ie&I3EzqNZ{m7>h(pe`a%j%m zumfEQ-^n6@he9mGVfUgT#@8erm#zo=hvA(86$3#-;xBxRUnTo_Q?+pg3JDQX%qO_| zLa9d)ahiXwR}-t_L`b54TgiJ&UPm!lEfxf(htdO&MDV5wA9uIk-Pqu;7 zZhUKpaIkDsf|6sa*tOaf5?$3oF_0KVQ{dNEUt|v9J%kigq_MGE@%(MdY0Dj`VQOIZ z+Xv~qs1%`P@Gbi#u2CI=xn(yIqi-5$?mriq?$X{NwPj+*{~A5afrdkWlqOytZ0HdT zr3q}_#=6GNzSv@p{sFb=b7G;ZqIWlb8_fEaw_U3;8p%%sOQlug%41SlMlB!ki+p$r~$eJ;m zvTb3t_E0;kJq~}eq;lm~n_mf;u3*lIAJPhqIZ<$5m6W`2itUGIU^Bgce#XE=80?cY z_BiZex?s}r?mrM-;3Ij(J8W&1X=FI$n+yPi(6kAkb#FFi`o7XHTQ!9ml8+sQuQx;C zF70ZSmfMUSLIqM?lTB4bMWALHW{kr zFv}#Cy=c4o%~r<=oNwDiR`2EHuJgTByW!0=!U%bd)V_h? zq>gJOHwOia4RfB1m(4*ccP{rZqbc}MsUA259#Rr&^uya44P>J4JXn(3ksR&NO6I9v zG~Se0Kvd1(^;n&SxKMOIju>kn63z&}7)GXYSTI|Brm85<3WwM}WK13Rl-!CrXenjK zP{q>sbosuf0}Ep$pf!B!xk$JY*SVy(Poq+@Q7+oN{AGFItBmW4N9LMAUnVu`(DQBM zlGttR?efGl>27uF$xswkv7)WK2(aet>ExjK4Hc&#gkVX2Ua^$B$tV$vr`mX&se)sQW#+)pCJ&YJ}$aL#rIL8Z&jv%^GtZA|sk=CXX zKD>Y>iu}vxbx2TDlam0!VOu7Lk0jXznqRlOh{r>T2eT`gY4v^nSk=W3uBVhhaim>8 z!0F5@gxM&BXK|__O~$`dtD~=He|-+~Lex_bjXScpf2P%>NrNn+B6q^+Jg3sn0e`(H zdBzW`ASP3Fau-t(SC$Ic*LvZVgIG*_I^av^0bh6myx)B@Uc+Y5E=cMso3PC zuktJxgI>H-)1u~<3+vprkO+JIIlC3pgjb^4N`{vDA-4C%vXzEo1Ajy{pg+uXc8U$K zNy3Mjaf-d_eI{4;QZM}X_Adq{Uw5EX{F#r*w(m7%vC_VOR5x@RZ$f@MT%~8RSkc}v zvNbT~-GohtuS;yaYfPr=#xl+JTLGdWfn5&)w~W-eoFc)IZemAs=`EAn;|tB+MoQZ& zWEz6B|Ay8W5ecf&5^1BU-pV&V_+Z zucHi0SXuMTp<<5z8UrmCZ&EbcY|G8m+7P;0_mEv}MB7gk8~ek}yk1r>Sm_$6#^Ro{ z)M2v9Zd>;(|7;E^yoogS`6;4Ah7?sF#JcDsGaWA;3r^*?rvAoFViSta^jzQ7x)*fDe}D zt?5m;bsxhuLQT$Q6<(Hp>1nnF<6^fwXjR~Vt@1i?Hwfm6fym1pjcE)Mtp8oq7#9|ki(*E}xbcmC$G0rPGa{On*)WR34?4tlm z-b~UMUda5Y;#VlUxqy8d4BGw`eU-DVW1!&I)!xFrjhO$Z026v_i_5SaOT5eW6?|BS z`YVxvKX-jx>^1g=y~@dYrw3}MKy*MpsmdQ^NZrc5ZR zVv4CGLR(pX3Y?ZcsNBfhpPtt1z-4lWo~8x!pu=VM|9OskB5(U`-GH1OvbJjV^sh7U zvsDp7s=c>)bss_ZEKVld_o|34t$)!2+Rl98^3+7|q>EoW8yo81fYpz?F=V96(GvPD zUBjS{!Xl1Ur~3#3zlJHo(ccvDBvfH~g!swWPOk1Br9Uy_$$KWLT0`uB0($S7i#w9!Rdoiym95Xodum=+DsEc_cIFa}Qz^(;>9A4^i$5OM zUrFC}wy>AIw?Ca0_hd!$9)n&3hANG(aG>or7de(o27Dr;PgB?v`a>{K7-Hct7dbNHi3}abq)9b zFevK0k5*8Fwim5vr8S~9_MQvtU`Fx+*+dmgfF%5hyiQ7exFIi>KOIOdvIHFUtiE`t zLX{3EXVH|~yAv1~#lg444m%7q_5*Kn|6s|Q*vx)OJab3a&<-YUWhxGx?LPK10`9r4 zG`2a?Wjh4C-0!%?^<^{b7T*rzh{Fl6!!4V#57$n??!drhbx@3#GJQ!QD>cPzz@F(3O!b`Y|B(vj4L8jNf&b zQ~KAksLnvi6u*`}{WARu{@I1GuI<9&qULxzw?vU>_Ta5A5jOOuS1v}w`R~}yqsl6Lm6eq*kR5Uf zbnmf$XYdU)yKa9^RKEh%N6wBk;s|po1GKR20L9P&Ab&S2pEMLXur?7e+Ivn<*}KB> z+sW*r<77EVP3krq#D8(0ncz%GU&$+tcoNLvH)xEx7eKVQ&<}twvQ^!E+7x{`b_TpC z8FSC^+QOXFLv)Sj_OM?aJ$bQHD$x(sJK21|UXyNU`11ab^O)d=$myZS@;INE_VM8A zFFh)Avc=u@Vx7}kbai;RY+n4S&#BI!rOWM=^M$+TiaXK$6%5DTUb0?hslomP0qx`K zG5%4lMe)k)!1|Y@x=3oZmL~@QWe|?cxJ4jUcs0?Sn{iftBr7I)xE+sb_&eObh98%L=fzwziB5$j2`rP)+r!l<>51V9O^w zd`~nR9udBWo(;c7rpw0-yi%Dl>8HexDy7>Rh@jdG7f5I2z zb>=D!u6JHOzLg>&HT4BOJ-vNoDc-;8?VpLV&fdN8*BD-DsojRhU9+U1=)k+{{DOM4FO4g0*X;E8kVuWeMQoLi~1;C#hrnJBJTgA>st3YySOl(P}+kr z4oJ9OPfbnD1Vn^0{y15Ga^1+AW%<~w{w=W73(u~mv2m`jxJF&WcuZYhKJuoWpoBXR zjF<7J+;-!eP_U1rx(@BfgM2@i z(Emp|v>=qZbg2}^Wnuhxg%$_N<@l&KY7AKZy_NoD(10>ScO!Sd{=XBVf7Req3*gQ9 z&_sXK8!9SL%w~0Mt%QwDDX)e=i^pN){u~H)uu!Wjcb#O}YVJ$QV^g5GLb;G55r%E8 zCaJEa(I-$tE!XjNlG4r8G*9!>f7-(4`q9y&Lo!#8mk-L%&*#;sHw6Idt5043slFKO zgB4FGaIZt`;kNe1QR>5(2Q=W}ZWH@J?mH(ftz-suUQ6VED?aZgCJw4BS7F!`lk%96jBI6#vv25w z|Koksr;_-p_;xJ;SRkoURht7shtYIhO8C zajiNn)|CEdovJHn$QUaxdpLo{)cv?&hUZoej;W*a1N9xAe}?C_O@Dh!s3>aWJUXn! zju~kObttPv7p{tdiBC=PS)TLvv&<8HOF_eIS4+jWflZO*j6a&Qgai>J(Izy~#vzyz zs1s95&v`8tpK1(szv9)Lx!1@lv*xQ%sxz5i6W`f}V|cc{nwPdT!XyKTsl|eBg(5;Nm9&%gZHKj-x>5)Vo=`iUPCt;Goy%A74Ke zvVHz9t9DO(2B)2;?-GW+{hYD&25%(cXZABhK_5u`nJL+sI#v41sJkFL?E+^Nq#E(<8rk|~dpaIzXrzUS#_v+p2+C&YxMRcx8XLu=_bwHk{5Ep->b`sHoTQ99jlZbq9Y3&uk$Cgnnx_@O z+dpn?Mm@RuUCB1HqJpGS!DxnS%Bcow$l3z=`raQLZRK^j)3K1E=N7pXvLXoW!6bq{}{-rCxc2tT2+GXIKm8|G7r^R{S!s%Mn_a5Yl~ z=NwTlBY&kt&i?zDsk{v=hUN<)RdsT3{h&l9@2Cfa%-32i)NJlAdd0tL6|grqf9%U3 zVDLga(DwqWR-{z&pcxXm?64r(yneL3t+nx%ZvjJkIHLH7X}@`E>vx9DRJY6Me4RBu zHkD}k??7GFGv&uQ?`6Ivt)i2BTAMV)Jngiqq2Ze$Xr&2cHma;R5Mxi~it3^Sp#Kzb z@Lku!V(tq|Yx@DfOi~)f0@C1JuMzB1)5h#;zG`PCDfM%Gg~oWQIpe0qh08S%6o9TR zbJ#r!bC#X5e4MSI@+JInI#R_>M>d2>sM7v%uo}h~Dz0q^`t?h|rKTpHh$j9shr(Mu zhJ*tqoql0-ozQv?Yr0|G9>^r#mVi$4?=R_k3!SSK?}ZPhoOVq)Ipg`1&Gq3d@QUw; zs;i<*OXcJ489xx!4K>U@$j|e9ju?o{Gk$MTm68l*v*piy?wedgc8gE!4=Uervi`36 z|CoEn=sNc;{HrlA+if!ArZQD)K*ftuov2B}8a-Z(K&)Mfc#=T?Q`|dt( zRjg^0D!yq4t~E*DotYfx0WQ^ijH&@aQdFcncin(6ekh2hnXiR6!<=jMjnsJo}y@Rf^3rpQldD%;wnsK3%;$GM!KBR5h@MXeYE`(hv=i#QqmVYe6;fd~Ue!N!RDZRL# zSP|W=2?^+qOAb_0fL}G+m1S_ASTsQ;X)=$z|MnYk8I)BIT6}}+P<><;s6X6`?g*ym zOAC{IIq%VIf7TP7B*mUyMx^vwj1CvO-_m~bBqUWI*lhjen%mM{=@GJ%=LscP&5$y9W-TS@x}Eynt8+%gx4EC*cbQo0O%CVScm{csDn%s ze9v^iObpZLSFp3IVN>#IXlNi``)=5;#mS%_9TFyou|F85FpJ~<$$Qnm$s05>wh#}` zH`FGv_+)PNEeql*;AO*oMzUi8=DY4y&af9sTt%h$*k-{Rh}FJ*HrZ zbnZ#ITb3UB;e9j6d8yZfUsH&x?94HihT!R=rO@k*Nc%JAZbRti!8`udHm64j+@4T$ zJ3S=Su+MkdU;Qwz>+P-sy`7~O3=d;tEg|tr4TMe*`VNm5ho3%dMqv)SjnyX7U&H4M z1?jD;_A(l-m$17z+xRNB5ULKls~e_tG%{&3z2MVtI)Kx=EE|3t5m1E+p)}Qy-Ii;S zfN!kaCw%Ejsp8`H{JnH5-2pS*OhjeE0XQ@-W~CuN?h&2se8q}oo8uSy?E|6@$ni!g z*{w*R1k27;NVsWFla0_dFFqTk;h5YR>p61#MMABo9FV=?7d6f9hDm!W&!%M<0;n7Q z??sl-pxf>Z!Z{AP4HvmDc){|I$CG4u^y-VoZw=$a)j1Xo`0BPIRiI+hUZ!H`&N*}f zH5HQqxEL2R_PY$~N3iJx_j{C!wnB^TMY)qyMtypKaB7X}V=8}`yZSn+b&E)`dRX!) zXE01;;VPNYjXy+p$sRw+gA-4XHxg@640;{&{c6sc4NonsmcOyC+y(LIowJbKfrkS@ zXanJfgp;9XsYoOgBDK1K+NF}3qce7wwHEYf9SF+TtC$# zjenN?t5Tq*xF)XSE}wc_&hW&QCnB0JJ&X{cV)JJ0_F;EEQ>FHY4&iFA%ek^)Y7?u= zZZ=U-cgJ4*YxoAG+UCJPFT=|Ro!>u}FY^c9(?PqTbQV?OMBLAf@kd{0>u)e?=RVe9 zKzj`mh$QodA8OMa-(yE`p8tmP*NobV*PXs>e@d&Nwd~J=IDNg&ekMZdZtd_zi!`Xnb2ah%F^)B7DhuSW<<*YotaZ@IPz=O-Z2V2hea0f~I z82eWGzZ|a3J3sO}Gsr9{LvC6>852wYgC3MbJ}66ZWME@p$fBMqHwi7b@!FbT_DJ za!jR>7#-z5u8nNF{j0mAx7+6qBniLPbr+tuaoCf!4w&_}FBty3b%qzbT5Xi?!0U6e znwkztDtZV%YXu!vIuQzsZ#x}$N9*F=!}GWHA9A$6(Ha89iFeoUqdbhEk3z528J%UR zJ}));dqeWHYNNvJh<%k7^^pd1{nm&!Q;PVLDV6*eEOkby2fI^}B8YYYMo@AIs!jsOr0;f4L4OZlK+odzU!aJB4;wnpq^@N5m zrSBi0;JG81>{vkOsT^z+jC`Gmofc)O_(l}&Pr0RAsnJBmD$4?AUatz?yAe=G;NCq? z4k;_ETn~wk!^q*v#aQ_n?{MQVB_sr`dJ+%(hbbe+l`~0(`q9;FsxPNQxx-)xS5jkk z4U&iy$yx_>+7ML9b4;ZDCgdHl0p4qi%o;^w=H^~nBrp(00_-nud^A@eH3s8~OF6vx zk>>Y4(VXegQYvua(tpMYYsBP$LE%ReUhoBmv!qY9@posmVn6Su>`t4+++IT`##;&KYv93L7HCHs5rD~TSr?xUpV3DN}zXV~0Dx|m&~HJQ5B{e7IN zdNGg5|LlIb^ZRWp{mruHu6((g*M;GVx8|)^2|qEoHkhwWYK=RG09TvaN4q1TxS`7V zUDd#CkpzvVZg=|<>I@qEiQ+rcIQgd~W&-hPNlHNTi2`ITE_3Dt zWx1~&=Q~=M<;!Y$ZB1v*1k(+FW8q;4G{Ttqmi)o= zm2t}=&2lDg^aI%H*CToBcXv_@Hzg*+RoM+K+}D=tIj^UiV3ZtU9-^zk$D&j*_}Q7c z!F;6b`7Z7!nj2;)!A&(}Yw68B?Wq{373AIGa2|zPp@Ko`5-v+-BMI}7=-BGSiiu3f zmct#Pw4>YGF*%^*v_Mh^zO{>_+|j2 z3#4J=!@}R|O_J~=d`aF20 zHi1*{_51tTvvO5AKV0Z$a63z-mn;I2_H^ryBzeQ~bMT#0qV2ZeHdYCpoDyhGpU+H= z3he#7y{1Lf_Q(x6@E=E#c_R9p)p)48fMFg5Fved zK5ejrV>qz<}Cr36`+^%fF%lk_Z@>e!Bc z5?`tGi=)R}=s?@#u)9Dev1gye$B@H-Twt*c^z6Bp@{tMPWFUz?-_)T-Y01u)t?4>usq& zMz$MdaWDo~m$p=(@|N$Ll^UI@#^!Y5QwjXf*f5=K<4(>)M@$@<}9b7{)(dgn)a)yuOhb{S}0KrQEJ8uM%ptNOZrfZ?US`9Wt_ z=_Dc^KxZs9J>OxSa+6-%b|0)fkVL)ez#qRvn$N#C*XWyK-`A_Keb~aXcyy%Zds9>| z3rm5zHB<}NKa-J;?*8}?8Kt>{BM|(@p zcVA+p^4M@Vrtv`H8x?fDZPb{OiLXhn-IWTo97|YDWwuse`x$tm9l9wjjWvF*N;Ifj zc{U_;=*xGRf=>4IO;|XGqWpF>SFe$pb*7QRq#WD^A2;2omz5)x#o&f7gi{D= z@O;)3r&8~0{&h6#37AJ`#SWH!HI3 zZ&IYYwG3@NgN3o&D|m^NF-C}u6yw82eTl?)t*w#xUrq3}bK>+)KKCK1DaBBSB*^sDOnB-Cg2p=ilD$<7 zbcpQq1YP~BakKXy#!EvBxg6ZtWWLQ@roQj!gSd0J@OGgnjBpbCx$+Bps*;v#r5%1V zF6`(e{Jk)rk4oAp@jp{Alg(-+1cO!yookS1ns0k}D;cfYC-_U@%f9Q%vX*$-_kr)V zRa=*YRnk0xlSB!5$A_Z9a6G}LW7Z9wShZ^>*`3r{H@x}l%&_e{ ziTeyCZT9m5_f1k^LVw2FdRLe8-g}19A1yM8O#gl0f8wm5sfa>Tw6v*wqhY09QclS9 z{RF#IdNO%wEp_Ue&)b8)Myjr1zGg>(HVyP4?crz_STDbwdu48>dEox|jDtBgI_d+` zSLQHX&)bt)J2-JQpKw4tJqw8bu1jpM?tF7V*PUJ4ME5ef=#sa;>U*%4%i3vbghQJ49JqsRNrINEvl6RknvdQsw2y?i7VFU-j7Z zCi=TpYT>xpndhPrG`Jr0FS-a#XpRS)BWm~GYbF!g%-?mdjH5ZD=bEWlh9YDsL57u#;tXlBYUD z!S_+xrK*8Kol)?3hU;1k6$azam~EWsW~Gf!*a4LcbZC_?-3L#!#~StT_zRW@{~l)~ zOpce^$`?a>Dk{!6fvO`;`uAsVo8OJkgiB|@AG}^2Jm}#pU*D~tHN)QL+Fx|84l|7y zZB`tM*qSe^eW-FcH)S0;KiMo8Rv_$s*6@Ait*sK6yL`dtSz*J;)o$~JY<}NWLJlnU zKg*=E`Rv@QRW2c)uVfb%7l{=Ke^eTp9Xp}Pp2{tcvjTdhCjVq?;)V?YFP%#vA?(Ol zdZEc>JL>bA4J%ZeT}`arCiE*8Zn(lWdtoB2$BTQ{w3a$xE_xAYb7QLe%8+=sRiZ|~A2*ZOJ>x^g1n4cVHyZd?G zZ!QbiR^;a>eMiL3pOIgbbp*fF)8|q#($;=WAm4zX2LSJV5=*VJaZc4XgBwx6Ily#TRvgXG z_CV2_LtH*Xb3iXusm$GqwL$V25zmt&2>~zkao+*E(T39q%C%P(ZcY4)2g)&~-qvWM zT6`uTSk>~5S;RRwz2M4L3$C{Wp)2J_!fm!HWMy|P1N8&4(K9y*wF6&El;T?XHF}u} z4~DO}=8kw+SIa$x-nXhbF|EcqOMB z{6Rqf+*R3~Qb5*B7|8YJtM_`pD7~3ivB`P77os|Ocx6UhT-?S%5wEId-~XntKK;o- zB?9@GEzZbHpCJEl3Mw|0ay1WhWjgvW1_#Vx7ID8;hM|-OefYj_pccNzvR7GDd7tWL zU|?E%%{aq(@ zi8#eR=gedW%6S(QQNn~hu|rQFjs(0?%`DZ6X#TWc0CyC(8R_V35sx+euuX^i7UV4 z5I;33foFPuxqx=@0wR_o?BsqYtPmw`1Fs+u>!k-kd8DqxGQQ=Jl_kw z=G0R-bq{!g|=*cIIU4;BL?L+gu|N%=eSn0_CjLfyd@N%-M2bxxVYk$w^FFS_ue<8CX*8 z-~Rk5WEu7^E>IE&$T5fBo234wPyL_o7W#h#G5&w?3B?Ng{c&h`_!&TK``@F8<;YT} z(tN(+PbAxBXAmWW%Mq4RI_u|o=UWtIwuhX0-VuxW9Q^%?eKhVx2~44Mc9i}=RPilI z@8$Nu<$kue-r-b%S$m>LtJCSlW-!s#%l-PmU@U3<)YbL%b?;=Z;IArO!T*5@0I6@Q z>i=YrJ#%xI%Z=9a;-%3LLuXCfh-F&sxU|X@LMA3AR<8GFtFtZ5UN0?b zN=nL=T8eMH?ss%b*&m&$_j>RY!g$dL6IX;vl=OKKJRCvhoxVTXMTO@D0bJ z@9F6Q8yXrC6%&)yCdD!7zs2;hUaau(dFQw?Fd(8CeAogSdcHZF78y$!86WSjH=nQL zY>e}aJ56}ErmXE*V03N?Fap5ZpuDfyY$rUn6MqUQXZt57V-dO?5E~d8ZuSJi9dVI8 zPp+?PdumU=prCRjK0Q94ch<*k-A@-4dB(V%uC_Klalv2@KjEy9(s2Lp+$xba1#|xg z(SRd=kFKATNDXsmuCkRZyWCrVI z0SMAj-65Z-Q7*(Y85NBq)%&5Lc*@cd6xqWeS6)U&+4O&x*u0V*fK1-vT|#|c7#SU% z=`RU_xF_>bj!6)^PK`@-1k{g-k7FY~4^7cVKok;sJ?H{7+M+J11DEp|KB3FT`+D!@ z%Fb8Z)8$5Gf3t5>`NjeQU{FYe5v^w}Z~#prQ#(i|N@bvmg@x7jxR-9`lm+pfEQHnV z#^g6}^@=~pA8tqJJBx5!P-o(O*6U2CXUghCh&&ZMtq;?sYUapHjLCd!3qk36{Si23 zNtrizRI2V*xR*2X(wl4U=Y2_^)MqT?EqNRcVp>4@{SmUs)Sr-$kXT(Py2VL{=Hg$k z$fl+Id{7+{ER#1fE$n4vV$xFY0W4%6>Pm8mX@cikvg1XgS}!o|(zxu)v}cSX-aY@^ zrC+^dr3cqxW~P{y+SFtp&DQ{IG>?lAU`0-u|zG3E2IiE=oW3zmXnL) z`ZOXwDZ_LZMgsB{H&F8PME!{hkTQzQiyoeyv+t5)EEk*Ye=I5IEYzDPAY5K zMEVDs0S4GIFpf*3M)KO@Gmlf{i2l+(jiXiwSpFi@;4IR+Z ze3kh34hSjCqvI{a)74BtbkT?dvCA;{BbY;Xke|hrl&R^>(JWjz<|jFSRb5?Ov#(-c zj)i}CO{lyGvagPhSBCYjAY%SfKzoo?hrCu*FPK>=KKKY(D2N5kglXODp-HYW;x{kk|051X}*L zLeE>V_gRL7JWkw+eMxw6z3juXZ~pTvOts{hw)RF-<6ET|t=D*1)n(SapYKl1Qe!&y z3^K1OV}Md?8uR~l7nM~holks3tg{-@DIpvalHOsX%h zF7C>oTN4Z6OGbL)kHjbAulFsElfw72t2GR=n73Cn?_CP+O57f6Aj=4KHyc2Y0F%g3 zEC=+o3rr#NDf%pfK`|Sd!J9a8i5Z>QBH8b-2q$7Tpc*Xl*7Mp4KHy>?T6XrDMw9V& z$sz9yTus>&o-&z@8pUF&LFsH}4CM@sz?gh`2CRb_I)P$#{kg20%=_Qh6Z)$yj%K{6 zPtEsvo2)M}i!~FhG#V^=F0Rcs0F-%n=3SNmQ zz$uEqWiv7|n)O%naLCPolm2%Wum%UpAwrC*zY0SM9o1f0wpH2DG< zKlRWS9&|r?u&sMt4N=bO3;KnS5EJviXt>>-6hje& z78%9Zm)rzWk9{0jr~P*wRlpkrKiVJ9lvjTPw%&9lH7*!FG@F8H$%9N!oS9Pno$G`N zMLzAvj8ef!gcBH;GsPf)Lo9yJJM=NuC(fWxEIx)SQ)+B9o!7mgCBvWx*nE&kzeUJA zdpZ2PmK?!WDSd6NZKpTaM=`9i5`HbqxZ zjU#DlCJ$y~2k!Cu`_U{uGfwk8Fg6;Ww5|y6?(WQ7byFSUd@1>POwVRizD&&&8{msGC=BwIsnx>* zmYc#oe+?LU7iD&|N0Q#@QvH!JgW)hbt9f)tNw&eSVOOOm;(t;PfTI(+(^1P)_xZj> zT#)HDPHpW6NLG^~yVhe(vAiF^+7!u3%S56Ho7`^AVnH0@$YM`@+`!KBDb=oUOkBJ$ z#b7{;$bKrofS;+;bh^-NvZN}4dlA#w*_k!OxFr8JDaimAuzGWq~Nq=%8KbYHEkj*gL^r!J;rH5fyj!e*J4 z)=l~XhblWJ`^&ez+y6u9*lEop=s%W8$!QQ0QB))zyP3RjIAK%Tn6*+qF5yBv-@Td@ zQ8_44yZlT)`iO97(EY4=f2NT04X`Hu6g?;dMFWgQe|qoybvXJtP%7fWAI;LwUb-?@ zDN9N7Ttd{|ii@S~B)kH~;Zea|^nXA6=Pv*c^-U89{=fXg|9<)Z%~#6+Qi}j}{-<=|-$VALKjOcj>z^Bzr{?o7K>X+TrLHkTqzBd> zQl^_K5%cntBc#9W?2@H}R23Fu)E4vj5+AXY=QBwN(|7@6-KbPhIm5IP?IZ-3nr>`5 z_^>L64;?_Yhh3(UC zBEn$X7f?gbFzh5HUSgzg1OG$93?9_oww zcaz_s8|H@-Mnums5f}}1^es%y3KMsoNB9!wC&^VVA4$qwDmSvmex_XVADmgKecx3$ zu$4{Q9xXy`D3%ed-T@-XH;=&uzuUqexc_cum6tYB4&#-67A2x)BE4d?vr(vpQ7s0_-c1g^N8)X z7NUVg2619gvtjCxnc*oKqO8RLQrmfZT?dom&6VK#Z9J$k*zjy!CQJRkc!kZ| zPr5@b*pL>>95M}Nb<+~d*JhgLQ{@#QR$?_Ma4ABXPd(I8LOJhiIeKnLC-~npxTIPQ z$vWcwk$(dxN7D-(T_L_;uj%l`IkpED<*pHsiNG@&p_+C53z1TlWQZl9l@ml&NN%AJRF`hNXs>b5DBjwrj9p=q1Oa;j&6YM?2+o12lTw4>u#9MkK zI;+@gf<#?MkO(t|cI(nXH+1!M>rR6@bcJbRV|B0slhEGrI`Q;iL^l3u4@Sp@qeQUY z(qI4d7;=&`1E+M2tmYI{4Zd?TeUhD1HVBHpe5rFxI`D1XIK}p7KGv%PV?^vIzX^FT zPh~@BQcZndyr@zD!dp}^B&JqOXV|QyBQnqr>e{L}8$}oy)JY57qphr;qL4(VixwUC z`R@73u9B1iv!K2)$MCECnQVqj`M6YvEyLrR8Uf}LP8gZc?`8sTe8zI_kAvEet$f~4 zU$UoR6>2(2__*UI*pq*J2{Kz&*s;|u8MI^>>;whTaheJ!%<&qITSPGPD%nNn<}ryN zR3;nF7>R-!6v;AQ!I$6Q1v}KJZ<^?SpLZo(x^y~bU-J>I^KUcQkE27F+5f#r71{Al z{+wdSlkQDBk4M-hIpZRP1NDT$xn(rv{pOo6j1=jw>#0WKDjqX1dTB(f=-7_5hQdAb z#%bC}ZsgwVAIQ9zS25>d?*5>Rg_kxvsy2hz8A(0a_CuYt?cQRIiJkAFoBgHURiR+i z!^6X_?vm;6iVI@rM4Fh=QrfNU?Rsipqm#7Ll9n6=!O=7VZMk%MgAkS!aK!r8>MCp` z|7sD@gN+$u(XzOj>0?iP0JI0tb8F}sM|u(nb`Y}A3J$d{z_GGutQv?5yw@>-Gk099 z9kfjpy!VyhPpuB;z0B%)=I$ z*qE4{#68Lpcx;Au+)gJ{cBxl(&dwqh7G-RXt@)upbw!sj!Oy>HFC5%f#db-0Q0+zI zgd6Vf>Ah4lUL@Ag@!mXf1a!<3af3POIr$*6iC6O}B4wxsBHoX^Ut9GXB)(L^It$Oy zVw*HxDjNCuRu4}fof?gN%j=kO^T?jUDeBsOjIM|4?A zsehxMdqf*xwJCK1&*6{LPPt=P!;29iNYACGxEz~Oi2*WOhOQ;B>Y}9+q(xC$u#*=2 zdEORPP2Eo-QFeA3aTdin>}A;7&jpujT(hx`sd8%$Yh)S@GTRMFB}lZCoCsJOhGoMk zUid8nOF^4#|4N7meU=iLsBWzzb(WZmF^6Ouw0!7t!)H!K=a8PiIN_9<(s^z4+8L{U zM~!UntrcLKNr2#3u22Lrf@h=6?%ly)TED>QuS5tw2Y;=SO=9#2(p6z|XW6rkH>4nb zn6zlJx&*Lt1GR%HlL4s*k{%Sx^6ao0DdMoJf#m;)L@bLegm&qOzMwam7~kVZA$` zG9lSjswXUw8RZ}s|6FbLc*3&(HzkFBL5p^f=X`K~_wu^BsxgF;>ACb@CWZo0!kyN9 zbF24UKh3z$kLArq!nt7;#5_c;pI?$R`uKax1XQ*kQ`cN7Gv~IXoDi*g;2VzYTR1tY z_wl(r$-DUvi7Gjv7Tza+KKxabig4xpJ=@>EGqXRlbSlyIgU4$SB?SxZB!!;#y8&wzKbXnief$ztxD&L-zKF=-O37EsXeStNu9QIlfPkOu;WpAtIs~9vC z-+Em3TvB-ig5ZfR(Mdq_HX#Lbx@ELLG8|jee4`JLybFY8g`?}O*M4qW0nnq7jct6CP0>R9z#9 zUB27i49GMhk2a}OpKk=l5(V|_jf(YHg{X8&=%N9_k7dy#D$A8qZ!r|W`U=x9q~T@yfs^F%k5Mq1U7B9Qwkj7Y=>ej~Hb<=gReADwhx<*{bbAn;3qaCxsDenS$v>AW< zajf#iLaB)Er5QY5h%fF;=^z0{3(dW2Xr0wbRqYW5MgYRv`jEg|r6Yj&NRZ{I{_Te_{}NU0Kuh(~XQATOA9!yG&Q}*XEikbo>w`>96h) zxOU2PC}*R*=TBquPx>z0%0Dxn7H#m;Q*|S15&B)#NY?Uk5VUFG=niI(xpp6r*o}@= zRk}M}*?OW@f9l=lsV`c4LL~_wAfVAOk6NuFhe-CTurgH)4s}QLQioJGDrS!gDnSX* zrvfEaidHd}R&eSc&nUbYOx@UcsKK8ooS?1r5WV$R7|FrK5b$&);o#zpzQUcvlUUp# z1A%5dv?N>!0h^EC7C$O$b{O$&JA3=#9M>C0eeN%F-295?%|oa|)zW9bx>+9mH6`tq zGD%keiGJ5U<-4I0jbqJTo87ogfVq2lPKG$oxYZ(szsGao%&!yTVe{7~eElyQDLtzL*4SEtK^P#N|_ea{~3Ei zer~8;fXi&r!Ecqf29#trop*#ujFFL))Y9Q@S17CN#==|QbRB)PuIG3asv}+&d&Z<~ zn`osYD?wUP>HT)9!2wtMdP_T(841F;u7bBhcl`NWtqrMsNlk*Jp(3> zqKmhAGlfHNBM730Z>BJC-_v9pC7OA;ZjTFZN#{-zA+dDgSj8mn6MIE1TtA1g&T7ZZ z${yFRE_|uMuE*o0IwQrjL!v+&{L^=MnWR$icH?+pr-_#JNgOd|myZfLfe3}7UE`y$ ztLb2yzi@&IX<2iVtvBMQIS?EJ-e$l6A#liN z#LTWxwAhqWZH9Bn=#=fp+7-QqOl7k*m?%Cq{`c``H$h{I40JPvikSmCdvUW1HOI(O z`0{JVjX7Iil9{LO?W4rKNGT=_o?fbZ^I9}20`8d=;nbU=_K#l$ zzP*}gGILvI!nm~=VKawF^ep184a)xkbMgNIbK`)d-X@S}goc3`V*d@q6;A5}qs*}q# z?8hB}vK7oIGGpzCRE&t*?)WhHJcvj4-pei5lgUEGZI4Y$Tp`Kk(Ae}i$_`>cce?9P^mt;NV?+v_T1@naPzeziBXHK7ANKV@ z^j0KgU-eXEBt%9nG6NMmQ*SQ!ErOfd%a9vL5d}Y+8baQSF&Yh-K}@tDt#L$8B8)J2 z-$BqNun}L&9<5+Au-JWC=6{rY2yA^W5k#qQ+h+9pmTi?$Tmy z0&;*>HkDO{T!tx(`rnGdJu4uWUk2q!@1Q`o9lIz z`TS=`0RE^K4gWT{w_YuU15{e!#{cjRuaMRnwA4C}z78t#A201IXD?G{@efYpMUTD? zPV`<6bwwv1LsC@tJDu#Y$QVi>P4z%I7Oq&6I&j9>d?ok&iVSMo!mC6%5zL z&V2@kdh!-r_ykuX<;t1!q&=gkT-)=GYM7|@Wt*FMAoD_&nyG#v#4YQcE(&fuIDKY@ zUJi}XpVG<9RTqT~*i2Q_Txe^Ab1A2~AKI_9>|q@$_bE_*{&W~+9FvhBwy-+56e(dV zr?SXyac>pyw!v{*XMfLZME`TRo|uX*cWTT$g3T!B`re0j3%M3V%YeavZ>a%i0EKuJ zIR5Q1q7borp%@T?8sf5uN{rEcA60R2H`9;Na#taIuda+4XepoDgOdGm86!B5*;psY z_F)3)!Sq&uPNSTz=F_*-Qo(^>(6Z<+U8D3Z0S80g&lo?pW2smjY<1V1sCs*5zibA- z(fy>cWc(-2fcW`g*HUn9H82&DYapJ2ExMrlVzdIs;?(!Jf2Wl;^nm3Q8yAyl1*hzj zym<4mLtW4HQjssS8mH-Z)(lgdO12NT5a8~!LVoT*8q+P;AL1o1FK=d#M`F98^~^6k z91aiy2=MXA8ce zGz^I{-O0y167n3POIeQuOKQtLv?CKRt%C!%#)kLbdz`YE2ougE*3lVAJ?w7`NMNi)){`--TDrbSgYE3|8oFgqIinRY-d@ z0|LnXV=(>fg0K)HVLYG1ln>Z2Xwcyr1520h4}UWTP4qEC*M3p)!_cN50Bg?YW``?v zqU2}SLusH(Ew(sDr&FoN-R2tZ5vDq9qB}X)xfihDtC+d(&DQHS>FqfBHr^kcUH0{& z2J)6IJ@u~;NRd%f7+SGWRXw9%ZNuk>Q$F{)xxKDw$kJys&m&?qSrH%Uw>h;IJNvGE zLC{&UgHjmQx)~77d6=4It**1`eSt@s?(gR3+m0*h z=M@^-catgS)7jbS#>~dVBsT`eGS-3?XRFL0O7)&cKPYRowz}FkFc1<5kid>j#vA4z z${3xa$VS#sf`xmxzT?IH{`~#B?N+ky!qx3p{3SMAeV#_R#$9TlgnFB*w@o(kw*NxMg!k9@_g0*r6zGC$oRbkBOoQ!FL5pDxgTdn`e% zQquS2Ju;)@V*ncJwD)d0M-#Eb&L?hk&{M=ly&gQ*Nw{<1m^}W0%cz@xGAVcB`Nm*2 z*2h6keA@La>jUtqF>tG>sLA>mQc1>PycUIB4h`KD1;`tpV14-UvgtWjygecbA<;Mt zzcVMn9bPMy^${@cJM!MT*pU=kc7`_@E{9c(YAsa?y8v2>W@AzVYgnVy{>y52>q=qcI+zI1O=T;OL!RH0vP(MO?hRN$L<;|W%6MHr!T_n_M=i}a0uBOCRy zrwQT=(%THui%JGeUV%46y%{boXR%<$bKE1ZeUbPLcTxzr?CeDP-h{uSY$a>q$EY>} zHG89<7y-GskcUcQfBIt#XPynCgUaovV)GQD4?>>aIJBR|(0DMhFLbyyJeNNVtR48^ z#pC7rN8(u2PG1f<-I5nz-p;a~$h7V-2nO?&!+YL+vI@3tQQc?}gX63Bg}68428776 z!6NArqcSrIW4T+pZPe?tZU#wKH_YggV)3w+q|W))teQSq}B? z{$$brPgy~Vph8y~|_jH&LkurqzInvu+Auoh6G4&A=-S2tTGP;Lbnf}w9 zQ{gDZkwPFdc@r&o_NG8d6p8cn5JRepKYVJ^oI%;eum!sD&6mu$Q?}qB^c;@~5?{`t04gP@oe;-mbY>se$Fd z8$TaPG9_+*tN4_7i@R4IudF6sAGjQA zja@#1f5zU3tK9bd$PGt%r`_L#p=>Kd>z5AKk-CB&T{pPiH*gC#f4P**_@M9-xd>!* z%%a{qp`y1zCkHCe82-Fw=H6;|8a9`gzu1bP^7t62nYP^+3|iB6UH2zu8ep2RZY&`6XiZ?ktjht?Lg=n96KyCXs-@5dSrcjiUChmTE?dW0XIhG+Mh>X zjU5`t1Ri|Nv2l#42&a4A+qW+DP!Pk|zfNwm;a$?A=&s8|| z(rLbqHRI#kRR)(D@bxPZIL@HYEH2`IJK7kPE#U6WD<_ve$>bJ>JfP@vM01ceX36`Y z=fxb98e3{6816cExZPhZnWVonWOa{eQNZ0Bi_idESiz=}%g;>!%ss9g3l%jlF(J}m zSZq#9%$Ij)G=4(hX)yl&8GzV+HQDO(+|I~1FZ%7moQTbc0{PYj$ zKM31*C^SHnqX^EIwqd4fqWK5F4$fTH<1?R4}*p{mqng?u}*)dQ>8_h~79`?|*^{k7klO zl^wb|=a`O#(Y*f_<<4Tvl+pleSAf(HK}pGoG+|254Pjy7?y)ft!k{7q%vu_hGPyZD z?MNLnPy~|4bx=TjQSzRj7bQ*hV-aOd0reOS>``b2zQyPK&_lA}x;t`Cuw>Jj|N72hkJAi*3 zF__Izv6xK0TWy^`foA*T*CZ;z3$XvGgBzBS{1Wx|;}cT2pDpgnVn8^X-Ob5jnWpY; z{ey(QH2{8zGc*E%@DHiX8K3M}h<7i)f7ek9uKur-7@)_u4+d0}uauVZ^V-g9I_CmH zha4Uc41e&(L|l9x7i3_q6{^%~pE(>H6m4p1()s;xX=a}}#hz7JS;;j)1rQvk+NH)5 zS&v{o|D4cYFAB^vLtR-hz;(@adV2%hAmBZLtBGX+4poUS7tEBH&pEJN^Z`&7gHG4G z`sQ(fT-gGw>Zv3)l~$+nCF1P_YWa&P33?z=|38OW0<)AsrOYZ#N>PiTvUD*kj5nzYu|)~8j$fBvn4eBys%_C*33u;6Kq^Au(j z6YFQw{lgPOL&ZPc>m1qiqpdIi0Kh^2)0PH|SyID^}yZRqlkN-J}Fm?V94YZJd-k=fw_6=%ubhHl0r~Q58E&X4ty=71x z@6z_00D%xZB)F462<{HS2@VT)g1fsza1ZVl+}&MPaCdiiSvY6N-uv1A=bU=KymjV7 zRux5snOXOA_w@a{uBIf{wpzv-lU}}6^?!O3VVd^G<62Ks` zC~zHgPXL@e9DqtBFR&ViZ%ZC_sFeX%8%3kp90)*|FJ629K59S!+~6LBUz)Lx9)n-!m}2m~W}si>%^(LFmOfZhAAWtw~w5a&C(x&&Hg6mXDe zk9>45N9I3F>7TO?>}X6;N#XOJ-IcCDHgZL1t80UVZ*Jwy70-%`izlC=zk-1M!KvIu zpi_L_=d4jSV+#7XF<)c4J6RCTkro%HxL^C{f9(DWqnX+$P)b}~T{l)ceD#9^nCe|n z6$>ic^92O>Ta`X)i^THGe;P;n~?_+jq0NX?bzzmK>u>z=ZMw^{&0hF?Ha8QEszZ8%2 z=9=9eNIGeS$~>1qRwxp2?AP&F67}Qx0-o!D#3%LH2+^s_P=|frB%>kGf7ujZMdgz*+}{m+WT&fpBlp}JN9$YhoWzm`V+Q;m z`Nuk-l>dCuf`U`o^6rOAV@00f0tQ^`AcmT(aUEb00>AZ-rI_y$Lso9+adFqf0C)9| z1q=KklmCy!CsObK6&j`uhk50#?~;-& zM=$r~z?abTK^CbVd+*9c9YEHp0b?p!;JZB=VqM7q%uJPA-Pq%3Gzw!eN&tS}%F3#J zxy99bqZg?pCa{qI<*WU-4cp7@PypEZm(YMgLqk($x}pC=Uq2^IAuTjCbipJ2yt%f~ z{$$hVcMPIFVP(xPE~F!>F@ePN$QaGthjEwP%z((0l+YK%7LXH&NJt=ZadFXEt$qX4 zB>#$$RJ`ywy{w)>i$xAwV#ZM5Kf69Z2=@32rQk-;Roas`^6Z&xrW9@5()}<00BM) z1R6k4MkOFX*3!}fWFAynuxZw*01^#E_2R~q-Gw?@GKqv&sZx0cH>vElu=kJ?r5$(` zr6R?W$i&1Tz#o zuYuPfKw9!+IEB6bptR|9-n6WMk7L5VpXfyqumr+pYHL3NSn-ddCP(&z}rC!XY=J3EgBu-lrdr$ z9W@n5z+A=HnNNjf>Cbzz5BFVkW(&5mNXy^n!X_oIxJ$`%iYA2KTm_E_0Y7U@_k8yz=UzU(Dia z3fsrTe3quULO);%gFW`$C6xs33R-e2Ug!?FL-*8AyPwbQ8fuM)pI$+x)hr8qnL2KP zesMN%4Zse7><;8)Me7LH@9kODK_`gpBY^V}JZ&)GRK0UDa*bUy!m=R!Q^lFVW* zSGE6+R3+wDSp2VFSyBTo>CW5O%tl7@o4FLugng5o*6V_;5J2LGWM*bIT4SnIBO%I| zvEmL%WfA(%>IOdL9RVF;PoslbDEBk2_h-wyuBjeHbH$58X90h8Yhb+xz|)>|6l!Hh zCZu@3ei}OKDB`Afsn4qwoO_w?HWU-h$FNsfS$PVS?nRQy@8BOAnwm)2*sxwWV>n}E zkdNp1q`^e4fA zd~qYg!^a;3@}Bv3BA{x-{byBEs0NrX{{TO?hTo|H?1VH;SsQa)|ySzL^l(h})oyurEJp_6v=6#s>bi5iB`-5O6ZZX0Vi9dq()5%6|FOhohz zU$IOR2}tKP6yl(G8Vxzdo6s)cu9sVH2>5w`K0?;i&cZtI@YD8^WeK&Z|DW*vOFe;bg0p41JV$2E>W!! zLt00|W0N^Dl~!-_zy~6oa>b7~nm~lGk9@TVv{teVuKWT5iXPAGfznY+1_%}oCjJ_- z4-XHML`#bewr8upD204NeTauMW$Cqo9=~2EBqaqO9-1{jUN1B(kSu&2vMyDtlT!Qj zk35_IV!iF}y3% z5#&S0Vz)kT5Kd=xBi4XdZ<+gnXfJIYK%AAw0=WhD#)`_KukLPc^4-s|lP_bonQ~}b z0sqx(Ai3}q(;Y~7oI1Z!n&-2rUk zOy<&P0nGm*fM=U9rjl@TwKwS=G3+|>H(pcn|Ykwo7$VYSF zIox2ora6sJxevKm?jB5J97yG4gmARoa~k>&t~a^eR+<$~^!L95)Cz(T1l;H9QZTP} z1`~aGpKb&!q634;X=tSI|NGQsRq6pn>n@`z?Dd~7z`BZkT>~g7_1|3D34W8&o7%fP zn30Cvw)1Xj4lHh(E>RnhXlb6N2)wPcT#1vk-Vc10ZqyHg!HU3R&x(65`yD9o#3Cq) z@sGR{L_cjlEs6D2l>6FV!PS2RF-R(a-pFQS;AvI{7z`*Zw&lcqRH}l_Ut&fYTUit= zR29@qVQ7rtR&5HDm-Iz$C0m8+AGq>3;;6UqF@I7{U9bY_L(HTmc1W#Ufuf z0b;pqAmzW5Wx(m>O@GSj&tQUbZ7mxV8oAs58Tl*pXT40y;uHF{AKi@{*YGZ{`TJ%n z+8-M!S8PRb7=8sc=qXeLL=0bFtBlAswfHnF(+GVtV=Y}Uxao@7_Hc~$}5!YXm5Ux&pE5W?qeQ>kJ&)vzgp-ojz ztlN1EVKxtMLT*{Eb#Nuw>o{!W$I0x*ADMyG31sS(!#7IFxNLJ9aC(o3`NEQH9uHje zHTebRwmhU5It!k?x1Sxi%-Y|Tnm+q-v( zZua+4vBWm|E681%y9gtV82xFK48PEBA!ufg9fX-ebC2o}!wx71dm+>lj7kqzS)6pF zzv)HZLqfQH(UQq5xuISCkzB=PU9ubh;eAlYXF}zodG1%kB_&aA2EcXlWGz&D{4hXPrgrUH2lOehckhqtR)81XEHhT< za=Sh`_TqVuw|w8P);KM`!s7DOk?A%#b#!Uonyz_Y@8S5 z?#x+h3BPv0)usCDjBo0k%8`4E;?1{0KP5YEB&hO7c;O7KjpdM8Je4Bst8`clx2-|e zK;;s_v7he_dGP#@34-3}=O%B7oN5gP}4qs~QP^2zM=qxv! zmzRj`;y2?WfY0Nrs&MI{v*+3B%i+y!o<|=(d#zmNaa_#%9y$-%_pBe4wMLHq;{lH% zp?j}n=j^h+Lmf2_h&I&KosLVgOdIm`iqRGPF+)~56!!qyv?fW`W-0v*En+ekd>2PS zG{3PM%ilhY>@6KOQc=7?dqEDuU{UbOwP|G5>q6y*_SR>&$#d)yMJj>i*5C-9JJD-jR-nt0*e4r0C>*2<8~#tQBy-QsVWYALu)LEh{2rq%s?% zpR%S`QpbP~GG*(tFC0)JvREc4k6;h-Le20Hr!`j;!f2T(7HL*oI{2{RP}wBMIJ0Y(Ex##Cl+Rrh*Zq0e~wR643-tJ(8eREOM+=*eILt4vZ%#XtoCs$B1vV|@sxBih(=CX8zRHSj30Dsg*J=e*-X{c`Z#8RH zEhC7S=H#LY*Z2c|SJRIBOp9X~`Xn?%kMBJRhHep9P$o?^q0ySANz4pMgxoDeUbCXX*}0QvjmqQBfRLszof8v63ogvA)81Z(?;6#7 znhBwYR1|aEYBG`t3`sRid@T$*=z)h#?rZe7iHVPwDp^%L!a$~;3)CgvH@rRzQ*ONf zN-$|roPx%_X^Zmb;)#kER5W0^JSk?GhzFK01uf$SThUIqq98_iUUS&2-2W?j{!YA; z^mmseV!URvpf&dk)W=6VQ=t55$q~LOk>PTWM#ri|d600M5iCilf9e|)q#74ZZ-1G1 zZ+tL=+UDODG8w%>w6=+c#iB9yfy^egUwcZPdVtup$z7Y|Sx3pboI;9(q+iZN(t3ML zUAsxPihlMyQq=;kY^*H96W#RpXL8CF7%J@~j36(hkP1%a$!V7FyEh{$%Di*$rbXN5 zEO&Hu%PR&_e+peFmiN*588Z{zO=3J4Phh&^B#}sR@i0jW|0xwxwrAp_g5f-&cgiV) zE1vijRXkWn7Y3e7Z|mr_oxj~GVi#^@eQ!TZ)3fgCe%eu$%f@8N{!m4tGCyO6c|#CK zs2K8L-TkyN&wPB$^b&4&LYZAL*SOzWT;Q_dO1YUDa8S753171DRni50q681{6O=J4 zH{TZGP%-*}tD@-^7vOU#_UWaAx+~J-e}MJPk?Jxh=!Yp_3`^89W04}QRL$ymG!qZ} zux?wo#srJR)RgorK0GWpBBl65m85Py1>G96Uh53c>&}~V;tlYuNN|rn*Q}iumNd`U zF!vt>v-zjD&U+WxI9?4$VH{~kXQiNt;diHWCkd%da%|-UN?Omm>I@D%uIa?WZka2D zhf!qFnsw|WHEzQpG--agKBBWZ)Mlzf-|?5rQRR}-6cuhFpSVm~A3VUT_wzc5({)T> z)4o+No4Hy+$kAj*_`P%uE-bsw%&@q?dxEfVs1S6Qo{>+z7edlUZL3bcfx1KX)&!;G z(wXKBHlu~eYYZg6+lggdO{~Vgf3j7eE(n5MkrvDztvOA122mG%J2(Dn`*6pYu;=j( z#2MD(AUmqfrC62>yW+Av`pH<^qTm4u0`8R6t&p2}tXPpSOJXH3#}~3q6T`o7f+3Lh zud5T*Xk(3gY$a&fn8{qIszS}B@rO7P=@p|thaB#9lKO04qtt+F2&WP?Og;{Lz1id6?Xm7hWpPV zA%l909F?#Go(KxZiTx}*yU?s#X+M(4N(YQmRNAmO`4P)9nUvc}HZUHPXnR`Ex$v95 zq`!8jMlF|VAQvpscm8@q5V`Zn-i`(mt__H;Z~Hp%$?)fol@w++SS?@O!bd!@-nrd7 zqpe?$*!Yc(LFb9NrlJZbnzKmr(lMy+LsDDx) zXP#4WN>!J%p4NB`Uc-;|)c;I$m$xR`%>9~q1q;UXC((Hb-)Nv89*@Y7jz{_Q{iBxH z?CZs)2eNVf>cKa;8Z(^*8r1SrZ{9O9i$2)GXF*>W9asIVczLV~GY(hv3=7?f^2&EP zu-tKS);Akf5||B<4TkOzUt3F^o?ZAA6lVhS$&tZNtOzG9dG4=_E^WdJbs^+psdH83 zH%6Zh7m)p>&kY6>b7Ck44x5bMvC?X>4a^UXL5xvWJ8^QJ@CIf5nGIi$Q4|?xWua>%!I8Be+@$)Kd52J|KcKJsYr+qr(Wn_tCqwv)((;7Z*C*7xWssYGlC&zlNKrnWMYqh(sMVahc`qe zDujm&4YGyZF|!Y_%I{E_;R^U#hBl&{I3u*Ak|cbGtaz1^$%%Nh-&mBW`uvH6Noct1 z$lTF0$DfhbUTMWBBva?_hD=yr+!LY!lhi27=*vH7Y{i;Wh7Gc-Z+oBu(gdrNdU_*W$GaDfUX@r`h+vONhf)`jDR9 z7OeX#YFrWoiah(_2iUL%C1OtGcF`46TV3ZVoGP_FVBare{ON@|!uis4e~)qXs3e%) zeb+_oWeM(2TnOcH@aYzN6XFW-MuaUYJ`OfSx4mG zLYU&X9IfSgo3b$jtVva0V+w-jE@BPorK|%X=Xj3My zB3L=Hg-`j^pERjK#_PwFmX*E|PelppW3Fo?RB{2vq>J7muH_b~Ntt_$ILidvZ|8aN z#Yap-th5O<7jR%Mwp$ZE`PgMi=^{zF^D-1k&4w2!V`Jr{%DnL)2wW{pGrIqUb81S5 zyDS;gxZ}Z}QTquqsvti8p?@Hht&B(E_;VfA=x?y7L?RDv)k?AtJ@;azufe$sT4L|r z%m4A@ ztw=I6AgS@v9~+%Lvo=pWCiYnV)|T#G4OO{ou{-k}6bBy058N3ym%IVLtj`4BzL&ty zZ23%?E+Cm23o)%*yY@u#c}ndU)`KPE{x(g1yA`I)rsizEF97qm`Sn$&(UVb+NF+Mm z89Qu$$g~3nr~8TJZIW73l!rakkMNLhDeT2+;dGVZY5OIzy0b*e$)=H3+8pn@Xo?tZ zjMkuWZHczlBLX=qVD`=^Gv=;If5dufCb-^YB;|v;RPR}tUjws$qtLG4kDuw_*FtOz zNa6@zwz={z0XNq1&F}kk@3}RitsO3G%&XLXQ4}ZNXwU9`Phfb2cB3<8>E%k~l(*+4 zHuQDx(I_PXmv3o*F>B7#zAoNNIG-22G~Q5eRr$b?t9fc>6#VBDw_FiAM^>jUQn88M zW&2DZ=g0RzdNU0AC+}rn0}*94s3>AjY@S`I5J8Fe+B^A}#*OJR+84nphwk(iPL!*c z7%g7W+KaAgMC7LOBA-fA>D;K&G0=SBNKC6URWkw`l0{g;zfVUW+Qbq;A&bXt<3L?{ zIvFSlu#2RwG77OP66&G&CVw$3ZK+E7uJngK7EFo5N?SNls78OcXFYG*-l-ed;lPuy zo@2Iz6YdhE&0f}|)^^n12S!NcD-fAp zs_0M4vEhk1CsvVY0@gSZ8Rr#lcd|YS-kJFMPISK0XRfyLG!_9`+S}Opf=$#zwI*c) zw;`=+g8P_(CJ%^p0>`Aly``je%csR&W?#?99Ae^q3=;IqV@#kLJ6@6tk7-q_cc8?^ zn0DB=Bd|E>4F`QcbvlOLvNgaV3nPF{ClkJASDBBwzwOhC(_K4+(Ct(y%sP=^I2^(1 zjjcMextD*jCF?9nMs;Lp6+*H`nvoA*Vm-xd@rO7 z@9(g?99p|{zN(O_ZJM55P-CmjtDV+pI(IwAdXf*A5f|Nh^ex1zfxHh9 zDc*lZ7>*Ng9GkPA=@*A9+F#ueo`WljwcQDTKrvuwdpd{GWPNz&K54XwuAAHDrz44g zVyHY>niGya@UDgz7ZxR@`$QMA?%^Tnn41$qh_3jKFWEq6m;5QP@>>xU&H&W9=aFS>F0C#W7V>_*5OiB*1J z!?mtpMsXH-F?hfC0c$kDGk>QzI`LJQ(IL1GrS{0ZTK~=HPdq_0?Q5$MPgW8Xe7;7} zsR8wn?h~@r>)}`3KNkgq&&zm<$ne*gY(7(&n#R*w{>|MD7gqNCHlq$y>P^u1;VD9Y zjx?DQEdpQO}Lufx_=8OStq#6F(cBuw&{2Qfj?`!;|m4 zGL2%FzB_aHLsLmUso5T`Miy3Iqw@8>km$a0#gy&}7-0#MogqV#&Ah$jizNp+A>#Wx zU}VnLbr8&f} zIgsf2z~!zJI8={zXiy}@YkNzYC6V#UMlnY!ljU-GVLE>ET5X{YR~GA=#SgwNQ}`xO zV~&}o*wu3N*?q$q+^GJd^;v1@Yi+^J3)8-mE?7Q_l;}#?sPQ7H-;pkE;wQmRY_Xfj zCv}FMO%1Sl$b&vQG#SJLk5T&xnLw`eM|Wwxex2JkDwR4cnYP3lYrB+%jDxGkq1Kfx zE}h7(^od0(-_okDKGVY-^l1^jrEd%TVcKC@G^8O=w~6J)(63u%JEr&3)J<6#MVZw# zE*=~_P9+iZD`pn+p$!4`a4~O>b|Rw#B03_>CDQF=m)*HB9LgCbzwPe5I-D*45W+j> zQ-pmrR%)xi&l&qtIOa3lqM?+U#I)6DPh8l_Pf0HnH9LH|i(dHT7Xc5?v5 z*wT7l$d!4-PfUHzFdkMIO?`XF8n|eU*O&MWDgCy*FxhcJanCVZ50q)3u#v&esDbYx zsUP^5Z$a36J}n=5ki*huY=SgGX0H=vgIQ-WfV0)ri$GvM zf$Bmp!k7>o$w(|(ZYPk8Ve>8%&A9yf(3dA|o(IXbmFumfU^J9Vmf(ui6#m%k5Vn*s zOTd>(2`DI9lA#im-Yc1i2tVAr&}(no2NgUH8cOV*(gn6qGhP28S4Yxrv6<&AhS|Ov z9LRF-q6ov`>NuGzJGAj@HjEh9I?avI2_eoE{yE6l@~|kIV`y*QeEVh1%YeNtRTK6!uBtn1RBam~ zG+NmbSW^st;jll-|7<_$V@^$UEL9*vOyI+A28Y!CYKhL8hlTpo&s2`?36-x2SG;1U z8a9noQD;m>y5Z+ef_}ovz{fN11v=>uFjU=XAttF$^V(@U2M6?xlHs^M)u;h6jioKF zUECCaUx!S{g^u+mLGg^Af&Ok#+Yi;4_;gViKQanPTdPw}09;t5-f*M`Oo5I{UXq?|_yveSH}wPQpie#`<7fm+*_JYrZ@;&1xK)Y3#6!Z%Zin zS$b{1rc!abN=l<0(&xkFOXI&|J^h}4$n|5KXRTH`Hm;KyosyaNDHZCN>_K?O+0S87 zD_A5?y3rntR4fl~3vSztAP#MY+jRB}?{MF;tFX1mSv)za9>7q+c|b`KKTXmf(Qz<6)ZWEtFuVO;MzkT0C|uQuc#3zDl-8Xy7R4y8QG zINH3zgS8YIih6BDu#AR5*57tIQrZDM_qo&JQ~F!J!t)c&Cc~L5;egxn-ByH}dCF&* z5s7b$S_omq(OpOIfjo&`66mJ0+!w?W7bfVJKDCLGAP8Unlq1EU+DO1w`)&S&Da`&Q zezCc5^_tb>{uG>)Z+!c>Eo`B)M<5PTPg^##XlsSy2=mAK$#{kT#0h@6;W*R_XHC@LP8vj%k^H5U_h=}|gAB+cXW;sBWt!laH=;KRW} z&xVis6Kl3(B9FQ-fUx^}OYT~5O-c*7+x#r?cBoT%Q5>@w3h#{G5d*~6`ic+Q?syE2 z+x5%A(J{1iGF!@GGb~)TjsIkSxNSP$X%W7+7ZN#IT2+JhE*4wOQ7GB8_07hj`On~u z@kZ|X>XX25{PdraHx?<9=KdTgQlzU{EUYwJE{G57Esq8wJFsIDKdSRB5 z&SNX=)V+%JACe3mb1m2$h9jzNxSl8=q^neFf^XdU|wDjT-xTlk$rNN-J|iztx_Da;@nJ4xJ_J=WBbv?J`SxivfxnCePeV z6q%)Gnqr5=D9;`{XYqO$Y-?Z;-ckXelfu|>VYM^UM5(VpF>SlYmpxaX(4?(NaxIz> zcXVQ|;a6XkzF`4&!pC|N?h}fm9iY^HsOc;Q8rGy^A_vvi+cUFhOl>LVuDYm8R-f&M z(r6y7;hjWGc)nSS)5o=Q7jE#6G3_W*6JcV4?>)9}Bg)SR$&4{BI}$cp=tJOHnz|P( zB9FN^rmFRNeT{0wrj@>z=yz2Q!U~WTvDqjK!bM zToqcGkHO+E)QMcoqgc6hQ6$t^BC4Z9Qej}UB>8=ZTgF5j+e~%B>d|?1hcffkdBgus zY{+{5>lkHdPT9z$M%dofG-0ONw;`5YVjLaSbJw=}p+U1GzaG~M?)!57_OTBRQjDkL zWCfqXkYx8^lHYHuEAj~8$%1hss^WtL(jzINU#00n2D=KsnGWG7MKI;7s`%Gew#!c~ zU~RXwu!6uI{2aq1SC*8&XG~uoz*^*w?ZPY1Cz5VWTQ5G^GmHz_Wb3%=9Yk}PmkeHpl?rvS9o)j5oPoeLirD)wdEw{D$Ai4I|Qsz&6h`j@8V9DPl#zcD|* z!-TstU9Qw}H5h#8@reXo>|__~YFSmeOVv63-69eKC)+|IG4a>RRhI}Ke$66!@Z{t? zycDw>nmcE%mu=UF>2Rt3iiqA4tc?+(qejUyqHT;&wc^)Fz>pOaygMjz49rJ~A@NvN z;f+KoRx9mpotTFa?0!CREkr9;k;ww?w}W|FTuLX)Mj#PiQ?*C5-*H%r*Ye*)}Lr zH1o{zcax?IANjq{fCc)KAk6Z3%{flYs%aHPia@F6F5Y7;v zk=OrfFd#|l{Fr!4w)ad#dRD0#hl!am>GYl~@y!%tt`t46UnOR5s>d@MCV@6OAhbkt zOuXTNmQ>&(3XC=M4;Y)u9qXKYrzj$mAZF|{**pXy-50u!4I!Jg3v>rkKX%K{plXs5&hwyI;GQoPcs7sY)XJoqhOn@OTC8cRF# z#?{&>pEL49Xc)*v=kB#V?8iXw7MmZcgzlOI(1c@-CSo|_g^8U^q_346sliF@i$fUb zf8iDdGQ`6dpKv{kZ&nOAZ4ER|Hu5p#|N$sH>-N z09@Qw$3SKhhoUonQ+!tVzu_TS+1dGdjJwb{?-qvjsazI}!BhSt)u}Bz0|PRWlh3+m zbvxzG5Z?R^qo6sNH+y@D4E2z`8AGcFvrmh-^Xo0&%|{FD&E-o>NOqn* z9x!r;kh*(6b8kJQ_>_S&S7w*?V~BO3U9%{L42F{W&HzuzE$kH2xysLri;FLWFJPJZ z;`|&=$mt+4Z0q0&_FYO7+5Azt~T60h}enTa_HKkGGI`EsqX>LDpi|x=gOKTH}Aw z`-numLopw?kHyIExs3N^v0Hr{`F)-$RvDF>7%3!Dy zkY>>Um+SVot@3ZEQQjjI{;(pVg(3I*cW|xy%-LEhPb~ZYH*j6o3qgwYt--%5F+*CE)QJ3W0ioo98`H9RA7Tk zZ;ivAswFdm1)#Sau!vY*fE+Ok00>Xd&wqK>Jw4uU0I*7&J(*O>mmPpy7JoXLt0D*H zU5sV$L9_Gn0-lq-FLv7if3yLpBfSAz^)$~XXM37|ud}}&TYkV}Pr`7sKUKm1L+-2G z1cS^{=ZBdtbi}(MbV+MP*=1r@CEN#(2NpRw#?$Q^MYe~DR}$&7II@sm)=y&9s!e+K zd*g2aZ`m7w$c#!z_!1CHsnp+|`gR>2a5IfhbQX`Jin{2z0q&*M^OHMpUVvX}7a(-l zx&aK4fv3_NFt6-0{u@00{ZBu@ROuIMh>N5wvwtYUyy+}Zw4W>9=GB4UUwkm1B?!gL z#cM}dcoH^qd*^a9*)`72>2buhD4 zO_apze!A+-5nI=MH-SFn^gq6zz>Sc7!jh!W1)c>I%tt?Lgs1L{vXl6Yti3_FK4T;0 z5gf(1TocKR#3pd=WG>CP%-NN>rKc zsXTip|2_KY-@zFe8G$`BgK#>3?bbv!|*tL;Rkj-hmWZ z4e~&Gzl!eNaz>h@qdnqZNikw#pnzu0s#2Q$J7};8xOoE}r*>&B`xLVa3#3d;@=_rj zz$M1JAM80fIkorp3a9?_erEmZY}b54?|SwfkKJ00Ws3deNNRTvgrZd1vp!Ka^2YS`o@iuproVj?yyGM*9L&D~wUGaL$m;7}6t89-}y zE-h)m-n`(T4THd1)K3L$VgKx5Ga6`*|Nfr9~7Zg({Q@r7nDeo{vU%U^tvGSOEAoF|PGT!d(Ysg8Ls?msQ_d_?f}_I?3aRYP97J^wkxppw^r2TWJ$i`O?a5R;Mu!>crY zJzk>8Zgu6d{f~+$upi}q_N6rVWAwjI^u;jyAID|j|3yZoJ3Br7^YZ38KK}mu_wW1i zdsZ*Sr+f^D0uxFV724Q_=;92*K|)ROWRVhz{lRo>YL8-(A`%4!h0Th^N^98ZsZ|Ze z-UfZq;>{CUY}lu|*P<4q=mpn9QN|Vs=#qGYS+t$&y*$ePW=f{q1Wqdy_*|ubPx_Ls zyX|v#8}Yl&7ctKFkHqDMy1Kp?)T%_x%pU>eMqqe&97=b$FFn9p*Eco-vL-}K8uf2( zZq1F88)4vLn~i%Bd6x0RB%;y{iQgPfg`XP|mk@l8&YbDO8nWWJlK%0xK6(x5B{V@5 zV8#=XQl3wJP{0ZEN-TL}bwbCa(=>G+9OTXYQWk|OE_-vIeJci-RlwHxE5Cri)cE55 zOc}~n6#_6J!Sj$XG^LusxxHruQ^`ldB!PaA;NT9OGB%X$hfT4J$^oEVkYa1+`ze z&&bx1J%YMd4+Df0n&8?SYMA8&YDs=91dM9=S!kXo`UP@SD^kCx!3vFd1cz8*J5*EO zGfXgvN=khj5Bey|c9E^B8kf}Bor@+B=@okOs-_sFFd{8N75Uqb_T)ew>u(en-nXkG zYm@Ej(|?*PKCY?p#B6+wrT6CkyZS!*+{C)-pmf8~YfYkG5jy7B4Eob_<<>CL7g}0g zUK_tAuc=>8ifADwo^AS;$|MZDC17oaJX|>R!;ahrtOX}7u;@H>>+CKqV4C9=^u#XS zTp6NPTDEd1jD>;k7>U`cJeoN)+|KRORmzGh>;fgYA2XIkTBxjVOOizIW;LHaPH<$U z1Q>RCx;_#}&><-UPZn0nEhm-Z)-;4RSi@#C$~UHhUh zg{@LPvwJXMJ4kZK?M&gS^~~ejQe@bvlv<`>0|}Rtb$o*-a_wEx!Y)TDfJ$hC-nX}% ze>@FmFG4-!;q`+7N0D~O3nY%2p!7!W7qjTtD}`cp?G;a8hZMg=anN9U8nc$#eey*O znbl9B;C3SGKgrZyElfRm$ODbM>^s?@ZwzAw9ts$!H>Oh(_gWHtx~Mi=u92Kp z)}$Cx$-xB^7(X_8^y*QP!tf8k@fubmZ(9+re@qm=whDgN-S~`t&w(Hg;8g_&PE-r5 zydqX*>xI*`q*M}KaO6CKn|FMH3)7gg;us_x1a#I$ZxGge zaQl7gT_C-$c+bAgptt(MYI`x<)J_f$d}l%<+crHou=R7)vS&}+`@Fvu4_puB{^d2z z64?B+=V0~y@mB(t915)v8~hL-&1AOLmbImCcwpHC7SmsDUh(%g2l%W@6^92Jn{d%K zEe+QrGK#5qC$Us@AKJDU0?Y{x{#Z8rQsmfazGmBT^W1FE_+uSc#wn8892c$MPfuy$ z&U7kld4<4K<~U!Bc=%v-q+gPkaRAD3HAk_19xovU-={<$Cv16!?H|KCH;a6x zYT%Q$mq;$ynHXKwvQQCh@Yqg!vT=@@@j6~iW5Z<>*~gD6wxt6*%lw+*qmLPOCl4r| zNwa<4KyzCsdSc77XnVV3F?}0z(2Twlbv?W1d9AnPX!ED+K__`uq%)Y0QOKh3Q%pOUZ(MwX=+k(_+ERFhgPuu&nNDzQ0|w zv~j4CgM%H>TFjxw<%ALy4gMH)tD{PX7RzQ&>6vGKmCWYLZNNReA5|HDrJ7yat)`FRhAS8qi>S2^!bwu@`tBfWiX%~tn^si z^!YmE@pIxsj=I4jMVD#Q>ZGIawBzr>RKo$AfME}lpsYP6^QC3dS9$POSUUkYHvR~B zSNlnj>C%bX0tVu^y%n+hhYVrL$+#=kc6p69_j{fn;c-I;<(LPA^sow73sPknv*4G+ zx-|#Z1f(0MfQE$hv(Q6IFWXe1LKjGy+Yj*3FZ$dNw7q1&0Y^MKj=Ri)Vj0>N4`R*G>1M>-m*OXPvgU)Y_nIHil~?D5nQ+-CM`kcQJ@9kCUR0M!G6mcs zGI>W?K^&CAt?5`AulTLPH_Eubcq=!|z;+2cb*jUl#*z$8g<;(f+QIbOf9%F&Wc3I> zJHn6kt3EMw(92WWbTGJF`!-v3-bl;0^7TbE-QjJUMMAx*b1WsYZf-=8 zL(^SZMdX&4>R!r4X~OM+W@wq?y9-syo!l?yYW`i6F3@V=tc7Z*;qJfuC_9V8iQnFN z3W3*@Cyh^;JE|hj7~zH9=cAfc4-*a!ztFF$j}^zWXAq|Z%cI<8>3LJj_F&$MKO<;- zMN6a4x+=e043?yIT=FVz4MT?Kyv2QEE+o_g*11F@WZjIRxs7d~RgeoeU@5LFTs$Rj5m3!AdMu zo29-#zLbp27u)j4%&D#DSSe{bA74;`?R5qlk~iFbLAJU<%IwZxw)<$9&YuqFYB%Yo zA>rUgf=7CB2zCj9EBSN5E>Pa7Dl&*&afTXt%=9=>&9fke?_m7cgmXP_$*XT|##w1w zD{5KpCYCSlyP2S*xBkO*WLTDAir-U$fQ%GKaT=$yZ+X z5XJoPra*2xC<-*Sm=jB|4$lo$3QnMX4Zqo}UP9fez!0)UejJ{UtG7}l&3>Yk|HP;w zozgXh`eAhC-PdKf)pZ4gqziG>hBn~t>Jh#eLsJC8sS7z1k-a2Wer6*Cuvft@SyJ2~ z{l|qa{55V1mg=x#=l>&s3VQO<0N0d|LaiK<9oQvT;_F;5C!DsH7S!q}b6b8`%&yfn zLDAhFL$6R z&%5+etXvKGN^ir7FI2MO*~x0O`8x1hH?Exz_fJ-!aL+mlSJds@u(L;IWqM`y<^INA zAVoEZI7-lEu{)f+VWe+uVTWoPEtPIg_qJcaX_hwM8S17(L3-FRT`4k<4(&<%qIBuu z(OO(*;Um{ds*H`$TU$J%d}H&u#BTVOZZNqGsbhN?t42`I^ve!pq1CFT0>A3ryM6cr zDdI0n_-T#T-`(#rDzeY(3OVOnGpRc>hOO#?M6B9-vu2cr%Rox69JiXs&V|#-e!R{p z9%8yxf`Q{~S|H-NiSY5oCcIQyCf&0Cn%%(}11a=l$q%SFs4xoUB&jQ!xkq23Gxfyd z0=orIH5OxZ^rELliI1*GvMbrYW&$j&*{Az2Dsgj<;eE45oDd~cy`Q9wMgopl2iJ~S z`C1%fyxguylcOLXE7Dy1T{bt}f6SY_@ zvYufLysl85Tw&#ZQOxC~dv{AGMI?dMq+dw;@Hw{X8e^Svut}zQ=kN|?-ILxe0QsA$ z4v9HScnqdZDWyn1S;q=7Js$wkSu!FDA7RL&xok zn$B?s%NzZ|M_4_h z`j@Q?igYqQdF4_{`h{P4P)_me5nl^l|gh#@!E0P|9{h8Q-El3Gp zR!XS4c^|XL*Ote>*Eg8_Kg_*#R8?EtHmcGkY!Hw}Qc}7kWfMwCcc+AubV*2uDBXf| zcY`zn64G7L-3@nc&pDp+zW0uCzx&_aW2mqPTh^Lu=JR{v!Kd2`2!VVmIWLC@^IH{$ zJ2F+m!GaH~(t($7`OaUH;+cJ2YulN9QUM~DjEa}mfCner|d_&H(`e;mMn%PS}oM@W$1Zs2IMx8pef65{;c)FqH zs`KdS!@f2PO<%pa8T`-33F09_r4JRI%-9)Q9i_z<9E>@OHYxMC{adD4(cMhsIvh{F zs0_wZmhM&{?#ewJ!HX(U5HPu%b4IkQTVk-jjYpVk65omNO$9+4qC zLRWCZCK>L(!xLl!;YPn?%1^ng5QYzt#(2K-&QURL(zlB4xpnBNUBK!wU#QYJ?fk%s z_u#;Q5NA1l0_T=rXWVO`;E9t&d0KirUpX=Zyv8h zf&|Fql*^0C5)FF^-^onRss)j+B%L1r6jX2`8GKxH;Jx2$_VDa<%4u@Cn3edm&p`l) z7%}%)LDh1RuRTq0wji70ejM0&vIKD!t{o$+9!-&81^;L3GrA&z|=R^%z z8xxN5&vgi)tI6Tr-3)=hhjM0;wNzPn&{FZn`e*?GU)ZP#E6VL!d+jfH)r-C1bX_Fs z+z}z}B1`rLA+OAtRI8~a0__r^Sf74vy_JbE8;c=b-hhhXno`JO55|1wcWtJ@o|8$O z5-jiWsQe1wB1}HjzEg!FU!v@T&wa-X>R=eVwaH&-jZhJ#1hmcR_=%yF2TVTOLYTLk zRa7yse9q0`rV{ItpX9CC3PB;_2{s8TdpdrnT3h_m>DkKjPgRm%?sVwZ4$6dAnyYM% zKO)#TmB~AD^#}G{^(@f*90>c?XzT%LGC-kt5Kj37FGpb*L$)n82h&qYIm+z=7`VAq zWEH<0dS6~+*-E_lXujm5AsUko__v=9QFs3uu+*YP+cI4;yzV}M40I)yKam`CwZ7cw zEGwbm^`uHmknzayhfmq5`6M{BOM@%g4Upk$isRxJu1mply1K2IXp?Q{v_HK0iV$0hKPlvONvAqn z9kiSqe&#Eja+Xk!2%{_`E2i)2E2*R{JePb#EtG!tOAdonBUnEx6xq48Q{08DXsug+ z@)1g#>Mzv2*frpL(0G0ndMK!c+9GXjSmq6AuLn`9SNJ^kq^ExMhTr0<0%thUa2zl@ zSW(&SiKoSmX!5;#SuE>ww2&~SU;M%dGv5tAPZN!EV13NBo6IWAD+rfZ^TM7QODaTJ zSKZ)B%x{D3Qrx9gKoB`V@ZpP+u;+Z33ckKCMUbx*G==W$pIC=;t-2WTT0xDZ!-a(n z_$fx^J#1OUcoot3V#Iq)g~}eg=>|o7nhdG!zWVGs3ty}_$11RPQ|gi5eEOsjGG4=9 zrB91NHZ_kd+Hn3MBfKFsq3sB_?M8cN4RwN--Yxy(G-}sN--TC?TbGtb4?daVC6jQ@ zI2SG4i~cjJol!7SDS(dL=~`3mMgMAMa6#H9mZ$@W$({pSIA~@Z2iICyd{T zxh@>2RTpX*oDC+XdrLN|+juDZv!w!9g`1zfper6oVPV90-M_m!H$}G2@i?MN<~{k{ zhfHi|dY}M8lJ9BkooQvU9~sW(c0C(=xP*iNSHE#W5H~K6xxyl?S%u=}HJ%a?dm2)2 z|L~E{9l>Yfnon6=Kx1{P80~b07?IQe$LnweSrf;v=D6D5Z`iO?h<8_DlSBg34 z>J6?WFYEo%dD&L&gZEuC7^7k=>`QDM>Fn`@V7u6*shin^2F>9H6vtz)yR^?Pw>a&7 zW_n8ta91XoM_3G|HW9y_?&t{!jXL+l{fWW4G-r)vPsWlviH=t}N*`P?Z3-cBX0Zr7 zm=Eg~y)WsK)^~gkanK=#cUzhNxWU~|vD+OHi2l=LJ36!C$TYIxy6~VK-Z+&|q@9>d zYdUq!x}2Wkw@hGW7L*W+io|*xB2PN(s9PG$68jTr(6djsTS#y8uN*DsZ6)`{kEpYy zBjR&;L(QU!pasN}gm2RcSQ|x}Q`zFi6(tV2EGKCSQU$SgktG(2qT{&j8SxPDNI9PF z+I1+`?WH~^9+mVdOs=03o!MBAUY@AiIGKHPekA6nUYD^m@y2ZWweLc+3Wenrrynnu zI9aOvzEY3R1H8P-5FN7nLW>49Tp89HL{3&X_S{vA8a0%JS1!E^X~^)KF;9=Rx<&f~ z7BaIJ4Al)@Z8j-%I~eu>KbF!kiG6S4t9q%)`9e3FSB3I1XE-eYq<26+-W>{4UCp(CW`pH|Q zj~p`gG`1*v%BX0pzz*B)lk zTPyTee;?Ai?w@iNaaw*~cd{SKygy~aZxTXg7&<~4`z9>9S$^?cR5qIIsA&m*`F;sr zb5D$=9>r%S&TcHs_(3=o%1Rk2_0iE$)+oAZw@X014K~z8;}Q^(P`;^XtYcUh)ZtkE zD$-heUG!^t@VW}^pohLM*dy$btWZr?8bDPb(Wp51N~3pzI4-J)y?q4=AL$bsquOF6 z>r+ER6R$pIxmy)%D#)FhCfV5V7&yuZAI8glOc^i!@<=&v>o#ohfns*j-JG)|r2gaM z!Up)YtP+=244Rsdc6-ET=ls8sMtope#m>$?Qmm`XL>HGsyBV@V+T+avZN)u-iU*PI zRh{U4CiN$u^h<-ZE`4FG7QQaZjpJi-Q!CxVFF4mT&NV`gnq;jf{@^U7>b!X-pB48@ zXAE=0$LQ3@qRkY&97AUuQ|rFfEXfz%M(kw7@Q#sqw9>cv%_1ryo?v#hjb6Rtw(Nj+ z)GHX!Yv^hPq$nUoWS2*ZQ(ijP}GMTHox!xe1t7IeN45;Z&o#3 zZ&?tlDeMQtU4wsrB&L=t9&ykAb#JhQQRpvsgBz2x~_SCbT^u_*6#0$tQM1w+qKlKg}h1*KJ_h}8^Qe;(L^dyWd#}vaodWr0d+ODz-S>Df_mI(W$S?Y^XP!NcDY(G0y?XX!FO@KgSo_aR%bfGYT?l(V(h`a6 z{qQeH38!L{T!+q!GP6Z;1B@l>r+3I@XCj4P81#l*1sS9Ebi!|tzVxTD9&Wjtl%0~j z#QR~=+Gh*j$7lJ$L#j;${in5G@7~MNgi!xsWMfTAPann4=H{ucd`^)x>480h>J0N8 z=FWI0SN$qfy7l?)Un~$c58x`NO(V5joA;P)f0sf&*etdpfU^0cOFij6{1fO+fTJPZ zY0}s?`*wOp!aOUR9{WDFzP**;^KVvhv{Iq_E8_6tysb|C=F&%Ff@6=iF3i817wGB| zV%VBTe`nQfeBiy@<6%|wc>k70+6)t(OikV&bK^njzAzTYj{yDA7nO9SF`r9r zJE{;d={kz%e-Kr5P)*_|GBnJqMWB$_!(+Vd5{09!X%+yXG8KFE^1aa|3NCloG5ViU zDO(+Xv>jgzgR=*3gKoUFk$uVZL2vC-9XIsq7AC~ZI6>b6Ycs?-}}dOUATu@NgA zlvn9PYdT}!qASgD+gj4T8UF&dPvx#{%6F>K_t8q%(#s+!n_AsZJU6GjXqvFD>g}4U zf&^zR6sj`o#}FBl!sb3uJrZP`UOqyr;yl@iIVT!vm$hUD0UD>i(b1VvoU8$tR< zO)spq#p57&mkev3zH{rdYLtnKj53*aTB>qgpM)`H0+`ztPs&;Iin$wZ5cPhxHclL9 zXf8}~G1BFHAA1~jU0}g4c^1!$eiTbTUYL|CS4%TLrv16cR;LCPu7mY?gOXbWi}<&9 zeba>K_IvRY6;^^Y80MjA)LS<6-*J}l8Ky%IyMj@86Mk0Nux)265xC}`)&2Yg;X#X3 z#r~*Mh-dD&FCv3v|5cn=qJ8zHx(stBS$udPJ9o69>BC;cw9hx7_RriWo^gV9V3!ts9da%lVY@zD6{ad~;Bv(%^oPY+EDwEUHul@-B>$5RDG@ z?}s;%?h<8hUZbrlb2{5l-h&X)=E!_R5-vZnzaaVES4l}+f97r2tC2&|BxRN2Jp%Up zlck(BL|?pf%P}__c)-|6q+Gm~seKpok-Em|micG&<*GyUo}tQO&DHcIv3Dc2B)>CC zg0#JoYE#JQyS=Y5M9-FIjMr~Do$odyUUR9w`OTfeec|rTA5JC|4!A#GfEP@TV)ny4 z<u{6Wl8U8eu;--?nR{5?z_l2doO4K+UI88cq#XNMz!66-P+=D5@KK1Lzme; zaqC3#f-C2|gcH+t&ZakvbJ{rY?~<~#1MDmtt)I1@ZcR;U=*MxtA+4IX?O-|abag&( zcBZ*xIGfzqtZKJlYZ$}3fa))v^1Ep;ux7EUF4*jI`t|{5E!bnwWh8snUU&5VjA(O9 zwdi@5-p+|$8b`73i>TE#@%o)aPsb>d;G|@tE z%`(Hm?)gT~sOI~^@{-mCc6-4(iPRns-EhqII>QqdbsaG5RK}ip5+6==)tcjV-zD2R zJ2{YlBEoE|_^^b8{CRLpHa@b*a;b-`Hi5qC4ZBXQ(B_F^9(t-Qvw~b^2iE&2ZNZvK z=Lc_#62kYX3$YH`;JH`St!^TL|ItW{nWW(5XOdXfB-REg z8mYesJ3NyjYfrt9FHDQ}>_*bpt>~eg01Kkq^Hp}3$8iqD1y*T~6W&2%ho0I9#Hm`E z?OHH8_a^+EedOu$@gK#Pgr2cIS|Lb6@1WNd@dgViLXSu~kGTdlS-Z=&E=H$$(zFE96kM?uV7 zZ&ij0fn+>J8JmWbl(YjCssST{(_M`hX0{9sLFDD-HLB`&ans5F$jzSwH@kzNJZ*CTBwN+*vp6BYOh`e&u|Zsg_X+q;Hv-2&UTLr$fK@I zp`Z^jT-}@{vf4DWvC8+#Jti`%Km^n47$jj~XMfy7zPDxA`W|7T#Nu($w;4=U2MyP@ z=YoR^9&F~d3a^>ht|@zQ=RBsr$=hR0V@7So=V`Iem7t)zpKoPCcNtRlNk$%X9bAyb zwies&@b&E_b*6lKQ1tOrow$_9r|ElC-0ML~SF7C|)zJj5CPVnfsjeO7p6t(7j(J}z zW!lfvZEWr7k8z{t-z8xVq;0HoR5>qpEIlo}aw#p2_bKW^aD)70Ks|zzeW7-q+nkqL zng>T>Lv34gPp{DHEXHC-7>_Rf8r{dGcqm6_9AWHqRkE=T&&e_7Ed!a@lUt@Iw;1wR zh^M5A&z*MtfHgNC0u?RoGH?kz2R56f1|6uC6*ej=Dr&$NGlAPW9PsD#KvMkq`EtZ) zEwu&U&#q5ZGR(QGkq`r#EfaP6Cxyrdzx`l4GB6P9u4Fpxi;qY{%Yaej%Gs z{EPTS>cSMM#r?_Hh;W2SH;%)>L?Cga;$H&rIsNpTyx~VM(<&ielW+7)Zl_J?=mGYH&K}mO4 z2bytQ+*m}h$5BW2s7<5+o`z2OivG~fl)++Mp$kY!hG98c>V$3xU95%~hj!sT~ z1oK^8t?d%LC>a0o1A~Bo0C9SFV4}RFa;&dcS z;W+~d?ZmL$Z~aDV!_7xf+;sMQ&ZCmE&cUuT$UbtS>5eaDa~-{znYqS}2`?j?q<#8X zb!YP>S7+0E7Gl(f4}wia>pz>A$1IzCn)}6C#_9-DcDE^FCo34>vwe3dn4circD>DY z(|cO{Ed}NVI@yp_be$0)*lIr@KnoYCoTn7oQkCj;t8TJ-13Y%4?+ZhWhRrz2cn4rX z5T|6UhMnlZK@^zC;+44rf8M~Lpcdf9DBtYqF*)v6TgwYvI%%q(@I~TJYuDI(L7&Ua z%4%(IhmL91z02);`p8=V^5~I_|K_mzuM#@ z4K>O1sdm>I!@%OwJZp}zwYS%aL)&K=5*unNykZXysiDQ)^}&a^$dv{^k??d@-Vz4H`lybff14#C1DaBGDHUcjnEcA-49oh0L7ZmVY8d> z;lqc4VPVl%6sL3`*3)VVWc~b?EG*FTc!GhJ!nat5gn^1ClY)~8Zj?#dR)Ak5URKdU z7z{u$mw*{9tNp8kX~~yAz9lYeF7C_0v3M9*Kxd^oFBpc*chW&zQVZ}N{YC!3Zr=R} zV|#ns2ul|0W)1k?8+`vn%|^7_pZpw58)1D}IPuO1FXiOAyy1|3k)soGNSbU0(eOGL zgW)PBEPM~-dQri-QfNvVApqO$-ive;+0vwL)JM~JQ1(<{-1}+RAho@&y$UM)U!T== z`A)z`wiy2j$##0!v5C-Rlc%iBm46`@$0b@sPE>`o{DBT>zpbhnLX_%5DtJ=zE*vw3 zY@ulEDPQExScU{9Z(!5m&!0b8tmpVa9uGiLs;d0KdQxRM=>wj_cM*X>0*LLXLs_!ojjsjB*Ait=j8SI;VNI)Pg zsm4D?d`IOkH2rw~?vNW%_8jA``Wn4YIzLSUAHULZ=;mlZs4QNZ^%~5>z_-^>}ZP_rue0)c>5v?pNSUD)*eT zs0sQe(%JvGP6^m`YLmGc402}BB~0==U63Z!jJB)V*BMBrimUPGqt#Uu`&w`>l{kQl zz!Zc`5DBFdAf8%2O*||xQNe{ceO}=s9m5p5CQqz>j@ZTR>iVH#|XPW+erkIpPPMUO^3mL`Uy9&~&58!2;LT;|wv+WqXKxLVZirrSwE7U} ztdD(HM}$+ob63}HYlGZO?#$NX%gV|=W;O6*eC~c;V)??pGnBvvgpDWjIlv5>mx0A& zD~QT4A~6io(=#)B3JB8yV20{01Dk%}U*Ggm6f8Z)EOG@`z{fTM{m@~1LjJ8P$A-(% zs!T2VpUDOS*u%j<4P&?c4nBpj3gcO$gCrB{J6d{_;=XGVCReNW?p&ln{RI>B_!|7K z0r8#-iu~dMsrvoxnt2xEQ+fWI)`y|a9zs6Fre}s{bEaJ@hat@Z#W9b5z*Gr0mkyKj zDcv(T@vi9w%K0i2Ko^959OUvlJiRl;%;acTPAFR4o8q`Prw%#(z48^-^`r-mNq{6DgzqhxsSx`4R1_Tuugb!JBE zw2;>49j2(!B8aAvMm#!1o!D5VrK0*aKd%dR20v+bw>$bF?$lJ>mEi5c9wmAd^b&?fX5Km#8Ps2 z?rTDMQ`OcHn1bi`z*%1zeEx74T{KI&{gJVAt|n7ufjj?>0@7K8hfj)tTaW%A64EH| zKYbYr6@%$!HYR!?Zez!-8@fo{izDH;c9*p}Co9)em3hlv<$R0h&jt)eubIzpx|-DP zIuy<36|P=S6*h4;-A)h%a38mn@lG{|+)c|Po^yGP3RpB=`abnid;9k7`fzpxal5k) z6i>U^^JZaf4T*t)0VWdxS{9`>bKDBj(uTL{B=Qpc@c8kr1~ZeB>Qy2Pn}K}-^0LsV zMC8qjbe$Zb(||m&l>+}|oXy97T6Cx_cXMH3{|itLnwXeus%_+|6cQ>ZDvth^4odk- zkudP@Xybe7Ms$6ujI~)dq0r!VdM_bLMEsoOL$&T(Z{{8IWu-xZf|+yfpFi0Ki!#}o zBQZ{iYlBeQ61!J05$9T~6Mf`=6reUt@wAMLz&CGWbPRotlpN@WdYCd;UhE)pSz@*< zE<=zTqjPq>zbv)|^fnW5zm4)bIs{X*;c8#}`dA@Rozot3`3hJkeCNIHwEOWzs(=|j z`rXBVmk~=b*Z`Il0nuLq#~UAAuN&nt21|kB##2IA%pDp&^TO(n#IkL$9Cg90e7DAn zGmLv<9&?&U&FD0`o*13#NJ=8Zwwqhn0`y=-qJW#QwY4=5iYY8)N^xF7fr^XgQEOa8 z3!#UJXN2SSO-&Jk!Lq4@usDMIENl-s`?VM2oGXg#558|JEn-QvkzZAwy4?}y1@$YY zh^$QuE$RhoNdD<3(LT-(U4g*N$iyU%y2Eh$NC^!sSRp(+eU+XKWb@>(sq+CyuQEJrBt;zKC}Oj(a8JrCwr9f(yzm#CccO} zPg_)^@VU-N97q`>E1k?+N-jY$*^t8}Y>`S}0&f63*4Yw&pQD6@-}lvAfo(a{7EHFI zqoXrXZW>X*4(yHFJ3G@oJ*@E3_4-^<%gsmW8P!Ve0iDc5qg!>~FPv#A*C^P=0w_g4 zpxcFPiAqR^h-gU^Hyj3QpsIs!jN5f@wsuQ#UEu4vt{Ht@al7oKXWWrUX!{Y|#{c-H zrw4R=)8U24*w>9zL4lkP+=jls4leiGxdGIE6xA0?uPgIV2H4w4bv5fTfo&WjtdiH`H%CY&M+mixW1Vm}7&&N&=h zT#>L;$iY>Lf5(3FWpQzl$LqF1;{h+Tk7K3zo2wff2XK`31>L**%_0cCk(8BH$qv=T z99m`u^DD_PS8*;8w6;iH_CS@Jc~!pS^f;+-qS`vu(aZx;AfO?@ca#6mQklL40tiC2 zub<Ir zaOKG7m4&QdEk_9ba?gAG(33@yi-<9Ry|C1pJ#pzTH&)n+9q?ZTp@f|HQtRkr{-Hs{ z)aLQ~11EVA2*cBD`C*i|C{o|T;q=Qeo4$Au8uVc~9dGGilB5(+!?{76%FCBu{hY0L zTKx5kD)DL<1b?7y@9aSE@MyBdNK{o-C#_RtVTa|IlyKH92#BhBoh?h^fC{u+e(~|~ zd}7CDINp3iBU#8}LCxvUUXp+>pUziW#3p4^_PjfS)-oslC+3S(`yW4(uZ%v-6vGUh zoXWq~^(u~XAE^$`lC+-xrS}3FPlpeH>r8ZpEly-WQ+9D zIPRNkqj@GL%g@*Pqodzi|DZP33Dyd*&gR=UGxBBcsgq4&s7cKQQ(W7~$RjX`>;o+t zA=F032tH_G28IfVhY>z``V{$ObF|H(xDj#1J+j5GH}+ZYirB{@u;T}307MXiPBU)t z=1tIawKXieh|^raK&LC5#CSM~hKA-bn^7P-Ua&2s;vDeb7q_?3$;imST=N24cNV{x zmj^Tg)mBGBT)d~5H^`3l*H_IfP>Q%|2(-|g5u#_yHX&I!T%hQmkyMcCX=6}3eMv&> zekx08XE5sxvl*Z6BGHOnW(6sh+}>rH1E5~eX&7s zxb(Q$Z^J}X7ab5dBh~?t5(LgTw9}x~j7#>w&b%y0_)E!2;Femkp>P5*E}1ZOCt zi7!(0+}n7hlej-y+RF#r8k&Z45r@$`DoDSs8zV*lPL7})EEs0LA+bj@4+zM?#p?%pE)t^W-3VM*V zB3~Mm#c$f56jWt3-E)gB#-8A_jxQH=bdIAe_&W{n?>qjP7YIvs8WKG^K8Au*&q|O7 zI898-kwKJY|EtD)qYPjcn3@ys(IY<)NN8}jJNq~K_V?x@8vFlnr~7KK** zG!(t^t8=JFO3%L;gRozcF3~P(yiNUE8r=3bWDPDpn#NYwv~#X4zl6Z8c(=t(Afv>* z`$@$dKThQ-XXlx2{!urNu?xE9yOz~(R<#N~V!5y#--Ir&)@l3^7o`W5`zdx>(^EO0 z1G{oD>RGv8Bs1!3dtB+|O=GNpAxdekp84(Q<6oVH)c*Ia&>N@t(irqaZR<;-IUo*E zO2B9PFW>e2B7WwsX^4o~wVFFAn&KdqCRyCCF<;QFLHE=wb(z)aMDB5!Bmq|v5|Q<9 zk4JDvJwCAgwyP1);YB3im*^j`G2*rPqm`T*+C=130Ac6*gtbyh_?{6x^&L`PA9ISF zakz=1{POju6dGrA8Q-Y>es)6{-ZHk>kVvJA#3f7rCyG-Pu5GTw!Ac>I*d~x*JEfOQ zblTCCbp2zxx}vc;E^3!8^p#Y5WqkIshDotHF{71XaaWt@4lk&yINP<8?-@jF6dMw! z$XCtFR-=|)$5*MJSX++m#?FKqv!!s2$^{PK*9yYI;n9?642uJTe^yOhF!J)|j6q7|iZZskEt;LnET5RxR<=MGe}}bq>-tYH;PK;p;Aa2( z=<_pU3J4^&9RhC&=1G_ng%dsX23lK*!R+t6Pp+Pv$Soy>_BAt;lA2nXiPgwhS^J_G z1sezLc80S`M+dk-eAm-FBKLhC$9yjqcjohbHa*jUIUY*1ik9k5e0!vxiY+*U49~Wo z#4RGT4Mg~{3n18**4cKRMHu56#o+EzM5*?xr^gfR|| zSz~`9dDKf{qtLrOu!f9>TUN;b7;&NfP&>+((MOE}YXafzt2f>8M>&O|1%p;X=P^wzTSnMY27W*M=i z+z$ti-*tuksJj)E4^-|2KR$txH*}9BI`~clp7hgTNo;fjs=2kyG3n3Wg_>6E`Sb_aVrkff9a)Ob{mM; zTTb5-blGlZN89echn8fxn0VGsPLnScoi=LOAM<0c#HG!y@o((dPqLbL1(yvtJ|_2Z zeRcCOzXL5P*f92S@^fS-su!v%L*Y+gb65l4jPkvEw74&!B1+)f=-&oH>qE=nv?p_b z@Q{(AoQCHJo6L!9QQyht$YgG33akT^zcik{^`933c2v%yx&}*d(D{&#!oBw@vgRWrujy#D$L zls&?{Ji`Bn!RADoj*P>xt)U_&&n*sKa!`O~1oPvJzparV5L^Tp7q0tB;e0NH@F8TTrYAr){DXkMDTx27t9+Ovp^|g3PbeM z{sw$I=aZAB)A3JAq38h*oLQF=N{tME|#j{A!eKJ+{^^f zA8Q`3iixH#qq*#eO_2S)#OFnU+J;zDQxnWI!wv()=BWUa7WtQl#2gUC>-RSyQavezs-z~Q;Xp?}!?rOWH9VT)OWJ!6LhHOxC&5EGIv9YVu{ zv=w{bkUwfetI`hqXDJELTqUc8HlLPT`eV;+?xrbA-T-AdyM= zn={^D=N$z%>XZqk1@q+f;oAdpB+ukKwJx({813IQt1I7%QtLWFRn||2Kri0YUxLec) zrllY+B=Z_h1jYhnW2)kfFGvlCA@t^SpiGAIm#avgUVndojl)(9pRznh+ef-47IgXb znfBX`X~<7B)Be zdtTlb%ACu4@{I8G^Vue;6`2G5P~QsJ0^yXQ{D?P;RsA{i*Fw)rf7WqOUGV0KQ#>-4 z$yq*aRr$Qw72z)~-{!8bP9(NUT)A|cRUID+4oq#%ey{L#Hr`iS9L4U9n4%r5byX+= zy4podj7$_#vO;S3UZf!^TL?CGefTo=tDq(&QhWc>yEJKQ@Vk>Hh42J*>g{xEskYUn zqGi`JS0_Q4cblvRsbc#U<`%QHuB6!pn&~ffw)&k?#e}7&=e3zTc>F(%MqX_>w%IhM zPbxqr&;^2@XqH{g^tuY!MVSsUWy`Lr7pL7s_D(Opch_xq8^4EN)~QM1DC*fVc^#y8 zivDcjJll6aWjEpPp6d!9xR&O$J0l`4?ysT1-zg}E%lfr7Wr(dr^%c|vW&yOgw^tlv zl&@Y+lO>x>@9PGF!Ih;jf{anjfa?`8G4UaPI8>>O-b=68Ag9k;AYFkP?p1nje>zfl zj=|>^%P0}@#J~24Iiaj2s?Z2?J-I=IvqKyrq7Yrri_F1$sokhaz~Tj9rAYSn_TY5b zV_4<5qfww%`l3*|23A^h0JYgA;5cUf=ED5vR}_%gOCK@1Jy{N-#veL7ghV4Ep1wi^ za|l9ryj6^@Be^m~vEF3Umv5^nacX^xs(;;TdN3%4P`F0HxgkKj3xFe6OMm}ESkk6O z!ZbMSQp4#ig$ce}$GSaV#w181;xPNj?`Sajtm*tkp>_!yheYTtkB1?du^VxUyyU}JOs8kqM0D)HB>tUSfcww|86 z5#NAJF{7VB1@%iDx$(d^44k8T?& zug`KlS%MueX#>+zksote&uJlIw6#^P0aWtsnw-f} zJTKo=m<_e+@p`0xm$tUHt`#zH)2@3LIXzs=P(|4zMw3#5oSu;}$~(2vA^7#{*KTq{ z5HD}DIYOrdDzzXO5_WPQP3YW-SYIvybsqIA#i=#=p$y@faZbW8K4lgF$h)Mb&F~8( z(x2VFrlMBqA9(h6=c1tai49KY1<;C^a~5!HG1u3ZUuU0^pfDWh=s*CBjy3=x*np~4 z<;cezc9%mV;73F?&qw{zXd9(thd~bhtKT)-DRkj2sQH56)$da=O@OG70RUFDX3s{; zR)q#fc{z^p_>`1z^U=IT5T41#bKb{3pf^)vd)SUm8_H8Fc<~Eod!`mg)E~Vi(YlEa z&WvK6Cgu**y^XT;Y-~!<%YxFj!MP4Nk|4-Pc6OLJ^PY)abRXr#bOQp;QWsSOwT;M zMHDCuI(1(DhZQlD@rA-)n1OO9MP7-0%#5zcT zawT^E?CtG|W?%&|_5>q1>UI?5j-Z}8DV^O-^T=bL(`rh|q|4*xWE{qeF-|)L*usa1 zhzRt}AXfl4C-fD#Eq=iNbqq@Q#*WFz#Hcv5vQR(;CmuGts!2eCX5P^q>ryC7wguD5`gx6sPie;(e8SShyC-l&L`r7>v4ds{`I5k` zb9X2E41;`6Sh+ypMLU|Zo`*m&eNIxE%n%cl1)Ob^ORlL87Lo(+9hAWuX<1Q-jD*@H@qdC-#~>y-6z z*<)THAcd-=BD-rhxf1}4F81b#nuaE?@`$#KO{_egf;@)^sxl8MMW7+DZYFR$SX1oSnP3`9QIVqk}GCegtw~V#v?b%q&MkfyeMvqG1f?b0>&+ zceCfU+<~tPH8P^AbKIei{TEIGut@=F?YERPwBK!$JesfCi(bV&@2+?nLhECkj>#8U zIFYB!01pqpFi~pA#t!QUdNS}g(DEcoiEs|HU`6;#sA62Yu2AHnD!^^yF=(gka2>?r zVaeRzw}m1x=(Zv2hB~C_q^YrxGldxq+Z9N*4P;O) zS^$&)OkmJxv@bo;;KD9=bF4_fPt5(680Lfs>WDC$->!+gsv5Yzaahk011zy!PUyyu zHpTfxOvp-@ao_Frp4Z)HkF$-{=94kabI?DG5Xm4zhF0wZk8f7kCJd?gJTCBE!(R8& z$;tKIqWNZrDrGAH9Eqs1HNEMr84^RoOf~+T`PUd#qiEaIe|*&F3H~V?L#tvv^>R3P z`1pEEh#4|sbzEO^VSr>^z$^&s=D?Y>|Gg+Hute&E=;`MKuW{5}T_BToz(DWwmBa0| z3s@}FBFf9l(eG{Ic#H0%W%&Y_*H^_7_0kQ4(mS4&^r?mZ|2gJBrx(BDPw*RK>wE|-rgn55>IdlDNQhP z6gIU7JlsUN*og?|d6>Q@08-IOpRwhv?bF7D5rnWBoUh8I{dj)9j!^mFPrsC>?hI{I zpty|0QFlte=w8C=4Zf%L629ft=k5ndoECU6ID2G7NvTjnIVQy9MYc>Ljjsz-iC5`1 zv@vUc(~h7kJnyrDqO|7a!q4&BOH~W?r7FLTlIInJk0>@s@bQAm#3dZVhDe2)~KtRs}&KlMlL7`_XhqF2Pn z46!-9KOBj5hysKia10oz0kjN*40%Dh4A5@_BR$D$xXkAM+rMkH(Z<4B>Wg|HGP~Rl3G6_+LMZaFXxO-}x|0 zXcl$dl!*wxj+rE5L7u@?lPIX3ROe;xnVy~pA&x@ro?$)!iF)}x>?j&CCmIm39 zN6Tk-?PV`}BfTg)sO5x8OwG-`>9exBCFR64^27@x3tvU&<(O+=(DdB>WdHdwB__T9 zdsaRiPNuAR@F6vYOtRtA{1gf%0fhLC4Z9gNL~l+K-*1zW6HYo2X1?3}5XmFaB%Lvx zl&$Yy2KgwY_FTT*odns$c_5$0GPh+;%2>vqVDfqJl1`9UWn=KK_9XQ79^vaXC#;=obYfca%g?@y!79V?GtZy2T!KUX?5OQ4j7MaaK1?X zl0C@hHPe1WSh+y%6LjhXxyfL&+I!%};bVnitbqvWs3}NJ)Z)S%;fWx5|f{`$SS{I`ukg97@($KkPI#GEy|QjMlCAZOo%N?+Uk7 zWd50Ba~>GLJhMr)C1RKNG15eaO-FsoqEjO2eVsPmUHjHtQKU^ESJi~L84#M6>^8*}T|*tSy2pAMq{^v2q|SuoCfYr$%i_fy zdJ^}ALFh3$5+~OA%PsfI(SJ(s>2@I77y=QvB-UEU43D86x;A-r=0@XP(drOjw`l$Fh5wqx|61zR zlt())U3QaI_&x0ml?$YucOp%nAvwERL^~q}{~TrVcz*lONwlG{1Lst8#>6Qlrq}OW z5M~MQafioP3Ash9cnH1w^y4imE2u??S?q(%Saf z=$k^?1iG#7sNDpLNHy7^6I}V3QE#5V>*Zzg@$w?QL2_`t3#A>wuHBsrvsp9i_dG^D zWW7Z}*nFoRL*l&MfX+llF}TLLqFHe3NEsu2ATQM;O3_sN$a{0Q@W5^iEkCRps+go6 z^=1fuP4UwBo3N_!rDyuK@1GJgJsxZ+Hn=I6|G&A80l%ioTp%3YI_lR5o5y>sQ~ zW45Z;~l)G$1KZ)iW*6+(B&4%0lWCw zTfZyQrf)GFuIj$#wc)p(W{H>{lvgL~y$4h1rxKH~3_~Of*vW>P;)H^3l&&ETA8vz7 z%g4;oq@*%braX_{eex-Nt19XEnz_q;h-1yPZX(BgL9uag_GL1bU6E*ZiPb;Loq)mi z4he+FP0lg&T>SI%c?+-}^q*HA{QvtK(jc6GZS;Vmw4ws4pzw)L znU9!+1n}B2WpRJ}PB`Jg{@+j;c!qz!j@Kdot8n<&9z(x-P{Ojhy}kfO zzz`kR4eCn2K>7fa$4hHI`-6#_?=DwQsp1cdMRW@%I16~29aPEv9~uaVwLu4& zHozPhOXSPfuT;OOmXn7D8(KJ4f`mRMpWV_HoB7gP794ZT-}+CWEwWVS-!Fb9@nr)l z#Nk_QMLBJbpg1}@)_C6V<*62j1J`0+xj`nFmnW|f zZ6wJ=p(b~21R!PG*xHH!@;!Rh6PPC+%_QI<$*-+Cw=?G5`Q`{e zKX|PM=b?p~M^!=;JR3VZ7?_xtwL(KfLz~3u!BYRlrmU1CWwnO}XmRh)lZZtr;yBk* zEw{$Mrphbt?H`V-zraDCgM_~zQIR-x&F(av z6TYgNs@|P{7BC6J09|4k{Hb}j@kt|N;adta zYOqTP{xdG*Pbf=J>yaD?fEjF$*X3&qVYIPr!P0OLm!Q8s_@%~aFU7LysC+tpW~JZK%{i(rmZiT z_4cl#SC)N$QG2|2r9D>7r+3AFx6C);2CoMNW#LnwlxrMg8N$agi4#30X&TE1)GNYo zCjCQQ?)PnP>COh`1(wFBE<$%;U(M*->{yL*Cv3RIGygN4PcInCr{0hfQTNT_da?y@ zrwAI2#+6Ps(qIxDZ^>AYnhkmMbP_snC7+N)fX(#nPzsHcB~Af4=`xvq>KOv1*_p7v zK|%n8uJcx_n!2^*7{kR*yXVI+^|5T}MNI;Z!5abs0))a_&~*n3ZCgR}CkMKgoF*pT zHH?r!WZw)LV7b9qHYz74h3f@%M*Rpuf3TINmVR}*ZXoi;t$K#ubG0m7Q)w53`jvt@ zxMBgn25{i{H(lZ*sAw9Ja@-^ao~uqac2=Sqz7~2f31KA&>ntxJ!B(|2BZ7bdm_#g#rbtca^pnKl3M4r|@|Wh7;tNZ~cmA60@&P+L zQ8-pU`#BJrAHs?Pm}E1z=zfX%wj%qzvsR={6t)!WT(Chw97k^9)%^*{vu|`)7(RNW z2|!QXUCpfq0b8vGv8$xgB%z0Rgh;%@VxHNH0|bX8N(py?Tf@^7@ZW2E!CrB@G4dBv zY2ddjX_(?LPyaTb@4p!Pj2#+L(q=x&^%tzEM9T9YV`!IRv6UV4T9NrC-95BK5iWc;0P&^KHkDr)mX{X3meWHP{8!=g8A#`7 ztq45t?R_2M4R{Cg&2mdnOk(;GTfU_skeoAmsG$N!!a6EBjsHWh*Nv>>a}o+4cD+LfT()Xd|-hk3ECbPIjA~K$per zvt_L*Ki4?4Qy7@R%kDZYSsr}tTAADN_H$kWi_vn`OCkXY$>|^cJx9NLFHVmUefKLZ z+&P%aYPiPm!&FOwpu=6>j0;;}q^u;Jk|}$Y^Cme*PXCyZvU>6j_krVpA*S^3>d_<( zZ#%W-nc}@?;A8B$8_-n^%tY&l@0gGl4ipNJ+MalYKz}nIA>D!`maq%A@hk_Z6!vXp z?ewuD_){;27{rU}#R;o?s}(uNc>ktH-1G}Y>$y1WJxZe7o$P%IPEq*fkG;=48cTe6 z#^p5QH4feG<%1LS=NLMP%oIUv+u^q~Yh~fyE2t>eeb@5>7c0MW$=Z+d1WrA$*_P*V za%*aB*&~#aXFq;mikzdW|84ATw&5S=ZtO8GL7_`M5Fzgz-vFHC#pUI9I!>#TbtVZb zzDWDs=ua^^zzojj9BaI*X{G9T8m79f$=2MQ7mvr2c3!|9%MnpM+bNa$g16D*Fh~jq z6!gO)G_ZL?qoai;dTr>XLG6hej0f2gQEFzGD(iW0!TMw$C+J>5ij3BLGiHI6g3uzy zI22@Z7WNplw(3k(bazojzt9YA%_t%n4r+a@$}XY7fwPC+HVSI(D-zL=4HloFiS*3Z z_H(j)YydXDFv0MknsLd8q?->45~pZZ1(tGY+LtU{lfGaYk5GDUhGxj>0$_L3*i>g> z^pSOCusQ&un{{<{Wo=416`p^KY;Xd!G_~`vjZF&I6Y{7IQ+5#Q4aW}0yOl{vfBrnTWL12102go|h%aiw3NMZ&PPxaX*K&S32gq1lY@EF2#40!TQ zZbw($A1iQPTh}}45EII?yLDKe4N0qoi64UM$>#T6grJ{P@@WeQ03-bIk-aR7M3zWn zv@Q(Yzg7&SU75Kddl%vQKS>pFVw(IAqI0Y6IQt`lZm^PT!}TSGoWpbLHUT}2gt9&J z$&fj+m0IyTf`#4-{$mRueJ&lJ{&mBp*;si+8rk1ntH{d}HBUJbB=>u^$#z(Md>t#` z(vpEyR1KN;1B}zobWdEnrNUf2C+ZfwdhTvdDh+nxx+Jt_VN-=_# zY1r-fJqCsE{l3p%zo^^pdsXnO1_%4OF)|rQ=D%JU+_1Vzw@Il!do1E-gU@0-@P7t*7r46Mf6Csg z(00LUiiX3(+Vyt;=U2=;|Eiym1|qbf{k}n@d;BB&Xa0&RD$tW$)|*TvkVMzF9xl$c z;-=DQfi`#){R~SLkjk|&lmL>>_0KeweDQzygA-_j6Y}E)$l2MFiHV62H`hBf6qA=H z^_PL^XWSbH#5dJ~l%q9&Yfb)MhoDLhuXji9K2g%`fA%Wi9g;2ZV^Cj`|BFH|Tk~2C zF?&gyS##Uki!TcCk8EG3NoC$&^_B&d)^zD-X{@tIN&S7)m$;A#cUw$seB@vTISH>X zhEg#bT=UmjoJCqV=I+;zr>mN$&e^X7>GsH&ZGgoYC{CJfuvzWa+0OKiml;=2YyII7E&8G1K%{tD&L{x z)>H#D>Xx{}QOM;1acW)1Jo$^@aY;&U+~5bw{Lg^3qe^QkACJzx=+=M0UOwue0?E}=HfjLom`0>=`)lK+(6^OfA#{j6{L#1Za5K>KhJ^$ zz!@6opW$VLwm)Kh`1$!!^@qYU_5AoM#HW)|sO$bE?og)7Y?K!f@ literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7042ef43..08d5604b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,40 @@ +import { HomePage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PostProvider } from "./context"; import { Grid } from "@mui/material"; -import { PostProvider } from "./context" -import Header from "./components/Header"; -import HomePage from "./components/HomePage"; -import PostPage from "./components/PostPage"; - function App() { + const page: string = "HomePage"; return ( - // Activity 7 - Render SnackbarProvider + // ACT 7 - Rneder SnackbarProvider component + <> -

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%0D>h zF+70M!J!mDR0MQIVi(NJ#Sl!#g^Ed!g++XK*|48%{nW2Ig4fS&c&_4br$Z{~hkrBU$c(OAolDN0skA+e4b>-Ks;jw1 ze|G=;$>w-d1boeMQy*!%?6Bi)M=n0N1#HbF;6&BpgNi%istKID-T>b}YxjM7>YlZrZ$x64-E{x1Iqz zmps?Qn?oMdiLM#l+v`0KR-2W#FrMEl=C3bl#HoQPDf4*OtlX)lD45$};)((+E{%O# zEmg{-+f$AY=syhn%K2ePnkEf3P=-HPNVzn300HzRJIxaR%>gDFIiFe|IUStR=}QN9 z{*q^r;5}c7V)(eWw&u%b*q?o85*WdSg@?zJz=XNu3gcn0WR%3@gWp_a<%q&#v+W%W|@A=>OwfQ(vb4tTo;=a$WfX$0s_!c1k#ct++ zJHh*0rTp!HnD8p;pZx>AhtRfaDbbD=PoQC}Izr3xS{{{cU|C!PD&(it-!ea4% zpg61RN3>=-qG54PmF?8B_2miUzH1I;iK) zfCHi5`O*4Tj<6gVu+yWWrWW#0s07SMX>jlmpdkax%8m9HiG9^pi+7nc>a(-{wuZru zCixq$I_dbfyv<#fY$MO8h{#jffK+#Ky=v7^R;b8gwlSD$G+sy=!=xSvwgpJEe|Nem z9vT}_2*Z7cn=5Dgqw{V&cN(mr5czNK@J5+Nvt@)T#DS^Y1<~Ih0-XLWfeV^`gQmy+ zz^*}VVAa5?JBOtA+KjUilRMa#tT688gCZzxvB1t=ZTBnifq%nMllsKtFL&qH><=!^ zBsbR>0Zny{mJVoiP`ucjg+WQY42!8kw34LA^K`adj%Usq=KJTd0h}Tu_ zwPuLM&6x4IoILl|5|-P2D=pz`6Qc!j`CCDUEo00=kXeG<8k)itWU1JZs$a(Aq_yh*hsZ6cOT_nFe13sI%~f!YUgs=cuAI0PR7hXij6rlij%r1TB2== zgM4Zl2mnIugHx0eT}Ot^gxuwmn%-_h8f-jHbaby<6r3(6k^F|XHNFZs$QzP?ZM5x@oYnNj+XVny=s#k zl;aA`#o&R@TOZb?;pQd;HGV7bmXagFo+TKkBB0y3=SNAMcG$}koOf^M4;lPjZthL& z%XMb8mhQoO^|!w)wlCR8tE!0)zN_)>WuHph_C50)yc&v0gc z+LUn^azzE_e9m~&fi_KMJ+5a3aaiuh*o-gSrZtmE$<`VW<|kNd!T1_Z2&Z!{%AsJ7W($0C@y4is$ z6>e`OL5EA`ex~ilh%Ha|0xkad4lNZ!QAWs;tMA{>kQ{JW;--N7NO+n5scfBTDee4) z2@(2Ru9#>;G8RI*l3WEBzV};N;EY$Rb|Uofpt?gGI~VkHz(II3hh&>OE_0np6^;}E z&Oh8!5hiY|47bYzN85xG81^U0Y&|S>Ikj*FCEe!1(vKi( zz}A0hJPb@0)4Kgysc~eS+c^UNCM0*?_15O7EkAudGC*By!cMF_R|pQkcQgo|N5p@6+-&MgE(BRH?$|x`z(UKcw*xUD(HLVdWs>%MWw>!VHevuf0{ZcFQ$3Mk^>W zNV~pcnqua0|DYi_X%jMMd0AaUWKdEo&YpDjOw>F*UktMd3}&*O8}h*_M|5;_q@knB zU61UTo>uL{Ggw_;_v5kO+!z4n3LP51d+*;LxgFcW7ioHl6ykus>8MebK+A?1(q@78 zR{Mj-^QmJyk zhK}SZV#2xhfP9|kr8B^L6b$VH3or8!P{UOq9y=A|EbdoM67esPK;2pX?q8}As#;|@ z6tLX8@?#K;2EbOEM-c}B8{6V^K8C~2t53K&>&GKYm%ugJncG3*F=ETA({?|Y3_=9TG7(A1&dbP4{8>wTrLJd z7KyuB*O#ZFpm-UvMg1t20JD~pdjz(etYlnx)$_+0nW5khR~)YwUK4@?h8KZ34|p;z zfFf6}_36#c+&zaL1HW1^ZqB8ufulnZi%iyFxLCed~i~C{xGjp+W+Co;K4DJVd z461Bx;D!j-8bKw6@r0ar3F$nG;l7986}2Hv8L@FIxWLUd`ND-!-ag0EB({HfNgtB> zB74(|Xq0Ku_1o0bw3h!kxkW$r){a&K1>tDOW=|}$E;xux=2)q6ow`lItx=1jmtuN> zWuV_jPDmK=+b528u=wHb=FDpkoh>vSPIJMTbAt`C?XZiEs^!=XIdS(UG_$EkS*uv` ziyvB%s+A(V^qGvtAOttNViRPg52rNn7y&%JAVHQ!?Ejye%ZL%B)b%YRV*$t`{6j+C zsHh}>dJ*rvGb!CcVcqTrAu{*d>r?2vMVcbCD5uj|$GoN&u}T3WCoKgbr6q>y_fE+8 zf?I2PWRkjTf}h2fmYb(Ecj3}Un2#Ne^M_H34qFMBf5-iT3={P3<&RL)rg|M45uNPI z_LScG#bsKuf)6OJKe9RdTToy`z5V+G_$DuZD-JXnX2VBvYxkaog7sR_d8Pf$mJq)` zMUk_shzZ|X8Rpm+oD?kEX=is^A9(yAuaNJK{*xa>>}rSZ1i3IM6c5suoAA)2+Ng$B z>dQs8rmR$zexL4uK<(;v1+AvL_yD`}Z7x%xRoyoxwepdkbvA2;pB9Z3Glydz)2k{< z8)Jj?M`oz-)HuGNO=i!H3qbza4Wp^yf)6=_&mGCyIQO?E%jjdCE2m{~4FEIhzC=!D z2MWg6O+sXv+jz7NHi|Kkp077XG3lpQr90Ovn<3NCO0T+9BDGoKbg?L+PM)MdTNMs` zDUW-AhNdv50)5C|eggAZ96`N`)+H1#ap<8qJ}nG=##om+UGQFdPv=Ew#w08&clyEg z#W{j#*i!lNJ6V&j$_uaU3T+=8Je_naDMv1(*V(@T{%b4|t^H@w=DTfD30Q#kGg3C-7n455Y_`X4UcuzxWX zV2_OAha{dEIlC?@?>v&cibkwZJb|tmK^?GlO z(XPb%#V2FCcHcxvNNRAz=st6mEtkW}XQ)cun>$k@@0w5M$Bg!xFj7scmflu8-nW!d zEvU*4F+eXXHt%Dea(T0qk(`jHf_R4Fw7BH?KIX7c)q4;UpS?H#0Nu>RWc2V2@lS1Y z4?+24_C=Gd!PL~{qC2o@;HC#lpGe!et%ap3m093Rj$4KmGQvvbj|3Ar?5&`&`9J3r zUG_SgB#dnHP@3fa6wxv@ZI=pQaZ`akbc{S&B4GVt&*&ZX-CFTJ)tEXvldnb3_&CWm ztG~5VFicJ%uD*DobGo?y4cSOeQwrx-$wXpeM+6$cB#`ZiU7Cq7@`kceXG*20p8h<% zlDK-DKUs{DGghdeI2;jyFv2l9jNA5x1cDWWCZ1J(#q_1Ea8TOpeKk>dof8k@dhUo| za-W=-=u9I`k|H4KG;|05@YGe=VK+{?6@Oikxo-@`_H&%B-#e!f-jRB<g%F0_;wPTmgCOzRhI zF3VGmnvUGrtP;4LM$vk`J51PDzQSW~1~pq<`I?O|-B0o=Fu3;pkX%DPay`-boAyN~ zz3hrK29pufKn{ee)Yy8d{Vy96(wfm*yrnytC_Py!<}deQqOoLda?X3(JEo{glil23 zEO*O~kAHqN4Y_hQ9ee$rU??NcoD}W#EeEXPUG~GM6>g7vE*NWHjZa@$uYc62F8IPs zG_p31`lk(KXmUCQ)z&*6%_oq(rAvtfl053am$B7HD&x1#+aMTFBc`%W-nVyQ<$|+o&XS z4Ty`{O*)FDjl;_AU>Bc3+2Q>NtOX|su|w@ubs{Vm+D&|2$xoP&y>B`rp3{)_s-j$; z?zR_ZJ1Je>P3A5~YVx&cKADK(%G%M)nsZExE!x2f`+NHYnq3rl?=Gh!BO|jhk|SHP zc1r~J)6UqLsgad>N^Vm+(EM%6IfIU#@~I=Y=SWles)V(-*}C;hR=f%TB`HQ_W+z7a zQ`a=qo3!>dAb&XZrGBydB=V-a_}+op`niorgR1mxi}v;mk#}oX&Rc#*GJIymzT4*A zC1lPzE_n#IhO+WGqM-_@o+j(vb+fJ4svkZ87gwl7SamLwy!E*bvLtDUP;cmarK;0M zo0Ucg(?c|WdI z>l-%$0~!*MS{GA03k`gEd97RqwL}MjrUi=689#rn;&w!snE7H%1<6K*P4{NmW8*X5 zh4B)l`QGrc6IJ?YHUg^yt;UZ*>@$lpqPI_q6!05&5?9GD_5+`}B3?-=>i?X}v&OeG zvcnb)OP0$!s{ZVArYk@6{40cr0Jbxh9mWCiV*RR%*b|G)>47%5*)~urU>?OjIGBzR z9v{zN{hy}-LoQFV>4q4j7Em!{fmVBj<)eO=(aV@F4yhzAPXH9dRj-@Y0=AxFVZ{L8 z(u9COfR}K*k}USEIrGfa{kJ!4godz;`rOtAWi|q->j1rg!M8UT>((o8iI}os+?|~q zEm&|1za|$}w4Q9gcqf+|0$G*A$0nGYniSQ6om(}v^1Oq&(=7C1KRLJ8 zOL5O=-aQW{Qe_d#vntDnO{x_;_i&9ys1+yP_60+mG8_5Oea^) zjiZop`I1I>Q2qSyURXaje~RJn=d;#X9#qIts;Xd(hyH_LZ~!T~s=@SUZ5&z(x`xJl z+kmbltw^RlYFi(%+T;6C-0d{;z(TsjVwT74A?G`JxdI2m*c~q}d3BTTNciFq6lIz2 z6}Q~luf7kh4qD!*F>T|{f*F#0Zp*jY`q#diBXDJXo<`#dOqjE()GY7sZfs+%4d~ru zkfi6lwH0u#BDG?7cy(SB#U0;`x)UFLjPr~ift8A3;Ggh;wBI2b*>|&_G#4*vy$<$I zYW~N&H#&yz64V((Fj@o_R39RoY9t*f56C!`VI~irrHpJCB?7wDI^uBq{EVegVq3yX9wA>j%?X()L zIC2Pj9crLL2JkzthSMSvM05ylviuVC6>vNmG!Xl1iI$tD{{DB$Cegf8k9Y8}hbpMd zKbQaMOoYG5z{6Pr|E81tgDe%P)p&iD<&L|Yv~VT2A%Js9uD=yB46f>A2a3lQYI&&f z%$?6OnFUFDS{~Ipxw+EY?M>Vn&6Stg;xrd;$%t1iG1Dkkv1DeVM05;8A4*xJg|xQ) z9;ZIg)YQB>ZMuD7zKI;nwl=Ln zQn+oANnbh0oo8ez0mE`2hu)kS2SQm)aEAeoirmuDBA388Sr`_E$)wqsw0@mos02DV z`Tc&Qm$~Liyw32J-2{Ri9h#SySIg8B3HnlyQsD`jyIhAb|7_j}4ejBc>#OslYNvxV zQ0M>kl5<7#HO_A?UZ(F~njW<_n#{)_BZNM?dDqj-R%F?dH()0`zpF9P_zEe{UHo;5 zg$BW39xDbJPe=!SK}V02eH)@42tyI5fVbIct%QVdox_eC=9X7ftlbD!1&%b>b|X`nWxTBkKAMUbH09S2D3sUv>>V8wzw{0 zxhed;`OwO$TJ2w(TxfOaNFOBimxp4<7Pq;3q#3+)+&N;OV~)uimm7$aFfLW`PHgL|!Sn!|v(`|lJF zxYIsZ5V}+4#w_s?PU~MB<)n%n=iL;M`T+ouJNC)PX8|^@sW@GdDTc|0YS*QvhqG}3 zAbzVJ#;TP}2t0b^Z9B-jfdc?=yZ;+7?9ZFi0o^7@a9MF%X+MYi)*k|}436#d?}Gtt z?hY7SARr((f#!A}{O5V6^l6bb3e7B(kTziE(NBpRkUbMl5qGuW3;8n=%YF_AJ~4f} zj;b_vGktllw0E?5`RegFZX$eQ4Xz5C?#6LdLfS*k3ZT&I_;AnIcKg@niuf6s`gzHk znnl5~LQhoiI0+O$j)mE5tvn>QkRZcE_Y=R*d;9FOBK#oZ~d zL26JA$X-a+0)R|AaN;NiRs$8CEWS7tQK=XYZ2`-SmveNrLGK9_s)lkEZP2~({5{}3 zGEV^vRxtUmSO8i-ddUYSQMrooqhP2Po{*5s@4ZP%xAzCWfUi=!bQS^w-M!|Q^#_X> z^&FR&yjLxjo7T{FXT9~fq51&S3bi5(%CYuw^jK!Z15vhvQ+l3-W*3#EJo4MNLHhB9 zS){rJum^fJ5N*{2?d>nN<|@WKAAXqcurp=C#H9M-Hum^#8B=O%>KXVru*k>?*R7J# zglHf`W>r-VJ1P|oAYmb!y9tzUesDV$_;_p8`PVmKy1_pE@!wYUGR`epaUnyW}%>ZL?s4MTO|r8*hDyL`sCVE*SoA$X}iroonoQ zB^W(>f;1R*wNx&*i*hi@21{50fk7FL{pPFHyr?>jE6d;<2a^zMFmRkP@1i;i?NZYL zTgeB6A~+tz-3_d1{9o->3nBGhU0=fiaW?=({O7g$&|6zFj*k;3v5G!V`w?IZyz=r+ zSb!67);;R1PLc?NVo1Lq;2N^(SUqGvRRS9)!^g^vI>d{|??5;aM$^s3GvFlhJFTG{ zJ}X^BhtEpSE-uo*scXVi9L9I?w(qAr3C?SA2?_X75(3Z6DaWQ3$>wg=GoGujdGN8T zQq%R|4ITk-GD(DL5?UOb9V~CM|L0AD4glR-JHbCYYJ<&&wq0WGYu1WA6^tbLrh~4$ zPM1*Ry_(;&uY1^K$~E3}n(PSl7lgy9m$}+-hDai=5vhv5lnAq7pLhwUu)ha(;W9n4 zweDUiD)lrO+&F6R#DU2uqz#NdGLY`wTL7_43eBv_Rp7AFIYo=2#F__0kI_pBFEDr| zYXg=b0o&VVt|0hg(`~f~E&XglH!SD8t?}wme561XKj<-IOEQFZ`Y*Tnzv`Vd(}KUJ zxAM|}Kq3@E#6F^?jWfZ3{%dCx3~li4*gje*Egb0X7W`|xIi3K{yUhTx|J;Eet-p)1 z@BfrmpycU-ccyX(YG9W~v;TAUff6z~`iGkgyysxJbMh|_4u*ITX9V6*E%F3nn13OC zCAY90q@)i{tjV3Q$lSC2pDL<<3a(KV zV7~h#1pY0F*oeH-NR-)MvQGXKyY0COfWON5I~_u@22MpiKe}MceH$#2e$-KTU?q`o z_+*#R>KT(|pm2*mM17sz3@4M<0Ta2rz;|bQ$yz{)ImRNL)!K-@+<5#xA#r*{K0SWs z{7<%nm3@S2*f3O>YzTMf9PX15re#&78jeNgZ3l_>FD%lj;3mo{w0z|m_P#Bg$$T(X z8@VN|LZMB|%g|d@x{5B`ZTGI+&(RGFUbaGhp7K-Ao@9P3N6ChAX+G*qt;6i*jkV;D z`)=czcu%`-aAcYTr`Mh!Ti%15JrUt&LG$)P(E|L~jp=lBUfa+Gtzl(x;t&0V63IqN zO-v>VUG0+(#|zuW)73%TRa&BIK;wYC^l#f2ISrDq@7ne$t;7Y;$FFO>3x4`23QKD;lPiI*dyX3v)n*_}EiS-WMtLkQzt#9HO9WmKX zZKBtn{&J8I|IP)!h^XZD1qTflqF$Eu6^eB)LS#keduWLtQCnS)gI5zzzm^abRk-M) ztX4wdt6r`j?!hW7XF)?r#q=I>XhHhf(Ws=|(`YgCn!SS>8Z;T1$y)2&oEP!jqLWQ0 z{&*zZj+0T|W7{~Ak&gPs%X_I24sI>^=e9?9-!}}L`7xuSgi;6>Gc6UPKlyjFizhCj zj-oxXYakC3-T+Dz-a<$Wuf5vyUsf{Xb*mo++M5|E?@!uDyXfWlmWM`v;7axXZVrcLuIcUus+H!?(~C!*UGY#hg-i)IW6jHT$5w$tYG3kba z`@^WrW?okH!8Jx^$+q~SePoXca@`gD#&AA^ZX?Xe!4)M{9j3 zg()Ci2Ce=!e;;jU7X7AT2|M}cc;v37U_DX);GF@Du*FaGzG+g9laieGkYS=#bn95S zZfM+7E}VNjcNn+s8V-yJrC?JJDjp&sr+TbIxhl>1CB+D5;j&>$6E&`YCvI`VLO+|G z99nb|G zQZ)`0TMd4D`r82##pS4{jUTi8kd>z%Rk^V0`!kz#wwpM84T)*$a-LMc5@|ZY@~Sx5 zZh;ms{!}2o_S3y$Q%NvS94ve+Dcqjx&{klM#lxBF`H(*C5EEr>id^@W@9uRSbWuX- zQD}}ZVl9M&Fbv~?a8!_L$@N>vJ;=q~WRfvaOMFD^kt*VZwKj^2xX&~09!Iep#Qgeb-IlcnluiSh?iNv~%vKl0DyW>VTL zW=-hX#wW^R-tB{a%`tti##bg*XHc*cQSrWHrRV33(T-0=-(miGn9Clf$X9m==Tizu zbHhWC5D$z~*!VOh%q=8iL6VYvZ`NK8IY`+8o}bWZSOyzm@Fgf9kg)B~^9lF=yZY8}?omvmrS7@)@O4 zh*rh#?MrHFDW8)f1W!zUe zOE7?*gDkjX_t3j5$;W^7A*;ut$#%~@i2`3Oz4`hkmJ^e8KektbSfz9%B`Rdq_RZNH zcPoauwC=ZUlnCsYlc!jg}dS&k!{tNt3UCH!ALwL$2Q$qxSvjm~4wq zqC{B7J{d;gO!a*qbEyx`;ZZ(sjZK$E66(u2v`74z_Fo!MI`rZ6j!*gQ>#+p`tJs-% z?V%T~B~my1`ul=C7%?GT@^5~gkS47axnTdC5D?{VRbUw$s#*(@8* z^}C@Br&+egt9rfTCON);RV8QV6qAH~g1>71o| zQMSV4Tmf2^BSQrozfgp0rBqW9WA* zUShE$4zX@%(Bh5tx0>7?*M7@u=%ctd6(nSALz=dqaKl1S!NMrz7mIR^x= zq8pX23pl(1vI95mIe%y62(P|-+@dQxl0K7)W9#=;Lb#VhjD>osj4%$i=yJCIux2vS z$E~UTbwl@xgMB|)1a6QfpIY!}(a$zoAiUNNMK0;~6vROaMjto>hC2K(NE!BuvfcOfJZ;@yU(* zV~Me_-UZ`~JrpXIECdy7Edop859{ zA>4N#8uqu$obt6T^<9S3m)ug>lpc}pG3U4@-g~J{!W0@(xX#0F-V4mJM_u=yUx+mF|De`6rxNZA z3nwanBTWs%2}*Lif9}LC=n?gG5;@ya+JbEV=MBx9PdbW$CNL{j{n!}#sZzeMwCVgM zR}|Z11c5KEwXquJehLW@ zlg-k(IF2WnZO$m_dPZxUa`QII0julcy#cdkbfjOE-|FdTyXxL(H>bR&Z>!W=J_~_% zJ(NG#zdJR_tOs3LyD@|R39Zm|=7!BWmqc7z1pz0f`SgOULo)*bCL%&yX#vbIhx$t-LB26XDYKQI%Mgicw7} zhUC&4qHx=>gYZ|*!^Cw0>isZ8R@T$HF5!F7w`mVe#-f{QLFO!pLEzZ;&ooYoc8RN3 zjx6iWt+H-NY%P`>qa3E2Ztg093VZA!`WmO;UfUf-P$&VoPVT!Y;7Bs`@!U&0CWz{Y z6n%>&aX9OKxwCl?(x#=vYQMAKsZto)#P<#g`o4#1n#%TjbL!}Z@U98Yb(3R=$M%S3LP#iks7bCEYK(j>miMQso9|bT`Xo`K zV3#+fen~dqlCG3Vb7SD*W&Z@>)cKh#~jrI#H-Q4#n zLi@pI2$)uCZw2fuR5KZ0_+*SFziCe%V#AV&Si+&C#%Re*!(7S01LR#;eDH(iPj^4~~?%$Z)-d3CV!xAX%eEuAk}H?zgz3A)NdhMiSN^ z7AU><=ShpMO}#+&!OQ61J6h`QGndvnPm?~Zi#gZlG1^0ww93Ag&m*zfzge}+5|cUa zKBA{mPZ-~vO5CZc)K8tTVnLtG!l2~oe=$Oh&8>^#K=Qe!at7OKUaKeElSgPPqPoft z)75no!Qo4Na7BKZb4~Mf*`w5?T|Cid%4i%Hgu9j!{v54H!3RK2g0k|uN zP$cR%8)$)mzQ47Wz6nb#zjZnV!l41a%`iv)Pz7UC4zeF_j`Us27$hOF$HQj;)h?jQ z1%e>DIp`K6Oldfu#t8;6Tukv;Ci!1DA=iLJ#H!!@i1(b(ad`|2u_ z9T*)8*y&hi=Q||W+&_XhQaC91L@(V3pWK&{`Vxpb5Yl=UAj=A4?Kut1&mO%$v`!if zF+t^UIf0Tz(adM852>OXD+yYs`iCR86+CQ*fWo6TL;BXjw&BQ;rd4+@YjbTps+bh6kqfR9c7E146C zXyyYheqU_ysa68?nwVTfr~4JQQr*Fm7OF_Osra%O=GtF`>!Y?}%sKy!%_$2z2Do9O6Bl^OwxRnQ+SSOQ*(1O0Q6o0NlE6|L&HkhN2t|e6kwWd`x}0I^hhps?G-f@ zLlsb5hgQuoi3x2hOluAbYyC)2(o^SX-s_hkxb4(>`94U%4Ap%zvD|>2N^xvMIO3%Z{HD#b>YT^ z^DRAah*X1bmqnEEhc9kSg~Bgle4RzhgU%OF%CCz2$6KS1ljX~>Zl`sg&zhTO1#~`* zUsO8V74-RG*lad972M9Zf5_6J6=Q0GFsDkENc{ZW1q{VUl}WnV^n8YSw`KS}?X5?- z9rr`kYOK^L7h+-*ino^*I3xYC&t!Q8o0I}KbkzEln?7alNm;>s!ov7f@E?giEB?JV zJu}>FbJZez>`ET;xo3BOE3-oR8gbFQSK!0Q1J@GY`R@QQ+E|nSGjyYErRjHP#5xFw zCt!2-hTe?z%t{xi;9V7;u#l0@Js`e)+ak{9KCX!%K{8FID_YrpsJV1tD2S{%ZA zt{$Ec69OpC`><{DPYcRVbgN(A8vWP*oxDP>`cbb4VvJ-%s zi%rKtax#cFb_KS@TsABBe`ozx*VW~HRS*>P>ZTSbgj1q{1gxu1cEkZ#83)WYxGYC2 zY6uAXtXAFP(n)-8#pDl$i_w5-wOlKUWFiMT&}`@86Jke06crWqKsxF`HdT&l)h;`) zgGe>IjbBgvqYS<1UEloX71V(#{D_z&jG7-GSbm4E>d{g*><23n&MvGf;7s2qk{438q?jbb{9h4ppS$av3^XqR7CZ1p*1W0`(r7+-tVKjORJG z11t=_nc6;|*ELytWZgg{!9rLXE*~>bS#A!6#(f-i_Zyyi$(a$mc^Psv-)zREOfSO8 zTuodSRAml-uybZ6ZiO^7w+Ri>|I&mB_FV!Y^LzOCu2nSXrXd&2?d*S&gcU72*T3t@ zxHi1r7)q}}cupBMki?CMiP=Md8oAyUfLr6q5|NM)xNX*Bh0zkfgM}^Q9OHewlJNnh z#fSSDl9=S|6ISYH6>$OuNp|MbXg=8T?kb6LBcBSVyiM`$@zf`VY{7zNR0OJlJUvAgsR#GSP6LP1s zPxB+XgkvnPI`Y>rqRyN1r_O2@5A`W-jOcD|gi&~%q{Lle%P9mGD@65mTKH;c@~p** zx)8_7JdK9hn`|xpXup4r)U(rcSbBYdKeX}*iG-|iVkNEasi&;bsw^gX-$uwKO4aun zja;EEg@!VmjDuT{kgz+z}h}*H`nCqX)f39N>X7WMpOY%=oUI6u0l9Xef zz0T`_cB9!+GKbykhaTItJh5@qzz5+&b7pU^L^Ns=&#*Ju!?WKzfFE z9O+!IX9Q>9;ar~XiB_154uT+gfSI9Jn2xu9L_pl{qz=peuJGXlj{DVtXjbJiurh#K zqW}CU8@&T;#N`kw8RT=d04o5{2q=g+E%LpLmH?RC+1>p?h!IC-GJ->(kU7^082*Qm zVyknS+4^rlbrOZZZICOOm6%`8Jv%>FA0m&!1;l~xH`R7YkXR2h>;I7_y||U=(O3f1 zD8K#h55P)2*hmk{b#C&x*Z-JVBN*7{=dA0r`C}6Rsow*I)s+=3Fm_-t!UJ((th(*l zyl>1!y$o&FdS!~D?j+^|KJ5GuaBzTAlHh8*Zu&4kG(s;>{4Da{o@2s!{?U@c`mLj* zu*~@0($boEIx5;U;xKazY;`Gc9pJ@KnfU7xsA=%x?&SimwA>2E^XC#$4Y}Z* z18*U~z4$^;Ko>X_YBW)tO2l9dYI7`4n ztDk@#7Y{so!?JR!+a1# z3j`Cfzk@hfTMvzMtpm}?M3V!$9rP5t??rA1WwCB z{yLzcRX3reVvqt(`>Mm#`5@K735=?PNbi-=3zT>O9ri@2eo!l!PCb}?jN?v|{Iy`g zJWJ+{wQN6}JReH>iVB>l1CfBk0mh%&fZGq11oO3EJtN^?*a{#oJKVgpQZMnJTP%0; zH<4~R(f3{}1_{^4;^Jc7=3?O2m8+o*Xd@{XpQeGhO$JPJU3-50%z`n_&P-KVh5;v+ z+*;~1Q}Me@!*nu}`=_TJK$RK@cG_Q0zb)_Xh5}Ya-g)abVTj1zcaEzFG`6%iOw+&s z29PLG=%tc@#3*HW1ap>mVvVcllI4*cpXAbSAkuwQbWRw=3B5su9H z!LT^9_CPXZv&d>qg{dEQ12P%3!NbdCw-Ih4tD~b+3^H(aV1wqfwd^;0w>MI5drjbX zz~sJ4rSQRbvJ1chRlO-xE)xkM(*_!EuHF=W^1XVHEgLyMRbe_xrI(^N57#sK4eU%d zjuD0)iW7bdUE%7)yw0bY2lTtqFvOiM*5b9QqLj35vw<5DE8lBFzY#Y*JsS839(GHa z2Z$GHeWS*SiZM$g@uPsxlD^prW$L<0(R4rmcG2`T+PpytH4dSZqL)W%Hy#Wyxa{4Yw9}d#&{`W$7*Jn=yb9Dj#Uc@qV{$yw-F)L31!dlJ zt)4TN6xi{-=H4)xepA71W6^!n!-sl#RFu7?xS7i}9+rL;Iz_T|`A$RBo_4i_%=>U= z4KRsrI~&H#@eO+nXvb&Ejei1)M*j@(Y}f_;#!zg0=H|d`s2Zn@$0oGW92oL&(*YAX+T2SZ#m-q~xTIe9yBZw6m|X^|K;E8d zJ&l^&}`R_eoD{KstPRLDe&qJErI*f4cF)2ED< zN^Xknmb|;vm47@wP`B3@bbGbVUo#yIXcJ8AS9|~bp zr7cC0>x7WLQmA+aWJzss(*ui2*!HAsMNgY=<_luqaY*Z}ixHy+!SEr~>4$7=PjbVX@%B!ZY6qL)S=L0}F(^yi?= zwHhWkOJzG=Z{C1zL4gx*uXd}DSKtme*`fFjU|&2rwSDt=3mwa_tFI8e%{>qTB)1-& zB>uwYE!glzYvc!OM$+Cql=#9U|Aqbova`CHTGE9(i+0OBh~i|V&GmjOrqNXS(`2V5 zRLH1JJ&=EE>*?#~kZW5^SE2*EC%Jjq?Jl*P;VAXH%z*SeDx32}e{_w@gp=fpcW9;h z&@>5P4#Kl`fDo_SHjx@~xI)kX8&h?jB0-hr5uZ{u1}wSrTfBa@sj4$f?>dL07OuH2sjp*h5pIK7lw(6QTx-NjgXhQyO zSXSX~u*c=}{D^h5F2lMC`0l8i5b9Oe%!skEF^1*Wo(rIe&pvwBZIv!IAUVAy{CN8I zvdj6|r6IbNSZ#ilM@Z6^&D`7l*Zq{-yTg(WyEBA9$fW2D=Z%7em*bL;$-Dn?D!Cz2 zjUQ)2xl|8TP*Cvr(fU+i;JZRvQBS#?BhYcRYO!oQjVX^L@e9mCO6DW2SfJ2BEAE@yIuT0)FKJQ{~0)BaEL`1*14QQL_ z!sj$!XvXiLB)M9f%~Z4I%H^b0(mR`ZI8&fUxNb~0^~W4PiGoE+9g0&7@Di> zQG8$7lw3yNy7rdre9QmpqOjQf?JHM6$jjv&yZt;-*66oVW?5yfY02n)l_he6$QX3x zBnX_9J7_gxz?#`wA9h?EL(;=Cg)SrP=h8%N?;xn(4@sw})Lt zuf7#T?(H6?$Qc){_^tv3CEvoUGlbzhEN|xCXU&ryW{o0t<08GLZ&#J#0_FyQ{xss~ zP!rJzFbD`c^Q0yrlal+6D#7%{Q~wHc#$5DRR~r&Nj|V(tOWo1WxS+?`xh~w9I6mRz zb6vNhE16N@TFEmspKpVd_!adc5>rp|*CSy^UGFyKpf5Ua^#S`e6z(ZhvmSYDXEc_t z+-TeN&OL|umj7}kN@^sGeAV7YSE`Y?vyalS>;EF{J%FO>wyjYWB!_N5Vw1CgM4`#4 z$pQk3B#9y*AQ=QCNNloXkR~SsISGp7B$7dBK*>RZaqdetDRFF&taKT~})_Le7?@%7#T^`gUN}ri%J-LGZOsA9?T;g*5v3 z#6s4D|Ib;H&s)D5*j?Ud!73xYvGm=1$VRbN1;(kGhG^wIvC&KK|&e(c87@3jQUQ zzL`Cim(AHrsps!p1M~)1Cu0kK_)K4rv8B{KxfMtj0vRz?|H|cE+U?gGbUO{Segi+r z$Hq&lYGsW0yz0{^Ouh)8&_}k#?$_>I|INg&Hyxd9eu7{jV}=T{338AG>0+}ZbKj@G zc)Xj7XIY}JaajJ|kXxPjvEFHtcGO+<@5N!FNbVqrB3TDSQI$xI?KI%H_p7CiZ@8b< z0P4J{%rEnJ)2rFHTw2<`boFzVP2qXs=ZHx!srYZ@_yeDOkGHJzB`5hOUW0{Ec%QhL z^zAoMZ@P4A|Ey-$0>29FqfE|oKbb|+X|XZS%2?l)eG&IRLnoWLP;*%t^nKf*oRO4~ zU$5D>MWNL6$^<&6%^*}3*6z27J~B-;aaHSdq@^>RF&ciFJoou$j!<5(+WR9-vEPr3 zByp9QhR~DGGaU1FZDNH6GUJ&ZWxgf91LL1b z`yLU2C>qzyDDL_UM%?c5YF9v21n>RZKO$r)-#tYPod4X)7kJMk5aiHqMoY<={o3^+ ziz>rPPuy*5Gb1vj%K@mhtyuA1B!|1^yeqG0BN%?`oQ0T#3iWzGpmzOi%)D>S=hYfD{C2fx##sc3;nDF2BKM9H;_073%4{S#4ws6HI|YeacO3=! z$C9JV@`4fcNdtmE-IDlyV@+fSLSu>6y#Blr{EUA+`d0HW75VzouV7IF=f;$ayF}$1 zqRlo7!bY>`FzXy@`UN8a71p}kfa@!lS#%T_FvbRC+zw@niC#&u9Oo;U1Jebq!MNR* zL-_rY8Z?=`J+_-VEcW>cF+E#xf4HWqkX+Gy+L`B#j&lL9G$PMw&uK?1$xJ^;YwK!J zNUV(G;cL!}{nqh$^!FeuvT!EHOZ9kNpp^GS;bN^)9VHETi&sr>YR_D`ZokLv33-#q zMLI|t%ZGDk1oze!yB`S(|7Xkd>VPcVIe*t{?<40CA%e{F^g?}l!@q`>6@>eg%jMod zH)9z64s;%@D*E*cIv?#hP_Ub2?;7`NWFvjEW}tcT)GqxVd8lVA@XLeI{85yB+v(`) z14pcN(<>V`F_KRd>@70hvL{XV$NXy7olv?ctYe-`EE4vC%q!~#8zIsOQX3%>c?YA0 z)lzZC0bLEg`*FYD*EuQwUeuFg%5^X)U#Sw8{9B{-9zdS|ba*DBf^9g|ii8W$~OU1WB+;^+N=BLCF z;HG0`L_$Ix0zSdGCDK%*cu{m$LPZB$Hme^GeRp(rQ;&Hv)?;jL>%`duDNNPeG3!FG zeF_yoMSVlKBxj&!Pm;}jvxH%P)+Df?uaJ;~R-gn;Y|mQg)~LH3pV`E-tx?6S!T-(u zH3PTC49@EL!$wJm#Iv*#tnvMe5i#Cdx5$>4r&vkmIC+no7=8Za?q=rvPH*No{X!!- zs2dU1D2pa_AU;%N_r2|Htg}VazT)EdQCgNbH$`)aeyM>y4_U5d5w7%zBC zd~!qcJllp)M+np_ibqpybcWxZhSCNZEro8e>kM)$xgeUfcNoA0JpHd<%lf^}hpHT-<=RIKTPV7;Lc8(EO|`B@oO4H!dcrPaIx3yL@059`hyHX4jEEPxst?WOw1(>? z|EZBu>TN%*VAPedd?wBxB225y!ct1JX;f#WY?Dy%^r>8SV?pph%F-p&~<7+BK5uHg6Ui&=zlXT)cw4`db`a)JCOr$2Huu#Sr)7kiuf z=!X0!JT%!XT}|2`h)5M-gvP@4KF(o2_QaNM)#p58BUqWM^O8+z~)W5}d`x{mEO-ckY?Diz|=Q0y*+<`qj;f(}DGFCw2 zTf1A7)!Q>BKeJDIoE% zw5F%R_`jbj&IF&EQ>Yi`IH(SI_pYo6CtMRsp3u)+N?u1djGZl?1vd4~W`w*;sdt$-<%WjF zB&;{mDclNj8iv;)85Y1ZIbb9jzI_@^UWc;E^pFZB^0|lE)wSyeWmH&NFTgVO4XIk) zxOcT`>cY4;wtoEfUE-U?11mJ;2}v`oF4+Dd@ywge``>jtM0bdsoknHqJ&~|R-(U7Q z(k(7KwY$>h{NCCTw97_TsSxps0I3c9-WI3oZ2{5bBqx)oMq(}V;#YNc*SoyVW>A$^ z*%hBmgfEaN4d^Sz_vH=Ycw~*u-mgr#B?oU^4PhT6-B`_URHjtv`y5yIZJ+DKl$6eW zq4(Xa+?TR~C9YQKv-vC9A~j2}6?hzdUU%Vd3I5g2;+u+!2%8BHJ0V^+e%)tvsI^VMiY{8=ZlJZr(ZIgx| zTJ(l>%O}y;;9%yq6%qOv*}U9CXyHz6_wYVDoFUCks4z6gwB=Nd0E^alj7Fr)c4##1 z);cF`6xxk;#XUz=Op*Quyl#?z*~To|we961N|m*RnkKY8wTopaw{Oa^u5hsfvDb1O zy{WzyY_~J|cFAWv2wE^E`$4h44XHjZxWh`ADWjY)9AOi};GrX-LR-ZBL~>RBx5B}b zIz_F;#0@N>vAJWrqzYsRI+tDd59spAnts0Y)FO$E-U7y3aQR&#g4#~aSWMjRh5UJ< zs_;?2V8v57#95h>TIol@h+#&^AH|FmF9!J-$0}A;m#KJsWX&lK=xXMJ4~htrE_p_MFGS;%pH*kNeZ+{J@KEbCUmH+uQH z0nFz_6+4^G{ngx4r`i6uj}unoDG+EM>|l{NNWQ1bz}pq%qF^^<5Z8lz`Qu|1g$A1s zTqv>a+a5y4!JfCE`0yt$YDs&4+Td^T44geO)A1ZgZ({d&e#?eL%LAodqrJyknZ6ie z-y!)9Rs?@r|3nGauc;Y-Cb@lJEiYwrAaS|MQo%Qfa}>5pKF@$F;mJIlAX?lb+*3WC zAd1U*FGzeM0q=2{wPG%D1Z$QAcI*45nxy_#&fx5@>xK#VJD1))6bG&sUxwmz<{s59 zX>z_a8pYz_pi{3RmG~Wk68O1`y@TRRH0;heY0rpq17HK=-0K%<0q zV7s!-i%mu6Bxqtp|q{AUM1cAK(@bs z_3VQ+PyI_I1JZ9Ti+P1vWS+b~GCJnwL}Qa^C7Bf60oJRmk#C5%Y(6}U4HHA>Ly%^9 z#jIvtG*)l+rV!K!WkdG$RrmfS<9f8ariH%))uGsG|9RwG*p05r_tzh^ZEaM44DrTW zEMr%uP_(_Hg?)sR+VxSrQN|(}1W=dk$}LXUkH2hFcpr^4?lj6>aPUzZ5((UacV(rf zk1^xZ5_7HL*X7P9+&MXU&@Q-v%9#(7(~n?T&JAv_gns|iAwbI^xhIDxV9(h{u=4Wz z$crwb(^ckHdKUv>=40A&cNtqWyY0h~4|y+JUM5y& z>SV$1j4FgfzG?>3bCSgj5Z<8>zB%WEaYU49bXB9?r7zqEU2fg?jbJ=4{4?miQX+nisAjsmXCHx0Csazs(| zt(xDjX4iV=`w-MtU-RNQ&@5BA_!7y{HGOTOcFqPtp1j)<+ZW)bFsgVzmyCm#s(G{r zVcoDG<>EQwk@Uhn?>01i`Ao*Tz08%*hzGIi`ghcXZ=diu&A#=1`{^S_=be%9Rj)BV zDakS8WEk1o030TM0oMQ*TUS|bDnBI{5>8A$W*ptt`5{6vYIqr5=&Zcx{QkdokIdXq zYkGtp%JWw6IkhH=J|eqV*DocfZ_=M`ZqvfgGfC+3#X7u(?S#Ig~mA-9Z^w`e5#ifqPh|xqF7k~MO z?Kk6IJ(|_o<+FBsH3Qj(JcV;~bM%J4(f{81^vB8$U9aw#?4#Jamu|Gxv4zp!y)|EW zY~tE6MbKJ56^}gdegDKIXpsqb#^bg5_xPEI>-Kc-HzG`ze6fRh9pdOUEZNiVSFk%| z^h7285=Oic$zh9cK1M5C_$P_UC+YcFG&jmlhRRq&sT~4;cY7I>H7$H$rVxTB+Qh8V zTD(~^_*iR2yLYwp&!#xA@-C~|nc3ak^%vnFu8c^YJKJ#(l#ATxJ^vvoZzi2hOGWF- zNV_0r+q0i~d%F8Pz9mZ-kNu6b!k@u9o{GnY*{2s%_txpASkQONI31nJxF_D(s2PPl z-^X6QU3qjjK24!sc->#SY^rzn{e#RoWil3S&HjcXD$Vky=HE(9r%5hpoG7{$oCH3##puM+e-(_Fasu@m-lh_ z?A$&|2g@Ch4eudUG}YKMf+1liTE=mOf^&WxQ^8(0;yKP8Ch}@0VKef*Z(+ZFI*^=q z3?$qYRC;1F|EhpZ#hK^7bFMQIA_8q4quLhzhoZVa^kf&F6htFsl4sJ5E*Uzgur)7U zA<^+Vn|Ooyxz$Af=5F@NNyUU>`h z@(<|B^oln#$<1vJ-b<>al)^&l9e7u-L3vtb)I2c$UERLMY6iA{&J&A~rSG-rADZpe zeW`S08N{84#1qSs&tg2g0V}3e+HSu%BYqcYbZifz_C&CKBqKYaCr*EkJ|tR%zF&e@ zf(KdqgqaB9Cs0=4DtGZcNT`B%kQbV$*D za_<;b<=GS^UafKFW${{jR2cw^8q*w`?V}I*y>fQL&g_qfaL*gRQ9<)13OCm=mY=eQ z#Wy@yS#{D?gj+qw;(uW&U%E-dIVDO(1R^?~KfNm(^I~r{kdEqC<6RJ_B-^d-m=eJN?B|Ip8i)VFSyKFF?y6&Pp7y z#-Ximl}$&zJMC1w$Hu=sswWf6^t|M0D9%e+Fq&YUWlAa9#jaqJn4OtPB_hNhdaX{A@hJ_T(G~MU zw-7c%IE!Cchdxtf=>4T(>kVy)bk5O<<^83%sp;92A!7Nh(t%_^8usoPr|pAXdWf`B z!*Yr(54=0iImW1Mg(-4~lZk+Z(2%IUNNP|CY?z!FP_RGD=sIucHx$BL${nTrCT@adT@O+65!QcDi7ve|E;8 z*j6dX%fiBUJ5x^L)#-qF(Dpk$JS^Id0#*wFEDx+0rS({BR%$!EQF-l59c3$>W>8|fxh@J)of zE>z@Qsnh>?@zCjQQ)nzBu^Me|Qk+DkNqffP9CdzHfv|RPVi$LennW~;^*kq7zL;`e z3laH77@w2gQGZ5dhI58zW%q~j&giK%o8Y!Az2}UgvIXnA?V3@o;em=F=HknDUJK(v zBqD3o6@E!K&y~)_YSUektRySM3x-;mm3aI=09|ou34ixnIh(cEqm4VPC zVRS|HfCSIfBNP#w8WQE~lbBWU3(o~ci0GRiEBXbmPP5^VB@=0FFkh`-Nusy8)0_{c z?lMoxZ{cF~VIoCzorIP|%2HB>8FlFokJ2S1AFf~c!E0y72F?TadfeodIR`u>g9$%J zShu(8Gsu7qLa>Z*f>fkP;>!og8a2j-$4=!YCuK>V4@B%QHM+bmQl&pb!5fc3M{~LOz$>R$FYO3-wp{7S z3uG0Nm^#TPl0)~|)q^f~WM?ahr$spqKQwcT4M;i=W#@iFqtpkP9QjcPQo-KCRB-Jr z9!DYn_S!|God+wU2kh%sZd_PRSh0hF;m@2-h>zY2woJw-W{XhV>4JyU~BpL#M39dWr^zocj6Ji6^h4a}~q8jP&?(tYMx;e-bBwSaZyR>uBB%9nbO|TNOkp6wfW|MD$!t)k$-FWp= zM&qYHILMg4yQ$EBKeT3Ewy$+BH3`7xLCEwPm-SD-Jr`*94=xJYSK{hqZ1q^lf(#|Z zQ1ZO^T6J`<_3Ht63QE3+Z}Jrcp2?oLt(=JB6nm$_H@GHG%*|P@_hnQUhc+##=MeVW zJ2?vv=Q@il7uo0Mi{}TT5ceME==A@PKN0E*3loS*C{c(u??h6-a;Y7OI9T1F@2G1P zCHU@YnyTNG!scv&3o~=@vv-jz_Wp={qvhPVQTFv7t)ztPl1pLy4NbRMDiIH$hymeow*GftR z2VUElcWsW;go&Hx18%v+IEnDHaES;U3vuUn!woAa>ihlTd&Uwlu(8dT?o5z!CL$?< zkwjC0?zg;)Uu8QZS(KU}wsLeQTLJXJiGR@`(<_>#xV6 z#^RLLRaFPc;vthZ_$mUHh{DxWuMpobw2ENPW*H%+K<+Ien^r*kwbx#kz6QCprloiNTzx zlEH2%h0;?f*FmOXhF{lU4=-y%ze>@WNGk7*rk0N%aldeTkL%pAP}3d|ze&tO?~m*X z^rDb|F9YQQHBo&;{qF{b-kaN?F_P+Gx_lo5yUmhOe}kofbhU73k;YG#T5xmL*b`lyK?N#&6Aafv|U}O$G@2>8W zUJ+-yZFBU?5aK);)_P^aU$^MB8Jy&c*xS*1Wfc*(6Yqwk#Q{T%<9>M@OR>!sy8 z6w9C}MeWa82NuF^xsG}1_G|TT$%nYB^Y4am7U;{^C`6ZJ`pRc>KIB}tGhtVKap8-2 zphBd*?U#rA`w{z)Yw$*^ppz;ws;jso<(ElsIh`&T^od(=un!}HesxCAn+hFnx(xvzHbp282D3%gAqxIRQ<_jlJ8Bi~bCCS91&30eu6~}rnN&Pe8eP z=O5yVYh0Dt>fJdgk)^wrO|)aO(M<(cA09OsiFC;zrU>_~+;ZOio`0%A?+H^l-5$l8 zJ@q5CpDe(xix{wqr2L3IJ)Bz-7o&jEcHDRMEQei$)tJG1)~yH|UPc#{KC?0wUXz%I z+r2zDUhs4kX{S;gITu7Fy4KJAe!)KSCBsZ?lqAT4iV;`HL3( z-BrNxTCvj>EoL4xSIm}m)M}p-XZ9(alD_-G?c>kdpSJv>#j5niOD1%CGh;rp5k0x( z$oy=sQeNWHRq~|IO?A1sklTm@f*^WJC2^xF(oPSyyB~8W;+wcxJp6i}9$Z>D--15= ziPQBcf85Qm2BzfT0nO++k4cl170rhcH;|(A6fbc!mG)98D&HtMJP{uegs@E;eVb;` zA+o=5c&FWnfWltc7ywy(Ivz!NR*z)!`whYs_*fjVIxD(DNk~{{tL&`E@hngADvboH z5{5%#_`)KPW2r?|;_jv{LRPHJ8NgMLK;%!J`s$QoiP~3qoiAV8`7%Es`iYG zd+kme=*2Yo{!8ghDpVl;==&`iny|JwYGwB)ifP&Jt5O1MLYJ61%>+oMT|W>i6?j-Z zGgwsUodleUelCcxt?I`;-e;r;)(k1YFn)cV>IyuSq9P4n#6nv1LxHAV4({}zF? z&jB8g-rg(a!^!&zB!4jflXk|iCuV;42~>(vuId=$?fmy19w-ZIU#pUo;PT@^Tb7p|}!a~95kb)GW*x^szYhCusbsc0l%nR(B? zFj=2KuULy1mL~?qQ==u3 zz1Z1l!6FU8Tx_9P-#p4~AR-8Do%)ortbQSKWC{{SL_>yIOgrGahXDD*v#m;lfIqq6 zVR!Tmm|tFlK?L1gHHfp{K=cY@0DVX!Q{_wqj$rTIx9Xba)eGe`IH=dg2)7HFIG5zR#GT_ z`Ls<)QJ<7&bFW|EXezvYNyjOSCfgq>6Hx40Yyni@al^)-jU;jb5=3=Uw*>x+{%2c1Fz>*Bg@n4J) z3j_9C-Gj?R|91p@kZ2G%Lr02?w;+ERAQXMQ(L??7{#m1MTfucBtps0_t=%WcbN^lI zlck?ttM`P9`k;*~udk%~vgq3m;$)((pOClR$Snrq527CdLb62y)r@CR0VHVMT7B2&0oVMm_cLar_hX@*wP2xlZy$r(y90!FVaKxp zvXSPzu;9PQ0R;nASHjBJMG`tu-YXK97r@$&1S70@FwrB5XAdScMb0Xctw3f+L@`~u z?VzEjP1}DjaYUcll<=s(4n!zZinS^VZqmFd96ARG7}S<^BF*v(xP8%hPFkn>4CZpM zIMT7SLE5x{c5Wxe>2>~$0`(4^{|^~7)j7rg1h)9`a7%-m633gg&j(R=WPG;zPp(-s z?om>%P4Y#5J*^bj&CXwx_*3cGT+u4-+iCsV>@OwdQ_qMIvBU7wHXxD@PP?_kczvSs z3QSb6^pPFm7!Udj2}kDKZIj2Pr)WAXbqa01Smxio#tdU{ac9)ANtWYcy%psiT3{Ih z1}Dp;cmZv6Y##YJo5Th%5hVem8Xo*w0UgeMufR54v;i_JzC6e=<`-L{z{<{=8c4qk z-1_h58(;<~M0cxo_v#f$A;y{Z{PwLR z8u#2X`(I&o)S+-%x`Z5O%PSkg%}D zlL(M<TU2&Z5`qa{af_!L9h8PUw$bk^5LR2C$i|3?^y}xt z=+x~I2wL1Jd0-*wS0fyQk5xv!q@->LjYsHB;`~?g@<>sz(X3I6O*>SNWFZhA+b_b<^HKM{ysuG46gUPio`8Tr zq5^Y4*l8{X)_bm`+bDnKW=XKUJDu}i`OFLV&7YqpxC;k$-x!WIgK=oWG6yEUr$ejL z_MuJF<@8^8e@aI;A4b%>Z;ptUZC5^T9&!rzSOHT*S_nFb8K|B?2>Rsjms1Th;^?@n^p%@s9QEdXD zI~OqM5#ORqn?>IPXFDLi%d~RBPm(`ZhtPG^DMZFC48+QF)#l#;QBbg>P7oS1AD!e3HcG&^PoK_ z<`&IFw0i_B5h=;i`x2=1x%wh%^pR2v-{QM&-emAKHghhErWRxwkUjy%pP^W!QWXc9 zc)+jKi(1mtVXe8G$=XqIo1Wx_0~Z!Mwv`wtPNRcw1-d=E zapNf4b{|LBFooklaGsV2ATIKjaUXCtd?AnfT zjlT4m8yDy5_m+P33Fg1~D8KiJFP@kMFJ-O$Xu9~HT4qXu{;Irk?{Svw2et4}$uK1! zcVe?f*}|G4mxhH%9!u6MaQqW`&3N0`{e`J|pG?nQiAIXbo(;#ffn=A~=Xi_W^Os9E zyc`|DnMK{1Pf;p|MZ1d|kEDo_!(xS5a=31vC#=K-X5MvhXyM?l4-VBhLYz zyvB9``f=hc>8BqmceG&g#$j%~tzUs$qKK-RY@_8|VKs937Z1I^Er)0)CHVu$|}SB0jEEzmhZ&ZY5F;m zaCcVVqM@+bnr~Mp-Lhe`K$rj6k!V2{EB1u%uLNqoW;cx|<%l}ga^<-IZR>bJUoQ58W2OhxLIeAPbh!YKOKv0+t&VpBpGA_m*1+M$4>QXr|pB zpt@7d{Jl3x2!1H< z&vi2RE-Dh<-vbyPQ^4c)@Y4zF`IDL1(p_kIi3*`81>pPO>eqEp~Yd zly*n#mwvI|<+QIx;+|)1i!gdk;fj*O<3Iut`7=q z7M8#Cqio}elV$@BLd--Y(g#Cu3BFldT-{5-1pD%DN0G4v*d=WGzd_dNvShE%>jSz$ z+At~TZSEsq!0m>|h)!`yC?!I0;2~?sed%czBJ7VfPE31|9`N9`mKz_a?RYVSN@c!W z_?xj{H9V}|K-M6)w$t89mzrl5zW&{(4^3GZF=ffC*oRxcn3UcYcKMd>RW!GgNb)Lo z?MknzyN3YiVJt5NGLD`jYMpFBg`>4$)I=ee)W9wZf=k2HB1oHxhpS9-Jx>~d%=bK% zu8VtA9X(`iJSU0jhr3X;A+T-T7H)7T1c1&q3y=iGDH!n4VZoDAjb40k?&U7-cr*jI zP;2i$+6-=en(cRFh}n0P)2_=?pYeqt7a(9qbhk1`Dbh_7D)s78jCcqOM5~g92uwx6 zU0kLtohHTH21cH9{I~(R-RFI|K-G*~RWo!xOYns4Ew}Gx_8yyEADX#jND-|pyfg9m z`PjwRU*&7MP^IiTHBQJSXwO3~FEq{Z+R*=<#E$jB`B+JO9PcSQ;4LKQd=Ea`pn}R* zwa-a#wAIQ8J_%*=#|Uwc<8Iz~CZrY|Lp!?i_KI;HrOFdh0an4EyH{kjo#wX(_CaAC z^H)r$U2c8UlCgrghWz{MAU|_Ih7PZ@C8DzY?0!KSHaU@dw^%?Og+M%$mlJfj`6i4v zW|K`|*+P1@`sw{Fux!vegFzL_Dy)U+YC~^TZ1b!XY_M$6i3&H1UyfH2T?BxV&d>4s zuu#{VZ0+1=^)3q`PC=%;1AnSN&Yl7qWOvgA3e-$viT754m@oE-=4+3wnX))%(|+bQ z!e$p(=TOr#1y+Y9eTHiVx>ggDFq=0QOnHO6bMcymC7H|8sz)l2Rb-N*t}|By5#YzX zelwik1e~YCThPwin1_)kQr58YuEBBP`ZW7GLdz^qU_=5ngnYVo0;Ed;u(8g%mWwY1 z)#@EpsN&`CBjPG^wd>QSM zKhERulJmxT2yP&sw9M(`>8;sRlg@Z!E95nDSuuq84iM+^WC~j=FtN4~*NB4+SjCh> z&7p}yY{5c~d_X7j`qhJU;+;ekxpmxLp5{y7%fl-n1DiMgV7nHIq8K{S1AskHNSUd~2LK{p3XU=*j~+)9W&ib}ygJ`IYl+f*hH z`X;zyHFx_u)~$yOBkuC?RTQ@+)iXp0t&27bG@r#9Q+X#32J>5$&)5a ziraV#0~4gEyWJW@EH+711c$#mq~@3qq1!4SNXvcMUP9u^B&rKWILjHip?-r((r*D7-S$8JijG~Zx5@H;9=)z^&Zw%C)*&<}e8l?op8WHh zBYZ2NLfG<@Lm1$$Cn(S|O@te1CUW%MX`qp`K!MHrmK~K6!iXFZRw#~#Q5HG3h=fB@ zxP)2VI&&1t$M2DqnL*R z=uKuCPPF@2jAm(-2*t>A;c`;$KIgKw|wweNiuIs zkn~+9$9(~kTRY^@`b4?e1qxBI`8p&JlA=p2ii>cHCkPkkAww_==!(ZH(kM3AebCI)j;CKjo#I7Txg z))9Z(DA91+j}A!&FSPaZ!2`ZRba+%z3N%k(z@)!Q<10zkq?lUH3Y#Wizj3#VZui)v znU~1G`sP0+2`?T7Jngwf981_yrcM&QLfICWbpOG_0aY7R1DwOT?YYY4LYk6DJ52|d zrFqpcXwMLdP1C{{;JcXOuLRBUYnedfd5KKkf#jCLZ{(s($)OJvs8o91h1;K}UVIwL zSBXn&B2*n!SLZ`DI|NI&yY#&l?#pODW1-+C99RpbGKFu}PM8Y1Vh=}pdtfS*=5p*+ z%`?G~o?GX$;9IOj+9Ispnnv3P@vXqLqz}g`K!(<}{pL@+!zrYmMB-150j2Iomn;%>ICthHbEJtiwA*5v%Ioj%SRJnM&`1z`ki%-Xx?3 zJ`NHU*s%*nS9Mu*RQ^v=Nr{btji0?KPGA}*Q=opEumKhZDF)F%X)k~*J;u$rAihWL zqoOXB;K(tiz;GKBfJzL|jBK-=Xuhjn0Ui4&8%7qEz^CSA>0nGx2&gF}H$g9Ur~}bP zx;BTO_D91jQ}5;EUEh^hrC&BzXtx1z&P~u|EZBAjSIBJ$@>nN?#kv6$qj}#RbWhn8 zXXgFQ5O;fi(L{Ff5+Jo08w8i;0$!^*Idwy2iV3r;z0_BZCqD!sB~@;y!o6L(-foyI zo&}yMd{A6_Aa!30+Js;i#+?Mi3h9o$0TiO#Ee7TPMS9h|^3FcbjXqqoyG!2hx5tDM z=Vw*pB5+&5a`f^8-#K=}wmSZ(g0j|uWEN;OEHd67ZS^2805JCScilA=Ph-} zeeaCm8`>Y0R+raF%Xl20a;D2JZ*Whz7h8TpU%q#cc`Ir8e>KT4rdw<-3HJVPWY*SpJid1eXz~8je z)!9VX>B$$*DHsNXAH?jlnwu2uw5jTr)J(|7>gfhCMG&xH)}z4c`8U1sAd!oOg^;c9 z!^7AxJd5O`e~-xFi^DJhyv}cx!)iogZlB*xc=xY4P>6So7}Vcz&io|~2aQuS^4?Kv zQ)D0UzbEkYYj=Y=1ev;LKonG(1S+@Ah>}8=G$CvCG-+Q?U{K?3@I2kREkWZR4X125 zDbgGa#d%%-CogKjALFq%BDOyQ%qX@qks@^98`)|7b8NDV=>K{6E$ez_>nG{Cxa`_#dv}17m?Q8;b)NBU*UhtUF@)f8#e)>Er}U{^kKg?SF2B21OB%&nrHZ-1X(D#I^;c&b?TlAD;UoIBh5*f6l;L=g2FU_v z<%ki~&R!(+KUk(JrlCsUds3VvqjB>ef@G`7Hci}78Ne#lrz;uZn9zWMIp*KsGT=>^ z`Z~Uv52b4R_^FH*gK1QN=N1MgJ0#VW4S>i)j|rPYg&L^>uTOUV`7HPKG42N$qNNAf zHSEZi{h0_=x7>c{fAM`F9df+Q+D(Qy&C|i(uM(Z?*W3y zc~sNPQ5aa_*OvhValTvj%H4v%ssJIj$t@fK+P`lt@06RH*}B1O7Gu){}u5y%e%GpO@kGC6&q- zm?`vO0A6MH$MMJL@VQoqX@uAqHU=cOdFe`@Q)H-GM-$n9onzbkzwbe3#Vz;s8TOKZ zBhy@s?XCGk**HALIB&^=S*OGyt5Sc9&BxaS+cFof6zxT^85E|?Yn3DA3MUue;@aDO zQ{rcS@xcEiaJq!RJHB+rYuXh&lPVvILEsdXu>4 zF@S^DZ;vM@TVBm{v0%)|5D2vberE?K=kcs6U0gyPydhP<#X?s3Lw}keD{sw^LgfR8 z@U)a(PjF0x{`Q>aD{^^8cQpgNa_0er7dxBn(nX_#ogv}z!oaRDd7&u|zJPQFg?|`8 zb44(R(k}l_hV&7d)x`BX`#e~9ksF9-B#{=5RR1@hYmqx*_5o06xE(ze_@8BIx~@H* zMX%HP%}85}1eg+MQkvD&JjN4lJ`sAoxBk^Fl}2v`&(uvOfZ_QdiN%>pcIWjEd<)C`(}Q;e!S{upM9-4F6CBz!4=B zW49qlK*SskMorRD$^bZb2W&)vtAN9wPrAA8b%?^jui7~>9LT`Ti`;uIS#J|_|A$G(Mw>i7%-KQx27nK9iSLANZ{qKdg{~8hL-@M zEi7H>OYHK*q#kxL|B4YHqrS+c)(;$z{u(wZY!e!n;O$s^sHIxcJha_rb;L zpL!CXlHdFe&I6_{hR097hAO2#%{$O^0cIpr7@A5CI=+D6ZQPK|$ilG@0K~-%8)DjK zFPdQh?0jkfU}7tRuA~>c7?ukRV8^#FYj}QY-bglw-r~AsU*ddEDAdLe= zl~{+P0b~Qx59ub$e!ZtAMR~6J@Q8$7qN4^G7}(VS{HgbKc>j|zw<7}QSj$J*DJci{ z@BS`^8z=PY_H^N5v#*7VB%i%3WpMz2_&*Tp@FQ*M!$&88r=uVJ@EG7wB1k}4zP`{j zg0!i+$%jyVxC1S(Y8xw1OKb!4UQEyUI~>8jh-nC--JxkM0UT=KeP#k*yk~}60I7ae zhJ2ZHTZag`4bm@ON6f^O|9J^rbA{ar91EkDxJN;0=8=AK{b%+UJ;TKnyT$s+arvH_N*nFPPwh;S+a1mFOA?^Y>wONj>dbR_bj9a5h)u6NJZ8 zm(DvbO_d_JPwuN`s;Vm@YH9%GC9PAS4mIhM)sJGCP6`$Ru56DDO`t2F}>8zB+o zoMFJ#CbbUoKU5TkVh^BbClIjf;F+(ENNn$wMZ-(#yK!>6TbeBT7wbr$o*xlyOP{#{ z+D^jL5Y9UjklvtCyw#cawTkIs{JJxMe+dCU;RUcrWX=?zE82laa-O*;h@urBW_CXc z!!X1k2t7zA8zt2b9t)EbK@a*LRX6;g_xc6J0CHWn0*D3-cRX+><^88mQ99Q6b@F|d zW#!l`zcEKXIEWq^>7|4BVFP(0>m~q;T&^m>2|_`(_n$h2NI=*J(&#ne0H{FD_hc>-86~H#D4##KinqG-kJ7=O1WZ)}O6^vRWF)fL2-( zYXw{ae*q{luN`ov7oDSkP;Y};Qd?3e&~TFF45nNV_VDM6S^2NZ-xEj)nA+nS^@MSfC=W2i*oxg{-D zw39?lJ4YMsoCB92X@{C&WgUw1!GJ5hvw!DL2t|MoP710UkWYdmwXa{VcOpu@yJX9ZlHrdjS{dgT>pQ9z$y0j@FDEgo>j z&4f>$dOXIE{B1fa^mkH#y#lpbmy=2i?VaPyl^cqItYk6o`LOSI@WdVh&?ppx8ozYg ztn3a00HoLeBTmvT$n>LzUpRNs*o5?pPV*{fG0!c7eA%jvIUGi&4BTqGvRU>#APvyU z!oRI1(KC`zyL%u{`$vldo?<~M5a9GOC)i^W6EOcx-cS%9*=uAKbKlaZeKpIstj5z6 z4RSX>%NHHI0C)6^ruD@r33$pIb%CwLc=aH*TcRMRp*|57LcHTEhEd05d|gpfM~%p! z2O2Q4<@WwBmLA z=?s)n-_gLkD@|XA83=;jk?Uf60jsTp?Ei_!H8#;ii67r8$BXxXy7RGUavoBIR5`5n z>55m!0U+t=N0)^J=E00K-qO+mOlp+^fJ*q=dEk4)TbfBVvYKF-Do@f!*pO2R%Au}< zR*cOLYP*UO!@@!P<7BU1b#D9wX;%fP$hySg!064yh-ajcx{&!lL{-XRYLA_pX28yv z2T92zJaVYr%@o7u=_ge4MIgBER`5>dwy3Z4%ymD=ns0u zRT~C-1^d0JpMUwpJ}x6_*+r)~0#yTz>>!8%$|3z(myZKqPdU}Pg}RrxTHjNda%!mh zpKMxnbo9Ry)F`AX&+X!KU}&a(t!8{{xB%2)kHQL8F$`E9R~T}CKAbV7DN_-c)3t*l z5QalU4Z$2{RJzl9eLzYg=wC!c=TIU4AWAi4Qk|!iVwCe922MM)Yxbi zHU`mH5zMl02fIy1Tjb6;%YCM9_R^QY(#eVjWOfVzUx90QC?-V&erx-(&Hqnt=l%~> z8prW1WRh}5b`&Es6GBKuE|tu5!st3f(&RFkByt&}3xzh#a42eWo0u(4gLTO*3F*b6 z44Wx7w=O%@ZFa>g+pLf-`y5`{ANKb>f5Ca3*YkXz&-3}d&*vKjTD?tAZ*0C(W(Cq* z%AQk}#hBkGGP9UYj= z#}~^zi!XrKKzSa0$Yv}vVnm1TP$C19CUN!Jfx&>QM35KS3rHJ4?Z6e0M^Gk;36%sP zp^UKD{|+DWg^D3Qnwc=i3IQA>0i;@GRtfIi>hd^Z9=itElwN{$>vMgJp8%D+hNt_X z{XH;Fojc5Toe9S`uN^TO>8cl(mM5LC zsG_p!0&9ZT+%WmOEa8(lce+prNMmb4wsXAGAOwp_jX);4V65DZ*1htx5Mh!bLhFn=(P zhcdW^jtDu2m`tL1IJ$d$Tz+c&rF9Z@PR}qV!1O;SS{@F*xL06FOro2?0oXS@0Z-y2 z{uPxkHjLy=2XJkz;j2wjEP0VC80J{&XJ}kSsMO(|R)EL2!^wuUB*pLpAxrZYDF1rH zWBU~9YHW=r7#C0!sV?eR9$$>CEwW zcNQvz)jUFY7ow|^EQoak33Qa_xYM*jS+p|F&0#yuwL>+yDfWHf43r!6b8M<4!%=ys zkfOzstuHR4^a8+W#6mZuk_Lv@tXhIZVh$s_gewPdi*bMI_o?zdkU$JP-0$Ub5Ghlp zYO(5=7cz-8}-G{dI9`eBq`V6U9b8TRo66#HZ*CF7) zs)*8OpsmV^LRrK4Crbl01o$3H2GkThtX{nFB_u8=|Q?P$S0=!bkCdurg)6xYI*%>*9l2&el9=e~BqY-h_9D zory0dqDEg79PMwo7$GmFFkKbli)P6Ne%S^?6ET|kI%*1EBEI|<2+py{P$d_Xlvo5; z^&O`%7sH0l`fWVhG-WGN3o=TH^z*iMx$RQeyhv#Y+>t0VnARto{SHZhv0|~ShCL-?9hkZb8GbZpk{1Acf<&d`V zdIv%UKa1UN-J>p>k)CY?z=Sq$W2eD!H+51p5$7+T8Q4rZbjI5n%II{cP+Wclgq%XS zLmtoe&__DYf$R4`SYHcj5ccH%QKc+;Qyo6&=en!v6-vN?@sWeI9CkZ3QBoJ=rH^Z_ z1TrHuREPSlE}XM}(bd&%5rYFuRZU@vRWS(B;1-QkpA}E6eg6|9?fZzcSdiii+gTgI z$IG7;ALtTl*?nb9oR=zf+|4@RdFr8AGR=WcvdRQ_$-Jix7~%PXs!E`AX)>TNfvm8c zXW8FtZpbC`6{RXYyti(<`%P=TGoBcK69ZQ2|HWn(&N_7c{vTK|4v@HQ=<$U1($Hr6 z1W+M!A_q*%w#9QK#9Z^NjLG(l0Qfy%aCpe346 k4wvz-{YN6v)1WUqst>MMUb?<;_B-%UckP2qD9pHj01%{n^Z)<= literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7a66ca05..08d5604b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,21 +1,39 @@ -import { Grid } from '@mui/material'; - -import { PostProvider } from './context'; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { HomePage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PostProvider } from "./context"; +import { Grid } from "@mui/material"; function App() { + const page: string = "HomePage"; return ( - // Activity 7 - Render SnackbarProvider + // ACT 7 - Rneder SnackbarProvider component - -

h_+XK~`GXPz;B*%kc9$uBz^k<2GU@A$-__DraDK+3`R_%hf?WS{ z>vn&U-IrmyG6{{>#V8iveoqEGE`MKXKMVe+E}w>mW?kC#Xn$Ym_hOu@T9nbhvim>9 z_)?JnlhWbUDp->g?|^3E<$phjCup16K^M9I|0=>A$X29ocn^xrsQCD_{y1l5X4(Js zjsC?E`6jEZ!+;we5vC^sLp0fdpwR;uV3{hv*{_%uKLl#Bc3$AjvMTm(>n zxk*R&1oXXHt8Twgaw;?J7Xxyj0}!!ec(9l+0A9I2T3UpW?w$hw+9WM+v1XYG%!~w< zs$w918ezGvbKWZ~#jLWJ@CBXSD-ipTi(Hhg@C6>&4S_2o!ID=w+;)9uCj^A`Sj^Po zgGe%kqfE~gCz$N!3ZOr@5;jVEBXvF`77Xg=t##LOX9|R%W`YM+4 zi2G(ouex3kZ9`r8v)#=oog(Oe4}J?`;eUb6@x~y}W__}P@d2||y01mJB>lC8g@w)a zg(J)_7e$rCW&jT}0Am1QJJLPcEjD2B26!ewv6rwh2-)CZvmimT$vcp{k+b8xGx;9a zVDsja5wT!G*JAAmCh`N&OLnlx2DOiDm%{c;-P2_68`lPc`OVE--BeHtDJ)UI?3KpI-JUxz zrlE(eFYQ>n$*Tcy1pj$Ozp^O~j4Uz=OBe$a+JqvtDs6M_CP?AiY-W)K>N+b_pstCH z3|{$lj@)P4z#Uh0{5hsk2(U_e^}{8XI~DFp*i{k()R0lQ_;?DDm*fu~WcvOk^M4(M3L8LTBWhnveI3cq z8X30nU~Q-{gL$hDQ`xyvXkkWbShZ$R2PPTmcSkbhUg_)7u+ba808-4N%ExkegpuVM zU2u^=z}?G%Io#gSK}Aa|3c8_tL_~2!`uEvc?}&hWiUuUe0K=UZ${?Id@l@6KlN}Qn zWsqtD%cS_%Y6X^bG*FLFQDq4AL^7gx)~XI4w!F^6VYhiunAjMYFjnU8SpVM!`_0Bc zy#$y0hAOPZz*@qBB_?AtZV6jiB-xcK@de0(Fg|FdMgq$g8RVYMu*rb8PdF z`0IqW8XvkVJx`pI1SBVa&+&}i=q-k!^^mIG&8Z^Bb~V|1xc zrD7q(=J~?ZFvh~sjK-6un$8f3SaRTJdpi<{d>YiYt8&~@1Ma+~U+PP2tGULRwB|?u zmSdnG`v}f!crr-Y-(wL!oNyT?8@#aO-*;h>nO`Q45w{!+iZ<>%ynOz{DIG!x?P&fsNoRPNk86{A4)c4|fW_ ztXIOc06%hFB}LPMRe8p_r>LQ?!e^EEzz(7^PyiMY*yCm{EhF;{$fIH5L^;N&cYozz zVP}K|PY{5|LMprvSm2Q!w1aWgVIYDiuLMKzw_}vR^WwM#WVOt%tYolb8c)Fn(t46~ z;zYhpH-bp1r67WYZn`RbTwEWRTog(K96+#Tlk+C^lc5f1E4xkZgVV+WTozgE_h?h& zl))@%v0y?U&`cWdMg&^X3VWk&YJ-@W7f~C`aWrh>xZ`Xj(%AnA4iG^CCLrV3a&TMz z@c{kDO^QG>R0OuvYKM*RiTU_X`TW3Sql$G5+xOl$l~TC+N;4=bgV<>$&G*2MDdyr* zJ!?+6Qz}nQG^Nn--Kn`Xh?0`s zF*vDzSJsyQE`CUz^Qo>(jBePU=uQ9y`}qy9Pb$cFzg>Mmc)v6y5y(8JzE|=f_=OLi zf{-yoFtFHM6aFn&NL1v#i0%zWMm~L6W+LkY?}siNi^3C$bth8Y! z7d@o1m-1dsefVa8c9D`4p14)gT69sE>1LG`=r{j)Uy*42)l^pute=(E|@qRrIvv|6db&2KniL zHxbs=#e5I^x2%Jm@jv~^zZd_nv-r)HoVD(-A;Z@H8Dg^z{^`xR=&-&ANe3Sqwk2c(V`2aYrG_VG5dVy*K4OTgV1qV9o>JGe7gTNW?C=ku6 zS6GEN;|)?q|9cHMrAz!86HKg!U${6d3L^(Qv%>R|Kw(tT8;yc@};s$__wM(EyY4b=3Ntj(BMnvprmM zX80npRi1YK%a=T8#(kBge8y((6QJa1XTlpVB!_P+cytl)LMX91{c`o*VoOW zHpVI~wWA77fx9RBCfsoiGzY=K7~8;{13)459Wgu`i_v@{u*2Fcv?5u|HS(7=*st{w za+==ty6XE5g+v56%9v72ov0!fjxG-q0pQHB8A=Fo_`ei+{*&{aMc8N< zrL-53J1{ATj}^WwF&m`%*3psM2*4`8l#~=Stsik5;z&O;fsF&0%OCRdlK~!6y(Jgi zJW>VsU}l@ks*;ixKuoAoFkJJ1z=^ZVOG8-bB;eDvVnE)Il&{zMN(>>J{@d=W2uJWY zl&AJ4E2NE2B=`3lPG?_$R&QhuFh!~}(TbpO*avmSBB;>`1-a$EUu&!kbgxdnsxUz<}cAn>5 zRF(K$&|(TeNR&^gi9U((^jn*mWj}i~k@7i_+STwAUh#icSP^HSJ$p|R_iiLlt$AeG zA>DNPZBhZgoG7g^iMT@d$LNv1;;I#u;l0<``m(mWoLl0W190k;m zl02&avy)2d7I;71@tIm&rSc05;MH`&yW1OPL??AV48Us@=AIIXPx1i54qer-yEXCz zH(rVP2*hH%SQz^Gs0?%nFk2aOkJoagvCcQv#Ds8Qt%ZHnK9Ve_^&lqNxN-PqYB^%CmZ8CwsG z_K~lOuee$0bYG06Zk~Ba;UupweLXGKQBjEmRFe;jv}9${=U@W*DXHiLqdlUmF5U|UKpSIuN)D!wbqh=ZSwzzxFG1TyS7{hZsg;`^vDbzY=JXMSYX%} z!1B8VxrR?X@)2ArciPbcy!G=a)Tr<{C30n7*KjD^(rVYZTc&X7v;>bV>f5+ocj)Gb zMwv-S_eI2#vy&57!nr916R_0wm}^>b0EuA83f<+WpI@R)W>*|<-)$>*m#vC-a4=yo zP{hZ^1_JARc6b_$OBI%a9o?T7EM=tyo;{R@KB9ysI}&5Ydl_%jm3JwKVTUc%)Ur2m z___~QbjCb zWBL8l!}al!uV|F<)OVht&P%RNgSei9l-ny{wfDZ}1Zlv&Fg6_kX)xFfhQhcVo8glJ zol`ecO!2^*gS+|MrYgcrzu20h97zp&L1f4`6Z`9)%Kh8sS{tR@HMHKfyJLa>Xm!x;l5>~rhK@|Cwhd8k-r^%8{8Y9^7O ze)@0WIK#Z6^YZ1~=o$m|pG-N`=y~fm)?|# z%VCXowlPBkBhyH*`VdAKT;XPs;4H*Hc<&yKywQLRAkr< z)6UV)=lAX%Vw5VKrk|34atB4^b`@-I2SIuuZQ#>n3?ep2+s-N7OHT==rl*z92+kz+ zBmIi_*qE1yci#tvycytQ(XQ@zZ0HymDxEY-xBREm_AY?AQ^h%iMJ8Xm!EDmk5&F6^ zG8i49WO=*tT3W<_0M5GjejV*8y)WD67fJqO??y6CscSXDp1u=eET-qWf`4{?p0hLo zGEdQVM_|r#FbzT~RleI#s#v8%H}Y-HcULdjF0U2t<@zqy$axw?+s}3lhm-%ZA!)qw z{t!mYF|(fE`JXv~PrREk1KO5sIeA`KcP%RSpbBu3mFx}BCWZltF*+SR{askS2VCW0 zb}QXETwM-8*+vAKVEziGI|2+p&d2n;7XT`)V)>kXjwY`VkkoO;9JKVOU^mFKMK-<$ z=5$qk=@aG_Hq=td0ZUNF#$ASor@$~ww^ml&dW|TK9bhyE>kk4Dp5W(4Sf1|96@^N| zJ3l{RZK($7%(=F3?~N|VK%6%Pz%xxY6uM|4FX@3R%ZI-UBeFC-9Fu+tM{0f#Z0brr z4WPnvlnEb+8N0q0p2Q9F-%&E@HS&Qt-Vd;Z-F#`o=rqzb;C=nF8?i0E8x$!TKn|+?3t-X(~`}sFh^%Y6yi8dn_LHc zWOE7+UU9_yG`RHkWT(YIW&mk6bJKR65!76ppZ~POMf;X+;uDW_?1K~19!m)!C77f5 zLCA!J3dsKb_lcU}2j4~M<4HsY3wBvtHQincMh(&ni^Ronb*c3-69Uz}S+{_3{WntNO|80eK$-#G0)c_A)dQYIMFyR-jNgwwioahYH2zlXOs@gQHRJyE#KG&d*F%}Gs;(A}Znj)@bVNg~=X@7+}zbZ#Wdyk0n z)N=A0p+fAaFe(8M z4j@$;83s;A6uXS4g;xp2Kg|pID2W;<->7CT=obYoKwG;*UMyMnv7FF;PB~wH<_nk3 z)CBc)>51mhbVVOA{`_#=oo&XKEfqr>#oXv$?2yJCazh{m7PicsNMo!k+(DCGmi65W zZlOz%t*zk0it-ct4L4~6voHfr=W1^5>;)66xcs4tJxeUJ(F!ui%TOVUkBt*A6)L|t zc{f-Xtb7L2PPrd98fI%h8%+_opVIpsk26+(&aX=Nep|xwrF?I2HYEP5YskmyaKf;> zvC?F^sCcIryfH2!-ySSDGopVtd}W-l^!U4&_sp@)o$&Ba$wxKJOkOi)m*%U1b{msB zaRP<-mIgD~RQY7=+t-;&y1V zp&#zD6LQ|%6`D45bn(^E>RpH2Bi2!@Yr3uHq6!>O+$wnMN#zZl$0%%sIn~~dwZJXRwcz5|Gn0ouL=5 zek}TxmjBb^OAb=qoGPRzZ*RW^C=9jllQ!Tw!(R%%^feozlWgzaKihxIH@_8JI=L9a zXlmiAaeg90J&gEBLvYa&kw=vd0gQ? zzW^d*RJ1_^ld6f7tx=lB$X(`C@rSc;e8ZDDt2x~E3A)aMr0@i9CM?8p5xoGK`i~g0^Th-phj%WV)p3BcG-(*;t z+P4*3lW6a7%UKGok9&X0x7N1pmMA|J^kKdpqq2AAul>4nW+Jry{OUTooo+lh)Ma7D zitU;^?nj)Xi~V~tUvZQ>-rk{cd1+95XD!*Y>l+&Lsm-8T#xHaFJ=$v{_0Td;+%qGD z@i!>}LlynN+FCS!jE#Fw(t5C+k@Ytj30Tztcc{+`7+H!)Ya-uSXcpbI5x{z z@>D>1XJ_i-6gAHMNh2navLekdVr!mwg#j_6+I?O5?35t(Bx04H=b{Sq|oWzb+ zznxhs-#ZDw^vqp<6Jn)Pz75rgT=pC%B!%I^g>G|PKUTTMOg!{h*Douh)WtDe>m#~2 zQ)m(=>ae7}BG&FkVH|o*5g)XB{m5FTXO8o;gMod!>RDs@+tnrh8%wlzLmb6ZB#$27 zDtdY{sOPky6AI>2^WixgtYD`s9cdmF8;L(5B|hz>FPKqqS(p3Jl8MiVTk61Bxy9U` z`3m8z(y?QL86=eDVUg(*7QFu$@q>|UKB}4m7yO>+ zPS4Gh=Ys8u^%eh#az05N&LyjwaPzktn}Y09ALeNR58^xIF~zs{3i_qz^!JG9&QJtD zK)l>ycn`UgTQ*$}pZ&~gTG?`bQb`i~I;Zf=*I)0O6^NcLd`qnmU?O7;3&VZP9{wo$KHgu^=%7K7mxu z?NH{{$S!3z)1@mKhjx<{fZUIhl#Pj>v@I*|?53Z;m94Av^+z)wTlc~dR+;hy9< z-l_8wZ1oQiY^l9L$JH#sBu3)h;yn^PbLqOE8ZQ@Q!$!-f(nmY#C1Bk*pmOH+eOKj)4XeZgo3KuxC4S z3pJHZ6mr$15&2d^@_Gc?Qw|BgFO}~?%mu=s4V1T?weQT&xXH20+XgAh$KrsCirpCR zk!KA)5%ef2GP5* zl86Dbt~sk}Hp7|q33lo8Gjab;!xyLWC4zkfcc?v~Sm$}%D?|~^sk7NN#ly?4?CU5Z z-?t75>h;3fWoHv;_37^jFVQStPevjlu6VwLe|Knz9prK%wjVSz|G64J=y>ma(9OpH z_n;dWgSYQ5DQm-iSpo%nB$_`OGhz&FOA=npGrfCM+tMUX(ct%)0Nx!s*tmZp945rt zz)a`uFg$v?F^1s7BjE0abRv|Z>ocia+EdUVp-~}r8_M~q(fiKqts8A+fGG8a4&u#A zPVAuvU<@*G(lP7(N9o(9oY7MER?`b_{#?`tv6L3jkCQf9|0)}0H(|JH zS=;uo^I-zi;jNRLJmrP9Cy_w*#5x44>5|Cl%5pVEdhY$g^LDp=!c^9n`)XJ={cB#P z$-GZdu3yPub=b#DxxL&C^Z7FUX}Zyp*7}LnL^Dk`6Va<0OH(;j7tWmEGlW~Jvg&Wt zKNK1kU%zXp$3#UbqPm{f6uC7eVTmk42opaR@F|$zO7Mx8V-`N9&`L2}vt3w8v1O`w zbd}8MT7rMM6zh|&;YtSTao0ztlR!X3a+l(hpv5k z@?G^ifeqRvhg+KCZY_60rYc5x*AG2eR&F%3c&g_v&bp7fx9uS*ORVc};y{_k?&kwa zVb!B>VftnDbC3^Ym&V>z4@2+bmwn5FUytM{(~aoTZ1XQzq`V893HWqgLbrsW#(Isf z9rmpS3lrqX$-7M5*_HJ-7{4dHKTwzR@ll(Y!L;@g+h&~4-NT=P7%J#LCrR2~PEFR; zRsLwhRI&F9C|kwk!#V!Oc5Ic+YM#PdKZW_Nxa8jc=$o%>B9}U^uM*8wo9O%-o)8wi zJVxfoS7xDdJDSt6~Pqsu*giWmif z?u)l`fI(@G(}RB zIp-8>7H^pMFvq{C*=bJASU%`|wsshcVWo~R`!ayir41g4gHYa)+&W%K)M1_PwPv&# zph@7coO9L5Sh~Gw&V1=v1APGc+JWl zva$8;>x@4ByKVtYF$K;Ft*;FxwdQL&?muJ*dC~mp+)R_HHO_M>&M>ihmpT#gizpAv z!itS8G)7Nrw8yE8`?a>?Z>>$DDNjTx1xl#4^R{}bgL`f*UKp9+$L0mjdOjE(dD9X; zlv#?UZ9G5TyY17Wt-}|x{xznein)IpVb{4C4715CMU z#!nadmQQBXJjZ&^`G;&SC#-qH47;zA-&}cFls5HF{jg>3U9KxRXar$8)}PO>$4j@~ zs2p=sB4e0`$f!B|Wa)p7~;{?u~k zg1r+97*ziBIYqC=Gj!IAPQz|&?+r`Q&fJ+7>w5`rnf3BTMM4j6p0Xqhi)C!u)Zm7B zQ!gXrL^2Zj#UMMs=y{7WP_OFlfM)&)Z8Av?K+$k5O9v*4rP11G|xi}pX9 zK~QXHl}w!cGzRy+>WiAaLk@z7#dOkneb@40Sn8uFoF;3=RuzUv=V^S1hT_MfmyfVh zUk6c^?+qi4;DydN^IQiRRN51~UA26cCe6r7vv*6NxM{5ao)|myTaWyy5XsIor{xH) zrDxB>i9!hJ;>oM6hu1+8jbXw#{`G?-j!D;prb2X2a`%Gs>?m}!3?=r_*QW{@K*37N zT(J{h^Rl(27`-~v$wI6Q7!z!0buNt2S&{~(()#DO`@Tv%Au~*?KUr{5u+*8W!hC#L z!8-Y(wykLLHL2^C%cv;5PD@3H?7Z^Yv%VXTpZo1ca(tngcJ4B={jw3OcQ*%+WOHfe zzqi=?FFidPuYfWJ>?h$$Jh$h&>2BN4QF!3Q;&>qR7TcnKyZJE(RNtI)&-Yp2cQ<~9 z9Gk-(IPaf2eQa~Iy6li~&u3Ljtkb_1-g0jz zknp&KA!VabDrKbGk%7m~YKYxEm+%xbC6neYJwdWDX&!JXwY9frtalVkRlT>?w;y(_ z@!zL5{iG?(w*gN@#rishEZ<;lGdMSyyxMhFkCYd`VA8sr)cfF8I^rHQ~aIw3@ow5_)7qxKy zTw8-oFD$#Myk8Q#%GX;6jp~NPKi{A){PSQr>ZZDE^TFJZ!b+Ubc;fV1j)#vBzPz9M z`g7iG(sJ*4VvW=dzgBaT=QFu$Q|xd%FPlb}2WE3foG&p_OnaQIeByTxxUa<_=DjZW zlL^!ejwB*dr9VIRNX|35;1@m+&k|2)TS#0;>@mcf-wFY_-E%L*S(_)bIDO+^r*t(G zQg7NIvP>U~9Gx&Lo(JDFbYuzYx;7$^vXC~nd|k5{$-u33w0>uIYo2mP8E(%hEY-5% zV>MnS!a_}yr^OIqBXkI7PYq@EMSQBcJ6*a?utVN}VwFv^osYV#8_>=-n68>^TT zDwkZrXM%dzuid%k2R4I>M+D}cZpZq5pJSaK)kq|AYBZb5XMtn|EbYgo_fkweN(yU^ zllG^RuN?c3bdS{PQJ#_)dq&O0m(QlpTC2>8%ASC^6(j*Z&>`H)QyePRm=`~y`3L%r z@G2>WL(5(%AFt2c<+Mr`m#|`u_xoJUG?$}@%M$j~=f$=_;%wxRkF@Bf;N&U!(3xWx z*Z!6U`I`5%-#dECa}An4>*`NCkL`yV+v@0cn?H}l96wN2T{w_=Ilr%_V{t$;$!``G z_*(BFA4fHP>4h09zu(8cZ1!q0(zL3Fudb6At?30v!Mq>4)yu+Q1V$gBAqG}*a`H`n zep9Dvo=swz5fu@OOM*3-WDCho=T|+UhH=KCvQ75{2J&eqovi}ICY?LTI+tv}-cS?r z)+6YI`Y+n7I&)z2Ju$(!aA`MO64(*$IjwCeNJoUme)bzI0GdV)p-bKA5_B!MM@w_p zivDkqUAIpi!xo2@N8~zrbyHXK0P~SxB9wqdiQGPXR+xIcefXVhlN_G)i%g=A#;?a zlC38hN5%RL3sbo-rVI!znAF)d6K3Q6_2ehMK$l(&Xx+9%fKpj=gd(s+{({=;dM&nU zVmd&NvE0jzO>2s*or)ohYA9<9XX(K^I*LK>xz%yh8TgktRbKJ6KNupi3}%oB%6G{l zJBxB5UzJoDX*!n)FDd&UBeN_?=^$^<Nz0TtN@v#B5A;GG{J(`BkEmKZQ3jJ`7!cJkx>>Q zhf47B;w&uvKO@cNt{}5cz&eEg@n%6+?A0Va#_kmHY}{?C_|hEo5+|Y1Q;oL_YwJe9 zr24zN3z^qTKI{}$-H@GIi_XpWdA93fm^-`?l`IE@m4$)@o;vd4+rpL!4bk`#$5031 zpPxrG%5U^YC+mpyJbAGhxe^ucM5b4yyh+ifGZ4PB>(9P^E zf~r)YXB+UeJ*kY3j%#XF=4-S=zFoMJbs2r&8Fl&WL?GaQAup%hsspK{ZXKT_jNcg9 z?lV*z^t*Vg5PnGKoWR-vh0M6U_}c_1ermXS73>6LO0BfhOBymq>o~N@``)|4SdY+4 z?x)P$FMBHvmO{8x=dqp)yrJH%d}hw8GbajpUh7Ki_6~g3vqdj`N=3M7UYk^IKi!Cq zFvXg+H~M)ouVw>hkgkTmLKEEo#cQoMh3TGe6*q2*j>Rr%%X_yt52a80A$LiYi96@! z#+dE=!9J^wKz2SaP%n9XpGIptP8fR;3_C?4NGt~X=Uk9-s1MH`&7k6f-3na8Rr;he z2id~qx-6l$Nxt^wu23=gYF%-Ig%UgU%hkJj;f-^>H8=UgRnsV29pf;8aPWi0#5Fys z3RnX?C&S?c)Gx0z25vK0rJJBk)S*dy0ir`<&!_Y@hS1kDH0^nF$ALIA7W*??NSCnv z^M2u{F(!gN=fs&BQR4fWCUqh&d^l~E^x42+wMuRgx=3W;} zn`Q_8JZKwU#`!hfD*8tEm)#KRw>?J8a6j!>QJl|8ij4V|aZels4&A({D_3%&rXgFl zo!3%rxWk?{tM!EVjJ6Zq@g>XKX7`3)&atU+meb?D3-nKE@Q#ksF#F~F;;M(4X+mx6 zIYewRPn~IQOUu+s8_llo>L~Ioi)yWPMrJ&CqHVQ|mkC?4NF1hJ32)=Q;M&~^R6uZy z9M*s|p%oE1TQ8!2M;Q}}^@^RV7xjdUDGXzh!O&qooBNr5%qT z9i4M4M41rGR(s$kvbdi0@_NQddX#1Oji?bZH%&Bs>+3=ov?8K~(6(D$JeO}nk*|N1 zq}tw_tIpXpN`}&D$z1Aw`Li>8OmW-rK!rfi{f^4QPGT`%v35Iw!H3A<+jgNnd*RD! z&_HGLR;Mo;yKlo=+RQr@!@nlJ3}kezWzgN43C?}B)GCa6Ve;alo=bF+OvGIp?u~gX z1p11e{rAJ-x=Y$0^PJfn&1d-Jd~M#9GHAt`q-SrvOfq+VHj>JvaG@Zx*^IDvAe>5Z%DYR3rIWmM% z%!nCvfHR4(8eRNTmBHzWUi#uD_o7h#q~mm$ea%x{EO;IM!HXS{QJ{)#Ovth z=9+N!6MeV6;UTtPPU#abi-Y%Wybl{nPUv-Ytjzs@^5p4Inoo=T{R8}WUP#b{rP1)9C%H`$iMg65=bJS93*3cIiaJtP^bb0?sSO-$&*I0_mhz{ zzi~E?#Ye^*0X5;YySLvOT81o!)_i_a>$^*4%{`7k_X>ukn?t{6pDCDSN+9+cInuj5i?s zFxgDs(wpz-9*}eGG}p4B<8f5=-O85E-PL}MaH47$%s+bO`-ed;w>Vy2Wul(va^a7T zRU}4i)jjdnQfWzeJ**QQwLtBE%o8grP|; z-@J5MSa5V?F*J-)7W3V>j;H1PBE^afnt^+F<6WBI@e(Nd+${%v$Pe6Xk}NW7~8 z<8|n;f_k`yj%L0>?)Xs!GjW_ueWBip0Ag-0=r?&?vE%hw!2G)8tAnhA>E;)J)dfEK z)0eHrVv*1c$Deo&0!|SYfv{2!rCuBM2_NsKcLvv%T?aKiUSdZx8ZaU(-I;845E?O; z&0F1&SyA3DvkMI+E&C2VuW|jpV~}WxW5@}_x!|yJ*T-~{ToA@C)7wLG*nZ*xk6Dd- z!H_-o7%WpW zUOp2bhX#|v8011_duZB;8(xKhWipaNfG9<0Y77 zkTRRoDerK($6Eo~Y@o_cPCHw?(DZ6tH=F>~Hy&f?RBRmns^%+Wi>t)AUd){8r>*@S z3bgeG!DatzeC^IZV*#^fZDN_V^Q zuO@#fSfh%&!^PvY-piWeSMHZSyEzmd<5TC{@fP!MM~2mDmi$5qE7TA=R`=y@2uUuN z3#~@+*T(t#7@@KCU^VY#Ca~{*@HG?li2Z6jTfs8dA&Dk7X(iUk zH@zOAt_%D7w!mOgBTL8AH%J6mDY*XAgVZ)>${yYZwkO=9p0>BUSlREQMbg`)7n$AL zK7T0p_(Hie?U_9-nCW&06Srt4RA#s!Xz}Jn=tm{`HT}dwl-Omx7HSn9LFDwZ293Hf z(YR!BGgPoHJa&$nuT7^Vxqs|LcelomlYdV9t})VQ&*Ifo%L`4~xog!!hZ-1pbUtyg z{o>p((iHh{*t}4>+Cg@hCevF@gmq|ezy4PYV&5T#eaO?*d@edPtZeC><;GHWL1%lj zoUCd-9O#zl@^y_Pn`YsYs4b&J4sY<{2B*=CL>8kL!~AnSV%j@#m0JHPoeVw*9sSD% zby6^h^svB!<=6JtruS8>2d!2Le=p%2B}z7v)}>nY(o>rIzojIv9FLi8!`a@NF>oA9 zO?F?2{t?|~ske9wlN~*DjTwD*0AFLWgEr=X4EsJ~QJ=6S@cp^QhE0vh{O{DolC`XK z+i7^RJe;`ZlXXK(VUp$8P>d!#OU^KK>__M+rezK#C|x-@w@l=H0}0;4UyoVKZp9=s zEk*E}ibh#>p4Mw&SK8mIH{LCINhNZAqB2=t7^^#QWQ7Ka8%;KBPnM;XbuCBU8ZZNl zF4-GVdKG9ok(#w1;HU0l>C@&*nfrJ%;E;c(!uo9s1?oK?e`oS(EWEFPjf2wcQBVP@ zIJaq(<;xx_1@VyJn_o;s{gd@p;<}F)zH+(G0s>FQBxyB*p&wCc93%G#ifpWEaDN@^ zMTQ!5#yAC?+S32VR`ln>!w1KOC&q@-`g9X1sq=x7#n5@Ak2ahR!PiyX&qW;tTWqP90@05u z7opG7MtueDMO&4~$IVbl6ProR4*FHf6^%nmnP1%a#*P6xx&2vCI-^tvqJ={`d&r!5YV3kb`=jH*7v)SKulr z<(5%1TNxaIdLm8}?%G5Cxf3R&*q*BG#rw+sW29Du;D%Fq=0fOuNrs!qQKo0qj$gB4 z+g6mUR+`y^o*#q#k-J_#B_J^r-AicZIMjEjItmzZa{SB+T<{YJ>XmTU`W3#zYxHL( z*fHG=n_#I8O13*Q^uWNO!9Veq2=e?QM+}l#*1nTcL*x$@^_))(MBiyqAXOE$IF z{3bhoEiN@$aOlCII%JJ3`s*r|cV`RcQ1k%034K)WG{+2UgWSQ6Ci%EaoKQLwmrgdf zX$N7Nt5#*zSn1n)1OZa@XjzevSyJK$Z2;)fE|6gJ{*G<{zyKQ|C8tNnfW&vaey1Dw zDR1mayoLdZIYn4@_98cw#G^gXhu8BDu4I*(Z_t1L&AP;w?@wjlW|!<@9+99-+uRn6 zCoLD2lslcmF8STEX%ZeIX28>9mF||PifPxu>v^ls_m1DINn9Qhq}ahXNCOcl@VINg z-iB2dZOi{ij-MEgWt$y3>>QFns{v4Gbv8|Kk zY;rr_g~0tt_Uwp&6h*i4(l?Z!Sw1OFl%FE@O`D|EV?SVxqhn{~?}n)^Q zneXvSF;@~bpoxS$FD8Y%o^L7;UXBj%9w40)Yj>wNzuO6HxLiS* zNFZDOY(Cz+KhuL4V^J**mNf3wTTbmy^sQC1wO1yuZS*^Je5aCC;BUwckx{xWFdj*x zT^Z09{)jA3fbFf_p^0b{z^L+KnaC`5eHsKeZ?lAO>FI_(taa-8sKi=Z{&{;q5ya!` z6Yv1SQlD3OtNXm=vZp0Gy7Hmpij{WNn@Oe|ckc1S<6&31%04lQk6A?t`P~sVd5Ue! z%5ZuUpW$rj(thqa*UgB-t!C`jPel9-%;2N(`^~sfG-~=&cDRp$FTEX3Bm0!C-G3$V zoz=U3uMT<5tNEu?RH2SF8~+_^R;Bip^lxM^Ii`1=-1|o3(X1JAh-@eDhAiAoBxFs# zv};T=xX^05x1)Ob>s}-?X@##-v_QFS zrDG961opYaFSLbLhn2;eN!x*Dw5ZK|F4Bx9E|e!iYF*<>iz5EM^ro?jF+2-0Wll2g zjnu>YvE!2usHM()`$m4zw+Myjs>*~PMRwyeeljJpq%0&&2}BBE|4I(mT0yv2;+%7O1m^>}sTda>b3WzC5w{5w}KP1{sPLu9bnTiJGGVR8S@^F+f; z#0;BNmb_bP!9jSCJebUOIfptKKRhJ$ep5$i*(Et(3^<*Z<9432&ApyI9pUvT&R3Ze zucr*SrK6~QT{+V_Kf?=tUk&+ZTo8yBXQal-!F_|geYZKmy zqSpNLk;8}i{d<4iNcoPqtyv0RPbB?ytgQByxs#BNuQox2PIPr1yp#Dl6SEi5-^^r~ zdOn0KL8AOXdb;Gf&gedJ0i7?${ufAob$aPdfL!>-pq7C@JOr=aU%IIP{Vcg>nxjrw zA0=T+Wgx)E;!BrT(-kiclK#K!V z9b-EZRn$8IPd=EpDO0Op<}_}EP}mJH`Tuysw!J8;dqdNGe}qoE&X3P;hv&{g{uGq) zb{ST+OxRLOzlWb@2F90&DBMYOMH|#=$@d0md=cANxjclA4k@rQYwP9N-Gx+-NeQ^( zgvzG>{hj9{4P(Q}=r(t=D$?P<7R6>p`d8@&?jFxUTAt+aGe&kH;CE_F zIP0>!aiy@OnF|Z36m1y>6^GN`uVkv(fV|&U_3)?d+p_*it3j?99P|=R!GrK#o~Fk4 zkdN5{yOhP)F1XUvfp1p4(*w@S1*AI?`JV9nUf5CYnzDxby)-Aw^Ztapa(U3dQ77!g zqR6zO!~YP3K64@oNh)*N=Uo}zY3OrXy?fuBOB4Ge+^aB9pF#$W+x}URu4X;$Ogs5m z`!4P{>)!XSv|JmS%Vm185<{)yy|}EV=$v!Om2Yp17`;IQUV1dAI9At|%fv&{o*j-i zITTHx>(s$I4+0%l7!N^Mk)&POT^&cA})8|p07l~_W-mWO6gFk)se4WV( zQp`%-=`Am@ZwkInGx_h_;3PGo8!#=0$Th48un#3c~Q#HYuNJz z)^RMB{Cf)9d;2;LcL-0hvAP-qQDCM$2%Vno zw|xrDpKw+^!hx>JTv^Dc4ZEs3(!V7`i>bQEEsDvf!$m`O>2)^4BINk^pl>K-i_8(VX_@6xvLIi@|)AN9=LTalLKO_s8q7vB zK_M%}^Rc#!f6JI^Jv7l8?|Y;(3hl~hm{5eq-)Gg{ddpTTw}I8sG(JPmP0x2&P}re7 z*PXD^#(1gN<;B%BH!y7z`3(+xa;ylgDA=uh>@9dHZ8own*C{i2r||2Ra71P!x;$^B z=xJi2z<19OKkI>CLFSV6?XQ=|&!22=X4N}vMv|;+p2cI1RWSEnbOX4Lj!}q9%p!e9-)i;1K{c{oMwaN)0Ue5?~>7=-g|nC?k(%S99wLk^b{ z$2eaAh1P;UD{I3}ZP)HmRPjM;=T{xC)Q?lH20ku#cX>uph%y^qc9mDJy@O#tsBvH` zIzkPXQPKq_#-}WIak2DSyi(S#7^_&xS-dASG{+DA-Iru4bQ+zXo9)*?(2T!$?ihWU z?6do;$*|DA+~^~negJk@?`>vb2Uax1WL6mmf8@*3NYSW3eLgz8c??9JY;aj)zj@f> zgp9Df@K~-8e;B#8pPbmsyyW9-bwpfH!pF?o543|k*X-nL%%^_|-FqX(rS2+j6o7^|1W+RI_k+L2IS)JL8w-{2UVeoDnAf z!Ty^0F6>zu|L$E)T>1N$*^_VKg;gfGfv8fBimV7Zuy>}dU*lpn{c~^CBat z;V*7(S}J8%k{2|G3l%?ijX3fnO1^xFXvy`*l#R&{eM-DNep0r?tJVx~dU_XE?fd?1 zxNlHV8p*QWE&1cwd~mtVBZlH)geGT7{{;l&%z6MSO{hpkIO~+ht{cAgth(dxcRO7& z)!Twg2)~oRrY_%=-RZ*$7yaDv#bIB& z<4un%{k)1xc>Y-Iw1-6}k)t9`)qaMT7@ z{F9(>SWO`VgzJ9pFevdxveYjRJJ=2@E5Gk5b^aWPBM=5o<=6Brntuw*jS5FR-l%py z12wP%C%nd?Gnz!HMlFsK4{|vEWmvTNJiXxxK`f(r_l_pT>X7{D)e)tG$-Ubv@h5YA zJJbj3Af!<|yWvVbZg6|F`B~ZxFh1VQ*i(1sMJVRLY_6c>1yL8J$ZB4$$*yE-Tk4iJW5~!MSOo4F{4B? zFV*dC#*-ccFgzRMT_(3YQ~aQU5*~qfXVrxcJMY!{aT)_3gl?E}T0$UVK#h(Y_FKFd zw?mc7;c%mk2wFB(Vrs0+5xj~jS1ZTHyn_@+(cb-Tyf$e_sr439cj?rt?P7rr4!=79 zZyhd#)_Mk|J&ul-&FRkJbB|C8BW8q6S{=)Sz!2S<6lH(2DV&ed=4g>@XZb ztsuidhA@-Wu7bs@9d`QF_Y-5}H@D-l54zEfH)|+2J@*cNiz@Gw?Jf;BkgH;f_BLno z;`T=}wp}m<)jDlH+_zL(`|7`i_?!Ivt@Wjo&i#=o;X1L)Q^LFQRcM_e>w$-VsS&z+ zldrr)$8`(QKAsNe2Ca0{fiM+%4Fv7wknxu*0;FXZwuF5mId0^?vMB7Hy{C_zhFWmk z^(f5RjNK_MGOX{wb7R}~7@Zj}eD2yXYv6oJReI=nM!4M}c;p_qxV_8sK_EDd7&wHV z*8*{mN~~_Qe)GgOcJ?m02wPhT7rB$PG4oxp5_4DFTgkE~%r)(Rd?Ej6Q~;}&7Q2&i zIY5zaR&BQ-B$%x@v#xOO;f1j2q+|Ucm4EGh5xs4C*ChaS&_w(oRu2acm{~nY)+6Nb z^SSv@GdvA*bpwhFG-YiqJbd;qClArq?p}TnZF?}Z!xyLyO|W|M4?W;3OqQD za^&y3;#f?*XKWEtKtx#{oCQ8rm$%&sHmwyADN3(0-7qq`Hy;M2BhH^-?NGNb4O0sb z`ygc;Pwa~%+t@9Z3@q~Dp{ptHY88p7g(}Ri!G!mB;%*G4jJneGUZF9 zFma6Ieu2VHS{;V`yXQfgjF0@O(W8(ZE4p6sa5=p3C<>!?d=(lXx$U7FaU)Ld0K(lxh}*QBlu&~D~fJ!4m1 zm6_)VhzK0kvp<$4)PW4ZJ$;|(r~q10({HKu-|3sbU;8Ua#KivC#O-YXP4E>Ljg@=q z&i3}x#gR>rFQd3ASiHsWtiVv&YT`2AHBurX>c3pSzPi`zE)3>vNu^3j)LO794&}Gd zUq85XTI^l5nh4O)%(6Q!YPD2+*(c^wlK%mNXhr=mRz;ysxZQs~<)4oN@FC6p|Kn$W z{h2Z$z#>Kgx{g`rxL?htkM~D45iv2d;l+wA_G`6fW1j%vn>f*Lt=CrZHWv%PU9Ul8 ztY2q5bk_f#X%oB4-S3- zi?SlFG+G4%P5b4psaNb_0N>;bEESV(Yrfw$7n4>Q95QaXYone(Fbf3egRR&AXdZ+B z^rt@(gQ^koRX&#N$ULP4@)-K4pQgDAIJd34LVl`(XPZ}JJ-Jb+&NcdiV4Zfrm|gMz z{dywmllb-~5GO1z#Kpu`X9bfLf?V}hP=}W{dPbfHR?wE1Wnf`AZJ*H$7<{ory#>Qp zn*7kZ%wW59&r$kiG$kyRq{Y;_k(J%Ahfh})3@?5)wK`wbdl?EgE?g`xa@IXAc((dn zq4P8!M^A1hWxQ;|Q|s17yu)SGVuP>b^sOwV>+6$z=nS}G8T&gPrDdH#RwM%;pl1@* z=zu#^=X<)GSp+=xhv~#AFkp~cMIp3)y)HVR&-2}$`UiPvcMK{8F`!R!?$^=YUK!{r z<=_!e(b8fl4kyw|P_QYMs^<$qeLew*aX|n`00HQ#BsuB4Q25BGi~ZVA4AuY2fHLy} z_!a7t=Kz%CN1kAhcG%0)slUfgs^;uX+?cIwP@E#)Ul^cYFbt4DU;tv-{>{GNIUhi3 zT@9VH(&8}EFd+~PKp8=<01M3Ll@$C7dQ%6+0V(Lihb8vsnDYzAQ6 zg|0Lo_XJ;r0muW3%dVVyoY(=y!*QF--lf2QI@f`}z%qS(ecZos7%DMccXs8;DX5GW z0>^Kyo_w<9d1Ap^pOsk~=|L$qktSs*+k*#1M>$% zT12))#Lu1%muPRXx^}31Iu2EJJ5yq0jL@tfzY{OHM@B|QL`A7U@gd$y!>y6U^A&cd z_n==s95+l%)*6Xo_9o?L!Qdl_h9L}n}`6_@pm?=|FD=_^4J_qwj#1qB>{&A2{(W3&0Hudh6q-ZUG&Ud^} zLlj3OSPkM#b?Uy`#Y=s%V1`buUmxcBN7j)I_CZ#0W3|K4WW}L4YcUx?0VKRQ;c&pa zBY%a45&dr>UlLoHEqkT_?b}RKo8(IMEp(bAKY^b6o4%4#!aMqQ z(mv)2R@M4#)AjQ#0Fhlz%R|wi;78ZTJ6d}|4$zX^*Id)zeE>fW0T7icR&<~Zr0PB= zQK--q>G^B`^)>s1ODX({B`&v>(PE-`KMMT{Hq-Ve!SN4AAyCN+RfD3P@~6Qw$$kO4 z?-zmQcCdEJWox{wj@>EMctg+_fnFkx~lotsx+*X2)z^n@L zKB{W@fR0`W?UtlWB`m51$7Y%f^p6x0o>aaOGLed zX{5*!=)bAMq=n!6HuK-pEU4C+&$!=OK96~LUwd@ko_ruT;0u@8vCfw=^1tl5ak^~x z&Hyp0g-N>>RcG_N67~27y8j@X6|^1J8LCkAQ1Oh%S#7dLB)B=JRixIkzo+O3 z(Z0v4O5u3Im&OZ1hiRZtH&{;E{Kl(NRi-vhGh@*0(+1+1wXB@Lr~m=j3<)X-fy{Ld z09C1#ug9jSrJS?nNuuQizChwgxa?9*bzFe7JhgzT?-#(AtJq1h@*w>d1u*Cubx;r& zN1dfUmx#=dt8!=HjNoVu1M&gcDvOagf~kDrx9X{fz$uDL;Qogf5=s7_`={fuLpkAX zMAod<7pVfpe%K_6N$v3smVCh|;X&LFg-aI+&K$oYDsA#y;DOwvPgOk`HpU+Zev0M& z9q27tXxw&qdvh%9OMgm1PF`-!USchygRWbtR1jqCGSU1bfQTe>RRD)rol38zA}`4b zQ<5Wer_Z{K1eio>-v^D}B(W?2#4EW>c0^#fcRj~?CpA&eS;<^w0T`IZ!*#z0yDM+2 zXho@nI*-4Q?lc%zG6NTubg>3EG0xPM{8`5zn}5R;2^15r)Zy#*Lrct|9H$-pmLR-g!VG$WkI z?+ffB`I))tFKNegdqY0k>}Jy!$w@9l(Q7xB<5EI30wYo{)*YZ0vyai(T?7C4 zy?Uj_5b&bP(^P->P_$A(uzzK7q5^`edhHv4H~Go+a8}ujxFs1CnSE*UKF?uhv z*$8Oit+N3KQiWWfOe(F`f^tyWKPV|C<>5rL6jlI`m#v)+aLFo!%71Etgj~tTDD61y z*E_Ws$P$^P0#@sCWM60Ie=jiZe`1H=;Ir*L_sgUEu(F}@Y zVPT=I-IEIPMqf;}717jkOhTici^YY&@~8rwM@++%fLsQ)9?aZfwuWqgbKyjeU@^Al zKp{jkm$Ljz6|5K(FX1@3SwXLdBjD5e?og(=*i;(*4*FkpAyCo-t`?Nw;FPLGIQY?~ zSLD(8pHbQ@CDykTn^fxYfXE@4%kQ!EJ{t`^CB^znI1)}FNP>XHI0SHr{9hlV0PK|O z$AwApl1ixOqGjd^r#UtO`oDTpWs>wQzz#VyDanI@HSoPsPqpK+_=OJ#_rC@dwJeKE z!Vkm>?MA>pN82%>u3ja!g#3DV|GzGK0u4Gq((`}s>E@#ThxY+|)&H}nBLU{+`~Na1 z0?!*f{-ufB@tRoyYjGek zx{?I{6M%jqynCmDn*9p)2jio&)9SV|13<%KR2IcwQw0SDhb>4*_qiz*DOD+TDNQYZ zTI%f_Tn&{>O$Gm5)e1Yq6@w!q&WXuP05p4jSj&=`a~ui+!sG*WgS3|Sg}-uhiS5iW zC9f&Vzjv>EJpycHl?ev{d4ux&1!V>~latc?dFjsv6T``bob=d#pJF}yD@EiSyFwyX z3l?~m6Im`bYIky4V_B>dzg{Ho1atrWJ-%0`0Cjwu=LO};>n-dq4jay!eEW9`tE}Hw zHt_E~|L0FnnEySVfFJ(<{~*OKG%V~@u2inw1iF{QNoFD?{ayMDRAQW&{r&y3dEFIG zU0$dD7cm^y>tn4a475ZGEGGR~!M2f$%PObiMV6;z?{h&;Ubc?Bf2Mrplj&|>Z#7`M zc>M{x`0f$F^%wzkE0ACZ0tyPpQ_Qu- zD`CB50YA zH+u?X+~P!HzwTi3O>5n3AG2a~RMc9$o(WCO9BXyAIm$IJxilnB7s4YD*iYBs?5yE` z--fx~-T~^cg`PUhDbjc24m}tY&risBFS?Pj-d9X1&X&%a{4m)ok*+%U{&siOlTITW ze~`YR;XgjEx8Ik=c;1fa-BV5chn)!aCQsPK7IP5??WMfYaYIG{9*iQCoEAKeqFfe- z{8QK5>n|44yH*AVPxv)K-KbA{56)Fe33y}U_4pAach~tc=MXXyiY-{jQQPG@(Q%L# zxkxc>z{ArOt?WaUW98pit5oX?pI3A();?0%@}|0zsWQOH3#~YINlLY43r5+E^$aYx z(%tvUP3JS^w$<=3Iy}5%OCy|z-zC{O8Tdic7>#RXJz+S?=+Whh@2U>xd^9X-?8PAnijwRDe(Nx0^R-l%h7G7oO_QzJ-ROy9yf`* z%Q#oG)%pu?A8A8GmOWjc@yM7}>3As~q2zq`l-ZdyrE*4UK1~kOIAV_Ye~WzacB&(k z@_EDNhZ{->>t_6Gfb7hv6Sus&fLUsIsAiyeG+FKDIw-G>j2lVWWPK>6`~K!&9uAeC4Q&G1 zzUb!2D`s#IOR}(RJu8d+6p(}p-l@56R6W0^ik=_x4Td9SRU#s(;praLW;A$egz{$6 z5Q+{Yb2PwwdiYsy)6`6$v0b*$hmHMlgmYWS*htN0QjN&4l0I`Dp)WOfrIuTq4rI_h z!?^C>f3Nc~qhs!3q8rZW_rN$>>xBuD)dC8nu+hGE<%@d>A)$vUJ-EUtb9;%CP~7F^ zDdT1O$&zNfsf{T4)3M~HUJ>(E+paY|fD@T?IH!JU`Oma~Lp2vFqh4ShoUM|xUzXjU@d=f&Tp&m7sscP(mt7JgOWJFnsS;|l4B4_aa5ok7ALD3z{MGD|UDnO;rz86- zpT~AHm|B?~=b><~*j#&rX*gubrPg_mrJQeQBz)^c=EZoel8o6UHL=7OpKb#$P`c+a z8VrFmN)S*Zf9WC`{p@9YIFlB(_3v^@{gBv}Cf630NH94Ax2a2ePEt9JUz(Vcce8Y2pB@O1a0+*B1fJOi&ih{g75ks)kIJ z^(hx8(xT@cL3IR4WP+L>qjup{19&@8tzGlR%+O8Xq~tgk2E7Pnbx^LEAsWp*T8-^bShV6JUcwB#p~2* zX~uq1gZg35f7k|{{rHwV*RBBdq7KN>Zu!4F;ObKW;tH0kQQX!%28UmT6SMuNApKKH5;gl-zRbsaQ zeehd#eh%j=$Q==b(t{ww24MWId+rec9I-b*23ZZ&`4zFJ+vW`Wnix!06sU+lSR!y= z4FvKF+W=s2GW>(`^$h+_lx&Cks8T6o38rPz+Yrtx%u+j6Ls zEYcl0T&TVG8?wA)+msd-^245pDayo7NRK6!tKhKzTYA4;zeXJzbw0x32^IczG6$PH zlUk1jCx}cT;r&vhJSWHr<^xgi9o;1qccKAu3ImF6x1;ver?^g32wkb+NaHEyS zcI>ysuhrzFIxV#@t<9&RJ~B9J-SV+0F!SPOk-~SWqC4$r!qlo5TTr7B8!jS52^g?N zrnN*W)k}@s*h&Pc6TabAs-=ct{7C290;@cIOYKVsA2xZg?2&+e^b7^*)PsJTrQGnT ze_nvWU8bca#s_O{I($DWcar;Jf!;8K?e2Y7Z?wm!SdDAdlC01sMD4qq6C_uhOuVs| zN4VqI8&Qw(Fb?5au%!~k8;cveUIE{TuFME)ErP`cq12hi3J0S;#(a&+=E<g0*f2Mk}7g6n<>;gh{9T5WKcge7So=3Wf9z)Cs?OD4Vn=R3dr2=vNxI#&)=U#BzHXkW_AwTOH6P6>M^0<$=6Yb zw(~%7NAI@$ude?tCpaX1tfT$OgQSW%jep%MgKdB)8;` zITo*=y(bqp&Mf{?GX6fTjIjjzvCh;|@aRT@vsjDlD@gC{ktF~3=S){1qW5`ux&bA_ z>jMD&!RZoN^|f{&`y3*W77Fv8Vx|U|^-9@b0C#HTaC%R3aSuSgrdG;-11$2>a*9B$ zns@Xt`B*>)nCC==gx-`Y)aHV;+l4)@llLY|zp@(pWmd%Jw{;WAzD$&AcSxRyCjTC(v%e?*9@B!fEa=Vt z3DO<~ZYrXG+xg)_8VLm}La1x~Ui8mdouw`&SGRiwIA)aQUE25XX1irjweJEHHuo-} zTDRXDmLvMWdAh9bemvEUk?9^)H9?q+Yq9D8?EV@NBhcvq*30w zJ0+-;8uPZv_vM;6Bv>zf`k3USB=0`fRp8cBl0Kk_6*tF2)>^fQgp-}Ir#2wLpLMYp z;p9QOBi*SRCV2wPJ8JCROU}4ZsYext`sZO?w<8>MziMc#HO>Yi-)0$MEYHK{%O`_d zyZ5Mk9C9|T#F*A&W}s4)6@#eS>K|3l9!>^?O1vs?5}UFLC3>|6pLS?_aU%Ld1IDl> z4xebaYXA6l{+&|6pA7c^#xLhM>RgALXs{1&-F~H|9W5@#gM_{Fo-vvwB z$sHDj_08a-mf%(ci+R7-ax;Cte`5n$^14ox2@r=aV)+sgrUY!fJZ-#GOvFKnkTFv) z1iT961=t@vOVmI6_&Kb7b)~y!H%|ChtaTpKU=h0qe~`T1Ypg%GX-K)~%L?V&^9Z-? z|0VMMLiN^x8^dIqg7u`s)$^CDt|{LJ-pge>D(tf3=P_M-cpr)l|b}XOC zF0Fn5R8b7tk<_H!Hh>gc2vE8Zie;Kf$uDA&A3XzXEV)trvZWjO!fEpsSWb@9S}t5^ySJ;1c`@VN<7?~tu^Chq?P%uWp93ZJ5?!Adog0h zWr#0nejTf8>3@me$!`yHa_S>!Za?!YJ%_;#@kB5+Ccyb>s}Z(ug~9IAb7hXfOoSi7 zX$@Zt`c2GGid?z=tX2SX84TRefZ&Npmm;Uv+FHXI)1xP;G%Oay!@nb$x`nO&rPxc^ zL3*An_|?vsfmmItJF=c!R%h)`AI5MCHS#NGFMe!V$n!KJ9D z66Qc`l@?Nl_Hp0v<@9@ba$oh_%dz%SK|TP)1J$hLK+;dR1JE~sdV$cCL7g|od|oq6 zv-A$IB!GI9m6Z=;Lu67_jz*JQ)9ED;S%GQzahkEn^aG%+FS`HoT4bN)c?IX2!O0w6 z6^MqbNtFE5`Oyiem?B?^>9Bf{&P`lne=Q+A>+w@WwzEB7w-23;Z(RxIm)t5ftVfrS0rW<6kg+>iPwPq<=l>UdccCuDxoB;C*}F)_(yUBm4@dVcaNp)1Plc`hln z4KKi6YoX{zi}&q$332GYMc6p5MKz@u!5=>8-%+lT;a7V-kb*)e0lqHcBGATheT!G< z3>@a^v?vpBLqY4AFOB*^`3>)Vv?^f*FUHdDA zSQE(m_&8Z>&UH2+VA}*|GQ;CNXyoPpTrJOpn`OeVu?Id6Z_f2M5MDZzM+@*OH)vv3 zczo(eJ_f7p6R8sh3>n*$<0_=;0HMq!L=|1C)+gb)S46H z@XPSw(_}m5=&RAOvEsl%fJ>5H>GOm^$shP|@N7$MW9d$Rj=4YHFhwc(kKy&m_m6GO zbnB^ec6m#tprWV^`0nKS)1#t=sCnZ6_EXlY*Q1?b(h?g$MO*z-UJ)U`SNSm~;-obH z!0%|L?%ptDyjiHF#)=Xzc1iTqbfExKSny@&PsRF+sE;&-C_e!ot2*X^S(O}L;-Lfu zF_pTjeygJ}a`IapKL^uKJSOJ8W(4Hs5U4?eoQjh- zOJL9_zF11h$f#T-Sz*5l>|o&FKpbeHF-)!$vTMJ@{tW&#)n!n_9<`w~n*K9uzn+=L za$0qFQ2Fk%D|XSdf;AI~D0KL9wXwzJ%CD74Fp0u(BK< zy-ESr_iV$f7T*-MADFM#v^*MFKCr#m(Wm~+j_Ny_U>bf7Kv26DsGIq?^2W#>8A%4S zu%@xP^hOIhB#9sUlOe|bzqMIskz7Gp@8eiJ8%{^=j5@;gMxsR^O?k!VKlTYynkHxD z$c$BQ=dB2B2JpM*bisi}U(u=Gqo8O&ap@!>Qb7=bQ!$hFkFUF{fOOLrZnBFM;(Rqu z>j&P7OxZLNdU_;4TL+k8+Hoh4M)x0p;~91KYdo$Z2{Bzj(fe?N#{w8y{Nx!H51)iZ zM4%b<+KX?5V_h!ym2Co)e^?+Ar_rX~?>58m5F81o?eGJqZZbJr8av3SwgK6T5r8QN zoK2IRC5sWoH?3CN^>`1^G6u zOyT(%wOCWa$YNN0-QUwn>VT7x87@vA;=b+E$Yew>`)F0o>XLlNFP~@C zuGsEL@=ttQ%SyK~?l2bJHt9t`Y7)JX1GU*x3Wf$gtl)+3anMOPWnnwcdz^+V1<>W| z)l8&gTC|OqbZc+^4`pu|7FFA}e;WuQB_Ps+N=iscmx$8c9m3Gvjf#RnDBU659g-q3 z!qDB}NHZYFfH1(k=XhP$eP7SBJs`T*NDY|PAB>s)J{=W+b@eP0NV`1d4pALA3{57>U$< zA9sZ(^<||m72BJ8%bz44QHi_b;MNQD-M>^y_11Pq{Hgs7Ae} zmS;fY{l01CvH7-LMIJ-Kjo1Fyh|N)3o!2Yt^$c!z@JWoJWmS2|8Mvq4mJo%l)DY4B zY)|}j)7zfjy1n3Q@R!WkpGQ-?!e)re%4zM=t-nz-9ulN(Zj6!{XH6IPdffUkfU|G^ zbz|$;caksNC-dphtX`!|@tcd;PKVq3{Jbj;PSl5s{pL8=JwRsIEHx*Cc}Q7cfI&S7 zxWaB33X$FibPK6jhTcp=znBADH-@uMZyx8~(0pqqUt?|s2@Opy)qXBj9M2ZTPsx3E z{}Z$21C|Tnum}2|ns}GaUxf^&>vaZ6^ZjOe&e~C^k}6nap^3`ZetW;;evVOFpong% zzD43b5N#uA1fAz?h1w!GCVYCjyEiRGSaob>FI0P3g8;SuQkU$<8B1+~{89X5PvVrH8mJZ7YZp^3 zw1>2tWPN<&$kqK@Xw4FaVxccb>JN)&hglsQS+Yae?WD#m;*zp6YPP z-?1XUMe1*ENeGjYXHti;1yv^1IOD|-$fMF6c;y%pVwo#UBGY>>7fxlj7Du`LI+zgt zPyz9ePJNC~p3$+P%1j!<=7c--wjH4pA68w-dZg@an zUqq^Ej_Ml_HYsG;r53&=gIE8wcY3L6DnI6O4Z6t#rOr4{^0Oi;0GHND$FK=f%!l&} zjKIqMP|}Urwcv3O%H4!g^l`NLh8DKeRikAz5ks`KZ9gXaidn+nO7 z)ujBGz2Mrh0)A=qJYQecyNwg7g(_yzi%hpDRj;#HQroF&X56-Xl5aR|Ma zG<))-OXZyZ+AR~?||U7VtfU)$Tk zi2Mzbk^++WSyB6q+Npln;1$kT!Bl|2y#{4!LwZ|~|HagX-W3y=zoX-(7&ianDxP*b z&X$$&NhHo)X14ptON#35AY){*_z_rYl^2f#oTg?gaY^C!5(u{{D@Ht&ug}z;yZ=HZ zIlmU^GiBmag!<@x)&&v|d2EO82oT}l#>Q;`oKE|NlwT5Se`&>;=@st-BRiP7eDfPi zSd`A?mX1)o61QBU$M*>s3t6R=>_XhoN66xZ$8+xdSE_J(TjJ_zR~tr;vN$WWH5B8L zu|cN1wqaJktd;6g7>hOUrp?q5^Qz8W=L~0wyh_UGbYr%70!JmrawlZWk3B(Lj~s2f z{cb-&%R1k+A2MkFTBh$_?IS)_Olq3URTYDN?n}%{ILos$nmYowz2DH zAcLq#^2cNhp?p!iTJ@F4`s+{=tHyCMHkIUF*Ip`+Q5(Tp^~#8zE*{E{1|2(g^-oXU zCLRv`xGJ$V_4wQ!>KYO%YO7TibK_@g!wL!KOdUh_4GLgeRyWMnl6JbdF=*EI?njB< zNSiDLiq_KiS06>CJ4V{L#a|`UzxeW1+(LH2yn$vc`pM48EI*MggGccuV85GE2RBQc z%9hcIb)qC3FsFt6Z7_xqI&kL_cWy=sQsBgenqILWV~dRt6M6F^OG!bY1K^Cq%|0#^ z@(y$LWqoXMcq@D=_-6`&=3q^Zg;Oaw<1T@C~`JQ?A{wpeV$$M9D3S1 z86ZO9ps{V#IXhyk)PNrc2d5CV2O=SFsP|pHOD(s?*wG83i7mjAte9RF|41SJlUeWy zGgwkt>N#sdi@9bV90Y;Nmd>MtP!h?;)yp`2=ReZ!z+O^odO6p7ibAUJ5X-03wtP_x z7(I+5;&6X_>6MT)Eiz5m*W71ZY4MF+MHzhj2zQ`1CndSuOjY(EucR^iI2KQ+{QLLU zR>q&pk8P%jj9YV^LgA9B<`2B+^=jRH8Y)bu%3seTVaaV3=)fgc)$*agM^icLz)$Uo z)-ucWie+>=`KTw~nSQl5QGmd;*{4-E?kL{;`5J{ce$0L5f78P!T^->I-}$>W|2b8B zJ#l?hbG4B5Akd5~DA#^;=TXLIYMs13QTa=is_CNa7k8u|%kKqlWzLb1=kL)_R@lkB5_MNvR`7P&OuLnzl$6MYrhob0iZ`w z^^z%;Z*PLwFU_JgQ%RB4j|Rx>w?cx z*(}$sgXd5A)<7~``RQw%3nnGCmnme0B|bt`HpHo9B; ze3uXJb$|+taeum&MG_a_{NQ5hGoR}wPeR+nn-y}~W>#dl7jM7O_S5w* z@-cc0mx9Lk7ewUOGV0gV9Y7g?-NZ&gPywV62(`aMSvp5dLw%Wn=N<*MPoaDI65tTEOj&q$>!2T7; zU)hwYz75cYnK*3{cIp=(1g>kmNK5CEdNrmA(wd7rSp0K2mzQa z`-LWl&d~nD#IP}9krqjB7k*#qXn7*7p$WKcGHmkryKp}RDmCTx_>wN|MLPP z_Jux6P>wE`odvD^o$WQ1$+OG}{k1=P^CV91k1z=Kt#b%KS=&KRp2X?2h#Z?Xd#hlc z7n_+9F|bQdryAD>4G zQJc6&sj8|@{+DurdJ}&2`y1#W)mZHM1GzBiyay(Zw-po=ifIJurGa)ygh|~4koLx{ z{yGfLGSYI$$;l^NW*`}R3dxEyiquL50ZPFfbAn~0grXjTZbJ1ng4k^HrB$wAfWT~o>}I>Sz>{u(2H z{}cfo;|KEQ>Mx&bmo>{IFwSaSi|Ge?1G?0Kw z37Uct0DF7}z&!5-P)3giczF&$?bsi&Aw;&pA(ybvnc9Hy7;fV>+%F<&7MKl>e|o^6 zHN4yAUA%pIV1G{gKi;v!Q#jzLRN&D@>8!>k2+%_C$~OW@&(2)K&@9*mA~0j?0og8x zyn#86Gu0dOpZT|@Dk@0s-s_73LD9EYW09RgKvr43|FpP(ZlrYKH! zLG{%`EUH4GE{jZDNiA{F8!s=t69m8kJ%>KSl@<{Er{ChsYYOt$T28l0wrU9ZYn>Np zq|Oh?C4VnpjsN@`Jh?1EYruB8^6tNT2XGX?TeAV@=NuyQ#FHaU)XVT+$N5Pzvk{aS z8*-`|8p5{&gj9MHmKT8YJRR<*1bF$&z|GAc4V!n9g8@j_=)U@HD{<>7&_?|c{P-;T zu>vMxA84kE3BSrQ1ZhVyCWkO9#;NOsD~i1Vi%7e}-33~Ppu>+_0LHqP@WA99fF6tM zi5IZPh}!{^$*f=F8JXwslX4anLR^B{`_Gwqtv}mfq--ifC#f`(AEFf};pwfhmJY3xG8zVX19kM5B zX=xEyt~3~b2ecybu^g?Z=R+XZuzd3LY0;js!jQ{4aS` zfjg152}qP329wE&@~pDQuWxK-rp4OJGHw#Q_u z76xx{2NoXxS8%tAJM%!8E#i`eDGA{_upf7rm~j5Au_W-xqNsQu*XcBZR8oN`D}9h( zPoFO4qk9f+6gur9-aAQKQlJL*z^p9-q%4=X^(Am^?+XEP(rK!J;aLyi`ogF5Q+WeU z5sP;0L+|g6&F5P}hxFackFT`-{!Y-J%#R0%;tniNW8QIP90U{+nbq2Uq*(_OKOLu= zZKz43=>``D5WE;J6HZ)I`snWE920q_SR0 z7h|TFuzx=A4cmI(-_IC9ToOnG(7joL+v(}eJ$aT4tF3_y2_uFWUZAFs!OGvjlQI#0 zi<-Kq_)cVGWOo$3*kN`NlO+!*9)c9Zk#OG&BGOg5i;D|kpWU=YxlP`{->!i?=&P;V zWiULcDC{E(%mx15;>hJ4e}G}v2p}5Cu1{cM*@J8aXA(H01~2y7i{SzcbI+m8^O zvnGyd1+xKj@HL!6<3T*{S8%i6_MOwLSisul#o`r?Sw%_$a-aHjUWpKKNWbW!W zdtW6}O`i<6A}4cvr}(9yHCVdy=}^v(KKmr}#|x7O6F+l8H;h&G+}4&KD^u^MEg~{- z@WLl&^5T~sr45Hei%aKC$>EXvT_ViuB*_eN%;zIY3^&OqZrjjf=sq-+X*zlevtve9a!Bn>a(Jb7msd+I z4k)uqpko;kNp5NFRT;y584HTn-6J8;HRE8}5wwZyz${pA-Vz(>Oewzg}7ncRJX?VT#utvs;*@ z>;+QN)w+vtTNq3g%YCZC;Tpb(usoT?v2qO6eh?bU(r5zVwsI9^e}jwuVwB=O_|1QI z^r{(a89L6i+$J68LcBb&_k3)?ldo24Mt!V`;6h}#{XxRSe$ub}z|v8OnSE;5G%iIt z12$6+O!<8N8SNT^>a=z2EEZ@!2_81pGFYbE^PeW=k*PeQF+o9PINghyda?9u=uc;8AbwU9caqSxnU?kg!HjKk}=vo z?pk@Q&Rko+us+1%N1Ww1O@dcf82!vpqyYC@3=edMxGN0j^8>8{rfDdCOfwOozY1V1 zGW=V_IAmbO@>3O&Jqfw4o)c3II&-&eBj|rm)4X{PQ$>dOPFzPH*y?D`-In`a3QKe8 zW2Hl}+oQJ_>MyG~iH3CL=<7I1U`(S`A9^?&-Vg+Nn7*DIOkfBqY;Uu zPt}W(-D<6)*4YAQ8-5QJ^xxdqnBZLaq-A^1f8*hJyPo!uiAS1IZZtWH{h1=Fio`jY zTJDN%>vL#NORXF6q~D@5okMFL};TN1C#0vEXY-dc>$$4U8H*H!U`b z3epkF!&OqPL4{r#h zvx{eCyAht%lc#m?GI&mtpO~vOZSX-Y<&4IxH^w(Zke=j)^s1-$5%cSu){;x9(S34P zG}vn}(fbdf1Ws3U z6244)^760f`6Vnf!doo*{q{m=+38Jz!M>~4i##a%wq)X7<#_A(X82ZV%nDu^h(ILN ztojjqP|`ojEBt%}&zZ)-MXn*b{VgbUTYnc_oQUj*U)Q!zYKwpwFn+p8k>|w-Di(nQ z2G+*2jwvD|QOOoDuVY_vjj&viv+J^W8{U7n=o4REiWK}n|LS$3DjlSvT}`B< z(evozjaKW%biJEEa4wLH`pR3EnHMSKQqwz``H#U<*J)_l#?BB#J7;~i1^xShH~7aYVn*HR za7&M5y6LN(;N6+iTdcaRVJ`$HEL8Pp@Zt|$h@eW>Rvf=xZsneMt0S8Q?-!o9EAUlk z3o6E4wyi^dogGT_DP6yTz@`LM6}-p!9$X3;1_`kHsjF3NuZhX1#(SdYwy2&zY%qOi z`H25+4oMw<>}p5A1hHTT&Zg)qU|MZ8mR4&OHo?zVvZeD_C-u%-J-U}-RZ-N^gYx+q zPM12uO6-YBZa3gK(^e5JhJZ^8VS}f#q)y9uaa>cI6{TY~XU^WA4UNcIYx>Vv# zT$QIX{id)|=^-ZCa*~%qt;Kp?c163OmmtXBWl%z2hjgso)g|ge_xuzRyr)mnG@~<;LIN#E-JhmX_c$FiVC|X~+C@aEy_$PKZvQj|`7E_gEy38ws7Iw(A@& zWAu+twqJS&BWt$2=e1M=zu}o6v7Uefd(QV@>DkYy8bMTx5yV7Y_$Ta&@=~$W7%|sq zCaGb?wIKA@# z@eM_JsK4w@*N-*qqF&ZLZhh6_s?5yO(BF6M76bFIi~bsg zrsAH!w*%jFryuVRM*5aZFGfDfu%uaOdlSvP*xW33=MS2!Sg@FpQ{1}B7fZ@!3^lvv zoIhN1uQ{Lb>d>!X+nId3p8HyOwRCXF*xIW~wU)+LvXr81x1IC-HJcIIuPp7u zU5%%ku6o>z-k+^^ziq2con5_T3wttq^kg6*`WU8HQqQGL8(E$4X9zus!yX$|vi*GAeJTjgX&|spFUYX7nrbtdg$fpDDGzAJKzCB}RfLZZBNUpShe1sjp|mIE zf!dY577NXSo`p@-rUV5#=GKySQ(V_0Y5f_V{8HxdDY`LgfhLOazCwQ`r>y{q2hUwl z2|w37Vr|Y!hMLvkbaM9ZgeM3}(D!T_n~6=f^iF#ue6};l7`J2%TH}n8byN=`^a!;0 zf^=g~F5yxau)~uSq7`@l7VYJ$SXP?!DB zGDCy-!~dbKgWF-tZ1t|bxrJ!F5^K(m2d&)v|6R+7l!n{@-5U0c8QL3RU~0KE9iOrpSu!Ufu-v(->;XPIxIas z{5*ekE5Nk}|8p0A5@(~}6%;U-A&WQ>$2Ea9TxU`>#0qkf~ zMhlb^Xh9u8E3?^aI}Csz7Ka-n#UY^B1*#aCb)dJ^a2mWdUc_cpUrGa`d`H0%7O?vn z@8idhr#G>cD@Y8_YR$C`0h4Y0bT(4E$qJJ}cA%WaZtmb7$}cV1eueGUPQ@{_Tx_p} z92D;!$;)3itamIT5!n0Q{T?e7*gqUoLkxhpUr@XluCkP)5I&^9H&;#Kxy&dV0aPG= zFQ>7;M#{b{XOWzQzs{NwyE=S<=C$R=xXssX;A;m|UOQMF3jf-Db@+R1_8UXV!Sa&% z0&3@w60?+*(Oy@z6d{+WuC6CtJw2bW^=PFbS|OK3U}GfShPeochYDleFkZ7=22~`Q zh#je3NzeGpZ0#TSnmspPZcUVwSj4>02d+A|*win*CZMcGs|ut4M~wqYjEfhPYi>?D zFPKex1`q$fr#7`RRIql}4uel|Rx+ITQS!DcyT4R011hf$ZFAzilXjYO8u&X^$_-(E zxP4ugc4ciIbEUU})wj+-*g6B+gYWZHELKV;a zyNg_H85GYpmfEFg1RV=sz9ORv+$t&<{~dEORcoikY1U>O#NF|vR~8`b9M7IT8}|jq z2D+JhjR<0jTb{?XX7xV*jPyT4x`>MI@Z;m`i$=e5TrwYhn!QB(Cj{ZQJ6Eo?Bc}V( z?USw-F+}CN9O{^KzFp9$b*#LIJkD+H2*I3F(h53$0hoPm@$GnfQJ_RBjb2H%x~|xh zjkBGbD(b~P3w)#&nte*_`qr11%{fh)ZebO3?I(L7m=ZpU?a8u|m*JqG1`Lm+KnG|1 z7@+o#Kr?0-cxI#tyFDiIh|Bn&hqni;?iK6_?IOjjB@3JU5qlHir%|;ddfAV!(MkB< zBBFVy{-PCB3$r~pM@@CO*rl5==ypsez^IBuPs(sEa#PeuZ{2!@t+%ZYj$bMe_B+Te zrl|$Gy<*W}pxh$>t$nST7XX3Qb)sx?!0=$Jwg25dMOc8-o69~Nc6aB@!U|4@3r|rD3xxirNOjFwcQ;6d7nzds6Qx z{jXxQCHB<4Qo(cGpEl6;yF(W5FZfhG{h&~+o)LTDXdea#ab`UtmBP{CuteU#y*<*- zt5!@De`y&s3dhYDD_Ivnxdl6#0dMjeRFaFli5$iYvq`E7b<1c5)5Qvk`QptpYP}jk z?*rgxxL9l)gvjL;(>qNR$6pWxY@UEiSHpX%*ol>Mi@N-Hq%3aHiMP~MjaQ<9k_fwsy<5h&1cw3;tk_&%}+Nr(hjD~Q2A8$IxRAe=` z2S&@8$PBV4-u6w*z>nwydAZQ2heSe6MNah`O138frZ@Lkg*7@u&g1ApnOd{rb=#6r zRA&+Da3$^m)`?YfY?e*ttn;zDOP~$T)3~Q?XD6=b2LfGOixJZm!7|w&p4pySn^ADq zqK?!Is?D z2GiezV!j0cLfCYQZ;ATsmKH;Tc0aFc$7g`n!k4)FTEif``X9#^$!h_?Cj$mlOIdt) z%woVTp^i!_SRAy`qZmTYNU?AX3oxvc3_8U!FW6hS&U3Yd67!Ci_98=>QWdlJl>sM% zbq)jC(HxhhHs_EUU4A1+4Tqi$C)#qW$F*q* zPNWe&o@!x(NJ>!^jp8m?wS49m*s&w%H7`YX+!?_iMGZq}Y(VWj2$KyU9&_-8{oSp` z;YJD7^s-Q)Q7L+#xiN1kkI$xqQGP~MwR59B5kcQpFd1}817xi!nQ)Y1&3s0* zj~aC2cdM&cAT^>%lA+NEVgq#vneSK)&aRm$&zOYY@(L#DwpT-crm2uD^;*fDAy&Ou z7j3;5X*|jNo(z=~uuON9Va2=`ci~>S@I5Y1OJ^{%KDL4F@2szuoU`_p@M%Y2!o7bT zwTNpbM6I%pqA~EG6RKa{As72C;%oVgEptL?T4Udq1?r(9;%2`BG7|SDP3q%Iw%L7F zfBY8XALBI%JKZDPoH5NvWR;i76h`dOA-2ve34MA_KKDt$>%F|n;`=5Jk`MzIjyp1g z^`WPOUFWY0oVI)iD_xC+EZe67UUz<;x#yLdYqP`)tSkC;#Z6hQ(weIkBm_~Q>WN{g zi8voOw`Wk=Yl2^t4%Y44f`6`~{67n?9>d{G9zUa5+rMr(k5z%(5&bbsT;gEr$W$Tc z?|sQuPoxg+>w2eHPf@>+zMDDanYk;-!-l=xrwX|g*PqgX&NVTxXKOq^nhVmDDA49U z?V)v92CEE^Ce?toj0F8gBPg4qtA=u>qzOvu_j2eK8t{*r^p~)rmm3Gz-aeR3$pHLo z+=Z!ea}%_e;^vqw`fLb>9hyd-GU{Sj;)5;Sm}o%xDs)uZ znOU<;s*muNNSm8(MNHF*QM!WALr8DveTNgObRo*keX7j0V**a7AJd>{y0kDYV3J!A^GgaTMj|T7l(DnG@wDnpfo_=K}^v zS=hmFpMHgHn&Wiug_FFO2Sc2p_o;BbOEg@v0&+{gpoR`zJR6NDLBRVDteDkc%`V?g z97O7wK<%v4zuw+xX_sZL{~&43G{es)ka`_&kHL0E3FA4LIXPH%SNcKpOzc5x$Johm zR~6#?M9xfzL8`Kf@>LI)Cc|W2YRy5Fkuy20Ir&#~WqKkU!EwE;1o!Tdy!bmEBA@C= zm5h*=TRA1XNWPUqI}dsNhJrRa?>TKz%jOglZnI&A-|6ERyuPZIYqJ=w=6+oMDJg@2 zu_L}lk;T>rHbSt(@bj4&KZ?P%)%WKxj@jUayTnz%K%CJt**1k6M%1dubXEr!DU5@XTw!)t0_#WR%(}RHns&#Vo;JzeteDgL@ zI6`kb-(_O$V_eePbv++ALdkk)$T?{tpLpFA7Qn%O93k1<{;f>e1dL(5scGvAp&12q zh};n`|I{Tio`*;D9^1QCrawFY=kYT2{*>FvpV}0( z`^D|1Tz)Qhusf*Bdz)KX<@V9sirHtKh-vDhd01-NYN&(0KNeHkMocfdjFnN1Q6Bho zy#YXQ9S3+m79^+@6UGxh4ehT1swj4<-v@B+RBT%gs^uP3OAquIjP`q$6RAI_zd&br02RETcN0+aTqB{8%9)ItTO z<%umKHYSj{=kaZ(p@~+@o|Toz2`se65R0zrw7F#B~H*<|N4&Vxt4=y;}2h zmQNqTqTi$7F;*}rP)|a~>DW+o?m0lWciVgH!{ADfcEXTb5HfrdI;%b>Rf;wiZW1J{ zz8}C3NB9NgJt*;kHEZn-F3}_>dL_-OX*RrH@PXu8TC`)5Dj>YqSMHw5Y4y{It?3^r zp$9jcL`vJw+Z?Pj8{RB5U8Q8#Rji4o9o;GLUvFtK;qhuIs3EL7KS7i!*ugYN5^FJK z?-4h*eN6>}E)*W`kUGttR`C@+4MK*vi*x#9StlEDXU5gYCR8QWn-*cN)>-=f)nJ(K zp?Y$hc=96@y2a4`DS67$5SfGePkI z`1BEZxV;8(mW4AgZ>${xAY0yLc82p=i5ddXH3GMnGmi56wN+yN%B+d;Q80DSReCc?PX z>-m6@1+mMQV!S20rB8Ln*Y_$v-`{@(dDL&@{D5cU_mPP_K`Mb8@~bxOnqwQ~U~U_) zkWITFLvw1tIhP9cgBF8|cU(M#3GemSUApXq{0>@MdQIxCH5I$%s4V_8C^d6v@hVU; zGa~vtQ-A1?UeoaNwXSX_%@w1y8Pi7AmC{%|*-g!gHviN^1fh+gbxUCBv%vF>hckY)#ZN+dRcIFW3Jz_qV zXS2RTB#$CClf>J^6Qh$?KU%8yl}LtB!}7c#8YCgLD+xgwXigG3ddMWv=qb13f(52> z5V;TC^-ZL;Lkpcynx7`0+Ff}CLB=(F(i$R|#Os_))$@QOV%l0qy;_<-anPZ zQ+vAK8P#i*%*MMO$hV-*)OBc`gT|&iJzvd+9Mbwvlqo(&1PhW_S}jdV(U4rxj8m1NJHYlTM?d=j6@NCOhEri+- z0-23wM62?mvP>>uIN8=tsVIIl#>7L=AMY8*Bzc#rli$U zy;IshfpuU%ufACY_rp$!eah*vXk)9MI?ZO6G>a?QA?nVZm?Z_%#UyMNkZy+ZQVs~=j$5s1X`BxhP_&XuIPn{;WEgw z@H`VTLZ;NXl9n=KOIlIfd)C-C#gyC0PqSpNDlYn5=6dVwJ*RV3d&*HUlWSwO1Q+8C zYn&$jkW&LHp|yIK$Qw>42?oWfd}|-qI>PUtwviGL))<(2xbTSb8AuY3w|%%3ZibxX zCRQqK_X#vIuFpKDtvoQlgNzJ5O@Ilc()!G$uJcK|(mRYFt27{}4pFrMT4U8gj((DD z%5l*}tE967pS?Zs;-Lk|_gncx7x~5#uAc6Jd45SN`@h|ncYG;rVs{{K3d0|>yrhWY zT)&3Qugic+LWVr-5@7R3eSGeW7402Hb&a~pX!6Sd%g3Wpbv`p0tx(ErO=dmGP-~rK)|f zBa22DVgXDaxaQmr!zH#>5?9MyVVu1qkY}$UPPj)+Av@5MohovPWS2e4Rf`?%TIn)>do0 zrou?*a`IfFVrupUDoZIGWXO_->uS(EyhpuF<-^#^J$NW8l6RMAn zF1|{j12~*cl;`Da=&j13j|24MG3*OnpYKuydKj@dV7U@x5MxTM3!+C zG-FgCn7!#;OGtSqvO7;R-do8MzYFGv$ld?xBKY=I|x!A5{DjG7sumS;@9v|HAveZ{@N^DYEU8 zvsDYe_wUDSO?{Egy1I6Y>S}m;I=%e{rHQR|frhsH<7?|Ga~zv&44^0fZLVvQR*jV; zgm3k?doXArDdz4#b6wqCR(o4Y30m)*B5!fncKNf}1<=xCv-X&SS0mjh4wU0;=I{>L2Ko~_EtZCL)B zl+>@gJcYs`@d&8_Ppv+k%OggT&y#I&*(39fjV@}1GV5I|LB;H0YI!1_J9$$6Ik8?u zYMaicU##(*&`w|H3~i;PmALqLf==uH1{B59@Z^Jc&Pn*{isJ+^u?|At<$KzQ%XhjS z4VO+M_?HCTBmek^J^S~CUP&&Qsc=WX#`*PH!zoV!&THFZQc_H*=t1b;0ha3};k2S! zLgSD@DTC@(O_FoPJ z+wO!G0aK4hW5@G*zi@+=8sHDAY_uy@WAO?GlSD9$P=3`S^;={04v65>tM$Psosg!b z)5)l*iISGWg!zQT?f5G91R#RETGhXN;@^*B=2$_vCq>PKmQQgcHIY4H;IH*S^Y}e? z7Np87Usd4hL^AXdwnXI_@$TRnp*=cSnp`r!< zNs5Sf;8Qbe8@hGqvrM5exqh#Q3gT@-l2{R8wL=4>mR-; zHTaPIDr0Nnmx-O-(a$3cYsF-t9M6Z`a7i;Iqyk_n>Cyp>;tl z6oZ&Q3lZ`f*n1sO9$;_&1f97;wY>k`e*)>LTtx@pt=R6*3=w}2{T6+zqOq3-ux;gb zDw&xo^JcyQd&?0nyVP9sX20NWo0~MF1g6H(BC9n4vNcoqn^p}N{U|M$@+uRI%fVp? zEOF{m#@f^57k`g|7HL7>ya!?al^&?tf~z>b!}3H2t8)+hcOk0CAA~2n>(8 zM{OEm-XyA=Fuko#igPEQW+6`#`cToCp21>c)HmgmBohdnM+yDVAMH2@(WjmuM0slE z6^0|=zxK;Gt<>{w$u_Sq##5<@lG+8W4uM0k^o^u~tHU6G^I z*rSz|tPGR}%K%fYM|qtDJ)D36THJ@Z>Y{%kBqHV=n3?>{+mz+lk3(ef<#1zmXH_f| zEh7q7mzXB1riS^MOQG(X>+*Y;PW&!R<8t~SY8-1jbt|&$SE9o$Fgkoaz;n8yUhg&} zbhbVQFU(u|`uW)o8etNGKd=&Ftml*|G-xo%NjIk|wy4t+cO)V+(`FaNjsL)Is?d8z zf*4~osw4SeP%0{oGg^XtY~Qt%S_k4!`=fsNNQ4}-M4>fxw)pLL6Rq}I#DbEGbvbNQ zQH-9y-*_r-?=05auXf3|No_x7cCz6|21ok5=~({W+0NF**OCA{8!HT|S0ZN+DbPOS zAkWXaZ4Z`w$%pizgT8I5KVQOZh}#-_1ouN&uTEWxLPxLrX;}YHg^d)pqJOO6KmTtM z_eY$#Z{_Fg5BAVB>rPwB0kg)yIrzbI3psW48e9C3iqdT7h7=TcR+gtC4+@vUp4FvPa2hf1)CQMF z*PK3_XzKKqn0K9qY`p*<>PokJr;d=m;dM_^7$_kdO~-rLpHS1mM-ZN%n33QIpMxd1 zan3!Hn{}fLo8gMBUo;w=lpEkbbx$>fu&&xv-j@^DD|YiKoCbzJYeDJ@=&; zt~2;_URyRNg$#aR>`VaW{HyhWp1X;1eSM<|%Cqij)y~|Zyj+Rf$lc$3Yk9{rHQeD3 zxA!WC2%1suRlD!t9xqQ;_iI~Ajp_Ghm!UaC^Z{iS1nGSKf**V2=emM!%&Hv zT=(syoGg>+*P+e*_H^XyGU#(2`gI1@A414s(I!H>5dbSWgkBP1+PmSf%g(Hw&>GB?g zhE&_@j#4Ob?xnJ3PL~u6e^0G(`gWb4uxV^ka?}jp!@i!!M$QdW$+x4>#jw>Gv)*pM z?ysT}vFi+QU+JUHQMg-1{oMG@fv@>}pQ)+ZtpM_Mn*xN$Oo+IXR$Yi+%cT1Orq?2* zVNQ)+c$cw>FOVC{^psr+WpZZk;pz>b#If7n+eMXXD7wI@Ly) z9#_@j7SPnns%WzK5EkPl?tw{tHHO^ck*ZUk4C?<;m(Y2^*x%2Q^Y!aj*Y92U^S~^h zAx7k7XsAaQzabVva>oa4^eAA67fYZHqwSr)(@;(cW!TE^M};ch>!Ue%{?*R)gF7Tc zuZA9Cw&+gwLDQIs6-X-FIWXZOM55O3O3&J3y?#CW2OapNoMqA_;89r5q4%w9`{~TP zhc~z2dkPuzDl35AESqQY&^!N z+Sat6uJ(_)^&hzYuXXERTm+iu|03%D{fYn4HuVL8B0q>OQ6Ewt+pdDiZf6=>0!8J& zHVr|YdPf8B#<`nJNlB@|jT~$Lyk_1*#2{&m`7xWs%Q(K&oHJY0{tq7UB(9Z$+w_Lb z&_!zgK*yxht}JS+4hSFQqPm_<^yT?yc8~miavtk|{X+NpUbGqQ$HT#~`Fq2X8UMe9 zgnzV$-+I#3`n%_&+v~iwPB+Z{+m&Cvf>je})bD?RXIc!Vjqi5y)*ZT354!9Tb$zjr z&_3=sB4E?WuLJUqe>ROl?4czE&e&8t+TVQwg>A3nDjY8@y^vKytX`a6Z+Nsi{On&w z>YwKSJe2!z?N@%jyG!-Z{kGty%*|F}yqFi7c{P#&!_RoObcJ8l?VT6@TYnP>96!}T zlcTdO2wl1W)bN%5D0@O$L1l(cAt0%F5AN4FKrnTB^9~;$8R$+sfE6X^8E-5!H-H=D zzg%TY?67XMK#h9rZ<5BvLArV?pz6LM#@2QOcjD^c%9qRl)MbMrfu7beB7KqDX50S? z$8x{=KiHCt|5x3fLLF%0Y@Y%9+V?>6R5V1E#a{x{Ilk-ZKEoiEqty5_8MeFmw=wC{ zGWcJ%q{+=t=1+8=x?KZpYel9RlK3|iT2`qZ{%1tq`{c>-w_!n?^o7M;+e3Hmamd8w z_&t{}MTyj`M=LLdoB1KHWv<>lSqv>i=?7@j`WDnRyK!9;2&gRBKO`~j1+X5EhKEZMsRz>@(SqB$^mamb&wl?O8t|S zm1_^|2yP7Plp9k62fivAwtD*D5Rn?NGAa=1AL%uI#G z&q9Ff023=~iFsxOW2cn?aI|^}TI!n~RaVC{#34sBHWT7Y{@Yv=$e9{EpnWb#$*^Ku z^qzBK=g>${pxV}K_I9F(c$km0H-IKT0g}akvcQ0z?@e^HUZ;~nj|CuE%Aj|CeO#@h zpE5D%+k;Y2+TGcpGuz%VwP;^LJ!i1n>iMH5XV=ZN0 zDAVpw45WQ$xP8b9)Ox!YL-}fi&+4CD?mIfYJwzCINupWuc~pEfVlO1L&O=K}U^mfh zP$T3&DlWDF4#Qe1p!~|s=$$Lp{!H_Zk{hUuM13BRR#l-nis9H}IXl{JnWF<(S-RIVn;qSPux$50U}ax>%jy}zx>J|6qe{{Q>_f%>muYp|10F*@u^xJ@@lTubDoR+0mgE(&e$}&sob=Z`} zr@QBxQLR>>L78*?XJ}*o1XR9xAeVh+tSpO&>~gw$_sqI3mmO1Z3T1!ppvFTdZhz*b zfh41Cdcd^*+-2ti6v^;%N0AZi2C1$Lo!RGZq9BEM>XG_u@}M~63HbO-`>z8p6}&}z z;Btyy$IV|fnS3{&62oa&Ky^=d*MiVg`w&gB&^$diszm5Ag)PtA@fr)XAg+L<5QTQM zxK$VcFy$}HHKvZ*$A{4w3>Q}6;3752M*H)m=Wukh=yY}gRA_K5BPSIaI(1B{a;>BS z-2}|-k1bdRHhQu__xGv}V{4b?(zkYV?#I%Q2_p1^T~eprii0w0t?N(igiv>q^bPx} z&gJxXe?PLnS-obGh)G@Kq5h=tqZ?{M_H>Lbb88mvGP?KREMAmElKk;jxCWOAx0OTf zFYkA<>$ZEwJFK(YsDy;uozb(yN?35X9wIp)A`pg92wz_CL?MLT)f{L(?C)x-m@isQ z?FumM&fu(Y7w-)2hyD3XCFimY^B9cLmk(Se#ov}{;f99 z;^Z~UAp3!=fKSclaJW#|CLt$^7wk_QEps)ixCT8^bZ4Zbm;A?}79YMWP zlwWCnYm4nQ+x6na16wQ@!^L-EH`eAI>vdg{7&jTB3R2<8p55l8@U=9XHmU?wesXAJ z@@?5n&X?HFIQCsT(hosh)~?ItJlMKu43nW8Ss*3Yrbl#|Jjme`#tn-=2e2XW(xpRa z{w-cg1yOO6hmn=Ku-+5$W1yfR>H0n||EXKiAU$@m0UqrLBOT2t>gnkn zum6Jgv&h^p46IVaS9gNQjU;IZ`nCQ{@oInX*Rb%w0Y_7|`CY%wdI}ib zJnw>{UfJK3UU#VUns7bDUYUcJQv6V34vrS=>&gM1c~j1jLCcKj2@eeAg#4ovpb^%$Ife+g4AMi@n%5d#@e}@Ca-ks_iYF?LLN{eUju^y<|0a!55URp6Bj+7Y`|2E_#Sp8oK*iSnFjoa)s5n)tUfHwo5A1z z=ElvUNnNb`jQ9D=`vnQJ6zo#^w8?ZPi)c91Byiv&K&svVzT_AL)|js)gfOaonyTK<%h>@T&~$q4 zRbij#OK>}iTN&TAjEYY-k!3e^O#ZYFa8#8(FKoHka0*0~1+2Zg?@M(6$RRs}j1Ugt zzx3dZE~|0$!h@wt!~We5&1j| zV`a;5X|Zs9q=|y4pb5vsFw3;eS0r>o0cUq|6k97YrQQdJ#hlks8UTm<#|l4(}iJ#q7|p)?Np#s0xI zK!=g`=2WK3LVi>k>`4!)8a6X#%3}-fv+dZ`0F1tuy~dAm9g$T->cc)&^^mq(_Hl=e z*Uyy$Uy9sZ=-%0zyq$r9*BbU9A2#I~C87|F^53R@#%$BFm;3`kBOk*uwVPCt+f3kP0?ck`a=Cxk-iT>iN%y&UfJ;e$3No1N|LuOL}Z9Vg3=^kFEvuSyQzoWAPSs)gM{Q29XR z>WQw5$Der!QR<>#{>*@?lCf}wrh@ap&2%=q zQUKqCl~$I<;^n$7n?|bY=r{v&jv@v$BXwT>Q)?8()*biybF_cpmV0Wf_6NL1gQG{K zP*L#1jD1!sGNDP^hoB@7!1`2E94wfCSVSz%*l7W5=$8LL)TmWi?@iBQ^ZPI!=LY5! z@hPqiv*tw$7T~JZo1QoZiv}+6+VOEom_~$LjHH~cJ#H3Xp@6O`eBC+v{I1UKVPjE2+Qz91g}Rj3;9F|H*J zNWktj9+j{6349$Sq3JO6(Sd*NGTyGWYS$p|1Bkio$}|al_O3B=?|HjgWV> zqLAn=saOuSJaQ>If!kWSs0ex?OTY3Z^Ji5C_jEXNME?Fb&3{V9Uu`0H^rWz8prOhV zlsCxRt&C@KkJJW}#Ug-plvPCnHC`jQ5M=4$ba6+@z?Y4 zP0~v91(6$pBg9JY-eefxf8TPqz~^$`NA^Z_qe@O%Y%vEf41A7a1b7cxs+mVW6M!i$ z6S+Qce+=)i*M8+eC^|i-YmY$4KTgi(S`Ks&>}z~8nGN6(K+c0l{XKGAzkmgH0Dlm> z2`g?&_6h_I9~OtBEw2vo|FKdxxC^fJWbuOzZ!e__AlF~dht6DWAk&Drx`m+(Bttzw z3e43}0Jn033E*fbjUVbsdC%_z6_1KcYG`PP6#&_NNeELHI3k29JD`6O1_OB1ugv&< zQ9;;$44$@$#^js@zIR511QjIWeWm1$>c{5Tmdpo_KF}WR&w3@8_~@}B;Z?T@)ZrljE7rTA>RJA~^_)m`3e;pSp=0>~?{qF>w?W~b$S~o}iV10@C2((e86*wOO3zHtGk1xRn zR$A4lYafHZW`)7Arv*7DTfLi7h`hIB`BoUSPUrp{z?rTsi|c9I!MV(^e`Q9Q9n41MUj=i}6q%C>}LQsOED45hzq+xL~T-5;|UASb>ShvnJ-| zT5g{hDMPM&``h?^d}|14#zUb0>kxc=3@C={(Bc~W`8SZ|2F^*T&NF8S)FM%;d-rbE z4F32e?ppFiJ&llR@7`R29l0N2%KPoG=6<<_VPO>o!hFAWtsP)wz_Bc;Aj4+X^7*zo P8*CSQ7yk*t-Q7L7LvRQLcXxLU5ZoPtOmGMmB)DsE3-0bNgZtpJljnKmdAEN5 zZ0%OARtg=q$N}#AYgkTARv|DVZrYlDM3_& zPmr#vQXe5I$B7TY7tmH>3StltH2|b%6BzI{!e?n6R|p7H@TX9FAqSj_%^@H*+hiof z)IAMP*3f(vKyPptcxS)*`wCHd+3a4CuUW$%@Z=cc3q%+?Zj3$|G59?_4r|HE?%n-7 z*ZNeVP90`j&nAy+8U9dbX}P#qyA+Os*LnTA>IytNb8LMIaWI@1*ja4Pxo!sfj{`HW zn-{z`CV*;v6BFl%k&(r#EiQYAwsWOnF)_$OVUhnjGMyI;JhoDe{HJm-rpCT@vr*=` z#DQP`edHySmA=vZ`|8iR^b0;R)j!_Ila2mI`9B5f{~s49lO2d7sX72eMHUl}3=U3` zVf^QauUq7d`FCyqoEey5d;fV|JZ;MM|9^qf=^C>E#z!;C`=_VgwKb9qUZ;7re^!&B z(uDxoZlgn}A3z3B%;L}W1|9tZ_sHwxF{|(O81MZ_-NcRlf>a1B%8xmWI1+*Iv^0Dn zP`}q%Gmy=46#v(+U&X*wR-^uwNR5B3#VusW{G)_KC<7x#vb>~Z`0GFFlc`Z*(i`q{02m1~Z1>*Uczfmj&g1Yk zmWbDMD1m0NGeAVQ(LPGp@3G68%XFpD!TZdv%Ba)d^98gp_ay7(Sij=fssLJlyc{6Y z_^kX+e*OyrspCdR`)}USnd#}-4JxU)%?L98uD)ozx$Ei2h0fQo*7FV`pS!cZ%bfv` zIweEpHE`k>@ZTy8>g=)L^Vm#NbJ@)!zug7A6{SGIp^|fOUV%gCra z`~+$$E2HZ+Iim3LHVJm)9>(wP?1ZQlDVB)pf@`XwR5v@TE;OLg?sKOpG~L$TKG#Tt zPF;lp53ej%h()LP13U;mxbDk4o)_vi*zP$lyte<;7xKAP2mBmJzG10bYh?Dy>FN?q zR`T}#SyXgvca_Nh%|&+d__(UGzr*hdosjUWWGrE>-9jb94-haXpwy+gr6uoEH14mr z*C*%0X&P!8ni2-(c_$2k#G4r7OXgn;GqDW3eEwuauDA2{9olfUS#O{ARkZ)kqYf&J6oI^j*!XY@cn3w+T!x&M!lO3p?c_ZG;9du@j}(W&Ebp& zy0mwmLbjj|NFtGFtd`lUqCE9V@b!MjHnI~5kA<9(5$U}Bj#AR25VTMxh-Eiuxi zjyA<`72lm$UUV|DD({a&?f_DuubLIQC3h*gC^UmN%XU>Ig4;Q7&vfC)1bOpXC90oZ zk_~mv+pgnuos`05e0Sre)X7is0m9R2K`Qx@TO~!=J<~tsz~cs013;>$xnD^74E= zQR8`O%Ke-ReK=}a$Driy&eQRD#HgY5@pav0gqb0bmiW|4T|H?z?nPL8=`6%v@142o zIUgS%LnN>BwuBHJ1`b?=4E28|D29&GN24NXQTbrQTWW=1scER}EmG~`qG*ZFh zqFoxutf_pdGSRe~kA(bR-eY26U0(E}l|cZIOAdg*qIW8q(?oLK^lLun?f7iQfr#cZ ztaM9pzku03%ANjxIKSe%(w>vMCj9Q!BEpdHOm9z?K6spEdQWU_8iTwM5@g5~y-i+D zodU$c?ZxJ_E;uJ})Q4xJzJh~kpJ2RNR@G5D%os$0FdR$Fr&^J^uYotx}?N^ zkA-BlZZ?F^GF5CQWaxFUJ-by7=%v)=M3|HDq!ORvn`_Tnj#=iYhL^=a{Z*Qt{P zNnqvp-4eK;tw!-UEblt%g+@eBF)_&tt=C#aA1zTp@=rB68F5o@4Uh$t57SyCks3`y z$%RuhMc&*b1ZK@PF|l?&*FG{1*z|^@c(W8=4Yrwn4E}7;@F@cLblfcb?3q1?Xsw;efgqG?b~{NIi%{L{ugcf_OC8W`MbivEg@@ zMaZBW{*t(^Fx@NX{Q*bPkWr}Gyn{ur)*#(zgfJ%YM+)@%iA}>!_u14BBo+1Yude z6PX9wh00h2EZW@^C0vC2xe7fkm=|g#7Z(>tQPn}SLout2fA;DZDr~zniKjqq9oU}G zn}h_21mtsIEXngxSaj+W?8lTst>)7G6?#oad{>DNBL%MlZbt>U z2#B(1eCdqk?;D@akP#kbNS0FAxwzC}P-(u=er;9w&-kRI%sc+6-OXk~gw8l3n)dC- zNUnIqWR00r3_klurG{^$S^&W-c<;Njig%XGdX4Hql`u%S#?u8d4EXN*qXgWcKbR3h zbs}i6F$EL(ddyK7DXx8oeDyfUmN+K_L!5W|OMYaIifN+jutJj4hg9G)>lT}!V_{<6 zB=uwo`{}~W6`Wx1CVmQb5qY^uWKh!i8Wp7?E;;-;N;Orpqod>KVXHR+lvGwOG-8g* zX7^woe>JpfGL58gq_Y1h@u9E$5p*0;qE=Me`QK3_A;GI!6JpXs_}3jJL+cdqP9w3l z{n+nGFf<06teQ|R_2$*nd8ZlJT`>T-7S3VEAw?Bp;|4L@_IEpS? z`Py$N)9m9uY+^3%&!Y5$nIZt;JLT|KEKFm8fY&y}Vi{5bN9BFQ#4WVF7ixv|H?p_; z2tr}yVcH-%tHEy}j*gBDX>=Be4xLxSjHMAPt`kB{))i!YXXhPHj%S&+s(@NFmp1bi)d|%Nj?^@0<}m2F-CtkM zR{17;ZU1@O3%XIkCLiCKE(G78CW?-L9sT8`I9dr`TcJWmp|_LYA75oHN#W`@R2_&} z5dUKuJiucZwJM9r(<^@emcW_RY4c?7czgBXM&1U;H<1&k0f^-&Tw8|NJ&#I?*ucIf`F{qPkow_b%?{3sb2C+Y zs`;SAq0a7mZK?uZ)iTWr^~sSAsT620$L2lU)quB`QmKR+)Jr!=!A@+w1J)hMuFj#<YbQSLb5NzKHbG|+%BqSH4jfT z@B+4t)T_n@q&ab06}1@6pK&#RA4es};f2c+0z?=5w0X=B@<6lOY-xg9HlvcVwz%a| z<5s`1W6H>a7Vtt3=`D({t>rs6(3S-7Oy}<`z8I@-B1y|BO2x@u{N9YhLf?&#{I-Bc zuK#nbV71kFm&&8NGkyvazaujwNrZPNqN?|s_IJ5CGd5azsXIdqTeF03hS6qn1SL|g1%kd$J>1?*=3pHxh;d2D3zdLLX+XvhU zYoo~i_`=Tb!k>uHJG}^S$1?yAMiJz%wYdT^Oh0f&9 zs|}r!B417|Wf)k_#mw0KSB*W7C#ss)D70H>q05G^y1tM_T}}Wbe!OB!cZX|~Vchz` zQ{E(HBv7F57~-P_^ooTt%~qKgodB%h?j-|2^4f<}=gcZ1TbLhk+gZF}y*O=LrM z_kH1~-w+D?J3~)5)IL9in+-qFlC=IfJs0VMvT{XTJkw4 zf3UWEm`1$SYshB_NB$>}8C#w-Zbq=`0Y6~;@^B08?nXLv0BZdd>h!2rRkL+X{mF*8 zlW@PXMbJfMfcnk<&~5YL!%=}&3ctJKa{SoHR80sU){t|}hwnB+i9UiSxKFjk4kd10 z8&W?P653#AlR(~LVkL3__5epRN(b?Gy$!qbIKVn+j6vqoP2 zy>4iMN+4?cv?gSX%VoDxgR;w&6cc}Grdp!<&=+z)n7P>Ao#HwBqb>a3MMvCBz#v1T z`O`(R-j5Sat2{rxxt@A^yP~*fUkAQ@i}w!JP!n{{&~%l`y9iT=`0xgKx4r&UzgJ1B zi%P^noF{uN)j5^O_7djLz{h#(QNGcEB{j!sP)CYSy)v2Ne+uG)D?jHhmdf^EPnRKRQ0GF3>&R(x5v_*q>CSD* z6!VKP>3|1yCStxf&dar$pWyQ`JE79X9$X?H+W%$W;j8r{6 z1f*MF`TNs$Gauul5EP8-DdO@Em9;iZ;;`-tda*V+pCJ5l`bS9*wLjPqsLP=E<6o_Y zz}p)K-fFVpqYUzq#`Td!6mM;}ou!9fp2iuD0YqamgrSAgG15e=xD#f19=8q;Urb(Y zU~wJWr_3B1`id8%a!qc0M}@fY)y~(v$izr_Dg;2!&CL%vv+t5$E_f|BG7WrkWO!QRBt^Tu z2;B-URX%k>r0mE5%)v2*efB&_@!2^{50ZYf$4%+e8OA#Kk@1bDiWq^nB2&psnlVvR z^2KkI9{$ae?2)L2cK(U)DX8Sl6XsFWyM8*J7VV6|6I+;-VmJe6)R81ll=T*jT*@kzdQ6Lotee2z?CmCJ-3)p+m@4tbzn8xPULjuvC`!lB@%uJ zI1^OPhqcXIi&DxV3u>a)E(~W81XPrC98A^1ezqp?4KCV@qG`QAo8UgGIpB5R7WSPb za~lOZlP>evW)4g>xK7^b_;rc);z&E3FCYdg?HzIW@Z)l2IjMw83M8q5Up<`;yvVnL_TOX%4*ncu2j?i_SB{}Hc1nb3-HSfH-#YwR z3KepKY-TKthYa!RN%%2ejKO327B2dV~(v~bhdj!1%2{mhl;*4w~1hYjkX$94vNxW zcD|0wt|CjlL;r3a=rL*FT_w^rYey^zDvk;NJ%-bcSY!fHn53{hw<=}m{(4xhf@%P>qpK}6h@~Di)AQ{EdaAd zOpi6F`dJ>HFyrpNQ`iay(*TP7h<%0BjrP7le&CL?L2#zXq<`V*bB#^_GOH>4uq%`h zNXiQ*$$#y+268H0*B~}0bjky!YrrIxam8*2B)HHIb+@Q*^odxi4?A!jM8&3cq&R29 zrN6uu9q-2s{JC>o!F<-ThPK$Moh8LtZ{f^U@5+a-dxXLrFs5kkeZMn~;T>Ffct3v8 zjvZ2c$IKZe#D3~^;|l0aReJoP(8^=Y`B~VVkl$>#PN^6qOA>HjG}?~-9<`fJW=f5MNzgVSlaW$qo^$nN$L@g~W?!%7B5V%qq~ z1IxKpEL#2FeR-x18cYGT^8@5ln<#H9H=jc&&|k+;q`$^0_u|3coWkGje)ete=Fc=h zy=6w}7OvyfT|&i5X@n|sy^i!-^kzdk>j`tgS&IRj9f0GTP($jIqR@IdGaE- z-P2AOrR%)_knvoWl_cjF!&=W`+C#el1yk^m#_y5i z;(BI~#SA^6SB4YCbj5}6UDz6gUvHaBQgJnn&tNoi_e$kzdBsQl<= z7S~tH=UQVrL9ptwA{~<;WNHV~6 zqKgxbEu^M6iWq96aYCZJ=%phCIvNr7(G93fws;_xfBFn#3Q8ifoRU3}2Z;io%7ZFM z)4pV|e*R1+tRYkus5D@ED%DDn);NAeES0jQUD~LXtt(t6$F9v|D{OjG^l*|EEU;V; z4ncGFQ8VxxpYS;v$|?>agv4a}<^i;($*=3|ZvH#f3p3K znh5lR!ASc0AmAtV2r7Qki$nAR?+tv%>j>U$jAp}+CV?44@Se~n+p{HU-&>I*a#Bv_ z2WcUkX&E;r)h_kS;`jF>$lWHEkb*kSq@$Mt{cI~pl(1}j;5(n}H>?e*ebiIh;F|81G*Oa}L+4mMP(r&y`Q~|Wz zt3Q~7iH^NwkH35u)-O0){iHujW($WxdrB-FwGq$z!BkP~k?(ZTYcaHhm{=fU^~q#4 z1X6SsF{3M$t!tJ6o{EeNfS^{t!{fj&>G9rjP>JL%$yexclx`*-h1Zj30jr)W!(TPP zS`O_Dw?MachiDV#r;*k&d(^WtBMhIj%xl^ac1KP)UtpHeaqj(N>KU=%LHoQ;LEjhBKd`AjUVgj(=JxuBcJUiTN(Z$ zvLf(b&HBm@>0#O?h~kZ&^*w7~+-=5w|M6;IF!e2Z&yL4*Vf_W1d!{;T$niL~FLb}f zsk8ymvDppTK0iLOoGdhAiTs4K7Z_jw#!>FWz0^302WuwqyIqaF!FKW&M-yHI=rSfI z$r<6ISTo=i)4ZY0T*!FRJ`Yq%KEE0){&GRE6tdt2rbF#L`YwzUPXvlW-%h3&2EkvH zgp4{MU7q3bh=cflUNn;1jM++9KAGIl9;OL<2}%OsgLBr1z5Wg=)i2rcB_+PpaTIOd z@KF&yE+XexmMJoFaiqt8w?@fN!>FOdusqj<=fIzAsNnsEA40<8K{G~|k5R+jV~HSj zAI=tfUURGYzUvbHcVYVG%oLn8aU`yz&4;%3>J^YpFeqYGU$u?1E^` zrK(~VkNy6bKYi7GK^L;+Mv0A-GO*ulbLzI>Deu)L@|_ansj<8#0U+`_p*VpU3d)wB z=r=R%!Uk~!KcZ}>ip%s4#>>dZQC;F#`*YEoiCErLl{NgBY7r{=WjCXwn^>fa+j1D~ zMq${1E!;08!lYF~6>!In)f&-F+r?!fkDU-Vp2b+-v!lDi(QcACu(yWy7y{LSv%;Z% zyl7R5gkc&HH*@2Jmqtu)+hq7hNW?2GusI!14E_GqI1l_BL%!yZ;*0>ourL%(j3!6s z`N{?zf1NN5k@7hof0Di;fXBc$I^gDr8~fmw>w!UfxoYnrtT5Q$!*>taVQDm+Y~tba zSsf4Tk9X zpu&ITv}Pxb1P1!F^jv?WG_@aCTyDgv0k&<4u;D`rTXGkraxcawq(g;J5DEAreX>5Q zB@m$GrPBAw>7k*pSHhI9@FxEiLAI)NCVt@Tm)xH8#k?Em-Y#V9Db%!=OaL7N*RNq< z${W9n-sFnLPoFg~D$0=<`tL!1;YP1RGCkfHpYxA`? z0x#MM#jEe84lPEwM2YGz-rI$^mRNq~sp2>Xwpjw$`&j%amVSv)e=JysIz~kLvbbPeajQNqdiiBl*eYy^XasDH26>^qnL+t-^hzZ+WWh2 zhQI$c;C0yk40x>QH)ohU*ES46f5GrCS3yNX(7ZVi$o@y%F*m&AmrWLtgPf#u!V-PJ zt}-q3HVeh7HSb!>jY0!yJM_qb2$(L8o+J!mkJ#SdLs;z7mcv=W=AV934mB`8!lZrs zLf*Eyg~Z8A&M^+r*`1FuyEvWLGx-CF)Yp-N7I19EnWF-2iU~nxKaZx6cC4NTZM?KIigj&QF{`9dSOJIJ${+uog$_n;<0XjoI!pFNWw(9vSxLsJ`G zbzw|yUY0>A1kogz&`G)S4V_-cmhhzb^JxC0eWyXdxWEXhqk&=gs-T_8jg^@D;)_*R z?v00eYqsq9$~$L|17LhN^qXd^aoYu6!WD9}XTE)3=Bab>lnwQxSAi)IE$8Tv5(YQ{ zm0dwP8zFf!FxVvAL;hrf8J$q#@Ous~%cvUJeX)Lknu!2toF>8ib6`e}&2X%!xP2ir z41f7b(3EGqiJ(yhPZ-Yb&Ze345x!3HV1?ug&6mvyBgL10gkxYa2~d5I__iIAdXtN> z0{C4$kEt&JE2YM|%m4tkQthvmp~u??PMr2KyNdHKvEcq3p<1>YxQD~|(UjibZ?L6C zCM}?&y_ov15QXrs5XEv|n<=9e-9(1=3kf?aR-t_Nt}_+JEIG>5MnEKt-qnWaMiV`( z&2o{{e0PNx@P@yGFuDVv!fR3_pA(hNS!Ak@hP54_6N)o_GapZ`)u!`gE-MiujFxU@ zDdF3Uo=YdlcHdmG{51Oe1}~zQP5@I5FJccN?=&*?vlePxzahyH`*Yyx=4j7UJFg%% zY}JZD*GTzk)!MU`to{ennb?cN*-vhYQQ8E-i`Rzm-V))e#9^p9CX3EJ33Cj`P3RJq z-gz4zm?z+YKHO;@tbM^o+gtM8 zUgq$#pcnR*)oea(CpDU~JL$!Qb<*TnK2hL1Rdf!(^$G|OGP(c~{T+x$^mw_^D*6{X zaXIl*aALo$k^VAjUr>)ZKaMIGL#pvynfqf~Da667{$C?Xn*2!>a)RSKmLl~#u;U-? z9P9J1n<)1aZppb}MOc~&bjo|`!%U=YTv&xy(E<1Ob7|bnYBid=nzOONhA zVaT^SleFtQ`b7pEOQ8t9V~)+Y9!&e$`GKm;FrPKki@lZQ<5?bt5T?+|D9IFh2=TM} zFK;e|228TM3v%er<8V|(@=f}j6QGboW%!N4I^|YkbQ1MdN7s2(+%ah|J+rD29$KgR%uup+fk5HhotaLQkh=><^Fa%u{NgapZ?q+RBh=l|1Kpl1{!; z{GHBq0sH}v5H}y8!NERPV>g@7zZKbH%2t~Ylb1)3`1Sr6$V%%JtXwmL+X4Zc|NXM| zXU6~gNFG%nKu#3Z26IH$FzrY4713bEhJt|s5iBpwszpUQ3jUKClHD&v4v!_^ghfC= zfJZ`_QL8M~sv@OT%q)IqIyE)rZEJX?3)Us0{sA`SC77^{LfVOzlNTxF^n=x@19jzc zzo*+Y0S}fKNvhX}i2ze@H6ICqFtD(thIU(9TOWLG%Vjh8Txr4TWvrH=7YsOpVTg@n zVEvz}6zYOMwlPVz!DSvPfnbe;Jvuxzq!Pp-6^&f+KBxq&kbmHATKt0-fZ3BgFmN$A zI{LdmmI%Z>?gQqA*uNYopRBhNfp1*R1_~Bgw9ax2OsISZE5OOA(a}ibIU-de|KPQ( zH0ItC5~(9KGuH`(yl+Ikz4^CycIJG|F|q4t+B?iqIrXM9>?ePSF;tb8spP|!YLvl> zh=?R_Wbeisr{}x$6oHG8g17MkoNvzduH3HC&20&!0UP+C#{HS zh%G9wz%>AjE$F}e!8_(Qg24<599Yk5JeqR5+Lc)a-`ml{R~*J0;uHr@PtRgE%|>x@ z#cV->3f%_PZni@lN^wfzr;|Dc0Ce{sT(+;c<-PTFV~@i$Rn|tQ>45 zKeVb0A9aCX+4)_3d_2PejToCw`O!jEm3Ju&99+KDMD}8fTiKBxZTs(k&;pSM{LsDB zT{P`Ip?;#Hgz$--O&k8L+1`GGzDCoGWz^A}u3-oW%31twh+vD*uCt6KWKangO$yZ2 z0W(O*DXd0uU?izH+xU3CqW7mTNnyUU!T z#H-hGBD*35EN$n5QH_Ju=DO_Yf8JE(&tqIQLu4_U z#x5-_Evl`ZmaQrXHhDEj)^w54cqvjZ=zzDUjmsG&k*!$X^+`2mTKTlVPB1cae^gd= z0oHN1jNTsc{%{fY%k?s2jI@v+)9si91c<8It`Nb^bkPk*_QT_RT^lSOH#%)pPFs#= zmQ0s>g(COegQ29Y45yB6aPw#oVrZaNR#pyz`NA9wjQG0k^V?Z673cfs%si2QwR!2i zqcq!zWb1r)HJCCeCN+6`z3Z&;2H6VD<$?7_hF{4E3Bh1sDG$sqF;vrBf7K{ag`rc- z>;ezX&GYjdqJsoO^O-^gH8BYtx?W}ue914a|0A`6aWBT8ykHZWt>fcpFwe6E)~>x} z{V|Q@WMx$$IVoG3|2w6D+mvI$ZJdokTVG#47c7st0u^C<{@G1mw+c@PXvJ}4&npdD z-4E&esH&0;Eoe@4z*?>T30SfH_o2?gYr$3y2K^YwX~juWBy7U9sVNx{{%0QgGbMsW zT&{nLxXH-C|Ib;^|M#@$|M?qgt^TDU@1;W0qA8^zKdSY?S1F2tL(>=*1&gqJK^z5( z#RyD}w9P}4Y1<#QEl~hw3>>AfSI3^lxIfM6*k%hlUI-BX+u8nm?qsC;qYM>=n{@?3 z#-%zoky8l59v(y#SqX=xL~TXN%oypFc$r>Y2Mk1R;{K`@#*Ff|%`IRdb1YfVg3KHe z@0)pGZxgut_I#SHSe%F+N7Q)ylM-}G-D1eFdA~2v7&jiDG1X8EH`2gUkgK`y z#IQT0et94FJ4r^2%{u3&#iA;tRqq8bh7<6S)d+p}~R%{A8&D`m;mJrup5=hOOFuW~M{Al9 z+|@la`Q(NIO@`VIhU*8K^H<A2{=Df!cyVKXl!SB;su)200yjY*zU z>4&w_5h^@4Qa-_m%*8kh5xdeW0$ZGKB26raOG-pA^8sRC%a6Bnpl-hk<{-Tf;peq0 zSr${sSjgZ^zzEoUUpre@hUiZ=B3x{41yEqITK<}MEPWc?TgzwcV;}uNDpO=V#ZW_4 zFh2wBT}wmQPm8+uSNMDLA^tHgcWW)jvnRiW{Lo^9IUG5_0Aqt zVs@?UR;ZlIC&Z9==1VqHnU{XUu!f1v&ubYbZr#e=mW%nnX!4d zb%WPU?>{x+z_drqhU8C>L~JM^`sF+Wl~sUQ{IIBTDjhf5hEOoRaeFCclhZ?{O$EX(hxV=KS zk_Q<+3j}OFq%`37HkuZ>W+&s$yct(^#|Rp&E9$65EStJQZwDE!$&jL-C()f~jK3}X zvu%2Oz7v(}9fxll*Ro6g%4P(`givG`EUa~g^08}NgxTc)h4d(1^2`_fuo5&LiBT!n z>g`|Iu&l`GT%-mwnr6#Z7;N>V!Ix;zJu^SriyBe#8^_9_%GlpV;75Fhm8FDS(6i1$ zAeFvTw)gW0%G#(zCx9Mx2>H4)<*mpe)hr_iK5MH_0_3LL`!EuD_|Xz-FdoFg(l z(oS6%LkpB8)mTpaX(J z>SqEI(DKo$u6oprs}S`@WdL7yJ#!>|vB8{0b6{mR%GEN%3r1KNCq&QItKL=mmfN98 zGl%h~@HHvfDTHl+8v5m$Z@KWd0D%jFV1)dZ9?mA;DEO=ze2m8iATAziegOI^tDFUa z@!-__gi#h63)qhFoo?Z+x5`e66ATGYz^U{=bTo#ZCu+l5HZ1t$}W z3j%(~e16-30{;31yMaCF_mO`lR8Z$1zsn6E%W-Qv!|=NyBq0Jn3a{#=U zFMHD7Z7^5_iis`AB8)$^AwFf!-~a{ZIX-NRdjmiwKaHxl{79fM8MGb#;81 zSnB+C*{&S8>eNY2zi9|PKUYa*TnY87}jj zL6jFTw>&M-_Cq7Bm*1^%6eh=G`GL!g&9{DmU{p1QtNmr6ZeQibO7!)b7pbO`scXC9 zF@AW4Wl!WS>p`BmT!`twmCmU3*u2#s^LqRX5L*7w8Me%dNh0(oKUWYwuOIx8Lk@sX zgeLij@Rv98TK$VJp}1~(z2EEvuPb6tXL>aH3;qaOR8WyP#)cq1q~w4@6sKE4(V5&@ z+@A%k%BOxl@QRKh(2m1Oo7C|F?FhN4{ym&4CzsR$q{F7(9ezrO0NF+bT5n;2-eiLh z9al*U$qJeQ1X$m`S9u-OzawjV^Map`c!|TxZfE=9A*a7i5CvUv;1KbG@^ai~e7SOc zDXxv*)8GJoYln7+6=3{E5A{w;1ON%TH5;;j5i(`T*VuSH(CiF+pj0&cI77NNHM^pz|;wi!-AO>3w3uCr%ZVVUR6HnijA-KJ&MTe+7Ovh{I@ zu2e_&$(!C+BM=|m>N0F@-7)(JF?OXGKFCu`9q@=*hx;5@9cvO#zBkHxtHx~7WYe>vBC@L-zlJP~D+Y2!V0X2-ty zHj$cS+-cQ1Z^tae}zD0|mmnjlu2rjd; zdS`f%M6ZYb)@#XiJ=ONToe!wl|FNgf1@gw6SanogNoQSILJy0v41z!NV;pyg>S2GP zx0^P*l*+#Pw3DW5(tNAS{m%bwV@v;6(i~i`kuSW1qLC0B&x;OJ7A$POoWtqk*JRxxy>LPBYyfn{uvn~nL$mLx zz@OxRIxcJnu;wv0B;K{KQyfHDO>TSv`OTjXi$-@D-#B=oZneg3)f(nB@o-T+Q_1-` zek}>t6cgGyw_U^Y>9c0UOf|i2JHNJ;O>=}=${NYjka#Z}vwy4M5fE}99^)w`BS zPOcqjH!*Oa;&A1BQ)nl3@r}cN@+@;`3{t9q_T_vM(S9r&UD%Z;Iu5~@KoO5t<8kON zNx|p;g=1?dSV9)k1`G=OIc`Tfb5~QJ1Ltg^fp!a?9K#5j2Zii$uczi;Y@p$813{fs`Od7+?sg%iEBia`6ZI`?zQ|3h^H8V9IWx;B z8gh#IRB_{gHivxBvxbA&*>mn~<}b(97mV2w97nf>_2c&7aRI9l{Y5ViP3sfDtHkCnT1CxtB*st@= z{COSOVQ-c2;%W17^9T4b;{+-%L+(ixb(o#ePT;1jw5j?9< zUs)^J>O>!vZIxhj-`6|Cftav)BWb&pRS#ktw(g3WZ1T}dc)b=S|LU{F=Fd!-!YHo( zF=HsAKk2BckQ^`UE9u_bEH*G8(|Z?Yrdhy8L$yH#*L&3OjK0ou^c1)6q;oFWw%=C5 zKY7Ah`r@AbDj!ebbb!+YlF}(eydE56hh8{cr3g{?BcE$Rra%i69!XYoS$%U;RFX#O z4Nm8*{#@rUbaHG4)3aSQFEs^>LFf(=UiQNLio-rHD=W6Rjm91@1nY22qoTROMNu3L z-lpU3Ca`=NHG9O?QHu7?+Xm>(ZgGn8X;G%Vw*E2Zo)fO0KRX5Jo>}%*rf!fE)5WpU z^6D?V|LVkTx@!|bdQp`aevng1%6dJ8?u(ZUd*?0&qaVPN`5`BoDTMQH_+gp1V$hH5 z5Bwl``uhq+^qWG%%6!p-`Fqm@2#>1Z+uuWt@1o!*92o1boB&cO-B2lGwm^wM-cfc6 zZA%}=7i@zbS5WCTsS^_CHm|-AsbT})ve)ErQgEc8LpP$m%w*1olGz+MnD;tD*dd&5 z>eKF;R!@B2vFdOxbznWYm=D^pEve7o=KxZulvrx@oidRR3LA}lxB}a?#@|{n6pg6d zfe{T3tE~*@4^Ilvs`A1I2i1||hP=x@4#RpyWmFCN4&I`EJ=i-fEbVzBQ14nEdXq>U zT%YUBE=D{e6+I#X06lTZ<53f{95!gtQ;vAYZ6m9JX%bLvEAC-Gk5J(4!AO=16Qy}% zuc{%GCSL}g>GBPqcKk{rKS_k5C8T4v7Z51FVo^t8BUeA6!z?8_;k!|uS^8wR{y?iC3Re(^1rPO;kROheVAw zZlJjJ-R94Y&X6JmZj;arzs9PZuTg74LHwj%PBDv-8-&qZyduyK! z{;i3rSI-7+U~R;Nocdo1{jaux-AjBSN_hX&S(wrVidLlRqk-#v4yTWt}4F zaJxxGTEn$4AB;{dlnbgkNuOb>;X9cUD~LqBpamlqx^W=o$R;vKnEpe(&^gi{qQb$0 zYQ94_nITMHXuKXrXW1)Hq~1b#qY&iExOAr3=ss@Opv}-Hw2r$pSR32JH?v=SO->MT zHF{_!DI3mBex9isK#Kjt9Hfk_=#QFQoTYIhBITxW(}}u7GLZMdFLu#s!R3|k|b?m{3llzc@n+tuY| z8r!EbstRWOHHv^hMmoMJM*((eewf+vtn-XyHMfAV6^uX0Ertbr_+7mn+Yh6J;Wu%T|mQ zQ;Piw)K7U971xAl{r6gu`2n2d&Q2dRnRNouI_H6Wbrx)Sg|Cyt=I>8n>7#;FtWdt&Z-=?=R`o1bZf&MMsxh_+2PqrW*GqQ!d7Ib$HH${co-~MzI^uC>J8b$J_}f%&~9=h$@aaH5t3R;=eENYe!dWoA>fo$qSrSzCI@c<{Jlwl zvG;%A9-e>ryY?Qy@`~eP=J(V*W;~=l-6H-ryp>GNHe80Cj)&3OtU}?bLhB0`aVMu_ zYWZe_NB4ijB#J>=(_`&ZgK5DR09@lG*4)TQnUAuKt1gVRMoylFixC>GxMm=yt;jf~ zkB>BdSl0E&m^aCLV^C=4Nk zHj}N2%iBOIH++fj=b-QUU%dc2I}p%l$e$;lx(F;9#@;om710pRu~TtRiB%QU?t%?L zS}++VUu&f8NoxR23@T((OUlPrUw|wYWr}0s^4+qx&pR6#7`Xh3e|bAh)o-XCo)5tG zuL>Qp#vDbIQ&T8DR!K5?@n3H^QOBd)V{_+B53#R31$N~#s2s#PuDe20P)>d92H8A$ zd~7b}hl@n!lOC^skXxvrg*g|-$u5r@veI-&G6AcOlez4xm+mI3;ZN?(pz=t@Z1!*5 z@{Ihb?9s?zOW=0+G|(l^@>0%zO2|K^na?Z(i62=`aVhd5%sV6cewi8&|Wm9Mt0 z?h>r!?1bSNPP!(=g7;%$Zumce=^ul#BJ8tttL$#@X6d-wQ;-Z9SkQaoIsK>`A}T1% z1d%dj8FSHWM@*}j9U1?K9v%YTj}m1T0?MsMW@~VWm6YUs1!uxt)g}4~HhDd{f(iBd zhdHxT-owR-A0dK0vxbG0e4${}*1v4maflbFsbw z>C`aaYj@cLkw=)4ANgs4!_X?m#pmunwrD2lnS?x7kZkcIwNbP7-gxk(cdDuZIJcwE zM6+U9I=Z4c1I6suwpoH$=3sR!oOasCd4EanX(4IW%Omrdn#9Tlg0~97liQ`PtrGfA zjJDm>Pd-+GL>i!6Wfwx%f=m+Ey_V5UF23CtM)_DE&?3mMx={$3-4xr?eu^v|13wc| z7xsDEm!%e&@&(ytGrT{mZF6t`hx^asp?M&2t+q zS&jH!MMmrZ*H_nqUjr)?R?Eb5xZ2}TBW`6`a4%$H##CPRKO35C0zEcE;Abo0SaU>U zd|A*9d1CcTM9`A97eY!_tmVIRkcM18zwZt@a$M$Vs9j+?YH|M`d;IHX9&Fm7A z@EJZ46Gr&Qz2oZp<=FOQy<$z?TyM5!LM`deLE+%^VRiyGlfiWgm<4@fPFnmun|W(y zP)+3S1m}eSy;GQw{?=iR>MpN>0wchlp_cp05$9a`E!!I~E^E4R<!u#Z$sXW|)V_?2krf(njCPK68M&VDmlHLjJ*EGX zMb^-s0}Fz0;jj0FIEy8a9j~21X;=1iZEP(h*#WC$ROgqU_S2CT$vg;Ag!I{gIYMm5 zb7!8Ll_{Rv-8{eAt<0#2M|v(3t+rO$SoYi2p=OL)Q0`D{bLX3!PUBE8WbU22$>lR9 zH5?Y)309lvI}8u+f$8~@u|41o)|XWQFLEGcaKgQ-(P3p0y!GGH%gf|&`lq+z2wMdB z(GMTN`wVC8rl+rzn8@3kTfQ6ygC9~r!Oe{W79<7q4GiMJ($&#i85MYU|I_VhZ(nrE zgG~8~{Y+u3F6)Ctr~eCBBK7#y+)P110m*GQ{~IiG&GJ(~)`BI&;)M~OiOibO1d8^- z^7BLR(-z>!e9==`40G|bNVjx1NY|p{ z&gI_j?>^_AJH{Qqaqn4w;E;i`-gnJ+&gc0&pJ?Rwnu-rExqkJ0F8o1R%<{yXliCS- z+t*iKqx%Kdbyc3f>}VQQA9*cf>^iUTr1+aKLerx!S%qCsUg0op{W4s#?yi8;o|1ml zGIv3|a1gp~WqoTof)$HdAi9FhD0NgwF!&NhW>KYfRX$L4n!?Tj;tPvF{eEz7<>jwH zzH68bQiad?>$|xeFDPeK=u1fl?&VKU-*@DLG9w#b&KJBvPnx(Qd~6{xej+&#b*Uk_ zZE1rRsrD-M^ozGm&wTwm62ZnRY*xd9SH`UYHfxhbYRdkQID~v-z zD*A5jAG0mWwQ-*5sh6%gO-55%p8s`-uC1`jnGYd)HbB!{=(9a@1$-_ReJ#=fGjTu`t8@Qysq-PtB@^ri}&d>SQQ6li3X_ zYO?uZ^g6?(E!QnK&WR{%m}8^)1H&mL9jB@+G*nDGrLLvfbcJ^$q52FKQEV}Lqw@TM$Xf2P>GTASCnBs; zrf`Ud5O9#NC_A2u(qbAG65EHUeLqRD9fXx&6Yxrh+6yJk*4+(KXxm)1&g_*;a;*O7 z6AayWG=bZ2x31+G8=4HpO`gn(;cEwyG^w$l{qqZX=JH=;{gqBo-Cq@IS~*W4UUGB< z49L+>35lk>at^aUm^Kee>wl%*{d8uyhPb|$RjHySbM{%f>4K7uWO5~4=XmhMS+0>% z$JE$ccFd3Ki}n-K8_ygh7gHF8CyaZ@*4&EHwi+i=Qhv``a{dhQjm22Z zPE0+y+?Sp=s+0P~^ldIgq*g5zm6PxuUC`BENQfTq?0(v*lP%r^H}cooCxix~<%QIr zPOihy`YSn6Jer5-{DJ7IQ7qM(vd5cK_k)`F{YmR&Wya;ykp@=SdprU}<$5(cJ8M4{ z-|uLejMB#WG3z*AaH9e={}M@JFr_OOeL>) zoJ<i!UfJgLBGV_R?Q$i`%*fU{F`Tm6g%BL z>8kK1T1wNhQ%oq5?UnS*X_b8MIFUs1e!ltZO1H^NzL0pxaEaB}i?&xKeQEuKj3_fi zHR+jU_6whvEPrYZhYBggxZ93(my*V^J$-9k+Y-VOUvBz!0_923-L0nA$Z@>9+JepY z=96o0GHA1=ce0`a>*oTQ5QFLBdX@EEzHq1KPX)f1lmy56Sx4O+$pU5*mxRa^%K%Yp+*xNDoH-aZPINdAF z#;=(rgq`4VN?ZVI6lZoh^IQ|Dxut#U@TfI`gXqJIr0(`~=7QEq+ZfBA59c<$cS(sC z8l)Uj6=QujhH4Pj80UhdV#%Z-UA5&+NC6!KS_1+-1N#P&yS}N8FFWYxw>xGAPO{6r zxE}c0Z%<$YUjPI^CJOK)gWi{dz&;a|S^@S+95Bc^N#Vlh}=-;?U$8XcHvN0V6fyL5CGh`;NuhhHm$gJJ_5Rdd1wtWU}AZZkCC-6 zx2kF{lZ!bSx9?p%`xu}*t-IYhmYX%6f=cLQtcEh;U@u^zQn`6fD@0)tREfs?B#;;_ zPc{pq(qc9@xo5fm%d0%C(R$}2Im>6i3gnA4Ag~l3!cyr@X`kU|+u$NwftArd@O8@5 z#-(*KfF1vo(!Dx6P-=kMH)_S1NqOnNpjn37)<7L6%P@W6ysm~Yw5BJmuT&rx8|h95 zKk(rWKEfg*xms~o>w?foY#F!~1MdN#>_sEPb=$x97D72dM9UO+!4$scy&Gh3>b=g$ zJ{s=l7xozP=9V*WX}{CQ{tUXB!u7=&0ns}_>n50j*VR&n%?Ur>{rVzTG4{FJ#j)q4 zS-Yxb!?(NIf>1AZiy0-@{#1=^mP!VF+`V!=f;L}t;ufQqYslUCl1W^tm8+cz?52QX zg_>(VS^5TPRm1&UzoNiPX+8_^XKGf%^$%CN82ssNla#p=27sv;Ln@F@@K`3{%0D>h zF+70M!J!mDR0MQIVi(NJ#Sl!#g^Ed!g++XK*|48%{nW2Ig4fS&c&_4br$Z{~hkrBU$c(OAolDN0skA+e4b>-Ks;jw1 ze|G=;$>w-d1boeMQy*!%?6Bi)M=n0N1#HbF;6&BpgNi%istKID-T>b}YxjM7>YlZrZ$x64-E{x1Iqz zmps?Qn?oMdiLM#l+v`0KR-2W#FrMEl=C3bl#HoQPDf4*OtlX)lD45$};)((+E{%O# zEmg{-+f$AY=syhn%K2ePnkEf3P=-HPNVzn300HzRJIxaR%>gDFIiFe|IUStR=}QN9 z{*q^r;5}c7V)(eWw&u%b*q?o85*WdSg@?zJz=XNu3gcn0WR%3@gWp_a<%q&#v+W%W|@A=>OwfQ(vb4tTo;=a$WfX$0s_!c1k#ct++ zJHh*0rTp!HnD8p;pZx>AhtRfaDbbD=PoQC}Izr3xS{{{cU|C!PD&(it-!ea4% zpg61RN3>=-qG54PmF?8B_2miUzH1I;iK) zfCHi5`O*4Tj<6gVu+yWWrWW#0s07SMX>jlmpdkax%8m9HiG9^pi+7nc>a(-{wuZru zCixq$I_dbfyv<#fY$MO8h{#jffK+#Ky=v7^R;b8gwlSD$G+sy=!=xSvwgpJEe|Nem z9vT}_2*Z7cn=5Dgqw{V&cN(mr5czNK@J5+Nvt@)T#DS^Y1<~Ih0-XLWfeV^`gQmy+ zz^*}VVAa5?JBOtA+KjUilRMa#tT688gCZzxvB1t=ZTBnifq%nMllsKtFL&qH><=!^ zBsbR>0Zny{mJVoiP`ucjg+WQY42!8kw34LA^K`adj%Usq=KJTd0h}Tu_ zwPuLM&6x4IoILl|5|-P2D=pz`6Qc!j`CCDUEo00=kXeG<8k)itWU1JZs$a(Aq_yh*hsZ6cOT_nFe13sI%~f!YUgs=cuAI0PR7hXij6rlij%r1TB2== zgM4Zl2mnIugHx0eT}Ot^gxuwmn%-_h8f-jHbaby<6r3(6k^F|XHNFZs$QzP?ZM5x@oYnNj+XVny=s#k zl;aA`#o&R@TOZb?;pQd;HGV7bmXagFo+TKkBB0y3=SNAMcG$}koOf^M4;lPjZthL& z%XMb8mhQoO^|!w)wlCR8tE!0)zN_)>WuHph_C50)yc&v0gc z+LUn^azzE_e9m~&fi_KMJ+5a3aaiuh*o-gSrZtmE$<`VW<|kNd!T1_Z2&Z!{%AsJ7W($0C@y4is$ z6>e`OL5EA`ex~ilh%Ha|0xkad4lNZ!QAWs;tMA{>kQ{JW;--N7NO+n5scfBTDee4) z2@(2Ru9#>;G8RI*l3WEBzV};N;EY$Rb|Uofpt?gGI~VkHz(II3hh&>OE_0np6^;}E z&Oh8!5hiY|47bYzN85xG81^U0Y&|S>Ikj*FCEe!1(vKi( zz}A0hJPb@0)4Kgysc~eS+c^UNCM0*?_15O7EkAudGC*By!cMF_R|pQkcQgo|N5p@6+-&MgE(BRH?$|x`z(UKcw*xUD(HLVdWs>%MWw>!VHevuf0{ZcFQ$3Mk^>W zNV~pcnqua0|DYi_X%jMMd0AaUWKdEo&YpDjOw>F*UktMd3}&*O8}h*_M|5;_q@knB zU61UTo>uL{Ggw_;_v5kO+!z4n3LP51d+*;LxgFcW7ioHl6ykus>8MebK+A?1(q@78 zR{Mj-^QmJyk zhK}SZV#2xhfP9|kr8B^L6b$VH3or8!P{UOq9y=A|EbdoM67esPK;2pX?q8}As#;|@ z6tLX8@?#K;2EbOEM-c}B8{6V^K8C~2t53K&>&GKYm%ugJncG3*F=ETA({?|Y3_=9TG7(A1&dbP4{8>wTrLJd z7KyuB*O#ZFpm-UvMg1t20JD~pdjz(etYlnx)$_+0nW5khR~)YwUK4@?h8KZ34|p;z zfFf6}_36#c+&zaL1HW1^ZqB8ufulnZi%iyFxLCed~i~C{xGjp+W+Co;K4DJVd z461Bx;D!j-8bKw6@r0ar3F$nG;l7986}2Hv8L@FIxWLUd`ND-!-ag0EB({HfNgtB> zB74(|Xq0Ku_1o0bw3h!kxkW$r){a&K1>tDOW=|}$E;xux=2)q6ow`lItx=1jmtuN> zWuV_jPDmK=+b528u=wHb=FDpkoh>vSPIJMTbAt`C?XZiEs^!=XIdS(UG_$EkS*uv` ziyvB%s+A(V^qGvtAOttNViRPg52rNn7y&%JAVHQ!?Ejye%ZL%B)b%YRV*$t`{6j+C zsHh}>dJ*rvGb!CcVcqTrAu{*d>r?2vMVcbCD5uj|$GoN&u}T3WCoKgbr6q>y_fE+8 zf?I2PWRkjTf}h2fmYb(Ecj3}Un2#Ne^M_H34qFMBf5-iT3={P3<&RL)rg|M45uNPI z_LScG#bsKuf)6OJKe9RdTToy`z5V+G_$DuZD-JXnX2VBvYxkaog7sR_d8Pf$mJq)` zMUk_shzZ|X8Rpm+oD?kEX=is^A9(yAuaNJK{*xa>>}rSZ1i3IM6c5suoAA)2+Ng$B z>dQs8rmR$zexL4uK<(;v1+AvL_yD`}Z7x%xRoyoxwepdkbvA2;pB9Z3Glydz)2k{< z8)Jj?M`oz-)HuGNO=i!H3qbza4Wp^yf)6=_&mGCyIQO?E%jjdCE2m{~4FEIhzC=!D z2MWg6O+sXv+jz7NHi|Kkp077XG3lpQr90Ovn<3NCO0T+9BDGoKbg?L+PM)MdTNMs` zDUW-AhNdv50)5C|eggAZ96`N`)+H1#ap<8qJ}nG=##om+UGQFdPv=Ew#w08&clyEg z#W{j#*i!lNJ6V&j$_uaU3T+=8Je_naDMv1(*V(@T{%b4|t^H@w=DTfD30Q#kGg3C-7n455Y_`X4UcuzxWX zV2_OAha{dEIlC?@?>v&cibkwZJb|tmK^?GlO z(XPb%#V2FCcHcxvNNRAz=st6mEtkW}XQ)cun>$k@@0w5M$Bg!xFj7scmflu8-nW!d zEvU*4F+eXXHt%Dea(T0qk(`jHf_R4Fw7BH?KIX7c)q4;UpS?H#0Nu>RWc2V2@lS1Y z4?+24_C=Gd!PL~{qC2o@;HC#lpGe!et%ap3m093Rj$4KmGQvvbj|3Ar?5&`&`9J3r zUG_SgB#dnHP@3fa6wxv@ZI=pQaZ`akbc{S&B4GVt&*&ZX-CFTJ)tEXvldnb3_&CWm ztG~5VFicJ%uD*DobGo?y4cSOeQwrx-$wXpeM+6$cB#`ZiU7Cq7@`kceXG*20p8h<% zlDK-DKUs{DGghdeI2;jyFv2l9jNA5x1cDWWCZ1J(#q_1Ea8TOpeKk>dof8k@dhUo| za-W=-=u9I`k|H4KG;|05@YGe=VK+{?6@Oikxo-@`_H&%B-#e!f-jRB<g%F0_;wPTmgCOzRhI zF3VGmnvUGrtP;4LM$vk`J51PDzQSW~1~pq<`I?O|-B0o=Fu3;pkX%DPay`-boAyN~ zz3hrK29pufKn{ee)Yy8d{Vy96(wfm*yrnytC_Py!<}deQqOoLda?X3(JEo{glil23 zEO*O~kAHqN4Y_hQ9ee$rU??NcoD}W#EeEXPUG~GM6>g7vE*NWHjZa@$uYc62F8IPs zG_p31`lk(KXmUCQ)z&*6%_oq(rAvtfl053am$B7HD&x1#+aMTFBc`%W-nVyQ<$|+o&XS z4Ty`{O*)FDjl;_AU>Bc3+2Q>NtOX|su|w@ubs{Vm+D&|2$xoP&y>B`rp3{)_s-j$; z?zR_ZJ1Je>P3A5~YVx&cKADK(%G%M)nsZExE!x2f`+NHYnq3rl?=Gh!BO|jhk|SHP zc1r~J)6UqLsgad>N^Vm+(EM%6IfIU#@~I=Y=SWles)V(-*}C;hR=f%TB`HQ_W+z7a zQ`a=qo3!>dAb&XZrGBydB=V-a_}+op`niorgR1mxi}v;mk#}oX&Rc#*GJIymzT4*A zC1lPzE_n#IhO+WGqM-_@o+j(vb+fJ4svkZ87gwl7SamLwy!E*bvLtDUP;cmarK;0M zo0Ucg(?c|WdI z>l-%$0~!*MS{GA03k`gEd97RqwL}MjrUi=689#rn;&w!snE7H%1<6K*P4{NmW8*X5 zh4B)l`QGrc6IJ?YHUg^yt;UZ*>@$lpqPI_q6!05&5?9GD_5+`}B3?-=>i?X}v&OeG zvcnb)OP0$!s{ZVArYk@6{40cr0Jbxh9mWCiV*RR%*b|G)>47%5*)~urU>?OjIGBzR z9v{zN{hy}-LoQFV>4q4j7Em!{fmVBj<)eO=(aV@F4yhzAPXH9dRj-@Y0=AxFVZ{L8 z(u9COfR}K*k}USEIrGfa{kJ!4godz;`rOtAWi|q->j1rg!M8UT>((o8iI}os+?|~q zEm&|1za|$}w4Q9gcqf+|0$G*A$0nGYniSQ6om(}v^1Oq&(=7C1KRLJ8 zOL5O=-aQW{Qe_d#vntDnO{x_;_i&9ys1+yP_60+mG8_5Oea^) zjiZop`I1I>Q2qSyURXaje~RJn=d;#X9#qIts;Xd(hyH_LZ~!T~s=@SUZ5&z(x`xJl z+kmbltw^RlYFi(%+T;6C-0d{;z(TsjVwT74A?G`JxdI2m*c~q}d3BTTNciFq6lIz2 z6}Q~luf7kh4qD!*F>T|{f*F#0Zp*jY`q#diBXDJXo<`#dOqjE()GY7sZfs+%4d~ru zkfi6lwH0u#BDG?7cy(SB#U0;`x)UFLjPr~ift8A3;Ggh;wBI2b*>|&_G#4*vy$<$I zYW~N&H#&yz64V((Fj@o_R39RoY9t*f56C!`VI~irrHpJCB?7wDI^uBq{EVegVq3yX9wA>j%?X()L zIC2Pj9crLL2JkzthSMSvM05ylviuVC6>vNmG!Xl1iI$tD{{DB$Cegf8k9Y8}hbpMd zKbQaMOoYG5z{6Pr|E81tgDe%P)p&iD<&L|Yv~VT2A%Js9uD=yB46f>A2a3lQYI&&f z%$?6OnFUFDS{~Ipxw+EY?M>Vn&6Stg;xrd;$%t1iG1Dkkv1DeVM05;8A4*xJg|xQ) z9;ZIg)YQB>ZMuD7zKI;nwl=Ln zQn+oANnbh0oo8ez0mE`2hu)kS2SQm)aEAeoirmuDBA388Sr`_E$)wqsw0@mos02DV z`Tc&Qm$~Liyw32J-2{Ri9h#SySIg8B3HnlyQsD`jyIhAb|7_j}4ejBc>#OslYNvxV zQ0M>kl5<7#HO_A?UZ(F~njW<_n#{)_BZNM?dDqj-R%F?dH()0`zpF9P_zEe{UHo;5 zg$BW39xDbJPe=!SK}V02eH)@42tyI5fVbIct%QVdox_eC=9X7ftlbD!1&%b>b|X`nWxTBkKAMUbH09S2D3sUv>>V8wzw{0 zxhed;`OwO$TJ2w(TxfOaNFOBimxp4<7Pq;3q#3+)+&N;OV~)uimm7$aFfLW`PHgL|!Sn!|v(`|lJF zxYIsZ5V}+4#w_s?PU~MB<)n%n=iL;M`T+ouJNC)PX8|^@sW@GdDTc|0YS*QvhqG}3 zAbzVJ#;TP}2t0b^Z9B-jfdc?=yZ;+7?9ZFi0o^7@a9MF%X+MYi)*k|}436#d?}Gtt z?hY7SARr((f#!A}{O5V6^l6bb3e7B(kTziE(NBpRkUbMl5qGuW3;8n=%YF_AJ~4f} zj;b_vGktllw0E?5`RegFZX$eQ4Xz5C?#6LdLfS*k3ZT&I_;AnIcKg@niuf6s`gzHk znnl5~LQhoiI0+O$j)mE5tvn>QkRZcE_Y=R*d;9FOBK#oZ~d zL26JA$X-a+0)R|AaN;NiRs$8CEWS7tQK=XYZ2`-SmveNrLGK9_s)lkEZP2~({5{}3 zGEV^vRxtUmSO8i-ddUYSQMrooqhP2Po{*5s@4ZP%xAzCWfUi=!bQS^w-M!|Q^#_X> z^&FR&yjLxjo7T{FXT9~fq51&S3bi5(%CYuw^jK!Z15vhvQ+l3-W*3#EJo4MNLHhB9 zS){rJum^fJ5N*{2?d>nN<|@WKAAXqcurp=C#H9M-Hum^#8B=O%>KXVru*k>?*R7J# zglHf`W>r-VJ1P|oAYmb!y9tzUesDV$_;_p8`PVmKy1_pE@!wYUGR`epaUnyW}%>ZL?s4MTO|r8*hDyL`sCVE*SoA$X}iroonoQ zB^W(>f;1R*wNx&*i*hi@21{50fk7FL{pPFHyr?>jE6d;<2a^zMFmRkP@1i;i?NZYL zTgeB6A~+tz-3_d1{9o->3nBGhU0=fiaW?=({O7g$&|6zFj*k;3v5G!V`w?IZyz=r+ zSb!67);;R1PLc?NVo1Lq;2N^(SUqGvRRS9)!^g^vI>d{|??5;aM$^s3GvFlhJFTG{ zJ}X^BhtEpSE-uo*scXVi9L9I?w(qAr3C?SA2?_X75(3Z6DaWQ3$>wg=GoGujdGN8T zQq%R|4ITk-GD(DL5?UOb9V~CM|L0AD4glR-JHbCYYJ<&&wq0WGYu1WA6^tbLrh~4$ zPM1*Ry_(;&uY1^K$~E3}n(PSl7lgy9m$}+-hDai=5vhv5lnAq7pLhwUu)ha(;W9n4 zweDUiD)lrO+&F6R#DU2uqz#NdGLY`wTL7_43eBv_Rp7AFIYo=2#F__0kI_pBFEDr| zYXg=b0o&VVt|0hg(`~f~E&XglH!SD8t?}wme561XKj<-IOEQFZ`Y*Tnzv`Vd(}KUJ zxAM|}Kq3@E#6F^?jWfZ3{%dCx3~li4*gje*Egb0X7W`|xIi3K{yUhTx|J;Eet-p)1 z@BfrmpycU-ccyX(YG9W~v;TAUff6z~`iGkgyysxJbMh|_4u*ITX9V6*E%F3nn13OC zCAY90q@)i{tjV3Q$lSC2pDL<<3a(KV zV7~h#1pY0F*oeH-NR-)MvQGXKyY0COfWON5I~_u@22MpiKe}MceH$#2e$-KTU?q`o z_+*#R>KT(|pm2*mM17sz3@4M<0Ta2rz;|bQ$yz{)ImRNL)!K-@+<5#xA#r*{K0SWs z{7<%nm3@S2*f3O>YzTMf9PX15re#&78jeNgZ3l_>FD%lj;3mo{w0z|m_P#Bg$$T(X z8@VN|LZMB|%g|d@x{5B`ZTGI+&(RGFUbaGhp7K-Ao@9P3N6ChAX+G*qt;6i*jkV;D z`)=czcu%`-aAcYTr`Mh!Ti%15JrUt&LG$)P(E|L~jp=lBUfa+Gtzl(x;t&0V63IqN zO-v>VUG0+(#|zuW)73%TRa&BIK;wYC^l#f2ISrDq@7ne$t;7Y;$FFO>3x4`23QKD;lPiI*dyX3v)n*_}EiS-WMtLkQzt#9HO9WmKX zZKBtn{&J8I|IP)!h^XZD1qTflqF$Eu6^eB)LS#keduWLtQCnS)gI5zzzm^abRk-M) ztX4wdt6r`j?!hW7XF)?r#q=I>XhHhf(Ws=|(`YgCn!SS>8Z;T1$y)2&oEP!jqLWQ0 z{&*zZj+0T|W7{~Ak&gPs%X_I24sI>^=e9?9-!}}L`7xuSgi;6>Gc6UPKlyjFizhCj zj-oxXYakC3-T+Dz-a<$Wuf5vyUsf{Xb*mo++M5|E?@!uDyXfWlmWM`v;7axXZVrcLuIcUus+H!?(~C!*UGY#hg-i)IW6jHT$5w$tYG3kba z`@^WrW?okH!8Jx^$+q~SePoXca@`gD#&AA^ZX?Xe!4)M{9j3 zg()Ci2Ce=!e;;jU7X7AT2|M}cc;v37U_DX);GF@Du*FaGzG+g9laieGkYS=#bn95S zZfM+7E}VNjcNn+s8V-yJrC?JJDjp&sr+TbIxhl>1CB+D5;j&>$6E&`YCvI`VLO+|G z99nb|G zQZ)`0TMd4D`r82##pS4{jUTi8kd>z%Rk^V0`!kz#wwpM84T)*$a-LMc5@|ZY@~Sx5 zZh;ms{!}2o_S3y$Q%NvS94ve+Dcqjx&{klM#lxBF`H(*C5EEr>id^@W@9uRSbWuX- zQD}}ZVl9M&Fbv~?a8!_L$@N>vJ;=q~WRfvaOMFD^kt*VZwKj^2xX&~09!Iep#Qgeb-IlcnluiSh?iNv~%vKl0DyW>VTL zW=-hX#wW^R-tB{a%`tti##bg*XHc*cQSrWHrRV33(T-0=-(miGn9Clf$X9m==Tizu zbHhWC5D$z~*!VOh%q=8iL6VYvZ`NK8IY`+8o}bWZSOyzm@Fgf9kg)B~^9lF=yZY8}?omvmrS7@)@O4 zh*rh#?MrHFDW8)f1W!zUe zOE7?*gDkjX_t3j5$;W^7A*;ut$#%~@i2`3Oz4`hkmJ^e8KektbSfz9%B`Rdq_RZNH zcPoauwC=ZUlnCsYlc!jg}dS&k!{tNt3UCH!ALwL$2Q$qxSvjm~4wq zqC{B7J{d;gO!a*qbEyx`;ZZ(sjZK$E66(u2v`74z_Fo!MI`rZ6j!*gQ>#+p`tJs-% z?V%T~B~my1`ul=C7%?GT@^5~gkS47axnTdC5D?{VRbUw$s#*(@8* z^}C@Br&+egt9rfTCON);RV8QV6qAH~g1>71o| zQMSV4Tmf2^BSQrozfgp0rBqW9WA* zUShE$4zX@%(Bh5tx0>7?*M7@u=%ctd6(nSALz=dqaKl1S!NMrz7mIR^x= zq8pX23pl(1vI95mIe%y62(P|-+@dQxl0K7)W9#=;Lb#VhjD>osj4%$i=yJCIux2vS z$E~UTbwl@xgMB|)1a6QfpIY!}(a$zoAiUNNMK0;~6vROaMjto>hC2K(NE!BuvfcOfJZ;@yU(* zV~Me_-UZ`~JrpXIECdy7Edop859{ zA>4N#8uqu$obt6T^<9S3m)ug>lpc}pG3U4@-g~J{!W0@(xX#0F-V4mJM_u=yUx+mF|De`6rxNZA z3nwanBTWs%2}*Lif9}LC=n?gG5;@ya+JbEV=MBx9PdbW$CNL{j{n!}#sZzeMwCVgM zR}|Z11c5KEwXquJehLW@ zlg-k(IF2WnZO$m_dPZxUa`QII0julcy#cdkbfjOE-|FdTyXxL(H>bR&Z>!W=J_~_% zJ(NG#zdJR_tOs3LyD@|R39Zm|=7!BWmqc7z1pz0f`SgOULo)*bCL%&yX#vbIhx$t-LB26XDYKQI%Mgicw7} zhUC&4qHx=>gYZ|*!^Cw0>isZ8R@T$HF5!F7w`mVe#-f{QLFO!pLEzZ;&ooYoc8RN3 zjx6iWt+H-NY%P`>qa3E2Ztg093VZA!`WmO;UfUf-P$&VoPVT!Y;7Bs`@!U&0CWz{Y z6n%>&aX9OKxwCl?(x#=vYQMAKsZto)#P<#g`o4#1n#%TjbL!}Z@U98Yb(3R=$M%S3LP#iks7bCEYK(j>miMQso9|bT`Xo`K zV3#+fen~dqlCG3Vb7SD*W&Z@>)cKh#~jrI#H-Q4#n zLi@pI2$)uCZw2fuR5KZ0_+*SFziCe%V#AV&Si+&C#%Re*!(7S01LR#;eDH(iPj^4~~?%$Z)-d3CV!xAX%eEuAk}H?zgz3A)NdhMiSN^ z7AU><=ShpMO}#+&!OQ61J6h`QGndvnPm?~Zi#gZlG1^0ww93Ag&m*zfzge}+5|cUa zKBA{mPZ-~vO5CZc)K8tTVnLtG!l2~oe=$Oh&8>^#K=Qe!at7OKUaKeElSgPPqPoft z)75no!Qo4Na7BKZb4~Mf*`w5?T|Cid%4i%Hgu9j!{v54H!3RK2g0k|uN zP$cR%8)$)mzQ47Wz6nb#zjZnV!l41a%`iv)Pz7UC4zeF_j`Us27$hOF$HQj;)h?jQ z1%e>DIp`K6Oldfu#t8;6Tukv;Ci!1DA=iLJ#H!!@i1(b(ad`|2u_ z9T*)8*y&hi=Q||W+&_XhQaC91L@(V3pWK&{`Vxpb5Yl=UAj=A4?Kut1&mO%$v`!if zF+t^UIf0Tz(adM852>OXD+yYs`iCR86+CQ*fWo6TL;BXjw&BQ;rd4+@YjbTps+bh6kqfR9c7E146C zXyyYheqU_ysa68?nwVTfr~4JQQr*Fm7OF_Osra%O=GtF`>!Y?}%sKy!%_$2z2Do9O6Bl^OwxRnQ+SSOQ*(1O0Q6o0NlE6|L&HkhN2t|e6kwWd`x}0I^hhps?G-f@ zLlsb5hgQuoi3x2hOluAbYyC)2(o^SX-s_hkxb4(>`94U%4Ap%zvD|>2N^xvMIO3%Z{HD#b>YT^ z^DRAah*X1bmqnEEhc9kSg~Bgle4RzhgU%OF%CCz2$6KS1ljX~>Zl`sg&zhTO1#~`* zUsO8V74-RG*lad972M9Zf5_6J6=Q0GFsDkENc{ZW1q{VUl}WnV^n8YSw`KS}?X5?- z9rr`kYOK^L7h+-*ino^*I3xYC&t!Q8o0I}KbkzEln?7alNm;>s!ov7f@E?giEB?JV zJu}>FbJZez>`ET;xo3BOE3-oR8gbFQSK!0Q1J@GY`R@QQ+E|nSGjyYErRjHP#5xFw zCt!2-hTe?z%t{xi;9V7;u#l0@Js`e)+ak{9KCX!%K{8FID_YrpsJV1tD2S{%ZA zt{$Ec69OpC`><{DPYcRVbgN(A8vWP*oxDP>`cbb4VvJ-%s zi%rKtax#cFb_KS@TsABBe`ozx*VW~HRS*>P>ZTSbgj1q{1gxu1cEkZ#83)WYxGYC2 zY6uAXtXAFP(n)-8#pDl$i_w5-wOlKUWFiMT&}`@86Jke06crWqKsxF`HdT&l)h;`) zgGe>IjbBgvqYS<1UEloX71V(#{D_z&jG7-GSbm4E>d{g*><23n&MvGf;7s2qk{438q?jbb{9h4ppS$av3^XqR7CZ1p*1W0`(r7+-tVKjORJG z11t=_nc6;|*ELytWZgg{!9rLXE*~>bS#A!6#(f-i_Zyyi$(a$mc^Psv-)zREOfSO8 zTuodSRAml-uybZ6ZiO^7w+Ri>|I&mB_FV!Y^LzOCu2nSXrXd&2?d*S&gcU72*T3t@ zxHi1r7)q}}cupBMki?CMiP=Md8oAyUfLr6q5|NM)xNX*Bh0zkfgM}^Q9OHewlJNnh z#fSSDl9=S|6ISYH6>$OuNp|MbXg=8T?kb6LBcBSVyiM`$@zf`VY{7zNR0OJlJUvAgsR#GSP6LP1s zPxB+XgkvnPI`Y>rqRyN1r_O2@5A`W-jOcD|gi&~%q{Lle%P9mGD@65mTKH;c@~p** zx)8_7JdK9hn`|xpXup4r)U(rcSbBYdKeX}*iG-|iVkNEasi&;bsw^gX-$uwKO4aun zja;EEg@!VmjDuT{kgz+z}h}*H`nCqX)f39N>X7WMpOY%=oUI6u0l9Xef zz0T`_cB9!+GKbykhaTItJh5@qzz5+&b7pU^L^Ns=&#*Ju!?WKzfFE z9O+!IX9Q>9;ar~XiB_154uT+gfSI9Jn2xu9L_pl{qz=peuJGXlj{DVtXjbJiurh#K zqW}CU8@&T;#N`kw8RT=d04o5{2q=g+E%LpLmH?RC+1>p?h!IC-GJ->(kU7^082*Qm zVyknS+4^rlbrOZZZICOOm6%`8Jv%>FA0m&!1;l~xH`R7YkXR2h>;I7_y||U=(O3f1 zD8K#h55P)2*hmk{b#C&x*Z-JVBN*7{=dA0r`C}6Rsow*I)s+=3Fm_-t!UJ((th(*l zyl>1!y$o&FdS!~D?j+^|KJ5GuaBzTAlHh8*Zu&4kG(s;>{4Da{o@2s!{?U@c`mLj* zu*~@0($boEIx5;U;xKazY;`Gc9pJ@KnfU7xsA=%x?&SimwA>2E^XC#$4Y}Z* z18*U~z4$^;Ko>X_YBW)tO2l9dYI7`4n ztDk@#7Y{so!?JR!+a1# z3j`Cfzk@hfTMvzMtpm}?M3V!$9rP5t??rA1WwCB z{yLzcRX3reVvqt(`>Mm#`5@K735=?PNbi-=3zT>O9ri@2eo!l!PCb}?jN?v|{Iy`g zJWJ+{wQN6}JReH>iVB>l1CfBk0mh%&fZGq11oO3EJtN^?*a{#oJKVgpQZMnJTP%0; zH<4~R(f3{}1_{^4;^Jc7=3?O2m8+o*Xd@{XpQeGhO$JPJU3-50%z`n_&P-KVh5;v+ z+*;~1Q}Me@!*nu}`=_TJK$RK@cG_Q0zb)_Xh5}Ya-g)abVTj1zcaEzFG`6%iOw+&s z29PLG=%tc@#3*HW1ap>mVvVcllI4*cpXAbSAkuwQbWRw=3B5su9H z!LT^9_CPXZv&d>qg{dEQ12P%3!NbdCw-Ih4tD~b+3^H(aV1wqfwd^;0w>MI5drjbX zz~sJ4rSQRbvJ1chRlO-xE)xkM(*_!EuHF=W^1XVHEgLyMRbe_xrI(^N57#sK4eU%d zjuD0)iW7bdUE%7)yw0bY2lTtqFvOiM*5b9QqLj35vw<5DE8lBFzY#Y*JsS839(GHa z2Z$GHeWS*SiZM$g@uPsxlD^prW$L<0(R4rmcG2`T+PpytH4dSZqL)W%Hy#Wyxa{4Yw9}d#&{`W$7*Jn=yb9Dj#Uc@qV{$yw-F)L31!dlJ zt)4TN6xi{-=H4)xepA71W6^!n!-sl#RFu7?xS7i}9+rL;Iz_T|`A$RBo_4i_%=>U= z4KRsrI~&H#@eO+nXvb&Ejei1)M*j@(Y}f_;#!zg0=H|d`s2Zn@$0oGW92oL&(*YAX+T2SZ#m-q~xTIe9yBZw6m|X^|K;E8d zJ&l^&}`R_eoD{KstPRLDe&qJErI*f4cF)2ED< zN^Xknmb|;vm47@wP`B3@bbGbVUo#yIXcJ8AS9|~bp zr7cC0>x7WLQmA+aWJzss(*ui2*!HAsMNgY=<_luqaY*Z}ixHy+!SEr~>4$7=PjbVX@%B!ZY6qL)S=L0}F(^yi?= zwHhWkOJzG=Z{C1zL4gx*uXd}DSKtme*`fFjU|&2rwSDt=3mwa_tFI8e%{>qTB)1-& zB>uwYE!glzYvc!OM$+Cql=#9U|Aqbova`CHTGE9(i+0OBh~i|V&GmjOrqNXS(`2V5 zRLH1JJ&=EE>*?#~kZW5^SE2*EC%Jjq?Jl*P;VAXH%z*SeDx32}e{_w@gp=fpcW9;h z&@>5P4#Kl`fDo_SHjx@~xI)kX8&h?jB0-hr5uZ{u1}wSrTfBa@sj4$f?>dL07OuH2sjp*h5pIK7lw(6QTx-NjgXhQyO zSXSX~u*c=}{D^h5F2lMC`0l8i5b9Oe%!skEF^1*Wo(rIe&pvwBZIv!IAUVAy{CN8I zvdj6|r6IbNSZ#ilM@Z6^&D`7l*Zq{-yTg(WyEBA9$fW2D=Z%7em*bL;$-Dn?D!Cz2 zjUQ)2xl|8TP*Cvr(fU+i;JZRvQBS#?BhYcRYO!oQjVX^L@e9mCO6DW2SfJ2BEAE@yIuT0)FKJQ{~0)BaEL`1*14QQL_ z!sj$!XvXiLB)M9f%~Z4I%H^b0(mR`ZI8&fUxNb~0^~W4PiGoE+9g0&7@Di> zQG8$7lw3yNy7rdre9QmpqOjQf?JHM6$jjv&yZt;-*66oVW?5yfY02n)l_he6$QX3x zBnX_9J7_gxz?#`wA9h?EL(;=Cg)SrP=h8%N?;xn(4@sw})Lt zuf7#T?(H6?$Qc){_^tv3CEvoUGlbzhEN|xCXU&ryW{o0t<08GLZ&#J#0_FyQ{xss~ zP!rJzFbD`c^Q0yrlal+6D#7%{Q~wHc#$5DRR~r&Nj|V(tOWo1WxS+?`xh~w9I6mRz zb6vNhE16N@TFEmspKpVd_!adc5>rp|*CSy^UGFyKpf5Ua^#S`e6z(ZhvmSYDXEc_t z+-TeN&OL|umj7}kN@^sGeAV7YSE`Y?vyalS>;EF{J%FO>wyjYWB!_N5Vw1CgM4`#4 z$pQk3B#9y*AQ=QCNNloXkR~SsISGp7B$7dBK*>RZaqdetDRFF&taKT~})_Le7?@%7#T^`gUN}ri%J-LGZOsA9?T;g*5v3 z#6s4D|Ib;H&s)D5*j?Ud!73xYvGm=1$VRbN1;(kGhG^wIvC&KK|&e(c87@3jQUQ zzL`Cim(AHrsps!p1M~)1Cu0kK_)K4rv8B{KxfMtj0vRz?|H|cE+U?gGbUO{Segi+r z$Hq&lYGsW0yz0{^Ouh)8&_}k#?$_>I|INg&Hyxd9eu7{jV}=T{338AG>0+}ZbKj@G zc)Xj7XIY}JaajJ|kXxPjvEFHtcGO+<@5N!FNbVqrB3TDSQI$xI?KI%H_p7CiZ@8b< z0P4J{%rEnJ)2rFHTw2<`boFzVP2qXs=ZHx!srYZ@_yeDOkGHJzB`5hOUW0{Ec%QhL z^zAoMZ@P4A|Ey-$0>29FqfE|oKbb|+X|XZS%2?l)eG&IRLnoWLP;*%t^nKf*oRO4~ zU$5D>MWNL6$^<&6%^*}3*6z27J~B-;aaHSdq@^>RF&ciFJoou$j!<5(+WR9-vEPr3 zByp9QhR~DGGaU1FZDNH6GUJ&ZWxgf91LL1b z`yLU2C>qzyDDL_UM%?c5YF9v21n>RZKO$r)-#tYPod4X)7kJMk5aiHqMoY<={o3^+ ziz>rPPuy*5Gb1vj%K@mhtyuA1B!|1^yeqG0BN%?`oQ0T#3iWzGpmzOi%)D>S=hYfD{C2fx##sc3;nDF2BKM9H;_073%4{S#4ws6HI|YeacO3=! z$C9JV@`4fcNdtmE-IDlyV@+fSLSu>6y#Blr{EUA+`d0HW75VzouV7IF=f;$ayF}$1 zqRlo7!bY>`FzXy@`UN8a71p}kfa@!lS#%T_FvbRC+zw@niC#&u9Oo;U1Jebq!MNR* zL-_rY8Z?=`J+_-VEcW>cF+E#xf4HWqkX+Gy+L`B#j&lL9G$PMw&uK?1$xJ^;YwK!J zNUV(G;cL!}{nqh$^!FeuvT!EHOZ9kNpp^GS;bN^)9VHETi&sr>YR_D`ZokLv33-#q zMLI|t%ZGDk1oze!yB`S(|7Xkd>VPcVIe*t{?<40CA%e{F^g?}l!@q`>6@>eg%jMod zH)9z64s;%@D*E*cIv?#hP_Ub2?;7`NWFvjEW}tcT)GqxVd8lVA@XLeI{85yB+v(`) z14pcN(<>V`F_KRd>@70hvL{XV$NXy7olv?ctYe-`EE4vC%q!~#8zIsOQX3%>c?YA0 z)lzZC0bLEg`*FYD*EuQwUeuFg%5^X)U#Sw8{9B{-9zdS|ba*DBf^9g|ii8W$~OU1WB+;^+N=BLCF z;HG0`L_$Ix0zSdGCDK%*cu{m$LPZB$Hme^GeRp(rQ;&Hv)?;jL>%`duDNNPeG3!FG zeF_yoMSVlKBxj&!Pm;}jvxH%P)+Df?uaJ;~R-gn;Y|mQg)~LH3pV`E-tx?6S!T-(u zH3PTC49@EL!$wJm#Iv*#tnvMe5i#Cdx5$>4r&vkmIC+no7=8Za?q=rvPH*No{X!!- zs2dU1D2pa_AU;%N_r2|Htg}VazT)EdQCgNbH$`)aeyM>y4_U5d5w7%zBC zd~!qcJllp)M+np_ibqpybcWxZhSCNZEro8e>kM)$xgeUfcNoA0JpHd<%lf^}hpHT-<=RIKTPV7;Lc8(EO|`B@oO4H!dcrPaIx3yL@059`hyHX4jEEPxst?WOw1(>? z|EZBu>TN%*VAPedd?wBxB225y!ct1JX;f#WY?Dy%^r>8SV?pph%F-p&~<7+BK5uHg6Ui&=zlXT)cw4`db`a)JCOr$2Huu#Sr)7kiuf z=!X0!JT%!XT}|2`h)5M-gvP@4KF(o2_QaNM)#p58BUqWM^O8+z~)W5}d`x{mEO-ckY?Diz|=Q0y*+<`qj;f(}DGFCw2 zTf1A7)!Q>BKeJDIoE% zw5F%R_`jbj&IF&EQ>Yi`IH(SI_pYo6CtMRsp3u)+N?u1djGZl?1vd4~W`w*;sdt$-<%WjF zB&;{mDclNj8iv;)85Y1ZIbb9jzI_@^UWc;E^pFZB^0|lE)wSyeWmH&NFTgVO4XIk) zxOcT`>cY4;wtoEfUE-U?11mJ;2}v`oF4+Dd@ywge``>jtM0bdsoknHqJ&~|R-(U7Q z(k(7KwY$>h{NCCTw97_TsSxps0I3c9-WI3oZ2{5bBqx)oMq(}V;#YNc*SoyVW>A$^ z*%hBmgfEaN4d^Sz_vH=Ycw~*u-mgr#B?oU^4PhT6-B`_URHjtv`y5yIZJ+DKl$6eW zq4(Xa+?TR~C9YQKv-vC9A~j2}6?hzdUU%Vd3I5g2;+u+!2%8BHJ0V^+e%)tvsI^VMiY{8=ZlJZr(ZIgx| zTJ(l>%O}y;;9%yq6%qOv*}U9CXyHz6_wYVDoFUCks4z6gwB=Nd0E^alj7Fr)c4##1 z);cF`6xxk;#XUz=Op*Quyl#?z*~To|we961N|m*RnkKY8wTopaw{Oa^u5hsfvDb1O zy{WzyY_~J|cFAWv2wE^E`$4h44XHjZxWh`ADWjY)9AOi};GrX-LR-ZBL~>RBx5B}b zIz_F;#0@N>vAJWrqzYsRI+tDd59spAnts0Y)FO$E-U7y3aQR&#g4#~aSWMjRh5UJ< zs_;?2V8v57#95h>TIol@h+#&^AH|FmF9!J-$0}A;m#KJsWX&lK=xXMJ4~htrE_p_MFGS;%pH*kNeZ+{J@KEbCUmH+uQH z0nFz_6+4^G{ngx4r`i6uj}unoDG+EM>|l{NNWQ1bz}pq%qF^^<5Z8lz`Qu|1g$A1s zTqv>a+a5y4!JfCE`0yt$YDs&4+Td^T44geO)A1ZgZ({d&e#?eL%LAodqrJyknZ6ie z-y!)9Rs?@r|3nGauc;Y-Cb@lJEiYwrAaS|MQo%Qfa}>5pKF@$F;mJIlAX?lb+*3WC zAd1U*FGzeM0q=2{wPG%D1Z$QAcI*45nxy_#&fx5@>xK#VJD1))6bG&sUxwmz<{s59 zX>z_a8pYz_pi{3RmG~Wk68O1`y@TRRH0;heY0rpq17HK=-0K%<0q zV7s!-i%mu6Bxqtp|q{AUM1cAK(@bs z_3VQ+PyI_I1JZ9Ti+P1vWS+b~GCJnwL}Qa^C7Bf60oJRmk#C5%Y(6}U4HHA>Ly%^9 z#jIvtG*)l+rV!K!WkdG$RrmfS<9f8ariH%))uGsG|9RwG*p05r_tzh^ZEaM44DrTW zEMr%uP_(_Hg?)sR+VxSrQN|(}1W=dk$}LXUkH2hFcpr^4?lj6>aPUzZ5((UacV(rf zk1^xZ5_7HL*X7P9+&MXU&@Q-v%9#(7(~n?T&JAv_gns|iAwbI^xhIDxV9(h{u=4Wz z$crwb(^ckHdKUv>=40A&cNtqWyY0h~4|y+JUM5y& z>SV$1j4FgfzG?>3bCSgj5Z<8>zB%WEaYU49bXB9?r7zqEU2fg?jbJ=4{4?miQX+nisAjsmXCHx0Csazs(| zt(xDjX4iV=`w-MtU-RNQ&@5BA_!7y{HGOTOcFqPtp1j)<+ZW)bFsgVzmyCm#s(G{r zVcoDG<>EQwk@Uhn?>01i`Ao*Tz08%*hzGIi`ghcXZ=diu&A#=1`{^S_=be%9Rj)BV zDakS8WEk1o030TM0oMQ*TUS|bDnBI{5>8A$W*ptt`5{6vYIqr5=&Zcx{QkdokIdXq zYkGtp%JWw6IkhH=J|eqV*DocfZ_=M`ZqvfgGfC+3#X7u(?S#Ig~mA-9Z^w`e5#ifqPh|xqF7k~MO z?Kk6IJ(|_o<+FBsH3Qj(JcV;~bM%J4(f{81^vB8$U9aw#?4#Jamu|Gxv4zp!y)|EW zY~tE6MbKJ56^}gdegDKIXpsqb#^bg5_xPEI>-Kc-HzG`ze6fRh9pdOUEZNiVSFk%| z^h7285=Oic$zh9cK1M5C_$P_UC+YcFG&jmlhRRq&sT~4;cY7I>H7$H$rVxTB+Qh8V zTD(~^_*iR2yLYwp&!#xA@-C~|nc3ak^%vnFu8c^YJKJ#(l#ATxJ^vvoZzi2hOGWF- zNV_0r+q0i~d%F8Pz9mZ-kNu6b!k@u9o{GnY*{2s%_txpASkQONI31nJxF_D(s2PPl z-^X6QU3qjjK24!sc->#SY^rzn{e#RoWil3S&HjcXD$Vky=HE(9r%5hpoG7{$oCH3##puM+e-(_Fasu@m-lh_ z?A$&|2g@Ch4eudUG}YKMf+1liTE=mOf^&WxQ^8(0;yKP8Ch}@0VKef*Z(+ZFI*^=q z3?$qYRC;1F|EhpZ#hK^7bFMQIA_8q4quLhzhoZVa^kf&F6htFsl4sJ5E*Uzgur)7U zA<^+Vn|Ooyxz$Af=5F@NNyUU>`h z@(<|B^oln#$<1vJ-b<>al)^&l9e7u-L3vtb)I2c$UERLMY6iA{&J&A~rSG-rADZpe zeW`S08N{84#1qSs&tg2g0V}3e+HSu%BYqcYbZifz_C&CKBqKYaCr*EkJ|tR%zF&e@ zf(KdqgqaB9Cs0=4DtGZcNT`B%kQbV$*D za_<;b<=GS^UafKFW${{jR2cw^8q*w`?V}I*y>fQL&g_qfaL*gRQ9<)13OCm=mY=eQ z#Wy@yS#{D?gj+qw;(uW&U%E-dIVDO(1R^?~KfNm(^I~r{kdEqC<6RJ_B-^d-m=eJN?B|Ip8i)VFSyKFF?y6&Pp7y z#-Ximl}$&zJMC1w$Hu=sswWf6^t|M0D9%e+Fq&YUWlAa9#jaqJn4OtPB_hNhdaX{A@hJ_T(G~MU zw-7c%IE!Cchdxtf=>4T(>kVy)bk5O<<^83%sp;92A!7Nh(t%_^8usoPr|pAXdWf`B z!*Yr(54=0iImW1Mg(-4~lZk+Z(2%IUNNP|CY?z!FP_RGD=sIucHx$BL${nTrCT@adT@O+65!QcDi7ve|E;8 z*j6dX%fiBUJ5x^L)#-qF(Dpk$JS^Id0#*wFEDx+0rS({BR%$!EQF-l59c3$>W>8|fxh@J)of zE>z@Qsnh>?@zCjQQ)nzBu^Me|Qk+DkNqffP9CdzHfv|RPVi$LennW~;^*kq7zL;`e z3laH77@w2gQGZ5dhI58zW%q~j&giK%o8Y!Az2}UgvIXnA?V3@o;em=F=HknDUJK(v zBqD3o6@E!K&y~)_YSUektRySM3x-;mm3aI=09|ou34ixnIh(cEqm4VPC zVRS|HfCSIfBNP#w8WQE~lbBWU3(o~ci0GRiEBXbmPP5^VB@=0FFkh`-Nusy8)0_{c z?lMoxZ{cF~VIoCzorIP|%2HB>8FlFokJ2S1AFf~c!E0y72F?TadfeodIR`u>g9$%J zShu(8Gsu7qLa>Z*f>fkP;>!og8a2j-$4=!YCuK>V4@B%QHM+bmQl&pb!5fc3M{~LOz$>R$FYO3-wp{7S z3uG0Nm^#TPl0)~|)q^f~WM?ahr$spqKQwcT4M;i=W#@iFqtpkP9QjcPQo-KCRB-Jr z9!DYn_S!|God+wU2kh%sZd_PRSh0hF;m@2-h>zY2woJw-W{XhV>4JyU~BpL#M39dWr^zocj6Ji6^h4a}~q8jP&?(tYMx;e-bBwSaZyR>uBB%9nbO|TNOkp6wfW|MD$!t)k$-FWp= zM&qYHILMg4yQ$EBKeT3Ewy$+BH3`7xLCEwPm-SD-Jr`*94=xJYSK{hqZ1q^lf(#|Z zQ1ZO^T6J`<_3Ht63QE3+Z}Jrcp2?oLt(=JB6nm$_H@GHG%*|P@_hnQUhc+##=MeVW zJ2?vv=Q@il7uo0Mi{}TT5ceME==A@PKN0E*3loS*C{c(u??h6-a;Y7OI9T1F@2G1P zCHU@YnyTNG!scv&3o~=@vv-jz_Wp={qvhPVQTFv7t)ztPl1pLy4NbRMDiIH$hymeow*GftR z2VUElcWsW;go&Hx18%v+IEnDHaES;U3vuUn!woAa>ihlTd&Uwlu(8dT?o5z!CL$?< zkwjC0?zg;)Uu8QZS(KU}wsLeQTLJXJiGR@`(<_>#xV6 z#^RLLRaFPc;vthZ_$mUHh{DxWuMpobw2ENPW*H%+K<+Ien^r*kwbx#kz6QCprloiNTzx zlEH2%h0;?f*FmOXhF{lU4=-y%ze>@WNGk7*rk0N%aldeTkL%pAP}3d|ze&tO?~m*X z^rDb|F9YQQHBo&;{qF{b-kaN?F_P+Gx_lo5yUmhOe}kofbhU73k;YG#T5xmL*b`lyK?N#&6Aafv|U}O$G@2>8W zUJ+-yZFBU?5aK);)_P^aU$^MB8Jy&c*xS*1Wfc*(6Yqwk#Q{T%<9>M@OR>!sy8 z6w9C}MeWa82NuF^xsG}1_G|TT$%nYB^Y4am7U;{^C`6ZJ`pRc>KIB}tGhtVKap8-2 zphBd*?U#rA`w{z)Yw$*^ppz;ws;jso<(ElsIh`&T^od(=un!}HesxCAn+hFnx(xvzHbp282D3%gAqxIRQ<_jlJ8Bi~bCCS91&30eu6~}rnN&Pe8eP z=O5yVYh0Dt>fJdgk)^wrO|)aO(M<(cA09OsiFC;zrU>_~+;ZOio`0%A?+H^l-5$l8 zJ@q5CpDe(xix{wqr2L3IJ)Bz-7o&jEcHDRMEQei$)tJG1)~yH|UPc#{KC?0wUXz%I z+r2zDUhs4kX{S;gITu7Fy4KJAe!)KSCBsZ?lqAT4iV;`HL3( z-BrNxTCvj>EoL4xSIm}m)M}p-XZ9(alD_-G?c>kdpSJv>#j5niOD1%CGh;rp5k0x( z$oy=sQeNWHRq~|IO?A1sklTm@f*^WJC2^xF(oPSyyB~8W;+wcxJp6i}9$Z>D--15= ziPQBcf85Qm2BzfT0nO++k4cl170rhcH;|(A6fbc!mG)98D&HtMJP{uegs@E;eVb;` zA+o=5c&FWnfWltc7ywy(Ivz!NR*z)!`whYs_*fjVIxD(DNk~{{tL&`E@hngADvboH z5{5%#_`)KPW2r?|;_jv{LRPHJ8NgMLK;%!J`s$QoiP~3qoiAV8`7%Es`iYG zd+kme=*2Yo{!8ghDpVl;==&`iny|JwYGwB)ifP&Jt5O1MLYJ61%>+oMT|W>i6?j-Z zGgwsUodleUelCcxt?I`;-e;r;)(k1YFn)cV>IyuSq9P4n#6nv1LxHAV4({}zF? z&jB8g-rg(a!^!&zB!4jflXk|iCuV;42~>(vuId=$?fmy19w-ZIU#pUo;PT@^Tb7p|}!a~95kb)GW*x^szYhCusbsc0l%nR(B? zFj=2KuULy1mL~?qQ==u3 zz1Z1l!6FU8Tx_9P-#p4~AR-8Do%)ortbQSKWC{{SL_>yIOgrGahXDD*v#m;lfIqq6 zVR!Tmm|tFlK?L1gHHfp{K=cY@0DVX!Q{_wqj$rTIx9Xba)eGe`IH=dg2)7HFIG5zR#GT_ z`Ls<)QJ<7&bFW|EXezvYNyjOSCfgq>6Hx40Yyni@al^)-jU;jb5=3=Uw*>x+{%2c1Fz>*Bg@n4J) z3j_9C-Gj?R|91p@kZ2G%Lr02?w;+ERAQXMQ(L??7{#m1MTfucBtps0_t=%WcbN^lI zlck?ttM`P9`k;*~udk%~vgq3m;$)((pOClR$Snrq527CdLb62y)r@CR0VHVMT7B2&0oVMm_cLar_hX@*wP2xlZy$r(y90!FVaKxp zvXSPzu;9PQ0R;nASHjBJMG`tu-YXK97r@$&1S70@FwrB5XAdScMb0Xctw3f+L@`~u z?VzEjP1}DjaYUcll<=s(4n!zZinS^VZqmFd96ARG7}S<^BF*v(xP8%hPFkn>4CZpM zIMT7SLE5x{c5Wxe>2>~$0`(4^{|^~7)j7rg1h)9`a7%-m633gg&j(R=WPG;zPp(-s z?om>%P4Y#5J*^bj&CXwx_*3cGT+u4-+iCsV>@OwdQ_qMIvBU7wHXxD@PP?_kczvSs z3QSb6^pPFm7!Udj2}kDKZIj2Pr)WAXbqa01Smxio#tdU{ac9)ANtWYcy%psiT3{Ih z1}Dp;cmZv6Y##YJo5Th%5hVem8Xo*w0UgeMufR54v;i_JzC6e=<`-L{z{<{=8c4qk z-1_h58(;<~M0cxo_v#f$A;y{Z{PwLR z8u#2X`(I&o)S+-%x`Z5O%PSkg%}D zlL(M<TU2&Z5`qa{af_!L9h8PUw$bk^5LR2C$i|3?^y}xt z=+x~I2wL1Jd0-*wS0fyQk5xv!q@->LjYsHB;`~?g@<>sz(X3I6O*>SNWFZhA+b_b<^HKM{ysuG46gUPio`8Tr zq5^Y4*l8{X)_bm`+bDnKW=XKUJDu}i`OFLV&7YqpxC;k$-x!WIgK=oWG6yEUr$ejL z_MuJF<@8^8e@aI;A4b%>Z;ptUZC5^T9&!rzSOHT*S_nFb8K|B?2>Rsjms1Th;^?@n^p%@s9QEdXD zI~OqM5#ORqn?>IPXFDLi%d~RBPm(`ZhtPG^DMZFC48+QF)#l#;QBbg>P7oS1AD!e3HcG&^PoK_ z<`&IFw0i_B5h=;i`x2=1x%wh%^pR2v-{QM&-emAKHghhErWRxwkUjy%pP^W!QWXc9 zc)+jKi(1mtVXe8G$=XqIo1Wx_0~Z!Mwv`wtPNRcw1-d=E zapNf4b{|LBFooklaGsV2ATIKjaUXCtd?AnfT zjlT4m8yDy5_m+P33Fg1~D8KiJFP@kMFJ-O$Xu9~HT4qXu{;Irk?{Svw2et4}$uK1! zcVe?f*}|G4mxhH%9!u6MaQqW`&3N0`{e`J|pG?nQiAIXbo(;#ffn=A~=Xi_W^Os9E zyc`|DnMK{1Pf;p|MZ1d|kEDo_!(xS5a=31vC#=K-X5MvhXyM?l4-VBhLYz zyvB9``f=hc>8BqmceG&g#$j%~tzUs$qKK-RY@_8|VKs937Z1I^Er)0)CHVu$|}SB0jEEzmhZ&ZY5F;m zaCcVVqM@+bnr~Mp-Lhe`K$rj6k!V2{EB1u%uLNqoW;cx|<%l}ga^<-IZR>bJUoQ58W2OhxLIeAPbh!YKOKv0+t&VpBpGA_m*1+M$4>QXr|pB zpt@7d{Jl3x2!1H< z&vi2RE-Dh<-vbyPQ^4c)@Y4zF`IDL1(p_kIi3*`81>pPO>eqEp~Yd zly*n#mwvI|<+QIx;+|)1i!gdk;fj*O<3Iut`7=q z7M8#Cqio}elV$@BLd--Y(g#Cu3BFldT-{5-1pD%DN0G4v*d=WGzd_dNvShE%>jSz$ z+At~TZSEsq!0m>|h)!`yC?!I0;2~?sed%czBJ7VfPE31|9`N9`mKz_a?RYVSN@c!W z_?xj{H9V}|K-M6)w$t89mzrl5zW&{(4^3GZF=ffC*oRxcn3UcYcKMd>RW!GgNb)Lo z?MknzyN3YiVJt5NGLD`jYMpFBg`>4$)I=ee)W9wZf=k2HB1oHxhpS9-Jx>~d%=bK% zu8VtA9X(`iJSU0jhr3X;A+T-T7H)7T1c1&q3y=iGDH!n4VZoDAjb40k?&U7-cr*jI zP;2i$+6-=en(cRFh}n0P)2_=?pYeqt7a(9qbhk1`Dbh_7D)s78jCcqOM5~g92uwx6 zU0kLtohHTH21cH9{I~(R-RFI|K-G*~RWo!xOYns4Ew}Gx_8yyEADX#jND-|pyfg9m z`PjwRU*&7MP^IiTHBQJSXwO3~FEq{Z+R*=<#E$jB`B+JO9PcSQ;4LKQd=Ea`pn}R* zwa-a#wAIQ8J_%*=#|Uwc<8Iz~CZrY|Lp!?i_KI;HrOFdh0an4EyH{kjo#wX(_CaAC z^H)r$U2c8UlCgrghWz{MAU|_Ih7PZ@C8DzY?0!KSHaU@dw^%?Og+M%$mlJfj`6i4v zW|K`|*+P1@`sw{Fux!vegFzL_Dy)U+YC~^TZ1b!XY_M$6i3&H1UyfH2T?BxV&d>4s zuu#{VZ0+1=^)3q`PC=%;1AnSN&Yl7qWOvgA3e-$viT754m@oE-=4+3wnX))%(|+bQ z!e$p(=TOr#1y+Y9eTHiVx>ggDFq=0QOnHO6bMcymC7H|8sz)l2Rb-N*t}|By5#YzX zelwik1e~YCThPwin1_)kQr58YuEBBP`ZW7GLdz^qU_=5ngnYVo0;Ed;u(8g%mWwY1 z)#@EpsN&`CBjPG^wd>QSM zKhERulJmxT2yP&sw9M(`>8;sRlg@Z!E95nDSuuq84iM+^WC~j=FtN4~*NB4+SjCh> z&7p}yY{5c~d_X7j`qhJU;+;ekxpmxLp5{y7%fl-n1DiMgV7nHIq8K{S1AskHNSUd~2LK{p3XU=*j~+)9W&ib}ygJ`IYl+f*hH z`X;zyHFx_u)~$yOBkuC?RTQ@+)iXp0t&27bG@r#9Q+X#32J>5$&)5a ziraV#0~4gEyWJW@EH+711c$#mq~@3qq1!4SNXvcMUP9u^B&rKWILjHip?-r((r*D7-S$8JijG~Zx5@H;9=)z^&Zw%C)*&<}e8l?op8WHh zBYZ2NLfG<@Lm1$$Cn(S|O@te1CUW%MX`qp`K!MHrmK~K6!iXFZRw#~#Q5HG3h=fB@ zxP)2VI&&1t$M2DqnL*R z=uKuCPPF@2jAm(-2*t>A;c`;$KIgKw|wweNiuIs zkn~+9$9(~kTRY^@`b4?e1qxBI`8p&JlA=p2ii>cHCkPkkAww_==!(ZH(kM3AebCI)j;CKjo#I7Txg z))9Z(DA91+j}A!&FSPaZ!2`ZRba+%z3N%k(z@)!Q<10zkq?lUH3Y#Wizj3#VZui)v znU~1G`sP0+2`?T7Jngwf981_yrcM&QLfICWbpOG_0aY7R1DwOT?YYY4LYk6DJ52|d zrFqpcXwMLdP1C{{;JcXOuLRBUYnedfd5KKkf#jCLZ{(s($)OJvs8o91h1;K}UVIwL zSBXn&B2*n!SLZ`DI|NI&yY#&l?#pODW1-+C99RpbGKFu}PM8Y1Vh=}pdtfS*=5p*+ z%`?G~o?GX$;9IOj+9Ispnnv3P@vXqLqz}g`K!(<}{pL@+!zrYmMB-150j2Iomn;%>ICthHbEJtiwA*5v%Ioj%SRJnM&`1z`ki%-Xx?3 zJ`NHU*s%*nS9Mu*RQ^v=Nr{btji0?KPGA}*Q=opEumKhZDF)F%X)k~*J;u$rAihWL zqoOXB;K(tiz;GKBfJzL|jBK-=Xuhjn0Ui4&8%7qEz^CSA>0nGx2&gF}H$g9Ur~}bP zx;BTO_D91jQ}5;EUEh^hrC&BzXtx1z&P~u|EZBAjSIBJ$@>nN?#kv6$qj}#RbWhn8 zXXgFQ5O;fi(L{Ff5+Jo08w8i;0$!^*Idwy2iV3r;z0_BZCqD!sB~@;y!o6L(-foyI zo&}yMd{A6_Aa!30+Js;i#+?Mi3h9o$0TiO#Ee7TPMS9h|^3FcbjXqqoyG!2hx5tDM z=Vw*pB5+&5a`f^8-#K=}wmSZ(g0j|uWEN;OEHd67ZS^2805JCScilA=Ph-} zeeaCm8`>Y0R+raF%Xl20a;D2JZ*Whz7h8TpU%q#cc`Ir8e>KT4rdw<-3HJVPWY*SpJid1eXz~8je z)!9VX>B$$*DHsNXAH?jlnwu2uw5jTr)J(|7>gfhCMG&xH)}z4c`8U1sAd!oOg^;c9 z!^7AxJd5O`e~-xFi^DJhyv}cx!)iogZlB*xc=xY4P>6So7}Vcz&io|~2aQuS^4?Kv zQ)D0UzbEkYYj=Y=1ev;LKonG(1S+@Ah>}8=G$CvCG-+Q?U{K?3@I2kREkWZR4X125 zDbgGa#d%%-CogKjALFq%BDOyQ%qX@qks@^98`)|7b8NDV=>K{6E$ez_>nG{Cxa`_#dv}17m?Q8;b)NBU*UhtUF@)f8#e)>Er}U{^kKg?SF2B21OB%&nrHZ-1X(D#I^;c&b?TlAD;UoIBh5*f6l;L=g2FU_v z<%ki~&R!(+KUk(JrlCsUds3VvqjB>ef@G`7Hci}78Ne#lrz;uZn9zWMIp*KsGT=>^ z`Z~Uv52b4R_^FH*gK1QN=N1MgJ0#VW4S>i)j|rPYg&L^>uTOUV`7HPKG42N$qNNAf zHSEZi{h0_=x7>c{fAM`F9df+Q+D(Qy&C|i(uM(Z?*W3y zc~sNPQ5aa_*OvhValTvj%H4v%ssJIj$t@fK+P`lt@06RH*}B1O7Gu){}u5y%e%GpO@kGC6&q- zm?`vO0A6MH$MMJL@VQoqX@uAqHU=cOdFe`@Q)H-GM-$n9onzbkzwbe3#Vz;s8TOKZ zBhy@s?XCGk**HALIB&^=S*OGyt5Sc9&BxaS+cFof6zxT^85E|?Yn3DA3MUue;@aDO zQ{rcS@xcEiaJq!RJHB+rYuXh&lPVvILEsdXu>4 zF@S^DZ;vM@TVBm{v0%)|5D2vberE?K=kcs6U0gyPydhP<#X?s3Lw}keD{sw^LgfR8 z@U)a(PjF0x{`Q>aD{^^8cQpgNa_0er7dxBn(nX_#ogv}z!oaRDd7&u|zJPQFg?|`8 zb44(R(k}l_hV&7d)x`BX`#e~9ksF9-B#{=5RR1@hYmqx*_5o06xE(ze_@8BIx~@H* zMX%HP%}85}1eg+MQkvD&JjN4lJ`sAoxBk^Fl}2v`&(uvOfZ_QdiN%>pcIWjEd<)C`(}Q;e!S{upM9-4F6CBz!4=B zW49qlK*SskMorRD$^bZb2W&)vtAN9wPrAA8b%?^jui7~>9LT`Ti`;uIS#J|_|A$G(Mw>i7%-KQx27nK9iSLANZ{qKdg{~8hL-@M zEi7H>OYHK*q#kxL|B4YHqrS+c)(;$z{u(wZY!e!n;O$s^sHIxcJha_rb;L zpL!CXlHdFe&I6_{hR097hAO2#%{$O^0cIpr7@A5CI=+D6ZQPK|$ilG@0K~-%8)DjK zFPdQh?0jkfU}7tRuA~>c7?ukRV8^#FYj}QY-bglw-r~AsU*ddEDAdLe= zl~{+P0b~Qx59ub$e!ZtAMR~6J@Q8$7qN4^G7}(VS{HgbKc>j|zw<7}QSj$J*DJci{ z@BS`^8z=PY_H^N5v#*7VB%i%3WpMz2_&*Tp@FQ*M!$&88r=uVJ@EG7wB1k}4zP`{j zg0!i+$%jyVxC1S(Y8xw1OKb!4UQEyUI~>8jh-nC--JxkM0UT=KeP#k*yk~}60I7ae zhJ2ZHTZag`4bm@ON6f^O|9J^rbA{ar91EkDxJN;0=8=AK{b%+UJ;TKnyT$s+arvH_N*nFPPwh;S+a1mFOA?^Y>wONj>dbR_bj9a5h)u6NJZ8 zm(DvbO_d_JPwuN`s;Vm@YH9%GC9PAS4mIhM)sJGCP6`$Ru56DDO`t2F}>8zB+o zoMFJ#CbbUoKU5TkVh^BbClIjf;F+(ENNn$wMZ-(#yK!>6TbeBT7wbr$o*xlyOP{#{ z+D^jL5Y9UjklvtCyw#cawTkIs{JJxMe+dCU;RUcrWX=?zE82laa-O*;h@urBW_CXc z!!X1k2t7zA8zt2b9t)EbK@a*LRX6;g_xc6J0CHWn0*D3-cRX+><^88mQ99Q6b@F|d zW#!l`zcEKXIEWq^>7|4BVFP(0>m~q;T&^m>2|_`(_n$h2NI=*J(&#ne0H{FD_hc>-86~H#D4##KinqG-kJ7=O1WZ)}O6^vRWF)fL2-( zYXw{ae*q{luN`ov7oDSkP;Y};Qd?3e&~TFF45nNV_VDM6S^2NZ-xEj)nA+nS^@MSfC=W2i*oxg{-D zw39?lJ4YMsoCB92X@{C&WgUw1!GJ5hvw!DL2t|MoP710UkWYdmwXa{VcOpu@yJX9ZlHrdjS{dgT>pQ9z$y0j@FDEgo>j z&4f>$dOXIE{B1fa^mkH#y#lpbmy=2i?VaPyl^cqItYk6o`LOSI@WdVh&?ppx8ozYg ztn3a00HoLeBTmvT$n>LzUpRNs*o5?pPV*{fG0!c7eA%jvIUGi&4BTqGvRU>#APvyU z!oRI1(KC`zyL%u{`$vldo?<~M5a9GOC)i^W6EOcx-cS%9*=uAKbKlaZeKpIstj5z6 z4RSX>%NHHI0C)6^ruD@r33$pIb%CwLc=aH*TcRMRp*|57LcHTEhEd05d|gpfM~%p! z2O2Q4<@WwBmLA z=?s)n-_gLkD@|XA83=;jk?Uf60jsTp?Ei_!H8#;ii67r8$BXxXy7RGUavoBIR5`5n z>55m!0U+t=N0)^J=E00K-qO+mOlp+^fJ*q=dEk4)TbfBVvYKF-Do@f!*pO2R%Au}< zR*cOLYP*UO!@@!P<7BU1b#D9wX;%fP$hySg!064yh-ajcx{&!lL{-XRYLA_pX28yv z2T92zJaVYr%@o7u=_ge4MIgBER`5>dwy3Z4%ymD=ns0u zRT~C-1^d0JpMUwpJ}x6_*+r)~0#yTz>>!8%$|3z(myZKqPdU}Pg}RrxTHjNda%!mh zpKMxnbo9Ry)F`AX&+X!KU}&a(t!8{{xB%2)kHQL8F$`E9R~T}CKAbV7DN_-c)3t*l z5QalU4Z$2{RJzl9eLzYg=wC!c=TIU4AWAi4Qk|!iVwCe922MM)Yxbi zHU`mH5zMl02fIy1Tjb6;%YCM9_R^QY(#eVjWOfVzUx90QC?-V&erx-(&Hqnt=l%~> z8prW1WRh}5b`&Es6GBKuE|tu5!st3f(&RFkByt&}3xzh#a42eWo0u(4gLTO*3F*b6 z44Wx7w=O%@ZFa>g+pLf-`y5`{ANKb>f5Ca3*YkXz&-3}d&*vKjTD?tAZ*0C(W(Cq* z%AQk}#hBkGGP9UYj= z#}~^zi!XrKKzSa0$Yv}vVnm1TP$C19CUN!Jfx&>QM35KS3rHJ4?Z6e0M^Gk;36%sP zp^UKD{|+DWg^D3Qnwc=i3IQA>0i;@GRtfIi>hd^Z9=itElwN{$>vMgJp8%D+hNt_X z{XH;Fojc5Toe9S`uN^TO>8cl(mM5LC zsG_p!0&9ZT+%WmOEa8(lce+prNMmb4wsXAGAOwp_jX);4V65DZ*1htx5Mh!bLhFn=(P zhcdW^jtDu2m`tL1IJ$d$Tz+c&rF9Z@PR}qV!1O;SS{@F*xL06FOro2?0oXS@0Z-y2 z{uPxkHjLy=2XJkz;j2wjEP0VC80J{&XJ}kSsMO(|R)EL2!^wuUB*pLpAxrZYDF1rH zWBU~9YHW=r7#C0!sV?eR9$$>CEwW zcNQvz)jUFY7ow|^EQoak33Qa_xYM*jS+p|F&0#yuwL>+yDfWHf43r!6b8M<4!%=ys zkfOzstuHR4^a8+W#6mZuk_Lv@tXhIZVh$s_gewPdi*bMI_o?zdkU$JP-0$Ub5Ghlp zYO(5=7cz-8}-G{dI9`eBq`V6U9b8TRo66#HZ*CF7) zs)*8OpsmV^LRrK4Crbl01o$3H2GkThtX{nFB_u8=|Q?P$S0=!bkCdurg)6xYI*%>*9l2&el9=e~BqY-h_9D zory0dqDEg79PMwo7$GmFFkKbli)P6Ne%S^?6ET|kI%*1EBEI|<2+py{P$d_Xlvo5; z^&O`%7sH0l`fWVhG-WGN3o=TH^z*iMx$RQeyhv#Y+>t0VnARto{SHZhv0|~ShCL-?9hkZb8GbZpk{1Acf<&d`V zdIv%UKa1UN-J>p>k)CY?z=Sq$W2eD!H+51p5$7+T8Q4rZbjI5n%II{cP+Wclgq%XS zLmtoe&__DYf$R4`SYHcj5ccH%QKc+;Qyo6&=en!v6-vN?@sWeI9CkZ3QBoJ=rH^Z_ z1TrHuREPSlE}XM}(bd&%5rYFuRZU@vRWS(B;1-QkpA}E6eg6|9?fZzcSdiii+gTgI z$IG7;ALtTl*?nb9oR=zf+|4@RdFr8AGR=WcvdRQ_$-Jix7~%PXs!E`AX)>TNfvm8c zXW8FtZpbC`6{RXYyti(<`%P=TGoBcK69ZQ2|HWn(&N_7c{vTK|4v@HQ=<$U1($Hr6 z1W+M!A_q*%w#9QK#9Z^NjLG(l0Qfy%aCpe346 k4wvz-{YN6v)1WUqst>MMUb?<;_B-%UckP2qD9pHj01%{n^Z)<= literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7da4bd14..08d5604b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,40 @@ +import { HomePage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PostProvider } from "./context"; import { Grid } from "@mui/material"; -import { PostProvider } from "./context" -import Header from "./components/Header"; -import HomePage from "./components/HomePage"; -import PostPage from "./components/PostPage"; - function App() { + const page: string = "HomePage"; return ( - // Activity 7 - Render SnackbarProvider - + // ACT 7 - Rneder SnackbarProvider component + + <> -