From 007b5a7e6bb620912cddda33e67f788cdeb5b73b Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Sun, 9 Feb 2025 13:05:58 +0100 Subject: [PATCH 01/18] split coding into dev tools and coding puzzles; fix intra-links to scroll to top --- src/components/layout/Navigation.tsx | 10 ++++++++-- src/content/posts/2017-11-06-python-tips-tricks.md | 2 +- src/content/posts/2017-12-20-christmas-routes.md | 2 +- src/content/posts/2018-04-08-dc-dungeon-code.md | 3 +-- src/content/posts/2019-02-08-data-science-in-remote.md | 8 +++----- ...1-06-12-use-python-without-installing-on-windows.md | 2 +- src/content/posts/2022-05-28-graph-ql.md | 1 - src/utils/constants.ts | 6 ++++-- 8 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/components/layout/Navigation.tsx b/src/components/layout/Navigation.tsx index c842fae..8c92233 100644 --- a/src/components/layout/Navigation.tsx +++ b/src/components/layout/Navigation.tsx @@ -1,10 +1,16 @@ -import { useContext, useState } from 'react'; -import { NavLink } from 'react-router-dom'; +import { useContext, useEffect, useState } from 'react'; +import { NavLink, useLocation } from 'react-router-dom'; import { DarkModeContext } from '../../utils/darkMode'; export default function Navigation() { const { isDarkMode, toggleDarkMode } = useContext(DarkModeContext); const [isMenuOpen, setIsMenuOpen] = useState(false); + const location = useLocation(); + + // Scroll to top on route change + useEffect(() => { + window.scrollTo(0, 0); + }, [location.pathname]); const toggleMenu = () => setIsMenuOpen(!isMenuOpen); const closeMenu = () => setIsMenuOpen(false); diff --git a/src/content/posts/2017-11-06-python-tips-tricks.md b/src/content/posts/2017-11-06-python-tips-tricks.md index 9dbba6a..d65a812 100644 --- a/src/content/posts/2017-11-06-python-tips-tricks.md +++ b/src/content/posts/2017-11-06-python-tips-tricks.md @@ -3,7 +3,7 @@ title: Python Tips & Tricks date: 2017-11-06T00:00:00+00:00 permalink: /posts/python-tips-tricks categories: - - Coding + - Dev tools isPinned: false --- diff --git a/src/content/posts/2017-12-20-christmas-routes.md b/src/content/posts/2017-12-20-christmas-routes.md index e21d63b..e371d3f 100644 --- a/src/content/posts/2017-12-20-christmas-routes.md +++ b/src/content/posts/2017-12-20-christmas-routes.md @@ -3,7 +3,7 @@ title: Christmas routes date: 2017-12-20T22:43:43+00:00 permalink: /posts/christmas-routes/ categories: - - AI + - Coding puzzles heroImage: /content/santa.jpg heroImageWidth: 80% heroImageHeight: 50% diff --git a/src/content/posts/2018-04-08-dc-dungeon-code.md b/src/content/posts/2018-04-08-dc-dungeon-code.md index 608223b..0129a3a 100644 --- a/src/content/posts/2018-04-08-dc-dungeon-code.md +++ b/src/content/posts/2018-04-08-dc-dungeon-code.md @@ -3,8 +3,7 @@ title: "DC: Dungeon & Code" date: '2018-04-08 22:43:44 +0100' permalink: /posts/dc-dungeon-code/ categories: -- Coding -- AI +- Coding puzzles heroImage: /content/yX1T7D.png heroImageWidth: 70% --- diff --git a/src/content/posts/2019-02-08-data-science-in-remote.md b/src/content/posts/2019-02-08-data-science-in-remote.md index 6e82da8..99b28d1 100644 --- a/src/content/posts/2019-02-08-data-science-in-remote.md +++ b/src/content/posts/2019-02-08-data-science-in-remote.md @@ -3,9 +3,7 @@ title: Data Science in remote date: '2019-02-08 00:00:00 +0000' permalink: /posts/data-science-in-remote/ categories: -- AI -- Coding -- Work +- Dev tools isPinned: true --- @@ -70,8 +68,8 @@ The main application of having a server is not only to run experiments when you' ## Notebooks -As explained in -this post, Jupyter notebooks are very powerful tools for Python easy prototyping, but also for intensive development. However, one typically runs the jupyter server in local, and connect via browser. How do we do this when we want the Python to run in our remote box? +As explained in the Python tips and tricks +post, Jupyter notebooks are very powerful tools for Python easy prototyping, but also for intensive development. However, one typically runs the jupyter server in local, and connect via browser. How do we do this when we want the Python to run in our remote box? 1. Install Jupyter lab in the remote box to be able to run the notebook server: `conda install jupyterlab` diff --git a/src/content/posts/2021-06-12-use-python-without-installing-on-windows.md b/src/content/posts/2021-06-12-use-python-without-installing-on-windows.md index e676328..9b69225 100644 --- a/src/content/posts/2021-06-12-use-python-without-installing-on-windows.md +++ b/src/content/posts/2021-06-12-use-python-without-installing-on-windows.md @@ -3,7 +3,7 @@ title: Python without installing on Windows date: 2021-06-11T19:04:03+00:00 permalink: /posts/cx_freeze/ categories: - - Coding + - Dev tools heroImage: /content/tremp.jpeg heroImageWidth: 60% --- diff --git a/src/content/posts/2022-05-28-graph-ql.md b/src/content/posts/2022-05-28-graph-ql.md index 3cf6de3..bb3fd1e 100644 --- a/src/content/posts/2022-05-28-graph-ql.md +++ b/src/content/posts/2022-05-28-graph-ql.md @@ -6,7 +6,6 @@ header: image: /content/hackathon.png categories: - Work - - Coding --- Nowadays, it is common in many startups to have playground events for engineers to encourage diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 7ef9104..3edc524 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,4 +1,3 @@ -export const CATEGORIES = ['Academia', 'AI', 'Coding', 'Maths', 'Off-topic', 'Work']; export const POSTS_PER_PAGE = 5; export const categoryColors: { [key: string]: string } = { @@ -6,6 +5,9 @@ export const categoryColors: { [key: string]: string } = { 'Academia': 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300', 'Work': 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300', 'Maths': 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-300', - 'Coding': 'bg-pink-100 text-pink-800 dark:bg-pink-900 dark:text-pink-300', + 'Dev tools': 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300', + 'Coding puzzles': 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300', 'AI': 'bg-cyan-100 text-cyan-800 dark:bg-cyan-900 dark:text-cyan-300' }; + +export const CATEGORIES = Object.keys(categoryColors); From e75c21fb19a74aed623a9e7eaef3b7b1a2e86173 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Sun, 9 Feb 2025 16:10:27 +0100 Subject: [PATCH 02/18] commit only new DS on remote page --- ... 2019-02-08-data-science-on-remote-old.md} | 6 +- .../2025-02-08-data-science-on-remote.md | 120 ++++++++++++++++++ src/utils/constants.ts | 2 +- 3 files changed, 124 insertions(+), 4 deletions(-) rename src/content/posts/{2019-02-08-data-science-in-remote.md => 2019-02-08-data-science-on-remote-old.md} (98%) create mode 100644 src/content/posts/2025-02-08-data-science-on-remote.md diff --git a/src/content/posts/2019-02-08-data-science-in-remote.md b/src/content/posts/2019-02-08-data-science-on-remote-old.md similarity index 98% rename from src/content/posts/2019-02-08-data-science-in-remote.md rename to src/content/posts/2019-02-08-data-science-on-remote-old.md index 99b28d1..376c417 100644 --- a/src/content/posts/2019-02-08-data-science-in-remote.md +++ b/src/content/posts/2019-02-08-data-science-on-remote-old.md @@ -1,10 +1,10 @@ --- -title: Data Science in remote +title: Data Science on remote (OLD) date: '2019-02-08 00:00:00 +0000' -permalink: /posts/data-science-in-remote/ +permalink: /posts/data-science-in-remote-old/ categories: - Dev tools -isPinned: true +isPinned: false --- Today we'll see some tips and tricks when working (but not only) on diff --git a/src/content/posts/2025-02-08-data-science-on-remote.md b/src/content/posts/2025-02-08-data-science-on-remote.md new file mode 100644 index 0000000..a3b5c23 --- /dev/null +++ b/src/content/posts/2025-02-08-data-science-on-remote.md @@ -0,0 +1,120 @@ +--- +title: Data Science on remote +date: '2025-02-08 00:00:00 +0000' +permalink: /posts/data-science-in-remote/ +categories: +- Dev tools +isPinned: false +--- + +In this post, we'll see some tips and tricks that I use when working (but not only) on remote. + +*Disclaimer: all info written in this post assumes a Mac as your local, and Ubuntu as remote. Most of it should work also with other combinations of these two.* + +## Why Work on a Remote Machine? + +There are several reasons to work on a remote machine, including: + +- **Resource Limitations:** Running computationally heavy tasks that require more CPU, memory, or storage than your local machine can handle. +- **Accessibility:** Accessing your environment from different locations when you're away from your primary computer. +- **Collaboration:** Sharing a centralized machine with other team members for easier data and environment access. +- **Security:** Using secure remote environments for sensitive data that shouldn't reside on a local device. +- **Scalability:** Leveraging cloud-based resources that can be scaled up or down depending on workload needs. + +## Accessing a Remote Machine + +To access a remote server, you can use: + +```bash +ssh username@ip_address +``` + +This requires entering your password, but you can set up passwordless access using SSH keys: + +1. Generate an SSH key pair locally: + ```bash + ssh-keygen -t rsa + ``` +2. Create the `.ssh` directory on the remote machine: + ```bash + ssh username@ip_address + mkdir -p .ssh + ``` +3. Copy the public key to the remote machine: + ```bash + cat .ssh/id_rsa.pub | ssh username@ip_address 'cat >> .ssh/authorized_keys' + ``` + +## Simplifying SSH with Configuration + +Instead of typing full SSH commands, configure shortcuts in `~/.ssh/config`: + +```bash +Host marc + HostName ip_address + User username + IdentityFile ~/.ssh/id_rsa +``` + +Now you can simply use: + +```bash +ssh marc +``` + +## File Transfer + +### Using `scp` + +Transfer files between your local machine and the remote server. + +- From remote to local: + ```bash + scp marc:~/titanic.log . + ``` +- From local to remote: + ```bash + scp -r ~/experiments/results marc:~/results/ + ``` + +### Using `rsync` + +Synchronize directories efficiently with `rsync`. The following command synchronizes files from the remote machine to the local directory, skipping files that already exist: + +```bash +rsync -arv --ignore-existing --progress marc:/home/marc/results experiments/results/ +``` + +## Running Shells in the Background + +Running long processes remotely requires keeping them active even if the connection drops. Use `tmux` to manage persistent sessions. + +### `tmux` Commands + +- List sessions: + ```bash + tmux ls + ``` +- Create a new session: + ```bash + tmux new -s name + ``` +- Attach to an existing session: + ```bash + tmux attach -t name + ``` +- Detach from a session (Control + b, then d) +- Kill all sessions: + ```bash + killall tmux + ``` +- Scrolling: Enter scroll mode with `Control + b` followed by `[`. Navigate using arrow keys. To exit scroll mode, press `q`. + +With these tools and techniques, you'll be more efficient and productive when working remotely. + + + ## Conclusion + +In this post, I have shown some of the tricks I have learned in the recent years for working on remote and with Jupyter notebooks. + +As always, any recommendation, suggestion or improvement, please let me know. Thanks for reading! diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 3edc524..81408c4 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -10,4 +10,4 @@ export const categoryColors: { [key: string]: string } = { 'AI': 'bg-cyan-100 text-cyan-800 dark:bg-cyan-900 dark:text-cyan-300' }; -export const CATEGORIES = Object.keys(categoryColors); +export const CATEGORIES = Object.keys(categoryColors).sort(); From bafc60845301bf0616cf58ee730f7d5a8d940efa Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Sun, 9 Feb 2025 16:31:01 +0100 Subject: [PATCH 03/18] fix warning in console for Blog --- src/pages/Blog.tsx | 16 +++++---- src/utils/postUtils.ts | 80 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 src/utils/postUtils.ts diff --git a/src/pages/Blog.tsx b/src/pages/Blog.tsx index 5507dde..c33a378 100644 --- a/src/pages/Blog.tsx +++ b/src/pages/Blog.tsx @@ -80,13 +80,15 @@ export default function Blog() { ? prev.filter(c => c !== category) : [...prev, category]; - // Update URL parameters - if (newCategories.length === 1) { - setSearchParams({ category: newCategories[0] }); - } else if (newCategories.length === 0) { - setSearchParams({}); - } - + // Use a separate effect for updating URL params + setTimeout(() => { + const params = new URLSearchParams(); + if (newCategories.length > 0) { + params.set('category', newCategories.sort().join('&')); + } + setSearchParams(params); + }, 0); + return newCategories; }); }; diff --git a/src/utils/postUtils.ts b/src/utils/postUtils.ts new file mode 100644 index 0000000..d9be21f --- /dev/null +++ b/src/utils/postUtils.ts @@ -0,0 +1,80 @@ +import { Post } from '../types/Post'; +import { getPosts } from './PostLoader'; +import frontMatter from 'front-matter'; + +export interface PostAttributes { + title: string; + date: string; + categories: string[]; + permalink?: string; + heroImage?: string; + heroImageWidth?: string; +} + +export async function getAllPosts(): Promise { + return getPosts(); +} + +export async function getPost(slug: string): Promise { + const DEBUG = false; + try { + if (DEBUG) console.log('πŸ” Looking for post with slug:', slug); + + const allPosts = await getPosts(); + const postByPermalink = allPosts.find(post => { + const cleanPermalink = post.permalink.replace(/^\/|\/$/g, '').split('/').pop(); + const cleanSlug = slug.replace(/^\/|\/$/g, '').split('/').pop(); + if (DEBUG) console.log(`Comparing ${cleanPermalink} with ${cleanSlug}`); + return cleanPermalink === cleanSlug; + }); + + if (postByPermalink) { + if (DEBUG) console.log('βœ… Found post by permalink'); + return postByPermalink; + } + + const markdownFiles = import.meta.glob('/src/content/posts/*.md', { + query: '?raw', + import: 'default' + }); + + const filepath = Object.keys(markdownFiles).find(path => + path.includes(slug) || path.endsWith(`${slug}.md`) + ); + + if (!filepath || !markdownFiles[filepath]) { + console.error(`❌ Post not found with slug: ${slug}`); + throw new Error(`Post not found: ${slug}`); + } + + const content = await markdownFiles[filepath]() as string; + return parseMarkdownFile(content, filepath); + } catch (error) { + console.error('Error loading post:', error); + throw error; + } +} + +export function parseMarkdownFile(content: string, filepath: string): Post { + const { attributes, body } = frontMatter(content); + + if (!attributes || !attributes.title || !attributes.date) { + console.error('❌ Missing required frontmatter in post:', filepath); + throw new Error('Invalid post format'); + } + + const post: Post = { + title: attributes.title, + date: new Date(attributes.date).toISOString(), + categories: attributes.categories || ['Uncategorized'], + content: body, + permalink: attributes.permalink || filepath + .replace('/src/content/posts/', '') + .replace('.md', ''), + filename: filepath.split('/').pop() || '', + heroImage: attributes.heroImage, + heroImageWidth: attributes.heroImageWidth + }; + + return post; +} From 7e94fff3d4eaed7a039efe017319dca4eb10316a Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Sun, 9 Feb 2025 16:32:25 +0100 Subject: [PATCH 04/18] remove postUtils for now --- src/utils/postUtils.ts | 80 ------------------------------------------ 1 file changed, 80 deletions(-) delete mode 100644 src/utils/postUtils.ts diff --git a/src/utils/postUtils.ts b/src/utils/postUtils.ts deleted file mode 100644 index d9be21f..0000000 --- a/src/utils/postUtils.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Post } from '../types/Post'; -import { getPosts } from './PostLoader'; -import frontMatter from 'front-matter'; - -export interface PostAttributes { - title: string; - date: string; - categories: string[]; - permalink?: string; - heroImage?: string; - heroImageWidth?: string; -} - -export async function getAllPosts(): Promise { - return getPosts(); -} - -export async function getPost(slug: string): Promise { - const DEBUG = false; - try { - if (DEBUG) console.log('πŸ” Looking for post with slug:', slug); - - const allPosts = await getPosts(); - const postByPermalink = allPosts.find(post => { - const cleanPermalink = post.permalink.replace(/^\/|\/$/g, '').split('/').pop(); - const cleanSlug = slug.replace(/^\/|\/$/g, '').split('/').pop(); - if (DEBUG) console.log(`Comparing ${cleanPermalink} with ${cleanSlug}`); - return cleanPermalink === cleanSlug; - }); - - if (postByPermalink) { - if (DEBUG) console.log('βœ… Found post by permalink'); - return postByPermalink; - } - - const markdownFiles = import.meta.glob('/src/content/posts/*.md', { - query: '?raw', - import: 'default' - }); - - const filepath = Object.keys(markdownFiles).find(path => - path.includes(slug) || path.endsWith(`${slug}.md`) - ); - - if (!filepath || !markdownFiles[filepath]) { - console.error(`❌ Post not found with slug: ${slug}`); - throw new Error(`Post not found: ${slug}`); - } - - const content = await markdownFiles[filepath]() as string; - return parseMarkdownFile(content, filepath); - } catch (error) { - console.error('Error loading post:', error); - throw error; - } -} - -export function parseMarkdownFile(content: string, filepath: string): Post { - const { attributes, body } = frontMatter(content); - - if (!attributes || !attributes.title || !attributes.date) { - console.error('❌ Missing required frontmatter in post:', filepath); - throw new Error('Invalid post format'); - } - - const post: Post = { - title: attributes.title, - date: new Date(attributes.date).toISOString(), - categories: attributes.categories || ['Uncategorized'], - content: body, - permalink: attributes.permalink || filepath - .replace('/src/content/posts/', '') - .replace('.md', ''), - filename: filepath.split('/').pop() || '', - heroImage: attributes.heroImage, - heroImageWidth: attributes.heroImageWidth - }; - - return post; -} From 669d24e5c0a43e4cab36aa4661ddb417819e18b6 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Sun, 9 Feb 2025 16:39:40 +0100 Subject: [PATCH 05/18] split PostCard into multiple files --- src/components/MarkdownComponents.tsx | 138 +++++++++++++++++++ src/components/Math.tsx | 50 +++++++ src/components/PostCard.tsx | 187 +------------------------- 3 files changed, 189 insertions(+), 186 deletions(-) create mode 100644 src/components/MarkdownComponents.tsx create mode 100644 src/components/Math.tsx diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx new file mode 100644 index 0000000..900587c --- /dev/null +++ b/src/components/MarkdownComponents.tsx @@ -0,0 +1,138 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; +import Math from './Math'; +import type { Components } from 'react-markdown'; + +function processMathInText(text: string) { + const parts = text.split(/(\$\$[^\$]+\$\$|\\begin{[\s\S]*?\\end{[\s\S]*?}|\$[^\$]+\$)/g); + + return parts.map((part, i) => { + if (part.startsWith('$$') || (part.startsWith('\\begin') && part.endsWith('\\end'))) { + // Block math + const mathContent = part.startsWith('$$') + ? part.slice(2, -2) + : part; + return {mathContent}; + } + if (part.startsWith('$') && part.endsWith('$')) { + // Inline math + const mathContent = part.slice(1, -1); + return {mathContent}; + } + // Plain text + return part; + }); +} + +const MarkdownComponents: Components = { + code({ node, inline, className, children, ...props }: any) { + const match = /language-(\w+)/.exec(className || ''); + const content = String(children).trim(); + + // Handle math blocks + if (content.startsWith('$') && content.endsWith('$')) { + const mathContent = content.slice(1, -1); + return {mathContent}; + } + if (content.startsWith('$$') && content.endsWith('$$')) { + const mathContent = content.slice(2, -2); + return {mathContent}; + } + + const language = match ? match[1] : undefined; + + return !inline && language ? ( + + {content} + + ) : ( + + {children} + + ); + }, + p(props) { + const { children, ...rest } = props; + + return ( +

+ {React.Children.map(children, child => { + if (typeof child === 'string') { + // Process text for inline and block math + const parts = processMathInText(child); + + // Return all parts together (text and inline math) + return parts; + } + return child; + })} +

+ ); + }, + a(props) { + const { href, children, ...rest } = props; + if (href && href.startsWith('/')) { + return ( + + {children} + + ); + } + return {children}; + }, + + strong(props) { + const { children, ...rest } = props; + return ( + + {React.Children.map(children, child => { + if (typeof child === 'string') { + return processMathInText(child); + } + return child; + })} + + ); + }, + em(props) { + const { children, ...rest } = props; + return ( + + {React.Children.map(children, child => { + if (typeof child === 'string') { + return processMathInText(child); + } + return child; + })} + + ); + }, + i(props) { + const { children, ...rest } = props; + return ( + + {React.Children.map(children, child => { + if (typeof child === 'string') { + return processMathInText(child); + } + return child; + })} + + ); + }, + img(props) { + return ( + + + ); + } +}; + +export default MarkdownComponents; diff --git a/src/components/Math.tsx b/src/components/Math.tsx new file mode 100644 index 0000000..a237c2b --- /dev/null +++ b/src/components/Math.tsx @@ -0,0 +1,50 @@ +import katex from 'katex'; +import 'katex/dist/katex.min.css'; + +function Math({ children, inline = false }: { children: string, inline?: boolean }) { + let html = ''; + try { + html = katex.renderToString(children, { + displayMode: !inline, + throwOnError: false, + trust: true, + strict: false, + fleqn: false, + output: 'html', + maxSize: 10, + maxExpand: 1000, + globalGroup: true, + macros: { + "\\RR": "\\mathbb{R}", + "\\NN": "\\mathbb{N}", + "\\ZZ": "\\mathbb{Z}" + } + }); + } catch (error) { + console.error('KaTeX render error:', error, 'Input LaTeX:', children); + html = `${children}`; + } + + return inline ? ( + + ) : ( + + ); +} + +export default Math; diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index eb88ac4..469e6ca 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -1,64 +1,11 @@ -import React from 'react'; import { Post } from '../types/Post'; import ReactMarkdown from 'react-markdown'; import { Link } from 'react-router-dom'; import remarkGfm from 'remark-gfm'; -import katex from 'katex'; import rehypeRaw from 'rehype-raw'; -import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; -import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; -import 'katex/dist/katex.min.css'; -import type { Components } from 'react-markdown'; +import MarkdownComponents from './MarkdownComponents'; import { categoryColors } from '../utils/constants'; -function Math({ children, inline = false }: { children: string, inline?: boolean }) { - let html = ''; - try { - html = katex.renderToString(children, { - displayMode: !inline, - throwOnError: false, - trust: true, - strict: false, - fleqn: false, - output: 'html', - maxSize: 10, - maxExpand: 1000, - globalGroup: true, - macros: { - "\\RR": "\\mathbb{R}", - "\\NN": "\\mathbb{N}", - "\\ZZ": "\\mathbb{Z}" - } - }); - } catch (error) { - console.error('KaTeX render error:', error, 'Input LaTeX:', children); - html = `${children}`; - } - - return inline ? ( - - ) : ( - - ); -} - - - function preprocessContent(content: string): string { // First, normalize line breaks in align environments let processed = content.replace(/\\\\(\s*\n\s*&)/g, '\\\\ &'); @@ -99,138 +46,6 @@ function preprocessContent(content: string): string { return processed; } -function processMathInText(text: string) { - const parts = text.split(/(\$\$[^\$]+\$\$|\\begin{[\s\S]*?\\end{[\s\S]*?}|\$[^\$]+\$)/g); - - return parts.map((part, i) => { - if (part.startsWith('$$') || (part.startsWith('\\begin') && part.endsWith('\\end'))) { - // Block math - const mathContent = part.startsWith('$$') - ? part.slice(2, -2) - : part; - return {mathContent}; - } - if (part.startsWith('$') && part.endsWith('$')) { - // Inline math - const mathContent = part.slice(1, -1); - return {mathContent}; - } - // Plain text - return part; - }); -} - - - -const MarkdownComponents: Components = { - code({ node, inline, className, children, ...props }: any) { - const match = /language-(\w+)/.exec(className || ''); - const content = String(children).trim(); - - // Handle math blocks - if (content.startsWith('$') && content.endsWith('$')) { - const mathContent = content.slice(1, -1); - return {mathContent}; - } - if (content.startsWith('$$') && content.endsWith('$$')) { - const mathContent = content.slice(2, -2); - return {mathContent}; - } - - const language = match ? match[1] : undefined; - - return !inline && language ? ( - - {content} - - ) : ( - - {children} - - ); - }, - p(props) { - const { children, ...rest } = props; - - return ( -

- {React.Children.map(children, child => { - if (typeof child === 'string') { - // Process text for inline and block math - const parts = processMathInText(child); - - // Return all parts together (text and inline math) - return parts; - } - return child; - })} -

- ); - }, - a(props) { - const { href, children, ...rest } = props; - if (href && href.startsWith('/')) { - return ( - - {children} - - ); - } - return {children}; - }, - - strong(props) { - const { children, ...rest } = props; - return ( - - {React.Children.map(children, child => { - if (typeof child === 'string') { - return processMathInText(child); - } - return child; - })} - - ); - }, - em(props) { - const { children, ...rest } = props; - return ( - - {React.Children.map(children, child => { - if (typeof child === 'string') { - return processMathInText(child); - } - return child; - })} - - ); - }, - i(props) { - const { children, ...rest } = props; - return ( - - {React.Children.map(children, child => { - if (typeof child === 'string') { - return processMathInText(child); - } - return child; - })} - - ); - }, - img(props) { - return ( - - - ); - } -}; - interface PostCardProps { post: Post; isPinned?: boolean; From a26b1d794bbbc7fc5c5b4dd784c0f3d14e9d0406 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Mon, 10 Feb 2025 19:36:07 +0100 Subject: [PATCH 06/18] fix `code` blocks background --- src/components/MarkdownComponents.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx index 900587c..2cf2051 100644 --- a/src/components/MarkdownComponents.tsx +++ b/src/components/MarkdownComponents.tsx @@ -47,13 +47,25 @@ const MarkdownComponents: Components = { {content} - ) : ( - + ) : + // inline blocks + ( + {children} ); From bc0e6994f474350c04830a22a12ae5675a0bb4e0 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Mon, 10 Feb 2025 19:37:24 +0100 Subject: [PATCH 07/18] two new posts: a) jupyterlab on remote , b) uv & warp --- .../2019-02-08-data-science-on-remote-old.md | 173 ----------------- ...9-02-08-jupyter-lab-on-a-remote-machine.md | 73 ++++++++ src/content/posts/2025-01-10-uv-and-warp.md | 174 ++++++++++++++++++ .../2025-02-08-data-science-on-remote.md | 24 ++- 4 files changed, 263 insertions(+), 181 deletions(-) delete mode 100644 src/content/posts/2019-02-08-data-science-on-remote-old.md create mode 100644 src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md create mode 100644 src/content/posts/2025-01-10-uv-and-warp.md diff --git a/src/content/posts/2019-02-08-data-science-on-remote-old.md b/src/content/posts/2019-02-08-data-science-on-remote-old.md deleted file mode 100644 index 376c417..0000000 --- a/src/content/posts/2019-02-08-data-science-on-remote-old.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: Data Science on remote (OLD) -date: '2019-02-08 00:00:00 +0000' -permalink: /posts/data-science-in-remote-old/ -categories: -- Dev tools -isPinned: false ---- - -Today we'll see some tips and tricks when working (but not only) on -remote. This is typical in a data scientist life as layman laptops, at some point, -and especially if you work with big data, entail limitations in memory and/or -speed. - -In most companies or in academia, when you need -to run a huge task you are given a remote machine, either in AWS or in a company/uni -cluster. This means that you won't have physical access, and you can only connect -there remotely. - - **Disclaimer**: all info written in this post assumes a Mac as your local, and Ubuntu as remote. Most of it should work also with other combinations of these two. - -## Access to a remote machine - -Accessing to the cluster usually is as easy as writing: - - ```ssh username@ip``` - -This will require you to write your password, but there is a solution to avoid writing your password all the time (all from your local, source): - -1. `ssh-keygen -t rsa` -1. `ssh username@ip mkdir -p .ssh` -1. `cat .ssh/id_rsa.pub | ssh username@ip 'cat >> .ssh/authorized_keys'` - -In addition to this, I like to define my alias to access to it, so adding to the `.bashrc` file something like: - -` -alias sshmarc=ssh username@ip -` - -so that just typing something short I can access to it. - -## File transfer - -Always do this from your local machine. Examples: - -From cluster to local (the dot means that it will be copied to the current directory): - -`scp marc@172.16.6.35:~/titanic.log .` - -From local to cluster: - -`scp -r ~/experiments/results marc@172.16.6.35:~/results/` - -A way to just synchronise is using rsync: - -` -rsync -arv --ignore-existing --progress marc@172.16.6.32:/home/marc/results experiments/results/` - -## Run shells on background - -The main application of having a server is not only to run experiments when you're connected, but to leave it the whole night, so that you don't have to wait. However, if you close the ssh connection, you'll lose everything you had. A workaround for that is running the processes on background, or using a terminal multiplexer. While I started with `screen`, I've finally adopted `tmux` as my favorite one. A short cheatsheet next: - -* `tmux ls` -* `tmux new -s name` -* `tmux attach -t name` -* control + b, and then d => detach -* `killall tmux` - -## Notebooks - -As explained in the Python tips and tricks -post, Jupyter notebooks are very powerful tools for Python easy prototyping, but also for intensive development. However, one typically runs the jupyter server in local, and connect via browser. How do we do this when we want the Python to run in our remote box? - -1. Install Jupyter lab in the remote box to be able to run the notebook server: `conda install jupyterlab` - -1. `jupyter lab --no-browser --port=8089.` - -1. Now in your local terminal run: `ssh -N -L 8000:localhost:8089 marc@172.16.6.32`. - -There will be no answer, just leave this open. -This creates a tunnel from your port 8000 to the port 8089 in the server (these ports are examples and can be changed to any number), where the jupyter server is listening. Note that if you -have multiple servers, they can all listen in the same port, but you have to tunnel them to different ports, so changing the 8000! - -Open a browser and go to `localhost:8000`. The password in step2 will be asked, and you should be able to work as in local. - -Optional: add the tunnel as in `ssh -fN -L 8000:localhost:8089 marc@172.16.6.32` -to your `~/.bashrc`, and it will be active but in the background, and started every time you open a new terminal. So no need to have a terminal blocked (but do not close it!). -To make it effective either restart terminal or `source ~/.bashrc`. - - -## Jupyter lab as a service - -After previous section, you're able to run notebooks on the server, and accessing to them via browser. So, even though it says `localhost:8000`, you're in the server! (tunnels dark magic). However, it's really annoying going to the server and start the sever every time. This can be automated by running it as a service source: - -* Set the service file `/usr/lib/systemd/system/jupyter.service` (yes, you probably need to create some dirs) as in -```bash -[Unit] -Description=Jupyter Lab - -[Service] -Type=simple -PIDFile=/run/jupyter.pid -ExecStart=/home/marc/miniconda3/bin/jupyter lab --no-browser --port=8089 -User=marc -Group=marc -WorkingDirectory=/home/marc -Restart=always -RestartSec=10 -#KillMode=mixed -[Install] -WantedBy=multi-user.target -``` - -* `sudo systemctl enable jupyter.service` -* `sudo systemctl daemon-reload` -* `jupyter lab --generate-config` -* `jupyter lab password` -* `sudo systemctl restart jupyter.service` - -## Notebook tips and tricks - -### Autoreload - -(source) - -When you change something in sources, usually you have to restart the kernel. This allows to automatically import functions again. Just add - -`%load_ext autoreload`
-`%autoreload 2` - -### Table of contents - -Check out this useful [extension](https://github.com/jupyterlab/jupyterlab-toc). -Especially interesting when you're writing a tutorial out of a notebook. - -### Kernels auto-discovery - -Check out [this](https://github.com/Anaconda-Platform/nb_conda_kernels), allowing -you to have available every conda environment irrespective of which environment -you launched the server from. With this enabled, the `python -m spacy ipykernel ...` -in my previous post is no more required. - -### Jupytext - -Turn your notebooks into .py files automatically synchronised, see [this](https://github.com/mwouts/jupytext). Many advantages: -* Good to keep track in version control -* In this regard, when submitting a Pull Request this makes easier to comment on -notebooks if necessary -* One can potentially apply [black](https://github.com/psf/black) to auto-format the code in your notebok by -applying *black* to your .py file and then synchronising with the notebook - - -### Display various dataframes side by side - - -Use the following code: - -
- -

- -and even nicer, if you have a list of dataframes, the following will show them in rows of 3 columns: - - -
- -

- - ## Conclusion - -In this post, I have shown some of the tricks I have learned in the recent years for working on remote and with Jupyter notebooks. - -As always, any recommendation, suggestion or improvement, please let me know. Thanks for reading! diff --git a/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md b/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md new file mode 100644 index 0000000..e7c9f83 --- /dev/null +++ b/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md @@ -0,0 +1,73 @@ +--- +title: Jupyterlab on a Remote Machine +date: '2019-02-08 00:00:00 +0000' +permalink: /posts/jupyter-lab-on-a-remote-machine/ +categories: +- Dev tools +isPinned: false +--- + +Today we'll see my config for running Jupyter notebooks when working on a Remote Machine. This is typical in a data scientist / ML engineer life as typical laptops eventually cannot process tasks due to limitations on memory, speed or disk space. + + **Disclaimer**: all info written in this post assumes a Mac as your local, and Ubuntu as remote. Most of it should work also with other combinations of these two. + + +## Notebooks + +Jupyter notebooks are very powerful tools for easy prototyping in Python (or even R!), but also for intensive development. However, one typically runs the Jupyter server in local, and connect via browser. How do we do this when we want the Python to run in our remote box? + +1. Install Jupyter lab in the remote box to be able to run the notebook server, e.g. `conda install jupyterlab` if working with `conda`. + +1. `jupyter lab --no-browser --port=8089.` + +1. Now in your local terminal run: `ssh -N -L 8000:localhost:8089 marc@172.16.6.32`. + +There will be no answer, just leave this open. +This creates a tunnel from your port `8000` to the port `8089` in the remote machine (these ports are just examples and can be changed to any number), where the Jupyter server is listening. Note that if you +have multiple servers, they can all listen in the same port e.g. `8089`, but you have to tunnel them to different *local* ports, so changing the `8000`! + +Open a browser and go to `localhost:8000`, and that's it! + +**Optional**: add the tunnel as in `ssh -fN -L 8000:localhost:8089 marc@172.16.6.32` +to your `~/.bashrc`. This will make the tunnel always active but in the background, and started every time you open a new terminal. So no need to have a terminal blocked (but do not close it!). +To make it effective either restart the terminal or `source ~/.bashrc`. + + +## Jupyter lab as a service + +Now you're able to run notebooks on the remote machine, and accessing to them via browser. So, even though it says `localhost:8000`, you're in the server! However, it's really annoying going to the remote machine and start the Jupyter lab server every time. This can be automated by running it as a service source: + +* Set the service file `/usr/lib/systemd/system/jupyter.service` (yes, you probably need to create some dirs) as in +```bash +[Unit] +Description=Jupyter Lab + +[Service] +Type=simple +PIDFile=/run/jupyter.pid +ExecStart=/home/marc/miniconda3/bin/jupyter lab --no-browser --port=8089 +User=marc +Group=marc +WorkingDirectory=/home/marc +Restart=always +RestartSec=10 +#KillMode=mixed +[Install] +WantedBy=multi-user.target +``` + +* `sudo systemctl enable jupyter.service` +* `sudo systemctl daemon-reload` +* `jupyter lab --generate-config` +* `jupyter lab password` +* `sudo systemctl restart jupyter.service` + + +and that's it. Every time the machine starts, will start this service and let it listen for incoming requests. + + + ## Conclusion + +In this short post, I have shown how to spin up a Jupyter server in your remote machine. This way we can run notebooks in the remote machine with the same experience as if the Jupyter server was running locally! + +As always, any recommendation, suggestion or improvement, please let me know. Thanks for reading! diff --git a/src/content/posts/2025-01-10-uv-and-warp.md b/src/content/posts/2025-01-10-uv-and-warp.md new file mode 100644 index 0000000..3b367da --- /dev/null +++ b/src/content/posts/2025-01-10-uv-and-warp.md @@ -0,0 +1,174 @@ +--- +title: uv and warp +date: '2025-01-10 00:00:00 +0000' +permalink: /posts/uv-and-warp +categories: +- Dev tools +isPinned: true +--- + +Today, I'm sharing a couple of tools I've been using recently and have been real **game-changers**. On the one hand, [uv](https://docs.astral.sh/uv) is an **ultra-fast** Python Package Manager that comes to replace [pip-tools](https://github.com/jazzband/pip-tools) and [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html) in my case. On the other hand, [warp](https://www.warp.dev/) is an **AI-powered terminal** that made me move from [iterm2](https://iterm2.com/). Let's get started πŸš€ + +## **uv**: The Rust-Powered Python Package Manager + +### A little bit of my background + +I've been using Python for years, and like many data scientists, I started using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html) for the Python environment management. With [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html) I would: +- **Environment management**: `conda` creates isolated environments, that can be used to manage each project, so each project can have its own set of dependencies, their versions, but also potentially its **own Python version**. These environments are typically installed in the home directory, separated from the code. This was "the Python way" for me, even though for my pet project [LinguaQuest](https://play.google.com/store/apps/details?id=com.marc.torsoc.linguaquest) I was using `npm` and there, it looked to me more like the native `venv` module I was avoiding with `conda`. +- **Package Management for Non-Python Dependencies**: A major strength of `conda` is its ability to manage dependencies that are not Python packages. Many scientific computing packages rely on underlying C/C++ libraries, Fortran libraries, or other system-level dependencies. Conda can install and manage these dependencies, which pip struggles with. +- **Binary Package Installations**: `Conda` often installs packages as pre-compiled binaries. This can be significantly faster than building packages from source, which is often what `pip` does. + +Then I would have a `setup.py` declaring the dependencies for the project and `pip install` it. + +However, when working in production projects, you want to make sure that the environment is reproducible. So you pin dependencies. The classical simple approach is to `pip freeze > requirements.txt`. + +But then, upgrading dependencies becomes a nightmare because we're pinning sub-dependencies. And conflict resolution is solved by pip, which a) might not be accurate, b) is terribly slow. Sometimes it has to download the package to understand its dependencies. + +At the end of my adventure with Eigen, we started using [poetry](https://python-poetry.org/). This was solving some problems with dependency resolution, but was **realy really slow**. + +Later, during my time at Globality we used [pip-tools](https://github.com/jazzband/pip-tools) to define projects' dependencies. This would look into the dependencies declared in `setup.py`, and generate a `requirements.txt` file. It was working well for most of the issues, but still, was really slow. + +### uv to the rescue! + +Built in Rust, `uv` resolves dependencies [10–100x faster](https://medium.com/@vanessagaigher/python-package-managers-is-uv-really-faster-than-poetry-478da7ff43e4) than `pip/poetry`. It also uses global caching and parallel processing to minimize redundant downloads (e.g., cached installations take ~2s vs 41s for pip). `uv` looks a bit closer to `npm` for Node.js than `conda`. It also creates a `uv.lock` file, but you just manage the `pyproject.toml` file. And the environment is created right inside the project within the `.venv` directory. In their words, it is + +
+A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more. +
+ +and for me, this means that I could remove `conda` and `pip-tools` from my workflow, and just stick to `uv`. + + +### Basic Commands +There is great [documentation](https://docs.astral.sh/uv), and it's not really worth replicating it here. + +#### 1. Project Initialization + Create a new Python project with `uv init`, which generates a `pyproject.toml` file and basic project structure: + ```bash + uv init myproject # Creates project files and a virtual environment + ``` + Now you'll see + + ```bash + $ tree myproject + myproject/ + β”œβ”€β”€ pyproject.toml + └── hello.py + └── README.md + └── .python-version + └── .gitignore + ``` + After this, I recommend doing `uv run hello.py` so the environment is created in `.venv`. Note that every time you do `uv run`, if there are dependencies that are not installed in the virtual environment, they will be automatically installed. See all details in [the documentation](https://docs.astral.sh/uv/concepts/projects/init/#applications). + +#### 2. Dependency Management + Add or remove packages with `uv add` and `uv remove`, which automatically update the `uv.lock` file for reproducible builds: + ```bash + uv add pandas # Installs pandas and its dependencies + uv remove requests # Removes a package and its unused dependencies + uv add "httpx>=0.20" # You can specify package versions with constraints + uv add "httpx @ git+https://github.com/encode/httpx" # Install from git + uv add ../httpx # Install from local directory + ``` + To update a dependency, use also `uv add`. + + +#### 3. Environment Synchronization + Use `uv sync` to ensure the virtual environment matches the lockfile: + ```bash + uv sync # Creates/updates .venv and resolves dependencies + ``` + +#### 4. Updating the Python version + +Simply go to the `.python-version` file and change the version number. Then, when you do `uv run`, it will automatically update the virtual environment and resolve dependencies. + +#### 5. A real example + +This is a real example of `pyproject.toml` file for one of my personal projects: +```toml +[project] +name = "devs-scraper" +version = "0.1.0" +description = """ + A scraper for developments +""" +authors = [ + { name = "marctorsoc" } +] +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "langchain>=0.3.15", + "langchain-ollama>=0.2.2", + "langfuse>=2.57.11", + "langgraph>=0.2.65", + "ollama>=0.4.6", + "python-dotenv>=1.0.1", + ... + "nbconvert>=7.16.6", +] + +[tool.uv.sources] +crawl4ai = { git = "https://github.com/marctorsoc/crawl4ai" } +deboiler = { git = "https://github.com/marctorsoc/deboiler" } + +[project.scripts] +scrape = "scrape:main" + +[build-system] +requires = ["setuptools>=64", "wheel", "cython"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +packages = ["devs_scraper"] + +[tool.setuptools.packages.find] +exclude = ["*.tests", "*.tests.*", "tests.*", "tests"] +``` + +Notes: +* Please see docs [here](https://docs.astral.sh/uv/concepts/projects/config/#build-systems) about configuring the build system. In this case, I chose `setuptools` as the backend. Note that if a build system is not defined, `uv` won't install the project itself, just the dependencies. +* See how to declare dependencies that are not in Pypi, e.g. in Github. I made a fork of each repository to be able to share the code with others. However, you can also use as source a local package and add it like explained above. That will create a new source, e.g. `deboiler = { path = "../deboiler" }`. +* You probably don't need both the section `[tool.setuptools]` and `[tool.setuptools.packages.find]`. Just use one of them to locate the package to be installed. + +### Advanced Workflows +- **Jupyter from VSCode Integration**: While there is a [guide](https://docs.astral.sh/uv/guides/integration/jupyter/#using-jupyter-from-vs-code) on how to do this, I'd recommed simply make `.venv/bin/python` the kernel for the notebook. You don't really need to do anything, just click on the proper buttons 😁. +- **Docker & FastAPI support**: Check the official guides: + - [FastAPI Integration](https://docs.astral.sh/uv/guides/integration/fastapi/) + - [Docker Integration](https://docs.astral.sh/uv/guides/integration/docker/) + + +## **Warp**: The AI-Powered Terminal for Modern Developers + +Warp reimagines the terminal with features that boost productivity and reduce friction. + +### A little bit of my background + +When I started using terminals, I quickly figured I could not continue with the default one. Quickly I moved into the [Terminator](https://gnome-terminator.org/) and later on to [iterm2](https://iterm2.com/). They are both great, but the era of AI came. + +### Key Features +1. **Agent Mode (AI Integration)** + - **Error Debugging**: Get explanations and fixes for errors directly in the terminal. + - **Code Generation**: Generate scripts or commands using natural language (e.g., "Give me the command to check what's on port 8089"). + +2. **IDE-Like Editing** + Edit commands directly in the terminal with syntax highlighting, multi-line support, easy copy-paste, and more. + +2. **Smart Autocompletion** + Context-aware suggestions for commands, flags, and file paths, powered by your command history and system context. + +4. **Typo Correction** + Warp detects typos (e.g., `got commit` β†’ suggests `git commit`) and offers fixes. + +3. **Split Panes** + Run multiple commands simultaneously in split views, ideal for monitoring logs or parallel workflows. + + +## Conlusion + +Today, I've shared two powerful tools that I use every day: + +- **uv** excels in Python workflows with speed and reproducibility. +- **Warp** transforms terminal usage into an AI-enhanced experience. + +Both tools prioritize developer ergonomics, making them indispensable for modern coding. Explore their full potential through their official documentation and community resources! diff --git a/src/content/posts/2025-02-08-data-science-on-remote.md b/src/content/posts/2025-02-08-data-science-on-remote.md index a3b5c23..4abdb05 100644 --- a/src/content/posts/2025-02-08-data-science-on-remote.md +++ b/src/content/posts/2025-02-08-data-science-on-remote.md @@ -1,5 +1,5 @@ --- -title: Data Science on remote +title: Data Science on a Remote Machine date: '2025-02-08 00:00:00 +0000' permalink: /posts/data-science-in-remote/ categories: @@ -7,7 +7,7 @@ categories: isPinned: false --- -In this post, we'll see some tips and tricks that I use when working (but not only) on remote. +In this post, I'll share some practical tips and tricks for using a remote machine for data science, covering first the why, then connection, tmux and more. *Disclaimer: all info written in this post assumes a Mac as your local, and Ubuntu as remote. Most of it should work also with other combinations of these two.* @@ -62,6 +62,8 @@ Now you can simply use: ssh marc ``` +and the same for any other command where you would write `username@ip_address`. You'll see some examples below. + ## File Transfer ### Using `scp` @@ -87,9 +89,7 @@ rsync -arv --ignore-existing --progress marc:/home/marc/results experiments/resu ## Running Shells in the Background -Running long processes remotely requires keeping them active even if the connection drops. Use `tmux` to manage persistent sessions. - -### `tmux` Commands +Running long processes remotely requires keeping them active even if the connection drops. While `screen` is an option, I prefer using `tmux`. Here a cheatsheet of `tmux` commands: - List sessions: ```bash @@ -103,18 +103,26 @@ Running long processes remotely requires keeping them active even if the connect ```bash tmux attach -t name ``` -- Detach from a session (Control + b, then d) +- Detach from a session (`Control + b`, then `d`) - Kill all sessions: ```bash killall tmux ``` - Scrolling: Enter scroll mode with `Control + b` followed by `[`. Navigate using arrow keys. To exit scroll mode, press `q`. -With these tools and techniques, you'll be more efficient and productive when working remotely. +## VS Code's Remote Development: A Game Changer + +If you checked my old posts, you'll see I was big proponent of Pycharm over VScode. However, I used to run notebooks on a Jupyter server, and then connected via browser after setting up a tunnel. You can check [here](/posts/jupyter-lab-on-a-remote-machine/) my old config if still useful at all. I really liked Pycharm's Git integration, especially for merges and comparing branches. And, to be honest, I still think it's a better inferface than the one in VScode. At least with all extensions I tried. + +But at some point I found VSCode's Remotes feature, and it really became a game changer for me. VScode supports: +- Opening notebooks directly in the IDE, which means you get all the advantages of being an IDE (code and imports completion, error highlighting, search, debugging, etc.) +- Running notebooks on the remote machine, with the same experience as if it was running locally +- LLM-powered autocomplete within the notebook itself! +- A table of contents (called Outline) to navigate the notebook. ## Conclusion -In this post, I have shown some of the tricks I have learned in the recent years for working on remote and with Jupyter notebooks. +In this post, I shared some good practices for working with a remote machine, especially for data science projects. With these tools and techniques, you'll be more efficient and productive when working remotely. As always, any recommendation, suggestion or improvement, please let me know. Thanks for reading! From 2b3f2472c48a62c4b943101421f21e394fe9259b Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Tue, 11 Feb 2025 17:48:30 +0100 Subject: [PATCH 08/18] add docker post --- src/content/posts/2023-08-25-docker.md | 235 +++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 src/content/posts/2023-08-25-docker.md diff --git a/src/content/posts/2023-08-25-docker.md b/src/content/posts/2023-08-25-docker.md new file mode 100644 index 0000000..5cb26f7 --- /dev/null +++ b/src/content/posts/2023-08-25-docker.md @@ -0,0 +1,235 @@ +--- +title: Troubleshooting Docker +date: '2023-08-25 00:00:00 +0000' +permalink: /posts/docker +categories: +- Dev tools +isPinned: true +--- + +When I started moving beyond simple experiments and into the world of deploying AI models to production, the importance of Docker became crystal clear. It wasn't just about making things run smoothly on my own machine anymore; it was about ensuring reliability, scalability, and maintainability in a real-world setting. That's when I realized Docker wasn't optional – it was *essential*. + +This post focuses on the Docker commands and troubleshooting skills I found critical for taking AI projects from the lab to production. The first version of this post was written while I was at Globality, where we would containerize our AI models, train with AWS Sagemaker, and deploy to ECS. Sometimes the model would fail to train. Sometimes it would fail to deploy. Let’s get started πŸš€ + +## Docker 101 + +### Core concepts + +Docker is a containerization tool that allows you to package an application along with its dependencies into a lightweight, standalone container. This means that you can run the same application on any machine as long as it has Docker installed. + +You might find a more comprehensive overview [here](https://docs.docker.com/get-started/docker-overview/#docker-objects), but let's cover a few concepts: +* **Container**: A container is an isolated environment that runs a single application. It has its own file system, network stack, and processes. +* **Images**: These are like templates for containers. An image allows you to create multiple containers from it. You can think of an image as a blueprint for building a container. Another analogy is that Docker *images are like classes* of any OOP language, and *containers are like instances* of those classes. +* **Registry**: A registry is a cloud location where images are stored. Dockerhub is the most popular public registry (like PyPi for Python packages) where you can store and share your own custom Docker images. While Docker Hub is the default and often the first place people go, organizations often use private registries for internal images that they don't want to share publicly. For AWS, that'd be [ECR](https://aws.amazon.com/es/ecr/). +* **Repository**: A repository is a collection of images. It's like a folder in your file system where all the images for your project are stored. + +### Basic commands + +Docker can seem intimidating at first, but mastering a few core commands will get you a long way. This section covers the essentials to get you started. + +#### Images + +* **`docker pull :`:** Downloads an image from a registry (like Docker Hub). If you don't specify a tag, it defaults to `latest`. Example: `docker pull ubuntu:latest` +* **`docker images`:** Lists all locally stored images. You can see both the image name and image id for each image. +* **`docker rmi ` or `docker rmi `:** Removes a local image. Be careful, you can't remove an image that's currently in use by a container. + +#### Containers + +* **`docker build -t .`:** Builds an image from a Dockerfile in the current directory. + +* **`docker run `:** Creates and starts a container from an image. This is where you'll often add options: + * `-d`: Runs the container in detached mode (background). + * `-p :`: Publishes a container's port to the host. Essential for accessing your application. Example: `-p 8080:80` maps port 80 inside the container to port 8080 on your machine. + * `-v :`: Mounts a volume (directory) from the host into the container. Useful for persisting data and sharing code. Example: `-v /path/on/host:/path/in/container` + * `--name `: Gives your container a memorable name. + +* **`docker ps`:** Lists running containers, while `docker ps -a` to list also stopped containers. +* **`docker {stop,restart,rm} {,}`**: Stops, restarts or removes containers, based on id or name. + +## Dockerfile + +A Dockerfile is used to automate the creation of a Docker images. It defines a series of commands that will be executed when building an image. Here's a simple example: +```dockerfile +# Start from a base image from Dockerhub. +FROM python:3.12-slim + +# Install uv. +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ + +# Create a folder called app-folder for our app within the container +WORKDIR /app-folder + +# Copy the application into the container, into /app-folder +COPY . . + +# Install the application dependencies +RUN uv sync --frozen --no-cache + +# Run the application +CMD [".venv/bin/fastapi", "run", "app/main.py", "--port", "80", "--host", "0.0.0.0"] +``` +inspired by uv's documentation [here](https://docs.astral.sh/uv/guides/integration/fastapi/#deployment). You might find the full code at my repo [here](https://github.com/marctorsoc/fastapi-with-uv-example). I simplified the source a bit to make clearer what the `WORKDIR` command does. Now, we would first build: +```bash +docker build -t fastapi-with-uv-example . +``` +and then run: +```bash +docker run -p 8000:80 -it fastapi-with-uv-example +``` +Then, we can start a browser on http://localhost:8000/docs to see the FastAPI docs. If we don't want to see the logs, we can use `-d` to run it in detached mode, even though I suggest running it in a tmux session. + +## Troubleshooting with the toy example + + +### How do I get into the container? + +Let's say that we want to get into the container and run the app ourselves, or check something. This can be done as follows: +```bash +docker run -it fastapi-with-uv-example bash +``` +This will *create* the container and give us a shell inside the container. We need `-i` to make the container interactive, `-t` to allocate a pseudo-TTY (terminal), and `bash` to run bash inside the container. This is actually overwriting the `CMD` from the Dockerfile above, with a new command. + +If you rather want to get into a *running container*, then you'll do this instead: +```bash +docker ps +docker exec -it /bin/bash +``` +Note that `exec` runs a command within a running container, while `run` starts the container and then runs the command. And by the way, to see the logs of such running container, we can do: +```bash +docker logs -f +``` + + +### What's the difference between `CMD` and `ENTRYPOINT`? + +The `CMD` and `ENTRYPOINT` are both used to specify a default command or program that should be executed when the container starts. However, they have different behaviors: +- `ENTRYPOINT` specifies a program that will be executed when the container starts. It can take arguments, but it's an executable program itself. It is overwritten by using `--entrypoint` with `docker run`. +- `CMD` specifies a default command that will be executed when the container starts. It can take arguments, but it's not an executable program itself. It is overwritten by adding arguments at the end of `docker run`, like we did with `bash`. + +Note that `CMD` can be used in conjuction with `ENTRYPOINT`, to give arguments to the executable from `ENTRYPOINT`, but that's a bit of a hack. + +### How to open a Jupyter lab server to play from within the Docker container?** + +This might be a way to check dependencies, outputs or to debug in general with a nicer interace. First, let's run like this: +```bash +docker run -p 8000:80 -p 8000:81 -it fastapi-with-uv-example bash +``` +This way we have one port for the FastAPI server and another for the Jupyter lab server. Now, we would create a tmux session and run the FastAPI server, that we can check at http://localhost:8000/. Then we can open another tmux session and run: +```bash +uv add jupyterlab +uv run jupyter lab --port 81 --no-browser -β€”allow-root --ip "0.0.0.0" +``` +Note that 1) it’s not "host" but "ip", and 2) we need the IP 0.0.0.0 to bind all network interfaces, which allows external connections to reach the Jupyter Lab server. + + +## Memory issues + +During my time at Globality, I experimented several issues when training ML models, that were related to memory. That's why I found a bunch of tips and tricks that might be useful if you're in a similar situation. + +### Ensuring all memory is shared + +This is a bit more complicated that the question I posed, but if you are debugging and cannot make a high-performance computing application to work (like when training an ML model), it might help to add `--ipc=host` to the `docker run` command. See full reference in the Docker docs, since it comes with risks. + +### Limiting container memory + +To properly simulate the environment in production, you can limit the memory available to the container by using the `--memory` and `--memory-swap` flags (plus a few others, see Docker documentation). + +Here an example: +```bash +docker run --memory="10000m" --memory-swap=0 -it -v /":" --gpus all bash +``` +For ubuntu, this capability is not available immediately after Docker installation. See [this page](https://www.serverlab.ca/tutorials/containers/docker/how-to-limit-memory-and-cpu-for-docker-containers/) for instructions to enable it (verified on ubuntu 18.04). +To verify that the memory limit is applied once the container is running, and to see memory usage in real time, run `docker stats`. + +### Checking memory limits within Docker container + +The `docker run` container can be run with memory limits, as explained in [Check mem_limit within a docker container](https://stackoverflow.com/questions/42187085/check-mem-limit-within-a-docker-container). To check all limits that are set, add the following to one of the first lines of code that are run within the app: +```python +try: + os.system("more /sys/fs/cgroup/memory/memory.* | cat") +except Exception as e: + self.logger.info(e) + self.logger.info("Problem running `more /sys/fs/cgroup/memory/memory.* | cat`") +``` +See [here](https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt) for explanation of the fields. The most relevant are: + +* memory.soft_limit_in_bytes + +* memory.limit_in_bytes + +* memory.memsw.limit_in_bytes + +* memory.kmem.limit_in_bytes + +You might also look at the `*usage_in_bytes` just to double-check the memory at that point is low. + + +## Problems with gpus + +First make sure you are passing `--gpus all` to `docker run`. Then, you might also need + +```bash +sudo apt install nvidia-container-toolkit +sudo apt install nvidia-cuda-toolkit +sudo systemctl restart docker +``` + +Now, e.g: + +```bash +watch -n 0.5 nvidia-smi +``` +to keep track of GPU memory every 0.5 seconds. + +## Rebuilding the Dockerfile + +The following will give you an approximate idea of how the Docker container was created. Note that this will show ALL parents, so if you container inherits from others, it will include those as well: + + +```bash +docker history --no-trunc -q > dockerfile_recreated +``` + +## Docker Compose + +If your application consists of multiple containers, Docker Compose simplifies management. It uses a `docker-compose.yml` file to define the services (containers) and their relationships. Here is an example of an app having backend, frontend, and a database: + +```yaml +version: "3.9" + +services: + backend: + build: ./backend + ports: + - "8000:8000" + depends_on: + - db + environment: + - DATABASE_URL=postgresql://user:password@db:5432/dbname + volumes: + - db_data:/var/lib/postgresql/data + + frontend: + build: ./frontend + ports: + - "3000:80" + depends_on: + - backend + + db: + image: postgres:13-alpine + ports: + - "5432:5432" + environment: + - POSTGRES_USER=user + - POSTGRES_PASSWORD=password + - POSTGRES_DB=dbname + volumes: + - db_data:/var/lib/postgresql/data + +volumes: + db_data: +``` +And the essential commands here: +* **`docker-compose up`:** Builds (if necessary) and starts all the services defined in the `docker-compose.yml` file. Add `-d` for detached mode. +* **`docker-compose down`:** Stops and removes the containers defined in the `docker-compose.yml` file. From e3f83412799fc46ce3e50b37bf68ec46905bf38f Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Tue, 11 Feb 2025 18:32:19 +0100 Subject: [PATCH 09/18] add automatic ToC --- src/components/MarkdownComponents.tsx | 22 +++++++++- src/components/PostCard.tsx | 56 +++++++++++++++++++++++++- src/content/posts/2023-08-25-docker.md | 2 +- src/context/HeaderIndexContext.tsx | 34 ++++++++++++++++ src/types/Post.ts | 7 ++++ src/utils/PostLoader.ts | 31 +++++++++++++- src/utils/markdownUtils.ts | 21 +++++++++- src/utils/textUtils.ts | 11 +++++ 8 files changed, 178 insertions(+), 6 deletions(-) create mode 100644 src/context/HeaderIndexContext.tsx create mode 100644 src/utils/textUtils.ts diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx index 2cf2051..45c5c2b 100644 --- a/src/components/MarkdownComponents.tsx +++ b/src/components/MarkdownComponents.tsx @@ -4,6 +4,7 @@ import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; import Math from './Math'; import type { Components } from 'react-markdown'; +import { generateId } from '../utils/textUtils'; function processMathInText(text: string) { const parts = text.split(/(\$\$[^\$]+\$\$|\\begin{[\s\S]*?\\end{[\s\S]*?}|\$[^\$]+\$)/g); @@ -144,7 +145,26 @@ const MarkdownComponents: Components = { ); - } + }, + + h1(props) { + const { children, ...rest } = props; + const text = typeof children === 'string' ? children : ''; + const id = generateId(text); + return

{children}

; + }, + h2(props) { + const { children, ...rest } = props; + const text = typeof children === 'string' ? children : ''; + const id = generateId(text); + return

{children}

; + }, + h3(props) { + const { children, ...rest } = props; + const text = typeof children === 'string' ? children : ''; + const id = generateId(text); + return

{children}

; + }, }; export default MarkdownComponents; diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index 469e6ca..4451939 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -37,7 +37,7 @@ function preprocessContent(content: string): string { const cleanBody = body .trim() .replace(/\\\s*\n/g, '\n') - .replace(/(?:\\!){2,}/g, '\\!') + .replace(/(?:\\!){2,}/g, '\\!') // Add missing quote here .replace(/(?:\\,){2,}/g, '\\,'); return `${start}${cleanBody}${end}`; // Keep \begin{equation}...\end{equation} } @@ -115,6 +115,58 @@ export function PostCard({ post, showFullContent = false, compact = false }: Pos ))} + {showFullContent && post.toc && post.toc.length > 0 && ( + <> + +
+ + )} + + {post.heroImage && showFullContent && (
- )} + )}
diff --git a/src/content/posts/2023-08-25-docker.md b/src/content/posts/2023-08-25-docker.md index 5cb26f7..b06b0c8 100644 --- a/src/content/posts/2023-08-25-docker.md +++ b/src/content/posts/2023-08-25-docker.md @@ -108,7 +108,7 @@ The `CMD` and `ENTRYPOINT` are both used to specify a default command or program Note that `CMD` can be used in conjuction with `ENTRYPOINT`, to give arguments to the executable from `ENTRYPOINT`, but that's a bit of a hack. -### How to open a Jupyter lab server to play from within the Docker container?** +### How to open a Jupyter lab server to play from within the Docker container? This might be a way to check dependencies, outputs or to debug in general with a nicer interace. First, let's run like this: ```bash diff --git a/src/context/HeaderIndexContext.tsx b/src/context/HeaderIndexContext.tsx new file mode 100644 index 0000000..77995ff --- /dev/null +++ b/src/context/HeaderIndexContext.tsx @@ -0,0 +1,34 @@ +import React, { createContext, useContext, useState } from 'react'; + +interface HeaderIndexContextType { + getNextIndex: () => number; + reset: () => void; +} + +const HeaderIndexContext = createContext(null); + +export function HeaderIndexProvider({ children }: { children: React.ReactNode }) { + const [currentIndex, setCurrentIndex] = useState(0); + + const getNextIndex = () => { + const index = currentIndex; + setCurrentIndex(prev => prev + 1); + return index; + }; + + const reset = () => setCurrentIndex(0); + + return ( + + {children} + + ); +} + +export function useHeaderIndex() { + const context = useContext(HeaderIndexContext); + if (!context) { + throw new Error('useHeaderIndex must be used within a HeaderIndexProvider'); + } + return context; +} diff --git a/src/types/Post.ts b/src/types/Post.ts index f338f62..6f6189e 100644 --- a/src/types/Post.ts +++ b/src/types/Post.ts @@ -1,3 +1,9 @@ +export interface TOCHeader { + level: number; + text: string; + id: string; +} + export interface Post { content: string; date: string; @@ -8,4 +14,5 @@ export interface Post { isPinned?: boolean; heroImage?: string; heroImageWidth?: string; + toc?: TOCHeader[]; } \ No newline at end of file diff --git a/src/utils/PostLoader.ts b/src/utils/PostLoader.ts index c2cbdcb..e82defe 100644 --- a/src/utils/PostLoader.ts +++ b/src/utils/PostLoader.ts @@ -1,5 +1,6 @@ import frontMatter from 'front-matter'; import { Post } from '../types/Post'; +import { generateId } from './textUtils'; const DEBUG = import.meta.env.DEV; @@ -75,6 +76,33 @@ async function importAll(): Promise { const filename = filepath.split('/').pop() || ''; + const lines = body.split('\n'); + const headers = []; + let inCodeBlock = false; + let headerIndex = 0; + const headerIds = new Map(); + + for (let line of lines) { + if (line.startsWith('```')) { + inCodeBlock = !inCodeBlock; + continue; + } + + if (!inCodeBlock && /^(### |## |# )/.test(line)) { + const level = line.startsWith('### ') ? 3 : line.startsWith('## ') ? 2 : 1; + const text = line.replace(/^### |^## |^# /, ''); + + // Generate a unique ID for duplicate headers + const baseId = generateId(text); + const count = headerIds.get(baseId) || 0; + headerIds.set(baseId, count + 1); + const id = count === 0 ? baseId : `${baseId}-${count}`; + + if (DEBUG) console.log('Found header:', { level, text, id }); + headers.push({ level, text, id }); + } + } + return { ...attributes, content: body, @@ -82,7 +110,8 @@ async function importAll(): Promise { permalink: attributes.permalink || filepath .replace('/src/content/posts/', '') .replace('.md', ''), - filename + filename, + toc: headers // Add this line to include the TOC }; } catch (error) { console.error(`❌ Error processing ${filepath}:`, error); diff --git a/src/utils/markdownUtils.ts b/src/utils/markdownUtils.ts index 7e8fc40..bbe279f 100644 --- a/src/utils/markdownUtils.ts +++ b/src/utils/markdownUtils.ts @@ -58,6 +58,23 @@ export async function getPost(slug: string): Promise { throw new Error('Invalid post format'); } + // Extract headers for TOC with enhanced debug logging + console.log('Content body length:', body.length); + console.log('First 500 chars of content:', body.substring(0, 500)); + + const headerMatches = body.match(/^(### |## |# )(.*)$/gm); + console.log('Raw header matches:', headerMatches); + + const headers = headerMatches?.map(header => { + const level = header.startsWith('### ') ? 3 : header.startsWith('## ') ? 2 : 1; + const text = header.replace(/^### |^## |^# /, ''); + const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, ''); + console.log('Processing header:', { raw: header, level, text, id }); + return { level, text, id }; + }) || []; + + console.log('Final TOC headers:', headers); + // Now TypeScript knows the shape of attributes const post: Post = { title: attributes.title, @@ -69,9 +86,11 @@ export async function getPost(slug: string): Promise { .replace('.md', ''), filename: filepath.split('/').pop() || '', heroImage: attributes.heroImage, - heroImageWidth: attributes.heroImageWidth + heroImageWidth: attributes.heroImageWidth, + toc: headers }; + if (DEBUG) console.log('Post TOC:', post.toc); return post; } catch (error) { console.error('Error loading post:', error); diff --git a/src/utils/textUtils.ts b/src/utils/textUtils.ts new file mode 100644 index 0000000..51afac2 --- /dev/null +++ b/src/utils/textUtils.ts @@ -0,0 +1,11 @@ +export function generateId(text: string, index?: number): string { + const cleanText = text + .replace(/\*\*(.*?)\*\*/g, '$1') // Remove bold + .replace(/\*(.*?)\*/g, '$1') // Remove italic + .replace(/`(.*?)`/g, '$1') // Remove code + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-+|-+$/g, ''); + + return typeof index === 'number' ? `${cleanText}-${index + 1}` : cleanText; +} From fd000444bcee2b90a8c2321a5dedadb8500721a8 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Tue, 11 Feb 2025 18:37:21 +0100 Subject: [PATCH 10/18] simplified, but still some links in ToC not working --- src/components/MarkdownComponents.tsx | 19 ++++++++------- src/components/PostCard.tsx | 1 + src/context/HeaderIndexContext.tsx | 34 --------------------------- src/utils/markdownUtils.ts | 20 +++++++++++++--- 4 files changed, 28 insertions(+), 46 deletions(-) delete mode 100644 src/context/HeaderIndexContext.tsx diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx index 45c5c2b..3987781 100644 --- a/src/components/MarkdownComponents.tsx +++ b/src/components/MarkdownComponents.tsx @@ -5,6 +5,7 @@ import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; import Math from './Math'; import type { Components } from 'react-markdown'; import { generateId } from '../utils/textUtils'; +import { useHeaderIndex } from '../context/HeaderIndexContext'; function processMathInText(text: string) { const parts = text.split(/(\$\$[^\$]+\$\$|\\begin{[\s\S]*?\\end{[\s\S]*?}|\$[^\$]+\$)/g); @@ -149,21 +150,21 @@ const MarkdownComponents: Components = { h1(props) { const { children, ...rest } = props; - const text = typeof children === 'string' ? children : ''; - const id = generateId(text); - return

