From 47f67eea8ce9a595b94c0e9b68c3de48bff93d8e Mon Sep 17 00:00:00 2001 From: obvTiger Date: Tue, 21 Jan 2025 14:00:09 +0100 Subject: [PATCH] release --- .gitignore | 4 + README.md | 34 + docs/README.md | 142 ++++ docs/components.md | 365 +++++++++++ docs/examples.md | 375 +++++++++++ docs/getting-started.md | 213 ++++++ docs/styling.md | 233 +++++++ examples/blueprint-home/about.bp | 57 ++ examples/blueprint-home/components.bp | 152 +++++ examples/blueprint-home/contact.bp | 54 ++ examples/blueprint-home/index.bp | 50 ++ extension/blueprint-language-0.0.1.vsix | Bin 0 -> 584343 bytes extension/client/out/.tsbuildinfo | 1 + extension/client/out/extension.d.ts | 3 + extension/client/out/extension.js | 45 ++ extension/client/out/extension.js.map | 1 + extension/client/src/extension.ts | 60 ++ extension/client/tsconfig.json | 16 + extension/extension/client/out/extension.js | 77 +++ extension/extension/tsconfig.tsbuildinfo | 1 + extension/out/tsconfig.tsbuildinfo | 1 + extension/package.json | 49 ++ extension/server/out/.tsbuildinfo | 1 + extension/server/out/server.d.ts | 1 + extension/server/out/server.js | 223 +++++++ extension/server/out/server.js.map | 1 + extension/server/src/server.ts | 271 ++++++++ extension/server/tsconfig.json | 16 + extension/syntaxes/blueprint.tmLanguage.json | 136 ++++ extension/tsconfig.json | 26 + lib/ASTBuilder.js | 343 ++++++++++ lib/BlueprintBuilder.js | 144 +++++ lib/BlueprintError.js | 10 + lib/CSSGenerator.js | 402 ++++++++++++ lib/HTMLGenerator.js | 353 ++++++++++ lib/MetadataManager.js | 333 ++++++++++ lib/TokenParser.js | 370 +++++++++++ lib/build.js | 77 +++ lib/dev-server.js | 15 + lib/mappings.js | 648 +++++++++++++++++++ lib/server.js | 473 ++++++++++++++ package.json | 28 + src/index.bp | 15 + 43 files changed, 5819 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 docs/README.md create mode 100644 docs/components.md create mode 100644 docs/examples.md create mode 100644 docs/getting-started.md create mode 100644 docs/styling.md create mode 100644 examples/blueprint-home/about.bp create mode 100644 examples/blueprint-home/components.bp create mode 100644 examples/blueprint-home/contact.bp create mode 100644 examples/blueprint-home/index.bp create mode 100644 extension/blueprint-language-0.0.1.vsix create mode 100644 extension/client/out/.tsbuildinfo create mode 100644 extension/client/out/extension.d.ts create mode 100644 extension/client/out/extension.js create mode 100644 extension/client/out/extension.js.map create mode 100644 extension/client/src/extension.ts create mode 100644 extension/client/tsconfig.json create mode 100644 extension/extension/client/out/extension.js create mode 100644 extension/extension/tsconfig.tsbuildinfo create mode 100644 extension/out/tsconfig.tsbuildinfo create mode 100644 extension/package.json create mode 100644 extension/server/out/.tsbuildinfo create mode 100644 extension/server/out/server.d.ts create mode 100644 extension/server/out/server.js create mode 100644 extension/server/out/server.js.map create mode 100644 extension/server/src/server.ts create mode 100644 extension/server/tsconfig.json create mode 100644 extension/syntaxes/blueprint.tmLanguage.json create mode 100644 extension/tsconfig.json create mode 100644 lib/ASTBuilder.js create mode 100644 lib/BlueprintBuilder.js create mode 100644 lib/BlueprintError.js create mode 100644 lib/CSSGenerator.js create mode 100644 lib/HTMLGenerator.js create mode 100644 lib/MetadataManager.js create mode 100644 lib/TokenParser.js create mode 100644 lib/build.js create mode 100644 lib/dev-server.js create mode 100644 lib/mappings.js create mode 100644 lib/server.js create mode 100644 package.json create mode 100644 src/index.bp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63505c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +dist/ +node_modules/ +package-lock.json +bun.lockb \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..644b3c8 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Blueprint 🎨 - Modern Web UI Language + +A modern programming language, which feels like SwiftUI, but for web development. + +## Quick Start 🚀 + +```bash +# Clone and setup +git clone https://github.com/epilogueteam/blueprint.git +cd blueprint +npm install + +# Development +npm run dev # Starts server at http://localhost:3000 + +# Production +npm run build # Generates production files +``` + +## Why Blueprint? ✨ + +- 🎯 SwiftUI-like syntax for web development +- ⚡️ Optimized performance & real-time updates +- 🌐 Cross-platform responsive design +- 💝 Free & open-source +- 🔄 Live reload development + +## Development Guide 💻 + +1. After installation, access your project at `http://localhost:3000` +2. Make changes and see them instantly with live reload +3. For production, build optimized files using `npm run build` +4. Deploy built files to your preferred hosting platform + diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..9b6c28a --- /dev/null +++ b/docs/README.md @@ -0,0 +1,142 @@ +# Blueprint Documentation + +Blueprint is a modern, declarative UI framework for building beautiful web interfaces. It provides a simple, intuitive syntax for creating responsive, dark-themed web applications with consistent styling and behavior. + +## Core Features + +- **Declarative Syntax**: Write UI components using a clean, intuitive syntax +- **Dark Theme**: Beautiful dark theme with consistent styling +- **Responsive Design**: Built-in responsive design system +- **Component-Based**: Rich set of reusable components +- **Type-Safe**: Catch errors before they reach the browser +- **Custom Properties**: Direct control over styling when needed +- **Live Preview**: Changes appear instantly in your browser + +## Documentation Structure + +1. [Getting Started](getting-started.md) + - Installation + - Basic Usage + - Project Structure + - Property Types + - Page Configuration + - Error Handling + - Best Practices + +2. [Components](components.md) + - Layout Components (Section, Grid, Horizontal, Vertical) + - Typography (Title, Text) + - Navigation (Navbar, Links) + - Form Elements (Input, Textarea, Select, Checkbox, Radio, Switch) + - Interactive Components (Button, Card, Badge, Alert, Tooltip) + - Container Components (List, Table, Progress, Slider) + +3. [Styling](styling.md) + - Layout Properties + - Typography Properties + - Component Styles + - Interactive States + - Responsive Design + - Custom Properties + - Theme Variables + - Best Practices + +4. [Examples](examples.md) + - Basic Examples + - Layout Examples + - Form Examples + - Navigation Examples + - Complete Page Examples + +## Quick Start + +```blueprint +page { + title { "My First Blueprint Page" } + description { "A simple Blueprint page example" } + meta-viewport { "width=device-width, initial-scale=1" } +} + +navbar { + horizontal(spaced) { + text(bold) { "My App" } + links { + link(href:/) { "Home" } + link(href:/about) { "About" } + } + } +} + +section(wide, centered) { + vertical(gap:2) { + title(huge) { "Welcome to Blueprint" } + text(subtle) { "Start building beautiful UIs with Blueprint" } + + horizontal(centered, gap:2) { + button { "Get Started" } + button-light { "Learn More" } + } + } +} +``` + +## Key Concepts + +1. **Elements** + - Basic building blocks of Blueprint + - Each element maps to an HTML tag + - Elements can have properties and children + - Elements follow semantic naming + +2. **Properties** + - Flag properties (e.g., `centered`, `bold`) + - Key-value properties (e.g., `type:email`) + - Numeric properties (e.g., `width:80`) + - Color properties (e.g., `color:#ff0000`) + +3. **Styling** + - Consistent dark theme + - Built-in responsive design + - Direct style properties + - Theme variables + - Interactive states + +4. **Components** + - Layout components + - Form elements + - Interactive components + - Container components + - Typography elements + +## Best Practices + +1. **Organization** + - Group related elements + - Use consistent spacing + - Keep files focused + - Split into components + +2. **Styling** + - Use predefined properties + - Maintain consistency + - Leverage built-in features + - Custom styles sparingly + +3. **Performance** + - Small, focused files + - Optimize assets + - Use responsive features + - Minimize custom styles + +4. **Accessibility** + - Semantic elements + - Color contrast + - Focus states + - Screen reader support + +## Need Help? + +- Check the [examples](examples.md) for common patterns +- Read the [components guide](components.md) for detailed documentation +- Learn about styling in the [styling guide](styling.md) +- Start with the [getting started guide](getting-started.md) for basics \ No newline at end of file diff --git a/docs/components.md b/docs/components.md new file mode 100644 index 0000000..c8c9843 --- /dev/null +++ b/docs/components.md @@ -0,0 +1,365 @@ +# Blueprint Components + +Blueprint provides a rich set of components for building modern web interfaces. Each component is designed to be responsive, accessible, and consistent with the dark theme. + +## Layout Components + +### Section +Container for page sections: +```blueprint +section(wide, centered) { + // Content +} +``` +Properties: +- `wide`: Full width with max-width constraint (1200px) +- `centered`: Center content horizontally and vertically +- `alternate`: Alternate background color +- `padding`: Custom padding in pixels +- `margin`: Custom margin in pixels + +### Grid +Responsive grid layout: +```blueprint +grid(columns:3) { + // Grid items +} +``` +Properties: +- `columns`: Number of columns (default: auto-fit) +- `responsive`: Enable responsive behavior +- `gap`: Custom gap size between items +- `width`: Custom width in percentage + +### Horizontal +Horizontal flex container: +```blueprint +horizontal(centered, spaced) { + // Horizontal items +} +``` +Properties: +- `centered`: Center items vertically +- `spaced`: Space between items +- `gap`: Custom gap size +- `width`: Custom width in percentage +- `responsive`: Wrap items on small screens + +### Vertical +Vertical flex container: +```blueprint +vertical(centered) { + // Vertical items +} +``` +Properties: +- `centered`: Center items horizontally +- `spaced`: Space between items +- `gap`: Custom gap size +- `width`: Custom width in percentage + +## Typography + +### Title +Page or section titles: +```blueprint +title(huge) { "Main Title" } +title(large) { "Section Title" } +``` +Properties: +- `huge`: Very large size (4rem) +- `large`: Large size (2rem) +- `bold`: Bold weight +- `centered`: Center align +- `color`: Custom text color + +### Text +Regular text content: +```blueprint +text(large) { "Large text" } +text(subtle) { "Subtle text" } +``` +Properties: +- `large`: Larger size +- `small`: Smaller size (0.875rem) +- `subtle`: Muted color +- `bold`: Bold weight +- `color`: Custom text color + +## Navigation + +### Navbar +Fixed navigation bar: +```blueprint +navbar { + horizontal { + text(bold) { "Brand" } + links { + link(href:home) { "Home" } + link(href:about) { "About" } + } + } +} +``` +Properties: +- `sticky`: Fixed to top +- `transparent`: Transparent background +- `backgroundColor`: Custom background color + +### Links +Navigation link group: +```blueprint +links { + link(href:page1) { "Link 1" } + link(href:page2) { "Link 2" } +} +``` +Properties: +- `spaced`: Add spacing between links +- `vertical`: Vertical orientation +- `gap`: Custom gap size + +### Link +Individual link: +```blueprint +link(href:page, text:"Click here") { } +link(href:https://example.com) { "External Link" } +``` +Properties: +- `href`: Target URL or page +- `text`: Link text (optional) +- `external`: Open in new tab (automatic for http/https URLs) +- `color`: Custom text color + +## Interactive Components + +### Button +Various button styles: +```blueprint +button { "Primary" } +button-secondary { "Secondary" } +button-light { "Light" } +button-compact { "Compact" } +``` +Properties: +- `disabled`: Disabled state +- `width`: Custom width in percentage +- `backgroundColor`: Custom background color +- `color`: Custom text color + +### Card +Content container with hover effect: +```blueprint +card { + title { "Card Title" } + text { "Card content" } + button { "Action" } +} +``` +Properties: +- `raised`: Add shadow and hover effect +- `width`: Custom width in percentage +- `padding`: Custom padding in pixels +- `backgroundColor`: Custom background color + +### Badge +Status indicators: +```blueprint +badge { "New" } +badge(color:blue) { "Status" } +``` +Properties: +- `color`: Custom badge color +- `backgroundColor`: Custom background color +- `width`: Custom width in percentage + +### Alert +Notification messages: +```blueprint +alert(type:info) { "Information message" } +``` +Properties: +- `type`: info, success, warning, error +- `backgroundColor`: Custom background color +- `color`: Custom text color +- `width`: Custom width in percentage + +### Tooltip +Hover tooltips: +```blueprint +tooltip(text:"More info") { + text { "Hover me" } +} +``` +Properties: +- `text`: Tooltip text +- `position`: top, right, bottom, left +- `backgroundColor`: Custom background color +- `color`: Custom text color + +## Form Elements + +### Input +Text input field: +```blueprint +input(placeholder:"Type here") { } +``` +Properties: +- `placeholder`: Placeholder text +- `type`: Input type (text, email, password, etc.) +- `required`: Required field +- `disabled`: Disabled state +- `width`: Custom width in percentage + +### Textarea +Multi-line text input: +```blueprint +textarea(placeholder:"Enter message") { } +``` +Properties: +- `placeholder`: Placeholder text +- `rows`: Number of visible rows +- `required`: Required field +- `width`: Custom width in percentage + +### Select +Dropdown selection: +```blueprint +select { + option { "Option 1" } + option { "Option 2" } +} +``` +Properties: +- `placeholder`: Placeholder text +- `required`: Required field +- `disabled`: Disabled state +- `width`: Custom width in percentage + +### Checkbox +Checkbox input: +```blueprint +horizontal { + checkbox { } + text { "Accept terms" } +} +``` +Properties: +- `checked`: Default checked state +- `required`: Required field +- `disabled`: Disabled state +- `width`: Custom width in percentage + +### Radio +Radio button input: +```blueprint +vertical { + horizontal { + radio(name:"choice") { } + text { "Option 1" } + } + horizontal { + radio(name:"choice") { } + text { "Option 2" } + } +} +``` +Properties: +- `name`: Group name +- `checked`: Default checked state +- `disabled`: Disabled state +- `width`: Custom width in percentage + +### Switch +Toggle switch: +```blueprint +horizontal { + switch { } + text { "Enable feature" } +} +``` +Properties: +- `checked`: Default checked state +- `disabled`: Disabled state +- `width`: Custom width in percentage + +## Container Components + +### List +Ordered or unordered lists: +```blueprint +list { + text { "Item 1" } + text { "Item 2" } +} +``` +Properties: +- `ordered`: Use ordered list +- `bullet`: Show bullets +- `spaced`: Add spacing +- `width`: Custom width in percentage + +### Table +Data tables: +```blueprint +table { + row { + cell { "Header 1" } + cell { "Header 2" } + } + row { + cell { "Data 1" } + cell { "Data 2" } + } +} +``` +Properties: +- `striped`: Alternate row colors +- `bordered`: Add borders +- `compact`: Reduced padding +- `width`: Custom width in percentage + +### Progress +Progress indicators: +```blueprint +progress(value:75, max:100) { } +``` +Properties: +- `value`: Current value +- `max`: Maximum value +- `indeterminate`: Loading state +- `width`: Custom width in percentage + +### Slider +Range input: +```blueprint +slider(min:0, max:100, value:50) { } +``` +Properties: +- `min`: Minimum value +- `max`: Maximum value +- `step`: Step increment +- `disabled`: Disabled state +- `width`: Custom width in percentage + +### Media +Images and videos with responsive behavior: +```blueprint +media(src:/path/to/image.jpg) { "Image description" } +media(src:https://example.com/video.mp4, type:video) { "Video description" } +``` +Properties: +- `src`: URL or path to the media file (required) +- `type`: Media type (`img` or `video`, defaults to `img`) +- `width`: Custom width in percentage +- `height`: Custom height in percentage +- `padding`: Custom padding in pixels +- `margin`: Custom margin in pixels + +The media component automatically: +- Scales images/videos responsively (max-width: 100%) +- Maintains aspect ratio (height: auto) +- Adds rounded corners +- Includes a subtle hover effect +- Uses the content as alt text for images +- Adds video controls when type is video \ No newline at end of file diff --git a/docs/examples.md b/docs/examples.md new file mode 100644 index 0000000..27e4cc4 --- /dev/null +++ b/docs/examples.md @@ -0,0 +1,375 @@ +# Blueprint Examples + +This guide provides comprehensive examples of common UI patterns and layouts using Blueprint. + +## Basic Examples + +### Page Setup +```blueprint +page { + title { "My Blueprint Page" } + description { "A comprehensive example page" } + keywords { "blueprint, example, ui" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + text(bold) { "My App" } + links { + link(href:home) { "Home" } + link(href:about) { "About" } + link(href:contact) { "Contact" } + } + } +} + +section(wide, centered) { + title(huge) { "Welcome" } + text(subtle) { "Start building beautiful UIs" } +} +``` + +### Basic Card +```blueprint +card { + title { "Simple Card" } + text { "This is a basic card with some content." } + button { "Learn More" } +} +``` + +### Alert Messages +```blueprint +vertical(gap:2) { + alert(type:info) { "This is an information message" } + alert(type:success) { "Operation completed successfully" } + alert(type:warning) { "Please review your input" } + alert(type:error) { "An error occurred" } +} +``` + +## Layout Examples + +### Grid Layout +```blueprint +section(wide) { + title { "Our Features" } + + grid(columns:3) { + card { + title { "Feature 1" } + text { "Description of feature 1" } + button-secondary { "Learn More" } + } + card { + title { "Feature 2" } + text { "Description of feature 2" } + button-secondary { "Learn More" } + } + card { + title { "Feature 3" } + text { "Description of feature 3" } + button-secondary { "Learn More" } + } + } +} +``` + +### Responsive Layout +```blueprint +section(wide) { + horizontal(mobile-stack) { + vertical(width:40) { + title { "Left Column" } + text { "This column takes 40% width on desktop" } + } + vertical(width:60) { + title { "Right Column" } + text { "This column takes 60% width on desktop" } + } + } +} +``` + +### Nested Layout +```blueprint +section(wide) { + vertical(centered) { + title(huge) { "Nested Layout" } + + horizontal(centered, gap:4) { + vertical(centered) { + title { "Column 1" } + text { "Content" } + } + vertical(centered) { + title { "Column 2" } + text { "Content" } + } + } + } +} +``` + +## Form Examples + +### Login Form +```blueprint +section(wide, centered) { + card { + title { "Login" } + vertical(gap:2) { + vertical { + text(bold) { "Email" } + input(type:email, placeholder:"Enter your email") { } + } + vertical { + text(bold) { "Password" } + input(type:password, placeholder:"Enter your password") { } + } + horizontal { + checkbox { } + text { "Remember me" } + } + button { "Sign In" } + text(small, centered) { "Forgot password?" } + } + } +} +``` + +### Contact Form +```blueprint +section(wide) { + card { + title { "Contact Us" } + vertical(gap:2) { + horizontal(gap:2) { + vertical { + text(bold) { "First Name" } + input(placeholder:"John") { } + } + vertical { + text(bold) { "Last Name" } + input(placeholder:"Doe") { } + } + } + vertical { + text(bold) { "Email" } + input(type:email, placeholder:"john@example.com") { } + } + vertical { + text(bold) { "Message" } + textarea(placeholder:"Your message here...") { } + } + button { "Send Message" } + } + } +} +``` + +### Settings Form +```blueprint +section(wide) { + card { + title { "Settings" } + vertical(gap:3) { + horizontal { + vertical(width:70) { + title(small) { "Notifications" } + text(subtle) { "Manage your notification preferences" } + } + switch { } + } + horizontal { + vertical(width:70) { + title(small) { "Dark Mode" } + text(subtle) { "Toggle dark/light theme" } + } + switch { } + } + horizontal { + vertical(width:70) { + title(small) { "Email Updates" } + text(subtle) { "Receive email updates about your account" } + } + switch { } + } + } + } +} +``` + +## Navigation Examples + +### Complex Navbar +```blueprint +navbar { + horizontal { + horizontal(gap:2) { + text(bold) { "Logo" } + links { + link(href:home) { "Home" } + link(href:products) { "Products" } + link(href:pricing) { "Pricing" } + link(href:about) { "About" } + } + } + horizontal(gap:2) { + button-light { "Sign In" } + button { "Get Started" } + } + } +} +``` + +### Sidebar Navigation +```blueprint +horizontal { + vertical(width:20) { + title { "Dashboard" } + links(vertical) { + link(href:home) { "Home" } + link(href:profile) { "Profile" } + link(href:settings) { "Settings" } + link(href:help) { "Help" } + } + } + vertical(width:80) { + title { "Main Content" } + text { "Your content here" } + } +} +``` + +### Breadcrumb Navigation +```blueprint +horizontal(gap:1) { + link(href:home) { "Home" } + text { ">" } + link(href:products) { "Products" } + text { ">" } + text(bold) { "Current Page" } +} +``` + +## Complete Page Examples + +### Landing Page +```blueprint +page { + title { "Blueprint - Modern UI Framework" } + description { "Build beautiful web interfaces with Blueprint" } +} + +navbar { + horizontal { + text(bold) { "Blueprint" } + links { + link(href:features) { "Features" } + link(href:docs) { "Docs" } + link(href:pricing) { "Pricing" } + button { "Get Started" } + } + } +} + +section(wide, centered) { + vertical(centered) { + title(huge) { "Build Beautiful UIs" } + text(large, subtle) { "Create modern web interfaces with ease" } + horizontal(centered, gap:2) { + button { "Get Started" } + button-light { "Learn More" } + } + } +} + +section(wide) { + grid(columns:3) { + card { + title { "Easy to Use" } + text { "Simple, declarative syntax for building UIs" } + button-secondary { "Learn More" } + } + card { + title { "Modern Design" } + text { "Beautiful dark theme with consistent styling" } + button-secondary { "View Examples" } + } + card { + title { "Responsive" } + text { "Looks great on all devices out of the box" } + button-secondary { "See Details" } + } + } +} +``` + +### Dashboard Page +```blueprint +page { + title { "Dashboard - My App" } +} + +navbar { + horizontal { + text(bold) { "Dashboard" } + horizontal { + text { "Welcome back, " } + text(bold) { "John" } + } + } +} + +section(wide) { + grid(columns:4) { + card { + title { "Total Users" } + text(huge) { "1,234" } + text(subtle) { "+12% this month" } + } + card { + title { "Revenue" } + text(huge) { "$5,678" } + text(subtle) { "+8% this month" } + } + card { + title { "Active Users" } + text(huge) { "892" } + text(subtle) { "Currently online" } + } + card { + title { "Conversion" } + text(huge) { "3.2%" } + text(subtle) { "+0.8% this month" } + } + } + + horizontal(gap:4) { + vertical(width:60) { + card { + title { "Recent Activity" } + list { + text { "User signup: John Doe" } + text { "New order: #12345" } + text { "Payment received: $99" } + } + } + } + vertical(width:40) { + card { + title { "Quick Actions" } + vertical(gap:2) { + button { "Create User" } + button-secondary { "View Reports" } + button-light { "Export Data" } + } + } + } + } +} +``` + +These examples demonstrate common UI patterns and how to implement them using Blueprint. Use them as a starting point for your own projects and customize them to match your needs. \ No newline at end of file diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 0000000..e9935b0 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,213 @@ +# Getting Started with Blueprint + +## Installation + +1. Clone the repository: +```bash +git clone https://github.com/yourusername/blueprint.git +cd blueprint +``` + +2. Install dependencies: +```bash +npm install +``` + +3. Create your first Blueprint file: +```bash +mkdir src +touch src/index.bp +``` + +## Basic Usage + +Blueprint uses a declarative syntax to define UI components. Each file with a `.bp` extension will be compiled into HTML and CSS. + +### Basic Structure + +A Blueprint file consists of elements, which can have properties and children. Properties can be flags or key-value pairs: + +```blueprint +element(flag1, key:value) { + child-element { + // Content + } +} +``` + +### Property Types + +Blueprint supports several types of properties: + +1. **Flag Properties** + ```blueprint + button(bold, centered) { "Text" } + ``` + +2. **Key-Value Properties** + ```blueprint + input(type:email, placeholder:"Enter email") + ``` + +3. **Numeric Properties** + ```blueprint + section(width:80, padding:20) + ``` + +4. **Color Properties** + ```blueprint + text(color:#ff0000) { "Red text" } + ``` + +### Page Configuration + +Every Blueprint page can have metadata defined using the `page` element: + +```blueprint +page { + title { "My Page Title" } + description { "Page description for SEO" } + keywords { "keyword1, keyword2, keyword3" } + author { "Author Name" } + meta-viewport { "width=device-width, initial-scale=1" } +} +``` + +Available page metadata: +- `title`: Page title (appears in browser tab) +- `description`: Meta description for SEO +- `keywords`: Meta keywords for SEO +- `author`: Page author +- `meta-*`: Custom meta tags (e.g., meta-viewport, meta-robots) + +### Basic Layout + +A typical page structure: + +```blueprint +page { + title { "My First Page" } + description { "A simple Blueprint page" } + meta-viewport { "width=device-width, initial-scale=1" } +} + +navbar { + horizontal(spaced) { + text(bold) { "My App" } + links { + link(href:/) { "Home" } + link(href:/about) { "About" } + link(href:/contact) { "Contact" } + } + } +} + +section(wide, centered) { + vertical(gap:2) { + title(huge) { "Welcome to Blueprint" } + text(subtle) { "Start building beautiful UIs with Blueprint" } + + horizontal(centered, gap:2) { + button { "Get Started" } + button-light { "Learn More" } + } + } +} + +section(wide) { + grid(columns:3) { + card { + title { "Feature 1" } + text { "Description of feature 1" } + button-secondary { "Learn More" } + } + card { + title { "Feature 2" } + text { "Description of feature 2" } + button-secondary { "Learn More" } + } + card { + title { "Feature 3" } + text { "Description of feature 3" } + button-secondary { "Learn More" } + } + } +} +``` + +## Project Structure + +A typical Blueprint project has the following structure: + +``` +my-blueprint-project/ +├── src/ # Source Blueprint files +│ ├── index.bp # Main page +│ ├── about.bp # About page +│ └── contact.bp # Contact page +├── public/ # Static assets +│ ├── images/ # Image files +│ ├── fonts/ # Font files +│ └── favicon.ico # Favicon +├── dist/ # Generated files (auto-generated) +│ ├── index.html # Compiled HTML +│ ├── index.css # Generated CSS +│ └── ... +└── package.json # Project configuration +``` + +## Error Handling + +Blueprint provides helpful error messages when something goes wrong: + +``` +BlueprintError at line 5, column 10: +Unknown element type: invalid-element +``` + +Common errors include: +- Missing closing braces +- Unknown element types +- Invalid property values +- Unterminated strings +- Missing required properties +- Invalid color values +- Invalid numeric values + +## Best Practices + +1. **Organization** + - Group related elements logically + - Use consistent spacing and indentation + - Keep files focused on a single purpose + - Split large files into components + +2. **Naming** + - Use descriptive names for links and sections + - Follow a consistent naming convention + - Use semantic element names + +3. **Layout** + - Use semantic elements (`section`, `navbar`, etc.) + - Leverage the grid system for responsive layouts + - Use appropriate spacing with `gap` property + - Use `width` and `padding` for fine-tuned control + +4. **Styling** + - Use predefined style properties when possible + - Group related styles together + - Keep styling consistent across pages + - Use custom properties sparingly + +5. **Performance** + - Keep files small and focused + - Use appropriate image formats and sizes + - Minimize custom styles + - Leverage built-in responsive features + +## Next Steps + +- Explore available [components](components.md) +- Learn about [styling](styling.md) +- Check out [examples](examples.md) +- Read about advanced features in the component documentation \ No newline at end of file diff --git a/docs/styling.md b/docs/styling.md new file mode 100644 index 0000000..473a2e6 --- /dev/null +++ b/docs/styling.md @@ -0,0 +1,233 @@ +# Blueprint Styling Guide + +Blueprint provides a comprehensive styling system that ensures consistent, beautiful dark-themed UIs. This guide covers all available styling properties and how to use them effectively. + +## Style Properties + +### Layout Properties + +#### Spacing and Sizing +- `wide`: Full width with max-width constraint (1200px) +- `compact`: Reduced padding (0.75rem) +- `spaced`: Space between items (gap: 1.5rem) +- `gap`: Custom gap size between items +- `width`: Custom width in percentage +- `height`: Custom height in percentage +- `padding`: Custom padding in pixels +- `margin`: Custom margin in pixels + +#### Positioning +- `centered`: Center content horizontally and vertically +- `sticky`: Fixed position at top with blur backdrop +- `fixed`: Fixed position +- `relative`: Relative positioning +- `absolute`: Absolute positioning + +#### Display and Flex +- `horizontal`: Horizontal flex layout with 1.5rem gap +- `vertical`: Vertical flex layout with 1.5rem gap +- `grid`: Grid layout with auto-fit columns +- `responsive`: Enable responsive wrapping +- `hidden`: Hide element +- `visible`: Show element + +### Typography Properties + +#### Text Size +- `huge`: Very large text (clamp(2.5rem, 5vw, 4rem)) +- `large`: Large text (clamp(1.5rem, 3vw, 2rem)) +- `small`: Small text (0.875rem) +- `tiny`: Very small text (0.75rem) + +#### Text Weight +- `bold`: Bold weight (600) +- `light`: Light weight +- `normal`: Normal weight + +#### Text Style +- `italic`: Italic text +- `underline`: Underlined text +- `strike`: Strikethrough text +- `uppercase`: All uppercase +- `lowercase`: All lowercase +- `capitalize`: Capitalize first letter + +#### Text Color +- `subtle`: Muted text color (#8b949e) +- `accent`: Accent color text (#3b82f6) +- `error`: Error color text +- `success`: Success color text +- `warning`: Warning color text +- Custom colors using `color:value` + +### Component Styles + +#### Button Styles +- `prominent`: Primary button style + - Background: #3b82f6 + - Hover: Scale up and glow +- `secondary`: Secondary button style + - Background: #1f2937 + - Hover: Slight raise +- `light`: Light button style + - Background: Transparent + - Border: 1px solid rgba(48, 54, 61, 0.6) +- `compact`: Compact button style + - Padding: 0.75rem + - Border-radius: 12px + +#### Card Styles +- `raised`: Card with hover effect + - Background: #111827 + - Border: 1px solid rgba(48, 54, 61, 0.6) + - Hover: Raise and glow +- `interactive`: Interactive card style + - Hover: Scale and border color change + +#### Input Styles +- `input`: Standard input style + - Background: #111827 + - Border: 1px solid rgba(48, 54, 61, 0.6) + - Focus: Blue glow +- `textarea`: Textarea style + - Min-height: 120px + - Resize: vertical +- `select`: Select input style + - Custom dropdown arrow + - Focus: Blue glow +- `checkbox`: Checkbox style + - Custom checkmark + - Hover: Blue border +- `radio`: Radio button style + - Custom radio dot + - Hover: Blue border +- `switch`: Toggle switch style + - Animated toggle + - Checked: Blue background + +### Interactive States + +#### Hover Effects +```blueprint +button(hover-scale) { "Scale on Hover" } +link(hover-underline) { "Underline on Hover" } +card(hover-raise) { "Raise on Hover" } +``` + +Available hover properties: +- `hover-scale`: Scale up on hover (1.1) +- `hover-raise`: Raise with shadow +- `hover-glow`: Glow effect +- `hover-underline`: Underline on hover +- `hover-fade`: Fade effect + +#### Focus States +```blueprint +input(focus-glow) { } +button(focus-outline) { "Click me" } +``` + +Available focus properties: +- `focus-glow`: Blue glow effect +- `focus-outline`: Blue outline +- `focus-scale`: Scale effect + +#### Active States +```blueprint +button(active-scale) { "Click me" } +link(active-color) { "Click me" } +``` + +Available active properties: +- `active-scale`: Scale down +- `active-color`: Color change +- `active-raise`: Raise effect + +### Responsive Design + +#### Breakpoints +Blueprint automatically handles responsive design, but you can use specific properties: + +```blueprint +section(mobile-stack) { + horizontal(tablet-wrap) { + card(desktop-wide) { } + card(desktop-wide) { } + } +} +``` + +Available responsive properties: +- `mobile-stack`: Stack elements on mobile +- `mobile-hide`: Hide on mobile +- `tablet-wrap`: Wrap on tablet +- `tablet-hide`: Hide on tablet +- `desktop-wide`: Full width on desktop +- `desktop-hide`: Hide on desktop + +#### Grid System +The grid system automatically adjusts based on screen size: + +```blueprint +grid(columns:3, responsive) { + card { } + card { } + card { } +} +``` + +### Custom Properties + +#### Direct Style Properties +You can use these properties directly: +- `width`: Set width in percentage (e.g., width:80) +- `height`: Set height in percentage (e.g., height:50) +- `padding`: Set padding in pixels (e.g., padding:20) +- `margin`: Set margin in pixels (e.g., margin:10) +- `color`: Set text color (e.g., color:#ffffff) +- `backgroundColor`: Set background color (e.g., backgroundColor:#000000) + +### Theme Variables + +Blueprint uses CSS variables for consistent theming: + +```css +:root { + --navbar-height: 4rem; + --primary-color: #3b82f6; + --secondary-color: #1f2937; + --text-color: #e6edf3; + --subtle-color: #8b949e; + --border-color: rgba(48, 54, 61, 0.6); + --background-color: #0d1117; + --hover-color: rgba(255, 255, 255, 0.1); +} +``` + +### Best Practices + +1. **Consistency** + - Use predefined properties when possible + - Maintain consistent spacing + - Follow the color theme + - Use semantic styles + +2. **Responsive Design** + - Test at all breakpoints + - Use relative units + - Consider mobile-first + - Use grid and flex layouts + +3. **Performance** + - Minimize custom styles + - Use system properties + - Avoid deep nesting + - Optimize animations + +4. **Accessibility** + - Maintain color contrast + - Use semantic markup + - Consider focus states + - Test with screen readers +``` + \ No newline at end of file diff --git a/examples/blueprint-home/about.bp b/examples/blueprint-home/about.bp new file mode 100644 index 0000000..331d604 --- /dev/null +++ b/examples/blueprint-home/about.bp @@ -0,0 +1,57 @@ +page(favicon:"/favicon.ico") { + title { "Blueprint - About" } + description { "A modern, declarative UI framework for building beautiful web interfaces" } + keywords { "blueprint, ui, framework, web development" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + link(href:index) { text(bold) { "Blueprint Live" } } + links { + link(href:index) { "Home" } + link(href:components) { "Components" } + link(href:about) { "About" } + link(href:contact) { "Contact" } + } + } +} + +section(wide) { + title { "About Blueprint" } + text(subtle) { "A modern UI compiler with live reload support" } + + vertical { + card { + title { "Our Story" } + text { "Blueprint was created to make UI development faster and more enjoyable. With live reload support, you can see your changes instantly without manual refreshing." } + } + + card { + title { "Features" } + vertical { + horizontal { + badge { "New" } + text { "Live Reload Support" } + } + horizontal { + badge { "✨" } + text { "Modern Dark Theme" } + } + horizontal { + badge { "🚀" } + text { "Fast Development" } + } + } + } + + card { + title { "Get Started" } + text { "Try Blueprint now with our development server:" } + codeblock { + "node dev.js --live --readable" + } + link(text:"Get Help") { "Contact" } + } + } +} \ No newline at end of file diff --git a/examples/blueprint-home/components.bp b/examples/blueprint-home/components.bp new file mode 100644 index 0000000..4867679 --- /dev/null +++ b/examples/blueprint-home/components.bp @@ -0,0 +1,152 @@ +page(favicon:"/favicon.ico") { + title { "Blueprint - Components" } + description { "A modern, declarative UI framework for building beautiful web interfaces" } + keywords { "blueprint, ui, framework, web development" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + link(href:index) { text(bold) { "Blueprint Live" } } + links { + link(href:index) { "Home" } + link(href:components) { "Components" } + link(href:about) { "About" } + link(href:contact) { "Contact" } + } + } +} + +section(wide, centered) { + title(huge) { "Modern UI Components" } + text(large, subtle) { "A showcase of beautiful, dark-themed UI elements" } +} + +section(wide) { + title { "Form Elements" } + + grid(columns:2) { + card { + title { "Text Inputs" } + vertical { + text(subtle) { "Regular input:" } + input { "Type something..." } + + text(subtle) { "Textarea:" } + textarea { "Multiple lines of text..." } + + text(subtle) { "Select dropdown:" } + select { + "Option 1" + "Option 2" + "Option 3" + } + } + } + + card { + title { "Toggle Controls" } + vertical { + horizontal { + checkbox { } + text { "Enable notifications" } + } + + horizontal { + radio { } + text { "Light theme" } + } + + horizontal { + radio { } + text { "Dark theme" } + } + + horizontal { + switch { } + text { "Airplane mode" } + } + } + } + } +} + +section(wide) { + title { "Progress Elements" } + + grid(columns:2) { + card { + title { "Progress Indicators" } + vertical { + text(subtle) { "Download progress:" } + progress(value:75, max:100) { } + + text(subtle) { "Volume control:" } + slider(value:50, min:0, max:100) { } + } + } + + card { + title { "Status Indicators" } + vertical { + horizontal(spaced) { + badge { "New" } + badge { "Updated" } + badge { "Popular" } + } + + alert { "✨ Welcome to the new UI Kit!" } + + horizontal { + tooltip(data-tooltip:"Click to learn more") { + text { "Hover me" } + } + } + } + } + } +} + +section(wide) { + title { "Button Variations" } + + grid(columns:3) { + card { + title { "Primary Actions" } + vertical { + button(prominent) { "Save Changes" } + button { "Cancel" } + } + } + + card { + title { "Button Groups" } + horizontal { + button(prominent) { "Previous" } + button(prominent) { "Next" } + } + } + + card { + title { "Icon Buttons" } + horizontal { + button(compact) { "👍" } + button(compact) { "❤️" } + button(compact) { "🔔" } + } + } + } +} + +section(wide, alternate) { + title(centered) { "Ready to Build?" } + + vertical(centered) { + text(large, subtle) { "Start creating your own modern UI today" } + + horizontal(centered, spaced) { + button(prominent) { "Get Started" } + button(prominent) { "View Documentation" } + } + } +} \ No newline at end of file diff --git a/examples/blueprint-home/contact.bp b/examples/blueprint-home/contact.bp new file mode 100644 index 0000000..ba473e8 --- /dev/null +++ b/examples/blueprint-home/contact.bp @@ -0,0 +1,54 @@ +page(favicon:"/favicon.ico") { + title { "Blueprint - Contact" } + description { "A modern, declarative UI framework for building beautiful web interfaces" } + keywords { "blueprint, ui, framework, web development" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + link(href:index) { text(bold) { "Blueprint Live" } } + links { + link(href:index) { "Home" } + link(href:components) { "Components" } + link(href:about) { "About" } + link(href:contact) { "Contact" } + } + } +} + +section(vertical, centered) { + card(width:100) { + title { "Contact Us" } + text(subtle) { "Get in touch with the Blueprint team" } + + vertical { + text(subtle) { "Name" } + input { "Your name" } + + text(subtle) { "Email" } + input { "you@example.com" } + + text(subtle) { "Message" } + textarea { "Type your message here..." } + + horizontal { + checkbox { } + text { "Subscribe to updates" } + } + + link(href:submit) { button { "Send Message" } } + } + } + + horizontal(centered) { + text(subtle) { "Or connect with us on social media:" } + } + + horizontal(centered) { + link(href:twitter) { button-compact { "𝕏" } } + link(href:facebook) { button-compact { "📘" } } + link(href:linkedin) { button-compact { "💼" } } + link(href:instagram) { button-compact { "📱" } } + } +} \ No newline at end of file diff --git a/examples/blueprint-home/index.bp b/examples/blueprint-home/index.bp new file mode 100644 index 0000000..fbaf101 --- /dev/null +++ b/examples/blueprint-home/index.bp @@ -0,0 +1,50 @@ +page(favicon:"/favicon.ico") { + title { "Blueprint - Modern UI Framework" } + description { "A modern, declarative UI framework for building beautiful web interfaces" } + keywords { "blueprint, ui, framework, web development" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + link(href:index) { text(bold) { "Blueprint Live" } } + links { + link(href:index) { "Home" } + link(href:components) { "Components" } + link(href:about) { "About" } + link(href:contact) { "Contact" } + } + } +} + +section(wide, centered) { + vertical(centered,wide) { + title(huge) { "Welcome to blueprint" } + text(subtle) { "You can now edit files in the src/ directory" } + } + + horizontal(centered) { + link(href:index) { button { "Get started" } } + link(href:about) { button-light { "About" } } + } +} + +section(wide) { + grid(columns:3) { + card { + title { "Live Reloads" } + text { "Changes appear instantly in your browser" } + link(href:https://example.com) { button-secondary { "Try Blueprint" } } + } + card { + title { "Modern Design" } + text { "Beautiful dark theme with consistent styling" } + link(href:about) { button-secondary { "About" } } + } + card { + title { "Easy to Use" } + text { "Simple, declarative syntax for building UIs" } + link(href:contact) { button-secondary { "Contact" } } + } + } +} \ No newline at end of file diff --git a/extension/blueprint-language-0.0.1.vsix b/extension/blueprint-language-0.0.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..c03e9ad109b0c1305833d6da561c958f3ec10e7f GIT binary patch literal 584343 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ℜq7+K?i%s9ykcuZz3bztpo87j1oH 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
! zH#{aJ`tGQa2VQFLpIvujFqs-;lIRMMAywt$Yht~IW*N_}U_eCbb;}Mk1v|0OjNRr2jB~BwHSy?);%9A=L@-xy3&+K7a0yBIPS#%im zzB(m3sPbE{YENauyTd69(A=9qeAg2lf}#Q@kVbI^t<%64mG*&v`V^JL=vrCvDk_bM zix>=a#0g~#hO$LBVA$O1kRn8>b+Y*UmhYIz28&g81PbS?*9|fqCJKT}N`KJBrN7%M zDeG)^d!_Qj3RIr4R<#ze$&dLpetu;#t2#;@N?qz9idXr=M}12RRsVEv`(w`8$B1hDhv|2d2^cvt^dmLFd4m(` z*QV^L>d(!lZ7b2u8w@~sl!@!bDBYg`~u3{`!XP6b5hFXb1QeuIJDi2DjNFIOx8}A-P%5TFpw3}ux@3k zEMg}s)!Yr%UJxtZVAzHW)S&KC;i)_xFH8C0>g0_SEmwo+WV z|CX4VbELUw)p60`t#wPABlhXUa2;hN2S+ILtFEupnn&z#%o7!+#pU$akrbj93AehC zvu#C7U@F{l=<%6JMWwBWzQJL#+FsjnkuABG?sC>-v?wTIlE|jY*QnFv;seU)?z*&i z6tYsilCAZ@(EVun5<5nwvcqanSr;y!p`TzRwfF@6=PtG*F(wn6)?_0Kmj{t58CY~=MYXn|{XSFMmHVfrBF^2TtLhmnkcqgz_ zS-gf}B_|Z^Z(6h)Hf~O}f2S1&w41vs02t$d|EoYJ@NWdV|AaC?t4dANex)8D1XHoN zkDsj(;G~sba(hp4RLf`^he0|69yL%fl;9uuNd+i2m+koi2j~?DIC@qpEl-|@2(^+8 z&>f<3;>*bBoT+#W-vmJ|U9_)OlL(%sPm7CZ>`MHC8jcoD8cT=SGvNxSCJH3t;}N7< z3f4hDF6V<`VH$|Ni@EjM(4c4!gBE-T|HStx8^CIQDkDj3(@#W&5wto8lr7QEDqPh4 z;U*sxH!~Gi_6;F6PJt&mLTiH}bsHwhe;aEYYS#{LE6CTDoaFNG8MBXlq@JB8rIY(K z)+0pN^Fnja^ahI5vYdU|ev`Hdi!>DcM7p3x$V0mHk0yk6o0O3R;=6)DiT<4!Ue!X_un;RBu#Iy4@UB;~874WflD{=|a(SBvtO-e}vL|sIFUdvVr9hhZtNPq3&w$^U zjYkaS+ehkXBTEuBu=kS>2sYzR2xqJ|CLfu1=Jv_*r&bqk!OBeb2-OAF0q-ckd@aMgtX~zuY80KQ) zl2z{vWbW97J0AroSg?R3ECS+dI3lE8JTQr~VDM`3zUT>m2CMJ+kq2j!sAnqZaEUFn zgv^^RwJrfhqG<_Ix& zjFs!xiL;YAQ?=0-SQ<+)2-kPCk}GKy2EP-~Wln5`G{a|=kY2`_rt*h%E`4yuJv8E_ z4b@OO!_KXgxu4Av(4U+2V1v{#gCWF=!uu{2enuBAgcq_b#YZ6C(ND`r`^k4)Ehd`B zuZ_O8dkSZ_s_XT6wixb5GFAb~5`I7dGVl<^PsQPF)It0}P11S&HMjIB7jxVTkp^V{4{7fZC0o>O>+ZB|+qP}nwry*tZQHhO z+qQG3&6nrgd!GuY@|R*oEn2KO+8pTP>lIs)=dVU#vU`*N%qx47%bKHcARudwxlLzZ6URtLQj{|MFXLKO;Kda zqB@o^PS9bSoxtl7ekq$c-aXX3h^|dv&%AL8d0h%i=ESDqJ+EpUCzOY%U6HroJYqq132MH(1d?=%MED$Objy<)RS zPWi7PmtU~j$?Fs{?sKoNc4!x=yM^8m@Zc4jTIcV?h|R+N4B-$D%svI*&0UY94WgT^Z0jV>n1{g z{p=;!59SQ#WFw5g4n1K4NqH3&?hv+jxbUTI4yIc8DSL+XY7-NVai>gGr;ImrQdNU< z9zEMj(@P#l1Ng+A6$tPLBFmX{>quP9kq7AhFxE%cd4|Obl2ZaaNH2lvg_7`hSsE9Q zwvTsK=+vDmEdhc%Gie2`ifFn^SL6lKv*Np*yEB8FPlgH*6s=GsHhg2*!4(*Xg#@>ybzDG~M{mt#gdu2ra!@a*u*<(*32ZtQ5qt6S?R_^RhZw?v-@fnu6 zLxz+TumDu|kruVMI!Z$)!}DM*PHCf8_IIF2hObPhMiv>PEyIpS839^Bz$MzXl|FE= zQ_BkLTXR~}+z(tE(44q#ny4z_)2`IX^t)Rmd&<~eBDnio!KJv!)a|;-gva>@m(qh zpam*a?U!0fM@wBKTYz_QLFnB0THD!Xf3wXpxqF~X?u_+eXS&)Yjb4D(vkr2MATn*X zCI22n?lgJmvoEbD!;!_|76S89td_h3s>}7RWI=OF_p>v!Lnt+(M|#d_xsfFOKt;=^ z6EB9#7 z4(p?xC<;SUdi>U?PUx`HU9g z&MEkpet4hlBMzHaBz*|7DSr+RUfyREY(lSexV1O@#FQG#X^~TLBLawrSry%

zOZ1$;0dY{IjnqiM^?rKzW0*R*`&-$2P41X*+jd@)M~a#aw@^hfW)At)AG&*JOjR4? zdeB(-Jgq?$a6-cB6HdP>=9INDwbqHfH;N|DsJG4$Vbc|e6yd*T!f!a)&kdKe8nweN z*eDzr^WO`TZrPE2X;8jBzJ#9Ol+4+DJ}lJ>E#3c0XaR?{6V?dnd`r$zsVFo9tA3lh zxj(DDRx;aIGUf~hR;V!ZrD9s6(+qpJ!06Uup37si02OHk&Qh-HjEK#ivHT2yn#+l6 z3Al7-DE(dK+}Ft4z+2~|SM?`6eN#y#%3|$@tuMy)jTauu*t0=PVsnXZJ4c$Vfg5`q zy+sDk?;EjYT=B-x@4=amxM422{JfqSG;2;JEc0W=)1^l?p&#?CgXQn4&F_|BXK^;c zNp>z3hj3*MIBbEG%TaQr)3Qw!MbaU?_d#Qb=O%)Xi)fSErL)K$y-4B@t;zf=v&Vh1 zNmbR*AjSz-g*9bvcQctPDrvaCH^`DBiq|?c*WuA>Ln5^@%C!SNwb$aZSz9UK1p3yv z(u{;PDqhzpK;IV+PKWH{g`c~Zp2qWf4t)Kn+@K|a2~-QmyvJ`)+dp+T23XG5a~h>= zWgcQS2kF~SBTauU@!0KMs}au;hB*fMaOnVNTKRSQg!otPp%^Ytvb18RIpv*_RGzu=Wcowb2Gwt zxK!8*>eSaVjW?ZtRkj9D9$y;t9iq_)N$5_81iRIKoMQ$19HVB{t}`8dA~wo-XdBD4 zZzdqxxq$hBD~d2$SU~B%R+e1(-7LC!1z{sn zV%dVP%hg$Mk3+DUi~ECn-@iO^TRo@98`$?cW#oVI$mahY9$8vKNJLgiL`R`7=6k$e z*Bup@rzC(uW=ks(M1Qh*WVJLF3huC&W&sTtqeYl9+S?PL$rb5I__n8=>E^_mee{sa zqL`F8W({2;7d+%u$J6uKK(6oJ)=%dlBc4eyuARNsgSVH*tkhj2blO~qmDQ77L+8E$ z5g6BoVe~Ary~GRXEK(~(*<&!KY#VBgS-`I&T!WQh%%qtUFpI#|?rt6aM~A4IcSOh`xZp0zaGoy9hVcyqoA$&z>|Iz5Z(f}`O-O5fCjCo1g&EXxLhWBR!Xx*Y!&TJj%z}r5%PPGCwL) zP~HPNf>Odg$3|8FymhEl*$|@cWZDd9sQ5)Ttf**L-89W1C>HKu*Jyy!#DiWbXEmo= z4=8IW<)0wiwSDiD8f+fPqAKUFFP6M>T#^sIkhL)x=NADb1VyJB9L%sun~vQE5)AM* z5G<^=m@}pjbn8f=yb4vcg^#GUiq>RBRieqkz>>|ya!o`6Pl7$j1VY`IX3>&YT#}CG zc3p#e%Q#S6ECgzr*N(6*OcJEhJO$FE`~cgyOF_+xXyu4YPRI<{XFs5fwU2iQ*id(z zf4(46r1{br--J+LShcUWWn$Oz!u28M`#Wx({gc`r_nqyF|A%&+|21y4`R_O-|4)25 zTCvX(o8hl+OgzpI^;_F4c`qmudClYM)`Whoi?!qg9SLzqYvkK2k=a#ULv)YzpG<{6 z?;gDYdtqXJv-V=eCZsgEnFq9lY?K&C33yx>0#74gYBXN08r;{!^vA>NCa43ghy^bELc*o!KS?+*KG+DoqMwp z()EIxNb~``j>lJYB@XpwRb}Y7{t_iQ3F8c1DkjWGsT zOyodPWD1^6B#e!JRz?M|8WB%c{~=mlca8HRyD#C$ZL^s0V=f^+!;}LHXIk7cb%jvl zqx?Cd_OPS1v~pIg{a2->LQYPS+gx9sb;=BjZ`xb;tbv(#W|R+~8Az*whA%7crv{(n z$~8@^cT+LqgS_hEz}`FF34g9nkaJ%&0(zBFnt&7|Vb9~;TdiZI@@}4tFWmeIA>9-$ z+=6>2^!^v412(E^Dcm-QfU50V;}39L?TzD4)Kg(IbC)eDE@A$RE|I(}r& zUzakIOU20icYQ+mAI;73zr)=A9VD$*vvFE$L;Q@4iA&?1LPmYiv9956X;%!ahjZbfEGb`JLi3aIwp~h9=Qgvv&yfUkEpNw z@d~s?xAYe5)a<=>L7OVYs|LGdy4mb;n9{HBMrl1$9b_rILZhwnDRzR>sXHvtG}C8M ziVT2^W}Bo-nTDz3Ps7a(P`=GpkFYl}vg$BYFdOZwW$nX9JCuFjqg;~a797Nw<)|f2{V+vpL&arbvT}=| zBRsRB^3S4HwTSDF!{@3#tc9XihscJ>RlkY5abt}Nb7WACRPrRVw%=paw<$~e^G z?r&W_)=!slcWi$&c)ZLH9|i_9OG%gBIllO&pRzXXeV(%_*tYhapR00&rhGr~p72gS zUNSFt*qnK8=slbIkJ51+KVReS^l}a!!`64`V!J-a<~lp$?l!%rNw*CSg@ABp3dP_B zVkvkULZ3Tot^%Yh)3d;_)|SL9PdiBEb(X5LrXb>`dYD5JH9rLd?7h&A73h`-taq7NVht(?%o!o5g2t; zfT$PyAwoHlW;uxpti)b{$PZxqgY2J>r-ynr6~63J{2?yMyv**lKT6*h$Uej0Qa>)% zQu=9*DygQ5$0i<9LMds$Ks1jyO{CAshk*k5SO`Os zRJ2pE6SJes(z=q5?I;_wNf|go&*mcvL#C{*`^~-n84~sTvpPOqW7~c;q^?0WHY*liFLiq;xv+5gdoAYzcf>{O(7D>6 zqK3a^yS7FnQ}xQ?AS#Ph7JGadQ2XOBR*L=R=pb-TtD_*@$0g4d0!fRI@fkhTK{W}s z!)}{6eC2TjcS%#jj*+G)Sn^0F93^4(n3PUUKeJ;oMANP#z!Fpq`}bGTe6!W)6nxYJ zOO-RQR6dT%kmlKHj!ow>B5E{_!yi{g#M!;OlD8FeLHDik}S}E?3M~5yZ2OZA28Lqq2^K0#OS<6o8Y`4|G$5W^R z86)512G`KkjPk5vr@RT8xqU}KJK~rDUhf2fBCEON1VbJSbaMb!^a9lVJY+ff9T20= zoWihIzRhQwJAP0zXX0njsLSHCx@9QI1`73gVh`Pr)$hm{wuHi5!>C7AEuW#2A%6iZ z2Fw$PRm|hzH`C6fWNj^iHhB02UMp&_95eo660`fr&FYTyl!VV82eU1SK)`kPGofp- zLp7}WGo=+N=IJ?oLarCj&KZVE60LCYSM4VGm0}GjCmKdcO`smqHR%hRyJiz!$Ztf` zCgrL7nk6c!SipXYb=TsNQiy>=dd7CCK-6qg8c+NJx^rfF@CZn2e$Jz---Oj*?Dkvi|jFD zL=6&rf_4~!M#Y}RvhIPyK7aB?3>jg>sC&8ch86k%ILu;e-|y{%#Ly~=hfu)mHnK;* z#=-f+)Tj*3q$OpG6mD9i740Z+ht0(Ta>dLAIpe{LA@u)bm)zSNB*5u=89er4k0FqL zje|*K=fE2rm2gHQp$KL7H-?xAC6_Sp!h!=cjtE9SIk6Xh&tv2MVvmrMRbt15dz~?d z5krL8y*5W^E=h=;#typC0Qk73<__n!Ov@4dA!J$2}Xh3FiEx`2~3eNh+jVg@)pV7cyE#Qv!Ms$Xbc5Y7pH~qdjRtoOB zi|4zArQo}Tg$dl=L_K{(lCHN@Y^e9Xs8pq^8?b;a&sF8;LUscv95$tpf5M*Fd$-#8 zDi7rr6q##80!hRCDF;SY2q1J4L6W%ce0sar4Nb5xZchFW|Hq(HueU)kwSt}*iJgId z;T`a1C<9e?G#Dyie4Oz%-s~&87M$Qo#tfp!0zYKDcx`%MeZ z`K|KxvT6Ncay-9&6l6KBYdI19;N?WK2(Kp9Z0@UPl^yD?O!kY-y78kVS9$*7-ImJ7 zB2hkTMB9zvgJR95=j+fbyTA3kkblr8-IPcSK8X{E_%g~ru8)%|clD&#f}>--+74Br zl-OEXf?1v02+}SqTI&vez)fW`6O#6T0N*5qI^f)-I6+6 z?pFga)QJZFxa#KQ>X@se@NPS2C{LfF76-9xAgK}yrRD8ne2-}H#Reii3we9 z>z?u3T!p{*f>Sf*f%1PyL&}2eAx*$T&0{N8FW%_)gN`ocS5W!_zh(dcF#p}1hs13^ z0TuJwH?5-GQG_DFIqxV<$y7-#a%i3sZO6F7vEIm?*o#A|%n>Q6g5G}3E#hm|p5Jh` zzxFFwCu;IOL_MRKA{s2$SD`3#NG^hU+C~J8UoZY$T@Mb)0P~Le)ED|D0}_RBp%Sgw zAA4sT3AekhGUiP>hh8;jiYXT^PaU<`KdVEiVp!w6%RE@#V!SZ8DTO{0&(6X-G*$Ph zdP#0#?0)@XBz&b_ihfJCWY+p>)cpEybLWYd5ODkcZFj%RKmW5p0&dOn*I=1{e{g)i z`sdQm|2XUauiy9E?p6P7W$Tij!;O$s30C$2Lx5_N1s)W!RXxnHkOD@Na|(x4k!w*F zNcq>3KZ?nCO*hs%`sH zD8@x<9Bph%Sc%dowCj=@LUs*;CUGn3U_Gx&sChK0W9M)X+i?4*&!;}>Z9Ip!Zz`WW z=W~ZWq88 z6`VbsUJuY4{nM>TY_FAmq%68FGZO_fMU|quj-&fGg?t`p`4s7v8(u||JemaD&R+$M zyDJ9C29QJe5Nab7{3BjEazAG?pGLfS3gK>_d+jzS*hF`>NRaL30XAjHelctX<|3P- z6KjVuZ4j7(?1<$RwNDa>@xj*ovAdb~CJA48{`dY1jm?4lpp z8~*v#T97hOJjURlKBDPn*52XRc*M>2DM$1a4uqYnGTb*B(rqMrQJ$6x)Wx_iiYN^= z8pLw>2k-U(Zu)yS)GNlLHmH%V$+5d}j@PYAIDR|y21~dsMa+25 zh${xQo^v;3gt!eZEh^R=hp)!BNqnkr^tq5WZpcEbwXXGe3yJ8q2|P#oGL?qMgn#9Q z^WJmeb^p?u{iGWgYKTjazrR#6hu8Dm!!@tAo(nvJr4=2_>A}e=N@#0!9_Ox}a`7@q z>rFgI9vLv5;Ss%;#kN)|*kK4sJ#sj_OH)jHCeYDSdJRwX3d@*)Cwg&3WUIQxV1U%E&fEv)}-0%%+(R3JZsh-Z%> zr%_>d0{@s_GTLI|24c#&kn3<9!uwO*FMjcOOZ~%jV7Da9EVE~Rr)q)|mgz00**BL0)sUeTjs;I)%STxvR1F9b8HQ+HY z(Q2dPlcXp`k4gOG`Mt8A4&Hye(pLt&#Ex(IP5;rA{#C91-@j`A(vYRoh59$el>M)n zj?#f5GN_b^-KeZx{27PaL>7@nk$5_qSS!{Pic*TQUFBbI0Y$`84cSHbD@rc()(-4< z>~|qv_X-vWQ48GlVtaiz(C#lme*koQ(=({Roqs9ajP>d_>HKp zLu6fWL!dCLt`C~~0f{{QEH}!M@Ix{dIr&HuuQ33hgR3vfUy3<|=GrCQqzurGW^6ua z<(pqoWg335y8b;s%?m|`RMjGYQGp^AI<2>^X=Pk(psc|$mI8WxRd~;|m$p5Bf;g+E zPq$jFxH=z(8ZW)eI)C?6iVW4KY>9aU*GwyfS3*$V$CNnV zFl_I!PwP%%y4%DpYC^l5B@EC(KkZv3wB5(5HZmt=DYz<|oyt*tB!p9$1Fobj76Lc{ zbbbQV1MTWq;rQ5=_NrQ`W+Tf9`#KD3U|>^)`dWtPtn(6TL((Luu2wYlSCNLo`2|5? zLaq5)nb+umRT}^EtW|b;f?b-4%KLP~5l8DHVv}7a_%r&tdJ-OUAF3pF-+rxb!~hs0 zx+NU)wJ5VmN;H?KZ5m_idIxg3P6070&12ieUP<~|sz-UHsn~{oCdLS0Y|XR5iCQT- zVtAQQEr{a0rp4`x^eC$3+3Q5@2<3Gd6_~(KTW^xjrI@vnMOQ6lQt?T0jNXdVI!`z}8S z$871oi7)ZSzh>5n9LPouWQ>uXp{=ZoJ#voCeD9g5O+qP{RuWj45ZQFLgwr$&d zZFj$R_x60du{*P|JF`165mgZtQBglKDl_lRbI&=~DM+PA(J-W#y52+zPI2NH+2V#) zmv-t>4Y$?UyD06#YFx$%5V^dTBSY*1T{1km6?DbCF2W0lP<->v%e2EEH>3p@PNIlI zqQ4M<=Z?L-Rcw6FAh4?!Jj{z^(g9>Jb@7m1Y}{b00jgF^z_BS@5Orn-C!RTWEd^9I zRR+5mzTxHD$Ps=GuE0&w2mWv)x`JNWu5P!tsNmS61@6_7i#s&QTpYs|6VE0I&z7;b z*tLHdB6D+Q@YqXj9Vl&tDWeV6rpmrZPj#S18d%1t%9URgO)qd@+3h5EjoQyitD5zl z_xIUj{@vT5y-WI;ZkE`bL}KOQvu>4TQQL7jwTCP2Rf@=OMQ~@A8jNMV0j8qsqYE;-4sY zm8xa8$bd4s`%GEgeK~CDX;%iQbOt43Il2VnE|Tk%DJFfX&y9?F&{?FN`4SpTh9LAf z{`x(0cRcj>4l)p+8=)Q;FdAqgVxyPm<|$B@ULlOfpaEtH55q&E0R1VMN4&qPiDa@} z;S_trKbZu~`vW2=9Z?mc&m3A0D!%f`{PB~JU36CgSQr+Tm1${B0a;iUmX&#FOChZ! zk<$!GO~^h#ahb*g1gS`?Hc>|?LW;u*c-{avM)r*ktIhnhFd=G$F0;-2yf7o`58c9n z9dH+MpmDxHuoO!3mTbiQ$ugLaICnp@^E`CphPtk{i=97XJ3uDX+XQ}dT|Xc8bm zt$>_u^Lii1wd+%M@@@nsONQrDC*e!?GGpjm0QST&3#~NFR z>NQOrMa%Kio?Go!O?FjTUv*L2GaNV>Gf%P7Gbr^`$kiCfZ+dewtNB@v!s>q|e_3k- z=}0Z|Iu_wZqa~5IkL)il6`X(BGBr zw%;oerpNU-TazZ&<$7AkNSoSXQRSH6+{18e4LOVy$t#X0@i}Rim~=E4@Z5SydI`yLptk*qJS&q@Yc20q5kwX38zCiq#as>YFMgsb70P4rA^!;(brJs|hrj1<@2f|mbp24xQ z)>Hlseb$9!_g1d6Qe&s3ryD*sIvHduNRtt=P4mXLFVM-bf5AxUrvfGO9}hfJ|9)l| zX1HMJXdp%$*bn6UN$xM$F-XiN=b(8*$}vTInNmgn=%#i8qfkm=Dxy^PBgR-ds1+xG8|Y{6lVng~h*;h~D9W1mhV6|G-Gntj1Gh zFl$RL;Cz3|>*$K{yFW01;54PKFhnyyl)n$zqX0Uq_LWJhFn(KZ4*ReYf_X ztZH|l5AaCsK{ui(SjX;pO(@(dGkJRe@|hT*4c;by5LjWE-3CBR`G4@>!L~qm(~qG+ zWb@l85x^Iln(7fMUIGH4GJwvU0gcc|5{v~ESHC0=-v!g6`A6Q>-#cY~pJ?vN5TMqt zQOu00)5U`sPQG}t<)!(54@(H(rDq7_S6wv@L{2lX`Xzlrn*S1>jj=iXdG={3hS(=2 z+U5}in8#8;1~OTOxu4W(GL=aJIB09rucEAaHKiF8ko`NVN-}Zs=>Qv{;QNhumwd;A z6zOpP_?!+Vz5F=Us9!-BkywWyXHluEiE;)d;((_?zy$JS`7$KJ5(iY_nl#`ObyGX+ zwt3KLai`PzQmg5mM%xpGw(AjfQ$1Wp2A!~<9#X==2Pm&GP+*^Wxy!Uyh^0B~UBKugm+kQZ+)S4~cF}N-Vbbh*Rh#RTM&8 zcy@O^Y_y0SdX?=>bUBbj3-He@u11I4IM5I{(=3vPYi#T|d>{dn49c|*kob|A;>C`k zN-Y|?8t6#iYc=^fGxYUCZrdzv8@=a2PyJrcWyJeJ;Cm(cH8u40MQ&RiZJXWCi-x_P ztBCiN!1r46Yi{W4_uRId>GqUXcy>q7vE_|D-DYX#g*NTAkN_#31Rt7CpInoL+)2e|Aj^#dURgRR3e?AIS z1!h()IFo5Ro$I?w9@|#xx`NwNgXL+luwGEm!rRxFf7P5EhFN;IEGLm&Vy-ydS{_q`Yi2;Z zwjnavt}I+w(j;8i3jQm1NKV>=%rxUPx7b`!mh^WFL{7@@04rr$@^sjWRJkM-tCPYO zv!=!3ycRX7Ti+K2>OQYH#n&2HpH6iy(MZ!sYi-A>rn8=4>;33wf%pFQEPvowN~b}E zU0E^U@;hCbPk??|Nytj(URiv3`Q3sjb(z&IbLen6Z^w~U;3|;wA=W|o9mf9X1!kDlLb+`M@Btsp#bkhb5*sp&ytJ8VRwCF#1j1%R* zm&g3as>FYd`~8o-*T}%u$i&*(;D0slNRp4+U_cnYc}2Nt(NgKht*kU}4b$~Bf7Zo0 zDQQ^2EW-mwBkb`qX{s+5*wm(p%RTx0Bd^ULoL)b8!b)lo#}H#&IOqt77W}k?mWdvCkAAetklN1W8 zBp}=7dwWS4F^w`gDRU}Ldt*5umN^7wWmcQv3vbk%t(HDT)st+w13-s-Lj^$b`^YYk zK2kN3SbfbIr8rhXbRAPv7V44^GVA%*?-6Qshzg@Ej_DrK>FVr+Qpkf=d(Z2Sm|ihU zLuPT@z_NtlJQV5v>m;}P53Wk4d|tMkCR|PQ3XCv&LrM!fckuRo9VS19#?Q9$zoWXW z%{wAOGV-`zE6ms;$UR{DA4*LeNjy03F3PL1hE5Q2H>)FY*@I($w{eaWSN}{5ejdB0 z{Vp}P?r1>SliuOt)w>p^H5q7~q}YF-Le_RF(OALm9(XzT)U^F1-wQAex3xjKBkpGW zFy>M)js8BGY8a%Sbb8tSmk@k2NgkK>gGYe<8{)_R4*v@LXF~A5nFjxY0{?ex;zC`< zo1(anx@;AS4@D3jkgYSy<{D5ohKP;jERmQzw(46q{wf%!=K-|XpV3DHGue62JHoM3Ar!{l2MarWy>(Nl4M^8UoTf(3B(`HB2O@-y-2CZ59}h#N|e^8lf{H{F;b*6DpX2h zvApn-n*M@R(dUGG-v0GrdUa;O=Dclphv3?c78O|7p>AwD=ClbFwue6$?%1%K%ksXd zd6cE&1m=Elm4!i4esn3SdyAL$(23{8FEJapHErwzP>*9W(uF4gGbLLLKV7bF2)&Ag zddDQ@6sa;D_onKOD772L6sE+&xitAWphJ~?9q zUD@dOaL$|BltjRZ*UI=dR1xzLTP}50f|;$eV>)Cvk}^d{tQ|&{U-Uuyz30!67Pa5t z8LNphO44FIrjR#{5nUC+!xSk3wii6zmE_BS3e<5T7{*vQc!#&Xn@xG#5 zI9XedZ0^)5*`Ki|<$8~;+lEcZWlS{-)_X=>H}qXLJ;imU&M?#Dv^UAkhb$b7H$HqF zgw|Ow_GeV~2#`~0VWdGqkV-I6?jY!b9LE}MU7so-lQFpqj%h$ydaLV6ZRlJ#y}IV8 z-xSes!gFDxtVPUiTGlA%kzR|my4twEZgV#!g7E)?Px4o6rRM%1xO*`FUP$=Q?FDwW zwkAgZGayWBYdHN#V0@qJPA8&{C{qrJ$!VptCXC%osgvrBXD@}RQVJy{421x-{T&Y) zA9h>q(jH%;E|H$j zRBk$-s^(&^qMNETGhKFSIuFr!TB!CkQR~j_OLOy+A&53_76dI^1>GJQP9*~4H;^0$ z6C;;rUvOjV;E_7sq`P(kfxoqya2zPygjp_5s&pj(2DrIKptDp8Pt(vjun9IwHbKIE z4ZQ`~*=h_Fb1>lPAk)HHjTvE$=umpvK%KpAkB8`sIq2eG{=_(dGv zl-$cM6hP=1b{b*%uJVCu1BClovMPmynouj;?m9Tn{zg7SG~&8(f+O6%WIv zr3OF-YK?htn!%7wtXUkMV^8qh_f(7MX9R*^s%0Ch5NU|GM5&u{N-*3ft2@dv4GqgA zswiad3a{5Q1^j|SH$?H~z3!gA=mD@Vq&5n|%-8~fi?8L43izlMoCGruYPeaQPDgfY z3#MN0FYaTS*^|{z><0dz$fk2z5?cHyJu4JIp&9{?pD4Qq{vIXLZ zs7u7c?-MFc(5mO5$2WjRZk}P7EHlBtD0b&Ccgr#Gj9hD>c9D-;?)UR^u`b$F=qa7a z$;q(@1_R?;ELWFv&po-l=2X8~vi(g9f^q+z*4B>9l6H0?(VVbNit}m;@dAZAbEZ^VY+^UIM)XGG%|EGTR74mX47 z%1=)Z%`;YeX*QGuztbSMbfI= zVuP!bL`!3|)BTI_#Bu_{6oULI!V<5KmJl;?sY0ninbVHlJ_d@ANWL#Q!c&jy-TuV0 zq9|6%B2jS!n1W$OwXDPDUFeQiBjW`NIq^{obc?4v=aG{z&GKDnWq*wjI>0gZ&jUIC z>^p^8_3~M* zS}}l!@AlGNRps{dqArHw$SmN^E1_X(Bai_fqMbybbB$f`+Pl;c*V&}goR}TJn<7Cr zLwpJN=Pe@{BvdpUOB~UaW0ENbmpqLdZ5=cgs<{iix=DQm?^0g+vzf|}Rq_<@8mNd% zLEwDc!2KRZt?4v2mW}$-{m1=jnVE0P-nHksEt`w0oDKS`*FihN8f^V;l4lWUq@pLe zt;sn?Z%O*|F@-G6S!!Xq01S~6d=;JSP>dMJ6E?C$l{x*>hwSABfvmCpW{7GBDjDvd z5ep<1t^*G9&Nap^&!B*C8AKBT_PLJ_-53=I#eNm^v$^DZ7iXsqYq@4ET5ZMN9cT6>XfdXe0?g5>vP$8kuNNr2uv&W_zsIe&xYBuub<=juy4YEpV_b2u zRGUKl@XmQQE9-5~oeZtdrmnZ$CBWZ0hNk${V$8-D>7%@DP@d z3iCXMQf)Kde~Q$9@gMp+C@XNumq@mM`E-)tI_1eGTAq0=a_?_&#zXmf%(JDMp}E}W zd*|C;{`pJY>DZ$?MF-nW3OJ~u!@Hp~69T@*>4a5z$3<$n>{ad7e&23s!ezCU<0v zqt8~flfg!-4YSlICdGjuHqz6;(7~Q%%bmq_1fY!yDl}qxaMgUYjFA;=Kx3X!rkeI6 z=GvY0&xn5;wP$EVH*i@Izi-SmV?92q$>3uN@v4!ZA4}?}Uw>WXgu&ZN5V&KT9~Q7N zJU=>f(1xHqC*YD$jW0;QGY=jZzJ6{Rbd;Rm zkhulIM#I9^bjqF<=v~5LpfOpenlMi-WNqPaQD9~bHjpi8F8zwm1oiiropd12V#F^| za3XR&M!Uynf~O$8^8s^{5nFDEJ`9@u0nP-r$8vZbkN6U3*OgA{}d|>9pQ0R1LL%J&)k?bYz?3u5#Ch z!uk;Ku0rvUf_u^m!RNUl>~1_)(q#Jch%1lOomd zHJ^#lCaJ^M+Bmr1UcFmY{#Soiv@d8Z1btbp#%W&=ssN1lB^Kz#443(?UrtYP(gy zuB28S&tbL|8{I&s2KpRCL)BCF%_W-aHDnB+&v>bs==zwS5Mg9VcXjHza2xa-?(ux_ z@Ob4 zdpR4=&C7P93(IU1-Xc~wDtTp+uM)%%Pv+asY(p_P#(tTJX zNg)z3tVwfwp$Alq9;%ZjV`h?U%3|m(DQTUa?_8d;qgcgjkl%4}xk!$S@^{h z?4&*%gsn$Z)a=eu?o9>8+=@dozAZmLO_fvY&L^cUjoxZ2=&>i( z!m?P0`BwEP9{p6&IXzq*S?Z`qB$HB3X2+vh9`&*c3&sZ@+r}rtjC8&d+e1LDCe;$P z(%}XC?5t8npF;lBHT~9GMrn3AL#=TKQ1-R4ny!(2zSuCCJD{=(H%9WJl8a3oE={Z= zhKw3L`WucA$Rg8DVlP@pi&X52njUEUC}B{D;mN|sxe=RCJJxE40cI>_+iDcj%NzxF zE*CMffr3thSSW( zpbA9>X2Far8`EHmkqtHsFNdc(5RYE1We}uR)rr*&gM|^QSpeQp*EAZ@%tPu3gql5z zvo1@7xQllKPgJe>vy5aKa~5k@=Q~T)LlQfT!QhVW<1Vp8K{jRc0dK&CjGqRLMTpM| zs=!h9Dm*H5!EaHdP+Sm9UXqEdX*Wr$F(B_w7m&}-YnDapt zS>(%M(Z|hTYt-T`i1q3=+$oc#v8QKt6g(@ zIVNg~A2rnlec;=dF5!1eT4wD$9i!DMWCcO5l_t*jZIE#?{unr+Xr{HUN?NfljgqSU z)&b3CsU12r6LFDegTnn_C{g|VMf{Sg2QqkZ1jL+k5<)RiE?A{QbkH)asWD61H%tH( z5j=P$_SD#^)R)te974}R;eWs@iS+GZ2M--?eUY9Xt)8rLYDg?ru z!CyIP3@0*c)8w-y7vi3h% zFrm3OcnFcg3=p1znM2Bm5dV8eWjLMdfvXEv0O9mD(sb;`-x!N*MP$j?i4c zll2J3%?0uVM5^UAnL6-CwERjBCO_rKWXe;*kI$)6B|v3ytF6IfvMT;a9bPjQ&Kr7# zC;Ywo#Ynt^Nv$Rrhf2L^P+ekKJF;;oFA#OrAhywJ^yGtC3weoZ2(_CSI9=!?1xozT zXgcsIrinWS{>b=pd#l3Ilx*}wr~D7C~oDilK)_6QX7;w&!OP(RhV%e3O~ET5r5Vhg8mgH!ro?5!xWA17nO6vf9%NadB}V=-PNEax9wb&{Wb~q(anFbNABFP&qxS!WH3L>EFQ2r?;@h*dly{ zW8{^uwTN=?Ves2#ShUq@xj^4-`Ms!Abc9|sC2AUL>w8aR)}UJAwR}wca7+c_rkxjM zKbEVC9rl-oZI~27h)<}!>T&~f!#0Z(nMZw6XIUZdYd3?I7{*?LTbqHv=erT4^$7NH zz$cuk4}eW}#V#!tQ*p~Q$Y8z}){p`k2Ges6ivpR^5IjX&k<~`xLwF0EWd=5ngb~3= z039FSnVIGl@0Hee$8oD2um_OC5Zs@_0>;Jy?El4+@!j|!u{P5#h4 zVnwpq0iGIW`ZI#bIt*fW_n0_%cN4yHF@BT-dUd#7l8IBo69sBKoP+cY7AP$PAAnS- zB!;LJ3tlRR#MMZ@B)<~B{=&A#U517`JYQi8SyW9=9L9tTmYyOtj1D|z*2A=pY^1Jf z=iEgvmVahCFyro=#C`3;@6K6Gf&=^Iz*wDj&=u1U|J8s2GUN>K#pVj|%;LVz-hI8s znPmdwL)JjsVV5-!o|O1XcD3y)(~!eH1bOvRwtso(LJ_=xtk_N|Y}9iW(NZOb$JyNf zY0oW+G zlYO%`HV72GpZ2##h*6HBY(2fOu1T?iomr{$)K@c51*xyDdSLHB+#8-CYtG#2wLKN% zcB}y@eN6dkg)LM>@mXD}3Y?b^4}4Ktnb%fSQ0Fb$0;P}&;YAYG5)JDjD4=A@_2C)O zKWCj$30K{(NqU6sZW*UqVDQyO&5p7F+H&4dtK{o^Aov*SWLZ;jOmb$q?FKll&d|Z4 zp7be0Jm`=pBmuf~JkLw0xfC_y%y6Zu&0U}kFdHH2(F6%O0ZN;?I9gX zll7q;q5UWyKUu8CawwRw+%Z1t*psgJ0RS)%Wi2BrQKJVVmv(Dt`v||ukU-k{M_A-%AF-Pepm(O*UnsD&P!Nj;m))57h=*rJy zSMefE-zUlqQ&e^0jeO}rfa||tnRFV~#$EPINMsLt%H@Hqx4WPs$ zU!;6e>VCDK?||qOYx%4kzsE?^wXFy&c4kpVnG0!n#+p-AQBU>1CK-3gsnzmMub=jR(7lSGoJ0m?Jny3(+LAWK4(rs*1TsZLdu4m>d zpX)Ww3OtsO~b!Oe~P2Q$^VG z&85m|=o&xJ6Ua|Rx(tbOkdKZY-6YdAQCH%gagO6;Nh;HmmPvDc13ds_Wtav9B925g zE|vWamOFM!P;C#Cgn~n8Y^<)ckaL&4&#dQyE%kiK1c#P8Y%BEEkZvMELQzs>U~9M< zPV<=DJL9ryM3sh?Z)~yYQP?xmR$jRsX&C8BEq|jvPrN^Z?iSp5n$U$s(t)*^h0zEq zP-nZ$`(;aFqA(-Cs62KF z@qCqqsk))iLfNiGD5bn0g~b`bNlRIlz`4Xfnp2$Rd@Hjlw-2G#yib@c{v`jBOrWBo zl4hE;U{AJ#l^M?;2&TQfI^G5ht3HXekpjpmcfuejWsy*;B6)w*BvfQVz_G`z4#z>P zji#XpH7i0+xb->lWfN4lpEf65EZ@%GoEf z>JlD4>C*su#jY$(9ibq18yLybY)?)(AStc6W#n%HOQF?fkc)c+KJq z9LJ>lGv>uhy0)^-D7}R+B(;?0-M!c=avddLCq20aDXp4gcd-!o?Y{E~WR;%wRde*N zi${_~#z)JmqULW+O~L9wKMJ*dPE2_#SPi5Z1eS|el~Gl){eh{nAyN~~BRcxviOL`f zN~)27hVzgd@7m$pxE{Amj-DyW%U*KCgpCB(;=IW&sPq##&ch=dJrC7l)bL*p%{} zP7TlbOgC;zXHN*7>RK<@0OuCl<1VlqBhAJn{?G^{9@zyIvd@@}APOCNr3KR&aIjYZ zc(_#1jn1Ep$(iwG?42aKVsCY;V0g(D7d{?88Z=*uTSu2pSCT%y ze(Xkks94lpEC-in=@lmuzT8E2qsnWJNf`3Ih6A*Rb5vwU&AKE0HW7wh1QEoV^GL(5 zWmH-IIPxBW(@m0rgb`WaK&+y-lX?My4dmcmP<*l5{&z;fV15=^utJFse6w^pGbQ*q z2#93piq?z=Sz*#|jfZ!->O|eGu5qCdDv~?D;EbtsjP^D{)s{j!@b=@2OjHKdU1sSL zi^v%svemyPEqQq%JCqaOL~9aFlIYZcRX(%U&U!p3cbgR=QFx;Cpll0}mXwMlJoR3r_1a}8N{ z?|hxS=I0R2elSf=-+2lp~j9kHTsKYg;Ha3O9;%QB~#n=@wN`$0$9VFZQ~474V+pue^#!OAGZ@oo6g`cOVXyunEU&q4uxFDzOul zb5TjTRboaWnsDhHuYZZ`v|B&&m}Rs{P>-c)UzU>XCrE8gG5i zJmG1f@KWA|Asqe|xR9OxRpxBb31GMZ4 z1*5&nMxF#m?+PmYG>KF#zJIVBwF2mqeBaK(>wuJZF6E3^57J>^aK~LarKzcC{db< z?%apzcpxn7(?ti?4M_+Xn3EyVHn?=tl}4>osd0B+@8PGGG{9p+f%A5gD&*J{@21a* z9rmScTzYdd@GviqJirx$=*Lq{R|iC=V1KjlaEOnLokM#en~@Z$8}aMZQ?|<4**`B| zzJ#bH)A%tKF4{+!`LGx0Gt|Gph1j!^6AE=o+ z(;93CJ%7a2Q~>lsemE^b_(V_}XZ!bGNvr6+1=299$>TYQ~lN;-s`1^G=d~->8NeW!V^cqvMAX<)U3(IF;kkJP#V%E4)eyc z1rMo1h_*hAfr>HAra%}P6_9Bu`Sf~pom|FNT=ZxmGMa%eV!1+=i(R#~=7WTaPNeWo zC@>2tCPZ{m#gmCE4Ylq&$c5Xnsv^PS_yF@Mc>HQUC8RZUuS(5tu-j-<7WAu z-Z&X`+fv%8lnwi29+~CNCm-a?tz^F8?pdzMkuOu9u_0G_yHme=?zU_R1-LBm;=vKK za)AgiFLfy!f(X2wFYig(Ju6m!FCt!W>p$$@{qYfj zViVtya~AL41=LLc60P)d^b_(#sc`|dRBr?%EzshEi)xdaSv9Vf zbz3Z0==fYv5g78lz|J(=#|{Xv^zJ(w zw4E<>FwQZ^$I6`-FMy?gq3;F^UgTrs5(&rXv9KJ=QL2w$swb7T6CSb`LCbgfm!i)# zFXBqEiH`;TZoI>Sy)d!7e;ER&BZpEJA_WOt1=(sUl&(j5z0>J*x&DK zaW-K%6K^R|%1KOz-V&ctb(eXjHkjIBy>jZewMsRtLQPaiiDL7g#C#r0Dv5(k!^J)@wtH2AEM4(R_0IkqJ z3Az_br_eG5*T3q!%g(>4XKJ>Kfd}Q8oi(oLTc6;I%HAO}rDT8rbMVS4`gw8gk`~|6 zy-UnimO&tk@h7G~8ATrm95R;m$jVr>fn4B52gw_}KvS(09MED966t*NfutqvG%i zB=3$SwXq_+K3A|?WEA8~@T26{`U~xCegpc(#KuX&K$_{pg(vBZ9>z&t7QUZEdN{4B zDO7Em`e~HU7&J$w)U?0Xy~#yrYFlKQPLmGm_Jmt3UgsYzI_QHN?$#{hcq(ofWA>5W zxA{BUC*B?jbDI`aC14sm4oE>%0n!<|hP1Eqy@ajYJ>Z93PQSE=<%WVvgZ!D#nGk&C zoRQ|30J@GZF%tVE=E0(;C`T6vUJD3jozByQ2&)Mj*IZN=`E#B(sIg7->l?x1^f5I2 z=$D=FvQU3Kts(;^FFdni?f4pepJFmy;ySi%p&Do zw2q%G2y|29T!nt%J@R15p>s;j@q0JH{YQ>C-(}}Jk4yU}k!6$H9`G&PKG!|{@DYtz zkgrMQWH(w5JJthef?(Q#RCO5_BN2sO)oC;{6gvMA3qdMd@LsfOWg+^ZVayY0d-EX@ z`Ny?(*yi+Sd-$v>4eilhiw}wECQ?o9oQ-#dGTV(Ow)%Us`viA~^k`n=6<584b?YZn zt`nDnD#7PDP(Sm>a!z?*d~4y^QctcRc__ZO-)#NxR#fr$b6VSV;2xS5jKrfZ(|EEz zec@T&lKoIP7=EqLXi4l>VVR}F&{N$>^W+|S>buwG$WcNQ%hP;2rR2=9wU z?6OtTJ>5rTsI?ou>xgY7r@?LGLMaOTYFCKms{NCMj-rQ*3tdO;K8eNOVSgl(wP}FV z`LwrCT_j#es-rN`sF&D>r0?=ambV#aDm-e3GJ#?0o0%h#oNqV7l*o6KC16q9{qMYK zd)4{2>KYRb^CL=+uc`(w`H|Xh&861|mNqdwFi@vOUb6KJ6H;-ovR60)ILzs~KQBKQ z;GZ_RoR4Ls?_3&(Ml%xO?`8x{qK@RWZO~Up-S{EtF_xBE#_s@k&IG_DRi`&G0ndAq zEt?X@be&|DEz^=~^ks^I1os@o5oPu3B+|fki`bsC%jr&Wx`#-JQ@VqQ(+LkaQj6a; zkd%gCQ3ybTi?hkd{qlD#=r%tv|1lqq6&?sG{9pyqEe{F-SR{`pF}lT**!MwmCrgj> z(2j?h`P>!23?R^DgEr;FBS(r`iLxmy{1D7-bbFdP-mMbKUzVkAu1QaPGolq-#HT_h zjX9{5yl#dcL)O^SSkJt!Gtjjd^7Bc5Sw#mIBH0=d#%Gb7yV%s%k7PVyz9lBC+me^WleEyJz|zRYG>3%R(F3 zO58Q}g=Q9!GWCC=D1~T2(q4RW7o`0?Qn}aLNW0zS@NwuwciciK`)z^%SH(wmyql7u ziZThhtangwG}qwAE7i^udLtLcj-g&yf4y(XV|9|Y=YYD{G$&!p>bm>Mk4v1ivalEt z^birpaa|5(gmbBQ$Bp57-pq%=2^Qyp&W8HKt=;sVG8_-2Nx0s<+#LM43m1o#{5ZpF z&jAkre>nxa8VfwJE`O)LGz8}G-Xh|j*9W+Wp&1^&e+5D{s4Uet=`^qS6r%A>U$g2X z(v*8esM0Y1o#E|^ot4hAIkJ%(?xlR~zS3;=hfZ;-)ZQL%uRkI`(l))957aJhjo~P} zb%piQw>5~jJ@KWs|1cpfDj?u-oACxE?-80`i&5auqp)yQT+L^H^pE0#Za{Pm;$pyQ z_X-nq28_)jXwvtzH!B2h(|O%&&Gmp5kIK#tCiugXo>eIfN?kDMBxlx+_bN?q7) zS{+sXqOH1GiO*G7(7KLtRkUUF%-)%mli5Y}w_RUuA3?miOQI~l_L^}W-GeHuH6#F>4G+|6uYQPbzi zn^yUXpsGt^-W8gMTaeiGJOyA_iTj^29c7Z<9|2Dg+4dO zYQYBpxc#Al|KHtM{!f@>iN%b=`$Z2a*wzit#tw8?s>9q`AVq>gqM`vR6VZ7L# zp*0NVQD(9G<$RIY1atJYNaNe<6MAzW61s+Rw<&TQ)jNiB969eYOy#CWl-q}#wH z2}PzKy#{N`-ZCc*_f2;OJG~`uf7O~$(bNr9@F);!EeNk#6zSAZ zQuRr?VPzfSaGqcuNpTabQau~N8RdwT6p}ewgQt6s0A+84n3!vn6;N5?57`i*bW~L6 z^CYkpRT_SB^`Op?ys4>8(>5a7ipJQT5NxFF(Ppb(OY(>{t4HeEEv%x-ICIA?(oW^g z!F=OW8tHsmyY;i|tOfzGHW8y!&h2|r#$>gc>M-pHdix;YzyQSR5XVx2Ui+a)3u;^V z`sGa31s>^m8GO*Yd|m2gkIk4-O`@i6BwubXF)X9R2U&#hK8ePE{&DOu^%hUS`q6&W z{75kWi~oX&?N2`l3tO{)rrK}iN!uU>gsulvFDZe_1uIaSlE)IfH>JEV3UF{VOGubT z*=36HUUmN*4nQc`O=$30CT{K~=_HzCq$3_-cbr{;u|<&3B4N3M0<(E2ojzJ9L89R0 z4uT5Zp}D5prs_f&BKU|n`xIuqh2)$v8KR`LDS6k5+ob3S~5JIhboC0(WoK)c=`Cq zu_^4_OXN1pbp5u1U@=5Fw(oSe?+$@Tt!5q=MBmWg9avuj{IWU^^1v?NEKKGo>qmK& z?zv{=+C8&SLIq^^yO8J<)UTFJvr^9!_l`4Qajwpok2+a7;bY6>&HxsqBQ~q;cJ@9b z6}O%dFAiO${+dH%zv9+Kz-x?LhH6p|dJlHqk+Ot$)vSVRMgGckowWZ|`f*yR5w{7P zj%dYc1?0^Ao$(n18YSMYhVUO4$Y;A}w zLonmxd14C;3F}Jw6Xef}cdL_s*4B?n2~i{a{(Cv&64hlqK^*Fd~Vx7G>4J2s^RZ!L2Pxd%~ z0`KO+EgmoAcj=FQbOc2Yz_t+}^za|aMCHchrnx6OrO7xcu-r)u_D8zDKgO3 z?twWO5Dg=TV#~sZ#eN03*c!MH9)YR3Jb3x=%-(=VS%@!SeeZOt8A;+84qvUrNfcLi zNiCZqI!oPi;Vh2_i>saeF)qbhCrV%OM&J8IA_*+3RKj8eJ;jacp1u@~_vdMuGlDFs z42{tCMi;NdxZ%gSKa?4%DwahjK#HL}PYN@3b=I-T5vgyPt;OSKvTw`3y9@ zz}Gfd@Srw7$ck+$w7#~#Ma)C(v6>*&72A_;!#gl4-8FZO$3D5{RXX&EtH$cS?I639 z*2sUO?VX}D>$YvdFf*(S+qP}nwr$(CZ5tW3ZQFK41}px3cHMfZv#Z^6TfKhk>1%7Q zG5Q>%;}zKwZcnp{9=PZCM;<9Bl22a$)Cz)5WA@Fvv>|TUEg0qLn&B!^kHXU*qpwn0 znkl;57JE(UlbH@eBPrQx;_;3dNKD$7z10g}E{elSy1~o+31$1_^dV_tT*V>k%IcKb z=p~e3R=kO~BEs)MUKmJ+o!Q})rssXqM)PR? zn~?{`)mhoGyTkQ|f93p$b@;eA{3v`hen^P_eZ~KuecLWSi9e42s`ti<(v=%O_5NM; zXMmG*XwxbVY@K&&wimBS9^2d$KGaB@uT2VL{^c3plXw!@Id5iCjGjK;foB(J8`5Ps zDH*_t6F~!U#Jx7HKTCm)YIg!`R)-e`e67Tq+gv|Wrt1CEl%Bfra2vBgJoz^S zmCB$GU5TSG`veegc5xHquPbN9HJ-ah1_ETCzh=;`@7Y_Kz4!A^JqsS0{oM~gb`G>` z1UlsorXB#^X3EKs9ve`vp^7 zD&Xdc_5|ks55gRsWpLx*Xok-+Iw23?frXGDW*u^o7juG){K@6i^)-0Zhh<~bt!mXp&xeS6tzJ-+lJ1XL?oeK)uMlK6#jb=01I1i{U6PN| zZ3qb!O^!?;3~CZ+_dSBvirvo}b_Mrfq&!I*qaYOyY}qxsKpPl-6^CO^47qW^FWH|@0`tC*5Exqz;K4C`dZ>wU#Lwkc#k_f z=QXccY3a>LF0Uf6Qg4$X49s^d>UY)WPVrKzrr+xF7&T>sc}(et%dXAk@9wyqBmycslH? zx`rM6UY~su@-UFb(j-6G$dA*G6s|<0(P*_P7iVG7X+H2zm*4vWb+-8vT?fGPI!6wf zYIy?smX8rKNqvYxO7k}%OrwO;Rf;`b$OceeVqE$j%c-wm`ugVk~Qnsu4hoO3aF)xsofvH5ZrrokkgH6|n0 zNT(1mWg-!ZhNM5)z>l}L$Do6|I2|Ii#}631p|TA)clQQE>OdkuM_N4V;M!GA1*=fl z%VK<-bY`PTn<}L22N25e=M(^vP-}x@kiE?xvlS-=EtMZ);4+9 zW!wZ~W6K;aOQCgOVhUZJOY-gEI~lZWs8O@I07|yZ$!8~1AX$#)-H~#X*p@uEFg#|e zyU{ZLUJ1u=W!Y$>vy=#2Qc!3?kw2LKK{MXM<~|(RaVGVa+{WH{NqQ^)#dS5YXTz>U zpEcRxL}%;)uISpmzC%lq&=Ri}uCs%l`3u7@))jid~LK!nSdOQ|<;#F5W-;?lUHlVCF?#@;#S%Ko!p?3+k?Ou^N>I z+p#F#sF06sJvJeC9q;qt@>bvtrwmD9Z!rw0u0yP}8Kfovj2gG}Ca*iQ))~pnYFmAG z+LJ-xz?_cf#CITVDdM1J|JbQmYbMu+hwH0$dpQwdwQ< zK2rE3CX=2i61MTLEF&f07uEX4S~=k zYxRj8j^3j*%(TEZIkwmv3UiaF53_XyYvQ5X^g=G8divYHZjp_WR`rEHN8t58 zB7^_$DCPebsf(4ljis@Xw7%WHz-F@2gas!557?x{$R&dBo3=jyCt=%NjmLLzLg;TY z(OBnyP&3hJSaJE{p5!UoTB5*5gRH3Nuq-J}(P2D6CxVR5=`F~Q%g1wbz>M#I|1kr# zW1)-6E(V$IX3Dc22bbCH4BrY8rRH1(7Fj!Kv67+%eSQyGCt;g8|C?$DhHD3lE58~K z8I9i?*kGB!OV`nc+xG~SG{%J9fTahQGIAR>{kh?0qO4;Gjzl24z=d^Os z2rFN%%yusaCa zw7G!hKBYm}C!s#83BOM)?ST#feK6drnz*E~__ceq=o#{Wp0qpA3pX&O2?$oJV|J3} zxh*orJ@q*ZF&#J6p;E8{tvJ#`{8~=b2Fqx-d$|S<=i>ZdP2@Aayk%(Qi(+ZLI#%Tk zrZnO$aOR+iN(0Qo{)=c`ZBjoL+bc6^_prj7G%gw@l<&)rp-*LUGLt9ClH?#NPiG;< zNR{K{I-jlzgOhKXu}(uoDa2LEhq9yI`3a#e`A;W}(()Y&3HK4Bh`1L9`eo~aO~u1? zxB6#9gBS06wwN5r$VT^O!W*eRF{8~yPE+vQaEfnUUvJ@fg=8lW1d&q`@e&&zHkTqGpt- zw+JB#gU`d{@Qv4h0oPc89(9JFu@}cr5ZQlUrMUkmRqFpao&M<)(TdF?{VXcch|1DM6zBQ z5+LOu(u)ggX6@hm^xx5XxVtdATaX^<BouaRk_P|b}C z8i@?w8iN2lJAe2yPQ4#ZqQ7TDmFvOQZuYI*v&rgTC$!b>ATb`LUMIo1ElABFH_mxr zEva>^_V@&kt{hKzaOFfNWQjpmFQfYOrz;gmA*0DxCw!GMP|VPbvQO@*GoGwfJ@9ms zMLqrA?nO`+HvD!D5xS@Vmg}H>+MyJ9kiH@Qyi{94R~2HXT~VywPjpj8h2exvHNcn4Nl`x!}o+ypP z+}=AFHF^ql16FFTyU3Ko$ISw$9Bh@TOhb!Q#fO4Q=gOwii2X88EF{a6&AGvkbbH#) zxVG=cfGaTnx(+X*p#yL-?t5m3@*sGDmam{9lfl+mX&COO1L*Fs~xeP*z43jTnYpE!L@8 zoy6j(#6&Y_M1M3I!u20Cw4Mnox3AeUBUPew;1U!dj4b#DGNX^|YBP$iOznd!EM2>bD0QNxhC@s(fH6aLIBw}>vOntyN`_|sdh`?RHkUWCQYn=`?1K(aA)~MZb)j&?e z;b9DX(CHPhB*7GyJ{LVK)T{|+T_2@`KgsL}GUxaYo@U7BQ8^mBkS(D%A|;e>i}xm+ zw&{eTby))<(6ynoN8$iO9^G2lac+=DuH&S%irYWi=VP3JgcLK)`-nXGGFMc#zcbc+ zwuzL0e4?*@|LNtqSiF!)%l(de@X5**MguvP6VBczmGHbw(vs9yA~sy{ta7)WYg5E zb?OPdHEs}#)jPNa=C8Hw`m&vpoBrj4=2Dgop5I!5EiWDLI(JRcF@G?z*T=VSRV=|1 z8o=EQ_gQQp0q%)qOYJh`AtCj9)qTLx)vM)NUCt1Vv`2N%?$eFe1Z+26QOU60?3 z%|jAEdxqOCy4zn&IvXSj_2{JXTH9E>T9sOI@-xF<=nY1_dDp|5b7J*JGhDNIJA@2P z_hZnlTO(u=LR2IL4^Za)@`gD=vTY1`5`sU-pat)w*^mvc0}$yNbss`{f}SarzXxVR zWbOlByqo>DL#a9#uCDyQ1!#>A-mMubYn`;W^N-JAQRs-OZ~lhDuACwBG-NeUCf;Y* zVLr#%QpiM)79>HTLOh+Yi>n*_8GwoJZ38;E6E1f`pQjT1kZBVkh7aQ-YvYqkC$~;f zc2+OOtK2@st^|KYA+jpUep_B3{}@&_@fK8D*AOgRp=iye^!CJC^3cenqlx0*&k5RU z;3@Lq6%LTbn-kcdf)PHXbOGH=b5?5j$Mdd`~+rh0Hs0;OcNKp3iiRxm68KNFj*7xClG~B)enV$SZ8Up9Mu+SY z)jt`YE zRp1x(&Og(^G_u~TMxU$UpOhBU9PQGEzq`W@W<5j$OWdJCZLorDca^V<4&eJH&JzT% zIo@l4M=~4hyNI-Sr$xSh@B%o5b;8K>($9kAh5A3?2f_adey}!nbo_}>7jQN)`FCVa zw1TwdKU>Uq%43rtgIeO0h!lbR^?>3NhHIJq`6-*U?A4ING#D0RfV%mdQYF4wF`fj|y!xswrL&U=#L1ucEYQD%Iq-LH8uWPmDyFWMYMJTblb~ zW}(UPyIKW>$(^laz{oq%Nm-Fhs$>Z=n7g1bQ%NnGP>SK#PoZ2AvoH?{An&yOxepcM z+2+Lof6b7YNRKsux}aEfoZ3UxP^1i|Mn^4sG!sXInBKCF<;I#^kY*3MP)Ry)n9CmU zqFc4_fdBX*&(&+T>A;_h3P@uiUhszB(9a?*>1XxNdrF>ykx$llZh32a-RJ=)FC?Lh zYPXcHJhAJJ^bQ+Zd5x7c%b7(D5B51T=Hop1c=Y`99=}y2KvjRPDUm-z@&6tN^8cT| zM+?WP|Hqr(v0jTaBJsH{tPs_@ZU{BgDx#&8$;{jw*`6>Fh`qrQ`RfKcp+R~q;Q)-f zjsql~?cq3b!2MCa9D#`(XJM}B$5rsvm5196){Z=~c>e{RA0BQuV?@Ft9Z^d{S!^gw z5}`kn3!JiuKVO7-gs5pGCheMCwdor zQe9`CJ&poFB~ZK;@z;(NGdb!4v&Gc)oppLi8D7AjL&zx7E;T4=yT1qoY~J-gT^^=7 zUCQtI-@@JqpW?LB>C3aQABErmdP_>^iAsPGY9v~ln0^WK2fS~A660J+_Sim8M$6wa z7zFkz5#TTgo7>E(Vu%y9a+``^@!?}s)t5V-MKA`t8_HtEh%gV`B$QCd;(9+|pN5cV zXVp2(F9mcQxe8B69>jZrV80u#7Tc@h@G|l9a8?AS5}3_({R%%+xV%x%+OCfFRlmue zDvJhk%aoTwVIp=kp(l>G%qeaHv_i7v&Q>d9vxI8pRCGcS!eaVRIinC_xH~UZalzVT zhD1|UHS^nnXm${yHCe;A1$8?Tr01q)jA=;>o5MCWXgx?-SJlBDHZtl2!avj-kQ$I# z&|bO5LPN1_OTZm-j?0>dqpCA2Jeo3jHCXVbuIH)mnOR8YZJC_)SEeW}+Yma4N+-+| z0YkLi-@8udInjEQbAj^w=#D;?Jmo*Ku3a`fiouuqJ!#DzE^SL_J%bhjyjvF$|AE8!GWa)fF8K4Cg09782-@b#VI%SPN*lF z*>Z4d2e(g7Nx`@IS*n0=BBo;wS-K^lDBG!s&YE%@ck)71clbkY4bc6mfnP5C3pCB4 zaGhm7(W?K)KfQF*hHBRi5N6eoEfWA2c7wDSDa5SWdEzERa5n7DqMfsRwtKsX|GSg7 zEHbl=;wS#?V4(##nt>RNrQVl#>L;m3P=0J)4zsaI-(hjL zMrOmcT&&;K=XNN7-URw5XVn=6Z3nKj7X3lDZ9YrOvDAIvN*g0`M=iKBxN0%oc zkOh3Xm6`(~*|SNido<DDK!y57G>hkt9VA{;AP6 z8`biclh;Z16id#@*Ii0KCP6p>UnoZStuX9$js+V*EDpCq5WX` zN)x)J3d!60rtYpR@u~U1u1Ft;F$^;;K3fh?gR6H)yZ);;^JkJ^8~-@l!v05x{{NHStYEBf^zYuB z{BKv&chyPimU!pudxH-11VOYd5-~4I)JS^fhA@dDIxKej_P;mK3b{>(sN8D=xF=nI ziJaBdQQf*ff1z(6*08Wf4K2CkXGY)L+7S`nZrdh)yBH4c9Ae>^1(9baLpYm8$HjXp zun>1&ce|EGtT)q#%d;#U)3MmqY8zu;N75syyjgU#sn?>_g=osDA$uzA@HrssDHO#X z`pF&TMK=_)fWKZG-A&le$hyvsZ&K-bH|DkW7DmIHmO)(0-_|s~cmo2|Ny*clVd)Ut zHF0dwY?p@S#t9qF5%8u@wveRJHJ7kCA9B7&O97S8ybNyqzK_soV!w0}2j1WEgq{g1 z&ve_*Xk*hvTqGf;k=fSQXPSoIoa9)Kcq9qeO!o(FE=1OGWN;z^W8#}k>7!6?3|!Gd zLtgYiyc{?aC*ZAezdcDPN%4Wh^|kWM(FD#f^8*)%%kqGa3Kz6_5tRbVf6 zoOBI#UZj6_f*IUH6ZyzDTPDs~t}B&^R+}Yh)B?kPUV>-s<&(pYTv_$xMMbHg-TINL z#V;Ex%ZZD~H8IQWLn_%+6V9No@;h8<*r$ch0EW?wEdwd(9hFT8Xi~(fhs-lDXH=9x zMJm#kq>{6|x|P@?cDKcJu*p<XnfEFQm=#SQTgyOUzY&;{ zGGDOJe)7aF%l_W@H43w->2P~w4_*Pm-X%A*lE=vBcpk|L!(qmbO-o)5l-{c+UemtV zu5PVFMs}4VN@XF@>25pa>*sP;j{e@}+Fu5u9U5pUD! z%!yCc$f>NPgCL}S5M)W5l3ID?)%mgSUxdl&W60q~(IOz>g~O}}Tx25AJjc<90yd^+ z$s}Q*$bG%Zx5*S(965!&!OeMXs=(klB{ZnbHwOxyImFY^GY`+Gs+IIKGM<`cnON&! zBzlj32Nx*~{h?-xekbVJ_;QBD4aGxbS{uY3mzmf7g|sI^8v)3n(Fx+xXlCm*k0-6` zHskH269hTY26-wyT9o=@ActUcHOSs5Ei~g%G9}Y#aav9IDs_zK-pTD_KFIkVmw?Nh z>+6{X_?1myMZFO&NvmX#tXX1y;)28agfMc~{_r8X1pGafqRWYZH5P^0l49)X?owO6 zG@JYIs{Fz5zC>9xQ+(I^a3?w{%M0B?m_F1=`(LKm+;>ex<3CWa{Xb?{{hz?Wf0vG* zJ%;-K8Vy2+s6%NHdt>gG4=tmpg&0$>19@JWof$dCi^mpaVWj_L;t>!hA{V!5UW5+r zVf%K{Zi73{iT%t4sTYSFT$~|iy7x`NQg0(}U;}Dcp%Ms!IW-_?+>3Wn&^T$r3bKrE z4YdU)i1_n_>PHwBGJOj{8N!K~s)PV70_|Mi^EIb;xedNU--`SiQcOu-b=An=vnb2j z{MK&)j8V`u9m|HlJt_u{mM*6xB;%9Sfxd0ZdJhRY5R1CSINz!t!qPY1VuEPOj z=Z~n$F;vWA`S;}&+_C@x9*rmxmxHkReJzya;8o@m$QCs$LyTon%P{(|Vs5$vHPg*U zi*zR~C{P-hWT?tF?ZY$H2hL~W5*t?p?C1jq)+*Qch01Ni<&qYcLCWX$R=*x66XdTb zC{h~@GqTWreSZLtsikq@C|>nvh(X@LGY;EiQ)LL)$G5@CVNx(Idh~276l+L@zyUzdbQSuaM9ADW{ko45J4)uV`(+GRsbgu(mR#Y!MO*=kh*$di8gN7=Wj ztfuS?JzkyS%|T5P$dRDvgWf~wglff*P(P6S#eA|>5f8VXzA}$|o6~0Z0-fPV2B!3J z5+yWZzCPcnn6!5`Hpf$JtOo(o_G$WIrm;(CUtHb zp2crpI_0G3NaPw|8NEu}Ru>a*p7_(O*@nfHrEC}Qtu6Lx^rZ`w_zVZMD!4K!R(n-6 zu^+}pb!Ki+CJe zk>kzF%Xke2uilCn2o*Hrb(EJM@dcp4VFk7-OIPyD4ZJc^12Xn0PDJ)l6P zR%3k#U;J(2S=-&Xd%C;3Vbjok&L>|n8=BYoU}ti`rBssOK5)E}EB3^wc1LcQc-8Nw~Uv*JF_-H26T9x{x`_p3Z2ks-0Ac zZEH~alJSw9+F0&l z#GKsaTGG(b*6GKEz-$m@Q7!$e&8w;^tu4r!f-7hIcE?sxEA-@&Mx7W&Zy3S_`=BjP zh+xW>lYFVkUAr5zNjNHkR|X@0>$kq^iTsuiE}P*Bl_-&3`UxLe2@~;a`&1WBsb~9Q zV{?(%YCXtgH{86CT=POF+ix(Skzp`FQ(@%|c3qHiylhhslCsK;k{pZ;1?3GEpFpG7exf|L=0bXMXoH?(KOVSy+%*)2sWf+EwNa8YYpDzLKR-c zYMZc!*^=2Btba(YQFTsXDw!K8mZfWd5dAQkr(e!~Y^!|DsUf8CYu39{&M7mNxrXoP z9>*66MkWxcQ-lm$1#_Ix5_4Dh{O2*y+cL-YUAA?Lj_|_p@!z^X(ZpXoH34X6qIRy^ ze#t7j2;<8dF_|(>w6|QF59j_5K6PmpA83NnB!A!6j@^#GDM-sE*8Vk;5qNUDK=~Q1 zW#Ig$k<9-{8}RSZ+J8|cmNYbNH-`W5AWsVgih)tBKUfq$EUMWf^Ml^li$}}~EvQpH zlv~eOH+D@`SmgNbTE(;_sHUi!hI~K_%gWCFYjT{a?vZ{ z#EQXY`=gLbI4;BZL^g|Agx{@My^$4u0)1i%YW5Cpn|_$de8gqs0ZKw-@Ilh>ZohhB zc(!}#+5r4XP%i4!KvSUzViK+_oPMi9fPf?v5p4!y!V*a%VIT^#Q(geFAE_g{TN{Gl z2GUo65>Tp(sDX?USn9*^*Z~?MZqtT^6{*7Ct4knbF9cN-t9!CCI6Dn25f?@z1bqe1 zWy_oB_?o;#(W>E$a@I7ywgIBMohoK7#EC&ivf*4(B_B$p_fU8r@n5iHnhb1IZAU%QN6 zd=VcnH^;7_DMfJmyDT7Ww#a=UQme06^YWQfea$vb6;}>5J;Mk|PO-r6wShS+u;uxeBB`La2j-zvc-x_IMs3{Vxjxq)?a679wwBEr-E^-rwC^T(bxn{87x^z zYgr+1;A3v?4^)QVb!Ev=6cs(!uc##{k+ufnAbSF%2?#^CpFTeuC&~y2gE-d0_=><6q9Jkw-C`&enVxYN-BUBC++==;l zL1=gI8~ zjuPtG4*fx5>M)k%IX+xXP6maQ=2?wKYw+10$IF_exn<|-ESdS#=#T?_zC60H z;5Yt^aq7PdsM0E_JU-nYA#HekfIbA8jY&>G`vb)Ac$_Ckub^kA=aj*#giSvi?xwTp zPaqLfVi#}YW>%|VRS;c>S)~=0k6j!0tBCu9s4MBaF+lBxNa^$>s4x>ZZYP$=?Djs2 ze7gg+!>Qip((9q&>Ml6ckJ6DELKcf8;G)(3c&i9e(qf!GS|DrPi8F6B&3$Gpl`8lD zR1zGO`&U343C@nvnwZmH#RQE_WLvdUMS3yVWpam;Co{a|d5#5jWiOuN1;bckU9fRF z;nS80LUjR?mX}B@!fKl8ClY_iqZ)U;`>4skR-|5O?8?Z zbG8mnL+Nl@L1cS2oxj?cgnU;HwP?-20Hdf-6%4+a<{C7=Rmp%j0A)cQ<)|B@g=I1R27F1EC{{^ zRFK1mnPC<3l|;DJo+e!Y%*Jr-cgik0Y}kJeo)z4upB*1(_UY_2yR4^ub|Xap;yzbt zx`#Q=O0Lk%t#)!~Z%?L{9!)+8lle^#s&LULtt)(=irNud|1C1R8nd9RtHDRfDKM-6 zS@6d*g@jG8BrLZKB5AZd-s52?MRIy;21VC#%fXW^=_mKnVYXrVXcR;l$%W%Swy@On z2_50Z8$h4|h*k9Nc$8DT9MX(BNwUj)mSs{&veGSbu*UOaeWU~(W5m9n zl!Y`tn!pT{MY;k@`3wooY^(RHw5Cg*{@>3#$VQCIu4Nfjhj(i`08I94^5YhKd6nO8 z@3U+VtfD7*bAgS+Qs2k-YN20q8@pu(uei<}0JKs70cea6NLfxW1h#i6dLBzqinkS!a_*I_ zAS)N5dr&&AC=9lLQ}jF=QCoJUQ}Z8|eF?p;Ka{>Kj%Ny|OdCROEWfWW?h-cx%DhxJ zUulF4Ym%@V!1JeLcC|CQF6wZ7QkPzwl9XOlb6+_!%|x}QnS2-DyZ`!lrmONCc<=l^ z&1vPvIuGr*!G+%XZVeS(D6hdxJ54w9Y-_?kX%CFfL2C`2F+6Fr(JwMRzuIfM23X;) zdi-nX>GqkKsL4vdVA@jJTisT^<#R7kUetjGjKm?DqARepf^g59bmV#>$uorh(8{vq z|EBJPRM=)0?^(A(TUn#Cq{cm2U0-?6+Rr?kjARN7t!W!!1)}@ZuFUD9VnYZ(sj4Zl z_x*lxHqHCb8p&$61X&CM06>BMKVg>tk*?x@VU~Z`M4E~lqyI`xxs6*zrlbP{zHrEv zwojmFfei}CS|6cH(Rj8xM8BGZ7$KeTN4CwIm=(c&1X55}23Q!6N zv9O)z+zi!ic|Ggn(Ykk{KK07a!-d_=2nmqHp=>)OIQoZ91aOlG5*7CkorqAxU*`iC zgCOxY|1be^9xB9&YObRLz)RQ=+LJV(u?PvuhwLvDh-s8TEj|NdzlOBP;w`0%ot(2e z-_>`f1+su21ahnL&*^@-(;N>@0Iz#Ff*!ZTF^0Ux?sat|5)bJKKt%6f(3^J*=wp@; zKZZ~oC1=%|OA8r}nYlow<#0Q}?renJZVPl>@8dk%jplG0!S2)tzbOk;)!*9FMVDwk ztA_f!Da-SaIO20(p6j(w8vAi*$m@Pe`d+Tw+Lj*eMC9*ltfc2l%U0xIn|CqQEz_at z&q7YXSIDr);Ut3dj1%ssa8tAr%ZPdo4)vM9<#)pk;5Q)n+N#K;IdJomYqNX(JYOfF zZ><&nnL2m3HaBOacpSl<5F|1ksA6*&-yzbxI|rkR>pondWwTl`^QwGoFoHuL91vd= zVB^KqU@)xy)(Dr2reu+NzE6UJ00pA&2!ewqf)?yJP^{9I91vD$bb~B3+9rU97e|D$ z2Vlb%$0V%X-by&5^ZcDHx0wM_Hpx}AK8k-gEOq}Y*U!~JoS>HxBSRB| zT_1uv^AN0a1{WM|KnfyCubB^wl7FgDs~t7J?au!PTxA!;#W6>0Vn%;z^S=sOmJ97d z13(ZV7(YM-sofq~@@?XWTl}8pR`-K<7@l1YWLJfkPj}$PJ0+PZj^;@qiX&j`4WiUm zh&+h^IUlw%`NdnJ*}+lk=_hg@mlwBPa6v0y#M1rlUi>guM0AsUa zZ@2;{90Ftk7-i!wYvAPT7kFTJO3Q;HF2|^=byPCl|@Pn<=tyXBls8%wWii90_ z4lgvQ?~I!ohZG@Mk+@Q^Tu=uJWlZBp8np*et?HH@MF~SO)S5AE<}iDBcO* zs^d>O*5hlRur6;%U}qT?pAhm`X7|@9mGGSFWnWQVC1^6g*+A&HpYa5`hB5GK>Qs_$ zM}duC;x=lD$xFh)ut)g0irvr>$B?YO?gZ{)^so7>8+e{{UzBfchvnJ~LsJre21zF* zGV~Pmvz36&hCqykKfQNbtpfYyLehq(sVrUTGE7>zY1*I2+EfD?+;;+N>Z;G=zw@s1QQfOF6*C_AkAd0)EI6Mw z?8Fj`s&!-LoLp>3$uqgy>rf|(RnlgRiWRW;g~@m8ZFrKVkVp+8`6_cud+m-I^S)&s zc9K!f2+{B*+{m!sb{nb4ID|;(rxCH=EOYt-PHisp%)O7+mjXhd6VscHTcB#})T++fV`Ejm#kLn5O;5hRc`3EsnlyWQb(EFr_Q`eEwb5c~4 zsQvha4t|3&DDzxo@T?j4Kz_+=G!J%Y2;yH$BcC!z+l5R0(H9zt!UW+(^JzWGf4XW` zCrmj$y6jbdAaAkNjjqri(t~=Ajn2^3t)i|%s9@(3RpzKP=pZfrIW6gX*tQqeRsBP$ z>xN`go_^C~UQLv5&Jtzf`wir(GQaL~J`7^tIU2nYMS*n{%d!=edSo){bYjl|y4`SM zdNeXj=WK@U90$$jE(v=W^fX$}oXoazaa>`2-yVp+u$Hko9^D?@Fx?$Dvsp)+)kbjC z3axuFoCh$L^rN}zWLf|(iZGYOv6sWam(N)AvRwu^ss}ipdNFK)m)kIx+h8p({heE2 z)J(VPrqAo9x$34{0WUf+m))_K|9~$KvFK?#4YZdHw2$gD+lcwN1fI0}pD36oE*@`X zM=Nzp)`L~U9L>b<9`VyXvbn7u?`BIwbaO8K^XoJi*iN-w;BttA=|kX+P6xlG;GahO zepkkwyypDPHK)CIYyN*d9SFHuL4eV~9M7J@>E3Z=GP5RgWr=w8$)C@Yo;2Yb;a<+do(zx5=ZpDV$NiNXpI-S`?;7bYT<&rae1 z!TKgj{_tGgZ5{W_*NO-J=VZG(xI0$1(4U8=MoURay;&0YBtFm2hK6l(XNt1Hv{R`A z(rZ|GX{3eIm)g;j(6J`xyKV3!j)LzXnPP9KhCF6GCmN6P1z20*E~o>_Lou!9;BYEa zp%?44o27xNQi6`gL_MJ?Bl?-rG&{AQ>J>Tt-U=!@rdd(IN=D6x0h%j_0F73T8RAe0%rNI`p*c14 zA<%H4-(q(oMg=UoHeUNFU^)X}G^9UMnpCWw;4b?()#C4ht2D24iDk2^V$N|+QHtbw@pE~Z4MVZBJ0>JL|4`Bo31p8#zr1|8*>aHv2*+Q zDZFmXh`6qZzm)-us(jL)g4O>f1YfRBzmbvzA`@mbAa@xoLgf5~H&{b(5ftGDijU%fwqpO2eCk~l$_^u0?SfUI1t{z#T z^7pZ;Ygvu31`1p39%M^XnH`{p3WRf0Rx{tdJVW$jcdsUOyiJWfdHZk(g+3_u=03iGd^zt$ys=WKf%T(kWQbwYYt=Hp1n=vq(nZNN8RDCDi^oz-q67(0^~PhbH_4QUe%7VZW14B8c%jMS=CW>x2-z`H1=jYB?q zNhnqo%Sgo>C{WIYX`Nlb_=_7Cc!3tmr?S55DDMJD355Un-8x&XB(4=TQ8*!s1f>}F zC72|BSA&q6&B=YYlBBf@Y6Q$wZx`cS%zj?S)&b|x-+c!(?u3p@gB=Ag)vZnuuo10K zeg^`$!eDhO-pUio#_ph)WTI=+yLl)m7n?FV5!3}-&ma`sEEFm(_kk zNn`bGTtAzqF7ApEaMOA<(uUcrg>KnteVPLn8Y5uK>6JR3j<*ncGKIQwnJ0woiB!K_ z0khI5gdKXC30K3s1h2hU6?F*ABCE)Na>eFbI~el1)FI5V-_v#0HvB3ckz+0P0&7ow z-mr6s7EPp8>B*TMTTVR^lIG5LGnpC9QGRCBej3%F+&q3s!&(bC6jMw(hVgo1XkK#= zS1;#ss<~}@O5D6*(mA(>qTp7N^qNQ@f!Xa(DnQ%mAWH;y3h1^Gmte z}R@nSXb8PzigiX<1lGje*}T5|55+S{y$;cI_O*dOAa{o z!^b*cf$us|ot$#mrC15>oMyoUUv25&i)&vMl&2cr7b6jX0Zni)u=?16R%j3$TVICo zD5GTlE}&m^($^-9EnGnX zL4W83>iT3En=>I6!5Vt2LajWOc9H|Hl6Ag;0H`q{K889MzN$=zh4W0pce^eO@8Ik; zZukgUYcg@#J2>>JW|bhWsa@#h8_g-x?B|u+`}4;r*1BZ_@OFrA$v?zk!dmT9a1=#d zzs#zf2BsZXIA1K7u~A45IcEp_2`o1#%>i4ux+xAOcKf51&y!m=K1=XCR%iY6ak%+4aNfP<@k-`Mi z`}aARdYK|g#ybsnD6Gj#z8OEJe_I={{SEvT_dPU&9qHJ4c@WftaVCQJl^cB7Co96i zq0AHLSx9Mq)^(ztYXCQO&!IeGX}Fny>p8NwtZ1{g7?H!db-IQC%}JHF7S>xIADTHc zuovrGZ4@J8@wH?z-TuA+x(CYnf3fzB!L@GNw!w;RCo8sX+qP|6E4Ei`+qP}n$%<{i z?0u^4t$I~=zjJQASv7ymKeMWjZ;bx6(R=HyZHn9}HsmNeH5Y5#`)tAGh98CjkHF;S zA4GmI;k078CRsLV$e)Wi~RPi;{FuvWR*y1Qky!G8@Yu6g->g@iad&2LB0~*`#dxm0U)E z|FOG^hoyQxhu_6yQx|FLB#*d;DMuNc|GOfW6!ZOwv{{i#Y zg=Fj_x7Xqu_F(-ZUyAjAd!WC;PTaR?JRNlK)hi0ELtVgB=kzr`nFo5Tm0*)+*_u;6 zKMG8^1XjW4RX|2{7UaDg?vGGBTDJln0&zy7+KCa#RfX`Sf{-{6PLgUL&z>%-&w@@b$K`!NR)Ff!|zM)9uvsQqMcCpnr=U5z4@zwBZjahSg^t=FXM|> zVPIF(vyVBI5cR1n_r+@w&MfDPXG}~g(8luydI5f&$sf?A6{S8Vv^yP{v1~$i|D1uk z6jlol$%Yo^-(>9N5kc`(dT@~iLd(;*D)l5g6F11v!Iwsq`I%2nLpA78%jMe6CQA^c z_LW6c?-Tm!zQONy)JA!c$hK}zpORA@_h6u&2|k;lZpoPBj@r>F&6wM(Pc^=l0h@Sb znxM+m+Qstqx9vBY4OE=o_Y8!<_k;YOvFrb8RNK+mTHnsh*5O~0gW6O4u>N$&KW4a# zQ;4+yb9H*q^EcBqd~yIaZr>u%A1-OYp*FfEq=J*kYjW^8(MeW%2STx;OiqCm3*`-A ztK{8G0qAPequ?)>q=q=$aUQKIT2eo+%`@1xt1JRy`bH&oys+4luFbvR(JW2Co2CmT zyJ+LkN>G@1TI|rZ3lh#s=gP=fOBysRsUent-D{~YtL<)0HH>1UTWsDZeg4|fK@z6X zIp6yg{(C|G=f(J64F>=BVpup1CQiz((;@dJ zg&3Mn(-xxK`(|epSYrZ-&Chr_oIl-o>Q0q7fJciLa)k#Z2(tMMqx9fstUCx>WHE*^ z1xhByJG%_o*_1XAsjDOPl2+!TI`AFGqNWJzyhKRMvQ6YLU?AE>+qv7+Q0Qm zf*M<-#-GzlVT@=5rxMRZL6b4oD>2D*emp_pz{>jDx@HlK*%d+S#8Jn&5!=5shv=8^e*)vr9K?YW0_e6*s{=Ao4)e^x4CY6F863rS zhNu5j(N|l0(6Uuec%x;;QZg_tSbG+7 zU$mJ_JC!o%+K=X?2i8b(iUyO2(EnPWEiVkZ&@LUQvsHD(g`P(D^| z(?>7MN{LMWb2mv%IhhMir~;yJ5K9{l#7K-0RHCTiIePvCbEos3dH01R$tVGu3@u*0 zMWb5ZIp>^-i!%t^LOrvJ#rA>U)>$hjR&U`k-iTw*$;Huds&1(Z?3DP(|E!j`7JJ-S zaAY<3+n!1~+@&csgvT&}g%;aBS|s$<4--8;_Z%BJJ*Hn*E8ytPEi^Mbc+v+HTS|r{Cvmc#*8BC#GOZ)j@R)Ty)NA6 zSkoKZzb51TUi+Psz9-`o|M4dKU1a&s^*bER^c{?i_#GVd-39e+42`X<^qtIYZT`k> zQStn?-@+w9SMQJ!P{IQ1ol*(##W*C=PEX`SaHw%4nVEU`1HRc3P*9to?Oo5S)7ggO z6m|vN)YtNYdyGO0m`*t;A@L%vPsZgVW*jxed#efrlsHFYmTbj&FrUm;I}vjAGMgNw zVw?q2q>SuQvWFl{=crmjDhOwr2YpIC>GzdTJaAirtRUv0^=xUd*Y1&eIhh8rE)s#^ zu7h-pCXMY@QcV@u63=9+L-Rg-LQ1upW#9&6NFD35bvl(j4BTC(JH!r^hC5ap64w?d zv5%82AaPHy3{&P<73S7Jwlq?k?DN#5NAXKTMaPx(Ro z?rDrQf@vi|F$ngf-PUBggO#&LmF>rH0r6A(&N=c{*B(+2Ika^b5qCOcAcKEgl2K+R z12pwv(ho~ZgO(A75HeTTYk zd4||VXhq4`Mf4dHi<2szhKVna!u}KW>x&{I1j-DHfbG#gVja*o_{{@VaGj$+Hb=?` z`gQQWb5|V@FOZ^NO?bQ>Oysa5e+f0#pHgf?ftSeh}&cx@05QM4tsn08#7` z8z_0?09CnCN`@e0pf98}`r{s>Z#5cmuK+xBXCpn-5D|EBP~4#{_>&8v8#I6(FBPsv z{~9v5xp)zGHz$^{;PtSt4g0Ax%#nFLTO#8HlBbec9X2ueJ45Z2IPzvIPT zx&eo4$zPk?5GXuWaq zQS(A&(pY-1{8X_K*C#YS6M$H)VmCQ>ySscwKeGrffG5KfpZNJ`2dx0?TtZ_o45v<2 z*H?OBymQrSpLOvlO&jJ>7{$h%h>fWX|6EAJ@HHo~dOex}MuYJ{jxt8%q#rb`XpxBg zD&M0Nfp+e}{~|Mq#>EPvpP|7Y`}j#DWE47x{I*8jC0`~8gMlYm1B~Lr;jE^&hpcnY}ZO*Umcmg7T@^&t5r~_0hN8j}V z!>t0?P&0O5-+O1QDY~^jncGV1%Nb2Ir}F0o&YDKwmgi+?u6Mcg%N(0}OlATol0feY zzWDm}Rw`X){<-h4RH4P4Ft+P##F|Nb@*lM`S89vSH|j4s*mIIz-M^rL6z*B((_d1# z|0tgLpQ$(5*cutrTI-wtD+vy&NdAR(yN*=hJDD*24=$a^+bTj}w9%M=Jh{ua-pzlMe?`T<+Ws8iVbVAl|x71zPv9zJiz+Q~bEjeY^cH7TfpXAmSDz7fgtG_7(RQdcG9 zm9jXdq5oQ1olN5GMj;Un@9#6Jju9!Y+`^{nim$26O=&4)WHS#ysZ>Pc>*FLPHX1xH zYA5vlQcfP%9N6|w0Ig${;ElU=(PIwbDAr#MNacP223S@+-fp+HUl&5#WGCKAq)nb; zp9+I`1ddzb=|MK;fm!~O9#To<*BEcVG!#mloUmKAxUSc`snDPf6tB)Mg3I$%G~ueu z5(3H+bU`HD1+DubWuq=OBT!71;dKAB`;GhVr+eR*nf`9RBI#)>nY&uZlLS8WJg!s! z)xKQ_MAMl|wxgW4a7~-U@rI8t5Opcp3C~erRHnd%CSH_LTjA93`uw|T1PUKPYlaqe z?Vw*o1=9TM%;0e>JmjVQLidZ&2ABjRXi&UDZhbCnb0L80=jC(TQi;ULP-Ar`kbbaN z#JdRm8ie^zPTvGPN!LTE?TiP8)b;|;cx~|}!cAKsebKsRfKurM^#p#{vVMz4=E}*z z8BEjsBm0^({$<)0p6RyLB956y|5u@QUbDja!pZcJr9Wblns8+-Ij&_#w11te2BxT= zx8LV#7UrKI_kX4s_TT5~n>K@KDZ4-P=;$Y%RPO%F4O`<>SZ2Y)$8bb{#BCbQP4mM)Heyc984t(#Odw^o$EMPr6lb@|{bg8NS5>a$IkU^Aq7b zs~dlEcCU5@rXmUdeC}#UJHjr8^Jf?5R z5@7FtS0Z+(M!!`9d6Xeeg69C89B1an5Sh>PKy?S;uzdxp2Qz`}#i1cBYD1|Ky1zEN z4}iPNA^~+qtM)P5hx%8wPE@@PX*0nW{6GDC*nPFkd=)0CKM9nT>ql@N2wR& z_%#PUJI|mwxTznqJJAhO9>h5ElKpRe;9V()NQUwyQyHRL{9|$vajddIyaH2cRt~D&!zjPQNFu{95${5@>Y9v9Du;5( z*1?gDVWJ%7L!@CoOPloJX>tO$Z4J&+DE zZo~nyKKJ_1(FEB^v3W~~p{|#&LlsHnZp;#{%8jcFm_!XE0)eUnA^pIt z>TH~bER%`5z%+B%y}}@@1ee#w^hi}}FbLpf@=4T=v!Gw;xG?r(n(dq`ured@328vH z3KzLRUw~0LvlP7IDONy_*cY*DIU2?*K9f&Ike(~@29{H?SFFq^Pl5F661w=MKJC32 zmmj5{a2Hq~2@cH;nY3lVm}L3R7JuW=<2BtZXe;VmrBSr0J-H3owCR7~l0x~;>^)Ox zG1wGd?*Qi7S(=u2si1EA+PTP@#SuAPTn>{D78j`pihOkr%2H}6GMJ?77JtyT{jfB);;fCbK3k5e?E9xJ_R&zy%m?si zRBEQAG$i}>`*Z=`>Xr*YWqZigOYY2iV4T^NCB_@GspwMMRcEwv@#ECSVg&aCm|}}k z_F`?KGFq zf8qLaaJ||&+qr4zItdgsA0@!LIjGNtnMH@Vdm)YD0jpjLc-P_wE=x7-ck48glCNP1p z@j;2a<=XPPTlsC?SQ>xZws@4IbXQK0*a(2r-}IzZGKLhV6|9Sqt9=eoRS8|t-Ax0z ze4$wEO>b}2BScoug}-rU`A3$Kg+^Rl#7X#UFwmoErrx<9CfFgL-BLBdnouvrg5)}4 zHOHL5bdOA5Eqqsdpw#u_<>TaL_r}(Y;emS- z8r06%y;!D9*Q7k$EoR3!=oV)G@{JA5xa^EOJ^LvQzh!57~+u6%k+5G_*7{9MB}3?YtrDyDlw^ zFCj{)p8Y} zu2xUXLP=Mjytq#w&3jtt(>*nQW;d;=0fhH`4LH?Jk__aY(M=2K({^7y$JjXDKd=a> zA6ThxTSohlFJ+z2Sc-W%C@2=Fx>jfo(q6Pp8t$p&iQ;v5e6Bo}_5q50;5p>rr`&Xv z=flyu^$X*dl<3#r^Z=aB+ezQ=f(ir4KS7-TtWN$n#BnhHSKG@wmfo_T4nD~BE1Xa= zesFD{WTuwb$u4+G^#tO_+^Cp@IQZw4u)TpDc_!>u`xDO9Z-x7Ky||y4N>#wOKE$(n z!lyGWbOTDqA|GdQB6Z}T8qJk+^nqmIV9l49q#&bppbxg9eT95dU8FWJ2=YMbWSpGl7)9(&0fAHttfRqvuYuZ-^GvIn)6LqmL? zGCw_0wY7e0c-C(&&Q2ED@!@94reaP5lD5`7G2i24mda^eX0z0IJsKN)d>3HB!0o}3 zaF)Jn7@7ZAkY)alsvQ5dbl>1mP1^BWUA*&5_57G%tbgXRk`QLy{sK3nHX-stCK?xA zOG1qQ7YN^QS^n1+V2^EFe1?5d^7YU0p8oZaK^m7*^IU`m`N*^r2L}(JE1w-kKctq} z7m?bOk@is*%Tp{8|Hj6CK9>OA1EozeUppc z%-Fp+1|Ko*EIon!2NFK~7JTC7KNBHah5?XDl~P$PUVJx}b`P9xZ)VFv5v5XlWF`KT zOpx>(X;I`0rtom(bj6AH+GF-XaUtmJ07X*3H{BfuO60;I2j7I~{sayBLYC5}Yb2ca z$U3Ot#1Sr5GD$@)CNhN`4qLJd&`3b}lrJEs=rIi-nDudX`YeeeSa71JMFIdY6-HSQ zL&?cu&^G{~pMXs0dUIx>m4BQSj)pPmazfI43RAaX$zn01l{bSVZd=PkZJCUtNZrI3 z9H6kvg3M)U99L6VW#&9)DUAyuSBLb$OqmG=4`-l;Y0#%WgT-0g;2w{1KEkZBPZ8c( zzP-=)^kPXCGoEv?``v<2Z5^`ii}>M({utPsKaT|@TFY?u`S?yYV1LdqIb_LD$12-! z2Kn5Xrs33a1*Y5j5FkQet;oS<$--pB90*Fchc`t`t=({zW<$q*t}BqxFr<>(kQo_F zHz0U6ecI6>93Lwh?J9yl%0n4{6wq3{>7|*e&WQ7(AKL3{KHP+irey)mHV-Pys-|g4 zNbZl(IHC^D?6T_W-%U=FI#t-@L0A@x4(-oA(Cz#(=k&{NEAg>dK>>#thWeJe@B;p^ zFzkR$pTJ#FUArx-MABeHz6{Y|M04!)uF+r%?Amm2VjAERqsJ5Yx!eF07)#P~youU9 z`}ai3&`-G%V&6V^g@0)DgdUKo;iUmWZG>XY~n~|I7KY?Q}0{Kf-3&ge# zp2W$qS}L0CYBe=>*e5a;xaXxf{>1eeZ4UAG;v`T`_4nJcSSA zX1|=USby}%Au}~{CaJ6ZfU4L!;X6ld4) zv6*|gNk|rR3WB)oyRzVjRfru{7RvR~p-t4RuX(MUq~B*XKexiAaoIIk4Zl8v{jF$M zM%vfC+zYnUE#frDRL~k(7*@Gwj$blq*3#Kl72zgsJ$~;{m-&O4?62Q^4>|2%>{kr{ zT~8g{-O*+0l1nF;Hr1!%p_K85Mx4zeR;ovzL)UeU$r3O1=^xC|$QyiC%e18bYUTYN z(}o@UCRo6u{L_2pdr0NqEZ$3*8yed<8q+wrIcY0=cVd5{cYW(_pO#iuoOfZ>ibt9V z28!2XQIVnId5A!R?u8jCC>^LJBoj;HH80vGrA$|mo zy7?X*;j%SV6Ec&!Izj4md~wKa6FloCL~5HkfBXk9^Qnnddj=SEU3c08b`&?-WDYk* zf5FY{Dm0{+h~e1AKNZ0gkFX<^Zp|`O-k;I?U_}3qPaEuP|F9c_siSJ>wdbdv{R4+A zk7LG#Ui3}5V#W9a9R}|obg2R!t$?ZBePavq77Xw%o2yNpkPm7 z@h9tsqbu>q;hR&FebG$1fS_jao0v<%j<7RPPU%N#k+Tb~l$4RL2?k~hC$P6N#iVs! zx^=x*&CL@)n(S&1yqDT^672gz)3Y-Mw zY7tS$v=s%!S>jMjJVz_^%3+m#(PH8)Yl0Pg&$!*_w2m{|SmNub0{+bDX|oJq`@)^n z7`le7$~ywNCNPQ(frz30t`s8cVoP%BN`aJhM$C$D*px+X2U-vi{xEUjDC=orR!t6s z8jyXGcD)$7;@<`{xmwgcY%KuZxmvlEV%ntSb;^mcqq_Jko}){N0>r2BW2lnhX>rEV zwhCS`c_bC1^6|kH<^mAP@~KOgmo6yMs*wS9u>$nHhLHkx#NxRQWcZ7`$I*>UU~v^u zK@|mN4g(y66wX70(eqf66`0#PLL*LFP51MX;^LFfZBaYb;}Pe7*N8COq&+>pYeb^| zC?`(yZ*T0s5CDy#wGs1VFQh*o{Lqc(45wEzIL9-zGknL7I05bC&DqW07^@hyTRch~ zu-jL>s<-k#tv$K8#yQhckgYMn#d{CL7Z35I_$m}h)SQCDfQ>s4!BSBe@ximLDG$Q* z<9ZNFp3iG9nj+SYm@p~i`?165&G&5XA~YZK?>f)g3-O_~gHTJtc0f_MY^0UDu*gy? z-Mqzg`%Z5EhK!bo2G2>~@hpCS|K~>ZH_PbXJj#DZY((Sa*ckKOg_naCdde_xAq#s4 zZegg9GAcyl^XXprrumhE+S>j)hDq6!+G@a1-KoiCKrSKj{*9NZzkDh0Sk53pr<5n& zK%bv!cLrq&{na*Cy$ShN+MlYg7 zb6lcH<6W36k0jAH9{cj$Bg9{*H)TtFwBkF+lz&_XhJSk*?DP#SzePpA{S$0$3YDd8 z7wF)*uRg=&VKYKIHStRb{GQwFN?PoMeh#Njwml?sO*JVm`u0Zo4%70xWH1F$E1jAn zO{YH%G1}I#o+%p#^_Kaa^36G`Whc~si=@7IC_9TWkl`iPL)^eB!22iXL@t}nh{XBt zz@q;$;L|5F#if%Q^qr;|KSaKdQ z$&vy2EnJ$$QLD3A#ITlIT>7i{#9o-`r}TiCr?LGXnNXq6KM#)}>ot=<7zGY}7^;-V z8D%*Pjtqy_cW5B`2ONGdAE6#&lL6hVQLfY4&0*|Qq3P5{3sWSqc?rcd2~sX<&)Uw5 zg<_p{#-cT<&~NXq2V1X}*EWk9lG2hs%$hUi!X1aGP_Fqlal`;0ZuKsoE>GiK^Q+mZ z=nDGv(69jmfgi%dcifgF3O_&G4KG7xaR)4b=|wgN%;7X|U1!R9R8W#bxW^Gyu)>2v z37i$lO{WCqBT*5cOpBRz%)LlF8EY836G1pbQE{`iD{@O#VIt8A|9%@TGPaWmeyszy zM0QEd_UXo2hQSO2GxlF0W^s|pQEor)=Z(!wqbW*^f}0~Ow4-tHl4^C1QbiyD1YvhL zV4>zn-%6KCDO1Ol`OKV8Ge?L%#Ugzo826oyiRfsTPBEsfm1eYY$oMUS_0=Ry02ScP zTja|h{+kBGd>m`)TV;BVqt4o~jeYa_)_Di{phGS!D|t6Me0W&XAHdmKVTL0@Zh61N zPuiYE^AD~mBkKeI9+=x#*#m+=q4w8&eN_<|0k^V-StqvEGC<@I104KMiqmrQ9z*P3$=iL)^|WM#|(r}0W)6<8O0mZ#prJ&&-ys1kzl6-e z*MFe)Yc$F5-&e^?aVbYWpE&1pg zh|x2=J4%%xtl0TtUF2@e(5`}ek-qVvO{bnXBtcb*p0wP3Q^}Uoz(TjSXk%e?MRR_K z^Kdcx%yVskZ|DYWRqGAnScVf1dtyMWd6;Cif?KxYYJIwMa-iWi4j*0ZiBv$Odz3rk zsQ&J!O`LQ?dBReSUeza*R^h_K7~{Z#fMgXEc$YMwW@O(_%D^D~K-5&}eM4aKgxErW zjAK+nDmj)=go&vc90+JCy*$sId>GvP26Cs! zIbymRLm)}|JQP{^e#UI|R|ISNRn7&8$sbt7Dy zZOXAxoAOIrS#2v!97+_q9IzJb*WDjha~TsP(Tz)swF=HK-3&kxceT6(5&1HD;uuto z)@Yr~!XHk2o{pGo$CxZIe^ISRZ&Zc?;G1CeFaW- z{240MUjR%MK~4hjzgppy-BAw`EdgP{UaZ;Po1e7eu_d`@3M3<4h@MRk?o|ahw%I7~ z`Z3-KIo=+_BhOuS2ucK4ZADzh7wn~HDfh6{dSUFyp4qUlQ7pEH!CCaKi#GoBm>0ed zzMp+3l<#>Et1J*u4ASM3y6xricG1_Wa;90KT}ou?6OW+5$)ePxmDX*HE^7vzq==mL z4wtR^;KlJ(LA8j{4L!>y<*?Il=YJ(8qeY_cK`znce-C5RqZbG_^&&ng;b0 z-E70r@6~4-j z9Qu|XNdt`;pzl3*f14{^b`fRfe{b#Re?*5u|If{DrEg>E{0$2ojU8N!9jKk$?Tj61 zt;`K*jUBE3o0W3W`R0H%98db*ot-DZgFw&-Pc-J}HPw?pYiHy+f%8(=Ht|BhrIQ~< z1Hf(NWY~sT;3g&F6;l)Q%H1cjb-J_|1uE`7-Q51!59HToV*J* zLRpD&QOCAXV=0Qk8rau1-J?9cX-1^+tU_5mU%AQ5Rb5@DyhG=lrOje7q}kNuHPz$x zobkh6leKc}Aulj*Wn)?ETu`wjdE;8uew1R}tbP(z|7M#YHgr>vOv^9_x(tPQ_47PL_v_+*GQ@U4^5K4Pbo=Av>hpat+4t$F`kkQoD~8%Y^8KVd z&hbcQ{%%{jNKKjJig@78UT6h}FKCm8fy=jL^a|7jPLPsCeUvb(%ylGlw;43`MS*o$ zuGx<_MaWpC(q&bGGCy5%ldOI*!a$vh0ekklHL_S4TqmdOJAq0)|4?SOEFqZR)STHH z)wpDl&}i8?x@G{l4vJRP8hEon&0@U}msM4CdUS;3d<*qtprn#Cmm<&Z0=Sr6?(0_S z@Vwn~I{I^CkG^uNy3ynAk~D`RDdSdzhY*p>+tIFX)e)Sr6J(b@S_H9(hxx#zMNad>;^1-Kl+fxJ7AY&nPOCbtKT% z%Qo~HJ#qxtqqev@=BmJ=AgN!Ann0C?wN`n@9{rsFp z)p`Zlq*Ud)i>1kQR%N(LCucUz>14fht(k=)?YgPW%ydnYyUXn`Z5A(@#)olbn8t#W zzEaXr6pP4_00H_YI~A~UB*18fk z=DZ}$-5ss&O@*5eZz2by#*NRYh7~f}w3V}qpCnE31hX|>4w>~`D-JEw@VNslww(59 z5%I1{`Pb{^Fy2DbY>l>Y^(qNJhxDTB1IoFCx{p;31(R4%-e6*YvL8yBUgCsJz9Y}g z7$PRq8ZT5msH;zBkak>RO_gdJRdMG0wJdOPuJ&O?+a>toRNlgKZgU2eponEp`+M;k zGLZ;nVyTL+RVGayuT82dWBzAZ`s;~1sBfZhVH|XX^O8}73gO`C;oPxHnU4kJiZQbc zEV*OdNHXk18r`>Vv7=$LeZ&qCByEq$7p)fYKi;f*GJ6P z%~#g6IPR!g3nxvOrMYjKsiWH1QNk95qZuMp<_>azgH4*;J+_2*t{Jg5H>XEtgi&|d zV%}8anzArd2!kv}iXR+q!D1ej(<0`1GAt_cFA7a&4W!CjgVqHy*Hqj#jRp638!sh3 zRbQU0Jhoz3B^Bj|Dh;#z@W)ztlV*_MS@)S0A7{yi1bAl`EG~+w?J0Qs=cvXTtf6f@8%Z4pdCj zs1y>66afi@%Xo|L>{ZZNHI3%28u^Y|GZMh=7RGDm8kwdM5#<%5Ft`HhniMH!A3)VMt!rC;@w-8vfy?hZ9G$+e z6+06blJS5n@e7!)x{^ zZ}+GSIQ}%@UCC*XCA0|INIWxcqC7D($s8j6)x2Yx8~&rsI_@l(sSN`PUY(w+1^Tz3 z0-&KAuwYP`&2pQ3)aSJJtl1Wo^J3os4jgraLb)kXd21k(7P@m44EU==c{#I~@$XVO zU=X#W@^a@|wQ?ZSW=5y|%c$Uon;h75uNdc*8BUOc6yGK+asDC9rO53tKMWtvMF z)w`ibEENi5YZvd^>FK`Jf68nY-nYxs+2P!M7+v2ci9kGV8?fzHk?Hs zPw_5FQknPtA0kQRmR=#o4YpAZYONyzR7Mz zd1A>G#b;&Xq@qrpLpO)LLFH7Q4pTNmMY-800d<#6P~hks(lTfY#5LSnr-sh!^}?X7;WR?of2cH8sutV_*C%Evfa|e@ZmYva71DM2o`Ncb_AJ8&uXR1ix?I>()=wX+>-Lrm z&DavV;zQG1KRrKS9!Phmc!Kwvi7C?Feh+(nzQ>&V2U9U5-31i0LXk)9kXw~s_mTC> zvAaVDtNSBqHL{jZtjJ_+FywGQGlKkwbk38>QmgCAg4o$crL=RUf*naH`KHDnwSTv3 zRVfiXs|Ph8^DqowdltHYrr;lE4Rkc{2^tZ1`@7Rqa>;Km!JsSbP-TKV?QQS)UgN1` zm2RtHf6%M#qv@7tl7oLpvOg56N=+^}Qn;Mal!hUF^N|YbnYSVypc^bQ!X_BB9B|EO zt6wgj8z41jm3bs@Ko^Ptw*>X{fb$E5;kd<=Y6@}~HuO4L!!+JbNDuue_Dhf>{6ZfS zVk3tcF-=|H@K_RA2^P#Sw`$X}VQYs+)S5r6j&St?bPW9c$ylaFimgFmSgUE+ex6 z=AIb>>kbwk4}5D-Ciin;&D$f+T)UZsJn2mwg}Rx3IvVZ~7a?>;U9vbUn_ECc50|gS z5B-{qTILzQ^QVr++B9)rGARpQ*HC8FyNMFHSZm1?>%J75rch=bEGwZp2~m52VcOV@ zbX~8AzstZvI>Zq{q};|+v-R84TeFr>I)P~bYHpNnN3QesOBx2gi@7Ar1Wnyz3eo7;#gsfvuZR)W!ygW!k=iTs2^t=U( z_qPh`y1YQzswLs^zFn{7xq6j$k#-~Vj`nGg>nqSAivxOaSEL9PV3AV;KapS@J3h_t z*vTz%psyh6xfZC^jxz`D-B&99qVu%O|(fkoSK#J=XD zUyPLwk%ibugR@iM;{?k_HE*5armxYOF4cd6mKnD`xIfvATe2p!{d%S@I13&iE}TFz z>R{*c>-!^GhSQuHPw8!q7&B`5laY%#c9%L#80HKW*i>I*N(zzFm|;L6fxq?`r?kcg z&Zh!#c=OGyu(pu7Ls)z1`0e^p_wz*w|LQTrsk+wab*b3Vi>`#yGKf0TaxJVTJDZpL zg*XFrMf1ivclJeU%OqhAYRj+e?I~aq`pF6QM~AEEQ45LShtZ)+=4Lmc)zBGvtbc>m z6TI(Ak6G(-KXLAAB&6^hO=paERf>=$D}*>#7`Q!Gel)I?CIj(h2cA2VAXXeIR%K|a zZNcSctZ5d>tZiJ_&01366!D$wRS| zZr8&aM`RG#N!pG{_dDAVtPDmrNnf*00^E2Xp#0_VWG}j{r`tX0mp0F6fw4=~xY&D; z4!mh)8^stR%969U@~9(rQex2#y*jH!Wj%Js+UJV~E^&#rlOeqj9Fu$wN#tn@zAMIp zhd90nWtCR;TmU3^uwsh((WF^?abiV}=SS@a39ZJ$zU_r1p;b@a&qH3QNAvApK(=6O z&Qj5(1k2?w43v`(9rd4|9#UcV&tICJ5G-y8VVCG!*Q$)1Aqz~I(=l#rZq2tTpe>Mm z;Erc6(+tFVmvc45{JbH20V38rV}MUAEl-;SQnsKE1U!q~tcK=fr7ZJiZOS^?9_|1y3x4unOxUA_^b)ZrwAyl`IxFvI_z+jFGu%B?`*UEniMYz+<5{qKmwk~I-r{Xg@@X3 z)XK+|HW_%C&K$eUho(*+wTp>>#l@r{_s1C2zMeZo|Phuof(D$}IUR7mj~vRg__Nw%Y$>Vwul3dcBj*-psNr zc-rWH@@QgP6a#no^q1AMwr~_!*`lY4_uwq8NFV+a-(c76M zhkIapy^}9AvbR*tMU@YwmN<{!C7&3wtw2K!|06;c#QF`XGX`VPOY=`UoF=+ zG*6AIr6**Rs9+hmSQ);;Xxfe)5B-ju9F~X(whN)E*6Vk{jyz*Nco#0s-0fBj0&n$e zE?XqcOsz@i>0?X-KDbu8aEtzAKD}J80Q1;qfWjJIb7(g#=O(vM5rYcfOb)q zxfFd))msM79&0OfDv_Rwbjq=wLOBC7CzJ#B9u%Erd<{F1X<1lrnU-JHd6mc!Ek~{S zRYTi(J4Pw6tFXOu<_6fdrw9 zvZr!Zu4s3~;Ze}iyy!@qjep_h+f*`-#DZn`Rn*P?; ztzov1)eN%@aNBM|ZO`_n0}lwG4Le)sF@vh;s=Ie-Om3JXwd~L79T!OY^AFc?T29yT zU%R@KZJIx`!ZfZ})E|)FVHv=ojSVTL2SDj(qWm9pO3!Vv8{T+Ch=9%`BT-GjG%VDW zE)2ac_lavsp}6H@)G;x8%eRJGU`emHuG?`gZPhemPLi%Aq#-sx8{Z5YTypq+NPY2W z;@9zoJe(75Tt5UX2kKzmtUVwLQ;ePTb@knFL)(rVpJ>0@=!wi=v#2}j3;u#aGs0@G z9(X+~*I(pf77SWgP+r%%`;2AP9^wShjIycjaU@f8tU(OpT&cgf?4X)hb2cBChmYij zo%vBUsxQ65S?rcGK@YE-4wx^~aicd-{ev;@$>NC)t(8-2eMooia_hG~|x0u?KZ*NQTl`P1(A zaIb-E)vd=ZhWXQ_a<}@f37wa}#M%0U-J6r0eEV6&*vrM33~r&cy!H~>u|@2XU8#ra zXm4q)cm`)`Y@CNpog_CLMD%ZTE;xfD=jmqh6#j}IJ24-5+lZs7Mg5On`QL(o;X6gq zUa$qslst$&pbM{^Trf3Z!0%8VOJt7}IR^QGA~iY*DHBM{nKJbz#wI_G{B3~M_5d?M zQox_C5q1z>$Q<@A1vH+48p$@g_~9+5O=@%)fhlGT_4p=y__`z!a%YghzeeqRw>H^_% z_D0NCDMi!5>t4XX;eo4aaG=+t1}0Ymj?xinHVjAp$*t#YT&4&y?LlT}i1%&w+=;p% zyl+6gxQv%D1|TWjTBb?GPK{`RJxQ0fBJeec-pxff#-;t7 z(l~==n50Q!KM3D1?pkFwDo9$J@;MGy0IYLvfV>ZlqCUsagT$#x%j!~9M*ci3@1rK0 z{3KZ79-!BOns{$G>DwOg9V4?Zzigc&ZdgCy`YfVhfMSn@d9}-{B~CpKQyC;|Yp!$a zzHQ&cYNNc*&H^}$dI*68dTD7*)`}l}n&O*UGiK^b_in{76NUT5E)rSr>L;bd3)+Y6 z=PtoXzrndFpke~E=0-bFway*tMN{=5W|YS`^C3`-Z1=P;Ayf;K@!AY8c^fHD5Ie+Q zVXtL(C`n6Bkbef;<2hQguFY~iD z5@~929lutu&<4Z8aX)LF%jWU8QTpKtRNcT7i^=i_{)G7Vl!_k%izY${&vvsw%x$#$ z?F9#*ylo~gDQB5;$ReCyS)JRSmC zrWzm$P8uw&v2ln>rho#Xl>amIYN4`2DF}$N?qk$4)e>LV>BuU5BG%RFT;yZKxX_K@ zY-WFGs#`(YmLCSM%Xk82-H5=a6OxUcac7at+#19_S=ONeZVqa#L2ZQpXyu$z-Z;XKFLUq zlQEL4x#l&Ath~lGbq>U-=P~8+Imn3N39k3D3q4pcBaVk#%N0c3>HWvQvy0U?y;|hA zjf}qATUy1fb#Q=SNX$N3sajO7<}b&jw{_USHB9+1AcTkO1#iP?0&IlwGPpwda_IU3 z8!1diwf?|ujm>hp7)kbsB1{=x`mv+|#gv3v6eDNDP486AkYb%J-FzT4@s#Nkln)4o zoL_B(Buf{wmhN&zz6w!-{vdFY>n-npW)=&56s?Ey;+##c3PNPQtkv;+9GoxT<=G;U zgr?^}Cl4r&aT~ z8Najf_!8W5e{x`;<85hdrNvWhpN;%w8X+gL#gs-kAvG}oF^|*dFZud;B;|B;G=~Oh zsdyNVJEwaQ-bT1;OrQ$xnoc~f*A-hGTB0x3U+jVt4~dgkIO%UXw)Vuw*}}|qCD_8; zc|zpZ;MT<-{Qdi&@$+i!k!5ay`2;+0Y__>laIL@jZ@WK#eX@{doucfeGsNQYiMAHj zhvOI!mgU?8CQk1jw)#cR4J4+2keV(onpo`v->M1qmeEM}Xji{l5tToAYzHTX5d8uh z)rUn!ogT7P(3g?t!{ocukZTkiBc3+j6f3I=;+(ikogPVZP-fDkHomOwzZ9*Dd+l&o zP~$YoYWmGwH-eucnd3YdZ?VMJi9gqmR`whO!WE5Zwn?N!B6qhi!L*jnTg#H&N_fup zcsAmQ$&WqL{{?bz<@CmURRudCPlGFJ(~me=S`^^tERPo2gTU$=lSh^^3!xW~uBjNb z*<3)Sm5V)%&R5RrrDz-k7Ck_xs%VgW3_#n52DPvvDc}~>G2wZBK zoP0JY7OK=M1M_bljdP5MduA2JvKfy2dqv)ZL#tuoR7BdX`yKpCtx4%Ep5IMc0usp8 zM_Y4T=?-ozxNTqD=ry?rUvU850(uGM7b49S;je|b368(tMhtEe{&vt}+Tfr;ml_M0?=C$q{*+?9Z-g8**O+e867{_H5 zx3Wh6DZ%f4M8Xxf;!4h`lV-*>3B)1=LQC>|jK9#COmEcR$74mDWHhn|y3OEg-`5t5 zqbv1uvsxRZ73ei$eFc8Y*-yfkgbLy_?jCKn%!~5_&KzR+r==cL2mk|jl=c*B=Prxx z;n}qjzSh2dnW(;-)j`VtHGa`Ex0RcEyl{`@>@Je9O76AWRUScL#n>chd3M@J-zgVR z?rC?u1!`|(L->k;O?dhkyaUTeP51Z(h2sM0mz2e;!s$F$as)CFU%JD=#ONYI^m*pB zk)0`^rzKA+-!qJAv>}48>xp>3;nd_;0jbGJ2>~AhN@0(V>$V2yN7Ttxy zghTqOHQdLt?(g2Ki7!w`NW$+>GKzY zA*X}(IUBGpDpb&bG6Dxat~}oXXL~nlr(!wGtr=)&vyGB&kNxpNC+Hrqw{JTUePTYm#p%)enwx{ww*me2#JcfxCTZg$n2wo1+T zEdTTJDZZ|xsz%&5(+`*OYZJH|8vOGa&Wi!A?OdM-$S3*y*rnXV@pkpZV(}vzxSfC7 zE?w>oye<~Cv$qS+v_nOCQ>J&W`b|{QDpKpejFr-Hr}YT+@4?-#{CDq;|F8#eKa-Ft&vm}2MX(!aPi5uQiO+wwy8fnBuOdm1*bYbwyvVV$B(NPLU;w8XK)2{FlJ zy@xD2XGKcqZaKT-OacBgX6zmSH&}>#Aj%pmG#+X@ZPkqX5_?OqX(a!z_;sw8_-38z zvuf9JOoCc7s)EelckL(3W#z)7)&2>w_4$Qe;qUI9PpKqjL0KO)4^%Xu>JhEvjT`&U(Dv8>5y@BM+Ayd%gkTh>f&h+ ziA=Cn<6WPUAJtOaCi>Q~ArggcB6dkK=rN~ZUb2I6dNJwI2H_o2;xYC|4q9qY$@trw zY+v;OE-%?zS^@DnDyVC#X9)2PlT^(EZ#^or8b(JXiJa;@_E#)f{Ez?W;l3g?|C3n_ zcpXTX5z0$I%)jHtNspSi|8RDQD*}TGt#O3O^yAhw3uEL*rpMWAvU7l3(#IUoX(PoM98pGorV;*AWsHt7d<4!1tsa*@d4fedYP%yP|W| z8ZcyYLZ1#RDCa7gqa{>HvW%sJYDuIVj>UA11V=9 z;M)KKY$}4-F#woRway*>jVKjttJn6TRd1>E6x4W(n=*hA`x+0!F1XkQTc3|K9Vhx& zAFEG@X8wuQXjj-#lAbK$*IjR=KB|2)O6psB!LJRV9?Ar80ti6;xNh3bT&=TkI+Rrx z>E6zkM|(ZeT5lLBT0O#%8!Fc3nW_FPm1Tx96eO1~O*GBTxGtL!27~a#-?DZr35sBQ zlY#W|6&k`^ufvY=jjxH{{ATHz-7>D|^D6%*a%cSr=#RYn$XzO2sM*pQ!$v z=10sm92Qifi7a7^(7v<$6fPakExTu6UfqlIdaBz?oIC0dAmPy$es3({!rw)RkLiP( z5+0uFm;EYYE-xJV*AWm7Vea{bHyK9p8gjh~Z(mSekq`TE<4)gOGYiar((uYPYKKn~ zf+&tK0O>jrcNroe%8^Ae#XNPr?)Ew2l&Oq_bJyF@WFZ2|Um)?ov#Z7bb?<0V3yy$h zBGpY4Jg7E{rB5k%7K`Er3N@J5c#G)Gz2mZa#Sd{7HVUW%quiiQ5Y{kSnM70z~Jn>p=GY%q|gr-~P~9!}OD8Rx$*O z?XA0){T%tbQ;6hL@4oUlj{I^Q3K8W70faC z3pJy&UBO?4`&`; zC^#)0YMX2WaLqGVGuXz;-OT_Dek>`t@rojL*Z5hu+X+RbPhXnyJ8-<^q+{{M6`p{3 zYsxPqulvgQSWFJz?+`TAtG|b#ppxSC`;fi=#bZkO~D9tZkO^FV~>IZ5?nW5LW45)=W&dO+1+rHV3qr zf;ebW&ogti*bTJkGWO?2bls|o{E5_iYHYi_D5p1>n!}?cl%IDOL73yFInSWJq_9*2 zV48F<#Z!O{Ht1YmoEroXM6&(QSnEWm+|+gIEWO5O1r!1aUl9^?-Eua7j2_BVn%Q$e zdy*IF>U>(`?l&^j6hmEd@YY}JHmMS~8x4fPkT5pU6K;<`A|CABjuUM%aEo{}JoFbj zs8gJze8Hrawu|t)Abi2xe1+4IbR{dIlHEn5$`v>+DF`dDo)1eA$HwG*!=6&VM^|XXOr)^ zu}HP7MY!*Vy=$JTp7DAh<@RGShov-W%?F}I^Hdq$k5N3bpfS&B#|4L@cVMK5x%+Hma#k@>jxe!vpZlyxW zoJ$yUQfpNjCS9D{!02Wgcu}a}jKZ4BHl`_{66uLokr?V2??@E z^l9wI?n~L99`~2l545H41VPEtwx;-5f=9-|hzh4C0P(5)C?K!LFWBZxtu*8ie37l+ z40u$uCf5C>G0@{e0Gx(MwxNnS0<&mDbkK`i{R#!)-_@L&W7|4{Y?4=Z?CBmBQW?l3 z#@Xf(kia^T0rS~S{mh1|IZpUs#Etg7BGx9aY>1%_vOUD8k;=^x-*7r)HzWIVYno2w zQb4|GGtfZn!5Eh z&!uvrj{kxS8CJ@7GVXO~S@P~+&SdsbyIqA(T-H-PwC0HTwY&@fQ^P?QdF4ea83Jrb5j!qZpmR7rNPbGC83|2SXx`{Fz1};G&J4J z(I<22_ut)m4NNsU)=75MTnc>J4?Ju09QKbRA+W=7o!>j@>l!_q7j$SFS0bQWkLTED z^jzYA7Rl;@g8f#EH(&GU%;>yKoC?f|&UJ462Jk#!!3Mc8M?Rp(V@k~(!1##J*0RcA z`@&X*#stfApGU?B*Cj_q|CJ{E0MfJUbZKVR($Y!4%%aGA9x22eoB$paLJ=6l3UJD7 znzfQo6E)TX(AETYm9c9P!3v`CtcDR7dD0U5I>_#a3kulgBg%M0kX9OeXc`}r#Ehte zjr)Y?XHyUBs$2C=OF8q#KZrk7qUQ;O$sI1KmiWNmKleh@MmLh9%9RmSd(z3%-cR}k z-7D|9X9uzvi&;_)9!}~a4Juy(pB})zc^a}EaPiI?h$ zk4F&g3>++6WMBOs7d%O~! z+H^&^clQTCI=kC|*#_#`$$7SFAR|%Ir;ys9WEwMVJ;4_qV%DZR;1g*J+?L|MdFGqqI| zx5{%uY7P9fIkW$I@E10yN?2+)G(#!Tc(J>%#mf#Te+JACSesCppl~O8fr2&SQB>w}`8NoJ#@Bs;8foCC%uSEl?z4QPDm#&*L%Z9J z$WB+h-A_L|ZCUs7CFD*O0cad_elXHxc5iVAQu*0fv?_EY6mb|=)bEk+D0$0)xj6|- zA**SPKqEYNuBfaGj#~^YG#Y_l83>dcb*FWKi>KdiUdi1r7Lvv5iRDQlc%niwhBd`~ zVKgo*M<%>w$4k@5upu`1K~MHGKL$*=6B6XbEx)RrTaG2OU8vMM?AR1(hmb4`L? zi&=i4Z-#lRKNW6`_&>B)~YlChs) zW=FigK9U5#ZbUpon7rL|&X|FJFclJc#lBi;w_OArD^OGuW+@RCt=>D>z1$}8a8FA- z&RKNXxw~b*L3A496l^>LFPUnmB(UBlx zl?awX$K}C=+XE@Y=|?H5ZNp$fDPCFhP6WbAef>b&yc4hxF~o#^zEj1_te^WEyQ)GY znoOtlG^=4=(*rfXy^I5FVmySwbJ09P-sO=H22_Mf2h)2-#Grk7WcQf`p@t-LrD)GC zdKn+4Zkr2CVo+JF+U4iT?4E`+t=mKEenvFcxUt-d$Wcggq!dA-1D@X6WsNv7D3Y2) z^0=Z^jvc|OE`LWYpvK%0&I7W>@=sbz_jIWP?1JKjP zUknCIPuq1O_5cNwaY#~(AZuR%-=wxxV{#pq|Fv-DI_cojw3n44FpXg^`?S)`VA1vh zy6Gl)Iu|utqf8i8E;hPmrj^#m(==JZ4lcokJe_-0;JnvB3b+q7iZ>#TQWUSv-;P2f z@NOFt;VW;T2zPH-*{E7$VP3k_X|=YLnSC(ITqF6SqEJJBfbMpCyU9qPEB5RScj)%(=uYn8r%lsVm(Sq{rhF|lO`HV@&I+GBLf?0T3eSgQMT)VJm--`j`JRY_yiNBPou61V)NZf=bE2VRMh?omrXdyw z`!!^*^o-H_-@9GonLP&QYoPa^i1jgj3JOO?b$Rc;!?vB2wph04D1lU96EII}D3injHI2LsI2$MV-1vytAg>|+D_*~P- zNL8h~1wXZMTlMH_5`-?cw}cyqS^ww_vUk+;r`?ElB>2%?UJdPjjE5Dk+P>Nm3?1`R zLpgw4|4?!*R8Ercx7qfe zM=dB$A~}l{J=SpyWq=OHShVqmwY8Z#7!~A0=B8U(J6yMFh|rWpYp&%6jfFH3wCd~_ z*w)T_=2Bkd)4W-FRIXCf=t2DK=Q(-@JlG4qYq8&s<`(+<5;`hXoDd{`JbBkNtEzvZ zu(Pgy2Zu4vRXB@lZ&L?gZQ;OfHX!gy_9oD~AGCA>7ap0_PB?7R#ffE9Lr~Ism-;sw zA|J5=dbPkSF@_nt8T{pLvc$YL&Ri0uM3fvS{|cfq9fpWVz^tZb9!$|PT4Av24^ryY zLe{z_Pv}TS$fC25J(_$?Q(m#BK6B#IEDotAFEODFgeuq%1K}*f{SZM1^5@5o3oa9r zocQ{1dyt&Ygu3NlNelX0E}4nmyT_rFWIfC8-t;Eh~7&&jN?DWRU-fyW0;hwKw;)>rLX+pDc?5?$o#G z_+;cFJ_YI}cidue11x{5p#g&3jfz4@{DEEuxh<$X>{QGF;V71&G*2D70n3}<45EK0 zUOrhZz1+YM=Qn@zXh^lsCEZ2MC%smqS{Z6JaDTSo4R4kozlndVvT?Lr?aZq*J_hNw zWSvKiWM#De1X|}nJo{f3sGbc9$&H=fsU3YKHU5DdPq6lSvO;!DM12svwiNQv zH~=3k_FoRZ6tnv1*&>P^kx4uX%P(H|KCpH8)Y)sAaP~|;qlLT+b_c3%I^Mfr`t*Q= z~>%Jx#xPuVD>r^ynz(J+|M9czWbaECT-K8P!q zXzOg6t<9?F8*MaRu)1|v{;+x>M#MU@Z_T4I}~;Wu~?D{X1< zeh>4JB6*qbibf%-$ci`@zHR0yp{c+zW1USYH0L``S=ZmO@n02G=E^_Ckr$jf+D) zaE>(iK;}@o=ZtLfo#Q!Bh}iq;MZBb8bzg?!NXf*0$Nc{i(S$Yff|C8<^xsJv&Ho$g zKDb9~zYNvWn9NKAoZd-r=nFL=l2KWw49p0!Oc~p-W*(+`hx(0Me!;2I?)n(69fgfM z{`)akEPI~xFm>5t*~Guz1Or{qd^o;rDG2%SitLKL6*S5m@|Ga*^e+`)yk_;`FF|Q| zp>E)!VKv)8-Vsz{K;5m~ZxTqv)kl7_Yl|J!qg^pIzGwWAk+?0KyUkQq^iH9PiO+0d z>Aa8V*=7p}GG0RFD*zA{PX~dr8Fe96YYp)k_yj(rv#pMug*A`&FQT{8@zVX7%xt80 zNoI?FZh_xN;g#Ab_RK(FF*48r4Ii!+$wRm`EkDya_fZZOr8QqQQk0wtaoVtAAue~w zD^u*$eZtlS==@o)6?<^Nl>Cq1G^#<8mQ5mooWgUph1y#ZGk`i^PS#N<1|WW02=kgG zg&6GsISXtl7*Ns=A~m?=z~NqlmFvx}1Sf#*Sw?mm){7v-^?Quh(Ds-4tK=%Q$IaMUO-qm8xaFBYv2%y)N8C`^tf|GPs^}70Od=pi7*>xo{)xq8C#G|F5;@6=EV~R;B_sLs zg=L(cnHxT@0G9>!TCPwBaQ@ngGp0rihHGlIpMtyxJMT8ut$VsB_QH2NA3k%Hs&7c( zT}9z1_2g-j_>GAXe)1~SoEG}V07f#sr}9$=W*39FM)hBj|5s94P`&I>^zko4Z-`p`GZOuVQt<&GY4a(IXBL6AL%QW9{6UCFF{JO+#q1N%S51kRW!CgY%4Ku2Of2z#D*) zs@J?-qQ0Yt+oO>P8q)(boY;x_U+Xs$^tPKeEm23rx$=Ve)Y0w8W&%mN7KjCu>WWVfti~b&H*&fGrK+eVEqN>Eqv}__fT(8DI#zD z{*bbFv;;Q%QuLf^unwYnid%%nD;*X_ap3WDOZ5t-;rHP`fawHMI^LK*uf{=W{kk`p z&+y^p40~E~d_otNVV*3=HZ&UwoMXtCIKyh(LVXI|_2s+EY_`Ks#ljTaj!2osx?Zy~ z_5*45S@Ifq_Ha(b*+A2BNjKvP)?N;AY(Hx+sR|q2NDnNraw3Cr2#f?pM-kngZHqNe zTx0Li2in-!EvOT7S2p#hA*dBDx%!=jc~cw$L=A+lOUW2V#lT&1CPVF+B$!`r<=8e) zo&)YNS*mOCkFz>0J&-~SgqhhzgU>VP!j*sUZZ93*$H>bQ5lu7$a4YIN`|^bL&kTc` z0Ohn`#fsYp>W>%R#F9PMZ-jpq@NK~MZK!=$-?(VOXSA{|6B2Sfk-8PP zY?su0NPFxO8e)N_qG4wwSkGBHpOfe__Y!yUZkNbDVJGW8A;y;;R~noO9n&3X#Jq(A znWR#n{{^YAPLpu>s;etBBe33y5=}C2FOAOqKb~?tri}D|A4Xm=%5;sj>%fzk*xXz4 zyTPbTOq53M=&-jO7IFTdukr=Mg3~W)Cz(al1l&!r{Yh?e`qQLRJ;g?O6|5K{X>ebv z+N>cwX*g8N`GSqAZ}s*n*hdGNrs%_-C_93|z2%km&Xf#JON*LaoVPt12Xm(MbdT9;(Lc71p5 zWx_Vo1}dWCsG+@+XvD={yF22T-5;4T0is!w^k;DXqTB0#u4s%BulUsM#eb1sA`@L| zrHiSCP1=Q21VG4GQ6q;N%P?hFid3c19`;UjrS$)1XB||=xDtITcwu+0!*|IQc_!9Y zZ8VRN-1l!vEgDYZMdkURIhi{Sl<2$d*p^+%ocJ;EO%c~SHeEg{I<$EC%E{9}CZ0ps zFNuO9dj=-v2h3ovJK=r+1J>qP(TI$V9xd*SFbYSkb)JLX-Wyq zgvut}Y<+94k={<>@@*1E-aZuJ2RF}OMG_UE=7m0)CbQd&rN z2uERiPjP`R@D4noc>PXd&!P1 zymYAPE`VsZC86*<`w}}$6?~+3V?|K%jI5&zM^m7Vsb+ol4E$#jAQAh4YG%O6K>P{^ zg1H|@u8S=lt><_FAGt%-Z`408 z{%j0NA7D7IB{n={=3}$kQ!f8UrN8E~ELVhS6LlHGw(@&RvA1P>_pgH8k#m?F8>uLN z{Y(y-4v}=y>^^ZarT5F6BA?`7<+!$ePS@E4}h-z6fB3y;6XDkF3r*8RQ$KSY~Hcvi@`-wz3=nznin#-V_jGkhoq}`Z4YP3-$ z*F9Z{6$)$P9ncLDoorQ&S-N=-LMk5l^hHObV0xBQEA^wSMQ3)eRJOPI6ikQ{Tn$*j z3s`AhRh=?;qVyg2XabyEhdO`p=J)$w9*#ad=t*oTvM5TXYkCH&VeYBRP*1VHE^qRR zwNK>rK0ohuP)=go_+9rE0SdUf*W5A~a2tdSv1}|>na4H7ch0I?W!+2-X5(HUgPw-- zT&GfF)&czN0^shlvRC9w#?wa*>(NL6?L)cm_3I+xh%?ux_qrW1pU#@>asp9V0VOBs z09*P%+(6)+kvqyv2uqrGa*6@jfDDwgo0HSO7I%cyBDIh=u(V%@edv@$H6X7&92bh*W1 zMrZ`T3-u6)d>ilQx;HnZGvnmuMzo3#UHsqVIfb{MoWYwJyDEts^4gD&p0`94>D!l>d(jxole!^9+lkZ98Qf36vb zLEu=O5KaSoUDG#`g)1Q7rDih{KcD+Mm}0-s5Lzn#2Yt!lN~@^>4{*lkqJ$8-0P5e` zrabdyA>|rwJiZd#|9r9ncf*OY}a@^pL-=;RRbq27w}GyMty;45JmnYPv^P( z%nMUBv`*PbcxCTq|kR>;kn6)32e7+WTdN_#gK%QzaL|Q4shvu(6`Q3+@ zmHtnjo&AoC`TIu%-CD1#I)b>6>(z_2i)_k<9f~WJ^8*watkUonmxA!pte4*F$rdtg zl0-1G`oe#M5+G8xbIw%@pV`l5pG1%St*3s*TL2>dkPPW5nIwSlp3Da&+a_l!j(}DX zOyj>YNCdWS1j3!9c;5h8mOb@#G~86D40yJmsV=_+m6b>j(bQCag>+&1aseEVtm6gjP|Z{i#ycSL zAvwes#=-YsX5o(BT1e)#>$Dun(GJlt86Zppt}p+F*ecwSno>IyKG(#(i-%`kGL7m36=5CpGRoS8or-#B`#6xu*I?Dbxu#R~!K%=lz9y6R^i?=JBIo z0AS_Cdvnh$RH`Ky=f6dcycY1X$Lb$CnMK>-EF)*8~D-iiFP~x{e%FnII$#(s%F{h*GI%>VVSp;wr+*FY0tCYk#+&vtM2)vXy$) z@0V+7=PXOvovp%T^@Xl$LYom&#Jw1EM?Hst*AgR*#u*+Ri6EJ)b*{l9kAf>LB&?PV z+blx0KY2XfBwC{V8c|1o1Oe-srtw0H32TzW3 zj2Di&+O^5;!DwN`IPjR03i+g^#a|D{b5W_MVuy!O3es`ODvNK`(iWK+$HG(@=}uQ56JG>X{p}uC5@jvOrhat zkV9vm6)6>z{EO$-i)cEXI|Atrsb4k%g+tHvy$TMn>USWK++NDobbtTonB~kdv0QMt z`dH#?G(vd@Vl*#Fc`PPF!!ao&`}9!GHd27gow{Q>A$z-_gX}!)6U-WL2n`xZi_J(S z-yTs536K4Lw>IT}WZ2nwcl#Ayy%i^z&UgmB%ay!p4ckn{i zrK-!PcFV?o8NEP-!tXodv%+HA)i&{?!4Iwhjm)`NsbjXaHY;xBi-}a)_p$XI=-4A~ z#GQ1I5{Ggt2%$}d-JSiD-MQ+_{koC3)RMBZDBm=dhl^1ddgU~vL&;tApCj)%E}617 zd}qhlyiZd#D6T5~BJulhf$XG^2oy`qzP@+{%_n|6(Ka)cd~a?sFun(=OS8QdJ_4Gs zi2`=pjnjmnNMIg9<=SWl6sAWdeovo(Jk_s~U?1`a#r#`|H^~2;rVU=dO8f=!Cvo6E z>WlbOWS^aHv&8wT-#}=qU!d(%aY*}s{e$KOv=YC{;oQz0G>9^Vp#Q{NfJbCsKjhD% z)x>`ePFy}|{)R8FN`eK-cW!M~Ha}Rxw<%a(UsVo`41Os~2;3oevITk>&a@apf zl?(Nbb6$G%4|-h7oHoqDoN-pWH}X#9dv7+w?YDWqR#F5f>MY7mV#3@2=>`2^P})7V zopW6`vuc}ZT9M8_>!2xm@3@sO#UMI}glcOf1K=b0k9q#Z&{q7v3pESqY+Q z6qFV-rD24_mRNVDo57aFrZv1<7=agePeat#zy?q9I@@8}GG1s`m0Ax*sb(9EJ5cXJ z3=W`F@S;Q-r7-PGd6jh_jiQfGu#yie5bY^`a>z=eb__rZksV_P1ETPQA9-axZxfkw znaJKVocbqTT$lLj4-0<92@$o1e2(UW!YkmH)yS_*c|6_~WeWmLfvR%EpM;?3U+cb31*S8JZwpFk_ zb#>=9p!j0uE|*{10!!?hSbBoO|mT8x_5KyuV61 za!+g5@QOY`a|)oX#8thXTvU(YrrSYa*6*^r*tWVpCRH-k)xT?>8_ZoJkv}x|t;j^TV(_G&IH|q58zd6UGTdcEJ}|0NCSC2t7cQf9++D zyNkP>U4d*bk?#^1#cpSqOSef46e2&Zt+X$~q;FVj!HBGb7xDE9`(sDv3K_IdbLbf- z$bRD!1qL{#Ra}+BT_%GqbZ$vfgxGE=bBlm}JUI>Ohq8X{B3TMgpdkDhn#ydsiEr#V zD@*OEB+a235AKOan{o)Z4QX-&3B^v*Qr;_vPY9uf@naX;(5(VnY`1*ILw`ZF}r+C9Ci#GxBU(qrIHv}}3&bGT_7Lp1^ps@*cs89tj`9l#aWbmv1j|`cA;) zwTgfIC6A>1yVEiygsGuh{DRSNu2P(Dbsy0 z95Z+!GI>43Mx0TshhJhUk&HgVj_H`4c9N}H$RrCFkBOe3z2FhX2ni~C4$bEN&Ao@k zh`WPleMNoRA?2|=F=}%yj;)K4r~|gX8;?L-WOn6y(g?eqkdPF2h>h;fR66w|1TJlqmI>X#JnD#?&grghg?(NZXv{H}?&T=Fa~Uo}i|K_Z3hkoE zi25|Q%!hpVNpfK}Kq&9%Caz>Gk=$dTl&h~y56CIS*)0mUaAD`aqpTg%2*JVP!arywlaka&X(epS!o z=$`Kvum6p!8cuOJncgnqG88A>Ge*vBRcim{fn%Bmlty^wMknz$X~{JKZ?a;e zR}xynkD~7#G``0YAfek-_awsrh+T=zIXdCnkAS`dKh4^!MASJC-ZLKX5ZX zXe6vMA~wb*sIq@V^4u`A_XxSLwQZv#Dr#8Dkr+H@!xv_bt$nUbnclL%(MzR*SToGk zY5;+DA@!7Ug@LqPv*>7>Wk|UDoz3=erqt~3S0F7Ke;m1?j+Kj5ec;~XRsH;|5iNVx zJ%0lb5!ifzNC5ih@SQC>lRlCNF~jr-T3#62$0}AkYp0zJBgdc-)x{9mCz6i_O+9^6 zkqEq`SEO8^KT6$j09S4G0o7~cnj-v@q!xL8iH9iMx#yZji6SEdf`$yx3ISm)ZKHO^ z%|nF)!B~Ny6(6PRNh4;08~Z)pp_{56zqN}VAt9#~fn4AFr@qUj2R{K_*z4`AX53@u z`dKSAD|duu83`&2Y22IOwp)hZ*=wSXe*8ZD6#FX(-iOe0Lvk!o9!2#=PppyzRu3(M zyQ!tJkAV-7;J?mJbdYgLIT*eg&K8{?LV%Q-5tvr=4YYO!q;#^+ugkqj;U&0S%q z{`N(|XF|AoG83vCkLwW$J8UyhK(yk{Ie2%jph*~}=aG5Bh zI(CnPM@{H^@9t{@BxP$0+~8)sQU)#lTg2DtO053ZAWI~q7h1W*&AM&QBTS5-|FY~i z+M?|7!AtCad4C3oEKUpm?4B)Uf|NlBV^&vR9I|`k@>|813Y^dQ2-=G_v0Hv>3CkDx zMGP2u@|}$+&XrjinwD#ai91 z>OSeAd?}t=tevY5*(JT)X!4)ul%QH}H8Fpn`L>^m^euaLles~fUmC#hu(seq-w#g6 zka-NP8^)oohVR<-eO&p2{EutSPG;UCp#%hE<_-M+pm+-Xe;`->7wzL~?T*WlboTlM zGn{NJ$u6rYM=`Nz#;iBSRSa-Dcs4ehbM&E&fKSq3>*D&JH@5wL^{%?J=F5*SaQh?OHEKml{e3-ulL4RlSIumsuFChCO^BgbH{En*^CXSdCAW!)`ba_%vq#T2)HB*;%zOGHS*?F0oEyxJa}3xs<;qPU|IlFo z5Ro5HemNZCJ!Q*6RuTK!w^%O82>G>aiIgAqo$TkVKC;up)slC+dAje*dObZY*zRYh zgl%xX;8`Ov;kD~0t|-U%*+nW=N>nbBtbS+l=V9y8W4fuV<8rCaqL!_>g?pSPS=5rr zr&engziT9wlbRa2iOst;L4pwdr#u~t9Cea%IBJSK;jPSf@sPodVk4wfT!zdB`u^Ly z5sM)!A<2Q+PBE!36TMWLr9fD}Numye5De^0I!jS=`07!Zh253rA{t=eZ(V5>09#py z15P09mElgCr$HF}4tP#6!rBoOA7w_Y%^j?hAV&cO(HCmKLgKBMzTpiHA6O4CZ#}}q z9AUjF>cNwboD0gg7)Q4@+en~Bi)vj<|Q z;>>xBs2CMlX@3@rmI)7PtZ+cMT{+^VqbHp5HOoSpuC58<(NjGE4UQX^ae)F!mvJId zhm7XR7Gh%!KS<+O5(carzMvQwH1(*DbO_T(HclyHNB=){4?P z&ow+731>Bmi>3zFsVW{}+4ttENvl^3gem=!=^2Z>Cb+SzyMvSy9@1v5f^X%%9=5#H zkr?(Mls2)WmAwBR_)W@SY&EPzGZ9-}?$-8mwtwFUahuq{i9BDDCHuGrb3G0nC>}Hu zHG>!|Or&~{%#b|qX^3v;Cb4^NwrU;7O7sFXg6dF`o!jgRhOcK^ZAThNJ3=-qi6=s< z>VFaND9TO`S`SEpF&U@%1Y}Vc2V_imSDs3_>)CFu$A2fVG#c^-a+56D?2ElHtT9Qu zLPIyl;wyZjV`e-Dm?^y(Bt(<@*zAF#FXO?|`9Zz5fyzPifVU6~1mnVE1a;!!;~e~i ztHFnsDP52)#}8463iPeGGTQ2s1M-jY)+>jQ=s%;5;XW6LD_5HpMlPe59W!w?pllh1 zQ`{WW(Dm<(ux5=%qrnq(idyNxKsE%_bX%8W61nEQk2L?;n4p-TUF}n?jTR8hTTqhe z43+eCPC&$FgiK&A0s4isS9yhq_$a@P=e0FG^H3IzTg)?ss6!A~+K=5p!H0CvR(%EE z3Ydor;i*MbaLbg2LjsI^luk@t@na*PP^yp~>F^_{d!}3$7{wn$O*@U&BWVAOMj>;} zYO|BD>N8kMDByQ-W%v7&(x4;DlJU_%I>?K_t8uTeBl~yaNnEc(bEWiis zPm=5~fzBV)T`7$azNxoXIpHX(1E#8{-;k$JTYl1BhjuYrCN^}-dMa!k;&u*9jYNY` zEJz97jic&f46C=Kjc`7L*;=3%(4FaP(j93x(Ql?IEs&T-w~^%snHnqw&!qR{50@;9 z9?inl4+sWk8O5FHz+7oWEr?tR6=oWZhAGR&_!#Ri(LYI48%cLO_#zOA7@_qI_hh*7 zvk&Yh=icy0xRBi>(yJjCL})sMaO<8-fLok-7}NO)?1)4%)<3e>_HJ!*4rF@qbKwoZ$VZH%U)3Cmu7E>VrBt^e3kEHD zob;V}ZI&>Oq79W1TaH>#!}@;;?%tUb^d5cUrXv^G;T#TjpStOpX9jKT8J^@966@>o zt-dy!qWyob^v=PB6?p_4nDMvl!70QqMO^D*6a~G=jM~X4l`ap3#D@Pj9 z;x#O>%jDMUQQ~wTiqFMfJ>vg;bIdXVd@UT^oSh}5L@+9M2rnJj7|dgR`S{;1-~4?8 z4VJ`AZU5^GHTO{II!@BjtYU&^0y_aP%rq=?QQCJd@Vls?>ap{@40D>`#QIE6XV=<# zFdVVw6EX|XBJOcY@`!FeqH1Z_ zK{kT))5hGgSR9cyT4ZQtT%nf-p+xFa-5X`u)-2(j>qqeG&j$}+C86vs&8{fa=cxb2 z%T=%1W;12SkXz_gVQct+2LQ5Xs1bRw4()9Zg^gRvJ@qg;NgNH_oZ0#%DUekPh?W2VNXr{UFq z!JF@|#QlAJI`|ho%mKV(ruM`*1SXpmR@9o!dBCEPusIz~(Cm>*AdGd_29_UB_cJ}M zXeLY;UdLilHwe+Yq1OGG54<-#FyPny=Qlrr0IFZU;<)7)t5d;WRe=1M53P%Lo3=he z8Bql^t(dzdg9t2R9sYGd!tXM;cbu5G$<&cHtRbsGdw?v+CeN2B`q&FYn3MfaIUMH} zG8`@|8e7lA{nhGVZE3zb4B^t2M_x;aS91(@a7iOr0D)V4|4}Ylj5*YV$8DE2+I+9y z+yvjlK3*2~?$GUfcOtTzIj8Mq=(=2fB|#Jx{Dqhexc@kMGQs$FqIl#0jTErS{vp4?JtrbFkgpKcu}*qlU|@UB z!O)4sio;jcGQUPK{Vxz12>GhJN8;t@3zYFdclvEz@UJtBnPstPYffJ!VqKqz@@xNq z$APqZ!cFG7NidEH<&w6sE%9U-PkNw0KrR`LMu*RJx(M*VyEo^U)2}3>o?$1Iib0^4 zMknDFCWN9;?BsVIo|Ipu2P=Z%a~QSRPf%iRHi8AZ72ss?l9cSDO%pV~8L>0rn9YRX z=W#SAa(9i{mhJ7Bc3m(I+X9L}oX~hKFG^U~QCY?)&C~S8IJ>DkThTn!#P>Ejxu5NK z&tQ185A~G|y_xjL6}t`U6>0cjKA^zDqHl+Nfs`P((m@BMQ)_q zWqW_)?DiEmiarK3RsS<1dJ|$}7>zd9;EU~`;{Mm#%|(5dSsL0M+32Z2XI?X$h!?K< zm37)CVUdBWGrmuDuAG}ZnyNZDhnx!_HnnCcCniGOTwot$hgwNsF4s%BZN} z26ztPW+o7*rHuJ1rK0iV3hWL8wit}pe^r@v)S1CcH1Dlkn;?~! z{J>ME6*^QOQe`uG^p-?wmhHEnD%Wdjt^K(L9ln&=e{U<}?brG9E)qpPd^8Dm7#+wv zyL9V~&pM8*yM!`+K`#aj!KYY6C}8GdZ&(WPf7H||I=o-hThwRaZa{Lr%vb`QK;v7S z&;omF=`(Z{gbRQ2{dx*H7?tLkI{5W4Ns(taQKdN%?QwfnPZY2Bx~+;(7VC(P+|<~~ zI33-(tMwGXZy`XEFrk~W23dT(+05&#tp6DY|IGS3>>mqYcNavNJABr_)9oSwMRCJk-6d9k70sYa+eU!dRc)&(A3ErFfUR*m|%Ri6|9g02e zJ(X}li=6woTUYVFuXF3+{CJ8YYr;J*%Q2d&gQ?i3@_)W5oSxU^>d}uTbbWzjg9Qj# zvET3*OrK$1MUR=A*XAZVQQx>vd-a*$47YP5h>{QJ?eATicwFQS&xITewN7(2mjf#O zl1Zdau(%#JW^3&Rb7ZT~HAG6=28s58(P;M(YHwKkUzhAPaYM8bPvYh(Z6~B(CISGx##6QLqdEM}X8p*N`4U z4h-JZZttZXB-KsF)u}L({rS0YRhXch`cDUyLDV&t&yOMw(+}|OLal{$f$+J#V%vY1 z>>br>SQ1)5TupgsC2)1WCcwCNji`D{5{bvmV@?>yT^e-n2+e8W=ca>ol^0kMNX=HJ zK~008PXy0mwtP0L_trA1DrRpd0>-Xrq6lu<*0Xmir}+x{Lst52O+~m0y$_DDv!i-c z;_QZPcItvEj}GFRow}Or<_H2&j{m|I5Zv+ zOB$BYGS~H+hC^Xqz>}d$mmHQ{qC)E*@?EYOz11E!F-b|_VcmisM#1A0gCN)xPvB}@ z(_b;`^oX&i)KfOY;7&yRZf4Z>hJQu1#*5QL>*1Wz1UQv15!$Yj%#okJDRkd;U1zdz z2DhYX4hjd24Jj2Wzxo!&sv(mK90%DF2qKqTiW~amsX=CVqU7Z`ObsR5eEJRlS^==d z)}Y|7AOupBetx4ev+7n;DWElTc>x>DCk$~+OS$d|7AL%}<&L9L8L>1J(^BWufc< zVV=~thEjz*po}u%vK~x^f1@Ua{rwZ;E_zo(K&bOESvg!qSF7SGzty25W+DinPHXOW zP~`6mrT<8)SwG-`BVI}T2swux7u|O5oQ!m#RLiFvD?o`~p?{Vk0xm*w<{@@_BQS@) zom7YR>A#U$Ma{k8f32v$s<7KCuzP&q0u)ti`1irzz81M-VdhBQJHRekd4Dh|j_fG7hVkD-k30Y%C+_nY5xKG9bNL#@20|Cyz$9c{L7*j?sWJkhhT}x z8FadBiV(}vvtjM)3wuP?6AO{Jy?PHs3$o zzaxf}$!QiNX*7$F<)#*70iP?PVk+BEz!rY*D8Z`k#T#m_QL-*a50-+m6-L0>2e7)7 zD?Tcbv9>C{U8bnGM=XfS!pHnbB#4H%St!{Zi>dLIf-sl2AA~i-E}w039Jl97kqaO%{@`vF(^U&Ek%RKkYgs>8wCvUV5vOlp&lwa z;b$e^9_=tRqXRw?C?lOCz?pXwgnOyxY3>N+&jX@mVvheCE5u+PcZG7Ne+@A#%)mf- zBbVOP2G(rCXQEQxrLtl&IF3ZqBjg~Qi2F=k)Ej}Ld=V>{dEsKkzyDh^|9T2*D{nZ; zS(LOu3B3`**=Rt-04y84Ss|=WFg)>1b8|t1rs%eG=>9@;hrOVj(2Q2h*7M7AmSc(pFc!@Vc6Y4Csz^S_J zDLw})lbJEpV?^Wb!kmzhV|o@&dwY=)@fx{$J)dxUl9pvSVAf?RngW&7DA4d@X8 z=^vZb8B<8)E8~RC-29_AK3AF{L0J$NROwLhraAN7O^4131$qb_YXlHOoKAQCcAW)$Ackr>sHW-DRDP%P0wHgTB*EN)hqJXzRK) z2jt)kl3I+;qmQ{QHo4X^`|OrN=g9xiLfREBorTlon(HV&KWX>@lU=zSM_>-=*Y}wj zpVnkf2yvSi`1tyBlfHfW%~%C4_m<9f0lPV^Y9rC+zYI+wx0f-+MWHa5VoO8N{O zgpLd&-CgPIg{}T`?xLGrWnTV5o7mVgCn+tjldD>dK4}{Yi};|Z+1}}^3UHYM#+3Te zcf^g72T5aAWfxm(3|x_pAR_vu&((02tR(FopXBSQ$Ey+;!eBA+suTO=5x>}hlx$8i z3a%hEaq#sbI$P&=)|=&34q!sEy@{w^Xi|s_=>Tw2ImxB3*R0MZcJpcyhyaGU@r`7T zT{9wmT_m#^dhmHLjc+Ygt3S}~?? zr;f84c2)(sE4zu!Q6qdU#ANY5V`?GNPS1|qHI#=lA(4bj0{p0If6pg2|Jf;LS$q=q zTrE^$lNvpkw6!J_Z$*MYIMOTX>{IBGo=}ZdB7=D`m*C?>%=GNsMqUL34ET{EA?dxq zKZ0Yvp7i-XF9ygB<$o>iU{@7tig@c$SUREF$|Um}H5v=$Z-rPgU5Q%6I!A)!Vv-2rW08zsuz}@O6Ejc{ zRfL9@xkDtbMTCVSDbN9}&MK*!mL_Z<-i{BV;;Mw^jJJJL{>qPUdAM&ty+6nR)RGP$ zoS$I@;!F9yGEp}g%(EcDkFGTUvBzgMh>BUDm~4exf1-MY%iA#=X$C+%AmJsS|$ zaSPjKmm1Mt_kLcs7V=&R=>MD8d)zX31ax!!JnZ}!i@N)NUIVsxd=Msn_>G=p>#&qg z2}Nt7q*U@7iqQdg6F>gqMKLb=jV9TrN5O2Lm(`(i_ud9*I~ZcW&axI1Zt|C9%|o@4 z+-)DA{Qv&FmY*_4Edi+=q|X`&GvHLWpK=7OE8AK=;bMDMfM=KA6a`JrTYz&D5kh&g zTSfgT-~KPXZoKuc>w1b|Cr!utkNeIe`X!pZY|ZO7=QDh31S(g}Sifi1=T|BVf1rA(+r z$M^zX%la@veJhLwqYq0*s)bZF6lBYUG4Ih+-X{;|Kd@pR~38MCs- z0|ehbBj>GyI#fATB>(!X^$si$`F-Z6_#6X`ZmNjw{pAozTwiks|7&CC`MTa4!)s~m zvb9VuRY@mLrWaw%rs;ac53UamP2`0`s{GWNhG+sRMml~#NIU>5A&T$uUqw;h#_4zC zjeYf`v585o^IPa?o+<=k(B&f&R<;AkirlCrL=R?oV{D0pA${iTosio6E_4Xg=aGw! zX$fl4^!141Gkh?KYY}RY+`ODXrH#J*nF>$4J5p5p{WKi)H->v~v^U&-9%>@Y`%-Df zF+OFtAlS6EROw4Nb#MHx(9uW3CEnys+&dp4SZWV)*S$-ylKLa_b>I_B@Fltko#J{r zLrLk`d}jF9sDVu&Jq!K~oO!pw4Ofmg@)%XT!wHfa3zF7@1=>m$-$`(-sWtTAwIS?7 zw0~aKMKbDo*UBw(BO)9kKGnQ;P5uitHGHnI+Ze9y#Km9%M<-Mq*?k`?RDFdGexZ3H z(;oWe54Z2T^-~Xs9|#NvTz%WG&axW$AO+0f0gFKjxI=ko{S@&Ba?blH67@6izQEs$ z(gtZD1;W2n`qj+77O}Fr9+*GO;^~l7CT|m%UjN1RaFf^-MA(e)eu~&@<)f5xm*jh> zk~|aN>P&eiem!1`Oox%u8lqvsKq5rQMU&2EAKhEMerPGZBPKsI$8z zZ(;_sfS_F01B>hXU%gTj$dK2G)gxhuT*zomjp}43UxMx@oY_abDKK|c(P#Ba(3m;H zgb_pUlm!T;b`%=NCL(S@L+2`)P{ago#upTCX1XW(8dg@2D=P~>Wj6Y`==+b1w@$NK z0`NMm*+fnTH!2D$E#J0dFLfqQRly&~;0jNjr`?51cO3Dqd>d;Ir8UtNF3HCnW5d(+ zxLnS?g$+R^>+!8FY|m;b$1*S-*-71(zG8?Ry_wsSzvf7^XOrQNwVZTG0OMcam@u;A zMRHX8^}QMVhvTCfpglydJkEc*$>M7p-68p}*U+T*?y#rEBW0_ZYr9Gb$TO(gxVhVpJz^Y?D!>n76(+eFOGz$ueU zD_xz6-Pqxr>tJKRw$kojG2XvW8Kg>&L*k!(I{Z9Yk1iYg-ooyxi}KaMzrckB?_A48 zFi*>Bja*@R;JOj#7pm4xT^Y!b)k|RPmGBsV;8Fh>lPrLCp_QNf0F^M>Dj8mb&v6x~ z=D}`kLEY%uoYH5Vf4sWSppx)kx$?r%qvJaoXDZVrK?{yTe1>@kMnSG56p~z(*^;fI z@z)6w7T=5U*sN{5%}m0kujSi8@Z-vLEc+mcGoof=P$wC0R4--piv97QfHNw;u)p3r zqHC%27`(I02Y-5~6|_8FOc+&|N-n!*jN)^Kzzs8=bMqM|8XQTw4p>MK<|lYN8bDGz zutEN&;^l)|E{iyICN7HdBST5R&*(!jikz=5W@u)kIlh($-*i{t$fuAMQ*9ujJ+~$V zKRySe-?2j)MCDwo=eVVeLEk6_;yrU5X>^OOQDbO0&}^0WKz#5C&)(-22+Tf`cpw2+ z}I2 z-B4Cd>TCEm8mbMZGZG44s@9WT;pQWq$oVg@MdKPoa)cP7PC@fq0jZGCd~u2nRF6fB zSa}t*tNGw8tk~Y?^OR$D1J%t!&FU^bXQOpoQAYL*tkRVa!^tUvQKz0q;HcnXotj@g{iz}*B32moz15if+fLjvaV^C%iX#VV^_^H?5dNmUWFPNo+F z;+XRPUhJda@SI*m2V=ftm&BA-;R;qrl+oWuB;nQs7Ax|^2cq5&>Ht6$z2)I-Ir3=r zb>J8qkSt>JnH~`fs(tVrEJ|u7Oj0J+Kz)a2)w?*swRBe?u`gD|cc8tnbon1r0f9M1 zV!k|;8JIWy#ax;ZhHAaidoo6C;%l{p@ad~P8kE&&>-yO?R{)|q&8-W$GH{0*%ECzN zsLtH~Qd1|p_w_3&&aK6FAa$S5AA*JpQEw*Jz{jkH?sUfFB}J45HCkK7k1?Y?oaVrmLm$DF$Cq~?_mOt8VhLOAVdvbY z0*}@46nG3_YCE@1Oz2*8ofHa>vgx(8VRHA?-YI$lrOdirNa+n=@vViAcM!G^!FQqcuYoh9Cw@l%TkL zZG?fI-q^?xTK?c_#QeIvh?zzGKWR|&O?a7TZdJ#}NCM7`AftPm|?hu3^0bpD!hE2*@gm+!`% zahO3^%dzdT+(meAXsaHWA2;4Yu7uY{*CLZ`Bu}Q=chHhP1sp2k4;~>puw!v`v*>{R z&+4i)U%SFm%_i9-zURO8B^a0_(k1=kHS#5H+)(*=_r*WAe|o6s<*7~gjRKPnK=)lq zhA@Z2U=vkLhIx=OuY>1lkCJgeF4h~jYy;l$_rK`YKLsLl%e3++Msk)=0#T z@{hPT(?|E|XMKff*Ng8h3&Wg@tE- ze!MZkM0tJdvErMEa-poc2e1aOR(zWTG+jwnkP#qAN}O zl!ODwE)p?xOwlfAwi_c=QtS z*Umc0qR;E|g`dTUbSV7G2f(IgV7qjv`1n|E+oooCB{-CpvlV9=TgS*$AD5-+B@I*Pc)tlHi8*ABVz*{kY02B8T z)L<0u?gmg)qj~#{H8#jGbECIqogi2_?uooT8KJ(eAsIwU{?Vy06+8jMb;uQ#zmun_ z_Xs;<_bY)*T!-PC9hEq~#;ds4JD{9?bZcn7ldJg)wpYkuzg@RMWNa55l3Yml7D2qGXyp zWT*S#oW8lGiHNkZdeTf)N-37tRb-(-!eo`7iwxx|J{-?Z$w}|35Om!9^R?vigcKJl zae?uduv$)xF_M%#N@!mWlzID8jx^QlnOw9HBpNg}k^aiR2uY9k4$m?0I7{(`50`=A$7Ic&SN!ptgK@Q^75YTz2REs`5)nMofOWE$~}5RUBKiu`Du{EhGIcC#6bM8)$eTFo3c1$> zMh-GKc(7>lo2GI8;{R)=2y%Ln7IjuLtnzkag{e0tTVj_7D-iV-L+Hx~f_W&IZOdwq zk#{oA1Tyh$r?=U5#;u|(<>McR_7~1gPU1|}c}-s7`%;DIV<5%LCDF;^p7u;RctoLZ zc6JTMO*P$$T&gJn<=fjxRc(F*_Z78yU5F5Ubjw2edqtxsD=al67e*U zR;OeP`7eVQexJOuQBpK5lr6HBGZ`svcq{rKQk?kqbxX+q@nIgnak+a5^PCvdK!SCv zI5x#%Y-M3i##`0<UOc4NL#8D+Czpmo})b>|as>Ke4|7aK^$mAbRae>(_|AkmNjGDULSvQv~MrMNfc- zq6V9JIEYQFm-2+kxhsx1xF4~CHTF3NBnJJYC@(c?#$#<7Et0^Z zKaSzc_gxZ)dBPsD#}`UMRWG+U8yJJuz5;r)OQs{$U_NTY#Xxw9UWASt4hgXm9 z+l)kbUB@l<$5A#fH1T-bnIUdHv1@fjZoVFnxAuuDcyzlY5C~8d0Px-OG~@h{5HoYZ1lr(~tC-cPiW;3#LJZRZF|>#jxmexVXGUEO?nPgdvF-G^x#KIf6H60%@^ zOV)^De^<&0j`CQ6LoE`-PkRVMSuBwFmPVy15`{A0 zBv!@w74WW;5KQ<<7|)}M%N}u`vVe#5x(`<;FVw`0>e0~&f^APvZd z=_?706g61qw4U{OXMJxWeCbqT!Nqei+DNDXvSEu%KSdrOeLfgHD%0URy`MMG#%+BH z=$3`5U3lw_rmgHi$Y=)e*f<%|A>L<2_?%rJp9fZ9^4s)AD@IwH4aW`0x*i4B^rUwm z875uHRG2x(4ufNF|7GCO(RQnEq223+)I4EazwpuFRWxaMU72HB2bcTLgR52sR98-b zE5Qa-TL%D<7_yWe^D~>!Y-*j6#q`(OXf^(8*FTsB6cIb|NS!O{U#sJ1bh`)lR_Bf} z~W^f)WojuOzJ21=T#sJayX`3ElRk zB=_VrH2A=DXXxHW2~LZSC{b48!A9VC^ZyL$&oQYEa$?Z^mVvvQ&l{qV8mHdXQ?#@v zbs6k7TXlooONGWfY8`#~ma2e4aXnVCvFc=-YEF=$dhE-(%=Y1f`UOgGj@)z@JUWNmu?tpa z1zC{~u~@2On#;87`s^tm^EsS$ZO##y9`)U(FAS0N{=NTKg&_#4w`L|2s%IQ;@87#u? z%sQyMx~1P1EkZ#sGjqTLh;P0O@t%unlBQVY3RG4p|A0N22J1!>qyyXDdG5HZ{Z5CD z{*z2%<{^FitXbNk!igjwVplP8nEe2Os9Zr?uMIVPU0Wid3E+*Imiwao`;A>;# zZvo>rFdO$X#B0a( z4Bv}Dtm8Q_WH_Gv)x9P}->)CI+ol|>8gLP>46ep5r@o3O?L%H)r--Ne%42*G6?qbK zf*0=!v1eM%$n!iwCf?%V3_6OattMo|uopdKPW-Uf=~uf_xLSmiT2GVT@@hz;)(*Ts=~@|YZogE4 z!gjqK7~t6Rd;DJ8^MCZ~DB}L*spxIOb8I2^?__pvhU@J!dfcq@v+D@*tnqvvt>S>? zvj^#MZu78i!DH&FetlK4HAmFz)MxP~zS$cTCmO4KL3FZ$D<~WntC5WKbsT;0mDMlW zqSh3e)9+<;GA9EN{Rjb!TSat1#ovl4X~-3WX4F$HOq@9*YHC7%VZvYI4n`TPWIA$Y zW5Ue7gc?981&Ab+r5H3Hh0o6oPP-45ANho&9ft&m3@|SY!pczk|BJQw}IWQ5rbz*)o{%6s7#2CqB zVfpjtoaO&z(GmUsx9GUpnKIZJS=rN@(!07`_kKF#j3rZi^%WEg^CJ_~089-@RB}i36ANnrrX=83GRK zGB^8Q`+3+%p(v=LxKM4~uvSy0S5-m8i8@dT43s z1A6qY*t@J(BHAs?KeD_Zu2{aEbU11!pNm6_*SFVnuS8TTGq&$EoF=HZESqQ0jqdmO zRivv<>a<(L^r{AN^~_J?=Tz1829{eP}}Yl$}7>e{h0XP zoj-a!f(dr>9hwArxmkWkLhBr{rI_xF!;TGnu%~&mU(^}nb`Y2zy0|d z$q0Bot^Xpf_)VZQmiamdB)Oc*FFo$5m20YT-;xbKI*G3135Md}TYO-YW-4rTL7jIkCiGwuQ!tLjQ^c$1=9 zz%)AD(sQ-tnzTqsTYKI>TdSFHZse#Z0qYqouV9!o!im6_c-qQOJ$3+E~S;aPzHCjgkykc#`coT zbI!-Ru)$nMj)6II{+22o_L2NZj9|HKp+V2AeuG?yTW-bU8SP41%ip$;npHBa zcqA=EEeNgJFm2kt#D)KU5*eFyQvjwJ+{3>&OfM;|p-!WVwjyuoP64E%NbjVk>jrXV zws`ris6CffMBJvo`>SFTl~kN2tx7$>Hjlnoz&=ZZrR1kN=i}T9JRnW1ED1KoZPheJ zon++VWbw?s+TR*_-Hc5ho=UFo50D@SWqp%PNo5%}_xIh;Rt1FtGec47N{1?~a`}Z` zE%U*d_e4(HMy1!w?{~uQ{crx96#j%}2M>Leja5Llg^T9oY056OizPBl-acxGvwgPW z6RxyhktLZPACGrljA>u>O7U##rkWT`1hWEGW)K2?=}IxJ>k9T&20S`yAhiygHcIV- zapy9nM;3mU_Oe&9y|1dEMgV_)F=qw5s=C^9owj93^h=|Xc{^D6g4g`IS<=FB)hzLr z`Kg#z%i6{1yR=5v#N>H;)+tV%#lJpWKY28LnRnpO+FXhk+i)!+fmIo@+Vz{bJ*I?N z*{jC%OR*9bk;w{iXIj=dbZTi9>W~zYHG-8dt~%KKhE}Ui?GhK=d1(+YYqQNO?L3Q^ z7(mSg9KNuYPHu*)?6R6yExT5lh24&Bx4huc@CvND;AwhbkK&_Vx3BlZNv?YEGq~oC zU1LX}kSFXVq|%Y|>BZM(1r#%6ZU7n0jyo%(FTYXJV^t4qS!HzF_~c=|HrwWvw5A_Y zh~n4j`=CzS?8D&2V*k*JnuSb2dB-^Ak=LYPiJXz+NV;6_efh)sTP|C_=6rr1g>2jM z2^)-Yg{Y`33C>JBqE5fsUcdUV3!%BddSQzKiFMd^+ND_=&AFv{-Y7+2`@Tg{G-#Jy z(q%Yn7Zwbn787p=Y^sPdkclUVNLaP~T9;DX&z#4gRAjEQ6H!FeX%k`FV zHxy8`Io<6jX6m)WWl3{x!y6}PYwxPAMOVnUh`UYe3dn)0o~NbR8I*>3EFf-ts259{ zL$N`6NakzdrU_=DbZfO<^E=K^?=2=ew-sn!4nrfi+nCWSX_xcUI^L{orEf26c`(CV z`|p(WS4Qt!0%>AyMq3?fW(&cQayVJK2;aOv*j0Z#&ZG@Goww^y?f{3%8c=!*%-aHX z&E#8(QLp)g{VZ$O&1;DVqsJRZx>2!y#|!K38iJcBnz-LgnnxH0l{!?A-!fd!Wg44O+h>M)Ah6fe z@Y!osl05?z9f*st;#YseB+&fQC^r=jd89SXS9oGH@Z)v_9P*U2s+!D8?1Q9vBt`5l z^qS{U%-m!CQ_UuanFb#VQzi=)-6#?5NjA4wxXUrY80hconBHhv_*!PBeY~z8E{>k* z;lpuPp{z6Wb(^fAasm}ynt&LLl${MnO&(+n@!~8wAyQx`OL&c8)Hj_sKXX4iQryhgp;&FD&y;jYu!?(26I1KOO#IH9y@+A9iB076-Sg?j zx!+nn=z^>@+)`LT%xYU=IPe)!Q)ZL+sV#kPU8P*b^SxFmY6H2pYP8N*r9st>yR2i( zgw|?jNvklbpNKk-N?tMyQ!?a_)n?gfG|=c9U7?Y)*Hb%pbJxhM^o3|lVN&wXc=YHd zvk8i!N!$*iZ!n9OvA#ZQ?3#*08R}NWrUnmu*A|=AyT!Xrt$MoW!0v9r%dL-@AU#lG z)Ir2AjDy6(@f-zp{(C&MGe)d;yd9E#-B!F7R^_6r9YCTsD%9>-hPrmsxOmYqb)DF+ zIX;vv%D`bD|L!n0PFMz`*JR@ZlS?Z|S%E=8(WGq5*q>~?@{rsj6>@ZMop0mZ<>Hq# zEiPNr^WMW_?7QIJ@iMI>%0(zZZD%7mDhu*J6rfvm&hs%f=+0Fcy~4^**&RQfA0(~X zkvROm(Uo3?50jNmqnP$^@dge4lc>gP&q}88vqMgpupwmOWlKDuixPvoLz? z<}qU)R!$LWJj1JM@JH~kK_1)rv@B~ZW9t#qTRr={dolQVS0%cA$#t!7H2qkuaPeiV zq_GL3i?!K|YA7fW;Cm;_1z*>>cPmVB$xi&;rv=Iv}wn*Qb;8&L^YQq5~#Ty0b#9I=NZ>z&h zcGE-P#VUf6gpN}indMM=vy*6%Prl%g6g9K^vNOc2)3$R_!-N!ZtwK4z5|>lxRh$xK z!{KB%Kwyq%t!e&T;cD>rd6PRf4B|X{-@NaOa}-`4tAKp4T|Wh3Y7j{2W^85v)4|8{ ziQ-p}f1=dPy>3eKD@-5JqPB~A5*cmP%};H@1vfpde4j~+!@9N^w`cR`T^paQQqR?d zNfd!qsgOMOqJzi-YuQ_hNSvllw_q^@8ZulZQ|olbGPxqHrr+ng@td4Md-=%WT86~7 zzlrcf0OrMNFA&%PV$)4FzKVDa@Xky#^W4+?^W!ZW_4M|u;{(O+i4=8%$$O{4!V|H~ znm3o=$?4htkO|%aEePpy`98-?W_YvMKqe#*As8ZVw?7H=%HHvsv9a1I```V&pb){K zmr>(r`!{;_pe#|mASX?3!aEokvp~Ta_Kie9J{#V?FEZX7_)9@$pLIo+Ey*9y63|@C zfLr>?J_4`2B|aqGX?pVMvGiU74>~ zI00DL2UQ<@=TF&*9s-@(S*?98L7p4;0o#d%>v!Wy8c;=re#P)CFjv5Lsyaq2%y-Rf z;~a5;C_?gEe4|mwgjb{XgbGiOQS#gpIgQN29@axN zAuIb*iRs6qT)|GhP3i0Q(5rVF=ZYkx^G~pXp`Ep>I9lvvI^C^lB@DxUmJ}Zl*s;yK zkc4Hp>wlQc?SD80#zzxq4TgtMlvSWUpl5HY#pJhKSPR=x)T~}DCWApEHM~%~a*5=} z#zg7JGDpLf*C9)Qdy}?l4*Ln$G#ro0AG%tNQ@ES`74Eeu?p9^SQ;{{P@lC9wO12N} z95I#L<^Y^=mebEm8E&u8oMzVmSX4jR!3QQfeAReV9?W}Uo9Al#{yqlFWL(F_<#)Dx zTC5sQ?M8wSR>1^^Mhk&98#s1dek&6!FPezx|4?=>Um@q2=(y53J#T>7>+>@tn7`g^ zm#i87u?-(Rw~$ie_8p9oLOL=n(R#Xf4<+vCZd&F#ioPYS;Kjw=`Oj$Zyvh`qN+HvP zaua%HjdgK#gNOG3g=08^-Bc^VLgHTMj2OXISgb>Q>T-qCh0T+@cSP!Rp$#Qzvj;T( z`_)~VFLFN~`^7Q66#Qy}2r&X#I=Cu-i!@eToz3CpGh{wKj!jI+J>eu7a5vZa_WJMA z@{_Pfoe>S1PjgZGMpB73Hz9l#A(X4E-tqkbfdv=?>-Mjtj?+d3C!^>WklsX{~fAP!z<-NY&t%LA8<$}YT-Er%+td(Tk z;%S`GZ|cac@pI1Sko!lM$82%j4aw%Yj$6?H05w(PQ#~r53{Ok4y=V0X&kh8C^STNw zE@Fa$YGO1~O2PlqRJ)h|%r@JEFP!Nq_o`A{i1#XTT)?=2u%!Ti29C=wbAQKNDRr&w zb}axmO}>?iq-$}TLG`eXelBs!TQ2sAqpbUE8Aw~~xzNQFSzoC8W^3Ps1KV{RHN zN_;%V*bRa|iNuXk-t#EFHWtz3CbHf_z5HmCaq}L5sgZX2;thDsj*pn3B&rKmIHR!& z?WREoHgwcn$I>M7YCdZDMG}2AC#PYnOA_N<_Q7R4pR*bK(#tl{yWy5i=?-#VSta2f zTa<{Q4CaQR!4tMPJK#C2ETThEijKiO(4^PVR#@WzEn&>t0*Hq7P%2U({U=yzm?oA; zm?Ylnq8C6GhSBctgGqs??L3=3NY_D1WB=ZdGd~!RJr`&18MB7OhL>MeLQ#|podV(9 zzB@G2)wjnK1CPg4;DNzRmkwe6|FL#X-I*|5yNzwz?AW+t+v(W0Z9D1MwmPOWOz@RNS!l>-|VxE9g z%f(1E5FXnUzpHNe{j%CY-ve-Q}^Nf50~C307NIwzOLVeM%ASrEef#KbPepL zpWbk@8vch8%a1e<@pr;VehpCWSuo9lqMi*}tk8XDI9vz8R`g>1!i?Pk(A^w0SOgxN zqFkp=)Fb3SO0P?Ik5PLVmGAv}g=O?dcAmN9I+3~(+)!Inx&#bWw_3`|LvLB+$*a(F zar&;QV_UuKBeeS)EB?LrzQ?tC0jl?D?VB_E2FqM-PCI_MIx2Tv)=a)#Pbv_V$}8)w zV4qq4S#hlN)|eQmY>>_YWd2F?wr`Z>M~010!Qn$TK6RUGqsBcuhP@8L(b8(wl>pVJ=&A(5jxsatJYX~l@Kx5h$ zt>t%(*=tnb!kturT856b@1uyZ^Aq3Sk>LUFdc;B*WI7l0g(yPh7tj8WDTOk$tS5!h zQNfReD_4e+=)qyF@+v{{1dz0B?`PU?Ukbf9(t3}~LdQWujTq~fIF41bdYD|)>vVy? z-ROcqyo2lj99yxx?Cl)`owh#>Cp0xq+OWC?gG3xaC|c^9tX%V&y?V(KC#qgMRq$I# z!@KJ~T%gmU+7zo!l&pE`5TsBbe}g(VJsgvL^&+na2>um6NYR&e*`Q10QR?iBO^tKT;5QQy#?_NV)gYKTY7x3c!%p zLIIt?j_=BDa5o^e&a~*ervw?d305STMP6Qqs|I3FM|xX#-coDj(X$+Jy7aKzT_z7j z>%5Y3N$y~~;x>fX#m&Hx+`xE({wEfnf?|F@|@aVZxy7eb~4`#KT?i2WHNbj6mzwPyL z`0Af5usClkm9c@yK`#b<`4>*h9|UYIZg5KNknjerSuuNWGbxq zLLVpW;#ODip2|qq6EBRz+EO|%!lboL-9-QoX`ozdaliH|B0rMbn7R%4e4XPcnWys1 z$AGrY*(lg5{V+v%+DK)+y>ndpFL*FI<&)8O>)(5HqM(?Y{-*7-?MaP2E?n~GQoS8+ zW&WmYOMR$rmQKeO1~t^3#Zf2*Z0FE+EvQ2J5%~l;57y}%9br5(B`rv%mPep)hnbb+ zKAl^xAKbt-H{KHdBhINZ0N=iHrdt^Zo28G`u4zO%ck}!7A>2cA1xnYPUYZ|kTA6Rc zeT2)n->;g}OgEIaCQWV%1e;+JYwvL_-2+M5d2B^OE(%gaqU*ivLQgjA$m8MGawTyO z#(?p!>|%{g?-s>vW8<&(mR3m{T|5vtGV}LVnijRI`O7icZCwsXO)~*3DAD11;hPA$ zKwD9Q44yE79EQH2Mk>=$?OzC6W3$|@#?n3FNK;0a{%mO=u_a-a#i-c`(>ql&3@nX=M2Qekm;V0B( zDR;iVw2J@)2LUW*LT!ixM1tB$u~N+5l5CsOd36s1b6kde89#o-5KRdFIJvnuIAs~9 zbeuaYd#EU9S~Z`$$r}fsAJGl(2NxD5!ItJ$S_0Mf*~nj(5lRv}Y+0lea#KSvi+BUU zlF#o4a&9Ll3s|t0iu>{SbB1TpZKSKlKQtj-(}~CRdJ?NcON_+^i(Lqkq4A1JC;d&w zHeQ5yTiCg7L|fQ9kH~_Wyn2L#KY#Bvzh7)Tvn(vJA3+C>%{NyHt_?Q-ZTIJ|PZrXx zQP9 zTSny1DLBt_ebDn^&3C-0Qv3sxwai~I0Sn^kqpvxx^nf%G-gYQ%^qyQqtT=#d0l$Rt50&MK4A4g2ge2T=ql7u? zaJ=90^xEHAHzceGnzLoMf6T*00%C54fmJWZ1ypz6aU9{_RPZZ!=ZFNid9V9LHIgP^ z_8ivx5D_&$#Pe9kudFeCNC|ozk@3W@xKVQJrkV3hg0RVe(UUzL6E1WnGaC2z@mZ55 z8ISCNZ!`Hh^tFZH>B)QpS8Ic{gS)Sxy}C9c*4no(6E$|TI>-e-$1i&3wsKRC7w&LeJjDL2QhM)pl}8d; zGdBraot-u^b}9sxd)Z%afjb!662D;K5}!VV?7$1qGCX|3;JHHkCuQ-gal6cw9Dz+F zlNLYb%l~_6(yNZ-^1#yL-`9S8R3t6#aDSd!O zC!$X0W>?K=tIUk=@;`6i;_FJ9YUF)$g9sV_Hlf?0!CxN{{8*4WF7=6ke6o-CUFtnN zA2%-?Hh+qNoB7x6(&gTu>tbJ^1^T z|L!~p?^j_}ksfhxeDpNBdx5BhDfUjT{flc85qb3dEzcD1xJ8@2r{UvzWEEs zIQ_E&G&UyX84<!KnBzP{Rv{>)2tJz|V|iWIl1a4sH{s?Wez;6(Fnz61M-$hD>5Q zBGHUnX8!6`7f*XiWkRf)?E02`tC!+8F}98kktuDHa7t6ajyVtWQyh#lO302ji0+V+ zj&VM4(bIZKC)@zD{WJ!6yyb7`g(T-_V6Ls7pd>d;Q?(9!^l8j%n4M6ha;ozgzVhM>=s*odE*`T#K=xH9CG2oj10&K`F@3211`ic3OR@Nr?`E>Ub1k1`^MSCh67 zefQ?Aq&vy9i0Sxv*0yn?i2H)--H812h3`^DayRtpF@4PpVSRM16L&!l0d};p@qf(Y z>GEfh6L~nEC^-XxUxrW+Q<0=jfuPLlbsmVXB&iTvy>=I^`b(v!;3i|d)Pc;n*92Jh zA;qq^1_I>icrnKYIDH~?^N;MtyP{6gj1-YS9{MZw(e0bjGGDR_{%rt_FcyF_KnUjB zZPR|{YMqVSv8=jC?`F0<#`}TZX2V$7`T>E`NVzu8T>X2gEHjL$Ah~>LqG@i%ZP}bS z1dK1?hP`7+SPa*P0<2e{&VC2nL;Zo`1 zw;jC+e9S{pb$Y#ge&k%kVL>H^*b>$V{TthN;nLyUvPTB?)ty+cmxhDXxs$;F3ISu` z*Txb);%%hlm;t02@!_dK*^e^z^1@+29TD*m_MU%4lTkFk5zmY0_67A7<*+|5{`8#< ztI+%h9lt`OPQ)}ZnDPh{h@LZPmk|=O0!1`S>|@ut!Vs4wwF)*RFwM~9 zT#W)^=u1dvhx8&>!xe3w$K^gXfcwl{?-WZSyZ19q(m}X^QZ>a7AUR5IUs#fsp<7ebk}Cy%;I9?0qLC0Q_Bxk?$2Ja#f3QckgRX$f2%}aI-@P7V4mR6 zmiINeo>!Ay;T*%iFf+Q_6@pdxPozF?(_ z1+TCvfXwbkR+GeT$@(c#p)qz%m;FSJl z&%}1$B#fZIO;fg#EwN5Et70S25}g#mScsw78#+Cxt-*kc9O|F2mSaP2@peD-lwU2TmtPN{uxE zGl-^-maN`TT2>!Kfz5}PLs9#iZa+xLO_&U-`AU&4*)^@q1V8E3zLFkO@p8uZaqF(4 z7N0MUQwl)7O@ZUaBK5Ks(LNw&*E~%<^YuW=&HG|7<&e2XDgfpzIst6)7q%L>|!yZhz;1k>V}jN^Z(=M0h3K-;I*Z zqD)b>5L(H8r9#DmM-+QfdsP-LU6R+(7&r~OC{l1nWy9kaCTNzeEL8FQSHlb)25gWBq&z2CmPM79r?!vhzu!r;g?932*M zmw3rZCv&KR0^KD3I0m%;R1ILn|DpE>Z|OThQn9kDDSndTlXEnt!RrY`er!Jq%lv_qX2Z<_FJdqfsB@=`v&kTp^Y^hx@>#?0mi zAKJ#33hdVBJN6wtmpY(FvA&?^rU`{^7|3OLU#Gca-Nao zm4@$HCdXv4BN`CnzM%%$w8MHD*1gj*F8m4il8=>`c|zd|hfC@uzKC~Ey|DB#jg;sL zWhB*J42tx3lm5YXs=FT9L2M=xRy2c$lX@tFs+XXr2k@_6MjQt`{PQMweI#Lo0NZ!z zUd%1(E5`El(N4zW5oCKqN2|vhTVG|SI$BaF!M`%-KhH?$&9Dh48&;IP4Pn5bNEB4H ze5Q-&8)i<=7vfXfu4s?${y=CK4_gSkAU%5puU1V|6l%s4a$B@a6PB$<#KJ@D+H^-k z5*;DnNs0Nj(l@M7uso~G7>1!wzfKu!|3u=-a~7O?hoiE}{_xP2H0|<2l{PdL>m%cR zz=>S6WkNMeTSalJA~&@5z;~Mq=Z~jgVS~Dql}F9&SQ%)cl| zs6$P>p&dJAd7-qyU3V}Tss669^_782x8fIQI3u1#WuBLRgTd(hJQiqC2ENPO^=a)t z%15fQ6S+Ecy4^|a^(5Q<4YJdg^)8=7Z`F}N#=++YqfBS_7Kfl!pG?H7!bZZ7hw;Vz z9|Vq)w;WlUlW>%>n%0OkBXZ}8%E}OUB_P6LkOWmhzYI!rn4dpAbG&Wx70z6OJeOmz{KiJuI5paiub+n-oY_ zC1;*WBiMYbNik}(Dh~AR(DNv0=c#OU>|LEL<;0PHd~Mz5*~5tL~&{m0?3 zY+iw%{!27$m}3*F8JS1x`HRUsG+2#t98gZ4ZqjqS@vLdT#?E7bmU0Jvq<5zrk4cI= z*FriaNZZ9*J)bu1mirx^Y)VMbL*~Txhlb0s0T^}*!z|lPj&Y+CMH`MSg2h`GF8|$Q zZfFdnrW|uLLmY<0?R6l0CN_l+((z!JSY&Y2!gKgrtUHFXzh{dQl*lxOr-w2uTa3IH zijJVNY-eq1u(|isDWa)qu4Jy-fDmqQJ z7qqwO(Vskuxu0leN3y>@ij1&sL^4B^vfXUXgh_BP6&iKLp;~3PT?`T@NL&kUDG?r{ z-Y3MP+&1xWPg^qHMSR(%yJf#YXCHv5zKNr!e}Qz6WKnQ0lv@O!Eg#SiC`sb$0S199 z4obPC3&i{CN|CTjg~(vy^Wh`xffeHQqZQS*VX>eUuPpi`g5adSykl(M3R#L7VZ%P% zs$*x?&;5;CRU;8kX3&0|)wHPTftlZ4#sf7q8N%YbXda>L^86DHQiRR`*Lz07q;q*> z|B(gt8%6F)*@091G9g^UE*F%{u(Ddc%ioLDBMoI*uZP~_jAX8HW4RTXtB~wSC6Y`R zGQG9S26_*XW zjxmVSlJ@gwE8Yb5xli=~w0UK%qRSM?OnJg>KuBAOz*eKH!l(Vky^3tZcmdZRI9_i6 z&NcL%*5s^9WPn0`n`kg!MVMvBM{zLyjlXY!lqX7t?v95zA{0zV@vm!o)NXKsG4u1@ z&+$LSx~hOD))_BC-t9&QL@scyJ8C2Do1F+EHCZ%d{;+{$d>Y8Hlr{UZi%mUIB>bZ~ zi3ScFr;wGz>shOZ5Z#m3jH^s)v7TBa+wAtm_Gr*kh#+;^HNfp=lX z3C5(+%96GD+tCTAip|eI{$+tu7pC!G3<%sd{R+(3oYHH2tN|;XrDu( zJRKwWVp8OCk1{|UvXN$act&sxP-5}qFx3uuH}V@vuIU-`uQS#bvsNHF4g-!>RaA@&A#)RtwjzqTj zD3MH16DVJ67>n!dX#sVYW4||3E&#$#DpSRhFdF>57cc&-X$IN$9x*K$sO;dh!0$Id za{o(0c8!+kTIav|ZV92Co?LuS=%Z#okjR~et|Q`@4I7cbYN8eamMXgHyx0|bVvVv#a|dGi33|c!lH;l zMak1gWs|K5IoC8YQdQ|;DM)M5Rz13!1f_@TBjwIz-aiUN^@)D^upiNhf;_s-tD)bI z^|a>yz5n|Nj)C>Dp&USIa45YNrl3kI0B1pZO3;!^C%-;&ouw=ZtorO2#MaJR=2BkNl0%g}UyLv#PsEeLK2bT%nRRo(`Z&L?gZQ;OvHZbT)9vI})4_>-~kBG`{FB(4S z>dZE(DJ*TXOZ$@zm5*EjyISC#7|V*=4EcOJSz=KeZy}9VB2I~ye+5;U4o5;FWL{G< z520)oqcm9c3nlexA!}WWFKi?ubkRk`0YkB-DX-YefHiSx7LQzupOn}ZN*&^xiFg+2 zZiuJ@_2d296`zGgL2`Y#Jy=0^Lc{8>v?b#WkK9D>?ZZ$?vap^`e)opL+ImWAW|0bk zeCH#?xrbw2p~Uqcr15d|WnYda9jYX4>F>^nC7Bj3ZEHm4j{?WDWU&7=cen4KYk_z4 z>rIlhA8d;Q9<(>Fyxk#?=Qn@y=*V@>r9H$gCcRgqTbXJ#@xQkajeyG!U!*@( z*?8J+_7+u|?}H3m@-Cys@^ae0f^2f2p8R$2RRcZg`dPta)w|O75nt~YlcA=u2=-9B zkxU3azfGLy@$oppZouP4-Quo42`7{*kCCcp$&!Z%v_|-QQOlhePp*)`3Fti-}l=^Fyo#VNppSn>*UyChjqhat* zcbqjA(=Eoh#UQ>yqMeIbwhp_pUySj1!M@Y7X*QzwXp_~%{2>9#8k|t&P50*&4b7hf z@DjT;P5;4zI9V&pw>!A^tN^?6$Fd5>lbpO2zZhI=203DOT<-6e>^WWZi_+|$xGxy6 z6zR)+Hw-FqEvBBzk%#vQJZt_r#BKA}`aqY8f{8{CQ2U+{c7ge-zDo*^UzlOC6!8|r zIYAja-TQNOA_~FQT7q=z+4r9I7x>AS=SEmy_yKFF^`Zm~7)mR(BcQSN09c-Fe?R2k z$XP%g53yTsZ5JU#Z?iZ2YFv;`VQ*9a@AytQ_%hhc2_OI|t*!a3;|b5@@XvWk|!;tV*%rwTZSu1x@uTIo=XQpuA; z%pcZ{EGXa{^;}~hJFe|VM@-?=F?--<3|rg_$w2Ur9}9jz%}rMzez6(d*s~?e#zb;J zbQj=3K?lszy27*_v;(Fr^w2S4KAQ5r*h`vb>#rsnQ&0^qv-4Ozjaids;+%dSPLDm;Y6`=Ow5xjBt zc%e`-32n!48W)Fp5S-`;K`dbO&Y3wBJI8Zika71liulRH>pqPnQIbjhj|KlFVu)(y z1t7`%};TKqTGz4MONei~_{v6!0$I=_+OF&1h;C8M)X8JZJinK8HF%-m1)4)vR~ z{6NyA-S#nEJBgZf{P$w6SoS*UVd=8Nu}ydZhJakpygNN_DT(;PQ^aV_dN`zGeK9le#IK zyUA2l_DP|OO~`Cv>%5EX+2#lgHd#UyC;$)_PX~i@76UMBQ1B#D^u>&d&JcP=>A%-mAH4rmLBeN8`UIB%O;aTP2s!RLhmh!9Y7zj zpy()+0Fb^egnLhtLydNTodvZN45%0clN(-g;qk7)EA(bpLK4CDETcLP>qipf`#&UT z>Ud6{FnZKGsXj4+6qYW;e6r~{mWsr9c2TuCI%$>{@^dy{_Xon4v0FtmzC;F*w8^+` zkh%Yo8)yi`_$^xJJMhkfsnk8XAa!~wS<_FbU{5E;sE5no|8#qj&(O^P{%s3_SYrn6 ztq;Vgx^j@{f(}O1f=-)1;!L5;UBCP;*qn|eMCq0An2Y3BTxb`v0$s0`03_~eu&*pZ z`ZKRl`lV79#vkb`EGw)cgl^F^5GNEu$1VXNsB^*XiUy}dxWW{)Uy0^AFY)yWUZ1a= zO&>5QisI4iG-L8Y_FZ1~=lJGN>^-3SkvG&fYibE;D!N1#lZc4^3~NN0e8*vPk}^0x zik)Odm0bp@Q;_}o#4$z51+Zo)HnR$Uqurn_u^}l`iYGdee^EXnil!O0!1;qqw&`O<&=QBMh{p~{8v(1 zP`&I}^!_hH>;+v`PZ)#SmT2w(xOlM_G-)96aM-_p{o4YOlFBhtvafZ&!Bv0KrjMX{ z56vNwzNVV8pa4Z^6u|&c53a``qc#$=@_J)`gw!9_>ZZ)n`HfB=>0rfe&XS&tL+vII z`KNl2z)o~@Q~>Ly%T+5szngiJwaeXeWWg^)dY~#Q?!p5FXHTbZy>+$su>1?bA-Fyq zVM~PxRvSiG$HXIipnCU3VQ0jHi$ZU8WQfO$5K8rxmNC<7+!fh-^HZlI31xFJFA~^3 z&H|i?bt=zqk^h~73c}&J7U(j@;q`pJ=ot@D7J9|FrYSPnB>o0_NEEln z#eK#$SE;u|{&PV7Yg@9Q@U?6$iOJxNFSvDf;Rp1Z~_ z+iVU-KZWe%%McclhvfhBGZW;ZGNiQJy^5HY^7kf>Y?2B-3jALVXIu_2rxEY_{Wf z#ljTAj#!!Hx_+}N?mc<-S@IfW_Ha(**+A2BNjLKf&Rz~_Tt9m+xf%zQyR1K7#YsnZ_#lUTH zCR6R1G=zU{<=8e~o+JJ-MXFozw~GcnBZyKgl)3pugYOgf!c{=XZZCtt`^fVn30({m zXe;^~=kkQk_Y9M}5cRZh#ftko`nNa1#F7KfPh>zVN3pTuGMBDl$W7q(O_)Ph-?(_e zM~tc-3kqriiH0?=e3#68XnWie26BOxvQcLgM9*2efV21$?-FnEZkO0TaVPseG1jL( zPa1+61IsOV_>!6d^xV&46yCLW-EY!vxnD94Tmhl1LFNy`j!qd-bCz(alM7&LL{YmZ$2Gis+ zJ;la(73^4IX$YU{I_#l*X?Qft`NECruk{XUxJL(CW|+fXXgis(lGf0?sm>N^wmX|| z2}Z(zwDzzblg*YV)j!kxCE1KI3FT(%4a0u$g9OUc8NOYuP<}~_xbp?}S=#dp+)I|q z!P}tz!wwI4H-d)KVAc;`-j{g}`^>#*bfD&|J9ZOM8TinFgxi6WMeeB+Y4xVWq{7JN zuN>B;bfIRozbihCdvz;@sgmxjpnMktVlbRAsNwj5!>kriJs@?W0$q!7NPqYuu6sqP zpFhepYh9BC+6_E-mxm5Iak zPBRzNX{c1%Es_!qw$Q6etBc`rtilx53*N0$hS6S5Y>8>bfT4`%!bz$NcZ#DDS#T;e z6?XXs=oIb2zt@*EB7@`w*7j43Goh)@Tq1;lWDvr$LQjuva_)wIYnIgWsM&n%=x%gk zzl)mRiqqey{4P0hMVAh>JcN+Vx1^MwW}oARX+nkD84(dOiQHPo>tHbIyM8@opxn7Tw=FU(=0m#pUU|7I3QqdN z%O)sF(J_FDBGnJ&0;4$YBBoxJjEqnr?-d7y!>w2T*Xbv|r_D=1>TV)Y0X7s|v*t2* zC!?nrC22Rdj}~K8#cfYdYK6+iWCwhMOgCFybCzM=lbD82F@4d=IE0by)LP>xYte<% zJC);gJ_Q@<1YZ*#@C;F!S5>D9nJ9b9JNgGfp+iHkc=PM+FCSMQ0qi8M3`I0G%QYjD z^)T<$Wtf-5U)NVf<=RKedf)H2Iv8h(ZNjd*ia;fNy=z`MEQAeWrZ^5Z>&)Yt;#(K> zt+H;G2J>-mut6`Qd7e|5F`Ga^P9aDSdHE~KC6nnR$MqN#fX<=9*ZOslXylpO<6GU1 zgl}g}b~%x_ypW1BY@i)u5PlHo&d4owCX^N38zt3%d|(FJ8Sv!vujMT8YU9FO`~pH_oUM*0u}5xFl$2*St3phdu^TLc5#;kD#>5%SkP|B#6*0Ss8@x}=K3 zEu53A(f593YWS$DKTk>Zv5 z`g^8kZliV|E!~^K^@IKCwy|3V`aD&N-UsqWPs<;*0xxe=q{U61f5c~0r|yXTN^9yEhP zke0t4Ftr#^j4>#G*?7D}W+6apS5PNq8Am-w`qByvtA&s?b=1S3w%F&X|1+w*l4F8( z=r}QnBqE+P{$FYaY7jI|H!m;NCzwq|$n7 zz!Q@BspwBALm=%>ZBw4bvWRL8FM&V_{(m`HA%gbaaYATsIF4%qzK^|^qYmYj%J~7R40c&W z%S&NIS@uhx^<+!AHfa*LSp(6(!GEAqwsX$a3!ga8W*^0m18kI5+awtT0?nI)UCq1Ha5)fcL!QrohPW#Hk(yF_ zGy%87y^H%NehSUt+^hN4N$@ihKwuI6`@h zas`3luEru(^36+8(yrE zv8?^gVa{QBp~z0=$)I1MrJcJhWp}m;o81q#t_fpCLK**J%me)#3Q=2vJO*!gbR?2& zuGXc7fHE4Pw2-)3K76wX-Qncnc#~v_{&PeF^93T)3yo{<-3LaeFE_-=eo==Jqd|Bb zP!aDQqbYeKmHr6ubY!w6o9gkax3cw5sdlR;-Cq*3{LIN1z-$6t{bzqYhXQ%8&DYne zbu@Gs=Br84QiPoUqj%Puk5M5<@hhlyw^J#$eiNM1c5cmN32xT{qKEKA%}IuZ(g=9U zGniIZBwv9R$_beq@01`KeYI}3+on3(dHq-p>Y5rq6)sBI z%-j!%S*ZPlHit+oI-ihZA+I=@$;O#*zhM}>oQjdLzAQuj^b9M0{ZoWa`OzN;;tPO< zFR}1R=K%(&Tkbs0Hh3AUM`>l3RD=S>E&UFSUnI^oerHCvQev!|LnJUD8hfiq_XlS8 z?6g#G_>m_}9;VOe1BY)4FHlK963Y!w~kJ30UKB?CO~M(-DT$fJfzAtkkjE*_ao% z3dBaK?EBjJ4Rq{LHsVh@%1FYv7lhKM!tc)h%I;is;eFXiTxv<#SyXJA%EQMh47+k3 z(xv7t`Y)096rW7p8?m!vV$r9i9voklev$ZfxIl4INCJ){;ZR>ZgW;R7o@keuO1U?; z7?jY1(xuhjiWmt?+(ZSx?apmVR3tPHrFLyR0}j`tmau0)M49SeNwg3Bjb`zs!XF&) zM%RXDP$l_{{GB-PAN57@F{;nruUYDR)qfzY)j!DYu{gASz~Nr&0#-#(?Qm}A78XpE zN;qI*F3>ZouOIq*(R$*)1Sh_LtYE{ZcO}sR^&77aJBL3!@#_@4pPxFHW`>}Q6%_su z+^1GrAlp+v*}SCWZ<)u}NP)Z6&%bc=Z4YJ3XQ|)qVRh%|0eWmH)So2zT?899gn5_Z zcKG!He0WWLg#8;obI-3Ytd2XUULcx3;~&YinID;uL>+xsi>5pR=LZM#7G0xfhLJW1 z`L-cgf5Gun`d%$SGeU@un?6nd(%B*lLTt6wv)%rr5ru>r&R70~WmEUd_0i7a*OM;l z_Bimh;y4vRvvWB-%9M-rj&omn_78eq%bhmN!kuwfdo=P-<@;;BqKiM5RbJg|lFq{WvGAEW}+dEMp zgJb^&BNW{!L|X}_X%v=~Fr#Bez?E8eVVJ>{$E7#AT^K=>^hiTC(8PsI@;=+)*fLpY zSC?52L96B%jX%)nLJkR}R`RAs8KpAoOnH%aB#&l{RI*kKFA(o3ess)AqIC+y2$dh> zgaD!PM;v)!KW`J8bDhZEGn)D*SzMR+5&#c*#SIm`MtCM^eoj@5FuHB5J7A`K6T8iV zX)Xl(?}N(bu;P-?mk-J#}^KKA`+;?xB!h+X7GOmso*T$lz!?Z80!i{7vuc7-H499|SHe z&gppjFY~&C?bqoapch@|oe?X5Xs;e~7Rsf`NO(``jD0HB)Iw0m9yK1O)7dC5k*Lzl zz{RT4Xcge2$qnaB%>8He4l+MMqOU`W)9d`m&shlmP7DoMdBDX1slW;640TyfSLB(D zbU63MD=s=__jrGmeB_SazTpLPg6t2lvZ(7j&PX_vCz3CO%-alrOGP?{{HAZXb{H!xr<^Y zI)R4tZDc05^#}8uDxBpFDIT`%*+=8}|YtP&O$?g+W1#!xPT~@zSy5^o1Z8d%+6tWoii* zHsvVV6Ux;PWe-U=R_YUAUg%dc(BeWD@77v=KiT!z<4ac&P-o=XwZ?e6C@6eb#y^TP zeaDYt4l6}SHgw4_KQ+2cZX*z6aFMUPk#xna=Il*9Mk@Y05GCewuO!!)c zNUG^s_=vd@#vC@6xq69{HzGx{^kaPl-3#xm4V!KEz%C>gjzr^-h??+hpyoe<7e5j` zgex8QuqfYN;`W<>%WD-EKWD#b=U#vE5MNGj!Cn?Rhp-c)5Od<{f(W8z?s<7k*%61A zW0!&588^ttYg1)-XF6u`MrQH8kBdB`T93HIRv{aGfFIK}KkcMgwUkR1Eglm;!FVPh zjujDB^%|PZ{hNCSj}?E5$o_))0^7k!B5^&d**{Ro$K%u<)+x-LxBbjPDq4oKyu%d> zO=#mXPjcf8yl3XD+$!x<)C%S*ltrna5|a|lN0p19$z?I6d)6~cANloQ#Fd7}@MA8) z2r-`O+o8RLA8f#Yg&-##VR=;%S)NU9}#^-$>4ljx57EE2QucA%kX>@ z(YcI}q0RD45{+?DWK4USTjonS{3yLJ8z_=@1dJ~kOQiH1DCOxZ(+6=*adD5vFI?F9 zZ!7D>HbQZ+xe5+j*dz1D^ZO?K2}}f{BHl`_kJC)QrV=`J;1R>2CG6NX%x|vr7VvTy zM_w&a9J}r;s!|zF!vRY?UhWdz8tkl))<0k#vsWr)EdG?nFfOS3$n98baLUnJChg~- z%`7C6q*6Ayyu86~f$#Z!@&^Fje&ZFFQ|Rv^FT-#%JYnVBRHgQB9yq0G!e~ZhzDL0W zgrJc3t{Q~Xv^k!TI7S=osa}5p2}_(n3!5aR9f_ycER7{k*Trk^)#yZ$z)fVdYN{-f zSi=~4QDvnq@i<>4m^Oo?ej+)MeD{7p7Q4e990NIv!M#FkMv0VIeYADtSU=>MD71EE zU%tuPPD`$d_>+|zy^}Ehd@K9i!V-Ee0seHG>78U4f{;$KVFCG3%dxC3bgEMM68WV{ z|0B!g++)6EI;Ne+)V}P#^Ui1zXb&n2$8GDeqp`WQ$MAkajm`%WePB~orJseM z!+yPvdf>SIhs-t?fJMP6BjI3ff+_n)qR0zJe}|L{U)wf1qV^j{H42OGZ1}?5skP5- zDbq(DG-jz(7-xpH`ZqwRT|^_LTxlR}*E}Z1b{QJsZfCPSf+aQk>jgxcE&xwqsAJ_~ z)c~~jc-0_3Yed_DeJ{WeObk9>C<=i2F??%>$zp&aM#?ljf{_=_@xF@F&faNn%gi-s zOmi_r@qyy2NmtLL#A^hcLRxAD?bN#H9mYp|JtBeetjXeHUc-uY0|Li4E*C1h^af-K%*~fE0f(&3o~riTLP~F5OM%6w&XgXA{+o&P0%g|= z1~JFQAMAHNIcS+Uvj%RDqi0RnTkq~m12lDO3&P-Lf=UKG;cMjQ=}Mfz=O9}Yv^Pe% z6mZ=x=K(HOIAB@+3u96K_~1E?i#^j2naz3OpZ$}ST(Bw_aqQ~qvtxE|e15CsQi02v z08x9#4QYs)I=05)~a;3=s2Xdvg z%e9}43w~SD*~AwQ!GVYH%R?C|Nt~W?zu9MTt#!HKENyDH&GG@Xuqe*2JEmY5%6I85( z6}!_!z);G$ak3?f^Jtiv4*|wp{49q;Xs_hortVXhq!R`W4DFExbBu;ks_9$o>FrBi>5=G4ip~FM83Cj zvZV^k$%aLo$l-J-e3cJD+WB&e2ULox0roV%doTeN)(+ zHyBPqY>%WyQ`3uxB^EnMsCTAn_Ff*ki36AD0h~6}E`2HuW-k{xyvBkU<4$s>zb91@ zKsZ^o>6z(F1PZn0^?E8HC7+HuIGSU;5VV$V^=|({3|MPQjfZm@|D1)Rs8cf(nWnnR z-34ezaWIim(ryJrR9gYTl$v6ab0=GlV6Fz;9qEBd<1qtP-KEvvwG?`O{ zwCd$BbeU7?P~${YFLMMo%(!pmVSd1B3Nr!z1|=ig}|n4>1ITEwo6V!U;mPWHOf=%I4g9NGx%idiA)J0PPr zlTF)OSwhE`m3DhAAaMrAn%ilAdge?Fr_$^7~4)GVSRO zWwcN>c~kKPk^EDJj&4~}ufU(8tE^!FzZ$eOrn$E2;OTvT8o@WhzPY) z-@lmY`P{z{CD={;F$I9#RE@3iqZaPqG+08T#_Lz%$)TL>a9xTWS*Vl75NC;#U2gMR zJ-o`(LTY8eYK4f`j2ef>BY0!u*D7KmcOFpDKeRS{6lRu-ly4gn>-<TgGa4jk zPrDdggqSEm&iO4mr`~OnOdu_tk&uu}dgs5F3nJr?G@;y{ zQX?o>*&t!1mYa~hBWy`FSlBn%|A~kU!n1BDF36}n=!IgOLXwHQa_BUcQM?X6>qW3; ztOC`+Z^wKHCIz!qdF(XoA;MBZ@Dh;V*QD^(YRuUPU9i;PK=P3u)gn>eNJy$QbalS)IZK^Doi5B-1udZFu05J~YCTt}yMZ{YsTc**Wtl_|*X2T9-b?}N}JSBbO zHblYpF_9O#D1Xc2K%obd9E_kfhz-Zp`$SQjHqX0@Owhy>DAfT#+SQ8Swj1MVgqiKM zQkAH&)Ni7p?i*|f&=U(#$-UFDr+&1lOvL)2M0f()djo?OZRJSn$crG3jo_6q0!%-qmjTyY}Vmc z1~Xpd4K)g4ijfwVqp6mkM-2e9A^Z~=DzCNZqTWu(*ObVMyjHve2Tr?@Oj&ql;g+Zaw=Euz5vamR;V+qtPM%9=LfN*v zfW>mJgqJo$*K-Os_(OhwEnV}TGn(-H?J^yO`rtfNY`WpYTm1V6J5#lzTH`&6 zwS=P%NI)Bx&C%{YfSaf@rGlZ3=%ZF`HHhP?zBHa8asoL<(9^uhQ6#~Qe-L-_b- zC4A=ymm+U7^=XD{8C9?rQQO#WJMXmNk86Qo5V6p=3L?Gm2f~gSG6S~MJ zuoe%KR6yy_0_}eY_xi%y@IC#th%amVag%4joeahzP3S$G!*8I2rV`k=q)4X~RMr5a zgs|G_+qDC|R38k6M^6sAd}Hv5S1>4aG@I;Xo2tY#QLMlUG_n)b(>Xkb z2h6}OzDRiXhWbTn z|79-rG<(&DWjAnrVfQqz=j=b+thF03AvmAfyDO#IO`Yv;8LJlz5s0W5{r$j$)$){J-5H)AYczO=rD>nu1!@@DMx;RM5g=aK-zpG?U~dPjKb9= z_RL+SS#FVOsaWBysX1yySyc|zWW8}*r)20__|cHGUrFr>KW;rT1jEz5;5_{ zf~dwM{Y-}`iGQSmbP!y>sq1MzUs;`=@idptO<^<}(g$@0F9LK)(tQo_XuLK8s)$z` zRTlFuDj~W6Z;nC`pF`%4ppBDbPLOTB2;uo9aXwX|8%xC4w z=YhBSfi_GY(?R5%fGQZN1rDelZq2cpt`@8?%euCg_U4FA{#bK<1&{Jd4F~rU4|QAo zc>oVor|4~*;#KJ@H408yTHv-2kVCmAgQyz*L)tZjV!6La34;Gr4Rr@gAnA4hE&7Sa zZo^r8Me1JtIX`j;B>iru<@X0HUTkOgk5-FY;aJn2G%b#FK)cg}Su=n^kLS%f8a+g7 zu+DyeQgBafM+fCW7HXskF#YE~_$7mTSogTJA}KE8%nQjW5sN{aT|FI!J(^Vmfh~Rg$AW(uY>Fr_(zd+h zK{EEz*089`z@)oEJ$L{GmGMVRVXmoThS1K?iP=G)qJuZcBfTcY|^fh>eA>e}>aCUOjImIrCilndwDo-dwkX z1{$D(gBj|4fP*JY2bKj@%M$IG2U7cXohLs?=_13hF*{4ESX5I2jVH}l5*F)wazFK1 zy9l%p&sWbfDS+47t9tA;s5B31D?-tfISeC^yf^K`KInbF3c4Cjq6@3nf4wy_>9FC| zEQZ^f3;0#)dROXMB4M^ev^3LRu6c67xoLkz>M<>|5$548Zgnhs$ZwPQg=Iy+8(8Wi z+JS>DLEYz>-@sb5g}_3qbMK*(ovw3|w<4Rz%t&PByF%Ywf;6{H?jCfvhi@9h>M?{1 zFSH(oafUjxaNhnR~hm3awFFpLAks?ODHRlRER1iRM{7NhrInJ%s#!?4ms0A zR2s%?M2<*D>HIoW|er8r+)B^mtbG6<+ry#7ncHDpC|VF3uB@>W$1*F5xxfTx=*kj^JN!8k@3n7ct@GKY0l$67}VD zg%E6@WvV(VYd z@fNV+K6oly?Opgm6ds{N@oLTZ(XF`FC!t+3O~CkxT;53!STnpv;2fQ5o{aXVAv17Uyx(eN`C?h@@0Gw$9}cf=iVf@O)z_9 zOMkvrx6e;>;}*5S*ZaZFj#rDdC#K?1~vxo$POu?vflfU?rKKR2BFeUQ3Z zVad)^(|*5xp7(3(MO>1$24u5*tg$lsuc3{Au?WxsAA5{6zI-Jr<<&eh8Q=}?uZ3*_ zdJ8{9%w6JaznEFF%5b|0)9P`7TECVzQRI6SG1`kKa7{_J0+WevDxDARZu2-D%pTXo z4zO#)IR7}6Dk~P5fSYV4-D}@jd%-PYyS{=+8_}{ac`A9p1&rl`<=13ZWQVtEJ%*Sm z3LFw?|9NDG-kI69+P@vQ%^hY9b`HiDLcpZZSxsY|?u3XNeMGc?E8Qk&0CCRt$n-AV z^Kos!^Q~oT5w27NN-rLII?}s#rouFc8R*GT&?pYR@)Ji?v?oyTwe{3dnK`xMaC6mE zWT?l_qLe^^|HoZ08fH~hapl4XYv07egsu*N zJ-Kr`+`wW#s*KpADf7q?^pikKZ3w?r^T5;FfNB(sKGW^m3|*4I`9QH~+a=Kh-ltYW zQKHBV7qGAi|24kMd;}G{5VGtIC>)#BR=n~jeC%EWjY!@clTOWXmnyI59f)+bw-B3N z3-^H3bkPSo>yOIoGF?qp$Oal=M0SP5M#w=mKU4JbO?%@0e4QO2r^$)oo`VyiIl1Cu z=naC9R}Ya^CHMn{%(yIZ28RFRF#}o;$ueE_^g%y*&kh2O;f`nT5S;BMfJ%I3s1H2h zymc8~dRlULQ+hD79mvoZ@5;j1=@DW?qtad_ z{FbDsDretvgIqflv%=zD*Jc!uE@~B%v&B6vuWs|Q6iZ&OATU>ZwY4{9KpGXcb^C+ihHCyb1;G-^*CSK1Yv*R)4PfhN`d!#_Tq`(?AfdACX zzbqUrE>aXcM<#;TAc0RYb%a}@T3rrDb@)6|mEl zeylewrF;KlJv0}~Qo#?FL#eBh2vbE`EDu%y!93CH5Xdqq7xCq3nUTK@u~Kah#xypAvMBd_&Ac>=)G~~vGm$r%`Wv#GYD{HY~aBH^qi8v&_ps-HJje zxUdt3*78ND4N$tdTp{R;^LT00EOQ`Z8^UVhzT0+mk7HJ2S~XUv;B@CL*>`-S(>1)u zRjs!pde#x*w0iNTBn-&Hj~oKfa`K&`EwHZC>h%R27X_~X3l6O+qm~WQ zQsu+w9wnhGK)F|s4KoVx^I8B+yqw5ko>F2$EA0myCRtVQ0nge9AE88;9GTmnMZo^b zrE8S$+*uT!^KU~2Lo1w<4I79eA+i7o54Jkc8Yx){_eYcn=$Jb`kyaE6AY{JlU#p#=UnDz%oPt`W z6hB3|fn0)bMNzzQL%u5QWK#9@=km_8~vVVBG8V%yB_U6BeQc;P!Zhe zc+hO2x^%P6mFDZd1oq2EiCnU5{p;a>wavPFKaDz^C^C{$ub` z*?0(jRZ3!a1CM!~h}^JtJcSN~$^8S5b)6`omH{#F3kME%-6q4+K)1eFOQ-@J@XGJ$ z+nLGwYhk#MEiGL2tFdFZ{mOPYR`VX}E$*bbUgm1eHEB(%%=6Bs63M9fMJb!;=R@A| z$Yu@rLEgw_!uWp}1S3kVD7y=mIG)L2)0m>wXelNnSQVz3U%gIMe@oe-32HYG&^m|x z3{D`!0w~hOTN2IB5-G49wWG}hN9>A967V-OSHkmd0V97egg!5z0zKa@?C|DJPTU{t zrQ!Iz@5<>XU4(If18WlDBX0AtT0ekMLt~@zF>wI)%Wi?!6?B!^*`E7uh`MVq8CwPa2&bItT)%OOX$g)iDMEiV-G`2T{sA&NH^Ayb#zeu*AmzP zsBOyCTv}>}hq;?BHC@F=|A(>4amQ1})N9tv;a=B=yYI3JDpkgoZ`rg@*-T_e4y<9e z3?MHv(lxO9J+9H(d~}ka@kcpX3#_)-eq&=vfeZ!`|HpCCoFPLNYT!jYJyec=p*-+k z-=`PtDgGtjzuO-tul%u)PJHM*XtRLY#6e%pW_gtvX42z@?I1tlh~^h5$8Q|wmZzYo z4nC9Dsn$jxWMy8TJesOjq=SoMo_Q(or-T*B1avh?#$#p96eF+AQI=?)+9PXPlNeLQ zgA`v~mO3_xcfkb%Pb7?5{9lMmR{SvAWPTCY{9)EsvVQc{Mq zG;Mi}E8XDei*AV%Y-FR(=Xa~4hV=<;^;$e;0}xkqX98olOC{Op=hCgjlzzM^rN1ix z*d(^}*7rc9^cAO)DNUmeZl%?z8c3>f5hLvj4bevMrym8A{jbk9F0sN!834cK9ql=? zn$xV#7?3Lz-Na(Xy3=N?sZE&7mX2XV!!sd&ix@814c^}?UGujnYpXbP|8=0pm=L8j zG&gWLTvQF}HPSjC9Xtto3F8H`ym? z?0HJa&z3zM0}M^E!>calI7-5@9W%qpR>TGBw}#+tpEobXDf5n6PVvcSHe%m-vHF}t z(-lESUl|~tbc<4p3Zr^A@K|gN;Tgu-L)bKcZXzCqfuO@+znye$_eP0|{0&uQRv?0B zAr`@F0M|Uz>EfZAg(?{Y>l|JUT=@tNNSs*~fZc+HO=q~w(phA1pcml~>6KB^>{0e5 zJKXYY{S5ND4`1lVI|gci)1zhh#BdCU$@-_1ek&Ai%&3Crkype79{nVN@>@3n!esGk z=c$Xxnsson1YH9Lle28_ve+7%INqM=jdb$mxJ0e)aMHi z$AhZoQ1`kN%zlH{ zu2~l?A^ZvM*)5q(Loo7c#Zd2j()UFb9qTP@30u+Oi#%5lUgr;ECK4LTw4nhr&@oau zn(CNsW;V0XBDGzor5?H}d!zPrEW$wgJ;~rMFztvR7&fA%W6Myr4Pi{MJobI~J9f<` zOP0$`Vq0#nt3!6IMmiC?v=OC4<@+*|01pl_{3lU5OoIkPfanx-QZ(nVP^0zV=%m<& zE9`D^vjvq)s5P{KbOTM8zj~T5ZskC_GVh}loR#aBop?LjR zdDWR&IaBcB`T!`^lOgDP*ZTFEcvw%KL3pSHS&?}IZ9&Xk>38awx}NG)Klx^`7Irl! zm(Wyt7K;VvEG>|aq}YpG59X)1<3I{8ZKwhhfq7>ICG%tEg8$5Rp@Ap2d{SA+h<_$m z>42O9<*Ry2vtH!Td-X2qp8NxJ^D=B1dg47q>+0SI_DQ&dx*Vf+D?kEf%BvE7%ypw8 zLcdE(@VBmbCsU#FHJaJWkFj_gc-JQcry(2FMKa@GnmECfNZQRI9sLZKdVnA}?f#IV z@eu!@zal^aSUTZ3L$0B0w^-RG=%Ek`yz2G6$)L+4zf>{u(L{5>wB*@Vg-}ioXImk;hH+s8F(Ys_{aVBukBLY@O7B(ksH$_ZURNftfjfXF;Rko60DK>QwDrJMPKM51)S1&OR{n%JcN*0EOAVg6ln@CT@`zJ3@^Z zUr%<-DNbK_vP0Qw2ZrD7x7_sV(j^?j|7gf;uLrWH%~r9{f92VIw zv&2Uz@-aNFD1y!P-xX&1dyO4f;**Ti7xt80%VF?8n**|K*PF>w3eG<|xmiHY{^bM< z$<*(P{W3Mv6zkR3GxuR|VUZqU(3(Oyr4`v}w>6f2kPj&-j-b~PR}IkDfvL|MiUc|a zF}`2q9l_uM&tf%+b3k2fTqaKpkxNf$D}DKOXkUL94Z7GdX!s6B2Jn79P6lmQ8>WJ# z?D^AI!O$)F;%lf%Jn4a76e&5jV~X`WBaAP@0m3%Ovo zyd+xo>mk08fkeYNV5Vn%EZ;8Ore~CF&mq_5#We*fKYIW^fq4TtrThGyRjp+7BPFT( zq@OsQ<(_I$>6L7ubn-mv(+NgMt;W=j)@dAuPoo0R(?tyEg?euiO`+^aSP}2Ir>NX& z{$BSwMmMC$m@GeRVmWZ*4a#J6V%?z-jDwa67e90d4TzUB+DlYS zrmt^zqTHd>n6FMj$JH2=?k_^+XOEu~<-`(5bd?(01GSEPN9N43^=o!!9%mvQRFJ8Y z()Co0BQN6;c}i(ap0?XKrtO{7L0_Bn}ojD5=WF^q3-_5!xw$(M|fpRmA zsWJw{FQ6|Z*N1GR>V*zuKF!mtHP4T5v@KaHZil*42|V9r&3xJ{X$cxeQR2E+B-^Sd= z`M>kWO=01SkI+m^tkWL3sdHi0q&BOPoag^fH5WioEl z$&4F*Eb7Y@wx_V;;2mHg;==R;iE*gSKV_gAys05LQ}t-FPsE|-%eBJ3u7zaPi}veiT2Bcy8YY3S^1{#?PDU_96g{NU7K+$@@Rt$D(G^>B@EHJ9fOfl z#?xRVKgYXT289=%Gn2D0YPe-VFa)8gs!UdOe$tBM3JDT|6uZqa0MNLV(bz4s-n zYpmCFdkb?m)U-Y?Qf^-|; zEIP-C$!j2(<*=Z$aCxo$&k3X5(^t9116OzW=~h|<8L@MtW5H^wB@k6dp#FKuHHwm_ z>TP_0F@U`sk?=itt4_knO1&X#fH-?`z1tVceV* z8EAW8#6CK<;yoT~| z%iI z1LPBE*GtF@&#U|3s6`qCW`yEf53^H>pdNeaCi=u-R&@jnkklYF?MTBRs)}yIIJ%Ox> zh6*H=x}a1PbYgLYBD~7nK#sHk@6=}RHC&l+Qk{Dy^;Ag_i$!xND@ODIL_os=5=W&{ zOM;=G)FWS48I2w|^3{h?Gu7KhAxpKz#KNkTm8*18gWKq<0wkwTGw|-R*s`oKm|tKu z=L+^3fy)qU_=1lOAojJGU>tU~7$^_mK!EH17BUT5+SONrikESh9Wh~IhH+jj2`^gOdJzMz)?7)0!(H|#cndu*|w8(nzwpiPhfwdj`QBnPe`?nN;{)A1K@v| z^!h{&NqrtSdvA(`qd}NIRLfkK4r3gC&7>`*6Ov@Sc;nN^O)F~-}uG=BJ0vu_s zOQ=5X^|V-A6H!s|sLDHcv@{U&c-~R^XOm6IcyNZf4UJ5_->Vo}{02u|=0wJZ4R5J`O&N_v7Z_^!B-o<-b4^$1{%jHpnar3^_DYPuqETi(&pxWW#b1~w+m$`wHVt;If%vD<(0adg~S*z-E_(p2;`bn40b@KrP$Rg|xz(BKe; z+@(XnrmhXvj~SIl@{f<-GOXMUUT3QEgu4Y*LreWwWR>;hB}O7~8qvR8Ql9Fe4qb3W z-l|bSJe{$ijA3q=u6e*2_qRY-;LmR@Ge?@Ikeb%=zn79(yCS5)4Uy#{n zI*V97gK61d`vf$R5+JkYi1RK(rmRv)(`J8XIH2YX=n27>RIFM;uoick$gz>0uFG&*<%%0UzaLhi?GI@8*6f#1^#IT^6n?Py*1{Axirt9uijg z=U<7P`qlIfzHd=2u^;_t^z*3cSQl{4TOe8ysSlN>BB*Ea%Z&~369M52a0$iKo(k}V zF>vo~sU;b%fC|J#hFt{H!c6LCI`d+OvoWktd)5@>3mqw;rp2j^h3C#vHM1SD#zvo6 zb5f?;ml462j={YLUS|LCT2#ALbn!3 zF%7ct+iT0`>^aTd8_=1lH;2voj9uu68F#8Yr87kmuy6o^u%#uSu#Ksr@paww%{u48 z6MY&eN7qTDUO0p&Uo(U$_IEMsIShTs*O~=eaKjTjhyM`{+cDlDivVHJK3IA-%?&P0 z>}=+vo#@=V(8pVcQo{fYf1zSl)7>InRg?RtB2KFVyA$~u@VyBP&OE*d26Avoi)?J$ zVHGrTP?f!Z>Z~5g^AYc(rQfTKp=~12IUi2{>N^e#Bk0eoIqnCjOQGT3O-Sk7)?A%q zDXBFgM-+Z6*=U{ zD#{%)>y1=7D0f+FEOaeB8%f9mMP1WM?;LDd?p8I4KdAZSA8~*GlZBk#TKlrKXG4Xz z#efDlLNDN<4LN#tWEhX34EM{AOge|C($DGgg1fP@`qHrK+ptRh?s)pk&C>`J-c?;p zmtR*grHMvphCn=!aa|O`2lMiDq5m7YR&&OO!uXA#72&;$1&ms}OzCZ2P3}=ibtI`9 zq=QW)qYq97{nG|T7XxKm@?NbVfb`W>bn)VSfIh`($khjxRU>hM>QtcQK#Rs`KT76n zN7NOFL@3hE6m9R07eTJq8e$1&ow0t0;|me@kKTVzopZ5nH2{q^hpCn}=w8N+F8p3b z6WezHp-#?Cv7XCA9`oS=gHpSNUQSy%8ql&%;|>Q*dT^h@8vRz;bR$Lnv2h5Z!I?UZ ziVE{5F7bL$nHS^!#@%f5uUFUr#8P-M^*oUW&`7=QZf4{gjZlVuE~(0}CY_3uVVFbY z=!a3{OSpT(!HY=PC_HEfjFbp^X_t)&7!(DBqYos3W49Qws8^e;Hf|}}b?UFkqfA6z zMi;?fzNx%>+ia{v%s6VYN#YWDR)}KJvJS6J*)(BIcCo{$8U@qS6AnoV?YkW3%^^IDh_2h$ zoc@!(9;iH@aFHq(52iHxBcl$_F=>z!#vgi=* z&Q0RE`sezZ5-l1^ZRSYht{*qOz4Q3-(*ekzTC zs#de2N=*L>zT|7Kvx>!An;a9aoU_4WJ2^M)&hohfru?eMK8(KBlN~)r!YPaW-x9Uie9c;}(Q$Vm9Ys7RH6CR6F2d=7c zuC~u|7^=fJOcE8_S#IX%Z!?`u8p|(*1sU5PEDRfrz5Q8lwruvCjhESMW`sgm@yw<~ znl)SjAk92$_DN<*g3aMd+xMd0&kS~c!F_@Fm@Du1rAceE{2HBIjq3~%>6wc{4>BP7 zHb7l2JgjeQAc+qxbXKkAG|;=9IbV0%TAr|usjKO`XyQUTiq3n^y?(bUPff0)x-AM{ zK3Q(&N!y zquhiM55B4}d)7*RdX8XaNlPco4tqfGTLuPEd|!z?6$ds3{tkg7DYH zP7?_|H7V|%gJN7VZ}AcWMmZ;9OH^vz3(uc0LweLZ6Md)8)-zTwjoIR2C|=m{IM&L- zmRhh^5i5T)`WpFOFT*1U*z`7@j+98EZG{v z`~rK&o80icZHr{Hc&7fa~=}Y4~OAFiu+hg(m^o3sC9j8gcJS zjI?W>EDnZloqU2&l%0v)_(I1$v2z8>Qt~70d|h;||5QfFW(upxA0toiMVnCjl{Ho9 z38{3VMk8{x+vW8rYux}pwj6G+x0QMEWb*@z3Y{MbE}$J76-Sm;1%=Iazd}8Ay`F|v za(&;1R@?@pzg6R(D_Q%>n?8fbc9+;b`#>`{T&}DSV9`pSQY|mxp;VJJ^Wluw{?OQY z*UXk&UPIMq^>t7@Wy~33asabt|8w((-Z!e*LnbA_1jhxU%5LDsPh{&a#;5K(vDJBV zYfM-|FeqQL72-c75qT{jry`y6|I$b*HEiGwt*Q$8fhH{o;hTh4NJZ!mL67Xk2yv70 zGZcVZB5u%|qT-3|%(6WwH|0tgw0k+HuMxhwP|w#$b&8G-7j$-8@BbDN8FT1TIv0}T z=x4TZ0%R%4@Eo}eQa)k4=e)Ku^YjRCxBSalE9m~?+tYCY-_rX7{+~p^Cu9zhbhh6_ zK-2#&5%BN-ED=!3+|by@(U{iB%}HB9+IHg)M)!v*_j!4B)nzw!y?B&~V32qt4sPb4 zR7|*E(|J$spR@IAqrQ*7xovf+uBI}Ey@o$Q!;jM*o-pK99cn9}h9}fS3qehXdrd3X z%J7lYmT3ak9z34e#@JWW!=8qw7_stP-fkmf&W^K!F@+0Q&tX27o8l)BXj`8#kuKZQ zb)mEAYm;P7r&mWjHX(CvLS(kt3#Z3`*)J_@+Oxo58@e+daASBeCi8f)`ipL6H({Zr z#Ehpl0qKaQ_(YxQ^y`*k@&QcVhokz(KJ9RG10!yXrjDv%x1Qg6_D`I$e;u=~^kVKR z6{{wm=rMVZF{FzAY6VX39T;0s#B%tkf!CH&Fk)QUs`G9YXO}sI2ZwkHi@#Vmo!p2= zjoh7^9EfJq2L`u_-^E@Fc7|Vwa!Ehah+JH8r=^YlOfs@qIDvmuD5h-i(r@U!Yi^wZ z(&pBB;J?*plHxpe(en&?bkNyrCB5Wl2A+{>RY`jMjA$99SCDJeD{v7~s6|Gj&{Y+Y zYKM?Ms!PGVUr@SkW zZvv~>6oeEO;7Td7A+{{1t`tPoV8o*MfkRc|cBlmj82}p}fx3|)X4T?Aqyg10Y1fCT zD?Yr^l&?k8%iadyov)Q&Ev8LI(V(0hH>OL#>N&QYEI@LeFpee}kr8h!ZL8oFTR>Vh zCZ7;eWi9}zET6u7eeHrOtr`_*7bn2bXBZ`5MNdkkQ z06;)M0DxPuX#4{E|7^U!En_#QU&xx<+R)k98X4IFwtplnD;eaex6) z$E!^~hmLLM-1T^#N1m62!aY81Ff?e4A|Ds19hM3{?S_@ zp;XAy9_`a42_#|@ZnN*}_!A*hGbd3{JimW6(}4taid%l#-@VZ*xxuV$!=!4ZJc%lu z8Zdq17?s1CWviUE&|AdxSu{8!o26+&mLm_E6se#(WtJ&uV<4u3{tWS1Mw$`;*Z;rJXPfF_p`@N-;%OAEB$b2(c@?}n-`LVDt==^oNq(W z6PQ55pQdf<#by!C1Ldo4rlmaUSmJzqzoWp$#PtTz3bvxNA`$(Sx=*h%9R&Ds5C&tU zXR*8`IeuBf@i&EP1uc|(-wL;Ct4{@Fic)BGo?jV>krRk`zkn(n#4}5{gF|YlAwdq6 zuvrgl1I(^8Ul=9imHet6AG!+55jL@71+q98&6bw!UV)@ZHwt;i1I&V_;GwqJb8;T!Y}w3K>s`NasSW2 zry$HPBrQy9ZPc7lZ?j1c6XMDP8mW2Sx2%&#zD_I*bOpK9qzdC%&j5CO*1QK}@7aZj`=kV%!1nrsu(*EkP6hF+^>I;8a}JU`_u@mONeDnYKuzq(FD! zf(-=XQY2Q7!$dIN0Q{e5T5KQr>8@QCRVn^$1n>obgzaQN0DvFh|IYkk|1ecVhn#{je`D6CY??n?h6=g{D!#hi zz0@vMGMBd~G^$rI#l@8{Ez~MYQGDwiJ802Rc$V21MNn#&E9H*@q>^bA`sbJnUFLv1 z8nFINZVEn@EZ{NnIQpAbqJXY9=AG*0?6J_FCL0t88psK&TI$-=*3{5Qi60o-rThd< zbsi6w>n{SPi=dNMi@Q4N{k0{1WDX)HTa1~@4CzyaFt*t& z@&cLYf|}@v{VUH?aRf#TSZhU6!58ACXDRoz{O`)xkt4flakErxACs%(Qx|>W<+&hY z1L7d}L8#F4Fiu$@uoSf0Cw<4u<>RXVpUQ=1m3BF?sZRo;1{bSRi&jRDF@~%eOo}2( z&L@1X>XR4ePZjkNW)I99yOhK3fL*|in2Z*wz6aq@V7xG`*jytD90qZgBIe5#o+WKC z>i@^>{5ClL-_|$K|8+Ws z#zr*O`c8&sbhM`CPG-&qbRxhcRAW-&Q)5z8^$K$1RHI9>5|iSSk}}eB zQ_|Gp({lTiV$>88Q!|YUqm;i-O-j;HN=wk}1O1K$9KuqGit%^y2f*^X|G!5^`~N*U za~mULw_itSttcIvNsrL=K&3;cKC2<`06TGAK2o7jD-Y+w=tt6Rl*w8d@uL&Xuv_E_ z$o*h)Jmq<8+yrtF)!m-TZT_*bI-7GXXqzPrNP@kleU?IYw5pwb-NBM10Z7uuIkx2t%$O;nKqSnNm`^( zv}iAsRHCRpj2oJNG%~KKJg>wahuc`r=jnw2RN9 zJg?IGW-?~{4GmwdD~Wf-W*2T#4-^|)>S zrK=}v=v|RLc)qT#@1`|-dOiB!pL#4#eQlIC+oAsK?Ma0rvQ6F(cstUm`*ZC@QO~k0 zYqp*kx#(2q?Vl(%6Est0dd%AzlkFLOWujj~cArr-k1C{f*^~DSNXk3wPJgnTtjZbu ze5Z`7<%qN+dZD&XmorR zxrH(0(#<6Qaob}oa(bUFFAX=`kYO7Xf2_DULg{gQeT~t^ecyuF(K~uH7{Y9dYPQk# z`--%@nH8VzS96q`x9NnXs_cJp^PSRd=WX_LU)$d=DI#AmKR_8!A8~lja=r2=?%A-# zGU{5H;;$)3o1}kQ$3L!~x4BAv@X4_C&2<4&54_UAoM>E5ZBaG2crH?0@w@nFp`B=! zwW+zSBi5(6+ZS$nIYBA=vraemf+Ertt@G!o`h{D4lh)1Z-}}O*&8N+r-3qvx4*iOr z%f?OrQLt{&Qm1)N^)KV!X`9>#Sdmm3Y867?^|88Pb9ni&(7-&e={L2fzR2A^BiwbQ z2W((EWO(+)rx(dHdYwFV@7lGh)lt!XYbbM=ljh`Um#9=}`}JIQdd-eo8Ajbk|LWm1 z^;&sP+v}4){Os4oKl7sI7p)$8gCl2LNW6ZfQDIo#ohh;OD8194uYIRDJbYK?J4F57 zqPjb!Jr(CfTlw6Sdt?3n!r6~+?*V+*L{Ge$|bB^!D(V=bv9$>zhAj+@t~4Rdt_( z3ui5CN|c`6@ZU+jg;4?Ds1vlyZpSWNa=iQg?pl%NbxHn?>96W$Z14)X`S5A^)C9F_ zhFy!-L`;qdudR3;yh0>@JID6=v20HjbzkXc(|S(|xUhBkM(KI$yRBI3##uk) zSLNQ3mw!DO@z7w)`j55gl}AQiHh2D@qxUf6iJ#md`_H6I zH(-p?g&$7xQ{v4|&W=&twQP8tD(l@*TXOc)XDMbn>$WC8?%Uij_~@haM;)uE#-C?Y zR?{|*BfUO8eC#?k3}zh~smJ@a;$*Z6BTleE6-IjWEAB;7MjRpzi+Cn@KO9t&1# zE;#(sMJlWR!?&mBUnthGo|ZJ~i<|zBLv|mx#wM(B$yw5cwEM1R+@u}{Ogh<3J@MxH zjqQ<+=S!+?EUgUn>E}M=e2;bC#$CMiso&*8HMA9$Qb`ph`+HY}|M)U_>MP|G_u0#v z2L7OV%uY5tuzjp9c~F6Dtf91qk$=HFfA8MRn#t7d)(M&8FRa{Sls?R9%xu*!C+Q#k z(hc8!D^KbZU!Ah@&gbH)2nFWCw>2Nx6{8E*_J0}`ZEb7Vd3wU=WN902&5yZZOA=i4 zz0zOw`Mz-d+GG2!8_!fbS*w5Z>*v$&+MJn%DLkm^TEy$R@@<*|unJweV zc(2{MC3jspMN!qg{tJ)R@)}B7e?9E((+V!9Li2R}@>9vp1K6dfud7?^UVLpSCBETN z;<&kcOm_^2tEx^dSlE5p)#8<7qchFP>|=c%g()mZl5MheQ#iWx%Z$i$)!X&8=lZe_ zZfK7H=>bRHY4knc^diI8e0JZ`jLMgFH=gDtZ?fo8 zI6sv+{!*Vx>WHv?3908ZRNeG~Tz9KapYwELLm~Oi$|?Pu$Y(XFc84||Q8~8ra&-OO zi8`DhYScbiPU9B(2hPc(AglozbBBR3dyS)+Huqq^3*ZUk%cFmG`z(8t(N` z&ZMMe=H9(x@mS^Ywy|=%K62)UcGA{PKN#Cfb|@uc*NBQfG4G9&r{8$%`Y?+7Y40gN zgRj9GEiURU{<3rE$Zay3g;__BvlPrcKD=1nv}y9zELpp}M2G0SmHAQTdiEQor5)4; zxj4Ttu{y$f{9jgNr{xvLKQ+uyOSKzGJGZ6FLz`6TlRA28cMo=-T@g7y*x}e$?OzF$ zrz&TUzvyzqrQZ>S%%eFsWEU^Lq&BVKtn0;hhWjke5{ zU&|9NYAacLg}SqK;wUwVkF&PH>q(Q;A}f?e*1xKXyV>9D&Cl08DB*XCs#OQom|D)V zK2P5BB`g0%Z(pu!mw?gB3x8z99}Lx8OxBp@yZBX}imld(l38;XL`SR$tTHvM^jqF* zqIH9}=`J-lHI;o1S;{f4HBXvr9;dCAAa<4>BJ*1N@x2up2%Qk)is?x;FuiqZ3*r9=-_qBbW6>tF8WH(O!#6H>l(T zW4E;b_V+GR583m+_`%&EkC8ezHZdNpsyuPHDaIK#LcZ4~rPybuJ3A@3pP%j8w{V|I zc9*BJ?^#XeJ7#!2F<2YQig%Z#$rTUOyZ7p>ud;2q`RFL$Usu+=8=f@Gsh^uHt^d_0 zJ+yq3u1@^8dHBu{rC*=N_ISg#a!_@5yR|oIP$4uqt)TwP`aQj=H6DeLwj|!I46R^aGkJ24@e7T$F5XJ&U>_ zcGAo>ODc`yxleNHrzA$HccvL=o7}ql>WY_{56fbh{j8Ns9-C{Xy>PaSx!-gtF)C`+ z=&oy=d+)k^eTPlyfFCu#ryu;bj4l}5g+xm4ferDbIvGm$Cc*3{sR1TGJ3B1+U-3HC# zK}&T+L(6Caae*+m&hV!B{GLGPSIsoLZs93l+EboH(m`Z-Zs3*Gs*gTlyP#&ol$@h? zEN>DB#HL<`BZ3)Qi3PXnDZqK^!595m<;s>I%@MxAh}55mRLlw6llKwiIp6ZCB0BmB8;}sQQK6%gT!)(+&+lp;+MRV1*(TF zsl}c&Ta*I-GY5oV(be+fa+F^43TbPB?Qal!vY1Q3q&UyPVAz-6D4hV=NdSY*VYd9Z zoZgip!k{jNfoyHwK&l4GMF3*bf&hQHoRM!j2tucM>i^}V?@y*N2uUTr)jRnB;(ZKc zVj~1^O_jKKcy^zv#_u(UPF5cr2}R3$Cjy!m)88K!PRRi@LT;7^8@9Ovx7iS)GZ1c} zAH+k$GaFJ{AF&p&HbR!NL9k3diH_w(rqiuxR2G@#q>)IbEs*e+%Srtv2I}v6iIC zg8%D_g$QvhEdDyqpP+}t#GCN2D0Ck}s{RfUcmzBL>s?!ZT+UikG2mcD-`Fb<*7^xK zTI^A%(|~UGnF@(y-hv2!xt!1D5&^~YJbvUs;{ZtPcffm4uZ@@~9we0EuwfxkKq|eU zIH=ehFss@8Ufb7BQn+}wWz$kK8=+O_L#v_&zUL(#>MYp8LD;5#qu)=P4F)#q$sZ^) zyd?mM=g8>iJVqAskP75;v_*d|76*{dWZAKp!8D4179E_IavvK$tybc1(dGVDbzcO$((iGbpHHadF+JOb-ZhCvD1 zs>hd!1Bs1-f>>mMR7q>n_8kV>Zr9*%)#jCw!o{;q-%>In6XJ9NBtx`M8x$ovDuwDr zC%3`X*le1?e6Vpi^xzgq`n6pr8B{#e1q(0K<^od&Fh%{h??!Pjy=e@Zz($QOOw3;l zL=%B1ng;DQO9T|pvrC;Df7@5|3qH&zTt8rg@zWWzQT!rVLdP{`$?{v=WZ41`gh zp*ti3isu>Mbt)|j+Vd!IwMBd=^RyU{Os^n+m`Spt`S{Y|3nZjF?%|dFR?w{0(5$l% z?DrXx#KyDkd3$L6WnirWNzocXJ`TnZwK${vWj%|=@FOJbb(G3|3WV>$U;+)EH`x+` z#dAHG(eUFLaIJ?Ho{4askRv{*W2nC;lTOIiv-_y^kD!t`3e_QMd;cdVf z&B|uq#e;PWWd~CIov@8^0_x&QZ_;6G&juR?0BBZb{FEd%p7lvDjc}}rvW85B2GD4! zP9i4^Zzi^g;o|_4dQ?JhRy|64ehT9D43w&9R`!sV5G zCP!~33-&+;0$oC;KXOk6n1FG$wfIwoe>aJM;(4A)eoTTwf^-!;$^=OjgJHwBs62g{ zFjOa`NLmtqJ^~su2ZGiJ!Lv{n7Z1;F)0k;v?*h9tT;DobRdh5OHkiZ8C&9xUxd{Vy zECQORaDC0%z7hk*^KJfhp#dAc7DC;GjyPNgiUG@@lS8erxp$(@rZ7cL?J{^zEX=-` zAuU>_E(uILOPPlS=Nq6^4S^*(np4yg3z5d4&L_h{10l}})y@@NfM+0N1k|=+!z6=> zXBt@FX~-jBY6Jc|2eIwfk)mVLq5h>(%qcLSYb)<2Z`-En0zRw2w|v>-0}954uonZZXDOuNkXuAu0;a|WEO!@?Sb!n#JGoC#R3gv zdNJvyyz4gBP$Ci%H>KnpZu-CQUE4ccDs za5x?PX&?ZHgO8&btHwj3;CSBUqpe+F>46jr9}2yOEE#BlD*}(p)=rWK)(}yAgRdo? z5`@Nc?$bhUB#Dh@?QVO~dKws=4n{{K zoV#9pWV5zsV2i?DS7STT(;>T~VdlO;qTqPmdJ}@*t_SDJf)91J)J+nAZf|Zf$CTr( z0?e^NDQfm3n#e4#L(BU10Eqj;b#uO9B(m^6T_Ng)opM8AFd|+G1k( z%jHDv76*|*_9vzoeNg%9N-*g#Si&<#0M%2)2E_Bz$dca=^ZX<(K+Z(qx*rl9j!mUg ze{aAMJb!7XylPQ6H05lVzeEQ?wudDKjOXik(Qc*-v}X=11fYD)j)?;c>npH6I+y7u zXot!GE7KEt;6!X4e!hK9N(>m!*Edz(8*AS$(7x!7hU{}t+Ez=qz~jN0Zd2TOHYj5oyb1Y8`; z-mu`TAPUspd854N@XAoT04;hq0`2y{2Xye{h3=buUn7ti+A^Wqv) zU^@Xfw=4Txbkv|g8lA0AW`k=Jay5R~&+Hzgtgl1(d-%&QB!h})I-F}+e-0vd5ZKrp ziD22c;$qT>=l_P56xbVqaaZEH_;K$f0Ey?AM2+k^9%2=nkg-HKzN!@$Fer#dyw0EI zde8R<0A7Ryg&KC#2Z?~4OaQM%$0$EPi4M86r8c&JB~k(FX}hZ|8uOsX zD}b{OXm&VJFF9m9WA!-Kk~Z0lT2{L(gAqiMP?b)`izle<; zxDI8ug^dU(*weRH*0Y@QkLS9ZUx5Mnm22q)swEHIIsdz7-r({JsNYcn%^I4 z35(Xq$5L2-m;w_nQ4+axTh02p-(to-2-AH~eVZbf#S6s26d1F-x9Fks_itd6h3F&+ zuTSJn7+6y3n&0qb5-`2e4NVx$oEo=|f$MwH82U5@I}p~R9e-aTYt0B`nzvjz%MUF0 zAZ-e4kLn2PmV>8+<2S(vY4?ytgh3+%Gh$eP^;v8h+7;XsEnCidb`V6UgS4*)o~5#& z(WD^Z8X+!vf+8*+0lS)0b4LQZRe*@1ZS@rat(}9k_6ruhx&t9^Ajf}@b_5(G>5yOW zoW8`4?c$lG)xMZw4a}YcGjzZ}^%ot>i+4i?p;Iy`&klS9-1X2?qZ25@n3BT9v+WhR z3Fi8Fm4ahT|q~?tv4F+M<81)o8)Rv+cZ->4t5f z+6ggfiNuIakm#tCwilrTYaA!O0?NWEK@*DUtTJe>IiVo@B z{s#NeyT1Bg1>m6&sAv^(c)7%Y@qFvLJ`2Hy8()AgS`t*Q5FM7*=0bCq;RlN`s`tQ` z(1Gw{SiTX}ga3z#XQ>p(0H={muYt5sXk!+t$GG7%_OZ zqT-njn?^c36)=xOhCr(y6}WXtR7@c^vd*|a{$Lz{SAm()O(Qp>Bnpn_ZM(uj>nG%; zdjOC6ROvd=q2Y=OnxB9P!SPG8He*LqJfL+=(2N)@J|dnWMZf&j0>GN0$e#>-H;Rte z=2qQqlbhI4kdNH;_-prZF%p2pb4*I}o^lOrY73bGP53%Vq64T|477)#!r)9) zrhLG7zS7SxZmETnkK4BJ8+iO-abU4mH3-W=`Kzn1#K4qp(trHh9b$9D2E_CG;`eSz zCd5Bn3c+XAxCdgu`7)Q9{oSfY$TB&x8+9Q-T0pKv3$k2TOcc2_d13KfQ=8_`=npRR z70ip)yz!4k2gRnwTDTIgr&Y=iJ}?d9r4%+|qW$;qXOhCjvu*0qRSD}$p#$M#`}CC< zsJz?J2%EN|!9)EW;4Z_BXEs(!3K!4z;-{vuso=-Xkekrl`yTppQ61{fg0O&P(r>4w zmOcTZzrdwTkuJ3JTM0noISO7TwXG2sP=saD##)Jh;(4x*+rQ-&7!;d$Ll+Ib>qLia zT{LWCnbfLtkQMBDBKg2v3YsC(KS>T5&p3AQns3-hd^dFEMu;mts22hE_o5*-Y9r1^ z|MmCIss)A{hw#s;^llUn4bO~I`^pG*WROO~GAz0r>ffnz$K$f?_>|T7 zmqX9Vhy{k{RrJ-l1{&N(HY;u7j2P4(05QuSu@%Eeb@()+AS{h=PG{j%yC38*Cwn zZbDCku1RiE?I41n#SW}JY^>*0!|gvLD2DjfBu)Eu5QcDl1H&lv?pb3GSqG1OYX^>#=2jAeVUP9o1 zU##I>zrlcu51%PNI+#R?0qS;0cABpx8P=`*320YIWk^whHnviLqI2LGMB#j@ZJP^< z8jSl;MrevNZ1$1WBQr3bs}5}s=#2Qpa%0JDorZaRTr z4ty{@)B59bVmyTfXnBH**BLS86)yJQv|kBI$0_`>&Ao(`&H8=K2%3p8+4gf+ZJ!7g zhCVpEeyi5l8nk7gu(AbOJ=rVo0F3%cm*5+X2rmh1Pq=pw2V=f5i00G6J0P1$Wx+WYywz#z=RA)CvE4y^ zv>eG^-4XGaLsE5r--l0tA}^I;;|M6h@S!LfYdVfXXENbEU_2L9nHpVxKuCsfEPO3L zE{D0c!zcvuH{BoS>IsQ(7UTugL#IUuFP}p5_9hUnbV*?pcDO45KHV10;V+l-1McY( zkZJ!Wod0K<#Dlp=s>M2I1BACod-KITGEdTZyI9Hg-TdjX@~=OSaDS`JguoKD0T9Z4zEO zgV4imUVoK24RWW0tDtsy+yU8;!U*$9dR2Z;Pmqqc`rFOIYYv5_7k_1m^?OoQB_SM; zUJBoM_*#BkPTH0ZNN2%OM(Cah3Cy%=_>3h0Ed8Q2$EK~qL$Lmo9YlV4{8>t<9|+$D zA8LQom<|B2nQ)y5K3G?O$ghe8$<^=~z}NEQa^z!$m(GU6RBUe=Ox)lR?Bjh@eL*aS zf@XH9xDFr?tG{BIX(N`^_rix7C$9s-gUNI_ZGl(a^8Bf|79xU2%y9)R`oqg~O%TaL5weg+-*l;lM%0HXyz?7znL2 zN|J?!ptFL!$Z*LZ0fobAy%}7fUr2b~IrBf-W-UNO*v_*IL%jHBLYELr3Fc`~{tLlHqZUk}ePPPXJ_GCYdNGkEk&lv1?KMKx1u0>Xc*c zN&PcE@??1P`}L{Qv{{iL>oWmxH7Vlt%X_(>;ISz-Bt-(@im&7EcLMFFgZ60uHX>U{ z;cV^mP89?-IJ-9=%g2YIroM1_S#mczL-U=Hl=CbVt0<_Re~ zkg5B>*%%_{mpiV=xdIrI00SM@rR58WA*kzLCtcvW65f=eLD7z8nf!wGL=#SYVYA4* z`^8NVS4n&$P-rl`zDA+y!XxuOL1Z85-=hGq*X8%kX+m!tH$w0ZREdj+1_H*;l}RRL z07^Kt2D-;45BB;9$QbRg6KX4Ykm0Lj?A@ZT5G2+J&HA?z1IF{E^o-KF0Ldh<=Q_K#SG+8kHwWq&JH*7@;bv^n+x9P4sAm~} zE*c@+n=wrGg*SFh5LPqWBIsLwNERK>{9;9MbQ)mqhgL?hJ(?td?GL9bv8X2GJ;!W= z!Y9Cv25fXkK}548vGJ^V-w;IGyG}|*{Pu3iUV2)Dylo3A2ZlmqHA9z*+B~e2WYO`= zEe9Q!hI5~!6R_^o z?aptJ=I#>JgW2ArNf$D6-L%0XUJwtcMPd~HohEpT^lZEyFdy_NgN%s!h_SL{^=R+G zq5cndf0ziG905&Gi)gC+J5BHw(R_HvKn+4Q8lFx;BeuMcB=sQL$naXZ+ogQ4!2z6C zgnCO9yPXG-95YnOn0IPJTP#50wSe}o^uV`7c3xR!G~`Wn7|A;$S_IK0szuwUh{g<5 ztH)l~iG(zYt(dm_;J&q>f20Q97N33R+b#vK*fJC*H(E4+zg*7TP)RBw#7U#OWj7L= z!5*@`p^QOPna}x$s^D!ha7=1$Unn2HKsHAec@`m2McRA#A|ayNd+cx<6_i08HGKU) zQv`31EtSuAVcFvt_zCJGH#bO94I!RY`0BZw(GOICjLFwD8e9IMDtMcm8TI+TIy4JM zfj^Vw#7I<;HczZEViL3>!5sCF&E_K^LrwTMTHr0Qb5)4#ehAwS5G`o`%1o574z1_Q zi2AqzJBn-JO$1UfOwpo!O9~tg6?^>ET93ndzE(Z()+h=;cwzHk5=rYZ|9E8f9!Y9} zN4`3xC<$(SBCP^nAS1po|EeUBg*__&qUroDR*C3P}qsL!-X^ zLsjrLsqV4Mun%OeL~vD9k&8bistE5PKcbkqb;jy6_U;pGHsY&?7m~V2Fn6$d6~Wu1 za>kM%xaF3Vj*FYpPLfn3u>C7($L0jCC9a1@b@_*?;B8W;aF6}!sc*@3bi$l|Yc8MpS`KV7 z20Rv>jg#s1FLl9NrB<#<`2bi0n;S%D!4lxDU$L#y=CMvc?Zn+qfU62tK-UVgR3(Xx zXB|uJtMmp~F9LKc#22FbiG$qsp}9b<>>5`(H;5in_8vB2=YQsUol@)XFBWzc{o2vmPP zQK1BFw!+%%;?p^5qahwB5D%ywuZ|HFPvAy|1gpq3FM*r}BpcK-$p)f=wRvK9PADKo@+kh-044%t} zLha27&??xY#%TY0+*sesT3jIe69<;Ug7 z9TE)%&t$X7CFil=*;Ak%MaKk+heg2nvp6=JO#D)qe@yfg2E_B5 zUUypS25`%Q;>8q!TYo`xI0q_O&^tRO^&#(6pzRXX`T1ST5gQQCk6ymNw-wB{JHVlP zG!t517afi`YvhmFa=i(tMGWW9Pff+*VBuMn%M~sf0j;(bn4zskc`7=R6N?7Ne+a!& zYRdq)2O?z_S`f}0$TuH6MKQr!E=eQ@!7N+A`3fxgl5L9DiJ{7t^jg?FB1;z5p~9#@3}$okcPK`W1zE6`PE{9 z;dybqw7csAC+t>>*+}Lns1XIq7jB-Q7_(U9P}BAb;92VLQW}7z9h4k15op$X2}0vJ zpElSy2;Lzh6~pQb+Fw`Hbp*KW`DV2XpKgXj1CAZW-(OFu7Yzl^WQlCN+Cwm13bY{V z`f9&Aj3HSg(ohOGB-}-|iww+~#97nb>FU~tX4ZA&B ze_YN&Sz*NsGaZed=ChOQkZhtvz&rg6RZ{B@uHot0A>nwF+b**8xCKG59lAPnTFADW zu%ZP`hhYPy2|b72iHD?;0wI9fC9H?A@&(Rm@xC5|&I&Pm3M;(b>0^uq@3m?u&?4Bj zBisZBEL^vJpW1J8Y582Ra)5cE#sfef!Fij3F#auZSX)c2Zfu>;bgw+}zVHMQa+;u-R0F|iGl2Ki3tuv(kgXjLWGlss=OW zLT8G0L+jx-R{{RP2Sc=6gUQ}s@=OLR8L{OWbQb>h7-41qU31YxpFG5*>m;VgV;j | undefined; diff --git a/extension/client/out/extension.js b/extension/client/out/extension.js new file mode 100644 index 0000000..fd43ff7 --- /dev/null +++ b/extension/client/out/extension.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.activate = activate; +exports.deactivate = deactivate; +// File: client/src/extension.ts +const path = require("path"); +const vscode_1 = require("vscode"); +const node_1 = require("vscode-languageclient/node"); +let client; +function activate(context) { + // The server is implemented in node + const serverModule = context.asAbsolutePath(path.join('server', 'out', 'server.js')); + // The debug options for the server + const debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] }; + // If the extension is launched in debug mode then the debug server options are used + // Otherwise the run options are used + const serverOptions = { + run: { module: serverModule, transport: node_1.TransportKind.ipc }, + debug: { + module: serverModule, + transport: node_1.TransportKind.ipc, + options: debugOptions + } + }; + // Options to control the language client + const clientOptions = { + // Register the server for Blueprint documents + documentSelector: [{ scheme: 'file', language: 'blueprint' }], + synchronize: { + // Notify the server about file changes to '.bp files contained in the workspace + fileEvents: vscode_1.workspace.createFileSystemWatcher('**/*.bp') + } + }; + // Create and start the client + client = new node_1.LanguageClient('blueprintLanguageServer', 'Blueprint Language Server', serverOptions, clientOptions); + // Start the client. This will also launch the server + client.start(); +} +function deactivate() { + if (!client) { + return undefined; + } + return client.stop(); +} +//# sourceMappingURL=extension.js.map \ No newline at end of file diff --git a/extension/client/out/extension.js.map b/extension/client/out/extension.js.map new file mode 100644 index 0000000..6c9d462 --- /dev/null +++ b/extension/client/out/extension.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;AAYA,4BAwCC;AAED,gCAKC;AA3DD,gCAAgC;AAChC,6BAA6B;AAC7B,mCAAqD;AACrD,qDAKoC;AAEpC,IAAI,MAAsB,CAAC;AAE3B,SAAgB,QAAQ,CAAC,OAAyB;IAC9C,oCAAoC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAC1C,CAAC;IAEF,mCAAmC;IACnC,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC;IAElE,oFAAoF;IACpF,qCAAqC;IACrC,MAAM,aAAa,GAAkB;QACjC,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,oBAAa,CAAC,GAAG,EAAE;QAC3D,KAAK,EAAE;YACH,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,oBAAa,CAAC,GAAG;YAC5B,OAAO,EAAE,YAAY;SACxB;KACJ,CAAC;IAEF,yCAAyC;IACzC,MAAM,aAAa,GAA0B;QACzC,8CAA8C;QAC9C,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC7D,WAAW,EAAE;YACT,gFAAgF;YAChF,UAAU,EAAE,kBAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC;SAC3D;KACJ,CAAC;IAEF,8BAA8B;IAC9B,MAAM,GAAG,IAAI,qBAAc,CACvB,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EACb,aAAa,CAChB,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,UAAU;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"} \ No newline at end of file diff --git a/extension/client/src/extension.ts b/extension/client/src/extension.ts new file mode 100644 index 0000000..28f82d8 --- /dev/null +++ b/extension/client/src/extension.ts @@ -0,0 +1,60 @@ +// File: client/src/extension.ts +import * as path from 'path'; +import { workspace, ExtensionContext } from 'vscode'; +import { + LanguageClient, + LanguageClientOptions, + ServerOptions, + TransportKind +} from 'vscode-languageclient/node'; + +let client: LanguageClient; + +export function activate(context: ExtensionContext) { + // The server is implemented in node + const serverModule = context.asAbsolutePath( + path.join('server', 'out', 'server.js') + ); + + // The debug options for the server + const debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] }; + + // If the extension is launched in debug mode then the debug server options are used + // Otherwise the run options are used + const serverOptions: ServerOptions = { + run: { module: serverModule, transport: TransportKind.ipc }, + debug: { + module: serverModule, + transport: TransportKind.ipc, + options: debugOptions + } + }; + + // Options to control the language client + const clientOptions: LanguageClientOptions = { + // Register the server for Blueprint documents + documentSelector: [{ scheme: 'file', language: 'blueprint' }], + synchronize: { + // Notify the server about file changes to '.bp files contained in the workspace + fileEvents: workspace.createFileSystemWatcher('**/*.bp') + } + }; + + // Create and start the client + client = new LanguageClient( + 'blueprintLanguageServer', + 'Blueprint Language Server', + serverOptions, + clientOptions + ); + + // Start the client. This will also launch the server + client.start(); +} + +export function deactivate(): Thenable | undefined { + if (!client) { + return undefined; + } + return client.stop(); +} \ No newline at end of file diff --git a/extension/client/tsconfig.json b/extension/client/tsconfig.json new file mode 100644 index 0000000..7ec5113 --- /dev/null +++ b/extension/client/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es2020", + "lib": ["es2020"], + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "strict": true, + "outDir": "out", + "rootDir": "src", + "composite": true, + "tsBuildInfoFile": "./out/.tsbuildinfo" + }, + "include": ["src"], + "exclude": ["node_modules", ".vscode-test"] +} \ No newline at end of file diff --git a/extension/extension/client/out/extension.js b/extension/extension/client/out/extension.js new file mode 100644 index 0000000..5d185f5 --- /dev/null +++ b/extension/extension/client/out/extension.js @@ -0,0 +1,77 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.activate = activate; +exports.deactivate = deactivate; +// File: client/src/extension.ts +const path = __importStar(require("path")); +const vscode_1 = require("vscode"); +const node_1 = require("vscode-languageclient/node"); +let client; +function activate(context) { + // The server is implemented in node + const serverModule = context.asAbsolutePath(path.join('server', 'out', 'server.js')); + // The debug options for the server + const debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] }; + // If the extension is launched in debug mode then the debug server options are used + // Otherwise the run options are used + const serverOptions = { + run: { module: serverModule, transport: node_1.TransportKind.ipc }, + debug: { + module: serverModule, + transport: node_1.TransportKind.ipc, + options: debugOptions + } + }; + // Options to control the language client + const clientOptions = { + // Register the server for Blueprint documents + documentSelector: [{ scheme: 'file', language: 'blueprint' }], + synchronize: { + // Notify the server about file changes to '.bp files contained in the workspace + fileEvents: vscode_1.workspace.createFileSystemWatcher('**/*.bp') + } + }; + // Create and start the client + client = new node_1.LanguageClient('blueprintLanguageServer', 'Blueprint Language Server', serverOptions, clientOptions); + // Start the client. This will also launch the server + client.start(); +} +function deactivate() { + if (!client) { + return undefined; + } + return client.stop(); +} diff --git a/extension/extension/tsconfig.tsbuildinfo b/extension/extension/tsconfig.tsbuildinfo new file mode 100644 index 0000000..0355f34 --- /dev/null +++ b/extension/extension/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"root":["../client/src/extension.ts"],"version":"5.7.2"} \ No newline at end of file diff --git a/extension/out/tsconfig.tsbuildinfo b/extension/out/tsconfig.tsbuildinfo new file mode 100644 index 0000000..b05e939 --- /dev/null +++ b/extension/out/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"root":["../client/src/extension.ts","../server/src/server.ts"],"version":"5.7.3"} \ No newline at end of file diff --git a/extension/package.json b/extension/package.json new file mode 100644 index 0000000..a0c0d01 --- /dev/null +++ b/extension/package.json @@ -0,0 +1,49 @@ +{ + "name": "blueprint-language", + "displayName": "Blueprint Language Support", + "description": "Language support for Blueprint layout files", + "version": "0.0.1", + "engines": { + "vscode": "^1.75.0" + }, + "categories": [ + "Programming Languages" + ], + "main": "./client/out/extension.js", + "contributes": { + "languages": [{ + "id": "blueprint", + "aliases": ["Blueprint", "blueprint"], + "extensions": [".bp"], + "configuration": "./language-configuration.json" + }], + "grammars": [{ + "language": "blueprint", + "scopeName": "source.blueprint", + "path": "./syntaxes/blueprint.tmLanguage.json" + }] + }, + "activationEvents": [ + "onLanguage:blueprint" + ], + "scripts": { + "vscode:prepublish": "npm run compile", + "compile": "tsc -b", + "watch": "tsc -b -w", + "compile:client": "tsc -b ./client/tsconfig.json", + "compile:server": "tsc -b ./server/tsconfig.json" + }, + "dependencies": { + "vscode-languageclient": "^8.1.0", + "vscode-languageserver": "^8.1.0", + "vscode-languageserver-textdocument": "^1.0.8" + }, + "devDependencies": { + "@types/node": "^16.11.7", + "@types/vscode": "^1.75.0", + "@typescript-eslint/eslint-plugin": "^5.54.0", + "@typescript-eslint/parser": "^5.54.0", + "eslint": "^8.35.0", + "typescript": "^5.0.2" + } +} \ No newline at end of file diff --git a/extension/server/out/.tsbuildinfo b/extension/server/out/.tsbuildinfo new file mode 100644 index 0000000..11c62bb --- /dev/null +++ b/extension/server/out/.tsbuildinfo @@ -0,0 +1 @@ +{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/vscode-languageserver/typings/thenable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/vscode-languageserver/lib/common/workspacefolder.d.ts","../../node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/vscode-languageserver/lib/common/typehierarchy.d.ts","../../node_modules/vscode-languageserver/lib/common/inlinevalue.d.ts","../../node_modules/vscode-languageserver/lib/common/inlayhint.d.ts","../../node_modules/vscode-languageserver/lib/common/diagnostic.d.ts","../../node_modules/vscode-languageserver/lib/common/textdocuments.d.ts","../../node_modules/vscode-languageserver/lib/common/notebook.d.ts","../../node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/vscode-languageserver/lib/node/files.d.ts","../../node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/vscode-languageserver/lib/node/main.d.ts","../../node_modules/vscode-languageserver/node.d.ts","../../node_modules/vscode-languageserver-textdocument/lib/umd/main.d.ts","../src/server.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/vscode/index.d.ts"],"fileIdsList":[[51,56],[51,53,56],[51,55,56],[56],[51,56,61,88],[51,56,57,68,69,76,85,96],[51,56,57,58,68,76],[47,48,51,56],[51,56,59,97],[51,56,60,61,69,77],[51,56,61,85,93],[51,56,62,64,68,76],[51,56,63],[51,56,64,65],[51,56,68],[51,56,67,68],[51,55,56,68],[51,56,68,69,70,85,96],[51,56,68,69,70,85],[51,56,68,71,76,85,96],[51,56,68,69,71,72,76,85,93,96],[51,56,71,73,85,93,96],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],[51,56,68,74],[51,56,75,96,101],[51,56,64,68,76,85],[51,56,77],[51,56,78],[51,55,56,79],[51,56,80,95,101],[51,56,81],[51,56,82],[51,56,68,83],[51,56,83,84,97,99],[51,56,68,85,86,87],[51,56,85,87],[51,56,85,86],[51,56,88],[51,56,89],[51,56,68,91,92],[51,56,91,92],[51,56,61,76,85,93],[51,56,94],[51,56,76,95],[51,56,71,82,96],[51,56,61,97],[51,56,85,98],[51,56,99],[51,56,100],[51,56,61,68,70,79,85,96,99,101],[51,56,85,102],[51,56,170,209],[51,56,170,194,209],[51,56,209],[51,56,170],[51,56,170,195,209],[51,56,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208],[51,56,195,209],[51,56,105,106,107,108,109,110,111,112,113,114,115,116,117],[51,56,108,109],[51,56,106,108,109,110,113,114],[51,56,106,112],[51,56,108],[51,56,112],[51,56,106,109,111,112,118],[51,56,106,109,111,112],[51,56,108,111],[51,56,106,110,115],[51,56,57,76,101,103,118],[51,56,160],[51,56,104,118,119,140,141],[51,56,118,119],[51,56,118],[51,56,104,118,119,140],[51,56,104,118,119],[51,56,104,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[51,56,119,140],[51,56,104,119,140],[51,56,103,142,161],[51,56,162],[51,56,142,143,147,155,156,158],[51,56,142,158],[51,56,142,155,158],[51,56,142,143,144,145,146,147,148,149,150,151,152,153,154,156,157],[51,56,142],[46,51,56,103,158,159,163,164],[51,56,165],[51,56,166,167]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e864ea827318e5f490863a8cd412744d9ddb175acf488dd02a941703dad1e38","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"23301069cfa7a4c6dd68915eeccc7a2ae0bd3018ff4a6288dd9e0c8b4238fab6","affectsGlobalScope":true,"impliedFormat":1},{"version":"df01885cc27c14632a8c38bdeb053295e69209107bb6c53988b78db5f450cb3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"38379fa748cc5d259c96da356a849bd290a159ae218e06ec1daa166850e4bf50","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"a29bc8aa8cc100d0c09370c03508f1245853efe017bb98699d4c690868371fc7","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f95830ca11e2c7e82235b73dc149e68a0632b41e671724d12adc83a6750746d","impliedFormat":1},{"version":"7aa011cda7cf0b9e87c85d128b2eeac9930bda215b0fee265d8bf2cec039fb5f","impliedFormat":1},{"version":"92ec1aeca4e94bdab04083daa6039f807c0fce8f09bc42e8b24bf49fa5cdbbff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8463ab6a156dc96200b3d8b8a52dc8d878f13a6b7404439aa2f911d568132808","impliedFormat":1},{"version":"6c39d4dbdb372b364442854e42d8c473e2ec67badb226745af17ed5ac41ce6f5","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"bd01a987f0fcf2344a405e542ee681e420651eaff1222a5a6e0c02fda52343bc","impliedFormat":1},{"version":"693e50962e90a3548f41bff2c22676e3964212a836022d82e49eca0b20320a38","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"300b0c12998391154d7b9115a85554e91632a3d3e1b66038e98f2b9cb3c1061d","impliedFormat":1},{"version":"222e742815b14d54db034788a7bee2d51197a2588c35b1fbefe04add6393021c","affectsGlobalScope":true,"impliedFormat":1},{"version":"93891e576a698609695e5b8117bb128336e4b7b28772e7d7e38e8075790eb42f","impliedFormat":1},{"version":"5293d799856f47259146ccf0be9a1cc0a4a5343696182d7206ed25ea67d67920","impliedFormat":1},{"version":"d723063c56101b34a7be5b28dbde80a3ae3dfd5e08fd49a3b569473337ead1f9","impliedFormat":1},{"version":"fab49059d6c2026bdb2e53e4e5cde1a39da44e61daff1867c8b3b10b507bfe17","impliedFormat":1},{"version":"5a551275f85bcc4003e543a1951a5b2f682cfba9b2922f65ae0df40ab71724a5","impliedFormat":1},{"version":"22d1a3163b9a961dbe78b0aedbd7bcbc071ce1f31efb76eb013b0aee230fef0e","impliedFormat":1},{"version":"c31695696ade4514cfcbb22799997b690d3dca7fb72beab68fb2e73b6ef450dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"d99ad56d57f2c96daaf4475a8b64344b24dedafdb8f3c32d43552bcc72279a75","impliedFormat":1},{"version":"a101ef17aece908c1029a1bd3f97132794dcff21b4ca0b997d9a633f962c46aa","impliedFormat":1},{"version":"511575e18249b64b90d8f884fdb8a383c767d1a7efccd9d66a4e125a4dc5c462","impliedFormat":1},{"version":"6d8001f2c3b86c4f1de1d45ecb3f87f287ed7313d6999f8c8318cec4f50e6323","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e413bb587e01ba0cb1a87828cc9116669a4a71a61fe3a89b252f86f0c824bc2","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c3d1222e6e3d8c35a4293d7a54d4142ebb8f7f70ec4111b8136df07fdc66169","impliedFormat":1},{"version":"70173c475c6e76ccebc37412b02b2e26f62bf45fc1534c3ebe6d7fa60fb88819","impliedFormat":1},{"version":"87ced739f77d80886ef2b923a7c52c363c549ad8799ae28eb8cc810892f511ad","impliedFormat":1},{"version":"863bc4e31de6c75423bb02da16190d582b0a69b8964b61d45920e5b2cb3832dd","impliedFormat":1},{"version":"849484324695b587f06abee7579641efe061b7338f9694ec410a76f477fe4df3","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"49e0da63a2398d2ae88467f60a69b07e594b7777e01120cd9ebcefa1932484cf","impliedFormat":1},{"version":"0435070b07e646b406b1c9b8b1b1878ea6917c32abc47e6435ec26d71212d513","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"c4454589a0aa92c10d684c8c9584574bc404d1db556d72196cd31f8f7651af1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b17790866e140a630fa8891d7105c728a1bd60f4e35822e4b345af166a4a728c","impliedFormat":1},{"version":"c50c75f4360f6fc06c4be29dafe28210e15c50cd6b04ad19c4808fa504efb51a","impliedFormat":1},{"version":"d4a1f5f7ee89b2afffd3c74282f8ee65b24266c92b7d40398c12a27054ed745c","impliedFormat":1},{"version":"900b5a9802192bc77eba35a5b87ce770df7b867a6d61772c554058c9ed635386","impliedFormat":1},{"version":"d291d3d16fa252f6d460687491ea2c5c23098c9dc0d3e106b2803fdc98f48f29","affectsGlobalScope":true,"impliedFormat":1},{"version":"f43fcf89d75f13d0908a77cd3fa32b9fd28c915deded9b2778b08f2e242d07a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9a616dec7430044ae735250f8d6a7183f5a9fba63f813e3d29dcab819fd7058","impliedFormat":1},{"version":"aebf613f7831125038942eba891005fd25fa5cadcc3e3d13af4768dc7549161f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"247e5c34784d185bc81442e8b1a371a36c4a5307a766a3725454c0a191b5cfad","impliedFormat":1},{"version":"1c382a6446d63340be549a616ff5142a91653cea45d6d137e25b929130a4f29a","impliedFormat":1},{"version":"9cf81848d806418e203efa6df299e0c5bfb5c137369337b0547117b2f0d44892","impliedFormat":1},{"version":"f0142b712ca22ad863476d9f3ae74e8b2766f3507a6fb5018882074f65ed0195","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0def2c37cadfd7bf074fe9566cb83518f24d67193c79741b2d83ec290b945725","impliedFormat":1},{"version":"049e3511439f11e1285bec4647ab8aac53e0c06951b93ba507565dbde851ba31","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"1f8fedf144a967560be9e58fa32de75e4ca379c3549710d027a07be6a9414073","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"a42c8992e2cf55a4a2d661fac251bc803fe119dad49327477d439268e42953d8","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"bc641da6705e45737a6c85bf6c7460e9298e5f5b1021abf035cb760d313cda1a","impliedFormat":1},{"version":"4284412700d89f927c8f5092a8e8c2a20a596349f2819148952b07f2cba9177a","impliedFormat":1},{"version":"4d08d58c94c1462506783c35009ddaeb70e54632310e384aa572ed7667333c8f","impliedFormat":1},{"version":"067f06a3d8abb66e4db6c22e34a076808b4c39418e45690f1abf37bcd4725f1c","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"15055a0f3fe6c7e9d98bf9de36bdc9102ab324debbe2d4170ffe557115a199fc","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"c13aaf7191fbccaf0f4e9e520c720b870c6339080eb1699439a392589fc85a96","impliedFormat":1},{"version":"41af0cbfe30738008b3765c30059580972362b70b8dcafd791908923e907c3a6","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"3b67dd4fbeec66a7d2acd2be4f65219d85abd04e6eb9cc96fd862ddf70e02eec","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"b5f234cb0cb6ceb839fe2875ada30e62082707eaa7a36bfc4a4df9d287b901c7","impliedFormat":1},{"version":"facdb012edb0931c21556ace5bf7c0194c8389b1248fdbd94d09f793b311517c","impliedFormat":1},{"version":"98528506b6a07d49efdd7a65da416af50bfbfea67fbdca941ba55753e171a3db","impliedFormat":1},{"version":"8370c10834a51543556e92367c7c564723ae83b97199413a8eca6f5d70036cd5","impliedFormat":1},{"version":"8c1036c47d3e04eca9bd5fc5e0cdd219a78e4061a4bb4b55f4a4f0cbc621e66f","impliedFormat":1},{"version":"8db15e1da6050330d9e36bddd03131d5a02d56fac2e919fd8360892616357863","impliedFormat":1},{"version":"44874584b7c30882ea2cb1b9b0df0e198221afee1ee5cc4d04deb4c8a3c6345a","impliedFormat":1},{"version":"09839c769382d4763700d97d6e9ceae5c9ab3c34cf288229d9879b63c7206c60","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"37c2423005b2ec6130903de29aec9fcf1680ab1b2336efa0ff828980e92da7e9","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"46a9b0122b230cb2fab65999ba92f98a16fd8f1c25efaed47141cbf5056f6928","impliedFormat":1},{"version":"5a9a4741aa510bdee406441f77186c6d2005be78e78c2e0da8201d9991950164","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"3990ae796cc23fb9829eae206eff1eddded9465504467a4433f2509e18ef1aed","impliedFormat":1},{"version":"b557ea3605e52406e35eeea468cb96f25b1ca906f2055f376597f0b02492d94c","impliedFormat":1},{"version":"f384bb303dbc114af6460e7cb30b766cc92eed33fccb331126b08bb63f15a034","impliedFormat":1},{"version":"8a9bd1cf8c1f75435f83595b43737c135e7f73bde39ba4c9339dc6a31e8bb069","impliedFormat":1},{"version":"8274bfd5de49f9f072be2f39c34e390101a8b69844e55eda36c7df23ba6d03e2","impliedFormat":1},{"version":"f8b482dddda55dd6677d7895a3fef8cd9d067f8c36c63cc7fe93b82a6dd4f10c","impliedFormat":1},{"version":"71d11ad1f05b0b90e95591fa85c1c8043e590d67972dcaba9b50435a0c04d8fa","impliedFormat":1},{"version":"c77c8f4aa3f4b849eda044768882bb102edf211b1c26b04a3c6ad921110f2fa4","impliedFormat":1},{"version":"a980ce9470dc95ac355d7efb729f9cfb0564505eba96da4bbde504299efb833a","impliedFormat":1},{"version":"eed44483a64b3c5a643663f8827c868ef3888965c7f3654e816debd03c621da0","impliedFormat":1},{"version":"a58402dc75738c188a741ccca86ccf898b0af98d305ad075c428171f193a6cd5","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d29fa1f984b6d5ec55c37e6f65474ea4acaf9ba92d2b1d502ca824abca86b430","impliedFormat":1},{"version":"abd02654e7ae1f70f68ec509b2c3c1e388c0142d169ba37a157f558709efe2a1","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"96a56b3bbf8346c584c5d58db4fb8adc58982e4e9f2929488ad5aeb89ddc19f8","impliedFormat":1},{"version":"db744053fe42f80b7777c89f39bc6cf351f7796b1c828550a37cdc17cba0e056","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"caaf6bf4dd0a3f88b50670f5786141b209edb54ba17eb6268c2d28919c813606","affectsGlobalScope":true,"impliedFormat":1}],"root":[168],"options":{"composite":true,"module":1,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[169,1],[53,2],[54,2],[55,3],[51,4],[56,5],[57,6],[58,7],[49,8],[47,1],[48,1],[59,9],[60,10],[61,11],[62,12],[63,13],[64,14],[65,14],[66,15],[67,16],[68,17],[69,18],[70,19],[52,1],[50,1],[71,20],[72,21],[73,22],[103,23],[74,24],[75,25],[76,26],[77,27],[78,28],[79,29],[80,30],[81,31],[82,32],[83,33],[84,34],[85,35],[87,36],[86,37],[88,38],[89,39],[90,1],[91,40],[92,41],[93,42],[94,43],[95,44],[96,45],[97,46],[98,47],[99,48],[100,49],[101,50],[102,51],[194,52],[195,53],[170,54],[173,54],[192,52],[193,52],[183,52],[182,55],[180,52],[175,52],[188,52],[186,52],[190,52],[174,52],[187,52],[191,52],[176,52],[177,52],[189,52],[171,52],[178,52],[179,52],[181,52],[185,52],[196,56],[184,52],[172,52],[209,57],[208,1],[203,56],[205,58],[204,56],[197,56],[198,56],[200,56],[202,56],[206,58],[207,58],[199,58],[201,58],[210,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[19,1],[4,1],[20,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[35,1],[32,1],[33,1],[34,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[118,59],[110,60],[115,61],[108,1],[111,62],[109,63],[107,1],[117,64],[113,65],[106,1],[114,66],[112,67],[116,68],[160,69],[161,70],[105,1],[142,71],[141,72],[119,73],[129,74],[124,74],[123,75],[140,76],[126,74],[138,74],[133,75],[125,74],[120,74],[137,74],[136,74],[132,74],[134,77],[139,78],[128,75],[127,74],[130,74],[131,75],[121,74],[135,74],[122,75],[162,79],[163,80],[167,1],[104,1],[164,81],[146,82],[144,82],[154,82],[149,82],[153,82],[152,82],[150,82],[157,82],[156,83],[143,82],[147,82],[158,84],[148,82],[155,85],[151,82],[145,82],[159,1],[165,86],[166,87],[46,1],[168,88]],"latestChangedDtsFile":"./server.d.ts","version":"5.7.3"} \ No newline at end of file diff --git a/extension/server/out/server.d.ts b/extension/server/out/server.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/extension/server/out/server.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/extension/server/out/server.js b/extension/server/out/server.js new file mode 100644 index 0000000..527af30 --- /dev/null +++ b/extension/server/out/server.js @@ -0,0 +1,223 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const node_1 = require("vscode-languageserver/node"); +const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); +// Create a connection for the server +const connection = (0, node_1.createConnection)(node_1.ProposedFeatures.all); +// Create a text document manager +const documents = new node_1.TextDocuments(vscode_languageserver_textdocument_1.TextDocument); +// Blueprint template +const blueprintTemplate = `page { + title { "$1" } + description { "$2" } + keywords { "$3" } + author { "$4" } +} + +navbar { + horizontal { + link(href:$5) { text(bold) { "$6" } } + links { + link(href:$7) { "$8" } + link(href:$9) { "$10" } + link(href:$11) { "$12" } + } + } +} + +horizontal(centered) { + vertical(centered) { + title(huge,margin:0) { "$13" } + text(subtle,margin:0) { "$14" } + } +}`; +// Blueprint elements that can be used +const elements = [ + 'section', 'grid', 'horizontal', 'vertical', 'title', 'text', + 'link', 'links', 'button', 'button-light', 'button-secondary', 'button-compact', + 'card', 'badge', 'alert', 'tooltip', 'input', 'textarea', 'select', + 'checkbox', 'radio', 'switch', 'list', 'table', 'progress', 'slider' +]; +// Single instance elements +const singleElements = ['page', 'navbar']; +// Blueprint properties +const properties = [ + 'wide', 'centered', 'alternate', 'padding', 'margin', 'columns', 'responsive', + 'gap', 'spaced', 'huge', 'large', 'small', 'tiny', 'bold', 'light', 'normal', + 'italic', 'underline', 'strike', 'uppercase', 'lowercase', 'capitalize', + 'subtle', 'accent', 'error', 'success', 'warning', 'hover-scale', 'hover-raise', + 'hover-glow', 'hover-underline', 'hover-fade', 'focus-glow', 'focus-outline', + 'focus-scale', 'active-scale', 'active-color', 'active-raise', 'mobile-stack', + 'mobile-hide', 'tablet-wrap', 'tablet-hide', 'desktop-wide', 'desktop-hide' +]; +// Page configuration properties +const pageProperties = ['title', 'description', 'keywords', 'author']; +// Container elements that can have children +const containerElements = [ + 'horizontal', 'vertical', 'section', 'grid', 'navbar', + 'links', 'card' +]; +connection.onInitialize((params) => { + const result = { + capabilities: { + textDocumentSync: node_1.TextDocumentSyncKind.Incremental, + completionProvider: { + resolveProvider: false, + triggerCharacters: ['{', '(', ' ', '!'] + } + } + }; + return result; +}); +// Check if an element exists in the document +function elementExists(text, element) { + const regex = new RegExp(`\\b${element}\\s*{`, 'i'); + return regex.test(text); +} +// This handler provides the initial list of completion items. +connection.onCompletion((textDocumentPosition) => { + const document = documents.get(textDocumentPosition.textDocument.uri); + if (!document) { + return []; + } + const text = document.getText(); + const lines = text.split('\n'); + const position = textDocumentPosition.position; + const line = lines[position.line]; + const linePrefix = line.slice(0, position.character); + // Check if this is a template completion trigger + if (linePrefix.trim() === '!') { + return [{ + label: '!blueprint', + kind: node_1.CompletionItemKind.Snippet, + insertText: blueprintTemplate, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Insert Blueprint starter template with customizable placeholders', + preselect: true, + // Add a command to delete the '!' character + additionalTextEdits: [{ + range: { + start: { line: position.line, character: linePrefix.indexOf('!') }, + end: { line: position.line, character: linePrefix.indexOf('!') + 1 } + }, + newText: '' + }] + }]; + } + // Inside page block + if (text.includes('page {') && !text.includes('}')) { + return pageProperties.map(prop => ({ + label: prop, + kind: node_1.CompletionItemKind.Property, + insertText: `${prop} { "$1" }`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: `Add ${prop} to the page configuration` + })); + } + // After an opening parenthesis, suggest properties + if (linePrefix.trim().endsWith('(')) { + return properties.map(prop => ({ + label: prop, + kind: node_1.CompletionItemKind.Property, + documentation: `Apply ${prop} property` + })); + } + // After a container element's opening brace, suggest child elements + const containerMatch = /\b(horizontal|vertical|section|grid|navbar|links|card)\s*{\s*$/.exec(linePrefix); + if (containerMatch) { + const parentElement = containerMatch[1]; + let suggestedElements = elements; + // Customize suggestions based on parent element + switch (parentElement) { + case 'navbar': + suggestedElements = ['horizontal', 'vertical', 'link', 'links', 'text']; + break; + case 'links': + suggestedElements = ['link']; + break; + case 'card': + suggestedElements = ['title', 'text', 'button', 'image']; + break; + } + return suggestedElements.map(element => ({ + label: element, + kind: node_1.CompletionItemKind.Class, + insertText: `${element} {\n $1\n}`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: `Create a ${element} block inside ${parentElement}` + })); + } + // Get available single instance elements + const availableSingleElements = singleElements.filter(element => !elementExists(text, element)); + // Combine regular elements with available single instance elements + const availableElements = [ + ...elements, + ...availableSingleElements + ]; + // Default: suggest elements + return availableElements.map(element => { + const isPage = element === 'page'; + const insertText = isPage ? + 'page {\n title { "$1" }\n description { "$2" }\n keywords { "$3" }\n author { "$4" }\n}' : + `${element} {\n $1\n}`; + return { + label: element, + kind: node_1.CompletionItemKind.Class, + insertText: insertText, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: `Create a ${element} block${isPage ? ' (only one allowed per file)' : ''}` + }; + }); +}); +// Find all occurrences of an element in the document +function findElementOccurrences(text, element) { + const occurrences = []; + const lines = text.split('\n'); + const regex = new RegExp(`\\b(${element})\\s*{`, 'g'); + lines.forEach((line, lineIndex) => { + let match; + while ((match = regex.exec(line)) !== null) { + const startChar = match.index; + const endChar = match.index + match[1].length; + occurrences.push({ + start: { line: lineIndex, character: startChar }, + end: { line: lineIndex, character: endChar } + }); + } + }); + return occurrences; +} +// Validate the document for duplicate elements +function validateDocument(document) { + const text = document.getText(); + const diagnostics = []; + // Check for duplicate single instance elements + singleElements.forEach(element => { + const occurrences = findElementOccurrences(text, element); + if (occurrences.length > 1) { + // Add diagnostic for each duplicate occurrence (skip the first one) + occurrences.slice(1).forEach(occurrence => { + diagnostics.push({ + severity: node_1.DiagnosticSeverity.Error, + range: node_1.Range.create(occurrence.start, occurrence.end), + message: `Only one ${element} element is allowed per file.`, + source: 'blueprint' + }); + }); + } + }); + // Send the diagnostics to the client + connection.sendDiagnostics({ uri: document.uri, diagnostics }); +} +// Set up document validation events +documents.onDidChangeContent((change) => { + validateDocument(change.document); +}); +documents.onDidOpen((event) => { + validateDocument(event.document); +}); +// Make the text document manager listen on the connection +documents.listen(connection); +// Listen on the connection +connection.listen(); +//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/extension/server/out/server.js.map b/extension/server/out/server.js.map new file mode 100644 index 0000000..383896b --- /dev/null +++ b/extension/server/out/server.js.map @@ -0,0 +1 @@ +{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extension/server/src/server.ts b/extension/server/src/server.ts new file mode 100644 index 0000000..2eb0f5f --- /dev/null +++ b/extension/server/src/server.ts @@ -0,0 +1,271 @@ +import { + createConnection, + TextDocuments, + ProposedFeatures, + InitializeParams, + TextDocumentSyncKind, + InitializeResult, + CompletionItem, + CompletionItemKind, + TextDocumentPositionParams, + InsertTextFormat, + Diagnostic, + DiagnosticSeverity, + Position, + Range, + TextDocumentChangeEvent +} from 'vscode-languageserver/node'; + +import { TextDocument } from 'vscode-languageserver-textdocument'; + +// Create a connection for the server +const connection = createConnection(ProposedFeatures.all); + +// Create a text document manager +const documents: TextDocuments = new TextDocuments(TextDocument); + +// Blueprint template +const blueprintTemplate = `page { + title { "$1" } + description { "$2" } + keywords { "$3" } + author { "$4" } +} + +navbar { + horizontal { + link(href:$5) { text(bold) { "$6" } } + links { + link(href:$7) { "$8" } + link(href:$9) { "$10" } + link(href:$11) { "$12" } + } + } +} + +horizontal(centered) { + vertical(centered) { + title(huge,margin:0) { "$13" } + text(subtle,margin:0) { "$14" } + } +}`; + +// Blueprint elements that can be used +const elements = [ + 'section', 'grid', 'horizontal', 'vertical', 'title', 'text', + 'link', 'links', 'button', 'button-light', 'button-secondary', 'button-compact', + 'card', 'badge', 'alert', 'tooltip', 'input', 'textarea', 'select', + 'checkbox', 'radio', 'switch', 'list', 'table', 'progress', 'slider' +]; + +// Single instance elements +const singleElements = ['page', 'navbar']; + +// Blueprint properties +const properties = [ + 'wide', 'centered', 'alternate', 'padding', 'margin', 'columns', 'responsive', + 'gap', 'spaced', 'huge', 'large', 'small', 'tiny', 'bold', 'light', 'normal', + 'italic', 'underline', 'strike', 'uppercase', 'lowercase', 'capitalize', + 'subtle', 'accent', 'error', 'success', 'warning', 'hover-scale', 'hover-raise', + 'hover-glow', 'hover-underline', 'hover-fade', 'focus-glow', 'focus-outline', + 'focus-scale', 'active-scale', 'active-color', 'active-raise', 'mobile-stack', + 'mobile-hide', 'tablet-wrap', 'tablet-hide', 'desktop-wide', 'desktop-hide' +]; + +// Page configuration properties +const pageProperties = ['title', 'description', 'keywords', 'author']; + +// Container elements that can have children +const containerElements = [ + 'horizontal', 'vertical', 'section', 'grid', 'navbar', + 'links', 'card' +]; + +connection.onInitialize((params: InitializeParams) => { + const result: InitializeResult = { + capabilities: { + textDocumentSync: TextDocumentSyncKind.Incremental, + completionProvider: { + resolveProvider: false, + triggerCharacters: ['{', '(', ' ', '!'] + } + } + }; + return result; +}); + +// Check if an element exists in the document +function elementExists(text: string, element: string): boolean { + const regex = new RegExp(`\\b${element}\\s*{`, 'i'); + return regex.test(text); +} + +// This handler provides the initial list of completion items. +connection.onCompletion( + (textDocumentPosition: TextDocumentPositionParams): CompletionItem[] => { + const document = documents.get(textDocumentPosition.textDocument.uri); + if (!document) { + return []; + } + + const text = document.getText(); + const lines = text.split('\n'); + const position = textDocumentPosition.position; + const line = lines[position.line]; + const linePrefix = line.slice(0, position.character); + + // Check if this is a template completion trigger + if (linePrefix.trim() === '!') { + return [{ + label: '!blueprint', + kind: CompletionItemKind.Snippet, + insertText: blueprintTemplate, + insertTextFormat: InsertTextFormat.Snippet, + documentation: 'Insert Blueprint starter template with customizable placeholders', + preselect: true, + // Add a command to delete the '!' character + additionalTextEdits: [{ + range: { + start: { line: position.line, character: linePrefix.indexOf('!') }, + end: { line: position.line, character: linePrefix.indexOf('!') + 1 } + }, + newText: '' + }] + }]; + } + + // Inside page block + if (text.includes('page {') && !text.includes('}')) { + return pageProperties.map(prop => ({ + label: prop, + kind: CompletionItemKind.Property, + insertText: `${prop} { "$1" }`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: `Add ${prop} to the page configuration` + })); + } + + // After an opening parenthesis, suggest properties + if (linePrefix.trim().endsWith('(')) { + return properties.map(prop => ({ + label: prop, + kind: CompletionItemKind.Property, + documentation: `Apply ${prop} property` + })); + } + + // After a container element's opening brace, suggest child elements + const containerMatch = /\b(horizontal|vertical|section|grid|navbar|links|card)\s*{\s*$/.exec(linePrefix); + if (containerMatch) { + const parentElement = containerMatch[1]; + let suggestedElements = elements; + + // Customize suggestions based on parent element + switch (parentElement) { + case 'navbar': + suggestedElements = ['horizontal', 'vertical', 'link', 'links', 'text']; + break; + case 'links': + suggestedElements = ['link']; + break; + case 'card': + suggestedElements = ['title', 'text', 'button', 'image']; + break; + } + + return suggestedElements.map(element => ({ + label: element, + kind: CompletionItemKind.Class, + insertText: `${element} {\n $1\n}`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: `Create a ${element} block inside ${parentElement}` + })); + } + + // Get available single instance elements + const availableSingleElements = singleElements.filter(element => !elementExists(text, element)); + + // Combine regular elements with available single instance elements + const availableElements = [ + ...elements, + ...availableSingleElements + ]; + + // Default: suggest elements + return availableElements.map(element => { + const isPage = element === 'page'; + const insertText = isPage ? + 'page {\n title { "$1" }\n description { "$2" }\n keywords { "$3" }\n author { "$4" }\n}' : + `${element} {\n $1\n}`; + + return { + label: element, + kind: CompletionItemKind.Class, + insertText: insertText, + insertTextFormat: InsertTextFormat.Snippet, + documentation: `Create a ${element} block${isPage ? ' (only one allowed per file)' : ''}` + }; + }); + } +); + +// Find all occurrences of an element in the document +function findElementOccurrences(text: string, element: string): { start: Position; end: Position; }[] { + const occurrences: { start: Position; end: Position; }[] = []; + const lines = text.split('\n'); + const regex = new RegExp(`\\b(${element})\\s*{`, 'g'); + + lines.forEach((line, lineIndex) => { + let match; + while ((match = regex.exec(line)) !== null) { + const startChar = match.index; + const endChar = match.index + match[1].length; + occurrences.push({ + start: { line: lineIndex, character: startChar }, + end: { line: lineIndex, character: endChar } + }); + } + }); + + return occurrences; +} + +// Validate the document for duplicate elements +function validateDocument(document: TextDocument): void { + const text = document.getText(); + const diagnostics: Diagnostic[] = []; + + // Check for duplicate single instance elements + singleElements.forEach(element => { + const occurrences = findElementOccurrences(text, element); + if (occurrences.length > 1) { + // Add diagnostic for each duplicate occurrence (skip the first one) + occurrences.slice(1).forEach(occurrence => { + diagnostics.push({ + severity: DiagnosticSeverity.Error, + range: Range.create(occurrence.start, occurrence.end), + message: `Only one ${element} element is allowed per file.`, + source: 'blueprint' + }); + }); + } + }); + + // Send the diagnostics to the client + connection.sendDiagnostics({ uri: document.uri, diagnostics }); +} + +// Set up document validation events +documents.onDidChangeContent((change: TextDocumentChangeEvent) => { + validateDocument(change.document); +}); + +documents.onDidOpen((event: TextDocumentChangeEvent) => { + validateDocument(event.document); +}); + +// Make the text document manager listen on the connection +documents.listen(connection); + +// Listen on the connection +connection.listen(); \ No newline at end of file diff --git a/extension/server/tsconfig.json b/extension/server/tsconfig.json new file mode 100644 index 0000000..7ec5113 --- /dev/null +++ b/extension/server/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es2020", + "lib": ["es2020"], + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "strict": true, + "outDir": "out", + "rootDir": "src", + "composite": true, + "tsBuildInfoFile": "./out/.tsbuildinfo" + }, + "include": ["src"], + "exclude": ["node_modules", ".vscode-test"] +} \ No newline at end of file diff --git a/extension/syntaxes/blueprint.tmLanguage.json b/extension/syntaxes/blueprint.tmLanguage.json new file mode 100644 index 0000000..4071964 --- /dev/null +++ b/extension/syntaxes/blueprint.tmLanguage.json @@ -0,0 +1,136 @@ +{ + "name": "Blueprint", + "scopeName": "source.blueprint", + "fileTypes": ["bp"], + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#page-config" + }, + { + "include": "#elements" + }, + { + "include": "#properties" + }, + { + "include": "#strings" + }, + { + "include": "#punctuation" + } + ], + "repository": { + "comments": { + "match": "//.*$", + "name": "comment.line.double-slash.blueprint" + }, + "page-config": { + "begin": "\\b(page)\\b", + "end": "(?=})", + "beginCaptures": { + "1": { "name": "entity.name.tag.blueprint" } + }, + "patterns": [ + { + "begin": "\\b(description|keywords|author)\\b\\s*\\{", + "end": "\\}", + "beginCaptures": { + "1": { "name": "entity.name.tag.blueprint" } + }, + "patterns": [ + { "include": "#strings" } + ] + }, + { + "begin": "\\b(title)\\b\\s*\\{", + "end": "\\}", + "beginCaptures": { + "1": { "name": "entity.name.tag.title.blueprint" } + }, + "patterns": [ + { "include": "#strings" } + ] + } + ] + }, + "elements": { + "patterns": [ + { + "match": "\\b(section|grid|horizontal|vertical|navbar|title|text|link|links|button|button-light|button-secondary|button-compact|card|badge|alert|tooltip|input|textarea|select|checkbox|radio|switch|list|table|progress|slider|media)\\b", + "name": "entity.name.tag.blueprint" + } + ] + }, + "properties": { + "patterns": [ + { + "match": "\\b(wide|centered|alternate|padding|margin|columns|responsive|gap|spaced|huge|large|small|tiny|bold|light|normal|italic|underline|strike|uppercase|lowercase|capitalize|subtle|accent|error|success|warning|hover-scale|hover-raise|hover-glow|hover-underline|hover-fade|focus-glow|focus-outline|focus-scale|active-scale|active-color|active-raise|mobile-stack|mobile-hide|tablet-wrap|tablet-hide|desktop-wide|desktop-hide)\\b", + "name": "support.type.property-name.blueprint" + }, + { + "match": "(? { + const seen = new WeakSet(); + return (key, value) => { + if (key === "parent") return "[Circular:Parent]"; + if (typeof value === "object" && value !== null) { + if (seen.has(value)) { + return "[Circular]"; + } + seen.add(value); + } + return value; + }; + }; + + try { + return JSON.stringify(node, getCircularReplacer(), 2); + } catch (err) { + return `[Unable to stringify: ${err.message}]`; + } + } + + /** + * Constructs an Abstract Syntax Tree (AST) from a sequence of tokens. + * + * This function iterates over the provided tokens to build a hierarchical + * AST structure. It identifies elements, their properties, and any nested + * child elements, converting them into structured nodes. Each node is + * represented as an object containing type, tag, properties, children, + * and position information (line and column). + * + * Throws an error if unexpected tokens are encountered or if there are + * mismatched braces. + * + * @param {Array} tokens - The list of tokens to be parsed into an AST. + * @returns {Object} - The constructed AST root node with its children. + * Each child represents either an element or text node. + * @throws {BlueprintError} - If unexpected tokens or structural issues are found. + */ + + buildAST(tokens) { + if (this.options.debug) { + console.log("\n[ASTBuilder] Starting AST construction"); + console.log(`[ASTBuilder] Processing ${tokens.length} tokens`); + console.log( + "[ASTBuilder] First few tokens:", + tokens + .slice(0, 3) + .map((t) => this.debugStringify(t)) + .join(", ") + ); + } + + let current = 0; + + /** + * Walks the token list to construct a hierarchical AST structure. + * + * This function is responsible for processing each token and constructing + * the corresponding node in the AST. It handles elements, their properties, + * and any nested child elements, converting them into structured nodes. + * Each node is represented as an object containing type, tag, properties, + * children, and position information (line and column). + * + * Throws an error if unexpected tokens are encountered or if there are + * mismatched braces. + * + * @returns {Object} - The constructed AST node with its children. + * Each child represents either an element or text node. + * @throws {BlueprintError} - If unexpected tokens or structural issues are found. + */ + const walk = () => { + if (this.options.debug) { + console.log( + `\n[ASTBuilder] Walking tokens at position ${current}/${tokens.length}` + ); + console.log( + "[ASTBuilder] Current token:", + this.debugStringify(tokens[current]) + ); + } + + let token = tokens[current]; + + if (!token) { + if (this.options.debug) { + console.log( + "[ASTBuilder] Unexpected end of input while walking tokens" + ); + console.log( + "[ASTBuilder] Last processed token:", + this.debugStringify(tokens[current - 1]) + ); + } + throw new BlueprintError( + "Unexpected end of input", + tokens[tokens.length - 1]?.line || 1, + tokens[tokens.length - 1]?.column || 0 + ); + } + + if (token.type === "identifier") { + if (this.options.debug) { + console.log( + `\n[ASTBuilder] Processing identifier: "${token.value}" at line ${token.line}, column ${token.column}` + ); + } + + const elementType = token.value; + if (!ELEMENT_MAPPINGS[elementType]) { + if (this.options.debug) { + console.log( + `[ASTBuilder] Error: Unknown element type "${elementType}"` + ); + console.log( + "[ASTBuilder] Available element types:", + Object.keys(ELEMENT_MAPPINGS).join(", ") + ); + } + throw new BlueprintError( + `Unknown element type: ${elementType}`, + token.line, + token.column + ); + } + + const mapping = ELEMENT_MAPPINGS[elementType]; + const node = { + type: "element", + tag: elementType, + props: + elementType === "page" ? [] : [...(mapping.defaultProps || [])], + children: [], + line: token.line, + column: token.column, + }; + + if (this.options.debug) { + console.log(`[ASTBuilder] Created node for element "${elementType}"`); + console.log( + "[ASTBuilder] Initial node state:", + this.debugStringify(node) + ); + } + + current++; + + if ( + current < tokens.length && + tokens[current].type === "props" + ) { + const props = tokens[current].value.split(",").map((p) => p.trim()); + if (this.options.debug) { + console.log( + `[ASTBuilder] Processing ${props.length} properties for "${elementType}"` + ); + console.log("[ASTBuilder] Properties:", props); + } + + props.forEach((prop) => { + const [name, ...valueParts] = prop.split(":"); + const value = valueParts.join(":").trim(); + if (this.options.debug) { + console.log( + `[ASTBuilder] Processing property - name: "${name}", value: "${value}"` + ); + } + + if (value) { + if (elementType === "page") { + const processedProp = { + name, + value: value.replace(/^"|"$/g, ""), + }; + node.props.push(processedProp); + if (this.options.debug) { + console.log( + `[ASTBuilder] Added page property:`, + processedProp + ); + } + } else { + node.props.push(`${name}:${value}`); + if (this.options.debug) { + console.log( + `[ASTBuilder] Added property: "${name}:${value}"` + ); + } + } + } else { + node.props.push(name); + if (this.options.debug) { + console.log(`[ASTBuilder] Added flag property: "${name}"`); + } + } + }); + current++; + } + + if ( + current < tokens.length && + tokens[current].type === "brace" && + tokens[current].value === "{" + ) { + if (this.options.debug) { + console.log( + `\n[ASTBuilder] Processing child elements for "${elementType}"` + ); + } + current++; + + while ( + current < tokens.length && + !(tokens[current].type === "brace" && tokens[current].value === "}") + ) { + if (this.options.debug) { + console.log( + `[ASTBuilder] Processing child at position ${current}` + ); + } + const child = walk(); + child.parent = node; + node.children.push(child); + if (this.options.debug) { + console.log( + `[ASTBuilder] Added child to "${elementType}":`, + this.debugStringify(child) + ); + } + } + + if (current >= tokens.length) { + if (this.options.debug) { + console.log( + `[ASTBuilder] Error: Missing closing brace for "${elementType}"` + ); + } + throw new BlueprintError( + "Missing closing brace", + node.line, + node.column + ); + } + + current++; + } + + if (this.options.debug) { + console.log(`[ASTBuilder] Completed node for "${elementType}"`); + console.log( + "[ASTBuilder] Final node state:", + this.debugStringify(node) + ); + } + + return node; + } + + if (token.type === "text") { + if (this.options.debug) { + console.log( + `[ASTBuilder] Processing text node at line ${token.line}, column ${token.column}` + ); + console.log(`[ASTBuilder] Text content: "${token.value}"`); + } + current++; + return { + type: "text", + value: token.value, + line: token.line, + column: token.column, + }; + } + + if (this.options.debug) { + console.log(`[ASTBuilder] Error: Unexpected token type: ${token.type}`); + console.log("[ASTBuilder] Token details:", this.debugStringify(token)); + } + throw new BlueprintError( + `Unexpected token type: ${token.type}`, + token.line, + token.column + ); + }; + + const ast = { + type: "root", + children: [], + }; + + while (current < tokens.length) { + if (this.options.debug) { + console.log( + `\n[ASTBuilder] Processing root-level token at position ${current}` + ); + } + ast.children.push(walk()); + } + + if (this.options.debug) { + console.log("\n[ASTBuilder] AST construction complete"); + console.log(`[ASTBuilder] Total nodes: ${ast.children.length}`); + console.log( + "[ASTBuilder] Root children types:", + ast.children.map((c) => c.type).join(", ") + ); + } + + return ast; + } +} + +module.exports = ASTBuilder; diff --git a/lib/BlueprintBuilder.js b/lib/BlueprintBuilder.js new file mode 100644 index 0000000..6342d73 --- /dev/null +++ b/lib/BlueprintBuilder.js @@ -0,0 +1,144 @@ +const fs = require("fs"); +const path = require("path"); +const TokenParser = require("./TokenParser"); +const ASTBuilder = require("./ASTBuilder"); +const CSSGenerator = require("./CSSGenerator"); +const HTMLGenerator = require("./HTMLGenerator"); +const MetadataManager = require("./MetadataManager"); + +class BlueprintBuilder { + /** + * Create a new Blueprint builder instance. + * @param {Object} [options] - Options object + * @param {boolean} [options.minified=true] - Minify generated HTML and CSS + * @param {boolean} [options.debug=false] - Enable debug logging + */ + constructor(options = {}) { + this.options = { + minified: true, + debug: false, + ...options, + }; + + this.tokenParser = new TokenParser(this.options); + this.astBuilder = new ASTBuilder(this.options); + this.cssGenerator = new CSSGenerator(this.options); + this.htmlGenerator = new HTMLGenerator(this.options, this.cssGenerator); + this.metadataManager = new MetadataManager(this.options); + } + + + /** + * Builds a Blueprint file. + * @param {string} inputPath - Path to the Blueprint file to build + * @param {string} outputDir - Directory to write the generated HTML and CSS files + * @returns {Object} - Build result object with `success` and `errors` properties + */ + build(inputPath, outputDir) { + if (this.options.debug) { + console.log(`[DEBUG] Starting build for ${inputPath}`); + } + + try { + if (!inputPath.endsWith(".bp")) { + throw new Error("Input file must have .bp extension"); + } + + const input = fs.readFileSync(inputPath, "utf8"); + + const tokens = this.tokenParser.tokenize(input); + + const ast = this.astBuilder.buildAST(tokens); + + const pageNode = ast.children.find((node) => node.tag === "page"); + if (pageNode) { + this.metadataManager.processPageMetadata(pageNode); + } + + const html = this.htmlGenerator.generateHTML(ast); + const css = this.cssGenerator.generateCSS(); + + const baseName = path.basename(inputPath, ".bp"); + const headContent = this.metadataManager.generateHeadContent(baseName); + const finalHtml = this.generateFinalHtml(headContent, html); + + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + fs.writeFileSync(path.join(outputDir, `${baseName}.html`), finalHtml); + fs.writeFileSync(path.join(outputDir, `${baseName}.css`), css); + + if (this.options.debug) { + console.log("[DEBUG] Build completed successfully"); + } + + return { + success: true, + errors: [], + }; + } catch (error) { + if (this.options.debug) { + console.log("[DEBUG] Build failed with error:", error); + } + return { + success: false, + errors: [ + { + message: error.message, + type: error.name, + line: error.line, + column: error.column, + }, + ], + }; + } + } + +/** + * Generates the final HTML document as a string. + * + * @param {string} headContent - The HTML content to be placed within the tag. + * @param {string} bodyContent - The HTML content to be placed within the tag. + * @returns {string} - A complete HTML document containing the provided head and body content. + */ + + generateFinalHtml(headContent, bodyContent) { + return ` + + + + + ${headContent} + + + + ${bodyContent} + +`; + } +} + +module.exports = BlueprintBuilder; diff --git a/lib/BlueprintError.js b/lib/BlueprintError.js new file mode 100644 index 0000000..03acc00 --- /dev/null +++ b/lib/BlueprintError.js @@ -0,0 +1,10 @@ +class BlueprintError extends Error { + constructor(message, line = null, column = null) { + super(message); + this.name = "BlueprintError"; + this.line = line; + this.column = column; + } +} + +module.exports = BlueprintError; diff --git a/lib/CSSGenerator.js b/lib/CSSGenerator.js new file mode 100644 index 0000000..b950308 --- /dev/null +++ b/lib/CSSGenerator.js @@ -0,0 +1,402 @@ +const { STYLE_MAPPINGS } = require("./mappings"); + +class CSSGenerator { + /** + * Creates a new CSS generator instance. + * @param {Object} [options] - Options object + * @param {boolean} [options.minified=true] - Minify generated class names + * @param {boolean} [options.debug=false] - Enable debug logging + */ + constructor(options = {}) { + this.options = options; + this.cssRules = new Map(); + this.classCounter = 0; + if (this.options.debug) { + console.log( + "[CSSGenerator] Initialized with options:", + JSON.stringify(options, null, 2) + ); + } + } + + /** + * Generates a class name for the given element type, based on the counter + * and the minified option. If minified is true, the class name will be a + * single lowercase letter (a-z), or a single uppercase letter (A-Z) if + * the counter is between 26 and 51. Otherwise, it will be a complex + * class name (e.g. "zabcdefg") with a counter starting from 52. + * + * @param {string} elementType - The type of the element for which to + * generate a class name. + * @return {string} The generated class name. + */ + generateClassName(elementType) { + if (this.options.debug) { + console.log( + `\n[CSSGenerator] Generating class name for element type: "${elementType}"` + ); + console.log(`[CSSGenerator] Current class counter: ${this.classCounter}`); + } + + let className; + if (!this.options.minified) { + className = `blueprint-${elementType}-${this.classCounter++}`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Generated readable class name: "${className}"` + ); + } + return className; + } + + if (this.classCounter < 26) { + className = String.fromCharCode(97 + this.classCounter++); + if (this.options.debug) { + console.log( + `[CSSGenerator] Generated lowercase class name: "${className}" (counter: ${ + this.classCounter - 1 + })` + ); + } + return className; + } + + if (this.classCounter < 52) { + className = String.fromCharCode(65 + (this.classCounter++ - 26)); + if (this.options.debug) { + console.log( + `[CSSGenerator] Generated uppercase class name: "${className}" (counter: ${ + this.classCounter - 1 + })` + ); + } + return className; + } + + const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + const base = chars.length; + let num = this.classCounter++ - 52; + let result = ""; + + do { + result = chars[num % base] + result; + num = Math.floor(num / base); + } while (num > 0); + + result = "z" + result; + + if (this.options.debug) { + console.log( + `[CSSGenerator] Generated complex class name: "${result}" (counter: ${ + this.classCounter - 1 + })` + ); + } + + return result; + } + + /** + * Converts a node to CSS properties, using the style mappings to process + * the node's properties. The generated CSS properties are returned as a + * Map, where each key is a CSS property name and each value is the value + * for that property. + * + * @param {Object} node - The node to convert + * @return {Object} - The generated CSS properties and nested rules + */ + nodeToCSSProperties(node) { + if (this.options.debug) { + console.log(`\n[CSSGenerator] Converting node to CSS properties`); + console.log(`[CSSGenerator] Node tag: "${node.tag}"`); + console.log("[CSSGenerator] Node properties:", node.props); + } + + const cssProps = new Map(); + const nestedRules = new Map(); + + node.props.forEach((prop) => { + if (typeof prop === "object") { + if (this.options.debug) { + console.log(`[CSSGenerator] Skipping object property:`, prop); + } + return; + } + + const [name, value] = prop.split(/[-:]/); + if (this.options.debug) { + console.log( + `\n[CSSGenerator] Processing property - name: "${name}", value: "${value}"` + ); + } + // This is for customization of css properties + + if (name === "width" && !isNaN(value)) { + cssProps.set("width", `${value}% !important`); + cssProps.set("max-width", "none !important"); + if (this.options.debug) { + console.log( + `[CSSGenerator] Set width: ${value}% !important and max-width: none !important` + ); + } + return; + } + + if (name === "height" && !isNaN(value)) { + cssProps.set("height", `${value}% !important`); + cssProps.set("max-height", "none !important"); + if (this.options.debug) { + console.log( + `[CSSGenerator] Set height: ${value}% !important and max-height: none !important` + ); + } + return; + } + + if (name === "padding" && !isNaN(value)) { + cssProps.set("padding", `${value}px !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set padding: ${value}px !important`); + } + return; + } + + if (name === "margin" && !isNaN(value)) { + cssProps.set("margin", `${value}px !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set margin: ${value}px !important`); + } + return; + } + + if (name === "marginTop" && !isNaN(value)) { + cssProps.set("margin-top", `${value}px !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set margin-top: ${value}px !important`); + } + return; + } + + if (name === "marginBottom" && !isNaN(value)) { + cssProps.set("margin-bottom", `${value}px !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set margin-bottom: ${value}px !important`); + } + return; + } + + if (name === "marginLeft" && !isNaN(value)) { + cssProps.set("margin-left", `${value}px !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set margin-left: ${value}px !important`); + } + return; + } + + if (name === "marginRight" && !isNaN(value)) { + cssProps.set("margin-right", `${value}px !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set margin-right: ${value}px !important`); + } + return; + } + + if (name === "color") { + cssProps.set("color", `${value} !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set color: ${value} !important`); + } + return; + } + + if (name === "backgroundColor") { + cssProps.set("background-color", `${value} !important`); + if (this.options.debug) { + console.log(`[CSSGenerator] Set background-color: ${value} !important`); + } + return; + } + + const style = STYLE_MAPPINGS[name]; + if (style) { + if (this.options.debug) { + console.log(`[CSSGenerator] Processing style mapping for: "${name}"`); + } + Object.entries(style).forEach(([key, baseValue]) => { + if (typeof baseValue === "object") { + if (key.startsWith(":") || key.startsWith(">")) { + nestedRules.set(key, baseValue); + if (this.options.debug) { + console.log( + `[CSSGenerator] Added nested rule: "${key}" =>`, + baseValue + ); + } + } else { + let finalValue = baseValue; + if (value && key === "gridTemplateColumns" && !isNaN(value)) { + finalValue = `repeat(${value}, 1fr)`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Set grid template columns: ${finalValue}` + ); + } + } + cssProps.set(key, finalValue); + if (this.options.debug) { + console.log( + `[CSSGenerator] Set CSS property: "${key}" = "${finalValue}"` + ); + } + } + } else { + let finalValue = baseValue; + if (value && key === "gridTemplateColumns" && !isNaN(value)) { + finalValue = `repeat(${value}, 1fr)`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Set grid template columns: ${finalValue}` + ); + } + } + cssProps.set(key, finalValue); + if (this.options.debug) { + console.log( + `[CSSGenerator] Set CSS property: "${key}" = "${finalValue}"` + ); + } + } + }); + } + }); + + if (this.options.debug) { + console.log("\n[CSSGenerator] CSS properties generation complete"); + console.log(`[CSSGenerator] Generated ${cssProps.size} CSS properties`); + console.log(`[CSSGenerator] Generated ${nestedRules.size} nested rules`); + } + + return { cssProps, nestedRules }; + } + +/** + * Generates the CSS code for the given style mappings. If minified is true, + * the generated CSS will be minified. Otherwise, it will be formatted with + * indentation and newlines. + * + * @return {string} The generated CSS code + */ + generateCSS() { + if (this.options.debug) { + console.log("\n[CSSGenerator] Starting CSS generation"); + console.log(`[CSSGenerator] Processing ${this.cssRules.size} rule sets`); + } + + /** + * Converts a camelCase string to kebab-case (lowercase with hyphens + * separating words) + * + * @param {string} str The string to convert + * @return {string} The converted string + */ + + const toKebabCase = (str) => + str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); + + let css = ""; + this.cssRules.forEach((props, selector) => { + if (props.cssProps.size > 0) { + if (this.options.debug) { + console.log( + `\n[CSSGenerator] Generating CSS for selector: "${selector}"` + ); + console.log( + `[CSSGenerator] Properties count: ${props.cssProps.size}` + ); + } + css += `${selector} {${this.options.minified ? "" : "\n"}`; + props.cssProps.forEach((value, prop) => { + const cssProperty = toKebabCase(prop); + css += `${ + this.options.minified ? "" : " " + }${cssProperty}: ${value};${this.options.minified ? "" : "\n"}`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Added property: ${cssProperty}: ${value}` + ); + } + }); + css += `}${this.options.minified ? "" : "\n"}`; + } + + if (props.nestedRules.size > 0) { + if (this.options.debug) { + console.log( + `\n[CSSGenerator] Processing ${props.nestedRules.size} nested rules for "${selector}"` + ); + } + props.nestedRules.forEach((rules, nestedSelector) => { + const fullSelector = nestedSelector.startsWith(">") + ? `${selector} ${nestedSelector}` + : `${selector}${nestedSelector}`; + + if (this.options.debug) { + console.log( + `[CSSGenerator] Generating nested selector: "${fullSelector}"` + ); + } + + css += `${fullSelector} {${this.options.minified ? "" : "\n"}`; + Object.entries(rules).forEach(([prop, value]) => { + if (typeof value === "object") { + const pseudoSelector = `${fullSelector}${prop}`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Generating pseudo-selector: "${pseudoSelector}"` + ); + } + css += `}${this.options.minified ? "" : "\n"}${pseudoSelector} {${ + this.options.minified ? "" : "\n" + }`; + Object.entries(value).forEach(([nestedProp, nestedValue]) => { + const cssProperty = toKebabCase(nestedProp); + css += `${ + this.options.minified ? "" : " " + }${cssProperty}: ${nestedValue};${ + this.options.minified ? "" : "\n" + }`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Added nested property: ${cssProperty}: ${nestedValue}` + ); + } + }); + } else { + const cssProperty = toKebabCase(prop); + css += `${ + this.options.minified ? "" : " " + }${cssProperty}: ${value};${this.options.minified ? "" : "\n"}`; + if (this.options.debug) { + console.log( + `[CSSGenerator] Added property: ${cssProperty}: ${value}` + ); + } + } + }); + css += `}${this.options.minified ? "" : "\n"}`; + }); + } + }); + + if (this.options.debug) { + console.log("\n[CSSGenerator] CSS generation complete"); + console.log( + `[CSSGenerator] Generated ${css.split("\n").length} lines of CSS` + ); + } + + return css; + } +} + +module.exports = CSSGenerator; diff --git a/lib/HTMLGenerator.js b/lib/HTMLGenerator.js new file mode 100644 index 0000000..1261b50 --- /dev/null +++ b/lib/HTMLGenerator.js @@ -0,0 +1,353 @@ +const { ELEMENT_MAPPINGS } = require("./mappings"); + +class HTMLGenerator { + /** + * Creates a new HTML generator instance. + * @param {Object} [options] - Options object + * @param {boolean} [options.minified=true] - Minify generated HTML + * @param {boolean} [options.debug=false] - Enable debug logging + * @param {CSSGenerator} cssGenerator - CSS generator instance + */ + constructor(options = {}, cssGenerator) { + this.options = options; + this.cssGenerator = cssGenerator; + if (this.options.debug) { + console.log( + "[HTMLGenerator] Initialized with options:", + JSON.stringify(options, null, 2) + ); + } + } + + /** + * Converts a node to a string for debugging purposes, avoiding circular + * references. + * @param {Object} node - Node to stringify + * @returns {string} String representation of the node + */ + debugStringify(node) { + const getCircularReplacer = () => { + const seen = new WeakSet(); + return (key, value) => { + if (key === "parent") return "[Circular:Parent]"; + if (typeof value === "object" && value !== null) { + if (seen.has(value)) { + return "[Circular]"; + } + seen.add(value); + } + return value; + }; + }; + + try { + return JSON.stringify(node, getCircularReplacer(), 2); + } catch (err) { + return `[Unable to stringify: ${err.message}]`; + } + } + + /** + * Converts a node to a string of HTML. + * @param {Object} node - Node to generate HTML for + * @returns {string} Generated HTML + */ + generateHTML(node) { + if (this.options.debug) { + console.log(`\n[HTMLGenerator] Generating HTML for node`); + console.log(`[HTMLGenerator] Node type: "${node.type}"`); + console.log("[HTMLGenerator] Node details:", this.debugStringify(node)); + } + + if (node.type === "text") { + if (node.parent?.tag === "codeblock") { + if (this.options.debug) { + console.log("[HTMLGenerator] Rendering raw text for codeblock"); + console.log(`[HTMLGenerator] Raw text content: "${node.value}"`); + } + return node.value; + } + const escapedText = node.value + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + if (this.options.debug) { + console.log("[HTMLGenerator] Generated escaped text"); + console.log(`[HTMLGenerator] Original: "${node.value}"`); + console.log(`[HTMLGenerator] Escaped: "${escapedText}"`); + } + return escapedText; + } + + let html = ""; + if (node.type === "element") { + if (node.tag === "page") { + if (this.options.debug) { + console.log("[HTMLGenerator] Skipping page node - metadata only"); + } + return ""; + } + + const mapping = ELEMENT_MAPPINGS[node.tag]; + let tag = mapping ? mapping.tag : "div"; + const className = this.cssGenerator.generateClassName(node.tag); + const { cssProps, nestedRules } = + this.cssGenerator.nodeToCSSProperties(node); + + if (this.options.debug) { + console.log(`\n[HTMLGenerator] Processing element node`); + console.log(`[HTMLGenerator] Tag: "${node.tag}" -> "${tag}"`); + console.log(`[HTMLGenerator] Generated class name: "${className}"`); + console.log( + "[HTMLGenerator] CSS properties:", + this.debugStringify(Object.fromEntries(cssProps)) + ); + console.log( + "[HTMLGenerator] Nested rules:", + this.debugStringify(Object.fromEntries(nestedRules)) + ); + } + + let attributes = ""; + if (tag === "input") { + if (node.tag === "checkbox") { + attributes = ' type="checkbox"'; + } else if (node.tag === "radio") { + attributes = ' type="radio"'; + } else if (node.tag === "switch") { + attributes = ' type="checkbox" role="switch"'; + } else if (node.tag === "slider") { + attributes = ' type="range"'; + } + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added input attributes: "${attributes}"` + ); + } + } + + if (node.tag === "media") { + const srcProp = node.props.find((p) => p.startsWith("src:")); + const typeProp = node.props.find((p) => p.startsWith("type:")); + + if (!srcProp) { + throw new BlueprintError("Media element requires src property", node.line, node.column); + } + + const src = srcProp.substring(srcProp.indexOf(":") + 1).trim(); + const type = typeProp ? typeProp.substring(typeProp.indexOf(":") + 1).trim() : "img"; + + if (type === "video") { + tag = "video"; + attributes = ` src="${src}" controls`; + } else { + tag = "img"; + attributes = ` src="${src}" alt="${node.children.map(child => this.generateHTML(child)).join("")}"`; + } + } + + if (node.tag === "link") { + const linkInfo = this.processLink(node); + attributes += ` href="${linkInfo.href}"`; + if ( + linkInfo.href.startsWith("http://") || + linkInfo.href.startsWith("https://") + ) { + attributes += ` target="_blank" rel="noopener noreferrer"`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added external link attributes for: ${linkInfo.href}` + ); + } + } else { + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added internal link attributes for: ${linkInfo.href}` + ); + } + } + } + + if ( + node.props.find((p) => typeof p === "string" && p.startsWith("data-")) + ) { + const dataProps = node.props.filter( + (p) => typeof p === "string" && p.startsWith("data-") + ); + attributes += " " + dataProps.map((p) => `${p}`).join(" "); + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added data attributes:`, + this.debugStringify(dataProps) + ); + } + } + + this.cssGenerator.cssRules.set(`.${className}`, { + cssProps, + nestedRules, + }); + if (this.options.debug) { + console.log( + `[HTMLGenerator] Registered CSS rules for class: .${className}` + ); + } + + if (node.tag === "button" || node.tag.startsWith("button-")) { + if (node.parent?.tag === "link") { + const linkInfo = this.processLink(node.parent); + if ( + linkInfo.href.startsWith("http://") || + linkInfo.href.startsWith("https://") + ) { + attributes += ` onclick="window.open('${linkInfo.href}', '_blank', 'noopener,noreferrer')"`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added external button click handler for: ${linkInfo.href}` + ); + } + } else { + attributes += ` onclick="window.location.href='${linkInfo.href}'"`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added internal button click handler for: ${linkInfo.href}` + ); + } + } + } + html += `${ + this.options.minified ? "" : "\n" + }`; + } else if ( + node.tag === "link" && + node.children.length === 1 && + (node.children[0].tag === "button" || + node.children[0].tag?.startsWith("button-")) + ) { + if (this.options.debug) { + console.log( + "[HTMLGenerator] Processing button inside link - using button's HTML" + ); + } + node.children[0].parent = node; + html += this.generateHTML(node.children[0]); + } else { + html += `<${tag} class="${className}"${attributes}>${ + this.options.minified ? "" : "\n" + }`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Generated opening tag: <${tag}> with attributes:`, + this.debugStringify({ class: className, ...attributes }) + ); + } + node.children.forEach((child) => { + child.parent = node; + html += this.generateHTML(child); + }); + html += `${this.options.minified ? "" : "\n"}${ + this.options.minified ? "" : "\n" + }`; + if (this.options.debug) { + console.log(`[HTMLGenerator] Completed element: ${tag}`); + } + } + } else if (node.type === "root") { + if (this.options.debug) { + console.log( + `[HTMLGenerator] Processing root node with ${node.children.length} children` + ); + } + node.children.forEach((child, index) => { + if (this.options.debug) { + console.log( + `[HTMLGenerator] Processing root child ${index + 1}/${ + node.children.length + }` + ); + } + html += this.generateHTML(child); + }); + } + + if (this.options.debug) { + console.log("[HTMLGenerator] Generated HTML:", html); + } + return html; + } + + /** + * Processes a link node, extracting the href attribute and converting it + * to an internal link if it doesn't start with http:// or https://. + * + * If no href property is found, the default value of # is used. + * + * @param {Object} node - The link node to process + * @returns {Object} - An object containing the final href value + */ + processLink(node) { + if (this.options.debug) { + console.log("\n[HTMLGenerator] Processing link node"); + console.log( + "[HTMLGenerator] Link properties:", + this.debugStringify(node.props) + ); + } + + const hrefProp = node.props.find((p) => p.startsWith("href:")); + let href = "#"; + + if (hrefProp) { + let hrefTarget = hrefProp + .substring(hrefProp.indexOf(":") + 1) + .trim() + .replace(/^"|"$/g, ""); + if ( + !hrefTarget.startsWith("http://") && + !hrefTarget.startsWith("https://") + ) { + hrefTarget = "/" + hrefTarget; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Converted to internal link: "${hrefTarget}"` + ); + } + } else { + if (this.options.debug) { + console.log( + `[HTMLGenerator] External link detected: "${hrefTarget}"` + ); + } + } + href = hrefTarget; + } else { + if (this.options.debug) { + console.log( + "[HTMLGenerator] No href property found, using default: '#'" + ); + } + } + + if (this.options.debug) { + console.log(`[HTMLGenerator] Final href value: "${href}"`); + } + return { href }; + } +} + +module.exports = HTMLGenerator; diff --git a/lib/MetadataManager.js b/lib/MetadataManager.js new file mode 100644 index 0000000..130bf61 --- /dev/null +++ b/lib/MetadataManager.js @@ -0,0 +1,333 @@ +class MetadataManager { +/** + * Initializes a new instance of the MetadataManager class. + * + * @param {Object} options - Configuration options for the metadata manager. + * @param {boolean} [options.debug=false] - Enables debug logging if true. + * + * Sets up the pageMetadata object containing default title, faviconUrl, and an empty meta array. + * If debug mode is enabled, logs the initialization options and the initial metadata state. + */ + + constructor(options = {}) { + this.options = options; + this.pageMetadata = { + title: "", + faviconUrl: "", + meta: [], + }; + if (this.options.debug) { + console.log( + "[MetadataManager] Initialized with options:", + JSON.stringify(options, null, 2) + ); + console.log( + "[MetadataManager] Initial metadata state:", + JSON.stringify(this.pageMetadata, null, 2) + ); + } + } + + /** + * Converts a node to a string for debugging purposes, avoiding circular + * references. + * @param {Object} node - Node to stringify + * @returns {string} String representation of the node + */ + debugStringify(node) { + const getCircularReplacer = () => { + const seen = new WeakSet(); + return (key, value) => { + if (key === "parent") return "[Circular:Parent]"; + if (typeof value === "object" && value !== null) { + if (seen.has(value)) { + return "[Circular]"; + } + seen.add(value); + } + return value; + }; + }; + + try { + return JSON.stringify(node, getCircularReplacer(), 2); + } catch (err) { + return `[Unable to stringify: ${err.message}]`; + } + } + + /** + * Processes the metadata of a given node object, updating the internal page metadata state. + * + * Iterates through the node's properties and children to extract metadata information such as + * title, favicon, description, keywords, and author. This information is used to populate + * the pageMetadata object. + * + * For each property or child, it handles known metadata fields directly and adds custom + * meta tags for any properties or children with a "meta-" prefix. + * + * @param {Object} node - The node containing properties and children to process for metadata. + */ + + processPageMetadata(node) { + if (this.options.debug) { + console.log("\n[MetadataManager] Processing page metadata"); + console.log("[MetadataManager] Node details:", this.debugStringify(node)); + } + + if (node.props) { + if (this.options.debug) { + console.log( + `\n[MetadataManager] Processing ${node.props.length} page properties` + ); + console.log( + "[MetadataManager] Properties:", + this.debugStringify(node.props) + ); + } + node.props.forEach((prop) => { + if (typeof prop === "object" && prop.name && prop.value) { + if (this.options.debug) { + console.log( + `\n[MetadataManager] Processing property:`, + this.debugStringify(prop) + ); + } + switch (prop.name) { + case "title": + this.pageMetadata.title = prop.value; + if (this.options.debug) { + console.log( + `[MetadataManager] Set page title: "${prop.value}"` + ); + } + break; + case "favicon": + this.pageMetadata.faviconUrl = prop.value; + if (this.options.debug) { + console.log( + `[MetadataManager] Set favicon URL: "${prop.value}"` + ); + } + break; + case "description": + this.pageMetadata.meta.push({ + name: "description", + content: prop.value, + }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added description meta tag: "${prop.value}"` + ); + } + break; + case "keywords": + this.pageMetadata.meta.push({ + name: "keywords", + content: prop.value, + }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added keywords meta tag: "${prop.value}"` + ); + } + break; + case "author": + this.pageMetadata.meta.push({ + name: "author", + content: prop.value, + }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added author meta tag: "${prop.value}"` + ); + } + break; + default: + if (prop.name.startsWith("meta-")) { + const metaName = prop.name.substring(5); + this.pageMetadata.meta.push({ + name: metaName, + content: prop.value, + }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added custom meta tag - ${metaName}: "${prop.value}"` + ); + } + } else if (this.options.debug) { + console.log( + `[MetadataManager] Skipping unknown property: "${prop.name}"` + ); + } + } + } + }); + } + + if (node.children) { + if (this.options.debug) { + console.log( + `\n[MetadataManager] Processing ${node.children.length} child nodes for metadata` + ); + } + node.children.forEach((child, index) => { + if (child.tag) { + if (this.options.debug) { + console.log( + `\n[MetadataManager] Processing child ${index + 1}/${ + node.children.length + }` + ); + console.log(`[MetadataManager] Child tag: "${child.tag}"`); + console.log( + "[MetadataManager] Child details:", + this.debugStringify(child) + ); + } + + let content = ""; +/** + * Recursively extracts the text content from a node tree. + * + * This function traverses the node tree and concatenates the text content of + * all text nodes. For non-text nodes, it recursively calls itself on the + * children of that node. + * + * @param {Object} node - The node for which to extract the text content + * @return {string} The extracted text content + */ + const getTextContent = (node) => { + if (node.type === "text") return node.value; + if (node.children) { + return node.children.map(getTextContent).join(""); + } + return ""; + }; + content = getTextContent(child); + + if (this.options.debug) { + console.log(`[MetadataManager] Extracted content: "${content}"`); + } + + switch (child.tag) { + case "title": + this.pageMetadata.title = content; + if (this.options.debug) { + console.log( + `[MetadataManager] Set page title from child: "${content}"` + ); + } + break; + case "description": + this.pageMetadata.meta.push({ name: "description", content }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added description meta tag from child: "${content}"` + ); + } + break; + case "keywords": + this.pageMetadata.meta.push({ name: "keywords", content }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added keywords meta tag from child: "${content}"` + ); + } + break; + case "author": + this.pageMetadata.meta.push({ name: "author", content }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added author meta tag from child: "${content}"` + ); + } + break; + default: + if (child.tag.startsWith("meta-")) { + const metaName = child.tag.substring(5); + this.pageMetadata.meta.push({ name: metaName, content }); + if (this.options.debug) { + console.log( + `[MetadataManager] Added custom meta tag from child - ${metaName}: "${content}"` + ); + } + } else if (this.options.debug) { + console.log( + `[MetadataManager] Skipping unknown child tag: "${child.tag}"` + ); + } + } + } + }); + } + + if (this.options.debug) { + console.log("\n[MetadataManager] Metadata processing complete"); + console.log( + "[MetadataManager] Final metadata state:", + this.debugStringify(this.pageMetadata) + ); + } + } + + /** + * Generates the HTML head content for the page, based on the metadata + * previously collected. The generated content includes the page title, + * favicon link, meta tags, and stylesheet link. + * + * @param {string} baseName - The base name of the page (used for the + * stylesheet link) + * @return {string} The generated HTML head content + */ + generateHeadContent(baseName) { + if (this.options.debug) { + console.log("\n[MetadataManager] Generating head content"); + console.log(`[MetadataManager] Base name: "${baseName}"`); + } + + let content = ""; + + const title = this.pageMetadata.title || baseName; + content += ` ${title}\n`; + if (this.options.debug) { + console.log(`[MetadataManager] Added title tag: "${title}"`); + } + + if (this.pageMetadata.faviconUrl) { + content += ` \n`; + if (this.options.debug) { + console.log( + `[MetadataManager] Added favicon link: "${this.pageMetadata.faviconUrl}"` + ); + } + } + + if (this.options.debug) { + console.log( + `[MetadataManager] Processing ${this.pageMetadata.meta.length} meta tags` + ); + } + this.pageMetadata.meta.forEach((meta, index) => { + content += ` \n`; + if (this.options.debug) { + console.log( + `[MetadataManager] Added meta tag ${index + 1}: ${meta.name} = "${ + meta.content + }"` + ); + } + }); + + content += ` \n`; + if (this.options.debug) { + console.log(`[MetadataManager] Added stylesheet link: "${baseName}.css"`); + console.log("\n[MetadataManager] Head content generation complete"); + console.log("[MetadataManager] Generated content:", content); + } + + return content; + } +} + +module.exports = MetadataManager; diff --git a/lib/TokenParser.js b/lib/TokenParser.js new file mode 100644 index 0000000..62f6776 --- /dev/null +++ b/lib/TokenParser.js @@ -0,0 +1,370 @@ +const BlueprintError = require("./BlueprintError"); + +class TokenParser { + + /** + * Creates a new TokenParser instance. + * @param {Object} [options] - Options object + * @param {boolean} [options.debug=false] - Enable debug logging + */ + constructor(options = {}) { + this.options = options; + if (this.options.debug) { + console.log( + "[TokenParser] Initialized with options:", + JSON.stringify(options, null, 2) + ); + } + } + + /** + * Tokenizes the input string into an array of tokens. + * Tokens can be of the following types: + * - `identifier`: A sequence of letters, numbers, underscores, and hyphens. + * Represents a CSS selector or a property name. + * - `props`: A sequence of characters enclosed in parentheses. + * Represents a list of CSS properties. + * - `text`: A sequence of characters enclosed in quotes. + * Represents a string of text. + * - `brace`: A single character, either `{` or `}`. + * Represents a brace in the input. + * + * @param {string} input - Input string to tokenize + * @returns {Array} - Array of tokens + * @throws {BlueprintError} - If the input contains invalid syntax + */ + tokenize(input) { + if (this.options.debug) { + console.log("\n[TokenParser] Starting tokenization"); + console.log(`[TokenParser] Input length: ${input.length} characters`); + console.log(`[TokenParser] First 100 chars: ${input.slice(0, 100)}...`); + } + + const tokens = []; + let current = 0; + let line = 1; + let column = 1; + const startTime = Date.now(); + const TIMEOUT_MS = 5000; + + while (current < input.length) { + let char = input[current]; + + if (Date.now() - startTime > TIMEOUT_MS) { + if (this.options.debug) { + console.log( + `[TokenParser] Tokenization timeout at position ${current}, line ${line}, column ${column}` + ); + } + throw new BlueprintError( + "Parsing timeout - check for unclosed brackets or quotes", + line, + column + ); + } + + if (char === "\n") { + if (this.options.debug) { + console.log( + `[TokenParser] Line break at position ${current}, moving to line ${ + line + 1 + }` + ); + } + line++; + column = 1; + current++; + continue; + } + + if (/\s/.test(char)) { + column++; + current++; + continue; + } + + if (char === "/" && input[current + 1] === "/") { + if (this.options.debug) { + console.log( + `[TokenParser] Comment found at line ${line}, column ${column}` + ); + const commentEnd = input.indexOf("\n", current); + const comment = input.slice( + current, + commentEnd !== -1 ? commentEnd : undefined + ); + console.log(`[TokenParser] Comment content: ${comment}`); + } + while (current < input.length && input[current] !== "\n") { + current++; + column++; + } + continue; + } + + if (/[a-zA-Z]/.test(char)) { + let value = ""; + const startColumn = column; + const startPos = current; + + while (current < input.length && /[a-zA-Z0-9_-]/.test(char)) { + value += char; + current++; + column++; + char = input[current]; + } + + if (this.options.debug) { + console.log( + `[TokenParser] Identifier found at line ${line}, column ${startColumn}` + ); + console.log(`[TokenParser] Identifier value: "${value}"`); + console.log( + `[TokenParser] Context: ...${input.slice( + Math.max(0, startPos - 10), + startPos + )}[${value}]${input.slice(current, current + 10)}...` + ); + } + + tokens.push({ + type: "identifier", + value, + line, + column: startColumn, + }); + continue; + } + + if (char === "(") { + if (this.options.debug) { + console.log(`[DEBUG] Starting property list at position ${current}`); + } + + const startColumn = column; + let value = ""; + let depth = 1; + let propLine = line; + let propColumn = column; + current++; + column++; + const propStartPos = current; + + while (current < input.length && depth > 0) { + if (current - propStartPos > 1000) { + if (this.options.debug) { + console.log("[DEBUG] Property list too long or unclosed"); + } + throw new BlueprintError( + "Property list too long or unclosed parenthesis", + propLine, + propColumn + ); + } + + char = input[current]; + + if (char === "(") depth++; + if (char === ")") depth--; + + if (depth === 0) break; + + value += char; + if (char === "\n") { + line++; + column = 1; + } else { + column++; + } + current++; + } + + if (depth > 0) { + if (this.options.debug) { + console.log("[DEBUG] Unclosed parenthesis detected"); + } + throw new BlueprintError( + "Unclosed parenthesis in property list", + propLine, + propColumn + ); + } + + tokens.push({ + type: "props", + value: value.trim(), + line, + column: startColumn, + }); + + current++; + column++; + continue; + } + + if (char === '"' || char === "'") { + if (this.options.debug) { + console.log(`[DEBUG] Starting string at position ${current}`); + } + + const startColumn = column; + const startLine = line; + const quote = char; + let value = ""; + const stringStartPos = current; + + current++; + column++; + + while (current < input.length) { + if (current - stringStartPos > 1000) { + if (this.options.debug) { + console.log("[DEBUG] String too long or unclosed"); + } + throw new BlueprintError( + "String too long or unclosed quote", + startLine, + startColumn + ); + } + + char = input[current]; + + if (char === "\n") { + line++; + column = 1; + value += char; + } else if (char === quote && input[current - 1] !== "\\") { + break; + } else { + value += char; + column++; + } + + current++; + } + + tokens.push({ + type: "text", + value, + line: startLine, + column: startColumn, + }); + + current++; + column++; + continue; + } + + if (char === "{" || char === "}") { + if (this.options.debug) { + console.log(`[DEBUG] Found brace: ${char} at position ${current}`); + } + + tokens.push({ + type: "brace", + value: char, + line, + column, + }); + current++; + column++; + continue; + } + + if (this.options.debug) { + console.log( + `[DEBUG] Unexpected character at position ${current}: "${char}"` + ); + } + throw new BlueprintError(`Unexpected character: ${char}`, line, column); + } + + if (this.options.debug) { + console.log("\n[TokenParser] Tokenization complete"); + console.log(`[TokenParser] Total tokens generated: ${tokens.length}`); + console.log( + "[TokenParser] Token summary:", + tokens.map((t) => `${t.type}:${t.value}`).join(", ") + ); + } + + this.validateBraces(tokens); + return tokens; + } + + /** + * Validates that all braces in the token stream are properly matched. + * This function walks the token stream, counting the number of open and + * close braces. If it encounters an unmatched brace, it throws an error. + * If it encounters an extra closing brace, it throws an error. + * @throws {BlueprintError} - If there is a brace mismatch + */ + validateBraces(tokens) { + let braceCount = 0; + let lastOpenBrace = { line: 1, column: 1 }; + const braceStack = []; + + if (this.options.debug) { + console.log("\n[TokenParser] Starting brace validation"); + } + + for (const token of tokens) { + if (token.type === "brace") { + if (token.value === "{") { + braceCount++; + braceStack.push({ line: token.line, column: token.column }); + lastOpenBrace = { line: token.line, column: token.column }; + if (this.options.debug) { + console.log( + `[TokenParser] Opening brace at line ${token.line}, column ${token.column}, depth: ${braceCount}` + ); + } + } else if (token.value === "}") { + braceCount--; + const matchingOpen = braceStack.pop(); + if (this.options.debug) { + console.log( + `[TokenParser] Closing brace at line ${token.line}, column ${token.column}, depth: ${braceCount}` + ); + if (matchingOpen) { + console.log( + `[TokenParser] Matches opening brace at line ${matchingOpen.line}, column ${matchingOpen.column}` + ); + } + } + } + } + } + + if (braceCount !== 0) { + if (this.options.debug) { + console.log( + `[TokenParser] Brace mismatch detected: ${ + braceCount > 0 ? "unclosed" : "extra" + } braces` + ); + console.log(`[TokenParser] Brace stack:`, braceStack); + } + if (braceCount > 0) { + throw new BlueprintError( + "Unclosed brace", + lastOpenBrace.line, + lastOpenBrace.column + ); + } else { + throw new BlueprintError( + "Extra closing brace", + tokens[tokens.length - 1].line, + tokens[tokens.length - 1].column + ); + } + } + + if (this.options.debug) { + console.log("[TokenParser] Brace validation complete - all braces match"); + } + } +} + +module.exports = TokenParser; diff --git a/lib/build.js b/lib/build.js new file mode 100644 index 0000000..62b510d --- /dev/null +++ b/lib/build.js @@ -0,0 +1,77 @@ +const BlueprintBuilder = require("./BlueprintBuilder"); +const fs = require("fs"); +const path = require("path"); + +const args = process.argv.slice(2); +const options = { + minified: !args.includes("--readable"), + srcDir: "./src", + outDir: "./dist", + debug: args.includes("--debug"), +}; + +const builder = new BlueprintBuilder(options); + +function ensureDirectoryExistence(filePath) { + const dirname = path.dirname(filePath); + if (fs.existsSync(dirname)) { + return true; + } + ensureDirectoryExistence(dirname); + fs.mkdirSync(dirname); +} + +function getAllFiles(dirPath, arrayOfFiles) { + const files = fs.readdirSync(dirPath); + + arrayOfFiles = arrayOfFiles || []; + + files.forEach((file) => { + if (fs.statSync(path.join(dirPath, file)).isDirectory()) { + arrayOfFiles = getAllFiles(path.join(dirPath, file), arrayOfFiles); + } else if (file.endsWith(".bp")) { + arrayOfFiles.push(path.join(dirPath, file)); + } + }); + + return arrayOfFiles; +} + +const files = getAllFiles(options.srcDir); + +let success = true; +const errors = []; + +console.log("Building Blueprint files..."); +const startTime = Date.now(); + +for (const file of files) { + const relativePath = path.relative(options.srcDir, file); + const outputPath = path.join( + options.outDir, + relativePath.replace(/\.bp$/, ".html") + ); + ensureDirectoryExistence(outputPath); + + console.log(`Building ${file}...`); + const result = builder.build(file, path.dirname(outputPath)); + if (!result.success) { + success = false; + errors.push({ file, errors: result.errors }); + } +} + +const totalTime = Date.now() - startTime; + +if (success) { + console.log(`All files built successfully in ${totalTime}ms!`); +} else { + console.error("Build failed with errors:"); + errors.forEach(({ file, errors }) => { + console.error(`\nFile: ${file}`); + errors.forEach((err) => { + console.error(` ${err.message} (${err.line}:${err.column})`); + }); + }); + process.exit(1); +} diff --git a/lib/dev-server.js b/lib/dev-server.js new file mode 100644 index 0000000..1470615 --- /dev/null +++ b/lib/dev-server.js @@ -0,0 +1,15 @@ +const BlueprintServer = require("./server"); + +const args = process.argv.slice(2); +const options = { + port: args.includes("--port") + ? parseInt(args[args.indexOf("--port") + 1]) + : 3000, + liveReload: args.includes("--live"), + minified: !args.includes("--readable"), + srcDir: "./src", + outDir: "./dist", +}; + +const server = new BlueprintServer(options); +server.start(); diff --git a/lib/mappings.js b/lib/mappings.js new file mode 100644 index 0000000..b47f83d --- /dev/null +++ b/lib/mappings.js @@ -0,0 +1,648 @@ +const STYLE_MAPPINGS = { + centered: { + display: "flex", + justifyContent: "center", + alignItems: "center", + textAlign: "center", + padding: "2rem", + width: "100%", + }, + spaced: { + display: "flex", + justifyContent: "space-between", + alignItems: "center", + gap: "1.5rem", + width: "100%", + }, + responsive: { + flexWrap: "wrap", + gap: "2rem", + }, + horizontal: { + display: "flex", + flexDirection: "row", + gap: "1.5rem", + alignItems: "center", + width: "100%", + }, + vertical: { + display: "flex", + flexDirection: "column", + gap: "1.5rem", + width: "100%", + }, + grid: { + display: "grid", + gridTemplateColumns: "repeat(auto-fit, minmax(300px, 1fr))", + gap: "2rem", + width: "100%", + padding: "2rem 0", + }, + wide: { + width: "100%", + maxWidth: "1200px", + margin: "0 auto", + padding: "0 2rem", + }, + alternate: { + backgroundColor: "#0d1117", + padding: "5rem 0", + width: "100%", + }, + sticky: { + position: "fixed", + top: "0", + left: "0", + right: "0", + zIndex: "1000", + backgroundColor: "rgba(13, 17, 23, 0.95)", + backdropFilter: "blur(12px)", + borderBottom: "1px solid rgba(48, 54, 61, 0.6)", + }, + + huge: { + fontSize: "clamp(2.5rem, 5vw, 4rem)", + fontWeight: "800", + lineHeight: "1.1", + letterSpacing: "-0.02em", + color: "#ffffff", + marginBottom: "1.5rem", + textAlign: "center", + }, + large: { + fontSize: "clamp(1.5rem, 3vw, 2rem)", + lineHeight: "1.3", + color: "#ffffff", + fontWeight: "600", + marginBottom: "1rem", + }, + small: { + fontSize: "0.875rem", + lineHeight: "1.5", + color: "#8b949e", + }, + bold: { + fontWeight: "600", + color: "#ffffff", + }, + subtle: { + color: "#8b949e", + lineHeight: "1.6", + marginBottom: "0.5rem", + }, + + light: { + backgroundColor: "transparent", + color: "#8b949e", + padding: "0.875rem 1.75rem", + borderRadius: "12px", + border: "1px solid rgba(48, 54, 61, 0.6)", + cursor: "pointer", + fontWeight: "500", + fontSize: "0.95rem", + transition: "all 0.2s ease", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + textDecoration: "none", + ":hover": { + color: "#e6edf3", + backgroundColor: "rgba(255, 255, 255, 0.1)", + borderColor: "#6b7280", + }, + }, + + raised: { + backgroundColor: "#111827", + borderRadius: "16px", + border: "1px solid rgba(48, 54, 61, 0.6)", + padding: "2rem", + transition: "all 0.2s ease", + ":hover": { + transform: "translateY(-2px)", + boxShadow: "0 8px 16px rgba(0,0,0,0.2)", + borderColor: "#3b82f6", + }, + }, + prominent: { + backgroundColor: "#3b82f6", + color: "#ffffff", + padding: "0.875rem 1.75rem", + borderRadius: "12px", + border: "none", + cursor: "pointer", + fontWeight: "500", + fontSize: "0.95rem", + transition: "all 0.2s ease", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + textDecoration: "none", + ":hover": { + backgroundColor: "#2563eb", + transform: "translateY(-1px)", + boxShadow: "0 4px 12px rgba(59, 130, 246, 0.3)", + }, + }, + secondary: { + backgroundColor: "#1f2937", + color: "#e6edf3", + padding: "0.875rem 1.75rem", + borderRadius: "12px", + border: "1px solid rgba(48, 54, 61, 0.6)", + cursor: "pointer", + fontWeight: "500", + fontSize: "0.95rem", + transition: "all 0.2s ease", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + textDecoration: "none", + ":hover": { + backgroundColor: "#374151", + borderColor: "#6b7280", + transform: "translateY(-1px)", + }, + }, + compact: { + padding: "0.75rem", + borderRadius: "12px", + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + color: "#e6edf3", + cursor: "pointer", + transition: "all 0.2s ease", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + ":hover": { + backgroundColor: "#1f2937", + borderColor: "#3b82f6", + transform: "translateY(-1px)", + }, + }, + + navbar: { + backgroundColor: "rgba(13, 17, 23, 0.95)", + backdropFilter: "blur(12px)", + padding: "1rem 2rem", + width: "100%", + borderBottom: "1px solid rgba(48, 54, 61, 0.6)", + position: "fixed", + top: 0, + left: 0, + right: 0, + zIndex: 1000, + "> *": { + maxWidth: "1200px", + margin: "0 auto", + display: "flex", + alignItems: "center", + justifyContent: "space-between", + }, + }, + section: { + padding: "5rem 0", + backgroundColor: "#0d1117", + marginTop: "5rem", + "> *": { + maxWidth: "1200px", + margin: "0 auto", + }, + }, + card: { + display: "flex", + flexDirection: "column", + gap: "1.5rem", + height: "100%", + backgroundColor: "#111827", + borderRadius: "16px", + border: "1px solid rgba(48, 54, 61, 0.6)", + padding: "2rem", + transition: "all 0.2s ease", + marginBottom: "1rem", + "> title": { + fontSize: "1.25rem", + fontWeight: "600", + color: "#ffffff", + marginBottom: "0.5rem", + }, + "> text": { + color: "#8b949e", + lineHeight: "1.6", + }, + cursor: "default", + }, + links: { + display: "flex", + gap: "2rem", + alignItems: "center", + "> *": { + color: "#8b949e", + textDecoration: "none", + transition: "all 0.2s ease", + fontSize: "0.95rem", + padding: "0.5rem 0.75rem", + borderRadius: "8px", + cursor: "pointer", + ":hover": { + color: "#e6edf3", + backgroundColor: "rgba(255, 255, 255, 0.1)", + }, + }, + }, + + input: { + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + borderRadius: "12px", + padding: "0.875rem 1.25rem", + color: "#e6edf3", + width: "100%", + transition: "all 0.2s ease", + outline: "none", + fontSize: "0.95rem", + ":focus": { + borderColor: "#3b82f6", + boxShadow: "0 0 0 3px rgba(59, 130, 246, 0.15)", + }, + "::placeholder": { + color: "#8b949e", + }, + }, + textarea: { + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + borderRadius: "12px", + padding: "0.875rem 1.25rem", + color: "#e6edf3", + width: "100%", + minHeight: "120px", + resize: "vertical", + transition: "all 0.2s ease", + outline: "none", + fontSize: "0.95rem", + ":focus": { + borderColor: "#3b82f6", + boxShadow: "0 0 0 3px rgba(59, 130, 246, 0.15)", + }, + }, + select: { + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + borderRadius: "12px", + padding: "0.875rem 2.5rem 0.875rem 1.25rem", + color: "#e6edf3", + width: "100%", + cursor: "pointer", + appearance: "none", + fontSize: "0.95rem", + backgroundImage: + "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%238b949e' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E\")", + backgroundRepeat: "no-repeat", + backgroundPosition: "right 1rem center", + backgroundSize: "1.5em 1.5em", + transition: "all 0.2s ease", + ":focus": { + borderColor: "#3b82f6", + boxShadow: "0 0 0 3px rgba(59, 130, 246, 0.15)", + }, + }, + checkbox: { + appearance: "none", + width: "1.25rem", + height: "1.25rem", + borderRadius: "6px", + border: "1px solid rgba(48, 54, 61, 0.6)", + backgroundColor: "#111827", + cursor: "pointer", + transition: "all 0.2s ease", + position: "relative", + marginRight: "0.75rem", + ":checked": { + backgroundColor: "#3b82f6", + borderColor: "#3b82f6", + "::after": { + content: '"✓"', + position: "absolute", + color: "white", + fontSize: "0.85rem", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + }, + }, + ":hover": { + borderColor: "#3b82f6", + }, + }, + radio: { + appearance: "none", + width: "1.25rem", + height: "1.25rem", + borderRadius: "50%", + border: "1px solid rgba(48, 54, 61, 0.6)", + backgroundColor: "#111827", + cursor: "pointer", + transition: "all 0.2s ease", + marginRight: "0.75rem", + ":checked": { + borderColor: "#3b82f6", + borderWidth: "4px", + backgroundColor: "#ffffff", + }, + ":hover": { + borderColor: "#3b82f6", + }, + }, + progress: { + appearance: "none", + width: "100%", + height: "0.75rem", + borderRadius: "999px", + overflow: "hidden", + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + "::-webkit-progress-bar": { + backgroundColor: "#111827", + }, + "::-webkit-progress-value": { + backgroundColor: "#3b82f6", + transition: "width 0.3s ease", + }, + "::-moz-progress-bar": { + backgroundColor: "#3b82f6", + transition: "width 0.3s ease", + }, + }, + slider: { + appearance: "none", + width: "100%", + height: "0.5rem", + borderRadius: "999px", + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + cursor: "pointer", + "::-webkit-slider-thumb": { + appearance: "none", + width: "1.25rem", + height: "1.25rem", + borderRadius: "50%", + backgroundColor: "#3b82f6", + border: "2px solid #ffffff", + cursor: "pointer", + transition: "all 0.2s ease", + ":hover": { + transform: "scale(1.1)", + }, + }, + }, + switch: { + appearance: "none", + position: "relative", + width: "3.5rem", + height: "1.75rem", + backgroundColor: "#111827", + border: "1px solid rgba(48, 54, 61, 0.6)", + borderRadius: "999px", + cursor: "pointer", + transition: "all 0.2s ease", + marginRight: "0.75rem", + ":checked": { + backgroundColor: "#3b82f6", + borderColor: "#3b82f6", + "::after": { + transform: "translateX(1.75rem)", + }, + }, + "::after": { + content: '""', + position: "absolute", + top: "0.2rem", + left: "0.2rem", + width: "1.25rem", + height: "1.25rem", + borderRadius: "50%", + backgroundColor: "#ffffff", + transition: "transform 0.2s ease", + }, + }, + badge: { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + padding: "0.375rem 0.875rem", + borderRadius: "999px", + fontSize: "0.875rem", + fontWeight: "500", + backgroundColor: "#111827", + color: "#e6edf3", + border: "1px solid rgba(48, 54, 61, 0.6)", + minWidth: "4rem", + transition: "all 0.2s ease", + }, + alert: { + padding: "1rem 1.5rem", + borderRadius: "12px", + border: "1px solid rgba(48, 54, 61, 0.6)", + backgroundColor: "#111827", + color: "#e6edf3", + display: "flex", + alignItems: "center", + gap: "0.75rem", + fontSize: "0.95rem", + }, + tooltip: { + position: "relative", + display: "inline-block", + ":hover::after": { + content: "attr(data-tooltip)", + position: "absolute", + bottom: "120%", + left: "50%", + transform: "translateX(-50%)", + padding: "0.5rem 1rem", + borderRadius: "8px", + backgroundColor: "#111827", + color: "#e6edf3", + fontSize: "0.875rem", + whiteSpace: "nowrap", + zIndex: "1000", + boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1)", + border: "1px solid rgba(48, 54, 61, 0.6)", + }, + }, + link: { + color: "#e6edf3", + textDecoration: "none", + transition: "all 0.2s ease", + display: "inline-flex", + alignItems: "center", + gap: "0.5rem", + ":hover": { + color: "#3b82f6", + }, + }, + media: { + display: "block", + maxWidth: "100%", + height: "auto", + borderRadius: "8px", + transition: "all 0.2s ease", + ":hover": { + transform: "scale(1.01)", + }, + }, +}; + +const ELEMENT_MAPPINGS = { + page: { + tag: "meta", + defaultProps: [], + }, + section: { + tag: "section", + defaultProps: ["wide"], + }, + title: { + tag: "h1", + defaultProps: ["bold"], + }, + subtitle: { + tag: "h2", + defaultProps: ["bold", "large"], + }, + text: { + tag: "p", + defaultProps: [], + }, + button: { + tag: "button", + defaultProps: ["prominent"], + }, + "button-secondary": { + tag: "button", + defaultProps: ["secondary"], + }, + "button-light": { + tag: "button", + defaultProps: ["light"], + }, + "button-compact": { + tag: "button", + defaultProps: ["compact"], + }, + link: { + tag: "a", + defaultProps: ["link"], + }, + card: { + tag: "div", + defaultProps: ["raised", "card"], + }, + grid: { + tag: "div", + defaultProps: ["grid", "responsive"], + }, + horizontal: { + tag: "div", + defaultProps: ["horizontal", "spaced"], + }, + vertical: { + tag: "div", + defaultProps: ["vertical"], + }, + list: { + tag: "ul", + defaultProps: ["bullet"], + }, + cell: { + tag: "td", + defaultProps: [], + }, + row: { + tag: "tr", + defaultProps: [], + }, + table: { + tag: "table", + defaultProps: ["table"], + }, + codeblock: { + tag: "pre", + defaultProps: ["code"], + }, + navbar: { + tag: "nav", + defaultProps: ["navbar", "sticky"], + }, + links: { + tag: "div", + defaultProps: ["links"], + }, + input: { + tag: "input", + defaultProps: ["input"], + }, + textarea: { + tag: "textarea", + defaultProps: ["textarea"], + }, + checkbox: { + tag: "input", + defaultProps: ["checkbox"], + }, + radio: { + tag: "input", + defaultProps: ["radio"], + }, + select: { + tag: "select", + defaultProps: ["select"], + }, + progress: { + tag: "progress", + defaultProps: ["progress"], + }, + slider: { + tag: "input", + defaultProps: ["slider"], + }, + switch: { + tag: "input", + defaultProps: ["switch"], + }, + badge: { + tag: "span", + defaultProps: ["badge"], + }, + alert: { + tag: "div", + defaultProps: ["alert"], + }, + tooltip: { + tag: "span", + defaultProps: ["tooltip"], + }, + description: { + tag: "meta", + defaultProps: [], + }, + keywords: { + tag: "meta", + defaultProps: [], + }, + author: { + tag: "meta", + defaultProps: [], + }, + media: { + tag: "media", + defaultProps: ["media"], + }, +}; + +module.exports = { + STYLE_MAPPINGS, + ELEMENT_MAPPINGS, +}; diff --git a/lib/server.js b/lib/server.js new file mode 100644 index 0000000..6c2552e --- /dev/null +++ b/lib/server.js @@ -0,0 +1,473 @@ +const express = require("express"); +const expressWs = require("express-ws"); +const chokidar = require("chokidar"); +const path = require("path"); +const fs = require("fs"); +const BlueprintBuilder = require("./BlueprintBuilder"); + +class BlueprintServer { + constructor(options = {}) { + this.app = express(); + this.wsInstance = expressWs(this.app); + this.options = { + port: 3000, + srcDir: "./src", + outDir: "./dist", + liveReload: false, + minified: true, + ...options, + }; + this.clients = new Map(); + this.filesWithErrors = new Set(); + this.setupServer(); + if (this.options.liveReload) { + const watcher = chokidar.watch([], { + ignored: /(^|[\/\\])\../, + persistent: true, + ignoreInitial: true, + }); + + setTimeout(() => { + watcher.add(this.options.srcDir); + this.setupWatcher(watcher); + }, 1000); + } + } + + log(tag, message, color) { + const colorCodes = { + blue: "\x1b[34m", + green: "\x1b[32m", + red: "\x1b[31m", + orange: "\x1b[33m", + lightGray: "\x1b[90m", + reset: "\x1b[0m", + bgBlue: "\x1b[44m", + }; + console.log( + `${colorCodes.bgBlue} BP ${colorCodes.reset} ${ + colorCodes[color] || "" + }${message}${colorCodes.reset}` + ); + } + + async buildAll() { + this.log("INFO", "Building all Blueprint files...", "lightGray"); + if (fs.existsSync(this.options.outDir)) { + fs.rmSync(this.options.outDir, { recursive: true }); + } + fs.mkdirSync(this.options.outDir, { recursive: true }); + + const files = this.getAllFiles(this.options.srcDir); + let success = true; + const errors = []; + const startTime = Date.now(); + for (const file of files) { + const relativePath = path.relative(this.options.srcDir, file); + const outputPath = path.join( + this.options.outDir, + relativePath.replace(/\.bp$/, ".html") + ); + this.ensureDirectoryExistence(outputPath); + + const builder = new BlueprintBuilder({ minified: this.options.minified }); + const result = builder.build(file, path.dirname(outputPath)); + if (!result.success) { + success = false; + errors.push({ file, errors: result.errors }); + } + } + const totalTime = Date.now() - startTime; + if (success) { + this.log( + "SUCCESS", + `All files built successfully in ${totalTime}ms!`, + "green" + ); + } else { + this.log("ERROR", "Build failed with errors:", "red"); + errors.forEach(({ file, errors }) => { + this.log("ERROR", `File: ${file}`, "red"); + errors.forEach((err) => { + this.log( + "ERROR", + `${err.type} at line ${err.line}, column ${err.column}: ${err.message}`, + "red" + ); + }); + }); + process.exit(1); + } + } + + ensureDirectoryExistence(filePath) { + const dirname = path.dirname(filePath); + if (fs.existsSync(dirname)) { + return true; + } + this.ensureDirectoryExistence(dirname); + fs.mkdirSync(dirname); + } + + getAllFiles(dirPath, arrayOfFiles) { + const files = fs.readdirSync(dirPath); + + arrayOfFiles = arrayOfFiles || []; + + files.forEach((file) => { + if (fs.statSync(path.join(dirPath, file)).isDirectory()) { + arrayOfFiles = this.getAllFiles(path.join(dirPath, file), arrayOfFiles); + } else if (file.endsWith(".bp")) { + arrayOfFiles.push(path.join(dirPath, file)); + } + }); + + return arrayOfFiles; + } + + setupServer() { + this.app.use((req, res, next) => { + const isHtmlRequest = + req.path.endsWith(".html") || !path.extname(req.path); + + if (this.options.liveReload && isHtmlRequest) { + const htmlPath = req.path.endsWith(".html") + ? path.join(this.options.outDir, req.path) + : path.join(this.options.outDir, req.path + ".html"); + + fs.readFile(htmlPath, "utf8", (err, data) => { + if (err) return next(); + let html = data; + const script = ` + + `; + html = html.replace("", script + ""); + res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + res.setHeader("Pragma", "no-cache"); + res.setHeader("Expires", "0"); + return res.send(html); + }); + } else { + next(); + } + }); + + this.app.use(express.static(this.options.outDir)); + + this.app.get("*", (req, res, next) => { + if (path.extname(req.path)) return next(); + + const htmlPath = path.join(this.options.outDir, req.path + ".html"); + if (fs.existsSync(htmlPath)) { + res.sendFile(htmlPath); + } else if (req.path === "/") { + const pages = fs + .readdirSync(this.options.outDir) + .filter((f) => f.endsWith(".html")) + .map((f) => f.replace(".html", "")); + res.send(` + + + Blueprint Pages + + + +

Blueprint Pages

+
    + ${pages + .map((page) => `
  • ${page}
  • `) + .join("")} +
+ + + `); + } else { + next(); + } + }); + + if (this.options.liveReload) { + this.app.ws("/live-reload", (ws, req) => { + ws.on("message", (msg) => { + try { + const data = JSON.parse(msg); + if (data.type === "register" && data.page) { + this.clients.set(ws, data.page); + } + } catch (error) {} + }); + + ws.on("close", () => { + this.clients.delete(ws); + }); + + ws.on("error", (error) => { + this.log("ERROR", "WebSocket error:", "red"); + this.clients.delete(ws); + }); + }); + } + } + + setupWatcher(watcher) { + watcher.on("change", async (filepath) => { + if (filepath.endsWith(".bp")) { + this.log("INFO", `File ${filepath} has been changed`, "blue"); + try { + const builder = new BlueprintBuilder({ + minified: this.options.minified, + debug: this.options.debug, + }); + const relativePath = path.relative(this.options.srcDir, filepath); + const outputPath = path.join( + this.options.outDir, + relativePath.replace(/\.bp$/, ".html") + ); + this.ensureDirectoryExistence(outputPath); + const result = builder.build(filepath, path.dirname(outputPath)); + + if (result.success) { + this.log("SUCCESS", "Rebuilt successfully", "green"); + + this.filesWithErrors.delete(filepath); + + const htmlFile = relativePath.replace(/\.bp$/, ".html"); + const htmlPath = path.join(this.options.outDir, htmlFile); + + try { + const newContent = fs.readFileSync(htmlPath, "utf8"); + + for (const [client, page] of this.clients.entries()) { + if ( + page === htmlFile.replace(/\\/g, "/") && + client.readyState === 1 + ) { + try { + client.send( + JSON.stringify({ + type: "reload", + content: newContent, + }) + ); + } catch (error) { + this.log("ERROR", "Error sending content:", "red"); + this.clients.delete(client); + } + } + } + } catch (error) { + this.log("ERROR", "Error reading new content:", "red"); + } + } else { + this.filesWithErrors.add(filepath); + this.log("ERROR", `Build failed: ${result.errors.map(e => e.message).join(", ")}`, "red"); + this.log("INFO", "Waiting for next file change...", "orange"); + + for (const [client, page] of this.clients.entries()) { + const htmlFile = relativePath.replace(/\.bp$/, ".html"); + if ( + page === htmlFile.replace(/\\/g, "/") && + client.readyState === 1 + ) { + try { + client.send( + JSON.stringify({ + type: "buildError", + errors: result.errors, + }) + ); + } catch (error) { + this.log("ERROR", "Error sending error notification:", "red"); + this.clients.delete(client); + } + } + } + } + } catch (error) { + this.log("ERROR", "Unexpected error during build:", "red"); + this.filesWithErrors.add(filepath); + } + } + }); + + watcher.on("add", async (filepath) => { + if (filepath.endsWith(".bp")) { + this.log("INFO", `New file detected: ${filepath}`, "lightGray"); + try { + const builder = new BlueprintBuilder({ + minified: this.options.minified, + debug: this.options.debug, + }); + const relativePath = path.relative(this.options.srcDir, filepath); + const outputPath = path.join( + this.options.outDir, + relativePath.replace(/\.bp$/, ".html") + ); + this.ensureDirectoryExistence(outputPath); + const result = builder.build(filepath, path.dirname(outputPath)); + if (result.success) { + this.log("SUCCESS", "Built new file successfully", "green"); + this.filesWithErrors.delete(filepath); + } else { + this.filesWithErrors.add(filepath); + this.log("ERROR", "Build failed for new file", "red"); + } + } catch (error) { + this.log("ERROR", "Unexpected error building new file:", "red"); + this.filesWithErrors.add(filepath); + } + } + }); + + watcher.on("unlink", async (filepath) => { + if (filepath.endsWith(".bp")) { + this.log("INFO", `File ${filepath} removed`, "orange"); + const relativePath = path.relative(this.options.srcDir, filepath); + const htmlPath = path.join( + this.options.outDir, + relativePath.replace(/\.bp$/, ".html") + ); + const cssPath = path.join( + this.options.outDir, + relativePath.replace(/\.bp$/, ".css") + ); + if (fs.existsSync(htmlPath)) { + fs.unlinkSync(htmlPath); + } + if (fs.existsSync(cssPath)) { + fs.unlinkSync(cssPath); + } + const dirPath = path.dirname(htmlPath); + if (fs.existsSync(dirPath) && fs.readdirSync(dirPath).length === 0) { + fs.rmdirSync(dirPath); + } + } + }); + } + + async start() { + await this.buildAll(); + this.app.listen(this.options.port, () => { + this.log( + "INFO", + `Blueprint dev server running at http://localhost:${this.options.port}`, + "green" + ); + this.log( + "INFO", + `Mode: ${this.options.minified ? "Minified" : "Human Readable"}`, + "lightGray" + ); + if (this.options.liveReload) { + this.log( + "INFO", + "Live reload enabled - watching for changes...", + "lightGray" + ); + } + }); + } +} + +module.exports = BlueprintServer; diff --git a/package.json b/package.json new file mode 100644 index 0000000..98e9ac1 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "blueprint", + "version": "1.0.0", + "description": "A modern UI component compiler with live reload support", + "main": "lib/BlueprintBuilder.js", + "scripts": { + "build": "node lib/build.js --debug && echo \"Built successfully! You can now deploy the dist folder.\" && exit 0", + "dev": "node lib/dev-server.js --live" + }, + "dependencies": { + "axios": "^1.7.9", + "chokidar": "^3.5.3", + "express": "^4.18.2", + "express-ws": "^5.0.2", + "ws": "^8.18.0" + }, + "devDependencies": { + "node-fetch": "^3.3.2" + }, + "keywords": [ + "ui", + "compiler", + "live-reload", + "development" + ], + "author": "", + "license": "MIT" +} diff --git a/src/index.bp b/src/index.bp new file mode 100644 index 0000000..4c5cd79 --- /dev/null +++ b/src/index.bp @@ -0,0 +1,15 @@ + page(favicon:"/favicon.ico") { + title { "Blueprint - Modern Web UI Language" } + description { "It works!" } + keywords { "blueprint, language, web, ui, modern" } + author { "Epilogue Team" } +} + + +section(wide, centered) { + vertical(centered,wide) { + title(huge) { "It works!" } + text(subtle, large) { "Start using Blueprint at src/" } + text(small) { "Find examples at examples/" } + } +}

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 z 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