From 84c3b22e5a649402cd8352d52fcef030da3f0b92 Mon Sep 17 00:00:00 2001 From: Richard R Date: Tue, 19 May 2026 23:02:41 -0600 Subject: [PATCH] refactor(pdf-layout): streamline viewer layout settling and harden pdf document loading Unify and improve layout settling logic across EPUB, HTML, and PDF viewers by adding delayed recomputation and guarding against zero-height container during transient states. Refactor PDF document loading to include retry logic with success detection, ensuring robust handling of transient failures. Update Playwright test helpers to provide more reliable PDF viewer readiness checks and introduce request retry utilities for backend API calls. Add targeted unit tests for single-section chapter fallback in the PDF audiobook adapter. Update test files and helpers to align with new layout and export logic. --- src/app/(app)/epub/[id]/page.tsx | 14 ++++- src/app/(app)/html/[id]/page.tsx | 14 ++++- src/app/(app)/pdf/[id]/page.tsx | 34 ++++++++++-- src/app/(app)/pdf/[id]/usePdfDocument.ts | 38 ++++--------- tests/export.spec.ts | 67 +++++++++++++++++++---- tests/files/sample.pdf | Bin 74469 -> 51655 bytes tests/helpers.ts | 43 +++++++++++++-- tests/unit/pdf-audiobook-adapter.spec.ts | 63 +++++++++++++++++++++ 8 files changed, 217 insertions(+), 56 deletions(-) diff --git a/src/app/(app)/epub/[id]/page.tsx b/src/app/(app)/epub/[id]/page.tsx index 5765461..5d7904d 100644 --- a/src/app/(app)/epub/[id]/page.tsx +++ b/src/app/(app)/epub/[id]/page.tsx @@ -111,7 +111,9 @@ export default function EPUBPage() { const ttsH = ttsbar ? ttsbar.getBoundingClientRect().height : 0; const vh = window.innerHeight; const h = Math.max(0, vh - headerH - ttsH); - setContainerHeight(`${h}px`); + if (h > 0) { + setContainerHeight(`${h}px`); + } // compute max horizontal padding while preserving a minimum readable width, // but still allow some padding on small screens @@ -122,9 +124,15 @@ export default function EPUBPage() { setMaxPadPx(maxPad); }; compute(); + const settleT1 = window.setTimeout(compute, 0); + const settleT2 = window.setTimeout(compute, 120); window.addEventListener('resize', compute); - return () => window.removeEventListener('resize', compute); - }, []); + return () => { + window.removeEventListener('resize', compute); + window.clearTimeout(settleT1); + window.clearTimeout(settleT2); + }; + }, [isLoading, activeSidebar]); // Nudge EPUB renderer to reflow on horizontal padding changes useEffect(() => { diff --git a/src/app/(app)/html/[id]/page.tsx b/src/app/(app)/html/[id]/page.tsx index d3f6e55..83dbdcd 100644 --- a/src/app/(app)/html/[id]/page.tsx +++ b/src/app/(app)/html/[id]/page.tsx @@ -111,7 +111,9 @@ export default function HTMLPage() { const ttsH = ttsbar ? ttsbar.getBoundingClientRect().height : 0; const vh = window.innerHeight; const h = Math.max(0, vh - headerH - ttsH); - setContainerHeight(`${h}px`); + if (h > 0) { + setContainerHeight(`${h}px`); + } // Adaptive minimum content width: allow some padding on narrow screens const vw = window.innerWidth; @@ -121,9 +123,15 @@ export default function HTMLPage() { setMaxPadPx(maxPad); }; compute(); + const settleT1 = window.setTimeout(compute, 0); + const settleT2 = window.setTimeout(compute, 120); window.addEventListener('resize', compute); - return () => window.removeEventListener('resize', compute); - }, []); + return () => { + window.removeEventListener('resize', compute); + window.clearTimeout(settleT1); + window.clearTimeout(settleT2); + }; + }, [isLoading, activeSidebar]); const handleGenerateAudiobook = useCallback(async ( onProgress: (progress: number) => void, diff --git a/src/app/(app)/pdf/[id]/page.tsx b/src/app/(app)/pdf/[id]/page.tsx index ba23846..4cfb922 100644 --- a/src/app/(app)/pdf/[id]/page.tsx +++ b/src/app/(app)/pdf/[id]/page.tsx @@ -79,6 +79,7 @@ export default function PDFViewerPage() { console.log('Loading new document (from page.tsx)'); let didRedirect = false; let startedLoad = false; + let loadSucceeded = false; try { if (!id) { setError('Document not found'); @@ -101,8 +102,20 @@ export default function PDFViewerPage() { startedLoad = true; inFlightDocIdRef.current = resolved; stop(); // Reset TTS when loading new document - await setCurrentDocument(resolved); - loadedDocIdRef.current = resolved; + for (let attempt = 0; attempt < 2; attempt += 1) { + const loaded = await setCurrentDocument(resolved); + if (loaded) { + loadSucceeded = true; + loadedDocIdRef.current = resolved; + break; + } + if (attempt === 0) { + await new Promise((resolve) => setTimeout(resolve, 250)); + } + } + if (!loadSucceeded) { + throw new Error(`Failed to load PDF document ${resolved}`); + } } catch (err) { console.error('Error loading document:', err); setError('Failed to load document'); @@ -110,7 +123,7 @@ export default function PDFViewerPage() { if (startedLoad) { inFlightDocIdRef.current = null; } - if (!didRedirect && startedLoad) { + if (!didRedirect && startedLoad && loadSucceeded) { setIsLoading(false); } } @@ -148,12 +161,21 @@ export default function PDFViewerPage() { const ttsH = ttsbar ? ttsbar.getBoundingClientRect().height : 0; const vh = window.innerHeight; const h = Math.max(0, vh - headerH - ttsH); - setContainerHeight(`${h}px`); + // Avoid locking the reader at 0px during transient startup layout states. + if (h > 0) { + setContainerHeight(`${h}px`); + } }; compute(); + const settleT1 = window.setTimeout(compute, 0); + const settleT2 = window.setTimeout(compute, 120); window.addEventListener('resize', compute); - return () => window.removeEventListener('resize', compute); - }, []); + return () => { + window.removeEventListener('resize', compute); + window.clearTimeout(settleT1); + window.clearTimeout(settleT2); + }; + }, [isLoading, isParseReady, isAtLimit, activeSidebar]); const handleZoomIn = () => setZoomLevel(prev => Math.min(prev + 10, 300)); const handleZoomOut = () => setZoomLevel(prev => Math.max(prev - 10, 50)); diff --git a/src/app/(app)/pdf/[id]/usePdfDocument.ts b/src/app/(app)/pdf/[id]/usePdfDocument.ts index 90fe3ec..9c89201 100644 --- a/src/app/(app)/pdf/[id]/usePdfDocument.ts +++ b/src/app/(app)/pdf/[id]/usePdfDocument.ts @@ -37,7 +37,6 @@ import { highlightWordIndex, } from '@/lib/client/pdf'; import { buildPageTextFromBlocks } from '@/lib/client/pdf-block-text'; -import type { CanonicalTtsSourceUnit } from '@/lib/shared/tts-segment-plan'; import { DEFAULT_DOCUMENT_SETTINGS, type DocumentSettings, @@ -72,7 +71,7 @@ export interface PdfDocumentState { parsedOverlayEnabled: boolean; setParsedOverlayEnabled: (enabled: boolean) => void; forceReparseParsedPdf: () => Promise; - setCurrentDocument: (id: string) => Promise; + setCurrentDocument: (id: string) => Promise; clearCurrDoc: () => void; // PDF functionality @@ -264,24 +263,6 @@ export function usePdfDocument(): PdfDocumentState { return; } - const sourceUnitsFromParsedPage = (pageNum: number): CanonicalTtsSourceUnit[] => { - const page = pageFromParsed(pageNum); - if (!page) return []; - const skipKinds = new Set(documentSettings.pdf?.skipBlockKinds ?? []); - return page.blocks - .filter((block) => !skipKinds.has(block.kind)) - .map((block) => ({ - sourceKey: `pdf:${pageNum}:${block.id}`, - text: block.text, - locator: { - readerType: 'pdf', - page: block.fragments[0]?.page ?? pageNum, - blockId: block.id, - } as TTSSegmentLocator, - })) - .filter((unit) => unit.text.trim().length > 0); - }; - const getPageText = async (pageNumber: number, shouldCache = false): Promise => { // Ignore stale/in-flight work if the document or worker changed. if (generation !== pdfDocGenerationRef.current || pdfDocumentRef.current !== currentPdf) { @@ -345,14 +326,12 @@ export function usePdfDocument(): PdfDocumentState { if (text !== currDocText || text === '') { setCurrDocText(text); - const sourceUnits = sourceUnitsFromParsedPage(currDocPageNumber); setTTSText(text, { location: currDocPageNumber, previousText: prevText, nextLocation: nextPageNumber, nextText: nextText, upcomingLocations: additionalUpcoming, - ...(sourceUnits.length > 0 ? { sourceUnits } : {}), }); } } catch (error) { @@ -389,7 +368,7 @@ export function usePdfDocument(): PdfDocumentState { * @param {string} id - The unique identifier of the document to set * @returns {Promise} */ - const setCurrentDocument = useCallback(async (id: string): Promise => { + const setCurrentDocument = useCallback(async (id: string): Promise => { // --- race-condition guard --- const seq = ++docLoadSeqRef.current; docLoadAbortRef.current?.abort(); @@ -416,10 +395,10 @@ export function usePdfDocument(): PdfDocumentState { setDocumentSettings(DEFAULT_DOCUMENT_SETTINGS); const meta = await getDocumentMetadata(id, { signal: controller.signal }); - if (seq !== docLoadSeqRef.current) return; // stale + if (seq !== docLoadSeqRef.current) return false; // stale if (!meta) { console.error('Document not found on server'); - return; + return false; } if (meta.type === 'pdf') { startParsedPolling(id, (meta.parseStatus ?? null) as PdfParseStatus | null); @@ -427,25 +406,28 @@ export function usePdfDocument(): PdfDocumentState { } const doc = await ensureCachedDocument(meta, { signal: controller.signal }); - if (seq !== docLoadSeqRef.current) return; // stale + if (seq !== docLoadSeqRef.current) return false; // stale if (doc.type !== 'pdf') { console.error('Document is not a PDF'); - return; + return false; } setCurrDocName(doc.name); // IMPORTANT: keep an immutable copy. pdf.js may transfer/detach the // buffer passed into the worker; we always pass clones to react-pdf. setCurrDocData(doc.data.slice(0)); + return true; } catch (error) { - if (error instanceof DOMException && error.name === 'AbortError') return; + if (error instanceof DOMException && error.name === 'AbortError') return false; console.error('Failed to get document:', error); + return false; } finally { // Clean up the controller only if it's still ours (a newer call hasn't replaced it). if (docLoadAbortRef.current === controller) { docLoadAbortRef.current = null; } } + return false; }, [ setCurrDocId, setCurrDocName, diff --git a/tests/export.spec.ts b/tests/export.spec.ts index d8137a0..d89a445 100644 --- a/tests/export.spec.ts +++ b/tests/export.spec.ts @@ -1,4 +1,5 @@ import { test, expect, Page } from '@playwright/test'; +import type { APIResponse } from '@playwright/test'; import fs from 'fs'; import os from 'os'; import path from 'path'; @@ -8,6 +9,35 @@ import { setupTest, uploadAndDisplay } from './helpers'; const execFileAsync = util.promisify(execFile); +function isTransientRequestError(error: unknown): boolean { + if (!(error instanceof Error)) return false; + const msg = error.message || ''; + return ( + msg.includes('ECONNRESET') || + msg.includes('socket hang up') || + msg.includes('ERR_SOCKET_CLOSED') || + msg.includes('ETIMEDOUT') || + msg.includes('fetch failed') + ); +} + +async function requestWithRetry( + fn: () => Promise, + { attempts = 4, backoffMs = 200 }: { attempts?: number; backoffMs?: number } = {}, +): Promise { + let lastError: unknown; + for (let attempt = 1; attempt <= attempts; attempt += 1) { + try { + return await fn(); + } catch (error) { + lastError = error; + if (!isTransientRequestError(error) || attempt === attempts) throw error; + await new Promise((resolve) => setTimeout(resolve, backoffMs * attempt)); + } + } + throw lastError instanceof Error ? lastError : new Error('Request failed'); +} + async function getBookIdFromUrl(page: Page, expectedPrefix: 'pdf' | 'epub') { const url = new URL(page.url()); const segments = url.pathname.split('/').filter(Boolean); @@ -103,7 +133,7 @@ async function getAudioDurationSeconds(filePath: string) { } async function expectChaptersBackendState(page: Page, bookId: string) { - const res = await page.request.get(`/api/audiobook/status?bookId=${bookId}`); + const res = await requestWithRetry(() => page.request.get(`/api/audiobook/status?bookId=${bookId}`)); expect(res.ok()).toBeTruthy(); const json = await res.json(); return json; @@ -184,11 +214,20 @@ async function cancelGenerationIfVisible(page: Page): Promise { } async function resetAudiobookById(page: Page, bookId: string) { - const res = await page.request.delete(`/api/audiobook?bookId=${bookId}`); + const res = await requestWithRetry(() => page.request.delete(`/api/audiobook?bookId=${bookId}`)); expect(res.ok() || res.status() === 404).toBeTruthy(); } -async function resetAudiobookIfPresent(page: Page) { +async function resetAudiobookIfPresent(page: Page, bookId?: string) { + // Prefer backend reset when bookId is available: deterministic and independent of modal timing. + if (bookId) { + await resetAudiobookById(page, bookId); + await page.reload(); + await openExportModal(page); + await expect(page.getByRole('button', { name: 'Start Generation' })).toBeVisible({ timeout: 60_000 }); + return; + } + const resetButtons = page.getByRole('button', { name: 'Reset' }); const count = await resetButtons.count(); @@ -199,8 +238,12 @@ async function resetAudiobookIfPresent(page: Page) { const resetButton = resetButtons.first(); await resetButton.click(); - await expect(page.getByRole('heading', { name: 'Reset Audiobook' })).toBeVisible({ timeout: 15_000 }); - const confirmReset = page.getByRole('button', { name: 'Reset' }).last(); + const resetDialog = page + .getByRole('dialog') + .filter({ has: page.getByRole('heading', { name: 'Reset Audiobook' }) }) + .first(); + await expect(resetDialog).toBeVisible({ timeout: 15_000 }); + const confirmReset = resetDialog.getByRole('button', { name: 'Reset' }); await confirmReset.click(); await expect(page.getByRole('button', { name: 'Start Generation' })).toBeVisible({ timeout: 60_000 }); @@ -256,7 +299,7 @@ test('exports full MP3 audiobook for PDF using mocked 10s TTS sample', async ({ expect(ch.duration).toBeGreaterThan(0); } - await resetAudiobookIfPresent(page); + await resetAudiobookIfPresent(page, bookId); }); test('exports partial MP3 audiobook for EPUB using mocked 10s TTS sample', async ({ page }, testInfo) => { @@ -312,7 +355,7 @@ test('exports partial MP3 audiobook for EPUB using mocked 10s TTS sample', async expect(durationSeconds).toBeLessThan(300); }); - await resetAudiobookIfPresent(page); + await resetAudiobookIfPresent(page, bookId); }); test('exports a single MP3 audiobook PDF page via chapters menu', async ({ page }, testInfo) => { @@ -343,7 +386,7 @@ test('exports a single MP3 audiobook PDF page via chapters menu', async ({ page expect(durationSeconds).toBeLessThan(300); }); - await resetAudiobookIfPresent(page); + await resetAudiobookIfPresent(page, bookId); }); test('resets all MP3 audiobook PDF pages', async ({ page }, testInfo) => { @@ -455,7 +498,7 @@ test('regenerates a single MP3 audiobook PDF page and exports full audiobook', a expect(ch.duration).toBeGreaterThan(0); } - await resetAudiobookIfPresent(page); + await resetAudiobookIfPresent(page, bookId); }); test('resumes audiobook when a chapter is missing and full download succeeds (PDF)', async ({ page }, testInfo) => { @@ -476,7 +519,9 @@ test('resumes audiobook when a chapter is missing and full download succeeds (PD // Delete the first chapter via the backend API so the audiobook has a missing index (0). // This is more reliable than clicking through the chapter actions menu in headless runs. - const deleteRes = await page.request.delete(`/api/audiobook/chapter?bookId=${bookId}&chapterIndex=0`); + const deleteRes = await requestWithRetry(() => + page.request.delete(`/api/audiobook/chapter?bookId=${bookId}&chapterIndex=0`) + ); expect(deleteRes.ok()).toBeTruthy(); // Wait for backend to reflect only one remaining chapter (index 1). @@ -534,5 +579,5 @@ test('resumes audiobook when a chapter is missing and full download succeeds (PD expect(ch.duration).toBeGreaterThan(0); } - await resetAudiobookIfPresent(page); + await resetAudiobookIfPresent(page, bookId); }); diff --git a/tests/files/sample.pdf b/tests/files/sample.pdf index 9e0e7e95fe5cd92ea21396ec7d4a8d8a7eb87e92..f08b7aa432a1147dd31ade1ab79f723e58536d05 100644 GIT binary patch literal 51655 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 literal 74469 zcmdqI1yE+olBkO`?(XjH?(XjH?(WdIyGsL2<4!m3?(S}lyEYCNde1&*?>T4YP2Bq; zZp0=2V6A^uR#sMKt_<>vf<#_el!k$p4F-~=?)?V_k^!F{-_Fny29lebPT9lWgigr7 z*}&S)j85Lb%)|+w@qJj4PTIiMjNHVQ0-sLF+0n(wS=rIVMA6R98K3cwaTx>&(!yu@n1#>4@o~|?|LgRRk$;)~zMJ>;-lu=a z(9aeP5D|gHZ?neV4Y*?}onn4@`B40)e?%>;olP9+M6KUv;w%+C5T%gNc%#J~my(mkt9TOxL+9;Kaa@=ZXDi+>?3zZk?EnSRX` z17bUn0ci(*XEX4p5~#*2AH0eJ@y65ox8BkeMt(UPZQPA^g|Q;Kx5rzp>&M5#{X4$b z$=aOP=i`Qr%yZwTUstJg8#xnWD{$vy9XUD6N?tE)7%R0hd~bZx^$!zv6LNkpLf5Ac zho{HaGewaW+8f?41J{Y^V0Fj(&7s&*A zFE`IO4GZ-yJ}a&|D~}#p=X-al4|Z96qvvbSW}y#uoNsLpk45`Mc>6DY9=@d@v#i%} z$nsn_WIxGsPf==rfsVS3-C3vZ4diTOhWs4!{$y9l@GXLkFZ&a-+U%&<`TAbR9R`aJ zKZMst@WS!_%H1(J^Q%ibTkxer7Q>bom*4sR#QKiI!}U_zRaMkdIOR2mTw+WxX2xRd zB_jY+S|W~V2D?{At01x$N5{=|S;I(K2cd(<#yb4%b~9D!dMe%8)pAZnQ+sJ(Xl-ee zkE*LgAaGkMUdZ)@B-+u{5k$GkC`iaJV;>~{(HYy0(30wD?;wEPVtzD&FtH4RHkcT9 z@tmh>5zZkX!8?xDJrE-9R1-Ddn{=3^no8`Awl8|zeWF#=NDAD03?35{SuG>QVJndI zp0B)#6w{1E0aHmcPCJ3uu{PNpcylpZ1EIunM!&X(PfW?_z2MldK9T8?gzj@s$&3I} zWMC}e=!2DbYIR}2iWBP+f*L&49`}afPGR~oRa;F|OE=UTp#}~DE!zh51rX}?lX`!; zjQv^Q313Q34kd_Pq<4QMtWHsg5KRkD`W=5*SF;V6dB6cD&Yy6*8&FvtbOK)O0lF9y z*6_MMcLu3qeN(+1r8E|MpYmJ1jY4w$2ws>U;!}A@>d+@8i}>uAT+ZBTiygCB78_L> zi2>luTI(`t0}6F;4y7_762(RHQm9l7KJhwi0@OgY2ZmTgLS(;9OhY`=Yui0mEz|nE zyp`mI7xpsev69+zz|<^^h`dI1S1v_U{Eei7ti@e=RtzN0db2W}&ruPv!Lrd=&*QNP z>=>wIOeIIR)7lgREc#EHzU!HV4LWI?CEj`J7@tU&#A==O#foN8^|~&w^Lk#enM%A*3!To%FM7SAvA0~v4CjdC5>bFh`rSHBmyAJAwf6LmK3Se1 zuP#f%6;B6)oQGZ~Eqd9lDyAh>AA~@O2xgITb|ztbP1L^>CcU(e3*heEEpgARkQw`A_`1v4p88 z_E6II?s;tTh&)i+-*dW&88ZmL1r;0dV`>r86BW9VG{z386S2)W2-JRZ(msA?Ap_T$ zP#wBXXiQ+_VXGpX#DM!wUr$^=YP^tcCGR8YPL;&5P*~9ntCP~jg7GF#0rL60* zxZGShZ-vsoklB`g9wv0Chyyr5b?|3-O;AuXcGkddBA(|I?rpJhy$`x{fj`xm<@a!e7uGOw1cauv7SbmNO)6@&?lA?&C{%xKMQKhz|N1?fs9s~Mmi5k*45Rr0G zM9^3-cz<2X#Ee2sDIoh8Gn#TYFU==YYdK%)&D_H9PMj&>Ne>;Z4awQ5%5VCIbC}?Q z$}4SwKgoEOmmdvps?e6i_=0xzr444dJQz1ik{mDNL?pZ$alMLTn3v@+0WB~Q$m8c= z@ibJq2>q1RP*x&}V5hll*`vP|dgMlukc3O<6y-YOl(3Qas5zz(X3}a=7OJXDa=0te zNR>$EK7R7}af%%MX*ewC(?SmwyAo`Da=Ylz;F?jD z3~p0-`oVY1vgw&$jINv`qsi`N*wQf)>`Z>1gH(MfHkMvMg$8*HqwxEca%t;<_!avu z$RB!?90rf#{n#5(x1Ojp~}?^2F86 zg6A3~^t!#(!a@B~U!3`)It=IHLEtkU8%mJe-1q#?%9JoehKgUA@S*MR^05Wu1y$bS zE~yLdtAlFO+x4pWZF)m3s{L}|ZcJjJ;zxqykUPn1n?qE1J{Q+F(`KSX&uOTD>BioH zSAg;2LnQk2re)TGB#f&-1VmGs6TlU)wcV6wa$lw?m+WA(b)*c5vD%!wO zdn>T7JEAymEaB&8VZ9AZKZmT@auO|(z5=^+hI!1CO5;Vc4u9c} zIiRy<$WP`q2%Nz$hdZqIUVAd5X;9<>!FT4e6^5)*%T;({5Wqrk*veUOiZ3?@eFdT` zRxysKoSlb6*%`G;J?ZvE!MF*W#;tTIWwz$ZL9RM}{A4k}F17iZJ%0gYqx1!fx^6L2 z^BT4Ms&fH;lmHzmAtU@K-HH&TC#a5#OgpTks=Snhq$>exWO`*^y3+m0!dE07_<)MD zkqzdEz}rSlXXIMeH~^>4-dqD0T?j!Ibwn~T%g4iu;$US|+*LV658{wo#)=4B%R@QM z*X|k{psnlKVwH12b3T4!*u`SP&avv#^>T!>A8)7b*W5PJ7AbGBd!Ai}3hU?v48=HA zn4Xw$h|^8k3d~j8#H@VmB&wZgLe=e2yyw>W8EqBc@a~6vBB1lv=1Wqor867~<9e?l+eH+nb+(G;gnPOPn`FgS|8< zWhuVRV1Wkw%51jQqdk|@^hupIj@of=sFc3`EY^nWIAYy^>00H+LLYH_B{YYVVz0`Y zDuQWiV+q9~QZLK52lHzy+$y>nPt_f$+wvxs3q;_U=bq(qjK}3Px$_*I$N)+-uTVq( zVn;mKRS=i{0(BvkARTK2EI_r)U=54@PM5eHL~QW``bbz*K6YEaNd zvJ}xK%f#sikb#hsj>MMjv0FlscyD=Xt-}CZR*YDh+Ajqg6^`>wm&PI87*>*IuVK^a zhh`08LQO=x*U|B9opmN?Hj!wh>X6DdK>OhXvB^;GKq!hC$qt=FBjT`#$-bk8r4|b< zcHN7>XX#GEs8@WNuMPSIg9+01UGtS`CqiChQEtuf+_DzS4Q*S7yvqfZDDH9ihs%ad z``U*;THj#f#5cvNHZIN+?*>oLb#%_m>QvB8^5@_qFS%FN64ykY@@0YA*uNOEYwU6K zA3K2H=*|M=rHwzz&T;nDUr;fpj*vf!A!mtOm$PpbMEL`yiz5uTM=2J>6lQojcn@Bv zd((zJGP6lTk*oI)V%I(U2>6ts*Da{ToiUeRtPe9lw)WzTD=V$2sagxn+0BmMhTaH3 zjw%q5T(w`CSMHFIHAunA~X)VG_DESH>%st?CVSdXEH6;x^ASI7{`k|AJdX7 z)A2nwh``X6XA2-Fg~yn(tD>XQ+(=-mRgyV)Zyh88vfUbBl5Oqs3c!B#WAdH%Ci`?HV!=x6_I z^nUk`AFVE(l8d49N1Olggq}{&z{%wIV?iNd5fKq80Y?i1YZ+xa5!?4>(8AV?PQv)T z8?|uupb>v>Go6gybsN|^f6Q>gXZ_uwD%+{pT6}bl_{_gs;=i_<9}>SU(8B-S{_EiX zv&;W@@TYbEl@)*5DkLHNvE+xzjDNJkziobhtZXMHAuMBH{|`Iqgw@`Ab9#EZ_dz8O zCub9z4=#cK8#4Uv^*?suXkqVc=ZOCs9?+@bGym@Q|7!S$_@BnfIU1WdzPp0_PglHC z5JeL+i+6W>kPEyc3zH8l;$m-aZDR9*82;95e=PB*qJPBTpC#Zk)2M! z)lAL8_`Qi|W@dQjG46kSVPs`x`MsXnACk=PPE!AmS&S_7?~T8~N5t`&nBM7uiH+*} z?BC*ozbOUH`|RIq;WNH__hXrNSn&~scZ6WVh|l~V2;`sf{S8R|w)KB76goi}I$1kM z8v|=PBLjSfzdHUmO8NhsB_!~lX8j8?`kfztrjPPFi~8;S-<}p_{9D$G{=2MKv#=Gg zb+Y)!TkxUopHahS_)VYaL@gYhoQ2E{96tgjZSc?g-wuCAIKRdIw!MFWQ-9a|w|w}k zW&aQ4!(X}6KVF6ZrW}d=85o*B-huyNRbu!944AhN8NfaQNPXn+a~^6K>v?w)bB<9-0(jl^Urku zTT=cTC;Z#oq+wwE_tlD?{eM)g7}(iZe=q#MSFKpy{Yk?}&;I_ZvT*!swfdbSfAi+Q z6zUJ?{J%ks|F5uO#{YoP|G&WEzt!X4n*Yp=|ArPbu`qtP^Ups)K4`JjJ1s_Nhok?X z#ho{j`Nd%L=K5yyM#N!o{gqonae;8-+26%a-r$7SkcUdEN{L-!k%3)XiYR!Gbo5YE zeD0rfHriDtCh&YcUyh4PUoY-9+I=e8pI%mG=yE#va>`QWs^y`FVTa4>;+xG+ZmO`GB(dg*4lSKD^O+UF?%>$m%UGJjD9Go{U#E zd6x!0aa%dPRF)@zg~p7o=RBElDrlKbtYi$dc1^~NZsg0P3{-Xuh#3?ff;*%Jes8G_ zbk4UZTIdRgeegm{9VAO{nDmXxG3l<&Y4A|-y(!!pxbnrka`c5v!u-N0LwG6QpTsiY zepVkxNJCXWb@@hTE!j#Pq|d$kjD5d(Wu%jx6>}7F|C6tb&d>rx^kPeQBb z3V#(YQIqCctO!hEgh^E*Le~c`UbR9ot>8vNCD2hnc5uB;|FYhm;xZpn31SHbzRt+`~YHy8<^H#T@GIr_?Eu6Gg?G$7Ef(Iu!5X1h61xR7|JjS1v?Ch(Ho$uFmqE6XT!b>QaWEu7T?=PRU8L zsyT(Z&pi-`vO!C}sny^|NIOzdg zA``keEg}|ojg|!%4PVk=l7jB-;&{(usJYVjKfCDm?X^I(MOdqV0nqIbwI{5cYYg*{ zC58@2LFJqy+p6&6a&e>;xJk8*5)JrgAuEb)wHiDEl*Sg zfu8LLSxbYjzui<@sy!O)g-B0WKr0*MK0@&)Jfc=$6r0XVl$MQ1z4|*{^QZKb4GI?Q zOsGv;NCE&0e9I6uKFD|rupR~dxHN&CFpxY%drz&;s> zLP?AWNPRZwUn(8u0ko94boTqC&0JK+1SYR}y323}BS6VJg~0%!Z5GjYjfA)fT*P0N zsCbGUHp|bNBW}DEgGusg(#TY|!feYJOKK);P9OXk?nCmKM)P{DzASeMT~-ptC*7wLF$fC)Pr?giSS}+3bo5IqFbKDD9?vR;noy&haE?JZSGE3eJD~2qN4>4R2 zD&rrGJ4J znRcW_Yxyz>h%v>S3C5)pg&N`O^K*zG*oE4SL)GJ~(We%s6K*?k(jA4e&=~)&v{?Ig zcGaAntC1(^u5DBa$3VsxLEU}w`e-e6V5O}~t(61)8LH`=0h-7Pqv(gatW?&wJ$Nbc zs+G?VslX@6aLrKLHjudS_fe*tON3QY`I{9PQ8I4 zl0QWW=4Q=?g!@h&M*u+7CY=+XK}109L+fBW>Wsx7i)znzs5tBset}Vd|Eh`f7!_6H znp)dL#fWaG?Ans%bmmHhvtYYhFWY{toF-nZUc~2+-rT$)S_I0ve;n2&70@xO|kXojYGnC3F6k+l&O^S`Na|g_bIVn#J(!C z>6UftmVif!ZLC-mRuDyv)`0Zan6cJjc&~uquihy(<>ze&kr|9tXw%vzKFTPvI0z2n zqEO>e+sRwMfhWjk5CJyhLAQ42lKx0h`!3@rDO_vi2}^lB-Q!w} z+%g$?3<)W3y1G%){!(}{I|m*C>eRVLEn+S9-k_HCoYstjpBxaV@sNC;p7|Y0LuK!n zHrmwTwBTazssqsLK)42Q8ThlM+p%Cr8GA3NG{fz;?hR9R?#gF+QztYFplJDjBn zl+NT!>1Iv%Ji+4{q*WM1%E}cS`FPNAR$ox8_uNqp|J_Ca!-+abS19;dC?jaxU`+rFF@l z2ag=$*5Zkqd#AMHKy8d)l-M=4I7p8yNU7w7+ISE>`NseFc<*kz7*L8v25 zz@!pr3`Qg8Lb}Mc9C{Sw5x|_c}r| zw%bAvp}zdgq&DL^mu#9P-L|aSs?D~rF%1TgRwOH_-+pMm4w*Cv)9&IooT*UjC33GD z?+7hCNTaShpuWx0+@#DzhK4akkqX6z_VXvxxVi6k>RXhqGQ-jlR}xza6)FO5HzPTJ z3gkTjXa`0sLGOwnYinD|c#P*`rLXDttiAcmV90>Pmt9w2X2mPV66^e(%F;xzhLOaB z4^SJAT=foW4QiL?0gl^S5XQ&czMrOs@^?FEX}EI)FR6{TY~|+xj<{MDxpB{KDPwub z|G0evRINHB{kNQ!@oz`4ES#-P$ej#q-f`kPR}^q@Hn(#mmp8Ytwy?(+cX2i{w{Wui zIEW?melF)7Vv@^P7&+QG*_k@ytJygk|2be`XDj@EriWaZlaZd0g@J*Ak&)q@2C`7m z)04e_-o<3>jQ@LyzqZGW|I!}I8Cohi+tA74GqC-^!QM|nalGICSLcbCnf_CQ_$5g} zs)rtaU<0J1$0v|kVxPLO1i+{4tJTry)B0Xc%?Ae6X0NM%{(V2VMC;AwgS zr2=_mBts4}KugIC#pbNqIC~e86ll_F!~*q*+W`a-jOQlEYf!DrMt@@{!zQpXhJ}Sx zG(Y|wcj0KU8+T%ySmU4Zuf4_$uY;ltM|e@M=?XkdPIFBnSiaN)M9td-r^2EN3eHK) zlBfk>g$m6HS_hG^kmWqv!%g_Am0e^`J4?H+Dg8=R&nW|GYK@WHg&3_mn_lj{aPmG! zT*D?h{56{ct7q+BSc2Od-4qN_dU-N%9?hAqP52fI>(z0g-3Fo9QW(?ZxmKQdXRAV@ z#=Tr$Py3o0&U=0)&j2#mCkk+<54ZUHdFAeR=FAm3Jaq{!&9<~VqhZNFu6WHvw0Qdc zs!ir(CO<1^bfHmetC{PXf{p2S_2O|+_9KpT^2+PlInOy4yu$0eU_~wLn;~r`vh{?* zem!>4)Aa^2w^BI!w~6~3`2P>!0ON0@@J}`ntT!0Hw1W9r_)vWTD z0Nf}u3FQ=N0ko)W&8O90orXyjRwzfya>uz3CarR)>Je#5=p5weHdI}8d*BN3K`P%3 z@l-MV71VB{ltX2G>tUA&s}qT3B!#^MQ3%H&cnBq#gfYZ6`uyMSzpNBtA=-q~pt86iu-Mt=TpHRxqg8J5b9LSVaR0NY{mxgmvo{?jRrPMk4?_=@TBJy9qhD@LAPGyH?l3eq##@5VZ{mU#Gg<>)~kIOR)_=MGruIcDIaHXP(n$RR`eI3{ac3 zsO*Q&q26(3c3(TMVAgzaRB!j}Q}vrR^}cI`uHO(2mXlrQ)j7a0pLSj0x0i32*DnBe z*1+~MnrpriZW$YoDDy^sx#eft8{@7Kr~FrB4llIkdTUJ`-iNUGpHIo=U8)W>@Wulx z)ajfa&Ro8%x!ttA5p-th0L*)DI?4-h{>DvGCmnKPfY(5sF5hX3~lqxGm=t~lE+*F?hF!>5>7pK-xf z&;j$#R@fTc0qO2mNCzShNY?nGZZ}7b{HpFtHb-7V8DhT3bvUeQACUTyzAF`Rv)8f{ zq`}3FlqPwnL51cn2G6R}*z^Y)I z?w^x{t)UN?!bH|c*EQbQ_3>~9SjYYjnk`~=8w1Ov-a!w><$5?ndSdIAX(WU6vhKjP zh|Qh%ejAK$zWiD?&u+(m+TZm?ua7Vq@x1&*R}+MM_|tCy;NGs6N*plC|B@cTQ~;?w zC{mv+T{`lhEJ2Qe;^EBf!EW*!c4~3ZkFPkYK3as&zlw{9yc;f)4IBkuj-CA0ZpYI% zp1A-vK!iDO_kq9*+*O_m0c1ts#Ud`_E>2|~*RpHOqDHP`asVC@NzssH(>W`O-5*OH zGnSh%%*L`*{C-)dt@z=gRI$84b+&gLl^&EJ)4t+ee0 z%$1GnHRV}7d><#N7~5y2vCiTunpRWrHPx^fy4lVvQG$dbl^f1sH)v(ETg5QqIn!Q1 zFWMd)8vkx)nqO2e=eexh^^^0s9HRBaQcU#8 zB8pW-Ky}R=L&ajIH)$$?H%a>!j6@FYAyz!`cSTSWq<*S8S`i-gpNfLUQ>~`?cEt`4 zC@$jP%&cxuqw5JyoehBtSlh}(6(lkh%jR`vQOa$~y3Ral_AJ$0iafgA4_LI~YVivS zo0`2OG&!cgGgP&vrMk?83TCC%WGXVYO1ChJM|D=(m2J`%w6%=fIA4(Z%krCh>V!em zk}=QcgmX2qM3YNZ0$HQJ2TXugDtQi^!|CEB7)WF;G|$%6wiRfYoci*L2A~a8D9rfU zGruS!aLJY1uDg3yd;zhVQ6q0fhqhIo{c@clSLJdwdp^KhP2;jq2XbtGa6A=u3x$jw zZF|91W(*8la*=+aad>^~Jm)C8A}PYsRI07hm2A_n-yu)dGh<=&0qa}V&G+`&UsGxvfr2;WalREYN)p` zn@sbBiX}q>GMHQJW&5}fsYCR|7$OMnA?g)Vw-g?fpa-R`~SZXWH)@W17eW8ENgLi3aHUVK`#$(R4 zS$QFOF!wD=q`Pn-z@zR8z)V{xPeoBTJO|cmU#Oa9)&0SznfN_!;Zq(9(b$Ui!4UBB zyqrRGcD!6`R)+G5N?yY3TYj@rRh8amX--42MhQ&4h_%)RdujdxTI{R{IZH`%`jSOZ zo@?P;o>F}j__g2<6_nNcc;+HqOh)u6Di&CUBju)3YM$H7FXQJ+h1 zL2#?<_{4JU*0)v#jUt_Xz0WG3tDvoOl|5==U5Yuc_>r@NbK%&nM5>jxsH_QTe_9Jj z)yznXMG?8wQ^$CwRTpomR$t*-7enrgO!Syf(&SM+rJo(`Jj=PtMe$@~k`qTF8nW(Z z&w#?iZ=y2m?F(S=la?USUz526KQU)B3=>TveKV0ZeA|T#i>M3jTXDjT3 zI3F?*PK%budyL_4h68IBz_zKITmMRr^d@On)Z?hgHAfgf5*o)JPC-1NBSYz3kMtQ| zSR_C^pt)VTv*a0z6$h11xCSEPp3REX{H4ZXq8sjbi9)$pd&8T4c8DgY59V+plU%9#*R&(eXw?c6^C!bz*4Jb|Kh)Hvs&8=PrpdFhyeB zs4O+UuT8GZCqe7|Fv+N_*?i8>#({wz8n{UY*$ZSQT!JT2zH-e!AH$j@hHQG%sL<;KHexy8{j4I5)PTJ*k*?y0#y=BX4ZY_k zY#%fjwnFJ;3FCr~y}(Qv`~HX=s?CvNqQ3&2CCDumXcT539O7BHRct|z=D@IR+KUsG zKsvx-1z*L#8tSfHc3D%~o(ZLJSKEGETkf}83RJOJiKeAlXZXh9%ag++H(_OZWJuDy zxI@9|Wtf~Di&M29eii^QF;*Y&l3YTKLY5v8;btUxfCMiG&aO`;1&9*QNYQ;+)BCC| z*A?R<4bV+aRE>t6h4+f@&=qY^wJ}-9pdr^W>Bo0UpuN1*a2^wK^WKvSSkHA zUGJ(kX$B=M=@mmMy**~e6KBT#5mT{hYC*mZ?J=Sd?PLzz&Ns-ukw`d$N07J>HRu5E zsU15Mceg89G}bdH+TW4f*ywRJaq4CIX;_tA@aELF?|4yzBfK4)lF)C(4?)Zq0l62n zm$lbc7@{OK&JzMCObgzPur%zzByBhh(g*WWqc>F_F%PZ=a7sMqyvIQBMn0!#SRq|9 z=bM}WrsgyL%a;^Bshrs>vje-j=ex9h{a0q6?{ouz$*ARE)8QYM*r*XTaN&VRMQwapbqc zi*}^*>6gBqT*&8`9apIDgzxuf#&3u3A02=E22&&KLz*a!jN1-3JCw|K-`1!_r^t5S zV4?~v@M&0llN<3OfgcrOC+>6XCtQL)^9X=Tm?%owyMn~d8R83k zh?}_2p`TWX8O^$(MJpE$q)5GlA}%HG4Rc z^24~w8+9d1WZP+QHOn5BCSX?CdqPs0o-`=TW@5jdj<>b+kubqy; zInl-^TMRpyV#h3wD0e^paFf7xH1ew$m0U12(L@nHst>?*KzlixMY;~Ua4FuGF%Q`yF+Zw1GRjF{_27Or4JgFBWPg)R z%@|%eagY{7Y2{209gZ2926frRH|u0@+3L=NKfH=&vu0t&+QTfwfQ0@DBOBNgXH$)p z5FIYMgl<-gIVSo|fe}*F@{^Gxxp(jWt{y6>6ypT3e^G$wNK(y5GTZ9Q6d_wgWDA&ZqqJ7{7++hitO1>I#3Ym0O*+Wb|O@gPKz#}g5A9RBuA>)ETz z8SAUsGNdy8xH5%gG8{U47Hq?fYZ=m(0NL}#*|IS97>{gv6jsfu zX&zfvUEWQYrztX9mRpJSXG~wgI@DRoCZLR$h`i;^80amO@)EoKA#{QtXK}2m<3&Ke-br2=7mC zJLnVCu65vZV{ef3U^U=)d<*wx*%YI|qvPp)7^G<}S1#Rr#au?wl z&O(d8>!Wdtt9Axf!@I5~iXN0K+wZ%6Jr3*r3r`84$v1io=SR;nF zh221J=kR7*1@>Ax?gcpOzKlJw5rTR-9 zBylVEGm7PAP^1DFplOf5_Z-ifJ6ZSG{KOG;mS2u)>M(r%iW-xUI@LI!L&}VSoP8-5 zCl>FlejXV@AEH@-KG2^=28z*dC& z=KclV1$xbvG|IG)ue2_q-Hc^(+G|#OpDltf!SmE)%nx2T)gG7&0B>1D35ImBaT1*! z#_#c~!nPz}L)SY#ni5!t4>#z?hE_{e!Ia*p;5^+b+br8I(@#BPJ#x@*2KU$Y0{56{ zp|AENmTyXpIA--|uw7;M*dYyJ;?%^jc){#Lf>%P`v}9~?Ttl>1P>i3yam%d};%#>Q zg1cgQQ`%C_b8VHn#7d5=?2$UAxncDL&)Gi|yOB!i@829bQ&#PNwuZ5+i?`|8C-{X% zpu|obG&K>?CfkDCN!1jgOmJ9)kBXcxwsC?aL_F!yY}f9p*acDjPTaD^&g_<~Byq zxxGoT4;L?$Lt8`Mz-b6t7>Z4*#FaP)2Nunbv~psrArkYUvLRQ;*utl(!EfdTsY492 zOQJuRzmQFr)JBZ=?Q<_nENrixnR4>$<>@g1|EP9P>AqToo*(91@^qzG8CL#9?G@P8 z$7@7(0Rd&&MG%F+9iWy*K#fX^Y>T#zw2q|JYu4*V{G(R0Srk&juZK#p>1!AL#H8h- z^`epc)MCi`13UL8xSUre9>*Y^AZGy4gA!-7C1F2dQ1eRn zaAirUA#8S9_sMy=X`CA-&0*6-&+h=L(?gziir+imC_U3J*r6d}w^y@!vgzW>cN{&X zzYF3`y^eD}&}0(3FEL$Ua!EsX<6JcBlUf*utq)*MLiy4pMUHJ6H*{4kYF-h!hs^_} zb+GEj`f`V^#yWhBM~JpV!|+G& z&u#DNV6IIudzf+Fdpy`5q)d>FU+GZb%>JXkoJ7172Ctqu}3v3lXm$fL>MaNG+g8m$<;JR*= z?o@l8vxf?FJJ;>@COkLTji+26h}bUq9X>)f{y6{=F%qG$^&=@D1@_@iYxo$%L3+t; zg<)I~GA4t;bnrvnhacY)O`LY*Moe?410nNwkPUe7F; z^Q=w@Fs|qBktQ*$kq7M~9~dTA0VkM98%v@3;%40w$!R&K$*P5$5Nn7gwj293&#>P6 zN~bmdF4Enf&@o+m?@lh;c)*15p4j{R^G!s=XduWtZhT5q7c>AeQi4)ir{d(^trRjw zVTxbg5|j1j^&aU8WDmVo=WA2X3^;4rS%{HB z<@FsJDIt#ChjU;kF>Jx=P9t2OK9F4D6_4!#Vo)w$W`Xo`^AACqHAQ>-ZmdK&S;H6N z)BDRUxSOO7yEVRN(k4hbZ6@knC-=dqk+;vtgfP6ZrizB7Ci;cYQ1~cVl6!{2nt@MN zWaC~%!I>D*&xZ;g;4FcV*?Dbpunr_s)o>WZ-G1|lF{)#HVUj3$tV0O~C$$zLUa+iL zO7uRMT<-R#F4;>Mr~7%VfyL9JvmpWq3;n6G51S^BaV-Li;f!1$HnS6&TA}v**!h0O zVS@mHU=IGDw{boR^Hs(HZkxy5singZKZB@uMaX1yV)HTxX3GAIESeHb!Zl~ateA%< zBPI|;kGswkPpq1Rq0UG%u6ZV%{xw6MsQFFWF(RDSdg@6c8eTsd9+iSIXbGF3m)syC zvJ_z#-Fdu6hL~2j5Xyr5d5Ayg-mud&k^Qn{!mdsdN=7w1LNkL-E+G}GMcU?yv|i-3 z?LNO&kC#>}Di80R9>y_MB>BzurRDV8fwYTqF^JuiAyZhOdU-o4p-W$6IV_Z=ALi`r zQk6;vJfbTjN+pS5TxyHE5PaU)+GH3(#3-gWAO7@LdZ+nIrx-**U~d4|)V5SD<)nrF zHP(f!y}G{EC&D1`OAXBOCz#L*>&Rqv4~-Z$Y{p3{Xh2|=XX4j_RF*rfO#iT)8v+k< zCLvr*K{N6Z>{52k{`dbD{l-3Z{1X4%+aG?YS!tJhIKwt9$Bl5;i-aY@GjOV0rFkJj zY_?9AtXkF{A~FUn$jyWadig6%s|CGFZob0iWnx|Nv`v(vm-MN;EJ_p~Xx+FxD33Q7 z1%=(Z9ZhFe1Ts95Ln9&4qhAtK6zYvXbHjaeXX4yF`T2CdnL#6XdsEG2XKD+xIm~*^ z>k?*R%XcxNXbS9L1R@T`V@HN(JvZ>7UxRvDP@vd}r75M!Q(7%EA0-_vVyzH&L}gnA z)xx?oydZXLL}H9pW%&Npet2VJVU1pJrBl?q{f0D=f`WmJ&Tf@`aCp26#Bpbb_%j2} z3T$kx44fb1G%L?D#+8SblTx$T_u&IKMe^s$2^_pw<-DyVRf1zNE_jf!i0Bhm*SMUm~;%IyW7C`U9hW^p?E zGwe7LumxIe=~!lyAcMH@l6);%ezLSz7>Gk0rW}Z9NHotbd5>Tn(mLsU z_iGD%mquL1FffVS&*DgSsE9(DOwPWa4qNe>^2)LaFdo`q&hS1_3q5ZtaW7jlE? zYN!*XRZo|vJynTw`yQoe$;_`ek6U1U0&nZ%*Jm`?Pv-g_b}PoLd;~5_C+SxGK5aAl zG`t{H#L@vH`HojF}1Y_b-69R<&bK?R{B_xt;U=ZrQg>fQ_79 zP}XR8`ge=Jz5}i()$eba|JwM0w2k-!>H80jY-dqH-IVP#11m{hvI2^4Qrvt`q2UW8 zwq_0eHWSMtXN4_@ugIxE4OP+{8so_H(rrs_{m$JJBD+zCj@-8RUWzfvOHQ8>Pr`FR zaDBVYIH&U>vr%wX_UW4eA*qSQ^P2;k|31XYC~wL(PnDJz%OqtZSR)UFcLrcEG)sAOnr zBn@v01`*5vOf`)XR!Trpf`Tf900tY!_I>{Hbt~1cJyRL)o(V&*x$2@*&iB%F6k{64DacY!LbW(g8<4amYd07f6NUQujMd)3oan`Ds%eOJ%py)2QT)RQH%=-2?eZ# z^{9nOU_2bmXt`J?$#t1l5^G5W))pPf;lA-WvzEqy@%lwya)Euha9TD@TC5(Mr7WsN zfUG>D&p~Nu!%N8rcTHJOm`!Ee&AL>)#${GEgS+HWaf8{E4V~nhIdW7$Qhav0EJ-AW z(dTptijtuci4y7WKbXlRqI!te(sqeU_CAqqK6~K@}cmT2r5uuMDNaQ8%x4w405?{VxDIK*hgqI=ErDmrTFup2@Ydf3|AQgTv2? zgDKf(FBv}c#C^lVzi2ObaN6YB5AJ>U^Sm5>qq-9vhkrj~fgx?ZQY10QXfzmr34F=S zrW^|x4cy0*<-{q5Mm9?^D>iD*vhp%z%&xfO#g*oW-|SgsAeraH?j*NOE5bc z*ji_Qdh}b73@=x`qEU-lqDa6LHKp*asHK}T#Tmgnh1?UjGw+E%v8%dEv&1({koZjt>|$@6c!#Pd8~E%?9z3}WHC>JIbuY$OH@Q!nd!{|vo;Z0WgJYONf+~6UUr6l8F${Sa9(d^g)y|@ z*fz>Aq#o5Qqg@KQWsrDH^Azn;7{^DU>jGoR*zBmWv!lk&9to=19>q+|BSF3;F)1l7O$+I9T1YR*FVuaRE3Lgtkg4v3QIS10%`lN- zXqOBU26q92dr<;Ao37qG{QS;WhIb6~lZMxK5OT9;w{yv!H5(3G>@40$=uMX&FQ*m1 zBqxuo>)A`rd*vn4Gq5~#%cSnW?0Hwu-L&J0;V%O1MI-@z_k)LMmFDRXF+Nt6e%{M*cxnY zwr-nH>QDE!u8p1yr_Ki5oxEkbH(_|HD4X7zuN@EsuiDIvtLn3@Vhjjgw~ZpzHe|)A zyLKVI#5)mPnBIMWes$o$Nl6?$c`se`RUPd=IU8rQ4+GPcXmdsyxXt@%bp9+#P(#EJ z42eox!^sf>@PlZik25n(enwD^!$u* zdhT-Td3KJTr)O%pFV7}VQN%6cZV~r8-d8r`Te%8CKKP&k4#RN}6BT4`0j7y-OAqOh zHTx*KW*@%ONzr<;4cBk-?|Fpxpx}~`ANng?zx4w)3~qzu-_bUf03&kOJm2p9iNvV!|4iqp|2FlfsIg?ia?B8ZG<@H%dX zSRQ-^FQ-K;f~J}zgdy}I1L6CNd@Z&V55Ak#6sDh6l1u~zIvjGfK{ZAqN8S-@1bl)M*vha#NlKnpog7$Hc>oRNj_71c_=DqTBL;br zeXu}zC<7Mqs-5z1&T^5br2zgc#~P23G`nN$SnI9*;J)X}C)6_FH={|TreGh++@EH9l z&v~G(X-zEju`Co6Rc&GgWD3f8`gtG^AQS{qk`Xa!nt|7;)6?yNp1trfDygqDfUyS_ zb|=|Rwwpz)2p`*N;@A_$B4%-HsGs;N){xM(i0kU%BF67nqQW{q5#w{BEp51tNK5Df z`FB}Dn)544L1ZrsyhFi(cZhT}Wt)QTs~wb=aD4xIyC&f~Nn2YTc&oQEr!`dO)IG>- z&uPu=#N0Iu-8w91t<&69T}7&^h`4wzh1W}!aqPn*H&D05Cj4VDFsh1zZS9~Eg+NdZ z%=^=gj;Wed@$S=Jk^!nL{TrBRqg|kp#}wAtYW& zha9m}aCD>{1&{0`142j%z}Yn6NXs~uuQtsyXA25BLKLHT!N>CgBKi`oR?;v&HOKf|p{~vD0%FPY&h0x!eYZfW_jCXV3>cv|BM-g(Nyq zxa*IY1?RB{2|Yr7Vh)|czTSyBA>VA7%{jg*oWmkXZy1@)mWgkzCT3o)&heTL{d)2B zW4&HvR#;{QGX2>6db{67Q5Lwo-U572=WhqiE0H;yFeBfmo?tS@G38Cf& z=6Zyf?vvek;u%#pAF^*z8WjcSlQ=Xbq644d^F@QvD8m?xPY%ja=J8;!_L4>igP|x) zR^-hY-WkDsWDYw=yug@kF7(a|E({eS7esFh-Vcp%oTfc-S@aKy?|v6Z{7!uDE%-A@ zR7XDN$m{4%9$^tLFYhEd$T&)(8IL14URPusBlO7Q1t+A;N4hIOh3ms zMvhR{?5*3q1&VX=Za8+yV0GzePQ@}5Z(`B{7 zYfzQV4Av@0Mbd6iEzOkK3NzJJ)Ft3%(Dpi*_+(G1_xS^*y^p;DD&GA7M6dqz$G|Tc3DeeFNdRjkOBjjkJ~kc6#bfp zi~i8J7yZq_I7I7GS!p7>EFi(UyQVF_Ywj1NS4%g8YoGmjaq5U4mTqD9YM#ZtEB2N8 z`=6r0?bk23(XV2iZ_dCS>=(#?{8TNZ$qL-PFtaHG!=ZLRlw(W+7s|ebubQi8hXu2l zG3?mj=*(1hYH(7f$j+{wlev<;mcE9)oxYvDoBAoeg?f^Hn|eENggO#D5{kswELG2r zVVNR(SLmM1+ZiSusL!+pa+yh?NwEou3Dr|F1!0ak+dnThucDB+AbCO6682L6vdp!a zJ7RZaJ_!9W6P823k7Ch|Xbzp&xAINV924?|>eWvu_zK0Q z;&GjZLMqOSks+XoxIhzeH4!2iZwRlh*Kt~}lXiQt_u}>SI!@~?!^k@sMw0d2^{~Fu zfl;Lcqsp@5R%TFukjwrmhe*ax{8bLu4f^Y#yH2ykA;(*ZR%|O6!5n3_7_S=`c^ze2VxsFY0mP+q&)BEsc@=xLm~tM6vjQV3iI8 z`AiMx5+AVZqg&f-pEof9v}bCVe{5Kl`}umrAO9)r!6)wajCE(!H5P)R>_ek#}qE$@ItA0eXyZ8hU^%g zJp+H<>4~(W%cDE1YFbTvy`rYourGD{65an_J1a8Q{pj(AeTnbSPeMjon;e^*oFy-a zt%$7>*J)SlH%T|^_o|QUd-PAVzv>3!@}#NzOj9>?Mf5~rWh5YR9@9`2HYAFHU?dz5 zJ~zn=;*tcn$b_5C^4%vD;PGoJ?%Vzu0m0TkN zHb5xfpbgKm*BQ7kI<(_S*?K@;67qUZH%6PD(Kv+wT_lIqP$m)y=S-BVc+jtwkL8Ri zANoz8-*WOXH@ZU%WBDyFFAs+)prfn9)G^ zA$aSHZ(Q@*o6~A%PaQb+!t5(97*;vuPvD`O?wNk?!=)y6?~GTje&C&obZYvVQWqHU z!`ny6eE%A{rTyx&FJF(&^n!uEGM}+;Qcd(YGACeCHBKBu%bao9X~#zEW!Nhic8mxz z#wEz(R9AmhaoMuVj=AipW24$UWCH>^2C$5LZQ&C766Pv;HN&K9M$)<1S@a}+YQ==a z_|(LjS@c|fLB$2Nw|KQ`EcRmXq#Psd7#YW?ag1t$E9=3Qk#>xXW7J@EXd5RU!z{5UuUdIU6o!>-zwjt-m3q|xG8mG z`Y!bz{T_eZE}Mr{W<1eMM9kEI3`NyNJWTV547C_hk2>t?=q*tgO$XFr@tQP9vjMi; zo?_#}#CSYFlhg@IwM9!)#ur6^Yud)ot)FOqSURPtGFus|h(`sUV`#{MbgBy7#;c>I%CLCS>pgQeeqk27w2H6cw}L*w zWGqu1`wp4P21{>2%uscp4yT=(24~md&qG|eF4A17d?R8Br0v#=0+t74Jh<|~f8}u) zz*C;M@SKl{B0Rzt;)~M`69LNZa5|BUv^lfrztLaJ9>#}b_)H-u$LT%pQqRTGRM()7 z1NRl;@zLEN3Wh}k!&oBe43h(Kk_`oDrwfGKl?+a`$6-se-AGH-WHKXL+uB-?1KWL3 zzb_bIg2bP3c*`u%KRL|i~ zgb$1%(O=5wbC@~8s{#|)WA`LlnK8mdX0otWe}w%+=M@T?d*Hquoah@8FnunE@D0kb zz6^9KdRVULp<#EX4p|jFEG7dW8JHP>oq?5s?f@P5&MKj|ppqt)qen<2dP+|8lpNoY z%F$C|Yz57Vo>Dn_N<}}e><6Q#)t#PZ6m4O*T)dGoA&ct-&P3<7cR43gP_{~ETpWNF z)2`QuqD#bGlj(e6QR(Dczbl2lzm=n& z;MhF{$)~E%+0Xm2b0bLEa{|yYq==&y;fL81bRgw)RFL5kcJm(GQzez9M6sg40?0Og zxZn72zuD44St`Vcrf5FZ$bx#RmQG8JN|Vy5+#=i}ZdCe|ql%nVW-5?@vH-34vRed- zOmydt4l?kC{#p{nq`>+Ffu)f1LDmN$E25YBG$~PnxL5#-p+FiXwYixB=oU5#=sEy- z73OPm3n91@Zh{cvTg)UolZ8!eC%cjDV~?^dy9eI9Q|^4sk`lWPBl^U@Ap>zS%CaKi z&qEz!u~=x&q2Vz!ODgmY%7Hs59f9!w?hriyUkE;|Z;u)^$`%i6(WBeWok!+O@i&hU z;Q$q>b6tM!ChT685(G!c!8JuCXtBh=768Zfzw!rg-S9-!FmU@z{V%Y4Prlo|a@{(n z?!-hCf+r7r!o-*}s9LI>t|I>5AgW@0SdG-zsrB_awawoi9bG@EzNi-Km#RzZJDYA* z*Vp|t@UzI{s=wB0rqp0|3uEh%@DsJY;eE9)h7Z*K!T({cFg^g{I0%~9^*o-zsl<`k z`Db7&5ln=#4fU-#Cf6{DIj5l@%*|dZEXl4_HYl$u|5X2(HQQS?z!;6G)?jm`FSM}k z$~ssVYt%ZlJGD*PfW~gpwrXE$w6@O~&)i+m6if%2(+bk?oA4P1H(OJ%?`xc{qhrQ~ zu@)kT-Br-E7#-XLpV%3)To7mJ4U%-`?9ko5Sd6F2pM{!GBQ?ipx$Yw4A_@_qTZ{hM z<&&puVMH!a9O3zNWeO9bowohmBE%GfnJR_5__9olW8}=HaOX+JZ#zZaaLS1isXcIh zUaQGd86%U-G-bAC*c`6QaQ=YOxpypMAEE?XrOAxQ5j`|s-P)Av%fZb#kPD)h*^Qq( zC^&k1FdeFD6zsFo=wvL77H{OuLSyQA?f?f9Tn7g^pTkl<`wuw#d4?A_jTA@w?$gz$SQZDl|QFF3Kj$lqcj1nDm^)M+P z2LHIr$`f-WN5t6$7KHbyDnh>3gHVhqW=Ic3R^(o%3gW@8570zaIH9 z*6{NXwdnx;V z#Xp!6hGO_NhJ#cz#_>S%$21uakq#D8Ay>{^9w^OM6+)?lGBD)4+$nd!rp?}LU|nVmQfw?ma)`+l3}&b z4#H^*^Z9UrPD9uSP))EIYy(FDlK>rH2A}~>%dpcT<5a!^yB8qn1|*jO9*k~4&<$`e z4!ae3XaK)u5F%qfWE>WR<7c-INjorbS6Q<(Z%$VrRFU}!9?fX#*4*f{EO3vvqc3YVrO~J3eNJ*3U+!sgFk~m zqkpPyF}6e$K@Cew;Szc&yGB{5cB_vlyTo2;m!bre^~zr$tyL}5uhg&CX&s<2kk2%c zDT_|@wl-3msYBFJl&tBxObx!r7<%jDBp1x}GR*aYp3(#oZ>pjc=~*6g#fC4+52I3Y zHUR+2S3q9NT4F%n#xuyE z>9N}@zWmSkOaHU#(_5bYV`6Lg`gu1$vE_$L?*KOicOL*1Kza(m8@4_aUAFu;Z@%-w zzayrch>-h{HD3?Cgeku-K}Joht?GD{9qAhxy8xaqo#&esy9_R37mJtpI%9o_x7fG6 zABK;3kNCa}eilAL7%`AYWFweHr$jKP^21S1JUlQOj#Q_>3F<`Oq}T;gLA^{p!u>UH z0vyu};794Vp(Cc0d6Pm^iDC`{gqteMdr(3xfZ8{hw^M0TAHu5ox56z|(9?!-&;*8= zH#^O46Y(l`6^mU>52i1ZWH6X#O%6MjN!ZpTr5VPAsbNf*&b)!?%oUjXoOg$ab+yMq zna4qy$3j_e!IR=0oeb;67f z@#IJ)S2+@gcogF;v?1OEzCo^}M=gHw`nT6Cee1@~dm4B4C!bog_Lq-cyY8X&KfnFt z!$&5gc48v*yz$zvUwZ$I7jbN!f?{(Vait$2ELL{EC`<$yU4R5a#3s@ zx6XeY9uFB*0O)EkI5U9DXgUznHyWD_Xc$a1Ch^o>_yqPe41 zN55mdyxi;y=2euEk_ub3IyW3PtT`zaKdD$#-?~i&Y9xVY*wUF+e7PH^oe7W#>~j+0 z-a??I91jKu(FG??8!0}Ys&94h;=s(NseHD8$8pLKiV+A|q!uIKA>)S_LPJAsF-rvU z!{{~yr{i7jG9Qn-9VXOO9NXVzZNT$58#{0kxhk5kph$@7M$v$6vW-6KApSZe#t2}H zsml$@XfmLeHYCPt)0-3}^d|AnrhOJlLiMR8WI*T+{90RdEINP0(9FU5v(qF5e&Q8H>n`F(CYd6M4*Qo!%g9QcxCu!$^+`-st{3Y)otOvFcZd$n201= zD+HBR^q2(vFzfR&G)GCBe84y0wH9l4!JB6WH)c455VUs?$f%THC>q`c$RNhf5u;kk zKt?u}Xx&JGa2``oIIkiKqI^Uct0lr%6(%LB!Is3nvKt^iy8-eyl2?&&E}T~37Rhc> zjXfL+KMVF!mDF({QK4-1xSJzzL*&?4V=N(x&$FKwv2r#R53hZmGpzw-pJ8$$&k3li zF+@+4GC4g8vLIW3!wn#dC}dT17bOL}SXvv_vz+E6o%AqJAhVi#&DIo7^~jcyt?gI` zMS%*(DSwN<+T5{elQ(kX+Nleoqnghff8YT9)7!h2wNAXi^Pn`b^Wxi2U5a_)%+k5^ z-w;p4sd`vP)~QpLSzm*k_Dz*1_&Bj5T+twBd=1q(xy?6Op6Dy^bL7kA6VgBY+VJXz znlq};sF_-`v0-xq-&WaH*U>Oho>)1d?)=L0>z44BR9;fo+0fnae$6M9UsQitV+I49 ze-GT=QycU0B-1gHR1?W_x(T3BsSB^m8*D75OB1SMiWKm-q+2A!5re!SA$xF>rOgp2 z3Q6fu=wJ{S!F;eY*d1gV&?>^&4I~N$NfZi}qfn4Up$%+h6R@P<1+kpM*)=Q!Rsdl<9K zVSG8(o(Jhd*${Hl08LTe7)vsFbjFn`WbIy#&N}D!))MaUT2-l))+3HW41ypR#5-F^ zor#;s(285ZkmvdxBDNt?)#5D zea*VZ=0wg-H!qskzU?+J_QU%Cxc$EFQ%k=-uZ)s~C5J8^^0wkFUmL zByyTV6hnqm?1t`%e2}mi`Gwg&_qAeL+%=PWPWZGvv;(yRy!Jd{_3^P*gcv z60M>z2kea&8mIATjZ>mP6%d0_c>3!G3Q-`)Mtfz6l4uq&S5wb&7Vqe_ibQ9Gn{;pd zX0=J+!uib&JwNDM`=3*K)-0R(qp_$Q{OYdamIwM5!iP3oJL`_?`u8E$x)}jtES{>T zcqmzO^-_8E*pY|I`=609E^N0{PPqiLL7R2ijAQo{pzPG?j=?zwkBst@_PeU9L7R2i zjANrGW$e|Z9fNZW9vQB8s+OBSgEs53nX=5+UJ%>xI?oU{ikro4VxRbtcvR#mF(IxL zyTwiRO^3t*QA&uY;NuxciyXagpwE7W`U3p}KyfU`NF1MLDP|M1nc2qlF^3qgk2%Uf zib*mD(KUv#bOtz^DMO7RP-7(g78nvV87F8mPG5<^s)U4L$4nPa2iz+1Ed&@=S@#zZ z6j!pQF(%=$bJGRFa9QdU}}84jee?XEG<>r{KUZO6P*n1TP-2 z-oi_HR^2g_a?8gtG{^m5S+8*n#WB?KV;rZY9Yb*p)lM(d1%^$tW0)3pJZImOr-QFIJx=7X^Rlu-H80Yo$RK$;hSDxZkv9KkDunt z<%fQY=bq-Fu4ny*KkhED#O=twnf6iE{+ZU1)@9QO>(ctlj=p>v#VVamu$$PASY`$~ z9A)VQyOQl@2UrH38VS-Cx#MRdB=1LA-6jh3QAhE2Zwxa1*Mm%7;bMB?es<0(*a@rC z(;XOay1cd%Qq!5CPKdn_OWpRK8*=R%KDU#SEdI8+`^Fx!{l<#UTn6Ql)%2BQ#^o-` z>k6*MkQvTF+jQ9#t}`5S*-@7raoH8F@7IXA?5N9*xNODMz*Jqf=CXB{?RBM@hRgQ2 zY|~|XU5SM|$?&*r(`Bpnn4#dz8=}n7CsW#4s@- zQC$c(n54&JI%BPa+RGkL+!=C;<-tKRThvwyq4dTmh>}-|mR~7KUMY&V%$WFX#D0-=03bs@`FH-GrXSJP2`wG=*aF7C64uuJ-gPMWJ96z1q z0fhW0!$J#!XK zyndI9t$+zWlzAY2JldH%hNHc~6I+Aar>;JTyGm_o4Ic^Q{$|R+i z0s1db4`F_d;M_ZOGz3?MHix!_`a(>IhAsYpgS~)*#()##1B9WE_n4-=dF@+MZt1j? z+jOPejLpY=dC%!7{Pdu4+&vg&CE>?N8b0KXth4uz?EmQad@v6WaHc2;5--u5kufKm`W@%!Jt{u=s78%j%xA%r_?PmNdl{6-X0D6I4_fFv5+$=Mq178?Uq)nS;AhTld-YYz}o^_1{)s^CD|R2 ze7N9AQ`EP2j-7_F;c6HgLmI}%Pj48LAsG~_NW(aBc6$g6=@^$A#@S>Tqx(^JdY!2>Wp0uM&kI8}}ic*sNH0Zh9Y+h)s*L%L%P_4m&HRq4ws-~7RE zyMEDM`P90r9@)Bf&BLW7P#7~E3HYhE^YUBoyo~djn=(aHt~+cLkFCOAEQ8N6{suZyw^PQe z8#JGK58dXwR7Cwg^1E0{_(K&2l;-nfcw`Iz;LKqKxwiDRbx?G^fWoKM=+GVF)cD2i{ za@mzGJ6TR5zh7Xgd{v{x$>R7_p=xo}_r*KJAEqAhKH2aBt%|`&DA+Wm;hi8Gg|i_v znt>ErAS@6UNDJfz$^vz%uvA^|c~NFj?ds~)sqWNI zqz9C{YVU2hyJ?H`xbkq#mfD?}-(~`}PBB;I7}buEa*SGQyORAFY*af&$}uYNj$2PW zH&3WZD-sh){y+A<1gx#=T=1NGuXcnav>_1U3M3E+5J+GaF9;hO@B$9l7(2$cKmvqi zgasI5XSZX=b`~dTQ)g-8q-|PvQa6pACZR8B(lB|+Yn`Q;Oqxu#H%ZfeX=(Gl_O+eF z$n&3buNG`4FVpX9=gl{8?0f%v?z!ju+xh>qtH{WyD)Ms3lu3c5j83mx8Z8}`?Uo-{ zUbaXzmV8Up@}7mux7=o7EKh+N89~G8%&Xr(l55G1crAVfGYD%jJrCoI!BkCWWVM;P zYK$wk=0)SfQJQ{Tx2E7dgh{`YL6$0U{uk_F`dNO^ z&T!Ah+7n9*-R|9F7C5a-IZKwYz`b#HH(g&yMq$W~3UW)HZe$kP`u^f_TcN~IR;1Hr zY4uuGTA=20k-{a*#gcNk*bMM!&n(PE1%>Jid5JO?yNVS`shi71`Pw|vD-g~!q8Hj3 zEp=ai{q-o#c9Rj<-c$q@I;RNZJXKLqUIj-DcZJH5lVi-I?LT8`5u=VQV4QdG2wAvT zT*1^-FRHy{&jtjt&6Q3cH9o32vj3{RHO@Pqzq_NUuJrb%akkM-MW7;yK`%2ZJ{+!uXOmDuG+fg{!I^q zwQ^keH>Ol_H!|Z9Izq+I8xc~?Ti%|6WofW94OWtqbBe0zDZ35;uCri-Gt^4VB9m6( z)+nLX$f`8j0#tz2mubF6E%C3_gmvIQX4<}`h$exkCB9qeX z<>Ef`Khb(1BfB{0>NH`bMg+v2=buuYCLI&f*aS!__D_Tkm~5IEM%j4L4+kz9{G+Gr z3e!Fx5@$V2c6ktIt@HV`FQ#qN%l#p1qI*qQ6*>3H>sLfDv^aE`N(J@ZN-0qRpV#XV zI|5F#u(*XxQ|oGVWNMo3RbaF^YnSvz$_^ep^Vnm0x6Agx{n}-r2bunxu`Ck5<>t9N z*OlcEKXU;5%=_eb3h?8?%wG;!@L@DpGrZnJHf?_5w`3Wr-Fobh>rEM0Z&HDq)&c*K z&opn;!Iah}Go_6>n4H;WGCYt&#~#dd)WMuZr-+k_rOnhwo0H=WW`j6cEY9zl>5!J0 zj5nwW%P*MmGiGdV&!Ib7$WTMhCppY$&dHodaxUa>ImzjP1p5~1-x z%}frb%~WgDj8r%+k(Fw>j9jFa>x4o7($edpE$60tfI#_mbhwIDnWR(=8WT%Fh4oFv zMRcs+oH~YxZM^FBZQtzBs?Mr(BUfB;>*BNboo(IKQ8UKeF?Z&cs+KFdZo7%8|LiT$ zf*dmc3tFIL`i0e>X**2PHkP2vZ!BR<$)Wu8#<)DSf|TqIN?#pnmdKG(F2&O1rV$4{ zAjIQN-#bFLjyzr?!Kgr2uOwbut*cj=Jd?&}~bI`a8l4x-Xs%T?1EWEF+O* zsK}D|cig}m_=X!IpXFu!}mQ2+rHyrEg z=bxNI_8*GN@l${4TU*F(7AouX-7I>tn?>)#_;ft-^oP#;Z1?Y;jE`_da|Z{b8}=|a zQLTI)4Aef*N*3*>=h`xaX%e!OPD{1rn{-wOn*IzT3+)l9Vg{j{ls z^5{s zN%_eSCD^0=kRFbX?KO7%-FO!MJ$9ZJzmeqr$KObDKfPZPNPPpY^K-uWRjM2mpT?_F z-^jnjH*)lsX?fZ=+Ar~q7X4vbD}19x1856(CD)E*NJD-r5EUa2szr^c1)6!A&~`M4 zqG%Fbi(c^e4@K5**s!%{?^Sh6M#o)cJA#h2tr_xWKZoQHth{4MnZr@Ggzd3bSAyrr zwzjX{6N~i?tXh7}zD3@V;Ve^UHzRFW)(xRx+ZJ2SmVLupwhZrM2MUy#r4&ycAD=VR0Ats8;0Qe30?9J-R>IwjeCehUdQ0Fx$EVM@$Fyj^SjOt9O!pdoo6suXO z+KK$gUtL#?{Ko8R4JZ%Ofi94_D=-H-EismKjuq!*YuC-qY~R*PT(5BQBzStVSccPN zN)rd$N$3oDF_|#0C7u&E_?F+*)?BbCf1OErw&A(^kRNyZ@jwIKRDuUxc%uuq*l=?mUTwi8T8zqg6NmX0 z+|rWS#uwS`ON%n?yw7GbEzh+TvCD0oLIJuB29um}UGJHF$%{R+KF=&A&gYw%^;T8( zrvKRsp%IYD78a0Rz%mB90kzfS%+pLpR=kX*TSasRgN?L`9`Vjid&-FZ|+;HdB(8$&R1{##_QKFk|?rrFCa(w+S}Ut zuW7XwU2#p%mH*|&D++q+irO2C7w@_^u;qBP!;T6yR&giHZIcb(H+vUN7Z2f89qLMgE8 zL`@*GPClbAp$^w zYI6F&^6zKQe^10lej2c;M#KK*8>{eS6?T=?l`$I&@v1`Hl7m-Sx-HDgY0$n^(!K4T>`o3 z3CO8>prxIXX^_JrfBrEA-lxDd9M-6Lax#(1hWK1Ul_FD~0VAD_s)#=otdgiz1>I{Xot>X z;bP|I4?mn6|L7yh^y$wYJbjwmMy%P63p=D{kZ(44<2U@b9Pr@o3T&*vhstqF`KEHF zr381ou+fF3F1*=+a~xRVz^#RNDjyH$RW= zE$cIe?#JF9vRoq92LHvUd9{tPa!!g-IZdF$A1@0@5~ed5<&zxEe* zbX#mLel6K@tDzT33sUsV!(JVCrnGHl{ASHJjhS9kh>(1__=5S|Gj} zA0~>KMmqc6ce$!NhC<(-Y-*bLcIc@fcQ(GfVQ^hpQQNLnEyFE^p7r6w>(^g#=g;?F z`_l3D+o#TVR|f9v-~RRJ(j}3*whY`I@)3PH5+A}#h1H~}&~M-vr<64Qcsf|mX38Xt z6g9qkj$k@7M>G`b1{usaa`x=m_>knOPgh6}{T%fD$c2Anl#q`emHI6Tx!&p5VWi`A z@9RF%aXLMcORS0v6==w;m*lm3?jpH^g>`$#BRh-B zi|Yz?685BAUe!I>!W|%3x5qbdXF)O!REPTgjkUEcwM=bQOBGXB-dfIVR)tl}0E0I& zIM-@$I!a5k9FB%+N4~sK&d5Put@#?g)ML}CWlkGrDOThkK~9v&3`k_|=SeH)EKHMz ziHJk66-msU7fZ*-g-`XJx~g^A#CL`Uzv`2GlhEZTOOO@+b7Oc-sk=SmZyH+ds^}Pw z-qdmDtJi~hzv7DZM?M=Wsx8z>Ps*j0K=KE^&|Upk-WzSK-Fe?Y@UD=T*q2OTL!+b| z>`Q@Pt5V9H5{^+ZZmC2rrTR5Ul08WY2 zAd$97aGeCpBv>NR59o2Rev_WjGjfGehLzZfWCq9q?Nj1iLo~>j?Kw=kzUUwdUeH+F zt36D9DoK}x$>Lu-`4OW+=!LTtY%%yD8O!ZHcXeDl{v3YprS{QGgEm9TNmOcm<_KOD zpXPSYjf1(VahK*;-Q_h!@&7@7YwiTl?*{q}$c`$|mHtXpp>^a+94-%0v^aclT^Pk^c-Ca_|7|bjcT4 zt88QGZ|RU9(4oJoSx`CyZ+~vEjfS$q*ZQbhbicMFqFXDC|K3>?myuKpSv8=MP-X=f)a<0c;RNPcS z$49qb_&s+uD1Za)^|!1kz_t0f)`C~7ajP6}mf_VhyphG57;JDDjmUA_ankXKgROF4 zLHyls_=fI}jGWk3BAzGC6#^zIw9a2Fm#a9=ufkO-j8t0CAy%crYN^7B zFb@t;=2j@M#LW;jQo3mx6yVST&*{WpP zIJ}s{6By^`oANRp8janF^7uS|-pM>J&*UWMW1#x zK7CL8AtvLVhr8~6Tkay?XjmHsT1Q^7D2wVZWI z`oQ%(G56^7G}HbBqn!IQ=t@2QXCZgo z3AwW<$FE>P4PF5?V2M14^l4*<=HtVi)6Q~&kSIa3E;_bt z+qP}nwr$(ynwd4WZQHhOukp;CfA6#RJrDQcMpQ*-WhJ_*x}&4Iv%ln+EMLY#f%8Q3 zdCJhqFGxk$5-OZiBKL}kET*KWAS?uIDxdLDXnz)1EywqX=UtxDDa#lc6mGSr{N2et z{VbmEYK;42&EY5olavkB3M1(aB)~!x6d=LOIuwKnqwI+~8k?PMgXg`zpVOBAfNOxRGH?1L$ zDiEE;OPf24^Gc3iA2;tm7p`niDC1@mEHp*r%#%3aq>bhGq4CS&jt$%m)8Q;^$gDR_ z;{{v3>3I}%AS=1xc2}(m;URx{dyIg40G`Q;`X}lQN~1Y@@v>TmK`(Gx1*3t z>_Whcwn^?OvmFzQeBy{XQzllsSc#fevXFnaPYLSjAIO11;Ij*z7Q+{FGJL#>w>uvT z-p};Y(_5icB%u(nGzJmSAb(|!cPn0nYxiHfra@4{l}%`qWcwUB(1sSj*{*+*Iw!&y#grq z?)83e7x1a+)Gpp)Bu~^V?8XZyF}}98_}(o8BI-sQEv~W)0k!JX)&{l8 z-w3uF5h*;ZajJb^x|(CRN84mxb{>O+ ziktrH?fy7Aqfm8W+vWf`S~32A@werp$gUoFr)A-pRJ=+PSFQ)da6SQ}gn0IQ_xV0N zslhK=cL8YjO9#dhUx~aA+y-$M#oIe*z0*GO zKhifHH`n@bwYR0kZg1iJ%x|gUrf=ghq|vyq_0omy%WU$_G<}!N>~+spZem7uOk4g; zppp*5rjnW+CdGXhPyZ%6jmo{`f(*}39Qn@r=lSpnh3O`xG1Xo?1k5}Hocz5h?R;t> zT$X^NF#gTe^Aq{ne6@I0dCGfLNiK=k8l19081K_G+-u=1#}U46g2Tcznu5V4IMB9X z2$`F(ht1g)KKLe=IO_iUvAogfB0fGQt)Lx(Ur4*R+rswY`4^HD4R@PYBjlRoq2e~4*b{d z3ZRO0&Plrq^3cv=v2y9jL@Ug>AtumNBTdm7LCu&UXD#5)OUdyLFvb`IoN**3jJUS~ z_&EeIOJGi3TM9hOQvJFvyFwPylfM)8&+6j{Q0KP7n$8egLhhxZfU&>>nQ~DNE&-+2Wj~w=5&1s{rZC%q z4DTdb;Q5aF&M-M^8l*wUr}bh$`f!AAra;e3;jLMc-6XH#_%T1KUMa9Rk`wI)wkHcZk%pkOssLq_Cr@@^LD(AtB9wcm6W} zr_m!*h9v;s5c5 zHX!sm3KF6K{K!JYO*Gb$fYT8a)`vlPjx6mSZNl^t$q=2DX)Tf=Eln)AJ|!=z0d>BM zWQYkxwm7Cp`e=@*_O}qJ9HNq$bNqhj7aMHFUo?a<2?Gzo5NsUghiZU^is4fzq`ip+ zDaG(L8A3X7Dr4=IMp$*6#VMt_S3LyPqF9k^zzWk?2b$A3j#S)KYm<@&P{Vp#%#bn` zKff+!vxlt&bxObuWJ{2~hKT?wQp!Ce{h0oeYBBa2v`kOREn1+N3_LW&hc z_1zM9Js}GuBQDDeA_cqRjMkVh)I)B7kH;80lxLVCf8Q5C{6MEh0}fxLFX;oIN{UZ~ zs3}S~z!3wKr6&bDz;Oc4`@9_EwUq}}kj8@>kOPkNg2*dEiHisydLG~eG#+jEDW8Y1 z5pW9fqb15iWK_y8v^k{5ru;dnJaEDbi4S%mBXR{V zegUPB1$v4k2X2wN-VjA%TIszpg77PQR*FFs+=CxZ9mHU|abGA|meOAeLD7H%5f%ao zX%ddxq9xc**$rpMi7?M%BwQ>IKM@N~9w)(fhGK%OBW=iwk}fRi1!d?rBwUH(COC$V z(Tnz^Z~eLFA9a^6C0+^1@=U7%k|JC{KLk!V0f=apROKCUz&r-p{G1-lAdG=&Myl** zm1LtQ*^HHZy0#Jva-K?|=Q21FuktYD4sw8WMX6$eTYzErKNI%M$BgpUhbYJ8eZlud zI>_acIw@A@`+WVBBKOb>E`BcLZiNSP>^=~a;%wMa2m0LMVSphTj_DdOXnUt%f^ zqP6{mRtza;THndf5WKHs=dAW`R%%-!cs}~_=|KeYG0J>a!V6~Nf?f&B7xcG=5H-IZ ze&QtUyedv(OIl#ToglQ3p$4#Wy7&ku`a+gb5q{z|JR?k?l%JqK$X+yO%Vie*p-2(< z2%i%YO3FYK$FuY;=KkQCB%COJo5V%)lI!pVv6un75HBPuVh5FL(GXonQv2>7O`{|5 zvrp#*H%Kjcpp@v5GtJHEitnKx3Rl==dZmkcx?HI{$2v$o{O?yotb=%EOSuEpE1FX) zSSjUG5)3h$Ulg?_1Rgk3N(hJSAd#?wx0LYI`a0qdkdSznMU>LcTSOA_#Zz7}s!0<` z;3Bo z8NWgQY1DlRN(l}evQ9M~0FE(A(as!it_pq7@0%)pN_sS)#4p%ReAbSXRU?=zlP~ys z=3&3$M2;ja#VgX{=C?yPOWbvx<9*pL2ZZ=ri&CF&!ZktVvIVwY6*1Z(h;LNq+?8PG zW)Zev8buL`roZ-NNLe923s)!D5kET$;pI5khM!I^jZ_Qq_>#$66Zmo;iT3D5dRbsn z6SmT2H6)*O!x^m(_!eix`P2g$u?;W>YL}s+Ojw84hU^GspCNpCiAERh*_T_M{YyBJSWsdr|pVZ zqSe`!vQ!1V0MSxYf)yP>C8`nP?#s8nhK)t+wW0|{Rgg^tt3}C1`BU%p;4zTDwf1eo zE(yEzrBA0U&`orw63s$1Tc0aOQ3)zhQ?Q0qhJa54)CT|1O76HWR0c?!YuP<|wnp~I z7bBfnBh^wv@t z;#y`v93!rm945_KeM4VFBuF28i776mKZH7TM?Qq?EvM4FJv!BJ40}^oTD`#v6Z+}8 zkZ|#_VjZZ97#GfK81UfWmhWW~A@(ryaIo-=xQC4h)$`^XfYz$DhP@l*OZFJEurvhv zG_o&-Xj<@8aX;L?zmLB>5J{(-XCBF!eAaVB#KV0~3GEf9D`{a&fT?w90{u zN=Rad4H)~7@a6?t#OUMQM2CC;BkIv0E{NnS_|b47Uc&d=8u&0FK;I)1_bbHUle;w8 z?yZJ>2ooFU4}WS<428QrhX(a4B*a71`!KMq;6ukF0a;@9&v_8wU{+d0h2|4b5cb87 z0`;51xj7i`Jg+2H5_TpB|f1f(d4-K3mKx`-Li?}_|)V9L9I_RtdV zl0X3rkc9^{uuPHV&)rG*n-EE$PzU4#JkSPjf-Sj61LMo_8( zyzykN8chJIV@P4bUlTFKhUPCBxHyp@!GfGR(-YJ|slbdy3Mo3|VBmwQ!iGU)l1wX5 zFmdG-D)@?(3>}FOBoN-2Q*5Dw{h?m6D$oF)mmrZ+6)Gbd`hXXJz5z z+t|Ag5u+j-syvH(p zbU?8ns)D?R6#e^8(QUSNG9>lUs!^*u7s5QoivJhW7NTE0xE{cPOk)Io=&xDOzbAN5 zqhJB%ea1T|5~#e#dA_nl;t)zeD_JD3f5+tn5TGL?1q#j)ejtTk$ejX2fcXpI#C@3P z_NTB#v>36ARJ+Lh%TEXh6`goCq4w+FdkNLZRSA zp;E<;SVWDSC^{~oEl8FPh}eL}LM*`gDKd1UCLPNBdGZY?dBKk1!z_ob5mb2Q(6^DL z9-$0=BvSKV6QtO(7Etb&*AxKCE}*9?+XGpIjEi3D9TmuoJn|o)P`{!v1TM5MrFtrj zm&0UbbEw~1==^-m#oe_ZC(L@<%As?kf84p%@!(BYzs(zKStS}`NQW?9V!DNb4aue$ znA3zBlEZ{r*up|0q*f-Bl2jnhDWwOJt0fi+kdkZ^%TbQqXA_ow6OrED#-BcZ`sK-& zFxEKVIOjO$Ip^HI=&ZW3TcqGd$`!56Dej@F@MQKtiZY7sk7p~KkTgJIiPp6iAX%`W zghml*YH21w7+^-)*cciM5oPDc^tqWpN$`<4kOxVfqo7m{f~t}L#THK`39ym{5$!~n z2o~5270O7uFiDqEmZ8Kq3@D$I7-K{8pqiQrHy6x77`%}E)nbaYkplH5)Ib_@fmx&0 z2qRhx0*VqF($=W!9M}vfENvJym#NQdW%5R|8#>l};{q7uotKqsHjSyC#Xa?~V!uy^*@0}Go!kfnFlV{gMSek(IJ_4Ix z!{;WzKV<_NTCxWXUEs7A?tH>5(b#kdtwh8?I2zs zub!Z9ABLfTf@*~5NzoVkGj}h}qf)?0RY-b8XDZFD#UIjNgtO)G0A$Lx7T!Xg1omXg5Pn~` zg)-(Vj794C23M!3^hD6&lO2BbV$shIXser$7yuW)l6J7Z-=67q!ba8vYg=@4=WBaF zx64&VYM$21xfYC9QX2j&w@fg9#LX;7>D}5yH=I`tLCE1oFd)s`wMB>FyxN$Vu~rXz zO1YWtQg+~v1F^eZI|N^8t+)UE+YRRRhUY(lTSX7ge9XloQsGfwWm$3-&1xpamMwl2 z^O0+PBb@7d1}^MbZM4{cjIiNr{AfJ?oXJTB8a1uC`47rl+omFS-Sd9fqOGI<5!EC-}4=KoaZDGDI3EU0I0pPZRDw4YlG*(MKADuj!LYeuI`=t%5D9JrjyT zyK>-Tx1Uo*@tgID-o7L4_B1?{bWUv#J%4eMqUZAWLQbxmh@Ti_y$`JW3A)_P!$xUq ziA_$P3r~LDc6?Ed>bH-eW%pu4WVjfC{o+0oL8R8|W#H3Pp!sxKPIlF}wT#cw zD#6hs$AqHun48H7E9o5hLA0f_$Gm#+2i?f$C<#%HNBujkj{K-|8g^6r0M;F;E*|X) zS|l*L+#1*zw!E%|IhR6}7;^c5XBSMcG5jkm8R;Pa8953_{XQwd3Ih&1E}kVT&nQ@Z zSaIVBc+gr;FDO+C;P9I)ePh$kHn8a9y%D*0U#RJEVZ9B_BA`pX1`a?E%W3^pCj`hB z?V)yA_)qqGuSntAYbDgPj$|gHVL@Y*wmGoTd|s(s>2OJwTCSaIoU(ppU?LyVyQh3U z46+vD4wWLPJtMB|)GJ4Df|qxIyW9-@OLe+mVbbg0hAD3ms2y9Iy)26X4kqQx%p16l zpN{%y5WD~t^<)r}yH+rEe;6J*G^dxj=M?QNaD~H#)25xPt~VYCBfQb;w%RA12vTC&O=&Z85 zYO<`dIAC>IbzyD)WN}OQ<Mcgh!Bga>j2uXdC6}6%rS(339A4MZbFO4e!$@ zO8JQsV1o)e0oq`+82$^`c(t1OEDbxS2<)~^31GxfQ18k@HEq~Ni|oTeOAnf^(pT0p~!W#e1|o0mJ;hS!JfU3laWOJ%bN=o@BmS?Gwn#er!eyq?vAFY*4)i=)Hi2%xLLMau_v!WnK$*2 zS1olHs-POqL0YrJhtokuS+Q8?wc12*tp6Ea?jR4XE1&VzCeDVQ*ETz))klB8Bk>#a zx;$yev)OhwCfHW6cYzeWT24<(C-3q!pcIGy_&nQG7}!>;Yb0DEwL_k9IS2SS)Kcr9WUuXt{n86 zEwxu2-+aZ#e~&gJY!xO_RTBeEUvQ3KRyU$wMtc5P5uldwYx+v~OOIxhj3bs;5P$Z| z1V@I2TeU;186K2Ime#p>;7I`K5J1XIB?Ht(XS9-Ge~|j~^>H=sr=*{j8Ew_K{@!&` zj2srRYpH!v_)wl`v8XJ<%br^*uW{Kb{{9F&f{V}hPma!z4+8t{pq?M#uOOlIeYkUg zEP${ya?-$a!2P)4rqNgc(x0btbN->X>+PG;-rf=7s{dY%)c&cyz_XZXOls?PJ*xbv zB6xbY>(`Br76hXba(kB3d9n+%VB%MS;up z;XWpf%-!Zip=MrS-msJ?))IHS26i zf8!`-H}!#{TQ?;W5}t|6Ylr-fnnh_k>j^Po7h|~?_)^OA9?r%b~n23H}oY04KW-zAQ)fz?lZkq8qG)gHzEAr zuVH|JKRnQX2%t<;1p>yNJZ<7+z=)8EML_5oTJ7porLc8k|EQiH7US+d9mv#dVy5?Q z^JESfq7OT{gV_lrqhA<^)55E!F_V|mqnr%S0<|W zPa=CyQF3`2Ryb(+Ky;;7-f^nH4}iy4R7}`pd^G$gY5^v;N38x6N9Fi1KG@R*I9hvh zk#nbH-GqkY=*og3%^$*ab(+-YYc*&GGjdT0cE=ifHJ8WT7k$+|e(B`#(7%jYcqIIR z-K^63rv|rrW752-Ga8NH1IwZv?_&Q9K)0WoXzfjdC5pXYjVX(^l!H^Q>9#n;tI zeBvLp7n&~qfYoetcxO%K*rZnBI405lMiu>Zf}z~QwvfI(J012XOG~TK-c&n5b>-1W z&ch^X@Y{+qvYQVN2Pu?C50h4pXu)~PADi&|x{JGKN+ax! zOG3HLZJSmnYW+vpGIs1%#T(9MmT^I z_M@yHGhx3Mh&lq>vjYIyZqJ1|vuKR~((gk&XykvjTY$!n;4nvU4zsATesBnBLpnZZ z?zxmU<(}8qsNU-~g{o9NgW1(H`o~MD0tq$OwWsNR6^9?E58*z^9qh~;(pgV8!lHFz zF9#q4Tktp1>lJm~uPEn3buVc%J2V@ndM>{Ag+j}}scwehmDrnYQui?a!T5z1Qqig7 zQysKe(KDC3c&!Bl-cmjItxkBft}v?GOgwEk>%Kty-Du^TJ8y+7-Pm%l@!rKq@AVjK z@L5hL2*|=Q6_JVh8<`2XHrB-yS3Bu>^gSM1Q%h>&#l>UeM|w4VJltfc#=}S<|Ir&( zEFj%Esj&A-?2@}q3iCBC?pNRHW@__0KRzhz_~4Qk`@5TL8$V`MU9(&WZheY? zD4m*xM!o{6*Qz1>uAqjG;M21&LCC(^QtWU@R0r8s{b_r3;pLDi?(AH~`~A#xjkh08Cw4Uks* zjOW)(A}FKYSMJH#pS?LcsLXPebR|KZ=hae8zXZ(-(Cu9YQK-Ll2T+{}2uc-e6O8siDS>x26C`9j}lIW*F7k7*4)g_%QS{wuyEFVo0qM7E-hA5y?&Z8O=l~6Dxq%pU z1!MGuiGnf+C}V{u1!)Lq=p*+*jd3?ByFQk0GbljmNN{=6lySj<}- zBw={L1M?g=y)UM_bmq=7OzCK4j^S^g8N>``%cy~Gn~ZqZGJcI}HPx-w+&_2caFc2|`MEjoLK?_|$D z3lE#@6~5uk#z9HtSgwFzR&B?m_xX|`1ovNQdoj14y2n8kM%DLD%7%%L-#vL+LRVB~ zPuj_>;LFxsRjg*+Z+%}ds9*3HU33o`#+tQNO@8wD zIqH5p9hMGG$A69((L%m*b>vPZ`Ijz7Da$WhEBaQXzk_mmeX6g3snQ!5{79oBx*lK| z(e!lGsc81rLvPtz)O)5UBzU(6h8n;4ET^)X;YG=Q-ITF2dRwv^b!2ZA& zhVQV)9P&tKeolv(h=raWHBRndBee8%U=K;v>vxjRm-dfvmGPOdhdv8kcIc2vl-cY7@m5}T^<6Ei^f~?pDis5J zejEasJ@1k(`DN$1;q~z2G*Seuy@ffB*a6?;-71wdv9 z6axiH1n;Lb@^W>*@3uVg&lnimD-8xCJkDe<%PmmcLFZ67DoEN&6wt#iHc=fx(=dPH zyc&Y`$N4AzO(zrUlU<>FAvoX*sqAZg3jnV;>4Exg&;7MG(kFWExgoDGN?IjG{++!$ z8?Q}xuX?~F+%3bB{8o&C5a9(7J(o!JKa|uHwysePXWT60z85?x-pf0)rBwd&Vjs-e z2WEv45n3Ik?daZSrHa%;yEg3JW|L5P0l!_;&AFm`WO?bgdY{0KwR7%F=ciLyRJ@Alvy49eafQ=We_dRZE zv>vrtkv?o!`83O$YFT6@?<9Ye z;Z|v-&%qUFTgbu&Sr_2}adR!7a^$THW{LzEn7C*ulU)W$k;?6EZy>Pk`B0*h_AHVk zH({Jp)m7DCY;rmC%Pd>1KX0_55eeB9npBF&ylkF zRK#|0YdPj{1aoucZr+AttL^JQgS2;zPsGfHA-Jz7`f}=)LYCsRY)|03;;tYD#7mbS*To#u9k!1PRVP$0_;9zF{ zkIZi$E93v@vi?f_w-wf3d;hWW-z~OZoBz@Iugbvizx40<{J-?CG}C|CW9R(!_1pT7 zhyT_3KibUy;r&|pUrmPJq3II*Uqfg9e~12G!~MUySpKJrhlgIw(#FNqiC)ac(8W~5 z)Y#s{lwQWv&fLXE47}%|s87&4E#5gO>V+H0Mo*1DdiZWeB zdy;=+xiU%JftxmrOe~I>QX0!^U3&C9HZRXzdpI{zmnEFmSRx+Z<%&}$)iW%zgs`xZ zYRaGibhpbzb9Mljo|{cuH@X?O*0lbJsj`6aEMk@+bGWE0j0?FqfvJVO=wu@=D&V;N z4YbNL@W(~dtelM-#)#oDMN~pA?{H`-i)e@V1TSgXq(ZuZSy-mp9z}dtuyyTG>!TeD zuc2U7wt1QFkU?xeGT5vJ-uCfxGo6~09Y3Y8HK^94QxOQHH`=CYoM*OAW=za(Y%(Q>XTFutaKHvzFt+UKG+;NR&}JNQ)PbSJDni`+4R%jz4i9*{eJKEq%-%Q z;XVDFboU@oqSxS(`&q%L64sRaMuZT=Gkbl8yt~<+KRkhkLfl2YDnWw zL*a*2P>Oo=23*r34S4LHP82;^pm%|6gDLvD%;T9}*wx$iJlbUcP&=EI+yw&FJTwm} zXW`?)op^@#`#525d_L_P+;L8P%Epl2nyiCGi5TobQRZJFvbyG=8&-?k6x* zfTtvplsE(HidrhdR)b~ zf%leB{3KW=P**bgZu3z)V;J$>40(LK(Oco2u=Q^?V-f*&{{LtB0XfJEIR3ffgqcV9 z+C^&r$m0zr#3~?s&l4F~tW${z77wY-m#Yb#WVk-CI4b;h`&WB2hR5#WoVqruu$ z0c5avLaE3DXD~XWO$B<^?+*XCBfrEqe$%6M<4yngH)aP$KAwP0jKovpa+egfS-1%L z?UW^cZ~d{+Ux}F7$2_;(QHj@HRhclCi)D|dDdN{q&XXKhgTTuXBwE=kPYwC-Xe)iyO2 z^|c2sxMxedMB7S{{d3^oIrtD6>gh%?s$^P&o8QBcr)ND~yf8#T2b#2z$TC_%bb zr;CNdSxwheG-*^hFBzBQSaye0@J_2Vp`61+$hp0v+!}8$stT| z^EB8dOU~Gw;|g>5KFPJ1E@cInpc^vwnWC9!XiBsB1|th=DlxVqub}QAX-Dj=U?)%G zY^Jc~#&1DF-TRKs9)K;k+qZbSYE7I<#Klzl0Mkqd7zm7(m(yTAeFp02@lcgG>_}&v z+EnpV6Mf8r&>ghlSjYiz=F2+mFARR8oBKN5ZA_>>BpQ&`>5AyI?K+ZjWFS9%-vqXX zH0CebIL|6mZU0Gu7cu&%TgU4Z?x2pCKz=jQ9kq5RnS`Mq`>b@)&B{}cO7rPjXZ04= zk-F+!Z%N7xJ)SwVNl@EkR~@9-V+*9x<^mEr90Rk^jy8h4IDZk@r1UTn+^7OI;Vo6c zVn-*InpJO}AA?ebBjpuoX*#!PS!RwAcT3MJ(qrio^wp95kT)1DUUxt3?C+!&swHk) zTU9-GRc+(V0|k>!q}tyIW7oxx^DkT4)Yva>tf;3e87Q^uic!%j5@Q7|N|~#>B-} zX@1ZORkMRaoV#%Oas|l}V$muU0iT!ygWB`mLOCd;4fM0ayL6fFuvNU7!f1ulMp;<^ zE}IavjzLmJJ$AkXn+$dvyKq+MAsgz~*%-%rAS4Nv;z9KRS-eiHm+7=U*} zGY%hewof;lIJzJgiHd&~)p%l?V~`KNj}f+r!Pnn6C=p|Bpb-){cmvLDZ~h6+jczHq z`lRW(slioECQl7cCa&Dgm^EQsa6aZU;{LbNiJ2PzYyumZ);u;UZE?ZTBNVTX)30FI zEanSig286E?{E*i1802Rt|7;Db2l|3#hg#}g?QBOs#QPx;5z^>yPA0j6Y0xD2(duW zpcc)3`9M@lr)1cVmTgpv-=NU?-jbH@KTW#D15B+hxoB2DC%nA)yElY9_%U!mY7=CI z$e`AIDWG+dze#pP$in7<9o!-?fdxRUtGYEOhGXvXN{x)Fj5;~2n$!Jz;}r_g5IyK7 zL919CIc?2q(R2tz;&_nu?Eh@pgK&sUb2Jy1Aek_Md3msF5C*p~UT3PFFAmo>t5Fs2 z&V_R>S~&@oHp~4A!(57#zoM}UNDP#F)x4K$my|EiFI1k}tHPJ;jygJ(Vao~e+W(n` zo(Tgsb|~k>CSR(uS5_`J+f`dOgC_?F+78G)Hl9?vmKi#xoZH!^NK*Bj6lq1qqG}Qf z$yES8qp|XfUuKPV3QTNSEQJjOIA(pmikFZpR$ z@l!PGlQ+vJY>Y}>hbnzol=~Jf-K1~$DtUJ-<s0fLDaKyAme#RoKZHod~kuSPe|K zlGU>~Jyt(IBlw$UR!(v4C@HDlvlonLTy;v&?UJhSK33Rm9e2=4;*uLW!l7+y*5{z= zj`wp{o-Tpn%hbT1)XR{x_i(kD$9Ws-vU5tssi?UmhifY7uTGmL7p699@}}!5>g&g9 z7vATu;hXx1YXBVNkNPD;tY}oxHJyxT+JR}> zHzaV{#|p(fV{ZKLh_T0C;O846`SeYhlT$NYak(-y;?qmhMyP2In|;~IVtV<@!S#;$ zK!7*ky;uZbcOn(kP97+Whv-K@MXQn+7;ftER$V1|c@hS(+;P;fjb%BJoyh9QQuJ0# zjM8kX#$C5H{vQ9^0vlIGM*L4{0%!Omvh8JQLaHq1AacKrGi-nV@ z=G!XEMmrL}T)~7*DV)f(GNV(AtC9}EFu*TNI7cEZ{`^UlH7hHEC{?)K3{dV51S4*9 z3`T1lw_1D*oCAi`;(&8>O8n_v|9s&cC2yl7=>ufh~-xcK}Q#GNjh$VT#G9Q$@F@ELUKj-KtwTUqu!rXO3-L8~UWah%0&)7z(j~|g`T+5f{sHJxtnCoi+VAI)yCs)CFZ%@WQpG^; zJ^`zF?uY3p8 z1$NuFYJ#UJ=j%eZIsp9{CE;_#F~f=ZpfD~gI_rVQGQe7giui%)GWWGrbEmvtyY>Sg zAP+aw0Wq@oeoCxnzVB*82uYFyL!La2vmo;?(Y{cdC~fizqYkVr*jUWNc^beC#*D0F_BWJTLxy8&3BXn$F_01MyYgb_aM~UcX)& zzMK%mUEg5sKF%k%51c+C@;I@vB&DXDTJm&Ryj+6#*yNGwh5-8F$C>8LcRVos>-fm>o5PbExCDx)BJ*!+?G`Tb-3Gk+3(q74x2kpDsakaZDv z5eJn;91dk3NZpSbN%+Vf6lpFvopV`Mx&*r**$dX*K)4*7pY^4}5p^K=!S#~G4{9F~ zn3uvQW>}g)M_dJq z-;-PyRGyjb$j}|)?|qDkeXHgcb~_~aO^qO4e-h$cOLdvACfsLe16uFtS%ss|b#!8C z?Mt?)r&w~|d|W38k`G!igGh^X-770$#^;u z=Y|r`4a=UuG9bn|kM27ZdNWKs9rP!7NmeJ~ zePX7F;+dU>t|fT6gY=-Q?O*J~LuBd`Ui-mY!T=WxZ+GE|Z_V%GQfM9bn5a~6mJOa9 zKlL!O6G?%RB$FvEuZxmP*ebvkz=DGpTa(m-CLX)|G+ct`^`Z7B{vqA;Imv{2-J>GS z*bp42?4l4&uuvq2@QFCWI~Aa>pMnH}I5uitr*Ts+fK2k7%8PHcl>6Qfa}HhSgo=5Q63wbP?#9r?qfS6=LQ z%u}DHQAL`>Vnt$UAyM!KrjDb-5D90@54m)mA^zi7pOV72n6Fr!6Q1J* z$*7)7x+UAmcc6JfnJ-#RabRUp%BBq??#>aEKGyD}BjP!legMC4#O&0HR*DK7l3bGX z%#su`5nA^%!`(5Nj)3JJBzqghH{Fm*604-+Yv?wO405QNf>J=CDdOTELXu>8waC3mmSB2Dadv7&NCZk< zMt{7qil-I?A(YCr)7xjy0$73V>f8B5Ix9!9l0N>^!A2?{1!~LbyF+!Mm=N%dR^@EE zJdfuL%0->BVv2~pm!F;@p*NH`x(Uqeofq03;O#oM`(to(C7$2aJ85gU|I7DmiwyN2 z7PE~YYb^3@%o}8{KNmakw`UN&Zzs)^Gr{9(_A^VQyEm6S)m(_RU^-tWI^8hvpiqiH zZzQ;jX^0_D=p{Kb; z8L(|0dWp3=V=K78g0l!3#e{zW`vS_&2ZNmQ)eR->g;l^9?``Y_d^j6M6UO_L(uBB-hIhuOxlzU6bnFc~^NYF5UPz+7^=E)$4f8 zrrKCmAJplTrFf`BK!v-37>f#U_s$dmZBp!HYJh55I$mDrbLcD#aMFPx3j+_=*z4f5 z%WJWN(C9V=h*?d_(E7W#d3!vs25{QVZ#Zc#ombCccVu3QJbAB(#%7YKw_!f=^`y+%cZ()0s@mY zKfK+>f$xUmZ5+hzp=Be4XUR71O%-zziEjQpFBo>{lTu^vphu^LOtG0Q0o6`aE>}T6uKRW_HMB-DshUDhp_c!#cE=^cPXon=`9n6EZ5w0TY`ewEo0LSe zO))8sBpbCPn$58zW>GvSFp!X_X?ip6W@3n(4x~D={9+l}*NtL}xJ?wrX1o?R5;~ye zn^D0xMDMsS8*2LA{hmf2Q0NRiO>iy!Y8{wf&x?_P{Z^0nnESa7|QjTn0N_Mc>`-n|6Ra@i3Nsa)NEi#ibA|I z-f3e(gfMy;q($Rt6w^k;bj8U>SA7uvcIJqM#Vv0%mrTi9xv6)@1H}Aj$-3L7kGZ@x zoGSE;JG`yyBk$Of>)XN~5z8H`tNneOxGcdi{ibPwMX5|1wnyF*774#b>-x2B$d0_- zWwaDzv9FCT%)~LsH|E|jf)?_Hx?&F}7ZRQ|7GR^tjgiEnbbn#a9R|*9G-PGxit(e9 zONK!SNluO@WVAOYo)dFM%j9ZcI>b0U%WWNLrDki3m0CkIzpGfz8pRZc9)}wBOmbFY z<1kiKQZozO!$uCH{$Z~SdwUo+EJSy9l{|}Ep?rag;X>a9-+7eM*7KTWSau!(x0LwN z{Oo0*Mv?TPT(ZPgB-!KR^Yc(3hi9-SV{}1bVZMg4Boz$LrQTFYbl4f*_%Q5wZ)#fm z89M#=HNoytdFLK3Yr6cJPwwpcavgchV4u5Z!M^&6;wc5cxVLm>?d}NN|Cca&&er^S zx7OURQX$7tPSz2TqnXUaiAuFVJ?M*Gv}sUYRl=@vrhGlA1=?jEH!P*V z4b7Lwbrg)5qD2`n<$UpD$Z)wCnZ8_%zi?oU?6eqLiV}Q#pgP&KytT zL*y5M6u(={C^WlMpic3&c&Rs%60lecAVo=8m%^nyN;jhzXJE|Sl6MZr1`yk!l_y@xNaYMIv({`$HZd6yTEcg>1y z@?BmsZONhs8OEy-$VF&y$ed{6lM}e+xRCLrNs2ewlSfEi z$0XBbCeiLBe&W$*J8JdI^}-mEr!RF>lZpDN4$);c#~BQEIS!IkSu&gSc9j~8FPiG& zUR2DB%t&NK8TFnV+z)KP3EIo>( zl_AG0U7{UDhABd7qMY*62Y&M0-cL6Fa@pqN;g=4DM`m9!_3EWRylLr#Rn3#{?mYLK zC&`3;r|H;ls>oyOw$0o2;5XOZHfHB<86H<49urXJ5+D`Mbb|+RkP#4--4^i-l{$us zn3=lMwKIWtB}_`B5}ZhQI)TgJvJF2-+@8n-k#o0L+TH#e5Et8lRRip271a%3oCW zdixbr1N*wr*U;Ll9V?W!=X^}w*0-|bNSsXRFx6yDL)C;b<`JWUMLbckL~dp&64+%3&#N?KVon~`3M1<$W_)O5-Hrlz33SO$#jc6Xm$Jc?(qyH%T*@YUS z_Tx_Zge^*kQfDWo+L{)Bd){Y zD@fjnP0Nlhyy-{o8&7Oco?Nk{b6M6R^jOa>nYVL&@tu9Q(i?ZB6-->w^-Q=JPwF^4 zu4$U@DiMD`e~9}f_a65J$II;2n&vMqm?3YIUy(Ug_RD+aWAbS^B8wpKJmC;ZAY3Mu zBri|wtfq-!D+;2N$?Fj{Nm|RxiiR4>BYU9>U$~8bg{OSLU@qV{v0IRj0T%O zUIw}iUcv1O81PnI8T}$qyJ*02K-AVpL4$zHS_b`~0Rv4dnT8c%3BihfVbE-oqG*aB zK|e^qK+2JgPA&X22jH|Mc z?0~E<*qeRIdpi4N=X2iosCbw2F7MI!qp8QTPdUX(Q>|{E=`!nb)7ETJCaJnq(`a43 zsY)kivx(0zDh1q#EK0Mo7?Q-Tl%R@3K$BBaysF#oW)*Its&2E@>b2SJc2;30Hk&^M6|gBbY73E70i&9%q|~_;P!*M`tVRW@WYrPn zqCTkg;l{WX)vnl>P)E;uG(_wg6 zV@kn?DmP!!RD$zwDu%)N^0!W;FWcMDbhBetSJTZmJ8wVnBiqE%S%(|Et54jiOem;% z;EL2{KI2$xZS&%#3pyjiA?*tsEkcbjH;wm;_L5lZz_*6ulO04oZ4DopmHcdIGjV zd*iyOr2D_@W73L=FZy{9qf%d4DI_SpE=>c+5NA3#in#W1!t~TrG0(am@k_8q9sJgT z;j4NUU%w}D`-xi}Q!019mcN3}=w7pQ*QT*s`>v%wU*aD<@!3Cztw19mhMW1xh@J&J z@J%4KQmy4LH_vyhG7DoIqt!~j#yrI#r1QCEpQDH`H4928@@Zg}iG5DTsNS`iT;;lj z`~<%ChzYKYxMDJytWZ|EM4g9NEtE@kQi~;~UKGWY9KHWUr)n}-GQlLf6CrU?B25fY zPaqB0RcEo_RkuUaJnZWuOp_rslc^g>)xW^NLucBD{`48tJD>HN43}PGOd&O3dOmiS zX>lJqfia~JLs9!UgSetW+Q5+kC@Hh>hjTW&lbNH|m^JDk`G?eoJ+uGq*|qx))ShnM z++j&rUwzM+>l-VtTsAS>EIf9{;_5eFIvD=s;PfZ^PIFU!kUL=}S@g*EJyUkS8kJIR z0pe_i3xTU;?uYUo-ENr|jq(4<-gkhvRh%C-4mK?8ySdJ~*O1zLA zI|Gx*mTW7LC0mm13`Q^^0YX@9pbaafY)T-50HLg4R$FKo9gHUMmljH!evm?GOYD5_ zIrmDIO~Ti|&%@uZ&+nXA_dVmj=iTQ$=W3|#k-o(Kf&B*~&ZYC&N>olap-t#2BvET< zMnP*d;Ur?ERICuhr{RONMzfN#sWXC&nR5n5d$>}V3n2qe z=w)anhtn>EGghm%81F+rm2y;$HiypnG@hK6XBU)F@!EL$eb|ydSJL$ypXrYjwS3+) z^aK!S<3IM#Slf zq2{i5)O12aD4#K33l4d}+tymtBT7C|Z3D>uQaK zg%F+xOP2Spy7i1-Xy0xe&#st)ofOB-w7oVaZ|n zM{&PPl*ptq**4|&#NCqJ@&}pw#nL=^MdFxbOde8>CW;NnsI7{z$FOlpi4a`lll1Wr zOD_d+#3$k4Dw67@CJ3%lBoav}X;QpQnjp^Cz?L#8Q7%f(k57_{vtro{ad^b&npu_t{_X>aY7D?Veh-!nn9@*(F^SSEHXoB8KpH+tXT* zDMP(sP3WXu$VHE!5n4ovaJcM5TSX#~a9BgGscFJfn`Hi~kLRD>WUDk~v$8dDbhZXD z;C*bNa6_Ja~7kdRE<&=K?w1$*ZG+wf!csaBi2{`ZuzG^rBitj!73nzH9{2YhIMp+@>Ao~rPRyTzCmw$XXgbgH(pe^ zcsP`ASm(-aZc<9?ttsPN{znSUJl&cF%N^&#%DdX{1tBkK6dler78I4Bmu~)UP z##8~QeHDYze`Fjo@>lI^{P;P8zcwBOpwG(0pM=R1t~%kGAY8-!k~#Ic*SY<3>p64q zhv#G7GL@B?zKdVJw3J#(voSPXVTOMXSxQSSv;)6RCF2JA^2pe!eWo(AnG8lR9qXj%fm$N09l z%S>e@0L**7v|(N7N)C^DkmG_ zSE;^uk<}_sFD_)-%bSZuav9iEO^xNG*<5oHQVGkH*&Jhe%?!E6NsI9$KHsv$K2mvznIVEnzHX{I&qd;nWNS9e9=FW9-J{NkqRzpuS^LmO9MqkpMPN=j0w43*ZUwW%e`%hSr- zH(m&ucNJJQiuI_i!^T`{Oi zg{maTO`~h`(3-q0d9*zb<>#S1ib~QK78vrAQwxo9B&YHUGLn-;#$pYVSuB!~brS@C zl9##JY_yOUEY{gV?m<|6CC(bXkmdtSI`+q<`|-1sI+ zzwe6IcG(%3M)}oKBGDr6&1+U%HL^PQ^kL>ImOXrM%>y@#puOwv99`P}z2n!tgwFrs zYWvkMUYt~3*IAKXy}*5or`)*el6K@tt4x0MsYTf>3#tc;;0d8Z5qd=QM8_- zE9gcVf1XjD8KY3Dv|5!aO|8+ZHBFk08oEGJrJ)lvNTZI8iJ>LMX$g#0Lvt!h4K_GA zIaxD_4H2vj5&n0Or1q6V zi*AaNnSrnKsK>0H3MDEkE>0^k=}Szek`hX-(#2}<^EPdaUK=wOgPLMcK@3WWK`~m` z!KQVm?MS237M*tQcZk6@)M@xoQK^X0s=8GJDq59*PZHBIDVk18j?G{0IC7pVC)kg}n>1A-W;jgr;AfV?v@Mrw>+@C->7W07Q3Saew^lfEYB!;>H8OpWIJ?&R-9NA`Vn z=e~XHg~D@_G1z73sY2=+>zeUgG?utMk?u|$NTjdOpgaxQsYC`Pk}Huyu|Tm?!4$}m zLcTywcOj&Ujm?VD>tiTvnTZGG4+$CQt!MClX?pV2LcF-Sa^6Wfv|iu=fQovA*ceIdtOQ zX_L;K(MVWU#xsXU_|RHGQ@m zOQ$y!z@Pd#bBfL-Pt|SKJegdMa00J~O^ALO3X>eI3j*W zI2ws)!JJ6MFW5|ZMS@ryu@(!emdZ1VVha)!g{xDlmK$Q@l^+~JeOXIVGYUn_tqNIc zS!2P%v1&H+-)tHG3ng;qO!%yv7E}0F`Dpw-Fl+%k0=aS=b+xrlqt?kGYtXSembHk) zdXZQp67LeDEn>7@jKmUJDg%ijWT7N_@~e7aqzrA4YSeNaD~^j3NyLxS`wy{*63K;S z1`HJv-$^Xd9*Z%&&WK1P1uMlNHo6g_2yA6DvX~4UO&O+ySqRYrR+@sNmDAcMUZoGd zW;TgsVwP3t6Vl>;gc_!gup?7JWXM@qRG6GnRJ<^E`W;YX8*uh>;7keo&>?HX1@Xup zk5*|>NVZKz=g8bLdQ^IalpbKwb_R_z$i*Nr#~+pIlnatnsw^d?S5lNwS)-(tDuYs< zWPrW0fAsr*eei$e^rY1-IbO3p8UgMGk(f?8uO0wYzh3`1!Z5Jr$nCKky> za(Nb_^=9wjt>LpUC zQBotJCA2{#k|2W=$T=XEU~@PpHG~}OSA>i#T?T8Px~`5+&7At}h9jq#BIfn!m-bFe zVQ!v^GejzztV?K_TtQJ;NUlfnpd3}=oDXS17D%LGq!L!bvRTB813(_X(U-~$umKh+ zugCpp~I4)k^*AFH`p`N3y_Ff zY=xATd`kzo1v|?G2)2W)p!~_XX3DD@$Y!iln$M2>oUUL;P8$VV6a5mf$5DT_UU!uq zZP259J-RIx>0@Ip{2R8vqd?mgXk3BxifjcfQlJ}ENTE`ZFd-6e6kREz*Naf42qlS- zT!g;Qq7aL^Sj1{IA{L^=cpUzPOP<_rdK^;Mwd9C40ly0|3&&&mAn30~hGY^kL&vHh z*O0~O6>?zduv7$!lJSZXRFzN#?3u&a8tk4DBWgnsR-ixZkURMG5q-Tzgq(%4m@KSL zU3`3kr5wM>j{V)fXT?*0+IcNIx$m>Thh$JUzQ)RW=qo5RP9Zmi!ZwQJWAg2CdMS>f3neH|g5o3)RS`J1g+_Xs zMlomvze50F1E!g<^)^PVmu93gMs`l?t%@NT{amqx*O49)aOa8uwv>qQk1Sx$@%YToT5{P- zS51Gs<_M}deb4QA4Qs1DW=G5`H#Rt~8K|D_qL+<$%a-PYB)W%ck)FsxMO-WZJ z(F|U@;`CIUE>1>K8cw?aEm$DWkS3(d(q*zNxk4{jD2(zNIW3Q)5)83A9fPD&dAdP? z#f?o+5H}8Gu~i^#0L~K8U_%eunAs*|!9tdWg`9z(4~QiaFg0M5?5r}_OMmg5Wb@+X zrFVLcoT61vz4Ggypqj4Ssk_mlJMQsqoPGpVls6W|Ol#SZotNMCP!gNyZbhyA15J(i z3GJCbvrE{^sVeG8>u5s-s;EG@6=;hQU7d|C&p@FJ)RobnL5C91Xgt~>MOQH>S5vNO z&@dXgp3AG^C~Ca{DGX~2w1LXg=Fxe1rHj(Jv@|*AFGUxYB4cSyXAco}Ot)G9W{eD7_q3{DYb4NeW@T>ERDDs>r)+u`%{UjyHP1B>~jpQL{JP2*iUQ zkwA)?kj4=0LxPi65g#93K=U9ID8ui@h)-a4paoT{txG&DhSa6&TO3#SR@7}hGQRZ@ z-$L;r(H%E5_*?Q9)CIeHwynr-+4gYnPhSx+>E@P&3la^Bb27>d+1gk`<6v{^c4uX| z``VStEf;g;O?f$$#W^}%b@RIF_RWsMhaLpkJ_r`HlVnHBtT|$_mSc|}o4z!Yd763s zw2^szFODP=pwD+<&J3#0TGEt)G7!oVwqj}OEL}`YmR7CTYSmKMskN!EQ`3}M3r?27 z#b{yj$I^7k>1rgINhBwEGK3HyZ0;k5iPWN*Op=K@-+)NarbsVq9lOi7`Hl;+)r!j> zze1soTez}r;PUeg+MPc}Cl&_%eaj6C*KDpg50ue^Q`eeS=NC0tQc71}+)Q6jLAD7V zNVkhVqI2c>&Y#6CeE;6FFC5OT?Cp-fPFBIUzbW$K?V=prb8 zK!2b^^v`f%5?MbfpRk{Z?hs!ne*RoVGD^ynbhj)G${X^nxF}SLzbJ21-l%GTa$LPf zy+>33|7|%EDeuge`7&ST%Y2zH^JTuwm-#YZ=F5DUFaJqJ`@8w_t(KGXWxo6?CFVeE zUF^d;m+lRH3@N)wIWbe>(&7f=hU0#NOZ<}f?eVX~zmkxiU?U}zs88Gh<#^)pr1O)` zBv&Qh@oz1M=gWMVFZ1O;t56ix!F)mqKR`hzlQ&W`4<446z~QUsWnKM(Wr=V4y{Jj~0Vhk5z)FfV@|mQcN^oB;Fk=V4y{JgiddQzr;4 zkK$b(#k&I9^#U&nXy*i8l+dm%x>JBzDy8Tq0;{22TJ*F4vy{H*0D-j_f6*HP4ET#) zB(RRO|4D#x`}+jeN6AnhCBry8-XIoWJpLa9jwkJ$07JWhmva)vW2hEjz+)&O@B%X4 zA;5Ti1A$Yc=1q;7H=W?|3NXgAj=(Dgf%F1}QgOTPQ!}gTD~9i5ey? zbx;ccj9;D5?ja-aZ_LzEUML*pfVKg+KSTvd%?(#Kj2?qm7a6I7(gd|$XmwNL(9%Y* z`(WPiJk5Z86W|^NJRIQl15OXs2XG(2_}hU4k$JcX^(M*!P;R7FK^X`QPV%cYg8(-H z>?1h(s13r{Wl$T0R@^%ZGzKF)VL5mRAKr7)(@$i+F$3c5oA9kP#OUFa*^AXuDBKNz=2sbqZb7D!m$SWsM z6ducw_8_zb$oD6QH8{fu?hgSK9=J0IQm7>(d5*$dI0;Pw@{2%tMojYt!d?HrWIc07 zR?nIh+t2{W!%ODjKn5Yw!^=M(?)DIV{1GV@%(_2%d>4^uFv4{O%#JN(W_#0}8isRP;i;No<^lu=s!AIs9CRFqH_6b}#sKl2O~iii=W=}{VmQyqDQ|nuSysh+zF&Cdx#D3QgNB7j zgsBZ{GmHn1#PRN%Y?P1MK0z}x*ux&;5u_X-vC%_(I3(y6=QrV1qMvxPmv9-D@@%U% z5Y0FV>=NwY>k)0PC*+gJj`^&nj8NPpBI7wWkhtY0T6IDjme2r<2=^HUoNMPq$pXQ9 zXQD+gBC#+v|2ON!#KFqh&8W=HeOF*t8tSx(<`hOGuHi0YgyPT&%K^u z&9z57Cm59{@cQPhz%9%*Ky2A3=-ohg4hZWEAA4|Qa1#0RdJfw$Z&$-Y1m|bK>j1y5 z_#&3#q-NIhx$*2<&_zT-PQtriSaZVh!$n#~K{mXP%;Y#6S=GFP&E$t^JhyHsypGLU z(LvhQuZP?h9)0%cW|$M*!m^)xH0TA&3Mhs zN)*(D4@JV?C68=)cW z*RyTupOG)CA*JkTs6S;egjxsIMY1u7To69oLqVUks`z_u8nHWDXl( z>mVZ?1ULR=+h(}hgmL(eI%rt|bqqI>D9F#(3U~3l1-q~&@|1Q$I~U<_HdS^qW0%68LT@KoA==>1 zdctW3k)BPE8RoW`)MmKiHC0Er!BWLCs0X+O{u(2)bC6e_7Dp7e*|O^<{WGI@{%VES zIwH9?QscEzM{1o!SGd<8=+Z&>m^*7Xu|yjgRZBSTh*(Giv0k3~uyyitv_(N%L!#yzSbp|+l$O%(%`7NHlfFDy>!1wd*UG6{-&sH z@eOco{rx~USIjy5y&fOe>ggNwd!0c8*X|4jJbfM~*Wo1G2f5O!N^@jVE;u?o?DYWO z{eEAlgj?kw<%XP_xKWTm2+JBbb0I(17jQd6ZUg7?1cyQX2F~eoal-)*^!C9JH(Z@T zZrB|d@`OTwu6GlWb6A=o=m4bz!azTs!GNzs8xeAb1Afm0cEAI(y8PoluixpKEj=eMDlk4^#}8A%>u6{gjM(MIY~nG4Ztw7HiGpMK zHVMPALI5GiXVBB@0h&uxDr|E7ey`V0Oh6E|f$Mb!fmXjSV(4Kd|P%klyASMi>IlB*^&G+6AMl|CQZ(=d8_XAH@H109C z7yOcld$yNjQO@#nm8u;pCrF$C_y!TU;jV#z6C~p@aQy-BS+JhIL1$n9c*ZgYS%F63 zcFx}mzUsq5agsO_wzGep3rvtR81#eZVEb_S`$mUABThaXc)TE)e2j4xw_Jx1Xx=O! z6uI0uQt)~>>o{)Q6B@+LQRZe4%nef??)G}XPWibpt^gluVFuzvm_q|MUGs{1dut=N6z*$ngJsDMo(M=g+c-R-fXZ&`z{px`j=CnO)-JU-+dEeoxCVP? zE5_LXNNc(FT1Th7ZbfsggKJ;mXm9JV!SwZjw$NEfHfUUG1IlWbHrx2AfT_CXT6>FutFLXTZM2cQ z+5n4#3=^p9ZnBXkn6DQ8*LB+4S}_}SZLOUSs2YGvM`z^LZhME#z|}hJ9ata@jy6D# z#R+$`5hQS5tBuEkMa|992n@mX6&+4F2)h? zZTGCcdUQTqLvwb@{;1vU+4s zHQ@641_U@h$iqwEFQqmxsEh%@VZB3yTlhQ_(20uyGa4N9`7gI(QGFHD}O~q~dlI7Cp?N9t*5`9iTRj7P% z??hsUX@Wg!nqVH-%g~6XbrvA;>AN&vymGht0}~_Pb zrWjn2>g3(d;GoAh5c2yK7W6(cf*Sh?YO`1MD8u;8E(Gn3dKWzuldv8747oNeNRv5H6I@N zhoX1jx>&J%>#m0nKl#9$-=Wxk^Yd5SfBvbH0qw3U!M|6>el zGdy;DL1vTLxBc>p$G+Tq&9Sr}?Z2}v!Jhm5?7L3g_ip{6>P7e7V?U8kZ#a=7Z+qj~ z-2)}HcdxbEPZ(eNbw~LrX5eCR`=aNMAKUuydwcKSx%IjS)0fBo_Wh+38`kaH^4_lH zxm~|)S$p??jY`ftQvUp|_|KnmB>%Z{^^aBl2Uk7N8uRS(S7-*@=!X+X1`-jOQbDAt zYBrwLr}$JocY2rJw&X${7-Cu}mV#g6@47{7vuT;BDO@+v+ZPKHjE|3>Z31`T8!(4VI!td4i%n2K$w=q; zBZIBPw{FDy*u;YilJtK`OsM(mF^lFi)mZ4#FNWVL**Dpo-oU*+`Dw|;O$oy<{^aJD zT(>Ux$=b%1zgYWK@A@}y{n`48-@cep@{gwA_g;DS%TMjU{A1g5sd+Vqo!%3NxOL4J zPaNkYOaIb+NapXjd;JBUoPXw8(JkBm_T9%WH$JxRSZS~Jq*sQHU6^dT_s{`VjrOSq z=cz}|zkTwj3CllTxiIzMbo$Tte5E>?{G|NNYVT`b^#4^fsGr#LtM!hE&=d|X0DL4PkyZ=uyTXPLXiT+hLymfu@TQ7M2^o(w4Ro@>r5BILf z&G~(3>YC)ZADE7AJF08EWZlDOp5K%5tAnNqF}Mu#aa0t0UVY2GzdrEZmj)8Wo{yHA z0;1R@-%6~=H|6q9pB~-sa&sM?0rFf66pJ6qmy%#sVX7=GHJhN6@xg4SY6^WT^a=gU zIr{&{X!K^7;9bk#PZiprXQZ#I`qoX8+t@9z1Ovh`at=|?&DLRJ$`-OGo#B+j~)oD zJp4k_EtX!<>$|^u_cK+Q5ABL=Y3O~&ob=iQnHO|5?f2VW85ryBF2?S*e| ze>XWM=dz=pe=$(<(WcZd{!hy2=dC|`>GVg>D7H2hocZ~yp8ZP2x<3y5e%pduTBe2? zt6zHiIj8f~?${rwB>Va@e*O9PQ_gH$aoL~m-t;jyu~z=hqa8_|s9Uw;hFwQ5`mA&N z)(?8$od_<;z3@|O>>E|T$YoSlTv@tSuGkrlMwfy_w(#L52Zx);!rUxH5l>~J!qvUH zp7e~XR(#C-`SyhJPfm4SxiINr)A_hNhJ}D}SA(g3&O%dWGUJ*^S7f%BOr_?czDiSB z??Sh;xU8zTthmf!T1FE^(&g$Y1qi&y&kl<)=yVd6dPXB8M{HZ~CcwRm*L5x~3 zGRBA)qhG9it*{?LfP@erdEkK7#~kn?fXP*kIiSkl4)Dzc|H}|afDC)%5D;h|4-DY^ z5Y4zKFbGF0Q%5Z1gXi_U>F10ZdDI~;JY6MRTNBD7T=(joiDI&I9z*9mbN6YPYY3%6 zX8>sk$2dh#xY@ob)npUDAH_2@6Ba&4wiHEtCXST}}mG@erYsepnzvPLw+ILvv zL+-=^c+{~D{TkwzoZ06(69^+LbIbF+SowK~sYkX^!$W5X`K#tr-I7CbdT*Jp4&d4C zp(%_F`Zuy-HVf#k_Yia;^sT`<#%fI4dp@*d6)Xf9M1rg~ z0^0*>mPf|)KU(>OE1S|w@)|VjZd!Ux?7Yx>1AWej5EsY{DX^EYdUjECt*);{kn^@O z%j%wk+MRjDPRdw4lOk2HHILcJHjA`{Tk@WB=745U*odw}QOPRBl1#&gS$~$vZIhE8 z%`t9%Q*0*O`!j0w@2fx5$>W_+)g2*oO`#25?VI|@Gk!`M&p}U^viQV~;=Wu;40N}w zrGECT{u=?&&a95W|4ALk5so(>sbCSU=N`39QwDo01Tx^2A)<5VQrIq{qdm5qc6h@rQ%NM`Fdu z@bsZ=a(%Z=eGdJ~`PsHQk-9$EjQS^euxn7v<_;*`Q`65@4fVB7AO` zPN$xBN-?!6%L3qeh2t_G*t#4;NV!9Sm$e?#&-z%DD>{E;%YjMoOW@o!=EXVfo9K2< zgT92%D$j@qEUO1<6!D5amAYPcc)|BZ)u1M7V3to+n71NI=b}E@46fjwb8<4^9=&M_ z26{#NG9FhTf*qEC@!)aPl5Q3a7J z7yZ71a+r0AuHsMusw<7-oT|-TLWTv^EPe`5-~QYQ>4@uSYj6WIdF_{-+&a)x4h_To zPxzf3Y^2}py&UsI$^gnE$H511F<-~*{HMt!DYlyu4-cciD1eH9_;)1Gfv`t#fbgtC zZw^le!V|)1DJoExiPWyW?|;3}VayKtw{_w`eMJuOhJFw)E1jSN!$^nPGclkf;lQM{W?lQHylyP&lNe59mU|AZpI(0vZ1ivRiZED?s?yXLF>dah%^YgIw_h}mh zB3E%2QUtg-Joi3+neodOCf^~P@@!$y&QEk9@lJ0-OXWETb?Z?q+E~cZXT`C}O%XD} zKJ`N{T!G4*_9pFF^px4ZN&=baAhAwdf6;VeNjomITl}=;&9>1MCLwSjq2Akn$P!4bFGll9Qo+qcAFubX0 z6!*jY*~4zo0rvBXG?t7#H#pb_lon1eG;gW(3yzGz!ZdjV)VQq77LC?Q$FuYM&U&^VyG7()XdchqR=5_~ z$3D8mqSKqRs{U>VWakk>8rUl>1r*6chr2=iSOtV%`@dK*3;+%TlK-Csy^T>1KEZz?9?$}#ubC@L+ndmDF6*b5X-3Aikn>E3Q4kYvPD zzZcp`#`0FeAGY`HbG5~)N>FmRBX*Nqt_mQoevx6?cZm^y!T!oTOrM8FWUib@_gTGiBYdn&7}uxVar3d;=2;6g{g&#z zcapXh?zZB7rG*Gep<(&!yVK)@g zwo%=3Y-L3$CE{gZU0~Fym$J3-@c9^>NX8Aci0MqSv{03(Nq3{{SJ-epu1sxRb*f~@ zP=1);wzg3UyEu2Jl)G)H!M!}n%9EUtkGJmOMkVZ6tqw^L2BF{OeJ>isk zs=oERIFl_EV3gJC2XytVr$#Pn%t@gs7dX{h7@CxWRA$;cy#wBP&v8w(sb+Vtbubyf zj!0P6QU}V)6DO9<3#z}ot+AhK&kPS-8C}tsQ|B*(@RgPYJA}QDwehp66N!9boM+MI z%g6U&#jTSsNia!XLZ^N5s&Y&hv1a#3iINC1eaC&*kIh670>6}=Bda4C`KspHiSZlS zTNyPis)epuL+?hf#UHVA1;fsTpWyF1Jbzl3oIE;#7K}&6LV{y(u;QhJqwq(r{t3#* zD;{s5vtVel(yz4m+LMcAkD!B`F=Bw(A>6PNs5*sOg&I-n|I?fgCT=lNiwV}FqQnXi zwSvJ8FlTuTbNYZTpnVK;ivJ9A|K<8fAiMy3^K5wGnLv0N5T0`Mkc4r8@CZQe+i+kI zz3AVSS+*XC%a~v0CIN0qKu+!;Q2aAh`ll=ae z*5%)q$?c9_77%7*{#haBun|>~_0G_rQFwR^>A;aonn68@NX=Hv2p;k$OK!Kb5*C!* z?erdWi}-q9Zl0u1y6yZgH#ePLBicB`OETehk;%bvs=61)$Wnub7&VwS&nd>~57hkT zGA&Ce%%A&S=2Xc@1G8_M)YO7)ud<9^0OuwoxHK6Vk+Aic2dpa45lhuv{0lx=?uz4Q zN8$8B0XYE|6LkbDv6H)5R>n-k)`O%?)zjl&qz78X*W9_QW~+Hu2HtK`RA=*LW@%B# zkZusgjIwsZ7^c>{g`S$*Ys3OBw=2>jG?t#yu0IqXW5*x z>P%xC-95@0k)87R1f?JWK3S9;M9ZG^LA}=YWKt-T2VJmA*_By&0lS->aDAJoPG-cJ z%&3W1o4XtI=p5e3CncE!t8j$Ev^im3v@C%y!5~4c4=e3`YwL#fHxEzY-Jei+M8UT@ zZYQ#w`4MfAF@`gWR&6!i%q$_+P@~EYV;#WZ@2<@)kyG(y5q~&TR8$ZU!0}lvowa=L zJZISUjomhvMvcs=B_BV=GVdf4N!VaWff__$tHLTBk^usFnG6_MRA{MS@hugl zQV*hCOGR0=qQF|@pvCTSZMAAud@Ndg7Zi>U5ZOBkU`VnLJZHQAFn{FS`OSB~`+eVh z=gz%1=ls6L(bKVyo+>X&^z`x9k^+-o`BQDtu+Z|xE9KAQtus4f_WY%A{lTK|JdRyy zoYDLyohBIw-Rfnm^cj8v8^SUL=-rkx#WZWXpSB4L(JJYQ|_A_BUX*jbQyX-3`k$CZGARr<6vz3$L+Y@ctJRQg&?x%Bm}3(G#hr+DXh zv|KCm4BCd2NJcjup7W3BtaCG~{ByULQ44N(#oc~Z|5&~-Pd~Hy>W2@KK0Jd>HjODR zit`ZfIoh>pbzpt$;t^DH`N*P2d;TzD?&{%b7h*aNY^?@_j{LJxtXFo`(h`B-;MRsS z`=1;e*Lm~A!J4BF(j@xMf-%>Niz1=;jxlRG$0zQ5Z^Ct@2RN$;S7b$g8l3`_RGjo# zoj0#F27mbO`C@Y`zx96pwj-S*9!-B$g#{MUq0}2U>9b#rdgsVeUeX;4wRz#j8d*cp z@2{6ur~I{R-w&nr6)E9{c*&c2Q0?)vSHEl>82Zwib{ocTqlxYqQ?4Lh!$_mKm> zmyFhu0o#nk59em??u5{Am^H5>u{`O~KziTd>H0E~0xt&u#K5{A~ zy?*74uFCo;(&b)C@J~l(-me13 zVb4EK^SNL4-J1FZOV^&tEqqWDxo-bY9^ZbZ(5A?h)x4nUqGUtOu>F_5oWH5z_&a}Y z@{YVUZPoi3p`Mb8>H_Xx$eYto@1*lu-iv9wco5p9Z8^IlS5s@sSA~CdX;%yS^PYK- zqG(t}?8z>#{4L$(?wOT^z0AsP`MzJUd;?}}J7+h+adz97y&c%Q0WY{6>*4DL+}O zj!KPZIbgnOwgV$K?nnV05NI{g>J)~B;+aIPLCR~X{)Pu>HB#O@QiZ5YvzR1pNQRk- z$_S5EXQZep4KGj@V3k<)COsGivg&mPi^MAB(HdhsBLQs=hIx=pgiVq1Z~@8}At+Dg z9bncZNFo)=o=)IS%1dHdlLUsBELkF0f(wl1L>Q$g3Pvy(!}vggZ%H?>w3TnL`1NW~ zFc!60YhtxV1H@^h8Y}{vVFI;L4}%9VD!^e*5zO^;(9~m{1L9V< zM%`z!Db=jA8LUymjE>PW2G#=9qc-&#wS?8OI!0#mS*~O44V{*=QKF*_iBg`GuVE7C zR2|EcS!lgU$JmY1X=V0?trz@46KJUcH$7`K+m%Hzi+i=oB9gQ^tqBTAWz|Vqi_zeu z$|lOG>QnHN{)5-v7l3}TwbCZwJYsVm2uWtyEsZuBbuyJ!Z8lnr2`n_vXx0S4&d&q- z07d~Q8qgXVCN(e%Nk~0uQf*=lE?UJ^hDx*f5kpAEFbdY@61OTS0RR2B% zdVOycR4R$Ws7~clBUB+vP1R~7m>9v87%Asd1f}E?!Adz_95hSLM?`Ybte{{Kh6*v8 zoBjK8jshgqU}0&4nt2&*4t?D?5B&<4_pdMpG&snBqC6O`!Eg;I0s|5r%&x(34JZNw z5+2O1frZQd*#`@7u)yqF!OLFk06_I4DQ^i_-@D%!i5>PC3a!PYqtn6aCYoF3LaaHJ z;kFe(g}rJLVX?;kYeHOfUpwcZ&xa^-HaG#*Ml4XMU%$a?m6@gt^f zc|xAQf76(41)++!cZ4NNbo*-gXWlwA{Mwz3QxCoFGyBQVUq*Ixl)~BTC%|ssjMdB} z__!4F;-?Ip+Z;c7su_7>>BXP&b&HTm$di zWnA2iA0R_r<=pszyYT~e;|K1>50LTw$3PJrbeTfZD4NHMV42@@h>=Nu=% zQIAVsAwfBhA*67Tb6yE4l5ox|5hen8(0^Qj3Be59YaeT-wK~S^>kSTlY_lqf{LiOS z`?(QqX6+M>2uE?;*W2Gec#hK7yLS=-bI||8HaNn}q(L^5VD3{B#p=O<8wi=R(F8^T I6KzKS6IXE`;Q#;t diff --git a/tests/helpers.ts b/tests/helpers.ts index 5a7a0f5..d002522 100644 --- a/tests/helpers.ts +++ b/tests/helpers.ts @@ -22,6 +22,21 @@ function sha256HexOfFile(filePath: string) { return createHash('sha256').update(fs.readFileSync(filePath)).digest('hex'); } +async function waitForPdfViewerReady(page: Page, timeout = 60000) { + await expect(page).toHaveURL(/\/pdf\/[A-Za-z0-9._%-]+$/, { timeout: Math.min(timeout, 20000) }); + await expect + .poll(async () => { + const documentVisible = await page.locator('.react-pdf__Document').first().isVisible().catch(() => false); + if (documentVisible) return true; + const pageVisible = await page.locator('.react-pdf__Page').first().isVisible().catch(() => false); + if (pageVisible) return true; + const canvasVisible = await page.locator('.react-pdf__Page canvas').first().isVisible().catch(() => false); + if (canvasVisible) return true; + return false; + }, { timeout }) + .toBe(true); +} + /** * Upload a sample epub or pdf */ @@ -63,7 +78,7 @@ export async function uploadAndDisplay(page: Page, fileName: string) { await expect(targetLink).toBeVisible({ timeout: 15000 }); await dismissOnboardingModals(page); await targetLink.click(); - await page.waitForSelector('.react-pdf__Document', { timeout: 15000 }); + await waitForPdfViewerReady(page, 60000); return; } @@ -80,7 +95,7 @@ export async function uploadAndDisplay(page: Page, fileName: string) { } if (lower.endsWith('.pdf')) { - await page.waitForSelector('.react-pdf__Document', { timeout: 10000 }); + await waitForPdfViewerReady(page, 60000); } else if (lower.endsWith('.epub')) { await page.waitForSelector('.epub-container', { timeout: 10000 }); } else if (lower.endsWith('.txt') || lower.endsWith('.md')) { @@ -350,10 +365,28 @@ export async function ensureDocumentsListed(page: Page, fileNames: string[]) { // Click the document link row by filename export async function clickDocumentLink(page: Page, fileName: string) { - await page + const link = page .getByRole('link', { name: new RegExp(escapeRegExp(fileName), 'i') }) - .first() - .click(); + .first(); + await expect(link).toBeVisible({ timeout: 15_000 }); + + const href = await link.getAttribute('href'); + if (!href) { + await link.click(); + return; + } + + const navigatedByClick = await Promise.all([ + page + .waitForURL((url) => url.pathname === href, { timeout: 8_000 }) + .then(() => true) + .catch(() => false), + link.click(), + ]).then(([ok]) => ok); + + if (!navigatedByClick) { + await page.goto(href); + } } // Expect correct URL and viewer to be visible for a given file by extension diff --git a/tests/unit/pdf-audiobook-adapter.spec.ts b/tests/unit/pdf-audiobook-adapter.spec.ts index c9d9bd8..20c7114 100644 --- a/tests/unit/pdf-audiobook-adapter.spec.ts +++ b/tests/unit/pdf-audiobook-adapter.spec.ts @@ -73,4 +73,67 @@ test.describe('pdf audiobook adapter', () => { expect(chapters[1].title).toBe('Second'); expect(chapters[1].text).toContain('More body.'); }); + + test('keeps a single section chapter when only one heading is present', async () => { + const parsed: ParsedPdfDocument = { + schemaVersion: 1, + documentId: 'doc-2', + parserVersion: 'test', + parsedAt: Date.now(), + pages: [ + { + pageNumber: 1, + width: 100, + height: 100, + blocks: [ + { + id: 'p1-title', + kind: 'doc_title', + text: 'Sample PDF', + fragments: [{ page: 1, bbox: [0, 80, 100, 90], text: 'Sample PDF', readingOrder: 0 }], + }, + { + id: 'p1-text', + kind: 'text', + text: 'First page body.', + fragments: [{ page: 1, bbox: [0, 50, 100, 79], text: 'First page body.', readingOrder: 1 }], + }, + ], + }, + { + pageNumber: 2, + width: 100, + height: 100, + blocks: [ + { + id: 'p2-text', + kind: 'text', + text: 'Second page body.', + fragments: [{ page: 2, bbox: [0, 50, 100, 79], text: 'Second page body.', readingOrder: 0 }], + }, + ], + }, + ], + }; + + const settings: DocumentSettings = { + schemaVersion: 1, + pdf: { + skipBlockKinds: [], + chaptersFromSections: true, + }, + }; + + const adapter = createPdfAudiobookSourceAdapter({ + parsed, + settings, + smartSentenceSplitting: false, + }); + + const chapters = await adapter.prepareChapters(); + expect(chapters).toHaveLength(1); + expect(chapters[0].title).toBe('Sample PDF'); + expect(chapters[0].text).toContain('First page body.'); + expect(chapters[0].text).toContain('Second page body.'); + }); });