{children}

; + const text = React.Children.toArray(children).join(''); + const baseId = generateId(text); + return

{children}

; }, h2(props) { const { children, ...rest } = props; - const text = typeof children === 'string' ? children : ''; - const id = generateId(text); - return

{children}

; + const text = React.Children.toArray(children).join(''); + const baseId = generateId(text); + return

{children}

; }, h3(props) { const { children, ...rest } = props; - const text = typeof children === 'string' ? children : ''; - const id = generateId(text); - return

{children}

; + const text = React.Children.toArray(children).join(''); + const baseId = generateId(text); + return

{children}

; }, }; diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index 4451939..8c3f3d0 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -5,6 +5,7 @@ import remarkGfm from 'remark-gfm'; import rehypeRaw from 'rehype-raw'; import MarkdownComponents from './MarkdownComponents'; import { categoryColors } from '../utils/constants'; +import { HeaderIndexProvider, useHeaderIndex } from '../context/HeaderIndexContext'; function preprocessContent(content: string): string { // First, normalize line breaks in align environments diff --git a/src/context/HeaderIndexContext.tsx b/src/context/HeaderIndexContext.tsx deleted file mode 100644 index 77995ff..0000000 --- a/src/context/HeaderIndexContext.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, { createContext, useContext, useState } from 'react'; - -interface HeaderIndexContextType { - getNextIndex: () => number; - reset: () => void; -} - -const HeaderIndexContext = createContext(null); - -export function HeaderIndexProvider({ children }: { children: React.ReactNode }) { - const [currentIndex, setCurrentIndex] = useState(0); - - const getNextIndex = () => { - const index = currentIndex; - setCurrentIndex(prev => prev + 1); - return index; - }; - - const reset = () => setCurrentIndex(0); - - return ( - - {children} - - ); -} - -export function useHeaderIndex() { - const context = useContext(HeaderIndexContext); - if (!context) { - throw new Error('useHeaderIndex must be used within a HeaderIndexProvider'); - } - return context; -} diff --git a/src/utils/markdownUtils.ts b/src/utils/markdownUtils.ts index bbe279f..9d08c40 100644 --- a/src/utils/markdownUtils.ts +++ b/src/utils/markdownUtils.ts @@ -1,6 +1,8 @@ import frontMatter from 'front-matter'; import { Post } from '../types/Post'; import { getPosts } from './PostLoader'; +import ReactMarkdown from 'react-markdown'; +import { generateId } from './textUtils'; export async function getAllPosts(): Promise { return getPosts(); @@ -65,12 +67,24 @@ export async function getPost(slug: string): Promise { const headerMatches = body.match(/^(### |## |# )(.*)$/gm); console.log('Raw header matches:', headerMatches); + // Create a map to track header occurrences + const headerOccurrences = new Map(); + const headers = headerMatches?.map(header => { const level = header.startsWith('### ') ? 3 : header.startsWith('## ') ? 2 : 1; const text = header.replace(/^### |^## |^# /, ''); - const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, ''); - console.log('Processing header:', { raw: header, level, text, id }); - return { level, text, id }; + + // Generate base ID + const baseId = generateId(text); + + // Track occurrences of this header + const count = headerOccurrences.get(baseId) || 0; + headerOccurrences.set(baseId, count + 1); + + // Add suffix if this is a duplicate + const id = count > 0 ? `${baseId}-${count}` : baseId; + + return { level, text, id, index: count }; }) || []; console.log('Final TOC headers:', headers); From 6adf52857adb4063ce8ef8668a6b55c3ae0106cb Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Tue, 11 Feb 2025 18:46:26 +0100 Subject: [PATCH 11/18] links with wrappers working. Still not duplicates but won't do --- src/components/MarkdownComponents.tsx | 23 ++++++++++++++++++++--- src/components/PostCard.tsx | 2 ++ src/utils/markdownUtils.ts | 4 ++-- src/utils/textUtils.ts | 19 ++++++++++++++----- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx index 3987781..a154158 100644 --- a/src/components/MarkdownComponents.tsx +++ b/src/components/MarkdownComponents.tsx @@ -28,6 +28,23 @@ function processMathInText(text: string) { }); } +function getTextFromChildren(children: React.ReactNode): string { + return React.Children.map(children, child => { + if (typeof child === 'string') { + return child; + } + if (React.isValidElement(child)) { + // If it's a code block, get its children as text + if (child.type === 'code') { + return child.props.children; + } + // Recursively get text from nested children + return getTextFromChildren(child.props.children); + } + return ''; + }).join(''); +} + const MarkdownComponents: Components = { code({ node, inline, className, children, ...props }: any) { const match = /language-(\w+)/.exec(className || ''); @@ -150,19 +167,19 @@ const MarkdownComponents: Components = { h1(props) { const { children, ...rest } = props; - const text = React.Children.toArray(children).join(''); + const text = getTextFromChildren(children); const baseId = generateId(text); return

{children}

; }, h2(props) { const { children, ...rest } = props; - const text = React.Children.toArray(children).join(''); + const text = getTextFromChildren(children); const baseId = generateId(text); return

{children}

; }, h3(props) { const { children, ...rest } = props; - const text = React.Children.toArray(children).join(''); + const text = getTextFromChildren(children); const baseId = generateId(text); return

{children}

; }, diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index 8c3f3d0..3568cc4 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -150,7 +150,9 @@ export function PostCard({ post, showFullContent = false, compact = false }: Pos <>{children}, + code: ({children}) => <>{children}, strong: ({children}) => {children}, em: ({children}) => {children} }} diff --git a/src/utils/markdownUtils.ts b/src/utils/markdownUtils.ts index 9d08c40..683b1fa 100644 --- a/src/utils/markdownUtils.ts +++ b/src/utils/markdownUtils.ts @@ -74,7 +74,7 @@ export async function getPost(slug: string): Promise { const level = header.startsWith('### ') ? 3 : header.startsWith('## ') ? 2 : 1; const text = header.replace(/^### |^## |^# /, ''); - // Generate base ID + // Generate base ID from the cleaned text const baseId = generateId(text); // Track occurrences of this header @@ -84,7 +84,7 @@ export async function getPost(slug: string): Promise { // Add suffix if this is a duplicate const id = count > 0 ? `${baseId}-${count}` : baseId; - return { level, text, id, index: count }; + return { level, text, id }; }) || []; console.log('Final TOC headers:', headers); diff --git a/src/utils/textUtils.ts b/src/utils/textUtils.ts index 51afac2..aefc613 100644 --- a/src/utils/textUtils.ts +++ b/src/utils/textUtils.ts @@ -1,11 +1,20 @@ +export function stripMarkdown(text: string): string { + return text + .replace(/`([^`]+)`/g, '$1') // Remove backticks + .replace(/\*\*([^*]+)\*\*/g, '$1') // Remove bold + .replace(/\*([^*]+)\*/g, '$1') // Remove italics + .replace(/_([^_]+)_/g, '$1'); // Remove underscores +} + export function generateId(text: string, index?: number): string { - const cleanText = text - .replace(/\*\*(.*?)\*\*/g, '$1') // Remove bold - .replace(/\*(.*?)\*/g, '$1') // Remove italic - .replace(/`(.*?)`/g, '$1') // Remove code + // First strip markdown syntax + const cleanText = stripMarkdown(text); + + // Then generate the ID + const id = cleanText .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/^-+|-+$/g, ''); - return typeof index === 'number' ? `${cleanText}-${index + 1}` : cleanText; + return typeof index === 'number' ? `${id}-${index + 1}` : id; } From ebab53c0c6b95f541a7b2f6b7b068439636563f7 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Wed, 12 Feb 2025 13:37:41 +0100 Subject: [PATCH 12/18] starting with "working with notebooks" --- .../2024-09-08-working-with-notebooks.md | 237 ++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 src/content/posts/2024-09-08-working-with-notebooks.md diff --git a/src/content/posts/2024-09-08-working-with-notebooks.md b/src/content/posts/2024-09-08-working-with-notebooks.md new file mode 100644 index 0000000..f6c2dfe --- /dev/null +++ b/src/content/posts/2024-09-08-working-with-notebooks.md @@ -0,0 +1,237 @@ +--- +title: Working with notebooks +date: '2024-09-08 00:00:00 +0000' +permalink: /posts/working-with-notebooks +categories: +- Dev tools +isPinned: true +--- + +TODO + +When I started moving beyond simple experiments and into the world of deploying AI models to production, the importance of Docker became crystal clear. It wasn't just about making things run smoothly on my own machine anymore; it was about ensuring reliability, scalability, and maintainability in a real-world setting. That's when I realized Docker wasn't optional – it was *essential*. + +This post focuses on the Docker commands and troubleshooting skills I found critical for taking AI projects from the lab to production. The first version of this post was written while I was at Globality, where we would containerize our AI models, train with AWS Sagemaker, and deploy to ECS. Sometimes the model would fail to train. Sometimes it would fail to deploy. Let’s get started πŸš€ + +## Docker 101 + +### Core concepts + +Docker is a containerization tool that allows you to package an application along with its dependencies into a lightweight, standalone container. This means that you can run the same application on any machine as long as it has Docker installed. + +You might find a more comprehensive overview [here](https://docs.docker.com/get-started/docker-overview/#docker-objects), but let's cover a few concepts: +* **Container**: A container is an isolated environment that runs a single application. It has its own file system, network stack, and processes. +* **Images**: These are like templates for containers. An image allows you to create multiple containers from it. You can think of an image as a blueprint for building a container. Another analogy is that Docker *images are like classes* of any OOP language, and *containers are like instances* of those classes. +* **Registry**: A registry is a cloud location where images are stored. Dockerhub is the most popular public registry (like PyPi for Python packages) where you can store and share your own custom Docker images. While Docker Hub is the default and often the first place people go, organizations often use private registries for internal images that they don't want to share publicly. For AWS, that'd be [ECR](https://aws.amazon.com/es/ecr/). +* **Repository**: A repository is a collection of images. It's like a folder in your file system where all the images for your project are stored. + +### Basic commands + +Docker can seem intimidating at first, but mastering a few core commands will get you a long way. This section covers the essentials to get you started. + +#### Images + +* **`docker pull :`:** Downloads an image from a registry (like Docker Hub). If you don't specify a tag, it defaults to `latest`. Example: `docker pull ubuntu:latest` +* **`docker images`:** Lists all locally stored images. You can see both the image name and image id for each image. +* **`docker rmi ` or `docker rmi `:** Removes a local image. Be careful, you can't remove an image that's currently in use by a container. + +#### Containers + +* **`docker build -t .`:** Builds an image from a Dockerfile in the current directory. + +* **`docker run `:** Creates and starts a container from an image. This is where you'll often add options: + * `-d`: Runs the container in detached mode (background). + * `-p :`: Publishes a container's port to the host. Essential for accessing your application. Example: `-p 8080:80` maps port 80 inside the container to port 8080 on your machine. + * `-v :`: Mounts a volume (directory) from the host into the container. Useful for persisting data and sharing code. Example: `-v /path/on/host:/path/in/container` + * `--name `: Gives your container a memorable name. + +* **`docker ps`:** Lists running containers, while `docker ps -a` to list also stopped containers. +* **`docker {stop,restart,rm} {,}`**: Stops, restarts or removes containers, based on id or name. + +## Dockerfile + +A Dockerfile is used to automate the creation of a Docker images. It defines a series of commands that will be executed when building an image. Here's a simple example: +```dockerfile +# Start from a base image from Dockerhub. +FROM python:3.12-slim + +# Install uv. +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ + +# Create a folder called app-folder for our app within the container +WORKDIR /app-folder + +# Copy the application into the container, into /app-folder +COPY . . + +# Install the application dependencies +RUN uv sync --frozen --no-cache + +# Run the application +CMD [".venv/bin/fastapi", "run", "app/main.py", "--port", "80", "--host", "0.0.0.0"] +``` +inspired by uv's documentation [here](https://docs.astral.sh/uv/guides/integration/fastapi/#deployment). You might find the full code at my repo [here](https://github.com/marctorsoc/fastapi-with-uv-example). I simplified the source a bit to make clearer what the `WORKDIR` command does. Now, we would first build: +```bash +docker build -t fastapi-with-uv-example . +``` +and then run: +```bash +docker run -p 8000:80 -it fastapi-with-uv-example +``` +Then, we can start a browser on http://localhost:8000/docs to see the FastAPI docs. If we don't want to see the logs, we can use `-d` to run it in detached mode, even though I suggest running it in a tmux session. + +## Troubleshooting with the toy example + + +### How do I get into the container? + +Let's say that we want to get into the container and run the app ourselves, or check something. This can be done as follows: +```bash +docker run -it fastapi-with-uv-example bash +``` +This will *create* the container and give us a shell inside the container. We need `-i` to make the container interactive, `-t` to allocate a pseudo-TTY (terminal), and `bash` to run bash inside the container. This is actually overwriting the `CMD` from the Dockerfile above, with a new command. + +If you rather want to get into a *running container*, then you'll do this instead: +```bash +docker ps +docker exec -it /bin/bash +``` +Note that `exec` runs a command within a running container, while `run` starts the container and then runs the command. And by the way, to see the logs of such running container, we can do: +```bash +docker logs -f +``` + + +### What's the difference between `CMD` and `ENTRYPOINT`? + +The `CMD` and `ENTRYPOINT` are both used to specify a default command or program that should be executed when the container starts. However, they have different behaviors: +- `ENTRYPOINT` specifies a program that will be executed when the container starts. It can take arguments, but it's an executable program itself. It is overwritten by using `--entrypoint` with `docker run`. +- `CMD` specifies a default command that will be executed when the container starts. It can take arguments, but it's not an executable program itself. It is overwritten by adding arguments at the end of `docker run`, like we did with `bash`. + +Note that `CMD` can be used in conjuction with `ENTRYPOINT`, to give arguments to the executable from `ENTRYPOINT`, but that's a bit of a hack. + +### How to open a Jupyter lab server to play from within the Docker container? + +This might be a way to check dependencies, outputs or to debug in general with a nicer interace. First, let's run like this: +```bash +docker run -p 8000:80 -p 8000:81 -it fastapi-with-uv-example bash +``` +This way we have one port for the FastAPI server and another for the Jupyter lab server. Now, we would create a tmux session and run the FastAPI server, that we can check at http://localhost:8000/. Then we can open another tmux session and run: +```bash +uv add jupyterlab +uv run jupyter lab --port 81 --no-browser -β€”allow-root --ip "0.0.0.0" +``` +Note that 1) it’s not "host" but "ip", and 2) we need the IP 0.0.0.0 to bind all network interfaces, which allows external connections to reach the Jupyter Lab server. + + +## Memory issues + +During my time at Globality, I experimented several issues when training ML models, that were related to memory. That's why I found a bunch of tips and tricks that might be useful if you're in a similar situation. + +### Ensuring all memory is shared + +This is a bit more complicated that the question I posed, but if you are debugging and cannot make a high-performance computing application to work (like when training an ML model), it might help to add `--ipc=host` to the `docker run` command. See full reference in the Docker docs, since it comes with risks. + +### Limiting container memory + +To properly simulate the environment in production, you can limit the memory available to the container by using the `--memory` and `--memory-swap` flags (plus a few others, see Docker documentation). + +Here an example: +```bash +docker run --memory="10000m" --memory-swap=0 -it -v /":" --gpus all bash +``` +For ubuntu, this capability is not available immediately after Docker installation. See [this page](https://www.serverlab.ca/tutorials/containers/docker/how-to-limit-memory-and-cpu-for-docker-containers/) for instructions to enable it (verified on ubuntu 18.04). +To verify that the memory limit is applied once the container is running, and to see memory usage in real time, run `docker stats`. + +### Checking memory limits within Docker container + +The `docker run` container can be run with memory limits, as explained in [Check mem_limit within a docker container](https://stackoverflow.com/questions/42187085/check-mem-limit-within-a-docker-container). To check all limits that are set, add the following to one of the first lines of code that are run within the app: +```python +try: + os.system("more /sys/fs/cgroup/memory/memory.* | cat") +except Exception as e: + self.logger.info(e) + self.logger.info("Problem running `more /sys/fs/cgroup/memory/memory.* | cat`") +``` +See [here](https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt) for explanation of the fields. The most relevant are: + +* memory.soft_limit_in_bytes + +* memory.limit_in_bytes + +* memory.memsw.limit_in_bytes + +* memory.kmem.limit_in_bytes + +You might also look at the `*usage_in_bytes` just to double-check the memory at that point is low. + + +## Problems with gpus + +First make sure you are passing `--gpus all` to `docker run`. Then, you might also need + +```bash +sudo apt install nvidia-container-toolkit +sudo apt install nvidia-cuda-toolkit +sudo systemctl restart docker +``` + +Now, e.g: + +```bash +watch -n 0.5 nvidia-smi +``` +to keep track of GPU memory every 0.5 seconds. + +## Rebuilding the Dockerfile + +The following will give you an approximate idea of how the Docker container was created. Note that this will show ALL parents, so if you container inherits from others, it will include those as well: + + +```bash +docker history --no-trunc -q > dockerfile_recreated +``` + +## Docker Compose + +If your application consists of multiple containers, Docker Compose simplifies management. It uses a `docker-compose.yml` file to define the services (containers) and their relationships. Here is an example of an app having backend, frontend, and a database: + +```yaml +version: "3.9" + +services: + backend: + build: ./backend + ports: + - "8000:8000" + depends_on: + - db + environment: + - DATABASE_URL=postgresql://user:password@db:5432/dbname + volumes: + - db_data:/var/lib/postgresql/data + + frontend: + build: ./frontend + ports: + - "3000:80" + depends_on: + - backend + + db: + image: postgres:13-alpine + ports: + - "5432:5432" + environment: + - POSTGRES_USER=user + - POSTGRES_PASSWORD=password + - POSTGRES_DB=dbname + volumes: + - db_data:/var/lib/postgresql/data + +volumes: + db_data: +``` +And the essential commands here: +* **`docker-compose up`:** Builds (if necessary) and starts all the services defined in the `docker-compose.yml` file. Add `-d` for detached mode. +* **`docker-compose down`:** Stops and removes the containers defined in the `docker-compose.yml` file. From da00e6d657aae1b58572fcd06cf136c0928a53d4 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Wed, 12 Feb 2025 17:43:38 +0100 Subject: [PATCH 13/18] tmp working with NBs --- package-lock.json | 4 ++-- .../posts/2024-09-08-working-with-notebooks.md | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3d00bb2..ac5a8f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "marctorsoc.github.io", + "name": "my-website", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "marctorsoc.github.io", + "name": "my-website", "version": "0.1.0", "dependencies": { "front-matter": "^4.0.2", diff --git a/src/content/posts/2024-09-08-working-with-notebooks.md b/src/content/posts/2024-09-08-working-with-notebooks.md index f6c2dfe..544d856 100644 --- a/src/content/posts/2024-09-08-working-with-notebooks.md +++ b/src/content/posts/2024-09-08-working-with-notebooks.md @@ -7,7 +7,18 @@ categories: isPinned: true --- -TODO +In data science, experimentation is key. You often need to explore datasets, visualize results, tweak models, and iterate quickly. **Jupyter notebooks** provide an ideal environment for this workflow: + +* πŸ“ Interactive execution: Run code in small, manageable chunks instead of executing entire scripts. +* πŸ“Š Rich outputs: Easily display tables, charts, and even interactive visualizations inline. +* πŸ”„ Reproducibility: Keep code, results, and documentation together in a structured way. + +Because of these benefits, Jupyter notebooks have become a go-to tool for data scientists. For years, I used +to work first in the classic Jupyter Notebook, and later on with JupyterLab. But still, I felt myself +transitioning from prototyping in Jupyter on the browser, to writing *serious code* on my IDE (at the time, +Pycharm). When working remotely, I had my system where I would have a service in the EC2 instance, +create a tunnel, and access via browser as if the Jupyter server was local. See [here](/posts/jupyter-lab-on-a-remote-machine/) for details of my config. + When I started moving beyond simple experiments and into the world of deploying AI models to production, the importance of Docker became crystal clear. It wasn't just about making things run smoothly on my own machine anymore; it was about ensuring reliability, scalability, and maintainability in a real-world setting. That's when I realized Docker wasn't optional – it was *essential*. From 6f9a1c61219b4b5564f6e0e833f752489fb915a6 Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Thu, 13 Feb 2025 10:27:18 +0100 Subject: [PATCH 14/18] tmp commit for working with notebooks, improving ToC look --- public/content/notebook-inline-value.jpg | Bin 0 -> 14245 bytes public/content/notebook-run-cells-section.jpg | Bin 0 -> 99623 bytes public/content/page-repr.jpg | Bin 0 -> 107136 bytes src/components/Post.tsx | 0 src/components/PostCard.tsx | 1 + src/components/TableOfContents.tsx | 0 .../posts/2017-11-06-python-tips-tricks.md | 21 +- ...9-02-08-jupyter-lab-on-a-remote-machine.md | 10 +- ...8-easy-recipes-for-a-(bit)-better-world.md | 2 +- src/content/posts/2023-08-25-docker.md | 6 +- .../2024-09-08-working-with-notebooks.md | 248 ---------------- .../2025-02-08-data-science-on-remote.md | 4 +- .../2025-02-13-working-with-notebooks.md | 280 ++++++++++++++++++ src/pages/Blog.tsx | 8 +- src/pages/Home.tsx | 2 +- src/types/Post.ts | 1 + src/utils/PostLoader.ts | 36 +-- src/utils/constants.ts | 5 +- src/utils/markdownUtils.ts | 34 +-- src/utils/tocUtils.ts | 46 +++ 20 files changed, 369 insertions(+), 335 deletions(-) create mode 100644 public/content/notebook-inline-value.jpg create mode 100644 public/content/notebook-run-cells-section.jpg create mode 100644 public/content/page-repr.jpg create mode 100644 src/components/Post.tsx create mode 100644 src/components/TableOfContents.tsx delete mode 100644 src/content/posts/2024-09-08-working-with-notebooks.md create mode 100644 src/content/posts/2025-02-13-working-with-notebooks.md create mode 100644 src/utils/tocUtils.ts diff --git a/public/content/notebook-inline-value.jpg b/public/content/notebook-inline-value.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aed27548db192d3c993aa7bcf3729c1b43ad6480 GIT binary patch literal 14245 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�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

+Today I'm going to explain some of the lessons and tools I've found that could be useful for someone developing data science (and also general purpose projects) in Python. - * Ipython - * Notebooks - * Tricks for python in a terminal +For the readers already working in Python, probably some of these items are already known. But I love shortcuts and ways to save time, so maybe you can still find something useful in what follows. -

For the readers already working in Python, probably some of these items are already known. But I love shortcuts and ways to save time, so maybe you can still find something useful in what follows.

- -**IPython** +## IPython

An improved version of the typical python shell. Actually the "i" comes from "interactive", but I would rather say that it's more an improved version.

@@ -31,7 +28,7 @@ In case you are in Ubuntu, you can also run sudo apt install python-ipython

-

Hey, it's not a mistake. , since last versions, apt-get has been simplified to just apt. The advantages of ipython w.r.t. classical python shell are many, let's enumerate some:

+Hey, it's not a mistake. As of last versions, `apt-get` has been simplified to just apt. The advantages of ipython w.r.t. classical python shell are many, let's enumerate some: *

As in a unix terminal, you can autocomplete and see suggestions using the tab command. Something really appreciated when introducing filenames, names of variables, etc.

*

Using the alt key, ipython allows to move the cursor word by word. This feature is not available (at least in my Mac) when using the classical python shell

@@ -43,7 +40,7 @@ In case you are in Ubuntu, you can also run

`|G9rlw?XbxU#|428nRCg(^_HY$M;Ucbw}nJrVUi$thu=7cB^BG3CLz+X-ey^I4vy^l(IN=kJBB#ppF*?h@R%0 zV|EmoTMub--jnxJpS{&;$f~-V-w4@}leGGC=BKt?(f8QXsAe1BV3$CbgSNC19#|DwD!#;oKE#jn`LmP(j}SMz4B(p(d+r)dVuAUDcD*tZCc_BYB3MVR zY6h9Hq--(0#`$^bKN9qkzFfT=s$^pkn5J_d@~`DqcshWv6*~Ir+#UV5e8(RKOkY0{ zdazN5deCEb$~+(It9~<@+^C24R@ITrC;FBy@lnOCh`QLPx40qm_M__;8p2P5Z=i++ ztiSW(l0p->?0@-_;BEQiGfQ_3y;DT}vplM$Z(dRm=~-0Q?WsOwxNk@d&!3VS|4n;r`u2P6p#St~|IPh3eH;Bd34Nik literal 0 HcmV?d00001 diff --git a/public/content/page-repr.jpg b/public/content/page-repr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..daf521751ed5e1fe4c9dd150c5168bcec9eca274 GIT binary patch literal 107136 zcmeFYX;f27^EbM~JcyA&K&GfnDk2IBDo9iWL_}0n6vT*#%tU4o$W~MkL8GFgpu`y` zj50+5iOec!M35l}NkBj(fdn*cNV0QV&vVZ6fA5#~y?5QU?w8Y$>`JG1@2=|Zs$W%g zq+L=D^xZiz|M~paRp|l*DS{fg<<{0KE@J+oF*35yrSw0v2KcV!*57SbEMI;L z^WWZY$^6~BTbY$k^zet{dm?-RCo3apVv0T96L3#6KYB=!WgvxBlt% zKiA*%e~Yl=x11oT&GL6&|E>Q&qSOxu#smN~ zKeK*6YkB11kVrru2ee~E1o1GS-vD|MXmb?Mzx!W(=zsJR^gn2S|3m-u>F*!(5B(P} z;7;)1O(8Ky!~K)~eE9$JEh0P)$m>rr2k*0jqc`saS6v{pZ(&6Df9S|V+dTiS4*}f$ zO$Wzq-u*Wn5aR@7`PaQM;ajPt) zz5b@7i97#!?vZGx4S(1BM+53V{ltas{--`T(Cwf8j|K1Y{<}?l$ewL~(=lOQ|BUBY zu+u;F(Q!Nf;UzHAb>rXdk3_rtBZr6>Q2U?f28X!)b8l?$uHXCd4_^WP{~do|XJ{+3r+u)~g`s_x}Ce27)HL{_IPPw$gv=A_)+*>bERO|E&v{f}mIW5TxE#`p+%4-7?~|(53L6y-U4|-yP$p00Vn_p zh9aP7C;>`=PC)5U7IXo+0_8yz=q~gSDuRk38dL?;ka3sUCF3U(BoifbOy-o#d6{c6 zcVwQ*l*`n}G|POEVatrl{E~%aRb{nh7sy)5u9kI@^_2CIJt7+|OOib+dsX(1>@(R4 z*(TXGS+*=!c3MtBPE&5aoTZ$-+-AAmashHtawNHIxjeata^-UMa&2-PIlde!uO@FG zZy~={-c5e5e2{#Ce7gKq`3Lf4@(uD|&s5np2LUEmc z<*Ul1s;cTj)itU+R6|sct6o!muKHG$qdGlHW7d*cPP6vUiko$QR^hBSv$|(Zs;Q}& zsjXM@QHxbOul7i-POVQ3nXNf{*=)DjhiAjH^JkaO{ycjOtBf_pZonSE9>ZS6mS7oJ z?i}SgW^YC~+)IHTB)U(wetG`qKuA!)5rs1q{SmTt&U5z@8 z0Zmy=V@)T`0L_z{_cR+c2elNm%(dLKLbbBAinKmz@#kvHT{(Bp+{C&0b6?M8Ys+ez zX}f8MYm>E$wL7$DbPRPi=mhFy>O9l=tTUynue)A1Q1`4ZRribT%)I&YoacqjyEuIu&5Vzp=f{zPC z3(XhqUYNF!y0F(+#dx*x5#!6owZ?oCoQa1?ipdibrm3>&YSUoTT+=4gDKm33Z?gv#mc~y1uMH&X|D2Em9eUJmBiN0 zHrn=??TDR;-9ft>cAcxWR&QUOz54AM`86BYz-y}3Os};_ByuXe8+>1w;b8{1$ck_9en?KDpbavB6XAS4w&Uwy#E(=|PT%Ne_U01m#yS~{hzuA5B#m${= zhHe3FkKFiM?6#zCsdt~{?&Y56-oJIp*66Jj9x@(VJaRm~ZZq8$xsB!tdAfP#c=m2L z-yXHSa)-i>?K|>!4DDR8Gi7I!m!=oN>#>(`*T!AsT|K)O?T*`By9c{x|DH#Cro1|4H!MV{_y3)BZ2DzF9i-CS$E{pk?%q4 zf^vdJg7LvugSjD2A$cK!(9NNg(5W!bu);8DxOX@;LMh^4#H&b+$gs$Iq7gBX*m~6B zX!=oh)Y_;kQT%B4=m#;F7{8d8v04BqwZtuoI~~V~cZ|=EM-uiVlq9MrMkcl-ElJ8u z8b0Q7?0&LbazJuz%7T;=DV)>|skccO(jihUYz&`*2amfRe|SRWMA(TBY0J|trTskV zeX`<|;i==N22Q)4ev&>rJvzNJ!#;y@M(#|=nU9$^nb$MXvxm>V&sv^!HA|cwkp2GL zigVY_NzWfS|B-A_WVw(ITk zJ7#yT-c`68e|PBKo_kIASKoj1K<`1;14&_IA^YLZhxL!_9zA+&@Rk*E8g zek$5j^zxbIv)fc{YSwe;dEE0KFAl!wD0VNdEm>XitkkshMww>W*>X&IQaPU%Ok=;? z_pkG z`i~9n4R0G=8ta-iG|}I#dt3Ex?Ymd+SHGt<+cuZCtZFIyu@ioa}Nd@YTew9W@rAPgv{r_Nr-`QXu-vt=e{}jycyJThM!N01Kg3{mB|L0d} zFMwX#q;DW~CCnMQR$0tKNJbqatB#S@W9|T%%KtUOKf?!aV4QOD3W`d~DynlJ8H}u~ zjGU~zyc}>!F{!`ZOgVLVjRh+$J()#dWjW7O!2q_jm)C7;rf7NKkM{XiRKed_rQ zOius6x51&|?;}416O%uG38#?h8Q|;w#SVD?i=+R+k2>H-MovyvPVqNC7@36M%&N=D zFIb_Vv0;azf0X7z>k~>^8!z5|QKM{Zvy(sfP;{$`w#iD4so*zDe>nO-V<_$a6-WOt z^bbE$CNxVH113yX9l}HCnBxMZW3oms?%YR;zvS*Z$+tZ_oQBSjlAI!@&tCiz)fKa! zAvR;_(7$h%Lhmo*#2&bL_@UiW=*8J4DHKFKatk|83Z3fdpOPr!rgxr{LYa3_O=1@7 zrwKf`1&f-!&N~YUD2PY375wR<6uPnqkL2Mww#aKKw9ysabxR8Mhjl;vx0iqA^6z^2 zcOU($8UEFn|5}oNZR5X~;a@EE{|p^UKcU~Mt>Km@QYc_98D$*!aKJ{8g9Z{rx=&%@ zF<~gQ=+4=HU;htfAZ`8MN!6mI+Cm(Ltm5m}MIp@txmmFUh2Y6;mI2kBM0Q(IUc5_` z?p02!>Sfo1w}wM=vSknC6I!TZ!zd}VsFy!3A@8Bggnd~gJF|*!S5L_xX#NaNapkuW z+ESbf_dBVzc>4sldmpW`dG`IDcjomiYbUa2>&Et1O*YWW?6^&AtdT3fqzP89vbvL4 zu%G+c>Q}ORn6O9pa(|zjw$qtwc-1MT$Sc#grI6ezDU`F44@)vh8dB)9CV^omo=YVo z%f>SVQpl4qL-zTkC`=WE2}>ncNSM&=!7RgSvqY~N?*!kfYpZxi7#^2APN+usW(JrC z$C}F?Z~kGy_=!Un5xKJc`3$ZUnw1ibq&{RwA%~(Aj|VLhWznNG>o8(@SRc=i9Xg?t zDTTra8F>bb!KYG)*&QCFA70uxa&cr2%zl95Z}hW4m2ZkHN2O4?_Z!bM$;%upgoL$q zqWP54)QT}?1DqU{d{pz`%lLjX#Z1LvQL^gtWy-3j4#T>7;e9D%<0ou=&FH z>a-Q#YG&b*Xs|};uoPMl5{r?X-m$m9OfdTj2dDPK z$fEP`M0jjvNaUDFO~l3Z_rG#Bn5(RXJa17MBfP>)p^w+}88!6~7OrOtY<+$sEOcO19BrM2E9(iv?L7 zvE$;ISDRPP{v?Hh-$c%TZ*p$o*f}@-))?^`gU(NJ;=n{FA^S5ufQ~Gs^XwjsFm=SH zq@@Cacmdp%XU;rF?s2TUofCsz^1r&M>f!xKd=f3b_sOM12>lSIoZ`uO&_Pbm-Cn-- z?11f^U6UEjm198(y~Bmuj(HCxaMh%cd=7t@mnx{-F1e0cB$}gh3+q)qE#9?Cq0;<) zlU2=0WBHPW`kRY7BdWHD-+h$OlcES&Qiv~1F+tS&1RHJ=H^PE0SKmJ+r^%BC#i%_thopVq5#3*JU4G z4^}0_M=yP`<#y|*w5RtD&vBJgZ<{MlmqIm1r4aibs|-+#>}nOhRUIq?9}elb)H|KP zVqW!xtavYqA+) z(-}GK75kC%666E16Q_@;0INWp2FY1!vMT^aG2(LkbK7v1kM9a>;|^3+WLXmRn+HvfN1ipqiq|+m*iWGr(^c&-o9?*m zlA(Kl!bwyK4ilSxel~O#2J5JH%T=WO3eG$dMG+2+$zPtjia|Uze3WpGT^mqDoFmuHV=-pOr zj@xqM0`RiU#tIH80<17KSawQrv!t*ZJ4!cNMeMHJ+}{6EaOAWQrgb;1oDEi2C{48M zz~Qh3SM2KTmVIw@H9jBqeJ#4dQ4Vd(rC>?xNS$>4?#vWBDWrT@FF`yX*KLan*EWLl zBWE0>(Cdk=2em!b$pJTC9;kdWqkdAz z^cYfWewFz4+>7tWwk!7T@*W)Lg7}gA281XIMw^UQNM1Nt-G_rh3TEYOKRedRxVpdm zW`Nr0x$y|q)b2F#3%jk^KXGg9#M%YS&NoI_!b|P(-cJ7D z&P!v!%8U!UQytzU-ok#Jv6v7E#ZoA(K)g^jBu=IG-9Oyd-&5r6XF6)@h($nXfZ?V)y>+#d&F0hc#5JI}jEe zpx>cv5Fy$~`QZMcoLI4 zY8={&!{YrVxH_0QLp~3eRsA+8`tWo3NXRIOUa{P|dFV+*|E})r$*C~#)p^2%vxC1B zI_Tjfg*L5&Vx*7^KA3WvUP>ZA3!|&VDg9C<&K|W}D?jPF)cVYL(OkXFj2x2_TQYS9 zBc9qn?0@~9ep3n|3-H+~c>bu6Ai0muPb`LuM|^Y|J?Dk$Wq&9ZqeqU-@fBzcZH|KnH!^(jx0|r}fXe$=nw3$B5*Fjb2 zd~Z|*$Hx!sx#55tPV}u?i#^ldz7YL%6D|$s7JYIzA~h428pV1ILE^Q}x{kn}?n9?hMph=TZR%2uf&_K4drz@)>biif2&N7b8}NJr z7ICXedh{JvY*kA}eDbuFbgZ83z6KJb$uoQ|)K4dUhpE;33wlc?@CY>QQ!TgFl`hmjKOBiqJ7LR5g%$h3hsl_Fp&L4E5-R5pq{CW60bIwJ^J8Xr;}r>AXl3vDneaYr+%XKJGIsfK66R(jH*NhxvAGmd zR7cGFgHD_Ar)r5A_#T$_O3?#ady1xnYD(?iW1?yUhjacT=0CWz)5ZU8i^DvkYk?Q&WY(r8174&oY^Y!tJHCdrH znk7fy7dY4m0fI|oju5cu>QE_!p&y}U(D|jm;92YHkFn8?wYV;iEA>~W@Pc1Q-dSC4 z#?8>|r^K&RJRlOcm2g=KJtv6gx^sqkcLyS1wy^RJTsv=oK07s+cg&o5xIJF-Y|Ri^ zVjAIpd`M{%#RB)bl#`Ax$+pWDL1pc|i${JPx z+S8gcZRPk*a(lRpHse;F25!GKiI4Yf8vT==Q&1oryhLZX}Q%^d8(=f zTM_m%NC<3gTCRAWq})+I47G046shjwXHV^^7`uLbjMQLxYWuqP(~Zozx$i^Dk1Vfw zapmoI%#4#W>_Abcv#WTxdMnLDf-npLute3|g@5FJQejvgRX8rhchA0QY}%Zpv&a71 zL|b!;i*LN-v6~m+7NwXd*2-az^HN0)iIf3KUE*X6o0F_SeQ*T+nao?uw8-R%M>qkJbVk1=-i>_kpXzCsjo-?$?Zf2N2eBd3ZSwJ2)%YDYovoo5RR0JVw{#f zS~2;ctwXo!B`0b5K3YKVn#Lf$mDnJNKiR+Rcr}(!uVdi*CnYR7IBfH)Ivu>gI$~V} zexTK(i7*p1^<8#mJC#!HKx%`P=to3;j>G*0_YE_@q_B!z+MG0-zlCF;yPG7JPiNhH z^=9!5RnyF)e!haRmmLIi|IT&VP=P2>a%%cI+BGJdk^ZS z&CSWc!^BxHsTTpvd&D#6;lS<7C3*P6maFKW#_$|#v~z1JFK>4dk8TdY1AaQlT-0|N zBU#W&I6){i7wd%86v!aIiqH?Zl7tg@PB7B6QM=6}K=NS5d}dX>y4z3^ZI6qQQQ}>u ziOE>+8#(MPI-7#$@3B%Q^}rfs)Z?UOe7bl(K|NO0H(&HxmPdUYURrilHN-@;)2A*n zDr!Ym=qqB*QT=V}6@e;HriTD*D24RI5&eV=7Pf3PH4d*Fs*`u%zE;eJ1?fXIpVwS? z8g0LLPn_J^M}}{xw=JeAU{Se*=_O>q5uVJpdcCTG-S;!?L2k799d575Mbgi$YlSld z&G>_io-9r-Z<4>$6JU9@T<-9;>a{LUfjw0`3BD~bqHM{ylF1l9$er$?oB20cu_*)&-8NI zc~5KmXem_LOSAWti#5yz4!)LwY)OgZkJkHqJkRtNcE1qqF1Wa+ z%&s7%!)O!fu*mCOAGfmP(%qF9iC!z=1NkJ(?w3LkGFj)7aY}5*A7>yn4?>Gaybyhn zk2CYrEf*rswymQrtJw0nvJ@&f&ZWMJ9P2w8%;QjzMi^SbFfvwSEVwE94z+*I~_S8 z$nwhaXzSFq_K-8BCmFz26q7ASKQBuf|M?IAy>^_Eqgl!Uf#(~R@{bjae!PMtL$tHq zL)HP$oU^Ka-lmK9{8}FwA6w?y`*w&v2hV=BjkH=EkEn`fcbPMd5wJj&U3+ruZQ;Yd z-GqjB-8Z=CJTF6l3)yP2!k>Hw*8?y?mK0jzUjVCPCLo*z7ge;b)$vmYAwo1eoz#Zr zeDlycu*)lnQq@x#`Q@Dh1P8}WTGdmTqikX=F`KFQ2Cx5v?~|BcU)$d0^SYsmxTxx8 z(VhC}EthOZ<~(F(tbX&ZpKb^LcEhDm2H+n{j%O7QH&JEb+9JU(6eOER@XUy!>Au~i zv}h9A_i?pOxcXi3=UL-S$H0a8qR=0d;?s1o))S6pMgu;B08}+^;L|oT6%On3Nj+t_ z)1QcDDNUG86!uy%rY6g(w=a?v&YTs`l03k(EBZ7g1^AHH-oia6-w=98#%25j$CHr@aU>-RiunG(WLy?}HvI8e*tzi`wIg##v6!n6Y;xX_7J zZ^LsX3s>KHMQ(m|#;x8d{sTRBsN8WKT(h+rI7_zh5qgHBF}W5O$S*ttmx&)bvOqNA zkjV7&;_2!SQA?}CY4g6R-CSb`;fW8aL&*(b7e^U(*7g#&bviB=>jActIl}ux(~iF- zaK>-=-S#5%v_e6f6ru)ZTv$6Ux?tmVPv42;3pRpb^Sej#((lV1*u@xr zmalVt;gIhAZn3dxGJp0W*^&3az@8;&IvDeb9N`NAzA4ut=%RHzak-7rEl`t*3VLh-n9I{;Ve7OBXR8+@mXdsaE5~MEA_di0mCu_`y@{LA*qeIa zuIC8xI%$76-fr#>iXJ}FN)4`Ak7u998KSEbo!roOZAD^yf2ytgBokh{@>5@2?r^$- zU-Rl|m8kQtk1O&(jDmdDaW>M*7r7x6w(6Ct)?ZIHTSb_;y3OUh$_&g-KX+4U(U0h- zu7z{IUlGTn4HUkwnmZfMHDs&Vam;I}$X-VyzIR4!k$wF!I*56}CC^s&u2oN@2jzYE zmjCYD+(~V=NO;>cY-Y2B3`a0d!R2_aA`$?yVblL<)KJ z7%p$e%%nQQD~?eCyh?`oy^eM%OAt%YJN^Wl(en#NHaFyUCv33<=D{`JbMoG#SugHA zWm#|2;QY>{0Z(ML#TJ2DS?3vg0QoeXUoKvEpNoEKhs!^n6cX)Kv17z=Idb)eB`L>w z6BCL4>v63ObEmrja2^4JJd+4KLp6TqEF57#*navYSi1L9ES@G7qRN#I;DCl9_y|&= zKQg_eTsQW$XVkaz*9~S-HV{6qOJp@kp%VnG6bi9A zubLI3*(imgT@02Bjng1J0Qzhe@tl!7k|SESH_@rK^FZo&x`PGB!u?zK!s+PL^Sc`T z=6bHM>s`8f#+yAZ*7B{NAvD6sYR_$a>~S0~cLvTMGMfdDrmP~)A6lO^wf*P1CqEbl zK;abHIT{J>Pi2F{N33jCm+fTlSC6nlxOVNb>JLO?+!CDa@GevF!>(r&)?M$0=x#9k zDvM8K)Zh_wPjb$Hd1eY&c*;}R;U$v%N2%viEw}}T6PA03E?2)y_q5hOPO%nOTCZ6H z;ZCvmv1mU01nq#aD|yzQW=Z(6^6F1r4F%VZ8O%Q30lFFZ~UqZ@(6 z;dKYe=drpw3Ee)a=SlVD(e4xb9L_JF*hF7JsJwV#8~!;NS==O6H-T$h&{c_H1F|Vw zf&N;Zn82fahr3uzqXZ_q{G=qP$5O}>IgVGvR2l?O0E#ID`fnQrpqiR3^dqC=C-SOk zQb?)%A?ht8l?j7hi;R{PJu{U;F1}fDIW4|XxE3k2j92$SN%7I zCR!!#!?ux(65B(@(F@jQXJ8k%YJyOsgR~5;b>~RDYYP_edrMhe>iZ;D{YY*%zVdvpo8-Ko{F>x) z5GQJG#LsaR>nT6>`Qg1bJy*0j^~V0q<1};*AL)z9zUe)(9>-KDxj(`jA}8Dl6-<}s zUZ~PE+cI|EnOSF%W{nNUZ9%++yCm84L)h-getI@)PWnK?q0IspI{ffv^e``BGAXCm zLyKk{*v`-x+B<-++^(?v<-ECkbFn57M0y{S-Yg!lPYvsD5}Pka=uYjiJ1JepTPJ`# zx|^r;Gu^QQaD*c^)O0P^@ zB&O!=FWeS1cXTpFm;f53z_q6&Wu#?j7oMLBgJ?o+JNgD3p7ZQ-AU}uwyW9d%Is>-* zz@kfbC9j|jjjqRC$CW8u3A_i_)X_^EUlbPRMm>gWgM?S#*^9|)n;zA$4<5tpiCwG? zK(fa%n=jSPJ*n)J+>bYNv)c1f zRCCh1lU|PFVmZVf8+NDI!t+c;b?-LT)-O+&{vwpn$4tJ=G0*?z?69QoK)e0C=RL== z^TZX%s7OzIP?AY!U%>02bHwhy$E0f1SXVnE_Hlv_)!db2d1g5$M(_k$CG%45pQb1B zUehM0T-G~wf~PMH>66Pql_~rmxY^k?Q5@caGIbFHnT}Y(_$d1Nv+3(}s>K8mRTl8G z>Ol5yIobn5PlrXg(<%G<;mozGK74G+_hz=ER(F5kM|_54!QH=b&mUYLmgM-++9^|JZmqT^qBYloB3;~=j=<)p32IqNboMnGuGqZp zN^ep>k8)_+b(HZXoOpQ1ukJ4H^+Hk5iS>pFVs%fUYxx(LeZf(W?_IxXq70{7YP>_Yx zx<<)sv4tpn1YIIpM?W2#rLPo=eg3v*>}ed1R>WYQ8**_StGcVXNYsswKaN-VT ziy5KJ15&xpw3@N(Y``lZS$j&ea$A^e^nLbV^(RGJ_Cbd3FV!jX4@x7sn}DiQkOi(M zO<&MhkAWM0oKHkgp%V466e8jf6RXp3B#t@EA@TwrCRU$lU76`K(W7GuUgWAec zwFfqt&+1w5@_3D8FyJ)4Pw{KqE$o2J_R=g= z#2KJqw2gjH>x*OWovtMMNcE=k0$iyebAr@Em@m{nO=6mDF ztWxxf9fiYCfomBrx+6MmY7`ZTh*>=?ppiUIxG*~B{ZO_>0XgFE1o50vZ0WBr5p)^jaCD)+!v8N-od$Slce zJp200I5$GHmU6tJson~4cWW*4GY25d!vAC8(aB7Q`!91Pds8bD#9bd+k^r zg}cLk#z~!-!ulmT@dLB{{q9Eo96bw7F}hT}_|HoEDLt%R{Jj7(#5GJcEM7pQ4DU%) zDK}7g; zRe0X-^>6(CO_{y}W!)6qL?bLu9lH^YnZ$|pb2$<`fZAzzv3Vtp!1^kMBB!a04<$bB zGJ+ekX0N8U5D>HK{HKU32+-SeDCsYzqxZtKbA_vm3yJyb>fBmh{UTP8Za$g$t=<#S zw>W+c;l=PN{NZtAGt2?&>Xetr2{oe}7GWvE(e814dr}Fvdl-ypZ+B0D&51$EbB0*6 zu}5evu&cM4vp)1^+~1ef3xC&KLHI?ll0y3` z3nvRHSCO=4RU%> zh$^aL-*1I1lB-@O3Pn!V&`27NIFvCVz8&}I+1+8u6P}`d{PY3BC7UT4wvwPP24E>| z3G$`dAq*VJ!E#*%$*5M}lm70pXJz-$H{^PJ*em+W0ecXKAeet_pG^p zT&&qF9FS1(VPpeR2h88*sXKiUnH1TG0_t$xGl>kL-=%#$Qs}{tnCcbPN%RCgII3hK zZ>C3R0-mzP4`tvD0T=jS))_p%tlGqo9@v2|b~z1#?MY8r5~GeE?m?^wlc-5t^WYfH zM)QC(U`VN1K-?m^Q{^ObBh`Z33Ygk$p^l41=ED0_vGGwPgNO4kbKmQjx^X--oUmGa z@mWfX0ncl_AuQHZL{)SK2uzy+Pcj@tWqQBC@sFo?@e_muVK#yJ;s-qh{ggH|WE2rG zP)2SpJ8v^#AIbVSZ!`5N%zirF{}5z@3h=O8_KyIO#XH=5DRk}1vvK-_Q^Vb>s5>pb@ zY-9$+5f3!9ZJ{Is)e0l1h$99F$X@LkMt6z1kSO%d6(&718!@b}|JI_|r`tV#95c}= z)~7!ZFKz?pi}0G{Q+FkD$mc2GB>SN>t}R&nevICpwzE^j9vqNT$xw#KhV*%cRig@9 zHBI5M;=|07`UUXzlQhGn*Y@%2>b{I^LEy z=Xnv;C&@c#ORY=EP=mqigMf*cLTKmJu>LJ^j%pbk#un#hnSagHgNmboKK&)6i z*XS21LIVHPw7L1cS#x)Yv#gU;VNjsPc`Oj?Qzpqd249p(fRn1m!;H~pXp z+kLny=g4@e=g^pFkIflDNufg=3%H(a3XcB>CQ{F`XyBM1i;3fx(4W)$-Gx{SF21WG zW<&}JCWmSHLt~Tp_6IEy(-i>Jp!bPtG_ir@15b!K<(P0SH9j#|ekOoP?kXQZ^-iLy z`vjr^zZa}~DFBO~@)p@-N1&abj-(N%zcpFv2=0m^3_AM=nt&@m+#5pqOR#P)j`l6< z4!bLnXmaI-dD^P?$v>}LzL>U&@&h}SDEcx1Oy@=R>qC=5qcX`o@m8BhVrP~xeL4w! zOK-RII%V&oV`%KzR0O3w;SZxKJ4AtK7dRR~WmCI!I1FKY_R>oexH)iGS98T@{6c;5 zPY;(q9sOk{V+lB`L49Acf#d>PQn-?ZSltkyU)JUd$(e_d$R7Q7r5VkojtjHY`x#R~ z;c1@v;|4Q_sv8AZ@f@4}pgPuhCZmznMIE4um(Y0+7q+1dzcHlG@Wr5F+$x9W(V^ZU z50&PdCvwMRY1Eg$t@WmI$yJc5hLP~sUj0O|NkzwP&N%l&D3(ijA)$L+ov|1_=XA8{ z;)2P7rKtt0PlZq}vm+1&OtKge`o+IdQURX<`sM2hKR!7rLiBmmcxC%&N5U#nX!) z2K^e;>XUgx=gQ|!$Fs%t13v-WP6ab^;5$XZAwtkpe*h%7#3p&f#$NCG&M6?)P#jeJ=>XpqkSibuAxX#n~K3RDJoK0i`+3A}}u zD~&y^f2uib6&;$^vC26$?HXxu2}DwSmR4!%yz$iU{Z5&fmm{(hxr5^zYK;#Th*;)d z(cys)q=!H&EQi_Gd;kRXsza^$jamKU$d;wz9sQP0`%gH&39oLN`=e)J&)~DjS=HNV zxGGckNYPyb^iT@W$tPn;CTR1Fxsc9n5Qu)~j~P-3H^UGwd~rZR4X|!N$q5hLW|8(= zyW!qDM)Z*9AC!ICS;Vu%vj^~4H+D_NOA!zoo{yb{Ee7&zl6Z?%o|7~HXrcx2UJ2|P zJVg*=G~PrN?@){?PNM2`MB@Q>^Uv@X6eDm$C%2o(~R$Qu_hH&-oc@C#ncxp zK%NZXwcuKKU|ds@!()zj2ofkDEjNhAk%vq_g@c ze;^8R+@9n!zEk4~_U=QagVVda&sCi-7#3-OiFCko&R1Kf>_=!|MZsbd0>4!3Pen?& zl;6rxq$vEx{~%07Q>uwM-*}U@P4qR)mkkgp2(9hYYXvD0b|qd{?4+ez1*;s&BY9wN7!pV;X%s3KV6HBUry% zNj>OtNim&ci2@6Kit5q6a-0i4Pr?U@;${d$k!yiS7(O8wTozMlJk|kc0{o?2un26X zGvpp1mj=p9BFKN&>X>I#*G%Pzw*F9n%d(EUY?!EefyIFg&L_peaWG2}bYzhtFH=D4 zcO;8c5{*&yaiv7N2EC??WxvLGmbT+OpY)q+pOS@s8+8N8E$Mp$YsZ`$KhXp zift_m#RiTQ2|RaL_~bh{5^i_pP{ENDo5cn`DNo8$s&B$;B{~AU7)0j=h^K+SOz$`6 zJ`#+gb2~E};Kx7o3SNO<2Gm*-pG=QG{&@J66mqMovNro(ABFO^tL0x_Y~pF><14n}%RIS^N8f>GG4~LVO`wF*N%?8Nz^YHuIrCI9UY9pYXWwQ` zT*IHB{Hm+N&m1dwog>@^X5RV-YZg6370VnImLjnkpjy~vSRkE65Iko=;rt`&*ZMx&bxO%7URF7$r`yqW`G zpDJqa^9?1)!a+rAeL{WfUKj1hc zZn3JpSdk{z$U8^)!P!d8DxKz4MzXAeF1-?UR$TM;p5meJiDk`zcmtOUpCU@b3YAzwD(oI zx~^sUN!N<)HaC6_6p_+N@AAy918kMR(N4d3r~{8d4y@W*Fn4KDdG@fw!5yM~Xg!PH zPADF`BC>^RJtP^DYZt79pmousyJUHdF8=zUnscKm` zSOTJN5!kJ*q~34S2Vi0Bin^gB-<~5<$jUyU{Of?Z7DntNUKNk$ha{Zc{*&;00L+RR z^%~gJDNcamp-UCWK)<^bin*z96|J*5vopu=qFO z!*K0uv`aE245A3>ybxo!Qg}^Fw`y+k?xk=VprarMc9fFw^K}fWY$(_lr!+MUcloX{ zp4Sm>^NGCW_o2|V*M3O#Xbt^EP}VAi$rSs*A|x+0>3LRpqow;c>!bKYIF^b&jQlw~ zSF#^v(Tjt`c6Qv0{fzD)5e!Tpvc<7R3TfhtQ)zESbHC}pKT^8vA}4I&r~4xrt81ps zg%zJsEwq{PVk=9TWc!`P&qq8`@co-QmXTU*^Gmi})N`j?VzpczTD+IUqn)E$nH-d* zBMk#qr}%Kq{4%O~pF3IQYl`{H`kUDnyqZptX&e0ma$Em({ zOwEFY_Li`7IW4n1^TNA9#gFp_j`XDItht4K`1^RX`lkpwn`|`qbAQI1P&)Q$;48lm zlch7J&q>qsjIK3>dk@pa8ae~?I*?V%5gtKARAj{Fz7ce~A_b@N~Y;YiqA7XOgOx=9h;cqPR_Q; z7UWHb34Or8_av&at?CG82(w5FMuG76C64wx775hwt%uwGFXG-b9LhI-AD$A*(o_<% zOr=uU%34__Um*!?Qp8kbUlKybOcb(C5{fdFq!N=o+l*b-k=+bthLB~LLE~nYo~z&Q zIG$JkanF6<*L_`|>+?B3=XqY3W{tevm&EG`Vg#ZSgIABn8j|S!()()o1s$nE2QE+W|bbHdSRu_AF02y@njQ=L^D|vpwdi` znV>_UO3fle`(&CX?@`M^ojUmlIqib)C0!B7VC#jk9*AgXxmdbhG}j#4{4U`E8tlGX zqbs`7y>XDhd%9Y-+TQ@AYDH@&3AutT*m~*JrAX|z*m&?ulG+n86gpdT_`w`$? zpKvk!FYJ#9yJJbSgzv?iCy%||Ucx!aBF5!l>k+(Di~?iD^hl@3mbr7CKHF1ng_0Fv4 zW=9&2TuuC}9Hsj1{iEYNT}G`;{e~ny#?Syhvf#5nd3U5H1o!G-xFKDLmH778k@?py@rLfK#yZ*#zXeSm z%7s%IL}!O`Qij{YfFiv Mn#r{1qY`gch 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 h%=bIToday I'm going to explain some of the lessons and tools I've found that could be useful for someone developing data science (and also general purpose projects) in Python:

-Profiles +### Profiles

Have you ever been programming in your favorite IDE and thought: "Is numpy/pandas accepting this? I'm gonna try in a terminal a toy example, just to be sure". Then you go to a terminal, write [i]pythonΒ and you have to write, for 334th time in a week, the famous:

@@ -74,7 +71,7 @@ In case you are in Ubuntu, you can also run 1. Modify the default profile, found in the same directory as the profiles we create 2. Create an alias, see last section in this post -**Notebooks** +## Notebooks

Jupyter notebooks are really powerful environments where you can develop applications not only in Python, but also other programming languages such as R. They are a complete world, and I'm not gonna explain the entire list of features they have. See an example here. As you can see they might be useful to present work to other people, but also to have a more dynamic environment where you can run just some pieces of the code, so standing as an intermediate player between the terminal an running code in IDEs.

@@ -109,7 +106,7 @@ and you can run it by

Another feature I like is notebook themes. Some of us don't like to code in a black on white schema (white background, black fonts) , though there is a lot of controversy about this. To be honest, before writing this post I always thought that it was healthier for my eyes, but it turns out that it depends on the environment light, and also everyone eyesight. In any case, if you feel better or at least the same with dark themes, you can do your bit and saving battery and energy, which is both good for your pocket and your planet. Instructions can be found at the link.

- **Python in a terminal** + ## Python in a terminal

I highly recommend working in an Integrated Development Environment (IDE) to develop code and use Version Control System (VCS). My favorites are Pycharm and Git, respectively. They are free, popular, and enough for almost any task. However, in some situations we prefer/have to work in a python shell. Here I give you some tips and tricks to improve your experience in that situation.

@@ -144,7 +141,7 @@ These alias just create shortcuts to save time, e.g: *

control+z: send to sleep (background) current process. This can be useful if you want to try something in terminal without losing your workspace in Python. Or if you want to work with two different python environments at the same time, since typing Python will start a new and completely independent environment. To return to the last slept process, run fg (foreground). A list of the current processes in a terminal can be obtained by running jobs. More info about this here.

*

I love using *home* and *end*Β buttons, but in my Mac I don't have them, and first days I was really disappointed. In some applications, such as in the browser, you can move cursor to beginning and end of line by pressing cmd+left/right cursor, but it doesn't work in the terminal. In such a case, the default shortcut is control+a and control+e. This works for the ipython shell as well.

- **Conclusion** + ## Conclusion

Today we have reviewed some tips and tricks for working with Python in a more agile way. There are many many other things that I could recommend, but they'll probably be matter of future posts. Mainly, we have reviewed the usefulness of ipython as a better interface to run python commands rather than the classical shell; notebooks as an innovate way of working and presenting work with Python; and finally some tips and tricks for using Python and related tools in a terminal.

diff --git a/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md b/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md index e7c9f83..1e5c0a7 100644 --- a/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md +++ b/src/content/posts/2019-02-08-jupyter-lab-on-a-remote-machine.md @@ -1,5 +1,5 @@ --- -title: Jupyterlab on a Remote Machine +title: JupyterLab on a Remote Machine date: '2019-02-08 00:00:00 +0000' permalink: /posts/jupyter-lab-on-a-remote-machine/ categories: @@ -16,7 +16,7 @@ Today we'll see my config for running Jupyter notebooks when working on a Remote Jupyter notebooks are very powerful tools for easy prototyping in Python (or even R!), but also for intensive development. However, one typically runs the Jupyter server in local, and connect via browser. How do we do this when we want the Python to run in our remote box? -1. Install Jupyter lab in the remote box to be able to run the notebook server, e.g. `conda install jupyterlab` if working with `conda`. +1. Install JupyterLab in the remote box to be able to run the notebook server, e.g. `conda install jupyterlab` if working with `conda`. 1. `jupyter lab --no-browser --port=8089.` @@ -33,14 +33,14 @@ to your `~/.bashrc`. This will make the tunnel always active but in the backgrou To make it effective either restart the terminal or `source ~/.bashrc`. -## Jupyter lab as a service +## JupyterLab as a service -Now you're able to run notebooks on the remote machine, and accessing to them via browser. So, even though it says `localhost:8000`, you're in the server! However, it's really annoying going to the remote machine and start the Jupyter lab server every time. This can be automated by running it as a service source: +Now you're able to run notebooks on the remote machine, and accessing to them via browser. So, even though it says `localhost:8000`, you're in the server! However, it's really annoying going to the remote machine and start the JupyterLab server every time. This can be automated by running it as a service source: * Set the service file `/usr/lib/systemd/system/jupyter.service` (yes, you probably need to create some dirs) as in ```bash [Unit] -Description=Jupyter Lab +Description=JupyterLab [Service] Type=simple diff --git a/src/content/posts/2019-11-08-easy-recipes-for-a-(bit)-better-world.md b/src/content/posts/2019-11-08-easy-recipes-for-a-(bit)-better-world.md index 14738e0..4f8b8dd 100644 --- a/src/content/posts/2019-11-08-easy-recipes-for-a-(bit)-better-world.md +++ b/src/content/posts/2019-11-08-easy-recipes-for-a-(bit)-better-world.md @@ -59,7 +59,7 @@ different extensions my recommendation is to use :`:** Downloads an image from a registry (like Docker Hub). If you don't specify a tag, it defaults to `latest`. Example: `docker pull ubuntu:latest` -* **`docker images`:** Lists all locally stored images. You can see both the image name and image id for each image. -* **`docker rmi ` or `docker rmi `:** Removes a local image. Be careful, you can't remove an image that's currently in use by a container. - -#### Containers - -* **`docker build -t .`:** Builds an image from a Dockerfile in the current directory. - -* **`docker run `:** Creates and starts a container from an image. This is where you'll often add options: - * `-d`: Runs the container in detached mode (background). - * `-p :`: Publishes a container's port to the host. Essential for accessing your application. Example: `-p 8080:80` maps port 80 inside the container to port 8080 on your machine. - * `-v :`: Mounts a volume (directory) from the host into the container. Useful for persisting data and sharing code. Example: `-v /path/on/host:/path/in/container` - * `--name `: Gives your container a memorable name. - -* **`docker ps`:** Lists running containers, while `docker ps -a` to list also stopped containers. -* **`docker {stop,restart,rm} {,}`**: Stops, restarts or removes containers, based on id or name. - -## Dockerfile - -A Dockerfile is used to automate the creation of a Docker images. It defines a series of commands that will be executed when building an image. Here's a simple example: -```dockerfile -# Start from a base image from Dockerhub. -FROM python:3.12-slim - -# Install uv. -COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ - -# Create a folder called app-folder for our app within the container -WORKDIR /app-folder - -# Copy the application into the container, into /app-folder -COPY . . - -# Install the application dependencies -RUN uv sync --frozen --no-cache - -# Run the application -CMD [".venv/bin/fastapi", "run", "app/main.py", "--port", "80", "--host", "0.0.0.0"] -``` -inspired by uv's documentation [here](https://docs.astral.sh/uv/guides/integration/fastapi/#deployment). You might find the full code at my repo [here](https://github.com/marctorsoc/fastapi-with-uv-example). I simplified the source a bit to make clearer what the `WORKDIR` command does. Now, we would first build: -```bash -docker build -t fastapi-with-uv-example . -``` -and then run: -```bash -docker run -p 8000:80 -it fastapi-with-uv-example -``` -Then, we can start a browser on http://localhost:8000/docs to see the FastAPI docs. If we don't want to see the logs, we can use `-d` to run it in detached mode, even though I suggest running it in a tmux session. - -## Troubleshooting with the toy example - - -### How do I get into the container? - -Let's say that we want to get into the container and run the app ourselves, or check something. This can be done as follows: -```bash -docker run -it fastapi-with-uv-example bash -``` -This will *create* the container and give us a shell inside the container. We need `-i` to make the container interactive, `-t` to allocate a pseudo-TTY (terminal), and `bash` to run bash inside the container. This is actually overwriting the `CMD` from the Dockerfile above, with a new command. - -If you rather want to get into a *running container*, then you'll do this instead: -```bash -docker ps -docker exec -it /bin/bash -``` -Note that `exec` runs a command within a running container, while `run` starts the container and then runs the command. And by the way, to see the logs of such running container, we can do: -```bash -docker logs -f -``` - - -### What's the difference between `CMD` and `ENTRYPOINT`? - -The `CMD` and `ENTRYPOINT` are both used to specify a default command or program that should be executed when the container starts. However, they have different behaviors: -- `ENTRYPOINT` specifies a program that will be executed when the container starts. It can take arguments, but it's an executable program itself. It is overwritten by using `--entrypoint` with `docker run`. -- `CMD` specifies a default command that will be executed when the container starts. It can take arguments, but it's not an executable program itself. It is overwritten by adding arguments at the end of `docker run`, like we did with `bash`. - -Note that `CMD` can be used in conjuction with `ENTRYPOINT`, to give arguments to the executable from `ENTRYPOINT`, but that's a bit of a hack. - -### How to open a Jupyter lab server to play from within the Docker container? - -This might be a way to check dependencies, outputs or to debug in general with a nicer interace. First, let's run like this: -```bash -docker run -p 8000:80 -p 8000:81 -it fastapi-with-uv-example bash -``` -This way we have one port for the FastAPI server and another for the Jupyter lab server. Now, we would create a tmux session and run the FastAPI server, that we can check at http://localhost:8000/. Then we can open another tmux session and run: -```bash -uv add jupyterlab -uv run jupyter lab --port 81 --no-browser -β€”allow-root --ip "0.0.0.0" -``` -Note that 1) it’s not "host" but "ip", and 2) we need the IP 0.0.0.0 to bind all network interfaces, which allows external connections to reach the Jupyter Lab server. - - -## Memory issues - -During my time at Globality, I experimented several issues when training ML models, that were related to memory. That's why I found a bunch of tips and tricks that might be useful if you're in a similar situation. - -### Ensuring all memory is shared - -This is a bit more complicated that the question I posed, but if you are debugging and cannot make a high-performance computing application to work (like when training an ML model), it might help to add `--ipc=host` to the `docker run` command. See full reference in the Docker docs, since it comes with risks. - -### Limiting container memory - -To properly simulate the environment in production, you can limit the memory available to the container by using the `--memory` and `--memory-swap` flags (plus a few others, see Docker documentation). - -Here an example: -```bash -docker run --memory="10000m" --memory-swap=0 -it -v /":" --gpus all bash -``` -For ubuntu, this capability is not available immediately after Docker installation. See [this page](https://www.serverlab.ca/tutorials/containers/docker/how-to-limit-memory-and-cpu-for-docker-containers/) for instructions to enable it (verified on ubuntu 18.04). -To verify that the memory limit is applied once the container is running, and to see memory usage in real time, run `docker stats`. - -### Checking memory limits within Docker container - -The `docker run` container can be run with memory limits, as explained in [Check mem_limit within a docker container](https://stackoverflow.com/questions/42187085/check-mem-limit-within-a-docker-container). To check all limits that are set, add the following to one of the first lines of code that are run within the app: -```python -try: - os.system("more /sys/fs/cgroup/memory/memory.* | cat") -except Exception as e: - self.logger.info(e) - self.logger.info("Problem running `more /sys/fs/cgroup/memory/memory.* | cat`") -``` -See [here](https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt) for explanation of the fields. The most relevant are: - -* memory.soft_limit_in_bytes - -* memory.limit_in_bytes - -* memory.memsw.limit_in_bytes - -* memory.kmem.limit_in_bytes - -You might also look at the `*usage_in_bytes` just to double-check the memory at that point is low. - - -## Problems with gpus - -First make sure you are passing `--gpus all` to `docker run`. Then, you might also need - -```bash -sudo apt install nvidia-container-toolkit -sudo apt install nvidia-cuda-toolkit -sudo systemctl restart docker -``` - -Now, e.g: - -```bash -watch -n 0.5 nvidia-smi -``` -to keep track of GPU memory every 0.5 seconds. - -## Rebuilding the Dockerfile - -The following will give you an approximate idea of how the Docker container was created. Note that this will show ALL parents, so if you container inherits from others, it will include those as well: - - -```bash -docker history --no-trunc -q > dockerfile_recreated -``` - -## Docker Compose - -If your application consists of multiple containers, Docker Compose simplifies management. It uses a `docker-compose.yml` file to define the services (containers) and their relationships. Here is an example of an app having backend, frontend, and a database: - -```yaml -version: "3.9" - -services: - backend: - build: ./backend - ports: - - "8000:8000" - depends_on: - - db - environment: - - DATABASE_URL=postgresql://user:password@db:5432/dbname - volumes: - - db_data:/var/lib/postgresql/data - - frontend: - build: ./frontend - ports: - - "3000:80" - depends_on: - - backend - - db: - image: postgres:13-alpine - ports: - - "5432:5432" - environment: - - POSTGRES_USER=user - - POSTGRES_PASSWORD=password - - POSTGRES_DB=dbname - volumes: - - db_data:/var/lib/postgresql/data - -volumes: - db_data: -``` -And the essential commands here: -* **`docker-compose up`:** Builds (if necessary) and starts all the services defined in the `docker-compose.yml` file. Add `-d` for detached mode. -* **`docker-compose down`:** Stops and removes the containers defined in the `docker-compose.yml` file. diff --git a/src/content/posts/2025-02-08-data-science-on-remote.md b/src/content/posts/2025-02-08-data-science-on-remote.md index 4abdb05..7888508 100644 --- a/src/content/posts/2025-02-08-data-science-on-remote.md +++ b/src/content/posts/2025-02-08-data-science-on-remote.md @@ -112,9 +112,9 @@ Running long processes remotely requires keeping them active even if the connect ## VS Code's Remote Development: A Game Changer -If you checked my old posts, you'll see I was big proponent of Pycharm over VScode. However, I used to run notebooks on a Jupyter server, and then connected via browser after setting up a tunnel. You can check [here](/posts/jupyter-lab-on-a-remote-machine/) my old config if still useful at all. I really liked Pycharm's Git integration, especially for merges and comparing branches. And, to be honest, I still think it's a better inferface than the one in VScode. At least with all extensions I tried. +If you checked my old posts, you'll see I was big proponent of Pycharm over VSCode. However, I used to run notebooks on a Jupyter server, and then connected via browser after setting up a tunnel. You can check [here](/posts/jupyter-lab-on-a-remote-machine/) my old config if still useful at all. I really liked Pycharm's Git integration, especially for merges and comparing branches. And, to be honest, I still think it's a better inferface than the one in VSCode. At least with all extensions I tried. -But at some point I found VSCode's Remotes feature, and it really became a game changer for me. VScode supports: +But at some point I found VSCode's Remotes feature, and it really became a game changer for me. VSCode supports: - Opening notebooks directly in the IDE, which means you get all the advantages of being an IDE (code and imports completion, error highlighting, search, debugging, etc.) - Running notebooks on the remote machine, with the same experience as if it was running locally - LLM-powered autocomplete within the notebook itself! diff --git a/src/content/posts/2025-02-13-working-with-notebooks.md b/src/content/posts/2025-02-13-working-with-notebooks.md new file mode 100644 index 0000000..d46789e --- /dev/null +++ b/src/content/posts/2025-02-13-working-with-notebooks.md @@ -0,0 +1,280 @@ +--- +title: Working with notebooks +date: '2025-02-13 00:00:00 +0000' +permalink: /posts/working-with-notebooks +categories: +- Dev tools +isPinned: true +--- + +In data science, experimentation is key. You often need to explore datasets, visualize results, tweak models, and iterate quickly. **Jupyter notebooks** provide an ideal environment for this workflow: + +* πŸ“ Interactive execution: Run code in small, manageable chunks instead of executing entire scripts. +* πŸ“Š Rich outputs: Easily display tables, charts, and even interactive visualizations inline. +* πŸ”„ Reproducibility: Keep code, results, and documentation together in a structured way. + +Because of these benefits, Jupyter notebooks have become a go-to tool for data scientists. + +## Working with Jupyter + +For years, I used to work first in the classic Jupyter Notebooks, and later on with JupyterLab. But still, I felt myself +transitioning from prototyping in Jupyter on the browser, to writing *serious code* in my IDE (at the time, +Pycharm). When working remotely, I had my system where I would have a service in the EC2 instance, +create a tunnel, and access via browser as if the Jupyter server was local. See [here](/posts/jupyter-lab-on-a-remote-machine/) for details of my old config. + + +## VSCode: A Better Integrated Experience + +But while working at Globality, I figured that not having a good way to edit Python files (not notebooks) with the advantages of an IDE was a big impairment of my workflow. And here's where I embraced VSCode. I was very reluctant to VSCode at first, because for me their Git integration was not as good as Pycharm. But eventually the many advantages surpassed this little issue (which I still miss, to be honest). The main reasons for my move to VSCode were: + +- **Integrated Development Environment (IDE)**: VSCode has an excellent IDE with features like code completion, imports, navigation to sources, and syntax highlighting directly in the editor itself, for notebooks. So you can edit Python scripts and notebooks within the same app! +- **Remote Development**: VSCode allows easily to connect to remote via ssh, and edit files with the same experience you would have if the files were local. Same for interaction with remote notebooks. +- **Easy navigation**: I used to employ this [extension](https://github.com/jupyterlab/jupyterlab-toc) to help me navigate through my notebooks via the markdown headers. In VSCode, this is already integrated in the IDE (called `outline`). + +### Autocomplete + +With the recent advances in AI, now we can run a small LLM (yes, sounds like a contradiction a small large language model) in our laptops. This is great, because it means we can have autocompletions **for free** and **without requiring an internet connection**. It even has privacy implications. + +In my case, I have an M3 and I use [ollama](https://ollama.com/library/qwen2.5-coder:1.5b) and [continue](https://docs.continue.dev/customize/model-providers/ollama#autocomplete-model), an extension for VSCode. This is my config +```json +"tabAutocompleteModel": { + "title": "Qwen2.5-Coder 1.5B", + "model": "qwen2.5-coder:1.5b-base", + "provider": "ollama" + }, +``` +but feel free to try another model you like. This was good enough to me, and extremely fast. + +By the way, if getting issues with the extension, try `ollama ls` and make sure the name in `model` matches on the models you have downloaded. This was an issue for me because in one laptop I had `qwen2.5-coder:1.5b-base` and in the other one **the same model** was called `qwen2.5-coder:1.5b` πŸ€·β€β™‚οΈ + + +### Shortcuts + +I love automating things. That's probably the main reason why I'm working on AI. And shortcuts are definitely one of my favorite things. These are the shortcuts I strongly recommend you to configure in VSCode, together with my current key stroke: + +#### General + +- `Cmd + D`: Duplicate line +- `Cmd + Shift + D`: Remove current line +- `` Ctrl + ` ``: Move focus from editor/terminal to terminal/editor +- `Ctrl + Shift + F`: Find in all files +- `Cmd + Shift + F`: Find file by name +- `Cmd + Y`: Reveal definition of current symbol/function +- `Shift, then Shift`: Toggle Sidebar visibility +- `Cmd + Shift + U`: Transform to upper case +- `Cmd + Shift + Ctrl + U`: Transform to upper case +- `Cmd + Alt + Z`: Navigate Back +- `Alt + Shift + F`: Format document (and I use [globality-black](https://github.com/marctorsoc/globality-black) for this) +- `Alt + Down`: Creates another cursor for the line below. This is nice when you want to edit multiple lines at the same time. To exit this mode, remember to press `Esc`. + +To be honest, I don't remember which of these come already configured in VSCode, but these are the top ones that came to mind. If you have any other suggestions, or there's one that you cannot find how to configure in VSCode, please let me know. + +#### Notebooks + +Here the only shortcut that I configured myself was `Cmd + Shift + 0, then 0`, to restart the notebook kernel. This is very useful to me. But everything else I left as is. You can check the official shortcuts e.g. [here](https://code.visualstudio.com/docs/datascience/jupyter-notebooks). + + +### VSCode struggles with long outputs + +Sometimes, you'll notice that when displaying a long output in a notebook in VSCode, it will slow down, or simply force you restart the kernel. This happened to me recently. In my project, I had a structure like this: +```python +@dataclass +class Page: + url: str + text: str + + parent: Optional["Page"] = None + children: list["Page"] = field(default_factory=list) +``` +that represent a page in my website. Note that is a recursive data structure, since every page has pointers to their parent and children. When showing a single in a notebook, VSCode will try to show its parent and children, which in turn have parents and children themselves, etc. One solution I found was to modify the default `__repr__` and `__repr_html__` methods of the class: +```python +def _repr_html_(self) -> str: + """ + Used when showing the Page directly on the notebook + """ + + # Trim the text to a reasonable length + trimmed_text = ( + (self.text[:200] + "...") + if len(self.text) > 200 + else self.text + ) + + # Get the parent URL (if exists) + parent_url = self.parent.url if self.parent else "None" + + # Get the URLs of the children (max 5, with "..." if more) + children_urls = [child.url for child in self.children] + if len(children_urls) > 5: + children_urls = children_urls[:5] + ["..."] + children_html = ( + "
    " + "".join(f"
  • {url}
  • " for url in children_urls) + "
" + ) + extras_html = json.dumps(self.extras, indent=4) + + # Create an HTML representation + html = f""" +
+ URL: {self.url}
+ Text: {trimmed_text}
+ Parent URL: {parent_url}
+ Children: {children_html if children_urls else "None"} +
+ """ + return html +``` +and +```python +def __repr__(self) -> str: + """ + Used when showing the Page within e.g. a list on the notebook + (list calls _repr_html_, but for each element calls __repr__) + """ + + # Trim the text to a reasonable length + trimmed_text = ( + (self.text[:100].replace("\n", " ") + "...") + if len(self.text) > 100 + else self.text + ) + + # Get the parent URL (if exists) + parent_url = self.parent.url if self.parent else "None" + + # Get the URLs of the children (max 5, with "..." if more) + children_urls = [child.url for child in self.children] + if len(children_urls) > 5: + children_urls = children_urls[:5] + ["..."] + if children_urls: + children_str = "\n- " + "\n- ".join(children_urls) + else: + children_str = "None" + + # Create the representation + output = f""" + * URL: {self.url} + * Text: {trimmed_text} + * Parent URL: {parent_url} + * Children: {children_str} + """ + return output +``` + +This shows representations like this: +
+ +
+ +### New from 2025 + +#### Inline values + +[This](https://code.visualstudio.com/updates/v1_97#_inline-values-upon-cell-execution) is something I found recently. Are you still writing cells like this? +```python +result = long_function(params) +result +``` +so you can visualize the result? Now, by turning on +```json +"notebook.inlineValues": true, +``` +in your VSCode, you can see the values directly. +
+ +
+ + +#### Verbose time execution + +You might have noticed that after the cell is executed, we can see within the cell status bar some execution time information. This is a setting I missed and [requested](https://github.com/microsoft/vscode-jupyter/issues/13338#issuecomment-1645393350) from the very beginning of adopting VSCode, and was partially released [here](https://github.com/microsoft/vscode/issues/168792#issuecomment-2512350627). The docs for this are [here](https://code.visualstudio.com/updates/v1_96#_cell-execution-time-verbosity). TLDR: +```json +"notebook.cellExecutionTimeVerbosity": "verbose", +``` + +But, I'm still missing one of the benefits I was getting in Jupyter with [this extension](https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/execute_time/readme.html). There, this information would be stored within the notebook metadata, which had two advantages: +1. Whe one restarts VScode, it's really useful to understand how long a particular cell took to run. But now all such information is lost. +2. When transforming the notebook into a HTML report (e.g. with [nbconvert](https://nbconvert.readthedocs.io/en/latest/)), I'd like to have this info there too. I used to have a template that would leverage this, and dump it to the HTML too. + +For this reason, I opened this [issue](https://github.com/microsoft/vscode/issues/240405). If you read this, please support me in asking for this feature 😊 + +#### Run cells in section + +If you are like me, and organize your notebook with markdown headers, this allows you to easily navigate via the `Outline` section on the sidebar. But now, there's another big plus! As explained [here](https://code.visualstudio.com/updates/v1_96#_run-cells-in-section-for-markdown), now we can run entire "section" of cells defined by a markdown header. It is as easy as simple as right-click and select: +
+ +
+ + +## Tools related to notebooks + +### jupytext + +*Have you always wished Jupyter notebooks were plain text documents? Wished you could edit them in your favorite IDE? And get clear and meaningful diffs when doing version control? Then, Jupytext may well be the tool you’re looking for!* + +This is the elevator speech of [jupytext](https://jupytext.readthedocs.io/en/latest/), and to be honest, it is quite convincing! However, things have changed a bit since it was first released. Now, VSCode [supports](https://code.visualstudio.com/docs/datascience/jupyter-notebooks#_custom-notebook-diffing) diffing Jupyter notebooks quite nicely. My understanding is that this is a relatively new feature, because I did not see if before. But I could not find its release notes. + +In any case, you probably don't want to add to version control your notebook files: +1. Because they contain the outputs, and that might be heavy information +2. Because the outputs might be heavy +3. Because when looking at it online, it's just simpler to look at a plain text `.py` file. + +Whichever is your reason, these are the two basic commands to work with Jupytext: +```bash +jupytext --to py .ipynb +jupytext --to ipynb .py +``` +and I'll defer you to the [docs](https://jupytext.readthedocs.io/en/latest/) for more. + +#### Missing features in VScode + +This yet another feature that I'm missing from the transition from Jupyter to VSCode. +In Jupyter, one has the ability to [pair](https://jupytext.readthedocs.io/en/latest/paired-notebooks.html) a notebook with its python file. It works as follows: + +* When a paired notebook is opened, the inputs are loaded from the most recent file in the pair, and the outputs are loaded from the `.ipynb` file. + +* When a paired notebook is saved, the corresponding python file is updated, as it would with a `jupytext --to py` run. + +To the best of my knowledge, this feature is not yet (2025) available in VSCode. So I still find myself running the CLI for the "basic behavior". There's this long standing [issue](https://github.com/microsoft/vscode-jupyter/issues/1240) if you want to track this. + +### logger + +Due to the **inability of persisting execution times** in VSCode notebooks, I use a simple Python logger when displaying messages in my notebooks. This is not perfect but it's better than nothing. It also provides a way to time the steps of a cell execution. The config is as simple as this: +```python +logging.basicConfig(format="%(asctime)s - %(message)s") +log = logging.getLogger("lang-examples") +log.setLevel(logging.INFO) +log.info("Starting ...") +``` +showing e.g: +``` +2024-11-18 18:33:21,544 - Starting ... +``` + +Note that if you run this in the notebook, then you can **retrieve the same logger** within your Python files with +```python +log = logging.getLogger("lang-examples") +``` +and don't need to configure the logger again. Another great, but sometimes unknown feature of loggers is that you can set their level (as done above). So a common practice when debugging would be to wrap the line in your notebook like this: +```python +log.setLevel(logging.DEBUG) +run_long_function_to_debug() +log.setLevel(logging.INFO) +``` + +### autoreload + +If you are working on a Jupyter Notebook, then it is very convenient to use the `autoreload` extension. It will automatically reload all modules that have been imported in your notebook when they change (e.g. if you edit them). This can be done by running: +```python +%load_ext autoreload +%autoreload 2 +``` +But there's a small trick some people don't know. If you have constants defined in a Python file, **they won't be reloaded**. This happened to me when working with LLMs, where you might define prompt templates as constants and import when creating a chain. In order to reload the prompt without restarting the kernel, my hack was to wrap the constant in a function that returns it: +```python +def get_prompt_template(): + return """ + You are a helpful assistant... + """ +``` + +## Working with Dataframes in notebooks + diff --git a/src/pages/Blog.tsx b/src/pages/Blog.tsx index c33a378..4d2605f 100644 --- a/src/pages/Blog.tsx +++ b/src/pages/Blog.tsx @@ -61,8 +61,12 @@ export default function Blog() { }, []); const filteredPosts = React.useMemo(() => { - if (selectedCategories.length === 0) return posts; - return posts.filter(post => + // First filter out archived posts + const activePosts = posts.filter(post => !post.isArchived); + + // Then apply category filter if any + if (selectedCategories.length === 0) return activePosts; + return activePosts.filter(post => post.categories.some(category => selectedCategories.includes(category)) ); }, [posts, selectedCategories]); diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index c0a321f..1b739b3 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -27,7 +27,7 @@ export default function Home() { }, []); const pinnedPosts = posts?.filter(post => post.isPinned) || []; - const recentPosts = posts?.slice(0, 6) || []; + const recentPosts = posts?.filter(post => !post.isArchived).slice(0, 6) || []; return (
diff --git a/src/types/Post.ts b/src/types/Post.ts index 6f6189e..1724e4f 100644 --- a/src/types/Post.ts +++ b/src/types/Post.ts @@ -12,6 +12,7 @@ export interface Post { title: string; categories: string[]; isPinned?: boolean; + isArchived?: boolean; heroImage?: string; heroImageWidth?: string; toc?: TOCHeader[]; diff --git a/src/utils/PostLoader.ts b/src/utils/PostLoader.ts index e82defe..dfed514 100644 --- a/src/utils/PostLoader.ts +++ b/src/utils/PostLoader.ts @@ -1,6 +1,8 @@ import frontMatter from 'front-matter'; import { Post } from '../types/Post'; import { generateId } from './textUtils'; +import { TOC_MIN_DEPTH, TOC_MAX_DEPTH } from './constants'; +import { extractHeaders } from './tocUtils'; const DEBUG = import.meta.env.DEV; @@ -40,7 +42,7 @@ function validatePostAttributes(attributes: any): attributes is Post { return true; } -async function importAll(): Promise { +async function importAll(minDepth: number = TOC_MIN_DEPTH, maxDepth: number = TOC_MAX_DEPTH): Promise { if (DEBUG) console.log('πŸ”„ Starting to load posts...'); try { @@ -75,33 +77,7 @@ async function importAll(): Promise { } const filename = filepath.split('/').pop() || ''; - - const lines = body.split('\n'); - const headers = []; - let inCodeBlock = false; - let headerIndex = 0; - const headerIds = new Map(); - - for (let line of lines) { - if (line.startsWith('```')) { - inCodeBlock = !inCodeBlock; - continue; - } - - if (!inCodeBlock && /^(### |## |# )/.test(line)) { - const level = line.startsWith('### ') ? 3 : line.startsWith('## ') ? 2 : 1; - const text = line.replace(/^### |^## |^# /, ''); - - // Generate a unique ID for duplicate headers - const baseId = generateId(text); - const count = headerIds.get(baseId) || 0; - headerIds.set(baseId, count + 1); - const id = count === 0 ? baseId : `${baseId}-${count}`; - - if (DEBUG) console.log('Found header:', { level, text, id }); - headers.push({ level, text, id }); - } - } + const headers = extractHeaders(body, minDepth, maxDepth); return { ...attributes, @@ -111,7 +87,7 @@ async function importAll(): Promise { .replace('/src/content/posts/', '') .replace('.md', ''), filename, - toc: headers // Add this line to include the TOC + toc: headers }; } catch (error) { console.error(`❌ Error processing ${filepath}:`, error); @@ -135,4 +111,4 @@ async function importAll(): Promise { } } -export const getPosts = importAll; \ No newline at end of file +export const getPosts = () => importAll(); \ No newline at end of file diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 81408c4..ef74dcf 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -10,4 +10,7 @@ export const categoryColors: { [key: string]: string } = { 'AI': 'bg-cyan-100 text-cyan-800 dark:bg-cyan-900 dark:text-cyan-300' }; -export const CATEGORIES = Object.keys(categoryColors).sort(); +export const CATEGORIES = Object.keys(categoryColors).sort(); + +export const TOC_MIN_DEPTH = 1; +export const TOC_MAX_DEPTH = 4; diff --git a/src/utils/markdownUtils.ts b/src/utils/markdownUtils.ts index 683b1fa..62ca4d6 100644 --- a/src/utils/markdownUtils.ts +++ b/src/utils/markdownUtils.ts @@ -1,8 +1,9 @@ import frontMatter from 'front-matter'; import { Post } from '../types/Post'; import { getPosts } from './PostLoader'; -import ReactMarkdown from 'react-markdown'; import { generateId } from './textUtils'; +import { TOC_MIN_DEPTH, TOC_MAX_DEPTH } from './constants'; +import { extractHeaders } from './tocUtils'; export async function getAllPosts(): Promise { return getPosts(); @@ -18,7 +19,7 @@ interface PostAttributes { heroImageWidth?: string; } -export async function getPost(slug: string): Promise { +export async function getPost(slug: string, minDepth: number = TOC_MIN_DEPTH, maxDepth: number = TOC_MAX_DEPTH): Promise { const DEBUG = false; try { if (DEBUG) console.log('πŸ” Looking for post with slug:', slug); @@ -60,34 +61,7 @@ export async function getPost(slug: string): Promise { throw new Error('Invalid post format'); } - // Extract headers for TOC with enhanced debug logging - console.log('Content body length:', body.length); - console.log('First 500 chars of content:', body.substring(0, 500)); - - const headerMatches = body.match(/^(### |## |# )(.*)$/gm); - console.log('Raw header matches:', headerMatches); - - // Create a map to track header occurrences - const headerOccurrences = new Map(); - - const headers = headerMatches?.map(header => { - const level = header.startsWith('### ') ? 3 : header.startsWith('## ') ? 2 : 1; - const text = header.replace(/^### |^## |^# /, ''); - - // Generate base ID from the cleaned text - const baseId = generateId(text); - - // Track occurrences of this header - const count = headerOccurrences.get(baseId) || 0; - headerOccurrences.set(baseId, count + 1); - - // Add suffix if this is a duplicate - const id = count > 0 ? `${baseId}-${count}` : baseId; - - return { level, text, id }; - }) || []; - - console.log('Final TOC headers:', headers); + const headers = extractHeaders(body, minDepth, maxDepth); // Now TypeScript knows the shape of attributes const post: Post = { diff --git a/src/utils/tocUtils.ts b/src/utils/tocUtils.ts new file mode 100644 index 0000000..2b65c3e --- /dev/null +++ b/src/utils/tocUtils.ts @@ -0,0 +1,46 @@ +import { generateId } from './textUtils'; +import { TOC_MIN_DEPTH, TOC_MAX_DEPTH } from './constants'; + +export interface Header { + level: number; + text: string; + id: string; +} + +export function extractHeaders( + content: string, + minDepth: number = TOC_MIN_DEPTH, + maxDepth: number = TOC_MAX_DEPTH +): Header[] { + const lines = content.split('\n'); + const headers: Header[] = []; + let inCodeBlock = false; + const headerIds = new Map(); + + const depthRange = Array.from( + { length: maxDepth - minDepth + 1 }, + (_, i) => '#'.repeat(i + minDepth) + ).join('|'); + const headerRegex = new RegExp(`^(${depthRange})\\s+(.*)$`); + + for (let line of lines) { + if (line.startsWith('```')) { + inCodeBlock = !inCodeBlock; + continue; + } + + if (!inCodeBlock && headerRegex.test(line)) { + const level = line.match(/^#+/)?.[0].length || 0; + const text = line.replace(/^#+\s+/, ''); + + const baseId = generateId(text); + const count = headerIds.get(baseId) || 0; + headerIds.set(baseId, count + 1); + const id = count === 0 ? baseId : `${baseId}-${count}`; + + headers.push({ level, text, id }); + } + } + + return headers; +} From 6d824958eaa43c584f11d6612d7efca0186f19ce Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Thu, 13 Feb 2025 10:34:18 +0100 Subject: [PATCH 15/18] fix h4 links --- src/components/MarkdownComponents.tsx | 52 +++++++++++---------------- src/components/PostCard.tsx | 3 +- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx index a154158..5853d32 100644 --- a/src/components/MarkdownComponents.tsx +++ b/src/components/MarkdownComponents.tsx @@ -28,22 +28,6 @@ function processMathInText(text: string) { }); } -function getTextFromChildren(children: React.ReactNode): string { - return React.Children.map(children, child => { - if (typeof child === 'string') { - return child; - } - if (React.isValidElement(child)) { - // If it's a code block, get its children as text - if (child.type === 'code') { - return child.props.children; - } - // Recursively get text from nested children - return getTextFromChildren(child.props.children); - } - return ''; - }).join(''); -} const MarkdownComponents: Components = { code({ node, inline, className, children, ...props }: any) { @@ -165,23 +149,29 @@ const MarkdownComponents: Components = { ); }, - h1(props) { - const { children, ...rest } = props; - const text = getTextFromChildren(children); - const baseId = generateId(text); - return

{children}

; + h1: ({children}) => { + const id = generateId(children as string); + return

{children}

; }, - h2(props) { - const { children, ...rest } = props; - const text = getTextFromChildren(children); - const baseId = generateId(text); - return

{children}

; + h2: ({children}) => { + const id = generateId(children as string); + return

{children}

; }, - h3(props) { - const { children, ...rest } = props; - const text = getTextFromChildren(children); - const baseId = generateId(text); - return

{children}

; + h3: ({children}) => { + const id = generateId(children as string); + return

{children}

; + }, + h4: ({children}) => { + const id = generateId(children as string); + return

{children}

; + }, + h5: ({children}) => { + const id = generateId(children as string); + return
{children}
; + }, + h6: ({children}) => { + const id = generateId(children as string); + return
{children}
; }, }; diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index 33f06eb..4b7e3e1 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -123,9 +123,8 @@ export function PostCard({ post, showFullContent = false, compact = false }: Pos

Table of Contents

    {post.toc.map(header => { - // Adjust level to make level 2 the base (no indentation) const minLevel = Math.min(...post.toc.map(h => h.level)); - const adjustedLevel = Math.max(0, header.level - minLevel); + const adjustedLevel = header.level - minLevel; return (
  • Date: Thu, 13 Feb 2025 10:58:48 +0100 Subject: [PATCH 16/18] ToC with numbers and foldable --- package-lock.json | 10 ++ package.json | 1 + src/components/PostCard.tsx | 51 +-------- src/components/TableOfContents.tsx | 166 +++++++++++++++++++++++++++++ 4 files changed, 182 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac5a8f5..66afa3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "my-website", "version": "0.1.0", "dependencies": { + "@heroicons/react": "^2.2.0", "front-matter": "^4.0.2", "gray-matter": "^4.0.3", "katex": "^0.16.19", @@ -782,6 +783,15 @@ "node": ">=18" } }, + "node_modules/@heroicons/react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz", + "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==", + "license": "MIT", + "peerDependencies": { + "react": ">= 16 || ^19.0.0-rc" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", diff --git a/package.json b/package.json index 373cf20..bb00122 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "homepage": "https://marctorsoc.github.io", "private": true, "dependencies": { + "@heroicons/react": "^2.2.0", "front-matter": "^4.0.2", "gray-matter": "^4.0.3", "katex": "^0.16.19", diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index 4b7e3e1..b6c551d 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -6,6 +6,7 @@ import rehypeRaw from 'rehype-raw'; import MarkdownComponents from './MarkdownComponents'; import { categoryColors } from '../utils/constants'; import { HeaderIndexProvider, useHeaderIndex } from '../context/HeaderIndexContext'; +import { TableOfContents } from './TableOfContents'; function preprocessContent(content: string): string { // First, normalize line breaks in align environments @@ -119,52 +120,10 @@ export function PostCard({ post, showFullContent = false, compact = false }: Pos
{showFullContent && post.toc && post.toc.length > 0 && ( <> -
+
)} diff --git a/src/components/TableOfContents.tsx b/src/components/TableOfContents.tsx index e69de29..0a547b4 100644 --- a/src/components/TableOfContents.tsx +++ b/src/components/TableOfContents.tsx @@ -0,0 +1,166 @@ +import React, { useState } from 'react'; +import { Header } from '../utils/tocUtils'; +import ReactMarkdown from 'react-markdown'; +import remarkGfm from 'remark-gfm'; +import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/24/outline'; + +interface TableOfContentsProps { + headers: Header[]; + className?: string; + indentSize?: number; // New prop for configurable indentation +} + +interface NumberedHeader extends Header { + number: string; + children: NumberedHeader[]; // Remove optional marker, always initialize as array +} + +function generateNumberedHeaders(headers: Header[]): NumberedHeader[] { + const minLevel = Math.min(...headers.map(h => h.level)); + const result: NumberedHeader[] = []; + const stack: NumberedHeader[] = []; + const counters: { [key: number]: number } = {}; + + headers.forEach(header => { + const relativeLevel = header.level - minLevel; + + // Initialize or increment counter for this level + counters[relativeLevel] = (counters[relativeLevel] || 0) + 1; + + // Reset counters for deeper levels + Object.keys(counters).forEach(level => { + if (Number(level) > relativeLevel) { + delete counters[level]; + } + }); + + // Generate number based on all parent levels + const number = Array.from({ length: relativeLevel + 1 }, (_, i) => + counters[i] || 1 + ).join('.'); + + const numbered: NumberedHeader = { + ...header, + number, + children: [] // Always initialize as empty array + }; + + // Pop stack until we find the parent or reach the root + while (stack.length > 0 && stack[stack.length - 1].level >= header.level) { + stack.pop(); + } + + if (stack.length > 0 && stack[stack.length - 1].level < header.level) { + // Add as child to the last item in stack + stack[stack.length - 1].children.push(numbered); + } else { + // Add to root level + result.push(numbered); + } + + stack.push(numbered); + }); + + return result; +} + +const TOCItem: React.FC<{ + header: NumberedHeader; + minLevel: number; + indentSize?: number; +}> = ({ header, minLevel, indentSize = 0 }) => { + const [isExpanded, setIsExpanded] = useState(true); + const hasChildren = header.children.length > 0; // Remove optional chaining + const isTopLevel = header.level === minLevel; + + return ( +
  • + + {hasChildren && isExpanded && ( +
      + {header.children.map(child => ( + + ))} +
    + )} +
  • + ); +}; + +export const TableOfContents: React.FC = ({ + headers, + className = '', + indentSize = 0.5 // Adjusted default indent size +}) => { + if (!headers || headers.length === 0) return null; + + const numberedHeaders = generateNumberedHeaders(headers); + const minLevel = Math.min(...headers.map(h => h.level)); + + return ( + + ); +}; + +export default TableOfContents; From b1261cb545a223614841938d96fbc3852280f29c Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Thu, 13 Feb 2025 18:54:14 +0100 Subject: [PATCH 17/18] working with notebooks finished --- public/content/display-foldable.jpg | Bin 0 -> 60242 bytes public/content/pipes-example.jpg | Bin 0 -> 21555 bytes .../render-df-with-multi-line-texts.jpg | Bin 0 -> 70693 bytes public/content/render-nested-false.jpg | Bin 0 -> 38885 bytes public/content/render-nested-true.jpg | Bin 0 -> 39604 bytes .../content/render-nested-vs-not-nested.jpg | Bin 0 -> 111346 bytes public/content/side_by_side_example.jpg | Bin 0 -> 118955 bytes .../2025-02-13-working-with-notebooks.md | 165 +++++++++++++++++- 8 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 public/content/display-foldable.jpg create mode 100644 public/content/pipes-example.jpg create mode 100644 public/content/render-df-with-multi-line-texts.jpg create mode 100644 public/content/render-nested-false.jpg create mode 100644 public/content/render-nested-true.jpg create mode 100644 public/content/render-nested-vs-not-nested.jpg create mode 100644 public/content/side_by_side_example.jpg diff --git a/public/content/display-foldable.jpg b/public/content/display-foldable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5b56ec8255aaca81f607d4c31dcf895fd9af725 GIT binary patch literal 60242 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 literal 0 HcmV?d00001 diff --git a/public/content/render-df-with-multi-line-texts.jpg b/public/content/render-df-with-multi-line-texts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7dddd039cb7f6c0c169615ff6d7a2113a930c550 GIT binary patch literal 70693 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∈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 jOzZ{SDuc`kA^;E@s literal 0 HcmV?d00001 diff --git a/public/content/render-nested-false.jpg b/public/content/render-nested-false.jpg new file mode 100644 index 0000000000000000000000000000000000000000..553db387c712a99a590417d73fdac770f1c7f6d4 GIT binary patch literal 38885 zcmeFZ2UL?w*C_nZd+#-LP^w5#IwArhQbc+Y=_Q0tC=x}b7exU90qLL==`9lJC?HBF z^dJfdlAwk_2;As-kLP^^)Y0fApJR|vw`!mu%xs$6u zBl{BuB1W?_2C=!!l-LX?g{ z$R!}akCYhz!2TgY76uoDY;5g>s5XDe&JJ(^r(Ilw19Z*IuKeQqulgtaSHVvI947#n zkp0Q)FZ_QAVsUd1b|sFo8Ik&?Td*sb2saV0BiDc+VxP%g67izpApt+(Ng~W1MC>3D z-uMZ7{sABTgm3X)G=DhyyG}oJ@Kbmmp67pjRN`g~D7tiG1jPwx!_j=Iu{} zZxdlHFc{)SgkKY3DI!e(5&p^l+|9r7@%$U?;&SshPZt-@-|!!@5bq>5e9=2Nz|SS( z*N6X=Z(zSr;&}ZklEim1ApCCry~Q)zv@YVBc%M`xEJ<_ZuG+YVlhZcYlKm zf6{vdUHUx^;9w&5U+sE%8~wgF#LM#Mdi*7qtIJ>gclX!*i)XOS@4mUYU)2AT-rfKD zZ+QbkF8ppQ!0*>O`Nh-S&)_#cIPBW*dqarI`6r)%5VPN7=;Lzvr(XWL7q|%M16PPI zA;1h!1eA!EB47yUhqyzD`U?PhkbsCFZ%?lfAzk8%a~Cr5ca@V7QdCe>27sUI_a_Yi ze4G8XE=f44|HAn@1Ay|+v5ff(=eiF7?R)^hy7d=M><$31=(OV#)fGB zXaOdG9pC{30Z~8-kR|p^1yBcch&{dxm;#o7E#L&W0$uW%9EZW)g?71wIp>U^&|}>jU>HCnnwDBw3xJ-w1u>rbeMFCbcOT_ z=?^l1jE;>QaMnJJkanFm=ASqxbcSr%C_SuI%y*&x{j*$UY<*#S8vIUBhU zxh%Olxgq&=a#!*|@)+_I@?7#t@)q(w@(J=)ay0od1p@^?g*1g4g%O1fg(pQgMI1#I zML9(?ML)$9#X1F+l9G~>Qj$`Y(vZ@Y(uXpNGKDgqvX1gKMrVW>d(}88fF@C8Z{bI z8aJ8n|Jmz-h8Rj1> zY%FJ3Oj*DzDJ;)f-mq-2Qn5;~>a)7B-eWCc?PXnKBV!X~(_?dGyUSL}*3Y)iPRTCG zZp7}xp3Gju{*E2Z!OEe;VZ{OE$m4j$vBF8lDZy#P>BpJQ*}yr?dB`QerOV~cmB>}g zHO{rq&Bv|7?arOVUB^AeeaIukqtD~Z^N^>NXOWkj_cX6LZ#ZuOZ$IxgA3L8qpDSMy zUjrYKpOpVJzXg93e+mBx{|^B{0Rw>mfgFKefo(xfK^;LK!N-DKf}0>VkQT@r^caKy zZ3%G*=?eJ?JrU{?LJRW?8w!UC7YV-;#*0XbTo;KIsS{Zgr4>CV>LL1Av_}*z1`;z7 zixzt!h7_j}KPT=bo-IBozAqsuVJ#6a(JHYa$t`Il87cWfazTngN?R&Ws#t3B6y>RN zr+iQ4pL&0q^tAG6uhV&_$D~Q6RiwS8^QAw?P{^E@@s}xJ3 zE>^Bp?yJ0*yq)|*`9b+(1!V<4g;It2GpuJWpNT!wab{2Pw4$qGp5o+LhO?K>!p^px z#VAQDxhoYY%__4gn<&RC_b3xoR8@jhYE?E>#Z+&oK2@DL$9~T2T*|qj^AzVVoQIu< zpFdDjQ43LPP}^0PRrghYuD+omso}0ss1vH@AXBpiv|~yF22)e)xWNvtG{$fSoUc8)*03-Hu5&NY=&)lZM|*V?5OOl?8@za*z4P8+OIn(JH$Cm zJ4!l29p5kfM=a+-&QY#c?o{4|yt=3SPZOW+=ey;P7w8n!777$5 z7al(Iel}ZVP}EW^QJhsmSrS(Asnn`;u+j~0HJDNM?IxFD9@Vr+XuhP3{yY6+JAR-YzUI)D1?)L0n>v8Ux z@3rZj>@)9s*KgcEG;nF4cTjf_F{C*Jf1~!M{q4E8t-~tAEhEY!&7;br&F@s+wT!8b zwY@+8zT<<&hput$@$QL>69bb*lfzS2r#?(ypPrp@m|2;1o86f6o5LW(kofuA3ls}U zi_D8zOZ-d4%cqv>R#aAAtzKLmL0v=5ueq*$`5651X#L(NhEG|aL7%HO6gS|Tmp0#T z*>A0X3HXBFj@x0`dHPlAYtydI?g-ijy^aaOob081MV zRUVu>7(BE-{EQDjqB?p)I7R3BKtbQ&!s53rV*LIe%O5d45%*`m|DQEc8Y1_f9I%a^Bgp7=ooQ#5koS2l7-1?bjlCw~-3ZK!XWHWc65(#8iyz{V#TJ%DFH;2Us zwAk63L9sNnoLt;Iyy6m)Qm0NUDXXZSJFlj9QU8*Gq0!}Qme;MUiD9Cvo4bdnm$y%F zNN89%G$Qiuz58+T35iJ=j~-`cWk1QuEiNf7E3c@mdfw33)ZEhA*51+6+t)uZIP~W2 z_{8MY^vvuWauv1qasAWhjm<60-nZ{Ru=}`!Lt?J`hd9LdKP38_JS;?cNXf~`$fq`1ET2!=+P8iS?-f|X7W;tc~L&M z?431(>3=@v9cg3oz>cm{^rORk214w4{l3NRI?cge$XyUkXx&`L8Y(+^*($rwEyiWNXi*v3!<P)kpE#@I{Jb6fkzIsEZ}YQugBuNUhBw}7B9OPhxm+rUNnR9W%=EEH<0pyt0r=b}A(EN)o)+3-oxjkny=(d`yzkzL=> zC%`s@*ugYJk>io_RCB(%j!C%VhtP_t@+P*1jVx!#x0-oB=03?p+rYCdbS^nLB&8*{ zZXdN3BTOG*%?VEm2eBLT=>r{vpgR+Tx9 z*y#Iv3fhuhb<-v=EDw$(3PW}Qjkp`_fHol1SK4e%ds>bENY&pC`C{uoy1-(i{WZG3 zHADXNjVnRy6lsArf|58RG!;s+8*=}_k#c+=(j%{G8TZ`QPE$@c*y@{XT<-G}S>%W@ zHF*O<(Dr7hso2vLrs3z(Kk`-#UPIzxOwkb3$bymTqm|UF$8-omoSB{NoP%DVSC!)Y zP$-kSR~UKq#oEBTx$ki1cy$~bHVHHOt^^~o$8fp(hvwM}Ez@ujr7^mVg#F95FSE0- z>7hY6&flT37t^Sg@wdBlv`<&oO@|N)Vi*^3)~ma{%Sm>nyf!Zdm6CT@Od#c2HBl8# zGGW+Hd#g^|sw+DYcTeAG3euOjgQtxash@-!qnHx+d0Xxm+4yFuiRTv-ReK>FziWFp z+gEvJMI|!S^aYkMiP^6#$d72eq^2Wk@vd33 z@UzY|8Xiusw^horKCwx&;B>PDhv91gHPTcn{3$#`zDSrD$qSB(L9eT zeu4Bnx>s`od?|*Vak?`Q#ue$DwEO*wiQpk_)cXd%{e`_VX)MAEcrI?o!AE!A)F7Cg zaQL2F!RA#2)AAtL6U8mug3x)EXC_3NH!45L4Sj`Q$1GzX zVCoW-Aso2$z8#gaTBpt2)Wx@A0dHsQ)D&%pQu%#uD!gdXc=fE{sv%`HZg_2fhimPX z?>x7f%~=^K$oe%Es-_+C=m34j_L z%r~{bs5FM7*sx>VPWD^8O&gUNCc(a^a=9+qbjJ@rSifiwthfRs%RY!^t{vTK-xe*g z_L=IEj+gE2uLLjUdy)q)EM0Uduzyn0V)NC>F!7T2)Ef(fU?*+oqFubm@jGd>(9tc^ z6vdXu@`wgfqAfpv&b5kAxC8P$0n$^}AV*E}jmymzK~c0r2V}Om4{Pb%IM2Sr@bsGP zW&vZni4cNd4@%0V@vd=wLpzs*v@cZHaEsOleo+o9Yb59TvMJ4bS2(peEh^hSV8%km z?=5ez@W*`#_cj_yHL0k#p1vC_ycx!>X?0oN=;ueLD?Fyy$7mDhgX8a%KaLfyr-Y<^*fP z@y0O|s$J6cnACw+-q?I~<41aN6fc{M<+tBFX|#J)Jf9pP^aiDxni1v+}s5S}{LY_4F2Uoj`bu#pXhG zs4%ixoTjzqcPgEc?~ty;OnDrm+s5s(3%jOLhGZ_se$0S{VV%$P32+0EgjIvw`!2wF zzV0X(rB0XXwA;IM+5QA@-+bTISMceRZ6@1@CfVuRL8Tu7yHCElwt`HOeTe&7pp4}{ z7)=a+|7szdcQ!L|Db!&{M?cTWflF;!O+~y$EN;{-23Sv8=i#hT`-2E_J{5Ff0!8A> zX^EMYGlPOw$EY*(wXpDS(tRpQCQp(+a&#;2MpA9t<4vL2gSmsfnvy-&@;!BI?2b=) z#8R(vfwmC0#FE(}3irl*^JmqA?_L>)xymCw?LLH_0L-&cE9VBN-PWgJ%LvKV%e6HGI40yH2R(;nRnK{P}xd+i-} zW1SmLfLg+*UFoo|!8VZ=3J0%u7M!51`JF{bM4J48m zEXei|-^S7R;o7@Fx5%z`{FUPg@(LggUB#MLsTHnYlOTpr-Ng)YJ1iqrCj((`z;U zM`E~n%^oC^Y-YskPsmo$l_^Ru>s z$>qoIwVRxBA{Z7T*Q>wKZW-QaZ)k37&C+x-*F+lAKTrxPZIA-jRQ4WXU@df1 zzF$jxx=zEOZZWxY=YqGKzvsim2=UBh^)rLwiDJ{vM3NaoOOx$^N({wAvJBG66$esuxwp>fm(40^iT-;zU-2g8r44;6{C7S2 zP+9!no3ZacQf;<^!GBFKJFG{z3Kk8-`o zP&YeD+CIA6F(FWF|JaZw%{Imxczao+o>R3DuI1#@?mlY=dJ6k@!?HP;2)kjLhTQK< zXTiZ%3h#$Xk4j#gw7yC-V40&S*5;Sri{ahpv@`b|n1{liR<5QY_jXBQ`hO;keN$8R z-A*j+9mjo$TXNr`Uv{rAT?~WkjXqRWgb6O(=YL9Tm3`wq&h@u?|A!TgZ@fTAg84A9 z&VJ#IyT5wAR`h+H+;{vl$yP>xzaYspc16mkMHWmM{DF6zWyYsM1paYm|C=V|{{#j7 z-+u}IUkU$zU`7vXR-I>)S3eeTqpM-;$C9&9B1W0jvtIS^-l*Tavu&no%_UHde!?G||X-ONj` zXpX8)E;XyMCJyy)sa>;Jj!ehFloMcm{+Nm&9bcK%ZxDR)ftcT7i2;nTH0*GraO65~ z!8D}NVK6Y|z>iNrjkujzg7m5d9kaRU_UypmT?AzLKCeS0?EVi& z^=rvjVDU)MeTZDv+jn2RLK%eD!I=4l#$M&lgElRX>9w!16fvj%gN%O{=X&sv9mwUF znC$T=od9VFZn>k-lCerh+X!a6`QhgVz6=uvw18^a)4&Vxk5a&DfGY37cpL2R140x% zo1hL`I{^qj*({K=qu8s!UXpFg@(x9u76HYN1bRkegNsgamGxkh>OerzO@79R{ znc&TiF5$APY_|&0$++Fi@mKB?Ag4cJ2ZxfBuVKBB#^LFaT^qwLcgCEgF~R>hWl!zx z>GZH`mk8}JPnu()FUOLY=||OH7_g2aGZ!aozmG~pRf?Y~W`$vdl;Ug7N4O#eh+?($zzENSAN`Mu%ed<5nMIBo`^b6^v#$J!^rba8jc zf5u%ucH^tmf1=jO6dxAM9klx)xCo2;=$1jxIlEQ^L<3)R4t+s>EzpD*B4eGlr}AWOHJCi z|CK_|jYZLe3?Zv;bU;3%?${dFKecUXf0?L)9ZM=FKx|^P&{VWb2{ccK*t>+e*2L`} z1mmlZOvh_h6J^mhVh^4bpuoMAM7c5KLMksdiKA zm~$A-f{OAv8y{6c?^M?iw@ETFe^N@LM{?X)9){&36+)*Lm7SN}PThdIKzJW|ORc4< zN-q7Dclo02&`f8F|09{OaimEGeGPAer%Y1WOKoMOd9T$u;vA#Yb59aS>&+?!%7{Oe2Y?XhKV`fgnvr^SvH?sRr>f-a|#(Toh2W{~3 zoW#tUWJ;H`PY36#@X$J+NdFfu5fSe0uy9}ObwO|gUCyG&mAbE`>7OqO>p05>uWK`( z0DkhZFjfs&3|X&QOa;#M||)B-#=Ls>oH-k zn9-x_1b7!GbbQyc4NXXEgkX0Q?5va7Mv~aIZ@z4b<i|fZfIrj)jt{UfBeplv1$zr8k|P9CO0K7v-u+P%d=(kGvDPYg^v%tHzIFHsI6Z3 zN`ZDG%XoH{S)2Dbv-cm}k)=_KvfF=V=&t>L+>HKDD(U~Z%k%$A{%^v=%KyDh@_#<( zplTTU{c`<&KNCGp-ic5gt&JkuLsp!qUc4@zu~5vY!Y9Bsj`P^BY}zZ$UXh*W`w(}X z86h7A-kpQ2?Dpo%^?dHhK8!(tA$nk6Yh%`rJN9edsR-r=Xb7tr{=_g*czPK8=8yj_VMdLuiuaHH$)@YB~+ zhiwIl(B3nYa4PH@+!T5Sdmon%!MMK8LS|-uEpi15z5vJ6N0=|zUwp{a*yPv$;Q5b$ z3e8TYyZ`8vtIn%bYmyDX_J|1s8PRf1e`>5g0elZ&oqI>{{V|6qrpvw6>-FXfC*wa4 zb0mFdR47i`iQ$9#4-ROvgfLP2_+jRKI#O$%*07LFNoJZSePpJlN{Q91Bugqr=>7oV zBu{|kP#C+9l@k?)F&RRBEHtB}&9r$~Ha}S9qv$oB>8A4_;?jlA0AmqOp@7Rt7%1@( zhc=IV53Wnh$L{OhiUmh+3*W3*5`z`c_B7+H(bl zlf>3l9a*9W??s!gG0?8*Pr-Gf&sQ#O?6W#3$307O-mc}PAbd}%7I9~wQ+(P+S}0BS zts@D~Ww62IE<9sI6m^&C#{hqGx(V#1v2ul)$jCJom_^W_+$|0I!|*$>1#5D_1_E7vSwG4o>rqbUWUHT|y^j5HK`KFWQBF52*uy`v_- z2_Jtz!Lj2^*)(>KYlb(akRALZ)ow$Ed6QQq=?g@YFggDGfhSas^t6PbIo;X%>)fBZ z+A;gv{dlb-w&~~ylrw1YOYY}54Rw?>6T>F<(7nHj3*p_-8kJY5<&or-YXEnhu4Agy_i*Ep(yXKJkf9u50-hEs+{sbKT14fJ^}vTwdpa7 zYJr|%wF*VQmKD|KW_EK65`A{FUzhX6l`<<^Y^&*gsYK~WFO z81AO-NvWHyjpr^fnc$@Hicsw}=bjUQ?@0ff|M%qGCI@?*x=G@6U}&&ASgt6Py!2W4 z-j3)+E61Fyi(~t~qe^viuKmdP9y~13x&wQs+!$7|=!1+&je@#N?)v%7jT;rE5AR`~ zd}MhslrEVy&+$@v7S4nZi?$#X>_mgm-&RH^t&oy;FR;>+%Rc z_$Qluw?yalrFj3-uimRI3m(7G;=;j#tL-)-r?Qi$XI`tsoRS9zYre2E3dG7U0a$3R zsw&l+gaf~u>iG|6Tt5E*%}S$2vnsq-zc{+;bWOpUzmGCquW#y%@c2-t?8)-F^-1y# zQoVX4d8;n8Y(=bp?fv78CpO9z4?`YC043Brr0^IQ zdiwzB6p+yg5Qj!j=dAG+CUmi(C9yHhD0vpIV-bvW{*_^hh1}~yonAGr3S>UnTx26R zch5T|zb;uMBR<Z0|^iV=G?9Rg$a-dCN8v~1;-*)tWWAw1BNg_og{8Of?F z@*c*Y?z0-)euQ@IfeC1dITQD(bbkH-TW4Hy4a~u0((6XvngFqnp}5 z2GBaJS-cJAQ&BneG9B?W8`9%$>HHQi8Z)N=b01YI=SUunUC`{gJWo%bwKc+>ia6zi zf=A)c`wEiaJi~9vzN)RMMB<)$ZB}~Q#m@`1C2nVJk}C`{^6+q<%YH|%wRVwOEOMY3 z?+dl=Q}aX6hmO%KJK-qc+Mds9o+7(;>!l+O0a%4X6k9i3Zmuq@uD$N(WBgRR7acyQkp z;*xZ7#@)5Vq~sc_)ZDry*7!R2+U2+LBaH93jqiM`yb_|>6itRVF;w7u zohOt9xU9kHN|)%qc#G=E7}BX3oKLdgFlM-2Im9t^q=-vq>V|OQVxzo@XGFU`H0P7J z$6ksP>BwwqiCtA4gg@W?Mye?6(mjvNynUEA=v+_Hq;(p1wj}!eq(oaIE~j)eV|grq zXdLH|_omT~PO&UzG79q!`f6W?{UpWKl;@+J2~S||%XiG7!;TmQj8=2GSAkp$dOe|W zQWji>*T8D~ek+xC7YZY1=D6re9%-FDf4pe7p54343}qeb#duo24@m`?wr8wGZ8q9? zzbJEb=+melT`&LWJ~WqkkmsqkBtvNI;y$|Cf|1C^Tw5i4DsidB#Vz-p>GiBhK1<(% zz4`v)wqKc|sGLpa-k1<$rqf2cE!ujUW#yGO-1oUx2P6?5>RvGi^|eOtv^)$1S2!+s z9}62ftCHGBHGdPP=4iR$Zi8kTUU3$HdCK2&rj7PpTaH(WoSIZyO1<@LexoHf1$`-O zOQ9({G30HRtxAf;SrIjZsScLpI=mZHuip&1d;wRqQUy^m<&cO6ySkM66wdV;H@@ds zYq=w6?^_}?`tX(`eOv{f?Z=otmG(=~v% zRTSO0-;h^P!lPE52flz}Pk<)YK>A}-aNF<^8!b4Yq+^6sUC1$@sh6K6!zBOPR?rk zcWHtJh{hC@((Ft{^dZWWQ#2D4Nw2fYEnhN|HgKCo7sF1u5mv5XoTa0^?ylxn^n+st zS0;v4@7L^##b3z{vi;PWyl#7S-9lpo0#phyQ=<~?pMjng(rddS?#8G$e2{N4VHzlq zCA!e$=3BIy#<~S;l!Y$t;vMq~3#aNIsC<9g$tEM+qIik;Q#7KV62P>SVJpyxL?!9g zf?JLud|d5ri0Pe>2(dK#WSdMug=!a=jL~T>scy2H4O;9mvjqw`UE*FCDK5O1vknWR z@j1*Yxkb~a?J-sJL%B80*tTe{Nj{sdd<{YH*Rgk%)(KM?RACzB7zs`U`aHnN0 z#(HK_pJyeFzdJTszav+ya?l=isqN8l2$amt-|44MPp66LT_VA7Hm{h-eMU*-K#2P} zkh{%HtXJ+i96U7kYV~{mq*;2MNhl&m9TBSX9u|t|uZFqSfqa}uVf?eck?iT>smC=g zWrXsJlgbQdO}sgMJE6Hk8gM;nk)aQ7zwmMBB`u(>ckEZk=$E23rkf$O#+A-ENrOqa zX2@`5#2M$!+yuDe^H@p+WA0ZEXjIRg1Br(bA4;_9_anMzwK(+MQBstdU|u+G@Wi^Q1V(i?>=;H_Ig_Ob}#x1HU^hpf-9auUCl>vO~O@+ ze26Y7zuYHm`n?H9QWf)o#q7JcqmObldbDS2!)*z~IHkGSl+(v~w!ryFT##`bF4?+s zeowoR>#B1T>;)fu>?Q2QLD)edbmst$Uzs89>{jhCh-1cy_^?779$4y~-O{9XlI?dYt+npB;#CM#8zVc=nP-+AAJ zolhBJ5DiJ;B-Y~k7~$h-5W2woSiAoCHD2;aQl(3vWenL$$i|aOt-aGI`=+rgf9^oV z6Qm-wuhY7Un1!KK6EtqsM4xWMFvWczWAj$4?vUYiTtBd{x$sqdG1<+qkfrT)nk~F? z?uium^_^-&eM*54nyP0f>a~;9gnVdW!kOh^&8NHK@Gx^59y{*>gG4iZFuMsh*5;)P z{^gg^TXaNEjyp}R#f9lAS|dK=3*~m&?Hk9XZzKKT)65HrE^#d2TMd)VlYs~NB|Q2R zX&+r4#Q36_b^^OC=3=;NwY(;XwY0HNMhns1Gr>re}xQM34Bpq|qR7QJNoMS=?s z9sqTSp4YyK04?}tJ@j4@LK9}<{lDks`$4nRt6&Wo@7|e1&fI)2JMcXxLtaM5p|O_z zZY~0XXE?f)Y&k8Akxz)$EZVd)njrn6I&+OdW!v{mQwx~B{`E%#kyBc3FL)&s)=fE< zq3YP3dK_3TZ&f>9P++nNLbZ7)d;IXDy)T5Z9%0^=wq;y8DI9x-zu535Ek(Pj>}BR~ zHajhPLYGXmG{y>#3PEZo)=C6d$acbd>_f#zUfM`gwIVW5JgCmt)%mDru|iK1uy+kQ z&VI6o-HTzGIXb)gO1f8V=V^=#96pVja(&emD@`plQIcdFW@JdMf%$y;k*G|{b1s47 z@H*pqO!__f81W_O%)qgr@uK3P{oL~9`lqu7d<)eDW{FeIH}yoNPwxml2e0tYu=1Tfu{AE!^IUge4Fd5TVG3>%}=V3{#fC!*TfRkbsT{ca5RVR4 zxn2Lp7I&IN^_f6nf8Fe^J|vyu^ZRt{ z=*xiNFnCtM=(Fk-LYh+Lk@Q+VtWQuAec;UC6{a?w7woDr!W!Q@H)}TbYD0ESK~Z-iO+lalm;*QFXLD%9*jdSo8T-SzXKoIGAH0ykVia-5^*- zN6DMq{Bh6iwl|s|SfH&~HC*b-E~O*17=QhPCt`eOTVC0bk*-{=JP%yOJxwE-Fi_R1 z*vD@m+7xqh_xh+K?h#%Er?&z-k`!dbWukWEPJsR{P;>k?XNT;tG1EN7wwVd}fPKiY zY^O$%>kVtjSS+oz=^A97O&8;oiDK{{?2+|cGv%K3MtZcr$k%xTk$rWyTa-{R^Tt{H zD=!kH)YNdB1X&UeQiyiN5qF^Id{Lj1v`!Jy@!H3%CU)N}@$xyJ4zztU%l7tn9OuJb z!=~P;F+MJo*Ujtj>@8%%!PdI+(7mX*8lR2}KG>|t@{+Pe{XkMXBN3XiB;x+d9FG`3 zGxf*7r0rvcBVn{bYz!+-6{USo?rUv&V%?7~Vc+t3wMDNKNUgZhCh59GcNvkdkwjW2 zLBCj{vszJKcC26L8gJNL-1BdKnelN+iRR8;PLgm;RHk6&_p3RW<(025(ALBa0P3z& zxU-g1rRdU*l$O@quvWnW5MKYotcIye@P2eN8KcyD+9hE^I`LdX`06}v%Tdp;1K!;5 za(4}F%28ma|#Tfp;-wKoonHN2c zOZtrGxtg;MF3^;{?#lYMUh08HI_Gv<%9){=RsuX)o*0GjA^Moepe#-Egy4SSsca2H zkmXr}D6K-#cS0?c3w$XoG zZMvCDg`IyV+^l4EY?LF{2y6=Mx5ox#Qn>5=G)0_}7r z=ggQEnof%CxnzjQj?5{3(oALTTD{H0lZ=HC>V$E^MVo5mOQ0xB`4;c`MrSLWvo%n_ z=k3yna^n+sW>d&Vh*7}7VrmIb?Ta;W+@1I&UOY&c`=sdQ7^Ez~YowBbxs`D9Z%6|6^}GTuFG85vf- z@_KsQq3$zJ=jiO^H~W zujpa#c};7>hxsBbjOu48`y(BRVL|3fzHx7X=%m~clQeXuzks6^U0YHO^C@iPuF0UD z4r#)lpBJrxU(o#w77ywS=k3MS;~jBPDAhQ)!=Wj0bu_@uF$_xIF@ohYpQ0it9u1x) zWX-?Pqbk%eAHuKa@rBir6z!$F#@$*0%`F?_sLG@5abvzH={L>Jtj-%Hcup*G4!qLP z()dI>Q?t6o#bOaLs-~Ci*;TjLs+5qssGzlR@?T(p#mCnTwXb%^5~Qm#*=usq7Tk zOOtXZjW!XAj>({+&L5h0?-kN>j&8$sJ!^?G<>w=MEi7rYRW`NrR<67RsnNoS*h6$@ zBHi5|{)zaQqjQ+0W{%drowL@rq>bK3JF*-jr`Me**^1Wh)#6J~m0< z<|n0bdmMRZucmHWcP;AGT=k=F4|&?8w$?N;Pc2}~(V-4k9gex7mOTn2phnc>d(`Ky#W3lEy%E_kbr z$n@Uf<$Hou=)Ml?IO2vrzawdnbTZNVIb0ZhuJ_y|ScdpdF|0FDbM+R=`l6t4D!nU& z+V9eJl=DaOn3?~$ntU23nuJ%@pO6m3i@yfPNO>G+=CsxY@Lx_G};)cp!r)FrGiyOxrvX8Gs}&J|O) zHV+*{l_h&Qu{Mnhj*new%J~Q_8V{L{zuIh@l;sg2d|&XwGtQgKQk#33SMveFHB8~Q zDSGTOIy_0P`g=N;Hwc{$y)@Vtb}TU|mgGo#_z5+Q3~SQo4B!ZlNI3&;d$8+dK+eRS zj^)Rs$3>f#A#t5niiT5v|xolh}w+47>)mS7__G-uyIsWQ6oslCc36SCI)A3iB8L*tN|r8Wlsri zb+5ei`fAcTCpTPVJ4C(Y^E}R3YKJN;Na2)v2-zg@EWS1_a4la}R>Qc`6jI}W%f2wa z19o}HHByhj8+JaH78Urwy-GWW?D9MvbmqHtnzkq8j+XE%T;@t)tTam6ls#G{tuCx?esg3)S}iFFLz4)2g0@_W|x9TqYYL}*SBP3If9G3;w}z@vWTezz&b=qijE_v!n>R&LGLDni-mo*854dwY?2 zdojZa5l$I_q}qjXtCu`#W80@N#>Ufr(dS)ja4<{6Bj=asfeMHV^qW?C)s~C}cb#?! zz&G`w0HmxZDi=;~ZSH#lkYjN1m1Dl1CD57fnO5HWQ`0%F>}vP=Yn#=D?0luZ`BCNG zg^bL*s89IC2h|9L%$ZG_+YFHRPp+8Lv_2kdwkHo_iqKRa|nIY zJ1VD!l6%WUK4hXO9pgTY%X|+LUMQq*J(6X zTm1v1CbV7lThOM&gPN-<7>UFZXK2iR@3`$3Yt?i@dSJP)g5yv_--n*P;ZKj_Jw)H8 z&d1*FvrNYh;6j5TFL0uEX!;4L;(jluAZOFW>JWldDE#+K<_5MvkXvNO(gt#eE=F~pgD&O2PqJ@aG0ph{*S`Iz{K1$XI252XRV z(>e2Vx&ZC~J>Yy7#HV46uF6__`(D|;Q%Z1C#aI@usMs&eO}78=et=Flm1v5!%bI*b zhw}~x-p~j`HrQy3v%fO6EBr0GTM3J`QW>fr6cjPYGI=>rsgUEb{S31ZGrr6c!+GS~ ziP7#?H~!K&#`;B2zLPgZab2_ty})wECr@R^8UC>N?w*X;4brn}_PXiBgLuBHrbnmc zX`?UTI`*-2s9o;bgjQok`)=P-_wq9ADvwpoKi=$af zPkir_?P}eUXO`WglK1dt*UR@Kiav_NPxjVjE3DForBp8+jOl)gEKG+hugTBx8KW6r zRX@iicX#Y89EO&S1T`9!ZJl||D;>eXtIRUS_x8ikkXDejq{yrI*Uo6O&7@7K&gY9yK~Yd@A@B%l8gN@swrQ+^C^UsPEO2Yvlj zT|zYJ1g_%h`)BB#wDQ9eLawy^1=b~xW<#@ABUUSVo$pvwRG&2VhsOvJ>fsD)`38O7 zYh&cZr`|D&6CsAp$x&cST~%yWT!E#kRYRUNbBRH_6IB|d%P??&DTI;Efsk@6gfq~^ z#3#T5YrWLO5qE3X>a%xLEzWf1q81kIYYHE+$2vD%AT!8-GuwNSr?H_Ck8}XkdO#Smo6YEL@6TDq$5O-j`Us+<2j?%!@3xcac=+x2oNExM%I zOi9J)Lg^m;+*shHwOuP%;6vIFAZHQLw@1|+u5@aO@r^(`G;=Kmi$czyivmmY-6uF+ zAKc)%(Ubplkg@+S-C3#+DWnaJ3xo<_MP=g3lo^`v-^vchw&4Z!p&jyve&UI)C$pcO z=U(x+UTjXOJ*ma26G2=K6bvv`;pqCG@m>6=E29kMc~3GXSATb};!WSU?Uf~^Ftr`t zcV!>i6H)ih)4>4MKV&drCo+N<^eP~M`=+PWy$}bPdyO8-+nJ{C@b)o!Nj*xbC9*O7 zRn23S?1CFgU?)g?#*u5m()|&aaYy(?`IAfD&@G%T%sT~V;vaP(Ot9e9<=AD9zE7?| z3S@TDkh?(eiNlJ1_6VwfUi9k11ou7V6797rd#^OLk9)@&)-Fr|=NB&`++Mj_WSKDP zz6Z#f_p(qD8#GZchv7H)mG$TJ>tlUH;jh0vh@(FvSF%Mfahf|qWwoP&)2;au=s9k@ zzOhVYIHq5~QN8{_j0mXkpj{X#M?yeR0iC3ijq6<)#QL^)W`C3pAE!y}@HICL`*0Pg z0@dXN^JgIN0zhTx-m^^Fedu}GwB@Anc;=p(NM zfc)1EqN6%AlEJM>3_nEQ(bU8)jjz6a;7%KbL24ASPwAgvTq8~{ngllXE`AaI^4_Zb z+CfLlR!c;)5XEd?S)Rr@XKFF7JF)6MNE6O2St|s*$}lds%se^yO(J^qEwWs_~1djsZtu2?-UnREoM94$E>>Ol{MBBp{lXNJY)Gi@QAj=5PJ zG~1lp9VJHia8OpDCT&k zibZPXd7=azq-_FV_#dctKcBMvZ|^3Dc(~M3dWuiJ_oXD$g|_HYju(G+K%;0XQ%Fvt zsH$@Sq3>(yj!T%3vBl!Lepo``)9>WnWY`=^7BwkB1Vvy?7Uh-M*{+yQaJScGyWCvs z_dixXudkzWtD}o`=mN&?$F5V@;nSy=n-ytOU_Rg=-RMM#lcK6iD0a8V@b;mgJezgD z&~$3geMT<1U=!)zH%jjy%XvtbbnmG)Dp{yRa&$-eoG^vpb2VN&FgE^$^+*BeM8NSh+TgZo6emH;!C5Hk-)a z4r6NIpzW&E_oW#1uGS*;jxCXz&E)-9a#Q;}>$n0k0NBn>>fdG?d(Dc}vLypaV#66;5J3*q1-lzG<1D*gd@WOFc2x#nT`V;iok zgowTcF=TyudXM{s$CyS&c>-ug-W+}UM=1qoC#*3J*SY?w6>(5iv=1+@4U*)n+5ZJo z&UU%QMOWS=;o|cqC;toi=cd)750fWYP~B7+2%jR0U z)Y|DgD32#!l3*AuvelMf0Pzy)LTyHv=qpFnw+6>&F6plQZZczto_R#yC-&6ZTw?CH zrKw3|(G$_PUqXV!E9)xAA#_)9-Nbjv>#Ch6pTtZ>Ety>2-AUTNC;8%syxZxpI+ElW zdZR|hA*c`)Oj>GN;8qu9At>c5l@KTlEi>L915#$OvZJmkoG2R>*|t}wC{yELIxf_}%fsPsGtmxJi-srxYNviyP46^kwG*V}LAs=h}gWi;E9r7-RC z&`3wX%V3HNLVWu+;ij3>U4jV5rC2zp-l-rCsX#dhYyPXpjqG7SU=0puCzgB@VshN* z$OU~JUdk1YfJ=R7NEOsskt@h)w$up!Iy5g(Q1(P(7BhPA`F;{JZPhV*`|MU>3dX&j``aH$(U=@|VG>elailVV*3PQ2< z4dVr4ZYByl8HV9dxmBq+$x!0M*Oz*POT3ivOLikjBcC#gW_!vnlBZB+l(&Dpr&6|S zT@`8K+d!3_F`l>ZO4$$9+ZvC4vh?6ihINkboxJgfL}!0X{6LoIyk=QU2(@f?JXR_r z9Ji=~w#=jlRuU&(k@C-a4m2+Hb;Qc<;@>4@Bh43&7np5-@mmE2T1i+}+EFG)2{In$ zIZK@V92h0@YH5wb7ZTTD3xDZ6m2u`M?U`TKTwkNaO+z*8vVM>mW6A@5vDm}gj8+TG zJ4N)KHaYJJgSG4EKwt_6DD)P>3JeILQop~#6)af}LehNqo8E8VS!Y&$&CH`GFnhND zXLhFdi)a4k2JYA6qkjG!`%j)@dByi!X<&cLcO7ZI!Y0-HrE`JW%^zyl1!LS(px&FJ zU-7RNmqx$dmZjg(0>g){5Pc$aCD3gu0F;GvD5aDDa3LI!VI^&a#1!pn27_hNSKte^ z_3qkM0_BYMCm)(c5krK!tUStbE29P3G5S4lW)`h4;FNhw1K0W=Wo>a?a71v%86wGo zi#70i-dzix!#AMPz!s9Z6eWqQ+4j7<<5c;tJP0S{`CmG_3?Ghp2ahlMA7>2|cHo7d z<=&^{bEOBq6Nk>dcxsgC1*(eBCPkG58GgLoF1j|jL@3f6h&@m#s%?WuBVpuo2T^7Lb zCG$?ko#=*`Z?(Ny;bdXnlLZA`c;Rz2Gi?~eSd#--Qc|8##u@;uGg;eGOpdJvbn(G|M9xJ&Nx?rowbE}VzNF+J(fU2OZf$K-N^(LDX6F>(BK3vBKAaJiv2g}~h;nj_S z`(EEeb^zlX7tm?M>7j1hsaM$070+f~j8U{%_ShXyyajEpD)ngUoLf?l?tLXvN2Kr< zlY5{oHpYEB%54lsKItG{O;m%Zx8$?=!{D_a9{(1yNgpU-Js+H7^fp>6IdwjMH>sZ; zgc?C;2YmJ z_FPA!SwUlA<_g*k$on-wkH+hR-Ij0M>H;YXBNkHP7UBUu0)zxx(x@j%@7=2>4;+%3 zzXhQVg#2)9s;gth*+=8}+e*Uyp{>aN_ZIlDCLLsFDQe7iD267AN62*K@{{)SKh1b@ zu36&#be5)inOonSN#IvKd7}e6u6f(Dm!V64P`=Q%P-7TIguH52qWmETuhdNZabSP= zrM7zXNk_)+Ec92J=f=0f1~z8tKhJKw&NXD@QM#wAninU3nOQdP#sBQnY$hvL??^>03laK3Y9JlkT7_G+1#TI_C9J`J0{ zOqz%R+PGS+a$_WG&s{Q-6CAL7HMvpgbcxmS$E1>VN6^Gp zz?RShpI~QI$eEG}$(Sfh(9Kg7pHNb?DMwjK5}}0y@tmD?O&8=N0M+|MiP|uYBe;$K ztanR64qYQYOkhn|RsCKWPCd4eE@d3`MZoqwgpAr@T+4?1FLl9am1VH3^dc;_bxZ0|HC zKUEs|2rd4H2MaTRgB9c@ihGWd+4+17 zDr&oQW4tCuTHAQ+5#~W%>O^72gNrpcC6lW*jT8`vM(TT8rqh61S;7B7yZ%r5_5Z3T z^gXy5+=h;55v1x9Jfp`Ys@my8FnGui^lu557j?VC%!*Y(s7 zPaIno*%N5m6sJWDCqn-FZaJ`ZnY5~pEq+TaeKRi2DX`8<5ezikwkQxbfyejIg%5*l z5iR>lB%erK38ZZu`DbhqsVKTx%)#b|Pdx;7ToP|)^JeDLtG=_6yZs>%m%Hxz)?*$H zx4404Qt=%$fw8m)O&L@66o+C;(!K1X{>|zf#h)tk7rV8uRH?Zf($VQuM!_l2L>-4? zJES>zs=cowx>+`^cgyGZz?Iuy$3#2&Nmea*o!)B;APg4D%tO#Li z%3FY4!y2v(1-Kc#vl(tM`~cL{;kIn`&rh*d(i+J>BWKS(P5+7FIVq(=30tQ@j9y24 z3FT`hgf*(BMh+_Tv~awKPr>-(6dV&V*-T_Nr%X6+>pMQztD-9j*V6r$PQ-uC`5)*@ zp|#zHZEnuz-fX1mtxD66*1%EPmU1?|t$TU5FJjMM9A$fb_ip;V0L@Z++NV_;5;VzAMc&j$*`Y!b^|j(`}}3}-?~ zQCWb~rggNn?$}e;`QGxu8`?&KTlPZ$BO?yb1AxDSL=e2Thg7{KttX0?Q!e6Ko!sSS zuLvRsb|e!|2RmBdD@k2W&gLE=eDy=mX(RI94CX735g7 zv$pEtiL_Cc4Zm-Wwf#|tqA^ll&#z9 zc``IU)kGV{upU9i4udUz#3%}=ZTZ6+VLSD&2>y9^d;-cNovWJDq0D3sb2-o zFq3bmtUWkpC^`T?F#6Y@`f5O53Hfgm#t?`8=iGVx>o=`r-z)t0H=TNn`S+nr^vbgE z(Ed59k$=r~x%rL%+i8D&kMGjSKfi(hm`(e<7ypX}vj%0OatDzmx^dtarAqM9)roCl ztx1Ix$M-1xS53KefWHItF}hp#GUW&Rn1+Dnwre_bGh)Q2azSk9%LaNSF!sdfmvozYSVNDPs>amP;H zCDATHscjuMX=;GuUy0xH?TsDb(!kLT1nH_%&?G-X>E;4^jVRvG%{2WOW!Gc7ySKkTe=vTgfUgjO4Joqmw{aBa;GaxZ`41n7Hp|!CgEU;7j z?l+ENVeqG0g+|ipmq&h6e%6npt0yms|D`iZwY1^8nz$#><{r1#k`%PSh?R089S}ca zKCYo;D<`O6;&r9H2P3~5e)nmAyJw(q8T3WX_gwBkx#Dc!ia1K}?8Eyj^t-Ej^%(*Fp6y?++WpDnTIl#e{Xt=VWi2dA5x4X+s~&?{iISnGV@3Lr z#yW)9U(zHH=uX{BUmUDV$JFIbOZsFi0=|X|S}ezuPz$bwH#kM)BJ#cm@BEjK+=||8 zSu|rOvWFwtOAx4`Rz7nWN?{6bUODyqlhRJb?+qtU<(bV&m_pNs*g{;24)ltw*gV?@ z)BvVBGpV+Wy*>MS*H_mPCW2|5bWl5d?mQF%4p^ESGECN zJqJ+Mzs|M)*qhMu+_RL>V>w4e2_Z1E1Yz|ct2Qb6c~?nre9sv_dpo0Ikjm6%K^Ei8 zLLdCQ^7b?KjCuE5ThtHe8TM8fL~x_|0$jp+3P2ChcQmsH(^)wrRqxc*rP}t6%-ib_ zPe&ol&0U_J7OjX#R!ZvM`S(+^Vt6P9R9*iauH1T!mb2J55JcnJVM9Rl$!2|y*PA?d zKNi$E`pXsz^)QE4iV9Tr^m2CX=N}7G8qltYpY4sg(eJ&IJ?6P5)k`$TYwTElEn(|# zsnoyKVHda95`2u=9O)Z&{|^55lL%TcwLnMXMU-~|4&e1xB%~hM{bf1T9j=takn=I( zbSvw@B`-1R0x-6I#HTZxABPOarFoh{Xxn@Njs{?4GI{${1GnD2GXpvG}7;kRmb zLtE1p`!~$K?jkb+wBMODoNh8=H4!*n2; z(KR`CTaB)fRbgCMm(FLzkeSvLogT&fJIdl!tw!vHNEQmi(n1u7QL!_lFyGNDJ19oo zEaYB&hG0SNl>YIp>QY~Uv@77Wy4mdxkEeaon&v%1pv;#4@-KgKWIai4K1bEB9@ACu z5Q-{xUc{F%-XC89IB=Va%8`>fL2Q_`{a=&9x8jT%5?)sD)2YH0>nae=`!`SC)uLmL zh9doe5@jFpzLiOu$*6yhk4fUm-2EKnV1JTvvC@MTH9@hvC3=Kyl13E{7XkBgO1z2(Wi)7@R;j4{WHZvZBxxj;4rGg5+L;$xfWR?1EJ`>|Ai){ z;Vbp_G1b2Ur;Z#SCcWKC>whvBVw9NfK?C^EEX{JXaYt1U?{9hGH&m;oIa9-GZ1!Ke zd#1DcLfG&@TrcBG9mhv0h1j%S36|O$Ze`cAbh?+|LtR6$Q>d#LqCrqwf$l%2cby)<-h}hHGwq0OlKTW(r;? zYE~DV>v_-CIwMg0St;J|Vn;yiV#^t%GNtnaRdI9&tF4}xL_GdW$2-Gf7kYEs4$k&C zvA=9n-uLN4#g;4f-d9uTy$8o}U#&e*PZ7u6G(`ZtEx`y;<~O#o6NVEUCe!bf+6|NBn@U$0~{@g!G+62~!}qGjCT8vs$WTEqh8~ck`jYyQH#i zH2$Tt57#l|9GC5u`T04@eBXUD>7EcKF8Gf*Zh3n`5#^Fj^6{OcJ-mz{NJG31xJ9qf&hn6yJ6Za#Q^ zRrAvRw@+)L0^phEL1t%3`a>xojT1t={eG=!W1j2lvD9ovz2%)_&cAfNAuRa*hNtbT zafbFw5?TTmg#IAVUZ4bEA)QAPEcHta8==#}CS0MZ3tRbjgOn!2_xg^F>lN-k-qToG z>6({Yl6*OGbZK#co+?cqYBTXqP^XGD3&#__b#B;&=86-Iu?DUlQ&;S@H;*5gD?HKn zIlgkkg2(km$+edDotKVUlm|<$B4AasBV};$(r!sVrT^mlhY{sS!v=1-Gq%_d%moc!hVF81dZpnFlN-2IouUsP*B~mLbyBXyn9rH_VQr= zh6EkUD3u&D&N`S9@Rnr0!jJQm$py>w52iiuzhqp^uQr(bspe-ZHPPMM#1b6Z4bq^R z0A}`TROwh9PNH2Bz$&OWs~q{GeNYE;DzYy;((_fX0W}4SUplkY*Wh>YN`=Y`1B7Bx z_fWhgh|_;4ZvT0GX8GFw7weh93(4w^{U{;9w@FImN) zMA##*HJ4Yd{iSoOuSEa03usIo9f;67lW8i@kSg%zbV^O66+L}eTqAGRkqS|Hrh+il zfldJNpg5??dsvl^21^k3wE@;xxUW!Xo*hBH?GB5AM?7dd&%|&$5xRm0*bsmL8Bq0T zA^zEkLb@(C?Qs5T=4xr4su{Q~|Fbspo{3tHdhNNDu>1t)OBWyMxT?N%4(@T<-3E#; z)R3uK*f-RHHdvgJ+O_|jza%&i434DfA|i}Pq6aVjOkbQ( zOw(^1@pn@2JypcA(NkV71)bXte3W`Ibp~=JBCPJ~P!vcQC5{x2zh6c2-yd);Eigel zquqVb?$0j3NBF~6wImb;CG+94U$0)3PM_!sZ6!-A$^c0av*X5s0NMk8#kI(O{m3oT z)qRmk+*D9^%B3C-NC*?g^&}CgS1leWtmqlov#XPnzW1TIkeZaxj}*-gK2AFa&6sSK zgy78@YwBCmiCCsoJ>e|L`@(%0p0}TIGoP!tGztKMAe^uX*|20u;Lr57azJrexp(AT zLgBbrKQ(7TLgagBh6I;%Cmri~`CgGMRt6>x)o+HEQyMsDv{jc0iJsJ{`QVFNi4GzPnq1f8w#}>bDCOg2-lVm z;TYACUrbOz0my+e~U_hSF7SfBCE;fGM$P>VOsoCiKvpO{tQOmQXe zgPG9rNG0*#(A;$42pMafe&@rjCgLog^1Nb@D<;@a$vk-bQGXs7n=Q1)- zuryh6`pC}NC(<&#&+!X@!BzC@aIBjTRzB}Y`1Up1AIQY*qq%5PXb{yQuQ{?}<8ptd zqT4|l3(Kv>W(@|j7TizkTlE)JKi|ljH0)Vog9mB7 z#D>+aR6UB1mNJ~D`!Q6214th=Y#GtPgbg$AtBcrF+KoPE59vDExa3?}X)`3tD~&5i zs>$%(yHjaUjgh+q=Q$lszH?`mlQSo@)QXhyomzm++pq$gZYc2w`fl= zjmb4=m9~jvC@yUYo*7ZD!{k|v@BBCXz(4LH@d#IiAOn_*&u-9h zLv;a9>+VnUNOwv)I^grX!@6C;eOd5KdGWi zJA4!dK=PKpFmt}LXsFN;wFT<0X{0j&4VKjdOWOYOrh)JHefoL-9i01;TRLf_nRgn- zoUK=tX$D%WTm7ZrEsU)D0obwKzOi+XXLDN2@Un3!m;)I^DI>m7-*5=B*c|j zdm@p)N7L_*BR^>bd&TLRHC67pVdLV0SU@%&E%oeMn(tv&ViIG2DCa-u=1Z3 zOBMcME|F@?nz6Nf7%Nl~Q&(~-{MythLJ|(JRtfu^#J+|Snq+&Y%l9qQeAL?RyIXC> zBB!j0?G>3cS?ARo*1%!d5%rC6{{i`KMd*?l{UR#I*)_0Pf}9i$NS%p~7S>j3e&(D} zRXV@6ats+*V0m#Kwu4DRNlemYDa!55DinpIo%q`8GDL%c+D6LgjL@O7>q}F%!cupY zw|dJtq{{oCN4w)9LU!IJhX9&e>(kvrF@+wW6kxVaAx zUS7_74EW9mbv0d=_`bkK)7r4b#9|G6ioE6}M}7X7xfEPGDckz<$`}2CZ7@&xCe0uG zP22qpY9nr)8bE4mCoTXAJrUBx0aZdwf^0UIKG~3le;c24ZJlY`|3o$DX1Hjd$HDWL z?=Ra$$1-CS#;Ui4Kq>z%&w%@AhRVvH1Q>kB*MA-=Vy|RRp?>}C~AryN|qe+-d0|$eR%8i z>WZ_8q?-lna;b5Cu=b6%CFz=HR?^+m1ILy?HDxmVDw#744mv&$o-(ey(@u$sEZOj^Xo9tk88qX5L z(uR!fm;F52S&0{XY?r;HqkeoF;ATc;5w>L7ao@wi%x1nCue&DaR_c!dF}W^SWl4$D zx2i#L$d(4W&tY%&A2sQpWTD;7tjs|CGL2*&N9G0+{2+!<#f2BWul-HiJg&`H2rAR- zG247!k1GY!7|07&+Q^lpfQUKDW~0rWp&!a)KS1?(GDv!AQ;qSCvu3dUBC)&6e7gob zsavx;SULE29v!1&W27_LV(!mm$!EioPe71A&86q#3HN!D?US8$$f*x>w3T1YYkq9; zdbJpAu$`I zG)2q30OCXjbx+w^77?$O<)9`n^~z21Z4Jh zYO2MDX#iU4>trgii7>+1{@g^9ls3AAcNj2Idel8H-p$g-x?DN@g8*cw--41&iz{5Ew9FJJE z_7-xX)5;RbUe)nCh9JEuNuHrah}WP^|sHFHZ)l?^665t9J=C0Z`K(Z z#+BcYFd%-VULsTgZQm#cb%O_{!`?bpu1}6O&F%5*n;Y6AXQpJyHFqRDMh#D9=*n-B z7!XC#EwCXReY;S?YRSiq%h;)w8Gy6xIkvfN?lLOQxBsjwwQYmvOUDOG>$Vm_$z0gL z1LzZcR}A+0>GQ7n?;fZB1-XnuTWX~n!AtaSOZ!};!YNIcrD zf}RSQ#Ig`t1m+NdqIaj-uXV?%4?x;X;04yuU%uDMQVk@FecY-K!*69k6)n||4`&>M zoR0aC3|}Vz`Xnz7@y1I`XjH9CdU?8)$R?y6qg<=y7K1k}u6|3u!s4E`a&NFg09T|= z+KEJaw7hC&t{PTbI1iH+Mze<2cvfOL`YVl!S?xR8jPddj!Z}X_)fkS*rZxV9Hi!yS|H0K8=ve4-YA} ztqVEkGiKEDbEr4Mvj-nr#VCw6~9P<;LLBwVXd(pQhT~6q*b$%=MUrq&!S!nq_wkB7(kSW~|I9)y3<$ zcee9cMTpFG!u&DU!7(4>**0VC}GD#_S42{%ZxfyU}Te^&yEJg zclJE@{mwLpi!;yNtT<)ut@DN6jKf4&@G(T~Fu64J!$;Z=6gL_CQs>elMqsub#vieT zbq)ADXFC9Mk~-LT{J>V~p;TVU`sl|+qDhdP^wVoreHbA%Q1}A<7Se>Y(>mlybRw2% z8h;z}v0U$afHBO_vMGn>u8!BZL0%WDz-J>(=!D2SY_w5~u#T*M#U|W0d~IZ*-8)T> zb&c#59e}%2)zwCj)~V_jd49^?r~?Y506>f>MK(&V=)%A3g9xdBO8Y~XTSk*Mb;CJVxa<_X0ISUhwgLI(R zqU^aICN}(ndapqlb%l_QC&^Snf&;f{eI+HSbf{uoNPX746kaT<`*5Mi_@QeKF?15& zzz)h#S@k>YUP=<8BoQ^^m9aj=U-v^z&C>=NQe~a%EuWl95xJdG0U?;%u>e^x&vS6p zZ~4%>#)?#NU-kK<<q`CP*q6%lSJAn7?ckSB`S+} zaZv0`8_6z>Y%evkqcZbte^uJy@jn#%3=lo;7Me`Q@lQ*6xSLjQpx`9XW4)o<($bTjI(lGee7X08LEU%P9>~tgcn?qiDv&u|S$1>%^nx6O~ zDs}3H%>uj|Uv&23=S+m{Z%8lqTuhV9jNr^~OL_j=m~{;;e)x#*Hm6!1#z6(>(+mrW8g z<1@tRZy^NbPPjI~EuJ`TrfLcd*jA@ev9=p`=BaIKP-lCMqmAm<8+_pT3wKiWeP5yD zz#OHh3#RX-vkE&4^*(rH*cuz}ue#UYcg^at=rfhq_Dem*k`|X6q5GAxgC?{@w($IE z39D}w`!XTa-HL-o`wvyl+&b-5-3qvMd|FixwzWBfmsy!{5x(0Fg#aD3zD(5Ml-q|+ zA$-if3~$%upv_2uC7*2t+(O1a>(dL*Olr=uT7|Dm*=STk6^-t&4?u;G&q95=P}~#@ zL6{%7p$Sc*a`UFq=}I3mmJFk06@MB#a&Rw4YUXG0d>NvTTdrYGK=bM-29+(W361Yh ziAkhh`om=9lcg|huQ>kfti+{@cf%&eVD#UwN?JHDch9z*(go4FbQOX00%+lCi;fMD zKPxm*JCInlPw|6!N`9GTOyoFwv-y#HqvkYzM(@D@RplfL(7Vs~wc0vX1XbYHfg4LH zK%I1alVk$_*bdjm+r@u>%=UCZ(tSWh;Pgj<^An4WEnAVt`Ww2JMyT!@O`^55$ROPh z9+QC@87U{_YYf?*7o&I*J*CW}JuTvaK*$2jj+%suA!YLI*K~y^#jEOaVSrC(3CoRr z$ftyQ&||brXll<@`6rLfrGB*mE&<|r0&9gpN6;tJFPg21yV0tQ&)R|8iI(~2mJ5^Es z`{auGabS+?;|d?TfEk~s3tr7m;-?>m-7{=BjO~G@HVaY%C~2f<(+M^3nIX42+cEr) zV4u(;n{^fA{oF^9bq?*S#SnGUL-udKD~w1ZA-LHH*KK%C2PShqRkODmi91vT|V$S53LWy!k^@`-**yE>O?*{57dE|es_TS{?b{| zihR3t4~{Lio@Z_bA7ASxJ9j#s8{G-0_<{tF60sA7%@b;K;H`SivL_j2J@tNHy(ckl zKB^{nB1ya)Ds)sI*JB&%^RZ?z4A5z|13Y77ns!UOR8eg0S5;~ke#?xhVK+?jbMPBS zjU{@4I%rL1mmMHXE$Yeo#S79RHe|)$oZyhJqxAv@@|xVu$F*i$=&IPFCQc(!}Z8_$hvF+oqeg6U&Te@NZ5k!@|j%@>ka2e*0jG0ih*~ z0|9jUxMk@m_mxy2Ci`O6>*$H)Zq2&1DbLtUCpqOkSRsGKQ}^DRQuIs-WEc*18{(nV z!4{Z3vR^w&jh0D_V;>YqmvDsJ*>xi%9=Ja5863%9zW7S~u#tWb@sCO&K>BP1u?Slx z)D%`;v#qwZ6Yl(?yc+t(;Z5`Cg}I^EQZtDv^>KT$K)>A(H2o}9GwP?1;@oec*LBC- ztBrMu#`&SgK?%iI5~V%W|`3> z)EVHBu?NY$DMa8yNWM5d_)$q3FWBa?MY+-js`2Rr9H)OBxh1{#G7pV5uEkb`PZ9@l ztFw5o^Huf+3VydXRE^imV(H-*;9YV>fSkYs6rZbI-&jpH{H!F7ZK)YANPsWKGIYK? zi<`~s7K#~_wa)7bbEXF=(=)2FfRM`HD_)2Rlgu*PAaMhw_V#wvdt}DQCp*9W!!HRK z)^WrZsY*tspJV-^#56zcl!$Crp2oM~f;xuIA~mN1gujApzmV@_znt6*GZ+lh&1Vi4 z)PISt?6THa+7sdI(t!dT!n&j_5FxWU({$>B;wPAu?#0(bA7>!-mQDCo2cy*+^AB5O zr=9UDd)3}%?tmH1x04S#oP^h;+_3VZnGeSvQKoO@?V8?LnGfMIv||auDQ=RP%!}MZ zw#u9~m|N4dL2&g=N;P10Hc^f>R#Hat13Xq#eE?70yuIm3@=7)u1_=^|4TOp{|%uSIj8-IPq?!AvF}IMKnr>Mwoe!BxZclBm-8gAS(zes z{Tjag=-p$y>6rVdcwO%3JaKN*y9k!`DC3edV%0FKkM_roQJ`z0H2{eA^(k}tRB4K_ z&I3}?_dPpGf=@+_17N$rWor5r4!6V+%Hd+fnSxh6Qn_kqDQx}a?WGmoWe^M1nE+wb zjA4)a9aHQ3*&{PM6q6-nvJd;(7PHNd(6-ePQ6)qn%A0`i07Sj1t71wnBJyw|q926F zH~E`9j=RcdqmVl~^HLu4nrr&CYl68IXQc4+B)a0?LSQ&e4yjF2iX~NaU;7!OKotc? ztF@e6gF1g1t?7A8W{9f%G=mck{+Y|-G50vtPol|0yF{L$%bJU!&$Pm!6nJ7-u zpZT%?A~@=(I~rY=OTBUAmY11Xw_jb#DaRNiS*+>*i>Wj5jiYLK7N3(v2@Lp{aeX!qn@90jpPxe%*^n=d zxu#i+so_PhUDw@)A^7a}Y35*`W6e||wRM?Yg}?38wc(Jh}R_DaU zvE`Tgm+>bKN(Ct{@3!?T-zQ6$>>0CqT{e_=zYSQ_gV&A%R7~_p zNHME}dT9ky>eRqc{{@fkr>80eNi7Ljqs3`;J0JEw5tFj%=C=qjft3ZgghV=2#m;F? zDEU`y)YS`aX|VT0Pfl`m3>IHDB@q??XU)*t$51kR^g!)6sattwYwM@4FaIDD3jplP z62b{hR_mBZup4^>UrRl5fv3Di+k__MFsm<`m_ag}gqJML>t;+kK2XlEWQp1KJ}pOh z9Q#xyjw(0&rwr2md=3*+W25u7k7=nP-0VZ03HR9tQD;Oru1fH3O)k_zx;OM(k`Zw? zve7Y^&cHRNmj%zU?`jBlLPCATbSl##1+^q3>$x40&?IHRaWVortfRP?;|*M_P!S5g zJ%}bTwtd0lY}%8IytU3VJ-x1e7je3Wyu-I_3@6*IARlP}kB+DLdOeBngCFtfk$ZRx zL2+{XV#fF@!0f*BQ?N$m8#Eq#rT!@vKEEL20R}Sa7FMbb&{)$UAI8F$Tz8=1OAqrt zxNPSrGQ_H>DA*8p$wYfpi}x->NwX(42w1W1#%?Qa&%)T?>>#60FS zPBEwY^=`J-8I`UqOXxiOFiCRwonffW;=)T%b$2wDiO3$uB32C!r_*b^U zMiQr;a3QyYiF}a_yKl!7m z^O}7rr#`ERh@5l+^uVhiq9F4 z*kUNSH{+~U?zCE=7LsZ0uaX^US7pn9hVWp>7=YR_a~0udgd?f2h(-`Q3ioPVcdCSb>%b zlSW|I)jTpAVI;Y?1U<))l_t$^W>Fj-`T&D z|3+>a`A6G#9xIRmgP&+5Z}-RzKe6^8GB=UofY{<;7%~N1 zorqxWJ|A$b@^%0t;A1;__G@~firsgOZZ2;buZyJ5SIxik#@dJSFbuZEEv>!RO8kHB z12<134idGSj64csBl17sdi#1VB)$x+FeXQLwYg}p@6J`2R4@MhaluvU&+jR= zC$pj>{EzRgSf#fvKDT-?a>M?>M-b^msU`D2sG7v0iJ?|@*fI3dXvpyoZ^?)=pt9;I`ST+f>*wrKqrK;!^3 z{T}F?_h6hRV6*Y#gSE|2P=#mpFX`0AL7W{R3No_c2k!Rgydf z0Ad`5;Ig>5SR&{z7=(upJd5}V)8fAS_~v&VvCEg=fc~cb2Jbg@km?)!-!R_29HL)! zaE*T?WqlP54P2>j<7H>(?(GQi0e~|EO6-ymG?VB36RRIu=JIV`I9v-fE)Bxb- z?&GDWcKw2}iRlI6ji0>J15AK`m5sNDvX0K}pHzR9Kj6R9;p7iF0l=8>4_bfY|5p%= zt(~_GPRcsC+Saz-Hf}h$8kaFP9$vUH{D8-CFufOUfH-*l2kh_{jQIgu z|AYx}oZ#vh=&9fY%#E8&3M(rw2LPbBjKg1eVB>(JL-C`p%kH*L?l|}n4pww?gV^HW z_c)jzSH}Yf|DZ2p{V#MJ{sp$Ovi?KU%F5vn{1-2{mbi{@IC*=xTKWC_@PG2*=IV=+ z*U!X8=Ajich@^V=Kd$%-s$F_I!-SG7RtzQ68fq3|NIXO7`Tu{dCIJ*lP?lvMq7sM}%O9H@;{rjU10PIiy+?OCmlD~28 zmH;66LzY2*<7|!qpn(+tXgB}HaX$tCnp6O2>$dUrdhnCn&%*|H{*eJx06oAAZ~$BY zKOl@7nG_%gT*Hm{7N89n049J1U;{V;Zh#l?5P$)Xfe0WLcnTx|sX!+17AOEpfl8nb zXa?GW9$*0Y1WW*Pz%sB3dyBTy%}OJGCbNf1O3 zN03TTKu}B2MKDGHCqNQl2`LHL2n7jc2{j0f2^|O@5=Iav6Xp@t5Oxzz5Uvs)5)lzG z67dm96R8uK5IGYC5XBLt6O|LaCmJDIAvz!?CT1oUBvv5SCblB>A&ww^MO;GMMm$Qq zN{l8UCjpa)liVaRC2=PSAxS1FB55TVC0QdmA*CkeA(bW7CbcE?BTXR9A#EfbCS4^x zA)_JVBU2zVAaf>rO!ktjjI5h%o@}3-oSc*VD!DGX6Zs?Zm*nrrKaj)8zf;gs2vDd{ z+@tWNctVj+@t$IaVxN+dl9%!tr75KkX z9V${P9x7!j3o3uAWU4BvVX7@^Qfgjm6>2N$AnG*g2I?v50~$ISF&b?eH<~z_BAPy$ zby{LtURqUJTiP(%x3rzKD|GmDTy!dQHgutMIdt80tMo+leDoUh&h)YLrSwDeNCsL4 z2?j$3C_@@U3&S!aJ|i!q2BRxu0%IlPB;zp?JCib#9aA(@8Ph1!(RtSM*UsCWk2zm{ ze&YNw^95#AW*6o}<~rsD76KLl7G0KyEEz1_EL*Jfta7Y2tTC*Wtg~!*Yyxb0YyoU< z**>xzuye4hv3sz;V((<%;$Y;s#^KEIf}@pV155{21UrFWfZM>E7Z@%mUvRzf@KA=4W?dY*c*4oYd6zSUvz&8*i;PQ#%bx26R|gl88_cc64dX86p5-Csk>PRV zN#W_`IpXExHR6rrt>aziJI|-V=g(KnH_uPWuf*@kpUpphiRhBdC6`O-mp%#L2}lY! z3Zw}P3*re%2|5X;3yug83SAX)7s?iz5~dJV7JeXHEDRT66uB)DB2p)^Bg!pmDw-(T zD~i1=dD-=H&gD5VTCrPVA!3bUd*TA(HsWdG<5wuJ+`JNerTz*^LQuj^B12+Yl1@@f zGE%Zb@>EJ%%1f$DYD1b^`o8pQ=_wg{86BB8nGaV9uU@|ze6{)NcUdV}AK6OTT{&Sn z7r7$2b$LE{JNX>>6$MTOD}^kDWyK4M_Z8nLE-PJBvQo-cLR{mzW_vB~+M4nuWoP9Q z<(=!7uX|muxqhS~s}iX4{s#UHwHq-vhE!=)@2aM%F5cw4>2S07CQ?mOEkNzPI-$Cz zdZPN22D^rhMxh4smh`Q_TV0wIn);flnuyy1x4mvRYT;?!(t55ne~0Ie`<*&%KwCrm zx%Pq%pN^+alP;02j&7Rn7d~dyBNuI#e3vszU+<^wRXo^9FgFd)NEW;}oTjzWl!7zVHW%57Hi>9~wTag3>_Up&$JO{G$EV z{BQc_1`q_;1a!bI!XCrmfy#kdL7*V(ppIa!;IQD;M{17>9+N$Gc{~_$IpkT$w@{Uvj^v7O~O^(IH*~In7i^ac; zKYL>TWGF!@A>%30Q}?HniAsqD&uE_cKU;aO^}P1Qg%>d|z9m^E^(9LrXQq&)_@*qs zy#2EN75A&BuP~{OsS|0})5>47y^el;lx~|onsF_oER#JmHuLz6)0^omwXE7~-t6SJ zL~kFw{gPvt)0-=kTbRd^7n^sQ@1DP0pjXgUC|y`s#8#A0j92ViyiszmW-Ss${Cls(Gqk*U;6()PidLYLRu0b<6c8^&<_p8af)~ z8f%(Fn(~`3Hm9{Pv?R2WwT88xwfVOly!Uv&)$Y)~(qY*#*J<22-lf|$)UDb5q332# zXRmT^+XsaY&3&?c4gE6xbpuiZwI3xv)(lDx)(lAv)ecJ!*MGYDsc}Spq;*tjw0-Qx zSkJh|_`t-SiIK^>lhaf8rk1B|r`Km(XHc^bW>4lG%@fYYEKn~bFS0FWFI`$HUzS>K zf!~0CMCc>tR%}+je)j&1Sq=L_`6YP`yjHj_zTUiXbK}#d+2-n3kFO_N5!*D|uXp%& zs&}vLenc80S5aQ5v%R=|=KcI{65l!wbPg5|-40KVV$jU!g6}fldykEd*G?W{h%qlu zFP%1GHL>$&Zf9p6R$f*=bpd?b6VD!J-|Xe%YzPwop!);>WM+Tq*FS6gw4HuIIMwtg z^jG;W@LxLk&+nuFp!gcjUcqH;Tuy%k06YKyP~%D++-HMp0N#}=e=_cyAL%c>{Rc!{ z0svV(msQoSFYIsP^!I;Hf9do%-0yM!v&3-eEgRL zBqXJzWvnN z9P1@I!;+2akXNpMdxWKOnq^KbWNM60YzY~@ME zDgKy*{(53oMLQ|i6+I+_wbuw4Bew*c2la!cpB(+~7z+7+#nB&z{_t})3sB&La1(}4 z11JGlZMW?mksYq;>iFDbLz1Xap^s1iG@jAXsF{F=UL0E3+4<(Oo*k{()Y2SNRCJX) z={;bi;NbT#-@LoPX|I{?{a0?Uo3|QeUx(y)ktmRCSXM06lw%n1&VZG*tx$My=&_0h z1figdhptuCXQ6StrW*Hzr2amShvGV`EXy}N^E+I7RqvNbu@_;tMh{LM-p|@>N@1DC z<_yL^x;~nl>A7B=W)gb&UfdSJg!vu8QATa#Wmt(hrzbE`n*z05tsoOT@;m@xs^RlJ9e!jt=j9=I=%Rz3faGbvK?fYBq4FXTgW6q++!H=dyVb>CT|R8f3l^K6CL8*>^%+~4 zWXQ!rjf>S*!Abr`V5)A>N3*sWyl6K>pwaDd*u~{Zq*N$%_(+O=^_XZ}W69(?>6M&k zeV!sV#A1yZFW)AD&~VkDGXQoSy#Ys|EIVX#o}(=dTgRF;ix!-u8#CjCcJKNeRV5O5 z_BrL}`1??N;jLn#YGe&#zSi^-#(ZK8mDWMWuE?DMQLW4=fAPc|q_tR@|F zzZe@nyjvYGM{f*S)mw+bQ>GtOoGzSWoK{=QWjN~X)Q;E1$e+f3L0Y7hl)g?~il^`& zj4vrjsbdkG;r#gW3^2aGTm`$S*#44uZeEN&xfbCd%|`4fj=oKRfdvX&U3mnHHJ`A()~xk5Aw z@iQ@l-+JopJ31a`tO{pbqdAYMC+{tCQevz&gRr4ZR}e;V5^j**+NE=%TUp~XbsRe+=M+=4Vr~Xo@QZ)QRH15 zjHvwHOlqf;+1lt82+f?6-oh}!_5PuiJK+2B-QwL&?CUBNrR3e@l+&}hF4mJK`s&>Gi+vvmaaca9Qy7e-Y4I12?fj{1Q(F~p0ks931&Ubgx z+NrcOxcVFOO?OPOBdmVsQ9b@3s|cqMY2T>urgjCy!X*>4KX*Uwa& z6oIKal*g*uRwoLd?{u=Ec#!J9kmjU!_45)_@>0`WL+EGot{`UT3;@NOu&f0}D11|I zG;Ht=vnMNOKxd#$X9o8tNjXX-!|LRnm0QTqisvI148L&R zZl@KyKt?)0e}Op9$?J`xHaZ^}+6yL@VU@p*5o9n);MGi_6?Sc@s> z1539pY%FsvE}{2*mo155zR%&2(Zbu1X5AGuBVSFbRO*_hXVEJQJn=={1={LFR87Yk zRp>XWSYL4H_28(?^Dr%hFtHA@H&!B(fSbjwEZ6-wz00sp)~YpjE2_tFkvrrX{1eAA zH7l{e`W2L3Qzkw}7Ny;#Qk+13{n;5{wUNTovbaWCJ2}N+Lvg^xMRry4_~^uZ9z1)K z6&#jHl{-@7GH?da&)&1Iw?n>P6W3(&Xdj`z9 zytkl4cA%T!8lwl4OzPtpxdQZcMihH#=S-|Z*~pyJW#iKBH)6yQ+wS%{nhxSppaEog zm-b9C9Mb(#ksc;B>2ne$Xr?)mw+;oq6U}-H`R(w*QQ18rwYGivr%Z*z&%XEGHj>M7^zV&6 zXi}nt`p;?(oL+}+mzE;TM>Qo%XlSl&nnVFcU(bLZrC22@$#|~rUfs4&-?mL%67X2R zu*A1T2Te&nw@8bP#xw;$MQvkvqs+O*`dDc~K3Cv(EApeOme=BZPWfw}CbfM9) zdWpocyTD{|rl#7_mo@K+Sx8kCXHLLpJ)PG#US7q(3!l9sq}Nr)i{XFsk6dEcP%Wi& z_6e)Co*nb;+~w>Tejq#MxVU4fiYNt<5aA8Gdj^C*hig*G_H8Ys zIOg1oW0QCN(AoG*kn^Vuf5;J+t0mH<0&NUxM}=>dr0C`Fn}rj8(0%;?BRC6FJrT!v zj>u~xv?(`QS;l=oU<3=6Hd3aJ@1}PTK26aI7V+YtNl5g{NhZ5q`I#a{h&WW&d@>W+ zhOj7Io-2=PG>Y_<%cL@{9f-dpsA191cpma^yjybxJhOt}d#r!L*TpEE2z})8Y~6AOe7})SqK{4Q zV*JPJm*m?8w&IQZs*ByGH#OgJP^tP?!AQ`{8N$!sQ!OuexP0oUqsmK{4X!B>>5uus zp4P!=r!(iFfnQ%nhr1e3;Lw_;1PXMMcEf0mpwx^)?q@9mloY75XIcEUO$ebNC>l4t zKc*O$4aMhYS;1!`Ki2Q-DD#eU7^63y@!8dFl{*SX7%Y9T-MoMKcMLy!-0U%aN2@fl zC+*}4bPRs5Jv3-(IOW4Spcxnk`yiAx&S*c+bbs0*?*7v|JD~R7s59VKQ|v(ff#p70 zC!}}7unDyfmyT{_M%Tel>!OJ=r3#Vz9kRaFmCD|qTXVC7h!CH?dtM<5EQ?x&JyR2* z|I+%h=ClHfw**bFVBw3xtp!JnSspZEOmEUn@;SvP<$SX_@Fj_v3rTsk$xL$$A82Hr z!XqWo0jDXRn{8{zwx!J{n5FJBfZBJ7(UehO(_{fMdMFZxQqrhzbSR#5X7FKWNZ zJgP`jb^1L)zoq;?53_rhba8eg*Ne&%ec7u^bi9Zt;f~na}&qu!6z0_sypa0 zc>2SRR)PB3PY9gK0DWt)XVVbRs@76pxo7V)O&;;soj95P1N~D2cL1yV&*{~_)7~Ex zl#0yAq0%=4@H7|AI_bUnVQ@^d2wjRAgD-XLM$5kTPe>4vck-0(4gk~D zlz5o)9V%p`@N^923{_-hC<}B~QlhrP*r#U&1v@jVA@6qypl`RLSEL#=FfNGF>%#Uu zqq`p~tEZ}?wuK>gd7khsK(4T_i?8(a;8VseJ?qtKuxWUup|m#o{P+CGeAgb&Kg|hZ zgVMooFHwBUWL0b`Ge*;yjEtGrM(jvrtQm}N^J(&DIKIua^-#Se%E@Urqr8#% z74X|$T zqU0b9S?*9+n)Owp-e_#(Z?E2SyU_4N)w5~$N*^h{l^)mU_+l+%)i!!;Ke(DNRLG|o zw+Yeqju92UZZ;5lFI5S|CQ3z_;9bu)H|>Y!9B%=!Ex|XLhnG%sw=rf`%L!;TMspSY zkR8OdN}z*~NHPI=!ctBT^{3B%QTN0@+xnCjxAI_T&j2D!U|Bjur+U2HXP6oqsX1}5 zOO*~*ud3S-2!9h0+R#Y72+6H1h0 zUR2U_b=ZB(%xsNg%oe5>MHF5DwJ~o-E|zgI8PX{GN%fBZS{y5hXWml|6lm5zFQ+wp(svZ7;BZYFkzz*P=PF zpEeE+rJ3ST(JPrBUktdgRmi)4k(qX*pe`mGMeX(sKWco~QBDcHvTXPkA*^Ugq3u>g zE;uMYD;KC{WN0bA`2``j7Mvvh?m}49I3bqTKXwJOjgPc3MwiXarsv?f1NvK)V1k)^qz zCgPI2TMav1A9RN+I@cf>EH0jVJF(*CaQ{ugwcuGnL`r0<02I-`((Z9@Zk^@a^Za#x z)5Yx*P16lziPb8}E#kzwt9Q9Yw(vYt?<^3(hKquG-=6^ws$4V;&VYo+*lqjqXB{|= z5Vy;I-J)YytqoLN3TNAqx>AxjP93~rb7F*jg>5@^R;mf!$i!*JlO_KA?1Ks0md6gq zXTU)LcH#`k3&z=JrWNaNL|lWN&ww$dsWYHd?Xdjx%4zWNM1m^F`+p=uo(7(6`!;-l zJM(l;aXaev8DNR6u^G8`Z~AYle|jqFje+qX%JE&Qpq4$2c9RK(a|GhE79EHCJ={7Q zjnZVDUgDLXy>e)}?M*!Y_clhmJi`NK$W_M?W1zvcNy#)b;?|Br|7H8{~bYfBYhf4*p3_gctb=EE1x_D0UMVmwY8Ia-j9j9jP5;eVnT|Ip(?~)ZX#v;63-sR@Ca$~AGk@8Eb z>vlOzJ1>7$0-al%H1|=|=`u}kL$Zo1Q-kiRA^?d!){buFf!;X-;6sn!K$}d^P7HI7 z$^LfLmD& z5|Lc*E$N$ukyGy%sgR2;@H2oJc6S0J=jk2b!2Y>nV+kb`)$ZmoV`rSP`cY5NomE*6 zUval{gs^|FptJ6lcGZ0FuoR|XZI7JExA^?GLF-+uuw+fY3?9Bh5)Y*$dxNE4QZl$f z?E&q+M*6oR{97UZzbk)j^NHUxSDuAs4eDQF#R@_F$GR1%#)QL@bG;5t1D2c_Q~g>S z65Q8I4L2QAADF+Vp?2kvMOn%lZ8CM9lD`i=kKsb589zJed}taRCNWn^Wj5kF=;0V_ zomB2FVu%4tU9yXxgp-~q9xkS-Z``FP{_>za$2kK$QC7|FHLEE%$852PShTyut=ILS zQv5Z89Tx#dn4xdb5rz{zgOt;(naoFP1v*ZOqvuQ-CNECOYq;f7YN|iIDQt0ca=m}= zt4=MntH?U)`-h!7lMf9oX&|#yH&WVVMcbn=D*5H14rtBd*m%jcaD=%N;kVkNEsvnd zvSb90OwhHvtlwb;RK1&mM|5{ib0mZv4&O{k6c5wQ-7|4qB&n%Jx+Xd&H@dZyb z=u@xQGix=OJilZbyPqfG{XnRBsrn_ryf0tc6a;A+gz|)^Z8Ck@K*@Vn?^Hx2b$J%r z#8pW#7(Cg-trTWjsO*yt+18|7wB*WYv#L#ja6+_e8KO=QlGkVdoKytX zAV$PN89~=J*zE{iL!8SGfDc}P8uhd?N5V}_pjNKUN|J+37VQt+-C8GVXN-nI;JhX| z8SsvrM6vJFmvvzU8ksK|u?eD)zH>`d^IC)h)5APXnl1vv1QEP~jaTUe);*K#WUNAD z%HPOqo$$b{kc#CT(JRTHd;%gGA|};$V9L4QlXtIzZja=SX|TkFeAFjveoeNeGhiiAu`{%LKKre%m?>&o&n7+Rm}oZUX^>~uWi2Gv+KpclumkbTqAJDmspXjEme5gY9x)AFwby05R`6?dm|u@m)9Y?!-dcA zg$_fAUUflqBN>K64yF$#ADN51p7nj-boq)aEy)AOwAm_U9Wx@9a7c9fFmv&g^8W4i zJbR0<*LPdY)F)s{Mf2;j+au#=IrP3N^c31CQ2sWE7P{Y&aULy*GV73Cok}c#rra8HtDbJIgUFf%-kL?I z&KKQ%(9J4kTp;s)4X@QJJB)b!s54>Ks3Qnmjdp^&X?N*&X00!hpl&7>&xF06E8QvZ zRiSrdDWvtwaLY4M;s5@S=G}JS(l*y}sU{+?yl_+TLTVsQ5L0l6WL~7ktjzA*^_Yn_ z>W6lqrhSlG)|KRi>Mw251w~)*56h+w`%W{emExE?CwGbP}D-Osg+0=~W zS3diUSMhpoUOkS^tBHY7nQcm;3_A&?`bNp}wR6@e)+goJTn7hl#aJHlw5&RoeX(4) zN{wmOS0k_9{^^Y&k3>~++ zNdEF^`iEtGzNj{{eFm(hVz1|AKf3sz6-k1IA!mU6)E<3c#uC=A{Ih^FKOVSh?hF`~#Ds$# z>Ts%v%XhNW7~uaj#nzW-(Gyu*IAd|dr_}Pq=0xs9yT?>C>_K4W;LPc}DsZ*K$J^g6 zw2zx9XHEuUXz{=N=de!N-hyP%7V5zA#uVgAeTb9Cz{oYoc!0~&*if*Ze+0*lVA0jix!?X zH_sidcD{u-bm1as?eX*PvtKJ>*w{RKZwcRTu>2op=jn%kPKDsk5-6yr7At`^%7Y@b zyp9)7Oh#(VotFki<7RJAZ`{0(TG-_9kKzfw0KXx^s5M?KCpTVe7uG(Y|G^s}&l8_*H10a)jGhFj9A7QOr54K0Rt1dVrXqbHd)g}fLp z8s|v^{%p1m?Baq)mbh>m2upxwLM(M^vp8C?jdC@_BIsKgTB<6W#&?DG5(`zhQ~HS0 zJR!VZxOdeW-p^sU-ox;hmBKB=&<^k=M)X>zUhOLfo0SCvXrM3a=b8{L0agv`C&K%3 z-TSuconL~acV_EhkG=OE#GG1IplOh1Mk8g4;!u_MdM;jC%Pm*TYmlx?553e5V@q!a zkVoHr8(h;&9Yv6K;}wze^J*hlW))-$m4h)G$8Z&)g`B1yCPEF_r8TF@YGg{R8^^Z^ z>I@SC?aQoNoJeT=zJ5k7@e<*ECeMsBFw$I6AY18Jygbo-#m{xpYh&v9Y)jLJDhVy} z7yP!@82VROUjUv@fimYDD^=I-obQQ38TL5Y=$`=y zW-eegVwO3*^lj|h+Y?r7YS0T%q^f(cP4JlZXu=lc*y&h@h&?dyL=h8=gmffOIW}rX zm6r29zk@mhBAf4Cti53;<$r5l=tEO_u>Yd-);&U*t9FQ1^Iz1#KPl&>KRUgPG}>NW z22(k4Fr2t22BkJ@@Z?8B?i=q1I#{{*y5(|SO7ybPe9F5}cY52_y@!}72m7h5id#0N zGa(v#u@1$46s^d%p3L~*_}+uVPa8)}v#!sy=vt;`IdrLBer-@~Rk!p${zzb6|Kvm?8%hqA_ldBA`JBUvC+Oz_^^~`L0dwh}@WScTdmP zBlnB38*Gk$VIC*e`wGL1UPT7O9m0GwiO>$_D2H&7gAWq1(elbU%Aj%1#u^jFDMz5; zQQB4ZPA;K>@9_@{*^IiE{$&P}?sZgbo&nY6U1z{Km^~U^j?qM>ho$;P6biYqc@vnt z?xnpsc8e24P*wTLmi+xg8NO1e-LE;XD%%d~yO1DPd1Z`&OW!9%|}ld+)|3;r+iJepUPj)aez!Ye2h}+IQ5kbm@~$x zurY#XYDX;Zncp~kfQ7s!EIF)FR%jbCi<-Z5Zn<#5)PnQ0Sn;ZJtK4{VAUx22zr)-4 zsp+hS+nf1eJNMd2F(K+3cpr>QJPXKMULIWSliW|I-w~vGrk3=v^4Z5;?hFlye*T;* z6*V{ymE#$(0Pb(Q6+{r!r-+A6TBZVAOp`+q3#My5sqx$43)on0OY2d?MMs2&eS9f* zztuqN#>#h{mAQS>DXhZVGr%WU;Dir8yd8*8iok-AqTxP+3VCBNLB;&jT>B%wt=aCp zA_Gl=3fI}U0~C)FUWLp(I^S*JHhwz`ycN2lxxlDpsW#JJ~vIh(@VVmvLHoKEPWEPad4F6W|Y}E{Jd& z_(GHFg);d|7MKomKMA{IxB|=2)@F5|n#F?Q?CPpP7tOX6cdjB-&hN3!4Y15hnTZ$Q zhZSotP~P!WvMrAi$0!DKbQU@Z^BvkAf0i}M_*!t!$#CcH&PseX=_;JLqdN9tye7f> zVkMe3TWvOs6f)>7VqhDhGH$6Fs@*tVeZu;RV{d3lpY+g=TP>Q&g_%a(kVjMGCW++I zCb+gXs|dys36Ec>ZLFMed)(RY#A5 zKxmw<)XJaM+vwhUoDyEGneMhab|B{h6`^I$ingZdv$=Ayt3mXO^ukFq>RiQ%06KN0 zV@gp0xw@F?oRHfVRSHw^4Onv#%nngcKWt~CjOu-P&DJZ_Bkr7FUn?U<2N&ITvOx@p zzB{eM(#8`7(kVKmeD)jd6nzz6+Qe~33e)0`ia7$E7_5VlQGyz9g+(!KvP|N#^24!1 z-TO9DxIxR8d`FCbmuo)F?5>j6GsJ&0p>)5TWt|t}vM7m+e>##|9cm!HI8XJi<#?x- z7BP+UjMhY+aG z6UuZ!1aCZn>Unr%(&C~lRA}Sqm2qt62^ho2G%LA=fql=k!+v<8j#Gb&%&`uyUSpa( z<2aTy(V|!~HKwp;?EpjpMlg_~j)QXocM?}^%#KvnHDJf)qRNxpUM>V?f*Y@@GOwPy zY}qKRO){Zm%hw#*PQIK#xAD*$n$lV6avYuhB|=zsk(7^ikn1Ht&Ds5K#V11N{U!78 zhVauwj63Z1tmWaC$kUiq*{@5;r>A);xq**YPh{(@n9}R#gVy@@V8fSf+^?1nlVZnb zIYQq;y>Cxo#CT4eGB{e1c?E_ieVV5NdnWmJRrk)fOK6MSNXsF1>^CxlC(Ict5o|hT zL$9cg`&g2yz)^6to6o7$c8&U@Mwc<4x(yP%2kF!As7XG$t#0*71Y{NVbe=F`u7|7{ zL2l>@rNtn@bzw#FXq-gYQkh@sJ`? zq;nvukjI8Uhab&q(25-&-;osMl?$%Ewf9}8Y%mQ{-{hanb7xa4DI0HeD#~ZhpYRx>59n|4Xf7hD*X_fhziEifn{^`j%;uxT);~ z&wlO1;*DWgi=8bPGtPjnC8}+at#2*`HC%4idaJ8XS<{rsnaLyuGewM>Cpua^Z@7(v z6NfRfNbuI_ic*+`5GuJe4;rb}fXsXHc&+(D5v<1dSaS=)Lo59k4ZB0)};MPsV$?vX{aqhUA&&5x3JV$mO zzJ!Duwla>&D`am~jEa;&YV6F?pF2O4rqOT*f809*yg!?LFq|j!WKDUVjwbvBmUfxF znf1oS$W)}%K{3z`F5M}3|O-KXe6i#`uH&M zYpbb{^9cMJIAui}x1JxJ0scz+=qcRq+CDx!1CUR_yK2~A7A5!vrNsmcR`R_rj?@`| z;U+#A!3FDk642^YN4U#SDc*x#hpjjG3?KzzzXh+M-ePI-PuFoK@5((wdSbC9+(COS zxCQ(jgS&YD|LrB$yP($xp}|f>BqQ1LUnS#f=~#z7##$#-o1FoH!D9DHaa{ZlvhIn< zUf&N1qp7QL7*Qn%|LcvOUwYSn4PxLNL-?ceRLDq#T30%8mm(ih@wrHr6&?qFOz|7jbhmX9u)-Q1au z*V}d%kuSs!Mp`2?8JgR1lfpb2zaI|o0K;UF&!F<@D#6=>sBc&%yV$aLv? z6)pmK@d6}%qV~1;8UcQ{SJJWNN;xrF&J3M^99vO}mdvEwv>+d?Rw7a@HRY|c;W>J4 z=j6ojnYT;pFxhu@b0n(H16p1qAB@U}Pv8!~UCO$c18pjW)z+rc0r-N~QP%_0Zx1Yd z!$zj7R9vj+A0(4Q-E!jj0+E$;RgU&dAGp3_vfEtq(EFat5OQ;9Xm`++Q3zJZ6r(t? zT~-rd_SI#|&wipLwTH%=PD0H#428>vXwGI{jaR)GiFS&u$B2KnTt9$cMr7 zS==lK72n8ONkGDlBabUq{X}vlm@8eSAOweW~6HM)4 z`Lt6heWB+Y;h_v`R_i{g${y~$iQtF4Ls#C}tZOdCrpk(>gSRDDcFECseL?)QOHLK0 zmZnRkt;w|yHy~GfLDtE-LntuM`@IMifn8>LYVh!CpaRntQ!w3(DQw)oLiHluRvREE&h!5I)?K|a4ZvTdOm zyDhS}q$B1;8<@HEZrIzcQCiV?UV}cMFGdOo|DgLVB9kzZ>ELk9zrH=ykxU8RyV6C?*7NY3{lrC}PT} zd3=j^ytyf$Ud+kOeW+4$rK-quo3#G>$559`*oy{={IK)rNTh$D0u16rX10l}=?-5_ z|Hw4?P?w9|J_0fGIsEWlCop3nPRww06b`dP9`z`l`?eHL{dHD5@&HT+lV}(%-LY>l zF5MQ*Mltlf5h~;1bF0rF>G+~Y#3GNJDL4ZhG6~g?F1>~pJsQAe%Zip(qI~jJ#Rku`u-~ZUVm-`Z-(t-vXIaGLe~q13*|wU zpS0sKW(d}JQG|3%n}aCJx~Wu?A8uV%JCA;4ROM|lm)$bw+!VT4C(W#9=TYHTR7v@! zwR1mzoA5*#t#Tdhw^B;A%okPSx{TsWn3Y@qw)TX#sUlF8yU9m6lF@rU@+!bZaqhM5 z2d+Jbu44i$1B&4&qRd^`{qwu@Wv8t?%`_(p2iELlaotZVt9CM+?~0GgZ=tK;V<>(7 z@m5CYQm4OER1n|SDXcWpRBcpaYq-P+>jPyz>DnHUM=S*o&Jzo-#q@U~hr7MkjTA49 zm%&8oRPr=@ubAFE1N<(Cz-koX9+zaM?Qxc_9`0?ue+^FlGZ^`gxCc<|V&~P*Y!o_{ zcvr9p=a5Z+{gKnel$-+d@@k-&l^1gO&HlvzKg2?}+15 z%TB8OlEJZemt_^CJ6*K57rqwmGb3;AbExZVxQF(?>Pu24WDn$^wzRO8GIArgGS1_7 zTYOTo2ghPX(2hZzXt|rMlN`bpyXy60B_&@nb{4h}5k}8$+>oR8YxnCpe}AlsoNLwc z-vv-ms$}05GdtB0FNjzQlSmu%>eWfped74-#H5U+&u5p<=lP541@T`nIhk!`cKNJHAFH;NpXdvF)(<8&_9R!%P0Db#u?5!%pR(c{v3g4*ZMU4J z{lPU#$gws;3GL{k49Rg=fM|@6JnmNvDySP$d$Wr~pM-=Qo|)W^(0i&fX{u5y|l3AG&g8?rO#~U{GCP;FRd~5I-bnemY<4m><->sfYbByIC^<6Qg&nW^1{qD*)(pOR%5O@pa-alf>cMHDht84hi|59guPusMqHks6oFj!MGsA>6 zG3_prIe3e5FP@m##+R`?fCv+Rhyj(h5Fb89yCDbKsiDlR7c~$qreilz&y`D6DEEY$ zk0(mROiizk^*ncXy6BYNFK~0uV+lI-x%?-yFM@w^es@Ta>wu{XT)h^8(-J7n9ZfT% z)|#TRv@>Y8i%BBvO0^doBUBj4Y`luZXitYOv*tpjJCtZ)vZ%=S!oi0y)LN7kGW}!f zU}ls=%k`Z_r&6Be^LDk#i#Bd-mAx-s$h&jd5vt1!!W{lps=6N)s78iKzAk~9Md4J; z7-}R{S3o?8vzMcEAwn+JET^V5MVs!l2uMare$;hOw+)4v*hj9-CH0Oja-HTXlEUuP zjoXX_@n|g@X-7FBz~Y*6gGaT7lZMGXYp0BtfD98(KRsyy@jHlS2bA<*3ry*+)%Ma* zZJQ(VL=(n@;>dyzv&_M+r?t~KDpA)AGu~Tovuk!}eAiqb<7lG~VZCNI9Z#)x|FNy> zJ2vUhk+BB>U}|WU!BlmVm7QC_LkZ+ux%%700RbvIVsN-;@V_n-KEZgC^G9G5PHoy{ ziO5L`?H`h*OMQ~~KVPW-7M(61p?V^X^Yo&RdyqDm2`q)oORbL`cu3ADZJ2^zOw>1~=I}U5V ziaQ@2=R8bxTg^EVEVdx(nSve{0%G7FPAOSQsY ziapN7>uhQsMO~!yw+b&9opkyO-rswJGBMEAxsn?~LP2s%bb-Cd@^|zOXEdXB!6$FO z8;rA1pZ*os<^L7?H5w1bYqNK=S&0mhw_ITrzNH|Kb|0@vYU;9eyMt8uznXjRu%@!M zUl;{Jr767#0jWxtrnHDi8$>{qUPNlZfJm!!JLmktwF%kmRrXqYuk|bUEk9Hl8YqgMnu5qk&)(~Le|p7N;Hx<)}vz>*-A#1C;s_9;Fjk4FRJ+Cu?T*Z+4>9m8VEu+sKPwB zK_|--@Ig;2WFTgGt*sKqr9P{Ti{9_0eMf<~pmlCVIp$^NUh|3D&Az?g`S+|JwJ}%k zI^x0mC3b=_Pn9#<$KjK`g+1}Bb#QhE&uldFD-y~0w&D~qt+@vx~u@Pp_nm-fWu z)L=O3DP5gH)^VJ>@Xj_=%4}QDKrzj(t-P=x+UDky$fT_J1Nx!8#Q&ge{gO~x6NQUp z(FCRz^Z*H@Y}P@?VJa=eFIS6ODppAtPT3GZr^OBB-m-e>#ZOMyT5v;L#BpMLeNC~# zS(a}$o@YQ6gag;!iLeD(A0@+$0 z!uR%Ia4M93c%nydV+xg#rY!vYvZ6qR&yWV^ql^#Mj|HM|PM84#16BAUr6n+!0n9*4 zNv3~55`)gs&xO+#kzLvO2Teo~)iJ_+XQ?G}n z<)Y;ndd6u2?=ZdJWlGRHs}?5TuZsEjM%(uku2Oy_^?tJK8A;PC`vz6Bf@-&>L%FgDY1`P4&$N#eax= zGesV|`Rvl}lBlaa zSz?i8)ZMs;_ZLs83wF4){3w$?JU>(Q>S-cYAALmwnLNBN^=An2L?5u*;Q$DKBH*Xf zI7P|wR|npoa$4e__CC4!&>xz>Vq69M3Qyeo&IRhk3$o;3KVCCa&yQgqq)aQ_* zPiH>P>Ma_N+l)djld|h#p79ILJBtO_WsqCkUUd|`;?iJ=bve+-`ajLPUWzN!jBCL- z$oL0A?5ft;`ch~6I{ISLoFppiI~~uOkVH92-n9te0|DgiPxQ8KO_ARM7y=GtAtYI3 zd1lH#9%IvL)|(?AGaH^G^HFzQzn?s{GEvdHnjJ|*dxN0Dc-3Z+2?;!=A-f^|f;inG zz^m?8l3NvSjq(%MsHs;=P){H1KqYIuh!u@Y-3dtuwK}1Hs)in`^*7%ALW?C;*v#K( z@@(;4trPwL+)1QxVolV{m$hsRvHOY5sm-YGI5_`BHbd48A;D7RM^W3Cl5J!!w6V8$ zu?86oAtB&^d5YhO-ZqF~GLJf9Aa8NGi|ymy*)JyB@~0WA9PBItrDD;{RfTZ5ZXH{Y z@aTnT0Dk?0rB?l;PM2$gEI+pP9(3Rsvp14=Lp}-#u780&myl(ZSJHpl=4~u7l^Qhi zzM4!m!BFs-6YDcKL&cfQ>%>H)pTnA@{0G1c1oDl#=nhkunXwn%4dP*6<^IKU)T*j< z7*(aqlP%&v!rvXl<=J*R^xpC6d#&Z@U%H~lZxnWPAE#x8i$}pijS}Eq_7Vfn>p~(C zLJQ~L9+@E*oPv&kMQUn7%y?HS!N5W#*1;}PAU=j&nV=7xf?tbb0{#8pfl zbaU3k^F`U+d!+){C9|MKEe0pAh$myff1~X6$wArkn8|r6IeE(kSa6KV=9~a#C4iy8 zA%8=^>R?P7J$~n{jJ>iYjrx_&s=-pXeI8!*GbC@&H2{19*?q=-4s#BtzL5VZW&3h( ztIR>T6U@trf|1sI)1~8*&{?gE9ggAWbe^-7sZaO$vi(gOpp_I9jl^>v-NK&=(HfMq zMdK=Q4Y~jbcgoyTK~|PuXjmPm!f~3CPQ=qVVTUtZAxD?RC`6|uhi`H3iw@o>dh10bn4O9{*~I*}A(r(@(60qc zd{B*Pszvx3V)=rg2(CITB2>c9R#iFy^V^F^VMD8q_J@0%s1GF57tg<#aa-~wJ5pcw z=Nt1in6Hp;$4=wI+bB`E5;<_TK|2OsHEmib*`U(H3#z?uP_=V??dqZQ&oYceQG;V@ z+_fW3JS9$Zp+JFt-8-r#**Y=wB9<~LpTIUOf?%6EjZOw#Jb)}#xruQGqc2^ENPRb` zPYvFFYLSmWkA*#Rb8uL1Ff5wefaGpyE`=_PNcM&bJ7vc88gw4`_=+Ub*G2 zt%+#ht#alE1-R4&cqE8%csDajs=Cgg{jn;mD%bOihl=`~tgq>q z-eIZ#Hm)>-B4k>=(JZE#vxrIV^Q-PE-VbV_e<-9X0=8_1lZ9n{n?ej0&@;^Q_ z>wU~|2Vce0g`t0;NPqq@UxE)YG9P7L8vUe!Iva=e70dFh{tZT!lbv8xRf5&b-RMLc zSnNHRggEwI+JBs4rhVhWVzIx4{xku6T!~l00(5Mrs_BSLY*#y@yG(A36VLjKwYtb) z5|0jTwwg7~Owu~|!lR<5T{yI!6AWWuIK z@_}a4-NVScV&oT{BDwuX`Opt22? zw6vC+QeRYZc-k3UsH7bsLVGhYRdzLO1O*c-$MtP<4^Q|37CRqK9qP;ZW`Y#MUYu1G zX^lck`W7qjXWlLMT;3}iaKvWAT}e5j6XhfwGlg-s2dv>oKDwCkc51dY7Qau4!6jem z?df;U5(yhGROQSe9i^v(xG7pRuIjwVTke+*16$c4{Fyv`x|)c_Dh8@FQOt76e%Z68 zqR3RJZ4D!>ao6(0y;%MaK@j?=@hPg)C63fn39aUl$>SYt4sFE>DQFNiz?8}QUB4jfoXO%@~#-aPfijBiSO*|~fh zwt;ae-=)Bst=Zd}`S+Ti7xYy{i;(xZSR6!CwB(qWp6A-K9-W)JN&>52dipqJkCf$^9AmfBA1@fE>LlmbJy@@P0oHJ*A*h>~_*ysU_6D*_ z|CuDEh{1=87?V<5V!L}CWmS&9o7^;f>k>4ZloeJ^3`!Gvc@+YJw3t1U?lz~zLw+YB z=R%u@HeK{f*)pG=N}bC(@FUp99~2mAro64M+UazUSWI76pHAoMu7u$Z%|9zUC;zdY zaVQ6vn8jt-EPbc_A9QH}8Q|=t)4u*q1od4t4M?2Ua){yr?i{Br61=LH%>p`=lr;~0 zq7PT*<3T^%KeFeBbp5`apbGeMR#W`%o(i=qXc}+^^t#h~SzDh$`+dmEC)*|d^uhoF z;6JW$!qWfD!Z{A%th2IX4c@y6;Vc!N+GNYPaoYbVBz54Q=+PhMnjaS=t_4iH|GHCeJ6fPSikq8!uMWH7xn=EsP>;ca@()Bp?~#H!dUgs?yGV7UZw9f zeDeQwpBetd1@~_VM_=VvWc9gc{`XP?{u(tpWpcJuVxQ7uD!x(p-+xu){ z-G!EtByWZ%JxkPVQa5a5cu8q7`nJB+m2qFL~sg9`M3!m&6pbjw#G-*`%*T6|7X z=#B4m1n(I7RIiood;QL#2p6~_hB^plyBh&I-C(f@V^Orm^izr(3<@sPj0o*YYG$qg z!KcLZWK*hP@CULh+9x~qB4@;P=m!Gwfp;q@tmTTF8(LmfZ^%v4XoWl+cFx?>Lo2pR zt>%LePjZ)?_-x<#ll_yEL-!`G9ku7*+u#^2_~|tetpa;>l%(H-)i!oMEUlgX z8NZByEK~I>neUi`uPyIWHY~)`o{M+|t{Z>rLGP;R_|y+t$D$)Eh7Kas!pVqZ<@qPp}+%Qj&>Mup3nVV5Wb$iDk_o%E;* zekTGEA5W1Sh}&g`od&d|-@FnZ{&ARZF5L4PV$I;tPj|T)7Pf&be~7I80?6zBIFLTB zoQJ^9yESs5s>(4{Q~Xr$5_5wM+U}mY$M5p8*O_iG@!t^!J-Vz#9w_RPc${Jl&{jj= z4ufPh$Zg$4pGK~Gm;*%4x<{RVDXLhyO?fP(~cirz1ooHryb8qzf z$=?r8mhDOkkED8!;00OV4(U{Szjg)D|KXFSa2i+6ZK44+bD}^+4v7eveCDBs#W5SiwYM%rQbHcS68t)o5yrj+d zg!kUCfcHg|J&me8+;0Zc;uSF))aMm5I-EGLQgOo3kFE6%Ig-_KgxEW^OIUb1AE(bf9KWAMr2z>r%#f4WOIx1Wx7Z84omY} z(;_?mxzXPaQ8ofxQ#{AHcr6CR!mO&|kVNX``R3%MF9(UX593}j_&mS=s*_-~v%)d9 zK}Sk)g3IHUgUGfE_Pjr69xuS+9{)Sh>4QQ_Tx02;_1=!~ZmxP05PYHWU2Q;C3YWrVQUV zG3JhGKPs((s%JBiTpHjC2nLJ<IVY(pLquT1ihILB&8SrG_p z@Uz_DfBHMw6u6XfAYiwN*VGf#k;XVux$c$<*4ZnmJS9#pQTev+^`SO=_AvUQ@^dDd zfYaLKR(=jg@}6WUa66pBQ>n#$4|fMdwZVSjgKj&+_=^@`nZ-FeBy8%)VG}WP=#1uz z%yd56UII#^UKRMH9s&u27Z~AtfApM~U3v69XzKzEIB z5~s5m{jBL?#oM@6I407-SC%k5QVd-P@KvX(w|2TPqV7sCs5_BssA%I<-r&TNzGS)I zzj*KpH{gcB_==_6i$0Rxx|G9wDyOCqsvu33kh`UN@bu(cw1~K)f(aCz^u~V}&MXNJ zX+xzF@@OGQ%aGe1#u~2m2|W|R!E+ip5hikC@vN4Rvk@mEh)%o@vTSt-DM8nG2L`@% z)576EJ7b@|i!jr*fM`R1SZn{Z%>K2gyC2ViU@E!u!ykChETE4DRspQv2UPHDN16lp zk52vRnE`RfxvK4mn0_Z%51uq|mh6h(L)C_THB+=-~iSXH=8_l1T8+lW*U8YO~0oZx4110-XB8B zD2xF64tdsnM7AVs;`2fDpstz>BG`;?Z1>^EP0ywwN9(9f?XJnpng}(s(Hs&eBRQKh zk{(bx?S{ih9+bk-HZLV`pU9G#423yr&82{F3VfpK98qeYh1cdCO1$U{1D3!LV55;1 zc{p^C0zX`vPgPXr;QQX`(chcBahCt&f8LNM|5r~-2LSkgv8o#X>oNWxn}?54suY%Y zZcx0YdYW?uX{f-8i$<#k;At^h*KrzXHjP#pGQjmE?6~{UhuHf|aFd8_#I#8ZYu?n! z)`Ydv?%zWD-S;5b6!?@(q`fO*GUdRze5_If9`??%aAuQmZS3P2?h%X8j3buGR|L%~ zBew&0z+l&+b^2a9{x_kg=Xw`oec6xGLIPa}i1>m&ZzhMd`Dt_@F)wnKd%8tjfjB31 z{8hGl&m0r#4d@2mi&Z;Gb~A#7?GWPu7}W#YTHFW%2O^wzFqLU*R-mdLFJWK#tQ#*W zP}nU5viC>M@ntJP5f$ z25n_W5o6}uwf0z1z4F)m(+}eYZq#6^BP5+D=8Pp@*SRenARPAu z`)F@0pJhIG>TylyGSLMqB7x)reu0nF3)S1@wny^53K;XJ1dylqfHqun)KRk09jZ5W zEm@<0=|*7RXIdtPuya*(JMN3bd?9fCc8yx;-&sMgbPq@;8_h0CpAtT)DxLgBv^g%kE_z!YQw3NBp~X%4k}1(4 zqMpK@>~jp28ifMkhMY-O`_&S6RLOUB&+$(Xdp^)d4g3wp6czyGY7-^^J%T)z_8u+| zl_Kx&FwcT3yn!XHw)LQ6*Ml>pcvhEpIdHs635KXlglC_yJk;_& zPhMRQ>-!h`K*09?=SE_#i0vE7dgf1*_1ngI@P9t`={FQear4*|RB)nO23{I#gGe`= zOC4#+o9l(LRuRqUN$J!RQGDuR6X?xPx6Qz*qIWxBLbN({v7OK$$$T#ci`OHm^KxK8%)@DCAY(f zb}9fG4n*@2!K8{MzlEjBaYD4dd0wFEae4L)_X8dsQRu?y=Ii25o;uwY$OfVt+KEKV zus0TX7Aj*)>LCT2vI_GaR9P}wZp)DcD|I!tQ&&yf7hDmXnNL96(E>@)4V)G?EGzZS=uc5^5ot8=ZM&dUnRI1a>KkeQar4`H*1n zg?KuT2P=+JfTIv0j0CZA%v=^~ABtAY_G0PSP4XiZV$h{~OD^m7&gr#!Jjb~-!_NH_ zha+{|-e!y070i4jLIkgrkE@#2s$_}(^f9&%$`;g>Mz%{_Uidh}gWqH|E&iQ4R!_Z& z6oB=T61vOTe2yN@B|X;q0*+bs@_{WFS07n6vKUZPe#J8Fb!8)kFD%V`a&`Cnhy3qf*0b;v|I>-0T=gF;l_M67*X4iV-A42!muN%({3V% zi@y^^CC_9&xmKU#wDUrh`zDb~YjVzCwIgHu{`-%b>su-lInV!RGyY#VQPH&H(Z_%B z{2Tu3X8jjiI6rbM*?~T85rb6vfLBHzU!H|ZXgsU@pqZ9o>pOO*+dXrJr)aq0n$t_K zuq<~n6F^n6`bHofg9vI+T!hgW;J~f!2%iFbU7p6u2G3dUs7G(a1Ns=}*lONlK81uX z)l_J~OA5gP~H%w6Tux zgIa_Fx2MDPq=reZ**yC*k8Q(G_W%<@$loHw#5dc;oL0ZeR}!}mfNw#`*1_?pBZq5Q zBMs`go|)p0qT1&mHxy~uN|1F5kU1iXN20yArOtmw0)Yc2R#A>QM{1s}VA|GkvlA5~ z$O;LPE9#6>{e{Fc5Ue9b87`uR#33BS5le(?W<~>+UPAF7oakQEb7hBDj=o$7ls!KfHTuaZ5auv& z9w*S2Mn7cS>d!X1E64DeW}PK1gZ@LJwuZB;Ng}6XETi>{W$ByF0lV-7H>ke$xSMgR zi~h?24=;fMiOA8V7dsD}H#9Y>6|)q=_zRf7fREUH$#G6tYE*mLWvpXjmg%fI+DC{d z2P>T8oHLnn?SarmLphqZl{s6IjQL9Ub0L!ZBz3S5JUMpL45OEdqQ@%N*?Sn>PR-fm z-C!OK>g@I)S1-=q$7GyMm`(r-JBI*)>C<=dCl*FAqyUsh+hKHz1%A+x&C;$bJ&BMK zeAo?Lc~VxFNfvcusH$ae^awoV)9DUBCrA)fh|ktSJ7_B18KuhMsb|iu|DZ~vMiM|h zX}nsconh&i5kjx8cZ2Q70AfzrAc+mzY=Kb#5rQwXot>iuYcuGYXhDVZ&i+o6)1b1V zZgsvWyYs2nDQ#)*!!kH`tR|PHID`8&?mfUCp71?LH9t`adwm#cjp+N@rLyt+qt}l1 zPkqfdZOu>U|Nn9lk8dS*YK4J`8hi?T?+*E%5{^WLAFFoAc#gUy)=O^|+08$s*qiF& zs!+~MvP@RXyu%%ych&)06$Y6Q^gqUBErJ7mg%*JgKF0@Nh?AFBjweAaDucJ)qTsfK zK>nDN%fV?>)NsFM?a?(76`7dV)NnvKYK7x#o$}8?BN!oxW@5u1cR>x+uqlSmQR5@i zQ^zsw0kc*RQ?SdpmkH4$Wq&1|d;P+?2Lf#%x|Gf-4P4iCtY%aU7Nm_~Pv*r+>{db@ z?~n3Dxz^Q0g0{wKjf&2)U(X3< zbmbMqdM+SCx@*d1t2J$IG)YmWhM>s;{JA`jP{9?xs+dKi#zDlCIIWhYZ1XlV$4j2m zJ+UXIJQuw6_(J8B5V&%~8Z0QxDepridDXmp--k$vVd+9yn)YMO3#cA5Y$gPY>(Yx> zZ_vCk>cn?$R`qnX`XZHkcPal#(KZqeBL2ln7YQJ_)}WHL{b1IWz3aPo`~pV+xVE79 zhvW${p*0zY>JLKr^5Lvq?_)dz4?Y_vnpBTTOq6`m{H^od(30^Dp`6t0uoJuh-2KkP zhrh6%ZY#RW{H@Vf`1srP5QBXp2W~hnH1DvSfP+hsv1fFrw?Yn@jd>I$7o8MEPfwn4D^OMwTYv6GG$i5autJ z2Ox;9(h2Uq5p4MYKfveT0{IG*ACPMSxFu4#l6q1L#U6vP0ns}&ak9AA7kEC_qA_It z1ifa_GJ`Sni%b&XNic|WN`AusGHBwFb3E4LzyrsJGAGAXjkHL6kK?)7DMnmP@2n%t z$jWP??;Tw!Qz`9?3YMz9K`z$a-Q3Lcm6rfF{akL->T#mngSJ+7*zsGKkii}<*puULdXjWaKSxEPtw+MoACAGKcboauF- ztZa&SV<8Q<*09UE1FvDCiaKv~c+)d0QS;;)9(Qyq?=x6ebwUUX&HBU4-O?}?;rxs-rdM&kj%Lh*tFlBz*j zp}^@PF67=|Me)5|i6dFPqm%dup;f1fIfX5+f|KbHu9kxeD#BL&2H);x))oVN=2+7| zb_UOgqeUM}H}4xy+8b#$!k_H;YL%!v$%zQfxF<4-#XrAwnPlLi<@*Qs9!yEa1|?Sq zgRRY<`3t7{UxXxnd8R;_*rrj!le7IPG6+*6-IwQ=TCyW$eAz4Cxh2iBh|M}$({FH?M$--E^j@$yGYTn%~i9lo*P_b^|z*(AjZLy zo6SfHCw~S{P^%ed^$?>mRw}i)?>NLOw@V=lAX?Vz*G!iA_^QpBbIl!or?9=vz$6K1fQgPST+(y*0LPo z+>AG0Ku4^6&Z}9SDRtlO6br+A-;E|5fRq5t?+y1?sieRkxZuA5Y<{A_{^NP?D$Etn zEl>CK@GBd(&0mDr_Ho*&Ug9T=R}nV-Zv-S)=;qqbfLH}W0g?H}G7`t%-DG2U5des;$5%J{u70oG^r;Y(#zh8Dqx;U-EX znIczCTXFA%@!njDtl`aH147n-JNnMx<%Qt|%E;ESYAG2Pbz7(aPw|9>APwX5h@o>k zB#(FR&A11cUj{@4f0SeQRT=>E*4oF7jMqRWzI1>g)DdEym$isg3vSf8CX5(T7#fp@ zZUd17s<0+rX0DH9XkZkt<(toWsDo0(6^Mb7W_zMqT|ixOA{ z;nc`JXMZ)i0~!qKU3I_|FW9>FMYkQ!>d)s{(QNA?4L?rL>Tt7^Nf z6X#lK?Vpe-MyCmvlsJ`GH8#ZLB-;q@bP2wniPb7VT>En@d{v1M5kA6Kv6=6MqX>+ec^)vpknNz*IbmEDni{9x0C^NQD=0Rd9?Vpn5ycdIo-2%AZAdjUpZVQ}L(eys zVO;*thUZTk1@)VIefgc}%i3F$k<2n=}kHz_C`Ik=qplro}6iG zQ|*dO&QPdCD(lXh#T6141^VM8|Esuh)E1l$FPUE1`JBb1J2nXwWtdgYoVpM&Ym@o_ z;J9!MqnXp8Kbj=6BMZ$DR|lxf$dkH-8Y|Mp&Pf;;%pH=b-YiJ zk3C~$cIR3=(*fO~L5VL`*-z8$h@LP!mL^b&(e-q;LVhR)AiIW?&1)H+TcW}+|2PTG zjPCt&HP+qT>n5rZNL%WN--)Ql^%Fb1r6%R7k=O}63hqVMe`UlNV3M7mvRnr%L~ zDlcE&2`Y1s77p^s$5UfZ?S_j~AZe6P;l&E8zp?mkd$_C|^3Fs1dTte2JW^S9W8!)A znEdQ&#|Ql(@4T&)qw8w~$>AoDsi$vKR&krefeLww*LF_W^rNJv5xQc>Ot!qfS&lvI zzGYYowt8z73rEeS73AaUZ#p6T}#@nJw`>*^@%LsjT7ivO5KA; zxPeT(So9)kUY3^;@pPNV%5f&K%(Th7Wo2>WGYW$*x_>9StTyz_GJ;*1;l8Keui1zG zTjbt9Dz<)}AjPl#g8zw*3jf>mfovz35o`@(T$6Dn2ZdEk%7IAB^Vakd!X0B~CTC}6 zOeUFE_BD(fY!-5w)mHZJsW8zv|KduJ4eOdCK8V9{BGwaFq{Fzzg)BbcPeB(Nt+$01 zJSq}zC!8rRfrj5|@>Ux>AtAD4;S%g97LIi~NW*!c2ZCeccCZ zTP0Icm@#M9p5Zz@Ik)Cz7kr)mk#T_e-#r*Q?-@kbivLbPC@J8us@stZzY{$-J6i?F zOD>OVH(+v;P*9dGRqJ3{mmCLg&CHv&&nW`9tJ5^suhf&;g~e395b~yOM^2kB%tu#_ z6mKvj$L}Pesn4x@H#MU6v(_2h3Ce{@yw4H$wJOb}RxUEUY}=#Zo-r6-k^Y+{L0_El zGWZtW^2pkkHnEL?z<{Z&%DCK;g+pr1Glb{ay*(qR=tLsbBD9q=K_kNd+%#NGg}N^_ zd_@Ml&4YoN;;ccf)a)gt))vkSy=*7ZUwWoklQJ7eK0zu;te)>&q$XG8xS^3ndO?`f z0q{e8jkEYex_<4I!I$bTbC3d?1GwsTICiy-p)SnRL9G$0k730TcIyX2IqcaF_x&%-(+7pAPHRiO5bjxOoL4jg_NSlJhz(%yEZh z>PGDS@`B6P5WVxilxhgdm9gEf#(ZvV5*RLW-HcS#!|big%q6)FdwSd)=|CJbhp$$T zY!6QN^e(9a6Xi}hMgD2=de$4qW&X^Nd6r@~5VP_dTwybIjiFAtuN?Bl|K*;#h1+q) ziQxWjRVTWO>({3SxI*WYYL+M4m&6sNZP`2>Z?xw`M;J6e-JpIX*@2liiq;u#P;$tb zG=LNrK*kg+lAtTpoYfyP-D+bevu0wZde5J!-$kkTi~dqPpxPI(G3D!hp1m(#VVjp@ zc{k#_vFWS1>EA5Z|5yC#ukXSw=yy`3M5dngyRbk1r1!BrZuy7_N8bEJE1I#5MLOIy z594j5Ze3`J0Iak0c5N>HHfHYWqP+fZ zqg$-)Uu;7flpV5WlN>8*5mwX7TCYZx&Xw`v-iNZCUFD)*F@kMnEjF4rhji(AN5xab z8O&`|8OeW6doc#WvUh|l`Sx(s5f-npzQMA0jsd}-Ork8o5Q{gVn8A+XL9WYm~D`?WZ zs}6{37E0il-jKN^ZVDOqZcK}mY!e2^%!x!=pkvPd+%e!z^Rm2Xx$_I*^NjXJX)*FE zF%GsqZ|vThl-nEmRT5e#;#4f}c3MST4HXd~0$c8stAJ!xw=EqXni#$R(r0@s@c8>)vBUP7yEU z7@*{}fgf(B>GqFdnaMRch|Z-uqK+~Out5WOA9cby;a-=%B_Ow8ABNSz;+;nUW${n% zsqgL<kpqDgMmBlVSXS=HdHG((+Gly`w_3Q!8llDT*(&k~)z6O5^x_tW9Fh zbH1@LHTW%4!*tqk^U`cm7$5fyoBe9C!>Wh$m}0*IG;+!XCBLZ9C3rF=jpMj(OL9Jt)|V}@O}dk{m``OmJK$3ixa=a! zt-;@{0z0o-?#->fyQsIXv0PSijk4ekVg4Y_6WK!Gc#G-#v|SzKppPv5SbTNo6Vs5T0bnthl`nkoXTZ_4C!&Pu0@wfu?>clat3d#w)-2{$^QTjQ zt2WH{fy9_>5`O>N)Z71`muBD9iJ`DzKixGenex9w>H$hX?Gyhk^7Eet_)pVC_Q&)6 zjd$Qr-3wNNS&2+)Y2v0aZS4fEu?pka-*$D9K7y&WpetTd-Y?zbOq25V2s-Rbfz39 z5jj0+tsmb(JP->B;H-693FkhrDpz8jmCYEFGsM!$?Q5<|Br^G`&0MA;I{n15K)$K` z$OISNZsgZj(ufkFm@{$uFs)UW(617w8LbzyoGjob?xjql&W73_)}I)B{Po52M1JmpT|@So%GBoh5pj)LjjbO>KGN`TpJh z6qwzRO5h2D%jzPfrd&TTQpm_PZON4wu@~LEv2ar^?uwUiv}4ak|MeEmniCC#wu4fv zUmZky!w7h%by%YIQ9!Ks;0JXH31=mAW}r!r1|{r=)XCyGIIOBpS>W~$lCcBr)YKaU zT4dQsQAMMU#4F3niswUu#UJk`38AWIxz53nj|mp;Hmi?Tg|Q5I{V#Qt6;+XV7Ytu; z!=*(LDm#DXP=mGtAPx2S2m^#01VNSt8fFuu+SInD@7{O4*LliM93740J6;KAkI!HK zvXfrL67F!WBDo|)DqcDz2eM~gs7$iw6nkduVmRksPg+5zK&undUj7DwjpmCv8P3aX zp4teKkYF^ZF;K-Zd`F`CaqiZ1!Zc0rdsZ#5koT$8?L{nQrH{O^GG-vewT-mgqhv;v zLi!5N_E-k-w8?Y)X407`gKX=GAgKuGbQs`gOERZ|S+kLMq>+yhI6SL6kQ3gf10j;2 z^S3u2I2tj1+*TB%_$~A9+_2+J-ZBwN3naReeH`Gc%GWYUxHMs}zteTI2FsJFp4F3Z z2l9f!dSB$;)YTHJ0E%8xCQEW8xBd%U^g$WctP(Y{aLn2^#T$|>9OQypD}HEMGfkf} zI^$8&l2a2C(e%)A<$=nX#j9MYHOHBiPz}^JA^@+5Y9zl~Kk~6_sHiff-isSqRc0f2 z9_+K^sM)T}`RpANSb*xZ{E)rRd?eT+#Z+4RgD)3mwet*``utj5aI^)?TIhNCbE>Ld zwt7|R6yD=98NsIywg;F2B+qFpegVent2Ls)fak^TIaCjun@w)~Hf1u{`!M0W#IP2L z-EhjQNlUkglTibe?vc&W@=eFZ{+CQW6Fb;N%A-1awXt`nOxuTBSXbsuFRCpEq*H92 zn5Eg7Z(yG&b{Lr2ZAW4f4LwKN(r7T9;ck@Mv!BpY2KBs|pRr7QQH%WvdV6MkZhH^x z7FpkEvy!l{+28jc2A2mTj^yXppw5y@UtpmR=Qc(wS;>ZX&vkHysjXDSyzcC|&PCDF z-J`hD)PNhnh_?{V!qvOC!dfCWMIKv zUbj;6`UKw z_kP`2+Nt0peKlys_C=paDbkUhsTt#e$FV(Qu^N$s-1)ubj_WEerUM-?;FV5;%iTA? z@K(gk*fFFrHjK*2JX}&6o4>1Z)ikT_3fqo#s_FQHC)}vAZ0a=haWUT5AqiRBFsj zJo@^FB0$lTCONFDQ(s?%+@tQ#C-zNj>5F%E?N|mFP2a76M zBmFNeJLq1m3Rip^e3;E?szFAxJw>YTsIs-q1_}i`Qis;TLs>igFATbZsO+VUJ|RMZ z*ah9ZN-!U*_n5<0!zFeDn+G~4Ngo)N-FBchI4<$kaLY5cOJl)Qhv2~$5QbWo>2=Hu z36PDpb!>Sc$(d8|oQ?3KXD0%m@B>o<$RiK75(y?Kj7X3dgU}=|W^lbaA6y5h6`ix` zk8V|+lw(eEWV+6M<#P0=SKMyQ7agc41UfxnC%ZZdc11WF;@b8-lLef%YE!h1NUr%I z@=5oGQ7GNZ%F8cQhH4m2Hc+>~Dr_Sg$N^7*$boWk1RR6-B#^3mdp}lbMbmvq{CQP( z{R<|2JIxRTUxd+rcT$_JeNynu47;rI=p*1~`!}Y8pA;+q6|(r}8@4bnxMws&#d;}V zt~UIKUApuyyL3)G4d`bQwJ`oj_GP`0JDn2C(C9~IkE)`UbIfF4&WUX zE@?Qi*hqV0EY9GZWJ$WPa56*e=^@34Gxsf))vVrIUBD=NErH6qT3B zN2tu2cW`&&Ey$fV>R4*%b$a-48Sr6?AM*H4Gy{&HscCcSn6Nec#@~p_T4fv4FxVfp zu>1CfK7YEP?l0$@cmV&I@f+>oC#NI)OtIDtoKd742&?FIct(98QM*upA~2_!Bl@>v zIH)|NRRrfqjWaZ#a7SW_3F8M&Tf60m2|$(GG<_U>pe3*aNUjFH==Ih6mP~sVMi}!{ zM7L@E+|h_35QTr={ApiJuXG&Ppnmi|RzGTS)JdXN$TxmOFm~7>)FR4?e}MO(%5Rw+ zeCapLBYQvE1J~oU+|dSBl#u;uyMSL2?v57ShKH!S!+C8$oL?HL_mTbs_C;CQrB^ zvu}Z1X+_)%XTxOktssnx4kPRw`U9dX2>iCfPj9SeSLf}BliaqRdgk8T-WpHUMXBM} zp)J1oM2{hR09!5A^mA7tuU8@_jZu{$;l9_h>=ZctoNkZHc>(ikV7kaA(7>n#T^i5K zF1o&&U+4OmIqva&5z=Hp-4rB_XCIf-L2VXm8ION-8?~wrZr$ik6?@1h)^U(>Ny_9M zMGUpr4kxs9b%!lCk&8TQAF!tX!5h1{P3VJu6CHPN5l7Bz9ews%Odu(^+ zuHL!Ax=iH0t*6qEexI2Lv^o~2bh|5EA7Kw;R}k2giGE&bs--8cvB;DaZa~W9ZW3z9 zF8-Fc-OB1tRDhw+`8fD19U2g z_WIe2(S4?fA$GZV;>pPF;)Vmc#&IS=WNq$@Q%Ds{wx#BtBQ$Fs;>6P~YGyS+Cr!zm z#=rb-E~c*F-C~^ir5~mILK*I^l>j9FFMLlT|BlB;{S$w(DL|Cz?`QCv{Nq1FY1hsV znUMY9i-2&|-&wp187{+u2w{n%ZoqYA^;V`k^2wu~$5-X_s{q761OEs>n4fPhc*YTE zwwrFr!m3>06_&kSX1)zx=3Dyj%>RQg8?I`tQ>YpOLtv5qY?z`n%3-${wm82c6{D%y z9ig$`i3kb|bM6s+CwuV@|RX)RO<`u9`5LKu}*#~sO6q_&`>sGa%`?wUs+KDrne<{!|?b2Db zj`&%PKu^g%kAE(%Qi6Kw^T9LBT%KPMIx{Eagiv^UU}lAc zz@NABN70c!!KqP%nlBlD-tK(ZH?k~4;7s{zz_l9sFJ{#T!fo{Z*uu0hMSP*dw*Y%B znLuJ^ai5=~?G>>AiD!4eg*p5d^YE=*y0Fu?*n{7rEcM zIcA~&DUe?E^Ur|{4J5P~rI9}elxzWVsy6-{bx@BINT&M#U}XfZ?77ywl%XIJ>${s7 NU;+TJf2EX~{2zjE$2$N3 literal 0 HcmV?d00001 diff --git a/public/content/render-nested-vs-not-nested.jpg b/public/content/render-nested-vs-not-nested.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dff6ad67621893685535237607d4ad9becf4dd97 GIT binary patch literal 111346 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ɰKB-PRdC2iP=G5>_+;%=TmbXIf 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 Q5Ow;>CU=+(DgG|~4{e$xEC2ui literal 0 HcmV?d00001 diff --git a/public/content/side_by_side_example.jpg b/public/content/side_by_side_example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58ff7bfad0bda35c04f80272133ef0c088fbd062 GIT binary patch literal 118955 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⪼=9zUOa?lBSVa+cq%;VEx;?K+^m)U)S5oKUXJyg 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

    f4fB8wn+?UYIV^K_D4?`r1M?(?{@685< z8;{rSZcW!>vm)PAZq*RQbW8cOtkG^`EEl=5UpoMP3SuL) z6d7W^`#@;FU;Mt_;roeUizW&VS6rf&jZ8$|rB0D^-(tsFl?CZtoA0iq3ZQ>|XWz@3WAG0E)|W6`}sReV!LeY#uP9hCjGyr8+AL-qvc+(Yq6AJSijCBJx7KwFZ~Xl zsd15Jz8IyJ3&vZ=pX)A8%LW z@iV#2S^`{bclCJZ)ug^Kf#}WX+g6o)JTUzK@&N6YsPxq0HjQllk=E{s& zQ;+qoxqULTGE>>vMp&`WV@c23lvD-LRAm;y32s`w%sclYdnZIr{=!y!k?d=Bk{6Xf z=bK7C0$$>!SnjRO;yAg%$V291eB7U)zkTkFHSCZ4C4QJ6yXD^f?1Smkz3rWAzWjKn zoXxo|B_r8z&qbve_h&16_M|uW8J;z1JySCo*_QAd`)vNU+xR}{=XrfhUgV|J^6ov- z$zsbN+4J1`dF;L4*6F8DSGF0l9FsS!yP#a8^wqTWk^PO!N9&k>7(aa9TQ6wixa6go z)U)-=Uv9d!rnkIw`N0(jz8l8G9B0~h@QM1&r#z=OtUtvGyo1NGe=6{VBcvtEzjhzF zziE5pTRX0b{>SNu-*;ApcfQ$UY&vzzw+}b&NA8&%@3~RA=k7tF-K_k|T9cd<)n&qu zm6#@=uY6uK;axstF&=cCY_lsPYB~U(1AR~S!||?~(ELRe$B&5p6TkeFFXc*J!n{Wo z+g57vl$}&*FJyER@A=#q_w!@-xAYI+5Bs-RnIEg?s(9}AF>Ly}tl-RTtMfCd>y(39qCUv6Z6j7doRZYwrcJ|M%NA}up{zLOO+FtK2iM96K`0-eqP5zpUv+E-& zVz@i?R5nM*J(H@#;|q48Kg8ra=L>w9&lK}os=occ7=%%CV?KjvD}`MqLJ2g^L=_B>$F#{Z5(HM zL`)``i3+6a9A|V_@A@0?kn1w^H|dhs~bjrVEl)l+K8Kt~szEH+H8w^CNG2;9yXFg026-^DClxll(ix z%vUF+#&4OOa(P|gQo;24X|hwjlQUGfetheyIZ(Uyx9^YThvm3{lZL_Yu6euv!+THU zvWoDx({`1An|j6Ue)is}3ELXH4%VDZ$~2$9KM-?C!ad literal 0 HcmV?d00001 diff --git a/src/content/posts/2025-02-13-working-with-notebooks.md b/src/content/posts/2025-02-13-working-with-notebooks.md index d46789e..882ef20 100644 --- a/src/content/posts/2025-02-13-working-with-notebooks.md +++ b/src/content/posts/2025-02-13-working-with-notebooks.md @@ -276,5 +276,168 @@ def get_prompt_template(): """ ``` -## Working with Dataframes in notebooks +## Working with DataFrames in notebooks + +### DataFrames side by side + +```python +import pandas as pd +from IPython.display import display_html + +def display_side_by_side(*dfs: pd.DataFrame) -> None: + """Displays multiple DataFrames side by side in a Jupyter Notebook with top alignment.""" + html_str = "".join(df.to_html() for df in dfs) + styled_html = html_str.replace(" None: + """Displays a list of DataFrames side by side, limiting to max_columns per row.""" + for start_idx in range(0, len(dfs), max_columns): + display_side_by_side(*dfs[start_idx:start_idx + max_columns]) +``` +and here an example: +
    + +
    + +### Full display + +We often want to see the a DataFrame with full column width. This method allows to do this, and show all rows as well if desired: + +```python +def full_display(df, max_rows=None, max_colwidth=None): + with pd.option_context( + "display.max_rows", + max_rows, + "display.max_colwidth", + max_colwidth, + ): + display(df) +``` + +### Display foldable + +In order to show multiple dataframes after a cell, we can show them side by side as explained above, or we can show them one by one, and allow the user to fold / unfold each of them. This can be achieved with the code [here](https://github.com/marctorsoc/lang-examples/blob/main/lang-examples-common/lang_examples_common/utils/display_utils.py#L35). See an example: + +
    + +
    + + +### Display foldable for nested structures + +Imagine you have an object like this +```python +movies = [ + { + "Title": "Inception", + "Year": 2010, + "Genres": ["Action", "Sci-Fi", "Thriller"], + "Ratings": {"IMDB": 8.8, "Rotten Tomatoes": "87%"}, + "Cast": [ + {"Actor": "Leonardo DiCaprio", "Role": "Dom Cobb"}, + {"Actor": "Joseph Gordon-Levitt", "Role": "Arthur"}, + ], + }, + { + "Title": "The Matrix", + "Year": 1999, + "Genres": ["Action", "Sci-Fi"], + "Ratings": {"IMDB": 8.7, "Rotten Tomatoes": "83%"}, + "Cast": [ + {"Actor": "Keanu Reeves", "Role": "Neo"}, + {"Actor": "Laurence Fishburne", "Role": "Morpheus"}, + ], + }, +] +``` +In the following image, you can see how it would look if we just display: +
    + +
    + +and now if we use the power of `render_nested=True`: +
    + +
    + +### Pipes + +We often want to do some filtering on our data, and log the length of the dataframe at each step. This is where we can make use of pipes. I have two pipes that I use often: +```python +def log_len(df, message=""): + print(f"{message}: {len(df)}") + return df + + +def log_df(df): + display(df) + return df +``` +and here is an example: + +```python +df = pd.DataFrame( + [ + {"Title": "Superbad", "Year": 2007, "Rating": 7.6, "genre": "Comedy"}, + {"Title": "Step Brothers", "Year": 2008, "Rating": 6.9, "genre": "Comedy"}, + {"Title": "The Big Lebowski", "Year": 1998, "Rating": 8.1, "genre": "Comedy"}, + {"Title": "The Shining", "Year": 1980, "Rating": 8.4, "genre": "Horror"}, + {"Title": "Get Out", "Year": 2017, "Rating": 7.8, "genre": "Horror"}, + {"Title": "It", "Year": 2017, "Rating": 7.3, "genre": "Horror"}, + {"Title": "Interstellar", "Year": 2014, "Rating": 8.7, "genre": "Sci-Fi"}, + {"Title": "The Martian", "Year": 2015, "Rating": 7.5, "genre": "Sci-Fi"}, + {"Title": "Inception", "Year": 2010, "Rating": 8.8, "genre": "Sci-Fi"}, + {"Title": "Blade Runner", "Year": 1982, "Rating": 9.3, "genre": "Sci-Fi"}, + {"Title": "Blade Runner 2049", "Year": 2017, "Rating": 8.0, "genre": "Sci-Fi"}, + ] +) +filtered_movies = ( + movies.pipe(log_len, "Initial dataset") + .query("genre in ['Comedy', 'Sci-Fi']") + .pipe(log_len, "After filtering by Comedy or Sci-Fi") + .query("year > 2000") + .pipe(log_len, "After filtering movies older than 2000") + .pipe(log_df) +) +``` +which shows: +
    + +
    + +### Visualizing dfs with multi-line texts + +If you use `full_display` when a cell in a dataframe contains a text with multiple lines, you will see the newline characters as part of the text. Here is a solution to show the text nicely: + +```python +data = { + 'title': ['Inception', 'The Matrix', 'Interstellar'], + 'year': [2010, 1999, 2014], + 'rating': [8.8, 8.7, 8.6], + 'synopsis': [ + "A thief who steals corporate secrets\nby entering the subconscious of his targets\nfaces his greatest challenge yet.", + "A computer hacker learns from mysterious rebels\nabout the true nature of his reality\nand his role in the war against its controllers.", + "A team of explorers travel through a wormhole\nin space in an attempt to ensure humanity's survival." + ] +} + +df = pd.DataFrame(data) + +# Full display of the dataframe +full_display(df) + +# Display the DataFrame with HTML rendering +display( + HTML( + df + .assign(synopsis=lambda df: df.synopsis.str.replace("\n", "
    ")) + .to_html(escape=False, justify="left") + ) +) +``` +which produces: +
    + +
    From 2b738e1614e1700c94f833d5db37761158ddb99b Mon Sep 17 00:00:00 2001 From: "marc.torsoc" Date: Thu, 13 Feb 2025 19:13:08 +0100 Subject: [PATCH 18/18] deploying --- README.md | 2 +- src/components/MarkdownComponents.tsx | 44 +++++++++++++++++---- src/components/PostCard.tsx | 1 - src/components/TableOfContents.tsx | 14 +++---- src/content/posts/2025-01-10-uv-and-warp.md | 10 ++--- src/pages/Resources.tsx | 1 - src/utils/PostLoader.ts | 43 ++++++++++++++++++-- src/utils/markdownUtils.ts | 1 - 8 files changed, 90 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index bf1b9e7..a8f9c72 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,4 @@ If everything looks fine: ``` npm run deploy ``` -This will deploy the changes into the `gh-pages` branch, and the website will be updated in a few (2-3) minutes. We can check the status in the `Actions` tab in GitHub. +This will deploy the changes into the `gh-pages` branch, and the website will be updated in a few (2-3) minutes. We can check the status in the [Actions](https://github.com/marctorsoc/marctorsoc.github.io/actions) tab in GitHub. diff --git a/src/components/MarkdownComponents.tsx b/src/components/MarkdownComponents.tsx index 5853d32..c9c8792 100644 --- a/src/components/MarkdownComponents.tsx +++ b/src/components/MarkdownComponents.tsx @@ -5,7 +5,16 @@ import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; import Math from './Math'; import type { Components } from 'react-markdown'; import { generateId } from '../utils/textUtils'; -import { useHeaderIndex } from '../context/HeaderIndexContext'; + +interface ReactElementWithChildren { + props: { + children?: React.ReactNode; + }; +} + +function isReactElementWithChildren(obj: any): obj is ReactElementWithChildren { + return obj && typeof obj === 'object' && 'props' in obj && typeof obj.props === 'object'; +} function processMathInText(text: string) { const parts = text.split(/(\$\$[^\$]+\$\$|\\begin{[\s\S]*?\\end{[\s\S]*?}|\$[^\$]+\$)/g); @@ -28,6 +37,21 @@ function processMathInText(text: string) { }); } +function getTextContent(children: React.ReactNode): string { + if (children === null || children === undefined) { + return ''; + } + if (typeof children === 'string' || typeof children === 'number') { + return children.toString(); + } + if (Array.isArray(children)) { + return children.map(getTextContent).join(''); + } + if (isReactElementWithChildren(children)) { + return getTextContent(children.props.children || ''); + } + return ''; +} const MarkdownComponents: Components = { code({ node, inline, className, children, ...props }: any) { @@ -150,27 +174,33 @@ const MarkdownComponents: Components = { }, h1: ({children}) => { - const id = generateId(children as string); + const text = getTextContent(children); + const id = generateId(text); return

    {children}

    ; }, h2: ({children}) => { - const id = generateId(children as string); + const text = getTextContent(children); + const id = generateId(text); return

    {children}

    ; }, h3: ({children}) => { - const id = generateId(children as string); + const text = getTextContent(children); + const id = generateId(text); return

    {children}

    ; }, h4: ({children}) => { - const id = generateId(children as string); + const text = getTextContent(children); + const id = generateId(text); return

    {children}

    ; }, h5: ({children}) => { - const id = generateId(children as string); + const text = getTextContent(children); + const id = generateId(text); return
    {children}
    ; }, h6: ({children}) => { - const id = generateId(children as string); + const text = getTextContent(children); + const id = generateId(text); return
    {children}
    ; }, }; diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx index b6c551d..484ac2e 100644 --- a/src/components/PostCard.tsx +++ b/src/components/PostCard.tsx @@ -5,7 +5,6 @@ import remarkGfm from 'remark-gfm'; import rehypeRaw from 'rehype-raw'; import MarkdownComponents from './MarkdownComponents'; import { categoryColors } from '../utils/constants'; -import { HeaderIndexProvider, useHeaderIndex } from '../context/HeaderIndexContext'; import { TableOfContents } from './TableOfContents'; function preprocessContent(content: string): string { diff --git a/src/components/TableOfContents.tsx b/src/components/TableOfContents.tsx index 0a547b4..27fb50d 100644 --- a/src/components/TableOfContents.tsx +++ b/src/components/TableOfContents.tsx @@ -19,24 +19,24 @@ function generateNumberedHeaders(headers: Header[]): NumberedHeader[] { const minLevel = Math.min(...headers.map(h => h.level)); const result: NumberedHeader[] = []; const stack: NumberedHeader[] = []; - const counters: { [key: number]: number } = {}; + const counters = new Map(); headers.forEach(header => { const relativeLevel = header.level - minLevel; // Initialize or increment counter for this level - counters[relativeLevel] = (counters[relativeLevel] || 0) + 1; + counters.set(relativeLevel, (counters.get(relativeLevel) || 0) + 1); // Reset counters for deeper levels - Object.keys(counters).forEach(level => { - if (Number(level) > relativeLevel) { - delete counters[level]; + for (const [level, _] of counters) { + if (level > relativeLevel) { + counters.delete(level); } - }); + } // Generate number based on all parent levels const number = Array.from({ length: relativeLevel + 1 }, (_, i) => - counters[i] || 1 + counters.get(i) || 1 ).join('.'); const numbered: NumberedHeader = { diff --git a/src/content/posts/2025-01-10-uv-and-warp.md b/src/content/posts/2025-01-10-uv-and-warp.md index 3b367da..eeb7525 100644 --- a/src/content/posts/2025-01-10-uv-and-warp.md +++ b/src/content/posts/2025-01-10-uv-and-warp.md @@ -42,7 +42,7 @@ and for me, this means that I could remove `conda` and `pip-tools` from my workf ### Basic Commands There is great [documentation](https://docs.astral.sh/uv), and it's not really worth replicating it here. -#### 1. Project Initialization +#### Project Initialization Create a new Python project with `uv init`, which generates a `pyproject.toml` file and basic project structure: ```bash uv init myproject # Creates project files and a virtual environment @@ -60,7 +60,7 @@ There is great [documentation](https://docs.astral.sh/uv), and it's not really w ``` After this, I recommend doing `uv run hello.py` so the environment is created in `.venv`. Note that every time you do `uv run`, if there are dependencies that are not installed in the virtual environment, they will be automatically installed. See all details in [the documentation](https://docs.astral.sh/uv/concepts/projects/init/#applications). -#### 2. Dependency Management +#### Dependency Management Add or remove packages with `uv add` and `uv remove`, which automatically update the `uv.lock` file for reproducible builds: ```bash uv add pandas # Installs pandas and its dependencies @@ -72,17 +72,17 @@ There is great [documentation](https://docs.astral.sh/uv), and it's not really w To update a dependency, use also `uv add`. -#### 3. Environment Synchronization +#### Environment Synchronization Use `uv sync` to ensure the virtual environment matches the lockfile: ```bash uv sync # Creates/updates .venv and resolves dependencies ``` -#### 4. Updating the Python version +#### Updating the Python version Simply go to the `.python-version` file and change the version number. Then, when you do `uv run`, it will automatically update the virtual environment and resolve dependencies. -#### 5. A real example +#### A real example This is a real example of `pyproject.toml` file for one of my personal projects: ```toml diff --git a/src/pages/Resources.tsx b/src/pages/Resources.tsx index 77eeda4..c82c569 100644 --- a/src/pages/Resources.tsx +++ b/src/pages/Resources.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; import rehypeRaw from 'rehype-raw'; diff --git a/src/utils/PostLoader.ts b/src/utils/PostLoader.ts index dfed514..0f1195d 100644 --- a/src/utils/PostLoader.ts +++ b/src/utils/PostLoader.ts @@ -1,11 +1,11 @@ import frontMatter from 'front-matter'; import { Post } from '../types/Post'; -import { generateId } from './textUtils'; import { TOC_MIN_DEPTH, TOC_MAX_DEPTH } from './constants'; import { extractHeaders } from './tocUtils'; const DEBUG = import.meta.env.DEV; + function validatePostAttributes(attributes: any): attributes is Post { if (!attributes) { console.error('❌ Post attributes are undefined'); @@ -96,15 +96,52 @@ async function importAll(minDepth: number = TOC_MIN_DEPTH, maxDepth: number = TO }) ); - const validPosts = posts.filter((post): post is Post => post !== null); + const validPosts = posts + .filter((post): post is NonNullable => post !== null) + // Don't use type predicate here, just validate the date + .filter(post => { + try { + const timestamp = new Date(post.date).getTime(); + if (isNaN(timestamp)) { + console.error(`❌ Invalid date format in post: ${post.title}`); + return false; + } + return true; + } catch { + console.error(`❌ Invalid date format in post: ${post.title}`); + return false; + } + }) + // Type assertion in the map function + .map((post): Post => ({ + ...post, + date: new Date(post.date).toISOString() + })); if (DEBUG) console.log(`βœ… Successfully loaded ${validPosts.length} posts`); if (validPosts.length === 0) { console.warn('⚠️ No valid posts were loaded'); + return []; } - return validPosts.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()); + // Sort posts with safe date comparison + return validPosts.sort((a, b) => { + try { + const dateA = new Date(a.date).getTime(); + const dateB = new Date(b.date).getTime(); + + if (isNaN(dateA) || isNaN(dateB)) { + console.warn('⚠️ Invalid date comparison:', { a: a.date, b: b.date }); + return 0; + } + + return dateB - dateA; + } catch (error) { + console.error('❌ Error comparing dates:', error); + return 0; + } + }); } catch (error) { console.error('❌ Fatal error loading posts:', error); return []; diff --git a/src/utils/markdownUtils.ts b/src/utils/markdownUtils.ts index 62ca4d6..3634c94 100644 --- a/src/utils/markdownUtils.ts +++ b/src/utils/markdownUtils.ts @@ -1,7 +1,6 @@ import frontMatter from 'front-matter'; import { Post } from '../types/Post'; import { getPosts } from './PostLoader'; -import { generateId } from './textUtils'; import { TOC_MIN_DEPTH, TOC_MAX_DEPTH } from './constants'; import { extractHeaders } from './tocUtils';