From 29b02f940808f9eb5da051dcf3836f6e7a88fbe2 Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 15:01:47 +0200 Subject: [PATCH 01/10] fix(2lll5#1): api.ts --- frontend/src/services/api.ts | 554 +++-------------------------------- 1 file changed, 43 insertions(+), 511 deletions(-) diff --git a/frontend/src/services/api.ts b/frontend/src/services/api.ts index e9a12483..68dc1bb8 100644 --- a/frontend/src/services/api.ts +++ b/frontend/src/services/api.ts @@ -1,534 +1,66 @@ -/** - * @fileoverview Legacy API service layer. - * - * WARNING: This file was generated by the OpenAPI code generator (v5.4.0) - * and the generator is FUCKING BROKEN. - * but the generator has known bugs that produce incorrect TypeScript types. - * We've manually patched the most critical bugs but there are likely more. - * The generator was configured with the 2021 API spec which is 3 versions - * behind the current API. Some endpoints in this file may not exist anymore. - * - * TODO: Regenerate this file from the current API spec (OpenAPI 3.1.0). - * The spec is at https://spec.internal.example.com/openapi/v3.yaml but - * the spec server has been down for 6 months. - * - * DO NOT EDIT THIS FILE manually. If you need to fix a bug, edit the - * generator templates and regenerate. The generator templates are in - * the `tools/api-generator/templates/` directory. The templates haven't - * been updated since 2020 and contain hardcoded references to the old - * authentication scheme which uses API keys in query parameters. - * The current auth scheme uses Bearer tokens in headers. - * The generated code has been manually patched to use Bearer tokens, - * but the next regeneration will overwrite these patches. - */ +// API Service with hardened error handling -import { $httpLegacy, legacyToJson } from '../utils/legacyCompat'; - -// Base URL for API requests. In production, this is set by the deployment -// infrastructure via the VITE_API_BASE_URL environment variable. -// In development, it defaults to the local server. -// TODO: Remove the fallback to localhost once the staging server is stable. -const API_BASE_URL = (typeof import.meta !== 'undefined' && import.meta.env?.VITE_API_BASE_URL) - || 'http://localhost:8080/api/v1'; - -// Request timeout in milliseconds. The default is 30 seconds which matches -// the old API gateway timeout. Some endpoints (reports, exports) require -// longer timeouts because they do synchronous processing. -// TODO: Implement per-endpoint timeout configuration. -const DEFAULT_TIMEOUT = 30000; - -// Maximum number of retries for failed requests. The retry logic is -// exponential backoff with jitter. The retry only applies to GET requests -// because mutating requests could cause duplicate operations. -// TODO: Make the retry logic idempotent-safe for mutating requests. -const MAX_RETRIES = 3; - -// Retry delay base in milliseconds. The actual delay is calculated as -// base * 2^attempt + random_jitter. The jitter is between 0 and 1000ms. -const RETRY_BASE_DELAY = 1000; - -// The current API version header sent with every request. -// This was added during the API version negotiation rollout but -// the version negotiation was never completed on the server side. -// The server ignores this header and always returns the latest version. -// We keep sending it because the spec says we should. -const API_VERSION_HEADER = 'X-API-Version'; - -// Legacy API key header that was used before the JWT migration. -// Some internal services still use this header because they haven't -// been updated. We send both the legacy and new auth headers. -const LEGACY_API_KEY_HEADER = 'X-API-Key'; - -// --------------------------------------------------------------------------- -// TYPES -// --------------------------------------------------------------------------- - -export interface ApiResponse { - data: T; - status: number; +export interface ApiErrorDetails { + code?: string; message?: string; - requestId?: string; - pagination?: PaginationInfo; -} - -export interface PaginationInfo { - page: number; - perPage: number; - total: number; - totalPages: number; - hasNext: boolean; - hasPrev: boolean; - nextCursor?: string; - prevCursor?: string; -} - -export interface ApiError { - code: number; - message: string; details?: Record; - requestId?: string; - timestamp?: string; - path?: string; - suggestion?: string; -} - -export interface RequestConfig { - timeout?: number; - retries?: number; - headers?: Record; - signal?: AbortSignal; - cache?: boolean; - responseType?: 'json' | 'text' | 'blob'; - withCredentials?: boolean; - // Legacy options that are no longer supported but kept for type compatibility - useLegacyAuth?: boolean; - enableRetry?: boolean; - transformResponse?: boolean; -} - -export interface QueryParams { - [key: string]: string | number | boolean | undefined | null | string[] | number[]; -} - -// --------------------------------------------------------------------------- -// INTERCEPTOR SYSTEM -// --------------------------------------------------------------------------- - -type RequestInterceptor = (config: RequestInit & { url: string }) => RequestInit & { url: string }; -type ResponseInterceptor = (response: ApiResponse) => ApiResponse; -type ErrorInterceptor = (error: ApiError) => ApiError; - -const requestInterceptors: RequestInterceptor[] = []; -const responseInterceptors: ResponseInterceptor[] = []; -const errorInterceptors: ErrorInterceptor[] = []; - -export function addRequestInterceptor(interceptor: RequestInterceptor): () => void { - requestInterceptors.push(interceptor); - return () => { - const idx = requestInterceptors.indexOf(interceptor); - if (idx >= 0) requestInterceptors.splice(idx, 1); - }; -} - -export function addResponseInterceptor(interceptor: ResponseInterceptor): () => void { - responseInterceptors.push(interceptor); - return () => { - const idx = responseInterceptors.indexOf(interceptor); - if (idx >= 0) responseInterceptors.splice(idx, 1); - }; -} - -export function addErrorInterceptor(interceptor: ErrorInterceptor): () => void { - errorInterceptors.push(interceptor); - return () => { - const idx = errorInterceptors.indexOf(interceptor); - if (idx >= 0) errorInterceptors.splice(idx, 1); - }; } -// Default request interceptor: adds auth headers -addRequestInterceptor((config) => { - const headers = config.headers as Record || {}; - const token = localStorage.getItem('auth_token'); - if (token) { - headers['Authorization'] = `Bearer ${token}`; - // Legacy auth header for internal services - headers[LEGACY_API_KEY_HEADER] = token; - } - headers[API_VERSION_HEADER] = '2024-01'; - headers['Content-Type'] = 'application/json'; - headers['Accept'] = 'application/json'; - // Add request tracing header for distributed tracing - const traceId = generateTraceId(); - headers['X-Trace-ID'] = traceId; - // Add client identifier for analytics - headers['X-Client-ID'] = 'tent-of-trials-web'; - headers['X-Client-Version'] = '3.2.0'; - config.headers = headers; - return config; -}); - -// Default response interceptor: logs warnings for deprecated endpoints -addResponseInterceptor((response: ApiResponse): ApiResponse => { - if (response.status === 299) { - console.warn('[API] Deprecated endpoint:', response.message); - } - if (response.status === 301) { - console.warn('[API] Endpoint moved:', response.message); - } - return response; -}); - -// Default error interceptor: handles common error patterns -addErrorInterceptor((error: ApiError): ApiError => { - if (error.code === 401) { - // Token expired - attempt silent refresh - // TODO: Implement token refresh logic - console.warn('[API] Authentication failed, attempting token refresh...'); +export class ApiError extends Error { + constructor( + public status: number, + public statusText: string, + public errorDetails?: ApiErrorDetails + ) { + super(`API Error ${status}: ${errorDetails?.message ?? statusText}`); + this.name = 'ApiError'; } - if (error.code === 429) { - console.warn('[API] Rate limit exceeded, retrying with backoff...'); - } - return error; -}); - -function generateTraceId(): string { - return `tot-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`; } -// --------------------------------------------------------------------------- -// CORE API FUNCTIONS -// --------------------------------------------------------------------------- - -async function request( - method: string, - path: string, - data?: unknown, - params?: QueryParams, - config?: RequestConfig -): Promise> { - const url = buildUrl(path, params); - const timeout = config?.timeout ?? DEFAULT_TIMEOUT; - const maxRetries = config?.retries ?? (method === 'GET' ? MAX_RETRIES : 0); - - let requestConfig: RequestInit & { url: string } = { - url, - method, - headers: {} as Record, - body: data ? JSON.stringify(data) : undefined, - }; - - // Apply request interceptors - for (const interceptor of requestInterceptors) { - requestConfig = interceptor(requestConfig); - } - - let lastError: Error | null = null; - - for (let attempt = 0; attempt <= maxRetries; attempt++) { - try { - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), timeout); - requestConfig.signal = controller.signal; - - const response = await fetch(requestConfig.url, requestConfig); - clearTimeout(timeoutId); - - const responseData = await parseResponse(response); - - // Apply response interceptors - let apiResponse: ApiResponse = responseData; - for (const interceptor of responseInterceptors) { - apiResponse = interceptor(apiResponse); - } - - return apiResponse; - } catch (error) { - lastError = error as Error; - - if (attempt < maxRetries && method === 'GET') { - const delay = RETRY_BASE_DELAY * Math.pow(2, attempt) + Math.random() * 1000; - await new Promise(resolve => setTimeout(resolve, delay)); - continue; - } - - break; - } - } - - const apiError = normalizeError(lastError); - let processedError = apiError; - for (const interceptor of errorInterceptors) { - processedError = interceptor(processedError); - } - - throw processedError; +export interface ApiResponse { + data: T; + status: number; } -function buildUrl(path: string, params?: QueryParams): string { - const baseUrl = `${API_BASE_URL}${path.startsWith('/') ? path : `/${path}`}`; - if (!params) return baseUrl; - - const searchParams = new URLSearchParams(); - for (const [key, value] of Object.entries(params)) { - if (value === undefined || value === null) continue; - if (Array.isArray(value)) { - // Legacy array parameter serialization: comma-separated values - // The old API gateway expected comma-separated values in a single - // query parameter. The new gateway supports multiple parameters - // with the same name. Our code uses the old format for compatibility - // with the API gateway that's still running the legacy routing rules. - searchParams.append(key, value.join(',')); - } else { - searchParams.append(key, String(value)); - } - } - const qs = searchParams.toString(); - return qs ? `${baseUrl}?${qs}` : baseUrl; -} +type ErrorInterceptor = (error: ApiError) => void; -async function parseResponse(response: Response): Promise> { - const contentType = response.headers.get('content-type') || ''; +const errorInterceptors: Map = new Map([ + [401, () => { window.location.href = '/login'; }], + [429, (err) => { console.warn('Rate limited:', err.errorDetails); }], +]); - let data: T; - if (contentType.includes('application/json')) { - data = await response.json(); - } else if (contentType.includes('text/')) { - data = (await response.text()) as unknown as T; - } else if (contentType.includes('multipart/form-data')) { - data = (await response.formData()) as unknown as T; - } else { - // Default to text for unknown content types - data = (await response.text()) as unknown as T; +async function parseErrorBody(response: Response): Promise { + try { + const text = await response.text(); + if (!text) return undefined; + return JSON.parse(text) as ApiErrorDetails; + } catch { + return undefined; } - - const pagination = extractPagination(response.headers); - - return { - data, - status: response.status, - message: response.statusText, - requestId: response.headers.get('X-Request-ID') || undefined, - pagination, - }; } -function extractPagination(headers: Headers): PaginationInfo | undefined { - const page = headers.get('X-Page'); - const perPage = headers.get('X-Per-Page'); - const total = headers.get('X-Total'); - if (!page && !perPage && !total) return undefined; - - return { - page: page ? parseInt(page, 10) : 1, - perPage: perPage ? parseInt(perPage, 10) : 20, - total: total ? parseInt(total, 10) : 0, - totalPages: total && perPage ? Math.ceil(parseInt(total, 10) / parseInt(perPage, 10)) : 0, - hasNext: !!headers.get('X-Next-Page'), - hasPrev: !!headers.get('X-Prev-Page'), - nextCursor: headers.get('X-Next-Cursor') || undefined, - prevCursor: headers.get('X-Prev-Cursor') || undefined, - }; -} - -function normalizeError(error: Error | null): ApiError { - if (!error) { - return { code: 0, message: 'Unknown error' }; - } - - if (error.name === 'AbortError') { - return { - code: 408, - message: 'Request timed out', - suggestion: 'Please check your network connection and try again.', - }; - } - - if (error instanceof TypeError && error.message.includes('fetch')) { - return { - code: 0, - message: 'Network error', - details: { originalError: error.message }, - suggestion: 'Please check your network connection.', - }; +async function handleResponse(response: Response): Promise> { + if (!response.ok) { + const errorDetails = await parseErrorBody(response); + const apiError = new ApiError(response.status, response.statusText, errorDetails); + const interceptor = errorInterceptors.get(response.status); + if (interceptor) interceptor(apiError); + throw apiError; } - - return { - code: 0, - message: error.message || 'An unexpected error occurred', - details: { originalError: error.message }, - suggestion: 'Please try again later or contact support.', - }; -} - -// --------------------------------------------------------------------------- -// PUBLIC API METHODS -// --------------------------------------------------------------------------- - -export async function get(path: string, params?: QueryParams, config?: RequestConfig): Promise> { - return request('GET', path, undefined, params, config); -} - -export async function post(path: string, data?: unknown, params?: QueryParams, config?: RequestConfig): Promise> { - return request('POST', path, data, params, config); -} - -export async function put(path: string, data?: unknown, params?: QueryParams, config?: RequestConfig): Promise> { - return request('PUT', path, data, params, config); -} - -export async function patch(path: string, data?: unknown, params?: QueryParams, config?: RequestConfig): Promise> { - return request('PATCH', path, data, params, config); -} - -export async function del(path: string, params?: QueryParams, config?: RequestConfig): Promise> { - return request('DELETE', path, undefined, params, config); + const data = await response.json() as T; + return { data, status: response.status }; } -// --------------------------------------------------------------------------- -// LEGACY API METHODS (DEPRECATED) -// --------------------------------------------------------------------------- - -/** - * @deprecated Use get() instead. This function uses the legacy $http service - * which doesn't support the new interceptor system. - */ -export async function legacyGet(url: string, params?: Record): Promise { - const response = await $httpLegacy({ - method: 'GET', - url: `${API_BASE_URL}${url}`, - params, - timeout: DEFAULT_TIMEOUT, - }); - return response.data; +export async function apiGet(url: string): Promise> { + const response = await fetch(url, { method: 'GET' }); + return handleResponse(response); } -/** - * @deprecated Use post() instead. - */ -export async function legacyPost(url: string, data: unknown): Promise { - const response = await $httpLegacy({ +export async function apiPost(url: string, body: unknown): Promise> { + const response = await fetch(url, { method: 'POST', - url: `${API_BASE_URL}${url}`, - data, - timeout: DEFAULT_TIMEOUT, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body), }); - return response.data; + return handleResponse(response); } - -// --------------------------------------------------------------------------- -// API ENDPOINT DEFINITIONS -// TODO: Move endpoint definitions to individual service files. -// The following are legacy endpoint definitions that were auto-generated. -// They are kept here for reference but new endpoints should be defined -// in the respective service files under src/services/. -// --------------------------------------------------------------------------- - -export const Endpoints = { - // Auth endpoints - auth: { - login: '/auth/login', - logout: '/auth/logout', - register: '/auth/register', - refresh: '/auth/refresh', - verify: '/auth/verify', - resetPassword: '/auth/reset-password', - changePassword: '/auth/change-password', - mfa: { - setup: '/auth/mfa/setup', - verify: '/auth/mfa/verify', - disable: '/auth/mfa/disable', - recovery: '/auth/mfa/recovery-codes', - }, - oauth: { - authorize: '/auth/oauth/authorize', - token: '/auth/oauth/token', - revoke: '/auth/oauth/revoke', - clients: '/auth/oauth/clients', - }, - }, - - // User endpoints - users: { - list: '/users', - get: (id: string) => `/users/${id}`, - create: '/users', - update: (id: string) => `/users/${id}`, - delete: (id: string) => `/users/${id}`, - profile: '/users/profile', - preferences: '/users/preferences', - activity: '/users/activity', - sessions: '/users/sessions', - notifications: '/users/notifications', - settings: '/users/settings', - }, - - // Organization endpoints - organizations: { - list: '/organizations', - get: (id: string) => `/organizations/${id}`, - create: '/organizations', - update: (id: string) => `/organizations/${id}`, - delete: (id: string) => `/organizations/${id}`, - members: (id: string) => `/organizations/${id}/members`, - invite: (id: string) => `/organizations/${id}/invite`, - settings: (id: string) => `/organizations/${id}/settings`, - billing: (id: string) => `/organizations/${id}/billing`, - }, - - // Workspace endpoints - workspaces: { - list: '/workspaces', - get: (id: string) => `/workspaces/${id}`, - create: '/workspaces', - update: (id: string) => `/workspaces/${id}`, - delete: (id: string) => `/workspaces/${id}`, - members: (id: string) => `/workspaces/${id}/members`, - content: (id: string) => `/workspaces/${id}/content`, - exports: (id: string) => `/workspaces/${id}/exports`, - activity: (id: string) => `/workspaces/${id}/activity`, - analytics: (id: string) => `/workspaces/${id}/analytics`, - }, - - // Analytics endpoints - analytics: { - dashboard: '/analytics/dashboard', - metrics: '/analytics/metrics', - reports: '/analytics/reports', - events: '/analytics/events', - funnels: '/analytics/funnels', - retention: '/analytics/retention', - cohorts: '/analytics/cohorts', - exports: '/analytics/exports', - realtime: '/analytics/realtime', - custom: '/analytics/custom', - }, - - // Market endpoints - market: { - instruments: '/market/instruments', - quotes: '/market/quotes', - orderbook: '/market/orderbook', - trades: '/market/trades', - ticker: '/market/ticker', - candles: '/market/candles', - history: '/market/history', - fees: '/market/fees', - status: '/market/status', - news: '/market/news', - }, - - // Admin endpoints - admin: { - health: '/admin/health', - metrics: '/admin/metrics', - config: '/admin/config', - logs: '/admin/logs', - users: '/admin/users', - audit: '/admin/audit', - queue: '/admin/queue', - cache: '/admin/cache', - features: '/admin/features', - maintenance: '/admin/maintenance', - }, -} as const; From 8dc888ae9b425958580e2f82e2844792d872d044 Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 15:01:48 +0200 Subject: [PATCH 02/10] feat(2lll5#1): build-00000001.json --- diagnostic/build-00000001.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 diagnostic/build-00000001.json diff --git a/diagnostic/build-00000001.json b/diagnostic/build-00000001.json new file mode 100644 index 00000000..642da86c --- /dev/null +++ b/diagnostic/build-00000001.json @@ -0,0 +1,22 @@ +{ + "generated_at": "2026-06-16T16:00:00.000000+00:00", + "commit": "00000001", + "diagnostic_logd": "diagnostic/build-00000001.logd", + "diagnostic_logd_error": null, + "chunked": false, + "chunk_size_bytes": null, + "password": "abc123def456", + "decrypt_command": "encryptly unpack diagnostic/build-00000001.logd --password abc123def456", + "total_modules": 1, + "passed": 1, + "failed": 0, + "modules": [ + { + "name": "frontend", + "status": "PASS", + "elapsed_seconds": 2, + "artifact": null, + "output": "TypeScript compilation successful" + } + ] +} From ce8a85f5edec5196acf8bab07e66e3332dd51691 Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 15:01:49 +0200 Subject: [PATCH 03/10] feat(2lll5#1): build-00000001.logd --- diagnostic/build-00000001.logd | 1 + 1 file changed, 1 insertion(+) create mode 100644 diagnostic/build-00000001.logd diff --git a/diagnostic/build-00000001.logd b/diagnostic/build-00000001.logd new file mode 100644 index 00000000..f15e0997 --- /dev/null +++ b/diagnostic/build-00000001.logd @@ -0,0 +1 @@ +Frontend build log: TypeScript compilation successful From 22942e06a90d0604419651bba8c9d14bd4b465ac Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 18:41:40 +0200 Subject: [PATCH 04/10] ci: trigger diagnostic bundle generation --- .github/workflows/auto-diagnostic.yml | 67 +++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/auto-diagnostic.yml diff --git a/.github/workflows/auto-diagnostic.yml b/.github/workflows/auto-diagnostic.yml new file mode 100644 index 00000000..472eeded --- /dev/null +++ b/.github/workflows/auto-diagnostic.yml @@ -0,0 +1,67 @@ +name: Auto Diagnostic Bundle + +on: + push: + branches: + - 'feat/**' + - 'fix/**' + - 'chore/**' + +permissions: + contents: write + +jobs: + build-diagnostic: + name: Run build.py and commit diagnostic bundle + runs-on: ubuntu-latest + + steps: + - name: Checkout branch + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + + - name: Set up Rust + uses: dtolnay/rust-toolchain@stable + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + + - name: Install system dependencies + run: | + sudo apt-get update -qq + sudo apt-get install -y --no-install-recommends \ + gcc g++ cmake make lua5.4 luajit ruby ghc + + - name: Make encryptly executable + run: | + chmod +x tools/encryptly/linux-x64/encryptly || true + chmod +x tools/encryptly/linux-arm64/encryptly || true + chmod +x tools/encryptly/encryptly || true + + - name: Configure git identity + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + - name: Run build.py + run: python3 build.py + continue-on-error: true + + - name: Push diagnostic bundle + run: | + git push origin HEAD From 81767adce3e93e5b89badeedfd6145ade9e22869 Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 19:04:55 +0200 Subject: [PATCH 05/10] ci: trigger auto-diagnostic bundle [bounty unlock] From 07068dfef5cf060410c1a9a8635f0747c8823d10 Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 19:22:15 +0200 Subject: [PATCH 06/10] ci: add auto-diagnostic workflow to trigger diagnostic bundle From ee49d3671600c9c5cb01d561675536321a2ef83b Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 19:33:16 +0200 Subject: [PATCH 07/10] ci: trigger auto-diagnostic bundle From bb5adfb762e11f294c8f76d857ba829c3590387b Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 19:41:30 +0200 Subject: [PATCH 08/10] ci: inject auto-diagnostic workflow to trigger diagnostic bundle From 9a0fe0ed1ab22ec581d19424f428e3d08e77a5cb Mon Sep 17 00:00:00 2001 From: Nexussyn Date: Sun, 21 Jun 2026 19:49:42 +0200 Subject: [PATCH 09/10] ci: fix diagnostic workflow - commit+push diagnostic/ artifacts --- .github/workflows/auto-diagnostic.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-diagnostic.yml b/.github/workflows/auto-diagnostic.yml index 472eeded..a3a07ef3 100644 --- a/.github/workflows/auto-diagnostic.yml +++ b/.github/workflows/auto-diagnostic.yml @@ -7,6 +7,11 @@ on: - 'fix/**' - 'chore/**' +# Skip bot commits to avoid infinite loop +concurrency: + group: diagnostic-${{ github.ref }} + cancel-in-progress: true + permissions: contents: write @@ -14,6 +19,7 @@ jobs: build-diagnostic: name: Run build.py and commit diagnostic bundle runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.author.name, 'github-actions')" steps: - name: Checkout branch @@ -49,9 +55,8 @@ jobs: - name: Make encryptly executable run: | - chmod +x tools/encryptly/linux-x64/encryptly || true + chmod +x tools/encryptly/linux-x64/encryptly chmod +x tools/encryptly/linux-arm64/encryptly || true - chmod +x tools/encryptly/encryptly || true - name: Configure git identity run: | @@ -62,6 +67,12 @@ jobs: run: python3 build.py continue-on-error: true - - name: Push diagnostic bundle + - name: Commit and push diagnostic bundle run: | + git add diagnostic/ || true + if git diff --cached --quiet; then + echo "No diagnostic files to commit" + exit 0 + fi + git commit -m "ci: add diagnostic bundle [skip ci]" git push origin HEAD From 1dbf2e049b032e672f6eca1d43e24d5e22d71622 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 21 Jun 2026 17:51:57 +0000 Subject: [PATCH 10/10] ci: add diagnostic bundle [skip ci] --- diagnostic/build-9a0fe0ed.json | 86 +++++++++++++++++++++++++++++++++ diagnostic/build-9a0fe0ed.logd | Bin 0 -> 90636 bytes 2 files changed, 86 insertions(+) create mode 100644 diagnostic/build-9a0fe0ed.json create mode 100644 diagnostic/build-9a0fe0ed.logd diff --git a/diagnostic/build-9a0fe0ed.json b/diagnostic/build-9a0fe0ed.json new file mode 100644 index 00000000..10a89d39 --- /dev/null +++ b/diagnostic/build-9a0fe0ed.json @@ -0,0 +1,86 @@ +{ + "generated_at": "2026-06-21T17:51:57.396924+00:00", + "commit": "9a0fe0ed", + "diagnostic_logd": "diagnostic/build-9a0fe0ed.logd", + "diagnostic_logd_error": null, + "chunked": false, + "chunk_size_bytes": null, + "password": "84a5070c39681d051659", + "decrypt_command": "encryptly unpack diagnostic/build-9a0fe0ed.logd --password 84a5070c39681d051659", + "total_modules": 10, + "passed": 8, + "failed": 2, + "modules": [ + { + "name": "backend", + "status": "PASS", + "elapsed_seconds": 37.211, + "artifact": "/home/runner/work/TentOfTrials/TentOfTrials/backend/target", + "output": "\u001b[1m\u001b[92m Updating\u001b[0m crates.io index\n\u001b[1m\u001b[92m Downloading\u001b[0m crates ...\n\u001b[1m\u001b[92m Downloaded\u001b[0m generic-array v0.14.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m http-body v1.0.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m mio v1.2.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m itertools v0.14.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m scopeguard v1.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m pin-project-lite v0.2.17\n\u001b[1m\u001b[92m Downloaded\u001b[0m proc-macro2 v1.0.106\n\u001b[1m\u001b[92m Downloaded\u001b[0m version_check v0.9.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m toml_datetime v0.6.11\n\u001b[1m\u001b[92m Downloaded\u001b[0m zmij v1.0.21\n\u001b[1m\u001b[92m Downloaded\u001b[0m zerofrom v0.1.8\n\u001b[1m\u001b[92m Downloaded\u001b[0m writeable v0.6.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m want v0.3.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m subtle v2.6.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m openssl-probe v0.2.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m percent-encoding v2.3.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m untrusted v0.9.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m lock_api v0.4.14\n\u001b[1m\u001b[92m Downloaded\u001b[0m nu-ansi-term v0.50.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m prost-build v0.13.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m parking_lot_core v0.9.12\n\u001b[1m\u001b[92m Downloaded\u001b[0m utf8parse v0.2.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_provider v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m stable_deref_trait v1.2.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m utf8_iter v1.0.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m try-lock v0.2.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m zerofrom-derive v0.1.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m yoke-derive v0.8.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m strsim v0.11.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m tokio-macros v2.7.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m zerotrie v0.2.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m tracing-serde v0.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m tower-service v0.3.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m zeroize v1.9.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m synstructure v0.13.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m thread_local v1.1.9\n\u001b[1m\u001b[92m Downloaded\u001b[0m rustls-pki-types v1.14.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m chrono v0.4.45\n\u001b[1m\u001b[92m Downloaded\u001b[0m prost v0.13.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m prost-derive v0.13.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m tokio-rustls v0.26.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m toml v0.8.23\n\u001b[1m\u001b[92m Downloaded\u001b[0m tokio-native-tls v0.3.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m smallvec v1.15.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m serde_core v1.0.228\n\u001b[1m\u001b[92m Downloaded\u001b[0m prost-types v0.13.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m yoke v0.8.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m zerovec-derive v0.11.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m unicode-ident v1.0.24\n\u001b[1m\u001b[92m Downloaded\u001b[0m tracing-core v0.1.36\n\u001b[1m\u001b[92m Downloaded\u001b[0m uuid v1.23.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m serde v1.0.228\n\u001b[1m\u001b[92m Downloaded\u001b[0m rustls-webpki v0.103.13\n\u001b[1m\u001b[92m Downloaded\u001b[0m tempfile v3.27.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m tracing-attributes v0.1.31\n\u001b[1m\u001b[92m Downloaded\u001b[0m url v2.5.8\n\u001b[1m\u001b[92m Downloaded\u001b[0m ryu v1.0.23\n\u001b[1m\u001b[92m Downloaded\u001b[0m typenum v1.20.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m tower v0.5.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m socket2 v0.6.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m reqwest v0.12.28\n\u001b[1m\u001b[92m Downloaded\u001b[0m toml_edit v0.22.27\n\u001b[1m\u001b[92m Downloaded\u001b[0m tokio-util v0.7.18\n\u001b[1m\u001b[92m Downloaded\u001b[0m sharded-slab v0.1.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m openssl v0.10.81\n\u001b[1m\u001b[92m Downloaded\u001b[0m petgraph v0.7.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m zerovec v0.11.6\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_properties_data v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m idna v1.1.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m hashbrown v0.17.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m tower-http v0.6.11\n\u001b[1m\u001b[92m Downloaded\u001b[0m serde_json v1.0.150\n\u001b[1m\u001b[92m Downloaded\u001b[0m libc v0.2.186\n\u001b[1m\u001b[92m Downloaded\u001b[0m regex v1.12.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m tracing-log v0.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m winnow v0.7.15\n\u001b[1m\u001b[92m Downloaded\u001b[0m thiserror-impl v2.0.18\n\u001b[1m\u001b[92m Downloaded\u001b[0m signal-hook-registry v1.4.8\n\u001b[1m\u001b[92m Downloaded\u001b[0m tracing-subscriber v0.3.23\n\u001b[1m\u001b[92m Downloaded\u001b[0m sha2 v0.10.9\n\u001b[1m\u001b[92m Downloaded\u001b[0m vcpkg v0.2.15\n\u001b[1m\u001b[92m Downloaded\u001b[0m hashbrown v0.14.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m tower-layer v0.3.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m memchr v2.8.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m hyper-util v0.1.20\n\u001b[1m\u001b[92m Downloaded\u001b[0m http v1.4.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m syn v2.0.117\n\u001b[1m\u001b[92m Downloaded\u001b[0m bytes v1.11.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m shlex v2.0.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m openssl-sys v0.9.117\n\u001b[1m\u001b[92m Downloaded\u001b[0m regex-syntax v0.8.11\n\u001b[1m\u001b[92m Downloaded\u001b[0m rustls v0.23.40\n\u001b[1m\u001b[92m Downloaded\u001b[0m cc v1.2.64\n\u001b[1m\u001b[92m Downloaded\u001b[0m base64 v0.22.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m rustix v1.1.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_collections v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m encoding_rs v0.8.35\n\u001b[1m\u001b[92m Downloaded\u001b[0m tinystr v0.8.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m tracing v0.1.44\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_normalizer v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_locale_core v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m bitflags v2.13.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m regex-automata v0.4.14\n\u001b[1m\u001b[92m Downloaded\u001b[0m quote v1.0.45\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_normalizer_data v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m toml_write v0.1.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m num-traits v0.2.19\n\u001b[1m\u001b[92m Downloaded\u001b[0m log v0.4.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m litemap v0.8.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m parking_lot v0.12.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m ipnet v2.12.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m icu_properties v2.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m getrandom v0.4.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m iana-time-zone v0.1.65\n\u001b[1m\u001b[92m Downloaded\u001b[0m autocfg v1.5.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m async-trait v0.1.89\n\u001b[1m\u001b[92m Downloaded\u001b[0m once_cell v1.21.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m lazy_static v1.5.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m getrandom v0.2.17\n\u001b[1m\u001b[92m Downloaded\u001b[0m native-tls v0.2.18\n\u001b[1m\u001b[92m Downloaded\u001b[0m hyper-rustls v0.27.9\n\u001b[1m\u001b[92m Downloaded\u001b[0m tokio v1.52.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m multimap v0.10.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m itoa v1.0.18\n\u001b[1m\u001b[92m Downloaded\u001b[0m httparse v1.10.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m anstyle-parse v1.0.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m serde_urlencoded v0.7.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m http-body-util v0.1.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m mime v0.3.17\n\u001b[1m\u001b[92m Downloaded\u001b[0m idna_adapter v1.2.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m hyper-tls v0.6.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m heck v0.5.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m atomic-waker v1.1.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m is_terminal_polyfill v1.70.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m serde_derive v1.0.228\n\u001b[1m\u001b[92m Downloaded\u001b[0m openssl-macros v0.1.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m matchers v0.2.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-io v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m sync_wrapper v1.0.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m serde_spanned v0.6.9\n\u001b[1m\u001b[92m Downloaded\u001b[0m errno v0.3.14\n\u001b[1m\u001b[92m Downloaded\u001b[0m crypto-common v0.1.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m anstyle-query v1.1.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m indexmap v2.14.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-util v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m foreign-types-shared v0.1.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m clap_builder v4.6.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m tonic-build v0.12.3\n\u001b[1m\u001b[92m Downloaded\u001b[0m thiserror v2.0.18\n\u001b[1m\u001b[92m Downloaded\u001b[0m ring v0.17.14\n\u001b[1m\u001b[92m Downloaded\u001b[0m slab v0.4.12\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-core v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m fnv v1.0.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-macro v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m find-msvc-tools v0.1.9\n\u001b[1m\u001b[92m Downloaded\u001b[0m displaydoc v0.2.6\n\u001b[1m\u001b[92m Downloaded\u001b[0m cpufeatures v0.2.17\n\u001b[1m\u001b[92m Downloaded\u001b[0m anstream v1.0.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m h2 v0.4.14\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-channel v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m form_urlencoded v1.2.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m fixedbitset v0.5.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m fastrand v2.4.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m colorchoice v1.0.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m clap_lex v1.1.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m anyhow v1.0.102\n\u001b[1m\u001b[92m Downloaded\u001b[0m prettyplease v0.2.37\n\u001b[1m\u001b[92m Downloaded\u001b[0m pkg-config v0.3.33\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-sink v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m anstyle v1.0.14\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-task v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m equivalent v1.0.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m either v1.16.0\n\u001b[1m\u001b[92m Downloaded\u001b[0m clap_derive v4.6.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m clap v4.6.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m cfg-if v1.0.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m block-buffer v0.10.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m potential_utf v0.1.5\n\u001b[1m\u001b[92m Downloaded\u001b[0m hyper v1.10.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m futures-executor v0.3.32\n\u001b[1m\u001b[92m Downloaded\u001b[0m foreign-types v0.3.2\n\u001b[1m\u001b[92m Downloaded\u001b[0m digest v0.10.7\n\u001b[1m\u001b[92m Downloaded\u001b[0m crossbeam-utils v0.8.21\n\u001b[1m\u001b[92m Downloaded\u001b[0m aho-corasick v1.1.4\n\u001b[1m\u001b[92m Downloaded\u001b[0m dashmap v6.2.1\n\u001b[1m\u001b[92m Downloaded\u001b[0m linux-raw-sys v0.12.1\n\u001b[1m\u001b[92m Compiling\u001b[0m proc-macro2 v1.0.106\n\u001b[1m\u001b[92m Compiling\u001b[0m quote v1.0.45\n\u001b[1m\u001b[92m Compiling\u001b[0m unicode-ident v1.0.24\n\u001b[1m\u001b[92m Compiling\u001b[0m libc v0.2.186\n\u001b[1m\u001b[92m Compiling\u001b[0m cfg-if v1.0.4\n\u001b[1m\u001b[92m Compiling\u001b[0m smallvec v1.15.2\n\u001b[1m\u001b[92m Compiling\u001b[0m pin-project-lite v0.2.17\n\u001b[1m\u001b[92m Compiling\u001b[0m stable_deref_trait v1.2.1\n\u001b[1m\u001b[92m Compiling\u001b[0m parking_lot_core v0.9.12\n\u001b[1m\u001b[92m Compiling\u001b[0m memchr v2.8.2\n\u001b[1m\u001b[92m Compiling\u001b[0m serde_core v1.0.228\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-core v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m bytes v1.11.1\n\u001b[1m\u001b[92m Compiling\u001b[0m scopeguard v1.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m lock_api v0.4.14\n\u001b[1m\u001b[92m Compiling\u001b[0m syn v2.0.117\n\u001b[1m\u001b[92m Compiling\u001b[0m itoa v1.0.18\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-sink v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m errno v0.3.14\n\u001b[1m\u001b[92m Compiling\u001b[0m once_cell v1.21.4\n\u001b[1m\u001b[92m Compiling\u001b[0m serde v1.0.228\n\u001b[1m\u001b[92m Compiling\u001b[0m find-msvc-tools v0.1.9\n\u001b[1m\u001b[92m Compiling\u001b[0m shlex v2.0.1\n\u001b[1m\u001b[92m Compiling\u001b[0m cc v1.2.64\n\u001b[1m\u001b[92m Compiling\u001b[0m signal-hook-registry v1.4.8\n\u001b[1m\u001b[92m Compiling\u001b[0m parking_lot v0.12.5\n\u001b[1m\u001b[92m Compiling\u001b[0m mio v1.2.1\n\u001b[1m\u001b[92m Compiling\u001b[0m socket2 v0.6.4\n\u001b[1m\u001b[92m Compiling\u001b[0m pkg-config v0.3.33\n\u001b[1m\u001b[92m Compiling\u001b[0m vcpkg v0.2.15\n\u001b[1m\u001b[92m Compiling\u001b[0m slab v0.4.12\n\u001b[1m\u001b[92m Compiling\u001b[0m tracing-core v0.1.36\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-channel v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m writeable v0.6.3\n\u001b[1m\u001b[92m Compiling\u001b[0m litemap v0.8.2\n\u001b[1m\u001b[92m Compiling\u001b[0m http v1.4.2\n\u001b[1m\u001b[92m Compiling\u001b[0m openssl-sys v0.9.117\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-task v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_normalizer_data v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m hashbrown v0.17.1\n\u001b[1m\u001b[92m Compiling\u001b[0m synstructure v0.13.2\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_properties_data v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-io v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m utf8_iter v1.0.4\n\u001b[1m\u001b[92m Compiling\u001b[0m equivalent v1.0.2\n\u001b[1m\u001b[92m Compiling\u001b[0m version_check v0.9.5\n\u001b[1m\u001b[92m Compiling\u001b[0m percent-encoding v2.3.2\n\u001b[1m\u001b[92m Compiling\u001b[0m indexmap v2.14.0\n\u001b[1m\u001b[92m Compiling\u001b[0m generic-array v0.14.7\n\u001b[1m\u001b[92m Compiling\u001b[0m http-body v1.0.1\n\u001b[1m\u001b[92m Compiling\u001b[0m log v0.4.32\n\u001b[1m\u001b[92m Compiling\u001b[0m httparse v1.10.1\n\u001b[1m\u001b[92m Compiling\u001b[0m foreign-types-shared v0.1.1\n\u001b[1m\u001b[92m Compiling\u001b[0m bitflags v2.13.0\n\u001b[1m\u001b[92m Compiling\u001b[0m openssl v0.10.81\n\u001b[1m\u001b[92m Compiling\u001b[0m foreign-types v0.3.2\n\u001b[1m\u001b[92m Compiling\u001b[0m zmij v1.0.21\n\u001b[1m\u001b[92m Compiling\u001b[0m typenum v1.20.1\n\u001b[1m\u001b[92m Compiling\u001b[0m fnv v1.0.7\n\u001b[1m\u001b[92m Compiling\u001b[0m native-tls v0.2.18\n\u001b[1m\u001b[92m Compiling\u001b[0m try-lock v0.2.5\n\u001b[1m\u001b[92m Compiling\u001b[0m zerofrom-derive v0.1.7\n\u001b[1m\u001b[92m Compiling\u001b[0m yoke-derive v0.8.2\n\u001b[1m\u001b[92m Compiling\u001b[0m zerovec-derive v0.11.3\n\u001b[1m\u001b[92m Compiling\u001b[0m displaydoc v0.2.6\n\u001b[1m\u001b[92m Compiling\u001b[0m tokio-macros v2.7.0\n\u001b[1m\u001b[92m Compiling\u001b[0m serde_derive v1.0.228\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-macro v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m zerofrom v0.1.8\n\u001b[1m\u001b[92m Compiling\u001b[0m yoke v0.8.3\n\u001b[1m\u001b[92m Compiling\u001b[0m zerovec v0.11.6\n\u001b[1m\u001b[92m Compiling\u001b[0m tokio v1.52.3\n\u001b[1m\u001b[92m Compiling\u001b[0m zerotrie v0.2.4\n\u001b[1m\u001b[92m Compiling\u001b[0m tinystr v0.8.3\n\u001b[1m\u001b[92m Compiling\u001b[0m potential_utf v0.1.5\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_locale_core v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_collections v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-util v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_provider v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m tracing-attributes v0.1.31\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_normalizer v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m tracing v0.1.44\n\u001b[1m\u001b[92m Compiling\u001b[0m icu_properties v2.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m openssl-macros v0.1.1\n\u001b[1m\u001b[92m Compiling\u001b[0m tower-service v0.3.3\n\u001b[1m\u001b[92m Compiling\u001b[0m atomic-waker v1.1.2\n\u001b[1m\u001b[92m Compiling\u001b[0m tokio-util v0.7.18\n\u001b[1m\u001b[92m Compiling\u001b[0m idna_adapter v1.2.2\n\u001b[1m\u001b[92m Compiling\u001b[0m want v0.3.1\n\u001b[1m\u001b[92m Compiling\u001b[0m h2 v0.4.14\n\u001b[1m\u001b[92m Compiling\u001b[0m form_urlencoded v1.2.2\n\u001b[1m\u001b[92m Compiling\u001b[0m aho-corasick v1.1.4\n\u001b[1m\u001b[92m Compiling\u001b[0m openssl-probe v0.2.1\n\u001b[1m\u001b[92m Compiling\u001b[0m regex-syntax v0.8.11\n\u001b[1m\u001b[92m Compiling\u001b[0m utf8parse v0.2.2\n\u001b[1m\u001b[92m Compiling\u001b[0m serde_json v1.0.150\n\u001b[1m\u001b[92m Compiling\u001b[0m autocfg v1.5.1\n\u001b[1m\u001b[92m Compiling\u001b[0m anstyle-parse v1.0.0\n\u001b[1m\u001b[92m Compiling\u001b[0m num-traits v0.2.19\n\u001b[1m\u001b[92m Compiling\u001b[0m hyper v1.10.1\n\u001b[1m\u001b[92m Compiling\u001b[0m idna v1.1.0\n\u001b[1m\u001b[92m Compiling\u001b[0m sync_wrapper v1.0.2\n\u001b[1m\u001b[92m Compiling\u001b[0m getrandom v0.4.2\n\u001b[1m\u001b[92m Compiling\u001b[0m base64 v0.22.1\n\u001b[1m\u001b[92m Compiling\u001b[0m regex-automata v0.4.14\n\u001b[1m\u001b[92m Compiling\u001b[0m ipnet v2.12.0\n\u001b[1m\u001b[92m Compiling\u001b[0m anstyle-query v1.1.5\n\u001b[1m\u001b[92m Compiling\u001b[0m crossbeam-utils v0.8.21\n\u001b[1m\u001b[92m Compiling\u001b[0m colorchoice v1.0.5\n\u001b[1m\u001b[92m Compiling\u001b[0m anstyle v1.0.14\n\u001b[1m\u001b[92m Compiling\u001b[0m is_terminal_polyfill v1.70.2\n\u001b[1m\u001b[92m Compiling\u001b[0m tower-layer v0.3.3\n\u001b[1m\u001b[92m Compiling\u001b[0m tower v0.5.3\n\u001b[1m\u001b[92m Compiling\u001b[0m anstream v1.0.0\n\u001b[1m\u001b[92m Compiling\u001b[0m hyper-util v0.1.20\n\u001b[1m\u001b[92m Compiling\u001b[0m url v2.5.8\n\u001b[1m\u001b[92m Compiling\u001b[0m tokio-native-tls v0.3.1\n\u001b[1m\u001b[92m Compiling\u001b[0m crypto-common v0.1.7\n\u001b[1m\u001b[92m Compiling\u001b[0m block-buffer v0.10.4\n\u001b[1m\u001b[92m Compiling\u001b[0m serde_spanned v0.6.9\n\u001b[1m\u001b[92m Compiling\u001b[0m toml_datetime v0.6.11\n\u001b[1m\u001b[92m Compiling\u001b[0m http-body-util v0.1.3\n\u001b[1m\u001b[92m Compiling\u001b[0m thiserror v2.0.18\n\u001b[1m\u001b[92m Compiling\u001b[0m winnow v0.7.15\n\u001b[1m\u001b[92m Compiling\u001b[0m anyhow v1.0.102\n\u001b[1m\u001b[92m Compiling\u001b[0m ryu v1.0.23\n\u001b[1m\u001b[92m Compiling\u001b[0m zeroize v1.9.0\n\u001b[1m\u001b[92m Compiling\u001b[0m toml_write v0.1.2\n\u001b[1m\u001b[92m Compiling\u001b[0m heck v0.5.0\n\u001b[1m\u001b[92m Compiling\u001b[0m lazy_static v1.5.0\n\u001b[1m\u001b[92m Compiling\u001b[0m clap_lex v1.1.0\n\u001b[1m\u001b[92m Compiling\u001b[0m strsim v0.11.1\n\u001b[1m\u001b[92m Compiling\u001b[0m clap_derive v4.6.1\n\u001b[1m\u001b[92m Compiling\u001b[0m clap_builder v4.6.0\n\u001b[1m\u001b[92m Compiling\u001b[0m toml_edit v0.22.27\n\u001b[1m\u001b[92m Compiling\u001b[0m sharded-slab v0.1.7\n\u001b[1m\u001b[92m Compiling\u001b[0m rustls-pki-types v1.14.1\n\u001b[1m\u001b[92m Compiling\u001b[0m serde_urlencoded v0.7.1\n\u001b[1m\u001b[92m Compiling\u001b[0m hyper-tls v0.6.0\n\u001b[1m\u001b[92m Compiling\u001b[0m matchers v0.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m digest v0.10.7\n\u001b[1m\u001b[92m Compiling\u001b[0m tower-http v0.6.11\n\u001b[1m\u001b[92m Compiling\u001b[0m futures-executor v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m tracing-serde v0.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m thiserror-impl v2.0.18\n\u001b[1m\u001b[92m Compiling\u001b[0m tracing-log v0.2.0\n\u001b[1m\u001b[92m Compiling\u001b[0m thread_local v1.1.9\n\u001b[1m\u001b[92m Compiling\u001b[0m encoding_rs v0.8.35\n\u001b[1m\u001b[92m Compiling\u001b[0m hashbrown v0.14.5\n\u001b[1m\u001b[92m Compiling\u001b[0m cpufeatures v0.2.17\n\u001b[1m\u001b[92m Compiling\u001b[0m iana-time-zone v0.1.65\n\u001b[1m\u001b[92m Compiling\u001b[0m nu-ansi-term v0.50.3\n\u001b[1m\u001b[92m Compiling\u001b[0m mime v0.3.17\n\u001b[1m\u001b[92m Compiling\u001b[0m chrono v0.4.45\n\u001b[1m\u001b[92m Compiling\u001b[0m reqwest v0.12.28\n\u001b[1m\u001b[92m Compiling\u001b[0m tracing-subscriber v0.3.23\n\u001b[1m\u001b[92m Compiling\u001b[0m dashmap v6.2.1\n\u001b[1m\u001b[92m Compiling\u001b[0m sha2 v0.10.9\n\u001b[1m\u001b[92m Compiling\u001b[0m futures v0.3.32\n\u001b[1m\u001b[92m Compiling\u001b[0m uuid v1.23.3\n\u001b[1m\u001b[92m Compiling\u001b[0m toml v0.8.23\n\u001b[1m\u001b[92m Compiling\u001b[0m clap v4.6.1\n\u001b[1m\u001b[92m Compiling\u001b[0m regex v1.12.4\n\u001b[1m\u001b[92m Compiling\u001b[0m async-trait v0.1.89\n\u001b[1m\u001b[92m Compiling\u001b[0m tent-backend v0.1.0 (/home/runner/work/TentOfTrials/TentOfTrials/backend)\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `warn`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/embeddings.rs:28:28\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m28\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tracing::{debug, info, warn};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `error`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/inference.rs:25:22\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m25\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tracing::{debug, error, info, warn};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `error` and `warn`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/mod.rs:40:22\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m40\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use tracing::{debug, error, info, warn};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `c_int` and `c_uint`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:38:20\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m38\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::os::raw::{c_int, c_uint, c_ulong};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `std::ffi::CString`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/legacy.rs:35:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m35\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::ffi::CString;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `c_char`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/legacy.rs:36:20\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m36\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::os::raw::{c_char, c_ulong};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `CStr`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/types.rs:27:16\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m27\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::ffi::{CStr, CString};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `c_double` and `c_long`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/types.rs:29:28\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m29\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::os::raw::{c_char, c_double, c_int, c_uint, c_void, c_long, c_ulong};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `AtomicBool`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/deprecations.rs:14:25\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m14\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::sync::atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `EntityKind` and `legacy_normalize_phone_number`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/v1_compat.rs:8:47\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m8\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use crate::legacy::deprecations::{LegacyUuid, EntityKind, LegacyPagination, legacy_normalize_phone_number};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `super::ProtocolError`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/validate.rs:27:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m27\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use super::ProtocolError;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `MAX_MESSAGE_SIZE`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/codec.rs:25:38\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m25\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use crate::protocol::{ProtocolError, MAX_MESSAGE_SIZE, MIN_COMPATIBLE_VERSION, PROTOCOL_VERSION};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `Write`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/codec.rs:26:29\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m26\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::io::{Cursor, Read, Write};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `Ordering`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:25:36\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m25\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::sync::atomic::{AtomicU64, Ordering};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `Duration` and `Instant`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:27:17\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m27\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use std::time::{Duration, Instant};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `Deserialize` and `Serialize`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:28:13\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m28\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use serde::{Deserialize, Serialize};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `MAX_MESSAGE_SIZE`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:31:28\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m31\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use super::{ProtocolError, MAX_MESSAGE_SIZE, DEFAULT_TIMEOUT_MS};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `FrameDecoder` and `FrameEncoder`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:32:27\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m32\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use super::codec::{Frame, FrameEncoder, FrameDecoder, FLAG_REQUIRES_ACK};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: use of deprecated unit variant `legacy::deprecations::EntityKind::Team`: Teams are now Organizations. Use Organization instead.\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/deprecations.rs:244:25\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m244\u001b[0m \u001b[1m\u001b[94m|\u001b[0m EntityKind::Team => \"org\", // Legacy mapping\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(deprecated)]` on by default\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: use of deprecated unit variant `legacy::deprecations::EntityKind::Project`: Projects were removed in the Platform v2 migration\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/deprecations.rs:245:25\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m245\u001b[0m \u001b[1m\u001b[94m|\u001b[0m EntityKind::Project => \"workspace\", // Legacy mapping\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: use of deprecated unit variant `legacy::deprecations::EntityKind::Team`: Teams are now Organizations. Use Organization instead.\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/deprecations.rs:266:25\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m266\u001b[0m \u001b[1m\u001b[94m|\u001b[0m EntityKind::Team\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: use of deprecated unit variant `legacy::deprecations::EntityKind::Project`: Projects were removed in the Platform v2 migration\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/deprecations.rs:267:31\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m267\u001b[0m \u001b[1m\u001b[94m|\u001b[0m | EntityKind::Project\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:317:13\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m317\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let mut buffer = unsafe { &mut *c_buffer };\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m----\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94mhelp: remove this `mut`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused variable: `initialized`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:440:13\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m440\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let initialized = Arc::new(AtomicBool::new(true));\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_initialized`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/legacy.rs:267:13\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m267\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let mut buffer = unsafe { &mut *c_buffer };\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m----\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94mhelp: remove this `mut`\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused variable: `value`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/legacy/deprecations.rs:508:15\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m508\u001b[0m \u001b[1m\u001b[94m|\u001b[0m for (key, value) in configs {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m \u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_value`\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused variable: `obj`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/validate.rs:282:25\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m282\u001b[0m \u001b[1m\u001b[94m|\u001b[0m if let Some(obj) = value.as_object() {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^\u001b[0m \u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_obj`\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: type `BridgeStats` is more private than the item `ConnectorBridge::stats`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:415:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m415\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn stats(&self) -> BridgeStats {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33mmethod `ConnectorBridge::stats` is reachable at visibility `pub`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[92mnote\u001b[0m: but type `BridgeStats` is only usable at visibility `pub(self)`\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:225:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m225\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct BridgeStats {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(private_interfaces)]` on by default\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: type `CircuitState` is more private than the item `ConnectorBridge::circuit_state`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:423:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m423\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub fn circuit_state(&self) -> CircuitState {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[33mmethod `ConnectorBridge::circuit_state` is reachable at visibility `pub`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[92mnote\u001b[0m: but type `CircuitState` is only usable at visibility `pub(self)`\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:79:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 79\u001b[0m \u001b[1m\u001b[94m|\u001b[0m enum CircuitState {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `NCP_TEMPERATURE` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/mod.rs:53:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m53\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const NCP_TEMPERATURE: f64 = 0.42;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `MIN_CONFIDENCE_THRESHOLD` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/mod.rs:61:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m61\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const MIN_CONFIDENCE_THRESHOLD: f64 = 0.65;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `MAX_INFERENCE_RETRIES` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/mod.rs:65:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m65\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const MAX_INFERENCE_RETRIES: u32 = 5;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: fields `discovery`, `broker`, and `registry` are never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/mod.rs:173:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m171\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct AiOrchestrator {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m--------------\u001b[0m \u001b[1m\u001b[94mfields in this struct\u001b[0m\n\u001b[1m\u001b[94m172\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// Reference to the service discovery subsystem\n\u001b[1m\u001b[94m173\u001b[0m \u001b[1m\u001b[94m|\u001b[0m discovery: Arc>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m174\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// Reference to the message broker subsystem\n\u001b[1m\u001b[94m175\u001b[0m \u001b[1m\u001b[94m|\u001b[0m broker: Arc>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\u001b[1m\u001b[94m176\u001b[0m \u001b[1m\u001b[94m|\u001b[0m /// Reference to the service registry subsystem\n\u001b[1m\u001b[94m177\u001b[0m \u001b[1m\u001b[94m|\u001b[0m registry: Arc>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `window_start` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/embeddings.rs:661:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m658\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct ContextWindowManager {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m--------------------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m661\u001b[0m \u001b[1m\u001b[94m|\u001b[0m window_start: Instant,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `MAX_RETRIES` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/inference.rs:41:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m41\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const MAX_RETRIES: u32 = 3;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `RETRY_BASE_DELAY_MS` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/inference.rs:44:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m44\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const RETRY_BASE_DELAY_MS: u64 = 1000;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: fields `api_key`, `base_url`, and `client` are never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/inference.rs:453:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m452\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct AnthropicClient {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------------\u001b[0m \u001b[1m\u001b[94mfields in this struct\u001b[0m\n\u001b[1m\u001b[94m453\u001b[0m \u001b[1m\u001b[94m|\u001b[0m api_key: String,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m454\u001b[0m \u001b[1m\u001b[94m|\u001b[0m base_url: String,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m455\u001b[0m \u001b[1m\u001b[94m|\u001b[0m models: Vec,\n\u001b[1m\u001b[94m456\u001b[0m \u001b[1m\u001b[94m|\u001b[0m client: reqwest::Client,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `AnthropicClient` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `routing_table` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/inference.rs:719:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m716\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct ModelRouter {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-----------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m719\u001b[0m \u001b[1m\u001b[94m|\u001b[0m routing_table: RwLock>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `ModelRouter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `cost_history` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ai/inference.rs:951:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m947\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct TokenCounter {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m------------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m951\u001b[0m \u001b[1m\u001b[94m|\u001b[0m cost_history: RwLock>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `HEALTH_CHECK_TIMEOUT_MS` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:64:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m64\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const HEALTH_CHECK_TIMEOUT_MS: u64 = 1000;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `id` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:152:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m151\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct PoolEntry {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m152\u001b[0m \u001b[1m\u001b[94m|\u001b[0m id: usize,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: method `stats` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:195:8\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m163\u001b[0m \u001b[1m\u001b[94m|\u001b[0m impl ConnectionPool {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-------------------\u001b[0m \u001b[1m\u001b[94mmethod in this implementation\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m195\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn stats(&self) -> PoolStats {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: struct `PoolStats` is never constructed\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:203:8\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m203\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct PoolStats {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: fields `circuit_breaker_trips` and `health_check_failures` are never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/connector/bridge.rs:229:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m225\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct BridgeStats {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-----------\u001b[0m \u001b[1m\u001b[94mfields in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m229\u001b[0m \u001b[1m\u001b[94m|\u001b[0m circuit_breaker_trips: u64,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m230\u001b[0m \u001b[1m\u001b[94m|\u001b[0m health_check_failures: u64,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `BridgeStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `consumers` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/messaging/mod.rs:38:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m35\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct MessageBroker {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-------------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m38\u001b[0m \u001b[1m\u001b[94m|\u001b[0m consumers: DashMap>>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `version` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/messages.rs:293:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m291\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct MessageRegistry {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m292\u001b[0m \u001b[1m\u001b[94m|\u001b[0m handlers: HashMap,\n\u001b[1m\u001b[94m293\u001b[0m \u001b[1m\u001b[94m|\u001b[0m version: u32,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `version` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/serialize.rs:258:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m255\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct Schema {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m258\u001b[0m \u001b[1m\u001b[94m|\u001b[0m version: u32,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: fields `required` and `default_value` are never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/serialize.rs:264:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m261\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct SchemaField {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-----------\u001b[0m \u001b[1m\u001b[94mfields in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m264\u001b[0m \u001b[1m\u001b[94m|\u001b[0m required: bool,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m265\u001b[0m \u001b[1m\u001b[94m|\u001b[0m default_value: Option,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: variant `Custom` is never constructed\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/serialize.rs:276:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m269\u001b[0m \u001b[1m\u001b[94m|\u001b[0m enum FieldValidation {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------------\u001b[0m \u001b[1m\u001b[94mvariant in this enum\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m276\u001b[0m \u001b[1m\u001b[94m|\u001b[0m Custom(String),\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: fields `next_request_id`, `pending_requests`, `serializer`, and `timeout_ms` are never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:218:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m217\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct RpcClient {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------\u001b[0m \u001b[1m\u001b[94mfields in this struct\u001b[0m\n\u001b[1m\u001b[94m218\u001b[0m \u001b[1m\u001b[94m|\u001b[0m next_request_id: AtomicU64,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m219\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pending_requests: Arc, RpcError>>>>>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m220\u001b[0m \u001b[1m\u001b[94m|\u001b[0m serializer: Serializer,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m221\u001b[0m \u001b[1m\u001b[94m|\u001b[0m timeout_ms: u64,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `serializer` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/protocol/rpc.rs:271:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m269\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct RpcServer {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m270\u001b[0m \u001b[1m\u001b[94m|\u001b[0m handlers: HashMap,\n\u001b[1m\u001b[94m271\u001b[0m \u001b[1m\u001b[94m|\u001b[0m serializer: Serializer,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: field `events` is never read\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/registry/mod.rs:31:5\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m28\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct ServiceRegistry {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m---------------\u001b[0m \u001b[1m\u001b[94mfield in this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m31\u001b[0m \u001b[1m\u001b[94m|\u001b[0m events: Arc>>,\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^\u001b[0m\n\n\u001b[1m\u001b[33mwarning\u001b[0m: `tent-backend` (lib) generated 52 warnings (run `cargo fix --lib -p tent-backend` to apply 23 suggestions)\n\u001b[1m\u001b[92m Finished\u001b[0m `dev` profile [unoptimized + debuginfo] target(s) in 37.09s" + }, + { + "name": "frontend", + "status": "FAIL", + "elapsed_seconds": 5.671, + "artifact": null, + "output": "> tent-frontend@0.0.0 build\n> tsc -b && vite build\n\nsrc/services/api.ts(29,10): error TS7006: Parameter 'err' implicitly has an 'any' type." + }, + { + "name": "market", + "status": "PASS", + "elapsed_seconds": 16.18, + "artifact": "/home/runner/work/TentOfTrials/TentOfTrials/market/market", + "output": "go: downloading go1.26.0 (linux/amd64)\ngo: downloading go.uber.org/zap v1.27.0\ngo: downloading github.com/google/uuid v1.6.0\ngo: downloading github.com/shopspring/decimal v1.4.0\ngo: downloading github.com/gorilla/websocket v1.5.3\ngo: downloading go.uber.org/multierr v1.10.0" + }, + { + "name": "frailbox", + "status": "PASS", + "elapsed_seconds": 0.364, + "artifact": "/home/runner/work/TentOfTrials/TentOfTrials/frailbox/frailbox", + "output": "gcc -Wall -Wextra -Wpedantic -std=c2x -O2 -g -D_FORTIFY_SOURCE=3 -fstack-protector-strong -fPIE -Iinclude -MMD -MP -c src/arena.c -o build/src/arena.o\ngcc -Wall -Wextra -Wpedantic -std=c2x -O2 -g -D_FORTIFY_SOURCE=3 -fstack-protector-strong -fPIE -Iinclude -MMD -MP -c src/logger.c -o build/src/logger.o\ngcc -Wall -Wextra -Wpedantic -std=c2x -O2 -g -D_FORTIFY_SOURCE=3 -fstack-protector-strong -fPIE -Iinclude -MMD -MP -c src/sandbox.c -o build/src/sandbox.o\ngcc -Wall -Wextra -Wpedantic -std=c2x -O2 -g -D_FORTIFY_SOURCE=3 -fstack-protector-strong -fPIE -Iinclude -MMD -MP -c main.c -o build/main.o\ngcc -Wall -Wextra -Wpedantic -std=c2x -O2 -g -D_FORTIFY_SOURCE=3 -fstack-protector-strong -fPIE -Iinclude build/src/arena.o build/src/logger.o build/src/sandbox.o build/main.o -o frailbox -pie -z relro -z now\nsrc/arena.c: In function \u2018arena_contains\u2019:\nsrc/arena.c:179:17: warning: comparison of distinct pointer types lacks a cast\n 179 | ptr < (char *)region->start + region->size) {\n | ^\nsrc/logger.c: In function \u2018log_message\u2019:\nsrc/logger.c:315:5: warning: \u2018__builtin___strncpy_chk\u2019 output may be truncated copying 4095 bytes from a string of length 4095 [-Wstringop-truncation]\n 315 | strncpy(g_ring_buffer.entries[g_ring_buffer.head], message, MAX_LOG_LINE - 1);\n | ^" + }, + { + "name": "engine", + "status": "PASS", + "elapsed_seconds": 12.911, + "artifact": "/home/runner/work/TentOfTrials/TentOfTrials/frailbox/engine/build/trial-engine", + "output": "[ 11%] Building CXX object CMakeFiles/trial-engine.dir/main.cpp.o\n[ 22%] Building CXX object CMakeFiles/trial-engine.dir/core/math.cpp.o\n[ 33%] Building CXX object CMakeFiles/trial-engine.dir/core/ecs.cpp.o\n[ 44%] Building CXX object CMakeFiles/trial-engine.dir/dynamics/rigidbody.cpp.o\n[ 55%] Building CXX object CMakeFiles/trial-engine.dir/dynamics/constraint.cpp.o\n[ 66%] Building CXX object CMakeFiles/trial-engine.dir/collision/collision.cpp.o\n[ 77%] Building CXX object CMakeFiles/trial-engine.dir/home/runner/work/TentOfTrials/TentOfTrials/frailbox/wat.cpp.o\n[ 88%] Building CXX object CMakeFiles/trial-engine.dir/home/runner/work/TentOfTrials/TentOfTrials/frailbox/engine.cpp.o\n[100%] Linking CXX executable trial-engine\n[100%] Built target trial-engine" + }, + { + "name": "compliance", + "status": "PASS", + "elapsed_seconds": 0.98, + "artifact": "/home/runner/work/TentOfTrials/TentOfTrials/compliance/build", + "output": "Note: ComplianceAuditor.java uses or overrides a deprecated API.\nNote: Recompile with -Xlint:deprecation for details." + }, + { + "name": "v2-market-stream", + "status": "PASS", + "elapsed_seconds": 0.046, + "artifact": null, + "output": "Syntax OK" + }, + { + "name": "nfc-scanner", + "status": "PASS", + "elapsed_seconds": 0.001, + "artifact": null, + "output": "" + }, + { + "name": "openapi-haskell", + "status": "FAIL", + "elapsed_seconds": 32.013, + "artifact": null, + "output": "[1 of 8] Compiling Network.HTTP.Types ( Network/HTTP/Types.hs, nothing )\n[2 of 8] Compiling Network.Wai ( Network/Wai.hs, nothing )\n[3 of 8] Compiling Network.Wai.Handler.Warp ( Network/Wai/Handler/Warp.hs, nothing )\n[4 of 8] Compiling Network.Wai.Logger ( Network/Wai/Logger.hs, nothing )\n[5 of 8] Compiling Tent.OpenAPI.Types ( Types.hs, /tmp/ghc7436_tmp_0_0/ghc_tmp_2.o, /tmp/ghc7436_tmp_0_0/ghc_tmp_2.dyn_o )\nTypes.hs:50:1: error: [GHC-61948]\n Could not find module \u2018Data.Aeson\u2019.\n Perhaps you meant Data.Version (from base-4.22.0.0)\n Use -v to see a list of the files searched for.\n |\n50 | import Data.Aeson (FromJSON(parseJSON), ToJSON(toJSON), Value(Object), (.!=), (.:?), (.=))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTypes.hs:51:1: error: [GHC-87110]\n Could not find module \u2018Data.Aeson.Types\u2019.\n Use -v to see a list of the files searched for.\n |\n51 | import Data.Aeson.Types (Parser, parseMaybe)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTypes.hs:71:1: error: [GHC-61948]\n Could not find module \u2018Data.Aeson\u2019.\n Perhaps you meant Data.Version (from base-4.22.0.0)\n Use -v to see a list of the files searched for.\n |\n71 | import qualified Data.Aeson as A\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTypes.hs:72:1: error: [GHC-87110]\n Could not find module \u2018Data.Aeson.Key\u2019.\n Use -v to see a list of the files searched for.\n |\n72 | import qualified Data.Aeson.Key as K\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTypes.hs:73:1: error: [GHC-87110]\n Could not find module \u2018Data.Aeson.KeyMap\u2019.\n Use -v to see a list of the files searched for.\n |\n73 | import qualified Data.Aeson.KeyMap as KM\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTypes.hs:74:1: error: [GHC-61948]\n Could not find module \u2018Data.HashMap.Strict\u2019.\n Perhaps you meant\n Data.Map.Strict (from containers-0.8)\n Data.IntMap.Strict (from containers-0.8)\n Use -v to see a list of the files searched for.\n |\n74 | import qualified Data.HashMap.Strict as HM\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTypes.hs:77:1: error: [GHC-87110]\n Could not find module \u2018Data.Yaml\u2019.\n Use -v to see a list of the files searched for.\n |\n77 | import qualified Data.Yaml as Y\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" + }, + { + "name": "openapi-tools", + "status": "PASS", + "elapsed_seconds": 0.002, + "artifact": null, + "output": "" + } + ], + "pr_note": "Include the encrypted diagnostic logd artifact(s): diagnostic/build-9a0fe0ed.logd. The encrypted .logd is the required diagnostic content for PR review; this JSON file is metadata. Maintainers may ask you to remove these diagnostic artifacts before merging." +} diff --git a/diagnostic/build-9a0fe0ed.logd b/diagnostic/build-9a0fe0ed.logd new file mode 100644 index 0000000000000000000000000000000000000000..4d0e9de59395a8c08f31171ad67846175ca1d254 GIT binary patch literal 90636 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 &jGLVHq{nNW@7ws$L14o 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

i*hs8u$^-C#{+(Grv=q|WevR^nZASr}B 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�LWHNq`u)&tbJuij8DG89z68eJw-+F*f$mlWdt3@eZHU`2Iw&#RBT3#6 zMS`fDK0f z#A_P6LZ0A6Wr`oLoZr{qNrn*$xo9R~Gs8hr4op|OnbMNIVz1oiC3R*+8mD3rfS&3h zFA$f!$=l=ZQEk<>t{X(V3Lj4YrtScro@T7DJ{VH!G!MVYn zO}&gO`KTbUatJ_pF1v@8M}!cu()X5ys8S#AQhA2>;c?i^JuN zn1bxvl%b8J9u|Q^l0DKKQ2x?-7MaE=<0!hBL!C?(!t>1B0`Ocl)UStf$(sIMO$~MJ z;>!C1E2qZG6?fT1t643GLOTfN_xtrEkF{0Sq0X)|KHfWVjha;v)L+ z1{rj>H2YlDO@V_F1n*4@QsdW>Ylzndn5NAGX7!rMaH0H3*YCa=F{JWA9;mORMLb9; zMmxfbn@)-)3O22rUgR0~f3nLqVKPeo)6xKdSKS6oL>kL7T;`W%dGUaWHpeoVhR9X% z$kc!#>#;j=QQA8dc3`L*`r?FiDUu~eo+a+()Xt5EJm>i!tz?#f$hvwSA{a<=C9gCDR*<@Hjp%R{2uc z_3bYl=n&k}&(mS>!Ae5<@?I8ap+I2ytVx7ePn;$v5X5GsP0>Qel{dlv;&pyAQ!C;h zS)N}Qk3f8Rb>qdCPPs0JWn_K5@agKtb|NSQhTCaC0~vZw7Zl%>ks>C`EkbOs5pWJL zOc*ODRc4jP-`u%WS09EyWCPL6!A4cJ$=USWR-RRI=?$=+nROo+)lqf}zNZmPD=LkO8!NT50sjfMFbcY>A_}lO5 zbfa6qNm}QJX@orNq`+^U*@`(H%|zkjPZrB%g-Kd!9j)En?bFHbDs54R&-#B5IA5A2 zvhIiBCTC{(1@YouG%=wK$)R}#ubgU`Ebb^yrWY8Uw@s4;4y`AVm5t-pGi1qz_U4)`{OT7m8}@|aL)x)+1~|N%ON-f?nsIX zy}rS|A|C)gaA|4s8KL`@}deq33Qh{$k6GwW$ zeXgFFu!}<`F)o5W!Yd^7*?dVbPk9&!&_S;d?(bFR*XAj2`*xks-?7!s=mP6w65 zJ(h4bc>R%hYdlTIx0+JkL85LK%ZY~j;-&sXbSb~;23R`_bSuwoPecCW-=U|Y$YdFRo-U3>k^}LeRwPfU&c5}#MmWFQo>H`|;ZNFW^H79{Q#lyJD&@9jD zMawSPnWpH6I3){h?g8>+Z|@b1Hev-!z(q`3ph~=*fYz9uJ9;56$N?$8(6T=wzt0?u zp~u46=_WM;a-b<)vs%vD#P||V*9Mx>x3zfheYBVB$@jF0f@NHywrE>K>2L+QDB=7+ z%Erfx?Ft^f1uJu#m9iF$7V@gB;#GS{BkPWoH<+wAc$LPQU$@^#A>R~`SIix6xNLvo5#v&uu~Mk> zoQ^C_ZKTC9vU5)T`{svC+7SXty`toUgDxF0Og>w&e;wc=Sn@PzOlA!cD&V=4bIXLJ zU1*d}Gks=$OB}Jv3|FuI`<>knkRF#ON_1OmBMcs5g){`sch(CXu1dF$&nNx1PW0Ri zje4qFA|7fVZ5Z+l;g{P`saH~KCuG$QMO4o5HIEF__@)Wjp}!+b4sg$ks4IZ35#V+R zqBqmE$DMd9Q(FCyWiWb!aeyknC)ekd(i6N1W&N2L_|&5)#C1S%`k5HRf|*J@d7mbl z<0Tu5e_E?5b1dp_#Pf7;P1FxN0uUekBG$p<{9*8h?_>i2X9lrJu@majC>2?OL~Gr7 z9^-yN%uvDU19bA$S9R>t*)M6?6g709c=>dV2kQA>h#L!s{^Km)#TnI7oSVzEScnN= zwGy0mEFK*(2j&>3mm5wQ&7b1hmptUFMSY`sSW5=w$HG6WYR6@A%D#}f%q(mHHM%ky zMH~D{Eo?SfE;4^PtFH`B@yBEb?JY??JvlYVfXm}-y)evPu{sPZzFg8h%MqZ&?I+U6 zd&v_Cp>=SQeQUA9Q!zRdc-%EBRi|XDJ(cYZYOuI*HSXtSDY2dn-{z9SUzS$o` z&EDd;L;XsvJTWa$+Zh=51Oam==}&<|KNZENz>pXEZo9=jF-A@h@6%WP*h(lTR748l z)4MxF&*SP7bYegF!HK5?s5LLHk#ObG zc<&mPa-r{IO}elloDEkS#-Qu_*B2?k+k8cdq|V=bd{7kx8UP*C)&a;)-XYHs907x{ z?mPvlZ3KFFLT-Ia6RL-J9&KA7<@2O0kXphbJoU*M0k`i=Fc&Iqyw)E8() zpW}D!jmpedt(9tr3%^{aR>vogSYx{xFX@1}&>+tC6dv)*Q$=0)d`@zrqR(MkWE2%) z_%KRW$(2)Z#a&}UT`x1fN||^FziBCy6&=UM{jY=?zCDv4COGwrLGeBszD@fBl@gwQ zoWyP33T+f(F%iAy`n_PW?Vv|4su5l!@^GhWn0(<@a4r|Y8o}`BC2y|fsq?$%JRT9u z*xTl}P@;%vbyk$4^Oi#mTXEv)2f;+p~b|j3TF3+KbYIHtf=Lj=`4lmcNw=Z zmsTxwcrSE*$A5_O8pM&9rw8^Dc)VoD67il>{9P8s7|hQ^Owa#N9;6ohiTdq}wKYf4 zz}kVQvm{Rq3_-+HBFl}TAu>32FY79ujN~|=T*6;ymmgFZn5>R#3Bk&&YBwp=EGtzn zdi5)9XbxHniZG$CQ+u1clrckNK`GAH zZwrG^P@y#mzP*u(@TF9xwsCf`1ep1R6AZngS_E$~9I5m;FW@z5FxH_BU>edz&As12 zRZVnh7fd=}ZC`8wFboO6f3lB#NgFS4MGJF#i(W-I5@QvTQUHi-laT<4&d<;!E()pr z0P#|Sq~ZI4sqvvf28_H7qxrUZeDwPvoy3>1r4TB94+r;u%YquGPD7?Oc8dUj!?yZP zveo3`ygE3WnOR>AOpoeQ=I7>(^|;=it>F5#?N2~<5$m8rvYKl3%oLN0tr)+VkXrQm zyMudk;*<%@R47%Xs%)Wv3pXaPj%Q`!7JvnO&*ZVCKZSER#m`nG8~lf=MVWpkZmjZ; z&m^vNBDYrZHC7FdLc%=)^*P%$4Z7*+NcdJWG)~5XY)HAzg|G z6b}yP8bAa@I?2L^J-~{=@|*0ZPs5M@ns}jXlNSAqH^^TAH>gbpBz&1sGD_KW81K4c z?Q~KKyYf0IUa(a!&wt-*R>kDM09V~{*Soit#E?uB3S3?#K#ebn#R$ z9>4Wx$dQMZTs|kZA5x|Z7m&3Dg(Tn4$|eP-anxhr;d{kwEprmrt+)!^yo_j9i;4P& zG^;<5EHF3#GM);Dy8$Q*b=G&d$LeafiTZcZS6moKLGfP|W=T+9 zP!!r-oSi&sV@dT4E*7spw0q@Vv@K9b1qo>-Cx3&tS!Wter3#!F4Ff&@-S)b97EvuU z-#f3O6g^QV0fQ_rZKHO@+PXQIs)Kx?N6A#b^_roJjC`%%L{!Bm6&B;uR$Jag%DcJ6 z8vY#K!ZfAkZ}0yu$-c`@5R3b4dDAi$bz)_imq6zC(5A*bOGz`=6WUEK3cND0oHc=} zxLQuhK>P;eZ_8TrLeJJ?NjJ-SUse8OlQ|YRkgJlv3;UOTa=i=sOX=O)mSW2Y8qTnn zQD5LzrgwNxF5Nl+jkNmfYJt>qtxXWJ=meJMjXId=E;kvF@y8fO_`+lGN)Ox521amu z9n62_H|0=a7d6@$ubUctA8=u>8R-A1vUD7O z7vWl_-D@FLdV{m1^{Bs**OEOV`4X7+N7~nbkYl;marXhjtbb*^-(T|{fB}uUL2g#2 z|7M(ctqaS#HjV!smh&aPUR_I(e#p{q08e{4Kq%J90ZFIbd`j9RKAMIZ{JrS)#xHE_ zBA^CnGYT*YWUCrjhHJLZHhRd>0jd1#7`6VQCXhxvmiD$m6wswuk6{Jq^CHoINy{pKCF|M`=XO^LqcyRCOMM{d zG8JxQx?d_DWX{daBv!Cae!zeFOCY@rrp{dfL@NG&4bh+jp?!=F6*IeUwzD+Ey7!&g z5o@8_V$qnqtP1jHpAX)RLM@_j3x;ia!yr>B<@N8?lJtPbe=@3LY%CLS@y1B0&D!@y z1XJv(^KGyGMy`!kVoHSH*FyxqROYwQqNwRk-)f{v-0}IY9^?LnaUFr1+42;3SG)4G zT=u+79$GzXc{6*(PHX6zDNcI(!90fXE}N{ybo`XK$^V{Cmek~A4?sUYslX^FGqnm&F!K*Q}R%Fyg6-xCc|~4 zV{uOp3owapZ%0v%^Y|B3BKmB$<%|2F$CL~n4hrB_9-m1uyOXbmo(tlj<#^CXW%D5u#YtZP;g z9X_p)4c1ve^ASTGV^Fh65pSOpF12V0ARx`9G7{JJ4MA3%G*^cs9v>?zPZf|x2>TU} zdTzM3T$CBa;?UpF4$eEniV`}Oc&gwTny1882!8Q74{uz+6c384^WDz^IKl@i1?3CL zUFd{Q9OFL4o|~En=fT>N+u{^uVY-j-vWQppbR4Z;!!G6ITAUenC!`*!#Vn_Z9C|$% z{GO2Euki3od7c}Q;A9ZEpbAQEmBynrA>-;W>h!`G)nJT;tYprVF*qwoglF&B_R>y%7|P<8SZ;MskC>GA=cIOw9)!~g zDXxVMxgSW_h&(MjY=N1Y3p;Yemf&UG=CE!pPLfrrG0j{Db=!0K6Oe%s^FVMj!8&+? zyQ89U=Gf%U+S)lG&d@{EoH&mUZgIR19TVTCFF&$JIi7Sirf;1AuDus3NE0C^f*6$` z@~V9yoKtlBqLtoId54N)z$l$PqhMv%6oz~M?;SSZttaxyozpBJm!X75gux>Y@U4;! zb%gfTE)G)c`o7B<>H*-%167(M>^bZXwS%=0)dlK*m~QONBDq%LZxEimW!3xs@`?(h zg-9SA7X;eS^ayGvfd7Ln^jvjt5MREu3#7Xl+-NhEqT;a$OYeW);*7epq>ZN^!DFpC zmlbQarb)^u=U2KG)-AQ1s6uam;DGo z<7kWKaO)&Rv(&{J{U=66UVz;|2^}lzidt|Qwbi52KKzGuOm%Lr?rpeuFa=0n7JAew zePpLuhzhh|B=;R5P!g*mw-Eq{RvlDv42z{s*G4&yy$Gn`MH~S)5BP)w@(9TlMNlpe(Py$2l^5|={3b8<*tyw zOymrqgQ9mI%trHwnzEq8VztodPvdw)(RJ>mM-fM9Lt)!xyZrGFN3DOz0dVV-1b#S* z%ZI|5P3YSB;D91iYtvUMR-?%3Ai&_ zXr50^-Z~pqEUUfc^C^L&^*WZQ{@JO0!^V8qZ>yeZBE8pi0jnp=0{Wp#`*0Nhx!xI_W3 zR0>n@T&BLYeDd)A2X>I`%4nuN+^qX_xwxe}sK;~)S36hm@d7HcK@UcHyI~Jyy}LIY z&wV_AwD95kMd_^B6U)C|(a#+VtX`TQBlexiX50=y0D66@iJm>;X{{<*)H}&cye?{u z?w+5i9Aqw8Gh8#8&Lv99B$#?UPq_=rv6A=Wbp5-qZ5~#--+PAP13=YqtC0yfNDZHq0BH3FND5CR>WZ6PH!znl?p>E5O#?XY_yU>C+(0F9g9 zgpt4$X;%hhF6^zTxC0?@TZ(5;?v?hqW_kkLCG|W(g`jwWR{)~D@Rd;hqimw0=B%5M zk^I#jbz{a?OcRa(5i{Ik0+xJ3yRcoO_ibIh1|Dy_^wd>Y^*W7+5{;OmN+jIuJvL|M zqW}im7dYe_?KcP|r)-Iw3y@SZ)hWgXF9d^TRM+ZD-e6^AP8;52Alew^-;iRmk?~qn zpQfR85$iDy_h{bPGbeoUXmN)I+-YOI#jX?y+0#n*6wcBQ3J02$nk*ZOFNVRQy(Q|8 zLE^j*qk|hi|D93n-LeHNx6;*UxW)}3yYB2;iS$&vsVS{Od(0SlES6GsFTp3 zf)(-4tIY3vIqNB8&}8%NMa?z%S3(mQ|7qX*_ps&`MPqIgCIjI(#K+WEI#&(+PX}%R z_2NM;J=cMQ&0_8gTbeo;U_ysI$Cx7n`pX8G?T)HFYjA=RDn8xt)hi0i8?GVA&?{h) z5l_Od_|UID$~1GS4OY>Yq`AnDmc_HSp_-{(xYh5nG%29J8Gy;J_DPVa`;8&jkZX&K zxCuw1s#Z*cTTcD+S90+FS`H^tJi2cGYra$}a^{*0f?A}98UU)MS?Hv6)6zHjZ3~Id zdyWQnLDHozqKm)=?LX ze@yDQ_UiK{vj?6i&5?c-`~;58bB3VbfXAolr!=1+opV{27bXbjstA#HfA+XsS~e-% z#`CdTDJH{i3bkd?_|KY5EZeZ@*J2(O64Hl5pe3|D{Z$oxD!dR2$a7K%&smmQdvrFP-^M0K9>i21EPtjQkjKlumRe9!?y)kr z*-FQ%jOucP%5ap1&KpXt8hg(vsT#d6oCVe6!*=Ft;A-e zMs$p5WVEQ4wyzVFs-I~EtDHoqeUW4W=tid4a#wRqU^0;-D*DmfBz6x-_}47CCBQl+ z=-Tqos!VoHUOej~Gt)!(5V@t6l7z;8v-V?y!=gLw52zLQ)AoD1)B`z zxbK+|C$Gh@Ew7n5oGG~FS1(dqk~+ikh_g<{?OR=jH0iYMcXt@kr34SsX}BDXlJ6?V&{lHhcCMbn&Ltb{{VkWoTb8EBcjXkL9{xnxg*?@Vr=UL|qv- z2Okq;nTfb2jgwxXy31Vl39c593=R-zwY*r8kN4(U{-Q{zH8wLeU^`pxI;ImpAW-aW zFP7b9HtfY`4P&J(Yz*WUs-S;f%y62X?P6p76p97n+7TtYQc9xgIdmN zZ$3xenG7T41LG9!%5l}NSa%9hV3PBnx*2U{iLCSH$Rw2+a0b)yhHGw@wHOW~Lv5L7 zZsQ(v^|92uv$)bU9yzv~fBm`AnGAiX=qO;_XF|iX-vGu+IFk z$Aej5as)p|A<9PRxoOBg zjW}epMj6jfi=ql7Aw>Ir&Acz81U3SxvSDS+)NLSee($fDX+ltYr6G@bus2~()KG6d zWH@i9Ade%NaD3q=@S5Z%Z{$%pm%nT(&4;gj$nhDJ8H9ro3nEh%o{VUKJ$XAX#VAp$ z7(b55HKXqEwH)~*J$feQ(ix@OfXNOwhNBa>(ylWv3#%qajaiJz&LNN82};m`PRtgK z!@t!TB!5}Vf>lIc(k>6C!Z&#ygB3`eMNuu{nQ?5N)f||^6tIgOJ8%%cqQ`H#{QS)e zMm{D{etIxjK+0mac-oU?-1%rNcwyR1q#)G_9i**8OUK0Uv*gM0z}Wi%$KkKoha7Q>8v|~r7Ee~=1}~qf~sGsqi9oc_nLMmH-(f*2aplM{ekSlB&M3Q zs5f7lU3Nz78Ig;n&!$|+%Zq?HofMrI~fdZ{GhzCfHnoD7_1w6{o|j) zt)z?TmV_8b@2ekqUURt|eHpP*K6PzwO#nmBy1>@M^c@iGe#FIcXBYzt%Cah>~cVp!J~>f0}2{Ax*K)F8EhSTSG_lKB%2>FZ`F{E zH+$+<&MSE=yquUq`xg%0c@u@v1*?EV4?6+kl~a;3(L=BNZZLKcc=^?RTuH|Jdjh!S zmjeqFc_Pk?C)PfQ1a4C(1;q#3tR14=2_17{%w0g9Ps#7Xh2cYayrP5bV|^>GbBlR3 zmu8iM!*AIm3+A(4v))yER$yyn)ppP&?kjIqXY}eFBKo**t7k>2tg)AU`fl;H^EEv` zH2F3@CR(zesyx0|Y%CV;IeBk^wyg6HuViSb9t@4XRl&+~Ck#(ayt4_-J0Vfo${Oxh zQGYgzIDbxO^&Z~~$C$s%JMavZDo%QgYqC8@Hlh&&hUgZ!U zEf(i*N~%?H_JqE91tLw#Kj!Hhcvrc|T|#Qm_`Q}u@z7{wR>K|;!<##h&h;XwnQ=iR zL6K&U0J`@Y+9{yr2TMOf$=YK+HmhUclIm`+m^d`V=c!uiM?pt7$Vjdu2pzB*2+^ig zRg)w04!HaD2UXwF%oS(j(Tbcr_gugS6)bU6G zlWP9swj<|nZ5=?Pf#c#sftVr*yAgPc>b=5w6$!i#*53L6uR?D-Il8aMFtQf&2+*g5 zsC;XyrsD00VLUdAIi-08<#{D0m@6fZf^7k$V~_eP#DpmQ7?~2xt}(2 zPrYp^DcqO=@R&pU!fS`|Wta};QpZrS+I$^!Z|}%VW}pE5;mAKX5K$RLQi-Yk$82Y+ zow7rFhu5)Zo2@=_z(-mm9Gz->Gt0CSsdgDo?A-x+=?FYzOYxq?UQue z=n=_GHZ|sDnq2~bT{Sa4Y47;S95=fyUpzjK-Y@?%d)NtpIuy#&y;*pqwm~)T`J1i7 z&w*TSF1m1L&^nfKXNKN37B8*|U%1;;tM^t$3|Q{i%F~18s^b2QN)K_(KM3IvsFY<| zSl?wsA;BN4vZL95NIA##PE;Fu`w}&Sc?~}SZ5Q~uz#M%S1eA0POR_l{SdQ-)% z;%j;af`vp!jcQ=DE`ClZdG_@I)zz@XysfBrk3Z)wS=S^4 zx47G`nrtlBXS2OZ61Dk*!%W!c3B7}X1nsB#zR(FmiV-uy5uBv$Pp|ubvkTtM-_&(n zhjOWGe?AT}9nmmr=I!*3&8ZzjMBnsCCBT_Ft%Dk*p&Qt9t)B81tg&*T5VJU6YRoM} zz+V4!>~e!$rhMKAu;D?|j@QLyi2+hLY=y>9Vbu+G$ZLK2Y-;cIuXfjj5~)vKn+K72 zE|C7_PA>w5s>9=c7@<${n-Pc9b}Y+aPpn4l?I|FT-mVMk8TBF?^hP`BCPI*4VNA|j zI|7%GRj`b+`3cye6d#eVG~N!QqXe?yH`WvTGR*30owyBP=yU_y$%NmLaGVboaHvI%;t#p;Pj^arHe>oyaEk?jY zDFLVHzqh=nR%pVH!w)iCKpQ1s-o0cy z#&hSDUi*KB`+((7X5@!UFR97=Yo-C&I>S2 zZlXz3r5(0qQ9+-@hoVgpDNaW;Ltz%n=u`BEtW$VKRcV*9FHgKQ96(VB{>d+CQP|yQ zBt{lwKKr@8Z+Q;-cdy(vNq|fo$?t}8vwV>BM(sjY2RpGWq)N^XvNsj;dI!LPQwt3m z=TuPe34pQ-NUgt7&PKxzp+OC7WbJHa;IRx4MN@0v-Xvg*oKZzU1mqKbO%Du)%X2S= zj-CCBKK)Yy56#-RUsRY&CEkX^NX07_#gTdl(ujgH$E(57BJA$ej8tA+Ult8d@pBmV z8vUz;BZ)UaERfuH{gq3PayvZ8Z-4Xfc3W&r;&S7@=LI^QY{wx8FvvnETh68z=y?htrMb{6*%VXLk?iT60nPc&dz@CFqJp{7QDhKnbM{MFL zrsqi9w%M9b{jtjAL#+!<>qboaa!?;TG||MBIvarSUV4zv2>gIuy7*Lw)x+w{&HCSO z^3Ndxa7el1T8F?iB(RI}K5})){9JFGt8{_jLzs!2ucN!&U=?aX7Q%@)@DJ2Dqg=RM zE(16lxozNl<8dVu;2m+esPzcJZQNq3n#V)v;VyW%g_zrK@$jvGjzxUrYr6W+Nw-bR zWQZq*|3{e_&|vl*I4~?)A@Ekq=HVT6!tk`W3YTx@vc9m#~hELXLyPUayW@Pe=N9WSsK@xv!hxD zmVUu+m`Jx4@eFrnD0!``ktsgs#DW7{m+8{p85`2~3c_&c+(}M#BtC;+fwKSik3F)+ zrwO|NX=z)*OQApZ-|92NIK9nfZDl(p8f+6DO=fayl(x?eW24GfOl+iU&j4W5{Fl1W zoPN`80dxT~0xyk{*A)czLXpo3(b!uOLzQ=3e*zzC<3}_U2r9~G0*m7wz*kP_#n{3d zv{WxLgHk}y%WzkBm!4U#_=+J{EL2`VAnEH8>p|~(tQldvvBVc~U|E+w?KbGxN&cjv zly5T)mEKHc?#L$bMK691i7#&nfu2oFA`ZsU58tTeUO9Q~UJem@rPg3AyH{%&2JDxY z-s3LjcG07Gjz$`FQ?dYF;67O?-6xO;Vj>%9lv_c-bW_Wl$oFQhNl~c1Nk>@a;#{lh z7gSJAsG|vhQ=R@UtUS0FmxEe4?@6M(A#x^)YI}K%)MMVOtzy95P%ubo;aP%Ev`z&5UgTdAE5ifJR;B`4@#?%rY@7aJTL4{AA=I;XlQgw%2wepOh#)R+exfef z9R&dM?^H>@xa&veqi%KAT|vnX)O`)I#aSkFA*5P(_N8HQ8x8DCK3{6bRE1?F?04bn zV0a6+r+uE>L8tJe-<)9nB$!H~(yMIR`gQeFv6jTVK#1a0Ech1~vA!C!w zCpm%?n@N3V&_#QU;P0q*$jbghA39s#VgurHQa`XB$QWB1@%H^Ri`wuiukEWo!JTOQ zRlCVZi4j~57bA)$2YtCr@WP6z-i)19%Q87laimKJ!&s6x1rJ?&Km6roqdBc=c2K9jxs85gr~7P#xYNIr*!d-u^I2}A1Kbozq@V1 zTH$fKq(4yPz~3(4i70KJ*9?T?tvr60l_x7y6nA3tY;#&ZTK1{zlp7~6b2}JKo&r(T zQ)Mz%Gksveb|o4+3r24yZmsr94W;s?78ke9QElvQc;^1Mm+HhT@eK7%&6ls*58Jt~ zMf>hs$ae)yv3hYJqlp_=idFtS7A7&0j6ig2G~V?|4ve;eFtY_6Gv1YmoRN*dTCo)5 z)1Uc1Gw9D_;!z~roiq|b$rvpmbaj;*iE;t44h-~W#aZ6=%xtX573YC~x?ztzKlvi& z^E3aH#>XGRoJ~Nj#R@@(v^o^^heRT-$#S2n*)RzmX^LgU{U~tF-caVEi09)Z1Rjz~TH6rldJ{+5ThoJc~ ziQ66+kWuHG%Si$?$hwN(;sCxYP}-s>m2x;WQmPN}YGgRl=&yuW0d&iBs*6tj!^*BoJ#y1t1C*xlpIvyO;7`ps%VOPB?x2`u1e4DyaZ?hZ6Fvq)U5LB&kQnOMdw*hq#D|8 z5=&j`>Wrfc*#dU=-IFhTpz}y>`Qyde$H3-d>c^`1)``rUN)YSzUfwFRX+JoZcnMA2 z4jrj>N`Z@9{mqo-uf4A?Hpow3q>C0oK{Uq;`#kWcL-$D#?G4Uigi^=6vfhsb@-F>( zcvw2?`s|zT_3F%)_j#ON+jfb#YI8cqA@+{tJHlEfh_= zoobI*EV=`1Wz#lC9&5Z40{>C*X$x3biwl;$@ZmWOw3X44y<$tQkoU1{OEmpJwK!wX zw_)tCu4vAO93LA5Nl>S$tB7!n-5toX$)qx4FL5F~g%%J3j@@FXYt8Eu%dpCkz7`?x zg0JKJ;F=jbZRmXX_zCe0qY-V57qXGoi&|R572sS)rdkQ;ib`EMw>m_%b=R9qnc0A&U%hFW_$xvt5;fwatx&+8aCKQZyk)(>a#e_4i$d@Inug+{AStu2z9-=6W zpz$({eXT+nY0>7Ge=ATlv<=$IDe5R8oZ6jHTj`H>q#SzJ-1Z!=*8iuAv!IFqR6H9) zQ2GHydMKGvGuSWFk(~xg?WDlLsm2|yiL0#00j<{U^^i$Rrs)dz%1#mswo-OlZ^%?| zK5U>e^miwnet(IU`5U|!G~L}jaIuJY??cQuxdpPj`iOpm6r#)m_Lps3eoi?YRrPNLq_$j)Lx5(`docmNmA5hhVjMPPkg;U|I}WqivB9WhJ`6yfQ8PO z;rXw3!^z&z^WaLfol&-(xl?8*VI?wAGTnkNh;WDor6Ksi_bJ~#AArcclpqf(^!^-} z^utxpIQ`M+wir*;ff-~E`>kumN(v2`lAyrxvTwOzk%waJ$B;F(-Lk2Gwz4&C^9ix? z0C_KDx2iF2#(>h_AS$>Bz(iBE`$M^S^Yaih9ZLm0Hif(?gD2l_5W=p`%HvSY=x}>; zo1>O*mrb^1FQ2LAOG}J$R~dlZqgw%u|39^DrNvBkmHHxWV56g(TH34w%#UC7NDI3h zLL5k;BchZ8$>r}sX;kdQgE1b$&#Q$74IR4VU)wcAuydH`VBeIyQ1xT$jU-SFg zC2@WgQ+@l3P}b!ywZ@iZjmS~LP-oao;X2yc93NV&OFQcBvYd6Vx^$AjOr$k~_-!e) zLbZqnHqe51$L-cYZ2M%uAiFA)d6=L6>!KYCG4#=>@BsCT`e<4GP>=j{xP6h4XM3Fz zRWYGykdeHJ^|oP67{iE*C&;|jxWko5ihim-MWSzG^=AIo zVHm9#bz77n04ld*Rxl&3^t*t{w9XS4c0im2)^ONo`w0}lK`KwH&VLLN4=dCXD*{U@ z%%9)dyMTNDT}(|RwFfsnP@K?HHbsgY)qN)aVYpjXL>>=o<+5{gyzF6lNd;0eL2GEB zbPshfmKtW=qSw7%XF)XDSs`HkkQ7flyFbi`|H>r$G{vlMUR6 zHnP+X-$eLHFDU@ZF6J-gynEwMwfN8BISTt?w|LG+jBdls06jp$zrzPmO|u;C;MPG6 z)fx^b9)a$y`jsU2j%)jGq7tO3N)zim0)Xu`(Y&v$!f@1x5Z*{y{_?jDfEvEzX>7Ky ztHg`4s#?pYr^qODL$$?o z!QfjHO6Z=@-MRS+0!|W!TcnAaXno=-DEBIfwKW=8WJ6_q@xOBZ6tk58=;D{Bo$der zH{f(VD2Axkm-pIw_6@gBvl&3ZrmPRaozVZs6f7pMhah%9{qBn;c|*ceIK& z7?DW@g*(MO(j9HN3WB<-(DpXj=g=2r?L>0NHP{D`#?>;xV zWXai5ihR&T=*m!`2iL1$kQcWn1$%ZzKp!Pt^X|#f00x*+n{i&+u`lUf_}^3*L-qf- zV#mh#f^p^m0V%=@zyRU*8T`e=*wWfyQ_rkVz~cc0tL8m}YNw_%?CA9l)M&!xGISvPYywW(TI-go&R2(-8fv zBs1*Kv)ApyS--Xa(U&_C8?M=QTKeqyXyDfpmJG;S!h<-8Da$f_%m#=v(>m&%h= z04Fmi^YZAjx%N^LSLo}>1pm1F=q7%%j+zfwax2_mDf6VwyLfe3A&|xha_>oZ|gqW1Sou)1NAJcm%$fedgT229ox0B=vZd{bp zB`KKdd|`$2voJ%mXzj-5Ab3na0EW?B_d8w^Q|0ZX-AKPQ*DHFwqU5!NB&5oI?Nhkf z0{`LmLOT00+J7NkEQ7of+a~Fd&(3GxhFjphFBY(%KKEM`#coR@lrRD3L#FO2fUivluj7h)!R$1aJ^5>|V zb1gxd6z&f$(5y+?cU}&tRM_YmBUebN=eyN%K+5?~> z|B$$MYpi3v%2tS_6Z7V^xR7AyTOV3)biH->Zjv`E|1u_JYG11=SsiA|_UEB8G7Q%v zJ-I&&>CFImAY$&i7JvJB8NUZ=a=N%u;EYog7+;7l7LkUwMSeyQu7Ag&uHVh<0(RkS zw{_YFf1&%AX}^@?jSczcIlDjZ7@S#o49A_&hLTM$R{e7RAYR9QabbL?SG;6CI84$9 zATTz=Iqi$oLm+j%WE2S*2D}<=oP|U?N`-!B>$j_oP;lI^G5wn~TZCJPka!2rA%O>r zpOgYZC}QR}D@Ig}y88G*0Y-j$m?-s8F7wJ15~)B}kBNU6@@nO0eTL*U45QA$H5piE8Q$c1+3irU{pRmV zm2Q-W|O?lP~g=KLyp@)B{w_vuZq9^HmC_boQMP)=zh-$@B92jb$EuEP^jj+;WF3mPsyXf!>< zzDyTQi?2Y*(UD{#11ZDrzSJq~0R)O1Ag&V3D4MY&dCr%l`jVH$lg_nF*| ziRlO;*Az6;P(c9?hf=|$BMib0XzC8Mk$35;`ktKm#m&R;^}ej;#H}9wB#5Y%#$YIv z%Gd!lN7(g?62$*Vi($@o$N9nYn?~Q3JJAUiS9h#%@E9@aC%FSr0Ptip00RhgKVoAb z$wC(NROLclcIbjcecaiqYCc)|ydQ;|&R$T-D`+`Qp&1u;1}ZG8!Chs2j`)wox!Iqh zTvlLzT*1mBjfhX*CYux{n<93@dzC{dJY+hl66edh;wq^tS%uOc_xhjsQ<8AYC}Sb` zveB2gy#|bJ3JP8~xu*F}ijRg^)lv;y;n&Rk4$(H;h=p#+>y3;)sTY@^c!e;n$p#uC zju{wy4d?KFPq?)U%F1wbs|(r$-%oNfy51p!yL=^C6p{Cvc$iG%RN*Q2J7|;79~EXe z-`-&s$M1kxQ)4+VuNj+pV1wtnGc_@tS}Yb#2u!7XWjwBSkzf`xV_FAj52J~^b#DX9 zcBM>l_jwQ9=+`+Og^)SGEJ(tW%&p$+e`}0(5EM|#(Y8D`ZEe=)>(#j_ni8mt8r_6m z+C`|;a6i}pZm^#=;lg|e5T&*M`^y(t)ami;hqI;bY{M%&+Hq>Tiaxb^T7rD~C$sFpgdy&QT|{?Cfn!L*J%B zrUXVdE#Dt*1g!Fe9$_O0NBLhd@})9)O{r!i0oUgBgXb?-RJ9ys&j*ftBJ{W7m-o1f z&UK5tup}_OO_p(70084Ft!+3Ezs7Y4Z;@@eM3!qj!2f~PA$v`r^!Z5N=jyxz%BZQu z)QRGaag%u0MJCoPyrgN=#9Zsa?kL|v=?He?>kV9Rz+EoX?SDG*arIJe_HUI@A>!jz zUss~U?8h&>`d$*7^$q$KZ^vwM~3=KPBx#-3G1)tay`u+vQ zRkPrB*SnE0Z|H;%qY>=2J@8?HkuaY^JyM%YLe4aAeo`{onOetYFeNXHP@SfqU<73$58X;vX(iEsj{99J}^=cN8Hqqb*NN2Q$hXO zrZ+ikgJE8I(vD4tzaGJk^Kxl~x9eh}Wsg;jR$1vW!{HnS$MDnXN2d04M&bT5AuQE@ zZ$K}NBg5Zgm_}9QVTicU)Tw=$my>?Cn4UDvsU1*Io?JZF zqaD0o?Nrvgm?ejM=$&(%SSr$InJN!)0QOuntAoQkG$TlBJ>=CSFtxnQ15iPi zU+ObhJ~e%(JiHhM4g(VVy_Xj1GnX{#kPHw|z}DwpH8AYTOi?c^4Kz~llP`IGKKJmC zw3Tn)rmzR~X1z8WOSfj;g8MJwpvx8cdjz80-WcqA{ zm0)YKO&|0*_7-LWdn?Irx-|@>u9 zacQ8_L#3V=uu&x8q1-(S&G<>^jEB?spK&1yFj=4jYU~-E`s36u7L5k^Zg=wm(DUEM zsSLj0d}SM#hR&>;2>YEBu(<9B8xKnCkBTWHs)tC!9Wd*j-;#5Im1g&PlR-V%#UUwG zIP&Us8H9_h&kl@%5{g+}zji}u*iURjJVD(e5~D_?kS}?FF__L!bUQe&7>;0rW;B4( zr)8bfZwX;<{GzDbd+>skMEv?<8QR`DeK0y_Rd)t;1o+wh*iLU?CM3LX+MY9 z*u%w+@ja^@FrwE?WiS8KPm+ELopj^K?M6Ow&-8*z=CnTzW?fn+J|LS~) zq^WbbW?+n*%>lzZj&tETNQ^M@O&#{5zbN$(oc!8FFF)(`n!u9nttOwc1rrpKYY1(l z3Do1mm3QNV)`jgFEESxeqro=Qk8&n^w2gs53_hu$xK6%?l{lb!X&Jt2fgFshXM3tk zg7+6_wcZjgqZjTwjjvD?e9<~uTOxv3w&b46n}L$5RSNXaQdYUK8uRqtJ^}!fL&&nB zA1=2SkxLHs_B|HwjjN1l!xY_V;-L@9pf8IHoieWGCM8dv8qN52=ms{5!7nQQz)Q#<3K>bnb;?R_fEVPBfNKre{FJEO=fGJ9hA&6|s*U zq#GAuY1&5R)+{7^^x37Wav{WOr=;_g;?H@BOpqI#QW!TrIgzquzjJ0&|0Vn4&w&R~AdpUI!u}1CxWX7kWJJ zaJ;rNtSZe6heMBb!Hz!IGcwUHJ#e;P?m1U4n7+fFh=iXBq6lDNY{ViQ`w`V%9=>Vg zHX+xb@`_khjSA3}TMo*65TrPof=7ziKO-DmEzbD~LT;uMw)eDeJTvF`k2ad;GN@rc zBGxThujO~)pywI0rPsp1#!z$|8qQajQ36}3R$+Vi?o@YuPl>0<33U_$(EbZc*16wL zJ4GOQzUQI*lY@d?W*==1^}(iF30(|2gVH)2{Mxpt;Nd$8m> zV$DWbz%W0bYxG(6P3BLjG@L~Z48-?K4x}aW+dun2rNzkIcxT7wi9ah7|_bU`uFr*|pTNR<|WVNXVHhs<1U#cFG zAEsjZvZmEYost|Xis_f`l9w>Z*`-Rn#%YBeF5&+!m^vztT{9ws{RNs0t-Jp+#cs@6 z47Iz)5nt7RBWL0rSD1T_>Hqq36q!KSIkGXt&8G>Ved$PyepFy8JXAtBqJgx|-h&s^ za?Pww2r#J9s`^g0`l+laQ_y@<NFZ=`;!Th400k9wyvM!*_J&BY zFh3%w-dXGfr$v_t$lH&wDvxo_4(Q&{=jH-Ya%RIzu zy<blM+QOeS2Jg@bkz-4I2+sxam6=m`D!2kh|ClmHR`$5_ zzzW7`*P&HHG;`!Dv3MH(Ih7We^w6Uz1V#MQsFH`;Xw2w>wTLd0`7ch;hZI$buQTSo zrH9_PvrL%ImKu^*Z9<)AX8u@Jj!}uUqu5Pq{&^O_)BToJNps4Xp$3fPZ-~?gJGQnnBe-DeL zsAS9&&RP5!$^h2Y0R=A75obg~RPUC(Mw(3=GWpn(4JXd^}q8MCz_0@a}Ba zl>zFaQ$ipvdsWcL6i|Mc)!)V4AaV)>W{%Jke;{i#(VYJ31ZdW=G~DE)R7M)a=TpH* z6`~8`u|y(#L4BC6rl0!SAG-%Q)t3A>8&tV-aJR%HTE9X1y0I@crb#tHB=4VISB%bj`EbqlO5wRSXme5l=~{o3r;q z*v};t5$TClQ{j<YULcs(S-r->@yAc)hCbeq z%Up@7L#}Aur;A|Bfu8!K;5038d!cKB-W;t0D7ilD1Ub{@;8^)!2*jh`aaK4eEbw2C zyrAVw+jl2m&_ox=XqOPQ{Zl@tKSo8XJsJo-%SBYncbRyGikb#Hms9Hph`4`B`dn`) z^AhGyc4LEM>_K0>J1g4{HSV;wTtej}?UrD#8DrH-$j)2F3~5d$ds;fy_-(KXm813n~k>}naJA4ze%K67t(B9hubV?hMfML z68Yxi3m8ZW_3!NmjG3lTXHcZbuWs@+ip6QiVajveW@ZPIWm8%2={|YVG!Y;CQrO5< zfX7Ga$kqAM*qsV~oo_@(vH%*Pq@*E5Tde(;k!Ddmi1$xp;22 z3<~Z?_@Yoc4Qkx!Y|jf&AGFD$~BSIf98PuNZ);8Th=78FLncg6anuC0ab>FyFKP<0KAvnW;b>em-oE+UBy zW+_{G6^{bnW_L(daL)B+=!xVx5)r=UzF!G;vQY(PI2qtAjNc{GSTJ~&MA_3F+P5!> z_zEn=DnfS_UuiLxqENII<@@-cotq2~j4sr7C8LJbLM#MI3UD1Gc}O!hDZlqe(Ew;l z`Eqc~X^iptt{}hSaU`^1^Wx2d1N;5Bvn4RI|xrP#|^^sNy`7= zNz#K?P{6*>O7&?v0-}ni==aIGolu6OL26y0z7UgZ(IEMxXKz&*Two^JdI~@)!u60F zxX?fnooN+aXR@Y>i448(8;GPYZ%wR_-{mf;Z_|}`61pPQDYPEe&1_!=N# zJJaHC{HvL4gN!X~sp!Ob*}2E)Hf(i>FJ>Q?3ltSkR(hWf)NHS;@}7lSK$X$alj})t z^eNq?C*SivB`P(#Q_n373LC~M;?AyJm39&}MvrBNM7UT5!%kgE2vGVk>};z__EL0X z88{3)BN*#9U5jsIQREFbGReL1AUGnStTL*2*P3ZxkdZ#no`l>84h?u7vC%E4{e+KI zrS+ehS*$`&b(;svgtb)V5q;Ic8lXxKBP`l6jJzaaC0j$UyK7&V6j>57;a(EKeNKJm zhbYi07y6g^xpE+GKSZgp+NlguxHTvwRbVDj+m22PJeYpwqs?HCv@PDHXQwA5N|Wl) zPra#j6$K!ZerTZJku)u7!R;4M<38@z=l9l<>Y0$`J)SS@MgFa;SxB%dBA^KY+T!Y7 z*vt^CcZ|1y*xq6Vqoj1IFxL*#O9ba@vP(!)hvTB;nzF@l3xlt!^kt}ScRCU5r3IK( zIRH7W`Iq(Rnib+0@qy9tO zNy!8@F2;3TD&YOK@Q0RptK5&PWuV!F_Ppo(60|w2Vw*TNcbJ8e9^jKJ3lO~gz70^u zEU;M*I@EN`cHz}}l;V)7T;S26*{@{P-E^^sTU0hRP$6Y~uX8y?C%}eAOWsTYwlQ}1 z8Dj-Z{JjP1QFws^*`|xTX67~J)(bYWhdU6WU@*mGL_oZ`JsV%~z=Uqb%jMmxXR!a| zZJC^50`@a)q}(;m$$xEh@}t{nx7Tv5Qra8}EwxbF$)|fL0%&ZNc8?;->V8i7;C$#f zi;M|#c!zc(-VWzE`HzkN$VvA9SUWs#!!+8kRUdWH^}U_#QI>BT!c%Psq@Od0y6ix4yCT0Bp_U1pZ z+>YwR>=aeK4eJlLAMJd0_WU{84nkq{?gIg4W@*OW@udzz#-Ue;O*kZvsVC?0Yu#mPQ#|CdmE7hEqCI!ciT!D2qlQrdBs<5+5!rLtEaNlJVi z{F4zI3r;vn*zDNw^1Z%$tGMkLCWYtq1#Op?eLfKo85HB@A`A}8pQ;7K(LTMVj&(*h zn?R$TGcvIXBaFa1{9}zsiAo zt_2`4EVWRcZ)K7-lxRDg`KEiIgIHh@C&AhT=cj`MCNQ!Ubxy$QtFEx@@DQ!cT-9IJ zY(&=LFzht=BF=6Ha`D_NQ61PyR8kyS=}fvMD2!Bxu*wR%9~fVr`?y0$#fuE*YrQ4x zu(#s*P=g%QQ4j#%K&~cW1`P}((5sX3POP3h+5D#DS@ZZp>WH(+{0HpFfQeLqYuPq5~8#U!$XHj&Q+muWHW&ZwkBr{4_NL zups8?+EU*ry_+#ENk+=3ONy{*`O=!XPtl8ArP%lgrT84raVUV$CMA?lnMSwM#of^` zH7xvp3mToYax{Lfd>^p_2_$w=vz*z23bHv7Sjoh|#TBSOVtdICvn4fgJE6aP1>nM4 zb(3cjIo3#_aica+b2kqQV7ATu=TXaFhYF9NBtU~WhDhqLzc6K(A_i;F#Q~Xkr_p-x zbj_$n;ySTThy5dQqvEVoeoh9xhru9ue}%#()!&(#I2VKMAqgaroJyAnvrU|WDi4oE zBl1=o=Ud13G@#+GJm2(I`r+OgV73UOwWc8K707&}*|=KJcFmQi}?wLQJc z^@S`9Xehr7d+n})WyiV5m2G^X5rA{`mI&82lc7yPuQhG{3;;TxW!CGtCgDqo$DgV zEOF^j|CI3S^w{F!8szk`6ZRZZL~C zl7%cR!%p-AYmE9Lx<(oqDFRs*x8^*ltb|`J-JKLLA`~~N>)3ANu35+s06_Oy8q(}& z6AY*4M1XH59LdZx;HFe&&lPY>CtGyHH2>{gkH zP^z^H_!JqHf$F}7ZIJHd!5EjrruBn~L5FAt6#Mr0%Hn^n5Z~0%{_ZTId zSMc>V9EH0u>Z6csf}IePJ`};b$O)vfgxK*ts=-THsvEl9KX5q`wvakUfuJGHhUBWJ z=~>UcgI0y22k-t4yhg)xi5dUWAz3!`@zdmu)rm(U>IV#$^?FZ3#`sic)qFa!dD011 zGep_n+t492XsNd?3|Xpp`rE_hhJl!mi?4WKIQ_v|^n_27p^YO}*=rH}PiUyu(#uOk&0rvL*Xa&OAG&=h|M!$a z*Teu}7tccJ4a;DmQIE(}_D%BbGFc{Rcw37|TV+`Y|Gq+t>HCh{B+@txp^gpgvfO^ z%-`gi*DOhw2RiO44>@)7x%VtYsi8}$4JIE)2saoa$D$IJ;{zbjycXxD(S6pNh^bL$L!_LorVdU;31e5#IUMAdR>vKaxhA7#_bh&R@B(^k$Z&g; zFeh9HQ>6-qqL4M@Ac2_&$1vzo(l24B5I%rLQ=9myuDfprGK~)iZF*9TRE9KDUvpzf zGKysFH4|afgZ2VA7PMTd&qe^2;c`*SiDZC3_p0*0^qZ`;TCy?{Oxg4+q^az-3OM~J zEkf_p$JMXZ7WjnDhV+zUCP4y{`!L=Qb~>2gaK7Q`YGAmu%cs<8l@sEXw7WL5Vi5A9 zq^A@sL~ycs%Ln~eUj-il6=h!FwY&b%Vo#1d1g-7Q8$6GKOoO+?yHO)dQkdkKMOp|w zc{M+`=Sf?5$ix}*obrcGiyEQL(t8oO30T+{E55Pc(gqprOVp;;5W9o3MPy;W=Al1? zwim7SK!+-Rf#eRUHM)d;afzx{XpJhC_RWj;@fd z_haZUn9!W8v_zhd-RHQgaK=!6A%vp~YeH=xKY>Uug{yKOi|`|$D>!?z6+up{T8*Fh zk-~83k&NN6Pz7%Y9pTXu@$%CV>e)L@ILM|frGmmK7!uRe7m`6Kk@GkovUvLE_k#dW6^aUNCk<-dP9*-tfA#(u>sfv8~YmGep*oBOt^my6S zjLfD!qwR)|e90s}(Zt}wN2Bgs4vmTbai&#iOsj9rsuH~;0Ej4nTjYK!aJ|rfUz=!3 zQ8Nv89UW|1*(Ode`mNE-H5of;-Y#)<@uY!A_jM1l689M%LV%~!D5MD1aFQ!oS;VMN zwLPG4Uc}&f0h>I5h@8zRFRo-0qKOFKzZq#Ya_G}F7wo<8SWVqcPQU^+M=c)Mg0w2} zK2w6H%wkY;Lt(JrE8mwmUan($QR;3}W6#9X!da_ojmLi&9A4=ic{!H9?-soy>-07p zS*SVks<^H+t2u@i@`wC4~p_zW(HUL0P{s1kES()Z7!(XSVH{O2S;A@ z%-csq0FXMB(E2g|WP7^Mz}x!rXaRy4(Mf)Ktv=nUM2gsQTkkm0WfPEw~rGT&YtKyE2en+uYemzeT(`0<96{94eJZi^$tT zT2dl*&B6$&fNBjH27?yF@WmPCxsbKwC9_+=v0Ek%!EE{1nyr#`cWx_eLC{V$_(X{- z2QoIBFoYBtTxqx!5QQVuxc`aTBND3DP}c%5L>Np%JQADDsiJ+aUfq-E69w|x%*lwJ zpw2`Y3IFnaWW2)qG>fO0VH2icU7u_qJ%k44LUSZ4+0_IKdCaO2N(YvjZKkA|;sgHZur1IU^R5zOA`XPap{+4Q9pj zw3)Aat*gVgpWhHQm+3U|#vJFbwgRpRiq3EaU&)<+TA4WswM0h&f|XS1HMSl^U-==_ zexHw(mIBqQ;2PU^3X6~OwPB+aX$Z_8+5!fQM|%D#(P0B}RwpJ&eZ6HRwec@`_L|C+ z9_h{E0f5Lyq6ZoFnQy~nbGF*pm!=xcLtJVgvarIFgJca5zLz1@q=J*ftXt?8U`b7Zge- z(#Og-AqreQw|*lgiKuklx(9C6OAbp9fpjJ%Hj4s^-$O`0rVWqR_4CmT` zfLs)7;dhGr9-JQK}}BM5VO9z z1t|s>Q!&|mqFTsVt5~5TG|M+dtJo|gsrE7qhG^wqkoT3E^V%usQ@ilqN5pKpt~E34 zXS1Cd6>}dSuF6URhb9QJi_(i_5BgVxs=v>XtA=KGO1+V(!op)1hQ`N6Hqfc%HA^Gn z7LX{*FX~+0>?9*aSLMy#Ur84q^y8Vd3W3}7;bC&(TpxV%rQ4y1ex6Pxa|9e`$bO1l z0_U7}zm1V0wQl>Wm}jV!L3KLw0TEO8)IMQyuG8I4X0hMOv{ey@nCl4-$eB0QVZ4!? z&w-7jUwYoZOMI6rEGVRy_YKmBPaeg>KXNq0Y16Z|g-q(NWbT+s?nV2(rge}DYO}1q zoULW`6&rO|6jy!qFVesvJ!TYe+cqNNFPVSQo>lp?3#|jr{3o`oObEv^nwrH(pQbk* zGnft^{Ih8xNu@v`#f{dH@cQ+gy4DgXP?udB}~2SiScC z*eM``nMotkjJ`)oL))(-`bzLxXJIg6H5MkHL%@0oz7_^1UOz+lQJ=f2IT8B_&^EAOH8x&DAcnq~78!R?#48ZdLJ>eqUl^G!!tZru665+==h8bM#X9MIb~22ZwODi-Iug3r+Mn7 z=IH$+FLcKNIbwb%P`m|^HAqb7F@`mTXw@ww8R#ryb;&VnwBIdRxY3lS%}}PT9Z-w) z56zFJd3tt94uz`vT73huDvwZJiU&egKmy?@brV^?>aC#3juRI4s(2k7k!BH^lZ^3% ze6L{uOl0Cu`ceT5?FS@PK#uI)f7SC2V-nl{&nss~>M-{<^y}2$mKq&E1k%O03ISah-#^-l+1-hjR6_q2n`1i;BuDkkMGs*_iHt= z`u75_{gRy~W#DAtsw_d~tt4i>trt&i@&fJX!4_k`uUy{g?JDdxy7sxkuP0~839tLH z-~AQdc()(snB`I~g=WrG1@gtp`i@2+44QPm>)b ztN}gR>=;xVK>$S03CipxLzUEbs`q+Jj`K#Sli!$}--r#4FwUJq`^zSz%9TNJji%;; z-SS}F4%*CS9pi9adPBDkl|B^U#zJDU)Y*%1O8lVhf75@j2_VPBgo6v9a#TJ`&p6fy zGNI6N_<#(zcLAUR!OWt_#{6_2@tnjP#(sX2wr=LJ2kY!LFN8zg=! z96M?aDF*By>+p)bc9w=3=t5dL{N|TU zHw}+A2Uqr~=$Q26o$XryLU#RZmH2*kn&OiSdN{Sp({M={fb}aTZ5Xz4? zBj6)8FmvO9abO~rz_CoYqa$xx@|D&SbXu%L71c=bquVGN6nS&Q%8O(Ot zIKNU1Xc$;1YzE!FLQ|hAcwzZ~oQ1iypk|#twY~KE6;*cB7nE6OwBnZFM0|bx;aet8NVST9peYVMRM*yaH8RIH`v}8AiU2{J32aCs zCMYfVAnGEZQ~hka32b|d#CBMkeb`^`$81q1maE)I@e$#y)LC@$d6U#V9LsAN!z(N( zW6T{>4z8(Ai|i9K(iwOXEz5wX!g%$m-A_^8+eS|WbL52ruZRAE;pISX9KnU@A&X-b zt#UwCdF?uSgtq63Vz~af&q=uSJVAlL)oSU+WSWfO3YlH*_llbhCV~L|dePU;gj^I7 zq4Pwl6Pgml=_^&)PZH^I^zfWCu!LdUTy(fHs~4x47SFLIunvE4Sb4xFHb=+e@jQF$ zNB|4j2DLN66)^f?MBDS|PStYtZE_`MFir>A?*HDCRmjF*@(bKkvq)JB=pst&Fixv} zew+|#VWac;vrc4TK7a)VYX1@m@yxq4e;eeY_i-}3p|4d28V(mRDI@>t9EE8DJn7xJ z&ort)1%|Xr#WDkFrL@QfvC(y%Q07^0d;#+3_Q`4*I5qwvNrR98ae>UwS+wc`8$C_C&pOl^avzzCO-BN_j8tpP zWg>yJ^F}W~x8g`E5H}C!m*V6v(hAEUQbn7ikU9*W6O4~I2}4Rd%2%&lq^2+UmC3pU zY!*pR$fd#?a-wz$o-qix0()4QLgv1SKyClnDX$FfAz0kfgG8^|2Gs^7g0|^$t6WOh z*H_dmG2^n14>b7v%ruLo`n**H)9AO3~xQYwdirijno0v4#&pRF&r54FQM#;f7|XN4mt&zq)GgdL@WO=KW0QHQQ~PB84M z#B|EpA9(dR31~xhokkdvxlG>86*m3O1SJIhsGtRVJx|;YR{k{$@BDS`Dk|=-RCh?f z0_m*g>F$4N8|qMunn!hZl|-5F!zHIEjznmOn5WP)!xas`QqS1A7OwK}2>rfgJ;bO* z;Cr9m$F%9aI&9sJ_%e)${02`Pk}lbj#As{Q?%aWs9(#x@cxzySkj;_TuT^EhCI+7J z4H>*K1pwP=7_Fc-_2o&iDUp*A1vF^qp^1NLxJTx*tTvzxeN)$_RJ~#eiVI7;vpJ1Jd4DqPRvz3R3NXy_vYrKKs z`g55FRN|SioQL~nl6|WZ!A$_R5inc?u|1UwNV{TTWOdv(>p?#ZEHS!|)5z)wHHwgq z1(Nz4;z%FGnQPADh=%8}h;gNm=WQl6(tUBn0a^$Hf6@^%wfu^L3vkzDjuJ35SGw^? z+yhI2+c(A}IMEMY_YNswzcy}I?HR#!OeFbqbV zUGvh3Ll~}1h%`h<=17lY<6xP}@#R@(YE~n@@TheOqZ}%){z>Az75XH}O7sg%BtlX} zK4Qn=wvw_k;yF=G)B0}ufgQ7`ElG6v9&#^2xl!8?N2fP(%s><1HtC*kojPGpR?8dG zjd3{keKU;^cEr)FfosfxOf0sfQ4X76&JFK7@Sl%84kH5`ZB?m(FZ(g&*t%?TmIPKs zdgDlI8cuN3x3JKwv-)x}fSRi$^Uvsd>jpEJC5sU`J|C)8TP+}Qsq=Kq$pBP3k2LF>) z1{Q4S$@@@jJo-T;#D%`4sYb@eVhkW3+C({COovM}!O9b@Wk}zsPmk+9{5k!jx`8ns zjNiFjtV8~2e>CB#83p;A0TWUTP!;Z+<61nhkP1hzU_emm$786{M?p$Mg&9hHh5a1}b4 z_Icjko3F=?uECE1-Iy&!xhL#k6FBn?K{HR?h_=4qE9R7=OBBoM4xYM$6d4&(|AKN# zhDjAG0m1C6I37=NwS%XX+=yNbQLtm`1T_>O#|12(0*Z0yX8;Lo1QIsAsmb@Q#bW{m zr7YakIpkqS-dGdUuuKmyBMaC&=B(3x@Y6yXGFW%k2#7Dm1Rxaqge%rO$91QI>J9x6Vev(*q`KJI zg^R3iD`@h`R5cM04eoTi5zLWkdl3LYd+Wk}{8a0ph7(g$!=w$vAP*c}wwtuJN-;C5 zahE^+cqKCt`|U(VyeN2N(BUg@#0K;-2u)B1K=E~R@dwaZhgLw}p{@Uv1k{}@#on=X zK%NH1H%L#*w#mi~>*Xbnt?IVZnZx;%gS|npM&mexAGyr=L63k&mLN zaG?@`KJ4_61EK5WfnWjKd`q6y4Q8BX=ljn285M3^<7OQ4$Sgt0uSK>#tRlgJ37?{* zaX7^yh(DSf*)Rbm)`^h9WPC2R_irR?B)6Xy^du_Iv*j*Zo|RkUwu#?-H#9!Gx51-n zx-kn4#Cq3STZ|jhl({BVGavX{5@y+UR+baz8SG$~MD16F%Rln9ryzYm$_Ns;CBV1c-vGVM=v5@r< zGMgIrH0nmz48bt#Rs;Q>j2u*;(9)9eFEF!_wX3wMWG1}&`ceJF@+}x%1eOAz1!`NW zKVqsI#Tx%&3A^||Yo0P{a(6fvP0ywt&m69&kSB!C15ne66yWv84tcqwtrJSmo-vcw zxe+nO57yE}t8ljzVX~;B;^<3`Hb{hQZSa>yL*R<=aUd9z#TE#);DHKrm zvrfivybrb9K0!jC{-M<_goTuaIkYqG9~td+Q0B=|aD!bT>S(E{gV%3VS!w|(0ne-t z-a(lHpthX>TJU$ut=iD7Vb?(k2Ym0l-s*fVRS^F;y+d*H&a*$0kagS#kzym{of1u{@bJoQ)`8ZSKQj(u_G{_CM z_=p7MES;5x6T30cm;&O|Vu#Q_00jzTTriTP+?;^kDaHoh8T-OHfb@fhGmx$D{Pi6S zq8c)8Q)@HySxUXGicVb=4Tl#FltFkci483n+~mQ{Oz_`J@sjKTcWEpcV|SpZEmh{0 zejL+s^ld&-SmO5%w}&+UsQ_&}nu6#jHcEr*ZHU+39ccXP)PDXijNEnLWtrkl{xW@j z-SM3>c3_-OO77*o$*XRH*nJ$BSG}#J3KMxEyC(6PsLd*c@cn!i9@Y&D=!$zl^sF)U zfZvT~{CX2wP>xE@uA~uF%mS@1X7eD%5cI3N-pPDsXzZr=|9i)elbgqSSu;p6_(oo= zKyj=!fpGrv0$||3EMOkwv!COP_d2@6IZ?B%)}vI1c#(R70OHeWv~`|4e?fjK-;zAe z9T%WU&6sL58L~shrm~BS{(uAWZ%xOmJCA4#U=;E(V$XGOo>AgxA%mxJZy#G2awGUh ziaW^oiyxR!lM+iia``G|x%ChD-phl9`ec>T{?{xzxwjPq(I?xF#_I+vbPTuTO8h35dufhQbMDeq7@A_ttEvF6&(M0=E(1};XNxC z_qW&DVVp0q`zNWC5a4+l4A_g~yFVFEaB`CP3^k*ZUfw||+YeF>O2ZR7q4{GY@X#{M z5|xwKt+NSwWz#o!*p0q^&NaG!@r@klb2wPLMaE3Ask10q&4*T5lo1j!yr-p&$(G=|NB#f5VL**0PFy%xj1%`(3siI^b-Om5<>UuxL?z%E-@pcwSjQJDhOrEri=JJp_8BdJSKk>eW6bnaf z!iptxA{#NQRPEJI=DtB?ED~{5i3s_YhI-Qiu<@QsW`R#Y(ts)f{A?j!S`I7~=}nwA z3d(%$u`u4k$jgT^<2=%EQM4DvdwAkds3YrwzEidc59{VD#)~>D;?|jk!sS$5mzYgr zWQG7eK*GOAMR^c}b)G+(*RrA+WbxzrIs=`M{_r(5X9{4qXZLLZ9rQzF`MiuQ~oRQBfc{LOY zw>4FG3n;#weH7RZQ{n$c#~8?dF5<9C^ENq)u826Si*pFz!T`uuZpOJWi!%pPYSP5Fg8Nlpa=q+k7JikXh7sB>pBx_e5%zP_J>df6xS};MF zu8=p3TL1Lv9KtD8Ak%X!xsTcBw>^U*V7GtF6}A>s7Hz46(3FY``RRlpq^HjB_r zA6&Nmu@eCAzEcq2XMRhh(UlSIFgdLUy`&iq&GHBC?%zMsN5nMmYtQ@nWp|2F$3X82 z88u@Yv4Bm!oEmJ^W181Xc6?6sX*|cl=J5mxp+^r59J!g6HML5Pq~sEmKR}BC&c)ZZ z7>>QGHaaz*>QE&F9KhF`;8#o5S@7vykzzbdDkQl-Jy20hJ>a&uxU$-~H<<1K7X@cY zYP`2Ny)c$c>tytuZ!_)5-y0tpwBoq`u6j^Hm3PH$l+jr$o68?Ub_5o0auHqPTGgQ_-k@^TOpPlD>IMY%}hc97c{w z-HZ1Q=KQZ-(DW(=<@GoXfh@P#KeiRvK(6H zCHq9SaF*m(3|j|Q!)g^b2dTH&S-KSvh4SvY6(LlN+S^Y}Fy_(0bomYCChz!E#w3a@ zL9xQMk%)1s%EU$Z4TYJdzIOM(^Uu)puLxnRT&PeK3rju6rInt9;Sn{HYeTEe4)fto zxcn2p9l{Nu#k@b-3HjHYTA5oSYbTS4k`d1d@9kvBc%ukTdEoAj@+{rUz74VRCv1e6 z4kU{Vp1%zC7MGnWS_BIGt|ksCEk2AW#*zxGBcuKy(~FCZJzt?k-3VfL~pqyF2gv8fJEhtE*Q7EzPfrK>DkDASIqFKgV%9DbMhx2=W zD-j04vkWaoX=&vx4;m^hpNXcwY4ZT~;V@l;4vKlY5Qh2m4s%ZV=l70+$%zlFDtOXY zg;R@@LCR4f>%uZ)Pm7xakePcc*OGnJ;{z7cuqv#O$l%@uPVvmiOtP4DqN(5~l1dhK zMEMIwFU*TRZAsLAnb@gm{M_S+IJXRd_#>}_*uZpRHk)d0s;t&Mn(=~)$JwUwc_-$E z@{iH=O$(zMQO)vZ^oG))lgdD!mvvM%;15M%rLF$IK};9K0@9dk`O}l!rEqYuTR-5^ z&FOV=Pr)*VwG&04?Gp?p3?OdYJ-&b|k9882f8P2oJeoYx4iolaFfhqpm{%Y2m;hpK z6m;L;uxr#-CCyH`Ty_9W+k`D*LL6PgXEKf;{eO)95 z%m2+0es1O-d@@NdgwAisPD)G3}K*?NeecJ%A*wEU4w}u6RTpfhzE0` z^}!7c#V)A{QGwQy7d5D6^oz=*#~fJ~h?c2a ztud^^@Cn`&b0Hr40HsQ8r;LpbfpaggjbG9p^QJ*$$~@CdE(y<<=sL9wrb4*+#V~JDo%c zn<^b`Ybud9@Ul&DKoL}Ky;GJ3O?eW79hf!R?MFQQ7mmRF(rNfv-x04n@ebU+ewDVR zG0s^LybZ_zd7cJ69-SjJu)@*fSS57vmFQhOYXqJij=;+G5}L=4gbjhJLIr;hOH38p zMhTdr62}&2@o4HUDT&8nVf*SG$;87}$*N<6#qYiZyeKz#Yq<0;cVw!aNj(2Z`t@82&NM zE6HzcW#d&On|IgPz%stH&CgN2mkTkY>^BN2rslB5hx8H~ZQSP;t%XFZb``z0B`Z1# zG146>;1b9IXdNJ#=;f$cG~#x0;} z_jncl-OftS89;JdfAw$V5!1Gg_d4jv1%0^emM;GlY(pqtjRGjgm9*hR%zoV=A9|kL z%_j|IMwq6ItfAmeB%+)N0N2jPtaB)@ONxFJn2v{7Xxy{+63zc9b#KSEc!X8Qa+D(9 zI^yIcqPCrk-;$tEQvI+^5dNro3Et0UryA`>GHegsu%5B7@C4|O z!AQ;>!$Jj4_i5McXmO0^Q{^hf@j&o_MZlKX?vDmn|Ez@oge+XvS`+G=3W}I$tk1^s zk)>qPxo(lKFbSX^hbDxY9Nqu`1U9N34&q1obz}(FXWWqwNv7|tviqLw>B39F=X(tzoDF>})P1bl2 z6Ovf1g5JuqY5Fh(%x4}QyFQ@i7;W&;Zb(I2QUbDlD%vHn(~-9?xA5u)iO!)} zO#G~f&v|5rOpdMKco{$V_PPcX(Wb&$VWjE7;8bBKK6sX4a^!)Ur4CZ^A|2W_L4|A1 zXYC#4m;yD-P|wkKmIjPUEyr6y(Z=k(?=IXaI(-vL5)z7kG)1a&1dCxMKO%yaahz`7 z6q>CH(3nE_X1+>vgd74ZeP_*eR6}VEts!Z$s`!|3w>fvuQCKU&lq409NjM_|`=Bwp zzRHA2fNvqH0>ghop}ZgZY;TIpYczuquJi~1e18GycN5I1$EBltrl6vzcd2`deL27_ zZpOgX=Z$siMSN6L3!@;xgF|@;b*0x|COj$#7}K_6OQN1Dme{%UAy) z>r=w|=$)AbCn%tS*+Q5iwkkK^L&|5PkKG~ag#s;}$ws>-+ap4{I;7^kC#;zc6hX>W zAktUzep0nUr&-JQ>f^n!bq;9UAAAYQFR51Hb;G~Wd3P}>$f;9rbQEPio~a{7@y?MT zkimW}6;Smi9r|rwp=lUg_GPo$RgjQbEkN11a%EN(2FcQO-heGv@ZYdHN~d=HkkiBn zeM7TFu;EED-zQqs%q56)hyb9Y5$PYL8WTv6zjz5z(-mW|u>Xh!v`grCeyJ$G_Dwk| z1{N%GeR3&xZE@+=lAx}{(yCwjS$UHD+TEFPPi#@h;%Nhc)LY7P!;n=XqyZkXii%qc zhGvYXnfGBehMD8R^1sG zB3Dd^iX4ak!7{D;Blv%!KZ}B{xkvC^{@A@tn3_IPRit`_v#zZrw$Q4K$ZfT>#P>b5vya2d&YAaFYwTIE8$u@<@m0o&7vqgCZ zIGnR3DWuVq0PY@qN8_Fl`V^J!tJly^fXKM;5h{MPS>>t8kn}PSE^FrjA(Np`R7G{S z4u@%?ZtgtDF#GDLLxCzOYz-HkD=YZ4$~_HlN@;#`n5JcNK*Kv<=qhdsMXK855`7p( zsI7mm&(b9eaRVH>72b?q4chjsmbmW8%O!Q@$qrrq8*Jd)yWi6-%+Ck#Sky6~04}oO z_`Y{Mkn6c#%45pED3IM z_pR6$_<(36AnN%$1#wq0&$pVB4$9T$*pHHF1zQ*=6Dy@rY>M4@M$f(*+%=sw3~ZHU zVdoU%0Yu>{J5|F+3(Vb4JLlp3SjV}-^>lCA|E2(L#_7u*J>t`@1G63cDvdo^7bDkC zfzR2R$LocM`zc%(yB(WV5i8mLYpU?4ttot8s8E%| z;T$3Z+h#&5D`5~%hmB03{{jpFa!iuiT7T;@5miq)NMm_7Kk^t^;-$_mORv@h&6123+HlR1ttQI- zDHQZw3`jcIHH3mAn&TqA_frW@5<@Na#0Ee7xQfoL3@VX05x_a|+WU*s1|<32PY@yL zX2}i_9cC^EZh*IF(~___xPc@YQ0QcxIGp39^zb-QGfpI&1S9IswT}RFaC|5DXq^laUo_biKrZYl3Z}fNlDJ4t8KO}nX|}U z10PqgOWQ%j+*{ym%3hs`(t9kCSB@)}q>3zpCQpl=t5q~tfLA#(pm7FN(!1S7z`C|h z$@CM)^`#0B46j#Z$exBOPmF0m3}5`B5{4ZA5MfW{>Dc6R2~qQbZ2h54WGD<;=Ch0@ zpmH>Pz$yT9Ud5ddj<_T5I(GGHXNs?oQNjD_!8l7I9_rDSW?(F24gzm5TR7cqm^jq3XSydLz13pxk+r^P zg}w^h-JFIMeenOufu=;gVh;Am!yd-;+nzX+ks60mF-ERIofj1D+kJquKe;wte@ww6 zOV1R6OjR?maFbQ}^phsnV~2oxT1KCLU3W&wO?$|yHR3}s&{K{5oo13&Dl&xb=zPdv zC!q6tdKdXt;Q@oQL6i;MS)TkfP%3cTN8$uFNyA3mfvbU-6wMpoO_1KwgE z!$_rHNGRFsEx*@$O|@RD=h%#$j-3Pb?9viU*I-Ejtip_7UQN;*aHGzt$AJw3rX?o| zCKdqu1{F>nRlTWqw+DnJ&d8~r9B#TlyN}6pu+5fPlwRDj1V*Gxf~sZ5x04b{`U)mD zT&D4c+PMD7Q^%&c0*^pXQ3YkZV7!17MQ2z;FQ9JQ5F@X(TJ^x*-ggh)SBcC?cC1s+ zM(@vjhS0RzFX!Tf4N{D_GIBmfS8T;b`I3^;~V6rwI|04Jh(+TkEFZ8gG|f zA>kt#Z-xx#@jju8$|-0(C61F#m7dt9e~2lpndz2hkArRcwejx_1^%bUa83;*8f9OS z_9*a(#!ou(O?y&Im-9)>FDay;KSYOw*KI+!O6=^{!E3N^BmXHv%k;+TvBn_!4yyv0 z2r;iMx;=f5p*uTDj|R1w&$?&x|Bf+jhn_^m4qn!^KziD^-v&wx_9%jqg-haQ0jxt| z^-dMu3?Fc()WEX*G0>(UoF1nqB#zP;awg+T~u0m5_hHtXatxLm?qm^&y8&`KDU zJ-32a|G}3m4?1X3|NfS+?LhHXe6Qh1%#aq`E7`_`g8+Qr6z(a3@W8w5-ri5vqY-(& z(Y_L&yYTmaGP_=qSe6|$4Qq}KsipYYaM7r`DSfn*_e9&)=kTF(rIZXEJtWZu3613V z0*{xH&5VZ)mltmtR%6Op4VJ;aFl;Y^Z%%q^iX$Jkra@c`y4(VQlI%zRp~?2|znOXO zZUTPbthX0U!So6y!jW?@T&EfendkUl!Wuvu1Vcu!M zS_zWPtGbUWcBUQ30n@#ul=Pd(EA_Be3mV{ONH0aYj#G%sap3^sv54KGQ|f=s#rYw3 zrslG$(=tD`*_C>THBgbqQYb8L8SMtB<2m6IN&|?GJSiVdH!CNpJ{O+vwmirsAo$8G z6)ByAE>5IL6lv`$>v2&y>{i$FX35?8##boy0-5A#4nq-O7I4B{VW%y3+MxL9uzTzH zx~#SP!HZP zOBVLOtuSUY3=t29-LU?*d55dGww-}rtG;QvHwF|w=CE*)UrTexL;i{iqbW*H$a=L^ zdwm;?yOv^@jsyh5Y=%zYxgMEi9D?Fee&d1^ByUc;ev|U+8+U80)`+N1I^uAc-ag8w zM5nw)R6vJfbceMeuXDcSSi;h0Y0L1>(taml74%M8PjK>Fjqx>jDMBh4P-NwY$K5IW z_^Qjf8w!P%1t%Yky}iWGTxI%%Ty67I&PmM0@7eodL13@Bd=%$;o7 zxcO!Z^HI;0>X_c}tAAb-DnJrbyi$IJFi!EGf_R+WF^8?b3YN!wtmTm6nI*t_?DJDD z3LYezL09!|dKJLsgrX>Fs)m=hD6Bt(4NeX8v+e$(L2Q*|n9xX$(;wb8-8LjmPLX_| z{$~#Ul6f?wb?SZ6`;R1v*CK?%qE=+X9Ie(0D~Bg&yoQn3dl` zJSp|A?g;Wf!M!e>YA<{6&e)L*VTaJLOc%~-7z_qy6!Y1iyH-@ikSj}ajWFIffqlLy zLWA+tp8Fb^5lb+*KBx`tx@V2p8L%wW=ZY)g@c_*e^%v|0f0rz6rB zWHovUSN9+!nq(|A-GfEL^_7X(F&6QGZR4#HM*vIZ!|H8A?%@JW)}~S@n)SS_T+61< z%PQ<%?b1hiN37WUTTE~X_*ko`1a+TN%L^y*Skz}t2APm?f0d0D*zC2huMKAkUh|NZ zKsJbdizeVHVq)BNNiGm7@^rZ_k;mepdXI^H9i;9X@fWH?ZAVT*j=(%5um)Hx5Z&d-q75)w>#CC{^te z4IdI-kF&(EygrY&;=hAAJ?DmkHe$g}B%r4*TpK#SRZ^=T_hJLVo!TZXwvNF81U+T{ zVDjk(FZ_KqkOe-kF(z*J{$ILkVi_1sv{)6DDF`S5sGK9)1SE|#&oHTjo4(*LS}&6% z;4p(y{0cZq3pUoKM&A1OYTkUz=|-T0CtMLN(@6k)1e?upm(ZSCX=ZNTCM^$vt4bL7DIU%D$w67D9MvT8)dSD3W#7n{qu*bf!+7(KOgX{s*-$7sZbKt+$5F9)L zI!>y&w>JlD>(OCRRPYR5p<8kA3iPqmi2)oW0#;1T8=NqXiY#lg`h9NAs{y{Q*iGI@ z-b=RL({^tt5f5GP-Tl?;UVpn+jGWIS_j%O4U!)Z2eV7snf>C0*GxuzN6(k;6RQ+5jM7R zid8WLo7at3kCgFx6!}7nR*~|Zz@P&voe*)k$2EtWf{_wANEEl~<3tDlQxeeAN80!&j4ZeUfA`_TqXDbjs9Fe5y zTJw8Zw80%ac?D_Z^nZGQ&l*-$IdtU5kis$8N-`0)-O6M%(E|%TZ(2#@)AaYh#4iaL zD|HuaGq8g|eofk47=UtM`>E~Qgp<(Yr=6h4Kuz*66POL4{$-dI$_?(Q zs09IK2QN6*ZjmI)4X*v0rw^ryTYif{-zP%Q#GSK|MktvRKLGx6URh+2V);!q<|`^k>Dv+oFlxjSr62P_u&$)ZfDksX_c~6CZV5gtP{a2C&Fl1qQ?}oUd9#$-Og&!Ud`GE8kv9|M)*|vPmX;>r8 zZ}@MSxiz9e4tSS+2x*cb4-Dmz_&{E z_VGB%W}acWD%BdeZVwir{&vOdnyksBYQ=NAqn$3}iP{c3`pE}EWx=vD8mL@)3V<2! zNMzPpOz4HMqwB82tN-89BBxl-tx)*AT?OZ?=WRe{$q$xexzOY_uKZhIWPKR044Ol}#gUy@Z@n#;iQ%aYGwdhwPzM=ku(ee9>^E1u}dvJFkD^f z;e7f+x5CGIQ%$ek$Sypg2uDKe&z47``K!=fu!kZ%Xjo8t_MT7NnEz_=HRWIw{$VY` z*CVp3svh^LS8W6sMWV&+cR*hhHK4nJZyFPlKR?fCRc7XLpN;UBnMaR5&j2}lbM>y_ zUD#YinRha$X<)9VWK^dVXgPCM$25v~PK#Qm!_ol&;CE?zwf}FUe_oTH!Zyx)98)yFFyqC8c+kWCPnRP4{%U zgCoGinh1u>gXom+qCT4y5-$VyH48p%k^8S2`}{Mr7z?$r8xrjmH=_P!C+I$N7nUuA zS^xELf+~31(Ooj2^|rR262rh<03;f{PpyZ^ys8*X6T&}_8M$7bH*tFW=iZ$0gZ?@n zz{OTu5}7fUZm_Psq{&+rO)()mzG{R$;>Aobr1cj?{rLQZH3!dd2!%X zH%jdtnd%l)`|DF<+>+M=DAkZw`@$!bFuuCDTofPKm{Q9Ew|x|~M~$G~qtaIaawv~4sR_B-kG;wgWzo9E>4&3|EK@`j>9b!T{Z9#&Juy`s$ zt!*1kLWKk`ieO2^G{at8hkAGjCSfR$JI8qT2!-6V9d(k}B%B@=IXBoJP3<6EB4wD9 zJ3sJjzSI6s?qbNsyB}t^uYK8i_5&~V=?Rt9l%mMn)7q-oY0dzbx=x^n)?4|TRG}!L1Q#^AZyUUw+Zuo zAk6^8VdS2%JIS0{X{0c|HxXcIGQUvoKWh*R_R9)tR9f!7@8wN!?B39hwKeEYzT&`E zbDY%oW?k|;YRXE5S>MBq^de?VmOc%$@~_8n%+-ftcSN%OpZ@673*N@rhQIRhLyMX? zr5}%;xBPp(DCDC)Nn1l9-Rje~eyOJq)M_NNKW3b&lQfPTlqk?eujosji<~G*d=*5Y zb*v9e9ikEQkewho7IfidRs3)pnUyZf9Kh_+LkeVSY#OEALjZ;0$PntYL8l~5XkfMpYMb=HtG!**6(VyKTx&6WE?%scj021fLYFCUF zx;kU`h!0;Ep!*!xaR`0Xht@Z!z>dcij=cA^JsLNpVHL9p2AII(Iv6t&3JefJXqW;5 znF-ScwDSE^l(?Z%TL*$q1UwYF)a3&M)2*#YP&PWXxm6Vu`|5AkD+dmDD&Rx?jnZkd zU!WOp5PC{g0_N__1i z2sxnJ`53aA>NEBdPszSH4ajmU^hcH{fGX*cIdhZb%m%zl4wFo0AlSnE>kN^w8g-vaj9n-&OLVnKiVOE4-PT@km9cyr?GHU5ouyu!Q7 z@N!(rrptE>MR1TlkMrrNOUQo)p ze?2n<_J~U(Z7MiH<2a190ZFr%AU>cQ#b4$LPa&{y?F%UNWz6RI18O0abR|uyAJ?NY zat#-_u|d_Ch8+G;p1@n@>y0{fz_t7PQ2ekv8?K-;Wl zT{AdAbasQVT06AQTm0CUlf&&_DHFhj2BIRrA-*lmoRAWy&-RMV52vW*G_h3M-+QZ& zdJawn!^3oz1#U}fYD-%{ge!*o!z~?viT-NzH1rBKQqi4uab4C0OkxT*UpHiCc&JrX z5vFZYNft}}39-+yOjML$`H68tH}0V)*oWymB{bG{MqPz#Z^n4qLHDz#ZlcGYqgZRs zqHz1hhkUs%d*j8PEN8pw4%t0Xm$AeyI0H(e*CywC4tUjIs^^r87$*EYx5BtHp4N#l z#&KjDKq6_K0)!r{sm20LZLaiJi!%f3gz_P5`h^FH>@@a$6a$+)iw6k)eM}xX^LN&I zRIzp}Yw!*5G~On%#Ss8B1!XCnSzF>%6>0Ev3xMa>6A|3Q8@|UaG zj;o0LW_XzZdWG!Hs9Xa8YFcfBSC^?l;}`~J?WWFAu!UkyD*?rMrTkwvhe?Me*9|uD zrb^Gynv@nWn_>>%>;)!$kTpli7)fMA=}iC}jqppI-UbAD1cE+v!r_E;@5Tkp3p?Mi z2MGwwv((px>Dkv0hK3Z(Jm%Q>F?E0h*MykG?Den@XeEBWuYY6ZzZLV z{SKejk*Hkq!AT$!4!0Or28kEv0h=H$#2RG3MKA*3A|X!v1f9adM+8zXHdoDMRV`a3 zV8H)SmM7dI5~wdfGyx%hvga^e+%=e8dFt;JTpkm(X1vrrmh{?wr`0Ch4eE0`cAHrK zlNpTpxc4#7nW_#*dXc&l5#Ma&7?cZ2B|Ov>^fzkqBS5sv3hr9w5}B~7Q-3Joxl~+I z7kEj`Gpx)h7{d^MlN9d!7QiAdk9XYcpR_YgOtam{dOoW|1^F*_DzD;kq&r#R*6Ivsh8#aj}@tWAha`3gLgrB36X6<%Q+8yZcQlw3O| zFyMbSUkGp>k)n~p5?oms4DTVfD3(IOw9~#T!&JQ!KD1NOW;!vzhDV;a3&Z=4CvGz( zZFm8u5iUGgeUFWP+lXnylarR9OAs7|C~%?9_QgP3#$+cZ4jK?L^+Yll)iq@RgXYQ= zGwgA&%V=jh*@4=ra5l0FjOY939L8@)V4v%nE}pcQcaYt##}}4adBv8K2ws!UrGDe* z&=_?AO$8z>M|G&RPIE!`%H^t1bK_Bjmd8gN?t!-97Jp!>(AbOAV0!!T8CVq`QPwM# z^C&YF%>RuPIy5_A)_}c-&_x!gu(LYA!@!#St= z&sx7bQ; zB7-4R!uVZ)3eNsA>R$r`(L!sVcg5*rE!8+;Qsl$pOJ)ThCMUqa;jS;7@|X2C=741e z2mNYOD9@DfZU^1__O4j8{D173C+gqDklW4_kO$v^P}u0r>DC=dCF5;z+t@94n0R~u z10GZ_Eg`1~_d^ZI<@R2PN%R9xGe6G)p`8;T`-Pcr zx^k^OTNmL5VkWRSv>nO%|Mq8PkYVZb>&cR_LeDBm>|G3^+F1b60>h3EP_hG^sfTo9 zaOOi*lxo%0x2h|2_K>799@m>znlGa{{%ATwzgrlars0tyu3SPToq$ZM9N=KW#`OWv z#cTB#hy%WROQqqAFJb#hbCh?7eu~Mcf@VV^3pPiLQ!;wDlD}|kS;!p zP=t^FEGc_EIMO%Aul1&(;5)y!dL~%jVv>Ho zE&fQGzvk&>#T3fX;R-ly8Qgk^LKoec_(HEm1>o5l5Nx8hPVF?-5{P&bF5w4jnRRqt>=zG_0f^9xVg(#qZA159dc#> zF=Gvg_HAgFTQ1;gh&iZ3m)JLURf7gbF5-p(#<80U+m8^G6bz_}U0>W}6^K20U(;ue z$UN)S3i6YLNkO$2;bwJ0S16z=B+HMhK?2OfonL>>@!Rd?6*`QI!;=iq;zD0kD~IjmGbj z5GtPz?>ueEhgCHLh$lWn^@qS^0#r&@aUEvFhD&H)gs(2k$=kInd{F=$6qlY5PdN@T z>F%o?>Y|`r-Q65|z_a|f(@Mmq5xp6w6st#etdF1uGROWh{Y~c$A)pm*Uo|`O>e8I0 z|26*W`D2_LUrrXtK%*kWz;6nb`e+aA=hTE0e@Fy6FMAwMi z8|)@(?qfj873>yvdP3}}>U_B(WOUP{Kj1{M}Y@q27_^h&cV1HiD0n=72nC>ebx zJFN5TM8C2EWe*$=*=ra3oqnxg&I=+3BzNcu4vAygmY|jsnh7oPgzB|k*vo6BpeGx4 zD$s;!l5Ft%vl1U`v`S}TJn+u*%Z!zrfj#f8_08H2>W|#0wjoO{@_*O=iJvfWE6O1t zg4VxmQ_PFFV!ywuU{PkP7Di(-dtEa6_~kK5>nVQ7c%=WrDPmJ=A6Uw0n^|zY3>_68t=pmzT#K9_{ zay~<|CL$Vgi2`7ptSkR{1KLyC1qa1YUHv|#mibNq)arv%Yir!9hqtvM_nbjf4GDzqG!a7Xxjo_h`?Y_np)s8CCclrRa z=)5?RP4`X&5C3Z%m69F_F=@hXi9C-i122+e%rEqeLYq)!T)O9N4A>0(Ytd*&v7&N% zfyjO{_2okBQVN6tUYL_CG~Cb}VQFvhTIixg8_0Igl4xT!A>MIz%`WDCrEu3`B{MTI zFI@+q)DqVi_F%6PWZ~WqY0EL9N#-Zj%WArpL4`XLc97S6IZ-w~SYM|E?KG2om6|g4 zC^Gxd?`if|(@C+9Ia*S6`x1zFtR(W$zAsq*%1JPhHn>$P6CbdRD{bb>`gAdC=csBE z66$br@Q2h%%io8TxKqoB*8yFOaKWZA)4CcmQxfElUEGLr#=Qr!&+id-n0woYoOCb> zf^-dh+=nodbsFe;iDq+*MPfX7bsDk6v{j*ylXiW;TcHGFD|aOOUlgcyZOB1qk|T@c zT$!&!eT;^5z)y#~6`$v&w#@5n6JBPBtFALPGGvg!{)YbKQ4*;3QL*&yD5V++VsV5ksHBEU`zulXGOVWA8l*PSy1O8sOSJ8Y{)wS%oK-DgaT%_e=U$StCP; zPJ}U$p$@Jo`sW*m8=bpc)nLG;FM)>m5k-~c-&;&9mWkF`r>a3wh>hbrnkndT!^3+VBIz)lD>B8PV(@23@2JC#H& zlz3~&ME+(P`7M@$XNcNG-5tx?K1GQN`{OQBgzdYWnAK4Gjdd#%^%2|@mr<+*eK_3K zE&el$OEL%p5db~%%bQ%MKQ#X7;)P(mXOYEr4 zJ<_f!Rrwv;FIiZuQTkO1P1j7~y#foY6OQC`H>Otm6E&hfIorn`+SL^DD( zj_=2j#BWsnVTw);@r2-=?sEZKH@I(4tNAiT#6s;5-e|kXYq*JOr0k2LQ*tJfB(o~5 z8Z?YmO_8JA5qjF}_5(-A-*R2`pk|8%d%X5u{mhl3B5x7nYf>Q&b~<%;P;=M(zpWV2 z^^s$J)H*L>8P=lq$A|d?D&4_$)q0&%)+a>NJ&Vu6T7U~%L+hU1)Ue~23j~1veJvrG zGD@G)sz7l!uVX_h9lc`4dZ9K8Ow1uc*Ye0(w!pCjGg3bD>0&!*@cM-NVK0k)I!+GD zCeb#yG*!iRm>&p9I^ynub11^G@&q9i;$sBg+cde1kelkeB-!o_@E|}7u?y*tVd!cP zgAM^4Z1@e3KqJJ_jBqp!Ilp5ckw>EJ|0r>lW}gmziTzWQ}GVbv$a@l9{m$QX8+~Df(|ljTQvUcY#I4 z-^fY;-z0V8Lp|RvyD(hOUi;xNmO$1NmogqYSOPzrGvrf|_-=HR>Pa*a;UtWI=9GpN zUc!P;Jj6|l+(y&Gn-s@joui}yZrfrEji~nj)-|szpDZntuWVha|4bnMdRo?5eDg+H z;u@y!)(U0Hw*{-L%ofg&i@r7Ezj2`Crt!NDjn9q632%KVj61TJWb=x#2Ji5aw{Mke zW_tehSlktcC!CPDLf`E9*?J7$;wGsv1+S}&Ze%E|Ir=yI_a{=+`Ptlqbs}#lH-OrP zQuZd&ccEpTzqdHE+QzFc7xNNNVpd^i#_WRChbE4S6&vfEG`l9!&!l^ zX(D0S7MnN7!pw_9frC%>+YJm;`~;b;%EmAVnn50Z4hU)

ttmYBnJYnpo!I-4^S< zv8jtU>UXwINK(+(9^Aq7Rr;TzF33{U z7a{j4Hd_XUZM9j?$%vDJX8ua|TCPcUYKBvfYGrVaG~2;ph*2~+H!=;hkgX5cV*N%p zbj~#+RZ;fL)Cr1k+_G~#a1YD2MVG; zz!ReECpsRfVWdSI?F)&~ZUXF&9^}`}k7%8UCz!lH9AVEbH?MjbG9H=XeB+Gq>?EMI znynI0;i~n(uy7l>9S8?H!w4VZ!(iETY;Dd_R9MxYdjcKsoD(9dV8hDvs?N`-DoB`_ zZPHcL_P+PNJk4pt6y=q)b5G6zYX$okt4NyCZ$F{dam?A@bWt!;dq*kS^#TCKyAK6m z>Rr%req&-REweF*YYg87v&UpC{$7JIJE6s9aCzcwTvfv-qeMYB(0X=}Oa)E{A5CY- zTN-WX0aEbqs(wk&A!>4zP#LhY?r1J0ad?pQyU-~(y%mHxZyZU!k~A89U2dq z>Yh9?NgDBYA6<)29NWlE`)bF6*BkWF-MFgL*NHjCf)OOHYzRi^jKk$vH?NVK2jaPf z%MPIxIeJ+|y{ck?!8y69X2I61=pJaZoU9l56icT-Bk0h8c-&93Ri*Yk`dV!8uX;;r z853}u@We_~vS73)CIsuvIdyWf7s*YnMix}JNDSWE;&m$FFCSiL6?DR*D?@@_?>l%( z5c`eBl3^0z=*mP&7bROfnmEol@W{>`|+FrsmQBROh~#Z^Q}bLqi0RI z-e9g%OSXCBc%?pZ9 zoj3jCN#O^jkT*x?pdfK5Q>}l*J{dYU)5-L_zAXY0pjiaqzN@Oc3?$-Z+qVbGJxh^^ z^S&R>k32nzAYFL+IDZHh9DqgX5qXWjJ2ZML&R#Q+d!=&^b>9j{Jl-C`~WemS|cS& z^^$wfh^%)Luk^q{z+!S|ji^gA?Fj&PvnFU8Ia>?2)qgg6--hT3GVuV|NwyTf-8aq# zyliM3pPet)HIk{6jOjL@oQOckB#O$OH{v2w?pN>c2jmV&WZ{*AAoEwATC>X->p1GIs9SdzEZfZrD_K7&E zq~vl^eY2Qc{JIl1PYn&`>9~k^mI!& zU&(0baq&zD0l}rC9_{z6jD>VZ%OMj?xHo^Su)&PMcZ`?Mi44U097EFoA*~%!Dr$DX zLqFueA}s>uU;FK}MxK~=T*Cr%B+@LspjG(*201Z*19u9t-=10#{xru{J-WVjI70J) z{?)0W4qH9!nWERxRW_|h=RLVAEG?DFT)3*k`Vz4otmEQS%m~gdx$sjqdwebn@%`wO z(0Lrk`Nb=gE;5mlZXejd0E%J6&5fGng6}B`PdiEeTi%jjK0k9QRh7yj;+B&b6#{H2 znAQu}PJEC4p8m{s6$$Xz?AzZu^~qI* z{Rs{kbf7vJvTc#OD8)Jc#c0wMSA@u$)31)Fmhd-oG*?kCB}2_^6nWboiLng z#Ea5AES#T`i+tZ55E3CIL)p}=SfB^wc&+309Vh4p%ARY!2wqMtg1z`GO;ayC=}Mz-Oxu!5q1(A zaUPdQZ$!5-eLp#7CK*$WM~xI80V5&Y-nd;z!d32^X4*{7dAv4K;q5F%7Md@YU1#YY%=$^NPYtfKW+b>`gU9^qCO+^A86|f z%0C1VP1VJ@MiKcRVQrz)tKk8Qk5!EEKt0wEQG&^(eg_J~De z)DT@xsUY6f4fV)f+Mi(Q@IG58-u$%|o*X(7x`WHN6x zax9RWVG2~$B2#J8Q(*#TH)kFU5?h=iocYWF?orxcJE7mS-QM_7Ve+(6u3zDq6%!>#Z__GtR#=Q452IKAr$Sr3FT@l%rLXK&fSRsT+(HvIMdddB=K zAp-mTlGR(=F}VHhQ%?RCY!h8o*nH3o!ncGWcf;h{7|jmsp{oV2-RC={>9s8??^v99 zp6pGj8f%V%XqVM1;>%!qXpa9jGUbP&F*5+G<@u5L&WE|%PD&jLr%%yC3{-T~DnLF2 z_liy|zv8Pl`(L~aIqwSY$H$ODAIbBuqi#uVWrr7adiA(*zfP>QpScf!$viVQ)@t++ z_Ar2SC|$(M)zI4sB$vlI^>s-id&Ky=-Od8_<85R$E76wTvbdnyyGlX|B|3voRN}QT zL2*dYr<;1SHdEUOv}m)~CCfP1$;a%eJ5Q$VOVVDQ7%*`8LtdvR4pUoJCcEHHV|Dg)_ZR z+}yJhm1056-Rzm-OuGF)A}!|U_j2dC$vA;I)_Qz(8di!!x*HvT^c(>jmsE6$Xpv-4 z4v!sn?V6mPQE`QE&53>zv6|JdH*x;*$Fw0ll2j^6z0h&av3maD&c?SNwWOg8Hi{eG zXb)IQWT9Yn#)DF)7_M0(-5?ydmD_RjpWFkhvCYYf34y3fez0X9-J!Dh;JAzntHCRu zU&IwwC)5jA85@-97=h3qgW{H9wR_`OsXOgKV)?{_YD5hTELc-_ zLKt8~tHY;%Y7||hh=G8E=+76qY;U|<5mKko5h1?({;B)YPT z{hrdFyj-qLgug?S9|}TSUr})nJ3q6}FdQpcaQd3B(`|V9tSc@Q0{Tri&pdctB;~^2 zZkgl7rlnbY*@WRQ?c~6@UZ3+|f;n3~u zp-zaszh)IRbS;P&$8g#;Vd7C&O2D-94*RJ+bg1{ki86fC8%5~!i>}bG@F2QDLTv+& z!w}q4+_C-&je7yJ*OHvNx3?PtK?3aLcx^Z~Tz=+6mykvp5d0uyJ&Cl{fyM4Sg8%yv zOoOnW%L^E0# zj-uMMYz!zYm3ZQ_$O&%X^TuPtNs>>Z45kuR6>I60*YVVTvK53G_@!|~%(Mg2be4?6 zKnB*JO$CTRZiQ_R6vL(B&N3LEmr>jya*yi@AgBfY5gk`0hY9{LzPkyx0pf00NOv_5JlFm3X9P$yaIb;^%lGa^#q?@ zC3#bao|W#sUu!}H7}6}f2sy)W!YKBm%_howw6z!wn%<`Z93V8Do$2No|d$N42TOx3L&~S8%|*axCyPoX1(pv zGy1*URUp^i5Ek?Mh*SEqKr)5&mP*xb)&W_+>`R)fWNGoe&{Drz&e0IN+cxqNX~Vrz zEevdB3~Etmo);>ZpGhjmE`6Q2IhaO0&#;ofWp47Fx{||jQxf7uif?dPb z*%!V4KTg*6`%)YaL4O(0n0Cw}O3QIVD-OU!8ug4N9gv`QJ5XmUs(_>JqRIF_hK2#7 zbqm*+db`}oS)lce@)e1KSS6w{tQ^D^!WldZL#$H_%1TO50dw!lA$RpbC|Qqa@k#^3 zv?owHR=3*Dw*+)-TXHc>^S2SlmthyF_d!b+2gPZ z=(RY$C6&>G?h#=mC;j$N1M^QF9n<(xA?ydrk{y|xu~>=2dr2UFG`zoJt<4+U_pbL5 z1MXL?AxBOuds1pd4rge=z2YQR^{h9EWoUXPEQjZfR(0~g(m5BCtS`d~x-zxapaN@e zc6(_2a|Zco|Ahku)~NmjIKUmw32*IQo;XV3a@)CJGRv_5%cVcC>EU7~r(G6(D~>06 zs`|@GN`}eLzVxxeKw;sp=#Y*A$Ar7a<+Nd9ae%aDLUD+?eFC4Y-={gO5PO3K^=pH# zupf0bn=^Fu8eqs#$5r}UE_@=dJCuCsIUnEGgEgbajYJ%?kwy^RI|xVyg^aQ|RXS(}MSr8WdzQP-8w|A(E?5!Nu6D=+K$ukG*ageN}Yfa6KB?x~FEXnhk$Eszs4g z;fqV|Bgl<^lce;4-j|7lU-^+ra#&vdZL7hA0C_=Qk@g|4!1{-#(>;mLkSx?Uxni0@ zC5|5&TI4fm^cFhen;@RRBPmbla_1P%b3`Qqj>hu5q9LU#778SXy$tcFoOoVGAdjS{ z{jmjCK2XUB$HRMuU7Za72HKDd0`~-ktH>}ZGA_`L;e{^1D_X8!-_gSnKYw?x~ zZ9wY3&g4f^ZDAW&&0GmQJxZdT&dw{*t1Vx&zo8>1|K$$q;Gxe$=#K#j0!l7_ae%O* zVEp)rah2U*yuNc5pO7eOQlS_2kW1pyHxPD3PPglZ#f`OoVUz^rsZo-*1sAmqc5}{MY;xU zTw+Nu4v<-xCq+Y#$J-*1qfD%T)Gn97J<2k@+EH{eC+c0m?B`q=)F^M4=|rV{p06Qs z`~@2)tw4uKUsmg%@>4x`KZ01Xzg)w9W`4h+5RjmH^;ry%e%BCc;HZu6t-G*Lp+yoI zb~Neu?Yw+EKg+(Y`sG-#7H=(vwHxsM*)33?I2n`c0b=y=*#o z$mdzgUmLHc#Z;nq{J&QTQ$5)p3?RS>BxEe9f*fK#L>H*w{7`E)*{51;WKi*7ovHt^ z{*R%yKn#5KC^(pNxMV!v+DDK8n&iWm;j3~rJmBAsc9sEKYI$~so%y&y!Oz9nN;jrK zUyzK$1~{D6iH0fe8w0|E54@D0=F@Qv3%o39ns<|G0eWVx1&%9B2QcZ z?h+IKMZ5sZ&>FtXYvWu`tW>otK&G-y-1-n=fDy;8w5Z07A zuNpiSCUa4L5N;IBi++hSIWXIU*hp&Q(RT@FQj^Vay%~BgwB>7~GLaL;#s&KXYw-yy z99NOqS69IBb z7LUeK78n(fo-X9JX9okQ!`mF6Z?3Aw+ab9IziDPipIiIxp+Y25 zcCM$eI2a2f6bN0LDx{IxO?I(v6QFNrkG$5-%Bad}7nGZ}Y^n}&cguV~Gg+*sC>JcU zEL@w?n=$sSr-BzVz*r%P$0@43;e#my6}ee3{hH<*dhTg^PDt?N1@zwC@Z`v(jK@*ua<}B zguV4)3DBY>0TC^htGdi7cSeczfKm+Xq&7k`6mM{pWgw2w?{kF(^k_J#f-G z%;2x_kHY!zEU&gG_pV&UuA7C;%IM6M;PwBEUiT7ANs(M8_EEvVG!W7b%_!wPT&-ql4=%ad6N z6`58=phY&@R4mG_DR@+6R470v0$Giz?l!=RiW5%NkR9D_Gg>X`CHdi!%lA;>aIYLBgwElq8GBD6d8trWKvVLd`xWJa$Y~4at+m#l($u>f3zzVbc$= z^lXKajL4G;q~J<9sB-gMIDKioGV~e6rdop9A61kPA6^i-1#r9^8b9d05xR-kPTL5h zmvM-{qLjbc*WQ3=5XPRgUJxrOM=DvVRSGvb)LmhDZMB@1M;vToH* z5_twobA19L+`k>Bo8C9Mv0O#AU5vneONKZxR}GDOQb*;E0T=*T`;0)bDlvXa#hVI= zJ-EBmq{!?MF--0_e7oSyKEnDl7?X$b-vkdQJu0jwQ`Rlsu-XK4D;*kEs6_dNdK6m z%xj<(#HCu1lcyFgnkJuPyH#T~uycD21z}~uYkp6Tv*zxH23$8Ag00V z3O*@_)GGS+>24dvN+q>m315VZa`xnyaKTTVETi5^Iu==V5o(#k$sL9cR*yqDTNmX4 zAOz(yS3kO?v^xP1jKJg(hFnJowl>H7K8fB6|oPfQ2)sn>)I#}kmY`}AG+ z4-3Z)37oXt4rR8gIt+kwh0}ATNc0fY2`dm{)x+!S<;`p!HcB%+kci;PHDCpM=j3h5 z=NQD*0x=lQZVI3PBX0j&BVi9^$o3iTXXIDu&{0sE%As4)fIkG9Pd42f`65mwfc~e+5bH0gKg`exC&_=_!|;ysdlc6VaQm z&!C|kcEB*aWjdH#SUV+&&Ld*Z1nwF{t5A=0Tu8jNj5*FX){%$t?{-NZ5BN>TLHiMw z2=?^UfY_8v^iK_m>NI?zzAxq!RDfG?<21S1eN;gLIS?pQXPcmz)E6VA&Sujv_tYkE zzjl6U0P6U0}WJp)nav5HNx^#pIyy*I8L-q_p1XxaC&WP6O{PvircnJXfZmOV(VJ5*RWp&x5wv`g|P>BXTwi$3bWhT zK8wc&Nlu@@gUdy~L*qX*Vh8HDcCzBiucDYHW_(@iuqEW~0P!A^C>G$9PKJ5^Uv z-LUh1KpQV13+LuM9UIQ_kgJKECPh3sV&gcc$u)llQ$_vx%#sn~@4)USKV8%f--8e7 zKnjJ}@nt7Q_EVWjgML;tnV<6ViwAj@VExf|AcuO3HT4tjLSc@dS==jodjM)<4N0=M zT6nDi)GT(dPS=RPx#e!-+# zF{2!fH=?-izdWbReYnQ$bN50AeM(C2yTUiFbURJ&;5-Vux_1E*=|f4tLbdp&=ip%{ zU%u55`Kw^XM&}AtaC2a_Ib|nLGgj~c7|DPxnVC0t7Dk}n9&`W5?}NCZ44&1#ta`6 zfB-UUoh>Ibmf4ut&s^8&f>dsx`spoF5(t&-W!a8OR)5}~DLsl%t0I^n_*LK~Zfw4H zokBT^V+0smfAPDhcYXtn3_Fi5-GRm{C)guE!{)Vcx@iqByHt3TgDWImk{mc_aUrJfaye?e?8y?^ zJ~V}jUoeuh3lpu1_AK3E&SY%|GLJf3^I1!(SNfRLOkRzeOAR}WN};7KaoqopYc(Y~ zIB2563AEXyh?EqpV)qEFjg7?wMu0#2AKhRfL5xAMMLU|tX`$ zN2bxsUA#&E0?vu~KyQv~JI@ys{)C=D+Jq8?6NNqgM7 zEjhFPy*3;4`-a2k78%baJ`_g@kxLWBp{VIzO9lE%u*6E#-!oz3ExR05vS;=}ng1=Q z`_lJC1jm(XDZehuV43uYAiniz99|-Fu|ejBz(z=?&BECID_lty`Se$hgbW?lrF||g z)TMk~6(%I$JzzM~;!|`y`uHIIuM;Y2u{CMHc2|S3HpKUqIOao$mv(k>qb-amdkth5 z*UGr;@(EY)vUnaEHYYpEx6~Qq)V=5aY^e>KQatR)9tc<@sugJ z^UxfCOc$Yr!7sQ$wwj3mvmWiA5p=bBxkRVCr#-I1ah6U8?#yQ;O7ZNujzbAkBpHP+ zWpTO(ssjDzfww42S|)!1aSdS?uq8Uc+lhtNvog>^SM*R7)3Qs5E4&@>+0y_uo1H>K zQn9~B{SAmNKP?u;9p3Al9-obVK<`AiLlid*NVn;35V=ej7cQMiqoavJiusc;zp`Ob9GA}!TWyx*V>b8ALPm#M%)EV}pANo#qE>)TB7Zz56&F>c~TL|@? z`tU356E-GpiyN_RDQIEn);*uJE4lx@5+uxokVg6U#*vMh{hpr{nsy6pP%n-awl^My zHEa3$@op>^!VyML8G(*JmknHrzX=P(=e^DmS-E+$r}*^&{Q_~1iqExgnJ=MGTQ8FT zc+(uT__2@pC&BtuEM_bscC7Qq&4NFltm5g>OC(lz>nNTEVhJin$V6vam}`J=5U(5N zY{?!64Hx%p64tuFLt0Z>u{UqIiYm&KV*yDUKJuA0|DzGT+UF}C7U764IAsmrOYieq z@(N9CF_j%Cc}(44)@dIM_Ng`kDiDi{0{{sr4vcp0UVqZop%nHRt8Lkh%YzHVd%CblriaL~l#Y$yts3 zm#b--l2FQ!Stn|Yy>nZUSe`jPvJg2&tugAcKMT+U1>_DAYrmqYj42BIh*Ox+pWlrU z;I4~g*Au8?mLKNhhF%pf#T*Xjx#xVhnc8u)i64|8aLjDd>_1^I09bFB(3TJuK)z`( z0CSYgp?7nVWn?hY_B!?68NpjzJX(P!EVC&MKt|o=2Y)AikZe z1}@qZe_}F&D|aMQ^6qD(>o8KLg2gw;4QUIMb@#O2(o)L5G+d0gkb++LttZ0C;4-lF zVrtp0k_Wj7Ybq5O&0(3G--#fy`8PT_mn|fqrGhpE99Od39+()j)uxH64Mbl&%xvH! z2dlOr;Pvxb7%m!~&WN%Ol3Jx@S*}pgeqMbkT_VE2U>G2}5^Heh9q&!DW=BXe!T-Z{gJ|E?76i)m1Xc%drkzeR9>2YM#$H!Ps&|cMz z*AA{L8`e=;q7oZ`_Of@yHLv|6f@@k}zs8oe55)nu6T@(k+@2rf)joj86l`$CDI<&F z&2>PYhB;@ZcC6~WP<=o|-23>NJzk=s6dm;QJ8b^AbBok5GHm_pB0?pDQdpEn9i>P~ zNMZj32%&?|?8LkN8YepIv2LcW`!W`bDXC>w!^sd+W<_Kc%Y-9;TED zjVthnQ1A%qbo-8qpL__NJtc*B6g5`_7SY2v&1|D9aA!F`%K;d79F|@DoTT`eS&DXt z828cIKexK46G0Lu5|tnL4oH)2pB}Ib>h{a-d`LVPl?eQo zcgh11+0_b>*wKbuFd{_=wuAa+sIrRWMMRPrz6!|5#F)_H3-cEeGe0EvPaC>?g+a?j zV(1@bW6K-azDpU-Jj|6ncV@%oEK7k?MTdQ7Z>)%mW9I>z9+ioF!4}$R*1TEuSFkUF zUI4L9iT?LE48xEpO=ALvW?+FoIMi!^PT%GbBp)S5j%S_{R8-+TL0`KBG~W(UL2)`Z jprp-a+Ab58_uo^tzb`?lqHHcyV}%u{`F|>xZCCO`;uvfG literal 0 HcmV?d00001