From 4a9111ab69c59533fcbf386942368226d7fcb16c Mon Sep 17 00:00:00 2001 From: Cipher | Vansh Date: Sun, 12 Jan 2025 03:28:08 +0530 Subject: [PATCH 1/7] xkeshav:abcd copied - Copied the main pages from xkeshav:abcd with proper css while following the template - added a sample.astro as a template --- .astro/collections/blogs.schema.json | 3 + .astro/data-store.json | 2 +- abcd.code-workspace | 29 +- public/fonts/Boisu-Stroke.otf | Bin 0 -> 79332 bytes public/fonts/BungeeSpice-Regular.ttf | Bin 0 -> 501444 bytes public/fonts/Mudra_Mohta-Regular.woff | Bin 0 -> 10880 bytes public/fonts/Mudra_Mohta-Regular.woff2 | Bin 0 -> 9376 bytes public/fonts/Roboto-Bold.ttf | Bin 0 -> 167336 bytes ...nson-hyperlegible-regular-102-webfont.woff | Bin 0 -> 27144 bytes ...son-hyperlegible-regular-102-webfont.woff2 | Bin 0 -> 20816 bytes .../open-sans-v15-latin-ext_latin-700.woff | Bin 0 -> 24528 bytes public/fonts/sportrop-webfont.woff | Bin 0 -> 44492 bytes public/fonts/sportrop-webfont.woff2 | Bin 0 -> 32816 bytes src/assets/styles/about.css | 14 + src/assets/styles/alphabet.css | 56 ++++ src/assets/styles/common.css | 5 + src/assets/styles/dialog.css | 56 ++++ src/assets/styles/global.css | 130 +++++++++ src/assets/styles/page-header.css | 28 ++ src/assets/styles/panel.css | 268 ++++++++++++++++++ src/components/Alphabet.astro | 22 ++ src/components/Header.astro | 38 +++ src/components/Letter.astro | 24 ++ src/pages/about.astro | 45 +++ src/pages/panel.astro | 147 ++++++++++ src/pages/sample.astro | 60 ++++ src/pages/varnmala.astro | 23 ++ src/utils/common.ts | 56 ++++ src/utils/constants.ts | 24 +- 29 files changed, 999 insertions(+), 31 deletions(-) create mode 100644 public/fonts/Boisu-Stroke.otf create mode 100644 public/fonts/BungeeSpice-Regular.ttf create mode 100644 public/fonts/Mudra_Mohta-Regular.woff create mode 100644 public/fonts/Mudra_Mohta-Regular.woff2 create mode 100644 public/fonts/Roboto-Bold.ttf create mode 100644 public/fonts/atkinson-hyperlegible-regular-102-webfont.woff create mode 100644 public/fonts/atkinson-hyperlegible-regular-102-webfont.woff2 create mode 100644 public/fonts/open-sans-v15-latin-ext_latin-700.woff create mode 100644 public/fonts/sportrop-webfont.woff create mode 100644 public/fonts/sportrop-webfont.woff2 create mode 100644 src/assets/styles/about.css create mode 100644 src/assets/styles/alphabet.css create mode 100644 src/assets/styles/common.css create mode 100644 src/assets/styles/dialog.css create mode 100644 src/assets/styles/global.css create mode 100644 src/assets/styles/page-header.css create mode 100644 src/assets/styles/panel.css create mode 100644 src/components/Alphabet.astro create mode 100644 src/components/Header.astro create mode 100644 src/components/Letter.astro create mode 100644 src/pages/about.astro create mode 100644 src/pages/panel.astro create mode 100644 src/pages/sample.astro create mode 100644 src/pages/varnmala.astro create mode 100644 src/utils/common.ts diff --git a/.astro/collections/blogs.schema.json b/.astro/collections/blogs.schema.json index 01bee94f..bcb58842 100644 --- a/.astro/collections/blogs.schema.json +++ b/.astro/collections/blogs.schema.json @@ -8,6 +8,9 @@ "type": "string", "maxLength": 60 }, + "slug": { + "type": "string" + }, "publishDate": { "anyOf": [ { diff --git a/.astro/data-store.json b/.astro/data-store.json index f13bbb5b..331498cb 100644 --- a/.astro/data-store.json +++ b/.astro/data-store.json @@ -1 +1 @@ -[["Map",1,2,9,10,202,203],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.1.1","content-config-digest","5284684971596d0f","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://parixan.xyz\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"server\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true},\"redirects\":{},\"prefetch\":true,\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[]},\"devToolbar\":{\"enabled\":false},\"markdown\":{\"syntaxHighlight\":\"shiki\",\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"responsiveImages\":false,\"svg\":{\"mode\":\"inline\"}},\"legacy\":{\"collections\":false}}","blogs",["Map",11,12,58,96,130,131,155,156],"technology-used",{"id":11,"data":13,"body":20,"filePath":21,"digest":22,"rendered":23},{"title":14,"publishDate":15,"tags":16,"draft":18,"description":19},"The tech stack that we preferred",["Date","2024-12-23T18:30:00.000Z"],[17],"rz",false,"The tech stack that we work with and why we choose it ? ","## **Project Technology Stack Documentation**\n\n## **Frontend**\n\n### **Astro.js**\n\n- **Purpose**: Utilized as the core frontend framework for building the project.\n- **Features**:\n - File-based routing.\n - Supports server-side rendering (SSR) and static site generation (SSG).\n - Integrates seamlessly with other frameworks like React.\n\n### **React**\n\n- **Purpose**: Used for creating interactive and dynamic components within the Astro.js framework.\n- **Features**:\n - Component-based architecture.\n - State management and lifecycle methods.\n\n### **Styling**\n\n#### **Tailwind CSS**\n\n- **Purpose**: A utility-first CSS framework used for styling.\n- **Features**:\n - Rapid prototyping with predefined classes.\n - Highly customizable via a configuration file.\n\n### **Component Library**\n\n#### **shadcn/ui**\n\n- **Purpose**: A pre-built React-based component library for faster UI development.\n- **Features**:\n - Offers accessible and customizable components.\n - Works seamlessly with Tailwind CSS.\n\n### **Icons**\n\n- **Purpose**: Used for visual enhancements and icons across the application.\n- **Libraries**:\n - **Astro Icons**: Icon library designed for use in Astro.js.\n - **React Icons**: A collection of popular icon libraries for React.\n - **Lucide Icons**: Modern, consistent, and open-source icon library.\n\n### **State Management**\n\n#### **Zustand**\n\n- **Purpose**: Lightweight state management library for handling global state in the frontend.\n- **Features**:\n - Minimal boilerplate.\n - Simple and scalable API for managing state.\n\n### **Data Validation**\n\n#### **Zod**\n\n- **Purpose**: Schema-based data validation library.\n- **Features**:\n - Runtime validation for form data and API responses.\n - TypeScript integration for type safety.\n\n---\n\n## **Backend**\n\n### **Node.js**\n\n- **Purpose**: Backend runtime environment.\n- **Features**:\n - Non-blocking, event-driven architecture for handling asynchronous operations.\n - Large ecosystem of libraries and tools.\n\n### **Hono.js Framework**\n\n- **Purpose**: Lightweight, high-performance framework for building backend APIs.\n- **Features**:\n - Minimalistic API design.\n - Excellent for creating RESTful services.\n\n---\n\n## **Database**\n\n### **MongoDB**\n\n- **Purpose**: NoSQL database used for storing application data.\n- **Features**:\n - Document-oriented storage.\n - Scalable and flexible schema design.\n\n### **Mongoose**\n\n- **Purpose**: Object Relational Mapping (ORM) library for MongoDB.\n- **Features**:\n - Simplifies data modeling and validation.\n - Provides built-in schema and middleware support.\n\n---\n\n## **Other Tools**\n\n### **Code Formatting & Linting**\n\n- **Prettier**: For consistent code formatting.\n- **ESLint**: For identifying and fixing coding errors.","src/content/blog/technology-used.md","aabc9237546da961",{"html":24,"metadata":25},"\u003Ch2 id=\"project-technology-stack-documentation\">\u003Cstrong>Project Technology Stack Documentation\u003C/strong>\u003C/h2>\n\u003Ch2 id=\"frontend\">\u003Cstrong>Frontend\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"astrojs\">\u003Cstrong>Astro.js\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Utilized as the core frontend framework for building the project.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>File-based routing.\u003C/li>\n\u003Cli>Supports server-side rendering (SSR) and static site generation (SSG).\u003C/li>\n\u003Cli>Integrates seamlessly with other frameworks like React.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"react\">\u003Cstrong>React\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Used for creating interactive and dynamic components within the Astro.js framework.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Component-based architecture.\u003C/li>\n\u003Cli>State management and lifecycle methods.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"styling\">\u003Cstrong>Styling\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"tailwind-css\">\u003Cstrong>Tailwind CSS\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: A utility-first CSS framework used for styling.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Rapid prototyping with predefined classes.\u003C/li>\n\u003Cli>Highly customizable via a configuration file.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"component-library\">\u003Cstrong>Component Library\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"shadcnui\">\u003Cstrong>shadcn/ui\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: A pre-built React-based component library for faster UI development.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Offers accessible and customizable components.\u003C/li>\n\u003Cli>Works seamlessly with Tailwind CSS.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"icons\">\u003Cstrong>Icons\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Used for visual enhancements and icons across the application.\u003C/li>\n\u003Cli>\u003Cstrong>Libraries\u003C/strong>:\n\u003Cul>\n\u003Cli>\u003Cstrong>Astro Icons\u003C/strong>: Icon library designed for use in Astro.js.\u003C/li>\n\u003Cli>\u003Cstrong>React Icons\u003C/strong>: A collection of popular icon libraries for React.\u003C/li>\n\u003Cli>\u003Cstrong>Lucide Icons\u003C/strong>: Modern, consistent, and open-source icon library.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"state-management\">\u003Cstrong>State Management\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"zustand\">\u003Cstrong>Zustand\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Lightweight state management library for handling global state in the frontend.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Minimal boilerplate.\u003C/li>\n\u003Cli>Simple and scalable API for managing state.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"data-validation\">\u003Cstrong>Data Validation\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"zod\">\u003Cstrong>Zod\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Schema-based data validation library.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Runtime validation for form data and API responses.\u003C/li>\n\u003Cli>TypeScript integration for type safety.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"backend\">\u003Cstrong>Backend\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"nodejs\">\u003Cstrong>Node.js\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Backend runtime environment.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Non-blocking, event-driven architecture for handling asynchronous operations.\u003C/li>\n\u003Cli>Large ecosystem of libraries and tools.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"honojs-framework\">\u003Cstrong>Hono.js Framework\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Lightweight, high-performance framework for building backend APIs.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Minimalistic API design.\u003C/li>\n\u003Cli>Excellent for creating RESTful services.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"database\">\u003Cstrong>Database\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"mongodb\">\u003Cstrong>MongoDB\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: NoSQL database used for storing application data.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Document-oriented storage.\u003C/li>\n\u003Cli>Scalable and flexible schema design.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"mongoose\">\u003Cstrong>Mongoose\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Object Relational Mapping (ORM) library for MongoDB.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Simplifies data modeling and validation.\u003C/li>\n\u003Cli>Provides built-in schema and middleware support.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"other-tools\">\u003Cstrong>Other Tools\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"code-formatting--linting\">\u003Cstrong>Code Formatting & Linting\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Prettier\u003C/strong>: For consistent code formatting.\u003C/li>\n\u003Cli>\u003Cstrong>ESLint\u003C/strong>: For identifying and fixing coding errors.\u003C/li>\n\u003C/ul>",{"headings":26,"imagePaths":93,"frontmatter":94},[27,31,34,38,41,44,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90],{"depth":28,"slug":29,"text":30},2,"project-technology-stack-documentation","Project Technology Stack Documentation",{"depth":28,"slug":32,"text":33},"frontend","Frontend",{"depth":35,"slug":36,"text":37},3,"astrojs","Astro.js",{"depth":35,"slug":39,"text":40},"react","React",{"depth":35,"slug":42,"text":43},"styling","Styling",{"depth":45,"slug":46,"text":47},4,"tailwind-css","Tailwind CSS",{"depth":35,"slug":49,"text":50},"component-library","Component Library",{"depth":45,"slug":52,"text":53},"shadcnui","shadcn/ui",{"depth":35,"slug":55,"text":56},"icons","Icons",{"depth":35,"slug":58,"text":59},"state-management","State Management",{"depth":45,"slug":61,"text":62},"zustand","Zustand",{"depth":35,"slug":64,"text":65},"data-validation","Data Validation",{"depth":45,"slug":67,"text":68},"zod","Zod",{"depth":28,"slug":70,"text":71},"backend","Backend",{"depth":35,"slug":73,"text":74},"nodejs","Node.js",{"depth":35,"slug":76,"text":77},"honojs-framework","Hono.js Framework",{"depth":28,"slug":79,"text":80},"database","Database",{"depth":35,"slug":82,"text":83},"mongodb","MongoDB",{"depth":35,"slug":85,"text":86},"mongoose","Mongoose",{"depth":28,"slug":88,"text":89},"other-tools","Other Tools",{"depth":35,"slug":91,"text":92},"code-formatting--linting","Code Formatting & Linting",[],{"title":14,"description":19,"publishDate":95},"24 December 2024",{"id":58,"data":97,"body":102,"filePath":103,"digest":104,"rendered":105},{"title":98,"publishDate":99,"tags":100,"draft":18,"description":101},"The new era of state management with Zustand ?",["Date","2024-12-11T18:30:00.000Z"],[17],"The simple and easy to understand all about Zustand the new and simple way to manage the state in client side. ","## Zustand Documentation\n\n## What is Zustand?\n\nZustand is a small, fast, and flexible state management library for React. It allows you to manage global state with minimal setup, using React hooks to access and modify the state directly within your components.\n\n---\n\n## How Zustand is Used in This Project\n\nIn this project, Zustand is used to manage the search state across the application. This includes handling the user's search query, selected category, price range, sorting options, and rating filters.\n\n---\n\n## Creating the Store\n\nWe create a Zustand store using the `create` function. The store manages various pieces of state related to search functionality, such as the search query, category, price range, sort options, and ratings.\n\n```ts\nimport { create } from \"zustand\";\n\ninterface SearchStore {\n searchQuery: string;\n selectCategory: string;\n priceRange: string;\n selectSortOption: string;\n selectRating: string;\n\n setSearchQuery: (query: string) => void;\n setSelectCategory: (category: string) => void;\n setPriceRange: (range: string) => void;\n setSelectSortOption: (option: string) => void;\n setSelectRating: (rating: string) => void;\n}\n\nconst useSearchStore = create\u003CSearchStore>((set) => ({\n searchQuery: \"\",\n selectCategory: \"\",\n priceRange: \"\",\n selectSortOption: \"\",\n selectRating: \"\",\n\n setSearchQuery: (query) => set({ searchQuery: query }),\n setSelectCategory: (category) => set({ selectCategory: category }),\n setPriceRange: (range) => set({ priceRange: range }),\n setSelectSortOption: (option) => set({ selectSortOption: option }),\n setSelectRating: (rating) => set({ selectRating: rating })\n}));\n\nexport default useSearchStore;\n```\n\n#### Store State and Actions\n\n- **State Variables:**\n\n - searchQuery: The current search query input by the user.\n - selectCategory: The category filter selected by the user.\n - priceRange: The price range filter.\n - selectSortOption: The sort option applied to the search results.\n - selectRating: The rating filter applied to the results.\n\n- **Actions (Setters):**\n\n - setSearchQuery(query): Updates the search query.\n - setSelectCategory(category): Updates the selected category.\n - setPriceRange(range): Updates the price range.\n - setSelectSortOption(option): Updates the sorting option.\n - setSelectRating(rating): Updates the selected rating.\n\n#### Accessing the Store in Components\n\nTo use Zustand state and actions in your React components, you use the useSearchStore hook.\n\n**Example: Search Input Component**\nThe SearchInput component allows users to input a search query. It uses the global searchQuery from the store and updates it with setSearchQuery:\n\n```ts\nconst SearchInput = () => {\n const { searchQuery, setSearchQuery } = useSearchStore();\n\n return (\n \u003CInput\n type=\"search\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder=\"Search...\"\n className=\"search-input\"\n />\n );\n};\n```","src/content/blog/state-management.md","7be39d8a62975399",{"html":106,"metadata":107},"\u003Ch2 id=\"zustand-documentation\">Zustand Documentation\u003C/h2>\n\u003Ch2 id=\"what-is-zustand\">What is Zustand?\u003C/h2>\n\u003Cp>Zustand is a small, fast, and flexible state management library for React. It allows you to manage global state with minimal setup, using React hooks to access and modify the state directly within your components.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"how-zustand-is-used-in-this-project\">How Zustand is Used in This Project\u003C/h2>\n\u003Cp>In this project, Zustand is used to manage the search state across the application. This includes handling the user’s search query, selected category, price range, sorting options, and rating filters.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"creating-the-store\">Creating the Store\u003C/h2>\n\u003Cp>We create a Zustand store using the \u003Ccode>create\u003C/code> function. The store manages various pieces of state related to search functionality, such as the search query, category, price range, sort options, and ratings.\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"ts\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> { create } \u003C/span>\u003Cspan style=\"color:#F97583\">from\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"zustand\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">interface\u003C/span>\u003Cspan style=\"color:#B392F0\"> SearchStore\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\"> searchQuery\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\"> selectCategory\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\"> priceRange\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\"> selectSortOption\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\"> selectRating\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSearchQuery\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003Cspan style=\"color:#FFAB70\">query\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#79B8FF\"> void\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSelectCategory\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003Cspan style=\"color:#FFAB70\">category\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#79B8FF\"> void\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setPriceRange\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003Cspan style=\"color:#FFAB70\">range\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#79B8FF\"> void\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSelectSortOption\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003Cspan style=\"color:#FFAB70\">option\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#79B8FF\"> void\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSelectRating\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003Cspan style=\"color:#FFAB70\">rating\u003C/span>\u003Cspan style=\"color:#F97583\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\"> string\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#79B8FF\"> void\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">const\u003C/span>\u003Cspan style=\"color:#79B8FF\"> useSearchStore\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#B392F0\"> create\u003C/span>\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#B392F0\">SearchStore\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>((\u003C/span>\u003Cspan style=\"color:#FFAB70\">set\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ({\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> searchQuery: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> selectCategory: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> priceRange: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> selectSortOption: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> selectRating: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSearchQuery\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: (\u003C/span>\u003Cspan style=\"color:#FFAB70\">query\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#B392F0\"> set\u003C/span>\u003Cspan style=\"color:#E1E4E8\">({ searchQuery: query }),\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSelectCategory\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: (\u003C/span>\u003Cspan style=\"color:#FFAB70\">category\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#B392F0\"> set\u003C/span>\u003Cspan style=\"color:#E1E4E8\">({ selectCategory: category }),\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setPriceRange\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: (\u003C/span>\u003Cspan style=\"color:#FFAB70\">range\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#B392F0\"> set\u003C/span>\u003Cspan style=\"color:#E1E4E8\">({ priceRange: range }),\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSelectSortOption\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: (\u003C/span>\u003Cspan style=\"color:#FFAB70\">option\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#B392F0\"> set\u003C/span>\u003Cspan style=\"color:#E1E4E8\">({ selectSortOption: option }),\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> setSelectRating\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: (\u003C/span>\u003Cspan style=\"color:#FFAB70\">rating\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#B392F0\"> set\u003C/span>\u003Cspan style=\"color:#E1E4E8\">({ selectRating: rating })\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}));\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#F97583\"> default\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> useSearchStore;\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch4 id=\"store-state-and-actions\">Store State and Actions\u003C/h4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>State Variables:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>searchQuery: The current search query input by the user.\u003C/li>\n\u003Cli>selectCategory: The category filter selected by the user.\u003C/li>\n\u003Cli>priceRange: The price range filter.\u003C/li>\n\u003Cli>selectSortOption: The sort option applied to the search results.\u003C/li>\n\u003Cli>selectRating: The rating filter applied to the results.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Actions (Setters):\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>setSearchQuery(query): Updates the search query.\u003C/li>\n\u003Cli>setSelectCategory(category): Updates the selected category.\u003C/li>\n\u003Cli>setPriceRange(range): Updates the price range.\u003C/li>\n\u003Cli>setSelectSortOption(option): Updates the sorting option.\u003C/li>\n\u003Cli>setSelectRating(rating): Updates the selected rating.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch4 id=\"accessing-the-store-in-components\">Accessing the Store in Components\u003C/h4>\n\u003Cp>To use Zustand state and actions in your React components, you use the useSearchStore hook.\u003C/p>\n\u003Cp>\u003Cstrong>Example: Search Input Component\u003C/strong>\nThe SearchInput component allows users to input a search query. It uses the global searchQuery from the store and updates it with setSearchQuery:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"ts\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">const\u003C/span>\u003Cspan style=\"color:#B392F0\"> SearchInput\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> () \u003C/span>\u003Cspan style=\"color:#F97583\">=>\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> const\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> { \u003C/span>\u003Cspan style=\"color:#79B8FF\">searchQuery\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">setSearchQuery\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> } \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#B392F0\"> useSearchStore\u003C/span>\u003Cspan style=\"color:#E1E4E8\">();\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#FFAB70\">Input\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> type\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"search\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> value\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">{searchQuery}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> onChange\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">{(e) => \u003C/span>\u003Cspan style=\"color:#B392F0\">setSearchQuery\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(e.target.value)}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> placeholder\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Search...\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"search-input\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> );\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">};\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":108,"imagePaths":127,"frontmatter":128},[109,112,115,118,121,124],{"depth":28,"slug":110,"text":111},"zustand-documentation","Zustand Documentation",{"depth":28,"slug":113,"text":114},"what-is-zustand","What is Zustand?",{"depth":28,"slug":116,"text":117},"how-zustand-is-used-in-this-project","How Zustand is Used in This Project",{"depth":28,"slug":119,"text":120},"creating-the-store","Creating the Store",{"depth":45,"slug":122,"text":123},"store-state-and-actions","Store State and Actions",{"depth":45,"slug":125,"text":126},"accessing-the-store-in-components","Accessing the Store in Components",[],{"title":98,"description":101,"publishDate":129},"12 December 2024","routing-astro",{"id":130,"data":132,"body":137,"filePath":138,"digest":139,"rendered":140},{"title":133,"publishDate":134,"tags":135,"draft":18,"description":136},"How routing works in Astro ?",["Date","2024-12-11T18:30:00.000Z"],[17],"The full guide on routing in astro framework . The easy and simple guide to understand and implement routing ","## Adding a New Route in Astro.js\n\nAstro uses a **file-based routing system**, where the file structure in the `src/pages` directory determines the routes.\n\n## **Steps to Add a New Route**\n\n1. **Create a New File in the `src/pages` Directory**\n\n - Go to the `src/pages` directory in your project.\n - Create a new file for your route. For example:\n - `about.astro` → `/about` route\n - `blog.astro` → `/blog` route\n - `contact.html` → `/contact` route (static HTML)\n\n2. **Add Content to the New F ile**\n\n Add the desired HTML or Astro component syntax inside your new file. For example, in `about.astro`:\n\n ```astro\n ---\n // Frontmatter (optional)\n const pageTitle = \"About Us\";\n ---\n\n \u003Chtml>\n \u003Chead>\n \u003Ctitle>{pageTitle}\u003C/title>\n \u003C/head>\n \u003Cbody>\n \u003Ch1>{pageTitle}\u003C/h1>\n \u003Cp>Welcome to the About page of our Astro site!\u003C/p>\n \u003C/body>\n \u003C/html>\n ```\n\n3. **Start the Development Server**\n\n Run the Astro development server to see your changes:\n\n ```bash\n npm run dev\n ```\n\n Visit `http://localhost:3000/about` (or the corresponding route) in your browser.\n\n4. **Optional: Add Dynamic Routes**\n\n If you need dynamic routes (e.g., `/blog/:slug`), create a file with square brackets in its name, such as `[slug].astro`. Example:\n\n - File: `src/pages/blog/[slug].astro`\n\n ```astro\n ---\n const { slug } = Astro.params;\n ---\n\n \u003Ch1>Blog Post: {slug}\u003C/h1>\n ```\n\n - Visit `/blog/example` to see the route in action.\n\n5. **Optional: Add Links to Your Route**\n\n Update your site's navigation to link to the new route. For example, in your `src/layouts/Header.astro`:\n\n ```astro\n \u003Cnav>\n \u003Ca href=\"/\">Home\u003C/a>\n \u003Ca href=\"/about\">About\u003C/a>\n \u003Ca href=\"/blog\">Blog\u003C/a>\n \u003C/nav>\n ```\n\n---\n\n### **Example File Structure for Routes**\n\n```\nsrc/\n├── pages/\n│ ├── index.astro → /\n│ ├── about.astro → /about\n│ ├── blog.astro → /blog\n│ ├── blog/\n│ │ ├── [slug].astro → /blog/:slug\n```","src/content/blog/routing-astro.md","51b86047071d592e",{"html":141,"metadata":142},"\u003Ch2 id=\"adding-a-new-route-in-astrojs\">Adding a New Route in Astro.js\u003C/h2>\n\u003Cp>Astro uses a \u003Cstrong>file-based routing system\u003C/strong>, where the file structure in the \u003Ccode>src/pages\u003C/code> directory determines the routes.\u003C/p>\n\u003Ch2 id=\"steps-to-add-a-new-route\">\u003Cstrong>Steps to Add a New Route\u003C/strong>\u003C/h2>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Create a New File in the \u003Ccode>src/pages\u003C/code> Directory\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Go to the \u003Ccode>src/pages\u003C/code> directory in your project.\u003C/li>\n\u003Cli>Create a new file for your route. For example:\n\u003Cul>\n\u003Cli>\u003Ccode>about.astro\u003C/code> → \u003Ccode>/about\u003C/code> route\u003C/li>\n\u003Cli>\u003Ccode>blog.astro\u003C/code> → \u003Ccode>/blog\u003C/code> route\u003C/li>\n\u003Cli>\u003Ccode>contact.html\u003C/code> → \u003Ccode>/contact\u003C/code> route (static HTML)\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Add Content to the New F ile\u003C/strong>\u003C/p>\n\u003Cp>Add the desired HTML or Astro component syntax inside your new file. For example, in \u003Ccode>about.astro\u003C/code>:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"astro\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">// Frontmatter (optional)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">const\u003C/span>\u003Cspan style=\"color:#79B8FF\"> pageTitle\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"About Us\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">html\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">head\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">title\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>{pageTitle}</title>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> </\u003C/span>\u003Cspan style=\"color:#85E89D\">head\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">body\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">h1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>{pageTitle}</h1>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">p\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>Welcome to the About page of our Astro site!</\u003C/span>\u003Cspan style=\"color:#85E89D\">p\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> </\u003C/span>\u003Cspan style=\"color:#85E89D\">body\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"></\u003C/span>\u003Cspan style=\"color:#85E89D\">html\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Start the Development Server\u003C/strong>\u003C/p>\n\u003Cp>Run the Astro development server to see your changes:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">npm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> run\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dev\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Visit \u003Ccode>http://localhost:3000/about\u003C/code> (or the corresponding route) in your browser.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Optional: Add Dynamic Routes\u003C/strong>\u003C/p>\n\u003Cp>If you need dynamic routes (e.g., \u003Ccode>/blog/:slug\u003C/code>), create a file with square brackets in its name, such as \u003Ccode>[slug].astro\u003C/code>. Example:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>File: \u003Ccode>src/pages/blog/[slug].astro\u003C/code>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"astro\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">const\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> { \u003C/span>\u003Cspan style=\"color:#79B8FF\">slug\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> } \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> Astro.params;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">h1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>Blog Post: {slug}</\u003C/span>\u003Cspan style=\"color:#85E89D\">h1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>Visit \u003Ccode>/blog/example\u003C/code> to see the route in action.\u003C/p>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Optional: Add Links to Your Route\u003C/strong>\u003C/p>\n\u003Cp>Update your site’s navigation to link to the new route. For example, in your \u003Ccode>src/layouts/Header.astro\u003C/code>:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"astro\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">nav\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">a\u003C/span>\u003Cspan style=\"color:#B392F0\"> href\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>Home</\u003C/span>\u003Cspan style=\"color:#85E89D\">a\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">a\u003C/span>\u003Cspan style=\"color:#B392F0\"> href\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/about\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>About</\u003C/span>\u003Cspan style=\"color:#85E89D\">a\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">a\u003C/span>\u003Cspan style=\"color:#B392F0\"> href\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/blog\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>Blog</\u003C/span>\u003Cspan style=\"color:#85E89D\">a\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"></\u003C/span>\u003Cspan style=\"color:#85E89D\">nav\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ol>\n\u003Chr>\n\u003Ch3 id=\"example-file-structure-for-routes\">\u003Cstrong>Example File Structure for Routes\u003C/strong>\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>src/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── pages/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│ ├── index.astro → /\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│ ├── about.astro → /about\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│ ├── blog.astro → /blog\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│ ├── blog/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│ │ ├── [slug].astro → /blog/:slug\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":143,"imagePaths":153,"frontmatter":154},[144,147,150],{"depth":28,"slug":145,"text":146},"adding-a-new-route-in-astrojs","Adding a New Route in Astro.js",{"depth":28,"slug":148,"text":149},"steps-to-add-a-new-route","Steps to Add a New Route",{"depth":35,"slug":151,"text":152},"example-file-structure-for-routes","Example File Structure for Routes",[],{"title":133,"description":136,"publishDate":129},"style-guide",{"id":155,"data":157,"body":162,"filePath":163,"digest":164,"rendered":165},{"title":158,"publishDate":159,"tags":160,"draft":18,"description":161},"The style guide the must know to start the code",["Date","2024-12-25T18:30:00.000Z"],[17],"The full guid on file structure , css naming convention , tailwind usage and , css classes naming convention . ","## Style Guide Documentation\n\nThis document outlines the style guide we follow to maintain consistency and readability in our codebase. These principles apply to both CSS and JavaScript/TypeScript components.\n\n---\n\n## **1. File Structure**\n\n- Use a clear and consistent folder structure.\n- Place CSS files for components inside the `assets/styles` folder, named according to the component (e.g., `result-products.css` for `ResultProducts` component).\n- Keep reusable styles in a `globals.css` file.\n\n---\n\n## **2. CSS Naming Convention**\n\n- Use `kebab-case` for CSS class names.\n - Example: `card__image`, `container__card`\n- For component-specific styles, use the format: \n `componentName__element` (e.g., `card__image` for an image in the `Card` component).\n- Use utility classes from Tailwind CSS wherever possible for common properties (e.g., margins, padding, colors).\n\n---\n\n## **3. Tailwind CSS Usage**\n\n- **Use Tailwind utilities for common tasks** like spacing, typography, and colors:\n\n - Example:\n\n ```html\n \u003Cdiv class=\"rounded-lg bg-white p-4 text-gray-800\">\u003C/div>\n ```\n\n- **Avoid redundancy:** Don't add CSS rules for properties already provided by Tailwind classes.\n- Create custom styles only when:\n - Tailwind utilities cannot achieve the desired layout or behavior.\n - Styles are specific to a particular component.\n\n---\n\n## **4. Component-Specific CSS**\n\n- For each React component, create a corresponding CSS file if it requires custom styles.\n- **CSS file naming**: Use the same name as the component, in lowercase and hyphen-separated.\n - Example:\n - Component: `ResultProducts.tsx`\n - CSS File: `result-products.css`\n- Limit the use of global styles to prevent style conflicts.\n\n---\n\n## **5. Naming Variables & Functions**\n\n- Use `camelCase` for variables, functions, and methods.\n - Example: `filterItemsByRating`, `sortItems`\n- Use `PascalCase` for React components and TypeScript interfaces/types.\n - Example: `ResultProducts`, `ProductProps`\n- Use `UPPER_SNAKE_CASE` for constants.\n - Example: `BASE_IMAGE_PATH`\n\n---\n\n## **7. JSX Structure**\n\n- **Keep JSX clean and readable:**\n - Use meaningful class names.\n - Avoid inline styles unless absolutely necessary.\n- Wrap component logic (e.g., filtering, sorting) in separate functions for clarity.\n\n### **12. Example: Component and CSS Pair**\n\n#### React Component (`ResultProducts.tsx`)\n\n```tsx\n\u003Cdiv className=\"container__card\">\n \u003CCardBase className=\"card__base\">\n \u003Cimg className=\"card__image\" src={imageSrc} alt=\"Product Image\" />\n \u003CCardContent>\n \u003CCardTitle className=\"card__content\">Product Name\u003C/CardTitle>\n \u003C/CardContent>\n \u003C/CardBase>\n\u003C/div>\n```\n\n#### CSS File (`result-products.css`)\n\n```css\n.container__card {\n @apply rounded-lg border bg-white p-4 shadow-md;\n}\n\n.card__base {\n @apply flex flex-col items-center;\n}\n\n.card__image {\n @apply h-40 w-full rounded-md object-cover;\n}\n\n.card__content {\n @apply text-lg font-semibold text-gray-800;\n}\n```","src/content/blog/style-guide.md","0439145f24bd2cb6",{"html":166,"metadata":167},"\u003Ch2 id=\"style-guide-documentation\">Style Guide Documentation\u003C/h2>\n\u003Cp>This document outlines the style guide we follow to maintain consistency and readability in our codebase. These principles apply to both CSS and JavaScript/TypeScript components.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"1-file-structure\">\u003Cstrong>1. File Structure\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>Use a clear and consistent folder structure.\u003C/li>\n\u003Cli>Place CSS files for components inside the \u003Ccode>assets/styles\u003C/code> folder, named according to the component (e.g., \u003Ccode>result-products.css\u003C/code> for \u003Ccode>ResultProducts\u003C/code> component).\u003C/li>\n\u003Cli>Keep reusable styles in a \u003Ccode>globals.css\u003C/code> file.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"2-css-naming-convention\">\u003Cstrong>2. CSS Naming Convention\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>Use \u003Ccode>kebab-case\u003C/code> for CSS class names.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>card__image\u003C/code>, \u003Ccode>container__card\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>For component-specific styles, use the format:\u003Cbr>\n\u003Ccode>componentName__element\u003C/code> (e.g., \u003Ccode>card__image\u003C/code> for an image in the \u003Ccode>Card\u003C/code> component).\u003C/li>\n\u003Cli>Use utility classes from Tailwind CSS wherever possible for common properties (e.g., margins, padding, colors).\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"3-tailwind-css-usage\">\u003Cstrong>3. Tailwind CSS Usage\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Use Tailwind utilities for common tasks\u003C/strong> like spacing, typography, and colors:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>Example:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"html\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#B392F0\"> class\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"rounded-lg bg-white p-4 text-gray-800\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">></\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Avoid redundancy:\u003C/strong> Don’t add CSS rules for properties already provided by Tailwind classes.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>Create custom styles only when:\u003C/p>\n\u003Cul>\n\u003Cli>Tailwind utilities cannot achieve the desired layout or behavior.\u003C/li>\n\u003Cli>Styles are specific to a particular component.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"4-component-specific-css\">\u003Cstrong>4. Component-Specific CSS\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>For each React component, create a corresponding CSS file if it requires custom styles.\u003C/li>\n\u003Cli>\u003Cstrong>CSS file naming\u003C/strong>: Use the same name as the component, in lowercase and hyphen-separated.\n\u003Cul>\n\u003Cli>Example:\n\u003Cul>\n\u003Cli>Component: \u003Ccode>ResultProducts.tsx\u003C/code>\u003C/li>\n\u003Cli>CSS File: \u003Ccode>result-products.css\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Limit the use of global styles to prevent style conflicts.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"5-naming-variables--functions\">\u003Cstrong>5. Naming Variables & Functions\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>Use \u003Ccode>camelCase\u003C/code> for variables, functions, and methods.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>filterItemsByRating\u003C/code>, \u003Ccode>sortItems\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Use \u003Ccode>PascalCase\u003C/code> for React components and TypeScript interfaces/types.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>ResultProducts\u003C/code>, \u003Ccode>ProductProps\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Use \u003Ccode>UPPER_SNAKE_CASE\u003C/code> for constants.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>BASE_IMAGE_PATH\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"7-jsx-structure\">\u003Cstrong>7. JSX Structure\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Keep JSX clean and readable:\u003C/strong>\n\u003Cul>\n\u003Cli>Use meaningful class names.\u003C/li>\n\u003Cli>Avoid inline styles unless absolutely necessary.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Wrap component logic (e.g., filtering, sorting) in separate functions for clarity.\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"12-example-component-and-css-pair\">\u003Cstrong>12. Example: Component and CSS Pair\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"react-component-resultproductstsx\">React Component (\u003Ccode>ResultProducts.tsx\u003C/code>)\u003C/h4>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"tsx\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"container__card\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardBase\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"card__base\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">img\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"card__image\"\u003C/span>\u003Cspan style=\"color:#B392F0\"> src\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">{imageSrc} \u003C/span>\u003Cspan style=\"color:#B392F0\">alt\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Product Image\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardContent\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardTitle\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"card__content\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>Product Name</\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardTitle\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> </\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardContent\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> </\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardBase\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"></\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch4 id=\"css-file-result-productscss\">CSS File (\u003Ccode>result-products.css\u003C/code>)\u003C/h4>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"css\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.container__card\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> rounded-lg\u003C/span>\u003Cspan style=\"color:#79B8FF\"> border\u003C/span>\u003Cspan style=\"color:#79B8FF\"> bg-white\u003C/span>\u003Cspan style=\"color:#79B8FF\"> p-\u003C/span>\u003Cspan style=\"color:#E1E4E8\">4 \u003C/span>\u003Cspan style=\"color:#79B8FF\">shadow-md\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.card__base\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> flex\u003C/span>\u003Cspan style=\"color:#79B8FF\"> flex-col\u003C/span>\u003Cspan style=\"color:#79B8FF\"> items-center\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.card__image\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> h-\u003C/span>\u003Cspan style=\"color:#E1E4E8\">40 \u003C/span>\u003Cspan style=\"color:#79B8FF\">w-full\u003C/span>\u003Cspan style=\"color:#79B8FF\"> rounded-md\u003C/span>\u003Cspan style=\"color:#79B8FF\"> object-cover\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.card__content\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> text-lg\u003C/span>\u003Cspan style=\"color:#79B8FF\"> font-semibold\u003C/span>\u003Cspan style=\"color:#79B8FF\"> text-gray-\u003C/span>\u003Cspan style=\"color:#E1E4E8\">800;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":168,"imagePaths":199,"frontmatter":200},[169,172,175,178,181,184,187,190,193,196],{"depth":28,"slug":170,"text":171},"style-guide-documentation","Style Guide Documentation",{"depth":28,"slug":173,"text":174},"1-file-structure","1. File Structure",{"depth":28,"slug":176,"text":177},"2-css-naming-convention","2. CSS Naming Convention",{"depth":28,"slug":179,"text":180},"3-tailwind-css-usage","3. Tailwind CSS Usage",{"depth":28,"slug":182,"text":183},"4-component-specific-css","4. Component-Specific CSS",{"depth":28,"slug":185,"text":186},"5-naming-variables--functions","5. Naming Variables & Functions",{"depth":28,"slug":188,"text":189},"7-jsx-structure","7. JSX Structure",{"depth":35,"slug":191,"text":192},"12-example-component-and-css-pair","12. Example: Component and CSS Pair",{"depth":45,"slug":194,"text":195},"react-component-resultproductstsx","React Component (ResultProducts.tsx)",{"depth":45,"slug":197,"text":198},"css-file-result-productscss","CSS File (result-products.css)",[],{"title":158,"description":161,"publishDate":201},"26 December 2024","articles",["Map",204,205],"terms",{"id":204,"data":206,"body":209,"filePath":210,"digest":211,"rendered":212},{"title":207,"author":208},"Terms & Conditions","Admin","Welcome to COMPANY-NAME! These terms and conditions outline the rules and regulations for the use of COMPANY-NAME's Website, located at [COMPANY-NAME.com](https://www.COMPANY-NAME.com).\n\nBy accessing this website, we assume you accept these terms and conditions. Do not continue to use [Your Company\nName] if you do not agree to take all of the terms and conditions stated on this page.\n\nThe following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: \"Client\", \"You\" and \"Your\" refers to you, the person log on this website and compliant to the Company's terms and conditions.\n\"The Company\", \"Ourselves\", \"We\", \"Our\" and \"Us\", refers to our Company. \"Party\", \"Parties\", or \"Us\", refers to both the Client and ourselves. All terms refer to the offer, acceptance, and\nconsideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client's needs in respect of the provision of the\nCompany's stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization, and/or he/she or they, are taken as\ninterchangeable and therefore as referring to same.\n\n## Cookies\n\nWe employ the use of cookies. By accessing COMPANY-NAME, you agreed to use cookies in agreement with the COMPANY-NAME's Privacy Policy.\n\nMost interactive websites use cookies to let us retrieve the user's details for each visit. Cookies are used by\nour website to enable the functionality of certain areas to make it easier for people visiting our website. Some\nof our affiliate/advertising partners may also use cookies.\n\n## License\n\nUnless otherwise stated, COMPANY-NAME and/or its licensors own the intellectual property rights for all material on COMPANY-NAME. All intellectual property rights are reserved.\nYou may access this from COMPANY-NAME for your own personal use subjected to restrictions set in these terms and conditions.\n\n### You must not\n\n- Republish material from COMPANY-NAME\n- Sell, rent, or sub-license material from COMPANY-NAME\n- Reproduce, duplicate or copy material from COMPANY-NAME\n- Redistribute content from COMPANY-NAME\n\nIf you have any questions about our Terms and Conditions, please [contact us](/contact)","src/content/article/terms.md","c9a57ebc5b9030f2",{"html":213,"metadata":214},"\u003Cp>Welcome to COMPANY-NAME! These terms and conditions outline the rules and regulations for the use of COMPANY-NAME’s Website, located at \u003Ca href=\"https://www.COMPANY-NAME.com\">COMPANY-NAME.com\u003C/a>.\u003C/p>\n\u003Cp>By accessing this website, we assume you accept these terms and conditions. Do not continue to use [Your Company\nName] if you do not agree to take all of the terms and conditions stated on this page.\u003C/p>\n\u003Cp>The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: “Client”, “You” and “Your” refers to you, the person log on this website and compliant to the Company’s terms and conditions.\n“The Company”, “Ourselves”, “We”, “Our” and “Us”, refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves. All terms refer to the offer, acceptance, and\nconsideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client’s needs in respect of the provision of the\nCompany’s stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization, and/or he/she or they, are taken as\ninterchangeable and therefore as referring to same.\u003C/p>\n\u003Ch2 id=\"cookies\">Cookies\u003C/h2>\n\u003Cp>We employ the use of cookies. By accessing COMPANY-NAME, you agreed to use cookies in agreement with the COMPANY-NAME’s Privacy Policy.\u003C/p>\n\u003Cp>Most interactive websites use cookies to let us retrieve the user’s details for each visit. Cookies are used by\nour website to enable the functionality of certain areas to make it easier for people visiting our website. Some\nof our affiliate/advertising partners may also use cookies.\u003C/p>\n\u003Ch2 id=\"license\">License\u003C/h2>\n\u003Cp>Unless otherwise stated, COMPANY-NAME and/or its licensors own the intellectual property rights for all material on COMPANY-NAME. All intellectual property rights are reserved.\nYou may access this from COMPANY-NAME for your own personal use subjected to restrictions set in these terms and conditions.\u003C/p>\n\u003Ch3 id=\"you-must-not\">You must not\u003C/h3>\n\u003Cul>\n\u003Cli>Republish material from COMPANY-NAME\u003C/li>\n\u003Cli>Sell, rent, or sub-license material from COMPANY-NAME\u003C/li>\n\u003Cli>Reproduce, duplicate or copy material from COMPANY-NAME\u003C/li>\n\u003Cli>Redistribute content from COMPANY-NAME\u003C/li>\n\u003C/ul>\n\u003Cp>If you have any questions about our Terms and Conditions, please \u003Ca href=\"/contact\">contact us\u003C/a>\u003C/p>",{"headings":215,"imagePaths":225,"frontmatter":226},[216,219,222],{"depth":28,"slug":217,"text":218},"cookies","Cookies",{"depth":28,"slug":220,"text":221},"license","License",{"depth":35,"slug":223,"text":224},"you-must-not","You must not",[],{"title":207,"author":208}] \ No newline at end of file +[["Map",1,2,9,10,36,37],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.1.1","content-config-digest","cb57b37d92ecf6ac","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://parixan.xyz\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"server\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true},\"redirects\":{},\"prefetch\":true,\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[]},\"devToolbar\":{\"enabled\":false},\"markdown\":{\"syntaxHighlight\":\"shiki\",\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"responsiveImages\":false,\"svg\":{\"mode\":\"inline\"}},\"legacy\":{\"collections\":false}}","articles",["Map",11,12],"terms",{"id":11,"data":13,"body":16,"filePath":17,"digest":18,"rendered":19},{"title":14,"author":15},"Terms & Conditions","Admin","Welcome to COMPANY-NAME! These terms and conditions outline the rules and regulations for the use of COMPANY-NAME's Website, located at [COMPANY-NAME.com](https://www.COMPANY-NAME.com).\r\n\r\nBy accessing this website, we assume you accept these terms and conditions. Do not continue to use [Your Company\r\nName] if you do not agree to take all of the terms and conditions stated on this page.\r\n\r\nThe following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: \"Client\", \"You\" and \"Your\" refers to you, the person log on this website and compliant to the Company's terms and conditions.\r\n\"The Company\", \"Ourselves\", \"We\", \"Our\" and \"Us\", refers to our Company. \"Party\", \"Parties\", or \"Us\", refers to both the Client and ourselves. All terms refer to the offer, acceptance, and\r\nconsideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client's needs in respect of the provision of the\r\nCompany's stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization, and/or he/she or they, are taken as\r\ninterchangeable and therefore as referring to same.\r\n\r\n## Cookies\r\n\r\nWe employ the use of cookies. By accessing COMPANY-NAME, you agreed to use cookies in agreement with the COMPANY-NAME's Privacy Policy.\r\n\r\nMost interactive websites use cookies to let us retrieve the user's details for each visit. Cookies are used by\r\nour website to enable the functionality of certain areas to make it easier for people visiting our website. Some\r\nof our affiliate/advertising partners may also use cookies.\r\n\r\n## License\r\n\r\nUnless otherwise stated, COMPANY-NAME and/or its licensors own the intellectual property rights for all material on COMPANY-NAME. All intellectual property rights are reserved.\r\nYou may access this from COMPANY-NAME for your own personal use subjected to restrictions set in these terms and conditions.\r\n\r\n### You must not\r\n\r\n- Republish material from COMPANY-NAME\r\n- Sell, rent, or sub-license material from COMPANY-NAME\r\n- Reproduce, duplicate or copy material from COMPANY-NAME\r\n- Redistribute content from COMPANY-NAME\r\n\r\nIf you have any questions about our Terms and Conditions, please [contact us](/contact)","src/content/article/terms.md","15c64083a4c7769f",{"html":20,"metadata":21},"\u003Cp>Welcome to COMPANY-NAME! These terms and conditions outline the rules and regulations for the use of COMPANY-NAME’s Website, located at \u003Ca href=\"https://www.COMPANY-NAME.com\">COMPANY-NAME.com\u003C/a>.\u003C/p>\n\u003Cp>By accessing this website, we assume you accept these terms and conditions. Do not continue to use [Your Company\r\nName] if you do not agree to take all of the terms and conditions stated on this page.\u003C/p>\n\u003Cp>The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: “Client”, “You” and “Your” refers to you, the person log on this website and compliant to the Company’s terms and conditions.\r\n“The Company”, “Ourselves”, “We”, “Our” and “Us”, refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves. All terms refer to the offer, acceptance, and\r\nconsideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client’s needs in respect of the provision of the\r\nCompany’s stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization, and/or he/she or they, are taken as\r\ninterchangeable and therefore as referring to same.\u003C/p>\n\u003Ch2 id=\"cookies\">Cookies\u003C/h2>\n\u003Cp>We employ the use of cookies. By accessing COMPANY-NAME, you agreed to use cookies in agreement with the COMPANY-NAME’s Privacy Policy.\u003C/p>\n\u003Cp>Most interactive websites use cookies to let us retrieve the user’s details for each visit. Cookies are used by\r\nour website to enable the functionality of certain areas to make it easier for people visiting our website. Some\r\nof our affiliate/advertising partners may also use cookies.\u003C/p>\n\u003Ch2 id=\"license\">License\u003C/h2>\n\u003Cp>Unless otherwise stated, COMPANY-NAME and/or its licensors own the intellectual property rights for all material on COMPANY-NAME. All intellectual property rights are reserved.\r\nYou may access this from COMPANY-NAME for your own personal use subjected to restrictions set in these terms and conditions.\u003C/p>\n\u003Ch3 id=\"you-must-not\">You must not\u003C/h3>\n\u003Cul>\n\u003Cli>Republish material from COMPANY-NAME\u003C/li>\n\u003Cli>Sell, rent, or sub-license material from COMPANY-NAME\u003C/li>\n\u003Cli>Reproduce, duplicate or copy material from COMPANY-NAME\u003C/li>\n\u003Cli>Redistribute content from COMPANY-NAME\u003C/li>\n\u003C/ul>\n\u003Cp>If you have any questions about our Terms and Conditions, please \u003Ca href=\"/contact\">contact us\u003C/a>\u003C/p>",{"headings":22,"imagePaths":34,"frontmatter":35},[23,27,30],{"depth":24,"slug":25,"text":26},2,"cookies","Cookies",{"depth":24,"slug":28,"text":29},"license","License",{"depth":31,"slug":32,"text":33},3,"you-must-not","You must not",[],{"title":14,"author":15},"blogs",["Map",38,39,121,122],"technology-used",{"id":38,"data":40,"body":47,"filePath":48,"digest":49,"rendered":50},{"title":41,"publishDate":42,"tags":43,"draft":45,"description":46},"The tech stack that we preferred",["Date","2024-12-23T18:30:00.000Z"],[44],"rz",false,"The tech stack that we work with and why we choose it ? ","## **Project Technology Stack Documentation**\r\n\r\n## **Frontend**\r\n\r\n### **Astro.js**\r\n\r\n- **Purpose**: Utilized as the core frontend framework for building the project.\r\n- **Features**:\r\n - File-based routing.\r\n - Supports server-side rendering (SSR) and static site generation (SSG).\r\n - Integrates seamlessly with other frameworks like React.\r\n\r\n### **React**\r\n\r\n- **Purpose**: Used for creating interactive and dynamic components within the Astro.js framework.\r\n- **Features**:\r\n - Component-based architecture.\r\n - State management and lifecycle methods.\r\n\r\n### **Styling**\r\n\r\n#### **Tailwind CSS**\r\n\r\n- **Purpose**: A utility-first CSS framework used for styling.\r\n- **Features**:\r\n - Rapid prototyping with predefined classes.\r\n - Highly customizable via a configuration file.\r\n\r\n### **Component Library**\r\n\r\n#### **shadcn/ui**\r\n\r\n- **Purpose**: A pre-built React-based component library for faster UI development.\r\n- **Features**:\r\n - Offers accessible and customizable components.\r\n - Works seamlessly with Tailwind CSS.\r\n\r\n### **Icons**\r\n\r\n- **Purpose**: Used for visual enhancements and icons across the application.\r\n- **Libraries**:\r\n - **Astro Icons**: Icon library designed for use in Astro.js.\r\n - **React Icons**: A collection of popular icon libraries for React.\r\n - **Lucide Icons**: Modern, consistent, and open-source icon library.\r\n\r\n### **State Management**\r\n\r\n#### **Zustand**\r\n\r\n- **Purpose**: Lightweight state management library for handling global state in the frontend.\r\n- **Features**:\r\n - Minimal boilerplate.\r\n - Simple and scalable API for managing state.\r\n\r\n### **Data Validation**\r\n\r\n#### **Zod**\r\n\r\n- **Purpose**: Schema-based data validation library.\r\n- **Features**:\r\n - Runtime validation for form data and API responses.\r\n - TypeScript integration for type safety.\r\n\r\n---\r\n\r\n## **Backend**\r\n\r\n### **Node.js**\r\n\r\n- **Purpose**: Backend runtime environment.\r\n- **Features**:\r\n - Non-blocking, event-driven architecture for handling asynchronous operations.\r\n - Large ecosystem of libraries and tools.\r\n\r\n### **Hono.js Framework**\r\n\r\n- **Purpose**: Lightweight, high-performance framework for building backend APIs.\r\n- **Features**:\r\n - Minimalistic API design.\r\n - Excellent for creating RESTful services.\r\n\r\n---\r\n\r\n## **Database**\r\n\r\n### **MongoDB**\r\n\r\n- **Purpose**: NoSQL database used for storing application data.\r\n- **Features**:\r\n - Document-oriented storage.\r\n - Scalable and flexible schema design.\r\n\r\n### **Mongoose**\r\n\r\n- **Purpose**: Object Relational Mapping (ORM) library for MongoDB.\r\n- **Features**:\r\n - Simplifies data modeling and validation.\r\n - Provides built-in schema and middleware support.\r\n\r\n---\r\n\r\n## **Other Tools**\r\n\r\n### **Code Formatting & Linting**\r\n\r\n- **Prettier**: For consistent code formatting.\r\n- **ESLint**: For identifying and fixing coding errors.","src/content/blog/technology-used.md","98f7cc9eeca22c01",{"html":51,"metadata":52},"\u003Ch2 id=\"project-technology-stack-documentation\">\u003Cstrong>Project Technology Stack Documentation\u003C/strong>\u003C/h2>\n\u003Ch2 id=\"frontend\">\u003Cstrong>Frontend\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"astrojs\">\u003Cstrong>Astro.js\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Utilized as the core frontend framework for building the project.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>File-based routing.\u003C/li>\n\u003Cli>Supports server-side rendering (SSR) and static site generation (SSG).\u003C/li>\n\u003Cli>Integrates seamlessly with other frameworks like React.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"react\">\u003Cstrong>React\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Used for creating interactive and dynamic components within the Astro.js framework.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Component-based architecture.\u003C/li>\n\u003Cli>State management and lifecycle methods.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"styling\">\u003Cstrong>Styling\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"tailwind-css\">\u003Cstrong>Tailwind CSS\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: A utility-first CSS framework used for styling.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Rapid prototyping with predefined classes.\u003C/li>\n\u003Cli>Highly customizable via a configuration file.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"component-library\">\u003Cstrong>Component Library\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"shadcnui\">\u003Cstrong>shadcn/ui\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: A pre-built React-based component library for faster UI development.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Offers accessible and customizable components.\u003C/li>\n\u003Cli>Works seamlessly with Tailwind CSS.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"icons\">\u003Cstrong>Icons\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Used for visual enhancements and icons across the application.\u003C/li>\n\u003Cli>\u003Cstrong>Libraries\u003C/strong>:\n\u003Cul>\n\u003Cli>\u003Cstrong>Astro Icons\u003C/strong>: Icon library designed for use in Astro.js.\u003C/li>\n\u003Cli>\u003Cstrong>React Icons\u003C/strong>: A collection of popular icon libraries for React.\u003C/li>\n\u003Cli>\u003Cstrong>Lucide Icons\u003C/strong>: Modern, consistent, and open-source icon library.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"state-management\">\u003Cstrong>State Management\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"zustand\">\u003Cstrong>Zustand\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Lightweight state management library for handling global state in the frontend.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Minimal boilerplate.\u003C/li>\n\u003Cli>Simple and scalable API for managing state.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"data-validation\">\u003Cstrong>Data Validation\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"zod\">\u003Cstrong>Zod\u003C/strong>\u003C/h4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Schema-based data validation library.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Runtime validation for form data and API responses.\u003C/li>\n\u003Cli>TypeScript integration for type safety.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"backend\">\u003Cstrong>Backend\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"nodejs\">\u003Cstrong>Node.js\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Backend runtime environment.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Non-blocking, event-driven architecture for handling asynchronous operations.\u003C/li>\n\u003Cli>Large ecosystem of libraries and tools.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"honojs-framework\">\u003Cstrong>Hono.js Framework\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Lightweight, high-performance framework for building backend APIs.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Minimalistic API design.\u003C/li>\n\u003Cli>Excellent for creating RESTful services.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"database\">\u003Cstrong>Database\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"mongodb\">\u003Cstrong>MongoDB\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: NoSQL database used for storing application data.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Document-oriented storage.\u003C/li>\n\u003Cli>Scalable and flexible schema design.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"mongoose\">\u003Cstrong>Mongoose\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C/strong>: Object Relational Mapping (ORM) library for MongoDB.\u003C/li>\n\u003Cli>\u003Cstrong>Features\u003C/strong>:\n\u003Cul>\n\u003Cli>Simplifies data modeling and validation.\u003C/li>\n\u003Cli>Provides built-in schema and middleware support.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"other-tools\">\u003Cstrong>Other Tools\u003C/strong>\u003C/h2>\n\u003Ch3 id=\"code-formatting--linting\">\u003Cstrong>Code Formatting & Linting\u003C/strong>\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Prettier\u003C/strong>: For consistent code formatting.\u003C/li>\n\u003Cli>\u003Cstrong>ESLint\u003C/strong>: For identifying and fixing coding errors.\u003C/li>\n\u003C/ul>",{"headings":53,"imagePaths":118,"frontmatter":119},[54,57,60,63,66,69,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115],{"depth":24,"slug":55,"text":56},"project-technology-stack-documentation","Project Technology Stack Documentation",{"depth":24,"slug":58,"text":59},"frontend","Frontend",{"depth":31,"slug":61,"text":62},"astrojs","Astro.js",{"depth":31,"slug":64,"text":65},"react","React",{"depth":31,"slug":67,"text":68},"styling","Styling",{"depth":70,"slug":71,"text":72},4,"tailwind-css","Tailwind CSS",{"depth":31,"slug":74,"text":75},"component-library","Component Library",{"depth":70,"slug":77,"text":78},"shadcnui","shadcn/ui",{"depth":31,"slug":80,"text":81},"icons","Icons",{"depth":31,"slug":83,"text":84},"state-management","State Management",{"depth":70,"slug":86,"text":87},"zustand","Zustand",{"depth":31,"slug":89,"text":90},"data-validation","Data Validation",{"depth":70,"slug":92,"text":93},"zod","Zod",{"depth":24,"slug":95,"text":96},"backend","Backend",{"depth":31,"slug":98,"text":99},"nodejs","Node.js",{"depth":31,"slug":101,"text":102},"honojs-framework","Hono.js Framework",{"depth":24,"slug":104,"text":105},"database","Database",{"depth":31,"slug":107,"text":108},"mongodb","MongoDB",{"depth":31,"slug":110,"text":111},"mongoose","Mongoose",{"depth":24,"slug":113,"text":114},"other-tools","Other Tools",{"depth":31,"slug":116,"text":117},"code-formatting--linting","Code Formatting & Linting",[],{"title":41,"description":46,"publishDate":120},"24 December 2024","style-guide",{"id":121,"data":123,"body":128,"filePath":129,"digest":130,"rendered":131},{"title":124,"publishDate":125,"tags":126,"draft":45,"description":127},"The style guide the must know to start the code",["Date","2024-12-25T18:30:00.000Z"],[44],"The full guid on file structure , css naming convention , tailwind usage and , css classes naming convention . ","## Style Guide Documentation\r\n\r\nThis document outlines the style guide we follow to maintain consistency and readability in our codebase. These principles apply to both CSS and JavaScript/TypeScript components.\r\n\r\n---\r\n\r\n## **1. File Structure**\r\n\r\n- Use a clear and consistent folder structure.\r\n- Place CSS files for components inside the `assets/styles` folder, named according to the component (e.g., `result-products.css` for `ResultProducts` component).\r\n- Keep reusable styles in a `globals.css` file.\r\n\r\n---\r\n\r\n## **2. CSS Naming Convention**\r\n\r\n- Use `kebab-case` for CSS class names.\r\n - Example: `card__image`, `container__card`\r\n- For component-specific styles, use the format: \r\n `componentName__element` (e.g., `card__image` for an image in the `Card` component).\r\n- Use utility classes from Tailwind CSS wherever possible for common properties (e.g., margins, padding, colors).\r\n\r\n---\r\n\r\n## **3. Tailwind CSS Usage**\r\n\r\n- **Use Tailwind utilities for common tasks** like spacing, typography, and colors:\r\n\r\n - Example:\r\n\r\n ```html\r\n \u003Cdiv class=\"rounded-lg bg-white p-4 text-gray-800\">\u003C/div>\r\n ```\r\n\r\n- **Avoid redundancy:** Don't add CSS rules for properties already provided by Tailwind classes.\r\n- Create custom styles only when:\r\n - Tailwind utilities cannot achieve the desired layout or behavior.\r\n - Styles are specific to a particular component.\r\n\r\n---\r\n\r\n## **4. Component-Specific CSS**\r\n\r\n- For each React component, create a corresponding CSS file if it requires custom styles.\r\n- **CSS file naming**: Use the same name as the component, in lowercase and hyphen-separated.\r\n - Example:\r\n - Component: `ResultProducts.tsx`\r\n - CSS File: `result-products.css`\r\n- Limit the use of global styles to prevent style conflicts.\r\n\r\n---\r\n\r\n## **5. Naming Variables & Functions**\r\n\r\n- Use `camelCase` for variables, functions, and methods.\r\n - Example: `filterItemsByRating`, `sortItems`\r\n- Use `PascalCase` for React components and TypeScript interfaces/types.\r\n - Example: `ResultProducts`, `ProductProps`\r\n- Use `UPPER_SNAKE_CASE` for constants.\r\n - Example: `BASE_IMAGE_PATH`\r\n\r\n---\r\n\r\n## **7. JSX Structure**\r\n\r\n- **Keep JSX clean and readable:**\r\n - Use meaningful class names.\r\n - Avoid inline styles unless absolutely necessary.\r\n- Wrap component logic (e.g., filtering, sorting) in separate functions for clarity.\r\n\r\n### **12. Example: Component and CSS Pair**\r\n\r\n#### React Component (`ResultProducts.tsx`)\r\n\r\n```tsx\r\n\u003Cdiv className=\"container__card\">\r\n \u003CCardBase className=\"card__base\">\r\n \u003Cimg className=\"card__image\" src={imageSrc} alt=\"Product Image\" />\r\n \u003CCardContent>\r\n \u003CCardTitle className=\"card__content\">Product Name\u003C/CardTitle>\r\n \u003C/CardContent>\r\n \u003C/CardBase>\r\n\u003C/div>\r\n```\r\n\r\n#### CSS File (`result-products.css`)\r\n\r\n```css\r\n.container__card {\r\n @apply rounded-lg border bg-white p-4 shadow-md;\r\n}\r\n\r\n.card__base {\r\n @apply flex flex-col items-center;\r\n}\r\n\r\n.card__image {\r\n @apply h-40 w-full rounded-md object-cover;\r\n}\r\n\r\n.card__content {\r\n @apply text-lg font-semibold text-gray-800;\r\n}\r\n```","src/content/blog/style-guide.md","94e22f51342f6959",{"html":132,"metadata":133},"\u003Ch2 id=\"style-guide-documentation\">Style Guide Documentation\u003C/h2>\n\u003Cp>This document outlines the style guide we follow to maintain consistency and readability in our codebase. These principles apply to both CSS and JavaScript/TypeScript components.\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"1-file-structure\">\u003Cstrong>1. File Structure\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>Use a clear and consistent folder structure.\u003C/li>\n\u003Cli>Place CSS files for components inside the \u003Ccode>assets/styles\u003C/code> folder, named according to the component (e.g., \u003Ccode>result-products.css\u003C/code> for \u003Ccode>ResultProducts\u003C/code> component).\u003C/li>\n\u003Cli>Keep reusable styles in a \u003Ccode>globals.css\u003C/code> file.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"2-css-naming-convention\">\u003Cstrong>2. CSS Naming Convention\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>Use \u003Ccode>kebab-case\u003C/code> for CSS class names.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>card__image\u003C/code>, \u003Ccode>container__card\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>For component-specific styles, use the format:\u003Cbr>\n\u003Ccode>componentName__element\u003C/code> (e.g., \u003Ccode>card__image\u003C/code> for an image in the \u003Ccode>Card\u003C/code> component).\u003C/li>\n\u003Cli>Use utility classes from Tailwind CSS wherever possible for common properties (e.g., margins, padding, colors).\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"3-tailwind-css-usage\">\u003Cstrong>3. Tailwind CSS Usage\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Use Tailwind utilities for common tasks\u003C/strong> like spacing, typography, and colors:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>Example:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"html\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#B392F0\"> class\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"rounded-lg bg-white p-4 text-gray-800\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">></\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Avoid redundancy:\u003C/strong> Don’t add CSS rules for properties already provided by Tailwind classes.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>Create custom styles only when:\u003C/p>\n\u003Cul>\n\u003Cli>Tailwind utilities cannot achieve the desired layout or behavior.\u003C/li>\n\u003Cli>Styles are specific to a particular component.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"4-component-specific-css\">\u003Cstrong>4. Component-Specific CSS\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>For each React component, create a corresponding CSS file if it requires custom styles.\u003C/li>\n\u003Cli>\u003Cstrong>CSS file naming\u003C/strong>: Use the same name as the component, in lowercase and hyphen-separated.\n\u003Cul>\n\u003Cli>Example:\n\u003Cul>\n\u003Cli>Component: \u003Ccode>ResultProducts.tsx\u003C/code>\u003C/li>\n\u003Cli>CSS File: \u003Ccode>result-products.css\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Limit the use of global styles to prevent style conflicts.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"5-naming-variables--functions\">\u003Cstrong>5. Naming Variables & Functions\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>Use \u003Ccode>camelCase\u003C/code> for variables, functions, and methods.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>filterItemsByRating\u003C/code>, \u003Ccode>sortItems\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Use \u003Ccode>PascalCase\u003C/code> for React components and TypeScript interfaces/types.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>ResultProducts\u003C/code>, \u003Ccode>ProductProps\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Use \u003Ccode>UPPER_SNAKE_CASE\u003C/code> for constants.\n\u003Cul>\n\u003Cli>Example: \u003Ccode>BASE_IMAGE_PATH\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"7-jsx-structure\">\u003Cstrong>7. JSX Structure\u003C/strong>\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Keep JSX clean and readable:\u003C/strong>\n\u003Cul>\n\u003Cli>Use meaningful class names.\u003C/li>\n\u003Cli>Avoid inline styles unless absolutely necessary.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Wrap component logic (e.g., filtering, sorting) in separate functions for clarity.\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"12-example-component-and-css-pair\">\u003Cstrong>12. Example: Component and CSS Pair\u003C/strong>\u003C/h3>\n\u003Ch4 id=\"react-component-resultproductstsx\">React Component (\u003Ccode>ResultProducts.tsx\u003C/code>)\u003C/h4>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"tsx\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"><\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"container__card\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardBase\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"card__base\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#85E89D\">img\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"card__image\"\u003C/span>\u003Cspan style=\"color:#B392F0\"> src\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">{imageSrc} \u003C/span>\u003Cspan style=\"color:#B392F0\">alt\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Product Image\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardContent\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> <\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardTitle\u003C/span>\u003Cspan style=\"color:#B392F0\"> className\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"card__content\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>Product Name</\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardTitle\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> </\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardContent\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> </\u003C/span>\u003Cspan style=\"color:#79B8FF\">CardBase\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"></\u003C/span>\u003Cspan style=\"color:#85E89D\">div\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch4 id=\"css-file-result-productscss\">CSS File (\u003Ccode>result-products.css\u003C/code>)\u003C/h4>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"css\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.container__card\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> rounded-lg\u003C/span>\u003Cspan style=\"color:#79B8FF\"> border\u003C/span>\u003Cspan style=\"color:#79B8FF\"> bg-white\u003C/span>\u003Cspan style=\"color:#79B8FF\"> p-\u003C/span>\u003Cspan style=\"color:#E1E4E8\">4 \u003C/span>\u003Cspan style=\"color:#79B8FF\">shadow-md\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.card__base\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> flex\u003C/span>\u003Cspan style=\"color:#79B8FF\"> flex-col\u003C/span>\u003Cspan style=\"color:#79B8FF\"> items-center\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.card__image\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> h-\u003C/span>\u003Cspan style=\"color:#E1E4E8\">40 \u003C/span>\u003Cspan style=\"color:#79B8FF\">w-full\u003C/span>\u003Cspan style=\"color:#79B8FF\"> rounded-md\u003C/span>\u003Cspan style=\"color:#79B8FF\"> object-cover\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">.card__content\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> @\u003C/span>\u003Cspan style=\"color:#79B8FF\">apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> text-lg\u003C/span>\u003Cspan style=\"color:#79B8FF\"> font-semibold\u003C/span>\u003Cspan style=\"color:#79B8FF\"> text-gray-\u003C/span>\u003Cspan style=\"color:#E1E4E8\">800;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":134,"imagePaths":165,"frontmatter":166},[135,138,141,144,147,150,153,156,159,162],{"depth":24,"slug":136,"text":137},"style-guide-documentation","Style Guide Documentation",{"depth":24,"slug":139,"text":140},"1-file-structure","1. File Structure",{"depth":24,"slug":142,"text":143},"2-css-naming-convention","2. CSS Naming Convention",{"depth":24,"slug":145,"text":146},"3-tailwind-css-usage","3. Tailwind CSS Usage",{"depth":24,"slug":148,"text":149},"4-component-specific-css","4. Component-Specific CSS",{"depth":24,"slug":151,"text":152},"5-naming-variables--functions","5. Naming Variables & Functions",{"depth":24,"slug":154,"text":155},"7-jsx-structure","7. JSX Structure",{"depth":31,"slug":157,"text":158},"12-example-component-and-css-pair","12. Example: Component and CSS Pair",{"depth":70,"slug":160,"text":161},"react-component-resultproductstsx","React Component (ResultProducts.tsx)",{"depth":70,"slug":163,"text":164},"css-file-result-productscss","CSS File (result-products.css)",[],{"title":124,"description":127,"publishDate":167},"26 December 2024"] \ No newline at end of file diff --git a/abcd.code-workspace b/abcd.code-workspace index 0d8bf4f0..d9146617 100644 --- a/abcd.code-workspace +++ b/abcd.code-workspace @@ -155,6 +155,19 @@ "window.autoDetectColorScheme": true, "window.title": "${rootNameShort}${separator}${activeEditorShort}${separator}${activeFolderMedium}", "window.zoomLevel": 0.5, + "workbench.colorTheme": "Tokyo Night Storm", + "workbench.editor.pinnedTabSizing": "compact", + "workbench.editor.pinnedTabsOnSeparateRow": true, + "workbench.editorAssociations": { + "*.log": "default" + }, + "zenMode.centerLayout": false, + "cSpell.words": [], + "workbench.editor.limit.excludeDirty": true, + "files.readonlyInclude": { + ".githooks/**": true, + ".github/**": true + }, "workbench.colorCustomizations": { "activityBar.activeBackground": "#d5ff01", "activityBar.background": "#d5ff01", @@ -173,21 +186,7 @@ "titleBar.activeBackground": "#abcd00", "titleBar.activeForeground": "#15202b", "titleBar.inactiveBackground": "#abcd0099", - "titleBar.inactiveForeground": "#15202b99", - "tab.activeBorder": "#d5ff01" - }, - "workbench.colorTheme": "Tokyo Night Storm", - "workbench.editor.pinnedTabSizing": "compact", - "workbench.editor.pinnedTabsOnSeparateRow": true, - "workbench.editorAssociations": { - "*.log": "default" - }, - "zenMode.centerLayout": false, - "cSpell.words": [], - "workbench.editor.limit.excludeDirty": true, - "files.readonlyInclude": { - ".githooks/**": true, - ".github/**": true + "titleBar.inactiveForeground": "#15202b99" } } } \ No newline at end of file diff --git a/public/fonts/Boisu-Stroke.otf b/public/fonts/Boisu-Stroke.otf new file mode 100644 index 0000000000000000000000000000000000000000..71b9051d270021f4dc5dd64fd2c6c540721a2059 GIT binary patch literal 79332 zcmdQs2|!d;*Y~|yGb8jlYGA{NYo-RcR#u3hXr*MBYbq)Th=K^Bm^$tYF1X~D3nC&S zBA6>`l1rL9rDm>JQRWh8>K%N5|G96QH^a;TM&I}S)?>E!?mg$+bI(1?J@@nq4D5w! zA|p~D?=D@t8ZKmAE^|LPOduxQLXDBq&e5?)3>}r_e|T3kai#3KXmx$ps4pw&bW@y%V`Ly-9v+eM%4Q1 zt9J0)MY!6B!WXK)RNun=%i(k5(9tmy&i~+76CnyN&Fs-Z6QZbJ1K=lg1}^oOpwYpP z*yJ7vy;L6|dSO)LxR~erkQcy9em5W#fT&;L9R(MSkjD!DH;261=?PLO?!Y(bO0zc! z9^7l`$g;l5bINn@Q9uV>pyA!m8@$42>9-ryALRY>`?Bx0 zk?-ga_{*{l#K`V@q-cvekxP!7jrXl=d?$aVLj}KgqFp)qb)YMtHPFn<)vN5-M-+``&e9K*90UmNKhWXM|m@}WkXJ7QO zG=JVf{iOF~UiqTlaK#ILMO~6;=bMi{$LQm9y`;N@fcBl^bzLszw znZNvfM?xE8>*Mz~-dE-Qko7hG^3`S%>wSMC*_dF}+?*M-+X{CE6c%Ae~8 zQ6U`OW5_G@F8nqFUg2pfM);fpuLP!S@?0tOS-P5Up>!m?2c3Xir=FzOB0Ncc7a1;KY-Knf4;zjsj|^dahtdZKq_&$hC7_A_`k8rlqlw#Goa@}~pf zP6OAH{M%5tGX@Rk?jH}odvg7?Mjhe5chP8ofxtxW34vcCpygp)tL@-Zd(;+nfdAUr zg{MC}KZb*(8@!8v|0W9Gj1)e%=K7XXLrx3Ao1B(P__7WeN$ypthWUxIKzmmMLJiRy z0L5pX!I}N9$+lm+3d^x9GF= z`}N=IPw3C;f7Ji1FVH{H7aLp*uN&MAO${CfUqePi_lB$8X?KOloigQ+pp zS?VVBJ6)e{4iJAwUr`{1T7bAIK-^BR)YsHE*0rgs5RU+eDGp))nsSE=R&@9WRs{vp zvEqMabH#hgc9d-?ODbDmwxW!aIQ;j&Fy!@@SH-&=z1|*z(Cx0bN8fIgeUX8aV+={r>;}%H2Yd6)sfJd^>PDJEcF2ISXPVkpV=blt=>KE!URYq&++H?b2 zPj{ky=zerGy_C+PchbA)9ALI@=v?{~{ev75`Umk%O3^j)eqb5?JR5M3r+0;%dgE~)br!uJ@sVr&Msm z!Tfv)=|FndL3L3B^cL`TGt?6Kq4#06>5SaaU|0u+g4l>cBdK{HN*1HpXfB$E)}e7! zQ?w6eY!-~xZgc=0LPybMbQ+yQKcf4n0Q~`+_8q07YQbE7iK<6AQS)Jbbb#66L3vVs zlnd1jR;&FW7t#@fa*zx97QK#+Ay;$+=GY043@2fh{e)V9-R+64peA5Xw?o%KwA})+ zbra^_ZRC$0qORyK)D0D)F6cM(9(n*`_A&YxJq5Gc1mYH>Pf#%kPZoslbI_(J)DOha z=b%wXPz)MH)kb5f`e;1$I+{Sap*Tv9;;Dw{3#t*C1aoFO)dEeU-atmGIa&_9xP*Ee zEd#9~k?M$+QtzNuls8&WbwwLc3iT061s!iQ^)b?-9q0q}I|`z-Xb$xjT1d4+^C>Ts zK(#>&sJ7@;kQVLH4K$f*jAl@8qNeC93Z-79&QWKm)6@m(5_OTfO#MLZrS?%d)Hl>& z>L9g;+D+wBhp7Fa57tMAVb%T~MEoxxy#Itn=NT+7rDz~Uqd}AcjiGdCG*t&pp_-tX zpjWJ+e9%hj1GJjzjJ8m{kTcqgYJi-riM~d!fb4o1W}Fgj19`k1X+WB(K&G`umtd** z88t`eQ45p@67L6))EAI1x`)CjXEdCufr6=;D1>?ibkmp7BC0*wNOea^pl2n6?3)a- zI-dHP+C@cEDb#u@iAttYsV&rIY6G>A+C;6U=2D5&VwgZ=b%1}*cSCHJ{IeM0r4hET&{(vO8{JDHjZ6MrcnxfW1Ohv~Qv2Js9`zN^%2 z>JC*%J)uC815x%W&Co7%L;4NcgYH1TPy5jy(Y@*Z^iX;v9Yar|r_*!kCG-ktFqP^lhg|Fg6#V3k^iXg>E#TZ45 zB3>~~F;}rzv09O&*rLc(>{c99995i9ZzCQ${J{l#`V+l?lqF%GJswZ$aqCaRXIHY#sbH&stnAJrgLkSanIt(v5orkbN#s#>Mm zpxUh3q1vN5q&liPtGcMVrutR&r>aQxR8^){t6x#;)D6`w)a}&osr}U5)xFjI)g#oS z)Y0mA^)&T-^%C_Ob&7hMdYAfu`iT0p`l9-p`Zx7G^&@q$25DZ=)X}(VnrT{V+G#pz zx@bPqe5x6s3DSgW#%ZQ#=4qB|HfYi{yEVC*)0)eg8=5{9u^%uJ~(zv zn5SQ7Kkmh+J^$jtzqExH56>>X+^5du6WrN_f8p=!+?l(@mw&voN9WN&!=od|bdDSu zIVN}%cc(|&EUeOTJ-Yj$bIL- zH{6BqtqTuVm$rUVEBsv@{rGBiyLO={HB%d4C8p#QL-XzpRJw%vP>EN2#_2}5q z5kawhN4{RYctE*3+Iev=UHI{8=h2(%y|>uAhiAL?pK@Pu&3bkWQShkg2Rl9@7_nat6ebPVXzDeAKy?I zvyqn1c@ZQ$JiXeC6o~*?pkvw0Vvu+|Zg!y^KFe@GtiYTq#|JdE!njPD~% z#^+rk%nh{Z5CL6Aa43#36R{0x*Tb_d&+Q^lcL)}kxs5ks?c2m~cf<(n?&Zl3cYDGE zKq{U$+Y9{7Pdz`LroNqHt$K(13A*soB~}1a7$3sQab^yT#0N)5O5elpapY4-*m!dD zxUdQ2FNpjx@ERO8GBgHW$Aob$jfsp29vd4JF)}(hCP+x(@zY|o$b?9r*j5mO8ybRajvbrftY4|IS!h7MBSQOBuM)Jb%RIzgR9-%#I!-Ejsy z&I`e^SOg04I?%=2fW>$LEYP;p4=9)V36$3>s2x})H^4r*O#KWN%(v84u+@%I*TBQ^ zD|lvpLB~M7%?A(7@6>N#qjdyT_YbOo`V;KkchGU_A=rcWsJqmC^e*)TouD32e}VmS z64c?xR1x)v!qngBd#aRrN<9Nl{wa#3iqUDRj4A;&{47dDU8v{azo%)0&e0Uus9R_i zt)P{l%Acpzv<6+EUjmi-W%?DAN7tZhq914{P_UiBI`pS?bUnHbT^n_$Ytal?-b>Jr zbX~A4FM(&qg?x(VHiZU&y5 zH|Q2%nFgRMbW8LzsP3)lw`fmvm2N|Op=)$|x-H#~?f~A|>u5RHpUGgMeM)zv-=W_| zfpjNygMOEOkA5F4{XVoe{Q>Puccy*74{($20=8{F7y;er9&~rQE4oel(;tFK@G;#R z?ALzuCv;CbfbNC*qXFm_`cw2P-G>gO`=NpKXXrP&FWn!Ueq+F@uMHM;9WZ$6g4dxw z_#Is6f%NC}0D1^Lm>vYiMG!rV9!`${_uZ>t0lI==G!Z-jL&5Hz#Q7p#0{d_f*#4cs z58wpGQ5cE?Z-5qsf+-aQ4o($43Jj+aU_qvWhhhUn7lOf8@H!nrk3?(fQ1EE1q{q@> zbT}PJN6@3`F<@K9(@}IBJsvzZu=6$G^b7$nz-F`>{Ar(~B=9zj zr6<$zU;upqCXkVyN-v}r&E(uwp}^eTEay^LNl*V`?S!E3pZ;qbJlLs)*jG_(Vym-cs#R zw^V881&J^xZvjSe*uYm~hl^YWdV+g_RU$}^`$uXcR(Pv^b0l54MGf|#s2uhv;t zr$jecw^CPFcVyk)>-DPlL;ZmIKfHF@CDi4B>r1YqTz_uR|MiBi_tER!dUrzHy+%Yb{o^xbbF}H@|=Lbj!vqjV*s}<<63Pote(-e7gA@?Xuc;f#26%&v)DJzt#U@ zcU||%-GA@VsK@Xg-+kEa!#_Tn_;Kf+ZF{{IQ1cV*CsTXZ=)LIECZA>pF6%R^PtIqx zKAYXQM&JGY+Vz{=@7w+^{ihG8Hz0Jt$$@hQo*dMCQ2Ld&TMiUNA zI6QHAeCznzlLk%t`-}9+s;6Uvi|snq@;w6 zca#50X_#_hb7E?@Ele6pd$RTRHtn`QGg7w?-2N~#AoI+QkR3l|WoM`DJoEL9U8i^N z*)w#{w|i^v-Lr4tzH|G#?%$g8M$X9t{SO)r)%~X7;fA@5bHDnw$+u}o-am5Y==Njl zk6k|g&hZ1^bw8m#vGByLlQX~Xe(JT;4NqS`v-#|ea}CZ-IQQhd-}x^u)VnY@uT$Rg zAJjj@|8V%n@QbfqTzx6~@}Qqy{pskH23L}QuKV-AtLm$}ueHD4^Lp`h_QtC>n%)S! zG3my(8$aG)Z}z+S_03baTyF*5O2~gLe`o%K+bwSQxE*wR&h3ob-`&1-+jRTcFUNlQ z?$^xU!hehS?NY&O1+E2g1rrO7791})QSg1i>4LKb=L_-*ek{0D@KeFh1=k906x=Gf zUGQr`LBSut8-5@8`}W@-|MBJ@!~R(N$4__M?~J|^`R9(i5AXhc_sLy+xA@-d`^x(+ z_Z!^T-#6T!a)0IhBlrJ!;QYY%!Hfrae+B$?z3|n-+J&tOJqo)Q4lB$k{H3s<@J`{q zBB!E(MXQT`d06LRd?&X7F?O3=Mv#m#!K6 z&UXCTSxpA(q+?a=J6M(RZedP%OxRIPA=_E_N`qeu*EJhdsLuFQ7d}ekH%Rr6^r6nn zQTb)4ozfFBu>tMxQhyRQ6FaE#h_+GiUU-vL5+>2t#oX2)3oha zfxDL!sn~R!q1%UB?q^%7WbNP&*XGA@jp0tk$94GR+1Q8d$sVe$aXP&6$cjK!N!zme zx_{nHi`1yXl$6@IZDC>Zp;QJN@u}k9bvMtQyXn?U%@i6VV`C%r@O5PD#x3wo$8-KS z^&3-l^X4ZkT(BTDWkW_{w)T+P*l$?yfazNHNEuZPFljiLuzsx>tX$mb*+v^wU>mT< zC1|w*v??S(%i!FK04}}x!T__QaJ^gNxMLn@0`V8P-XuaxgqW9y0y&RL04lwCaw;SM zUmofhK&HsZ9(iFHSw%^z4%fr=*m`mv6=1a_u&F-~c;h4XVVh+9cJjXDiK)9%nWv+Tcb^^66{;Cf7Pf5MxMlUq z+0(w%GqjH}cJuZrS*{{GgBP6)K>W%xLxi} zpQl^#&93Z&%NH(4m^XiZRCHYU>|iZZM~ASU&5%Y}tK@poGfHP^oZ+4d20CAh{=rDg zCC9M1EpfZ!GUBes)dpci*sy@i>YsGD+ts1>RLngi+n^`g;G_z^ANr<>`P+DXhHhXI z`MB}Wonb0=VOggao)qRm>lAkq!1#*?0%IQnK!cOGLC-z+*lt(ZZk<&4=tnw+ZN2N< z)&t{JCGVHDsK#EgYAuI72sAsABZbYj36RNH9S~Ux2ZSWy*8NHS@$il#C~H>(Kk+jP{pJXsW5@d`2_n)7e9q&G>z8GFN#bFJxEQ zW(aL{FoYTHmInuX7k~|Y|S!OGh*H-%8UlXjLkFb6Xp)De)-lQ4Mp*0zlk)Gl4PwIeN_q zan{yG#6cU+!HYh@ZJ!<1;q#B#^XkoS>*gO-;dN?8*_{1`&Ee2UtTc934Yec_5m%tq(59MrFy>^8@M>A!*aoz-1R)@P( zM&$)D@cZwurq{+kzZWF$-w4_pEL%ys%O_7>{;B6lZ||NxKkz=;^Rin~if-=wgar#1 zXw$Z=&)(y*K$AT>JvcmS-1yo0`STJI=Fd+^NT}I((bf%_TQ_MJFIkZ2dNOxFkKV%u z_nq#>JTQ(wtBa1?kg|EhhLn^Iabu(7;-cNyj8cHp0;3nv+FPVVr(TTP6}O3KDWWiY zSacV3>O!?yl39u|r9mdfD5D_89v1OB$x9ygB^mQ5m$j{xu&C0f(47d z+M1lQWkdGt9r0TtH$|_FSQ@TnTa+x(joA>BGAVujBDiIqcGjvjbJw`;-tc?pJ0qgv;K{(f} zkUu*pD&)@w5rv%XBq-$125|~`dRfP3}}#jj%R_>}PvtQoHV&HXp8Wi#Jg z0TEtTN7&4*0yb-L_MP9N^$Vj`MsJv)O&had-ei}l#%W-s-P||T_~lBswH@O%0Xc)d z`z|NvyKPgq#wP10ubR1R&Ju0mnk&CNb^(Tl-Uv_Y2b;olHki^!EwJyQD?An8ex8H1 zxN%8Woh4h^<=*n_+6>nt+zO)LNjA~p*r9l8@dI%_GHlYBviNElKAcpo!?z+KD+C)% z9kHQyVb+;!B4n9^ycpw!1P1>YCk%*a%_@CUXWDS4WP^tJBKwif)G<$!y$wVqo1qCF zH7Z!|v?2joXqbH_3%g+hwI=HTHXO~$!3IHUmv55Y)}A%wgUn_d>Ttt5*w7lgSvAV8 zz}<9b@Z266XkLUC%j{bTaG?9zIkh>T%&D*Qg*ml3pEq(F5hE9tjPiiV zaUGTaUqO~zZA65*;UOyx4A70r4A3E4Ff&)>tHc~KTKp0VqeWKO5VF3SVA&JbZt=B5 z2V+#C)8*k1KaG>cgS?YccpATHTTtHsEx4-f%7>VPjZCaZ`FOv1fS*VM{D>RiVsU^U z2?N|72DlRa5+U|bMhvp7_XhEGB$FvMnkJf#0ZB@9r2)8^W>Msdu}N_j(upe~X?{^^i1-lrRU8qubOlcMyEpvZb zGOkSmnEY+JK<&9hs*JzQA&{IOKc~*dhW5n&@m1!0;ys2)?;7;8;MjDRJ2uf0Z%YdT zLbx&$0s_Q>4FL`CM#RfsdE2)l?3fVt{2?Vu(Mk0}yl3HEAS3UdfA8;BERC^l#q6yUCA=$fJjK|4tDAb@{l=#fv=45j5g2pyP^ zGg0oAMu~la<_U|r#Eh_(;|a2*yp*j|79}<7ph;^+H#b>Y2^q_<4j5PPJ&2RmX!0li z2W%7^5Uf$|fncw{fb13g4bVdina5!UH#(1VaU;R&@GRHD?ZB`G_BMDPM4~&Q4skNb z!~mfVe*MDq1EE|WWymyN?sEXMax&tVCD1*LmJOE%aK9F)nKES0{{RoMYfKP53IUm` zwpzht279>)$e6DF?9gz3mLZ#UrW9e)nXdA4?s2;PDaRBC+L?8XDJ2k0_e#()X*|y0 zjAZ!=4y4SmB$1riR}kayG11oB%FIKs^)o|>wa=8^kr|0V^APvEP>r>vs0S%ctVPiC z%2|uhLV1Icz4L;KD>2>O^87fL;h>2_!o&5V(O4c4Y~UlApo+g+cqnsC@?3&b+td`o zRER0f9113vIkH(go^!eYF5BS^7uzKFR1l;o-ED|1ds)=x9S~@j(LRNC8*Gqhx8XlQ zBTHk{JnkHY-tv|krKLl>MGd<2EpMVimu~PDbZGd(+AwuMi@^?P@s_th3kLd=`54$C z-qlYJb}{bpo#P2m_PA0LpzMy_;VpYyesoJ8S2r^3YwT9t@9N)i4;A~m+R4UrFq@^_ zrRh!PL9&H)T6$GxojMr9i+1rXy;>e$_G)$G>r@2s6V9oaDOfAKKafbf5HR|Yq(qz4iBt?UZ53I_+?FKrmo~%p6Q&L^#?T`w0N*0or>7exZZ6! zh+pG+I|Zj@g+Q`f*hJA`;KVLW8ebd`N6;j;Glv;O@23G2gR^i>*7sRwvnbKo1+oC z$3w{e69U5)+h*M`F1SI+u9lt|Z}xS;lMtjhjo&w0Y(I(eQ z)&j%;GHL6t?RE^Ir=nF5!Nrd)oA9;>wXFm#Gaefz3cZw%aGUAk|4S$Xu-L z_7zFR1cfs1Bm}7nR&grkZ7$aKYZ|DSgSl9ngZ`p%tJ+pwqTDSuZ7fDRl+9t2NW_c+ zo!1=#e3HJ~FhUNDGYR}Dd3~3vN%Y+#b?gA+$Lq4JD}_Vci zJ|;{@R59-UB8l^uJBek@teF$IgA0L?k-3l05*75ipn=}EP(Xuha7jl#ptV7WD7H6( zc9%y&T0dKTOc589aub76 z63@PGj@S%_h|NB1I6wl>zZMO4sQTS2lBs^b7V)YdulM~}ewB+;KY$@Be!V7GbZlMamfS)?vtEB$JeZ0v}BbYyz%qr z&z&?Hj#`M*I&DtKEN*2MG&e?MUPLATt>@qG4So^9*cGTTn4i*;Op8 z9>V@G;=m<@Psluj4VQtKq#xW-gXynT&<#ruSK;Nr3@0?rLLi=}Da=x_OE?HhCgMOH z&UmQmu3%d!EDIGEmb8Ac>$z>HjlCfe3T0k zPAu`%u|6gz)hYGH0r(YmwF-a6UeuX-X!7uzs*>9pS?gx^Bi99kx#=eRu8L?g zTr(W^a`rE2>l-}8HU_mgDO#CcZrbd{in&Q&z}=g3@dGn=Z0g;O=m4 ziLML~r*q{{tN`VR6BCw%yIxts-Iq1S9=4bo5*dZ1j_6z*9W%^p9qZ36b(MkJl6d@N zl7JT4zFAqY|B{2fL^jWg*pO`8XMAxhes&l@JBRsUa%MwBt&L|Qjle|UdX^ZB3vgvN z(OuN+PTI2huuE~PywX;hclvf~6QegXm262P>p4v}B1FL(M%a~_9f9jQT-%v%WFei3VD%v8Cl zmMg@n$_1{O!|B;%yU4K+@g{LKoH&83hF_S3)o|j3a=rok*yWh21G{)r6|nOX z&58nIHxWjfT!cH?u`Z?*iRMMqvbN&cFabb4OS)M(2-M zX@h{3@DTB{8ckELDut&0HwRNL#-)Lj;$QixvDnZp8GoF)DtUY61R(_xzO(uS(B)jm3@I`}GpHacP~D^_y1 zaDISjXakOq$0;*2Q&ZOQPH{Np2fGXVjaz~h4t@uUHi}*lWox6{^8o3%;Cg^GOg`4; zZY0hJ?*JosAL^F{>KK1#Z*en4d3jH66g|EBYI#=+F>0X~B?j5k%+bSgS2LkZe9D(R zZBT7z+``7*W=e&m&CN{&nxQ0#W=)bTXhv}~Ga7lC8Im}f`5PpfX|;}M<}XGHn0;FR zYN46d+cC|o6>?y%b*dFFj@0Lxjgm!Y+SRE)# zHC7%4?7}#@YWbFiz*^Ufm7bGt(fDkr|hrxrTT2a8|i>QpVB?5B2G z0HM)&U_jw6@P`Yl5=Q4-wRm2x8rORG2pGh<@gvsRjqL;8_mYmfyj;z>BS+4i4?N=U z_E}!8`e}YUL&J9M8oGV<7}9)lH3xQ%7%*_eh=FcS3lgvwNg&}`55=CGo0FSK2aLpt zre-D?@v9)^OqWY>+)S@f1^P3wq{DDo^G5e5n z9picbCL~t7b-6JHhA*A~kwGcz_?hG{D(3t}C8EEmnD-a4JvjezwL?mL&jk+nyjlt4 zQR-~g$%r|2j!b~~%&l=JGS6k#F5tIWf!B%OZiPdMNMN2Oii=4Un-Trkg{0%?nWt&o zo(s4$(~@7|el`kcq`13q-bV(9atRihtRYm4?LRgx)e#@3o_QYn*^m(_ceo-km#^x-Ebt z!+=>IfAZl6leFcq68xRks9kmB_GEC1EtGM(J(O{ZCCXPFp?pJs`Jw}qubNT5 zXcuL z=*mnP1{xQa4fwlDjzB@#W|?QM%jPjig+i3E*FRDv5NGC|n*Rs7QUjpGZ;v;FX! z?`8gWbCkgOhfWzyOHIK#k+t>Ap^ZpXmgLNR=#0^fP}3he{28ZTG@I28*)(C)8FtqP>^8a7<9!G=B_EeB$;&==DUYkKOEsge|yu6j7e=C=w4o zhP#0NG6kaAUDTN+8+E3Qc_kY)P7^>^NFymyjmiDmtnabm`z(bil}|F^Zf6@eXAOU` zX`s8L{e=z9abwN*?0g-&_6%ODb`tuMr$BMt68-YD5oep1+nW`+iqnP_gnGu zhTm{y7f>>jA98rr#$9d>&HVPJeTOmU*wvCd~S>9DwR>oc zl>O9{?E2$9Ce;m5xkME!|2d=dkWTB!;+*Ho8loTA88RPb$6Pp*V=jawmHEU6Jk5u5 z0r$```F@VUhg;1|$K+2@*Fa!WsHJ zqADa|x{muwI+#RDJl+s1;62{65Ql9;B%$kWtO(zRpa^g|=P=8deA-wM#to5Ul*{2; zv>Ts#_BDST63_3z>l~wVOb+A9GVC$#_>%wE<65-FXg=Ww{Bi-v!ZAn2bw9u9^#A3! zk|++x%8sHq{@%7vsHtO);w%?<+8p_EUSYJDzFg!BPN(I0dO8>Rnr7f5Ut|h5G*raX z22l~`c$zX)#M1_&#M9g&$1hX_UGc~Xwz}6U=1E(2v82^V(nFST#u@e)c!~s53dNK& zY?*TA`tL1a6z*a6QsK88MMK8@TZ@7@JIo_`^V~C;RKF zmA}48IB6=%q`rnTP4Ob)v&F(Orl1^;WDTZ~+@9V1QbrdB$C<*ZrmAylCwwd6M^gbj zReYT{ht!Wv9UpVsW7W6|e+;U7Nk?~ni>&!wv1_Ro+G&8*rq5O9)g`k_3dl!zcsttw zb`|r@@|rZ)_765)o+bQl+3M|7(oUgc<}ZB3&UP^|8KuOPOGc?)7%cR-+V}{!n}a_$ zPMeF5@cTHZTuwpLdWia2!y@@o=Il+lcEk4S#EC0OSCcm;H1s8o48+=$rB<1> z3Eq6NQq@L=x$`+l7BTICA7L0Kj$1ie-Z#B#mt7$l2~6~=vw>{MI0O5!Aqg>;Pcu5> zFos&~X-22GJ=m3}_ml+Uu_b99p_#SMn7S~l&eSz^Q8WF3_Awe9V>+fPfse3R1IK9C z_rcf2tip-KHB>*S*~HQsDkpgZ++^TdS&!{ZhQEQlr2WB`?L%-wYJa``_GL~E0xNjM zmgeFNvsdg(Dam0em*lWoOmbK%BsqLUQh1>IJ|ITr_-)RW0q|w6eF(?_5*S#NS&K)> zk`P*ugCn3_IJ-jLEF`N+Xsxwul=p3!Y0ou!h9^GcyUJU+C~M`6yp@&Lm`t)FC7v6bqdh{^~~--@$7-! zp%olG5W766w2K+v-OD9>w=cKGH+H#*@Al{F zES?-ZCAd@I%?v=N<2@!;VgO3O8YPKX)9DppZSb|g+TV<|(%TwqgRh8npl=ni?&nt# z*06tlux$UjZ1zg*z^$cL46)N_@&k^5Lw!Wgfoh?JL(1Z;dGH_#e4&Lm{P`Ske+4x1 zu8k~+ln6c@i8q{)HJRXckxpr~Q56Z5Rohq*rJTyq2F|cgO)l&ow=aco30q4%$v!4C z1J1Hf%v>OBd!KK-T>OkX(cWM*9~%qj+t;?*_U;VR#(biEO>vJEnlJ3JLjJWKn3Hgu zJ$q6``CFW7Pa|%Fy`F(WyV8JA{uK>~(qK6t2tr@tWL1_Q5T!vH5T&821EOqPl>x!B zAU=$RuplBPdjg2+SH;8fcS_qD@v!BCDBfkgj~AGn%Txq5K&7v zRS~nDrYa#O=8%}z`Q1ghHNnZo`TOIg45xQWBh0A46XG~+FS15ue36LC_M$4Hvb*So zP=Rz9eu?3SX?Ka8)x~alQ`h=p#)bu&i8UoOwa(UPcC9a>nO47wXl6C25KXJKLrRDt zqm}|CM2LQN^}gM4Yb51sSs>(ZMo3w1F>KUaL@2O%6%p#!vLb}+FAEZCFpA>JAdKTp zVNLK7cIK;&$wL&Zy`%TK*0epEut!l8F4}UVSyMzlt!5RG&vL2=dAX#Q&;?JZrLc!Q z+_yo{ua?BTpCsm;EyTQUb1N~gHOR%hS`zbqqL^>o+<}-^9k(au?PWN1rM+!a7zLO~ zOqY}2@R&qo+PkV$rUR-(X3P90m^IzNC-EpV9R700Hz0=OH`OoZj&wm{eiLQRZ)yd~ zfjLMkBbEq6dbMz{Lopl}4y6N7otc(V3X1ZUvYQ$Lo+Kj-Ngf?#LooYg6hp+Dh>SuR z3IpfW@%ABZ9ZQNKcQeJxGYvc;Q4EfKteSP1MY~r>F)K+c7qCE&oLmbN_-d{M>*ZW) z8IqGLLV7v3ihy3ttq4x$nztRj8mwX~xtVYB1G^YbH5TM%Y`%rud`oT`@6MMn+MaKX zQEa}5(f0f*VzfKIB8)7gqL2v$?Ac4m1j>X=pd&n6GCQMyDZ#S_Ou0MCk|$%+*tVr( z%@Yu8X;I2=Pb-H{nuJeURq;uy5FfrihGg#v3fAlkOE@F{s?jts{4@{m| zb^}J{bBNbX%uL(3p2J7A3vAXa)m?u>;bAjg=j|U?`kr}^6KhC=thJ^cUjWpz+SUn!j%JH3D-L)?qQV$Bh?&(2P>5Yv&wE3jCW&%Ym|1D z(F}Iwh%-ZLKvo>b!2J^08l$SxtqH1-aM)wo*0>!bajl`-PN#p9ehb%PHR*@8k57kr zQj7mD{Zu-$?u+8?2X)>>s&Nq`riQr=3Ei;Q4KKn?)Q>vcY8*R$&dfOd0u3{`6I;uu zUK%%k@p#up9Xd32V{2&|-RkgnQqtn38}vq8YoP{Onz3o~oGq@$Pp|*_xEtHoiBlCyVWc!nFlp}(2112H-}JU(=m)_ih_Z2F6iSF$i(vW9v#uD6=l z9yhsl(E;G!8#jH>UuXhn=~R>n(Fa@kLJx;VhjCJ1Cf`Q1L_|qdSE9Y>7b< z(3Y1wX(r}R`~_Kae7T4U53*#xuY9Q!Ih35ITLQI?O)odw0M>C~1pXIMu=1cll^M{d zO7`Jov;U-Yg1Do!WFOg4S~fx0QChN(-%$$wlm9IYS(3ycRyE-{imdZONt44_I9V)d zBIC;PoMgA4$*m|mB?HP8G&!8bCHM@+8yyuik#i`NGGV7wx|E3pJCgHa0ZpllNm(uq zDsCc%Ntx%~XG(YekByYDP=mY;vWRI-wNU5}gJL-yGHeso)(hfPaXCC(wZ#x`$t&&T zFru|WRIoVM&YF)!C89~pkJ~>1XB9)*K3|nHM{+do=Nyd(MMtA>p3>UV`{tEC2ON!d zkeVpD8FQ-WW~>;k|6PL1OgxDl*5G=xxF9EDzOl6NU}>{QzHcN8?`9P(yb8(3-0}{T zEm^Im;aaCaP5KjbB3K7NL4r35ykMH{*PSbK&bxtv6d5vZW`HZNlZXlu(S`JE6HXV> ze}p4-oTBr6-}GT0j_y0`Wa`nqS^5RbmckKcg-6@@fhwe7BX8)onKhbG8Yg+z;yNVs z|HS@6^q&RGVr}7pBdZG}l`b%^E)^w}ro-y;?}N>)7;314g+CO=lPJ7{poq+HqVEFK zw>ALR{cdR*@?Ojyg(YP{)1KOPId}BOGa~rqbsutD-J4*+2Fl8l_!%EaLhdo$5 z&ez#s1VJYjSw){d$`M=0f(QcjON+45P7t9?3L-RxAi}>-aoN<7yscu0K!mpBiOu-4 z-3UQh1JUF8pTU7szRe;)!h`S*R4tuDSf}j1U6N02`JV(AockU^LV}2_Vs`I~ zV{p^t%7uKZ=-w}L`cL9!DGo(sWX}7H)C641I~n_>rzEdQUo3=ZyBafu5N(xw_bMcw zOxCq>zWeX0>boza0{(mCvv$hY;>#Opm{t#Om*UbDPlPNnvwv~tAx4^&r)-^SM_($nu z2(+n%0}-BN=t#M1H;V&`^ZfkO`~gw(=ED)juG`r$x;zb2hHFAvHM{6JYDCJl`$34M zker{&`6Z`;Tao|(HYoET_XOD;DpkN_?&X@YVC$y_ez7u?<*|w&e$OTwvOtBq;n#Jc zOTyPirwHeU6l!wT?aj#0XJqVMm*cu@`TY6I-1df~_euO*n;@LCJilh+jOjr;`ni5G zXwWBajWyl32J9QAUpOye-rNOnN<(hCaL%&Kw<35e*)Cu_{h+~J=Bv1325y$c4D6ze zKi~^Poygo<*f|rsC6i-D$r{d3eemvLH)&5En#u1tLjmIcCaO;b+nc7lvx~{Oz!DV& z5=ON6uaWRdi+_QHadC&@GUBew*aygmQh*{?_r^!Rj&MG@6BLQoMAVo)Eqlrby&@+G^Si@QZ*~m)?c&iI8wv}LN=mwSh*%Ft64?D zJ|}rKt1FSbRmB&tVoqKWGXSlsSzUoWI|Wy`48Yr0NFEkn&8l>|1;`d zvY0zoQiOm#CQKsw}*ccGhf?3hlfvl=|+D&)gY67&IH=@3?Eg((M^pwED~@DMk0 z1aTi%UI|%A<{{iuUI!rtCpm3R&+g%V7jzOf!(GRzB5u4Yk~w?Z3usiY78{0Xmno;09hU_H(Y=((c%m8O&=By)(yR< z0^3D2_sB_MxLYTvhnN4x54wR#D!7fa_;#_zY6g!#ERIu5d8Yq&#(~{ck}VSlqS{ST zdx09_{wTy?d{wsav7fS@)r~I*lUuyfPkLU2>n$N8!B#)(F;Cdppn;1?@qCFgTq5kI zB88$W!SRAZ0%tc1N7#!8E$hL+nXBW=l!>LwKoV8X+L2|>?@OJE4eur6zL|@X_i`Nh zuqEybN8PMmIeXfdZk9O{Pd<{ROg!AhM_srrmxXHPVM~%#r^l_w>rzuTWF%&552=|y zKQi_k7Cd0O7Jde&+QJ3kk%9wPw$9P5_-0r3!Q~4VB+Q#XKPoyde0DJ06NsBb0pRML zfZP%EoUe`yIB#=Jk!@rXHxLSC&ZG@%%r`HxZ;&f;)=aE%Hbp$*yu9xX_BM(>M5_#K zC`(cC-Zi^WmoG?BneC32V4KTPIELF|LxDhAkZI9H^6hG|MWR@XE+Ss6iA91JE4s*f zyP933c9*LGR&}Ier3zq&HO#7x;!vrAnGF=V=$v`#$VW>&$L-J+ zyW`c`zbfO^uirlx0UlCKkn+edMnezT_9dA_5YaNn|Hbh;X!7LZ|09Gnm6zvQq^a0T z?;BL7Du`z__~(cZtzS9eC!#9b9dM-l31HwGUxY zJtM1I2D$G3{vF*I)iw8 z&nczrBiItdr}XthoMVYLA4aPEocl^Vj8w@TMoNi?k@|6mk$P|B4kLx_15AKHJdCuQ z6lCBwaeHW%d%3zvFF*r#sf0)sXkgCiYm*|+>Ep||nTwUx(&Cz8PTw0^%ls*tHcB~t zK1QBokj5$0y4U(#kbC2l$O!H@3VHKqU3v!)hn)9JI3$d%&yh?i9;#=9WHX&5k|`Tk z!=zLi9L!2f*-92bNu+|4x?IXdIgRN?H4N$@qkRCG9HSk1Dea07#bmC@lQFkkzPTiEMy7APeCO-h?YR$)yS2;-4csR4S9|c;IBnifORr(cLbn z8bQJwLPXVIDDBp@x)n$8N{C1(Yen_o)>Q-2bsS8x{${Nzne!m>7U14L z!gR;JSB=}gd-6W9@K~WHW%i~S8}-bNAFp`itC+o?^i*vM8@76|ST?GeCVKI>WwH7$ z@2T*&F_u-w9%+`&Upjw@K0K6tm94KbuAH@Yoy!^xZi+os>*L3)9$i80v2XW`9lP0W z)8>rKuR}iUs#-a2X;hSpXh=52({D2&T?=v!b<`6&c6w8=e7m?*XIFAs{EeI zr!*%Dh{*yD@+b!mnK(LJzcp;=x`9IaB%d;nvv*xuhCX7)p-D%Cw8;@TRcDbfId06f zm^l5+B;)!iYqguU>{#=)E028i(;vL%cQ*T4~gg%0*&WU`}mrj?aH1Q4h2DN~SF$rWs| zA@CvQvJAY8LjI=pCJGxab~pw=Djx)=ymAGv>~EfsnwLc(h*Q(#Z^ygt;>f%HqJ7(O ztUoF;^${HFPb3f2Bk(|Rj`iXq!Lj~Ga6&n9tXB;(J|6aO62647aHh9PfPJe8>D%!u z8Sru{z4oEZ=sy$Eu_is?&mNphcW(e5R`-ES-X1m zT0N6GH(AZ(%uQW9IUX{#)xUN--$oy!e!FwGHXbMX+?xp}FBo#?sMgM3JvrVbe)8ma z{YPqMn{)i+)oUSzT+Qqac>8?kU!j@AzWBcG!sesj>6!GoC-(*QUE}7jW>N#z8{<~S zxW>TS#4yPGc7ulxvuAZZ2k$=oh1)qbb1G@ViVahfT~DbYNqjr`x$D?Zo9msdG2;(A zwM6egitYR=X75F|D{LTefcD;GK>I+l1GG<;L;JunGujt_C=8uVlvoK%rth{N?jTd`2l9-%Ut z5wuYUblJ1ZoAARfZ~K(Fx*wGzP0l`}L>uUdC(fQ-Ml*GwNr^mrb{Zx6z)d`Xpa}~K zUEPf=Ndz|tG$I*d4{b31q?`WfH*WUldH;rw={@YB)l^}jrr4xeOXe?w&A2|7mY+U-!-cu#!*0R>!d$u0S)$6d+7eN& z`S3KkG2MbB4}2{ta$~wk5U7TB!3IGrB*C>b$CBWhFCmJr1EM6BC(2xrD9p7qe$=n| zn+N@duNk}MX6*b0?B-fx7hr|mTn;r%n!9(g z=3v~n;aP4OSsT7R=z=vZ@3I1;J)ywFCGNjD5i*~MEIH9pt5dT*r-*a?6!a}i}4y?5Uc?9g197LLk?7X zgVUNx%VV-26a5&Jdvn7jpkxV+z2wCj3N-F3e|sAvSE0*@vFo=?cPqe#RvGGJtgDV) zcm^-z8nlKu6#JjF*cpS{@?p^^c~I+-q*6SLA~N=|7}Rs6>H2kk-e3E5a_9xGu~*tSrhcaN^XPi-|eFf!am0vkYby9%mh_}THSNhSiI zOA^bs(Iufv9Ikf|$O3N5f68^Rl@_W&UX^iFwcS09dYIP-|!qwcrOz!}aa@g{FR^(H`a@z{ovm(TIg*_`IVO+2> zs~J40T!RE0)VH%2sb$Ue?aVQnY6i%%t^+`2RTGYsw-X~RSzOehs^#rSyg({%X9xO< z%iGC$PFCJdWIGEq#7)Z9*c9zavhs!^UnFyfs?8PdW^)lFMoD>#5fbM)-tq{EmgXwl zQNlTq)4WN9WSZ7njF9AOlN@spx!F9)n0%B}zM_&P(pqn^8kkM2u?v@;LnMjS7(yTt zLR`tk_ehowRDi34hTa2(8{WAi(7MTDfC7;)1(Zz@w;V{t@BSZ>f@1*DNo+xkqHO_! zhq%78=puF}=Z`bU2g#ho3Ug7s83HSyB#9MfBw4Tm#jyf1^1(7=62}TkgTxBTfQnc_ zI`En+42J?LVg;qaAuCiiUg+*@ju-ZJwseLoRp#1wv&xfTRwYQFHIqOq6*IQI+`w!w zSj-0hibw!w;YN;(51y@c;zEG@3P+eq;bljWJ6RC|i%X(3T6;I?e zezk$pcw8LMZfQJo9Itx7auUS>sf-5%5SIALMdYd(1feh19m?Y#uKA!whH5! zqifX!6_+(_=8S_EHiCW+8z=9O9rAW{9_IOKk`5gfVv!Eb=R%Xhcgdzc3!daz%kbkZZ(Yk}Bf?k;+xZORoNtHtko&dru7FR};BKK9ud%v=zvC znBzE*^Y0bL>s-xRU3$VkQztmK$uw7C>PC2~7JHkmg>S3CV#EO@b5-D(#Jx;&RqRkO zSjSv}gCPr5$DuY}WWrJW_+$bciCOH+WECsmSuZwQ#a!rymy(D5*(E9_%L`|5EqU-Q zox)SUXQy&)dXhH1O9FIJkM7}9suSvxS|y&k@V}vjvv@%|tA@k?u@Bw@Njf@cI%~(v z{S>_1901ql033V~0Irt@z^wEF5PMC{ia&xH1U>iMW4m2tyLH<0rV3B_TX$f5Y=3b4 zwce$|pFqfngXSkWG<#nJnxD!;W1%Y6#`7S7?lD|UmI*&9&d|B58Rbyc@EDG?UIqF1 z2JVac+!wG!P5n;CIOhjWQ=J8MkJ93hcpXDK!)L~@3YPs}*$q78-p+E+lMF8cySJe{ z@Zw?vghWiH=}hqm9eeVOirEv}1fT4#V$*L5aqfI^L@&z$+4CZBTo%D-pO9|qkxp$j zc_~Z*gxz0LcV_E%#`RV34$_Mjv2dyIYwAn5{v`+~!#k)+wMexY&L=ww_4ay2e5-=2 zq~p4ep(J0g^gxxZ6AFHXLlKA<29`0V(DHBslJKTsZrPCBOd-FN^Cu}gJe`2()Jc{H z4zP{cIaNDT;MYuHR!NZN+B0?kBBkvtP6hxJa&6)u96I+OM8Z5XMMNGH*)>ORO2>Pd z$_82CWDB1MLVb|`AU>9J`$Xp2lr5PvV0yz@_wS{E9{^5!sA1kY*n(GU;k0{Evsb?9 zE!XU!*fTlWUMdE_8F|J4V&vT|`-00|UsXrkJV?0H78&l;G5(9pS@IsPw^!y+;*a?d zCJ{+efoX)jZOx-XZ(Gn}!6^MV290@|`x!e@QlKr;V@0?nby{M`d|sWtCmt4b!}748 z2j%9MEwmow|BGW_8xcz_C^IYhOHQc0MG8I=PE>{&9qU0{i6wJYC-Z4HVd9zLosAAQ zwJ6iq)kR&(JS#DU@6<*ABHj8Vq(@*4oTRIXNUwd~)QDMS8VSovNh4B8QiJoF@gU(xxBTYS2m(@=4$9Zu~+E{P$wxi_y0ZSrjJJYi5!F=26 z?YAxSDUu#w?3U)5J{BVNmc=BwNd4+uAyO~Ylf*^{)svo~exwCjP+yY6>&smGopYrm z`*WovuNS9@3D(#R(#%Mc8I~;$;u~CR*&ZKxGSeE9_RdJezG&G-2H(aRc^mBLQg3PE z?vRc!irW)+3??cuyWtq4JhEix$`3Mv1ChCtjPL>Q%pY)gk`Z3z$F8zC%LuRhzxKWa zJgOpHyG|$FrvstUv<=u`cL=f=P$MctMO;FV%f19;yAWAJ2+Kf7M-m{32uKi6F-Vdj zVc)W_gpdh~Y!X3`pbm>dPzGlhaR3#p4%LwVt?!&9jgXAv_}}}_^Ze=5d+OBs)n4_T zs;@j*_(Wo|^1bo^xhkfK_wc2~KU}p`QScJQPpe*vpFS{EiczYH{c+Dh>}Toy&nS32 zTs(dU1-W9Q9^tWMe7EW@FF_5!h2}gAiMF2QXTe~&|A!xVfD^YeSa)6fudhQkINpto zT{N|^2x#71-0uXRyy<68e*XuD_3WJGS@W_Rf4JSYW9OP9$L)Nz`f0@eE{+t_`%9ND zUH1M5OP0Nt@lN`i%ij1PC1Y0ljI;#v>gW$fj<6$$$#bS8$2yW@XT(i^{q^Z_Gh&lx z&wFFu?6=IX{=+tS)Ye@x`kh<1?%KI^)DQ<|H$z8`9_p}+!j~tWv-$IlsjmIkQ(Xa9 z^B_*jdWv^!!0|CE+fq6bx8_2t11#U$SJaL`B%*}S~#HqgB zns%d9o-oEJ8Hg`=fk6)b2`{xRT(%%R-Tuo%fM2|EyhqwI@sp>-PE0Uc-huED{%S5C zz3EsE>RQ7VIXr_m!VLH(-`;@Nzwr;=@Y}A}+OKl*7x)sR^=HojNFjL5B-)9&Mjm3? zR~XqpA~LeS)9Q|hEZpxD5H504*nVos?}reAN9BjOcKl6z5fd|yac&Z?i4vnF1>Z1v z;L$wJT?+pQKs~o)P)Dj*Q(vk3T)Uz-I|@hjTic^?_z77yo>1{4=8W>2sPnn%Pcyjw zHmdTgW1jES*u_iYoN-IymnLK+WXxKgl5I}Op0je5{e-Dc@z9SX-@);fnmIS~jb)CU zg!NOhVjyB;>YUh=I7dp{toQ`{;TU&{IVCQ3&eX;rRTd==+|S=aS^`IJL4DDu;isy} zC0d;tt=gH#AF6M1wf>C?8dc0&oIZwQZ47aUF#e^DcUM;}Ub!UOVLiSid+G8F{4HOa zy(DdM+QPJj=Ez}_dv&!7f7N(;0 z$HmUgCvtfAkF8gDeH4=ElNCR2{>fqe@$&TnChL{0WxG%8TWh9##huM+WdE@}CUnE8 zPEil5y(?!-ql6*8Sx-Bv^?kNg2aAsV>7cpPG<3x9unAqv;#nMbdgtf{UVr6>=A))b z?c$!C(*=znc`Ic7Jj@?H=Q@{Px)qs)v`3)=XisZdsmwHMnfwayJ+FJfwL5x?(|WFV z&X%m*2kgA=qu&cNT1T*`+b?TS&S(cbM2~h2>Sq^q{~pZE4qnggXPcHjC2i{a=A7j# z@(S!FLwELx7#gZQ8bN<0hQ$A3t(r%=l4G>+S3)&qKDPh4{Tg^(PbcCrj3!6?0auw(rO& z#OBZ?X)6*}C#_0;Fgku()Cha8;vpaH-&(l;ea8aRoM-yH(s8;u@A}2uSRcC%g>Y{$NqA(&N2ZiAU-2|HK>OznTg@ zOEjzujL&Ky1%B~{szpS@z55hq%NDrijrkbcbyJ@FP!VQYA-{RT6=vRWmlo$fh1fNB z7Wc7At7+0zm?;W=f=reUGPwR|L)&;@3~wYX+;|y+&k*^=P3>2!eaa3@5a8LjNl=>t(~_m z;2{S;aWwzC@wun^iGiYzUGzC127dLFquL{HC4IJm&#x{V-~)LdJMYtv4}9)|qxqx8 zgWU>5h-hmUZAXZZzTM!>D(rdXxjYa{$&!-oIng{YI;S|ty2%|N>{zF(qei5cI6qdu z9CtEepTqj+{rhrHerf+${dmW+d&`>2!d^Y>A*ywg z@VW95ujh!)vptp8W&e5mUtxQ2!hvCVj@3(6F3ZX=?;M)bxs$!8+JD{X4`*uBU`-E^ zl)~Wp4jc%OLKJN;vF>Iizb_`TUl9K)14{8k%*>7~lU%fGUTAb2<3 zy6vlJEOWU_#)ukrmAhZ{@S)N=2xBhYFu2m*5rY;M@9M+nly9)yKJ%!i#eJok7hg0wN|Yi*M|a%9-sC~Xe*psw7%fq>Uikia3kL%{BJd0{B|<= zP(;Q{X6y185nTJNZ;74y_IWJ`M!&f?=e@rIh8N6(KEUt6= zR$?;GSsi4jJ=NA5XDIdB%IU`8R;BGP#W@fLf7HEz&PZWL?U@0?M~$8B#B%cIN8UO7 z(I=-ea%OLwzIv)IY1Vq7w6_$(*uE7w)Yw7i36#cWljn*SP@1e)(pPKHXlx z@??SB0g#usKsDz1ljce;ajJ1e?vBivWbO+aaR zFA*L6dpvu1B-HRqcET0+cDZRJ zyqy*G*Q<-tjJ)pICru(G(k7a@RpU_;H;8RU%hWTuU^q48p}7i=%KdYW4UYLr#Bg6&CSKOL=LO_SJ>3Ko>al>NCC$~-Ag9!5UWQ3h%ni03 zaW_#HbT@il5W~slC$f-X{nH=sk(lSMz|`S8G!vilX6`^61Rl;6_UzHg5@SLmvR|L0~fj1+1fsF zKGYLDA5}ngKe8Y+^kN8~%jX$A6=Q9mfv~)&C?e)#BBVk|mVUj+aW8YX1UaCcZ$n{# zB2j0-d?}yvGQVu{j3~A3-VM_Nn6=4L$!vTbV70 zd@erryZvn^Ji#VJo+q>7Gale>fJ_YG0Y2p+?s!|PD>Cs$UPlB7M8pF`9hLXy7j3%+ zBthczDxcsDKh2OFVKZbrbGolP0*0=~klqV0oBL zK$3ee@q}nC`a4B0RrKVoMO)tA!6)Iu+es!-?~#A-dQRR;J+yLvL4l*7VE@WPjlqmA zJ(kzeZQLxheKV)9sjc2V)Bfkih1-^`-sJql`uv$& zarV0Of|KW}+%6Qf*`|ocv(DDJU%$@D$qU|2cI-{xy6d2w=cyMum9}$8;+hB(WF&)Y zmB>5t=G@Mob8yv!QT3ZP!e|%0ame@ip5b9{Itn+h+ke=O>u&c%77iR3895L`!>+^Y z_7_%OA-82ka$K%+<6#wP7ZXJ;xJ_!_+I4w(>n24x=xW@_QBjlE<~c0fk$kRyTm>8U zO&9bMjv{ye+)uzr&YgCxqT>3Cvgg>#rse)X&k7dyBFmLu({@Mlt;x2XyR$JTwoZ@S zS^Qm_%ip!W{Q2jtFLw$H`#eA2n46zfu+M(I{ki6?o_a2DNJiwAk&gVaM(d2oAw!H& zqvIn7+7U|7*Uw&a3^`|;IO)Cgsm{bzZ>(EyFG%0Ae!at*_%&F?U2<|#_eSSDn2`{- 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 S`0_#S^j9LGGaxR^%Kr~^Dd%SZ literal 0 HcmV?d00001 diff --git a/public/fonts/BungeeSpice-Regular.ttf b/public/fonts/BungeeSpice-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4266a1eba9495cb4bd0e98327e323c63744ffae2 GIT binary patch literal 501444 zcmcG%2Vfk<^*?^Idv&kw?G>GLDyMdm)pa_ZY{{}LS?;}pY~u>pxMG7bgib4DH8gn%ibB!Iz&Zy+&*7?SXXkc1ZU1rn_F@AGDMugEs!`~Uxb0`Kk4zL|OR=FOY; z-n^N$FpI_Fx14E_Et>~sO`m(p>RVs2Se`w?VyRv;Fnj#;7Y|teVX=JhG@v4rX3v`U z%a?wU#`9i_CDuA=-h%$8r@eWyg)yhaBKOal*V2B@Kjv+-SRPvq_~r8!PO6wN{q-*` z%sSm-zj^zr4J$Se-}|qN@cucA#k%^~^(P-Qbyu(vu=_2RTlcLwdd2Ffv*qU&%iUC8 z=Ncrqj&()=--qYwH5*RYepN@=C3ydp#p0c~e$%QI&g0%d-rMlc{>+9I+c(>exBdyw zZv(z!} zt*xr6w96qoeri!_XC~9xnM$-rqR~hMrHk}*6`R^}LyOgAkJ(*gRqY3ws)ZKWVOHY~*Q?+X}wX7puroQmo-=dOFnx?1A%F@%D zbd^{7N~okHq^C6X7w8_D+AHrwdn1-&OD|d+MzIb@wpm7VwQyCMB}DtF?cp%BJDeJM z$NqMq(_!sZwJS8$?_1<7jlKJ>biY1<*SwRi!*|p5?qOV|SD$bwkLhnyg5Ee-^GP(Q zU-if%`gQ1*^C|H}O`V}?>oj#CzZaB|p98k-gm;cI-+&Q#0KIkyT1jnGMIJgDp*c58 zw|9wd2jKvM{uAWuCh{FPAh<<-R;mSV7G}3RxfSe)bl!tJ9bC#BmM1YT#T(9F@@v@~ zy9#npI_0oic5OQ}{GP+W?`UBmpL^J$-G@ ztR`@Eo&-3-Y^C{|Z7s=$$;WEF{m!aXf9=82fxTij@DMG{^8P(0C$N$NPM~zo39N)T z0r!KDYCq+YrosXqNQ@9C4oFi-6$YWwiEgf~lCyX0L;Xw|tZdxMqe{#AdY9>MEzt0{ z;B2}IX)$eP>!`HXK7GoP`Lm_k^`THa6w?2_Efh+IG%%253~HZ@+RIV1A;?o%@dZgr zjAT4Z)&D&0@PxPgR5pF$TB4@Jsd+!z<0tq6T0(X+ z)g&T&OuvtlZVsBHe|Az)G+HDGwt9{J!kX2Rs^47{`#csUoT-QImkDQ32{LH+cLdIu zQKiSES7p1Uk}5}E8Y!r~+){6`Xpph#4n8aLnL*3%+X8&LI5HJA^nA+Ere%j=yR=<`jYTmindpcXgN(viM&b4m=>hbdMmH?Rl4eb zf0llpWtfxkd$^f~`gJbn7qsu&IEJOo8Axi@(VR{J0)xxVwuHT z_?%L%{WDy`@0j)wZ?8fBrJR@0GMY`+3HozfczSg~I;R7lO9cF`75VVQO9FnEQI3G8 z{uS`MkIILqbOFD6jYuC^{+>no@VWB$81)Kxnqx%y`wH-(bW#4k0(^+K1^mQm`Q=l( zfS*_ZPjixh|8Pb=Jf#cx4-Gs8J~Sr@_%93ar*r}TC6y1p>N{||bQkn4;%H-@$%0#Pu&e z4)~bEEC^mUaKtQV`77j>EAQ?d6TA=Yr0Mhy+Kod zp93+*>NMb5mN$yb!IG~)LTFikL=L z1d>j6s?jr`e=gl&*<(3}I)-xSS4qGNeI|13EyzI}Ez&1axc(2iD%r6y-#kcRCr z=0nb9CiBs>h|Yxtf?o#n1x*MB+14XwMWg9yYlki*>}PuXe$V70&7P2)-dWX@B%L1& zuAetgnK}5K=|f!VxIJwicRYTJo2W_SzVsE_C_lyXnawbeXH#z^P`XH8 zsoELzfD7fC$e6W`?V(&F=k?$R&k zsSI#zE`Nl$B-}X%b4_6YEr$ltL7XiefR}}xCO-@ONwc%rIZJ11IyocDBXD3x>c1qS zuyMGqB8KE#DaRY6pt@Z1OUCd1KjkxOwsz7BMD4q%_5%kFyo)-o;3IAV$7AVJ3@-!91EcFLIlQtWpGiQJc{uPFIcEC!Ti^p#{V$t#A;eUcCiZwSxRqX~%eZo|M zZYDN5g>)bGYq}*osr+B_eqN61ND}X-icvGoNcW;;UGn^vl8)O)t9!*)ur^SMa zsqR=uk#?QxaU9b%z$HZ>@Lg0Ybcy#r4Eoi;hw_vj{e42^*+B5W#ms=&8?}NyD}jXF zvX|^11DgwhO}?c?a#YQqAEje-nM%WOy+Fuhvp!wrjn_$aF-jwiD1--Ih%ud*dJMAy z87fKdr>pcT?!v}wLJc6w5q&P?<9s#8^hwx7X8JUqe)K`exGS;-kTlX^1-qi9dE|e85p52tGcE z=r2QsUvdyicWXYmT@Jx5DSq{*a(LzSv&3!W1-$-hvL_1b*ACV51yw^;&Eo<#vRZc8 zNVedkM)sh_wwzCi#tJ#A@hcqHoc^Y&>9F&eHJL=a^(%?nZVH55LpF!qWp~()bcF-F zMVMr}T`{dri@CaqBf*5ez%B4&yKV{i%-NPL-=O;a>IQuWSd{y)<&U`!8?xpgYifiQ zm8aF1Zf&k^s)iNT7wtZF)~sW@Ayc4Y6*V*nFSmRzR|8`W4e)8;g$b2sc&XGV_Cn6) zVxJhEu7Wf}N*SZ`ZqN{(4#U69K#c%M-7fkEgW89o2RrsN)F8AfQ*P&!DRP+Rr z0b5u_R&KLTs0n%(m)tMVy(wqz=5hu?0aD{h%lRY(AengU_#3zb`J3+qqBl?H<+Bnl z)g{>1pGkM1AIQrL>&tL3n=BV*+_P-j`_dgHgC{Rtddgr)$>1qVm!3RWqHinf>@1^y zIa)1fo<>P9`1f#nd9{)fjVyLpee$okEQndgVoo!q4_U%sqaiWu`2Ra6uWzZ?oY=wwf|uMLDkfuFhbfu{9= z5RDDd64JkTOAODrm^se_cZ3e(B?;NJoG;w)lC+<{diD8RRsT?FFjy+ObN!+-7p=b? zlUDfZGA*r@K?;w7M~iqoPMVaB&&kkUvplYX>mA@Sxq#Q%6A<_(%rO}~*f^tGeaK{X zxDPVw+G%Whmen7w9p7H<%)rj>$}rWdWEl|>gUDy-m`9_g&UYh%U$NF<;oynfyitbmhMw?JSl(n)fP^xbAU));_qHvKijuPWea3=8-@W;$A) z55JenLA&E<_X%h>>AhSFH#C|CyV$kR5wQA%z6j9u2l&VSmgoHlbA7-pi))89 zB;^DZxdrMtZ0V9qKaEOd=iqwI$eQ-$mJ4t@vQ|)z*UJ0)hn#Y|X9~*2(PFd=lo08A zDc#UvX(YxD;R`d=bmGs0h9fw0>%jw3)%y6D?8n%6K#WP?#Aj#To0tF#W=Qdd`iI`Y z-$*l6Hb*XfPeD4#SOLGUAf4=3k^bTFdF5~!D{B7Kax*nMTLZ~hk>ks3Nj;=V80lnV zUPjiinZvrp%)x@$9MC=ZY|BeBW?LrKbU|70AdR79vRTe5A@EJ->!^9@5Kj=&(AoBD zF~>@m$0?I9B4o9;$WEu*>6BZnR<5|nPLFG)Bj(foCz2>j6fq|;jsABf;h_$z;^>tTf5iBP0%sUVr`UG>>Pu@2jFpPMW*I_e;A51A$W`5 z9|~Mplc`{5b1W}EUG@3Y(;3{C#FyXj0)rCr+u8vd;t98}TqQM=UuAIkjHF%s{5C-4KAM-c2i8l=1 zG5$v6Aubnr_E-RsmxtbnJbPGaK^__bBG0}NdFYMEvu{Km8XY3fhn61|)I)DXo)6(U zq(9Cl(ruvs9HKsF4-#LQj4A%99}Kx~T3Y$mufsvHLJ%CpSa?yuTwxaH#1BN~%!$G& zgh@|wG}_!wk5jQXIi!M@@Pgx|U2*!v%WC45b*&J&dbbq1-1KI~4Xn~;miDyEa{sE!$OhD5D&+s_{^DDR5>q$z~ zRQ;#K1xVK+>jcYHQ7JQuCkD4*(Zw4b`WO0mm`U4{U zc#$sPX^aT?J;&t3Q@ViPb8J35jSm68uK=FX1^m7Ocp4i5{=+5tZLxGG}MVJL#00b z1F@O{TJSnJEgloJ7!o*%bkd7N`tI5J>EsU<=@Tg(xYkLZuwC3cZW-wtXLsnga9{XR zTo3YqBX14b`99hSFGr0~aZTR9V5bppHr`MajTY0)!ue;!GpoBa62PD!Iz*Q&(*L?- z#pKRJ@#3RtC04tl$mc8a)7@;`Jst{ONcZbCwQ2V9<+Eo`oNe=U)wcF8Qem#BK~LBd zRJCIP;wkq8VKLRf8kmH2q)u4rQ#rmuDE;qHbkIoSf=sKT&ZHKwx~~Zn{ki2U1-kt4 zF+z7Oy|@c^p*Oi(^iA;t6BNehf^qBfkVZn#qY~02s5~W};BgmFZs}HtJ*){IfOl`J zbd9vxlC(UFp8GzuC;T2D#hzg;_%7)j=@qh}GMexbN41E(%3-ff%C)tQTDwEG+mp%4 z+Pd|@aZ{&E?bX&>{n~f6kTg?rxD*F|LU{DQ%1-O;@9)*2a?&anODImn#VYzc{24V( zWLB(oy+eJ^Af)VeRKe$iUMW&8MIxP@8L_hB@JY2vwyCbJv!Om7D~|YUJ6bahMddA- z`nvMs;v#Qty0vQ*3)}2gtKxF_)#HjIHm`>{?XuNjlie;yAhOC#qBeF~E<*cXwII^A zhT2k#wP1ef?2JYYq3v*>cIZ>kT=)gePqH$P7C9;`sT;0|xt-OHP~_66)gL=C=Cy_{ zh-l6lr#p7-Mp%wVMS`BGw}oxK3I33_HD*;~n_^CP-<7dIAa-S++lfcj8r!Oc{1be( z@Fj#(&w<v+Lvv(syfeAs4)DX(0mm zQefe*M_1Xib|dRji^9b3jhC#gz~9cb&-)7HXzPb3t9(3ZvDQ|f?Xy>hk@1XDy@(+Zr<1WvFmDOxQjh)8`k?MoJ#OidS| z(L$$}mg$g>XgU_6>*$Iqs61-pX`;ML!J0ixR8t10uI0rU#=%#VdlUQAm|OPmrDqgO zr6r_)u;0k9(d?C-^-Z2OR=&(f_8T*@Qq`6Ryc9?3RTpD5{wy<26y4_yhJBjm3kSXM zpF*F{t?1KwETPCPV9^Qci0Aw@ezCFy4pe2k&SPZw0wnA%M%VaQh}eTtdzb;N>Om?^`E<%BszG7f^Joy9JQ1=ON5U166i z;J6^B28u6G8c%teN5xe3&uf=)rH0 zW|eOpvf$Fg7R)Rsu;5+c;a~^hogifZNev5BVMlz;-16 z<8DM|N<0FR>#Kz;Ug*(+8NTKa(up`+N&>Q7x=CI{0%{}l+b{$k6S-l4pIHJTHQvV5t z?8w8E_pB zbIhz+$BceSYMF!7BSBv7L`ZKSiI-oC%t)I|ZQqnr1 z{@3*r+Db~=Ce+`h6&GulXt5ZiHp8wHi*!ABze@N+Go~ObRK3W~PbQ%^u=_4A_Oal- z#eqQaZ7$|3rbpLp^mw1feEwqA>6g95mlk`az~#k$fAQr3i9gDI{iR|OXqNT^e@Bh) z(R#m-P=@HF8avV*pkiKvA@~frolHhUp)md@bx`00b&zoKN)C?1y$Isc1a=NooO^L! zD0Cl38p$Dl$wF1~6`xb=lLG^i-74Fq2>}@iF`pDzNMH*Ck}t;JPmrLv+NA;hzSt+J z3rqZ%?V4DcJpvx#D{Tk&IkZu8aR7bJ9#I>ocX!WdR8=fIbWd+oztGCdH8oMLu{(Iop;?H&0c$aBo9S!2@>OnfyrZ~W}M5Eh+!A+}$AMi+i3 zeHBnoriX$H#_L4ODCpg{^O9RocA@*aDw&fCoYeA&=e!uPhv5QHwZaQSc*jwcjLU9S z`wrdWqEE`*1BVo>x0TRJX{3#ZjdO_kghyFW8!6K4TURIEEtqF&zip|)m~(_Jw*TMX zzH$MaTd>A@4c4Ek5R(AUW&S>%&J0(Fjd71LgN2~N(Vr>c3+bBDi6;#WZJ$^=wkc6u z+;a>>S$C{B(KJ>+p|Z0xk?8EKjD<%vXj;RlFte;k_BF?1&3(xg6Q{di6_2SIQy+=c z){o%0xeY$I;JK&3X)LIU&A8`=+nXh`}@yxe9=fxDVBPgt82)wpSxSa5xAbNlAP7@^iQ+5Q1`gg78hzW!=;D!Ue?D! z{RCaJ*0$a1h1(}=HGZo_up19PLB4z+*N6y4cBg&|Fi_c2T&2$%j5tN(7kP&)8R-=1 zYVxeq{$TNtua(DNo1{yAbEV)4wx4QRe3;4+n!^Xd$KQg4gc<&5=~HO|S~?bO zg=dAj5UL87>SPz>E$)8HYqt6!w7d7AKuA-U5jBr>$86N`rBR2;L?Z}egz>WNSYymD zU1L_%dBdU0wi;D~WeXi$S4eCbrKb%0lSXCDh-X_Gqx3j6WHo-7b3}q%ya%)n z6kcfjGR96lbbS4E!kc;c^`NMHH$0Wk1Gj^8mb|%xLEM@11yPM`JY$yvX;Jwz!oQ)Y zGAHvF-xlM)>`17wHKe@izlX|76we@LSjdWzy=oKV$Dp`0T|b9L2;&R<`X8xV85BLW z+Yk!DLl0My6>!|6mV8-3N)Ji;^fy;}0;ke`%q54en-k(HO+D+|aG<>$<3QVwD9)4b zT}bC9A+hJ^gi|s7qAX)t9*3Pr2Ay@R1yP@Zb9Tu$Q17t(%xDMJ9d6^O!jr^zXpn5y zaH0N5qkp=@EI|EZdb?>R`1JBvka?Idc3TnRWF$X3G7w`m?x6$z+#tCrEAbJ#Ue3HY~1d>6eVK_h3iO_Qog$H@+h8(8vUlLqFEY zff}JlN#B7E=q3A!8J3-JqJ=YjNsR=Op$CqfMcK7Q4NXNwO$}H_NG+ap-s;%+%?p>D z*dJSa2|QM+_IOP(d#RgLxNfL$naY~64MmHOT;4o2U0Rx++N?iHGbv{BXbmu-_^We4 zH-Smkk4L6v+QBg(8JP_PES%q2{M#|HA087nIfn_^6J^ly9^}0M`i!(EM(TMsV?D#1 z>+{BLzTT%FyBf}})8O=4jXC@@O=E{q1XB{18N&~QgxGHndsf=T`H8e%Ovd>f#iiJY z`bX{{9EtC;rKo?creS9z|7F!967(0S^Q0cS4*w;0pRcqS(fVA0*_Km-7^0-JDiO1M z2YVe(!Ri}aay5=TA5gLa2y-K`LG_U!Qbzp+y;Y+7@J&wp!FcmOy(?1 zG)3fdW?5E#bYED?>rVNs>_$~0pJNO?C5oRe1Y|Te*?2iUfIeTeRn?nwAjMH zwiA9Y`TY--Wuo;*)KMh%oj6Y5AwT|J{;t(-w|@6!zyGxJ^)^)-AXr?0F=8*+`_fz7 zGKUZIVB5UVB9lkxwCsJYebKDY_B+iRRgN7m&lKcYZK`u02Ve>|0EUV%UZ`f`ub3&BwrqHV& zsS_UO>z?4N^EK5BhGfNG5DfLYvEl%`hetx1aWXV(kd2bJLzXS+B)@DYUh=l_i-683n)5szGd$Ycyws4BtX?YOW@i<`>T{`8aSezm-*_{R>n+i|Ad?Y8Uf zhk0RfQ0r{R7qo7LWz+xN7TW$FwqIKQ|9~t%J{-9)e{qdN`o5UE51KO!d(@mk^X3Ts zT2+HC!Y}!{9$QI?Vg{kul8F|ES!s`@7Apw7`1cQsMMtzBY9`Bf6_=QZt)LhQxOB-b zA`>FJx@MSbaz4wGD)WN=8J4TU2;KX&-{bS@f2Ug6z>1CYfBtj2r3+JQBp+Xkk4rv3 zLf=TlE?%&9{$%~Xb54Mfm}uD2!`;lnUdXN+8bV#mn-543zrYYXkwb)^0HNtm6e9A} z;Sgc4#kp~d3#SP?QaTbe$$A^}^0>n zj2XF(ljr6vXEEzNa+l;pX0=%CrwFeI$KQPSC#7rxPo#I ze0G%BK`0!I)S=dn{sXK?JEo3LasP7eft$krzbSR7<)=d+MfTJ)mi?Sk-@ImaQ-+pi z+7x9L{a)eqjFw*Y_)5KAMR9w)>nQQO3<3)ZOUyOv;12(Ou0)RqC3?rOXUr14-s7?* zS}k3cU$L*S(m*FJ4Um_R(=Kn0JXD;1CL7fsHPz;A?W?QppN2qj{IsYFaz)UNf6U$tsH{bLiI4(4(?YB2v6+2o4YB8SuI=yy5i zIh^~_ZkN~T*=4R&ePOB=UwxfyYfFBeY$Y{MtmIp_7;6t%?cPMQ5X;Yjb>Yc35U8m&@kGMAfkbD{moP(^;?LQUnbmZmIhj6Ej1BguM@iS=@rQdzIlCI-SbvHq>RfmF&`f=0%g}M80L`KE zJ}#rB=r-uVorg-rY{FNb`I_|WVA=dNX`J&VjRXFbNav9s6y`022MyO=DU-<>(^3ge zcBt*Ho5~kW=x&bwG0hqz5{6s)8%sSA?!f(-xX1n!BO)X(iYGckXR>XFUGja{C&q6l zKQck%$0q=D<19hhj=7Ki#9mI?+nS)gl?kF`-pJq-&+P@KDQ|?HEcOPkz2r$k{D;Yi zu|atFDSBr7G$j1KOYt#49%re%dknof0P4C5tR2)Y%>y0~0*L)C=tm*r@-$9kIyT3x z(ftd)rl7pLsQ9&X_ZUYZI&V&KVp3-1a=r-kL=dre0Dzel^!OGh z1IzAk^^qK^lRjfF$@fqsoCb3y7YWzd**+o^&Thwy_^)`pwyZQ13}QT2lqbv7NFrGp zkBH}rWSO+zYL#V&-R9Ab*8C2K!)BFa{Bt_;QqUg(RxZ;jMvOFKA*sw^U^zci6bPEFl1cR5KbLtubA29EojE=hKawQnQEtE8TjG^u z$;PbAQ|h++-OK33GM}f|u6i_&YAg1#ayU%lUhgD&gNyzi-LTV0ibqost89}Z9T7#r zn{(*RlWlJNwLR(e5^V{(^})oC~F|#hrbUUxM0pv(`H8+tV#gukJO>og17_`BWlX^ zY^dJBkqHM|Qy^k)i;Vp3feHG3n}`%|ub4b}#XOI@FYNV(|Kq>}^wX<8&&=M%y)#ep zdD!Xe!@gQyn4&BYC5h3i%A4!B)^ zpsCLAOV?=XyQ;C0%7@k){~hnE#V!t2yBwQQ#yee3SDzAA5WuBs$Jh47X_5D>w>0%^ zzJr-xz~AJly5T?Gn|edB5p8Znofqq8n6VGJ9UO<*n<`nhANaex88g2Oi_BtE6RHFM zgw$-^i{+2<)J{D890+Na;gBuFKiyj#sWslz0Z6E*4Pk zexsy0bW3qnRqWPKbIBWT#9Jb_#%pU!Z;7O2ltU=4F@GR5_dlS&{y=K>>~wne?3Cgz>uNl* zv-8Ntt}^$xbPM}pR9ky})2PP+O2{g#%w9T(6!BSf*r0j;r0rMJnjNv$`sbN*T2u2h{VSV|IY)Jr zD6V)%z5dnnjp<^ig4<5W?eVY^J7 zo=N&&275sBG2-+|l!y2|PV?IjyiMhSKHYqb9Eq*TG}gy}Ad~qRLBytjM9m-b(Ig-T z3LvR>O7kE;l4*Mwt3?XGZpD!PZHc%&v( zs()G9UL8iCe5EB?u%cMfS{VX8cs(* zRO&lX>a?RoIzi%W8$iO(f@)P8i+Bk=r=sV=53+IkuJ_&p$0+)rl)swe1tc?bBg5;-Zty(*j`^(}v_mPy@`RH@jWIeM`7h^z~68oh^>kt31xqw!Qe)*u=q-|@OkQ>DG({aXrR%t9(l&ir*WiTF zvu2gGSB0i`6HSb>#ZV$RnYV~aT+cb^9D{@Q8*hkb@8uk{l2VL0L^C)D_9bzv9Nh^P zUF1H&C2b=<)jzjVJ#<6N^eZ(e{80T`|3wTO9vBm`s&Nr*%g zjG7>spkHTG*k)G$lFcSXhu`D%04<#Oh1|4JlTv<6@`ZEfMZBH?ntlz8L_NnDkc5#K zs{(Q<)|Rqma*WoPkV0kwcY<`t%ks|&qqC(@|7L;(jqU^NkAQuQA^cPRE#f*LzZ z36(smSiMeNX2SubK2{u1ltA%gio+kEG^f|9JX&JT)HpW?m{K!=n&n<#Iv||{AD~6U zW+N5fG61HeF>yrOBQLVe5JTrO89_FR(~1!0jrvM<`|x|mvY#+XV#A+FDwa@9n&Ffo zluq4BDZF%e7Nz zX)Zg-grwGSJw(($?F3OjKW#>O2au$wQIFkjnE~7EY{Wm5Koc?MBe5>&fH9CglqENT8fdy zX~Jvby!m5J6D+&)^c>_Fhk+a@fFy}z%6U;HNlsDblmbZV5sbII+Nnnb$tfUbbijN!u)wVYB%|${F^xiD*)+(xMj0) zcz&_Zn@2JVHQ=lr)OjJVlkxd|7TQ;d`f#iwRu!{r3uvBci@{09O)+Uu=^3lP`_9D1 zt}*W^ws+F0QN8c5iqV}z=XPWqecgj?;~}G?wlU2UGd-@hHfkrYlaEKpHr~smQ_SLA z`ZLa@1DKRJBxJh4?h+FcqY>DlrwGy^FU@kgD3!(|KHZX6D(RM@)M+%NQ9q<4dF=st zDM3OmU4q&0f6(SCJa7vRZu?w_h}nJ;t9%iQy|=HqD^dKLcp}sMuYaX_l4ZY%#@k0p z>y=d9-1>4`gT1O{OkGMD-8iPB&fZ{+SIwB^TzJjACQF0n+J)6CjIcR`^an2`GO z1!XQZAmb<#=l7uY9}*;Jxea|;3|czCKM?Q<*jH@e6?W?@LsC#thCilO8>jvt*VRV( z+t9Db1)N{xbXZCX9YIq09OtV{NGhM>EFh;Dkj7biD3io4VRA3@jB&sO4stC;K_w(w zal=)ZdzD#`t;+lpPn;*T76{gx^kpPXsb1r3Ae454Q7cd5sxYTPN%eOFT9&OO5xqy0q^GCy~Qn|9q@b>?+CRN zqxX9trg3f&Fuj%6E?Itp+OOrcPXaQCCM!JmQ*dBD0<>zC|I8r@kWQu8&k3%~G^DSKGE| zJrP!`zZvP#j_2xIiQiwsmAB*RO;UdgZ?+c_+g=F#G zX1o!wq<`F9083meULu9&+0%`v?Nj$SmCw~-G9Fn-x{v*pBDEjeJLR46+jY)JbD<&!6l;1W>5_0)&TM`f{gG;q* zrVF=0QlGNfJ|TVAUD4gDKmG8n$Oy0PIA&W8^7iRV&u>DlA#ZgiS}Cnm=FKIef%ut-8I8CCl0=Jhr_|f0OQ%V4^wB zlJVw5P}o+W32Br<_rHc?C2`%j95hkM#|@7*G($t(hdK;NZ!SSpJ)mUO|E%ucxEpTD zRn+uprEOKA73+eDrjltT&6RYXPLBQwstYLw{jtjzniNkd13n*do)}Ll;Ee6)qaPSN z;YLq!pB~He>ur}x^hS0G`S!Ld3Y;~H{%a9jpTWzNxHqGRm&x^}bd}7P zSzw_pKb!HJoQ|^Y2^;E1W$sIA$K~Z3V{ntS-0G(!s9ghW0Xc z6SuzCw$`KUF&LP?;?yIj0F6?t3h_}&mi;JG0~V_ciEs_)RSIx#mNMLfM)x?7N2=*! zC+e^K=}#;*Jb}i|hab`iQap(2THBg?8olMsA7eCh zbzR<)IwIAgjA}ljrT+T16!jPC!q*5Okk1H9e?&j-RlZkk zm`2;wgK$Pp?&_LUAF#7C^s|Q8P1&K2-lGvtV_jeNlw#J#r94ItA7$i4N|ThA&^Gcl zZxiW#gcpZ2$73NR>G@{@l=?xy(#+{LQUok!PNP)QXCff)0VKFFuYPFn2BhgT5s);; zVie^;<}fvVCIXUHtHT5dIU#Dlkjt&nw4+ip{kJq@f`ZY4RcZOKH2!1$lCxqiM2|f* z<>i`!mF7rx1$ubpf6ymnr$7SbwG?)WK@-#G)5rUS=nT(o9wh7(1Jd;Q7~i-ABu0UN z#46Q9>1+d%)}w2UHyG8@T+Z#)lmeg6&9IZd0=H{iW|-?oVRNlF6~-(aX8kM1^(}wo zkt2G0h91%HXUb5|AS;^Gqh$K^zl`rx7~+n=8@zPRN9{&^ymZcSDZz1z@S*_H#B3y_ zxvD72Bsw$}lu7(1%AB$yzf9sH=r_EUk!8+Xmk&w3&`|(My&%e*QvgY|*A+lgF9^sP z1(2jEwH81^Q!*eIn2=cA5Pgs_A+frFJ}@9@bz`sbMzo%^DoEVCHbJX0N}Wb-bx?F7 z=!^Z7fSf>(&?(`~vpmJ;6!H;N{S1>N78L+%erpD>M{-!&>o~*`@;b;RNB}JyO*@cd z_G{}EMP8>AE58@{zCyA1!VmJzI#fR92xllCOS~p>7AwVn6FL8aocP)fa?Yciz_%YY zwvweKO~O07JmqPgeqaxt@SPn%k{gB~+WZvi>SfP5Ea;wwUcoMS*XqV_2=^|yeWA!;|je*?&+2IT1nF1GC9 zy(l0T--j1w&+rvcVtz_N42b0^TA?z^T=1kwr@2V13?EI9=tJlid}Y{%UP;l~;)4oH z>%T-te$3Ysc@Ewq$5IBAjTIaA8K)N7N)`_$7D^}YzbKp7kW#Q>LuCUC0l9R(0SPSd zwHCB&tqF-TzsN#j#U}Ut7Qo`mD1hCN2b(L^AukZ$N&BvN%A&seBl({N=E9=Yeq}^pn~9AAIMG4Da!p*=p*M~?o`RQS;H57@|Ih|Ska>i zAh!S$mP%Yxjy`&-GIQO!>1>Tc_pTZ1*3G~)$`v0>p#_SN@l3Qr?eske)V`J1PMX#b z*R&wV53XD4$+_T0l%6e(bMC2B8p`LT(fW=AnxogUel4n(_b*M=IY^or39`TghaMI< zo?^nn^9XG)TdKKA*vCsHsj}UKq}Gt<(Wu{yGl8#;&V&Z!Z3GFb-(;C7UxGg4RA&eI z9uH2DG}p8>Yo;r+H*TD%U#if(Yu3h%@O0CHYR)xDF3S98qB_;iN8_Cap1gK0HP8>_ zpJBw_oTeO>WYawbutX^VJIJ(yVDC5#>;Ov^z>+-r>0w~!WpU^MfrNjChCb=ccY>~? zIfo0&HYHbSDXmH-zT`$Ng(vd6TAal{UD=O+J-Y-t;Pn8nE8pt^-H0KCgnM1M!b;8-THJ<@MR_*InyhZO6yHTe z-?hv14)bz3$2~;lqNc15MLL7?<^T;q69e8mKP!MFnJyrwkWk7(5)FS|07-o#AmVPpKk^8>s%ILyK_BMw6|rJPf3q@|!`A9lLjz&e(PYC(?l^-xR5URfcDC8=>B`FgPRuH`B`> zdIKFzFTR-S(gGjGBW%8YOA(tq!xq&RH&F8->pbcH6MQjrs#nHDF+wZinoo-RKaUL03|3_Z7 z6%uqnYL+hMF%eCcZsOd0qf{$+a`1t}-ECZbDLkR4ka zfX%addS*2R=WpA#pnAs8(DYf07R|nANkdnrVQE7;%?6KcsBdUn)=*pfNi<1EGA5%- zn|sGKKiS;W)V!>ty_K)ulHA7$8o>JB21R}Z{&7neP@l0XbBl(#r%mi?;jEH%RS3ho z7p}Pfw9_6tsMGXEd8e_-BRh@w%J@PmaGY-7xZ}XrQZM$fgU4;?EU8yt35OuT8fV!6 z_A>+aY_^J3vJHGZV5y8%?qI6~EWSod-<1XIWV2khO6oOXMY#k_IEXLT0(MdkR^FY1 zm3Qy|F9X&%4FFsw{5=dSu5MN$bc!qHg3t)FYR{EPzbXbHkGq={BCr zIH4L;`n8ekEMVLRj4@O2mggT-O%w==RgWlEK3HG(n98!!s?k0DW6LTl%X-~Ps^iDj z(s(>xYQ4F;QE4A{oi$MrFR!#-J-W-F56+%OZ7<~EIMJ+4tezxk>LViMA3qHrDYH`@ zWBYqXSCy7kj_DrXd+OEJ%JO(c!g}4fcBQfVW~1gGccc`m4b}#oWP;j;d2Lq2J`G97 zLw1PhQ{K0Ua1?r80y-GOtRl_OTYHrm3Twbcf1JJgwxXO(VW{lKf&+~+7|_E)o3X(* z%E-6ij3e^4mSc?#QiHw+fsO7{}8~SfN_!)_~CPd`|e>6S$@v>0dbw-)X!<+eU|uC?B)lp+#FJ}+`=Bh`DB7~ zAZ5d;8vJ8_##+WpJkzt!5{-@XkWs@MMh&O2XP7Mgko={5_Q1I17Df29*1G2A>QSe% zXHJ6sP+zx!WL7T!Z?pNYME+wbKhDcUz<|(05VR;81xUx51qclI?s8xb?#3UptdTsH zm!!J|2I3nHBE0COBf_!z`qC1~qfCz_m8Q~#90N0dz{tOry>Hnioy+rMrvl+16pyuL z{&Vy48|MI^eqfA0$+DF_1IvmiPy%#l2F=odw7A?8d&p>!KIS0Wm`ybL1}6=m24A*@ zD^UZ{h-xUH5(Qf1XeNy|3V!S$+L;w_8j2I6(Tl(1H89I*2lirSxQl2|Q&3{I7w$3( zAPmL%48YK1Vt8P$G@9oJhJ_`33x?Tp^U62Q$^(8M8~E+OH+(N=eW&`iRE=^2jVa^OA>vR#gL9a z;w$JGTlOx8zqDgjyt1-n^~y+jd31$-srVIX?1M6AylQGysiRaWwHK97Esr|N4wO2g z;!erFrJgm;Mg%?|8Tecbe12@=Q*($`)@0iYr>QYPF@1GOWo3NTifDOxL~rCjD|ymB z1$Y3PxU)ztdF&CZPy`@1sswb#Zf-8S28_8mLy*HbIu)2EZEQS$GztsIj2 zrS*K?<2Hs&tM+gjzl)=o*AIWpjuEq)al$lmzRh#Wh-1v_339RzYJUG=6yfAFsTRsXbs zu+QcD?`*yyzmbuI1Q2FtlHA+R>@x^{wf4!lhpnSzBe}`oW zEDpjeinb!2NlO|-IR!gZs6H8Xol+&LU|#)mszN%mp+Wx#uVf3aWD6>x78s{9pam!o ze~d@Te}LWE;2C(~QXeR56zSFB)_hpYuMUPKx7`P8lr;t{JT7!XE_woM5WL(q;Kkqa zo`ChJRjpB0D_8?29E`7U0Cv!Ty%WC=nK-DahtOF-p%C_E4lBWbXu^_)j-FES4>>5$ z`}+R(DVK51KWcd1s9`O>8u4#55!MXioQ2Mavky~Am0|@ER${I#lc`An*;o@E1cRv! z3+c4@Ov?Bfk3QO1Ws9~oUSzY)8P^#eIA_C#b0&nt6VBOi@4aiz7zjrOPG7U;^nq~O zm^rq~+tM*>-43Op^`>A|alocuH871S$tjscA~PkaAC;Wkl~BslgEj2t+QE+U@{Yk; z{fohIHg;UFv^I28Cs{i+V72!-b)PcY^F2t53qV~+AjB~9nbOdM&DLSQ7upA%+LpT` zhnGXTU|K`n-?}?9qX(3hrjD-DPU{(yN+|=qJ!85*YizTzcICXf`j*t#rf#LBtuxiE zv~_iLrks6kV>9Wd=Cf^tllZC?X#6zCiS~b47(C;A3;{3F+o*4FP6YR^as2~ig({Lg zgWOP1IMHb@nxeE`Jf)?1+S_l_4&KI@H5zT*z3#dxt@dbR?YyBO>D3|qv(XKM^=%5@ zyW2XRc~fz|aaTzvC(!O*;D$9!5z)-B!osCe6;g1%9r#`{u>B4w=;i#W^6$+6(^GzRS@lb=Q((^^1@`FAC@)EI3e*^+kRRaDWO|&Qb;2j^@x2*v5tFgx%OK2 z%X{xtu0t;4G*aZk8YKR(M;SVHc6BpTb-UZ=W)E>~**GN!t%u%%Klmx3Wm611U)@Bs zRh13@*xSgW?-cojo^70chMX8}Jm(I}wGxhs5jkmBVG>ey2fOhl%uVRQm-Lm?riqN7 zfD7#Y!SgW-TnncEfN~)Rfpb_y=-~V_)ZrvpW+` zP%h>j{K>^mIuM5AJIH?%rfOqkSF+gJnyU=WS!1Nuik~;MD>_!Ed_EXKqxAc(X86(G43=x&m z7UB?=!m<54d|XZ$2P;J-hkKDDRyCz6=2+-n;Lysal;apA8*3@9u8Qmb#Tug(6dd6=_S)JOsn)(Dn5b#4sEby%)z?O&wRNqP(Yo;i z>^pAwx~(>wY;)j~BW}A*a^hZLguU^l4Ak*1uS3Ru7Yn3}m=PLqZ_Wtjbo5QTZsua_ zDpwqO>&>f24gdY9Z{C0de2gze0iXXe@VOm6(2t~_@O~rU~8hHoW>7y zxPu?=ApK;Co>?pv<5-912YYbF!}I+a)PfmCL_mr?n~<$o!#5%z(QD*G)VMc4O!J^h z+U&-MAD%F!@BH(}3}W>W3mN(_yK8)#(%7Rfzu*T%N#pB2!2B(aIqi(tC|xHVgBUN0 zi%UQw=m!4$Gz_7Y&<5RJ$p$M%gDJ!C51L~1;Pc_6>Au>*&d!OoK40y`&d$MFpT5(% z+&P4Q>{DEh!9T@UJ-$6PzS@W1R6BlI<)vk*>QJaURdy-D>u}TFVP9!ym*b-Q%)7Va zEfj6n62G)m+>}yV8bKeN1_bF2KPUd=yjXY#tp{bGEJsOdb9)qikAmG0X0X24!to0> zQ-AOlWyM0TOL2M@`b)GHt;D|&pX_yc7Y52BEs^ryD<{4EHj}nS>MJKstf&od)dB%+ zYq+*z;>61O$X0v}im<8!R${%U%fO0yO)_Rg@CMCM6mbpP&~Qo%C5mhx@HvGvJFvO~$s(Lh;ttVH#u67L<4dFO1R7_K?U_lR2b$S4c4lJ$ zahFrOHqV%`xoheu6%kRz+osl)Br0bqwyE*bqQul~P?VQ^TGpCS)kJIAr(g-(w3Nmh z%KSZDpN<~uFKaCQ^XN!SiAPF{%HMm(RunGP!ip9I&5U!#(5AT2rZH@(tipqu!b%-+ zK9Al7V)?s$c;EoGd{GMuH`&m07-xW_9ne+S-xQndu-fG%_}Hi9uv-_)cB=zl0>z<- zHjj0&BwHoPDlM^kY&a!RpT$Zp#1y`iC9O8udY0X4x1EX8#H{+8Ea^h1{h5+Ymd`@e zy-QONmAs4hIpbemLZAP^=<_Y?M7Bk`GV7b;>sVlQba|ogmTl>rIwg~tGPP6b=FG&B^ z`p?s9P# zvSJcllVQ({nvyO{WG2_vOz0?&w-45{n`;KsJW|Ql0|&g7=2G6Y-oVxYF#)P58 zFLTG-`k!%;=dM_>Le#>)0*Rb^vbD@*o8{9H7s0=!%g0L^-U~jY*ycqz8~}#^ESl#E zxZMHQJb7+hvRb9MyM%st^ttiPN|d=fTjl`D+(cz+vB@(m7{No8l_%YHl7==9VvVl{7Sz zxLm%{sLvNI^@+Cgvl1aoAl30l{V^7J9>v?9wv)C~>j-!9a}(L-P-AT%URkdO>J#xm zZL>U1k#H^njz^T-IDpWKFR=kr;|mhN^vi6S)W@^X6I`p{eLRa>H^$e|0K1RFN|r5h zFFT#{19>no{%rV%%{mMlHss!x7P9!y$2TfA@(9U^Mh#yemqk9AYM?w{5Nx+eHQJNO zf=2lp*})f2XBZrNk?l^2~*TQjdHg!w%XSx}as`i-wbqRhQUnNJ~VGkxGxwAW(e zo{%&b6Ii)PH`G;CRoATl?uzC*rMhkrt^62YE=B%Vjr{whm_@`~g0h*aeeR%JiY=v= z@M_7+aq@?6_tPxy~Gb|ovPqUZV zn}|wUApJsmUV2Rq$UX98dA__{UN3K#Z+* zSa)0Bvc7NqhgG*Jwur6Lw#2s9w$1jk?MwS8d#8QCKFhw?exrSlBkZVj%yVpXTn_(@ zt`C$-rCC{^oTQwiT&7&F+^PHwYRrDO%RR+?w)+K7wP%6nT+h!v&v{<+{K4~~=YPBm zXGX@nv%I%@@AvNXzTkb``>yvR@4tL=eMk8&^1bMH`NRH%zuCXhe~SNH{}uil{df6a z4Y&i*KviHtU}a!q;FQ3*fhz((4*WFmXyCcPt7?h5N&U6@y81`;WA*ExGZ+q523vwR z1plNpXlt|+v@^AfwQICnwfnW5+6&shL-;;ys4UbIx+3&>n1wsTTf3#p{Z9mq;ZoCC8WSidV%~ z$A1|ARs3J2?WJ2wFE72f^p9m#Wv7?DS?(?$TfVvcqVn6zpDX{eVsyn&#kPtcR=ko3 zCKe@bOzf|WRQ6Z?sPaARtm&;ex{?jCyd?kH)8X7tp`WmJ* zEND2Y;kbsa4R1F5so~>>FB|1XPh+gH^8c`RCU901*Z!~WJNpc%h)7V$h=@pFn7iK# z!!G-X3@%Zk#sv@%(EuVEHA-BGA!?KuqXtol5+zEM7~)C{8lq_2VvHgZxA4%XMp1bx z|L^Zq-x+39O!EBy|B1})&pCZ=b$4xDbS|#-*Z;aANIVe=Z!sY>v?z2RXrc? z`Inxr_I$JFhrNn>)%MEw8ro}2uZg{;_d2cDcYFPy*A>04?{!PBU-w$sYfY~|_4;eC zjlJHl32NHb>{_!|P0yNvH6v?IteI1DZq59fD{HQ+`9;m0H4oH0QuAufn>8QxF6q5z z?;gD~y$AFj-TR>4NA;f4`{dqd_MX@KhrNH=`^Mh4_rAOL>fTTEexdhkwPm$C)poAk zr?#$kXl+C7_}Y_dPpv(-c7E-Zwb#|&TKnsGalCCj74H`x86Ow_W_)sdR{V_kh4D+{ z_rxEJKM{W}{#yL4_(zG7M7zXpiG32aiMqtlL_=bH;<&^~iK`Qf6Mssq!=|lMvRkru zvMxC^*^nHcoS*zr^19^B$vczxCm%^Zom`*%ujG3vmui>VEwxXoHdU7znmRT$Ej1@~ zc4~g=N2%*lH>d7Q-Jg0S^>k`|>c3L&rCquzy-T`F`fKT2dQke5^jYcG(r=|d&Xi`_ zXZFbS$RslZGb1zK%UqUuEc55g%b7Pao3pX(4%v>`uGwDM3E2~}r)KA7=VyPEy)Jum z_Al9&a-DK}!tQzp>fDZ~dg$VzcMn}P^o^nK4g2b_?!yKQ8!_y}VRMFEIqbS& z4-9)`c-8P-hL0Qmjp5%Je!=johTky!p5YG;e`5G^!~Z_~!x7~p+Ku??i0&f>j2JQE z8zUx+IAz3HBYrmG))CK)cyYuVBigS{G9<^%J6QiCR_2#G#MpupAWptO(UmKkpJ!tg!(Z`NHZS;3X zFBtvP(JM#)Vf25Ge!srDe&6~7>kqG=T0gUXe*KT?e^!5M{gd_2?_aY24*QSU|Lgmo zz5l%Zf4=|iV|E(TY0TkcCXTse%#~yAAG7*^uN{y&;ClyLcECLcJUI5NW4n*NaO|aH z7mmGY?DDbqj(uY6b7MbhC~4@{(7U0bVSK~48_sFCq~Xejn;Y(ExW8d_!w2KSaXXCb zI4(bK@VLXq9W##kF3C7Sa<9|{-`t_@T^Gb`1?P#=k2K4Q7cv*Ux8>1~7ZiUBZ|)9D zVn2WGxNCx}`S^-WCS2zR#$I=s*t>3E;s5{o{FEEYx>}!4g$-O2yu-d>!F=fNa_|54 zyn*}|;E z(_An6|61YRE${nhwycZJuSMra3vosNH#NWR;*I}rb^C^bLS6idxQ_!q?|eV?^)1&v z*5HN~)llBIct+(G6zI=7zv%kJ-lIM^e=aN`UfuU9=dEF$ONO5Y7rWiVt>N~q@>R&+ zXPs$-u>r15<@vlbd8#wGpLep-^$tJpe3`4krlt{izum)+-QM9GK<{|9+sDppTt0TJ ztD_AR2M@aTK(F8yR}1vwnLVv-{Kn|+iUXJpOji50HllX2HN4}_Q+%;BX|Hh!LGV|5 zen(4Bb@-s`U33Uv{v#j3jc#12ub(SYI^=J>AlB0*fI9Zb3C0HRY}p)K z&viXJ!R5GTtbzV3e-r4}Yu$n29n{esyhoMw4YwE9=7xv4+OW)Z4ck!mC4@!gEaKZj z#TT+dqk9DxQ^$hyD8tR1BM6wq5rnlaM|^vRSCZB|ms0uJnbJ*lDE>lQZXcfE;>u6# ze7-aN9nREAc(3aj{)x8u8oPDiL5+OqS+~&m&KGeO|9Q&Y9`T>W|M1!O$7NB!TxR@a zzWd_N;z?79&-0|8eePNO={dRAkGd`5Ri8Y2p7s5RcYXfZ^Rn3y zPis1R9=0^%xnJB_a`;*IGx0y*#?L!PeDG(+|L$j9N_=ozXU_w#3_s&+^8a;rO(c`2 zNA-GDC_a8W?as^U>5`eioKUjxHP_T0B$w`ImBZK1&n0Jo#f|mn+wreLbPZtX7j~B3 z@Ljja^oK9tYctoZpYmuW=sC|3^8;IT!vH&g%&8>94uDoQDCon@m5B z{v+9b9QEbTh5t=wWIA$vx?~{m^Flp--Z{Ge+Rr;j?d2wunJZ~8lAYT)OBV!|n4Bnc zQ%zR1;SApf7Mlz?%*_)|2QC+%2finr3Aowh*!l1i$(}oi2e|;8C7B2OIFd_0iDb<} z$ueMW;lFe+U|}Sit~NP*3zijLRyFKXk3SZuQWO3q#PUE*Hall1)y;6Lb2!1>Zm zfClLuKp)e+{>t2~bTaCraF%Z3<_flKW-on2vqF19BfTRYaWB9IKw*yB$AXzhQN;Hpm7ef-{3l!>@!7V!hF=^SPa`>HPQV_SK!LJ6Ct9?p9q} zoviLtyw_|_M6oBTThKk26qbZLhIr1vm)nBy3eF3G z8)@y@`My+7c^o}&C%oA#id8`d?xmoT{V?l-V#@e;oE#Uq2ZB=fB)hLh1-k~-ZcDHS z^X4Pjari$$2XxrY?g?yW-@&SA1NNoA-vl9H(-e!oj2>{y)!kXK|dvaVE$2IKIzu5yuZWF6Fp{<6@27zH}lWMVB!f_|Z2sb?7 zOX2K}_zSj%kGS`Po!z@wTE*CHC;RGMSu@#%wU}~j5xTkrdq8`#>Y9Rc)w0gs!|jJR zlmpy>_#OEsysZJh9$$A8-Er=C{9v4b&x&ukneKG>*lCQzZoo447QAu(96ye?xnJUI zfwtWtye6Up*A{)%htmVmaXcM^ zem0_u&_&*k=wjC~){(w>BK`7Idgc`BXEHgjrao(dIMg_75({R@$fVU-_seOz94yw}?jT z;H>sAi(K_F4m6Xps3n|4*i2H@dz;4jL_&|_jstkU{$F~g`P*xH-+I5k#;U1brE>zQ zZXG(5+B=#$oeAGo9V>s6$oa_62(PDv)5yQ>oNnb*EgVg}s(ZCX#WsPbPk<7qtcF{h zOxk*8ruBZ%Hhw{iYh9dcv$%O!P_6$Z4D?O>3Mu4DC&^b|=`BUHUSGoXh>`Jdfj=IuC@Hkg`Bht&2E`<-e(%X?< zu5<xq=;_JE1Rsn;bqg2NUm%at;&_1Cfl^Kvt$`x zb{_5Bm0g6Kb!C^LHMp`X=moCq8d)HhU9bH*WlLzUuIyG?lq*|KA9ZDSA(vd)N`2*| z>>=%^En9=m;mV$r53jOkWm{af4!PyZUO|q#vW@afRra>N-%|EI63vx;j7H_ki)f*) zyn?>$%6Fu1y7CURTvxt3E!CBGp&z*N?(|GoUPG^Rzd4 zLtXi0$Prh5B~sOuFGP28<%^NBuKZ@SK3BdB>F3JtM4xiy_qemb51?7O^3~{8uKY21 z$S;2y&BK*HhaTd}*P}7H^4HM4T=^SljjsG1eQ}_CGuorN!1uuBMZcm79mQ3&L#K2V z9krVS6Qzs6UFB=Oq6b=wtEffma1|N(f3K)RXK@vS(Oz7|2=o|NF$QVuDh@)sa~0#! zVqC>h@&H{S3kg>-P2SZjW}wx$iaF>xuHsC$5PXii7CaB_$5mX6F6$~5$iH^QRr0V@ zu?T&}RosYX;VPD*3Au{fwFjtT1v-waxKBQaDptt@b;ZN-b5!v-ny{;QM&6_=*2@2K z#Y^ZTj?YCc1HXx8;wmI)n<}rDrA_4$Sut1M zsvUTh%Na$u%Dc4pxpJj@8vKxU&{nRIO-$vJ>}PP5&&qbVa-DW2R=%R0CY2jyjad1% zMxB-KYyU*$$8Mc-RYjUVud2`a8>iQm!;}5?aQdTQeHQz7Rp~r)nZxVSKTb{0#(aoOH_5Iyx&ya z6FBe#0jH|fj7eP8V?hl3G-EAS^&BHFSG7JU0l&t`%T>J*l!4!2bmgixGjf69Ge&c5 zZ2xeZs-O*YyPz$&W3U6bbFd@0Yp@fzN6-#jiw5o5WEc~aKlF$KFaVhh9?-F zWO%aSsfMQ+o^JRg!!r!eGCbSx9K)v>KHadd|FevqYxo?)=NZ1h@I1p88J=(WV#Ajj zzRd6f!&ex-((qM=uQ9yP@FK(48(wVqM#D=C-)wlP;ad$aGkm+@<%aJxyu$EZhVL_J%tc?r6A^ z;oS{)He7AEi{Y+@yBY3oxQF4MhHDJh8crBa8O|8a8SZ1a&TxOj0}T&0yr1D=hDR74 zWw_q(7{g-?k28Fb;X@1`YIwZi!wny4_$b527@lBwlHtjQry8DSc)H<}49_q;%kXT& za}1wm_;kZ(8a~VLT*K!WKF{z4hUXc+$nbo_7aP9R@MVS<7{0>rm4>e}e2w9Sh8G#W z-tc0>HyU1I_-4aP4c}^bnc>?FFE@Or;T4AOGJKEW`wXu%{D9$Ah95G#+VI1M*BE}x z@Z*M`H2k#TXAD1U_&LLC4X-o2-tbF?Uorfe;SGj28h*p@n}**u{Ep#GhTk{5+3<&k zKNb$1;m~lA;S$4ThARwL8E$KMN5kz5w>R9ua7V+P4DW8Zv*BvPT?}_M+|6)z!#xc5 zG+bl2)^Ngb%5cVT&Tt>Yb%y(s`+?|^NL%!0Y0uJ~r8!G)mewqtSsJtSWogUOm8B_5 zPnMP}9a$Q(^kZqq(v77VOD~pIES*>yvGieS!_tMN2}=)_7AzfD8nENMx&l3bS|9_|0fT`Nz!=~lU_5XX zFbS9j%mC&9X9DK{^MH$i1;ACnBH%_~DR4Wm0=N%Y1w0Hq4m<;_1zrL+0B-`DfDav$ zkU$yG7HAK20;+*-Ku;h6LIB*Ow8JG^t0!{h_}IA}ihv4WN1y|+JJ1E_4%7fCpbsz* z7zWe>`0B+5sJb&Ole72T%)SfI46>Faj6@90ZI9jshkD(|{Sk9Nm zfo?!gAOYln{=j~~C}1pb2yi%X3@{m(4$J~h1I_}@11v@0Jj3mfxCc} zz(c?q;7Q)!Zun~A0cpvzfiTxs=0@xAg0PGHQ0lEVl z0x%Ug378F>4$K8E0OkXi0apSGfyKbhz%t-Y;2z)sU^Va<@HFroupW2~cmsF`*vwuS z2b2I+Ks%r#&>83o^Z;ss3{VFQ21Wp5fP;YXz)`>?U>Yz3m;;;%oCC}QE(R6=R{@KF z8-b<3?Z67)K42B_Fz`6=46qh>3D^L<32XvBWC1n=%7C^&d!Q3g4Rix~0tp}o^au6> zMge1iLx979V}QxPbYK>68gLeH9&izGDR2dF4RAfM1h^Gg4%`K-1Res`08awX0_%WR zfQ`W0!27_*&h1hJQ~)~y9e~||EOaP_=Cjqm8(}B6b z1;BjZGT=&JA+Q*@8CV9~3ETrb0IUWc1D*z+1J(nt0dD~B0GnClaX<-B1+)V?0-b@b zKo6i6$N+V~U|<9=1~>>94;%$d0;T~ofH}a`6|T)`K}Yb9gFV61gD&9j2YZ2!3A%#M z4)z8g60(c0&B@_c!K1<=@RYC^+&{bkd_;I5I1zLQHw62FyYWS0*Jfy_csd0sa6U+b z+lDpZUSV%=81w+|$<`59wJB6ud|U>4L!f)g1MaC>8xm*LM{z<1V@19hUB^O+K@a~&JMPn^g_Nu3cTsN%6&uX zr{d$V1N0u@uF!7>m;in%mzZ}vY%2x!ZgZ~_y0bUxChw?{4@=(4g zm<7H+I2pVkOS>Q|fY_=<(6!Lz{&kcFM z<>UF#wJSe0_!f9fNLwvGA*8LA4-QTPA02!foC#?sP z5WJe5v##uKxE*n2_k^^WvgbqEOxd#FBJdxB?}HbIwDYpxg|zdsD}#%{zYZ<|&kt!c zWw(U1nXPcDj$<_Wfz7!gO3bpOJ!$-w576fc-(en-wJmD z4-08;WfMc%TUnprQt)BH55YAdZLDnnkTzDjeL)vrcHTY+7rFY|&)|FzR1imf&3i!N$HdcB=KpQJP zEw~x{1-&6y z0bPz$3RkigZ-K7lqu|%z$Ai1TZv}UQR|WTgUk>gCuLvFh|2g;_cxkW_{7CRy@S@;8 z@cqI4;03`d@EyT};CaDA;G2TqgU`exiYvJ~+zmVLS#k-?w9orA}~{enM&+Xd^u@!&;p zN$@Oq@8B;Lu6T2>9{MYIiFL(q1Z$z&1TR3Z51xSzfd-S^WjYJGQ2#x;y(tjgBOQ$z`qMm1z#Dw2L5&MH}L#$7WkI%WboYJ4e+(We}iX- zr-3gIzYU%mYye+~rwLblWH=jqMtBN%T<|9NTftl4Vd3fEiQyUGKEd1I!-BtqYr-?Z z`-k5FcM0AB4+`D|cL>h{r^BD&)Ns zO$m7~Mg2qN?TAo$ON7)zQA0>Q6m<)ifro~_1a}H)=SBIDc3#vrr0*2<3h6sVVMxCy z+B2kI#5Tq1p?8Vx54|Cz9*W9C>LIo^Rs#MgRtkPRHVXV!Y&3XPYy|k_*huh-*pc8r z$G!<(8aovHNbE51qF7Jx{jpx)1tD!Lc1K7Xi_HsZhq0SN+96+Fxet7Gct3bXxDtFx z_*?L#kiHN*H>5Ab#>Wl^pBg&?JSNs3d;*RITx@Wx7JPIp4#s*Pd~is6j`awi1CI=! z2X~Iuf&0b!f!oE#f#b0Q!6mVF;JsrzS2%or^nm_K>}$|(gx5f~34aQ`KBS$;f{=C| zJ{{`-emAx&cy&m74*wR?p2K@W+G_ZGNLvk;g;#+882%W%IFiB3CuUXz~2h#%i*x_ zaqz_O32>j-Fz{iq;ozF^dhq`8njUtEwFM7~?Evl&-UUvFcY`Zp9l`s?zEa_Wk7K(- z?-APr`t4X(=$&GFL%$Lm3tb#*fPOYs2L2#c4qg*$4}Lwi3wUL?5d30zEqHl&CHSfE zC*UQqF5utC_5xoME(hNo{tA3)Y&`h3*f+rEg%^Ww2rmJj7S03zIQ$-XdUz4|`{DP& z$HYSL*|8Y-kZ=k3P{^6bABf?*U6X6PQL--qTw^$W;XsivmQ*1|Y zKDHCMZMYHKD|{UshVY+Y&k+9OHih>FPy*7LZ{89LO@Z;fX@LS;@ zz^ia*@7&Ab@4zdjLCUk5LURe?3COM*+n`3yUEWJt#^c8)AILYV+LH;}^x1C_;+ z@CToM6PLNkz%c<2FqH+A|9*@6lUWsOX}K+SJ5;2rcHw@*>JM_=rX4+Ny6fS><0sC* z&dy_dHpDV#yv4w{lAoTIw~D4S%UnCx$S%pX$GbuIb_3fT35;sDp)WN;J=X3ZW=z7JyX%P#)7r}_vnMgG*|JgJs{5jUKF%$h>{#=~#lGd4 zEpKhXa=`zh_*v2aB7a-H!2EuCzR36bDDPir-Sajd;C-&KQYaz0S3PXhQ3(6j&x-5+|G&7W)f_sRC)LwM$yrnm6vB_!63Td?YC`ZYZP$LFA)w|bM@y@}q5{h8WO(^K1~ znqp|WZ|is0R2F~zAC38oj(5xR#>dxhE8gaL_5V~B)k*VTbPb8Kb$CUZn-3-s3YTL>$hKf8XdJ$!b4O_ns}ncV7lzQC0V@qhBXWd*XaQGd|&ruIxu z*SEMPIlXbqR1U?z4Sv1lsx7x}!GhD*s`yV+I$JK__)$|{xcUt7KC`8sL$!Qs)3ugV z(_3nJ<~{sX0d!~OVKlhd~N$o4i=NU6-{wA-Osg1)+vvL@IuY$Jr=@R zo(r)xJ=OA#rvKDTQ`}Y$s;#E$UmVqx&L`uf#$Kg$ZbJ?g%2ar^@c$pF>usf6i0_l< zLJG~VSX*kWFX;h+hjRKVy%#;Yd7A!TA?~L1EcGZazJ)h`?i2a= zj26>8&rxbkeWw}MDx}~`)~u|JQqqU|R`eOUZB~PYICVBY*({&5^g%+dSUFl`rc2c{%v!)3N-v z;B?f5`0A&&U!TIZYN?P1s|~nw;Xif5*js$EDWoMus$1#az6E~ro~CeXXU+22)XrKy z_u2nH>z$FC7TW43<7nP9K6%}T6zWUm`>cBuzU`~qeDWXY7u$ONQ?CWV4&*#=BWZU* z(81^zjqXHFLnf3q61oveq5Ojy$(47wGY0j%+Z^4Yf19{tz1^>W8>4Hw^F?IF7W|V` z(B|0P%AHXNvrR7&-v&a6GuV~;_Ij{q+V;5YY9c=7e8^C!8M}Kyljo{xXVi?5EvN42dPxnyvk&Ry*r9sU;DeM?D0C7U0o-#$Lw1ihp~ri7WdBP zIGi0@bJ$mQ8po0B(z=X&WeeCRG>82`_qv7b1A2hnO{+K-v1jK`>~4CV<7e!?d4au5 zxG-QZ(_cB3u!H8m*~|16`(u8=E|?G4t@J+}x3kY>3*KZ(*}t-!a_{7R#kXO0cK53E z?mo)j$*l}_XMf3WseypqCVTJ>JN(1ICb+GRrbbx?xozkW-LZ8Hh3DHxg!bfjWs_w! z|J!TN9H~;NS3l}g4&QqkMrkZ0hQ#amFOX$wZfsUpbnmW2Xgu3=f=n^t4&QtWUu+YZJkQnV*J}!7#!xC} z#F^kw!as?#!I6Zwz}jUQWL!98&_UI~sBs7EUmYA}gfDX zbY2ymZ4W#2%IN=n(fOX}d{=aqTqJ(&Qw4jPk7GfVu}3oC4Q&QjAVC7&kaUSE_F8(r zRm2-E(Uy0vh=&#a`}bNYuE2^_Dc9uBMVz1my(eHFEGuNeD5wB=B&<>e>^l{{(eN{d zm0l2(8U3W;iw!SeFL~hRNupQ^g|9;E3n=tb!X#^oz*V%R_Ou}^NG&uV&*ikVo#>zX z@{QVg!0z%8Un=`SIkiIV{|x9a+WV=UpW64SAdX86pJaHc;d>2F0Eg_KRT+xenSC<* zuTN#KwfjF&1s(Ahe7_(HIU#N6>o-DQgL(#W<0A-jSMaZ__+N;dR=Cd%blx)FCvUvw7Vf!; z6shO*Aqc(B)GBH8pM`+Dmo!OrcoI5K?kb%-U>eUpOYUeBUmphj9`#I3f3qL7eD)xr zCOrjRPXC7koUoSomrxScV`p7JxZW62=i8SPzLfH{b8hYs!Y3fb;PV&$47%8)hP(J? z3SG?m-Nm^pZzFF%p)Qc}*VjYuV)DV=ax{5cPP;$?EZ>zlKQun??k29HYiOmNSf=LL z;)S#)TGWFL-1C@mbhlaJ)Ue7&o4?~Ui#{dntpJNMx=(5ww}1i{wM2qdg{Fa42Qxeq5wuZt$Vq zFKCGvR${v!Ih;POE{`!V`>e-~Ue06LCVKEMTwPU6{hZXic+ z<5=Pxh@L*k1vg(zcmi({gE6&O$^A1-pAYV&>_vm<_4O{e>tyG4Ek`%s-vv*cN%#l! zv@tGt<`kYCfbWO{T=4vI`p$=@^9L_3BR>b?N20+6f1{t2w6jq_@ZV}nC*o7$Kt5D< z9?xcMTo7!&i|~EX`VV%YcEJ~IvXMea-*Uyn83%mbg_T_hFSD^jxI+(1_b|o=Vf!hB zhc=oBJ04H?5PVR40}~bMwy46!7vY|F5`GQih9g|K&mn{#VBzs0l7Sfc6l(AO95- zU3lQx(1*acCb{sCKXLzW7}Xr-!f#v(Jr-^@*@fR+4}C9wEvC3|0`IZtAb8wV7fybc zd|t-*=Xe)RzYuy~^W_rGq&|xt#NWjUE}R4ZDLNc}INgP(KL!1BMoK5T@a(go2jT(a zBp04beoA+;(NlQQAED*VXaDf^liq?}V56|`zVo5ag_nQZg%85NO8>~X>~t5dc^>*c zd}y5E!l$n$&V_i=IMapC^&@;7{xrVh!oU82XBWA%IKmBa+Vh?G);QaRZ~u*Z9>>GR zT#T)L1AQ@mHoog(;b^;Gp1xvbuM>WwdH;&-csb#V@w|bDsa^XL{tNtXoR2Zr2I5?b z7mf>DY@aL0!*G0YT`7&9hkSV0c>TF6LP*b~x{=Y$y`&5*M4WhI`(}gU6*VcKj*}m;bQX zEO>qCD~wt%bFptzhp}7C6Itv#q*b(qk?aCYYgAV+n5VMXJor-aS$O%t>(&q8A;mwy z*T;`t?DFqHKV+WEVm~>MIM?F$<0me59d$^$S8>Fa>L+0Tuwj5bd zvIc)3KXtLYPbU0fw~!RVbFpW;a?i;~ z?CV`@-H*9v96m#Cz&ZVYanEq`g%*30HdcNRWA2~1*a!6SvXMyl8}WAeD01f<#@{!& zqAK!SekwA52_}RO6F!)+_|IKYHFB;zYkt*=_8n^R+=7>pqJ+{KiKmgJuBZ=v2lKLD za1;&RNdE7@>&UIHXvDST?c4Ysxy=gPm()a(edK*H==bccSSRvBm8*$ll;mReS0|Jlh8%(bVYNK>BRGEj-q++AL3cT zQFQSl()t#DOMc^u79bx>W}3gaqN^x->2=Ia-0h04*Sk0cPbT-cq9qG?@11SFqUe@; zxaVniA4kz0myxb~o7|82=QEVO3)<;QSF~y~ZDTR>4Zn3of8beUsAf5e{dwib! z&J{g`#k>8Ha!G4{#uaycoclk(cgmk# zarZwEz6lR1&mxNMhi<@+%3oY@T|1uL4R0#=mKxZLI9J(xPVvycLoda%%34=En)hB* zWivd*2k?%HcXR7FiVu2-d=9lapW?&YP`3}_ab>+Lp7131zhSdL#Zy*7x5fL)%dYr@ z$EcrTX1!i<#WUfn#bfZn@~SI7buZ}i7*)OIiqE`>JXhh5^q=4Ge@?;6`%72 z@!WuKmj80a7tZ1SW0+ss=!)k*OCA#VX?fihFQ|gv9d9jfxZ=%p#IwxUrRj{ zEo990rYl}N1A0%Jl`3BHL+<~W(ZoBhc-bX{-;Dp3cU|$X;Ge~l7;9{D#dlpt9*)PC z%X_Z)KKf3q3nP*DUGZ;gp?76g>jSEcHXPe*GkL|U2chGBn~}?h7--)`JjM8U`3M!3 zIxl{eam~lB_{AH!|GPF1R{ZkUp#Lt#+ZF$HMcsp{0Kb>Dw38~EjdUe-yra^Sf}Mh$T*-d$ii-I` zyP%yb8N<6M8Dz6|B?q_X*`0#+L3>wn*xt~`2YkTDl^lW2Q}jM_dL3NJF&99;$=v3y zuH-o0U92?t3VvlurhbQVonSM5B`0nqtv11K_?Rh~{Q=?oG6%T3D>=Oj<#No4?tut| zE`B2D9CXHD|6TIaF8FHjRabI(DbJo8R0q|r^++rzC4moN-+5L~U(tZ|>+)J$vGenNv=j-mgo%Cf=og-GqsgX7;a}Hf8$6 zqh}1CarA^K6Q|Fro-(0dm*e7Hs^`S}b*b%AeX2jrN%()9dgW^gKQ6le;OSFlk?P4a zC(bzVq@$0Wc);|7XHM)=J@cd)6OW#-|HN67Pb9t>6DLiZc9< zSr(!G_d52(X(!I;*JZCE`C7%@yTxr}X6xIIJ8{|s-P5~y#y`CviT@u3DdezOVOx}9 ztHOSwAie#IInKX}X{Vkvxt6Ls>F8OLtEtTWbD31nRBd%bE|=6fmyg$^dnQ5E4OCyx zM6z0^RCT>hy|Rgv5AT&tC8L{rWz%-MV(6945C>5jQ6EocJk=17XFV0K&5=OinYcwt zRGuLAdQl{z6N&rVeSQ=NSyZH)##is3OOvH|EzdL~vI??m&8hKSswYjEHjVZ*V_NsU zj*IWB7vEG7+1j4=Am?7$q+(5OO>vDR;|a2*Yn-VAC6wEm;#!Mj5|&Kw<7i`a8(L#) z@A^{ruEf^8E2$=wRiSfQFr$)r!gRGEnahjHS0{5Rb&oVnpFlmF$W|w_ zbSM$^$&~JcYDlK^tS%<4L-{9?x>3;-(xu5JvPwBq-C#sKTb;;Q8azf=I@7bZI+4tR z>EhsqY#f|PC>wT5nmBn%Ct|6$b1nB7K|jePb!#${=TTBh)#j>It`wZ0KCU8Ua^yFj z6Dz1qRmbz50mKue9*+}9pGhPmqCV}}jN*?|R$WZ1`$Ou9bc$>!nzXvSVy@4Sc}uM! zlNLq#nM|fJPnj$UQyj`SGmKRN++GK{hPQ?`nQJ;)+ zpQwgJE~3a|;}Z$xMbRWw17t%lTQyB;4e>0mP8o=2t*IrItGJ4xta^gn*Bhmh#S0}f z!b;|;WV|}=n=4^G*QWn1h}q>YSG7AGI+fMV{RtC zYb6AYN@lC$IeUR=7<@xKFZP8bOT_(K<#jY9B*`;q0g0>$KR(5+@+WK60#XUePhmwg zq!M~tP^w*+ncbJJ)$8Q(bV7lOF|D_%WYTIbmNGm{HAavTp3`|H2icPK}w$TB%x+wjZXO>n<`MUkaGy$oWu!KB5LBg&zQL$ zO(b~ZjWIIp^vT5Y;?7DrZtR)tctW{1irh<4&yueM`JzbF?^aZnFn<-Q#Vc%8*0-;r zaB6Edol-{>TdX$7)F4*3tO-U*s_q?J05+4I50Q z6#KT}j#N<7F>|nNqq1Z*x}WSA*O2sPs-Pc6-eX0DMrrQK>ZX;hFlt6A}Z&{6{wAh zCnudc1^e_woEL6XQnhPT0xdFn2B~AuD5^v@&08XN5kAExDxS+z29;Zs&#b7Z42-C( z4F2u#AtWQvuYI{Cj(t$J@PsuEm6^J;ch-XEwGdmz<&#-nt*4~fXLFP^*+g+wEH*<+ zW3(gnU6j|9Ve?y2T;)#cfS1F|tM`<&@I>AO0&NHOFF8O%^qPJqA-!E4FT;>8VFTS9 z4alqhISnN;wAduV(+?6-+#grPCP~7GL|#l@K_-ADEE@@3BL>~hNI4pnSi^{Wg+?P3 zUQUvpgZw8O=^WC^20R%?o{3DP6)8|Rs$jk}5G^XVRiJEN0wuk*K>6qO{ma2Z>mypDQS^P$ejC zoEPC)sLz8~s8M2}{+R*`HD%IRD6xAMYBLOynHl4Y#zJ+QXQAQ%#zMW;U0|Umti(c% zFcvDxvrtjSLj5xZ7OJR>g(`N>IF(`(6|qoq=2@ujGZyO0P+*}d8eQI(J8mpgLB>M; zwL+;q3ndz{&>Z-m9nqvUw((;YMeoNfP=3s!w+b&&anrT=Xv`upU_pAoi2oO37R{EV z@<=6{x$|1Hi7eBkMfu4g&AIu>Ax$wE2b4C?gpjpNo4HIgcT<7^5JuIBTGC=>#%fD?m(A-~RwPk!YWxa{D7F5yjguNF8^2{GdA6c7 zDQowc-eVM<&dc&ff-JSN_U(E~C$lwcZ=7Ino!H+FC-z}xVn12UtRq;U`~RNmG%bTQ9} zl38DqiGI<~24#6Tp#!=50%dQXuC767_PvMF!R7v(0U z(Wf$*(y&+rgWV|Kyp$*`oi)>vyf3xALRE$*sGrY~>xzaoSk3cM^;=P`wsuVXvl>Q| zk@?zxsI48{+ZwQJKvH>Yw*@MP_J=)++As6W)`@c|TkSLBzZ`mGQo|7uewtkromd?v zy3>qt^tdO8ku`B^^`w%JVM|^q8)fNvipA(e!pEZ}L!y@@Q%)1vemy#uG8U82YNpg! z*7lVV^+MS><(T;Kd4p(3#dQ%XrIlm5D<$1p52mzq5XF{~8I%&i2FS|b)3yrAktI)1 zh8A6>br`>W4de4$Ye%ia_%Er2q7)x7GOzfEGR4Pimm3uyq^&7F-ms}r@j+60#fQfl z6(1Ol^c}N5j1-?JC?Pw$M#TpnV&6Eec`P)sxPzlFS;o8C8aK|;yUD$vvyZzdk8FRCC@UyNu~U$*zj zop`fdtgW*<3=X#A*`1_DR#{UVH0O~`qXfjoUa~1x-Zit6g{2f0;~D4Ls(g-toKY~i z=wgobj%fKlkF956DPES-#G6krg^;uXAKO0~EY&>I3T(#oYKA6)v@bHx;#N}0nmUrS z^?a!#eriS*U^$cTY|zO|klWORbPc5tE%9qA%5O5WocL9IvgZkM?3ehnl)^9ZXE6^* z%Q();YF1V%e%j2tsgZh1OSRO%20GX&h6jFp2|>O!zEn`5E?W!`TdtL~&Z&H<_b%$DGBi*c z-sFHLOb1irRI^UXwl9a7g>Akt_1iXNlIDEG>javO@Hzp)+3N%aIcd8@Bsx9ebpkOU zuM>zeoxrcUc%48ZTeBE8&ERzcjiS6xAU(l!0{=wTxS=kaPGDC}0-M~IPGD++bOJH0 zJgY@XP2om5f$lP$z;?)+PGD2YkxpRzQ96MLuMjcEB8iBQw zme&c`m>lT@ip=W-;+dussJf`j7RA_yIt8J>g`qH#Y_U(R3pw;zGtLq(Y>B99+_5L`Kk@zzcZ3#Q51~aD+ z71vH+1v1Epo9`hW@ z-0rv9wJ4Ou#{7Sd3eh^P@FkyCNSHB^Z2`CWfF_C=GK?rpAwkpB1cVd;UH1l`O_c8R zSD{)osMZ1fb~d1I^|i!o_Ltt*k|cU0?bvjMT=EiK)&VBbQ)c2AN%Tkz#bu=>$%I6g z*zyuxlq9-;!b@~-ZXk&sNjxOFM4p%Ek!;68PLCorlj2-nqKohn9m=GjT{IDFnuV9> zk;rZ=gGqGd4$+82k4lC(RxE_2v<_;eF)xu`qALFg;jcOzVI97*)V9E@wJDr z-Zr&sUtwW2ok3|~HJu4`g8f{zT(%+{HH%qTPbX&&XB5i(bEX(HzzSg1a zmwhN}+vH6=8pWQ&Xq$Y~hIzEE7R{t}fV!OxQ2&=s!O-qocg!;^`!{z6%oMF$6-F{n zLpv|yG|y}@&fBwk=PS0@oHH3m$z(knxhwQC&IX~9aefWi%Q($7OU7xT&dWHnAU7H3 zSBE9zqSfI@#%V;y`mJ9d_A*WbI`-%z<3yQ^vuC`FGcVC5|L_;=>fo!BDNf8adn4#2Q%0^{b z*o!9+e34-_ZW9Y$&Kie#xP7r_%qp6VAl}QF_DuOfoA!oyFK1ANL7RUj8nofi#ShvV zji4oJ{h*CZG!ELl5Hz>aWVx|CpCi&*hizZ-VVn1JhPc~?pEJZ_i)PX~Y}?L;ZLN;Z zwvTniw1!cVX~?-~MGiS<=0TEkHUw*wb12VV&WZ4HPWrT$b5QsHXyE4MoDJP1=L+R%!N6LFZvT-( zH*e?SrIngm6V)_yYn4{p{m`w|+ga<-t#RmfGV@nqQlCO;P$WP*HAWbie_Iip?m zJ=5lXD8oD;D`q-jz|YqkvOVK`V~(%7LEtqYgA+|YAfzE%hApjp<&kgIrR>ar%?H>Q zGIhni>%j9EgQoDK!Dn*uSCr_Q- zx3dvptIw?MV?@Yz$GrGVv+>=;C%nVNC$5@Ie9EmOdH1buY%5`JC?ro0f07la_~&V-;c=!Kw{hOI(yyZ#JPqM73*?@T$N`6)SA&cg68 z5Eq4+eB@v`tM3{UEPpr|HB{dm`O>BZ+jr*iQ)9kaGu{=lIatnM3tO3svVwy3=WqV$zOqs+ycsuVwP%9HogOqspwX4|~rH((JY7thgs=J(lLw%HB@ zefP|Ql!kW-orU|@6IpqMBT&&~`BtaJEW#%y%A7(+_xTL+aATgy|37RFEMs!MSk4Y` zika3IqRojCU*D}Zw=*K@lah_1*oaOevx{;o?eCXABa1>jFCDjUm-5+C|D``8?904< z*SkuVU?;jhi)&wPCj+ojd`Ypx#>NtUvXvUsnlf!#zb+@wnAUx-<61}mv;{R7{~cPKaev82|A{310z+?k z!xqJCHec3NXTd|Ibw2OvLH^UE*J!~bC4cauV4~5T1e#B8lyOfGqj&vnW^5LgmA6U% zL`L2uEE;CBe9R(n_-*rK`t-2n!S1t+>0wXMWnowev03Gt9jZ{4il>sg(Vou6ZTdi; z^yY)Ak_}8t(9x|}DoqAwF#b!yDDp5+jWUSdN-BcSXcM=nlw@f1sCn$p#^upl9G9!? zyAkJBEqY4g(>`#JwZyzDeUvtfIS=6z6J_b+=Cd(VIlhN%IW;#RmU;Q&jmnhMu*Vl3 z{@PdztxDkbtpt8SPP8)m?6A3F$fS|KXklUsSv6Bl?PaxC8ubo1qdAPtN?GHJ!@4TN zR^RjF>z?^(`N)^vmywocJ;{QtS0&So#Z4?{YSGLxGCxWqpgn<+HB;XN>2teAAl{?< z{oMEVG4;`?WVR~wFim+6Y*pw#U!mWoQr9RnT1BTswv>tgP$kGdhR4hjIw}L7*6-s{ z2}l~WEUimHG$d`}7%Ji2_GdI;O~@W6!?-??FkzL>dyP=ch0XMSLkI49k$(CBYZ^i2 z3HgKf-*qw-lv!lHU1T3(*Lv4hl+9$=Rj5|gZ2MNtTD_pP&b2fef|y5Un^QB zOA5@?!ldle<@&N3Ov*l$iu2Kgl;vy`XiB*5OxSl+A}h#5T-vujR40$6*|cU)HOr;% z!SDq!U1Kckw*s(I;fWloyiqyy^TM70ZE^G8MDcUPUcg{96730Kl$?l@pM26jMj^uU z&J-q)`uqvs&XS^UUy4b1Z)F6E!RlU9+>`d57S#HrJ*2I6Rx5cqurSAxdCeTA?0a{( zTIGXu_B6R*JWf?<7kM;~kY^^c!3^^9T()mjNxRrRQEOJ61m&0=^cS<(kunXe^s{oXt!PxA%o|wDS-66iyxS$z*s znX*@rWc5oAn*okyMMb3&HpId$yxplmQWkMz6RBCgfY(A|w9d&;rmvFvzH6lK*krj@j!j*W7Nec>1=YqB z7Snf38}dq!ZQwV3$8>;3eaCbf={q94zN0yQ(|0UE({~h+={q94z5^BMJ5YH>|EwpQ zc2UrGq{o=PL(Ha!B=qS|ukR=*(s%T67O(I4588-C+qUa#~W zKl|IL??_!TeaG~s&((KYO{o4OOsKrucdxamQJIQjYlfz^&^&yQ+PT+SEXcGLnvB<4 zOl9y|i{db?#ae!@ptVRFF|9?G)lw<9U=-TC-nUZ%LDcs#G_gig{^_g07a6j zlQ^Y7x>D-6zDgw`L3;I`5;O4>>ygnD%x0(-Eg~gjaf@id6k3kfO;~HLMMOpmsBxK2 zWq7yDc91JkequwE%^Rfk{f%_3s#3P0M)2Y=GfQaYA4WEhq9pG#LOVVZ=? zeBW0qzYu6(xb1^dwfc*3YLh1jO4yRJZ6AqaoR!jihzMUJqIi$I8R|s3kx{m~p$ZdW zPblJ)eVPXi#O9J{OQdCQn6{kO1Pl?QHANYKbEma`n4H+1N&&~h81O|IWo;EonWsIA z%Bnop#?j>z4gDmk31SMvTLvO)1QHU1JymiFBosHO=InC2{F7Yqg6Wt@u+z-Ml zZeujKF`dYFY@HK)qKp1TbHifFu4E8W(apB+(MMo1P7!(mXdA}70JI?_tTF15k<6qS zb1Rb62+3AbQS-(n8_9@D!8?5~W)07}kfM?`s>L3eszyN!OC>Kb>aS~&;NjWzcg~eY)CB$0dnsw)6El?Uq zi%9UMSX+j|fG@fzMv|yirRA->38~eRTo$j1HA{3WO3d6}g(6jWk624w+5j73iCDt~ z#D+XI__S~-AEoav#%We@zl@+wI9R|TJ1Cb$%eh4@v~s8Ij5{@Rl;%4|D|fOU^#7SV z$qOgl+`DFxiLgx#!S_UAYoUcrNa?ip^(HyM^aRV2Z~-pb7w!C~oiO5!p1>K4__IZX zlNMM~G*ed3cmUSG{tVA;<)Sm&WFfV6vQ46fz8;Vip4aKf9u53|Xt^9dAeZXne_iZ}DDAs(_DH}EC%$JsZEnK^@ z6mL$}bGBa~AH?G-yr_tFCR;z?&B+4NvhdX=!Kyw&0M|Z;e~b6qD$lkvdDhIkSF1exw~}Y9%fu559ujgF z1i_4hTz4==kRKtFF+H!7DQ>`p`J7dAkoIka);D0L?Y!=b#vo?7w z6&=M~T0451soB^95oDW7<>JE#t=$@xV-Cn))F$&tk_36e_FhGtfg$04?bab zWv0Jts9>tU4O@(l=k@(t|c;HYLhTM-{6kI=qpjEd0qDb1KqZps-ks zE@GipcmkU^&74?7O2*n&|+;%Jw1|fgUTnvk(3OxMR~3!3VR%JLfH|aSHm7N z`Z9<5XgYEjtvv`B?Xir@Ra4u!Qz}zgw5hG=g<1Fs)5Pr zv=$ZOX6`7y9LILnW_YM$E2XqLa&1}l{KV&)#IRyiNg63L!Lh4mf@8ZSL}9sU>DGD^ zMOg)Ee#l!jM%GJOWsomhj6!`L{o=GYx0Jt#p{<_m6l&_ZCYDZ6t>)|oeZKH z>#_xBYLzOH0`MOpRoFG6Pm$zok=Snlqn(&{2wUfsCps?MBC!+>TO`(w1`)WQEd)vS z7w*%VfgZLN;undvWx&!f8~vOXiE#s~+mxDluhd$v-DbK(QsY-!mdu^$^SO=uam zyX-^rdeGc{tDpMPd|`{kb558xeP*9I)22*6zF(Kgvu2&tr+4pDPC2FKlw{3`Gmh&W z&*$^K?P{0m+5d;VciWNUy0Wfcr9j_w13FaXIStDLMgFGnO2TyU9y*f9)qPWVrRpm|xeKpT^=>n!rFP9}0eleE zx;e`r8cI~}ma5(@HIWZK&d}|>WfWAXOj$eAz+m+5P}RH5IH=xjUPAQlVvei|qZq7e z>X1b};Zo7OrK)*LQ3Zrr9?m`z*8@2k&D+t3=KU3~!T20+CcEhRG%U^kWOim1-X3?bBjt{T1zbeFeO-Bs37v*uizs0i&EOnH1Uol?$qrnF3+-Oca7bomaf|NYs=fBXYX z=J}^D{`1ABpMCZGn^!sZ3l98#`s5k!%>VW0`&IwqhqYn*7vuOpfAiI=mmo>MeE#CU zzx(tr&;RS2Kfiqb?C#}vFP?w;*`J=j`tn=ezZcIx|N8k~UcsJh5qJ0P=byiP{wf1L zZ5j8w|DZgbv6<7wVNB-fVPAav^=BUQ@#Vx{eu1eUymrr&Mf&28e|S2M)vT{QI?MjrJ*RO#e)+$Q z#(#GaPp=b9tNZ(V5Bob}>GFxaXRq4oJ$cnGi@xBy@|Rzw;5ojQ%3U2MQZ)OK&ka$% zOKmg)JVfffLRtL$SZaftqvvebqta78YWb%kLjpdp06tN;#F6=4QHs1B)fy;@)x37v z=dszWpbhF?2_$iwpn+sEb^>KGpR+n3hsRJWLdqFkqSroC5&rct>2$M_I>LY41E!VZ z?Tf^3KVK~>b1Srm}8$oayh`D_E(HWLvY+4qFv!Cd>a zQZc;I5%+|Oc=eVlXmfLl-%GKx_>g|0@Ooc3%4MMzu1H>|xr`LMft2eh1?|zD{UGeW z!tZO!Nbxq0gQJ?qu^``gQbg*RWh#l=Ma{~GJr|Lhyq6+Ui58Jcg{f>q$y5$GXJ#r6 z6{ZqLs;neQ>TY^m#VmkY>7xi2VWVjZs^}rq+KD5wiH;^?C+%x`#wa4qF!G0tTt?y5 zr10r7wA7f_U=*3IjG}~$B9x3`?3>RhqhJ`da~}b!ZaV0cIavr>#wa@oV=SnXLhk6;hAqZmt$AgYp|M6ocr7^R zxIW%2C`)L0mJn9ens^%HBjc9kdaX01ZjNE1fmD7OO89`+@YSpJT6pM<@zBd+szob% z*R(QfV)ZMuCU(Y&#W4;?NKLG`u#kHCi9Sl1H7SvrSgF>;N*!^Zff(Q!b4_djZjmUH z9!$~W=nD-4YE7)({M5v@6ruNt6waA! zLTIaj+C6BmH-bQ1Ldm*&&DRF;IvcGg2~t6{cRkF+xVxzh^?F>8u=boh!{KyH@CtjW zNq6>X29pZ66Dz@7DVt)`Kr@iSbeKlljHac>e6Z#zxLOjF$7&Nm;h)0oAhl}L@@Nx3 zHXG_aQtes-BtbmbZW7#~6#nmEpJ9Y}Mv%QNhgpmH)4CY38?z~~w8w0kT*)Ny!*{m$;K#fHe;nKB@)1j@cimPWEJg{EGu~1gCCi$Otzd|s zDEfkq7%$ye`)ZNZl2^+NQF=wQ)LJm6MUfs+idQSIOOK3W&(ljV;zOvTR|)dlnacID z&9W&FQ8UgiS4`uV19@X$uXXsm_^ZG*0F1HH@0ConwCPLl>dXxTl>8cZLTv=^$Weit z)WS@M6cC|vTc!bckxhNBlmce63*?lVyTd(PJ;=oec3VEM&1JRJVy`vGu-I#679AqK zLn*$SEkBFzK))!yM~~==+JNgSfj9BO4e=f5ZKU={hE;s0WrfatQRar2UztW2@onfA za)@s;SJf1PI}BL`VoHjm;yXmdw^YS07Pz%R<}r!Z(dw;_o7>5Zt51B^rcd_5SgpGg_Zr$Ei&(+TbODW z-Qt+HY+O4F0Txf7t>I}j6e){r zQb&^_o511*(@?fdo(Qm4-ZiUKw2@*OdZN~3bbxG{*YeH6_qU4gt<249?TD((02ow% zA(V=i1s4ohGRrX~RPoo0bi1 zvjikNP3kG~h-iYM&R9gk(~(4D_n?Z|5jLYB}gTf#=@hQX!?HmM4>P*#r)$94o; zU3I27%cry#)@IEWtXC&)1X~MnD%fHvBfNrh)auc~U12~5?J9yT*&*7{E3RL`W&@21 zw$#%p*xHq;f~^iksz*aaut`<0g;KCtrI0sGD@C8a`9Dl?e1?B5Hx23?=kr8Cjtx zBYE`ZR(@bV1v*D73wJ65D|*(g8!Gf5K3*3_;|Hh z0}&DE$+S6&w>lNhg`SM47J4#-N#ezs4D@6~u+Wng!LeDjExG-S8xh>L%(}_blsGt( zsb5bmb~OM)yJIciEFga?%P%F)!Dy_>RvgF#3Mm3>Ygvzr z0f{D&3KDT8iIi%Y1qU)zaUiw#f&+Q4G$MC@077a>2R>fV$6PBokm_d#HzoEE9LT6( zo*3a39LVfs{Hw)YBAYiB*}P~nyI6k2+>CkMd}I^J0vC^9Q&p~DQ_n4?@=37i<&0np z5y6&lP6S&h1zRC42Bxx>k%BF0K*dznl8RvSsu67Uqzz2v7+PW~XK%!agDBXVRit3k zEmlnBlVGzVY+x$GIg6?MM6e~KqhJdW!6r2@m8BGH=_jTTZ%cXwo8wlnrOq#cEg>M} zS-F1%TU>B%n%DA**DmoyoXDy-PwIGm3avpKkQm7_QXivj7$KE+DiC}5GgRm!l@)(QMY>ISY^;aNQ`{%c;uh}h~zN_b<+ z*^~)K>hAemBCZoojMUA}Me5$X<+mUm;Io0HzN<(F6fnn0S$AP%pyhM%KC+EgExM!t zLS|!7@vyy094V9zb)?k1JC77_k28)qiaN{@cUIGAQ$iN!VLV)>AGk9dD#xdvjDwV5 z+_sn@F$l(FvzfhSp&TtUT02Crr008}-f?$eHhvi3vpkYGb^gm-#Ed1Uu`qupgiq zy)N|lp45J97G#SB*#fz9iEM#bGJ`T~JV~5VI3&aQEz)=*mJ%RSEQN?zN*pUZWtrKXJ_T2wHCjztUvVt2&WsQ@Z3wYbJ&Co@-V1vOw@>_ z1p5?AAtIKfDwaYimSQR^^fQE0Jk9@#UoW=bkK2AvBxO=9BQrxqW=4(=B=&;$>d$Px=ywUZEj|(YZXzV+?Y}+hCtA^j82`_I4ajcKgp)H#&KI( zx3!WkH75?7hSYYadFWoKtI01hq#KJNEodf-E%F*$B&E}GIq(PZWJpmp z9F-kry`625Fze(@z$aHBV4W~{-9+tU7KagaIX!1)*6|+6tR20~+K7`Beas9RK~ZU> zEAG_CYz(#0Iq&FTGC`GDhmu*3g!&4S3>9Xb7#DYO#qSnf{>OFskt4^u(DsyS=%pe_ zl0mmflAG7i7eteHT|=i^8tha!*eR|XwcykT?J0GfMuCh7tp-2f)(4>eN?1P?DtXhT z$mAX81UYaN8gYg-N+JxBy{5Cq!pyCK+9MER+jg!S_=KsU61K3#R5bmd6gXjiW>$)z z^Ef9mDgz0Pc)FK2GyLC5J71-a2YCgqhARoK;KL>n>0k|p!i#k^`9(XwE$w`}U{@^K z`D?WE(HUMwZF*=l;MBl`QIDF6!Kjn@BBKrwMlDrF9ZE($(wD`Z%0S}2PS)I%Q5%0Q zqi&ipjCwt?v5F8b!wRDg=L(~i5{8!KD=8Uu&ncsJpfKtpU#+is-J+TQxMtp*<4BR_ z94keVOcf~-YLOzhu9}RBKCg1(eZiHI!l!Czf9^5vI?S zGrDr%O2NHi`oEQSULFeP9911>>daT6t|q@|=QpOEFO~O;cK$l;d`=~$`<2>xn03M8 zVAgZXhN8745-PI}5oVnlurO<>FzW$TI+(RX$(h@!terq8ftu#R&~O@*@>BXDX5;SmBE# zxp@u!qMF?AJ1xRO@Lld>YVW2XMGM2X0}*QYR(Ja{lEmijh1@krmwr?xa__}BNNh}u zgH679sI3LZZFiOgI8LOSmBF?#-p(3RFS9d{2HA`6Ovj_E*j)*d>K;N(W*&xG(bG7n zzo3SYO1J-j>YEKdTYi8Enf#^RYvpfCfDXhGt-;xTurELeK8T0ZzXE)j?Vvc!MR#Sf(%0@CiS?nnpr9x86i9KjUMd@RF4vrf?+AMX=AxhD4Z(Hl#{o5y4h$V zC7s-CG+m+z`PtOw%sFmln!G26aJ+|5c2f%hY6)RZS22%j#c;+@+nO2|I4c5{^Znhv zkX>HeC(mjAFwC3zF8AqO>OYoX)vb=g18xv@m3L-q!oTh5{B0{SDSBA?jHK{C517;4 zeNIUV-j39mEVjhsD(?i;%Cd-Y+?2)P^b(@Mgz|Y$g{U4xu9i(e&G4SOs7Kyx1IxbC zxTbn72)Y$}2`E5jT)A=N)|x?2FX7cfc~6uixKq4Vmo2YVz*>bL9cy&8l8eTEV;cKq z#q`p3;T`O{;FoN)j7Iezh*WI4wrIjzWC6e1qw-2f2b?yg1ZwWt?#C7I$#a*uS zwV(^TzA<)vS!%mL_dhNG7aG-3@FD{!kc|ugKR+@6lSdhF&|slGqaw7xOgMU;8EIyLg_(*6J zJp_~w07->}*i=BF$wxquzOR775fuR?RG$_}GG-J|Vq`@?r5ynql2)pKO7XPgN467nQuR)&Zf!0Ou`- zD0I%+Rv)}=cw;Ear)-3m?Ot_ALcHw|?!leFCM*9PVMEfLL;Bn9vr<^b=wMQt_VDQO zX3}jKBPn%`+T=Pf^q6hAbkCS4 zy5}kqD7M{$f;}I+!$!~P@iIAF2&{EZ7>*}2MkzS4_r0HDvEx>NzF(uYL+o(~aU$p|w%7WYsn<_Ua| z+s+hwS%~ak9p)ofyb3+?3B_Jt-@ryG=i>vzEA+5dSj0c1%PrJO*g}HhyrDMfnRuZ> zIQfTAo1?*UchYADUlkS%7NX0ZMkDx2!75^}M6dOPN`8FyLOrg`e%e8;oYGE5)l@Gk zUzUW|dI*(=9clv62rrw@PbGsvpmdo!EWe9k^xZ8ZNNg{vVXe#IHJs2%cvbM{<4R7% zAf63Pc3sIbdrWJ8<*JVo^4T6bxNm|1yl{>+7`CFQ4BOKBFl=2WkY(86eGU{N3_Fw` zP8lP~AePsAPSQcx>`*vxh&VF3MA`3|+8EZ{c$m}>dQclZ#%vs6O4hpl^j{l>w&{Wv{ed5~@W+-Y=!;2JDIMaH23s9$nKvMJSOQCGZE1=RJ6j>h0t0_lW2j8R| zfFLAsHmH?aOexZwQRAH1%243iZhI44A$89Z4;!n*&lIqfFc-J2H3Zi=mnc*eEM@K* z^)3z1BpzJpY_Q^D*BF@6(HoPh6vKYmPQRKK;iW1!a!YXf`RbG@OF0AtXV3k;Urhc@2YbdnM zAz!hP`}!s-BXCcVJKAz--)eHg+iLj;gHe9NXJQz)|Qri(_VFhRH$vTZstPYHw^Gm&CWTt3jr zW$APKR$UWzUoVEF4)IcI&ZTVM8hn(|eO>95R_ke8mJ}EhXxx;vm$`jwn!}kt5h6Ny zD4p%yrr2x~@wt6#vKEgV*X5}>+05R=^*dtL6@CqLTRpwHz=88?eeN`Bwb#2H8n>Ed2^1^b7)wZEe`x>MPMU5`623gYORox;zpo;8F4RPmYG4Up- z&rlojzuV61`9yA6OezMWpIaA!;eoK5YM5X#`VZs;^SihNE3pteq6ZE`KUNstM}<!$uF|Xwnue@@MEmrK$wPFF6j?A;wL6V)*P9Yd{2RkCvFWNQp$fo*X%uCPrrBwuwk#I!(e*n1 zJh%rQOJXYgT1+CbQr3jPz3Ra$C8TF#isRqq2y?&eIxZ0wBwHjm5@>Ti>2ZFS|n}Sh69s{LdK}y z41Rs|XoCQ{ClWkKXlX478d(?l<%%e7ZfF@_cByqY*m9`xAk$0Mh_Qm^ikOHdMIzeR zMjDykyOAB7>@I?W=9($KqU=lI;6U4#vY?>ntXguIp;q{0nurF$UEs}g6F0(|N{zW` zE!1H{w;nd)ropA?863AI^#+}lyCGEuw+mBD*)$t4+qU=2XqRmBJa0@k%Q~2lz8+g=a!0%ZIxeLs)@GHZwp|qTX)UW=(%;DZ z34!%z(v6P^pHX*C=6Nfw=)~t4Ti-t3i~zp!TNu?7k*t{POID0sl1Da_4|2uhu`KjM zmGTlgr$Tx0?pz}*M{s#PLPth#&GYFEL8MqHn=tddalQvq5M6#P0h5Ozn@gTzNfT%` zSx5-7j{RJquAa)m-*1e+UsR|!*YxKx?;p+Vt-k4NT8MwBk?lG%d#k#_TS6qQFVsf& zORIWMR8optC(H?R6>u|zHvuAH`1pJk6c4-T$6k9E6%%TAky5yeLdsAfa_vw_q|4VY z21ydznn)MM@33+Jd_)ZGb-8FOl56omV`C;9A#8hO3_@mugWpRt4q{XKLrgP5^=rj8Y54=a_IFbd#mE*n_2AZVPj z79_`kLgX6`rN?&^Af2f4kEoRLk3$r)F%A`Oy-;C~!#`$~6VRctb9W3k80YNGQB8S6 zl2ui%vdQl{1UEj;DE~;M+m2!V<_O!$Ke#UZqjM?$aDws=f5Shr0c0JrubIbmqP$Kw z>9Rhnqb`*m0G|t=wBgehIIxxyW{#;EN3}^Y6pBfH6N=-e&|n-I!q{*Q-yV`uZQ>Og z29Qnteb|fBXB~GeY&5|j zHkq`eRT@ZwG<`R|WJa-L6eoEk?ZEPqwDTl=C_FDoJ2Jl}?MO9gClvg78?D-V4T77u zU({t*gxYd%zeziA{v_>KiYCFlnOim~F+A!=IQVa*$(r)Q1e1=k@nMgY7ub7KUQ##S zl$WfO?vmVPJSaXL(>T{feCTn>U`fggPuuYb^7>ksR#Pf+HtDCj9E5rzzXhLC4r|Jb zlR}pET8dXH567lVxG68Zlb*P-?02NRcp~FpE%##M-z2nE(`|R$2pTBtd z)wkb#@@)FZe67!(fBy21f8fODpT79d7oUFi)$?y&-F@}hC(pi^p51*vee&%7+1>y3 z=lfOv;)j{D{flw@pTGI))yq$w{m;wiFaGG`WK zzh%4^&p-eA`CndfN!8T5Z$JP1&d&(rvn}3CO z@z=Pw`Bgm5+>aWE%}2-Md|!CA#us+l@s8Ztcr7X22avCClwf4w?AR2S zyad-CXGGg~7+mt1F_yV%?03&!eD&>TA4Q`)-P0UlYp4yMlYVL}`ZHC{{K){5>gIU> z5)CFSAd_kQ4J1-C0NV$~|Pcy*r+OKR*53to|B_1Z;BXuo}HzZOPnk3{3~0qfXqB z+rR+PZXTzs%|vma5F_d|jJ<5);^U0Wha?*xf98DUn5nUcg>n}&==Wb@j(qa$cjN6) zzQaikFRx^>Fw*IMze2Bh_2ScSUVi@Vi@$#I?604`dhylw|E4v3_u>6Vq)*-5-(emi zM+tghs~%y?q>lgl-wWG5UF8cXiVAFo2)3_%1Q%6d`TBwU2{S=Nz&*kw9GN##&S8yE zetFBnQ#QDbvd4tO9!?T-USN0%c^~B|5^yS+sN~~xFBk3Zve9uCbAa7A*q|6+7RN?J zhbM+)8hqn%Opn=hL?_+LNd1hZrx`Cup)eQu46s#w4nO<=`20TFz+?CqZZm-;x5Xa8 zC;cIqCLi&!UOfQ*e$6*vVZskM--RUTOw_$T|LW_n@#MVt`rm%{#Xh6`;LHo2d7upD zr`!sFeNS&?O=BLC1^@n?9AA4U7a6nh#={rnT6|DaG}7ehOY!9V%IL`Mdt!p(ihzC+ z6$J;Bh)Yx=qAE_kbtna}1?26#{8G&WJR17?iz0(UB6VR~w)h)xa^A9Mz{l9z`bqgFX*GMec(0 z^+X)JQSP3_0azswyHq9%TXMYq6sG&vzCq^X{k=E(>h=H8sXzTzrXGDQeoWzc!{tyq zP&CR2;_SK@vcaUkcY1Y}H=O=@foO>Q2SZ*mgNsT0V>|$OzXil;XFZb*G+t^k29(Ie~?cuiaEvg;;uW-}C0>-%50^`bl_&BCTcOlsZ}wsm{A1b ztRu^he0z>dg4y52|0Tkdyx+BodzL`TlfVw2af87OivV;z4HWu|;`0w<2mkC0W3Sfq zTdzN|lETGqJoUx%aqjvk5I_J+y8G19subH$lWlcM2lMD}5*qC0r z3*vt9DbQrjhlz6KL-4_1IHixO-hgIgtbkZeYQ}2I+J(v`)28lBxtB38E%2fe@Kq~W z2X-sf0|o#ypF{#PMX9TMUQ!5tVp#8eVSE=37dQ+rE9TFVLhx3m5Rk}Z`IY85NwBcm zz2#?95hf=j5v5OTM6NtqyS1laD8IPp9wd^wBmperd^CNb<n`roN>@18UyVGteEfPivLuRJ@MS% zDlLMA)-XEY{b<$2!31-{^lY;$NcUptT}^*spEt%nFFdI@NXEx``ZiGn_H^|+f0rNf zb@^T9*Y8py-=&1#WsV(RrFsP41hI19|-fEUn>(Nj)HuL zK&^8|Y#LFb76jmKR#yo?_G)4dQglziuOLN4Jm>6F7M~EC5Z@&<#!Hc2+744kJOh}L zoZK*-U}Y?u#bb;p@fZx!Y;tMFaiEStb8?BKvSyPec(-v`N*$ieCSU@sa`0ret@LZp z9kdRgZQH3Lv3H%v7>IA5qN{Vohu;#w# zkgX3v%CLUgyro>vTW z!01B&vhBwa=n_Jz(x2EzNecDim_Sy2KV zhx`?)1*2+5vk@J#JTwHrGH>Q%A6x@O2O8_Q^^P1rVcdErPAuII`XVnKcfFQjc`oEj9Hjqld#}nv~+EgyN=@;-(Z512-i{RoqNg z5-VHimt2BoJwxySd3idnjSQ7l>1e39DHV@zwkhR=&varHeqy#bak9QjG~FTMhPY_A ztuKUZo}S{S#E*)bpJq8wewdZ9o54DA>_mlGXIt7I#BDQrBA7-KNkFDi2)s5f4Z>mM zMfE`A#h#pBxGHsm+?rR=*L)%>hCEgloR@GgW+M^Ggt;X{L_(b(JeX9_Bm01dup+D=Uq%Dyg+|d7R)P5pLVay1=zujI6ia z$XcmRrmC8dmZHkE7{RMjRUIr1KKkLEo`!cC4iz?sTP%Ch2BE&}R#dAYTil#6Q&9~b z8k=@<9It3Kw7KVD;bt)EwMj+wNkXL$lbn8C8%e7~d^p=6tQCf-sNNW(Oht8l-UjG~ z&l{A9;nv3e9-ntBs&#|6qB<1LIbhVhb?!3=Ufz1fbu}JxtyWYkPE$Ue3`i@giBNXa zX&tZl-`iu{M7_7#nLf|VnF?suQ;}^^bel%DQrcAsOV3@Jp_`}UCa}1}{DX}h6M~aP z?9O<@-|jW)d1q+>i*eDcs1`dL5y1(OOd6)ibxK8bu9b>vbGx%C6OQ?+J2j=)TI{W; z&Q8X^TJFUFxiJIeBFFEYHb6)ufC;JB%kRR76LWwWk)t^H6M2bHy!RzUw+JO?dn^UB zL+=k~l>>grU}44n+K`5B^iXo*Tv0Acr}`5oo~mjSS5!xgrX7gFsNsI4!M0e1!^4Tm zb#N2ou2n+Ai35+|H9<%}&10>TO+itD`2u0drf}j?+}1jI|8nB=!;uqb+;HMtE1bCA z4r8Jk0l~JYTg6TDI$p7cD^C2A_5OJNf)e3#3EvC=iF}h5r6+zEFQQDcbCPdnEwgDT z=JL(StPxL+t1(Cv@z{BZ5OU30RdUTq8%X9y7PW*Ul#$L?l50*v8p$>3^E-}83!<>w zL`Hp8(%E;xq4@c=;qOTj2^ADi+%}7n{?;q$$;HN}VZnm@-^4w6C&WH1mRb)J1=&Pu zcz(@qOcEQ_M%i-&`L_ojt+|W$gd~ZKcr;sLl}=?)v^`N+Kt*}W;mKroh!Uc@HM!mF z$x>W7$7e1X!ue%X38K`=rjy2vquBw4OIqCQruz!C_nTxz9Uh(jr zxXqzFj5ESdh97>f-d$dU(_CgF|Cwg4nqs3I50p&# zPYL-?sPLasTt3HVMj66sp6-DUIN3pNgl`WHisPMu-L?`eDd!d|kKsyqH=%MjrDWrw$9OEi}GX~AQT%(F^O@`m|KP_YaB}cn_1&;r)CD}uFNxC<7Ky*&B5L+ z-3xU!{Y81aG3D{1M(>^W&8{r*4~L=Jzm)JM+0;n>_=XcrF=QhdRf2HI;4y@jR3X_$^yLX>Stmdy1Vo5HKqO2jXUR4>%Q$DuDnmK_(|ufh znm<$Nnv#_5*FRab9*$5-KG3}jAGmpSYAIPuMQ^jM#Tt3L^RCmR%0e})*jZ(1$r|ZB zqhxK=q9hA|3YGlYTUWv|mZSw(*fNe!0a{DeSb&tmSrtPw5OpgPkw*9)zuO$XkHXek zHNrX#;M+_&)SgnDM)xhw8Ry92I*>Iyr~7y_v-|DTs0PX5)^oT#o;RcK=aMyy?W^f8 zYSfLXQLiakBS4C#fc|0ZPdy|---IIV#7NXPIe%nZmQX~8Iv!J7BYZ3-IX;ligr`b*9cr6x7x97bWVpl&ItTQ>c`F zMD;}tH*s?O+%oe1hS#Slf_&N~QLHWy^D_CBUY{9S>?Krqgt|o=T7eBdJ z1k+qP99uKEr5J!;;MlNxx3PM++tmjcvHp->ORJ~V z2NQim@wY*wzHZBJ{YsR=QL%_lbj&Y}^SXhAv`w}YDV`)<%M^e|#}+n00LK!j^02}m zf(c!5t=~{5qK=;ePu9%4gh-fDV$EujVou+>=>sZ2Ot+>&5{`}KPE3L02s-Rc*wB>s z#MHd7Ar_K3CRLtjh*LloNdf0z_EE)|vl)(Y8J`8DL{pe?AoxB2$5&OA zl_coFuma9IQ>P4ZB?uNh?Z))9_otpC@FFmYhZXtvGOiV`xQxqa9KX~)ofwxPbG>i; z$hiCs;|c-evH)u^F1r@UxQwUzOX^rRJQ9L)gWWSYo39QRo?MH%44IZi13${MeyXOm zl3U7QtP%-_nQS4!7J58|!%XDq!eOicl*6RzL=Kb61~|+lI)xmjI2YEN$XMVoNzIVM zOerk0@*!1ca+p*@Sf1|Lau_@4$zd!>hr>)jc$CAi0%0hbpd2PsUO3Fn>win_!#kz_ z1-u5l3_jq1>8FG^xP9=0CcN6E#EdTkAtE=`sg{lH3(b+!E|prt03Ert!;Q8l$pSzO zD-wk4Fr!Q3bQC@BM$t3Iumc}pv5juh(S>6Tx=`yD=Uf0b;kd&&XZA0eCyBC*npzC{ z-!aox*1;7iW6SA~kE`Ym!|RJceJtw8Do_xBTg&$uNu??&XUVxrma+XV)=4R*ybpw? z44KG{^>qeU=iIc(gtdft*sbb?jZXk+lSvY_1&rNmsGoVO#|^@x7vm^UojhJQqQrgN zh-Q6Y`*-Ia<9|Eco9#lgQF*sjO-9}$ez=(H%<_V??SjXx*^D@3RzN!fl8VQ`-9(Eb z&>*=nZd3%LJ-womz-wITN@IL`l<<@&lNnu9>4Ohh1(@hAMUClJ?WR0AK%A_>W*<=@ z9Nuhn68U3TOv+#iPi-oTYv~U$(DfeD_iJ+)cMIY%m#LPG}n}{TrU$u zYJi&MOl9G&owB6}PD~#EfP%-PLMU58MYe=ewyf>rz;af$1dCAFl93}@ip8a0IT_ZK zE#amLlGQ9x3PF-hW^4O^B3o8zlY?woRR#Dl+4573rIuYQ2};TKBhKZtT7_Z0gT*5W zs4908i-0``r6gz>xRPK}fGY{Wl5+Ax5(J$LLC_L%9$;PIJe9};qyUwkIbJD{N+P8| z%8eogqLoAn&>w|il>#f@5T!uiTOtKIaiqZMt`;e9(}+*Ui)xvjZ|7u$sT8mCPPI54 zw$Kw*Nnoy98@OS?qdv1yK$>Zbk{IB?jV@U+e(-s)ccniTMtacAs8_(Rlnw2U)e(Hx z9W@`sxYWkOxO{#MOG&JK`9ti{K*P>Z#WD#dhC7s&G5y7D!&m4QX5g7ntBW(}NycWz zDdATdYQ@Jv2{k)G$w18tiwPJgoBd4D(BP1;WC_?I*U6?b>~Um5XAV$;F&kIYcpGsw z`+SuLjGkTbzozv}I2nxiVVi;%sK;IGBdA@`LFPVRKCtxpl5q5^@A*oh-rBjVO-zKE zI8!U~Kp(emvjtBYs03S(^$v6)%ss$ESPKQ6!#PxdMGoV!>d}E4)wSbb@H{pFs|cmR z_k{9N*)|>U`HaU74QhP)HlqVhG+rkI|Eb zQInfNxJo#stEE{K-WyYRFDhCVRtG}qJI?9=LTIUu83N%20^miD4fc?lP=MhEx~r~u zIE+cIcRrwf99h5Ig1`?0jFo8Os|B{OQDjgTZ-TVGGN^6 zF1SqSpBXpMOSx8{mjZ?%;!-?AfnM5J#w2xG%PT&)h>#~D{020=7~n%GZuZwwH6rv>Y*>f@y3MXMVXg9`gr+l zG>Gnr89TQajIu4ivVSZ;bKl13wQf)sZ5KmWlj>W{cJ$UXEmXTDk}6wPsf`;#YP1R* zr>ulSbD$83cZ8y)vwWVNp`!HdRPh67zsKFOQE%VZpa0rUjxtHFyqo8+)A$(I-K9}D z*WLN4Ir78Sj*njLkv`5+^l{wA5C+a4Fd>a#rnq|PSg+{#jj3S2{QWN zXA%cgdJZPi#stfN<1*TRpc}{yc& z2^&L%(k>eN<}>n@I1FAAhW)j;%GK+C_3e=@Jlj}CfNE_?NfKDZq96P}B^FV3O~@&}VEyW_mN>GIufw~A(*78S7y4>`&E}U#8x{$>OZVW> zUfL1T^F5G+x{B~Du?f!zhCzZ0#Dw=v)6wU&DWoAfatJbPFc9DZX)s+1V`Q8$_k4Gt z^n9Q1;mxe(*B0~Gc}Zj>3PMQO^|7$CR4O~O_lKnoi$ZW~3c*$J(5)#1H^p^+zJjyx zlP5aP@BV{KeoWzy|M&+hgYLfl{PUO3Uw!gydUo?&Qt0`;s6xMhDzr7;gg&Gv1N}vc z6g&(NDGPx=BqHT?tQLkAOW8Bbv54;@p~0MMNN*Fk`-TQvOhP!W?fM`dPHAo=AaXS= z!ri)=*}$Pa?ovN;PoAv9Br>=)(&g32PDE)V>W7in^hEWltypGG^>iPKHFZv)p530(7Q;F?26;F^;STr*e# z*8`zp)6E-Fq~^f&eFN8k!X$8Q_&h!<2m{xIj~cip4>5u3v1)JTg1^2yO5~dcvLPDC zmN1Z=dhij*z8`_?{!;tJGfyB}qJeC7C6G=2rUaF4#=#TFMo1)(?XSfj3ZKTWIsHs5 zf$Uocw3zNMsuE0vx~(`E?39%FvQt@Q*eOgW>=cW0W~WqKg`N5vb_!8;Dj_@N;IdQB z4m%yplO&Xxoq8w?*5;ElJ0*}EcIt1~sYKW*{Hp8}sDrRmEYdj-$Ps0y{Fa?Ugq`v$ zJLS;9PB~e2%3xuq@Bw})SjuMMxCT2VR&O2~yT!o7w3< z=Vu#?Qv9zl$`CNh_1?6FGD_x`j3273!yl8oC8G=xM(M6FN=1T72kp$N8(bG9PQjG?w*cV%>mhg?w#*OX^N?RuSY&d$qk8L9-MKZNp%c&?lqlNjfa zZW!lW=Ejsy_d^c#yOYhdayjDV0}pM^W`bR13E>PMg1I=dnIJ|s6Vzj~nV?2)(l{sj zxI>l5vS*loKAXwL!?0Tn{ZP$oa@(0=uNmygdm?RW}yu!17 z5pTG^j5jP{iO;@z{>>{qmY+TU{N*42@WtI%pMCP|i?9FhyDveKe;Ss!MSU+hTIw=b zMYyP{)u3X88Ym&_;%5bHM76I3Xe+cS(d%ZeS1797W@HiS+~hkdDIadpB{I4MzCAfJ z6vju2O2$rA23 zQy__u6XIT|s|hSIgByz(OczPf)?ZN(hIdNB8VcmHFA827>p%5U3p|HwhtCTC4qt$~ zOz5RxS+rq~-zu*g(?e92pxzD0W#xMmfKbHP#u;=78pH6Zq+o$h+oWMGhF_^yr&?o7 zi2Cc!5v(83a~O0*IjV)WP3i`639mfw{rz1~L_UmqVO)<%`eT8dzlk(T7-;OF!{0x9 z^nsM9d5v|#g_>|GOOV2v^nS-F>p5-^BB91mP31QHc&3`v?Y1O!Ytczo4bq}dQg^1B zq;9b~+=N!>IVN>qoRjKAhbobz?hGS0lHkV28M%hTaB$Y^iU(W=83e;x8zBiSmW7L$ z$86gWUL90df19Tj<>;IUE)_K>3Aai5mfJS{+eEIUe@i6r@FWpD32cU09Ck_nzIkhI zx=jD}4Sa`L)z9Z9sv28?C7Ql&FZKSU++GW9&$$b!Iojr zOBj|fPM-IR^Uq(3%RJ!_XRaX?mV)ScN+r>KFp{eYEUM0}sX7;l?&9qFsuNt{RYx8E zW$_9SSwmI8Ua6`O41hf@VBltufP0|H*IF|>U((><;%88A;td8AWE4qO!vZ?MjW|ry zb|i2}p@c}`O;P7^rzVi3K{eYpWEc~m9J$U3ulBeNo-z~IHv1s6+6LDEt!67mh;s%) zp3CMw_M#d{?c>OuRi3@vCjbr-QF*dSHWNa9t7nAGI1FPjETeBhAaOE8BV|1WE7Tst zBgRLJ_2jRrT8U(72vq|H0XL`#1DGPo>;XpMfyRdIFG74CIaLf=eOQs`Crxaek=zr04 zT}d$D(1N)E%31M?>j}iBWDa5|@4zZsRWsl5o;+|2^2XF&#muP@pzs%aj%vL2*Hdfa!ks( zu&q;Gkr%^EeJ1!q6IA9tkYr8339@Mtb*O*{03J5E-vW2$qMcR`CI7U3VZnb97l z7KL`1ldYO98{@;Dl^&@L}gFK!Yq9j?H|*Am+{`9@l=8*;FjJapX#^Q~zKH zM|=q7d_yQnTDUbNiBfPy1(vKA_QZUFd_Y*9<)Tl9)BIr=SRuz{8Z1UhM=!;3$3Bz{ zf5c^Re|Jog>catk!ti^<596mT&G3*Y`8jj%FJnD~$Z~}8erUh$V;Q#zSX}RZ-^^qd zWQRP@g6s^ljpLGr9e1e=I?ItwPB?`3RrMwFh0iiKkz`p8vz~o?$bKGQyAkH7jWw*C znP2A{!k2^UIM<)|1z3!yuTcb}Z`ZnSS6}3$dix@C#nTJAi_XJayH{-GMLsCIr4D^8 zd6B`r?u&dJEWKkM^@{l-ACu(+x6YR|o*6ScKfNnXeC2`R<*F1(daH6JM7(UJcI2uS zmOBn-?%v0;BLtrJR06ya#R-%d2*`Zoo{E6aiqlIVmQV!PRQdmu$kphn=Ha}#e!B!9 z9V6fSj!0Oq1%Uwa)}eweH;&6~cybA@#T$GGQaQJD(5L2QL*#0um>ew)^2&A2hiEz6 z$iC8=>lyycy(J}g+}k$6RZcJAy@l!mj(ZFE)L6-JZ!n;|Ful79T5hFR^X?7;1$%cv z;y$fIZpHg6;r%Ubyl=UU_cUG96Zrx1e*a1qXZrU={H6sp6e!kVWm<#z`1fQL2!Vvf ziQ*k4ks9Jb#S@-wsky0rH0Qp@L(Y&J{Vei4(i8@TcNtdWwp|s5aSr3j6w$CHVi|@C z!*`Pmzh{);GmP4=l8KO21Qcb;GW^b^3_ozsF!gA-GW={Xq-D!AWER^7#a+9J>kv3_ zB{G5?R+O_oi>vSRitP>?%J{!33GKuN6}uo+LT4&Wr6t_sD1CAdwZ51Fc9#rSg#P%11OTfhyfQ%T zPI@hP(Qyi$HlX>0LgW()h3)UV%}(FRU>8rS80ezvtO#)KjbS8EWBE{}V*icf0($Am zB^VDCS;mm^mmp$V{xTXdjnX@Zbdqfq55XOedBX(8&Rv}`Cnlic6ei&7$LPFICN})} zqg0@tp6ir17TX&2!(}{CrcCnky2kjh@pQO817?1umVr}9j5dF939%Cbo%3`MjR$&e z2#4cyX4Cj|FQ{Bh!-0#THUx&Li1O`gH7-R2Ea+{*$J50tGwNZv4bKhXaHsp7thnU^ zc>d{&|9tUjl0BN@LE-K9(d@;`Y^EY3;dilw-|9ScR z#eaYI>0h4z*EfHD`J7~$?_NCr^s_%bfA!_JtnY7^bhG~LZs&_{zy9pU>YAVA8GU^D zG+zI7w!IzJ-)A!(jDPW1V88FqbK&jsHT&1z$Upl;UXu(pS>(vee;0Z2`!9LZKY8{$ z`N`e)^CvTZM6X_a`pwJFzkTu7PoDkt(^oIP`u^WOobK-V$Iqk<3IpHV|NEtuUM=7? zSMWpqMXs>^ci+;Fzqriunyj>X&1Jc<&%gTmYrgmwU;o?hzS!pE*Br<6o*uV5UF74J z|I4NL?=E8abpn_MK=&T@cf{}IhjPKT{Gxm_XA!MR1=b;ZaUESP=Fc>@UTZ@wOgu{WFQ`8M8rsce#R@De&g@f2roqZO zl4Fz_lBuOShh(&0^<-<$4)fB$piXNo-ukgMfkUMYiB?^WtiW*uQRUPotc%pOO(4q z4ekzA?w&JF+?{6_?w$rg;qKb$gS*3A%H6Z#gS#sR!rdjx-Ju3|mkM|9GphF_wr{z+ z?*|=(t{Bo4ci$RXuj}h6QGdFgIYSFu2NCvXyS5TGNDoDvZ|t-+E_rhDvjhHh z27w13kaZdNV2p8-Dgfbpa#g#j(c0cK(pN4eNNsbk`xn6qWCw#ttxW=oRj^LP871Ai zb2jPlH}>Kcuny!#Ty#oRbZ64OzBa-%Gr<{ym`fL8P^qg$hBN0 zW(03bduH_niFCi{CbNe<>dm6z6hXM@=*iumR{F>fBrLMLJ~k}9$F-4Z`#n>qmRBjc zi3%$lGmG33f|8qg(+FVYxb$uFWFJI&MF+tt*C@q<<~2l?+TEGgP(h`Vq#ON!>}nm{ zL5(oig5Z&7Cz~?i9MxvfoM@_PJ4I(F<6k}e#ZbAiWNKm*fBeHKd=vY`nBronkb1*s z{#F|*X|7gjXittx!!UZKp~19DL+!ap!w`{%Qk90Gl!guXRT_qyC=DIA($MUMFxv@^hJcQU=S>`s0)asU2#j9@l^J>i2#k{%*1;UzzJC1T zHqB;L{Q(4qg3pP#NecwVZ-Kxh(h$%_h$cRfsO%!mtM+D@wODY}(pYbV2|n5w@^Y9a z=a!&9TD!v%E5=ysfSO@B7xWSI-!p+fp5Bt|fmgbqF)) zBjZeXE~&JK_@UXoSYEegd0mvTE|yp9t#>3uG0kSP$D)>Ay8rUz#UrRUaugIRl@Z=-y$423rJQ9p#-8XxyEI8KExBZS|jg9ZAyJ>R1&bgojG<_}EC6wY! zAp|`Lbs*IN*PJ0G)L)KwS8 z{UZ#1e0vl_WaGdBwD#f1b4i3P9?yhSj@oFA33{E4-8POW`!Z+$^>RET>t{A@ZP^@@Sk?9tHIprU)i{NSBjRq&H_oVLmuA)vH?^ znR?0g=pTy(NaD$lR6t--6JFa#(mP@$ym$@oK z(z7bL&PE{bO8RIuL()5BBz>=A#jRKqndCP4mX-8QGLk;mh=_JmBz-OxNzWox(o0m* z%Xcg3UBO8Dri0Fs-t~;6XXGL2Ju;HsO+(VF<|yFPysMHvMWk+W(cD`}Zx-xcNiPh^ zk4yUZ+<0zKF!I|+QTZ*U{1&dJn|wPWzg=fzm%Kzg;32KvW#v_GJN`JR}hpin;CZCp!(%^Bp^LU{>rYczZyz$oqE0|_ld@Og}JDMLWa zc&!vQ2>Ft7h1Sd`g^fE5I8V_l*fcWEM_B_mRb-#sYQ_VVhuh~OV^wAlHW$kYW!0P_ z;U5EvAFfO)DTU=4>zUY{HWe`*ZjVW>{lq0uxLrr6lq!tlqEL`sf)>tR$0MKzg$B+U zQd@$8qqw1VT>z*ME*TlS$uLZGo-hw1BpLbS@%u)QX(Z1EXvKvHs{VwL6e4pkjK66@r7)s%#wZZT zD1k1@+$|7T1&9v{cm!^z951f*~rMXIVp+P)&kxH6l@C?~@+*ZZz z5+38*WT+59X9*>np!I+}b90!_p&-rM$xv4GWps%y`P1I^5&I$5c4-=L7>9=tWG z2YTOvojl}jeRV?c>Wnk;G`wflF3;?W3tkDPt+$YB0HG_EeQ)%$LrNxKsj2l zGxaK%9J*C3SM}iXA$%NH@6sYsZ%v|J;9V>hj~~?ST0A!4gF&VIdYS`ba19qlV{$;5 z!TB*JVQ(qF4w3R}sg_?$rTn^Q%;nc%#%N$+yam^gFSq*m~cM1)S;sPEJU#$0d$N4R0oY$dSkm5orqlxovK&G9y3M*%Awh_WOXRM(QShewnN>EXV@glWxfyQycJ3Vr8iTGKQ2E;X*3gKmG zrtV#Xhws>%mOPT4)5_=4BUd)XJYf8n zV8n+|N3XIWH%H-sPm?4dCQjdTJE%uF3?;c7<&M&_oOz&DVkdTVOL{p*RF;chJw!wqx%4$*s#Qpgf(iO zlNE$+qLyH*vvrteGMK!omG}UXR936vnC@~ULJQD;rE)=1qG43&K+Gq-^@z^1PQET< zfcvAkw>efqjb3!v-kC{FbEa2<8P{6h3oD*&Vi=?kK<+jDH@*Fg8+@Kz%T=PjPws0Y zGb1Sy%v%QTrg<%|nCzl0ycOC)dY}Jx&yfgD3j}I^OUUc#ZlDc(EEhJNU8{8wkID6Nc4u(^uy}T))>cVSp~ojOL~& zCOIle%AA;{d5+aC?+3=edf66nHQBE_XN)WBxny@ZS-MqRA6y5L zY+j!Qca!5Yw+!KQGivT7SIWI?(Y1Iu!lIVhjPG~=rM|Q7AF4?*_-573tfh@FG z*tc$BZ;d5e&jHG-k_HDH4I*R7)0XIT5$*ph~FybT3y-Zjohg zhb)V8J8~-&aq1DVKF6+6YOWsMVlm#D#dwJ_v{;NcZZS?Wi#-k}kXMl%q&7H!BBIP_H4i`wEqHi?zR>W#R@W{LlXM$Y zhJY;@2nD5rdBikxlGK2vSdy#^*McMw?@35^h8uT&#SE`3GnR{M@+^oTY1B%sgi+vi zA=IQ0NXRp}AjnOuK_^L!(p+YwcjR=lUh(S2;xxQjgat7fVsp35oY5$;BqDi|EmCdY z7z*A!Qh4XgsV#sE8Fhzl^_c7IR@77X>VQ6|CS*>R)i~sT`>e=iHC8*0Te+B?o&>Or z7!AXVOa(02ijq8uRIz0;CCsS}Rs02adK=@6$$QH%!lh?qi|Hvew)N>KI06{NPNxQ|oE1G6>Hc$oO^#{)*+ zf@1A@#tgKPB%-kl-15~Mx`^vr6W0rv5JE$_uz(5aiz<7p%v0DT4@W410t~uP12tG( zApnE5EnCHq;3i49s};6gP7jBx^KzJy1sD{KKzTcvRGF}1ZBwBDnpBLz8L9w-ZVSNR zF321+z@WLA1sH@m7hq7ST7W?}%>aY&!T=0b)C_<@L!$v0j66L740>#!ghQZ*WL3bm zfJz2XpoCMg6e!`ijR(M>L#jc|h{qV%$pvwDT!MuX&LnXegYe|Vl&`r%0R~->LJ7M_ z0T>JsfI+DO3}yu};760v8A>=PfdLp~D4u-b4JoUshAQ--BMOgoNX?x?qRV&&D)Kr#Mgx7Q zW>o0n_7?ObF`iQBL*BAN7w0gc59d2uw3Y8}+Xa3Btz}y+-aqto!J&9Z?(g;y4)H4% zqwmfifuZ~jE|i3@P(5^@LivJer8`!LhfRbYn;y4`%gMfDgCd}a^TDEb6qbb8>KhG( zl{$8=!Mn-vFu^edX!n$_A|E8MAGze25>hFffK(#H8S^gR8x9oA$=s=-B0arZ075w* zijInkq(QYj&}|!KQzo-9n|8xYON2XQQ=9?8@e(4-U!A7D#I6aJWE*( z5emb+X9&CXm_any2LvHJCl}ixFUJf3Wpd<=6BACV-UQ`&g2+Lb3Z=s!w*;X!-r=QG}!TIFM>3ji}SX*pH0tqR@Z@Zb)(%odQQ5Z)(6 zOyl0WlZ<6{M$aISo>g)n3P(CNNz7q05;ze1-Q?oN`1O&BRsuox(0*>${u^qAkngvzpQCT=Ns@UX`;l7z%!A%lB zx~LnxW32O7ewn*a5n!b82twfxEd1>7U=@BA)?Cr1#;%`ha$I$*smBfYSw=4WERS}; z&ql}R3|x6L{A_^jG7Pwd!^vxXL$GeMNt*!)Cws}XJUIk_eLo@`7E3_(A4&HwwFGE4 zrwXlNzfwaIAAkI~d13!Iu0>yf6&c6?crgM1N?nl`hL2u~QYqAo=#Of~v?`67p+9E> zo7jZFNJL$BlZ9NN0&wja1GqZF1kKu!CFFNob=zM{e@|pbW=g24I{mf{b#`@N?X1$> z!Lmba&B!l>j!Im}y9FGFn2{t2gnn;;ulvIK#Sv?x2AxKM2J=T zXv8|O5KhUtF3>M}EVR{kz6%m);o2)_igStmF)Qo@Z*EY@#H2);XKI*?h8NZOH|8Q# z`wwz*pvZZ6V2ARuHOjKt@tjojGj270orh=2sTbF1CUzQjnOpSzo*8{#r6&4*JBD$` z%*iT5V^}4aNgm~g8{vquO`|4($+f|wjefqYL+0tta{+O(2)ISSA+z3OzgYQ&fswAj__UzxoKSoZvH;r=kB~XawDN|W zhZ3X);Jysk(T)s7M1&R)vD}&nkJveI@r-*gU9FL$X!u@L#4r?p&j_AaAj6cf=~}oa zT1u6ivI{CL4I_Qm2|D393`kT^$LN#7rL<1dh{B6b;ySX?nM|5k22e}jx&-k>fou!B zQrsA4c>COIx=9?l{fz61klg6)n{8I`H3aWkc*zu;uhk5sPHVXc*wL><`%P=`trxJX zK>h9w`6n2k_&n}^L@mzWZCo8n-PUc|rZAo$383!$5ZpAvlQ~Z3ktgS+ND9Fw9TmMs zDPB5kdGx(xA0!54LP8R0leh1!VHf6#&%G9EqsD78^f!+<{U%iNn z#d~8G@8$wyWl;zgg#fPfW`#iEOLPQA2y2oc`{F)?fadFMf;KjuL=cnQ&#zuN2_xym zNFmJQ=HQjm)U#LECJyH>p_gq4@Ef~@ybLxZMrxvNFOwH;v&VnNJLL!V5 zp>?}>Fi+dcXTn18Gf!isnR(N_*h0M-$%dS@+eg&IKr;hzrH@VmC+VQ@ZE`zq+ctZB zBrR_DXu_s4hDck=P#neO-MJ<7G|nNRtZq_&_4hukNi?81(m7zJ3-lWjtliCjG=7^*sBdOWPtWcCb zgreu)*l7ZwVwf`zhSEfW5>!Y!vs}7acgQu>)%z~gU z_OXPID-_*AHJ;hF(SbcWbGAd{B#J0jF^D)=E0{-Rc!c!ig+9gv_k6y-5-E^KM3Owu zh9;>J)-nj$5otPJ)3coSSB zVv{9UHd;@PrR+{#NGkNWEdsJU1=GE?nfqWMuAb>45^hZ-T)>+wBB4IJMI<2Pf09Tb zidjG`qnP@S8pRZpKT*tecxt1VE7(w?m?09ylxh@HDpAayF}HODB#J53C}t?5m_1`|3+X_KV$Sz+#TFM)_dbX^0um}m4Rr<` z4B1TWzwaR0Lsh3G)OojrIxo;v7NNKZ#ed9BvY;Dtr;$(NhmCxuOQMm_X>2v6%$W8q#W^HAnnq!~nN7EEc(g%$gRu#BdacA~^+x4d z36EO#lkn)QF;Hdg*NEQ&zr7bXJdmA?fAzL5mi4V!))yErixROY5&y6fLDJN;!muX( z7y=}#LkO!QfOXRWxcgwD)1xqM8q@-z1)Ha_v_lTIr7_oa1`*RTdAqvF(@8e%kVSBfX}d9~+jhvJ6{H=qfkj9gGpF>& zZp|gq4mlMxcBpM#5H}XslD0z*XsH>WjvMp5S<6QCnpH|Du?CWXUVv~A*HEXmykg6X zIDS9G@g@nn;CzuI#5>)7%6d-H5_waj*mSkpv4G+9B@q=TFL(MW-`B`aT3gyOo1pHS z)_%$+7qmY{DBjG66`Cm5$akX+On|zOW9gKPzS`!=vDifrYIkO+w5d6?>oT8oPBhZr ze#*HU#=m-77bW7>l!!~LoF!9f$yEA>GL`VagVdE&V^Q3iYK(m=Vb82N)tFStq#FC1 zRAZAUlPM!%sxb#Q)tIwQF?P778sj^cfVFkY8vpv7YK+4?smA`A3=G;@Q;kLEY^pKo z;u0%-@pG!NBbsW=Z&QsS!jt*clIPHoYRt(D>tK#9_=nkY;!W_YOc<%gq``5bknKq| z=C`TF5~doXn=hu8>iKHQW`k7erk(W681tgNq;L&4O zyiz8N;+KTw2_cDcXgVc8J2)lb!2arR3b6%C2pCWj90L!{!4m5zvrO8} z&KZ-+P)-$mq|TWlfie41+#)_%HgV6J&M@ns$JUfwSL@AuI^7-7%-iNMXgZ{(HUkt} zS;{QkBqcwgxW9+Baod~`ib1X}wW#E`rjlO(+<==(0=Y;@wwVc)Ml+#EvG=P*z47ZX zG`b>2nqL6TACkvxwtNV_!*Tptq%d4Px^7HY&&U$=gyCw*U=Prv6d<%-W1N#*eFP23 z>sX^^xYJPvioAaODWRCbIA_c&LwO6QdjTD7VM4z&6H3DWT3oI|Z=EU1KR~|W?GP|m z+~4@vekpeKOOLno0ljGu^z8-w$-*Xn2AklEG&3h@aT^gXM_L@b-Mlc$qTCekxGr;? z^1woM-c6(z?FAV}IPG%c=q>3ZxVGny8cIxhi1+Jj6N zse=R%#8zlci)%I(2oi!BSJNsWh}*m|0_5Xf zBjlPEXI{I2Ah}l4;u3x^Elv${q{T6}WXjEJd8L?L+3LSEQ(d)d7j|7L{ztZ!u3{6e z?yIgRTg$jdvbB=37%&Ur)w5}n@~mcc+5es&tvcS zDeH43Yp6a~eXa4i;$R){4rqDtx%wNQD@1*+67jj>P*o1Z`Kr&A;fBu@H)?#Y9tt7z zo_(%5R83&^SFdOY?OWSI*5?Wrt~rO0hIKGU z-;nyr@1xc@zZmGV&lN|pK39I?bJcGgcn692T=g|0$b_hf&vmTY6$|>6`8aq&!xaco zSD=Kh!20q6O~9Pv3PcRn6-c(%nTRXUU3CR=U%CRf3fZ~>f%=Ur(BHTMA?g7%YfOv+ zn?H(>aCP$w|GhQ-djU;gkVVCba5EpuFWh6u!Q;duM-q)AwVnmn8t%Mw1kx=SBJR9W zI>v%C7uc~h#gR(KA^O4L>k~iDRt+J*ZPzu)rm(kCbB7{Zgto8FGPZZ{Z>0W(?jpfaJ{4q#LOKqlDTNT@Q_3XAsB-t|*HfuaJ2I zK{DSUAKI-a#q{P4Y(U}ON~~dB)X_-sbXa64+N|{W)o6F*ZLjQsF3kTuR#qIl(JO6Ta^pK?>cTa25M8m*wAW`KAc9o!NMFJ%J20{CjQhtSqu zP(s$@5{~a|^c&I*OAZfnAGd=gBqetaW%d6!2WK%G9Y{!sjJ^RVp%>ixmKCO+zDT)S zwQ>6&^&vp?#@uxEa2IxbYwY*}7GNhxOW<5eq3`V4atjXatF$xkjdu=i=*w%`5pSaH z-F(flb@>c!ipXDU@Ur+J^g{kPC?43{?2J*(p8?;P2N0NpLEAEJz7jlb^7{S)E0fSq zVmS%dz_Sv_oFg-$^UL5t?I=MPCEj{B1x;*l|5&3Z?$7sC?hi4zKNJBeS+Nw*8);rW z9m6(aV$;Y>j2mYqH`891N`BTjF6bnlT*A`yVnc`L27yMN+m04K4 z-4?L%o-vo{XDv{nPxo@grhXuUSh68-E+`d#YAJk$$StL9xi9Tx&k>%msIcU zQz|()H-y9aI8!PY(C$n)mF%IcWba<=qpJm4`1q~y@rz3Kg^%-Xzw3NlR(nvn+=e35 z2}HIG?66LH065vuX!gL6xp^--+RzK_93Hs;y_z7rtxj;9CgJtsr$n&XA{<4TlY1Qc zF*GMn$0){Q%t=n?rKTdJjTvCtu$hUKP$dpk7q~l*I7p~Ib9#8gok@hv5q>sB9)z(O z8gvtL;__0Ywdb5F$LnO)Q^ZyR)U}6F`r%8_n<*|~M3z?pB#fD1M3lR0O~jsaQ*5Jg z9QF+tw6RkN?YL4l6)MGL!Iyh7o4Bf-WO^P+AOpv|k%11#Hu?oUx$8Va7o!A$jw^*tUOO5<=Tcvz?B7$Jqns{KUC~I$R3HM*V9Wd zB3?l?5U)aquBTM4mu=?8uSVvL79kQk9WsDbpc$vnk&fQkEa;l5OY6Y%{u$vppb2$u zwV`>T-2^-zghy@g0p`S@(2dcyA{5#VJcb%%uf0t`g(;Qb96?87tU}AU zDSc}p8wNJ@YYd#yx1wmY^i3?vl)j}I1+ptO-<87^%?QJ^n6&iGLeGqW=gmvumU@g$ zl+w4hByZ`P)@e%LLZtL92CK%_Hk74r8a*w2iyp%5XWajvy?5J@?YItXe`SMyu>oCn z-m47DFa2;{%4ifC{s2LuWTGiiAnCUH@6Q-xMrKteH+NH%M2o5f0oL4+D`G{&ikSCH zp>Ms*U1CO}O5DK)%K{XKK27Jnyg`$1h^7uzF*RIO{Op`ybkkBZS@{V2yp8Ag6I6s&g@ z9Y*-UG$|5KbXaj{bR^N~j5Rr19slNo-s#?3qkC5&=6AZs<@u3IwN&kupk*&&HLL0& zNJMC}&m?k^RBb8(Ptf%MSVnL_PUi^98VGCB>hXw^(DM>Kkt~zJRFw6$$4M!rj0qIR z>iHcuZ+z4sDFGXDqy!=Jg1c-x@%o-`M!9A=&C428&tcY{^<+zHJ(Xw{sxHs;)dRZW z0$j~b=#jTR55z=zzPUAo(`{4%^p39HwWMzsI;bk{`J-Aw*D`=>32H3^v6h~1J`Ld% zFY~`awQq=a>U@G|CS8l@y+Dfg^D7V^dtW&we?Jr-{Q~*q{OXf;58}7&L3|a{e5YDJ zeyTOKBCyP0I2Yd|b4}KLb4e4iorY*Eq}YDICfIHUKvjfJl%{-o2f}*4`eY$1k-uiM z91Bc%jp-kXsCA8y7FDMh+z2sCpEyN-r>3IOF~i35mLRQo=pZ2m=HFg@B1#RU3GlL( z8#MKnFusl=s}Qab_A_c(C_S5d2XJkC}5kxL(V0f@cfj<@Db z!dV18($?6E&3jTC;-eyt#VHTWYZ3-PFv3 zidh-HbAqf4W6I0Q_WI{F^9&HPvZJ9evoeY&E%2zsH7h%sYpAh~g(|nQJULp~K}DgH zT6QnV4}@r~Z2UM_1%5EhE`pSGO=ypccjRh(4;|#Pni~}ShG^8G)JkgGD(_TQri0&L zghB1OLVWts#-*3jHEQxV$)@yV#iV-jE|t7(spKlG`%cY%{L~D;kHMwT3$A-ul|p?3 zEt?S99_`jcJIU3vQELBE3u79}32F zE-dWWe-wbQD^1v!pE5JOF|LZ1>JWE)8$J1rj;9dr4k1quO&W}}L_gRJOS$5l0dBt9 zokqMh8gUiqey0&Xei|{p!^J%Qh<(EiXv|cPUP*amB4FMhB5gUEZ{C9ymjn9d{bPhI z$Mns{tbn?SQIKTHi|aGA+3fVbTF}gxWd<4ixuCnmP%$2TEw%&ja_TTY@=;Dvg4;vZ(rv6n7kfz)w@Ta ztkD%ckfMTWIKvC`x=$ur{jUe`lOc6fDw>w6l=%?w&!$XjN z2Y4woPX|?>#f^iRH{&w_{u>P`Xnz3mDx6iN;GWtZq2oO7$oRZF3(K^H^_Qv?%u28^ zO(0t`q6!QK&YJ_;u{E%bX35A_*LES2>eM*leY+~Fk`|=;FXhr}R~{i1I1fVfAI0GN zxCor^2}`T@;BbdD0BP)gkJfF=KTXtqD0Z798fXlhB-YM@HoZsFso^sMwC5>z#08+Y zg8pNxBR7U$|b z!Rq^rv^EXaCpf?n$xh+}a6y?Gk&;^Isi|L%`!;dStfFT*k z9#|r$_6vSayw9C(-Wx`*)r~QWJZu&FDa?bF#GaS2k00 zgIbMb6XGv4Zs9NRDsW~Xxnc_Ul^ z!92p;MKQ6!+`?A1@2dc@|B9{oNIq?AW%DXG>S}!FT>k}jw1=3vz!<@+l~vgS4SZ~%X5$) z>Ub*3e0@Ihq&RWY*SG>db2(J{@V@497<`Tca+J;R$c&AX^YMJh`2`9#NnfR4cnTpG zbrx^%(>I8Z8zH5x2>J_zW4~O4M-Ep_Tt7Q=$KfKB+G>*8%auN&i? zT|24^4+Tv|T$u?+(hzG*2y)h~Zl^ zD`T0{4R8fFAN5Xj-Wt)l%AztsGGLjflL?^1Q6$V5=;R#%9K3dl0D$fS!cjq>Yl#rI zVT&-690F*j0h(20l1J$sTrUUKgwS9)?+wVx;2;j}Q8S*W-3~{LK_bT;|HnnVd|HE& z4(d|4$a^UV=Xh_*Bk$&1BmEP7%c%F```3L6 z1$L-Olvgm5B#0LhH{~@&<5?L`-(a$Ba1>#w%ttYcr_}!%?iI?GAZ=7mveRIwHsDFI zjxG#~`g(&?9Yxrd` zdcNwBOg8kHg)RE*61A`;lI}?<2$5yAdpKuOsRF1g)WG^v5FDE$RRkC+DunuP{TMp# z`976HjHh9qoCJO}@h^Z|Kt)#@of8unfV)EvnxavW{1?d8E;hhd zOj?>P)>IlB+D1auoqwATllDqjUIRq{XC4Uz)63UD(pDZum^G8bo(1J1*3nALQ>fecU z*y6FxEJ;6!$Z3=|yq^otx;^h)c<00wsOSKT z2*Wi|F3WtBZc?`k=;k`!If}Q&QCwwi;TU@Ia=IK4TUU z9-BeYJh_X=3pF{pA8|n3(t(cBV!+{mN_w1>c9sEGMr30tCL=PkZ6e;vl6edr;jeTm z0K;sWB>iAAHl6eGCPJK4ubNMD07isApef22;d`baWsQ^uPHZ{O#@1wG;8u_#jb~Y7rK-{D1 zKnvhNq{IU>7UyMsR<~Oc(f~KDNQ*XYVlG%H@#U}PQwn6K2`!qL!;ElZZJM;5b1YO4 zbczcA@$|e{&c%pDm2=b(`5b+viH+hb>UnNBrDoQbRfOmB5G(8Qmwd|e^QN#H8r0jI z2Pw5Q2O(X}I>LP)=5YQ_H#ql(1uCm_q^3MGFVN)gED1E?@nL17on)a$V|0)dPtrma zG7oMl05(>(Vjgh21qIk#)4az5kasX3v2bG#D$kg1c$4bpT z-Z1DV5@kxweKZ-m2?d@LvduAoU@h`5@xal7o~Gs=Kn@|O)Z7C>SXPgfn!AC_dT?3G z$Eoc_dc7+g?h1#y!r=!{IDlrfWtH9nj}jn*$ObZqY<|6`jDPb**^gIgiteh3%!VU7 z-&GUigrF)U9Ytb)&|Niw=HmOSCf@zqDSZ@n!HE@%3CxZp6NpoX>{(18+T~#a2apL2 zn*6N(C=lCKJndhYzzmu)fdiylO9NmKTWuz@T0IsM z*g!IYm$iJH3B0RZevB#?6rXC;VkE|8Pex)n?*YxPcShpQNL=N~x+`byUK6Qg7SHfw zQO@l0NW>_Paz>K}nsS`@wR++2j1Jl+trR)08(9^Aq8tOXQkDs?27TKII~n=)^s_uXo|p_=Mt;rkg7hedyBYZ_#%VPf{B#@y2=^TU?Bn_Nl#yTabOq%n z{fZg+kCsvKrC2U5Gs(TejQj&I+WasSNF4l znuxe7W3{V#lT7oJwt{OU*k&=!#j;w)Y5*~JP)zecaHTwdVO8@Zmw#>CnC1#2$29j= z8D5g4UYO?6q{(cI7_4*zsCiq^W>+3K6 z@TNVpPFJZY@5;Zs^6y8f{1csNbsImc>~BT32;u20awd8Y%U=mY;4%gJUIUTO zVD*@?Wa3{Fu#ewX&KSPUCZfe;On?%Prz~0NKp3QwmyS#71ept?_y*$jJ>QHP!f6)h zBcRLrrOaBfwymdNV4>13)OY;78Eybq6Vz%3Vj?|1Wyz}P&2$^pc~4+KYdOmJ2py|l zW2T3qsw+z-6V+O3nzCfJSre`2n@>YH#moFZ&I{cYh<61dx5&h`@bY&B;t!!fB!UGV z(BNWHzg$5GTErOI1_Tm1Tng)z1E4+w`Q-fSlXu_#x6MIbC91uv?(V9)yXx)-P~BY^ z!|^JMMcn0^CNKH^h2uLsY zH9@UrASdGUGqms5 zcg5RX@%Cd>ypcBm!c3_5QjJY z1L^R-HKu+lE1T|ODl40mNLTseO1nFil~-OL-Qb|#8d^|ssi?yLo-j%wOn|FTOjFs7 zs;qoo%f~7BU1@b!THTdaB*7!4MEM;5>N%JwonZdQsrVga0@X397804O8*Kc|#l2^1 zdSls|PFG2X@2aS~D(bF^`Tt`NK3){#9?zZ`OEheyH=|&_DP-#59 zSz-cfGnR4ni3w~VnZTX-j$;DLt{M|~s@xJx;A!Q>7$)#kW(>Tu0%8J#Vgd((30!?* z0vkvs@UoU0T5?z8{9UMVN{KrmkrVZ!N+u6M8Hs`JjKp0zbCpP%OtoYv0;vU9bZqk1 zk%w)J*W?96lZ@(`48??(Q?&pWh_bZxNZB0ms{l)u;FiDU+#@~yu678aAezx}@aUn;iQGO6N5WK7PG`z%kA-1D7XIprnpX=9281 zMw2J1TsJe|_fDrwaGIOKI0)2a8bBgH=!00MfdiR&izK03I2uy3%pEFT;B`BYU>Jn1 zU(S9q(pDyCk3QcLsWjThwF*s`T|b&s@!Uf@K?9k%&$01-aqLOe3?*_3dviQDtBSWd z(E*tI(?D)(kXuD1-@JuZ!Gm+o$tiT>ZXFF{aoGlF0uhLZ?ty%1G5I7Kejz^&R8dI$TMLu?;a9_K#iR=1H38fKotd%{vK>0wmMR;?m0a)1TweL z4KXHOZRyO$b37zlnh_D&_B21P>R%@riLv<;y)VRkDdV#ZO&YK>ruePHB;n_E^E`X7$dmgr z1j}+ce+uc6$13^0@uXqoMY?!pq>H~px&XG;wunxV9Dp@~mba@coh}YriVE&c4J-h* zSPuRQ09W4!)3|?GXZZn1J3I zH28kKHA>N2gPdeRHf!bwzn9Coto3G_?@0TtA?>Sl!xck`HQp)<1j(4~&;f;=0C!e5b4e769g(gR>;SXmkP%ZO0}2y z#3DiHoF8VY7g+_9?VajHgQ7ELfwuiC(Fg#Wu_!Uw3nY@SNfL7-F}WAM=LY-SAbE<} z4K58x%C9QP3k2?C&g4&D=)9t}k$@m2MMMXWgpxp&ix&5)zY*nES3xvofo(PE6g-Do zS#X|GPL#^?AebJ9^TyF(P6C_~zKqb4()@8!z*qTz#jCAFzGtnTC$$ZwlCPdp8Tq+x zpl8pnCH+A0if>Lez}Zg@(~&8>AumvCLx!*e*KA$Nk(Me-C)-kTdQRdxaS&;yRgnZs zD2zA2T7t_$)}B=vO*tzCqSz_l+8-$l;~A|7CFxupjnz$Jm0B3*m@$aPPt&yIqtgO{b*;`C2Xvf_=PVz>WOd2(kc-+dyOHRGK1^u5#n*207o8N1n(_D^M-@2K_vFU zkBSyCAX7(lgG(5#@m1-zOvny+S5))^ANI42K z9~-n7>up>FtDo-yfWXC<+W~Pn0Y-EfW}NPW>a9E*^n%x4pxzgTw+ikdRn@kyKa>`- z-rJ~{%Q=xA3srK6_sx?bTe}bX<$ZUo`^KZ#uTogv8U8!N|AR98#!5oQbbLVP56&tp zbm|j*3N}M{b2Qi}spx__fLWn~N(mBVR_N7ZWrZF+3|=RB4cb;3`&+<(knzl?FMlZyfu;MDtF&qwnb{G2YLf;Q8^zBUjS@zT%y(&4dQ4MGM(2Y4u%P6`@w+L++!1RkjWltRl zLdWxoZ`i^iYSAV1UMgIt`(-N)9+~ z*;9L0B?mIYR9`@k!Lq0B$}xn*d)dqHKqM~&@x^BL0^O}=NvS_l>lwsf=Bxzw)z&D_ zYL23&O2u^TC5gG)mDLpEc|j*;x}Vg=LMs*VJg2F=&K}9~tX6BacMQZ4#_OknF|6zg zC*&LzdQyV>opr8Fsygoiz=|##Vp9`VT|GJS?O2L@FZ!&8@o$dxT}XaoLh{2^maMyw zd>4}cd?7jijm3X}^cVjj-Hrc%#xDLt>Ky+eF#HG5;y;AqKbD9r|Dj)vtiVQRpv8ZH z?iT+cCldcLJuG=N`QGC{`W2&M4oAa(C|eKz0V*E;gSQU<5jQjZhs;U*#|YlTe}rY_ zKa%?5KY$khAr$}7@^dy()@J#oWncVB<>Aa#p2ygt({P$Yr^h3g^c#y%MyK8Nq0frPEG$=(LPLbefY{KJ;15olf7C3Rh{F?n;HbQsDCJNv5--O}Q#2^Ed$~=#$9EO9W_zF(Vs3DyCWes>9RWhaZ?2BGeX}>#X zc-)!IW%?Fm;&1`3CTOx$+SWvTesWYggwt(Q0ep_+GhE9QhXEoqZ9RX`mgx`!l%q0_ zZP!v;NhK#CCB$WFzA)L#{J#TZ07)6As~2^|3&f8fbHuv4^%nj5x9ZkQ4k8_fCvkQf zg#v$qvQ+ddkPd>nH%_id`R7-VPtLDCc^wRNR|&i|mB3ZDqPt4qt`hk3RRUWhE*JLz z=@Wu`P$mZ2Y$qD0LMZ9y;~rEP4EF%ExCf!Qhk7jTfng-CdEG{Fds`HDr@OgOVHHE6 zRih5~ATZnmP??m|v6hs&YQ>dOu39nEysRPa!P(JBMXa^5Nhx64R8y(1;o1!sFx-PP z;;o~W9qz#u#Mv15=yV&kwH!(>L=&WcE%YEB@A)ar9QS}+*;=Ni@^BBd4fo*koKHhI z#YPplLH2jG!ndduwq|r%RQ4JgDr?)B$}0X#h4nY7z-}Quf)^XN4_b%f8`6BKi zy|*O?Ccp~YH4bws&7-H;q%ZUo8F=Waz|d1Q!Z>gv77ImB$Bu21ng$wr3e}#H14^ii zo<>=vr^`aU=&2++dMZ*JdJ44YsZjK^K8v0*(9l!mR@QQZDDUFow~2>Z9TwdY8oJ}Q z=Ng`qz@6^gg}$oeAFfN%uN zlrxX7ltLM%NQ%>_<;j_9XXeQ{n5f6L!^7*`I)}2kGEhKya)Ouuef&|r^Psu!Fd66$ zCHjHqFCKJ{L(e2>-8?Epl>ZQjz92%|R?QR=PPQVKzQOgUnkr;OVNEs}-!n}nye%Wd zAW4Q{&V7lGBfCn?xmkqLGFyZuaDjF?yrL0vax6gwNuwgqhTA@X2w))d01ZT<$1-nj z@~Uo4qz2mPo@wohsUh(KDYEn8yoZ5ZODu?0B^xWYm*wqfpCY}$ot|2 z?k3G7z)>@Qw5^;kKg9uGm02ee+ulr~o(pu3dzWki+W}0QF_8XCK}S5KG9eui>`H+5 z(<7&W9C(~40OsV`dV$i5^(zo><^2jHdtJ*(l0=h-f^SBJK3~q8o(3Xi$ozO9iDpVR zJifa#&600$`Bpcd^v>wNHAep`?adwG{*57A+%Ps=_X((ss3HyKmnCP`RMgy0hQC^98l>%1yrVmfr5frq5%F%UAK;>9l%oL`nsenqM z38)M*pz=yP)<7jFIIraf>)de77vyv&Bql=tkq{ExCnQ#j$M@ht;h(nogvR6dE41?F z)90ioA5QjaW95&7dXBF9FQ>Dd>?^JP*Xe=&{zC zE5;+sZ`=YPdY8L287U=&1a=NhWZv-dHMuIEy1{yPlJ|EYJLy{}p(7_N4!N*W5Ab9- zhmb=T|+&h zwrg|&-1wwzK+pS%Is=hi-1n?Ll#2jnr~%Zn1?4v}5R+JaaJEYyRb2|Ed|A&8=DCx} zzY8*1*85!k$UG~#g5Me_ucis~f4q~OFWz=G*vIR{KohbAzS5mHM&Cs4nqT)XYOe$Y z%(VSg=~c!D<5vY#dCkL19Of#@ zLXbcm`9KJx5=UOBf;yW_PnGIJ4$gkG)#MpON*|v0N20*FB5@46$4rEja4@wyeuifG z7I-=-VGBJ|e0QMJF29J?=TypZh8n)7hvDIfg>A)LmyR~*NqYFHdsr@xX zl{u`E{H2wu0cW4u)GUjoW7<^=_ zwD|U|#vE+0rVzRi)|@$bLg|+U84nejH3tifIar7SO7scBR*8eCoY%oT`D>^HuRl1t z07wJ1gAh{YYD+nBpft*ahiX+WJoI3(j3CnYtslvLGs+BH1J@8#t|E&MqYAK{o`=*i zE>dX!zVkqxfH=F34x;Bi0E`O<$!XewEvZEUv?a)Y^`Qi$eRdAD1rJVrNfBZ@XA`9d z>;qJVkL~b}+bsLCya9Z8_+f4X!3gvSvc9P`L9ARjgLpwMx98)S`KUny?UHtXA(v5b z$qTg6*jn2L5qhQILW9(YQCFswdT(@3=4#I1K+jyyfl80LvD!8#$uFE~JOCO($}yU@ zGTuSf+@gn{zhp@?t4yQ#Dw|-VUJB{RUO^RdZTl^LGBr|w$O+syk1&}us|wqDTmv|8 zqrFG!N*U+PzO&O$S>N&J<*i_5}IIs8u=@l{iq4shkM%w{($5ATMq!$^{PuS4b z{z7wsD$y|z)hSZz7*gT&l(fe z*fI7RV{B!)$(|iw_@QXu3qI(EfD-%OqvkaujBPF$VIYCxqa&{HBx%YEJ58QISB&1+vEri87vRv#84Iv$Zbi z8j8Z^Fnx?JaHg8#^r4!I29nbt^ci71P?m0}CPZyfO;PSp%|&OYV3C7(057ML0M9f- zS*Md;IDMAqX>I(~5vt+|594=)k_!B2sUH!iWyZyuTb|_a_SKUPD`nyjV;Ph0@VYyV zrt1YdnZBx77??U^m>a4U+Udbsd=_31m@-2`NNp@fXl8isGu4F{Y5+#RLCrV1sFGs3 znhKzw0sjrVQOby(i0$i<7pRz$eid?&Iz~(Z(fCrSePu&!tJE?-Ye<7`nX=PDJ^}It zIF8Y@aYF|(iJ1J^Mm?a!kIj(zsCrXe2*nVl2^t3Eml_{SR@8i!0Cxu_! z5V*YRd@EN3OaUP0%e!J*G@T9q!oZ7v;bSfSMJg<#A`eTWK7Hn>8m@${Fd{NEu>{Ha zFy}tGjZsJL9ssWIDJY(HAd9=^+NpH2HBuUi3-iECsnpdVUiKrmxY~@z?Hm_($WM{E zv9HsbG7v9fzkG5411VbQjYx%T#k=Bs?zqg9Z|(%@k>o2qZ^FZM`u z2HZLgodHxC%fnh3vx@g%+D-CmF1nR!h01O8(LO4^B_C1fjT>Xr$Vb#85cX;$x_AdM zxbh~wYIh=?qu9PZIObrWbaX_hkG|8-2oZ3WXT6> zY06hQ6%ZlLyuOK@I99zG-Nn&ROfk#zF(+}K5`g_cd=!dP7zpA!rBAgDAJtUu;oFXV zFHkBka?7FrtJDt?GmYxb)l@9KOgMz{vNlTo9fcCh&wCyBKn_#@wFzAXB&Ho9JawH4 zydpRP`BNk2bSgG}t4@Ui=sFcOb}GQ$=Tm{(;W`xvN^>fpHFGLZnRF@^@$uXH*8W16 zIu!_Jb1E!u=$2MAE(FJi>QpG1aqy%Q>}{ul)4Wavg72J)B>{ITpeN^30g7CwLQPMn zf;83ZR9M>mX_w6G$ErZ1BK|rR)H3W#dn%~Lem)gY+?qWVmAy^`o$`mB3bJXa{p>knP1x_jFQ?bztyi;<}6Tj`i1P@+|U$)fZTQfI(fRtLpZ4f6AN=+R*@R~c*gU2KV&81WZ!Kt2)Y z`H@w5M+N6wNe8VfoTI6Qo+cW4&s|S5<4B{oX%&S^`<|Y!S|>dmq*tmdP$|aif?(1` zfCo=x)&i~{o9L1{N@_J+66iL_m0RW42#)iHEM6x&GUxQNw_MENEse9!ThB`STs6?g z1i0<+e(f_i^gJx!WuG0PeKx>l_L*L@&s()B?K7&Kwa=-@+UKo-3A4}J_b>ar6{pNT zpTlU}A}USJzHLkMD$;{foPBnr+2>Z#KKq{b8OE#|)F8gneXjOt`^?X?&j#wuKEo=_ zKBu;>`n5}%eMTd+_SqUWYoDtPEt23!0na|WGdD;5&LO=u4(U3XNQXAvsux=&%O;Lq zm-?wHU5po}4YdLXIF~K~G$J5lA;d^V5vuA<&xb?c0~TUoT=d2a!L<^fgZh-BkHhRE zRCyncx&gjk(ri z7+P9%la4g$0f3TZ@R5=ts1i+Koq~ z>!lBu4RtT%N5@Pu@m{jJLVHb0Jr83(gH!<-M(=hr?pW%rVX3RE3vujPyhe`ODmlfm zqtqIXoph}-nQ;OfM93r@Ax;un$MKS5r~c4zlDO;pQJ6pKOCXm=K^3Mi$6jIj;UptJG|RC= ze$JdEPRi}SOyCYFGtO|w*BOqTDlNlFI?}SVx{5eS-!so^W}~q|crZ?qGU~prSwLPq z>KZ_YljIl;C#emP`L{~vKbl5wksLen@?}HD(ikVnDu;`9kD5T{!&fVRtI0}xubyjC ziW9B_6f?|WpKEbK(nA&Ps!sBbkPsk+cp06{8n_J%G}zfTF!ZGdc$=RY2K>uwMNxa# z*V{^C;0$o=VZ799YFpM!L(xtiUEi$d=_r$%YsyheLW>^L``U`5uW5tiuHCZb_2e!d zw0F9*&!`1wvyU3t+J80&h+RAwDxXi%-sk;t_*XHkSp!x!!oF~>&3^b+glR(rLtk}D zH^|}^Ut2Cyy~R^lTKAj5t$SUe!m?Q)3h{V>`jtEj^tA`EwriA;0#FZ}N6~`o`BRHa zo9BXGwKqlF!K@=|NLp4O^$^oXXt;lW&Cn(-;yGunUZ`aX-7NEt6Wt*Oq08_X%fzZ1DoA)gtgKqf_+RQrPoz}mliV{ zO?$brASKu(;9-9V3#ZeAA!~FH0GwP#I(f9C@~myJfX)rq9Qzz)WzFa@0Gt`ZJWa6K z{Admqq2puNJ_DW{vP*|g36Lp-d#33i6BDH5M;~z8AnlwRkLbgXij+sL8X5s1^uzf4 zg+Wuam2R0049lD(0+q@U+K$RX{EC$B*mO?awnnTPlrKRpr)l0CkLYv)oZ+yINWPE< zF&I>7dce|Rr)9-(rEA=51#Jhy^t^vG&&_I06I6(;hUL4PEXq|%MpC68p$V93{DUqU zoc{2W)ZYA!3-`hCaIkM&_1-^G4rip38-KU3dVD1~-Q!POVy=-YQT^tRIC}R@WBXf_ zAHc=oUhpK4DnWn~v7Uy@_XIe=i7C#IRHtg*nbuE`4_|yvip{n@a2onJ0*D>pU7^ld zsk4t7IPAE*VApuG%xg}P_w{OGV`oAEPVp&7)5CKRej4xaF?Vq&b)D`>YY&A-S;TN4 zhpfpb1t2_HIdq=JK-ve19MJRr?3cKg1-7xPnwBezf>g^(OZMY5;V z;t6LvdkZBRKpUMIwtVj=GDHAsT_gwTtU9iN;COaPK&wZtpx_W_H_rjw(3l%iTFFTc zEenx%c?Bh~DBf;>P{LxW{OC`aN~g1IRoDY0pF~mDJ)h2t~Kg{?LZ(az{uo ziZw!jb9}bs0D}b$_1RIYxmIlj%X%PYl#|GOfX^V1TN1Qp&aXjX93ilWXbG9c$!< z%+d4ubXaWy^7_c)29-f=4z;$~G_JNG&^w}rLQV_gc@1`(xh7h)*aHo)D9bz74>}M~t&Mes=&JKvY zI2S|iUG9gux#fPCU!4&2##?gkF?B4p?XF4RoaGyeHy*rXtpLF!f~PqMQqg+93SYnV zV9Ki){vstXWpM>`UE)~70)>!u2?0xs*deUwZ3n=1C32P4R`pGY05DJNW_)2*0XJAQ z>Aflz07xd`J@0>l>UEwz#YQ*;$lfveL+tN+{~}a8`WIr$xXwc%1J=?%I1s_~0&Kmw z5-^qGsm_g7lZ?vpz=!*{^c4a|jM<{cRQ^)BL)hCGC5PK1?Si# zbC;1u-TnZwAqzS`g}rBW)bFCP_~@fEq$)2z_Da6uc^)VOXL72&e zJ^_`bumJ)2Cy$hn(V2ye@!9hdG{!Dj71Xo%NxQaTZqVHUV}%{Sc@LD9)E_l;q3iRQ zFTX~-vVaj$8(Rh1yrtt)8`?%TVi>QEU(zIQjm`aN5LXZ^Jj-x8Lg0Ddf&zdO*GXWr z104A&Xs_2-F-zLpa0YWGv38pjn@EEJnKcIT0uCgfY7e~j*C1OIuZ^2tImlbKUJpOo zF;IyhCSP{FvNW`%eG^m79YmRPtvwVN2; zD-F&k6q0KW8Ni1JfZ^xyMJ^meBI2MC805@>z;kMj_>G)RB8W&*HL#^q0U?MWi5ZCw zT%IAg>NN5GrAZ}$Brrgti2O^FbaH-_a`yaosA+>lVat*&gWDTI5J6(}rX-*klg4USA-2I z1RC-ngl6+X9z^yC+Cu@D{s0gmAPEJictL0K5J5?fm&zo^=a&^r12Gzx5b0Ai&aWPK zR6RebS-{x6)$w)rrY%<`=CX(*4husu$JWDC$LiAwm_RGTS3GNJ^-}ogobBYbSOxH% zSm6-wxwDxO-3JvO{B^vWk98*~Z;hZ_=d#FE58O%=8fUQkUphOX=ZRbZ!V5)&xG)9* zQlXLlDt-t^So{mpnWvZdfl?U6aKRu6-%ASr{u1w`O!bk7K! ziG;wJLBXD40 zlr(3unV9vNVod1xxXO+Od1Xhzb_UpEf(aP{;O0g58~WC6=v7=gBGI~+K|cUPq^7Q$ z#eG_L3?ddov}`uA3f{{MNZ!qs|QQ+Qwi#CWD24to`_Y)3#LR6)AwO&hO;lYTXu zj9pH$Q1Mo~TOK%;WW0IWYZj?L+{3b92RSa7ivKk1|U!4KL7x@Mdo;dVzXhZ4bn%V-{_kaU$R7 zk@Ju{MmYOnY|k5`?=2Ov(dnT~+-cAruoTYRG#PG{fo!VScu%F4wqw4#YqYF>z68&K zSMP3voYDZS;buecIPSth5iVj zm*74NJ=X=`sz?5)jC1x&#jj~zrnHfra2{V)KgZA(*r*u_d(#*S?UAAIs>@7Y4=+2r z4jejz(d59<(<qW9{~4$GJ8<*I;dd>! z+~%_fD2ZqO0=SH-WKjDz2|a+;o~|xU)qyT^zPX+^_-=Eqn+7oe6OFA?h+0>C4u2Ig zl2*6~(Vo0O>#@5@^o^TDiD-VU#?Fx$1}E($j&tw^siy#zYI1lb1rej3`zwDgFahEM zxNgnkRl1llNHLWr)4$^|Ei|rfLO91suvU+f5jf5OT#bo#LRU^79c6s|>VwrLlAfZ} zTwUimfBY7aPl0=40*0V50HwH7b&}@JUqvN(<~Z?<3)QW5AhI;7FmO6RH?RAiH1&_a z`~3G`{qr9`|Lphw`xl@5$Jbx~;h%s0^Z)v<|N7Z~?SA&fm%sfvsf!+e-mjm$`#+z4 z`PFA%{Qei8Y<{Nl=+~eA=BrmWi5!1Va+ryQD)#k!Kd~k`;1gUz34tv&qQm?NZ@ozs zZ19&Y4_FG$se(awvQLlj&9R-j=apf|awp?tYz+`h7=Fg8p_J3`5p8W*4`TSped>>@ zJ$p(zV}Q~lTfQ~CpgJN2gg){Hcy$oE?>r|U*4cA%3_G`}pTyS)asl&WODY(-Mdq;Q zvZv%bJJP${8&IS4ijej|MceX%LCE}3d1>v5}_qGLGc*@)U&PgwyhJm;pdmsXrCvtyl|vg2_e{USNo z1!-);U&c{|?CY<7@yUOF_34-Y>kq&D)u;dS_y7LYr=Pt0>JMLj`paMc+oxau#~1AQm!GoR zzxtZPZLZ^YU;O4bUw!)ZFFtwCbFVP>Km3o!_m3FlnA_E3OzQPxzy0F#U;E6@uNUy) z1?|oYdicPCZ2N02=seSpt>)FDzte&avmmz4@53LzjsJ2X?%t2(%N+kZ7V_tQk)IE8 z{_WhB&;Rcq{sX5sjy1>sUD*7e|AVvsi%#IE2 z-|abKS8-^=B>_G(S!!Q79n1}diEA3t*lo6yF%&JtVFsJ++V z_LMosC(r{Hqg*BRHDziZ6DyDEMZ(IVB2g=&w@|*biC<*1lEb;VQ^T5@lxU7xa?>W|t#Wg9g+eB<@Fbfl)ZMG3=#r zyr_*in1&U^@}q(twXuzQ9hJf+b5lmKgf#ULj!LEl4?1BjoPNWk@ztOW4ig4erLpcv zxZW@YwarY@)ND8`Hn;PvZ_e`Vg;4LqI2g+XycqcHp~cFxlfO6J?^oeFa>0Ku ztw-i-&@9s0#Ib?M$DtIZ-9+Rl7!q_@M5KRBoJNqmn4429Kxy%VB%$Z5IEQC}jlwMw3Ga#Pd_2e&d_r|~YRb8HRU^@GUv3OJCA50a{J71s^9(~Innd}BL25Xp& zbW$fsH|c~17zaX|P&>F-pqb&hPcO1g(*TTqgNbesS)zBRhvY4DX2?C@dAkVaLM)*t zH-4Lbe}OvJIcTQ=E)xvp3fWXWs%IQIA|aFyEJdh_83%paNoY-zW-tLvr%((b6YE% zssy+N^Jtp8I_Dj0FnU_z!a4GnU7;IrG!v4tdK5e4I0L9J4$`hRaYfj}r$n|^Z47{km*?@7)7>$Y3ks?)sZB8!K+mni z-`1>FkLKz)0j0#5bxg7WuD!2ceb%HJ$~jNa3&732yg_+|0cN)<^|BiEsRML@mMP1h zNlnbpLgaW^557SDdh@dHi3I*)N_c%VO5$Nbtda?!X7z85BIC9Nvc_kN|I0!12cJi> zY5e5uOwy-TISYSWSuOs89A(WFbEV+^;--~H~FH@f#!>V;wlIp6?@C2Tch ziUy=^Ho~0Q9UENq&wsrKwtEY37gT|b(o zTxbati69`g7t&)%rLU#Qz_ZTm)l$Zr|IlYKteoQ972 z$4m+)HG#bB-`|)NM$i8e|7NTfHrj<4E6o^+#A_daIS?#EC_D{fltJ7r6jv#nDyslj?C}0ZZRt9(?xQ zT}AP3TI&9q6i$H6nsHtLrg1ab7us;Y_;2IlU!|NZBc2)kCO2Lpr-J|7_%iH~+pmJv z>aWejr$mTnJC3g9>f`E}cxy!cx0F{94NQqCO}+NUlU0&Y9IgxR&y@%+8${VSF(8&R z5tR$d3VFHxWbyR8%=QtkaM?%pv;tljSkOcpZz6==Nv#DC+B8s}+3u3pbzKwpZw1W# z44nZoJwDoF6~9T8JTgUpLB#U<@RZ+lCuHy#tp*%Vg0zllXCUh5a2!ox#^cL zazi?9=v3C~EIH;2V)56l(|pIpk1;eK!T-aZ2iycyaIxHj;B{ zKP>iX!&FaOmlVWoTA?|v`OpN>>e7r%QlK% zbUJZMp9kX1ovgu27fv|o2RS(G+0>fS9&RpJ^wp)-T^2XO#Yi6_iZ;a%`P=+E#Us=p zT0ER@Tv!oPgq0g@AnDP1Po_Q$^vpv+DnNu6^g4Yb0-Vy_acTr7aha62aH-S#xvw7U zN#EG_I45v4pUF)E$2^VIu(yln46;Y9feyfc05dAo$*;U8h2xyDnL#^dO7s9{%7*SW zWFcIt17|L;AXKZ^>HHN4mX8++6-=uWIbWIA=vY30Ol?pFFMf!pSb~ zvfi7kd*}Mzn$hdZ5ssn&93*K#Df%_&K5=omQhKIUkMjg_I8Kcwz>rvZZqdLWHLUpL z)5+s{1UEjP(!W4KP7~TnO)mTJFOKn}>7hN?h$>vdyoA6&>jGJ+5n~Ov2K=Pr2TY!r@yoi~4rb*B@y|T+eVIs=Tg!$NB3q_2=i+*soIBub*RBLcZD;oo zU0GmzpAyWyXA5W&L%StG6H?5+^GZ_If{l zXs4MT2c_zU5iK|JsvVo7qD5?*0+vQUOVgqV++x}QNVV<318O;xG)!7TWGDN=cfECU0ZXbwGF;oYN zV%KGyeKM~cU~*fzpZ#tP5k(4~)Yfip3U0Jd+KWbfT(8}-#&23%h`_p9H?lX7Dl6kxfM0V?S4#fa|O z>}lKVjBJAa^?dYP{$X~`MR|?5@=v1N()($>8(C#0G=OI`s53ec2(=zme|EMFV=dXn zraEqoQZg!)oo8{7St7>If_YxkPOW#heL7(ea95*! z?|`Yl8~yo}*R;7RJi%~AoIg)0NGe~y4r!bU=Rb#1*#vL6CEK1V-JJ+-3%rR~fLaS( zPte2;=138-G;{(A8P5T@CWKrjr(D5Ii2Up zWc0;RCT=z0JJ$?9n4H{_>#??B$^^1Cjl9zls|vF1Uo+5IusMOsW}eNGsq6Roft21i zWU@R-YI|^!6t!L;u~I(*fOtnXMz+WD!Kc`pmUAJ53&gKCH2E%Ty)jt}zmQi!zaBsj zl(&n&AqW0)1EHGh2692Ylbk7}g1NZ_R}6MgQR?M}mGrtB2H}J8^8VG@Q%{9~0AezH z634pfxr5aeEoiD6)T3%~$SwS(Xd!gOqz0hhf(**`H^*L(EL=@YWI-@`A{KI;uJH?f z_m$*MnmLesxk*uGZf1!>D#Vrr-f3G!xcOV_*ZJo#@5*yVWUwRN#gFg7wT^$3?Z3@Vlx`3aH_`xYj1F9)aXsrY=FPiAL{*$nH^%EQWz!V0H zzk3VtTf^d4ZsO2-v6;+|&`yQU$UW5hjoTOg@>nZt%K63ia60^Tg4}d)QED*(7{E!g zf~@E~lQ@Zja8Rq=J@*>(Bd)if%*(bWb<*F~+!_M7EiiSV*0Y{#k#=w0jfi5Av3bYZ zq4nlA&iM?$3}vaJ5~@4~QW-G%hE;G{pIme%XoQ@H0HHhVS4|Ho{LfD|lmnc{#0!Ex zqml?hFGIwjdkov=DzOa$8w%y<>Fau7O-t{wDp;KdXr7MwalA#nXC|pJF9?MK8<^k^ zf!SpNo2qzals+o!It2m3XE-lH1iv`hLpa&X{BJJj zEr%!OdVu2^?C=W0J7O^01CTh$(4>B+F3%O@lk=-jUMKyy?FPNFSc|&xul~!9sv6_k0ZcIp&VncGpU8)1rQA740R|yDg+BrFxWS& zE~)GHx)rHHb7({=Am4^a1w=Z7bDuSAi? z(yU5gRwXp65?V7{eVVvK4Z!HLsy4zEYg(8!&9r7om`qaee#6K12H`F91hWsq#bqI{ z7f6e|2rnB87R`AQbJ2S86~wPRnf1x)V`GOZDl}`>D~Mn3sPPX!{nZzrfAQrnJ~@Z) ze5b5ve=k;x?R7q18FcXp#dlr+oq=sYM!*=y#hu)?dmcvlvWMAG2ZL&;9JuPu;69#jujCj zl!BT3i@5+iEQF8*lO%L5wPNA}n&neSUqB900dsT@gc!V@G~!{pViQAs_>cx38QppCW{pK1l^Y~^i@nwVw1vC;7TwGsbf7@~DkSz6hP2PmXTZn#VL1HA zrz1pZR4Q|^*d`%dGx_d92?a+pf%z#}#{pyB0OgoXK(8WO5PE198pRzC$%4Lj_&?*I z!@ihxCdWWr23fhf_Fe3Kq7iJ#YzPO+%3gcL1tOa1Bc!`EyCuYNUFvf@KkMT`HH2Vi z>JtGBWj=X<#2ozy5RxIK|#4G-RWj`1;Eg>9B5n>8BUiuSs2r!ByPp53t~gN!7jT|*LIja|H8|;V$75K> zvW5*?BA_p}ZUX$367=&%!y7#)?lnW?UCEH$hQbS^OuTm-4!pB87#M*ShAv7oAZj2z zc+B6%oiN4^-N0VgPx^W}aJe*v&R$BG&l(yw|H{@s1t?Dm=zP?(72~S=5wbZ-z45@? zn6UYTutPd1F{dP7YN)sV6j1>{t-hM}qtxv=+^DB3?oUoTPj_}sO5$t6iGWF8dhAc2 z2Ec&{;`%8hxeNkp*ki2=d*dt>UK=3C*UCY%A;$uqW|#Vw?%d@=gW9)R2+2R&P z#@_-rD}l(05Cqxv3PGM$AKU>O-Jx(+o6!Z(NPDtunt7}zo1OymH=A5}KRnb56CCW13|GjKP`wW;wdmwt+SuWYe&T z_F=sC9K441hKykv*|RHter#qcUC*nIDf3-&iYDs<({GCq04JT|5qg);9H)CCUt^W9 z3Cw#0xINxQpuM&ch*S%x<~1x8{1rRQ_lLg)@-485LNH$R2qUPOTs2S6n-h1gV>e~C zodbYR%~a`nnX~iH=QwtCypLU;w_tpD4Zg*v(Trfsw2M>9avYFYH!>hG6rUcjqF=?+DB5T3A7GYgj@USMPS$ zIp?CKw_+fefwpLwVO$>xS_f@3-CY$Er&&ZB*2RvgAetl2uomyU&jFeq{M7&D(6~W3r!2`2PfnWRKIXnlfG?T zz;y-y=mH1=q6kXO&$OGD)H zYEV%S4>wa_T&;yxzy%QTtX}Zd$Ixh4EdmV!6wHDoIswdJ^=MWGAHX0scM-^YWHVOr z09y15Ah-}6IMq&i{$$Ar#^|rB2xt`p@#^*bnvr8PdB>bp^p-%lKhc{jB3oE2$?8Uc zq^n}M1tnwF=vtWy-fb!UetR9}$25^e_gn^YbX2wco?u?2BGE5DbCQ!3q(?+@|Tv z69c*W;9VyAMWPJw8wQE*rwOKfdNd)2QC@S_YhoXzZjwlTC>@}sP^QMmz0}8_UW(~#eEUmQE?Nm1 z&0uI{DGtt6N<-98f0G#vKad7+Yq0h=a=cwm5X5w=se0n#% z)X=h&K-<62QizNYcHRgrG{_RxG!D()smM2sVE`0Uc(d7*2W$}aA66fu~vaf8VN`?=ka9#jvz~Y$L*Wv59#P>LV?Dc zB+WQNyN!NV}Y?53ysYdTqIl+PHuZTuib}YEO$M_mOxl?kZjeg*%rSN$WZ2hzrbCDVCE7CL6a8 z@yA||1c9kLA~dFnkjvCQI3pJ^K*&X4kc-g40l^zU_`l>=0yqH$WBKsLY4$n*U|tK& zs5sZUVB6V5HA2LsVbk+L#Hats%Ety;d9ID93$SiiSg#As7NALJ0n6Yzummh0Ae_{L zA?vURFY?lRwY*t&o%VA?4>vqKE&agI(#_&8Qq^i9lM46U-!|i`vz=<|?J<5-_%yIg zJ&NFg>~1C!ClfI9!Fm+ZVG2Y>&Xo8%&B?y8;$=_g=8|;kd(;58*iS#;AqCXOWEJT>V zr|n}5&&2*~(UY14v0 z=}{*~ny15$2df(3i&j_?FP|R|Sj{jnGoQz_&zIg!P*W5}T}z>H>Wp$&L#u~hggrty=6e!Lj;$sviG@?;&dVcQ6i`BwzB$M@7rz20 zT|J!#1j@X%#NBo6Z-%(vg|~JWuHryY?Q@J%fqSycqkskkBN;qzN6_Ofh1auKUl;uh zki-NY4g3!vrQAIJsGqd{u8;5^vfPgZY$B#e0rc}-HR)j^N zI-z}q^a>g9KYa@MY9JD#VxwFuxH;Ijcf(whMohss2&K(cM0r3gA&@`_FUgxh?ziKu z-HxkJfP>mV5|>FV;zTqg(1icVW4A*ldsOpj=ta5yle&)6P8`5`64y2FQQb`-(STd} z!12L^-pD#<$bT;O&@eBj%9pirEtnq1H zlfhTq$v9Ox`TlbCn|ppSwqTAruTs~j@n>Yhje5kP6CdREf|--)j$HvS;FsmKCdexO zSO+XCMjr)s7PcHnE;2|D=G6zKqyn#nzEhl?I|YkWm7-L^B6UqrgZv z9h5!|oo%0wlp{XbX;t39$~v* z4)|pCb0hG(V3dO4cwIo-Fp%32WVM6U1HXLd+CV6^@I+&V+G6H?I_uwT$Q?<&H6(TA zYVCdG3VJ`Wj}FoH1bK&H9Q`A^+dsKhPX`T%Ua;~16+(aJVWnJ<9lMw$Ntj!!x8S<9 zcJU%J>go{>s~a(QieZzg_+D!&pN|{_|d=O9)Yqh37p*aK13Np!kpyeo|&JR$6!u1l!NYcUOZ#YvB0*^ z`uPTs3-$aBbTzHbfTuI&Tf<3x*}=XfP~>{PjN4cil1U7jHWvba&+i zn)5TxKO7MKzSB{n#S#%7-i^;O(I}oNee*qP9D7Dp1tNDD4hs7Nn2Ii6gzU9CzlUE8j zExpgBA69!tqB{FvJfqQ6#FT%cQ9xbhf>742=Zuh>&Nwm6cq$pkNt~DQTKZNUN>7#* zzTaex-5fv-U66*MS=@$8PqrL3R;1n_*x6?8?mx(g1WWuZN&x?^Z!tC*z6CjdT*vwt zp#J$90ey~v{2oDm5c;q~lOQ0MbFoZg_eFZ&0hIV$MFp~HpDQX*I>jBHLJDwY1IQN# z^;HHkz-X#4kjuJ0YDE1ijlT1%5XImJ;HyyVLkLgW@e$&y*k`PHe3t?IE(^k6c0D;E z8Z!WxbjI|{%zOMY6ltF?Q@xS(Wtyg6W&poTkP6ya;D%#b4=j3X5VTD*f4|1ZDGgCc ztQW;L{%NjUCI3M!zpC;<+40F`wZf2gXbbpEgl4!I5egx5J`BUGE_n??JPF~ryg_N} zsdsI?djm1?#k_&%s19 zhTP8kl&3hR#X2bl;*{Zr`))Eo3soF`z1xvCT8({sKyM$&w+H!lBpmy!w>K0f1!HK| z+k0bnnStDGyxaKI-B!=oZf7e=D%t4OX1Rj^k<`Scw%fJ2+dZG=ehuPoQ~HA`hp>X! z?VAH|mr355OmgK(jL0mOjtS3Jq@E7$bd{6{`4ZbqBPd$@kBU%at@dyrkWoDrhAKOr z1f`Ml!Oh#E%7YY{07*cK$WrblDT2F<@2XW6;62yZLeh4API@<;A%Zg=7#P(fvllC) zX`u(!&6x|D6)$WPl++GjIgKDI)Xa|(>1Gezu7|@QAkFNh??_ZkR0=~Fgw!9RgJjSZ zA6it!BMDSM*K;6|VUUc*>a!?bL&=mhx_k<#h*+$llTQYciL9ShDTuxm7&eoAR1aZm zfAp7KtE@=h!xm{n(#4{A^!H;pVBf;JjBGp9f~+$_M6el|FBoHlNftPS6~H8>Nk(Hm zIdpCYfc(vveve+`=g|K{vN;9S7BO{xevSTC+k}SF8``2-GvyTcuytcjY~Ipzc%k!G zC|QADVG{ezHyHMcZxGNo7|3rBK&_A0CEn9Vhkk32okN=BTP^EV73TSO9D&)js_KmDJ-|M#yx{p8(OfB4~@us`6ryt^th#Tg&$i$Yh31A+yb^G5Ld zWF*%oBdiN@@$cMlfi5_JbU|sb(u#G4E5@+Qcu6h2gPAU9hy%z?~c+SnRD)Jz#_-hp#)PSpx*|%pi)M{P6 z!OhjY!OeTKQkb6zL%JB=lo6$k$$~Rx{E7z38~Z3xdjUC;4y3DKkj_4s{@LXTT$d|1@fK@07=f{A_)P3HkQgiFU-p!p;sufusyrE> z!FGe%@*rV%ix6|CSQc6oh}eLG?YebVNuhCG$m`GZ9(|&kviwF z=OcwSj#ndElGw`k=$(YF4t_-EBtnY^z>RhQbp7im|M2Wjxf%99FF`roL*88f)03)|73uH6cUKoN%zctSM&_ z*F?HFr>@L=P9u)L`dZagl}Y3(1crrOR&#S@Z!j3PI2^AuF_+bKAm>>I?g)?&+oOh| zp9|$3$dA;6;o}~>#+Tm{LHxNP%x@ty_K{k)oX*?0(wF8flImY6y7aFRD7*jf2wnbb zEaWf?+3ZcW`oOXZ{KaB0fxj?2yPsjvqn$5=BM9xk{c<83|NZx$ef`xhJ|W2V%m4L< zU;gU9Q;fdE?v6C0MSq}jKWSe4Mh<5K)PMKc@Bi~F^dmoqFph@gbxiL5DjH{E36Z|z zm|$~PW!uFlflLh+OgW^+Hk}o5F>otzHM)z0kXM}*$Iw5_LGu#}F$)ossAvsD`6?0X z>Osa)V8$81D4ZZNyUDw)*RMW{duu2)T8%F7LG=2KDCzUIy!+!XKGFT*0R#8Dk3=B< zl)H^`@IC+iRQdY!Gx*>S#Uj5T*sFcM^0zN-2IBst1QA%-H70T22+os?BXPh6Ir8TK zSn_#%KQ1N`2VLzNRbb_sFR_Ly1KZ9iLZ-{g9I}#eIP}UjuR(NW>bRs8Nr6bSLpj%y zaR~g0JN=u_KL4Dn^yTOO_z%C`|5FF@xBvPtSG#oOi9Pmo_1F0e?KJAAUjbOj=(KJ- zVI>@sB*{l>BW0!)veay09m`d{Z4~>_XgrOS0SYNYQ8EyrJ*%yxB{WWt?1zq%aWxfq6Z@{F)m^cjrc)9FlUydPP5HMlqiAxJicrE}~HduO8I{z>b5q zXxeMm8c2K2^jPlMV~^2X>Dc;lFT(@u^%y+hkGY4VaV6fK3oTt_p#wOZ1$kfRIW+@g zH$me#h78SptD?6EQF%zId(CEft~W`oBm?N$5TrgifJ=E^@p%-ceEtX@L&K`?(G=NI4@@HwJ+1b1sjM@7?37>Al^1VqUk#KSgz*{q(^#V>!g0O zAuojVj;j_o`eEyqZ0rx7V(8E1(?7(EUORE4VC5n~q|d5Vn9D&wOE-B|P3n&wTGB&% z)Md+WTMEyyALXRLT+kOt>rPjdA=g#yE#7!^lwg^0;1=C%bW;w!siGXjsr}=OIK?J2 z4;_&QU&4zGzFfa}tNz&*lRY+alI9o88-m_>HJ+lvFme)RR{Iw8Q=W%mT&%ki5p~bqeKb&sFX)T1!__+ z8(O;n{)P&rMo{1SInz&=Q0M2tvid_WjJe#TL!`PR4xl6yluP$Ow5>ilV~4Kw&~9vf zDrP#C-&~N+-C;r9IfxBhJ(l}<1L>9C*gC4; zY}_5ozBPsMl_Phu9Gn?$*-&_8^IV4k_EQ=}0i8zu#59rkmrUW*ZwA;|qb#XYsPvWs zBb@HMz9X@c25{=8k#J(_rXi+}EUTCBC=Dj3MY1fnXJlEgRx>0m2bdvQ7U(R?t~3~0 z(wXffmduwY3Dz1h0nB^#n8h@X+^D)}{@&b(8&ra4oL9`tmgm6*qRJ54rrzZRGTGBp zJ%nxszF)PscGa#uKsB3WFA!A=q-GNsy%|+8yK4woCqy5WYMLQZvppE@U<={l>+#1a zz^tz05z6SG{#~KvKr6Hy=p0%;JyvKr<4kC|*SUalC9i>e{W-LJCROGKr+Qw+&EdYe zHJ9-56EfZwEbETD^%jMBzuWl8d5G4_cLfyK%Lx10}6y2zb*O6w@9}qvjje zF8wKsW8OI%QlZcME>pib(KpuufgW<9M@Vr~18K)ABMHW#fo=x5UyHYPEv}r7N-m{R zDKP@nTo8-w8B(Z+2i~XSq;!+WYc{Ve`xFE0uO30uq)(gAP+VH3kK^dkd#3sk5d7J} z;!6NNf0**~D}!Q3G{@;`j8JPG5e3odIE12VKEO0``NqK-7EC)euOmiv-tUi751|fu zTQZ2xq%~|IO(};2r$lUxnx?8ZwFNZ}^TvvMmCM1afw#NBHKk3eMCVDyw3!m#IV?Mx z>8f2IyVs&;L)!@UxUFGBZ?59aeXb@Yp5vevQ|98p#OV1GB?#Nb4@sKWzrXbHcPi0= z*0%JydENKC`FCsmuRr_r_g{ZhU3PpV5%hHi=xMrJ=|BC|*H{g%a&D6o+kfAdhPZkL zFZ$p*lHG zIX2p=39}@QWg_YEEeC^$hBhd#$zcgFMXU~n02)@**eGmx8;F+YbNvItvk{RJfKXmT zNccNB_W{zV`2;Z{bs}4!_-`u3rqI#Jw3NWS#t^BsXM{$glVbCn+HB~g*0jw^cWj{} z5qH&wDo?9%ga;a662?rPSo?(X=hq^ca2?2lG#2LYFsUY>n5d7_hhG`ZYSW{BL1>x><9oZTCRgnfo4J!&Q|9l<>!)j z!_kY+wO)u+Q}P98F@W0>RH2^9%zz{2>OrM|H4L7knfiGb9<FXJLXs!oK^AVLbEV(d~t|C|6NUuh)LuyP0j=!7{NLOAdP z%yV$Q(|Ldh*F-O?MGlf&+hcjkHjG778(CmpR#SYz`0USA>3o?pd_!=4v0O)nw0Dpt zYSCAS3u(-I5;*FfyD%LN-PFyqL0}X3dv4Wm}2!6KcF5@ z>7>vqka9MFZ#a&QM-!_kR~$i2gb?~3CV-?j9H~(UqyB7Ughg2bdo6zz~`N4O3R+ikEWs}yu}{s-VTJbaqsa) zhIPSXlRs>NZJS*lIUP(=n{t(iuIMPEiI@h@$NGsC&+}z)oH58d%P=Yw1W0PmNf+YF zI~)*!q-^(;@9ramm*&e`&hmx@8jkB5{yTFG^xhe&{q3~_@{7o8XQLqZ-F+)TE^#H=FDvho}4aHyn0Xia1I`cI6WE|H9EIZQ810rB8H~G7qCkCQ&2==AZWsw2 z5X69Z8Da8i5<{U2qvkAwGY9i>NuW4-;+I7i0h_-V)9BL!V12e6X2O7tNmA@N)aQ!d z`N?;cE}8fDH|oH5igwy!R%-HZ_;gvRH_@Ck;mn07Ly{2r6c}BIFlu|8vr z*4_O6Cd}`LZ@MVvbC^j6DzNM{!@qf8DJFZbe6|c!MP+7K5?bb_zij0*P5L8#zIY%dItIAl`CQ@x&h#M%;%t`$vZcgEbRzmoLBHctaR~xnpdkq;hjuEsD*Ao zt547{ur?4xEt8yhdW>_ginm>ibN+gM67A7?@>M~&%ai_kGqLZff4K*yzxyL<6iaOB zQLh%@Z_%Uv13pNHD-YzP3i;k#8I{RlUx$oS)cqB8FX@m(KSf>~K^HQP04ZWP0>sHz zeUK<;D7Y>!B6lwPgg!}>G>}guBs`YAE9VX41>9{e0c>|XJHb#e+oK@uDeG6zam}2A zpKzy#%hZ5z5hWIs7txLVg+)n-igWSCw+Nhw2SSQiivY>J>T^_$;!vQxwFr{F$VtM! zXfJ0jWSFwYur%bj0`-)j6H8@_*rP5{D0q2lBn30Q(T|~6hEi~0?8UPwE5({_mITXl zYGJCmfP#S7OPEZRNdY8{o5xE{&&-@5JfVa77gm&Q6T)L){dOGo@c(b`>~>^Jj`R8| zgzgL+np55N*MQ|GID*g+^Z>Lqq6iSAOpY)7_F8L2?%h>&&YXcr3~jpmrt9n6JAZd( zWJF{{!@4g5G_MD+)6EeOKr(Bm*AW85DC;8R+fv3DzB0lAgK>&1o}G2 z`X|q7RYk$zPwxc}bn-zhPLLl)OJY694FbgvX>Vu|@YFUwR`hnK!aS6T)Rv;IMZ~b- ze!Nm+ihGXD$7DIGG9s_Tt2V7|AjFh*gLZs(lUs!DVd0+>L zl=bW{eo9Aw$K%LraY$mVbNuX2KHmIFcuJQT7^U(ct8DJmC(HrSeIb)-eEI}25?~U2 z2%vXjWojyfLIpXNHKC_0a`k7g2~tRXn5hp7?TLkkU`x@~r7Fn7LIFPTpCDIQ5?((+ zt&FIFe9J)-OGT4yRwCu|p1dMQVCbbFd^C;->?|he8_Kd)6-rB9rL(xmNk=lP?;0Jn zgXT6)hx;DtJF5Tg6SPHV;R*Dm-66(Y6iWm7{}S61=naUK|03)rb&G z71bwBwiZ&(>}=ueXE8GT8VLeE#toR`+g{yn#UfX?VzGJn%g(|aeM4RDh0=#@Lf6IA z+W>WPBu#V;O-Z~YtX~vap9OMguVZAQQ)5eEZUVCm*`-R2ZyMill8~NQPNu=^++-Oi zb6K#~q0C>Xb~+ff7**Qp4ZEJXS07`srsphL#{#26`4-mkdIr~3jxV^bhjsTrP*9OF z=t@Zf_srCpJLqhv2$(m>&3b6)j?8dWE4~8?eW?0l$-lQHe`k7(w+0L$M}WAV4&ZcW zz%c6^bwq&e47Z=o#u7lI$!rPDJ+$Td{@&#V&~q9gfoj=9tB#IRO`O0%^OpVN{>f zI0hQXRN|7F6JTuNrIn9q>q*$7zg0j@LSdzCj9B^EBz` zSmb3*pqiy#oH&T%CWb?$f#*BV#`*;6rpfs$NXFJv6AmcJp-g?ofd=g(1LC~|D-;W2 zSu56~i8E{=UVj7N56Nv345`Zk#8zi5D^DNZqF|m$BytT~(5jK;xf;ajvYP5*@nYs>2DDt%O%dM#b(8_7