From d8ed9e613f06d96b7b65ebd22ec5131f027a7033 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 22 Aug 2026 14:52:20 +0100 Subject: [PATCH] feat(templates): let Timeline Minimal draw its projects in the wide column MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The preset puts projects in the narrow sidebar beside education and skills, which suits a list of short labels and not a CV whose projects carry a paragraph each: twelve such projects take the sidebar three slices where the main column takes one, and every technical line wraps its way there while the wide column ends half empty. TimelineMinimal.Options.builder().projectsColumn(TimelineMinimal.Column.MAIN) moves them under the work history, where a reader meets the career first and the projects that came out of it second. create(Options) and create(BrandTheme, Options) join the existing factories and reject a null Options, as every other preset carrying one does — a null arriving from a caller's configuration is a dropped value, and rendering the stock layout for it hides that until somebody asks why the projects never moved. The block is built once and placed in one list or the other, so the default is the same block in the same column it always was: measured at a pixel budget of zero, the standard baseline does not move. The moved block is measured against the column it lands in, so the wrapping estimate follows it without further work. Column names two of Slot's constants with a different subject, so its Javadoc says which is which: a slot is where the author of the CV put a section, and every preset reads Slot.MAIN; a column is where this preset then draws one. Placement is tested off the node names the preset gives its blocks rather than off reading order. Order is only a proxy — the preset emits one body row per page, so on a document that paginates a later page's sidebar follows an earlier page's main column and the proxy inverts. The names also separate "moved" from "copied", which presence assertions cannot: the projects are counted, so a block drawn in both columns fails. The page-count case uses twelve projects because that is where the sidebar genuinely runs out of column. At nine the default also reports two pages, but for an unrelated reason — its single slice no longer fits under the masthead and is displaced whole, leaving the first page nearly blank — and asserting on that number would measure a different mechanism than this option addresses. --- CHANGELOG.md | 18 ++ .../templates/v2-layered/authoring-presets.md | 5 +- docs/templates/v2-layered/using-templates.md | 12 + .../cv/presets/CvV2VisualParityTest.java | 9 + .../TimelineMinimalProjectsColumnTest.java | 216 ++++++++++++++++++ .../timeline_minimal_projects_main-page-0.png | Bin 0 -> 111124 bytes .../templates/cv/presets/CvTemplates.java | 6 +- .../templates/cv/presets/TimelineMinimal.java | 171 +++++++++++++- 8 files changed, 425 insertions(+), 12 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalProjectsColumnTest.java create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/timeline_minimal_projects_main-page-0.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 89abc2707..2689ccb5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -292,6 +292,24 @@ follow semantic versioning; release dates are ISO 8601. Nine presets and every slot they compose changed; a CV written in Russian and German now renders on all sixteen, which `RoleRoutingTest` holds by rendering one. +- **Timeline Minimal can draw its projects in the wide column.** The preset puts them in + the narrow sidebar beside education and skills, which suits a list of short labels and + not a CV whose projects carry a paragraph each: twelve such projects take the sidebar + three slices where the main column takes one, and every technical line wraps its way + there while the wide column ends half empty. + + `TimelineMinimal.Options.builder().projectsColumn(TimelineMinimal.Column.MAIN)` moves + them under the work history, where a reader meets the career first and the projects that + came out of it second. `create(Options)` and `create(BrandTheme, Options)` join the + existing factories and reject a null `Options`, as every other preset carrying one does. + The moved block is measured against the column it lands in, so the wrapping estimate + follows it. + + The sidebar arrangement stays the default and is held to the pixel by its own baseline; + the variant has a baseline of its own. Which column projects belong in is a property of + the CV rather than of the design, which is why it is a caller's choice rather than a + second preset. + - **The three column-flow presets keep the modular promise too.** `SidebarPortrait`, `MonogramSidebar`, and `MintEditorial` declare `ModularCvTemplate`, so `CvTemplates.modular()` now offers a two-column design to a CV assembled at runtime diff --git a/docs/templates/v2-layered/authoring-presets.md b/docs/templates/v2-layered/authoring-presets.md index a54739acc..432695d99 100644 --- a/docs/templates/v2-layered/authoring-presets.md +++ b/docs/templates/v2-layered/authoring-presets.md @@ -154,7 +154,10 @@ Some presets also expose narrow preset-specific options when the visual decision is structural rather than a reusable widget. Example: `NordicClean.Options` lets authors move the skills rail to the right and override the accent colour, rail fill, or profile-band fill -without mutating shared `BrandTheme` defaults or changing other presets. +without mutating shared `BrandTheme` defaults or changing other presets; +`TimelineMinimal.Options` moves its projects out of the narrow sidebar +for a project-heavy CV. Both keep the preset's own arrangement as the +default, so a caller who asks for nothing gets what shipped. --- diff --git a/docs/templates/v2-layered/using-templates.md b/docs/templates/v2-layered/using-templates.md index 638fecd6c..acde6ef1a 100644 --- a/docs/templates/v2-layered/using-templates.md +++ b/docs/templates/v2-layered/using-templates.md @@ -366,6 +366,18 @@ NordicClean.create( .build()); ``` +`TimelineMinimal` exposes one for the same reason: which column its projects +belong in is a property of the CV, not of the design. The narrow sidebar suits +a list of short labels, and a CV whose projects carry a paragraph each fills it +long before the wide column fills. + +```java +TimelineMinimal.create( + TimelineMinimal.Options.builder() + .projectsColumn(TimelineMinimal.Column.MAIN) // under the work history + .build()); +``` + --- diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvV2VisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvV2VisualParityTest.java index fe7b0ddc7..ece2cba90 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvV2VisualParityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvV2VisualParityTest.java @@ -123,6 +123,15 @@ private static Stream presets() { Arguments.of("timeline_minimal", TimelineMinimal.RECOMMENDED_MARGIN, (Supplier>) TimelineMinimal::create), + // The same preset with its projects moved to the wide column — + // a caller's option, so it needs a baseline of its own rather + // than being read off the default one. + Arguments.of("timeline_minimal_projects_main", + TimelineMinimal.RECOMMENDED_MARGIN, + (Supplier>) () -> TimelineMinimal.create( + TimelineMinimal.Options.builder() + .projectsColumn(TimelineMinimal.Column.MAIN) + .build())), Arguments.of("engineering_resume", EngineeringResume.RECOMMENDED_MARGIN, (Supplier>) EngineeringResume::create), diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalProjectsColumnTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalProjectsColumnTest.java new file mode 100644 index 000000000..cb2a6888e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalProjectsColumnTest.java @@ -0,0 +1,216 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.snapshot.LayoutSnapshot; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.cv.CvComposedText; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.CvComposedText.squash; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Timeline Minimal draws its projects in the column the caller asked for. + * + *

The narrow sidebar suits a list of short labels. A CV whose projects + * carry a paragraph each fills it long before the wide column fills, so the + * projects run onto a page of their own while the main column ends half + * empty. Which column they belong in is a property of the CV rather than of + * the design, so it is the caller's to choose — and the default stays what it + * has always been.

+ * + *

Placement is read off the node names the preset gives its + * blocks, not off reading order. Order would only be a proxy: the preset emits + * one body row per page, so once the document paginates a later page's sidebar + * follows an earlier page's main column and the proxy inverts. The names say + * which column drew the block whatever the pagination does.

+ */ +class TimelineMinimalProjectsColumnTest { + + /** How the preset names a block: the column, then its normalised title. */ + private static final String SIDEBAR_PROJECTS = "CvV2TimelineMinimalSidebarprojects"; + private static final String MAIN_PROJECTS = "CvV2TimelineMinimalMainprojects"; + + @Test + void byDefaultTheProjectsAreDrawnInTheSidebar() { + List names = blockNames(TimelineMinimal.create()); + + assertThat(names) + .as("the sidebar draws them, and only the sidebar") + .contains(SIDEBAR_PROJECTS) + .doesNotContain(MAIN_PROJECTS); + } + + @Test + void theProjectsColumnOptionMovesThemToTheMainColumn() { + List names = blockNames(TimelineMinimal.create(movedToMain())); + + assertThat(names) + .as("moved, not copied — the sidebar no longer draws them") + .contains(MAIN_PROJECTS) + .doesNotContain(SIDEBAR_PROJECTS); + } + + @Test + void theMovedProjectsAreDrawnAfterTheWorkHistory() { + List names = blockNames(TimelineMinimal.create(movedToMain())); + + assertThat(names) + .as("a reader of the wide column meets the career first and the " + + "projects that came out of it second") + .containsSubsequence("CvV2TimelineMinimalMainprofessionalsummary", + "CvV2TimelineMinimalMainprofessionalexperience", + MAIN_PROJECTS); + } + + @Test + void theOptionMovesEveryProjectExactlyOnceAndLosesNoOtherSection() { + String moved = compose(TimelineMinimal.create(movedToMain())); + + // Counted, not sampled: a block drawn in both columns and a block + // dropped from the middle of the list are the two failures column + // pagination exists to prevent, and presence alone sees neither. + assertThat(CvComposedText.occurrences(moved, squash(PROJECT_DESCRIPTION))) + .as("every project drawn, and each of them once") + .isEqualTo(PROJECT_NAMES.length); + for (String name : PROJECT_NAMES) { + assertThat(moved).as("%s reaches the page", name).contains(squash(name)); + } + assertThat(moved) + .as("and the work history, the sidebar blocks and a section no " + + "slot claimed are all still there") + .contains(squash("Principal Engineer"), squash("MSc Computer Science"), + squash("Java 21"), squash("Publications"), + squash("Deterministic layout")); + } + + @Test + void nullOptionsAreRejectedRatherThanTakenAsTheDefault() { + // Every preset in this package carrying an Options record rejects a null + // one. A null arriving from a caller's configuration is a dropped value, + // and drawing the stock layout for it hides that until somebody asks why + // the projects never moved. + assertThatThrownBy(() -> TimelineMinimal.create(BrandTheme.timelineMinimal(), null)) + .isInstanceOf(NullPointerException.class) + .hasMessageContaining("options"); + assertThatThrownBy(() -> TimelineMinimal.create((TimelineMinimal.Options) null)) + .isInstanceOf(NullPointerException.class) + .hasMessageContaining("options"); + } + + @Test + void aProjectHeavyCvNeedsFewerPagesWithTheProjectsInTheWideColumn() { + // The reported symptom, measured. Twelve projects is the size used + // because it is where the sidebar genuinely runs out of column: it takes + // three slices where the wide column takes one. At nine the default also + // reports two pages, but for a different reason — its single slice no + // longer fits under the masthead and is displaced whole, leaving the + // first page nearly blank. Asserting on that number would be measuring a + // different mechanism than the one this option addresses. + int sidebarPages = pages(TimelineMinimal.create()); + int mainPages = pages(TimelineMinimal.create(movedToMain())); + + assertThat(mainPages) + .as("the wide column holds what the narrow one spills " + + "(sidebar %d pages, main %d)", sidebarPages, mainPages) + .isLessThan(sidebarPages); + } + + // -- fixtures -------------------------------------------------------- + + private static final String[] PROJECT_NAMES = { + "GraphCompose", "Ledger Sync", "Field Atlas", "Template Studio", + "LayoutLint", "ChromeForge", "Signal Desk", "Paper Trail", + "Quiet Hours", "Night Mail", "Slow Radio", "Wide Angle"}; + + private static final String PROJECT_DESCRIPTION = + "Declarative Java PDF layout engine with a semantic authoring DSL, " + + "slot-based templates and snapshot testing, powering production CV, " + + "invoice and proposal pipelines for hiring tools and billing systems."; + + private static TimelineMinimal.Options movedToMain() { + return TimelineMinimal.Options.builder() + .projectsColumn(TimelineMinimal.Column.MAIN) + .build(); + } + + private static String compose(DocumentTemplate preset) { + return CvComposedText.squashedNodes(preset, projectHeavyCv()); + } + + /** Every composed block's name, in layout order. */ + private static List blockNames(DocumentTemplate preset) { + try (DocumentSession session = newSession()) { + preset.compose(session, projectHeavyCv()); + LayoutSnapshot snapshot = session.layoutSnapshot(); + return snapshot.nodes().stream() + .map(node -> node.entityName()) + .filter(name -> name != null && name.startsWith("CvV2TimelineMinimal")) + .toList(); + } + } + + private static int pages(DocumentTemplate preset) { + try (DocumentSession session = newSession()) { + preset.compose(session, projectHeavyCv()); + return session.layoutGraph().totalPages(); + } + } + + private static DocumentSession newSession() { + float margin = (float) TimelineMinimal.RECOMMENDED_MARGIN; + return GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(margin, margin, margin, margin) + .create(); + } + + /** A CV whose projects carry a paragraph each — the shape that spills. */ + private static CvDocument projectHeavyCv() { + RowsSection.Builder projects = + RowsSection.builder("Projects", RowStyle.BULLETED_STACKED); + for (String name : PROJECT_NAMES) { + projects.row(name, PROJECT_DESCRIPTION); + } + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("Jordan", "Rivera") + .jobTitle("Platform Engineer") + .contact("+44 20 5555 1000", "jordan@example.com", "London, UK") + .build()) + .sections(List.of( + new ParagraphSection("Professional Summary", + "Platform engineer with ten years on document pipelines, " + + "layout engines and the template systems other teams " + + "build on."), + EntriesSection.builder("Professional Experience") + .entry("Principal Engineer", "Acme Rendering", "2022 - 2025", + "Owns the rendering pipeline and its release train.") + .build(), + EntriesSection.builder("Education") + .entry("MSc Computer Science", "University of Manchester", + "2018 - 2020", "Distinction.") + .build(), + SkillsSection.builder("Technical Skills") + .group("Platform", "Java 21", "Kotlin") + .build(), + projects.build(), + RowsSection.builder("Publications", RowStyle.PLAIN) + .row("Deterministic layout", "JVM Summit 2024") + .build())) + .build(); + } +} diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/timeline_minimal_projects_main-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/timeline_minimal_projects_main-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..68e4ab76c5ef1ed6eaa48796a7a84b9c97117561 GIT binary patch literal 111124 zcmd42cQBmc`!^cB_b$;z54$?idyC#fbU{Q2LRh``9!rQGEkq|o?`(7-iC#8ZbYiu< zx9|7&&pC5u&dmFsKhBI9hPC@V_kG>hr(I8suC^)>K0W@ud-sUc)s*z_-9tCHcMn4y z7ajbjl#c)W-o4;^>Pqs4zR&h@eSD}?o6eWVy`O*2ZFH>q;`w`i-Woz1){U8_G)9-^ zNhuMRLnaZ1mcm{)B=I~Pmlbd3;MES@?90YPVuc68T|dT|o}ZOh*SwgkzM0wAz4?b8 z)(!q&AMc+)Huz46-D^T*Cv*3^V(NGlA$C}IvN;4P1pc7t(hVQKdr3Lg|9@Z5`#jdN z?akTNWRd^h{ijW?F(0llX;0|DeXPog!!8aB6r&2u9afOv-U~S*qCdV1k@i2|Kq7a1 zzkf3OY}L6`W7FICV(#Ky4(=}esz0r z@_YPXv2C#X>hFQoSKpM(%*?#J&jx=FmOI^7L*WPC-iz7$U!6Z19RDD_evtdv2llXM zXSTAwuFh+rR3|Sq6#e1=ktH;-+80A%BpM3-r05%lO+*j1#l-n{{adz3f(QS^b-)`*;wVNDKa9Np_>Jod?%sT@T_LaKpYU-*%x8$<;SdzK2>09T zx4uxrqt5aDAN8E>>EGLY4op5j>xS)quPUkl?-J$d=e55;*K>9EDW-e_@|DI_h5whE zds<`Noh9@fw?6uuQ3l3^97Q0c{7$!8Jl0nfEdOjA#8UB!W6kDDdTSsCxo>5HZm)mT zKd*T7`0;xLDPsYW5WOnJecYAZCF7U$JK%391W8p8l)_c*HznWe$eMJwpOhru=sZLT5 z&p&uxs+~(OO@=u$ULG16x`l_MCCjHp``Bkc9?3uOz3OSN1l=joeNl*FA!-dxT{zL< ztlt^}!^d4wkwoOlGBx$KDVT`QgEAS(6ACJ5URbbjkw2wTzviJm>H-EMXAKo zl1cx?E8|0k{f^NIx<&ooib<8rfJSADya@ce==0$4eU~%#*po^%OvOk-ZazM6y((rU z98a<-O%}-@$s8OE(`>S5w?`lan1Nlr@eOINkg`M>;17FkfU_DgT5wC%l z8CTKMZ8?fd3kW3jF$G?rr4g0-*SN%}twBL4JMG&NGRa6~|H{%ZTZ>3ZODnn_4(R(~ z4Kc*#x9Z557YQJJwcPP?rc7_K)!V~h(lakuHVsA0D5ds6(tD?de?{PHqsO|61!TkL z>iiFQx9DEozINNarS_{#t3Vbg8yj188!gY-w2mxF|B!brWvGWeyN&Yv&o9oXUmXEg zTVM1K5n}%5d+vVZSxJX_?bb)L_0M(mr>3Sx)=F0t5jZ~^oE0PY_V(Nhoj!twx!MQm zgITtE9hsl0k@m)*zE@jT=I~uc65UtPxVbz74S?*MCHW`Cl3$nz7YJu4LBJemPS%`ZzBPs6c?3>s!sd$Iq8BfkWS@R4ipp1*| znpa3f7L>-kdxYt0!&X*OcCTx?5|Y4^_C=xNx9pT54c7EpOpVM~W@+hM!Z;cMVorX` z)^w#yMr}ex#2h$)TQT9JCw~^(=1TMb?Ju^awSa%q9T4A|tu#rX7twVcefOy7H|UH7 zunVEA&o;f0wfZLW(f`!KDSKmV`ZjCw=fC7hy%kL5PdAFCoT3PaquUTQw7Rb<2vRsI z>tu#M?=T(asz`;C@I7scSE42Y%d_?lUr~^RUYILK+6PvmFJq5M+=~=s9v)iKA*(=oX=H!EiEYy={ibK7nCX6Qz4h|{euJbkSwzM9a z5gvbjiUAXH}eX1y9o=YI6G>H7BS;6|}MV-N;TFuNWJ{-E-Lz747N zY=u#r+{kjCoyEn|&(GRZ=`@*R5TzcRO~jlkH4dZH$Dm;<{^2*RVb1Oa=s6PdIUMD_ z(E5h{ZO#;%TX{YV(fsC*`LUBMy1Dv7c|IJ)q4VME>&+3kf4br}__Q>RC$SF+Ro36d z=Bp+#ZX6v%0lYf)=?X@B=$Ro$p7p9fmWusjX=xM%8?BgIP9&{gWQJ^$Wmxy21BS-LZw-@U;Oiu)9_33o-WQdllS^yIH`Xl`JSKX!S1`j}w-(T)L7#I9fEk1O%`t8(& z@e1JHgWX1{3-!_-9j{LRzuH%w!2mw=P`yzkXMe|XA3q=eFstbV02*ny@RSGlq?bhY z`p>H%uoD)i3!Lkk4juF&E__~a2~S5*9O*vXkkyp)v-uTMsi^Bb z{{9z@aFW>a!mWseq-BB_F z;Q%QXHqE{&-OMt$V1+Wpiw9hu#>W%tXoFSn(Nxsz{CE4f`$syrfg1a@t#lP(xI-NE zqn^*??MF1(Qg4ro&$Vs2NoH4d`szRjlz6?N<~yv(of8I6as~W_Xuogq+-fyyow@3KXM69J z*h5fTHrvvVdETR>qR1w}2~3M5S0$u!lv%tvW}3rYVEE`VTaj@#0@F=Jp*I_^2@vKg zAy243UM1pf(2NYjDiRu(K+Q^6>rsExBUk@2UTTR>ZY75uaCM##vGjGOs1%S$-mFn; zHN7sPw{PFN-$$IT^%LM?H}w(_F-WEli})T|o5tcXE>+nA9@H28NhSuRB!##citIJK zABZ5T#t-r@3;K5(_#+{W@RjCTR+2;Oo4Fp#J78ee5#zSj(8oo?_Dz2 zlxSyg7PRuqFoK(7W;_I^s;o^t%ODGdMdrZPQ-HQlT#tFnmNvlb%j+F(hwE4F!t!gG_+A z;QGH1I^`6rKvaJc`oxEqDeWpm*kL$JBG;6(ed~V%I^0)#Qf$AzJ;8Px{q~LMz)_i% zIK zew!-6d}$CWuQY`f@xr6~H8)^jwjGC+&U}e#D1e}L!;Uf#_m!^sD21h|k~MVR>+@f) zegSAIH{iq->24MXFNRpHblg*p{gVo$B z#Wo)j&K+{&HBR}TO)oV+0F@I?0nQ$+CT&;$W(`n!0}C{SJ%GwQ^8UNO_^JaH=~VRT zz^Y3h`j@>lC=`P|hx6Vkm>`5`WZAKUDXP3k2)?|T&UOK-KwRxjUMA-!6 z292}{K0rHH=68^ZxyYYD)ew+`cbuhIr`Q9j$fEn~(*kPa7OrWa<3M_o@#tR-zT@H1A2qWWc^EJN>A0__P;L zz5eXh$ey|q6IsNjl-B4nt3i7F4qQot4*o>$?>;r^6Dley5vPfJ6tPmi$dq^QjLlb1 zX;KHyQyU3Er{WG}hkzp_LL!D~WN&Xjq|`+<{K(AB0Solx4u++-)xm z0c|Vf3=Q5?Ms$q3L1<;j)$L?fflR=pX1dxVdJtyN0Vs^^*qsRywmO|+{~tRfY?UG< zH&?onkli=6_WC~-NuCGjBk~77iaz2a*CaAgOJA4oAKlI1_ht{NNC^ z-Qs&xxO{jr9TE=s<72O_iAnvT;o)+eBwsDI zD$hxssQ)}%|6Y9Y*lcF}2P@9y#nvR7zIe3MOhU4=vopAzgavWMCLl+fU;Z-AOS+)^ zkJX}Bf`OzJb)_|gzCGRm2kZ$Pf~Fth|4}Qe?(GSZ;qe>bcswt-+M_2MheZLV(v4;} z5Fb(rWa;X#-PS|_sHw-^JCyS5Hpw5NKQh9dFHg6Dm9t7ac3%c|@yV=SJ4al;u|eE< ziXE4mjSb`Dq!>kX&O3g~5rM`ktIiL7fLno=q@>dcIm*4Ve^zI&?&yfj;58u)#xPex zrm(3hSOdDDJcLC+%^VCTK`-*b%}hxxv#QeIcM z$?1(pKMe8>sQm&aak=}idWihY8OLa)d?8SZpjDQ#^g2Kb$kOCvH=?wyaTCv;(Mgan z$=nfDQ%wBus3AN%vV=$G4Y*5%d?lyu;;xvS+X`H@KLKSQOt>E<#ab^PhOOsvwlf<| zbdsXosYZDsKYPe)L_{a3B)?N_*>?TQYGZDFvq&{5^6ZRNB%qk80qutOsV)K*(zf^G z>swD-2d*z>^^UP&33q1S>S!?h09@=PIUjqi=WlJe&U@?^oLj)<>V*L!$6*i2zh^#xCEPBukPS~U9Dj1DA2L}ey!Lt!kn6K^~ z1ll67vp8QXL*PaT)u2`XY=X}H%`6g$Z9csN(72ebAJPBEmb<%l0r!I|@-4n+U*YM% zS#b)&gSA(O-pOK8oUwJvz`S(;W~pdvA-(y$3X0P6#~Z^G0b-QxAgig9Z^1k2605;AH2MC~WHY4tjfz1U zn(ryozYEm`2A=%$f2h2FM|t`ckpJ9#!IV5G$uuiGYKbhHQwZi>&WZUgXa;IQ2R zJNQXLnF#o!oSe!q50~>nu~$no-M~8fQz-@@;gE_A4jQArxXK&|v!s68 zQ&mGH6KnfExNP-?60Hhf(!#LVORXym96M6Cdfgk`l*_#H}A9bgvUM{;o8+Vgr zZ+(x}l5eh+S z)2WSod@*bz3C|f~uEoPHV^-{>VLE9e z>haatt{5m6hdZxckqYDAKVWcfc8)}zhg?wtbd7G11fm!q8Za@!v+i_0Xs1`m_pg|n z@+nVBN=jZXv>Y98j@ovB&JlwuD+Thh?Njg6@C4Sf>;3_>CK0n-c7)L z(m>-07x%E$jYWAio`6e#P$a)r--k!4=nL;R9#)&3@bZMmiN|#e8$8Y zfJzoUad4$yeK&?u;B5)2j&M^4O{+ib_eInocd3gKsiVxA=z<^`p_}ph*tbZw&8FV9 z{y1PzC%u0tx8Vy;tPK*JD~j3?-~>1HmoX!IS>`HDNRX9g^+?&~JCFPvfDy=GW)fopt3Sn* z-8t}an&r-*PFa-rcV|Y%p1P7D--CR@U2HgX4a^me${z+kq(b1v(UWM@N*o9-Zg;Kzu`2%^HC+AO1M`~i9LWEy zh}Q@EX>kqugk=8xOJWLF)yTs{Y*09JGLjWf=uXQy)p%3$5H5xJ`EtwUYw53FpLd7h zTvkj2{*!OYGx_^-8Fk8O2$$SLK1HujBSskLTe}9Jvsgzn^Pg;M5&&x1y9+ib^G*kf z8zuUP%lU>s6yNZF`1wr_tVU&l{FPDZN2CFpSbhr7W~cl0F%Kq>_>&wXxXWn}>PhC~X^$oDb)Ze?X<`RP68{x3-MK92%*U|ebZ=-PVpEq?VWcQaOoxdcd+-rnIe^vippJM#mC17>5nfs zJJF=a{x_G6=RANk|GYR_&+r6(_0wjz&2-TU#Q6B!$8VIA)$eQ?UM({=wRx;Zik9;6 z@xeft1$wu-D~R*hJ+b~L$%?&44+IBIrwmrbdjK0?%kmol4L$U^I9&aCh?N+Q0tnLp zx^h=QJC!lpFJMPtv+S_Af4 zCgAeU2M3H)S7Uu3;VilI1H+Bd{{*ZjJpko#h#!c9Y-exJwd8bv@&3HqB0OeplfhmYXDpQ-lfzyHP3_`m-GV4eZHIcVw* zog#Tc0@4=$^HWmT|MwsD|9Y|DTF&oDbu=|!fPm!3 z1vn|@+AMg3V6*dN0{m*d{tW=R4?GOzNRax5Pj>^Y_ zm8XTFVfcIpAK;8XfyY`FUJtU!Z2(t*c7WUb2e1p+SjqA(#omd4aph)airMx>1430` zBX~g^$S@B|Tmc9B5+Gx-MQ5NTH?K*xRKR6JT{|%9evjp{3+kIPaGS=};c>-Y-yVRs zo0LKVw^{ObDt3n@A`*r_n`%&`6NqpvNDHrJ-UP6Ao#70kAdj59ym4rlHuo*hFVJ+U zLCt#a8jFz0Yikor2nh-0$p$gDNR;@&pF9BJlpGFNJpI7e`uCr>{%nXbo>6jh<9{n0 zaIf?tj%E9^ALg6A`GRY(e!m62_wbq4*$;!#&6u{n*a6;8@4=vLEoe?74noSEfGUAS zZ*p7AJ_Q{G`b~Umxl=alJxE470|OlSI%Tg96*KuQ#YKQP?)rj_f1IgKODVJrh^v~0 z*dR~siHK?{&6#Zf(8DGXlM^xT zeglmHMW>kaARlcePEFeHbmi~gXYxn`SQKFve#{u+3bjiHsv0hl>b2ef9wqFK@!;`KeyK_!5X zi9UGE^L~q>cO9Os>4iXB4ant7DodL*l&*W$O48=3TV*anh!JSyh-d_D_5sibVftD) zi3R6fNBp9_%b>@VWq@#&TI~3hKR*{2{IL)JAnhTD%O!vScQ@q;Tjf=mf+snY>x6V2 zK7K$Ny7EI)Xu0ZXvsyRr>QPqf@l3b{d*HvDza!j3i|g^?=Lp~cjCBL1vRVK?@w1h= zMlU9}kvaBs0nnsm`JhJOZ)tE#tcZ*}`;-C;gsEfpIY^G4b%2l>L6$USGYBH3ZSfwM zxJHRTGK~!^kTS1QNKS;?=6hVF^t_zwlJwhHl(=SLsI0~P+fkuq0IkwM)_>dR#`f-+^x`W`Z$8#lXI5=mELe$wRSaZ*G8AEwElcme|vm9Q-!=WV~W z@I@#@q&H+NCd<|hRhaH~w(}Mlrp={EG(nMknb(mJXkOHi|h0?)h}p4_@ob55rj+-!Fx@3XJIP&5ZbM0~Nex#l~*BLvPDjX#tYHP-S7 zv!drR)H)z0jinM|ieuMGlusAoufG>jjYZH&S(Xm0oW&LiAsX7zYFa-D{NUw zT=js5}H?ky6zk8U@Vd zn>;z-;U^YDmq8{9Lb1d-T%HjaLhJYeaKeyorQF~iNXGKF)euo^E0nj1UOY??>);?Q zW*}VL=}xgqDL_DXjT`v=xn>tk%@-(iW|k8NN5={R_xD~@F!qxI%mtd?I8#7KjNwU zJ&lim1jw}Ns@h#e|L5*#ft-Fs#Pg#wNES!S7rG1>0Lb*HJazhfZTjp%CMV8EeO1w& zM|IL3aP@BFDAjkoZvUj)Wu}M|J1iVwaw(GsPl99UDDeW@Ihl8`y^v`p;+{Mmg41$x zv&)&}fDZ}Aw?4Uz_dPgSeQVaVKDOm};j%P`Rvvdo8jv|keR9V&E(m+N&N!`QzC&+$ zLaW~#i(O;x0nVYM=coHHCsaB;3gxsG#S}Q<-en53)PtIi5byLy(321laXJTl{GDN_ z}^6W`d6HhcpmNF~E|I zMQtde`fFJU-7-5AUA^8tR6s~ClBRdVw(ukJ~Ut5*FFXr}% zzJvba3MSLP{CoPW6&N!Yab5C9(KYl}D*+v#eF##+<#iE6T+^jn&gzy8;B2TD<>8m-ia{vgOy4G=#ACiUPO@X z*Wq0fCE!m>XeAADuIyKgz;2v<*aG+03ciSx0uvzMX50|c+C++&`Z@03*%`((45pp52&63)oTa88xX4ZQ|yvG{FC>bU}4wTh5oiHL| zV|2F0mp5BXe1*RP`~*<6SP2MqT{u8?rk4~c_(1S=$VP> zMM6G$&4mPK@)=^W)vgiq?X=Z*9b55_8Qx3j#mjXCg1f>ucXtNW+LXo;(dOGzg zr#=jULt^BkW1D7~$-697AFb@wpj=`ZDHJs=ua5BWdVK?>ym85aV#c@p$@??>AE z_fHKC8$i+n{Nu~ zZf>FkZa8S}%thO8ItS()SWNA=z>Q_2`~KOAspX~a<=+DV11(ASy1>ED zI)i99(NCB*zyOTtcGZQc#Le}|_~i)Z4?yY%>Brtjo$qK-_gJmqhdJLF0N+2ab`%AD zb>HB%qv`^%WOh5%4UGJi#`R15B(V0GOM9e^7bK54X)dbq+oJoDtLhLXs*|2~3)H9Z zLF#R&AlrMi0Mb5^%LmR_`TH=+kJ`EBKYv!z4%>79&tQlyfk~Fpmh=S7Ruhldm9db;7_=wQe+ z2j7MdDbbUrEgo02eXx?ijdsEk&lA!`&1YKU_>Dfi;3|hznv*l?yV0Ydatf2gZjWF` zYe7s!LcauPqthh%Y?W!P!j+S!)SEri5mrdW3sCJqb)8{#8{R{dif|{UUdRnZ&MAh3 z%WqM<%vY={7zg7B*4RKOS$%o^kb>}iH?c&7dd+-Kl2vCQ14*dS#bt~rL}3q2I_>vF zfg)j^sJsK8xbkLMu9sFsXot9_^w>@|jvm2!L_fF7CA~5*-Cw6WdJ?9k_R8 zCzagKiR!veEmJWHCnZH?VcE)j((Y!$&L3sJ4I2pUyk_Q!Alc#$m{XlE&teWkVZBcs zgWA4YXqh}X9-;hLimMaY`jLPH#OpZtN-Q5xx@7fF9mmbW5hEjobLM7+59rO?-c)t| z?0z6mLMwVU!Eia+6CtDjzM)D$XOd>5FskdDnR=pI3Z_J(5-r5~9ucZNNRQc0^5suq zzgSv&4&{VPV{BWBr%n_w^MXfG*mZw=nCmaOlqXvUGM8%M$QdvLDnXpa^t_z97Ak@M zq%{~@t&{~u8PrI<3U}RD6*w*;#SH{0mVKAPQ2cq*<7Ax9zAbl+qIja3vJ!zn3y7sF z-eVJYK7w?AGLJ&7%g{(}R%DuC&g}D-HPnp?qJNSHXOc56t7A|@1LFEZKe+gB@?nu$ zysuS++}9afMj_(DQyu|oC4OEB3Hw`>Hufu~16?DL^rT^D?U~6)(#XqMVRC&)b-23f zYk1QBYKO!Ym|O)6xQ5oSYvPzDvEcq{3BEap%IVyj32R_8X9NM)_rfP01FM!F%&lW< z1wVB5#(TK3D}5r*S#0-_wpnIP5u1E>rhMHNA>*y`WbXyB}TbaXi+5FUq_7C)Df5>V6>@NI7!i5;fI*PhJyObRPk!n<+smgbpnqKt;^3gLqil3xG*D%c;QJuLVG;; zoye(bAw53UgoI2ne0;P|2GGByC9w1w$;-|Z{VB+@{G{-eOmMA*N+tX)F&?y+dlX_5 z3x8Pe0ft#xX!jE2f5X>iVhDNEzHJmgx)!-^1r9JFWBpOyJtZ|kyD2d8KUh|l)x;H{ z2hGRTDl)}Q0Jithzt%r8!dqE7+}qpRAVgK-*$c4>5(}Y*I=4!IfyXJR0!Ow53#*Vj@fdbAU1rop z#TijYuXNcKxnDEQ^+{bz3b?P5NrlXR^0f~U4*xJIrA^qKjC1w;MqZlUt%?B5gvjy6 za}3Dwev);<`nE1zGduMC+*T$F|5>KWa9D3K8zEXuL!8DWIfLE}y-1*5gjKbk(kMqm zR3vwV4Ak&6Qjs9%sp9L|;Mb6tDq=$E0d@I3rYgadas#H)N_O@H6z$|e$5rB&K?U+O z1$i%wZD3I;eBSuhUQ{r?6^-FH)}snsghCH!9xZMW3nv?o&mnLmZE`UcL*9Ga%0%Wg z3K4eGCg-X2E;FXl&O@I-Hne@1 z$wXs0g4RD2)_)BkNoOJIYwdk%H&ZyAglGcG;!)!y=J((n%I+~zW_PhyhXGoVxF?fs z0JW~Xr5R{OQ=h!m2Uq@hUSZV5@@2127u1~8iJwf^+CPLK-Y^*h43dTrd~KMY$&iMn zx%5WZ819F~6Ho<0CDiTTt(n2+>m9$P){~xWW5m+(FcO)Rgtj;jm<)@ zIqpFSRp`Xnk!futv7g^m=vnbZ55i1|MHN|(Pj)}QwGA{SGw+Fa#u8E?S8l(49pBdX zCBLET8^LYr;A5KY@H26d^nTbxlMIyOWgIFw$FBdaFy_J9*>xiyp^+Xw4VcLA3T;(% zJiC5RJXi?MF{exO{S_dVFy^8>re^c11&c#OqBa~nTTt;hUB6L~WGIP0Igt>O*KrR) zJITPKR69c5GC_(g(zevH6(9OoVgG0ceXV@%u=2S~0DHJq%iZ`#DrORyqm0qRDqBOZ z1gY?chJs@(Fl9por-4mAoq=THaKY0Si#%>33s^i)4#tIE7lfp9)r-Zo3e3|-?RkxZhxT3K~P*}EV85TV0Xzk#kaVnqX%!N8Ec0Ns^p zkKS_ks_GXugI-Tel(*9P<;XU+PyFE=MrU4P;#nBDU9R>>0~QT1VMLd0-^2!)!rnJ< zUwzs=PshM6iydO9bw8+LM^C+3ZbZSC>Oo6Zn1SMNLNPlH{7!h*a~Vgrir!uxq$UC; zM>EyfN|Hv}L6RgVZ(-w%>>Vv*PJ~+_Mfo!vs3}-_V8S!NdFPPmzzFS20I@M1?&vl1 z$!a208y-VfV36%)!~B7)9MXZ_C+$+ z-x~#1QTJ_RPU~G}dDIzgWGuIg z5rYCJ(LdFSal@6$LdtGp?PLUXb2L`&Uq<6ZkHRjfUBe6rmBLY{m}VDfl1%n&Qby3r zc{n{$Y*rGL(3t^?gY=2sqYRbju-GD(*zVaxk#VXMbGsI1$A2?R7Jnrn|@|8aLs5;v6WFC@XD%J3!RUr#}1|y zh-DhFJ2i7rLy;jBwHHK=C%#P~RJG^jv6xy&3Lqc39>FwOzo?;~7>PpAs}5u+!m~af z2j4*H3d{3|dZY}otXY_l=2C6dUeLTFWJufduCESbTM}#^3pu2Iz}AeS@-M3ID{rV^ z&_HUBnPr9O{Chp+2|vj;Af>nYUl^3`*R4FnpwZElNF;jdCw^Ol%%_zvPygnl_}o|@fWl(s_oEoWe`W&aR;Y#B?>GC$atamI=hD@ zZ|`uhs+4W!R)i8y@&rVAdpQt`?DTlAROeJu4UkFeQl;v~Y!nml#&xD9IL>g-4ns$| zpGXUT{)z766T_{3Sc^NAqj|(!qS=(_78#$$6$_z@_gHZQ^ed}C z{w+#E{fa;`oGqB6d+p3{XB&!wM+KhbCR>3J6+D?V0Vb&a{Ax}DA_l~Pz#w!5v=@A3 zRDotVVG4NRO>bI6L#6A)*?$8`>)k;Dx6!`=r=Hy}F%j}t_Z(L6FY zY!;x_Egof_d?QhkXq%TOae$yn-*_(A-% zxTIvV9mqZ~q*x3_PYy}L@Uy_6Ow54wVyrLSj{U7L_>22rwKlKqV=yZKEV39>&3*cwPbm_6 zHD2p}AkTy>3v^y9G^l=H3c5~F+KaCTlq49%tUx;n7sx&>RY1~UKZCo=rqa^H^PST@ zxuLbz#-oicNo}%HzsL9F^D`Lb>32i%i1K0_O5R|g;DbiexWTt&Fz}M=P^diKkMZML zD5MAAFqk!I1~$TlK+ZGzyWt83QFoGW0|A2rvPJ?xZ!&uwFHabpk*&meW4!>+rBGSZ z*nqIqZ|o$@l=9~q#`63Z&*wQyz@i7kL!@>f{JnO-OLVIxop}tBv_HhF%||0KQ=Uq} zx@Xmzv-dhHJZyr=Wo-@0!3sa(X^bM+h6@y9DaM0w9I?Kf2N3J7yFuIgog(~J-i5gH(Cy5WEAAH0fYf*h?e_e=9#G6ZU}X)n z@+Gh>NlXRt|C7(n62^ztf-)xQJ2BFVrl!0AbG~IPscB9KKELhDOQOGVL^j`UdJ94eu9$(ur8@L zJ7hAxRK-4yULTh8a2giMYZABlT1J5vz~|fdheg4$UFDNrK3+wMD2#vi)oGaD&8|~0 zz3JfkXQ$A_lgxQC2mNFRX?n*Hh1}MHB1r*@mM*o3K}tLLc0T`$tutM&voeVkv7=zC zqXo}43QV^=Gcm7mh8}6qR)0>vm@i3N8&c zwOspm725>zlL}G(ZoJsC20cVZqNxM06lsesq1didiAeJr1wf8e>!%153oCQWRPIMY zUtgE}%duTlo$1dec+GkOvU-y$^Zp-EBuxB1S5TD*F6^^uw-tVy+0R!0z^F=m!yZ_t zM6=SU<>&YdaY|}s5zoK_b>m>eZ!W!a%u{{|2`!XCt*C_ZSa}e^bk%c}_!&>*{KPe_qvFU;Ci&YPi3=%?cQ>t!lkEpyq8La_-%oK( zt(}6IOJmcoX(?r`6YXZvII3CZ*WgjzXHc|r9go<(#WtGRl+Ln^hZdF^Hg!cd4c|`X zwe7z@Jq+2UKQYPhjPk4;Ht;aj!x1@_w^j@wq?!Z_%jxJEF!aj^i-D zBa8L^aEB-PUczCOL<=%9^jP#IsreV4yt>}<@@S8C&aTt;skE}wY`S1R4_2t=vjbT~ zZyD^kUOyfG%C{5|N0~$0-pf8gOJ(c0ySVh;?{8*?7aWjC78q0?@=9vv)PAcjbfHZ~X16~g)OUE-ER-Vw}45D4u5-=piMOUjg zWY&D;vC_2eyV_)oyRd}2+SNSql0M23%Kx({nDW@ZE!UNdXuT*A;TBqdd)WDQ`7M!{f=c|qEu#?C8TAxj9(A+7Ypmrg71UYx-^&i7uc8MMb> zS}nutPimLOg8*mRL#Ll5nqONwexvGARO0}YN+F58zDl}Z9U=zM100qPtlR=^$e;MONGN$_`N%nB0NG3 z#qFmWLQFws^J~y@PT0doU+wzABPpiztc14&2B-3=&t*PF(x)ESy;<=q6XIH0)jE@U z^H?edwZ%Q1;I(Ikh@$8|HcEQ7M6!_Pq$T$*GGtx(rFw+6E}u|JVl--tX5Yx6QQa=Z zf7!x>5iI&JoKdCO*Tg^?WolsLyF7(^f@gB)rM zB$bjqFiE2`APDI6NdZ&j`$fgC1b_AU7hxJ*zpa6U$24ET;d?F12M_i!jJwpi$$QRf zT6tdQMc7d#4Tf(hS$^6tpq`S5TynyajVqn_ZeX6Ja8Ep9=;PD}6e$S{i(zq3l7Y}t z-<4|2BcvjPr#s-PEzD5!;q~m#M7OojbwQ@lw|}~N@U;-CH!ZFfJjC=eMdp3XLM}G& z>mq6|oFI0+BV#ae6nw7B)>!4^kGZ~ZWPITu8M=Yn^+b=D3vcKhUdc9n>xC=R%lDRwVioA?JF6^&K6e=b-hoiE=&?#gj`Zp5E z@A1ptAW6G6`226{K9$uU$_ebI1P$lbyf*5LU=*zf^;`YddPn?DwlbkBd^p0SVoxoQ zb|^K&=KcWtuqE!}-kDlfbX70yHS%Uz&nCril&M;6YoV%=KN-?)p%(w+djNKYq~9pL zD_p?LUKwr$90jMP4$XQe&iw76#m1Yz2?bpNuwL1| zka5fN)9;o;$e`ir7pZtsICrWAQO7jJEFRlZduRIEr1tN1WK>if0- zfvuNQAz^0w;6$F5G@cRL#-S^e*}WsaX@aF{Wiy4Td!mYbJDa}M7HXeFc?D&d*aA z5ziDte=s0IODh5Q>uCNJ_sahw?JdKi+`GPEq`SMjlx~HQE|C(Il5PYk0deT=h5?aI z2}vnIQb0#(Q9zM!Bt+>D)Ms(s*Zn@v_xHoz2ZzVrICGx=SnF5o_RXu<;;dOBKGvyI zdPX$2aqJOl8gRzlJ=|gVCX9nd=Il!wg*yvnax?y{GY-IwvO%0Usm|gAD1!Xnh2n0Z z-}TzJ6y77!LTY!i!;&%A96G+E&a>m66TL>pBzy&|>B8y(VqZh5|29S!f8KW?{zZ0z z^w_Zb$3-ZMS(aV=>p}UwbvIG4-TCWH911L3I@>11L=o-Mrm^-bKn|XS05{P?%hgn$j z&m&qK(Z?A{hvqBA>5q2QnK3i)LRqVqUp?2O-|3_pR%P@KDB|onaO3CUS#@-=s1|3$ z`EOf`-&IiR9Dp8k$ids=is+j` zBsFJv2(|Xfg^b$-7fwWV5zzfkHarYsI0IVs2`gA+-(quEV)%+-SXd~BG{J&tZJZ@BUC%7kQ=AmgANE3acb-?@wY&1Tzmo)B81aK zydMiYt7QN1)h~H|eFmzgKd-Z)<29i=r!~1b0=D)Rzl|xNOqJIl^Fp-{6r11>H%CLJ zQfz6lAjiLN7z{U-P*8W`c@}tFSgkHZ-sLSpfuQ1sN|Ne12)SmiEOkBFcj_XNNVDds z@&EOc-C7 z9(#xJCOY*SiCvvVJ2}R_f4K_By;+FdFRJaHxw-kt)9d$fO0ObM#IMf8xET~Gs!)@+ zdS802oCrL(#o7^i+KHT$EW50Ma9^jEkvcCuA&&BPneXpfHeZx3iciMghp_A%bX-$< zC3HzqW*f(Jr3#f;M}u+pq_p2@pJ_^w%IO|a|E;<{rbdl2_%(|yElQxWG>}`!s2{w* zz@yzLJ|gq-Vevl>OCj8!A{=eCHPIo5DMn_7NW%~M&wqW6X=KEGKl}ON>w08uL1PB-xEha}z`(8F@3WdqtH$#gC-iR{}#%K>J|M-ym(1xJ#dc zj(;Zq8wlq7@+SMT%+C;mQCJr`njplgCo>DkcqdD-f%gV9B82 z7+jL3mCsk<6+RAc^KURtG|ctK>f>rQ?&rzOYiT6xWi%gV+fDQ=@;%;cvmy$-kjE(>ce|S%LGN# zO&;H%pddq7LxWEtmnvh68s4z`!L4+T*71eJp@RLwfAHX1To1 zKI0A_m3^Lc5biohxJ+>NNNM>JM^>B3#`Kv~1h1ZuEuQ5se5O|nWU0R)jhiGh7_}DE zZoCn`#mTIR0c(MH@Yl({&RxQNAz$dHcGC(}_p43j(>|U%Hb_{7IP;OBLX4ya2_E^f ze)&D}3tMH2(TdU-+y0%pAs-@?8WhiEHit68s z`={Y}Z}n;!;p8&E<9^)Sj51(;?aL~K>KtEU9vZs|0OJ_kU5NOj6(ukU*BWG zDiG1WhyLEJqf#LMQwTYyr7_e-nQ=w<(*CmT?x?_LOvJNG1iV^kWO;}1TAeCul*&C` zw;1E>6%2&)c;P)05FA71mxM2j;=DWa=&L5S4#$$Wj9~xpoY$vM&t$sv(M#f_#N6ZO zM3VjoB<(32$Ab)>M%e^EKYL)}oDuWGKI*P2ai_Gxu3PjHMY&8Am5nll5*+Unf<~D- zZbvAxr&zEs6!{ew)9Y0{$CO-lC=O{AsY-3Fdn>g#GI`Z+Jq&AJF%wT|n2S_8)%$nt z(~qR+X9#@HA|Bw0Y3sLC8&DM8+1f6V8)4%!ua%8y_2c=o!ZEEzZX2~vZR<-lgVU5B zEVW3Q{*)cAd?H?iowW41^7(wm%{_5E+V0wU@qL}^Gs-A+10(GI3SlG68n*)a`%}E; zW?_e?)olv<#Dyb{lv68V5LuJjvqEc1wy~;iY5>x#(Y}vz_dlk2W+tzouBmBX6*5%@ z2vukbJnK_Sk;5Mxc6<-Kbsj0M#g!MC7{E&1OEP^OTg=ZrU4zACeHWPQrgft2(L~ z?8(q`2T%)r3-AEdb;{tY{TurA%|dZ$dg6Pxq*P^Hr*OlY=sb$z%+DiQ-*`2<<)w~A zewzqJ%Dqu(4@6=pf^4>v#BFu^Yz#?StN!#+i*w`*S}VpK>z;VyM{qeMxnxC9E=1sw zcsb{ner){k)eGygBVqid&sHx%*{E0Zvi;06eV%%s&5t9vobb-Gg78EZ8&3KkDB|$^ zJKEnIdZCE1-=6Q8UYfp;b{^V9MX69>%3jSMJtfc3LKCEs{i}X!8E%hAN+zw|3f`r+ zCVoE}BiW?crRVWmkqLi{(xIEeVl#u8HsX)eXP4Z+lB*#B;l=pT@uXuA^s|lsKF_TM z^VieYqcwbQLy}H%D2b~6vR&XRA}FlZHe#Qosl;ke9VG^$8bA8BE97a(A+{PbW7b24 zW!`xYBF;>(?-9POJHIen2i`_UC8m8blt+XgGEE_Z4hSVuI+I_--y6j-6OJYoSNXcm zIuL0;p@uqTv@D<&**ud9Bu!}(BIVH_@Rp&%M20Zx#^78sB#C6HG+iX2kB~qIoIT+Y z$)2!;Bm(8*lJ+m2B#uB@@o~A6#8Bt8Ep%)WNpaj6G4oj4&ZE#Mu{fZ#?d{uU*Xpi5 zE<8hAVp6oWu>mJ)Wg&=>xp)ScwYkJzg*8v<(Y7(*&1j3UXY`7u#CaVRYu9!gtQq+6 z_V);*PbWeE6!4SD+x?KuRGHa3C}3kSPe5%DKBuOQWIDXuQ9gY5)0f==G)m#J56Bip zH_-dQPD>?pb=8i&rk$em4O2-x)wWfYjBc$XNywuJ!0(;|&vAdgtVcrj+bqXQw3i!+ z6o+OJu>=Qx+0Als0h1`zue?g6{$txg!;N4kc_bK3)fI%C4*vP3Xi7{pUd5Tv%eUHm zlT6i`VA$+rOq0g6M%b1z`x1j@SEZ5_(Gw%5D6aI%8eI>rMg}_DfopaXiJ3n)`7k#L zyz>vR{qIf->l62sDM-e4$A8+oMZs7YDw^^;-7u6&=ZStgVYZK+SX#m>Qw&XPUuQ`E z(eZfoowuP1V!w8U^h;lvL}&Zd^>WhP(+s5R$9b03@aF4hq?SJYby01Vn@ZNNipQIT zLk74ST{>0@w;rt`<|#wYDMWN0LWGmJnyX;xRX2H#-+^L}IHiUVm?N88rJ4loqV7gy z4Z*j6;TuhOn8KhW!z7&&Bl_B z*5BU?uxA{Ju&eOhu1t1vpipTdPanCg=!MYArB|$0$tVc0s7&WjnN3)qSj=+?7?H53t&&RWNw_?CRPMBo)!sbPz+|6Ml4W`5P;h>gs8`t=g^^&Hm| zT5zf{h6G}d+@#f8WbWW(ppWX>`9+CCf-CvMk7Km2^Oz#IAkI}&sClFFN`w@n{@rU_ z)PdN>w&8u3NYX%_mPYXF`PmV+O8bgJo%)g1iRC(CG9C+eqt5s7;bye<4AygH^bVzn zs?+?q)nVg@Vv;B`PnW?}W~JZ$T1$)0}2tG|UaU)>n`{S!>>Yb7DPlXjF&B7PjIJXCz7%+iD&eY*~f z>xhoXx1N)w!*@g5rosQ05eLvAF-Vdtj&!3Drz|)BDE`M`*lWqSe;XGVFw*NU&2_-f zdmLbmko$ic)~~+yy*-bQV>r|o3ZcJ;t^WVD6r?xKIha@Nqt?tlk@xolxY zv$Y!7CeOANwUfl{7{T<5e)lf9GDNbg!y~V>=62j(s<|;RNm$z^&A`5mUX5(SOB9f> z22u7HzL48>kqf)^1&<0%9LQj&z|RHYDwKmjO!h#ddHGJAX_uc+?XPgpU(}|tq~+^m zp)NI^AkKcB)PK9*7`nih!Dq6C7cF*(FAZVjEz0s^ySf7wX%}Vbm|q~6y9IT;K_^?h zU~^w?dc!4=zu2m$FHBB73Bm`dBs~{i)Prqf26D)PPs-rmQ2zacZK$yReWFx@ zBx_eJ#K=m82#;xRmK-W^?{BB6; zvAXy5A_=3K%WDDQnn;_XXIN>Y}9~1@00p=acxjec`#F-Q4Q3cqF?V%C} z_-`%|d}Y;mFGvz1TP`9@o~Uq(6hH#Rs?8g)6E1Ja?^uXmpdZ;#O}r{D#=>w)k*)=V zM?MJoy-@|unrG&cw`QTYw#|ZVD2U;~(ZiuKHtep!`}z5_56@Vf=3F;G_kkP_Cel%% zSS-l)y4PdU_fO_)9xu$8trbgZ=|fDO^vX_M82MvryQb8OD}SKY-PoMUnOv^ z(N;}nEiW|-xHd3F<-ejtEmbqyRp0BD&35@kXUY4r_L<^7*BV6oe3inDIaRN<Gq$UkN=VZ6-0D)FhRbW%$<+P!;UsIQ=wR~h#^9&XVO-XuOMCOm0U z`#LamU4mbhk+euEV-Sh!HUFI)s@wv5CnwM8< zCh*?o!;X*VJS3K~`8!h}XGyky+ocKT+2pJchOH&JJ+;9+rV?`8% z@iDYf7mk7xpZ`~2@yxy#)Si$>rhbbJVj@^NpJb-3}sKr6MpH)NdR4`1+Q# z!@7dVlq|s=FdTTX_gh1n3?z90hKBBkI};X)ocD@4F}!hmh#7nK9pF50cwh5g!3C&v zGO{?W1t?|vla~L!3b^%!aln7gYl=pre}HTLpkP@l?0=rqZk{B^g~uDJ(E zBp0CT|91s53I8Y2;y+(G0A6o2IXq`kVc{U~jyO3vK~e;q)@5d&otYr8yBjD)NZRna ziU)64g$zPn|78W7KnN`bQ49Df);sMA!0COdw1z0W%)qe3>tx4vZEhE?0Xu7F35+UmZSMi(Tw>V|2RcY1;?iK%kyYKL{=aG=*m4lV6L5aA3y$99 zN8jP;gX+ED5Q4wB6}W~$B92*GyK=8fx|vSEL;}JysYAg<9B1%P&=5J6!FTcv9UQ z9ZPu@AyD32WMC68UHzZj4%m8wNKl|hvRv5b{y{y`4Oc0oC1Ga3+6kb+1R$6Sx~N~^ zy&BL0uxg(n;ljTPn<WvoM9z`+CW(e65qh| z2e@uoJbX`|#kb)dw*~?+k?QH{MM~zq$Wu6n{y3)|{rFT?KY6myWUr+vh#MJD;|0+a z@L^^perQA`L;;by&}fSj3Nj_!5paX2p!Q&2o6N!+hUKbuS49yM`8B--PBI#PJ!Oh3 zglU;8+8VE1z!iLr(*yE}tGxhKSPKPj-_z0-+;m%v8ig%3=Dq;IZx*LsSdm-4Mz9^# z?jGQM&fq#{60+7A{@>*tduo#lvVzqP5L(5kS+_Wm{d^2(CEU8l3|P^?FxDfY|IcfSRSl;gXy@xCKS{XkUMkdS5^wA0N#gaE z6pg6>5F92*?l#wV3ezkc>`|!Vl5BDj`!EB)CFJObnV%07MtfzMa507a zZZG=pYF-oPP#?HdLRZM3Woc>}=lo;3ih`Fw&PzAo@Z`2v4E(pn^xBTF2E2@;PPGMA z!o?xN;zlbjfgwdYUjYHnUafn)y8e)|*OQ3RK8d1NZxV8snjJ}YX>P~=ll5FY0rki@ zQazTN*PKb(h4N7xf=fJtmyKqhiq|OHxfeVR-0Z3YdTA?=({%2*(1C`EKp6GpZw6ue zWU#7e$_De|>07Z^i=Do)F@(|zEb;@9r)iW-rpjp|Xyj1Jgvguloj5x%Y3hx@&Zp>! z&P!!>0gZ13@D7YhLDIDBS?5Vv!gc>iN&An~kE1-gmd}eza@Jd#s`m=x;}b3Nwc7Y0Q}cxqs{@@qvyIwY`(zf^StKY_sJv21Y~4G#Qm@Y;vIq zJ1BcjjsKH~;V-u>YymUK1BLfoLU8-WwDxd93H%HRTV4W_>;uJ{&}vMvaci4qj-LH% z3HTCv`<8BpJc$*V&F5dHdYJfy{{6wPplMDExnkTX5`+8o4ZhyLrTgrF**xs{~OZ`Ri*}=xG0w>i2 z2CV}3kj@Y|H|G3@$@6yZD&cZ<_J;oJ_3U&p*1oM$vo7Ts?D6+sxkP>m=UJ{EZES0M zazY(>G*m9@Id&NZs@dfY4RBoe`rpnFcIm$t{W#Fi5~+#)PNgw~I;}J)VxI%eo~BJA zd{%cg@Wc50JwNSxnet~m^sm||gEg`ww+zluS>}s5B#@Z#D@Iyc+QHG0s%Q(07(bzA z4}YXqN6Aftz2)^8ZXVC{!3&RJ>+c3P5QSO_@bP&o!MKWsJPPk%7;~YK*}$pa09XCF zK|M2^-K4{`DeOwR(zsy>J2ONjanQqkB)tCTfCi0w`Clf#=ubG<8ft2qLN96^D5o+X zA(4uqwsmlQ{-L=h`V;;x76l((hM>1$rP$GetttD)P}Yx{xWy?bPN z!4O&Uo5Y61&L2KF*z6L)(-xx&r=fEm1#_59K0opPPZ&Y=L<8sE&U!~2_PzwQ zYV9+NKDd+@x=^H<{qli(p#Rr|LDU0V3@$Rcj+BIo@El-wL9plVG&c0hUHHARVwNTIeKSBMG20-$?u3U zk#s+n-n`M}USGA)E`_GG<5pCkZ4@bsEU9QKnxNfVh1Ij(swaP|v=ma-p(-ePi)3PA z@}kgFbbOOlOo#sdthJ$mT%kmc@U~dYFcR#i%fIKWL%*3b!Sy>`NxiRwGxZU+s4BWD z`UTj+#Cc`za_(3}_T7IX4wu&JIFwk|uXrUz#Ff%Mr2lO-_b^wNt=MR2i=8N;8+-uU zky5}()jAWdLLZ3!haTc8SRZW){kZU7{jALb(t99Z{*o!jeO7-0p19?(WmLSBwN<+( z+oZVQ1be2RQp;Z8Wd!a1B+W|FKQ7E*XD1A|(8D*d=_TsVrwN@b)v(OX&ITnDR{89f zgq^DPdG;^t+CPwy%@|yHN0{V8i9O|jgEm*rDG=SXbL+g5&sWf8*CjZ1Hx~R_Iy5nn zGTu)vw9gU*^)`qEwP!Ig_;{jLFHb_t9o(qo(OSoUA+oT#IV!wKJDNH|6Ei6CdR9%l z;kjiewH-o}a`$l42pzlD(U^1Edx~L^D2hg zg8UmB{UEkwNgUSgt2@AW6OrP%?^O z?0;YPT$D#5wyRevl|s(t`H3DFydZU@qTn9-2>N8Rj(Ugn_r*%)eFV0MWw_#fwf8R@Xl%QGovx7Lb^SW!*F#ZCOIiyyjvXV-{|RH%_J9HOgOo5w z49$6&eyRbEkrQIH?%A^hA!j(cY!R$7*oUfC6dqq0lQ0lV6zAIaCnC+JcVIxZyO<2R zB&~&f>71QcN|m;{F;|zFAD=rS-bOnjUdwX9ir`kNp4?~BBii?5#Xi5@Q{XInlgbhT zIyKM%FpvW`^620Iy;^_5i6%(?wzgJ{6L*RtvTZIQ=(`-<&KLQLFIEcGh;bp5fm6Qjt$@Qjy^7??bC ziD)U90vFD=OYkgC@a2Ajz8*!Sd9933yeL^BXc%d3@)z{ZQUkViSy{AfpTq9;9dvv$ zSALvi)e}Bgx-2G%8M_sOmMnT*?jP0UI_3|8^X6=LCm;?&@JCWck+Nb)&T~ytEj7Vn7VwiYRv!w%Oelo^UF0NksIF%c_YWh1T`jQf z1-N8HMsf*+h%2m^$mAgjSOJ^^^81&_dAQ#zW(Qy1?`(5-aXI;xYmMR@(40{U+*c~% z#JKM%S;Mtcz}3kaamu~4-@ohQrS|JIh2#2rhxEzsOZ$(IL2&qeQnD16gQVJvBS2lE zq@lWc;^XvBw3n5!v9XVjq&-oK#yQ+FUn`(lmoRJ#(2;jG2QeDzC1N z>xOUv(jO2YccHs9x(aZir1xBdMD$(rz}!coqWl9k&pM)Ortm*7-Xx^3RgYz_?;jaN z9!QI#ruz&UXJDoW*7!!ZdO;z7o&n-N$KD6_J`O(|rr;hiKef%x%@xv%aN$jh{Zqkq zPL%v$N6zVbvNyhX5pJcgFf)%TTI;UKWW$Ki#qg*Zk=FyugR!fm57Sv6B&A_c@GCjv z9eW{zf`#}OuBlk`(y!gY&qa0Lfg0IR$#zyZ-E4yBR28EZmUq>hXPf>$N9jD}= z*jK^w8XUj=56w%o7w3-adqp+h0l^~hzV7=C9i67o!{$%Hd^t~^Y&CpuIiPozk6E)r zpvHQgB2R7P%co*_+Dv1`WygL@hfE@4pm$LMfoxd!uRh6no$D67$#RIfLC?ymQue=3?8> z{0+Z$oo*Kx?X&ji^jV+aYS=}@KM2r&UR}*eS=#(fxbr7A^49SOXsK@8xREX;exNxD zjmKCK$uSO%j^nN6{n@!W-;&{zMzJ}U4Y-ttH5CA)ZAni|){is0|K*CXt&UE-55xgI zlQh8tO#KJ{0itL`01Jx6ZIz^p`frdYVF&$vl06W!zXMnB|DT^>1^+qyUUZdR+d1Gu zmcTmr_1CL^T=o^jmv^Up4 z$L8(bM6*k#O#}z+jBYc1v0Cmx2?v?t{-Z#s^wh&op#rJ+EZ+~swO_R^Zwv(oJGmsN zk8A)BfC zaQpV`Mf839(h%&r*7~CnqH$ys!M*p-xsP|^h)V~NLPA1GI;_kunHmxk65y(VK-_9T zqjtKHr+dJLhMaA;|NL?T10m5ca!p5uf>mA| z;u(B8AjQwlZUs;|Z(KmE|H0rMO6~uQOS#TZzQ+K=G;sN-GYi^I3E3T>9_7`oAk@>> z_t*IIH4b#d9Ojv#%bp#q*dCK>AD)Y100z#_f5yWOQ*vt9EJfBut}=$-f$rdi(w~m( z4zSAgD7`DjODJWLmXmX1GD&Nw-GX;H5#Dx<_{p10tsCJggVCF!5`<({nJD?zL(3^-*x_9>9mC85Mb& z5>*1D@T%V;#WVE-Pho0b;s~a2jR95W##vt!@|&o18;0%`a-=g|r=*)LF?^PjmE|yw zy!-wmXAHMb7nm zYUwq&S{ifV1n_nKmVKIxDE>Uqaie4=!eoZ_QwRAM2ZWn5#jIWV+V}65X{dEIgrBZ) zQ|MYlk@<>H`S1MfQ$kvm67|eYlWW~t%;9=^BKzL%P*{ei<1Wt{F{!(t+}A=O4;JpD z^#x-@Mq+`sHtw_Mm6HhHJKHx^c}Hk*n`)lEx3{&-ylrJ=Wpfe&twZ=2B z`NNXek!i_Kh>uftHGk3WOUMigFY~ySEhi)p-&eYq_I{)? zi4+|>r{U>!F`5!ZjqkK%yQqaCU5!u#umAmzag=dPmpOgaO6JScTfGFFq9+r}H0MB* zsmO(*Fzz=1h%dw=Oq`TGkik>aJol9G#!OrSRMzRZngYxUU)k`J(F7F|g%aG_akF82 zIIHe%xaOGYcyG8ye^;kyCQ9sYf9YWv$-Sezt@i{9ck27xuht1}yMIx>+fTWlXy;1u zW9QU6-81ptIQNc`!}W4qh$pndJ~QqB^d**;^+1CfApKrf3KPA^j@7@ zuagl$N>=G&w?(;6#dJCugGwbYV~-}~Esp?rr~LU;8KoM5Lr!ikkD}|CqPTrpt4YD; z#GeU~8pA^nz-LILFtyJECIItRFd ztn~E$tcd$#MJQ4lzp1?^c$>qNm7K0N05lvmmP4JJQI-j&_{sH~k{oPd-db#V>o!@2 z*aK25F_N>1X_V9I7RBuVgx?bTL6ID>1KpHT*HP1=>t`1M;=xS zwOl(xTf+5YS-N{<1aT?Di^&pWJDk|A8_}lRq)a&)?OrX?G9;uDxK51{mK)s{Ar{V3 z2{zWhF9$zWJaw#2!{MQPKX{cgHeE+-#FR4c5_)N9NPW$r&*hg5`V!YiY)^>-8-$(! zw{7;?9d4q!%0cY-cnLOnFHQ`8I^~m<(Y$jiy%rNaB5a!=fTd&bJNPa3=4_=+m9^Qf zslHG84ycQ+f}r{>*F{nfiQ7HypXJ z>hZnj-$S@w^kmYxfJRxsWDyg&pKNo*ped$Ib5!%XK-4Kcld+6jRGOulek1l=aXlS73xT?`!DybTA3uSfJ>SG zz|@b>fB=I+Lw~wru98%3Ow_k;)?t36c0=|((;hl#uQF_&;OQbz?V{}AYtBwg$=;=MbL zvvr=UK}b6&JAyOP#u>;DUDT8E44xnFh%~A*-VziLf1bsiN0C_Rj557lc}qN&-Gk`J z)!C-dor-39`~cf7?HBj0%b3WD0}+WMss}_bCTQ+vYn*Fie2e^rnc49xL*cq%k-a~W zISyeJL@%vojCjzk`fY3GFI}XP91x=7$3VkJAAP;P*w***E$wr`%9plpk%m`1`GzGP ztI?SlQrzdxOGO%DJB-iVGBe8gVy&ui@~%4HwWvC-bw?>_!0*zrsQ9x=;;1rd2@XHU zJcHzjk3aM1M2nR+xWu1pAG9&dE8{1G4QAm)m+DCrRVGCs5%0nugJ^#2j`c}dPuqlb(oge5F-mc~pm0yjd%dz+Y;ywifA~8MQp`s9 zqg3}$Z|t4x2b(0qJ`3ru_7SixgK@@*lViuK=r6GgO$0QhfN$l&_&}&4cY7e>l#+vkf-d-Q_O4wo5TFz+vPl;h+UI%;xi?os z|01E@gd}RnTFWacS^^ZanU7aauKn3F-GM~TW&0t>{uOTrrl-Fi_~7(Gi0BeB;&4km zh3fJZFl;Ng`r!z4n`W~72*n#rP+&=qd%$2A8U*bLya8`2JPe3K%ptem=BO~twYUg2 zV!uDs{ukp@jEp8Bp?cU$ya-Ve6IIOm774K;;cJ}P@Pzu1P;yeB=gewqY9J%K32%00 zrVb_yd7%ufKcv(1PrHY1?f0u0X354yw5q#O@~X@Dtc}jko3BfW7i~k>DG-)Y2lr&8 z>qMMvdI5$|1zucb_F{xnAv7Ee`^%EX#4;6r4xDQ+6*3k5p1BdbZgKJZd=dWteN#IR z8}}N?3ohk(H#v{9*V71#iN%&e+8VxVKaF_N2X_E~&Y;oAx!|Q6G_aj`{^E9UUDVL$+{nYgmSnnwYXH z!LIc^Rc$W!9(VL1%_|aHp+Ss%^7hRe5IVRO`LB>4ZO(3iRO$J@GesA*_Qa9_$PjYkdMX|N=E)OQ)kj?h1c7wmdR47&|aM`Ld< zJ3FvQAK+tbZEo`G7sS=JL$;mBExv`9FBLr^xe*JUz5)v40B=6MR9>ohIvhLrkVkGf zYUeBO=msE7J1c2iYH_4ms;|=yU{&nO3#qca``X3F%gg!lg)l}eAU<9ZaJ_es)Sl*J zt3KfEU~Aa$t#hDvzK@8yLS8t+nP}OyO7NM^w#`kE(7!{lS1&jY_y%)9eMlgr2xI+C zl^?@;UY;1ok$?mssrmP<3LVx9o717ZtqTt|saiXZ0_a+A-Sw3R%|C3O!IH_o$L3#( z?*ne>16k}lJ@l|>lVKrsbHR+4sp))Z_auoz46q5DItg!$d%55)vJaS`uEH4Z3z{&B z$8GDCc)&g+={;P?6$)9?^50f_`{$XAi;GKN86lcn{pU~FcbCK*A%8*dx7yjs2sI4J zWRVODAjoqBnEYEBig!;|p#8kCAQdqh4ZsV$cV_~z z`i={>nPbxe+0#7Ahk_RPH80pblwi@8-SoYJ@&{KIo|9Y~tmor9e&N9s!LL5^F0x~9 zD+TUg^`Eq{y!b=YrqOYF4qbeMihD5s1C5K%DG#!4V4Ja9mczPP+%j!aN`v>xGk3O8 zVKv)e14mtj&~F}mX{uY8{S$|sOaB3GZ{&(be}R0BRJn2L#KK&1H|G&AiH zueU`n)CK%MWBASR;ds!z-)wHvCnM_u+-{sVSixZ3jivM97U_KQNsI!Em&1E~R-Z~2 zHW3hOB)b+z7(M`|c2Vlo%PuZ2KflX~DzUMvaUW_wsVdsaH$@Ea2qe;Ic0+tx45*g)f6E;Pgpeo&t>BI8%^*$jkqTI?tk& zTx3)RpIPIR5S|+xOC>lq>qa~hxhS?TLUFuM+&6{%15QgYj(dXQ*);oZ&Z&0dU0vj6 zbpZEFzPoDcY}GIf3J@f3s^R(k13Jplcwrdc^*ogk!nUty0OXA_uahRoi9Y%%Bq+#f z$ueqGuu``3?3wUEe8G$Bnb(u`zb=LTyLrP%B_Ds;RnljoM0$95SX$zCaoNgf>7_3E z`mlzHSN`Tz3W9h#qiLRccZS+6uqCwOQ&X!H%4xbXxm~^+OGgH^8JiVdrhfPNQOe3m z?V<~FYkF?3)-ex(T^AeCurBp{^eblTH&N^nXi~SKkP#&gbDRqhs-M6C@zk>k#^Yc& zF$5)H-VZ%|7dMrX^_x;oNQelhzql*pPgm*2uy`fM(aHyP->|Uvnqm8#jA&e|GDI*j zy5SS*A+XC|N}cJ<@`NkBl-=pSm7iuFN6H!V;+= zWPJ*iXXY{-Y_;#0Ophj65lsA6li1T8D5sgr^Ak@3+5R?qEXY2t6ID;tUXQi-@O||c z&|HFe^Eu;MEL<$-D)W8oQJrr=ML1OahW>4w@I?9hPlQR)8sog`j3zf@;^X7Z2WU|S zZ8{OM;(rJ!$i6;s<+){!>oG2CJ+^UoqGtFmItCM$AQX_7YJCn5Q6?*1cT(zi$*|hr z*j~lhDav?MHR0~TiB?KJcQLMXYFg{HH#1J(L@5hX`tJ?L${&6X``vPQnx<}%sdnB< z7`+*1xNW9;k5XBBj1;TF<5P1*YirgkKdDpX)u%k43jX4=q*J(Vl(v@HVZYms&@3|G z?qBrdl2nns%KNb7@$_^x!#%k*W@FqM6xljUT;Bn=F`m=Te990dk9nIyTRNJ_+TY&0 z`YGj8)4jii$rb=Gx=4G$Ns{E(z} zTap78Csf>0VoT3nV$qZUE;t@O45aZ?VrYdrsKYk>X=Ud&cxnFIlSUU z1=>1ouM33aL6z%xLxs`%O1k{GWD%Yw4Ub@D_~5g5{hc5Avp933?>7Yn;=h?-*Y%oa zmAz5n;C2ra`I4`YoM=jfv@1B~3d!O8eJS#y4M`n#==c{qS&csr;x_bY*_0p~@ETzEVcBsUMrZ6TWLHQ{|9Uopnt79}xIQ zUh48l@i4W7Dx(4;TMWlslI@kUJ66OUH-qL~^C&DLONMeJ!qm_N3(E@|RG@=!`6!8^ z;E8x>znC!#^EbEvl=y-bg0hOYEn(~%8h`t?CDm96n*ygs5S!}|OIJThPb4ST9rNCl zuX(^!ZVX8nR?lUjgxi8Xo-gp<2>B3>zPiv12QBr$P@nSp8%Kokh62|kbBHGp_fPAp z_Jf0cCl*CJ5yp>oklP{rqE!SClfXE}U79U5H7S?V$!d7@=A9GE z7*a4+RnM=t~<(r;NMiY4aufsu0R{m zpiSj`G(%-28gy~7OPbT_lGaTMZ%`&je!_2&?eFZB50qu73eBkAm^c^5j^2)#x&qkf zRjF6$XaXMUyiE&Ta+ukcDPXt7Nqb;mZTEW?Mzi5+DoE1=eA}23u~k7CJhrb%ojeuU z?_?vA@kwmZ7n?e1*3uf zLk{hh5IOxX%;$XvAKoyKX{t}qG{2wlr#Q>DCYA2t{lc5>VsSPc?D+f~o;~7(N!mxV z(FqeWJOzY=28GYkB~9W)O=O;(&MRw%D+hN9j8YASPg{sa-9?B9_Sa)eYAe>tDJ7^2 zd{~KisdaJNq4s~ zaT}ktSGD1wE0&P1!xYnsnp8`!#{fCY{WP)m%% zJipf+^PPZdo}h{_O#CXp;conu)A-dR=i~g*-*>bTMK>sP=}-k8IIcBKK`FXMo?cwx zymRgYebTKCnfei$eCrL0k3Zig9Q!|4r-Uv`hcD>lA2o_K&?UG9 z@TZ5pp8vgDPl6&UV*j=1v*}FupWCYYBP|65MJh$&y14bjhlg<8f@RwG+nem29zsep z>qi=;aIx-X`;gdNy<=|P^*2|JE8IjQ1T(vH8wN*luy@u zbSB|s{0Set0@E~++MMDoB9F@-`YKb@TfWg%3F@P>|1UT5Uw#E_@R2wCVIVD-Ai#Yd zWB-yU2?IyxUmH)S3!HMHT>=Ps_QaS@~CoZqva zGu~U}1x=C%NE#p;0&1GE@o|o8{#VrZ&QE<;NMW>OEI~gKS_y^%73pK;YZ4snspPx^ zFF~ig2WJd~oADN9WKa(fkTIA4YJ*<+)$h&A?UA4orM7~mRI(iuC^tJ#9u4W-xKU=g zHY9Tn1F}GmUGcdUNDyUDxLXNvB7J&b_|W-(5?6VnE)3s)S)fIR+6rX6yDrf1rlNOu zcVGB+qvc?-z36DvITeoWD3_R+fq>jS2%4McVw~k|hj~qDbbFWi+XlyZm_;vUZyMTr zc!;#!8RhXM#+@`I(V-W!N)oQla_*%>`GW2h!8%XKJb!oykx4Y!BEv#WkUkA`MgbzY z>(2o{?wO4JWg|1Q8nHPXdz}UE11*PmkD%g}h&t7MqSs#^&lhU?BCayx2q2#`sehQk z%W=-?hk2Xo1Q+A&D>?c2qIVxcQv!2))~RS;z4$Jk1Io)YP0{*3z}yeAV?PWMfq1Hw z=qw-%%ECZi^dgB zb?tFZedwfk(ZB`9fjclnH{3=%e}+%|Oywiqr09MyaBOSh4x^Mmr;;b|m6D=(1@=2J zA1gseIyXB@MPtMzyBW>W6@2E;+CMWh1B1<6tk5H<8Lcl9B6PWHQJ|%5{(`hfI`^v? z2UFFio=W2_FD#LVkf&FFQWD@@k~-n_t<4eNqyG3`l)Hrn#&~f+xWr(lLF~<_ZZgT; z$#r!@dA4}vhoo<2zpQ(eKhvvP@myci(4Dz@0P3KJCaREgR{8$X#uQ(JK>kBKcmp7$ zDE@7g;^pxu`aX(OC-I}DdreqxTlOt&y=?4!v!lNeWA~g|>vs}zP zDXpYxwA#TUI+^3)S5s-!c6K&evs3F+3*UG_s3w1#(>aJFV_Kv} zCgAjjW9J!IOk9<3bE?hf>ir<-vMdw5!E5P0f+el&(=8zUsR8s-LXtQ|t$L0JbvH1H z+*x$VadtJ)-IvG)Mhk5`Ca#;5Zx$O=?zQr`kv{5b<dHKJ zy)sS=eA3^JY+`~mHSsgWUMo;RsyvqO*Kd7%o2KYFREcTnw;W4NlXxdvY{|8JWA(sr z+uk{++7xZfYJQ4_!_x*sOUtAM=T%UzgXA7-wCR^6ER!|21vgRyOGOF}#iryq)Q`7S=t#0<@y>h&xM)rF)f za5hZ-KB!)LXD*2G@N0xH@99O_n?<&pk%zqe;SGUnNu;J$d;P{z_sS?}Vi9_rH1ZC` z?w{z^lTw!6kux~l&=BW~lIk?O|H7dxzD*&~5fMeZUoW{(IGI~)x~Y0>Qzz7WG(8YC z`Ka|qVpiXd$-~BMkP%w?CU#Af{g7rYdyS+D&ugF57}G_nIY{=~2we_h)6*nydg!PpX$8^$^B7F*Hk*RnQK7*z<2yQ7a~%PhZS<_sQ0z;M|rCKjm`_t&}jA97|f7 zu?v+ZQ#fy(+!oo4=?81A`!lL~(rU8~xI=FAt$3>pOh5jX`Y|%o8f}=nd})4Q^I8%= zoLcBEMHIHLVg5bl@pJayB`MVS0UTo+Id;83zyvYihn@gj)ndTa=mi-#$1v9S}CQYKUP<1R8p^3La#Ay2x`&rW7My!7~ z$04#c8Ih-Myek;8F^>Rk!dJQ=y1MyJOW7pW1*H|X z)vq_EVjB`Dp+plmn`G9F+Sm5+oYZ*cV@S8vSd^jX3E;@ zUxh2wNwBmb8-vT&`7ch3WO9F$V>hixIfgr6nf>Y|d#q24QM6odWj_D-TXin7FEOI$ zxmeF5{#57IgR3-SV^PnH()kv$8`d@{_w8tMbF9{+w8Vh+hBe zS7#>)KH5=faxR(vw#S9(ICSlcYO!-#|K<~K7z%M;=W9J&p+Brpm@z#nDazm!*mvSi z6LHJM;T>Hhc%5r}y?^ijkoHwkQMT>BN_Tg6Nh2u?-CZgrDWxFYAl*s|Lr8;wfV3de zC^eD_2$JFm0)l|(DC)lW*7x6gpX{T3_O9j25@(+0zOU<-)_+l}9pF4lrsSZGkHKabv&Lg%P#TU%HQr0ZR5hi%{;sWjHM5hzN2*FS#QL8*-I^xL@csA)tdZ<{4>>PRqOQD^gE9yX4z8kN4uQq+i^^y|J= z^sX=V# z#S5_&h{&`TG7LrIcCX!=%CPt={+#cANU`<&15_TyrSeroYbQb6Bh%zYBZuS%cN!jr zSQxKiC1G5yI_ep)DQGjeI@FHcM#zyzO8$O(?p)zZ^v${bP33Kb_2*bfCP{9= zS}r0!&!@I?Mvdw$O(z~Pp?`c=hWSnmW}i-8mHWh$=+FFD1a;VQT~f=3YVsYz%k?V9 zk?6gE$%t)rW{Kw00VexC^e`j#g5;?<@NH~omGA6j5=$jUr@E|#HbHK<;+JRwjHKQqo zq%?~^VW4(MhzRU5w-w zk!<^g5t4gWLsu-c4>xNGjgxhy#qoC;m1Ee{b{n+8t8PucQwU#}){auA}~DgK zce)ZawB*|#x~dsCWsZ2GYWgiwF-dBCeV7Ls)f7Y(zqYk1{T~>)H_m7m$>4c8{&C?R37vAu_u5jqna_(q>!h)M~b+tR7%%uy}41V`##dSe5_z02~&%Z zrrP5sk4!{(P~)K^IhVVd@8!5rul8u_!o@HsccPbwjwS~w_Cvvd= z5xRdZRuHT2+Q_9CD|Y=RGwt}u<@YWBd+7`b3DKaOb?jRZPMv$=v}uA5I-jYDiMe^7 zh|LclJ^&vg{|cOl8+mJwH}>5MPDt$dFKLHAu)>aRGnNa68S<&|PiRKhk5Hl{Lgi+< z2jK^2oRxp7IXyZ$`iTSzY`$_0xCTinDVrsdeVBz|AH2vl08LyJbfCZ>TwKhubOoYD z1^~LeVPOHuUbs$sE6)#MXe4ZLp+i2|hAw&yfV_x^z`fl8tRGkiKJ)}<*h_*1DT6H^ zOllBDY;`YDaryuFOAt5ffq{V}Y#>33Bc6J7Vv_0MHT;`>$2>mOMILy)cuhZR+-pgA~8S(|U?)>(ht*@^? z`cfw0PTn-fKLiGwInVjP2fvF55Y zvdF&`-18ugHE2^+?YvwECLMJvV1ala1sz$pyHkeNJb7YH5zBc|Lk0`7fwkX9y2X%i z(G#Wne{Job?|uAhfF0?Q{Iou{-9c3R4t4j;T8M>LcZ^;A{^sT;@OPs-L$P4kV~v`7 z;ZQ8{n#Y?Fn~hymP%wpZ(j9EF%2(y#QT3ri-`;%I|2Nfm0p13uHtJ~;YynbzoEzVP z+y^FmNseR$ym~(D2i7_Ugq(Vl?)+pdijdxQJSa|CYZG*M%|O>ZC0*NwQXfss6iiFV zME)D9wIrpA-oCX^Sb|zl2u#4O#6fqnSLuuq`)|omvlfR3KOyN-B_9WThZ&`naJGQJ z7Ddv|R_{6(bWco9?ncdw1ARs@&^PU>a9dV9M~8y*?i0(oe!k5w5l-Ybij3^#nca$fr>0+?MOV-yOiv;{rNg1o%A-pwet#XI<}Cj^lTlkp_a zCU5thpGQ~{J<($>!{Jj;O$=!_ZeMMnE$MmRwI_OxL#cN6-2y(>%im|PM4$UdN-4WWml5@RJ!;*Sx3KuG;aKUZ0X;Ke}NmzZgMsa*-@ZB-eb zw|A6RTgL?{D>~TSaJ6`p$GrpP99mOfWR$(q`>W6pT-8s(Tt*a-dcNvo| z=+fq(#DIIPtJ%U(Y)n@lJ#)(;C?@vNqqZn^1{_y)>BlS@o$L`$1i%GB`rqHIRGYx( zR!~sqzxw&%%E zLB0sKA)GUFmush0Sq7xdwkPP#*MzgbDzA!GKAtv0m9oFwm;?M2oN18fw*nl=FKK+PI!n0 z@vI9%u^;RdJBlwsH1iiYZ@@a)z&+tbxJ6^Ts*1-CYN$q`41tj6DO_jo zE8X*jt+F#SXCT=Cc?jmc54>(HqsPa7;fD2KcmHv)vUpp&_QJjdQ6{m_x_jZ!zHFWa z>PAp}U)Y1%X$%pdU1GyNemiamPV6lwa7PCQ2Fm&K6aWSYmx6ArA7CHRR@(JoF&Z$4 z=ZJV>^jJJ!gM*XydA5U!DOn7?sI7_`mr10><42DYNOFIIhy+RArY2%R&l)snXR%0G zV9c8Smm)OQI4CFx5;_VaMo(mS7;1B)UNs0rOveO;z(pYNCI7{9Y-U z9g$LusNtSZnteRHEJ%P$e?{E!Q{&3PPsC+xGYyr4%bcfTJR;_OZy3PGr@sMZnf(rN zUigHRQ^-;Y=R|#;cpJ3yk@M++gvW>M@4IWg*GBkC$q(_#GYrIkG-Gi>(PZ3v2Hxwu&){X*E0BT|JsY3;AI44(9F^i0EA84MD!4VkLkipt9N zHizo3UH+~HuS@9i`+I#ceB~<&s`AA0fKu%Bm!Ub!l%&)r^Tx`9bqrb2?*O z1zUU_o`V#va*G^1r#y;)o240yaeLG%en_Kq!Pi;cScbaKD(@9v3pR>%{Pta^xF0lE zysZK!fBm(MGS&Kvs@oR*gB;C}+nX=+(Mh((J$?dZAIE6Ns1rLA~5IyOxHm^nd z$H>2k+07N1y^W|JerawKmaS|hNa!y|^NB5dcMGhf%Y2DVQy|ciXLVpYB?0zKeh_hqgETR}s5rpETIFXxQoRE zf^~>wFi4;gyevFCZeJ_Bgc6)nP2(^De$-s10t@Ehc1{Y{xK0KYY6<9){_U{skT%X4 zoQk^g5U3L8M%GewS^@pco8+@@GgQH|*{K6&&Rv37og5TR zyjXh9VXDuZzp6d^nD4_?>GA@fn(r5(R0dErWtM)GLi<#@7M9sZfe=A58x|Mu2<0RZqzr5Al&2;KB;WH3igA?H)D+-Tc zAMU6%b{MrujL@q~POoKL2~MEJt2eA8h<-#xJY7PIM4q?YZ7;Nj?8$3tzeuLn@>-U4DvO(ac#g@4DCROW@T=o;4G=t{rBzFnS3Z%BXUL9R< z|1w!WZ^|C~KFi9Bmy0;#VN!{Z3u(H1oZRB)=XWYXSc7vfBSrjrU0GRlU9{Qw5Z>!v z?)$CPT2&Qa1>(oW@CamLmztYRZa5fRN>505rO)kEaT%S_u-#>nSK{eZWx`RoDYnM; z%@lXjpyHE&`gAf+Vi`>X$*bL+;$YAfi-}K>_R-vxxU(SKE3VGj-cd^yTIK(Xq!EvF z#u9n2{7Qp(FYZ)jO5i1)6RH~F5gJ{A`-`93l9Vr+cGevXQ7uf?s3&T>)2MNizP@QE zw690BdaepX%IXic=(C!S%`8uHJI_m7KBGLUeKuTO)SbUm) zH~g%l{We0Dy2y5)t$-ydV|H+dkMK`t_p^3I#Whxl3#c6q#8)ObO%`PNRUYFJzK2gN zapCcw8kTcX;pBOF87)z(M&5h7hg00U7YM|Bg6nZY%_U)2&t(0Z0h_`q5OVBm89IBK zLx&_s#L))GW@E%>ObUycKOkHx355UJ6lCz2NWNimLdacO%Wm6|WT$4DsCX!D@94<+ zinCvjKeNA(Xd_r=JVK+#OQkw9vzvYs)q=b>ly86zsL9q#kB^Z2py%g6$CaP!9epXx z^ocf~*|XbyCVn)`1uO-QwnesTl7cA{!-V7+eBUG_*||3x?FV~rIGF6~YiICXY>r*9 z3T+t7i-zfuP>&VR^$c(!ts}Q%cgfSgJ*p(P-#S;dTbjQx>yP?wU%K`sBxyj=n@|kN!El&9vIG)A z(WObOnc{nk{P^Qv5R^0YLx|u^3DSNf2&;&G{*dX`d-65c2$8u1R+G#xKp=N^4Y=#- zo?6fu)^pLQ9-OMuxujGS+8n5N`HjgKJDCs*E}|jA>GKZde7*f$fe|*|1f6VS*L^c0u}*sKXnO=O(FhN8{IgZl`fu zp93SE2K|3#%jqNx><|bgjU5*;F(Kue z4q2LAONaX$ar&nA_W!_w45DjUt`4j_3k?{Pj0C0s?a=dHdnpe$jF0TcF5x%GDvXI?0gNm2#A{T+N6Psfh@ieL63BP-+H_GqJ5|t4Hw&mAiQr#83g0L zzTYm&xL$P@4POLUec!`}j@?mqkPW`BvG4M6gb{KZV&u-Cym=Za@e#t(sY#*3ncOCw zQ7VxKPIW^gql-y6FCO3Z&!yX0*wrJWqjxxQIN>Sz&~fL+ty^r0u*U>~ej3Is4u*5R zzrfIdrS%Y;iQwOhSJzV0t2&*Sn1DT$kCzvUu5{LOi3vFRv_rluLB81WMf9}p*!d{? z{SnSeGYczX3h=;Hg~3)nCAkikE~qpUbCC-@=8-gbtndgl9E#-%7M>U3Qgp&9gs_v1 zh;2IoegJtuF#m~Pq11^rqIx4E5%gZ`?*CD}CcUA>R|x^IX36&_HghCEHgIjI@GJ+X z_AKoHVl(UlK$E}!Kx+=677HJ7I(4_-C%vB^VMjQ|I9y-417h)JzM6jcKqxZuwuUaG z)IiYo&EX|t+Ux0ckB*{#ZYB*xG!gEqF=Ud`Ffb^a{r1Iq{h6C@1V9EJbX-ibZs7Gs zYs~|ww9=scP)!CzZ)|%mvn?;0n-;^NJfh2zkHKnNk?t0eZAP#!XHGw<{;@+;S2hjL zZH^=?sX; zegSH;p}(nk@S*#p^Zoh-&U3{0HsPaF{=!hih2N0OcL)f77=j5-RLMuS6~s~ave5NL z%dRsS=|C*UEsg>uzRV8~PSkU_o^2Hxf5g6PKcJT6;o%vuq`=z*`9h2ihtPqaE`hB+ zsLSDDeK#=#>Th#FJrdLvB`>q;if`B8%@IEFND@ch0~>mbl{ADUIljCJ@~Mky6eB4q zsRo%s4d*+lyI70yP+(6h;ay~SbBsmy1h}a+2zppleU^p%^+bft&O}o8$ z+K_yUkmus;v$b-us_i-tbw0Efy&Ty3nHD70^yB}6AJafo3*OM1-uMRokf7j0f`4>7 zG_<>kGd=i&`@deS3{qvPt$3z#$DT8czgBudMhX@irb07~D?`(TNV8I0+fj0)c=#YN z$bXD(rcjQ~z;;Nr@e*}SP^k=U%Go$YSQ{JG3BPOnvp1V;o8fONBeP%90u}(>53aD5 zx*L_i^iop}D>P(*t&N$h3O8RecwE5Vv)=KF;mg_P3_-C%U}}whZ zm-(okzxjr}IpaRCy1A*&S%|t}Z-1|U;3b3;oJn|+`V={x7uFk=&2Q*~AtC-=#A`Um zRWDTPNY`^~uT`hZD;E;&MMirTe~0IfNl;I1v%vwfD|X=CW7Qk8we)j9iwxy9a28F_ zBq%`hel60&Vfer~;_~u5SOX3|xwA@XD>D8j{#m3F#0i$)T&Vd5?5!70#AB$?&YhC%T@u-?Og`+_yI{ z?3F)Ly|4b_Q`6(nu4?TlQ6p8oNuD*=Em0P;4eB;^CFyrj_f$_F5p~=>a`o;k?b78+ zBVKE0IJS6xBiZIfQ88lR?ncLZoR{tG?Eta@l3<2A^sySi00CFDJJ z6A+_QyUZ#*SVY)Z9K=?W*hWb+XL~%;9Hy<2gHc4V13u629Mx)WZqBHj!*A?rA$82C z)?XCIG!g+7*9sCwb&!767Ia`eb_@_R#b?;@bV8uKj4N{*?AC#u*xYpLiL|gtp2P0~ zGN2qHZASp4s(6_QyAxVWrbyJd;P->{nmgc|u?AQa>?L4RoZM#OrwVmR09(BQO9OeH zMNgrrfEIqsMY5onW)3;tm^U{>9XW3C@bf#{Q&2IsKj6nBKAV8@$o2kyr&!3_;d}?! zKmn<{a&W{JKn;=FL0cm!CPKQn&rAd(i_<-x*4KlbTgTOvZ*~T$sC@nw949Ut*6g96 z6;CxQfm#Ma6cy`Sg+P0JHgMQ6=K@x@DYJ`;VAEWH0EKMATh|N)m5c7sOi4#bLFSBJ z`2r7*`kZxsT5(EToElE9Zf~Y11lpcgo6cY$!L!EbaVi@X6%_@Wm;Uop3N-P`oSTN{Pm-!HyTMovMFLo zsZMsoulNiWM`>n{jEo5Rmwk)!e_Qbt4{b$pJu!@v-%NEFshM6D!E zr}jXpo1;1`+4F(xFW^h2SS*P-PsRW}6%-OulUe+%e(x=AXWYw_3`Gs|2oTf>SQ%>* zR>?8&uCRPB<2JVAJLSJqqg9`hCIl^z=fLDAn^j$-M6!KD-iA#;Si_UfTl++o^owWd& zU&_6#_ufgCu2EAKM5&duTkMR>(B|(Y76T2YLXusE6R#R|%sCCgRL6Io*#Dxl)6h3w zK=1l++ARk`4T)}eCYPQ`4+VQu1<|RJRw`S&P+?Sx{A_W2J&BiG2lw`@_ zCY9*N@wkM77=OD9t`i+<5lgVshB`frRXg}ftf`rp)AdP`JwkoTeV9#>kPn}D;N0Fkl&m&)$=&GFh_70dE;%;TK=O1AGd$; z%En-+`z5<6ADeXH3IA$&hCPcne0^~?7T}$QSZ}=_w^3uNgDz5ePU=xUBzccp;^DM) z&{FhTZolh4z{WijwTV?H{{HzBAvHwe6CH`ydnQ@S0?FYefS9Am{cF*Xt;#rj&*grZI$->P}_7nx~?0}Z1Is}_ZS_fqk0 z+|tOR$MAMsWDEHZ11u6LG8%RRmmtU)@`aFtvUT` zD8Y|1rKvVF`atJPt*3PTvz{17T<_VNsA;6B*HW`;YgXpZJE+i7gS3|DxBR6zcrp9{pq?q>fnAm%@Qkq$p zstFnU@*Ki~d4pfe3HGPaogUH(m$Hqo9uiwbKIU%-DnFd%+C>v8?vw4}Jf1+deKle0_ z0zY*Ke&P=@tfZu*<(9#QTd>f5<$jMYYg&8wJR2tBdy(%zA-GM(_`=X8ocPat)b&4( z7ax~b*&!q>zz_d`oDlZUX#rJpowd|&*hDv1(BXezK-%BmhdCh9d=ar@qiW$8?C8ad zlyIlLG09=$u@tqwBw1rn;1rB=SE)Ud*bBtf0T9S>rvHO)Gs^biyR@%0abCatBKuWg znB}mvd2k3>dk0D4jrbGq`y#_3e&^59l4f9F2jcK9*&N<*qqJRa6B)TkkkOJiFVxju zgtw7-;k|ve`j+(ZQro6=3M>tyA%Z^s7bh;;NY`)pN6}QQf-)T(eBy5k_noa6LYSUw zINbEKVv7rfQ4AJ>Qul`w_o=F+1>?y}A5vEdv7Q4cUWoF#2tbYhL~Vgp6P41`uk2 z3>sKj`27@NYj=P9v_0ucCuJUqUU$t$G&_0xlC@G z|1VtKnP*7AR+GIi4&@nWx;A4`dIY~7SA1RH(jAAs8$B>LA%k{djq3t zlpT{d zEaj2_-R13k_wdV+#l^X~@kR|rw=69+R|K&LgBdtPQmZ+Wb-TxOojC~?aXb}s z6z{x-*?p=bnAgzyhD^}5lA4fOD4Fe*bRj2&C5v>~EAV8dV%2rD*Q0hX1qi9t5-$?O zz1~T3LcBCfjIKe-wd!c5)IKhpt3K#5c?C-|gY*0>3v8gZhrt;?QaTZ4$(N%tynZ|e zlAJqfTr4h!c!%g??J8gQtAW=B4!Gi1msm+yBnU@X9Jm=)%B|WaBN(n3r~vri`8ry% zg|Z6fX+rK&WcnuTi#dcJ8N=%}onx$0a7i70GMoX@_EuEH7!@V4^bq#=6*nuGK5UJP zWJs-H8qa57!c}7)$(QFwkWT;&bm&e_X@|x235{fX#>W1W?L3Tlelra%ME4>TRQ+5kXFyz4Ni^B< zHsOfhm0PxflX51`8ynUf0yVlsqL(8T(M^)>uG*0(d#lfPURmI&Fhr@>6$ zu-~*p+P_l+CskniSB;w4?$;6K6olPP4GmRtHDp&S>_%NpZ{DnR<8%=~#~tV-D2lTO z?|QUjS$X8(9P7$zyWQzw%r+5deD-Hx29Grw&5f^6Qo$)A{V5nA;vgIS9yJ!%iWLeY z*~B4JTt>6_vomwDFP{T0Eptgp<#aO}4X1 z*xa;6?+#tV)5^Yi@K>4^aan^C>&A#MZ8(pcH!K}Q^s?e(5?zJ6&IB6PGVHWqMn9&f zj#lDgI-3f^PJN9W4dSTpG|_(AsiuYh2oLi5fNU# z`*xyr1CK4RQoI9}3!B{IV7IBmz4fr#r8VKVNARi2^x%XII_^t5H%T^iZTy5@bgBC< zr#2gtWQ>Ea=+3>E*=Wdix>;GFt8;&$dx6OGu!C?Hb9&#)eHY`R0B_ttUWRj2JA^*re&9QBvDalUr3io_dl0A=U*pLcE zp(`%B&3!MUc)Zl&7_&AJv80{62`YypTd1Cm!%Z-;@>IQgJh(lGZ##S?gUSBu)=-6) ze1iM*cg#@;0cXl>glF%)bp+Q(VyByRtcgh17hXXIkJQyy36m(Z;tS{Kd>TjYJOp8$ zUYRXYOkAWwq+{&zuwj~WejUyCSMzYA2|TKh0&Y~rRcNOaWncK%=#dmEA6(w3cCu_x zkbw1NrtKFtspC4==5!K81BS%o;FG2+;`U_{`;4ELus-3j zyD&Q-P8*j&l~;-kjxk1sBO+LP%eaQunUuFSVtK+ic~pu=axGLVNp1$YcT`nr+(X2^ zelCV|l^iWp;SZZms*EFi-9IRt-OZ3tzd1s|*z$<>OijM)5aYlq%%r)KXG6jB1V0=8 z$AkHBgsv#3Y4YzO19}Fzo?GVONflRdxMhjv5O_-nZ$Yy9;W<_DtV2w5|4!=rl*a-y zo=e*GTGEtS!5-X&8L_8pSrl9j`Q6QjNj%~uqV?)AK~l|6@wPKaEUZrOBy1gSU0wbW z5%X=bTgyYImcFI4#zoD_x~a02Kvf9MMG#$qF6wo3L0T%k*{-A%P%WV|~Rhki@Okk)_H`!12m zwEwG(*_CvWE>*hXp`{NpL#d9$nku7jPfa_Xx*t^sC1}U2< zu9vLz*{LKQKN@O~>@5G;?-``l`7gFa^iP8qx2qJ_D2-9*>dl!mEUJpY*4EawUzYsn zwO@l0m!#NiJ-hI~?Vs|dMjHb9Nz@&+%uF42VPyVqn#X@k&Hu0eMo^){zilP-nE=EN z0f$~n*DCt@5X#E;AxPj?_5lQhK%Vf0v}5!RE^rU`7H>!sJ~sMX!CLg7dnOg_<9_9$ zPd8Yihg5NQf5!3K1;M_&?BmW2xuJdTvlW%-jprA_9f-*~Snl{`t8*{?v^OznR2%m{ zUPbMp2uLPd$e#xgECwTY0CV1^jtHFfP!bHf80X7KVDMuMg*tRRv0#vX#W`gmHXknN>xg;%z^Jy8W4c$D=BeT`#Ao9Q{ z1e}vxS+mA)Xi8l|l31(Z`BhE?jbA2Xp(U5Fe<5Ff3#BdH;c4>x=(Z`DHLpvPYVCK^ zhK0=XJP_m@uJ^OoRNYd@E*S$Css_oi28mzgcqWAc&y~hhfB%!C_$~*K7)oM5AVoM>gMpN-nAZ2n@&2Eg9?laRnBuyWht8`$Uh{aTBh*Y z(v0wu!*ZjL3;gmHxRH~mJhtl0AT#y*QEBSuay>Go;Zq9a$-vW_DX|DLUqS=Q3)Kjr z??+oS6kEkFjoJDqm{w|aA3%wNJSM^uS5dLYBTdD|B-r8s56ufus-sDPJbK5+0q>7m zl3z_4DFs!6dXxdy+PBbWN!q{vM=qW6G=4$6G>=P=VifDei!a4DtB!!V-8?6!Q-Xe&xw_~P`3{bFlC*1CWH{=Iy(=$x0ujcinByPRM- zHr@uBLw>H_Ri{QC^f}l^dHIFJwtwAHo{X@bB`KO{QMb#((BR)gd27*Xh_jC*R;Ju| zu#!4Yh+84?dwc$N-@wbWwmZe9A%=#e^j#&Od9MCS^cm~1&I6dL6OpeXLcYZN53UdF z|9TJtn6HTtc?R-gVGXBnMh_=Wl`6B}Bk|6>pO>ADWy672Lrpfknq@=ngkYg5W=oel zcgtsXUT<^k2Na1XZ zPc+9E@QYgmxQT|FBu>ZqEF0qan4fH_t|0pv;_w3DD z14z4uU3PMXh0E?P+mb723` z?R5*tH(5&Dt6qda%fbjd3o9#K{0lAkZpgy(GVCQo=@lFt_hWIJ7X{1@d9J_J8F<*7 z)?{C}+I;t?au&;y&r2Jx)^}K$Rfd+ty588;mc+k*RL6v02{Ato!~QKR=}#}S!nZOt z{P7Q`C+f#5=nwd@8eBuVtNDuN^(c*!&P3o|k@_*wLEKKr%+O(gJu7@b1I z$ux|&{IRgO2Q-3EC4ka^Yv3aHA8K!?ntrgLxc>b)ynp5Sz)SrN>mHIGP=}Lm!u}bG?DIg`9NKA0KRC9#WDD*= zQ#hO;DgMYqc#Y3VA73K8vlU}lAo&R>aFRkdKz+|BOOQzSQb-8s%7E5{oR{Ne?@%}F z>|YN+r1=0K$2g_G2vK61kXr2}W4>1QhwO-grPov+q6Uz6(`esJFN1bC9eS zI$yNCKB=kkBYvGtPIOW?11a*a;1|br^`+fTnq=ty_v$kqT$L9I(}!7@3;Mql_l?v# z4E5hB<|Ns5|H2pa@3Zp1lyGKX+msn<_?V7h>Zb{3Q!us&aTDUXI!z7?Q{|Bi-} zT`2F*A!YXKLL;+_I)cJ7G*q5aD}(JZ$Rggzu0s)m0g9fT{a=4hC-XEn9z2E*q^7D7 zS9onfKylF$c*Jt6Y%(IGc%mFU6sUYi1*QmX+E(|r<#2O;r>y-ysRc|Y7u6GIZy5V> zmxw9Yke?qwH-u%e)fXSI55WEC-wQ=U;B%1s*e-~J9xml3B+;&is~a@hQsPfmhs`v0 zpbtlM1E80#g$Y}ti!P7h4iQQSJJQb{D1@)YS1TQbGEf7#$P7fyi3%u9g%sprpy0>F zKiUwUfqVb3elnMu=?gCRa_r|o?lt+d$5cq=^v}XRSrT-+~ z;S5;yao^i$8g6@v-c@@$mPiZ=+AzQdbL>qe^wrf84cxyM^(YzobBqIMVblNkB8EZe z%9VpY8F}gTNir#Gs#A066yedP@_xS=cU;uakTe>u`4)NDSoZ9>!}Yb)#Kgp) z6>!wH=S`Rq_t1`gPG9ghu*iJ$r~_Oyd{;mLOeE6UIpdwVIpeBwt){AKXW6@xu$}%! zPPBZxx%IVXa8rgG(gvtnEpx2A0>Gmz)RT#bJpGbE_o>zf42v>~$DIG*)L+Hp+62z6 zAQCJXNozK;gm_Hzsx=ujr_c*@wI2l2KotV12UT*rFvs0dCme$7tkzJ^>lm1BUJzVz z$)8y8LT9n&I}7-#lZ!VM@%Zj@fBJE8C9s0(NDthHo4~;NVv*rTk)zGDzik=_+jI&; zB&3uOdYDMcc*54LrbX{ds)K4h=8P` zR>0NdbumR&RA0aKVptfH#>mIn%8tKsrHFU$EJ2#E{4^*@NaQKB+k6AF)^@xd+^gl5 z>YO}si2)TYR(NBT#Lmvnf1a-Syj+M*T+vW2yOrP$30^RD%<#9-5a&oZtH@WSLHPXi zOI5EM3wZI-_g)mAYPC7PhOk@?opz0<=+4FXE1*O3&6~DvsJf%%edPG7UkI zwOFZeKC?M0p|nF(Z^k9P6IBkeoB|aUmO{*MnLranV<|A6qZUE7F7JMH#6YOpo||h1}@fwxQQJLdDVkTGzyB(O04vmlo61$?h<$8ARMa`-~QwD{37vU zKpw9d7lmIw@qM^vhVYH54AEOH(#(QLchVCWkX1u`#vuVDId8+xZs`5aj{8-WsH%5< zYcGf$Us{8)z&v!vFYIxp_NR_-rZvww8WdjXfCw0wn{=u}c~C6yg8!uq{?M zKV`C$&Prs>ls zseypTl@2Oe-$u2}fmNgXs3)jQ=(w6B5EaB<8_KXjo3D&(?c=7^(v9fL{Fb@&A=07o zi;)vzi>*tQ{#U`YRJh#ID*4Mrl=i{0>iG4|^&_3)&u)l|e$am>rcWh$^hAVp4*ud| zII7^CuHr;tg_H!2-qCL zjgW1k{t}D%35TkpZ%LgkWB#YPDrl;(aGX>I6g{_Pt#TFFEvn zGDCRs2q*v=nk5lD!T8tLEiEC;JR@=VYJ1xCpU;1t#36-Od)=3R2k5%5{32Df+F3CdQ4)PO9j{`@(SUty+;CE&Ga~6L2MTrL z#*HVnI zZ+Wiy%$~@!s@96X0aZbnQiRg2qGile`VI@eZ9NgcKk;GK3-3xg;F%AiIX0jLnyn<% zGMhNi;Gj9dyCwUwX!|Vl_g{;vdBtZc{W{6Twgk9eQVLaU;K43uX~%K)I9ZeJ6$l5n z#ZwA7LbJ~spzH8*^><*feo`i?VHw^NBEQ`B#AFdZl|U9(e?K1|)aM!22+k%Vg_w3Q zOs@R?5sWoLX8?cjGvvR2hWfm*abz_lQK}xift(&3j=wY_N!0Dh%Q!@35xRy&ZKs7bB&`?aRY32EzN?6Sc(9A$PnzE44MCsqn z|Nh%4oi6q}7O=7y{e#@ub8x*3i2^YVt4|5|IUyqGI_&5_&b>0TvnyzEH+gQ3lqUIj z7GGZUUT#lO)R2OK2pWf*zo%llOn6N!?%v&pP6o#Y@Wf2P{1F6QwLvW=BDF0c-?p-| zvtPf~65Y?lxa%7jq*p8f^gcQ|YA!s>IdTFH3g7FH;B^f;KjD-EGXg*kECduF6onK{ z(%<>T5biSu+8=cf@f`?@HJOEX$Ai0(!)~2k%&OG|7K>jaArKgLMjA3L&dzj#dcouV z5iEk9US68wJdENFmp+xXgNNrf7*}^Pe`fTRiEi`DY2AalVs>^G;O5SOA2H4deEg&_ z&E$e-jg1d{h_*Pd#*lwq>rK0p$PaEP&6mi5JD#jo^T7|>ZI+0Sw6+!q7m z*cyyo6)Yn8 z)f!_(GF0uRl%v4aL=T+eK2lMqz&?xJE%$$`X+YQkJ+1;GB8C#B)*4R75l)2{SIUb`E= zm&7a#@qXZbWzys5<0Kds!#^H*^@=iZ5Qjmbg~^nOrsCDAS1*7bwtW$yQBjBvx7&b^ zq+{6(kcxvGf8a=%<8Kvk&S>^g&{Sr~FZs=RloQ~q~u zp22x=Oece;?y7>=B?B_KM9fT4?~3k97EwVK3&sPNmeLI1B%6sAy&ah$R761a!V@|q zEiR7Ay`WI{G#E=&h`xN8a9$iB5{@c!`PUmsGSJV^zPQ_Q5JMSss5=O2i(cdkcK{ix zawV;5>6MHK1O4(1f}SsDXMzVYPV2vpV#|dBO~pjjh5@9zgZj*{Op*z&dA4`|On(HX z)voBR)MO`&{rD|FB&RWo_b%9fNOLQx^l!|w@ahkzQD5_Z@s<`eg%e>V&trF`)e*>L zvQ{^iT)VWFdvI0$=*KCmV9>T>Bs(O+m4f2mW48uQhrZTUNgc9D^^A0hmr%>>nsUx? zk7O3c7#dZscAR(Rlw7nV56_S2RF}X~=j-)XaYO~Kq++fHPGk{Kd2WPvXyh+XIeo>E zxJhD})3am^&LFMnfOj5<9;^u^sZO%)IEepc!_vl;I(m}sQcGT9MaQPCm zY2QAT))N)QDR}TfYTL5UtDiUE^3xWNN23F5(~s0yv@o#g#(KDO>y^38rECjOY%*4h z^Bz3ze`3Q3Eq@TvOhrA{{V$RdOrW>p@HFeZ}?i5^mk?!?cD%+g3 zDTdFSyISI>X`Q9>b4pi8ZHz6Q`>PRuY(U)JN@zIWr?x{{{Vi=g1&fyMiiU$wC8bdk zm01p{<&xKdPo){RL(}V)(q1I5!-ItaaP@Kf{St~Fw*vMXO>LVNhyR3&v+m^1n?6A0s( zCQYg}vq>E(#_4d?9bOkZ4LE)AWc@p8&AkYruIqi>S~B-#?bGJ7iN%!?sfih2rHw za~`p!n66^odbj-;{js>?4qC$1(VI2BBtC)9`zyVkbre{xe%C7bI_wKDLrWYFRBctN%F2hw+Va}O3mp@5~ITmWl)Mv-8;4*bE-c%rKA$9%6RtZ#6fA%=UU+ z5!SMfLpYNWC84%zG7ZVsotL(xNboM7(lMjs@AKPb@Xzpc#$WOz8yQdxf#asCi~`*Q zNb*4AUR1hUvJ^zPeS$X3!J9~SQa9_vg2Z{1y91K!iEkvbIcWQ71h@xHb~!YLOnk}0 zqSbEHS7x2{St;1|CQ>0cj`f{eD3ortptK*vA1~3m#_81N+tWw zWDG;C0e``nWLUvHPm)Sqq%+*@KcTGRr9AabMM1&bI;w!S!QVev^;syeqGvS#8(Tx>!K;fmA`edLuAuFy+o4F1rs!XZCH2v7AE)p%{f$FySkz|!N(!4p zOs}jV|Um6L+Q7YVW;jcm0VY!Eq*!=zE*H`Pd=@8rQmLmB45^1 zlQJjCu=joWQ+KtVcXgcPDzL_BE00AV**@LKDEThMemt*mliEK4b2qTKb$v)e=Js09 z5Di{@3XB+15j5!kMb%qJMZItT!*qA2w1m<~cXxw;beDpPigb5_ICQ5VAfSlSpdh2P z5|Y9QD3T&2{5I#_^W5)q{y47XQknV0e((LN?KHjgmQKe}{vE$Oi2}8~y!zF$n^!)F zPI%(*-^I7>9tn~Zv}UADkhQY1^8IRMF>|M?J9@IW-1e#eg{%D8o3BjNY>{uv@7>cT z4ZwEC7rg4p+5AgmnPYV_E?aC4y39KM9ubx#4B^4;X$`$C$W5k;uxg2XK8^9Yd@A9% zrAL|zIupyL#ETwkWYv4`Hl5X`t*P*kfybZSun`7~nwII;s{=}B476Vfo7V7$f^|bu z{=^8W@rv&`7h_P_X_2{pi?h!&3)F<1@A!})Y9C4RZkD|*7|9JwRlIhFTdw)Onh>@7 zlQ6JFDZ>zlU25B|&c^)0!Go#-4?lWZFTjPn@HHcr&6wi!qzKDw<)7bl)Z;IZu|kG; zp++yNqi68dI{Z5tvWt$>^fK9!qEfQW)0G4hCdA@|goV>X+)xfVsU^;@qFPLyS%xid ziz-4>UQgxxIj!n}XU%sfdDLw~W*fz+gVv(sb-bU+(*oT=rrcH)zWs*X`}zjPiQuA1Mb#wb+n?vxO>X+_QyrlbbdF5=A zahdhcpPPF~-tb&jz8k6CJ=~{mh+!Lvsn1q!(;l7x*GfOBTF3X=p;qG^hZ2^zS6(b< zRLgO2L@G;G`U)&tgcrCWd;lx*B5vys&|+SvWzo=0itHQv)?-A~X;!s5f583+)cjl7 zfxb91;C_*9_LeB5nr9E=XW4F$8RFEo+GCYU$q32nUJ)7@&C4=S8|}7gW)?`$lUPE0 zs`&B5vRF6p=OSL3?I@w3YGA)bVb0n*eV1Fn<7o67?5V#81wYQ)Fgt~`M86xyautp1 zx1(Y=2~WLy@Ih-x4C|V*KLJ&0DP_4Dx2BrgOyIYyz8a|Lpcg8>tzD_szLB#IvX;(?su7Qg7X>kW$TWpQ^iA)Rs0pb!uAgUFcv*P-U!IA;$15 z&YJpewia7<*iL>$vT1)e=Q)akL^VMdJ)PyGN?PvG%?DZP%Lw9l^nDUcTRoN>D;_zKL+$tADKfL2s&WeS^9T66GScuY73D?;{RPMsqZ@RTw! zvD32I%hUY=_yU;3g!p(!+fPkMfLz;Uz%{@~&iA-aT; zf?`%Maup_j(S0+>PI}=;`RS%l0^vz{&m(y;2wyF8GjAez+v>A?k+iILX%4b4BEFp8 zH=ASA6vsO$VR=N!D+B(c)5>>NvLR5p42kgw2vmx7d^F&^T!%1=kxpr!uK55)G*v4Y#lKIBuw<+UZ{+6Y z0_y6umFx z>N%KU!pMv>)is7SuBnj^H)J3|2xZe5L@&(K|C|7oLrRqP7)Et#1ei<0*+U2*xU52c zYUL6551q?sA(e$c8p3}HGI&{{*E5N5V|Tt`iWK#^CHaaJxyesfy!-swJpa0CghWGK zovyBKRG@9H8S(B*aZ%)><=$v8j45+kT_u-D9syk{sr5?E_6h_id~7{=LH9*B2b2kb z)~x{iGKbWTm;B4^`il6;P!l_&1@7~KM}TwX*x{KiVy>%rU&Gw<-2|*jh#hwnX5iB$ zSAPHHoYcq5qIY+$Hy?IBBa40*69Gg*ylf^>HYSQtZ%z z9Z7i;0syfn@#IOSQA&V3rfeLKWM&zf7pgY-6#MD)#6lHeJ4^cYq`a*h868dWA?_lr zUNvo7! zS#d*$SH{200uI{lmEwG`N!h|fl?2!rzBwd$Lo zqvPh}tTwJM|Ctj^>Sw?GkYd53z)t|!)bD)Mwl+2&b+Mz1(ZvixdLQvCX-Ga(W@73k z0&Hwv36Vn@&`0>~;WAy&I*2`%#UtBSXX)`;ol&U8nu%~W?UjIz$x16 z=IjjlGsNv`A#rIYOntrt=YGfVeo9qJbN)e=T0%ydI*vb;{`l=%E8@dJ0C@F>K2)L+ zf_2lqj`swtTH@|4^amMIEepOdN=F#<@U->?LB(#J1Qqp|FdHI zy+OVto5+69_QRDEDZ(1DTs<@2gLYcn2Xew*-kSw=KqBnHf_ug6wh$@DuM#&ln{v?J zELCp3DG)*zW@p0Ju@S#TQbKvkK=Lz@$QNe}jLCm^ioO9ZV~j0wpGb#oAF`Mv-90?Q zbJCJ6Cd}X4*$fD`c>ZB17sHx}lpEU4p*ddMH6ox0sALnOxk)bkC675Y>p3$%D>nk4 zV$Zf~PAi1dTkMuosa#C~=Cg-N%q4oav-Fo|2V-h*qDNgQQtz!ZbSca3D@)dvIcKq0 zdWA{`UHRwvjmkM@C$aj8K#c6|;zl3wB4)9J+FagYG!h(_em=N&;$4jRK)ngH@|1c!60Q?dIFsBrh1}FmZ_5 z{5CS?kH$n3l_3g@@KHX1sSQuCoe6iof=U2#F|nzE$&9}`QCKCbpS0-gqA$(0*Ka29CC>y zNa;neKKAv44}7AtOpM!KuNto7CD={QfNBo3y2{C^$gipcHu;$6u)i2hEtyG*qDnXJ zYV33Bq)LM#k}^ep$oXLcq5v3LkWz`l$p&i6d)Zx7YWVq}#yI-37^)C>=*@^!)6l@p zri?m1`Ln&9vt7;e7z6+Ss_vlIjZRKtndlct-{9lh1fEieX3y{{`$oZogukdfAK7mo zHIf;y_h%}&1~JQ6-5eYooSZnsF!%4$5U9QdHHkoca&kqJi;GJOgB%<_wmL8v#BrSd z{_zO*&{4~To(J`pEyEV<7Dw1i#H5k{@#k5kl8Q#a%mL_BY6FtF3dQl?+U;(L1~{6U zhSbkuv$M`YTtWpX{LjnF(NjVhg*ax#KL-vvb1;=BZ6}WBvhGX&aO;G7zAT5|1>3i7 z-MU4%Ox{2yLt#VABx(5LS}zOeJFY!7EKWY&`3KKu+4FFKCC0x|mvq!XlxkqgWS2q$Ff{F}T5@k?(V8|SVx!+?j$i%{82W3!j zs;3wlFg69Go_=toi&8k8S&GV5yQ@Q#e%N^nZyp(#&X0~NdO+Y_MK;6{ZBXFXnX&Mu zHK(lsN#;j`ioAYt@>nt30AmK^yUhsOcsw{BxfwliiKfeDD$i#lB zvp$P32s=KId*LF#edC)IDiF3>h|D1j8j%_~Vya%;vriIhj7XR5nK_w&NKv}dLu15D zL2(Ag(WER_OdDl(hjmDDfc#2Zcmto~CGuu#K1Jo41a%05_v@Pgh69C`>s%)A=+(sKy}J+XBm^(`uJr3hS@-J};t$8A*<&AVzZyDr|`aM8tCgUyz(icF^g~oNrd_pJc@HxMhCk}OAeNVJ!G=pNWX1);u#Mv0b4t} zI|H)UCGJ`ayB-906gVki7xt_A~j-#rx; zPXtQbKtqt`5>=`*{I>uy?ME|Wz@j_#5eU0&+^&k2eN-p9eHdkQWJ+7gUA-d+$NVsO911 zRii+EB6hW+FwDm)HZ_+BDmQ}=*)el5d)eCdCug3fP6=fk$1U1@WZIC0BL0i+W)?y>qucR(9U!u3??6dVp7|=vD@cZt>4Y62s!5y8dF)QMFC1)>knG{0q_E#}4IY5#F5TQW+&kC>X@t$yy;VCe|z7{5`w|(!FG-hwEdJ zB7dE)qrQFVLYuqnyc_zoj7*hs1`TeRqTsL`2oegmwzdY>*ZY$eay7Oc$nPBT_!9J( z<$sr8=XJk82`H!uXcci1!VjZo9p7lP^^)9fBcMARK9*1=>dU_?$x> zm);=fNb{%sw_>6iv)m46p>nXW{e-#!05K00idc7$Pz@MT&?&~ z6WkYRG(GI-cVmSYftLdK+mq7mV=lx5{T%)ss#pvC*+>fyFYk~j!&Tj=<7&c!Vy5*V zu(oShBZV!i*Owzh@vv1MSXi9eqsxr6lfJw=nBJ-OGMTRe#&Rz zCNasy63Se1Bi}NPj{MgXFqY92_HWP|VzdyHb-P8mn3h-Lt*q81m(GeVUWOya0Qrh| zVl_T7fq&#jXhax8J~Fd)m1=(jL1$VY*&Zhu-vZAt$hGa|+0~vP*9@uju1>S#-MM`` z`Z(bC=30)=^gs|2|44^5F56zd{P#998>(y^(hW9vS=T_Ml{koyU2WONi7PTsQ|@TV z%>pSJrSwEQoK^A1OZF>jSt|Rm8-)W^M(|{(@PB+eH5Jv;ef$Ba-PhYx?L5D|VN>g6 zRhIku${25NXBg}LYB(EJDL+K|)1@O5!r>KVmu4&Hkd3$!*F-_YO8UH_6zDEx`T>U> zGE*hjzn9v)VLlNZlNPrLt9r`fTPf7Zu1dduuL->4)SJYDk{Ac@FIV0VE?)sy*eY;RdQn65;m3jRSZ7E&S|a$nQH9J^$wv`1kadxraefL1lh4cx>=W{R z@-z4wP%ufzy{rtawt}A-C^ip8!jh12f-~B4Gp`{3rl(? z>3@X)?g$?!tB?uux5Ca9RijEx`~rS zz&jqpodzS)YX4$VQW8iwdTs##1Lx}pB(gjRR849YJeyD{^0`K!P}f|BcP|1l&xcaU zfLg&%18|qan@W7#L>m6~$NQE1qa~CqZ&Jq}WgQ}M`OR+Lln@t}4>}_AF}Ajr^`35Y#iYK5lDUsc%C@t7 z>n|MIy7C2%=u02Qe!BYrY=iFx`HPF28!Z);p}mU>ml;d|XsEeHhe+t6D=O5G8it76 zTy6Fj>2074RX9KDqgfxtza-QrLWx44#)9W^)DDqme3|+S%Y5$OQ05dKY1CS~0Y*>+S6Yy$K6=AwZiWE}kt5$lSXzT{x!v95vop zh^jtVA7v|5@6{Oef#XwX9dcN}r$PFC4TV|>-cdTdQE?i0z; zLdN_Ph;%+bW`BbZpE^b@FIXbQlKNuaFOr*1JUf{eC>C?;qZcPpzyWC zr(J*pZ{wq*=H5OQb;zgrds*Cgw`fQ9MOoC(A!f~F80JKbnM)*>1d!ZVK{A%;W4xD; zABIZ;+_oUFq>15Ctq!|hI5m<_qT>s2 z^>t`L)=A`Tc*g_BaG%s(?eFtg^ zOpfWwQgE8Ab%$_nx^)6>eUFKm83wl<_@0+{_p*+&)Be+p8^j*7z6F`m34qouGf|Kh z*a>sKoZNgR5j=!c7x(31-RMimw9$sw>c#Wt`esL$;-uS?)kcT4(7ak{{d1-N`L~2b z7vbiB*W~Zw_o**mGGXuB&|M?Y2z~tc5o!iZPgd~G2UTK!aHs=g){!9O*YaXT%*eZI z9e}E--l7S^_#m{jGw{zHk?H79@gxv#1_@?7qu4MnkQ4tGkGq_k*`ofBP;S;mHt0wQ zG06+jZ+;NCXTLe;3ld-$AW**xyweV#?E{Dl*JLpa?j(;ptBC*cUWHqBJ)1l0%VILe zEWn;|8+PA9^_SoedH~!HoJY7O3TFT7058E6pM|&fo=?dE?bh9-GSuhJJA4oaL&l#U zUwmLLXw>1}F7ugtxdnU6dnP3=m!HGv3^78N5wt-;K`_HZQw)!hLnk~j(1tYk6(HI! ziw45e5HQ+Xw-|N*n*NKC{40w43NBL6)XUp6FKd-C(M+9mGM4-3&DO9fx-Ki`7Wn=C2t0Kg=m;jGHL;@8X25Ko7S&9p z;{k#-7}{dzVEQ%1OMbzbK)16CUmOg72iI%m_A4qYja{KC*~?=g-~i-TzQ@2mbpPHx z7~|qtrEb760PyC7MXPY*(OwnWzY;`ImXZ-*U6zR=N?@&kV==@)DJsha9!6oOGRufV z9;(8=68}yz|0X=GR-HjoE$FnpxUgjWTL$R$oFM_T284jDSDTR}r2O)o{?`<(W`e$VDV>||D zrl;ekTc~J=ga8(?v9`{4bL@n1;R5U!zMOtem*PB zq`Y1c)xX^|GDyf!NeR6?dN@Yt{A}Mq--G-wuuYx{vh1}G31HXmr-j7boi4?zEhfHg zqsj)dM=$_Hpe-4Rc=dsMER8rx+5Q#0G>D{UR6gnSI2~{l2S?y3!6tPbHwUT}KFtHT zkh9a(ot=g4pd-iLHyVIG1%QoTIeNr=o(j35m11^a79wY#?Xr>I}7<2L<2L}y}9{yk_fq`_m zH8k&bs=W!jlyVac1e8;tE$)`aGU#_3?E?gKiCcv1tj9AGQZ1z)@P(sbL3>@AkT$%@ z4wg}GVdIqAL8JMEiYMRcGvtx){d=C90`2xQeMyy?iBC{$){!f+9 z#q(|!C#-i#CgsH#+pds~V0>LJcnl?>)w`4>Re>?WKuc@67G!Z>Aq$)c6s?ylL=JPS@?o+_ zgFS*3(9ndJE<^!VHQOOBwY1$e@(35eAZR+BX4}CZk{9=P{dr7BqDm%o-RqTyGOXjC zR;oH%c~i_0g0T164!55sloFhHPIe(|y za0}W$vw8pK*SEh%yH0PeZ{50!Lelr^8yIv!z2C8Zs`RSUf45h(K@w}^@xrB5BQw)z z0HBIh<8@kfblw1imA?7a`zJO~9K4L({y>ZZIR^|El_;yG@C7p|9s0NK;M)9Ra zn@9ADDi`cK?Q8dM#h_pPP;;}_0wQrH<@IfWgAF!5uQZ2FR&f?3NRV}i5%&D0&!T<< zVDUP3E5=kWHqu`QvnqF8x9iLwpABWIleLZ}Hq4^faL-c`Y%m%F-bu>ds+fzH^T{vS z8hkJ;u7~;Qc=&ZNwRBmaZ)y36Wuu1m{j{Ink0+o?%kDDOt1^tXMXEbZ4o{XhHIYj< z^UfK#cldb115J4x9aAN)in*Cv^`Jb5;zBjht`G;_{8 z%~hAn@4x>3EaK`jf)6FqtES-)zGtK#crnt2!`3@UlolJ$YkkX8G2tN@;ne<%!y`@v zX~Fotq{0;M3mlHjzrW;G_8Lg`OBR#s>g%V5ulqzqNx^oQFACY)SLiMt78Rfgbsiqh z%fa0Q%o-yDaGcBd%g)X#c@B?`y8yLH%NB^zP?UO9#FZ72+*gy#sKYd9MEmfLVN^L=J%h&vXiHf)M1+KuauhWbX^vt#aG1TB6BCH|wW*?}YF zkXDS53Q}7TJM&yPDoOW8`m9{vzjGdNaVJ{7L(P9xH3p3SSz-45Pr-&l1&rdB;OM?E zi`CS#G0hZ`si2cxA52b-i^3TLg5$p|OICk0%Air#djR`;O0o9JuH8eetwEBk2~vZ$ zd*(nUsyqx~pBUq{5f5z~F+oSK8X8&{nwF}PDU)Oxi1m;#_?vhuIo%yyt+LQbjzEy^ zy5Cr4kS~~(n-F*>VrFtr(MsU`+!5%+%cD&XNVFRTO9@v?*w*iZICxO~)h~d_{8pFw z=I)ZEYDWqouvj-irvFoBHR`QZAb@6N{Sz$_<8;h}-7Tqw89P~uXRy9aGWZ2{tV4H8 zL{pflIp@gRTc5-7OdOpaVKF=1{I?eR6bD+euqb-v7Q?8Kre z1#`a|6Z!#CO@CBh=izg<7DF*I-5cGFv)f&>mygX)WrZX~YqYXn0h6$srEa@pLM(lA zq73%l!x~H2JEvqZp#rId=1YUV(d17u$p=}1w2x94EMAWqyJc&uPw;*gF9fJ1A|F}2 zbBvLQ+AaPbSpG|WDQ}d$kq{9n^=@(ZrT~S3Qq#%k00zfQ*QNY!!gjx3Uc6l?xktES0ZCJw9 zxh3_@;wYyqBfMtac6IdFT*XY@%V=qKap$WAA#9|*qZ~&82^EQd$zLN#Gt2M|qYqT} zwL(3*7Z_@r$(vd$oAp`GRVDS@N>{NtFGG~8BS>iaLcR~W_Unb}2&SD(t# z5eYNNMaRUeo5rcanjOWI8+Q+oUhyq>HZ_EP30{9;ULd8d<;5nh!b;9E$UPQPeJAC~ z<=0m!d|ga=8huXm<#IhBLLw%8B0{RxbeoloblC?2+HUMK(D`yU&x`kUi<-WV&gB4F zX~Y_5E0g#%bGSH?zRy`jCcoF>c#6H0hk1Ln%76t$TZlh&mp-mX5_rpMc^iaxSh7fF z##xV5zNV&*ul<3M++^Hu%gw3TBMH=iGZrk(NNwmavJqxxx<3vKFQk z;TsbfJw@(nlADPX8ARU6g_iF!Wf2(cmNvqiQAA+hUt%pb zpb*Byk&5o_IWfgidGQ6nVdH1lEc^z8&SSZ$dD_RjMkuWlut^MqUtR4Dls@4gT_`ODGRf7q{JV9 ze?_#i&yt96Ev|kSqixK&*@9t)3=f zXg+H*?(L6}BfUz+^bE=m_6T+LT2geQ-US_WX5XK<#%Pgs#?e9KG^YEhHzJyx`qC_;{^K}EF^o|8ljHg4&3Rq3ZGhe`LH)AnhF*X0v>U4>lt ze7&7Wh%nbon7^?UPMDHr8eTX)IN+F%op`U6en*b=r_RmIdfd9F8BOZai5c-E{Bv5~ z%z>^O52xdFc#2*I#?aMm7|SsASrW5|72k4jC++LID;j8@+d%!)J4e!PB(363$GWRe zG4=G5D@?^$XUv{#Xc;6;BN&(+AC+`!m_IG?AxU>R5pJ{WT^>bBD<>P0_r~98pk%Bn z0#PYE#3f7u9yb&luVaq*>yD2-S@31M3llZOv^mG!C5SfR5Y@EC!c3_2P~*l*izb^D zkug=XAm1ltsJL}INzcNr*{!@Z;W5fwC=_h(%R<^^&d5~rmbW3-o;Y2ORrg21pzhM5 zCmnqI`vHw+1l>B+Ki5fi#2B&TToRkULEcJ)7;zU90)xh}Oo(De=8(enYJECgKDC{A$L z14ptJT%{Y1t@;FgbShC>?xehX!{tu*4Vkwl)xGjx5C+e@!F6ZJGuPB_i`lMx=6i6& zIv`j0I;V#5Pa}s}-0|6c`r#lLGyfoyc@xx3D`m+TJDxd>NSZkJIeFHu(4)#UgfCr1 zE0$D8eQnkl7sBUvv9gcTYNzTf%kUX&(MBSktcMgJQsct+=rf(mmJ@z>;EjdVQ(ddV z@>IQ&)F+zB`rMIqEC@mBF>oRlMfEdpS;?q6li#o88E}x|0ZB6g(N?sKC%^ z#I{XOclHDkwbjSm(4NUO3>@OC9W0H+k4NsH>AZZD)a9&57k>Qcm68+^XPt^EnwWrt z#KP1)SRW5TDuF(<{D=BfMWLGReaSJe^;(XMY57vC1M8XKZh}9#$QLGb3B5+5zChQ2 z=%=s3W$Q5I$aaM~*qN;cUX$_1b0S`@o3lMH!Y9WXI!K^raf>e%v)d<{GLj6c+sWCW zz+mNb6nzt(a6llrkU5io=fwqZb?r2$GM?J*FjiMpHF1F|ZhNZv;eoe10lKZeodF#f z*^Vg&`m=F8O5Vsxp>;4NSmIy#O7lP?-GcS;^ttV0_wbpuygv-GeL-73hW=N>O!B{+r|bSf z!<~CoxIoZm*_@CXVUPx39}`o1T%2=nk3$Sh#XM=Z``fce$Ug?`^) z9R~Q-K|kE(Kqhv9cPl93g+m|CDIY!4#swz|FtU<>_f;xUF~=AarD%SK)k-^G=fVme zxM-)CB^7%8TklUoPGy_q*h%U{2E3(Wz&NItCxEW(a;f zv)wJ~KPJhV#;G$!uEXzQHh4Q@)CH z6D6YTnDN}ayc}ESoQ4wb<-%R3gXk2gYLIk%mo5}`@~ilQdTsc_wOD;NB06rwP^PNd zrYenqeo`=Z=r|{pNSAEL0F#_CvRvA)6LyvkDR$%!Jns+ck9Jn{ZoQewC(zQX`HV+t zt?Yu{HTJfEwU4;jKw5RQeCsf?;sfLrF{X9v4{SdU4Q{ag*EoUHY+AEC!G=prVHd@egap`p_=`3Li4D}SuZ8Rnp?`uRuWbwlu|;IBmP zaFmPYw}|0j64lW0OG>IYj32wit+)e+1pKq5wUiT1B5=ht1;diDQZ)Ql{b=v1z*lmQ zQSwf{h*N48$o<~Mey{1pMOA zsXMzS88VEs>*iTvQVL>9n84;CvDXAQjO8DcSolTAuZc+&+k`hv-YtMYxg*}-S1M#N z_p3U@C>!3RcWLU|@MPEW7R7L=o0v?%%U*-6ful8XSNyt45m0xe-b&?9JUYi!#ChmD zj0R+zp9`lH-n*p48f*p1$OKAkKaJZ?2f)(()E>uWFlN#YZb?` zlPnIW!y1~wL0UrxKBlHrM9EiJJs5yU*#n9UFFxe;-ET2WtQAIAnM(>fhGOp2Jl&Lx zRz5?de8VAh8_Se^xHtTC4MrGaAjVx7| z+Lh0E2t>!}oXmAtCMMS1LFMRNnF${{9?aM2Ikr9I#d=w4YFS|;y~U7E0@T)^S(ZAB z(*d=shBd$IVC!l*4GBmq!qS+2IN^9sR^{4>08vYJ#WnI{-0{zQ)SM!CYv*+QME0_E z9dq$>j!DaHcb${&=VPd(dokKIuwuK%b)FJ^-7?LY7B4ICro)eXIT>`L&ctd_^?jS> zPirLZ+LB8(iS5wfV6g!Ir{YZ^pVgl0m;|udkLpw5j_Q{d0M2IB#INib zOO$sNCGqkjz?mJQqkkm1g2}jxXCe6O$|H~H^n08{j@Paivq{)BtXG;TufEVC{c2uf zE2d7}KIK81f^avlQk{|nl{iF8O_1RwX)h}TXxr^AaV@i5JaVn2P1SXBke^x?%qgY9 z+_+O!bbNO0reSNLP|st6BUwr^uL3Q#!1m99%yrXVa+D(_wgkJ2o$8E-!9FAJg9y0H z7|xT^2$ww~Z1LXv*eg5AUt^OknG)^(_~qIM_62Cv{C;-W`j3d7hA8^;72O%1WlPjVJ)X8oQMrzCB}oWsBDZwN zb)G(`Y_Irs4EK%NM`)CK!Ghb{@-lH)fv+;hukR1Nu|j2r45Af?u8%rvM&y$T75T?S zfyadqKIS(n2!&N!C|M~OhK`a_Qd~RH_Lr4-9zV5w z@MR>Za95IuO&d^c09%Qsc41f_84apa=Tq-HXo70+ z$mJ)^V(gZY;M25vSa&)jQ5dH!6@Bvs>4H1!g53{wE7U}WQ=11^IWfhFf-_h`RYMf^ zjU-bFgv6HVSVZZR=&N8BvM!dKa9{}|0MWMIQXY&0jzf*C7?6~VjXh^ST!d}X32 zl+V%YmKW>n9yZHc3yOs}RW+)J)vR|7h}32Sq@zGP*N>cvp>*Oe;jyhq2>|=~D%7mi zDAUr;lJ4MKRY9DUFV%d>jsEDKG9}BW#wPhFH_2K zw>F`)ez}Lt-VYD|qY%$zWZR;Q>mti)xwIJO<34pdzT2ciEHwH)jtYL6F7mm3(NRy< z$%scy+;tzxz;_)OC-5|?PL^GLb*&zZh+-e2YG0oPBMkJu-JAauY!H=kyhN8f=ANCP zLC)g`WW~eBoWnsaxVR-x-uW_tO2(b$M@t}YTDa|4!6Rhc_?xr*)xCH99KrTWX|~Ga_zOdyZVselvbZN5k#ty~p7<<}vaW1nm zwrKU8tV=80O8=*hIwB`^SCK4|zW9vLHIGe=qTMa-bd*xYhN!K2bgzRT?_~PV1aq```zKOM+j0Ri6}O^DouZ=$BEGrl2b1(1ZD^eeN{4aL9aMY-+T0eFADh;`v zcYN1cs^C7&H)y%7V^WODxhY=V(pyLN?0XQNxrK#=XQ7q~Mg9P?{P|5({N6=^xFUX= zWWe|AnX1`rg9p|;A5}EnBMB?$83uX1!^Xw7ODg>GAL6~fV?On2`9`N-13HGa_{eef zo!FUOl~nN!KLJ&IXGMMZaTDZ2kw!)wB5Am0PRH4U8yLK43`WeO)RuX~yMXOkQ77io_Wc*X0uzr?HiCdMVZ)w~s6x!ZNeqZi%&d zE^@7_L_S9NBx0GB?j%gOtftg0$sR0x3?0Y;9tB}x;i0D-mLge%vH5jA3TFnG zrpj7{p)Mb_?M$^Lff*ULoeZ7t-AYGxB1GIDKAxx&jdcH@W5L)i8yO+;AA7a%nIr3` zIBv_$8}}toKaX(Z|y&AP|eCiO-)Vb)avqLpf$f`VnV6=z&B3uAIXdK z_mWWz^9j^9AQ53Sf%IaaNg~po+jV_HA2U!=3P+@70r5#mH?#d5W|6_J{-3|;XlY-0 zPSt{O1&CAV^g)BL2S?ECpl{5K$*m#-OO#CTi67ik$cL$bNS8~|2FOz4T3kOecuo%g zQLPv(YnV9Tody|PH3t14=xi?~S8@vi(4`U$fXKRLFP{<)J(*7O)2{cu9Innwc z1J)_#orwZP20Ii*Su&<7qOF`nRI3j2U*6k*v$QKPM`&A`a0rOKC;nsDaO^nZl(`$+S+$!fJh*=8)9 z^We*zp-g9eCH&Q%`O_}XKS=I7vndu{TI*#t{BG31cHN#`%^^+ry_Nfgd>@45e9YQm zBdpYP%3Q2OUu#I~m&!LcH_cq5h1|U%W=C^+c9!orJqW05P30{imZmKEAdv4Z!LDc) zQP-qS%zez5Z%<9cxhAg9OTpS?#5pwHRCFvXq*6xmO{^P}cs?G<)JIq3)ft^*hBU)h z!P3KuiX4u=3OusTwM`^nSuF;|Jc!NB`c^=6>2TBt5+0&|HC7YaI)(8Sc&Tw6s}sv? zfdnJ^XXV@J%i;UgK?9(NabQwiZBc}6|)VVm9;{r7>R z;Oh~Uxk5J7qo^7l#}=VPqYscL$dE~>}8^isT8U9_aUKQqB^NVPevs`I6~0#YjL z*Am&-KOY?CE_)JX$_R>HDuhpqv>&=CnS1cdN#M{SB17UoiOJdH7H}T=wLKh?g zY-yLR#R5=c+OuX=epHYA(_iOF9Gh-8Olrj2yK@ulT0D0m`--_b@*_B5e?1Vgk+cs8 zTjU@RGz%(%QrJMWRr9+*=6xICA0K;9vbu$xX(%aGLexCUO~~tuJ^6R4(@5O$&p_Nk zZl@2MD{MJ2f3s5@w<^BWq>_%>!Lz{k9pnF~L04YtOTD&4w(%bUmB-jPB=~$J=KoYE zcgxtgH?295+}(^VFWi#v+hUhCnLfIK!v%q9dST)D=hV?RZLPf^j>5dxNv#_QDg%!T zuw_gO&`;bhreva-T@RYalC%Ej2^p%qA7tDcM5U+$Xi23166VFd6y>~`V%D^y!my&B z1fev3QFOmlzJVU{p|B%vtfmIQeA@Ogg9pCw)&*X4L_QV2A2D=*H6ThQ0z2079AKF% z7_!H2GnIhB>aWQGu(Pud?k!>krDbykUd#BH@VsYIzX|GBL+6S1v+IyFb`i@GVsRS6 zs0q^ABuF#F;TI4fsl%n~hEm6-d3BG?vYFcy?qv>7LUDalnN1Z)mKgT97+S=g(2{X_ zCP~9cydL?+83I~^SWxx=6T*%iZ20ol5Q6ZND5wNv&*G1FoRa&5l0ZW&9kjQKPk*_&m52$}hIchK`aY(}Si zZ#^K4)JSa6qmaKdn8pU8!U}#6D+vk;vbZVYrwQ|dx`qUapZ4*B{T&EQc=E>q9g7ZO zRa?2KNuJ|T=^}4kuT3)Kxweh@U&YI)5DN*zRZUGzsDJ*H`%0R=2nCdk{|;+8g!y4R zxGUho%u>qL^z@#i^Y?v$&O4SX$Od4*>F@>#Zobz;hmggwNifQK4B) z@okpb?_y_Ww|GQBLLBg=&hlH%(^&_@kQ|zWpEHywjy({yQHwQ?{ZvR%Uij_dg7>db z5Cg^G&mikBgwFCc#^l`%N(_o)i1_*rZxkN)l(;GUwoU{{1 zxJ;*+GK)XJs>7~;adlj(_~8dO=9mdLW6*3ATOgj`5w(v$yHohMLhWna@6zH5ejKqJ zR|>xXRI4;I1O@_RFvjkRX2@Z!Pxs!^x%rxR&#gfz_fghC5m;0J8n1wgD}P}DF?9_Y zf~q>j8^YYm4?(wWl%@Syymm|Bn1JzLSzUJ!i4B%2b#F9Hjsck}j!7T(f9^IR{4)Pv z;e7Nzxsv(FFXQ8TuSg4gX34tYh1hz!WYYs$NO0ONw!@N;{qOi~$H5b2pW*#rull=y zM!%2+8pe#$g#ghdaI&^^B-+(IBn2X|A_00E*}%i={-0vuqa8i1f6NUQ-)z2ens#+& zPrG{|2kYruAnJCN?hSo;-|%YA2Kn!T3qHBi9puUF)uzzDqosZ)ew$!P30P(_8@(&N zrV$+6VMFsh*!T4CHhz8ztL)zdDq;I}7$@Jm(!Jct}8v%g@UT z81kpsxqLP*E^Mj9#KbDyobmHKD?-&)LX+`hFf&rWZcVRy!P%qmI3?%Z`DqZ@L#ZnxZ^?W?ZYZHw z)lO1xc5t=YNLTL7xOBAu8yh;MqxDZ%yar`8Kqbvm+1mQ+X(EFaRB`CM)V;uIGT`pE zQi+XuL&3!q?8~=iKo-t|=n+=3fB4gY97^NVatIG!rq0jlAJXe+QRV*xfjsfzqU~TH z5PBn_SBz+E`D0zUd)`j7zqKl3=Q$QwYlF3KZWX%#D7Pae7)U^Wo6urT@$3*vy}PES5YV{MhhST4z8oh*gx?x zGxp^eW1B&&rBf_u``Se7avkq7`7+XDFrrhGO%JGHvvbGLwK|Q*#iohn56QTyPbzz4 zsU$26DeI@CV{z+uv|KW+1YV=@i*v?_;swRiVDBp#0$4ahqfS?)?PYB(>=&zg_jByZ zrxX*5$~Ih^F&-us&p(2JobDUG%&cKkL@iMceL)Y02=j7`Y77cTxm_}n(bXo%NRwxt zzOA;p68V~tVIt6TmY5t>cIgkkvmNBY%dElJ+R4o4asW#+HXiJPp{2wi1t7^XYLwp- z1nH}o=>u9ll!dIGv|jgfLp-^N_k9cN*7{@f{t6=Q*z(u=M}k0KS!E#>=Geq?q9f>I zf}KO1V~OHe&r0(b4aGT;yLN539Xm^9qLJ+EJ_J1T`tf*js}b%!ZunvgYUnn%w*o77 zlY|a<$3?JKSKQ@aDt(!7(G`^ahCV9AT=H8^cK<_1=&6=^T0ZsXaq1N!QGn-p+MzbU z2j(Gs)JIg{!Lfm0=pv%7r~OIKkNY`5PAfdX(uF?JTel5Dp;U zP`Efw&6kOUh0Y7eKd>WD#CJ*2B@d!eG_0rAI7C=5%|!8WWNojAmKp3a@ZjE;_FY1& z>kcXsMjBG>I~X0@P+`vPZ}sSKJxS>YY1vG4$q*Q)Vu}XZmo!tf`sHuf^aa!?GyYuu zf0UhNSX5oy_37>$x;uvw1cvSwP(Y+R6c7YS>F!3PQ&CzFB!_0`1`&`Dl$7pgb6?N% z;r;l2((Cq;+c|U2*?X`5TE9g~wE?6;C#PW5tjs7ZX<>%*xb$B-I|2bi-Lm7}yjLzD z5A!}S=JFyov~$x^>1^q#oB+vEN1OnE;h?xaEq{D3?C2?;^sZt;ocU1Un)pji%8u%Q z=cJDywQ^!~CZr%PegJbI7n)5NGoDKfWyH1P3n!`KQ%06sO7Yq zp=HG5N6D_FM*r0g_H1ej193026M%VXovgUvH6mpp)Xcp+bP=KMGkc9q@W2u{cPyj5-_+##vY6iA~GB5r;P-tV2$9mRYq2`k9_|oNLQ!m=+PCN&R zx%5optZ)$Zi=&lDvCxQ#kfdUT5b-KyXK`&+oKC*my6~ZztmXU8)KB)3gC!(uOn3#0 z`Q1|w%d{Acq_Fm$QHUduJzC=7QUtMu%z<3-R=3^~Cu;fjMJ*stZXt_jps0kW86V+1 z1IZ;oM5^gkwfpyn)MD^HFl>vmgI(u&kM#)H9889MD2}7ck>Ll!HZZ&Dle9LDvaaZ4 zH$3Fk%p=8LAEWK`=}lQ9(Aw7A+@~@wx4FnkjFhklL;3-B*UfM~`uyr82N#~>+e?st z?*ExKRfGn3m=3D3;oETfF*FL+Hv|4LU#eP(iRQm}tY%*~X%0#s2jkaO){4lDY9Pwd z8HmV(H@l^Z<5leVTo8E<*s)KJ_izXU3CU?_Vln$s(lPy%_u@>46jfs;3^?@S>2 zBoQl}A84v>59Y=$fm_I}Z$L8cQmP(GidKxET^*X>2-P#h9j6yI@nln}lFTKG;ui1Y z&=iqm_h5oA1b*%@{6`WviYv%4BD4P7Xdc))OXaLjT5Vyxk&eijtCrjDN+#m`tsf{P zjz~m;p+A|9FGZupN@N#Y{kGsbLw=m0D;~|`KOa9;OxUU<%hn@XoW-=>1LXkS3qZtL zF!6l1M!f24*B3oFLD$gT@d4}Q%|yqu@UZ3V=*6*l7#EPcEYMFG*6TrV$OkQJ%j;{*jn(&@t-MAjT4XgT~VFCET_PHo@@oW}I+?X=*Kr&23*%63g#*lY$fxz|m zXo2S~>kH@8&hRy>afxSo0;9ywOZA$E39<=C3z!vcHP=Q3?S3$@F>+*6W{pG-L{|#a ze{L$Gxa+16cUQ_zLy9jn^!d=@fMRXxEjhv3QDTv?NF42~*7fgO*aaSP0WxCgRp}j# z!~h=V6lW2CpZGGR1+0(Eo-3o?v%zE}H&oG%a9U{!jGY14vCD(z1!H+|rxD5=SiM(Z zEt38hH6+>VzOO7`%O(XgV$I;&(mYpFY{J5*X5_e8WIA^J`8}J$k<>E6dgRvbM;z`I6)EOfTXRuF9p zj&zK^|3(O1S<-=NL6E^31C=>#Leg&|GIa~`kW@!Fh?odUCYPS)TykdoELs{!B%N^O zEaJ&hzC$0Lnma;S9tQ!`YP#cv>&QIg`*0W_YL`%Q;lvi2UFBid(O)0WwLf>rPK4s+ z1M0fvbJwj1JY~FqKYVihh1XO*cqTRlW`R(aNjB`ayH?P=x9SbEyf`tBROJ7S8(~aR z1~!qdSgs5ePq}aY9%1+QoeW)<&EH`94lml~(hMQ~6)2-+H{^D}4$!^+ zDvF;t$#^E2^NE}=Lc;|^eT%pE&l_krOO3%tdxMez45`;0(?J>|iyR>fQTXI~jEXNM z5W>ubXkPgZh30ARB$D;t^A@2Qhuf#c8FJDre{|kq)Dy7R%h?xn7E6@hpqEfGFIMKw z-aiH)q_r%nowT^%H6}wkp;U9NWABWB&Ydv}QgjjtTfV9Gf3Le`&x(cgh|^QLlO}l3 zpYW;|@UfckoW>3633+N0K4}l?3UH~O=1p-Cbx|Sxxb5$FC&+>ZRFZ<{Jg~nJ(alaV z!9i?fThtJujQ%i`JGl4MLK2R@HRU5q#QdY`8i|n~gQ%IhLV+>>&h~Z+3@&SgxkK(b zlM<%yY!J(b1Z3g>@$C{4BeL|1n^War5gZ~A!mS@1om{Nd1>s16y<`QlWl9J$3HIZF zTML&BY=vZ%7jo6UGHsIB>5gjoCAV2^YblaxQmjIOw|A%DyPssk?BP;mD6Eh$A_)>;^8wW5Bb|uL`il@dr z#VY}b_w$tRT7yAU{QGHkshJ%#Hr zl2+Q+6P(e20wiVG&I;^16O!z*2gcxd>H=a->T zmEvk;Y@BVDdG7zY#s~zbeh!yrP6UB44_>*x@7hCYtnXa%LfmbJd4b46#Ks)u39v!+ zthyH2=e&x?&)$2VAE;Ub{*$Up8_&zkUaS*#GXkN&zql;i4`Y-`>~P(7Rg)lB?SRR3 zDwYPxP>k_HrJZ$(pqP&ZPD`2{qqqGZqe#?80VyRn9PvtY3{9zQFDt2BtM9f{QQRnqXV0Hs-_QFUba1EaU0>fHkG8G<)^_U? ze;k7h6g?tzC<{iP$W|D$9lDYp0{iu-gtZ+WXIbFSrrAu;SYvzWBb%^)idtRP(&7Z9 zX}_8MsWv}ArfHVIQ2nq&0K9XR?)fgJAnOVa)Y8X0Biz0v4*@07gUInj0~gH zvqxlgQQ-Hhdsk?yg&bn_5T(_G{(Sy^Y#V4T0K`xjHjm<6W@^iu3J!%J4+DJ@(b+tX zl#=TvaeQ+<=Yp1+l5&IF3nGRpE+*E(L$ZheKnj&Zyx@Zx|5UM=v%;%pzqW4xQ|1v? zqOW}!xjR8Ft&^3oSL-U=Pa@aMN)X=DhRx zY$l|@0Y)gtC!`otk%)>WFntQvuNHctTU2fLhjhy49;ktZsh~EhL_Sy%o+Zah$7x0C zTsJWn8=#m^jrD>@2gT~I-!#hWoV+}KnuyQI5^hxfH!MFOkZv9sq@e7lzKS#z1h^_| z4b{fF0Z;~~ezI>wJVja`Ehi!5n>W2kS;S@U*E^*@j0T2S=lp}(u4W}N2^$aeC4uNV z1coX{9+*|75>{v`Aa+PO!pI%&+12obM2vjpf>O>u3zRK=2D{4b&2N6g5I2O)`Q8%c z^RYJzq((kKskA3Bngp7u4V%S2Eic(yBaw zI*%Z}>QYg_xWL~O(G5i*l?(NGKJvi`EiwV#8fE zs)*OL$7=C$A+-+n@UL8Tk9Bvz12OR}OQ4^vceXK2c-S*OQt^`1v|Fs#Ke+YLuun2k zL?3H2PGAwi&-5-Um$ax$5nNs3bm)tb5RW8`!Yslrx57mRSqb0DWIk%iubr;wSff(M zdYGjFf?Mkrz}JQ)Tkeo@xhchS70kpoMuKc2E zP;(L^x9B*I?7d0(Cp z_0^vP)5?*jiTX*eHpw>n#iFi^63o(AaW;6BOFM|3=tf>1`a;Nu$-OBoVWsKaT>;=g z8P$wRAr`1YF<`!Y-*p*t$(sJf@Sidr?uBSuSG?sq%SktS;ORxZ2KE)bQLgD=V zH_UDq=_*~q4A*hP1XvW&@mXAP_@TtdjuZt94vsHeeWeJY45L&5b*?iX#Ckfx65R0R zDmc}w=J8(B_`58Ds(Z#B{~YI8;ya3C3nf8jp9E~H64+q{78dhJZ2Z?X8|=8A5=ELYV)P)=_du0e)bJmCWmGY@JeX1pI?NXt7( zO0~xPuX@vQjT_Kn5ylt4(G-4k37w6~TZp~ia`pA+bWizLRkyJbYBUd_xrwyy#h8a! z#<)nOM>4Ohg@G!Gyou+{U_WJ58<-nHOyjDqwJyOaVV? z{id>P;P^?4dfXdM~eqtDEd@;9sdngYfA zAC2q_A>jtCfV9es_g<`@tfOmfRs+ef>OXQJAg)sc!r_OW>H>!h&O?OtlWc_DExNIJ zZe8ZI**N^thGa=aX(S1Z!VpFteqoHY`==&W{yQE$8UiTZ-A#@|J8DY zPw>uRaBSzv%<>;G46n*A~`#dYG#&414Fv{?tS#oe}~eY;@V4!bD$z+}d# z9C<@_S!-`2X{`TSqOGq}2G%@A(Yjy1V@`UfhdM$5hSrwhfxJ{S(^=cChQF9FF67Ma zX$=ew!%^FPnB4KX+ApZV;{GXi{)a;~w(JHVp|$fp|60@5xHOCr%0zsWE|^~!eMJ6! z@TDN6-57FAWhFNyyaM*lGCN-(>F@&;8a#~9NN7G2g$VQ*I1C=k$gFhOFB8$anGeKe zP=h}NepK8m0AC02z<_;`f;Bh^ z0GIDFAn52B8j1px^CSMTUa&7`>;>1$@YB_>+Ky3kYn&vlq)MTnG)8|x_ z_!#gary@~*y%GhUf+3#ph15dC@7FjZ~sKAK;? zMdfq=9m7T6EiHPp76ML9lUsnHvT-o~5v0mRpJ1l=0WuO8)=KAtujLEaI{tGHs=k&9 zS_WT=&L+mdWO>Lfz%q5agh{@fDvJ-xmGtKSo|l>F4d`JYw_;;sBijImq)PJKt5KDL zV4UD^0NAR}`qr-G-jUqts-hO+Rm8`$+qE|%;bwz%8yqD61X|8K+&175M;|5Ze)72Q zTTS`s$OxMlz;llc4l>Q|fSEXOLa=LQA<1>q3QmDwctI_=WJE$wB2&Ns^R=t^*e+)F z0m!Nt&_DKc0CcmcPm5n&huho1{Ri$NUG4zpcfe;bY4GCB1D%PO)joO+VBApn+{vL` zAW)jT_D;dhZVPZ~uqd}PyFp;)q0BY~%$P73tY9X%w8e=42mC->4AurW8kC}?K!v|h zrF0g|t>x9#am;+c8Kjb6yS$(PDbZ9=MWLVSw`fIq=)1%Y|#vM*X+^gOysm;)B8 zy83!O^vC`;7f_tFhsx%2J`sA7k)0L#ty+jZKZY%roR_|9~#vOsur{@PNiQ22$ z{L@WU^K6Xd*QgghfF2BP!B7-OBGDrIAeA(tmw zTsgPE{Q~%yYfC54{MGCOfSaq~6^XDoDXM?Hd|r*3$^W5Num#vMplA{LFJ62GCWSd( zId92txk+ix#ED2`rBGR)oMA^-aL!C8s7U@fAwhCQK~31_4_?IX#0*<3A`_3sP|nlq zK$im`X&MoEbUTvrsIKvY74>P@8aDJk9h zjO!C5i3x&JDuEJJ+QB!$IS-tl<>U;Ao&tr1=^2`vFnI|9t3c+D;=k`a&b?@3u-lXs?vOns^sGxxyOerogBJ&N~z81o*E&+k-t& zO+>CQy;T5G3M^dtnVG-y+pbs(`dZ);VATaw>r<0Guo(PhkCnxKVh4n^4FlA!G;&Hx z6%86Bt-ruO3A_x&ziF9|fo6CHm`)qNe_xw#(}V!!s_Jmu~A?<)4S=!>Xso8QX-lYlf(uuDWmsO);sBL{(fU{CZ@LjgweioM<#i| z)6I10=lwgYN(FPy4d7S)`ewSdKHa9RRc^o{vP1am3 zc9pB%UR_QQxaWKZEWM3DaPhC*O6Y4tBK|J~9|V+#jqw_^j&bhg*l%4c0))ANfK^D^ z{6&;5I8`OUQT*eB)wDni+q{Ihu{ij3biO%`dx>BZe~DtbrG+QaPDeafPhub70~osWjwc&@_yPx6F>yttraG3Y}hDg0h{$3FW@}dt%Kk3xDhG< zuan0NSoot(unWy938DJm--DAOQ|AUyT$?6X@v%J8C$#8ulETh)3 zQbwI;lup^&j=`cK-hJQng{=GV-mJt?FMwe+)wB>pGHD_C3|PM+J}KFa3faV2{_2T# zumkG?9{zzsC{~1zX$7UUv@SvMINn2b>JXkQ=(6WEq+q0Ha1~UZWq}(E(OgJMOMi&p z0SmLyqC>=p>C2a2es_R7ilq;{{ZX6VKD)!ok+%k7aPQw!U`z{V!QNY)Q%;~A^R!b)d3>Npn+PaNdiK;os%&3w`PajEs2RqI+g>M<|g$my}UKGfBDh>Cz z=FEbfGs|}~MuH!>s#u*>Z;y#enUL=5{CoW8$ulj)jL=={LJ#Ju8Q?1NEyoP+6z_qt z$6kDT!n4YIRlZ?py1+h{N$x9ea0ec;tNy659=a$M!L5*Tv)nl<1eV($HO_5PL@WZ| zx2jcwT#_>JG8_&%yODD#-oC` zOcrko-NUw$8EI=|(;#61Dn@i<35%y7XN2~N zGcq$3k`Vau4PZg`pv2m;#vgY9Owe&I>VB9Y<)VGGP>@l?Rx?~X|U9YN_)O3Nfuc5MmV zI`A^t9ibu%u@u3In+FW`D*L3*5WZJoM-s6e744tUt*95IG+=?`e8OK41fGp#F79G}tn|A_qg#WFuwf~z$I zvnSf}I_R%Gtg*l!eY(U}6YAD#hk!V*W$iI)gjUXB&{A9MUhpC``RP$R*|>i6U;Y}Z zg=PuJ`=P-5PZ^o=GQV(HDjLkbB*et;U)^eOsb8j1f81+0Pnc8LS{}AlsDoy=TO`t~ zSiMga#rU0>JPlzGvkJGMPYwck1s{wG=?X*Ys_3yzZfHJhxlJOfequvZABiB}(Q%<)SS>no{I>-&bc5wuT60JLD+APYCqfC4>s>8TtinV=lAE!mxkL0}6c9 zD@&4O^;cq;jopWobj;;tm33kg7OiC=UZOP3z+rIGFbmHSsD=W9<8LX9 z9a-+`kOxaG7Gu?8mnx@_IIKryEfXTDuZEtRc*f)7^SIZ9(Rj*N1 z4#u?kF1JUsA1D8cK`0rZ{Dm_a3A-@)QwlB5@v^hasGl*(=<{GNNH7zMMIyau@$9O( zd42;7oyKQ`GB=&(&GAlom%5b0Mo@+~aRviwjev>^MbBbMc$bvPgti~=!|ldLKCWi^ zlm0RU(LZFl294%5Kw+uU#$bFpRh9z%B^RdJ7Wx1sgKVQ=!<~AYh>cON>We20~Ij!&Qa*Vm;WY{a{ zMJe})F%tIg7pfbJ5@a|IZ^#kt4NAVU1Z&N9W-a_Lg6r`)Z|`QF5F8OnEn%^%n0kV8 zw0hg*vQWeq+azLh)-;7~l3{3FYCsWQzzNO&NjSR+=8iq}6UF(A3$G8E0AfIB!iWA| zgLLvwp2Sp-P#11(0hy+?$&FG|%Vuoo=`33d{@tj5@cISVrE$-x=+Ye5auaJVkjiWR9(rA>gzXH8*NqoLJy(Fr;njCPp4-YnQa!R=%`MIn*xg*v(Nke~J`Uq|duy0R z6HbnMOpIb>Z*c4_2^T>a3i3M_fPG@{lC8ClK_3oRznfvU9wT{M=ikHH{Wn&cAjf0( z%j-EF_R-7vTo)Ac&YoiAd^!vj0r->mj{Ju2xA9+-9j~!eBqBw1aea5nx`c$hOe=iU zQ2qv-H;Utz?2Dqa6O-%6j`DbE*y_4eczkT*xiB9;chMg720d$8m%WDWYOAx{JVXM6 zUmZhGB^@|}cPQkB-fo@Oxw+I;ZaMakcsLvgk8@wit~(x~Mn7sPOKm5tal$E~ZcA;498D9nTRE3^ zH_h+<$kFVA*OZ6Uy9kUC#?XAmQ6ag-U!1h|V(H}Z!)LQ|qa zUNqTs7$ZWm-LMvgJyVTD2T1F`^Luv(-yfQ!C2wwY0_yNH(yJ)L$LadUcHP$e&UwT! zB1XT3`CzAe#Qalh)M>W3zk9UUr$C!Us6eKM$Mw-&|M`_c$wiZ}#pho<^* zG)Y*yDgjffvj^e18uzMZIKDeYAuBEpucSNjYKF}c<&mauaK51KA2dKo`+yfeY)PrS zTxYAn8xb$no<$yOA<~^=Z!AS$UqQ%i{Kp*)Te!bc{69HmQ)gqHR(1sJGilI9y zV-`0+8@VnxyWv|Dl92>XjVpov28qH!M%xT?HcpFE>7#83eN_1M~b z%*n~=MEmHWKJMF|IU$%&FC|H4gP5A%{assL@3{}C63UCX@CV_(@->0UamVFdra0ys zVKkIT?K^yM{GFPD=7-HA)i2ziR++%+RVqHN8a%0vA;QN`;Q&c-eqUxNF^Ew(Ay^(MRLU z`X_ajG<>=jD1`vd&<1ZSG(Z1Mggkqq6Fj5j=*aa&5S)Z1BqSOb)V|id{;mCV3Pc)i zr~W{TzkfFs&=x^!z5qv16^&&Y#k=!^0Szq62N0<}p#zqPE%4hXc1gv=#GKrK$-vh5 z)LXAEvcKO_#=5}gx%C_L>f-$iEd?@OfTT>bKl`uFhboXS?>oCu`zAGn?dgij?+Mtm zyhzk=>PI)FK!f`~a9}E?oVEg8BEDS%GBJ)020-_&weJ=LdUMw(B_Y-z=-06Daq-T0 z{KK0;-6pjMxz7FRt2*;$w_y3W{#G$w92HI6LIBSWS$|)av#3>%6Vhng>c9xJa)-Lqtv4z@~_$9-|CT_>gChdzj*7=4Vy~9)5m1 zUN^{+dXMs}6!kGqc~)@cr${^8_`DqA2cnbQ0lXiG5C349WkzvPpUI3T>0|dnB8!%h zWTdDFT!X(_PhW(~Lk1cgr^r5aRe}~ZIXn{u8ZgdT2Aq0wNLkjw-cpm` zltVpK*=LB>{)CJASVD@+esyn!ig;0`b;NBH_r9Tol22 zt@&go7P|jYKS6|c@(X%0=R+k{eStGolnafFTBvHspNFDF2V^w|S0JG9;v^hpW35Np z9fFfHNNNIImg*Y*4g-LLv$F?zh1h8839S|v8=W5#aDdXiD+z`Ijni#@-evJK>B-4Z zU`N-pUUkWFW>K?z{APEcs>yZf4UouzicT%zv2nNtw{Lls44~#<#!No=r*6SlUB~l1Gm&|enoo)$xMvz`$qA3 zQb?rFn5?&~YYKZPEPeARTOBLZ?o=$xjISJh9+wJ2y^DUXdk^Gu-){pQZ>gravn}gB z$#!?~Q(_XtJJn!WPtz=Tmb{;&C47Tz1rb2>j}yJuhO(kr=&9oQ43Nrv)}v~xG(K6M z8wF0G3Dmn7Dix`=v(f#0VyKfQadCHtJ2^`?rjzHiCCPcqMtE*FL^tippK;0CC-Ieq zwwlsXB3@2J;EiyB^(_<#+JXw29QE&0Ql4x~4%g+Dc+Lv?QQ>`%2t79Xq>da(T4<^T zBG|v!nbj;U+JEzl;$2gM_BHD?@D!A<0KM61Whf^Zvn#;=Nrabzi-Yf$-+_>O{nuKk z1YNFBVB}}=dYxR>Ex3Sn@FoEy&J2RHvUj4UbEB~trqvAj@hH%I5OOr_M*oEhh9#q9 znt55VMG9;XCtE_@x(nq$3vdzi>zNk1#bzepFX9c8-h8-(NWNFiW!%pTFHnxkkUFLV zIU_bjSU2yMzND@s%C-`J5V>CRm^$33qWJs@^}Npi#g@MQg}WYE-H2NyuW>p8#j`hw zm;^^r>V8u1Ein8VsHBxCW9_)DP-8t?>)A;@)vgyuUbG)jjSZt+S2o(cYg1@MqVquF zD9rZAtm_wM*gRPNtYCPho+pSvoSq(De$9XpQldmoG_w*Ot$HN^MyJXNFfM zjNSg03OIyX;TTMLh`CCA4)##pxNLY%wqqQGK1Ptiw3JNr##XZL>%^;1+1&hztl>w9 zez7FBp2?zwTuSX=j|{Y71uAVvxrI=?_!xl!f3PgV$LeDH52NVkwbtnbrKAL4FV@ob z>DoL8W79FJ_>V2ElQ3r#<$>@3&s@t{=yb;xQ>Gk3+nNeuL4EUyhLCtGG<2clb+k#| z-oHNb7Ms}t_VW=#2**|oPYIoG7oYEzg5XAf*Wg%0b|SwKug~*k7n{{8^r39@FpiRS zZVYYbOuA_cX#^%!0UCNw-X&Jh(N{d$~5jRKQn>`8qsR{+u*qAIWeJi2DCMl za|P9+aDDP*60jn&w723UB8t-Jb3Wr_JhJFS>QJ-%IB&Uk;r9em8r|JqsD{V+=uu{d zvDk^cIkN_Z6IjTg#6_~M=ioa9@7P<#lE^HSb77j7@{fK1!TofV!R$#B^yp*m3|ki3 z7h}z`GB+IGU$P0E982MXX|WnIMY7taoB~u|mEU-XXxkQPrpa!|Nve;Q_W(IqhxJkX zoHDC_gKv+u$LIDK72LG-RjKN6vW&5<7c_EEX0sG>#X%r9h@YPAJvW5Qw7Z!X6%xxo zXDzh-PJfzis#jEmf3HD)RR|N+qhzrPs$4-oaVcjf6Dy_jEREFG6IVaf;rk`M;QL2H zG*>(}VPE_K<8W6h`G!z#kK@{!62xT1kiTFOky0bLczUc7MHkWWm$l;#408E4G zRZljBf@y&OZf_KRkKZ|Ia)RY-gwzWv6@%Hpl+X0CV)qwmrlIeHzYSLq$XsF4}Q!Y`wal2P?iDAN4*N9U{bcm z1E;iuDTH)qjadk?@`EuEh@$=f{8qq?Aw7YDDhI9XE!-ab6e8T5tV_V7k_6TTVislK z-rfaR!!?o1+BGmT0|F~4?VrIgGeR(q0K<1X^!*Rso2u6aRbV0mrq@-1iY4JitlqU&Hr_F&4i7KWNUrV>^Q z_PcDfhZU8TJIk$2?9((Hp9`13Bn8-dxNp@jQUr%y2z__M-rIihulXUtI~2W0#P}QR zZHr5fWLaOG%9PdSfjKyEE_SE(LUZuUeZaIo5&v^ll?!<0fGPXI12K~`uF6=L4TR__U4vEbq2 zn)o|2_QKAFAP*Lx9sowKW*i;f2lT%teoy8_S!d~?{jPdWDT3}KA^M|p1cpK}^t0|s#NiNObVWlMxjIXlidl6T z*Jh@;?+K?^9Do7PHIEwB@w#$O=zx(6^W~0n=u;jR9h4 z{*V_rT#rH@DHaK6DXzB6LSv-YI=>5kJ5hR1#$8TWEc?+-0D-TsA%6%A{Dc=|Z@)rh)PEh)X1@ z6Q)xuTmMrJ2dnBPqak!-08Bq$Y?hBA5Ir9+HCTjyWWI!`UZ8&VA)@{P9(}t|RyQOe z+4u|JL3jlfnHE016r?tqj0&r`&$3nn95NYPCslz(>E)wb(MMQN1|F2eI5CGv2Sam` z&f*D;ZyNBCO_5>GRZ=R+e((xVn!&>izWm#if|jg`?pMh9G?GlaqZwS@^4B<<#gBT* zRHj3cbVFcBJzqrJE(P5Q(kkS#1SBMkceYV7Wwlp^WM9NZVI-4=uf{qMp&Ee@Ht3Aa zdMSeVLZ_efIoBSmT#7|BF<$NGT=Gd6!5Q|V}C zHA0PeDWdwo4+w$#AGA{!>RrEY^1(*4s8NT+zMUc?ALpPHQfW9i*5^^h$GuWmMMPmf2YgVxEmpMX;R=e9bppwXq12am+Tu${K<;hym?NjA=gO=70RKjL& zHj2t2u^ZH{cBC-fb$$}0jTnnV<9ADQX<6E#B9=kQzx?bUcF776R<&(VyiWToncRTr z^m=YI;~Cu<(mjXXxH67qO0U=Q6h*Z!Y9a=_7||;dGb+N}B=26@&#SW_A}z;rgk~}L z-^{5H*dR?Cus?aRBmx{owRue3S&4)Dz}}4uiJeYJtOrZG61syaqP%**gU@e9@VHQ} z*MB=RdzGxON3(#^EULd?mmt#~6Mx+UOE8^dnOvbaCmg5z=$1IC6oABRyoE z9`L;rGsRn1I>k5=*o%gFLLK-^+TWD%GCdW#BXh>ey`lLrXK93;`)9Hgm!7ZN{{okn zXH>dCXzd(h065+51K^qom%x%|m|Qs6G3S zV~V8049*JlI4r?4%!tURsOM`mY|hFWRh*xh@d#;FNnDW5OIlG71{W_mB1#riE)C#V zUNouJ`8e5hDKFD5mz)KIU%HHoZ}kv3MqhtT&arAgWD#e{O-m6S4xVkUot%Idd zipMCa>f|@@KEpkp@K`0W^Uaa-z>qI@OEiHyul~bQ17nZS>gXQtj7E%k)aPW=2@@((uq{$XFZGSj)5(yWwR|_O?+Z_A(0WcF+@C@<1nn^X zzOvs*&7Cf%+p`Ka*|J8);I|gVFEYe3d>wDEd*&3)k-r`u_hYXl;1_G!PBx*V*EN~< z{ZMdrcbmh26)d9C6*E)O3KpNX(|iC6z!P30J+xbt+Tqc_aX2KQW#sEFex3V#_2qVW zcH)=(RsltfQHcxJ;J#7ca=CDIxjjl35wpJ0DyG6}-ma3zjfuBBU&}ngF1x4Y%j*nh zqh1#NT`%(xg2bK4#$1lJzA8j(%zgADKvZ{cb+9eHZfV&4+M~}b^YZ4P3aji*fq$-1 zH|TK;om2Mqd0mE+UdZbiS={drutd#BWBx5mgC8x*mKvS=g(BvA{1*jdE`jeb*0@-G zS}Pm?rJoY_$V&bc>GdaC12)L9f3oZ71Xk1p+YcsQtiGz6M>aaob^?na>#*I(;bV1s zYC+L0jJJYVA@w-tjkes@Q&|&l&)wxPmH<1dbAi?j@0jhS^{t??2-5LHvcK(Wpj3ss zv9}}sqkbfb>!nv6wL;O(sOL=3stoJxc-^caJY5;7RoNhri*8v@%N5;-xpAnTycHrN zh{(YMQhZ$UTfI09+R(gHVT{-q*Q6hh^pV)MxAL@)C>h*WZu7#zE%+d)WlAS-+GuXH z+21ahH^e{HJ2H9QR%lgzyL=@h_{HL163#YG;AN3~z5jmENK$lD&G=6XSEN9J@lCR6 zA#9R;6n?~vg$@qc7 z$LOx@_avS%Ebycx#lp3xnby?f0(Imq)m-SK7mi_N%|rEc)Mv^37P#FIV||yqX=17V zkBT0%C|Z?CHKFbk=o)J0BjRV~L<%In6CAfg&d0t}y!XsZn+O8ZF8MOi#X?&}Tb<4h zaoVdQ^l5$-;^sZvgzKQOre+RPf>r@2xuk3^@7nME)Ot;k43?%&+FEA=PQ-MsoB5n| zECOk)<$(E;p)|xK{mEMNH6w<69S^rhzU^=M8xm9%mpfaW3*2F$Q$Pl_$)a_pI7Di} zPe{oYN{BW;HMTzO{?7OwhNH@4Z{M2u1bsg?8ZV>IJtB$pALm)R#mNBD4D2|ZmGg7A z+%<-Iyzyb8{saLj<&Nq;Wlcd6)u0z&-9%cx>BtLkdbCz9iAO);zb{h$vmWEVdJ&XC zSO*n_X}tF7)zj}l{&Z9(2gXTLO#dvRyE(5^=>uu?`-m1)pEg$??Yv=rPu74)gUg;T zqgr3o(Vo{3Sx1nQl^3)8nc^jd|IE-LEe9=^G$ujo@;!5yZoxFyvBob z5P?u!{^!n1Pv^!o$sA|JwS_@*YRQ9}Zn)SU;CJiNX)`66zJo&3dt`Yo&ifQyzV7aK z%K`sdPNlMh=z_kmECqzkiBvy=xKMeoD>=rg>UF|x27cwL9YIpOZ5$rJv>QomRkSwq zMt~mP;+cj0rB}Q!sDn%3kIMeLY0c4Ucw;FNw>mKBG3;o!LL-pY<8Hn_lL6DCvB-|4 z1z8J&Qz`5Pn{jFS@Ab_qp=+EJuh=aXy8Cs@?k9T25x{aM>`&zOeP1AeeZIv>0OR;_ z<+ww<9UTaMuvc5>>so|oTStFxOBEVKhz|#tOcoJ`y;{A8m4aK&`{RVe!LQ9m>>UGe z5%$0w{`A3b9}La!vQRbsKkGfnxDrTS^t1d`x$tW0l)jfA1jotu|6CV9TS(7lsira= zpOgGU$QOLRBWewo&Yw5%Fu722lG@;ib)ZIq_#+Uy?@CW~dLK%oLs+ZJ#l*&bI|Ri~El&l)Yw$qn+voz=_s_IpR`lO9htod*?NVLvyMV=t zkPblle67r49~55ICq_n)%L0E00PoMOi@8VISlIrNs1*nS0*;6T5Pj_MKmUI6_#=$o;| zVF?OcLBW#US>rrSMN(FNN`Gz5AMf3H;y|Q})EbXX^?Qf^Y41IwqFlEwQ6(q{A_$U1 zK{7}bR1heVL`6gpP*H*;5fu<5SR{!eN|2}$m1qD26$7aVk_;d!B1(`fl2b|QSzCLb zZ`{5=dh{JV`u^zs;|$NPOHZf)@#5~?`U`xT&&)wtBhY6()ZEl`&(|_}jSwtj9-5RUT&Zw2U3xOwEVET5ZfogM^61yXQv=7N zj-9PAEbcHZetjJD^HZ55D#f}!N1A83W<8RGUWC%@Pevu|Tr?1y% ze|}yXp_W{6CzGM9QpUA+e@%Mu_V^&p%17oIBZoBBoqruLU(iI1AKU1v;%JcJ-zDWz z#I(=$$>WPDiWfni-P3eOWlTAdiJ2=mU|?C4rbcs*iMpN2sVL>fbir*T;?ggW=1%V? z(Zvk)ub-h-;?MD?m3iH-`@tqh$3B6?aoK(R`^kcxGPU)Q zeI?$oyL~$4)3=3-YF^yIYj0)rY=`I@8Qdb1;LaABJYLvzaR2T`E;bGuPEpovaFx@%!1dNcZ_TSap?p%! zuaEOjv`)eWq{wLI(O#Y;#$2>B=zmm8$b>_^lxED@PB=*ML(ob(sCm`{r=QMfJd?JT zeB)72jjO_@32%10g>zd2H!LU(ByHGbx02Prv_xF7eM!b-yeUnQVL)6 zX#-jg+@m%*KGrI2ZQ}T{&aSq`GJS9VJBH3w>coeMniHuD=beR#IgdJbxO}Od2!)Jf z&7#$2gnaxr?Z6I{cr1E}a312v2m{fFXSipkyMC3Ll zb{qSO-5w(*_R+PZqX$J7i?IzN!)~9vPVtdDokh4NJ%2;}q-)&IZ!W9h!eKUVK_lxGRiITcw z#C=2o*;1NJEfa2|Pg1-;T{bM*Uaah}{@nBge0)xa7FEpww>?kVTCQp9OQa_mlHG}x zy0zRo*L~)xRSG}x8QI@Fb7f8LI%`p}21vdcvFr?CC}JH*v^Qcar#kmO@6;m>d7>=u zPwtTS*@+Q>#Y2u<@A$lF*aaj%u$?@x$@z%lrzU>|<_`5uq8l4rCGsmHO5AM+t#P;SP=_3^l0}*6rcEspXSJ!q zSnLU%kD|!ToZ_Um?=Oj+j68K6-BTM!G@N!ht=44(*vZ*CvuTD^wy&|dYcAKg!`Avs z_rWhaMW1Y1yRj+$Nto-8PiQh8vio$K%Fdl6cH>FeIUCH?`%7)#@KkC#Z|iGY;4loH z?7sb;QM`5MuUr7D);SEQM5fQ%2lekdD{AyvrnPa@d1rTSEyXS_;{F6xg4Yyt~n}G_Wcz!fQz-q zUg>#l)BLrs{*w1W8T%J%-EN7Yng^pE*?w0rkRLcI-Yq*j^7~L?Lb2a~u{6ys_yo2# zyOP~k+>;3t<1eg5KNbxMQad@UD;lYnJS((tm|cE%?V&6ftHsM5Q`k^*y6pb8OPe~L zi{Iw>I3(Ll zgK)49@@p@w9Jr_G{1j8}BGcKoySW|otZGV~O`Wq2=wJ1=u4y*DZ;G*74^{e3W!-Nt zQx4wV6>IgWVtMYi-|J9QhnI^Y9W4wrQ^zl~O@hbl9Mj$&K~87xaIo9eztl9hTHf?z zB>4hXC<2?Lt|wZ%KDOS!=2gBME1iVVtD_hzHglBTE@R}KU(X@_M7_H&M|dOYhHn4s zEebgSJ#GREaqf6U zdK5!V|~|GBh(*r+3jNnHE*3n#7QY$`IE)sJKAKW z0v}gYnJ1E&Pkj+j!me@TjiXVy)(M-_uw8Q_FGIb~BXbW|24~#4wfxp=iez~m;)RZ$ z>$Q#>+Z1LqY70PsbExQ!A^Y9b;q8dBMFD%K2-Souh=~)jEG+A z9j)KnLyQTNv_5lY7@#w^T1bI=$qdsBE~b|UOd_5a-#as*UriWflSTlcm3k&97rwRC z_rP-Kh6}Qb2iI1=Rub)scw9a_cXujc*iD$_{Ncu}ol+0Q7E^9%+&swpeQovKZL?Wy zF;Nz+zRT$hk}QwTT-e{#{8?ar2dB_>HWztatsiEc)6qW7;|9OxdnTe@L~PJ+7G100 zH$bosvX;r*JN9|)@};bziE+#UNyn@ld8^!4Z)%&HcB~1JD?FSw*6l21;o1n{dWBhRbc&hT;7m`4&JL zZK37J??>UlAMoNXbi27%j-KLZP1$}pleSAZqV@QXg6+>H_t_@6dcJtseL~GDTTNB_ z{k9G2T0=JzxKeOzlRUX+xF^!NB@Y{Dhs<#fTzy}hQm=M7EXH_?KPddhxu*bRUm|AM@pt5w7*|LmRiYZkM?cK3;l@`c^7=g{AbV zm&%cQIpUdFmI8e<)H)t^V~V#zsXa&M{bkogEqN?0%;<3qGrpmDbB)}4ZGP-x%*G{7 ziQv~ymw%c^7zEhYW8hcyUXA#s*}+j61rlRuO$cQh_s=i2Ztm)WmGnF zbigGM676`&xejW*Z>VybEbO$`lL z&uRvCtM(REZZo+D8roZbXa!Wilxd^>vvY>XIy>IAir)hdtLEnB;OjGOE3k5&O%9h$k0vx zn00`oY>Qe77P~%ZL0EkFJ~sVOb>z5?jDLMLj$sC*mwP3y=Zck)zr#Z&Qza>?!snrk zn3&k>Ecd)ek08e40q{&ktO|Zbzy9A(%Hs7VP1PT(*c7pHRoH1Moa-oo!1(XaWf^Ix zqA)(YN>1llvWL<ie5*K!A;Px@s@JF_f0<(CoJ&^rr+xlGY1V)P6)<=7NRi8yiJO3oN#JuCjUg0iTl${$MSHSo#>)GbQk zsTZD~D&6DDNFd7BZ2Pkk+VUV-+Qn1f^)W0KH?Ci6qp-DX$Bn;#Zs093bl@u1e?HIu;a~C-n$3)j;W-eKkT8dR{S~ZSUAR?^`2~cHMZZAqT_2_!H+U2^^o||l zT0Qmh(mC`J_6dPl=!{7{gvZV`GI~8d^VBMo{zw|gVHm} zgKp+Si|3p5I5}3a%qEt*?V9#+cz!sc(c4e4K3rM-m7Nuzn8>kZi|fQ^OMeXJB~(=_ z5T;mPh4{JX;y!Ku0S{Cnfve&eVBnv zelS#BUhG;8onV(RS8K>K&gp)N`P&UNq!R~{3b3}fI`6-#qZH>q|IM?I?)p8&)+5p` z&0tF^wqqpv5o5(nH_>Q+iVW5yh`_5-r`43=G*463uGTZRL*rS&yvU{&>!=Dt-^*Su z&~MjR6O6bf-H%bSZtYs0&J4}R#hBZ#W)t|ele z+HW~zu$~Qn+hYWF8M~8J{F;u0fA3FM{?Yp@(`l=fhBWf(lGE7fzGfaly`h#!kvN;Z zs7Cva*cK+JKvDhqcq=JNAyz{}Pai|F^|Yjot9RqrB_RyJY+sIV4*}5mrTct&fz64x zZu!7nhkeI@=JAhglWgqln=Rbb(!~Z&K+ggrd(N&*;p#3|P_3NT|4e8aLPFA_=$^E$+7ByjHc=x5;xdS@3!#B5?=0W;uIbMs} zwFk*j&1NT08dxKk3(;sx@|=0%!dI6W!v3UL$M<)LPtU9Ls^;~E7dlGvw8F_)5H7e- z2~keVex8eJ?+4bq^*3%|0`GOlKv33_rL1KrHOuyy2Y#w`L@cIhZPtf`-u?yOHj+I7_f>pm0s^mu%JNb@JNx<2 zb*}-|+zHtM)}b*lE^P=J?MNx&(OG?1yHj0R5TNdfg_A&Dm!VC0xYd)#dzJpCY3Q2Z z$d?Xd?^#V%vNP)3^+sYc(~G;hXGFnw)KL zJ6l_MddC``b(ei3$?0=YVamdV2)ukld)ckI3m+4*64^m$6)?Y0@n2D1a35e`7znv= z{_ojPkm&+!b^Um9d*JKyiz4gs!d7$!E+hLe%wOXcLL3j) zol)W~8T3CLL^ge7(V&jYJv-WfK)#hkG?}xu_|`>c;!&uqz}|Nltzx>TVNdW=-6KsET7qlvfKPuxXW+-0^9zt20K?sHp(hNN_ve>GbdjR0zt8j} zMV(q%9``p)l39BLHlHah(=57@m)?J+Ro^yn*W#V+C%bYiN4EI6xlN&SD;k!pJUv`D z08%!gp4eLm=<@TDkgLmt>%aj+Lmjt{{hYO>9<(2X-Z1|aBv?Q2;Uf9{=6h4i^IhmV zLH)4AC7=k)M4Ek+z0UZhg&$G4$bpyF#rmVC^`>b1)?_%)aHCivkNdASRRPsdK-3|M z&X(B$CFadEbz)`WhmDNZ9%VkiZtNjJpMs{q>zEaSqeAYncf@E>Go#qFv@TMaR=S85 z{i&m@Y9C+phs$8=kRr0l!0~GHFJA;B1U&$X3r36bV*V#e*W2xr9oA|mcm;@XcOVd9CVsQBON~tXi#it_5_j?ZkUkCPk&tl1K-JB zEp6>OFwM?PAmC%GIgCNzBVnB{2MlT-LQ#Mr5kSg?!p1~`!J2)K@zonXZ4eP+e8b~v zUyjXiJDR=d2R8qr9VWV~ z081(QqWA|J%BBy@ix9&gF%(mIgJE{J`r3$P;98QN4y5}9c39i=<%r!F)@`MH37JH<}jvVs*cb?qwboktUGi|(=_&F5i$xpoQ40* z5xh%l8>*zdoR$O0V(|&8be{rK!V* z!nH#xm+1z1n|HVeJ%V-7ed&HGewolUs_I%adAL+B;j8;1C=1#t`mg9{Ns}}&7H`e5 zG-Z%pr-p0&NIU%(GHLbenNl25SWLTlo0@)#6*>@|R+mS;t(9e8Up^LL(^VAWZ*Yoj zZl#O}KgRsmFKel}<|k^@4L;^591&=^j|}pN)=lM=pTeiax;?IFN_42=M0s0Zz!CcjUub5D}=Swe`rtZVLi#TK%|_ z$=#PO4Om^n<3Dxk)L2^k16}}Q1fGJ`c|;PZ6=zJZ{wPMouIdNS=x0KuO>ag=eTg_d zaD8ZOTZqC_hMW!5wDuy8nd>x%X(CN>jk>HXk@1L)y-+^(Fa@7?fc6Dy&*mbZ z*%8D~bxCNR=|ceL-8+8}7|)-VnicC&5D^iPlVf$tn3OvC0@5f|ws?*L3HiCXj$a-N zDeEXez#~2-#o)m@NssaGDiZAgYcU4Hd(Th=tjC5D+uw@l(L0=0BrZ&#JwXOJ#Q*md zx)V>FLX__uovBj;La19i#S2kp#A$Rd0>5)|-xV$w%%|*PC05>wOffdjIb`SVa>~Hq z`uFUGeg7gFLiixkXev29u+p^}Fqu!>hF~KQZjDz194a)^a`wjyYr6aD!Hrq;{qDay z;z>B5Ky)X)kHRdA2(Z9m&1*q>_wXU#N8*qlB0=9PPD^NWCJx9eICr5IptK;!(Gx%~ z@Lt?t;r04Sw4=h-Ye^T74$+|qd1@_fBo>Pscq<4tBZpFz6awG4%iB8sfghW5e}dPe3ct%z{U5ynMMF2FnmxgnR@fw^ z(*_p{=2efO_d8rhb)$8RWx9Zs;x6}Jhu&V5m5ls)Wc6;DE8?US;NR}~jO5B%ry88O zH$h9`CF#{zLj!?U-9z6aTTpmneN96J^QO3JF)2YO;_S#430-+b#BlzcnHhKU9Gqty zvm@fWa^s3IS!`TnTm?wDt}*lrBkX7^=B;eBlImF{j8{jR=#l9Odin}m8NS~Ujb@J4 zWeT)5_Q}~+N6X+gG4@TVAvq?d1#BZI9%+=xAKGzOI}$I=&feZlapUFz{M&?eTy*>y zTxkIVI|KejCm?(0mn2)VN52Ocqu+>}vR!4+Z*Xx*LedHsBsjLEb={itE8FG^DNg5B`fSY{(CsLBGHF=I^+%OU--(4=yUdeh(7;|SdJ33TwNzo=ui)C ze0N8&x(crt73t=OgN68l^@*(5AS-DPyo3|?yr~E9t7ji@(o0m@Mn*BK-`}GUK|n$X z@xvF2-)V;4Tyb`GcItScs`u3XvH%>LW%6KJoP>EHpT!^$7itr@RLg7R_W?k~?Az|4 zdUHk(JGSs8Jy9(L`iCj$-HZ1ew>VdT&F&651!~0IzTN1!%cV=pXS~q<%`NaEhG^6N zgLq+Q<%$_|;G$b}t1qJX1+2KX_%Pv?ggzn(0X4y6S3H%C3E}rP)W2SHNLkQ*u6jtR z%je+dnX!36FS#{cFMI@7y!7%rbC0$6m%#)V;pr|meRzD*6EU@C-^AXBJH7*hnozZ9 zm#^|wKGxsMEtjscZo8DV=0w$~jP9cn2dq@g5_@3gXBd%nW6JZHV@of>=|tL8buGug zr3X0I6mLSosxGKM0yYVWh_GgEQ}L1i80fg}&=v9DGs6M{0{YXVy~za>2dDLC#W@^N zJR4v;xBKPQFspLdJYnzmVP>WcI1}>x16%jG4*^1p>a4l4$5+=8>RxmSF)$Ku?%7iwNt_BdX>@d7s;?vs^QJ-O}@zMn8RuRlsAlOtmesqCD- zfR4}mb!B|i+ytnUC{YXEljarngP(W&FjJ~&iUN9Ol+70KQ2~2z&aD7_NnZF|fMr_9{{d%}>Eit05o0Bf|6G9fFgY+fK zW38|4&lp@SCLh>FdX3`zzJTaCh~kIWh-nKl$A@H;u0MnpXG$3s`Iu|miHi+!oc0#NzzM!onBS{e%%0b znkfOleK_NYJE8-8oL9W~IEgBE?n%d1(;TJ~q7a#$myrsJ#dEG&My_b$PyX&L3rcSv!9s;G$jLHe%0Gn-@H09oE-K3 zga0cr7chejAucSh2o8~Zi0(?*JJ^&C-<*LHL4=RTvzr>BclWver{@EnRBB4fw$fM4 zG$(>_1A8J$*N5`CSKp@eqQ_*fY(5GJ`x*UOd$-+I6Gd`bX4)!}X}TWUq4E8~Qo z@+F;Z8bTWU;TuCwAbVV|WV zulS8w7VmvmvZ6Ok?vj(+u|1dJR3Dq{&GN@IW_i0`41IdI)q?gHEcN8H7xZ$d=JUQI zye*cp`ei&`kndh_SSI0RS3~*!vDIG~*~=@S@hPu2@mkF> z!R@G~pd*&kKhaRsU$bcjvgdEz;&vKoxcl#Mt|nez%c)h7Am(#cA)JZ=bR?JQ(#?Bw zfaA>jb}ru0xcm3y-;$nYp=ZgfnNV0kSW+EMW}=ejudQ2<9o_l2qLsHCkdt@#lejSu z>iK{=E(p!R_=E%~Ae<;@hiI*)O-4&{!HX9@2)HYjD$dVce`v3ktDn51>VK-i6a`9} zvUjil;MbzlIw}QjTW_sFz-xy}g772?VWhb<_tRgjWH@h8bElBgrB?R^8v5??TUtPq zXzAf8IuyO|Nxe91x-#GU+@Bx^OtwUqm2p+QWc{y@1DMNj&*x}wgn}wXqYn*LGanxx zTxU8ekj8dFO5ol-!SG)I&TRH}cHRTid4^U5Q5i)=Z*0j}?Dm@IhW_JfK)C~@z0Wnh zn|Bn@EB4_G!Zs#442hihdeb^!XjU3xLjbWn^c^gU3lS&vkjax|0-1O4OtbKd&eAuV z85z0GjUJ=BfNl6CNm0=N>7yG5jNirqo{gMzi?1dsSZ>>TYrC^?rj~kojV$JE(Q24= zAzKu|%C)o96-ueWWFSqN`$lwSEKHkQ@p1Jk+@G=D5bO|O#%7eYon01TfmvbTHe?iU z+`oSxP*Q7R9uqj^#P)HbB{Q;>AH+aQ`!J>>Smy!02yQ@lL+XLvs;F!i;u<_T(x1U5 z;cc>9So95-bEs_zwEa*}jr$#Z0RLT^j*eE`P~X&)eJRHY{6P z&!Jy8th8HR1z_U1scGEh*5rl)rUZnj)p4F*=AOy=;J!TgI#U37=y zge~$@c^(%0F@_Sb=%JwX*z~!tde&&w>ICKdsx>!qjkk#=StupKe|Kt5|>wdD9u)#BP)g8{;@7qa|*5KtK;<3XZ0 zK@Am(*o?T1H;NYKS$Ot>hr6N4s@&3lIsQI&{i-TZG8h;df)3yUh>6{$48h4SY5psE zYRM@nc$q`MN3A3X^?^~SY)zuMg-TqROn?H%GZVubd}79Ny!E1Gpm0s zp>BdsND6h*yPS7^P@Uc(z5lH)+AEZH(8y4m*?(rORYJi^$OXjZ-@9YD?yUc*#<>4v z%|-m2FfFKnfSJgIPgwLz=`u67${wiNI@7R>D7L+ZnoF93`tFW@VTjiV~2b*qyTDyQ%WgW9< zlY%p25>=qg#wtb*=Sy_<$pOb|M_G!`UfS$JlKEX8m3qO0N9f$pbv|FWt^!`SzWeue z%o-Ja7Ej;XN!8HpNERISw^-Zw`q~P5GvPXr=198EIV;Lr%r?w#X5xfU0yCCmyb2%{ zWN}fddDI zd8T=^7}sCKTc6O;ji^5<#{^HK+u4uVsE=uB(b^qP)QYX<5OiI#XgX>e6|ab**7JyZ zU8Bn#c&|_zEemeyW3ITPOZ9b~a%#p0ij#C;t1Rj{mTxKEBqDZ-Rk_9#A<#QwZzmE ze}|G=pDt+vqstY1sOPsoyhY~+$51Z0XcL#!6AbyG!sv-em32||BM!Z&*6hGhK z-W^dQv(6w@IXQh7Ar(cA=i~U!$H~s*@EH_Y$0AY<&{TlTD5Pb4;A*~DOs9l+7_jy6 zG={~ffz-*lY-ZRE^?Gw_H?U=2JGwNpXgM96i@e(tybICwRH4;cGgld9A``@mD5j?H ztVK6Qxqai-J%>G?!r=5V20qP1WhbTpfu2(cn{VG!ej9wXCriOycw60P7MS?}`ycNW zO{K)d8f?2%YK$A_0G$0{W7iYJUNE~il-HIlSbKj>e^W|z2w^hc7Z1$yyLXsG5%6aS z*R>ai2_w2PD@%i_l#-5^nqoGA?6TA^?cX3-d#+mTDT)()&0xomn4FpiH^1K#tEN0; z3JGW3T9}^HzkOh7Y5DFXW{p>6N>sn-pYK2Tlo%J`XA=Opriw45x52H9&n z>G?y&(7FD*qSgaH4tvj$8snrrv*nqUpMsj77*-jDv}u1}tYdHWpTqbJvDJl%LrQMQ zqRc1W?3~m%`c@DyqH*phITJ@|=Jh;~%8*TVj#weT^FQ)nqMsfEhhRZL!8?@_ani(n z(TT^k0n=?+GgqC5|MI45$#I+bA~ljmzEo>q}GBFTy8q5>_W z@i+KAl`5H*Vt0V^A)SjTZWH1XzOc|lbGbbSTdL=SkiLt9ky6}>Z*7rKsYXH&=xiM z^Rr!yf8qeIqu#0n$p!sSnLS1f*~u6Y0@y`Qg%nfnA`)rLaP&6Puo+1)8)=T~$o?|Y z8H@7YBRga3h;@QG7H8-WOp1454+1^R?E4cO2iP11YT&si)>#Hwi%dVU_cC6t|a$mUdn33G8*n>9`d>!Ad zKZbjKOYx#`*}aX>7D&&Yx%$f0(|zyFUqYIKXQwP$l;;Lp`rn$e`qWk1ic7w=Y46`l zon76zyh~}yq}Y%1TGd0h&*fZ{5Vyg&oL7t7QIRGm%Wj>w^iXxx#E^aW8LkzYtb9s~oV?-vXnE_onY3dBJvd?ae~^wuER=4_5&RoNP*)$1 z2d8ZE;M~Pezx;{F_zNr)GJ(hu2sgX|_?+hW{Rsa;%Dk`}qwhBry<7TH)`eVtg{6!| z$=_H1{v4pQt>Au~K7D#&#s^&=Oerydtf$@ZxufIv*RGX0-edUxobrzE!Db)%`BMq8 zkg#cm7spX-J~`OzwLypfh}6yNlV+B_AN{WR@l(D_h?wQVomos}oX(!jdy767c@jM# z|AlJaRA9iDUCU!>$DHpG5h(W&7hDkdl1C_Ee1e|F{xODWtRjabj+Zzh_F3DF)W7*+ z4P*}TmjB|{E-(rVOskc&cvby6fuPaI0pH6N{SApN=aC{lg4uwE69rgr#g0!!Ztf5O z2an(Z17He8H-NoP+sc5oxG~RfK3`h>(Xz7;ndWHH6nu2-x+?>1uX6V{&SO$&3Hk`$ zzt7Ky&qz8Sc72&TYGM)`Y9xT2*ty~jP&dO?%BRcYWuI3h65|RGicq@%`P;`b=cbG$(Bth) zR*c;iK7<;0wPnm!s`GP{pWzj%KiAUI*LN9X7B|%+VlPN^3g~BTis|Gm6_(|PF-!Z6Aws<^7({rtD==D3zc z|9&j@Teof{O`{Ka;=`N~HhTFTvOH79^yGKisKYKf36<+qASru{jE35I%<2l|+( zPeN=>>^I&_`2!MZv6OfI7hU|98wH*8E_9AiYuvtld%9q82ZhE)S)an)BD*-fF>{?B zFgRa|8iF#Rk;LJ(2?5Py@X&KIdT9Ci`JDz{fdiF<<(UsIK8dT1cqppmzMIXS71Oy- zp6tGJR+31rMpF*==n^O_Qm}4IS%fvo*|Bnk4ws{E!7m|k?4i81hYuevA8l~4e84W1 zrr_F(6|~MD7{ADUk-k-sm!~&TX&FKRMpSVZfYLB=MBbg9oh5%>j>ZXTPE%F25Vmjo z`SSDX3FKc&A8~%y`A!8tBEUQ)68yZ3;DPCSH38YWg8b$J$xgf-)eP!2Y@!KQJ=^9w zeRwD{GqY2B`x*F8x~A+o$GsCp&z&U9SeAjK#y;e{!%D?U)q38;yXTypohj8^%bRcP z)5YM|DBCs0b;_=?1^+Uu_5EXK!C9=aR8n^RC^~Q=0S7Yvm0xa&>j} z60=>{3Rr{#jBc)$vzII7i$nA=DLVWU2ButBkxGrWL;X(f170;np(8ON0pY_Pja|ei zQ8BTeeDF?XYET#nc$Gi11{f${6hOTYFxwdG>NOD3yq6{g9rrVq8JWjSt| zUr_i7({8&T7{AePs_ktrW$+ut?$-$l9VP`mz{ICT^?*Fd5{mg99UZDGlTptL)HdY! zf_%Wc*P_r$U7=R=K#@ji#4n4>m_DV_L@X{(OdA5ekD1Qsp> z9lmND921R;VgP!!p137rt+7zNJx}2Bt4_I}GJ*Y#VJ@j>nL=9%eaQ-I@-<%!@n`Uh z^Q>9_?qs0^HS6w;{dd1G-gr(c_oag0Z8{-={e10dYlg5!ev5Xv_mJ;7Es0kaL3!)S zQpxJ&(~pQlkk9BDZ1;-5bg`M*!O8YmY6(_3g9~n_+bXvX4A|cYl#P)@)E*%B)mQUN ztb96gA>^ew2uqHV9({BdJ!kg)69d)AUdi^I&xzz+(w}OA5-*?nea2i^vg{eH%`M;W%|AE;tPt3ioiVTj93ZD37=q9+)nib z=Z*W>8{3K|8(>vsqosPey2hILrk?S#wQ@VBdG`)J+i-+?rK4e->j5eha_9LFyFah` zN7fwzXEQHW<)kQHnp)hVtod!j@7*;~9yK-p2QD2hpA)qldl=dP z>r~@J+&o}{E3XzO9bO+icy{`k_FD>64s4j+F8NCOmX1d@qEkb7px~MCk{Cjp3`k}g`zp(ckmbs0MjaNKWZM({Sl|{%W{2znN zvl{8o{FDMO0;WE;wKW6iioDbF&e< zbqFxV;c`&qIqZ-Gz_`84vttv5pcS-kqmBRhrnk!9F%m9Pt=Ktnwg#hiFm5>}~2$bCmssaQf~rek*Q0n2&{e|7Tc zu|j%1VI?byVf@)I4ybo%#2z%HwBDAPw#IcW3I2wAa9hduQW9C=(5X*iJNr+&ZOqYm z4m#ALoa=T9MS>VRQKtnh5VvWW>6UMZLM)1(7}E?l zdEPQBM<+P84vppsdY|nCkHOF3=x_ij^AiJ7wusIk&)y*miUm@|Mdic9=cc?AYmSSQ zL92$n#vCb)xmvYl@(N{&`)bP+>g(E-l3?yy?a=K#*B##rvAYn&$mRy=oP(qv2Rq*#+!|Y^GshpmhWBqBI_mUA1~E6!y{l< zzMf^ZZ`psp;#txECF~s|2wCGfG);-o|AAVFO^dN*On&74MDlI6tG27Jg@*mr*EVu| zzm`@p`}!5&1+F~##Fjt5e`goSG2nUw==va$;W)591>XG(t4=dB<5F~?FsVgdwG8x& zaS|tR=2ujQg`lo4^|Mj`^LOsFJaJ;H-dz_UfAnPWU*7}FVHyA`D2KSYrKKvENpt-# z(U?~1E6CFQC-<9^VM=q%%S{NDff zg5v-2^#5mS5deBrlKs3sDPEz|X)|eGRZ*imqF<=LgYq!{XMV(gPkH|ffBXOaqyNXB xaAsDPkpE3VEtIRVt+oI6fBt{<4Ek5sI0=OEzFa4_cMbm0(>k>Ok%rZk{{}Y0C$azl literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CvTemplates.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CvTemplates.java index a6d6417ff..c26c337b3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CvTemplates.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CvTemplates.java @@ -32,8 +32,10 @@ * templates, they are templates with a fixed idea of what a CV contains.

* *

Every lookup builds a fresh template with the preset's own default - * theme; a caller wanting a variant calls that preset's - * {@code create(BrandTheme)} directly. {@code CvTemplatesCoverageTest} holds + * theme and default layout; a caller wanting a variant calls that preset's + * own factory directly — {@code create(BrandTheme)}, or {@code create(Options)} + * where the preset offers one, as {@code NordicClean} and + * {@code TimelineMinimal} do. {@code CvTemplatesCoverageTest} holds * this catalogue to the presets package, so a preset added and not * registered fails the build rather than staying invisible to every runtime * caller.

diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java index 4a9da2a0b..b4e008666 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java @@ -34,7 +34,8 @@ *

Minimal two-column CV with a vertical timeline axis between the * sidebar (Education / Skills / Expertise / Languages / Interests / * References) and the main column (Professional Profile / Work - * Experience). Visual signature ported from the v1 + * Experience) — the default arrangement, which {@link Options} lets a + * caller change for the projects. Visual signature ported from the v1 * {@code TimelineMinimalCvTemplateComposer}: spaced caps name in * Barlow Condensed, contact stack with PNG icons, all-grey palette, * three timeline dots between four axis segments.

@@ -63,6 +64,21 @@ * and emits one row per page, letting each finished row overflow naturally. * What it holds back for the masthead is measured from the identity, because * the contact stack grows a row per link.

+ * + *

Choosing the projects column

+ * + *

The sidebar suits a list of short project labels. A CV whose projects + * carry a paragraph each fills it long before the wide column fills, so the + * default draws them onto a second page while the main column ends half + * empty. Which column they belong in is a property of the CV rather than of + * the design:

+ * + *
{@code
+ * TimelineMinimal.create(
+ *         TimelineMinimal.Options.builder()
+ *                 .projectsColumn(TimelineMinimal.Column.MAIN)
+ *                 .build());
+ * }
*/ public final class TimelineMinimal { @@ -184,7 +200,7 @@ private TimelineMinimal() { * @return ready-to-use template */ public static DocumentTemplate create() { - return create(BrandTheme.timelineMinimal()); + return create(BrandTheme.timelineMinimal(), Options.defaults()); } /** @@ -194,11 +210,134 @@ public static DocumentTemplate create() { * @return ready-to-use template */ public static DocumentTemplate create(BrandTheme theme) { + return create(theme, Options.defaults()); + } + + /** + * Builds the preset with its own theme and caller-supplied options. + * + *

Ambiguous against {@link #create(BrandTheme)} for a bare + * {@code null} literal; pass {@link Options#defaults()} rather than + * {@code null} to ask for the stock layout.

+ * + * @param options placement options + * @return ready-to-use template + * @throws NullPointerException if {@code options} is null + * @since 2.3.0 + */ + public static DocumentTemplate create(Options options) { + return create(BrandTheme.timelineMinimal(), options); + } + + /** + * Builds the preset with a caller-supplied theme and options. + * + * @param theme active theme + * @param options placement options + * @return ready-to-use template + * @throws NullPointerException if either argument is null + * @since 2.3.0 + */ + public static DocumentTemplate create(BrandTheme theme, Options options) { Objects.requireNonNull(theme, "theme"); - return new Template(theme); + // Rejected rather than defaulted, which is what every other preset + // carrying an Options record does: a null arriving from a caller's + // configuration is a dropped value, and rendering the stock layout for + // it hides that until somebody asks why the projects never moved. + Objects.requireNonNull(options, "options"); + return new Template(theme, options); + } + + /** + * Which of this preset's two columns a section is drawn in. + * + *

Not to be confused with + * {@link com.demcha.compose.document.templates.cv.data.Slot}, which shares + * two of these names: a slot is where the author of the CV put a + * section, and every preset here reads {@code Slot.MAIN}. This is where + * this preset then draws one of them.

+ * + * @since 2.3.0 + */ + public enum Column { + /** The narrow left column, beside Education and Skills. */ + SIDEBAR, + /** The wide right column, under the profile and the work history. */ + MAIN } - private record Template(BrandTheme theme) implements DocumentTemplate { + /** + * Placement this preset accepts from the caller. + * + *

The narrow column suits a list of short labels. A CV whose projects + * carry a paragraph each fills it faster than the wide column fills, so + * the projects run onto a page of their own while the main column ends + * half empty and every technical line wraps three times. Moving them is a + * property of the CV, not of the design, which is why it is a caller's + * choice rather than a second preset.

+ * + * @param projectsColumn where the projects section is drawn; + * {@code null} means {@link Column#SIDEBAR} + * @since 2.3.0 + */ + public record Options(Column projectsColumn) { + + /** Normalises a null column to the default. */ + public Options { + projectsColumn = projectsColumn == null ? Column.SIDEBAR : projectsColumn; + } + + /** + * The layout this preset has always drawn: projects in the sidebar. + * + * @return the default options + */ + public static Options defaults() { + return new Options(Column.SIDEBAR); + } + + /** + * Starts a mutable builder. + * + * @return new builder + */ + public static Builder builder() { + return new Builder(); + } + + /** + * Builder for {@link Options}. + */ + public static final class Builder { + private Column projectsColumn = Column.SIDEBAR; + + private Builder() { + } + + /** + * Sets the column the projects section is drawn in. + * + * @param value target column + * @return this builder + */ + public Builder projectsColumn(Column value) { + this.projectsColumn = value; + return this; + } + + /** + * Builds the configured options. + * + * @return a new {@link Options} + */ + public Options build() { + return new Options(projectsColumn); + } + } + } + + private record Template(BrandTheme theme, Options options) + implements DocumentTemplate { @Override public String id() { @@ -229,15 +368,29 @@ public void compose(DocumentSession document, CvDocument doc) { CvSection summary = allocation.claim(SectionRole.SUMMARY, SUMMARY_KEYS); CvSection experience = allocation.claim(SectionRole.EXPERIENCE, EXPERIENCE_KEYS); - List sidebar = modules( - module(education, "Education"), - module(skills, "Skills"), - module(projects, "Expertise"), - module(additional, "Languages")); + // Built once and placed in one column or the other, so the + // default is the same block in the same list it always was. + ColumnPagination.Block projectsBlock = module(projects, "Expertise"); + boolean projectsInMain = options.projectsColumn() == Column.MAIN; + + List sidebar = projectsInMain + ? modules(module(education, "Education"), + module(skills, "Skills"), + module(additional, "Languages")) + : modules(module(education, "Education"), + module(skills, "Skills"), + projectsBlock, + module(additional, "Languages")); List main = new ArrayList<>(); addModule(main, prose(summary, "Professional Profile")); addModule(main, module(experience, "Work Experience")); + // After the work history and before the leftover tail: a reader + // scanning the wide column meets the career first and the + // projects that came out of it second. + if (projectsInMain) { + addModule(main, projectsBlock); + } // Whatever no module claimed — a user's own "Awards", a second // prose section — goes into the main column under its own // title rather than off the page. A paragraph keeps reading as