From a4584c8d67d587c5cdbd3fb572223b80ee4e2fc3 Mon Sep 17 00:00:00 2001 From: KiriCattus <19393068+KiriCattus@users.noreply.github.com> Date: Sun, 25 Oct 2026 05:30:48 +0000 Subject: [PATCH 1/9] Work on cleaning up the build scripts to not be 2000 lines long and remove forge related things from the NeoForge setup. --- .editorconfig | 8 +- .gitattributes | 3 - .github/workflows/ci.yml | 140 +---- .github/workflows/codeql-analysis.yml | 56 -- .github/workflows/validate-gradle-build.yml | 23 - CHANGELOG.txt => CHANGELOG.md | 8 +- LICENSE => LICENSE.md | 0 README.md | 20 +- build.gradle | 226 ++++++-- changelog.mustache | 10 - ci-fixtures/tools/LICENSE-MAVENIZER.txt | 504 ------------------ ci-fixtures/tools/README.md | 25 - ...craft-mavenizer-0.5.21-orespawn-compat.jar | Bin 2567344 -> 0 bytes ...aft-mavenizer-0.5.21-orespawn-compat.patch | 425 --------------- .../tools/minecraft-source-compatibility.json | 58 -- gradle.properties | 70 +-- gradle/README.md | 34 -- gradle/dependencies.gradle | 69 --- gradle/ide/eclipse.gradle | 325 ----------- gradle/prepare-forge-client-runtime.py | 297 ----------- gradle/release/artifacts.gradle | 418 --------------- gradle/release/publishing.gradle | 74 --- gradle/stage-orespawn-release.sh | 39 -- gradle/verification/packaged-runtime.gradle | 274 ---------- gradle/verification/support.gradle | 128 ----- gradle/wrapper/gradle-wrapper.jar | Bin 54413 -> 47623 bytes gradle/wrapper/gradle-wrapper.properties | 6 +- gradlew | 302 +++++++---- gradlew.bat | 130 +++-- settings.gradle | 5 +- .../migration/Legacy112WorldMigrator.java | 4 + .../META-INF/neoforge.mods.toml | 6 +- update.json | 2 +- 33 files changed, 524 insertions(+), 3165 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml delete mode 100644 .github/workflows/validate-gradle-build.yml rename CHANGELOG.txt => CHANGELOG.md (94%) rename LICENSE => LICENSE.md (100%) delete mode 100644 changelog.mustache delete mode 100644 ci-fixtures/tools/LICENSE-MAVENIZER.txt delete mode 100644 ci-fixtures/tools/README.md delete mode 100644 ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar delete mode 100644 ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.patch delete mode 100644 ci-fixtures/tools/minecraft-source-compatibility.json delete mode 100644 gradle/README.md delete mode 100644 gradle/dependencies.gradle delete mode 100644 gradle/ide/eclipse.gradle delete mode 100644 gradle/prepare-forge-client-runtime.py delete mode 100644 gradle/release/artifacts.gradle delete mode 100644 gradle/release/publishing.gradle delete mode 100644 gradle/stage-orespawn-release.sh delete mode 100644 gradle/verification/packaged-runtime.gradle delete mode 100644 gradle/verification/support.gradle rename src/main/{resources => templates}/META-INF/neoforge.mods.toml (91%) diff --git a/.editorconfig b/.editorconfig index 7c2ae4c00..0a71769c2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,12 +3,14 @@ root = true [*] end_of_line = lf insert_final_newline = true - -[*.java] charset = utf-8 -indent_style = tab +indent_style = space indent_size = 4 trim_trailing_whitespace = true +max_line_length = 120 [*.md] trim_trailing_whitespace = false + +[*.{json,toml,properties,yml}] +indent_size = 2 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 16c2a9cc7..e38c04ddc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,6 +9,3 @@ src/generated/**/*.json text eol=lf *.md text eol=lf /gradlew text eol=lf /gradlew.bat text eol=lf - -# Keep the original whitespace in checksum-verified patch files. -/ci-fixtures/tools/*.patch whitespace=-blank-at-eol,-blank-at-eof diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc0b3a4c7..e324d93e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,19 +1,23 @@ -name: Base Metals 1.19.4 CI +name: Base Metals CI + +env: + JAVA_VERSION: '21' + BRANCH_NAME: 'master-1.21.1-neo' on: push: branches: - - master-1.19.4 + - BRANCH_NAME - 'feature/**' pull_request: branches: - - master-1.19.4 + - BRANCH_NAME permissions: contents: read concurrency: - group: basemetals-1.19.4-${{ github.workflow }}-${{ github.ref }} + group: basemetals-1.21.1-neo-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: @@ -26,133 +30,29 @@ jobs: - name: Check out source uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - name: Install pinned Java 17 runtime and toolchain + - name: Install Java 21 runtime and toolchain uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 with: - distribution: temurin - java-version: '17.0.1+12' + java-version: ${{ env.JAVA_VERSION }} + distribution: 'microsoft' - name: Set up Gradle uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 - - name: Stage exact OreSpawn release dependency - id: orespawn - run: | - mirror="$RUNNER_TEMP/orespawn-mirror" - bash gradle/stage-orespawn-release.sh "$mirror" - echo "repository=$mirror" >> "$GITHUB_OUTPUT" - - - name: Build, test, and audit first candidate - run: | - chmod +x ./gradlew - ./gradlew clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums \ - -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" \ - --no-daemon --stacktrace - first="$RUNNER_TEMP/basemetals-first" - mkdir -p "$first" - cp build/libs/BaseMetals-3.1.0.119041.jar "$first/" - cp build/libs/BaseMetals-3.1.0.119041-sources.jar "$first/" - cp build/libs/BaseMetals-3.1.0.119041-javadoc.jar "$first/" - cp build/release/SHA256SUMS "$first/" - - - name: Rebuild and prove byte-identical archives - run: | - ./gradlew clean assemble verifyReleaseArtifacts writeReleaseChecksums \ - -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" \ - --no-daemon --stacktrace - cmp "$RUNNER_TEMP/basemetals-first/BaseMetals-3.1.0.119041.jar" build/libs/BaseMetals-3.1.0.119041.jar - cmp "$RUNNER_TEMP/basemetals-first/BaseMetals-3.1.0.119041-sources.jar" build/libs/BaseMetals-3.1.0.119041-sources.jar - cmp "$RUNNER_TEMP/basemetals-first/BaseMetals-3.1.0.119041-javadoc.jar" build/libs/BaseMetals-3.1.0.119041-javadoc.jar - cmp "$RUNNER_TEMP/basemetals-first/SHA256SUMS" build/release/SHA256SUMS - - - name: Run all required GameTests - run: >- - timeout 15m ./gradlew runGameTestServer - -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} - --no-daemon --stacktrace - - - name: Install official Forge packaged runtimes - id: forge-runtimes - run: | - server_runtime="$RUNNER_TEMP/forge-1.19.4-45.4.0-server" - client_runtime="$RUNNER_TEMP/forge-1.19.4-45.4.0-client" - installer="$RUNNER_TEMP/forge-1.19.4-45.4.0-installer.jar" - mkdir -p "$server_runtime" "$client_runtime" - curl --fail --location --retry 3 \ - --output "$installer" \ - https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.4-45.4.0/forge-1.19.4-45.4.0-installer.jar - echo "6643bb8c21f409cc528ff656daf60c206d304cc77bf529bbbab4b336004dfc53 $installer" | sha256sum --check --strict - ( - cd "$server_runtime" - java -jar "$installer" --installServer - ) - python3 gradle/prepare-forge-client-runtime.py \ - --installer "$installer" \ - --runtime "$client_runtime" \ - --java "$JAVA_HOME/bin/java" - echo "server_runtime=$server_runtime" >> "$GITHUB_OUTPUT" - echo "client_runtime=$client_runtime" >> "$GITHUB_OUTPUT" - - - name: Run exact packaged dedicated-server smoke - run: >- - timeout 15m ./gradlew packagedServerStartupSmoke - -PpackagedForgeServerRuntime=${{ steps.forge-runtimes.outputs.server_runtime }} - -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} - --no-daemon --stacktrace + - name: Grant execute permission for Gradle + run: chmod +x ./gradlew - - name: Run exact packaged integrated-world client smoke - run: >- - timeout 15m xvfb-run -a ./gradlew packagedClientStartupSmoke - -PpackagedForgeClientRuntime=${{ steps.forge-runtimes.outputs.client_runtime }} - -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} - --no-daemon --stacktrace - - - name: Run bounded development integrated-world client smoke - run: >- - timeout 15m xvfb-run -a ./gradlew runClient - -PintegratedWorldSmoke=true - -PintegratedWorldSmokeName=basemetals-ci-${{ github.run_id }} - -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} - --no-daemon --stacktrace - - - name: Generate and audit Eclipse production launches - run: >- - ./gradlew genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath - -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} - --no-daemon --stacktrace + - name: Build with Gradle + run: ./gradlew build - name: Upload audited release candidate uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: - name: BaseMetals-1.19.4-${{ github.sha }} + name: ${{ github.event.repository.name }}-${{ github.sha }} if-no-files-found: error retention-days: 30 path: | - build/libs/BaseMetals-3.1.0.119041.jar - build/libs/BaseMetals-3.1.0.119041-sources.jar - build/libs/BaseMetals-3.1.0.119041-javadoc.jar - build/release/SHA256SUMS - CHANGELOG.txt - - - name: Upload bounded diagnostics on failure - if: failure() - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 - with: - name: BaseMetals-1.19.4-diagnostics-${{ github.sha }} - if-no-files-found: ignore - retention-days: 14 - path: | - build/test-results/** - build/reports/** - run/logs/** - run/crash-reports/** - run-gametest/logs/** - run-gametest/crash-reports/** - run-integrated-smoke/logs/** - run-integrated-smoke/crash-reports/** - run-data/logs/** - build/problems/** - build/packaged-server-run/logs/** - build/packaged-server-run/crash-reports/** - build/packaged-client-run/logs/** - build/packaged-client-run/crash-reports/** + build/libs/*.jar + build/libs/*-sources.jar + build/libs/*-javadoc.jar + CHANGELOG.md diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 7b035dabb..000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: CodeQL - -on: - push: - branches: - - master-1.19.4 - - 'feature/**' - pull_request: - branches: - - master-1.19.4 - -permissions: - actions: read - contents: read - security-events: write - -jobs: - analyze: - name: Analyze Java - runs-on: ubuntu-latest - timeout-minutes: 45 - - steps: - - name: Check out source - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - - name: Install pinned Java 17 runtime and toolchain - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 - with: - distribution: temurin - java-version: '17.0.1+12' - - - name: Set up Gradle - uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 - - - name: Stage exact OreSpawn release dependency - id: orespawn - run: | - mirror="$RUNNER_TEMP/orespawn-mirror" - bash gradle/stage-orespawn-release.sh "$mirror" - echo "repository=$mirror" >> "$GITHUB_OUTPUT" - - - name: Initialize CodeQL - uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 - with: - languages: java-kotlin - - - name: Compile production code - run: | - chmod +x ./gradlew - ./gradlew clean classes --rerun-tasks --no-build-cache \ - -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" \ - --no-daemon --stacktrace - - - name: Analyze - uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 diff --git a/.github/workflows/validate-gradle-build.yml b/.github/workflows/validate-gradle-build.yml deleted file mode 100644 index 2d52c08f6..000000000 --- a/.github/workflows/validate-gradle-build.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Validate Gradle Wrapper - -on: - push: - branches: - - master-1.19.4 - - 'feature/**' - pull_request: - branches: - - master-1.19.4 - -permissions: - contents: read - -jobs: - validation: - name: Validation - runs-on: ubuntu-latest - steps: - - name: Check out source - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - name: Validate wrapper integrity - uses: gradle/actions/wrapper-validation@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 diff --git a/CHANGELOG.txt b/CHANGELOG.md similarity index 94% rename from CHANGELOG.txt rename to CHANGELOG.md index f221dea03..f8ade9783 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ Base Metals 3.1.0.121012 (in development) - Add optional regression tests without changing the normal build or deployment tasks. - Document the Eclipse cache settings needed to avoid duplicate launcher modules. -Base Metals 3.1.0.119041 +### Base Metals 3.1.0.119041 - Port the 1.18 version to Minecraft 1.19.4 and Forge 45.4.0. - Keep raw metals, Kiri's ore overlays, High/Low Fantasy modes and the fixes from 1.18. @@ -22,7 +22,7 @@ Base Metals 3.1.0.119041 - Require the published OreSpawn 4.1.0.119041 release, keeping the same ore rules and copper defaults. - Keep unsupported optional-mod jars out of development launches. Their integration data is retained for future compatibility work. -Base Metals 3.1.0.118021 +### Base Metals 3.1.0.118021 - Bring raw metals, ore overlays and High/Low Fantasy modes to Minecraft 1.18.2, along with the fixes from the earlier ports. - Use KiriCattus' ore overlays over vanilla block textures, including resource-pack replacements. @@ -39,7 +39,7 @@ Base Metals 3.1.0.118021 - Keep optional mods out of normal development launches. Add a separate client profile for Tinkers, Mantle and compatibility testing. - Fix flickering bar textures by using the correct centre-post and end pieces, without changing their collision shapes. -Base Metals 3.0.1.118021 +### Base Metals 3.0.1.118021 - Modernize the Minecraft 1.18.2 build to ForgeGradle 7.0.34 and Gradle 9.6.1. - Qualify against the exact OreSpawn 4.0.16.118021 CurseForge release while retaining the supported OreSpawn 4.x runtime range. @@ -47,4 +47,4 @@ Base Metals 3.0.1.118021 - Isolate GameTests and smoke fixtures from production artifacts and Eclipse production launches. - Add pinned GitHub Actions for build, GameTests, generated-data drift, CodeQL, wrapper validation, and target-qualified releases. -Gameplay, registry IDs, recipes, save migration, and the OreSpawn provider rules are unchanged from Base Metals 3.0.0. +- Gameplay, registry IDs, recipes, save migration, and the OreSpawn provider rules are unchanged from Base Metals 3.0.0. diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/README.md b/README.md index c15414cea..5c8ea090f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,24 @@ [](https://discord.moddev.zone) [](https://www.curseforge.com/minecraft/mc-mods/base-metals) [](https://www.curseforge.com/minecraft/mc-mods/base-metals) +
q>BiqF>xWiW@l(!0ZL?{tJw_w6M+r4x)X!%%40NZADN77> zl7C`|&2RBZ5aQD+8~Ci+^1!w`3>R!$LjkPn&tDIWbpD~EcO7SqF)zF!!>sI;3@-3B z6f#zvyT-7Wyg6cF_ryEgU459qW|(}^-7`8OojfCyb?lwQ8k6Smvm9bDOPJE#C3 HVS=q;4XO;iGAVkfN#2r z6vpZS!i@V%2GYlR#ubW&*vTnO(`7=*+b|t++MFrPEcZqd+Ao_ L9gY@9%wz(yH7cY;--Q}>TfakcralX0noemJ=p&-%E_!f?)uXqPE8bE zw4RL}L<$o@RJFI0cl07ePa1C+pVAV&5S2Id&kJQIc@XcwK5eufv>sKVi8<(9%UvyA z-;xns-l_q&7&~3p**j?c#9A!gpL~J2jH2fN*f8?<0YH>!ajTN=@Jhr3sc5D6o45)& zl>^N?4SvC6>*8s8!V}o`7qarO+ApM^KR&}*QRThSMJjQt%l6^YoTUC>q znE>?m4qejd^051?v|zOJ=0EHRHD7Q(emH)awG)E#&h|jtYW!fN+7K#N?VE<(H6fHc zK2jEDQeMYUy*g0clucD$?CX4>EKW0u?QU#_y)|CEr*2EX3m^9jpQ>IHgy@kM9|Y@C z2s9UC5hTVfF>9;FH zcMA5yXX4X`4Xet_J4A19;?EJm=JF%Pug23^HVMqSq?h_ HD8y2nC32>CX92)aFH}CaA3) z*d1K~y9LoFK3$>Tg2}Z!8h1$D@j}8U;d2`Azq)X%PpW+WHK!=&Ry?`3N1h$ws|(Xx z60LQ@`lpaSfyU0<`VzZGm1mpYBtD@8dED+4+vBr~ZtrLvk-H^cNrJBx_s+S{bFV63 z-vW5T2xT5ks?~X+OW2+oZ1W`4BAY5{T+6{ty4xb$%e+rzo(Znyspm}3^w(;+3x{Gz zyoNGG1lY?@MGnlorc3j&QO8eB4(QiR8Rrxu#ZOTVXuMWBfk}JdALR}(-&1XgIUM)} z`k1i`wNcwo1^1xe3+~B!N~`~BN9RSlVwG1bE-eE7sy(Z^@cyN%##vfD+C9N$D8~_u zEnphKcWLYhhOJ<~QEIK&q>P BeI}Z-4&daX22X=!n1(O=U5)SkZYp#)bB3sfuR*%7f^G?_z1bDe2(hCsowYI z@omjh9eS+);l0o^k>RKiWyR?q9YrW3alxcM$+m3hK&X!YV)rY%5w}W$zO&7!?GY!d z2p}jSn=6~Y!0eItA?U;{Jh`{IfVcpDs6_iBYnaEbv^@wuDyvq3uE{CKS3#Knd*@p0 ziRm<2Dc)CPWuXy4v&pO@Y1Wnis;;BwY~mh2bw`}OFDf2_frq8%9G83`z&z-05(0v! zl2p*fBJ4mxxf8SI37vcs+7ZLJ49^}e+q_sL{JeYMO!8@`PBG8NHC5zVX+j{&Ol6P! z^BDx+kK$J?>V8$I#Pf~W=EJ{ycr1_# qV?FjBX}Mre`b;RQo!k5J>GL~iSd#cnsm*y=F8_J z6H;W*g 5Q+6PrSP5}amVfx}cZ*t(XR>M2~&FqqpKcp28>@GWQC zH$YPX1M1&v08vXS^?;2r&N-&-uFJ&X=6LA}Pa{-yGoU#Y?&!82Ey?G{O>*6D^$q_M zkk`hHb2o`ymsmR!&_NG#A!ry6N(q`r%<~Hw(k(T3E)S_-w?OoSuDY-Zsc=hZ(k;#Y zjh27L+mZGorcQjdCE*A0`x`#@1$;UmdJuPxn%aKh(1w$c;tHUpOZz}U3~m~V$Lb)9 zp_QL~BhpdjyVHYBeI-S+fG{2BPg>%Y&xg42|IZPTdosblxn7yP@1stjB-Y@@|D{~R zMCRjND|ZnoksLR3A^q?a`+?*c`MBN1|2%3#^ZrU}A?#4M>%9)Kec13)smt6(6xqq) zlIjm*|A ?rcV*4x^T*{c*0$(PNk6`sOin*xcBM9u`Z<@g{3IxC@$2oJ+I~yVJ@RTu{ps0! z6>!}RJhnX@)D)rUMB!x_$BVt2k=ya1S?+Aik(vHbT&W^>-MElfQkXRp{H_Xh?Zi#X zYhDl#m@Z_lb^&une>!%2ne(}tJ{b7sZMV<;>J4D*1jBuZ5duQ?JCHhjCsS^HWJt3m zs}$m}EnF>8yD}i{$o|3^-+3&;w)fY6K9!V=%SAfESq4k{fhe(Dw6i_s0Gowc@JyAI zf{X3V>p(n)`n7@h1qtbhWDu;;T$>yJ4T5 d^35!1{1KHqA&cHO&u6R(F*YL^G8Xya?*LwhSsz)h=t>$b7ze zoe+9lT*(hHbylxst$3AcOtf@XN+w?(qUGCB)U8vNm2z4S&d{MsgY)y}?-j;Vv+00I zN}d#(&?PQ?kv)pDCJw!llf7xE;(2l8Opqtd)2a4D`Qqt~*j0abd6)HAwj!n5&p+DV zXHAK;fR4?>rY`~GNx&t&5Twt)T$AUpr{WzuM8q6fq`}Qw^+3KBMg9dQfIsFAIPS6L zls`6Z`$Hpl?D57MT z4{2NV9%-#9%l8fu>)OpD!4wW0}@g3j`#JGY!2Y< z1%YRj5HBlT#;0r)R$h+X&*!yIIPZaA@lihGbg6%tV`~!r2K9Mw0y_U?`A3u2eK$T^ zaf%4dP{{SH+;{xg?40nC9`&G>QI@05znbzYNsjLwP;?81hrlPe@cKt5DwJQLw+}Y3 z`w8K>;DgMaqNi766x#n+75qn?QMi68nbm|KnhlF;c>ZX<=Uepq75VxWWMQur@~6g? zAl;(io+)}GmN7LKZaN_>i>>R3q(j12xs z&2%|bwXYymg -XjS8XA(k!3EvxnD4yTt~n3qaftDiEFEeG?a(l1D-wk 6QfQpsT6m>1uRyB`5IfJ$n`Dz&`xu?f;hjkP_v7jpX-z znSXmr^Y6~jx;;Pget%{9{^;`mmgf>+EB`w;eztoK_uXZX4}4ynoAv%?eQs3X4?R0o zNC&`jL_`^V^D#f`8Cgh0)tA3Il)r|5c!W6=@hPc(l`(Dqjew3Wj7}eMIQsSbAJrcW zv@bY|00^jC`v0c-Q~f`v{)PbC|1J4PYe2cHETjF%GmmG=;A<21K_28m$*>a>TA&mK zArdmdAWKLsT})0%KbSDveeB>MO1s%yn{jMfzAk84YFBIE1gbT;?s8~%-hTG1wxE9O za-&EX{CQ8XJLz$n<$T?8`f2QX{|XO{1-3}sfs9bFCNwDkEe>es(E6+zNlM1Iy~666 zmjex0fRo#RVuy}6Wb;7^QZyqpD!@HKec1u=HHd{C0MK0DIEvZO%_)Ygrx_d6gnN`B zE)`wpIV?$TLd{}Bhv?X?+2YDZX? } z4$Eoc^#^O1?Gd9e(PFS>iK~YmKd xgQL5=`w&*VwP|sif6xS!#32Rr&K>ub(URtMh(g}EP$FWLfGtwpPgRQv)_Y_Mp@;~ROz2;Ul J?{OIM6Je+dzm-OQ5EwNB{|Dz8c^|w+NPV*o2o#!4CWu1@i#g%92U;^9n{sC+v1+*QlRv3aj`Z3Z w zq!%MM?td;_Y0qnc?S+_n{t=}YKJMYIFdM*TmzOq{@gqFS?NDbLke3bmWJIG~K^lCz zd#n+){D$v<(-UB#+AY(a0A6`bihS0B6h#3~!TUAs4Tx`yX#mO^9Z%g{34fSN VVPqfD#{l zDnBbxso2$xOOzJU^B}me%&~#+yGxNjEH>R8byS5{Ii0kOCM^!^X$|=JKY ^Q|g;cK 9pZ>*M|V%Pw$5Ai1Z?^K+^aZ6!Ft+|3OR|5wXOX|gPw?rsb~pRShZnYxgAYQ zM{X&`(qy!FDk&`KaV#j4GjC)$LrA=36_pU1Ir6$(;A@asysmt-(Tio}=jl8(Mq>bP zy3PuLi;Cj!9O~rJW?OcY&103xM9i@rB92QUE$K 1N!uAubq@O(-)>>ZSC;vjI!r5kGZWbi1T#v#p88l6+^Or17`2X%?IXL)AEDe! zQYvGKZlc+}%RWvptb|34Q{mdoXXF<(@pY{dpjIg=Gpe<#4u9ks=k@-u%%{Ntx7Nv- zR7oa=SI-U9%e;)Vp#vq96!Z@TBWeLzC#hmKV(p^oxN6$m0X=n>4{ABj+|Jb*3cDLT z2byU&UO9O;xf@=Okt~}{P8G+JvWp{aNp@uey(~F};c}qQr(oL#=w%O2PDiS{meR$R zQa{tWbpENHvnGZs=izcy$)3wlijFj*AnoU<8o=1{)PPfC1wjxiOUmPOaTvq?6+Sb@ zZNL~0AKLz(APE{lDyj>zZlnqXAhKoz!5B*P^x0V@*(?f}H^2#IkrMhtrwn?2vJPqr z>AO%7FC)D1B1oDG>Lb`!O 5Hapi{U1cnR2{yTdC rwDINO z@Z}`+B=umZ0va3j uukzkjuPnY&&ck6EoGpF~1*ZdsjPVG?4fiN|rjirmo zU)r5{)ES!;(aDF*Wy|E i2_p;x+@lyC)@3J0S*jUQs`2{8( zSBw*;D1<#_@%vz6M9hzKnvZgS@u1jh1{ytr@+g%QJRx0H9W2d76}ffC4DOIxWgWU+ zO?7Y7T`IBPcx__VPf6w^i{n;#C3SxPRHm;x+GP-r<&4u(Z1<0-(ECRo`{x-3u VYKxLB@Gapd@1!`KQI>m1tvk^C2hoAg&Y(*M$W;`JR7dAA zBOOr*TZ%K!B5>{_W*xfBH`lgMNi)OLw>3Hlk3jW8{ha{waj!Nv1n?t49UA$)b?mKH zV|E)2!qmN4&|{(!pJWv$7n+p`=$Zi@oA4dF(wyK1r2|F}A@P_J0~$6iJgK8JIaoPL zX7c7E8lmDX3Kyl>CQWiT>A))DrOP8ZK$7%%x{G6H)d^OyyO7Arm{v>1WEp^n%<1b= z?!LCvH(6)Z=tk07C}_O+$6+pR5^l?E3=RBdPfKGzXJq1#lFk11w@yXT!R~99@&h3v zrc%F>AT~?k;3$eeIsrvSw%HeZRn$yYaxU|J%iFX&@TC&EtNwri%@1dkf8_2-x6GjB z$E{~fk&50ZBWY r0Hd+7<^}WB6DsMQS(~K##@BKTt<0414KV*0NGk}% zhfqHTi-JWG)l+!b!02YQ)7l)RkoZvjA_yre%~>qjNdJIyB;`AMV#)H#aWN~~klhp+ zKJ5B&OO4(uuPl68Ldo=md`=A~-Fg+59ri=;Ka}Sw&D%H&76=Fj>;Fc1=>K0R&woF% z{*Tr9Sj)>>WjXuz$BaB(vJJ6Kz`%V+AP$r~svu8J0f&$<4N=M{$)cHqg=3tIi-^ZD-_Y!(N97FR<@QS6?we9uh%}UE9U&p4;lCG7D-{}^2q9n7> z-Q#+%TH@4g)+2ZCqt~zRDeP>I$CD&b^^+0XAIK0SB?W(}fhD{TIo_O=>K}LUTX>Rl zWa`zll=B>UNOo4&P$Z(M4MTI?(J7Nfu`ZI!jFx8ASx&JUY(voDTuEqDLAr|4#TWWh zBN}tkYv0MP5ebhsIZ$QDd|;C7Xanke-|lmh#gDkcc94?7a1T1;zcD*@79Gh8QI)c* zNJ*+-i%fxtD~XbU>4a5w7C8Iui___9evfbIBP|X*Zf4O(8(rygSnVg4OGav#jc6iF zp^Ud8W8Ut$*`0Bkq)Tj3#9IrOZJfO4F;{>X1N?mAateqjNOZ)5OIfuLtJ4tH)fHTD zSi0iQ4l^vV2?>DA#-bp*`RnOZ)Sis8La1m^hHeRW-E Jp)6imueh#7b%_$bmR{@eR==yvo*0v2 zriO~z)8|`?Th`fIvKYFgD`O4LE4|Ru*jz4%I=YG}$*0F;H?i?riP_`Rj2F_)k+l8W zb}o%~(inr(f{fPf${%aYahm3HRhbq?3Vp^&iC@$ecHiOxyNtv?EtisSgdbdEq!xD{ ziP#eoDiUA`m=20QXgi>i(RI@$Npz7$hycXwpR)o=VbA}2OMXsu>i#=+R)ZpjV;F4O zb{_@68qeA}eUR!!nk8lVkQ qW9gqt9|{ z^e}V55kF$zbk$5H^JK86Oiw(u;0%Pbf)0Z0fLv4(Td7kDNoIvB9dB9S*_M4%2rary zvX X<1|2OmydNVuL1v#v{;5_atbV;F#Y;FfZU~G+Jp%vMJ3_YW}He z@}}Y iPw2jdwm$5pkSrFrRV2K(FVrY7fgdIDbi|#~VTBdg$ zO6ADVq|f|URvlGKQ8!g#d)T&ST_!t4r?u>hB{?{j8|9}m4EtTV_Jf`z>1OS?)Af%z zv5q>CD(MZ0U+GRk%-;bDYgmUUY~>eOxy(fq&;ZT4(XR*j9R_M*Rt+!L9Kh=&E%GZL zdT#s0({d$oTMA?FWx(A!xgA-+C6w;va8~?__qg^Pv)&I 3%Gr?ir&rhRN7we@d_ zfCLDCk`mLP$eaOw8LbHzt9n{U3K!{1v}IvWK5i?1mT|SKX=xVimgS|?)w0BU^qc z1<~EJzp`5;nlX2fBpChCL5FlHE5xZCVrn8cH!Po~?-OQ=!eF|nOMTJQUWAQ(dTW!w z*D-6-1g2E`ae6bSSv#4H5FWyj@ IkMicN^5yo0%B3fSu|}?Gk9)D+S2RVMK=j4nq3?l;>f>??6eAskt~mc zjE>xU6 LzKA6?1^qxb&-6ideuDGU9ZtL(BT;k z8R+S*@*9foq0ajgJR6Cl 5#25o+9l5VD9=PA+7E<^5ED;Rl z+C6h6y~r#Hh~gy0?l=dc6y3w|*aNeCZuWEXfObdinQbPHUV?HEjLR!N1sd;RSLBz zKCZe;Es`E|_?8o34(31MJJ>xIr#wsLt|uevUZE|23YX0Az^`)m$9IV1F^bQ^K8(WU z6&b$TNP4QZ)6uQ!UYU5zw`$Msu9X%{oPIwG%0maMUj ixCmGN=)IV+8Dl zvJoBG)w`Oi?bMcnBK;#cK>t8}XS*{Qhku|TB+(j0eT-30?GEP)k0QFty^xUBuFcwL z7UYV3`HfBw>d+0^H $eR*hh{ z)*NkXsp(K#lb4=me2!&WDD$^?Z`M5;MnH`=Ogs+$hOrQC7;Xn_Y ;^OPp$J@f)r0TXl!Fi4dU{}Y`|0gn5O^X9hff(ro%(l?LNT*IIW_=lga&?M) zJ8XcVkE6-R*I*AIhD~;&7d{$lpnq-2`CpX1Q+sAn7qwY2DoMq*jf!pC<`dgV#kOtR zcEz@>C$^nR(s@60ANAW`AM78n=e75m*Bon%d%FMr{HZJ0W#2R^hN^zz%oW(! wT53=w8D@^%?i+gBG zQWj^To-Fs2)lqj3VMerEHYv{b)}R;Q` 9R-2 zC8`VSk31|M@mJ^TcFbO& kzBWo5-V ph9|5g lcR5YeITbUk8p=z(aH!Pa(W;1N} $>L!qtUef3cM*`2}I%aw;4O*v8j@xsxD2!Qh-W+FvgsVjoRhRP-ogCslilUjFIa zAL1B`QF;~ osW~96^-D+f*OyUHhWcD&P|pK5AC@a0Lv?+pDrbD&quqlldYjZejjb= z5z&oRVn^lf-#t}=MP#JKeJMCldiYn ~F-p=er##PR>~8&q{abMQO>;s2d2%A&stfODfB{AS&`$ zqOK3bigmz1SxkB2Qih=n&hR81lS>Vke*e# WmNWp;ekPZ~j
U#@#pD=c3g^3l4+sE01XAz<}6*$H0I`rc^!=7jdmD=+#v2#5`=OEcz8R=OY z6Xsoi|B*gFpk0r}&BTvI*HHAjNV)j2smv|Ew13_8UlhKC3%tK>@|K0+h0);**AB(Y z4!pech7BX^5yb4q4q|>$^?i{KB8VJ|P>el}54`;RmDIm0i!bv8CBl sv#>FQ2$^g$G%>SMrsj&y@iViIAl?&=mwP9B zr%e&TT-=HT)sf3k>SE`@G{JPwJ&%Qe#V%fIXN{>ng2H=^%@fcThb^KG!U|Cc?_~8C zK*uwa@Lu)S^sWrw3u5)Nc=L8xzGluR!kk!Ne4K^Th2N+SG3%V(15?)zB-(?;CQN1y zh$%5J7FuCYS&a$KOUEh^STmqjR&?y1&SnT}8_My%Vbd;C)xiC#Uuqo|Lm_-^9+ NOTIZ{m#rn3~G k6h@*-J@QfD1B|HC#qdp1`nR_?^0=rl|*e_%Vka|M^|CO8OT~aSz4xE9$1$&OwFp@r3TzI{3fZ)$qsM`KSK@53_ z(3`2<=oi-;HZKZyf*7dl5#~PeTk9LjZi0WTIX}B2jst6fP<<=6LX<%m!ar{kXOX*5 zBY>s(jkk>oG(Pxey$nLUFRBtF69qc6y5`23>hXf!X(I{CO8n;*eCK(=GVA{Blahaf z&eA?nxl$n&XG%q>rnu1~9fh!R0)uE9+W(0Nr7EV>?7^~eJ0l&A3L=IpkhCWqd$|6g zl;Osz=xy%XnWGP(cF?{Vab^`Z n2MG^`h7cD?`R9AoGN4n0+ukq9)#M0cRE{1P(R^<$Kc{UU?Lrfi<=47Bt zxY)l}{{%9mM4A4E;tg7u`6Q%w;z4mZQ?eB*r! 9m>ne76fC-g@rbw&PM z;l Fv+L^y;ujn6;P6N&i!AJ-T-iBFhSEXvxE91Fy_W%mF&|3*i`5(1__a^o_ z(x@Hk2&H#*+Ft;sFG`HtTz1CBAKfsjw1^Atdz&jrX?*Xp {hcKmhL?OD}8d0*QN5b7hr#RgfworWuY!xy(K zB;OgVn_mqk3p^e3p@jM8r#@@LLmKbTPVcUvMTj>mPZ%pt_v^d~8v>Wk(}o2^UUB$$ zT0$Oa`|lG4FyK>un6lOAZg@SZUSaZRJk@$^G8hxct;J)t6w( sLW&b}=dH*+vOU%OB#OeQ$d#klzyp&a! zzjE0wr58fY uZHqV_o=rwbZ6_kVL0HZsH%-eo)KC$QOQjgQ;}roK<}e*0Wze6IGJYoGYQ@=_4Y zM@isx(W5oP6+CIJ->{9;D6!Mc22o5mAp(TOL11Bm6NTdASkvS5mDWj7 4KSJ{ozJ>JEkE3IXJ?ooNsPJ|L|GRisetTF3{(e%V~%B`71v zUJJssa5UKZm(2y+;J;+-X6xYW23Z14XD5nmum<<$mfPm&v+zpy-J^B~YT-0(?x%hx z$`EVd*^wo=Z18VqShJI;H6tVBcK#&6mLoioV$3hI6Qi{5V1zAX%_;-H4I>Xf#3EL5 zuQwRDOp?BIMs$-~lOlimH0}pr6dUoI1od&MP=>I;qH$3(#q7dn(24!FCPNp2f!CeG zNudWgykR_pKW3s)$R!AqRcp*U?xFTu5aTJv!rx GFt`!nKs?O-uazkS7|X7(^Q9rfVLyu zzQBVXJ0$cw+O Gc2T3YB%V>U z;`m%6;HOBX7>5O0Q<$DdqQ3mE*}5cqV>h~pV+fZt152=17Tl%+V3El*KpSwFob YK|f!&G?hGiZE+4R1mzMNPl>B$Q$Kn)Sx3qf(DtODXXDW>5a*D?s>Ht zg5-=eht!@Co|TB`>n*A0ycP#b)kH!a-3zgpZtXs)H6d=itau6i!mUd>bwhRrN`OG^ ztYR%vDa6d0PhKslgQ@J3ujHkVB?9NXz??_1<#PoNs_tXQ0H15tdr|)$&5e1@GKg z)Bcap V#+VHU zs7C5i3K>4i= =J-~q)bw%-8R~i3=hEK3^t1^PctnQBu#eXN zL)9FjN{qQ%Xx`prEMMs@CgwUK|FqnxxPS8*`cHmd+wikXmp_5M{c)O1T3q4iq$a=> zsvRhhNg7FT?v7$tZx>n!LL!6dd$YTSaxf_0-T}NAZmwLNn{nx)6FaCV&(!61^Ecm_ zx^0{a*KYvXaNqCGFLofo|Bd2!rGNeczkS%%e_JIswNhM)mG+dY(j+0llsb6r+!gxF zDICnL*x4y$ht-& &d}}PZ;80NSid5P1V?4h>j|N=c&X%D z_Q5D4AN>@EHZIy(QTPzNjHZtFW7nU?<7sQ>fwAAj7&EKC$8lFAJs{IW&!Dp*sg=rS zmn17BXbqv-U9d&O8(XT&vK7Q0&w{f>gT#cP1Lu3!;F~K|A~B-PS)$&fryuVVk!Tie zO^>pj;ee}Hkclu-zm_b;Cff|tD{w0Baz;Iv&D-Qg=58-wX=hvqj4Fwv=*G5eU01>) zLlROaaJU4y9{Fmi(3^$|X`+kE!J?%IB+6^K@Y&TO#oNtEafet!hAmYJl&KsbyhU0T z9Mmxy4p0>l5`-JNJY8Y07)oF(7R|Hd`1Yn(wornVY1yru*5Vhlr-?NkBIHWv-KiGQ zI6CDe*l`E(uCoTDQI{NO7W=O%iGO5^p*Uwy&h^bDfWEk7h?w07Mx&N2#(YddTI^M2 zP_d{MT4t9>5~%! d@IXN5^kK8S ~^#D6R{@!?_%Bp50~_7_*SzC3!b5fsM4+vuu8EM!ns96 zcgeb8$V@XB{;`-#k%EpiZbEdbNuqFwD_i>bHUj^Ib 2iopAGti-7iVzjWlVIt}_TXHl>TytduE6 zl%0a4o=Ra1j%A+Mi5U6JPAo`*Usb>JI{A&?NUJvn6;JKJAEhGQj_1TrsZI(>!>ZSI z#So<`nG5C`qKbcdg3GZq;5@30YGmH%3#e-#O^xtObia 4Hp!n6 z1tkOAS9(&_n(?n#8Nj_mr_Ykaap{Qao-W2(N%lXi=pvQ5&|`f}G@$C-LF2tBCCApb zsjLXADX3&!FIr%Art8a$PGwq!<5T~AZ*{z+y0S=L&THnn4=UFg6z>A1eT2dNSFh9# z(d{ed#{kTf_o^XVRcEnF{)Tj$mMHs~bD~Z?2Qsb~YX{jS&YEVz?t}|}JLL#O@ke|A z460RupdLq@r;(FwgLgTWzCohnilqPc;A3W2sUHH#Hg!xo0D~S< gDaAl># zm%8rm!!k~^Y*?=MzSxayb*0VTa}h^2zf|9(A%FFLlh`5ANresjM!{SU^O4kFWUZc9 zoQPm!p-wk(2XcYrfA}aS<4`-7jeSXoyK;=A0g?{OoIh7X3pPC&=CvVI^>a)*kU7e& zTyMxI@Jz2iaY@6aeHJOnq(Tn=>#IF=6!o u2`ocNgvH(oF8 iiQ5Sh!Ua({=To?+KUh(B z7O1rE-1LBoIq~zf4fafX$7IF7dU7>5;B(L18gR`g_2qy0+cmBTd}^1!igB>Shzfvx zwz#Tw8M$%kqpY%*cYe2tLda4q#_Pm_K--`m=VELgKXp)ZHFz_1r)~jE<4=+}=Sjl1 zvsJ7fIe5S>{fmD(={nxs0) `KK!0(kRfV{h9mi|%aUtBWwtt8E$65ZCzN!j)7i-o(lDefH z6t^io*NQ11H&Fx2OhBA9MhreAKLw2|5se*Z!Jd3tlsCZKV6)Ml6WakV!yXKMkDR4Z z3IixeJIpq`9(`Yj0lD3;)HOlF=N~>ZD@ETlhxxR&P#0xt#L1eMO)n56GkD^<{lTUE z=nS uun_d<9Pox73!6T_ z(G)C>egDX1QyluLV+Ry7i4dJ!KpW@Kom?AwfR2qw? Fop~0v4F!DBoHDkU$tS4(t_XayaEav&ey=m! zX!HnWRNSZ44bL=J@B1?fZ|vM_s%u1n;9{Q;ZLcMMeJc $1AMxvkV{_%I|FP3v_>+FK3#BzV`LfsM0^03r@UP=0kBQhw z<7nRlURxN1HxrFBJR}e~YuqR!z(s0m|B}~&{io)qjOsWcD>B4kc|0YFJ}^807fyG8 zSk3GB5~!PHP568@5Qt0Gtvb@R*$Jlow7U`X7O~}SStHN_kcY}q?WGR=!F5ycq1J1M zqu*!1nGW~5bLiDUXTN4%tA>`+sgGg~rKhiPm7}3X#Nc@=T-W$D3i(+yxqV=EDr=qO z){*zGU{ZP1J>saA>qZ;rO)!1LaQ~ApkY;X|1m+ik%WiBYQ_<#!nb<|IJ}33)KlB$& zl_RP;jL*gi@~;G0zB=|-+Gfe(_a3~LJG3Y|0+Cm?T$Q*X3QlHHYA8iT$WD%6UP7Gr z(P?-r`%_yk%b#MZ7VqZf_k?#GPXHUIZW;Rri;Fw}?>as9?L}f0L*()-7j_mbvovR! z-{a|^7~HT4M+mFlbe}PC=Yf$ e0c_u#_5 z0JkZ0Z%?Dymc6`7uNBH|&U;nlY2VsV|BB19yzjm)>^Veyx}DU_dCImfE-!4EDC@4G zxxwVjd0A? Q zaP3T4a}*eiJwfNc56lS*Z%BNjsOqZuP^@dFs$+%5_#y9K`0|yZw;>BZABedh#qh%m zU`5f>>*{2~vlmak6;@>Q79g)jI+|(_-2?33@d(SkqIW#SB&C@+xMeqHjasJIf-*;r z?m B7+GBDol r`0Q^>syo|hj4Cf00< zHBZGA9TkZ+wb!xoKbUn)PmpYRDO9y*$WL6f*z=85GqtW)Y4)o;<{VH)lrJ}>GG#;f z3{_6E)#Tol=+w|MML1x!$JX5tqc)*uI-m+Ql>3Ol{y;`kk8e#y#UO~dSeITOJV{5@uL;Sxhn|4PC6 zF%SMuRQ@N*|3pSbpAn-JaeII&1TP0DREHQF6bt$K>p#ULP9r0`_|_t|{_Ac4>i=)G z@_!Wbf9CM2)xMN*L{YzRCEG}G$)f2{BOXOyiIPiH7qt-cE%MBf>+&f@hYnYR0w;94 zIu&lU&r|tF=lxyno!=VwcMe`$QOv=u1NWykFE2NqU%OiEc0ApD|202z`@#9B%@ySB z9QjmOuW#CG&M|P=hL?_urQ0}in`oF?=KR6Y1BVU37BW{w9G9gxzJrBqm?9L1V5uS^ z&hyvtkel3KF*n+d&m1$GZ>1 bX?;U#3#Wiq0g$B|w(Wf5)m?3< z7<@Gk^#PYCrK31at6(e~SS48#LEjF9IF@S*OpKOwwRW>M(;;>|?kI( TDG+`vZ%ix*l7-D9`up}$X5ET2RL~J-?~$$faN(Itl(WPdJM?s*=U!K-sO>DL zx0jAo)@&kR-hn7eB5P76B)-^y&4bfiBWo?N<5)#Eko0_VDY8bngsft^34k$`pvOeB zNetCLyJwEX;siS_$Lt&3nbSRHz0i=R$3jQ%=A }{Mnha%OMp^*G;O6~oHn`zag-5IHH|sp;5((64WM7jl+PqS|ICmS zE;2~5K2q16??`_khzUq=k5aLsBaA}~unJut(s1&`D%}$KdAC_2Qy*EDq>pZ#wEySo zm6N{zs61~8i1I4O)DGn6KJKhi`Wb^UfSs&sbb3;ArDVg6w!=Ju7FlX)qN_;Ddllo_ zWW*Z*uR%RtFc?OB3o7ooC+jY(K@kzr>mvz&B3k#LgC`<+@>3xh_Ej|RgA7TqHl_z- zNPSi5wmHP^raGY842SJf)-15Jp{lE4oRVH9i4l!`sB@F!y^%@uJWmVLj>$7w=Ftq# ztWb-ST=Wy3qem6^Wm9i@_qv*2SV@cqTQWm6)r6I)74mO0d>roDEIa}VmY%Iy8I7O1 z?Z!)$`ZMEh5Y3WAcQIut-1asTWEQhLHUkq0B^RD^K2 FX!UulP^ANt7AT zsqYhB-5KYylj8&RR^MC u{!#}^9H7wJ)d8wFivb=>JEl0R|x5i?rT=Rs8nr% z*atYFYnTfDD~Oua8JtuTP0$evQ%3L1J8Ik55#x>R%`HBPZY0Fb!32tA42Y*A?F!|_ z_;k~&R2q~`61l}8zkT|ED^S~1g~F+5Bq=7`70$6}OpGjeI(15D%wojR#+Uq%J5*30 zxiXMQ?Bd|k{0V8oR2MB^$kYbkT!*<{g73tlX6O}j$knFuO!z@#xPJ}x#0WBI$2Yu4 z0$yZI-WK{x;we9=Tq)(}C6RoCCRHR~pLp!-=S{DIjtA-I*81t!5$f=$dD+!FhJmAw zzaStEv66CGxIxklhJ34;{e5?;_?>%fQ|Jx0+YWx8&!<=Z Hqs&wf}BShGr&o7XSCg71?NBxd8>lpyOafFf
eBIG_LM>Xpe1Qk-B?p2$DcoTkxC& T@2Dn=P8 zc^tnCH*c1yw)gVvb^+t5>X#mr*pPX5FIa!+CN-18w7vASeb7VEwg$Gh+!+@>X_2?H zPfXXWz4@IVpC)79HUOG)UVhD!zne;&8nz}xgdVu13iKlRunyeDGAPKjr;WngK>VjH zNNL##ZQm~q{C@u5SJ5#1_p(^n*jqEm{%0$Vg@=jb|IU8@bVvQpe%n1UWtxCG82TH` z1{aVAA&Sbd3X+l%fwPB`L6e%F8Z%3VTufJSH-a=(H_tC?z5BpeTGglUSuf4rHHf}9 zHQQ-hUA}+#^jM*N$G<1YzXe+_M&|zkdcV*8%JO88&*E^!73kDJ6vYC?4&V}k{;6`s zI2;wyWcZ8y0q%lPIY+=f*+hHW(qBOK^2kv{p@yge0O{ lw zM1~p=mF^mtJXV6!aZu_~n2s`=m7mX|3L( 1)IJ1p@T`SB5=v>+||6*-XF-(A+xs9KM~Y;9nwIg^AVbvT)S zz9Q=qjtmlhh9}SjP3^C8m{oqvJ$b=pgO0is3KzN|6O-JNvvZRjYMEq;0L!)JX-E?@ zkBmHaf>&ny5p)V7=}tCWHQl^@e(wd$2t~dUi2}PM^V~UBxgvvE(IhyAg!8(WDO`DG zoJH6k=wz-x7wv*VEr1gnoSuif6+8gF8itn6A4ob@5}(zmToT+no=iViFElSdkq$df zskZkUKAKA}YC;}RY!{i4vXL|9(TPU)UK~x1H}%^)U(kt=AGa@=R7(ZBLuv%O$-Z~0 zgbw+wK 3pz&oFl zTx|H`CKBAB7E!w#pR^~iJSH|5jSs(a;vOC(r0z;vYM7mDN) ?tWTF@IN#g z)Ah}X_$uaV**B?zHC SdP`Mt|^+GVB(a0hphlZCkf zAYvx8lO@yB4uvWyj~k3paT`aTFyteF%t1dDL1h~AS>we#NZ?GGHK2-VUb9QY97!qH zIWG|D2W}n7nK;Od$XPH^(n&dWx@=NTkejyEq~CYo)w(z`c(=!>?
>IXDwI6APFd z&=&sr#QoPc4dcBto?0Ul2ZxEqzi?1GM}GG|F_2J5Vha7Q_4|64)vif(S2g%KF9*OgcVRqEu6ST zJZ@1w*MC6+`;XGvXUa_G^RyF}Q)Hv6#5yM_>rV%KP0n3)?w^%(BRN-?1*^<;C1HRV z7egSn6wXBm$P+JYXja!$K`yg#@xl<*&~$^bmf7ib?y|P|yuy0&f;h3T+VtZn<~-4L zhRso2yu2sgh2`R}0~tu3XJ@52nP49JbR*lPhcj)u^4W>RHsIl*0}s`Yojt0=Cf^l0RuEt)-;0Y5$nr3Z^B*G?{Vj6`Z+thp9Y}jV0bgfM z9+#49k2 U_^XC3pl ;^4lT8b>N*|f3 z@}rvss+l(Y;ypQDVZ)5_gwl(EW9UE*Z||OXLG!6DaQzOHv>>`*nmB!pc
m!0A~MjuP#Z=DB!%MzW= z9BLITeqXh0e#PuQG=abbhpiQ?dT=berT?%55Aw=WVK+5yY?V26Ev#xXK|juuQO$wm zAJrSoZCVgdX{>-LPh!%^L{CsJ9|MpH;go@mrPTnKwhRpmLb`EiF {q;&n&5 z>J@dTsb#YRfc!1QEWEhz9oqTl8rXy3xDn=iQweuR{U9F$c~eWAUG&-W`ZV%6Rd0s+ z6BKx?Pz|h+f}}{l*B^JEdE7@)SCIE$dxO5Z2841D+G7$(-kk$LbthtsbQp(ieQ?p; z;b=O+q6H-p8xGw89J6IZ&F=2}V~7z}G#SK?s`0|^#th?u(VIcz&*r29@_T|;GA@sy zHzz4z6a-b7KZdSJ-4c-B+we9;N3KnUt_`=kpm1*W)E2j@az5O#t^n+R_-XaPzCl)8 zB7Zd_z>%gchZ~zvi=vla2uvE1W6^gr!_Q$xoPz8?E9O8|K3DI9$F*Z_?!&Cw^auJ9 zH(yD>r@llxvWO*Ev4p^Li}47iQ66@U9YWhAixEyZ0!9$_{{3KA`K;XSvHYw=t=hRM zt!rRFeAltlXM76Y?pC;n{0rsaB={DT ruZFf#b?B8h %o1-fLYd5!(F@v9E;}ag;3& zjZsh3vAtjZ#0bPh7BHlGXtQjHSSC{}JpW6uP!o;%F9O4EUYPLj`4dC)d#6-K!fUui zhd{#xrNUCjM$2uv5oX1T1U; QNF zW1oI#t}0$V0wtpSww?m@B0x+I&wP@?$9B gXg~o+EQxAif$ofJ0yQ?L Nd+fg`RgGPcu@h@tF=iz_UC=TY@B+2`$xyUHB&;E||^boE$^t~9n~<>Z4m)R#KT zH43;1bVXB%Pxg-Rh%+-$s~*EuXAl~b)-zfdww~nIRKX1T59lT64=rL@cbcfkHqt#C ztm|Ff@i@^LS$1_EQy$WQG1WdSTRJlJh2v;W) 6VDJzdV!3HC_#Mhy$#>M-A2Xz8ENG`2v^j0(O-Je8Mv2V po|!TUd}tYW@jf43eX82|z6^rW}2 z(+Ub^77x@JT&uhnA_9Yu@kyYlFuc$1a5 cD-wRkKdN&fa1_rq%uap*K967 wDf0tq!~GD+{`)}j`tvTLT`J^n#MH`(3or4{fKh33!0J-hm8=_wfP z(d&Vuw;EeCcO+AJn2Mi~ZmvQGoZf(3fZ4J@yW=k4@79f!CY^Lie<`X9Iv1u|PD-Q+ z_5p^6Qh2PzN`sFsRdbK6!>;GF>O <~mt=>*-hz%a5p zU}(7u&*jY%*B@DY5`PO6pmYTM=@M_CoRSK<q)wGABxs8~^y~ z**QKA?fP@w?K#8yyzSI|oYl$W>uEnz_=9nYZ4?Bw2q6Q6ZB$@X8>o3m_3Q~cF>&mE z9+2-56m{F}$Kd!o0GG$uhkTVt87dS+(|`~T#+~Fay4$an{y-C56CIB3IfZ?h)kEzM z*kSiDx$hs=oww=xkg(}V&4p6=>_A3$(+H(0q}-lO0-f$nan+e3eY>)L5YD(t;T(`x z1wRAIZLhvN3%(u VGJ@9S8Mpea@2=F0*47hL2Ufi z-8>Etdj(>093)NfJ^Jc zHLlc=LagAG6 6*rI 4U{n z!`=-YW+83idXfXdW+JeTVPQ=aJ0v|vS%Al$1wT%3U-HcC^7p{T$Yq}_i13T#5MK3z zW+7QUlR2c7R$h|f1;AFqYk-N&Y@b+I7Wfdpa@I=|*LTq-or%SB?fALag9s5N-z1z( z-m*aqbW1QE0Lmw`(@7^P21OxtCNIyszdz2iTX{>p{rh*G{N{UJB7#Dy e-0JwpM+j+IyEEbp{|B zQp*k5#5LpJ;z3sK;*QctSV(Z;ZbmtFJ=z3Aao}H=HWC_|z+IFm_X=Un(=LszOF{#t zWMz&`!E6nQxyY8?v0+Ra3~2z*)zAQC0WYnRV3-}-Uiq}TK QR>li_%w=E=sRFZN NdaPx@_FxcsFtIW)de|$=& zVtqD{)}f*0LG#7+RD{nrv|5r}7b2KDOK~9*4OGSDaxl_=Tn??3tu^-W>cCv +(AR)4 zph&7xp*w_8Qk77X4;Egm+MlF6Q*=AAh#U XL515*gwa%R}mF7^<)*d+&B2w5&wtJC~UEmBTDH*a+G>rYCUjtLtGj#~H z#1D4+zvC9_vk-Zky4vS(!en%nk8L6-5#M +YdBF0tUsG;{`fPN zyD*CM{+?{^J$~-wd3>bjZ)Q92Q{RP8som!KM+75r6w;*!L24IZ%=nTBVmH7Y)GWf> z)RMwP$`2z<8LqIe>n U=8XztF_hib=CC`Oq)o2QD}*(?0bZ_dWs!hIlshCE7U?0f^68V62N4b+gmnxfkp9H?81!kfua) zD Gni$r!`uK44&z=*hiPdzu_@=pNPK@d!JYe_n7n+I{GJ`Ut9Ku_0ygWDZ zmPW#6Zw>e9L&RW_oLbFGuYrcOF ~#>q;95Rla$&$ z_%@YMsRr4-`$mgphpLTxQVKuXFHWBYQvE;b_?NEWgEh3I5bW+YkSW}-pfEWQEjF!z zek+X$UPp2qr>kVHxH5zUP=xB zIbG<{zvl&YLd@`14~s_MVw%-KEg2iq_UqU}c-%lhc_WT&kGIOYL$y(Vg!NoB8dnUv zJ*W~T=RXOUI2UOSXX7afJgSRd7T2KX9856w (_g+vqU#l)R$<>v)MhL zsyLlW NnHon+S$F^ H%rA&uu`h!aWqwO><*JBpQ_E|C}-nSHxvS) z=s51={+wPX7F0m~>bbK4Pp@}2r^F+;f0a^@zUNDckVVarPW0_YJi59^S;ad$E=ua3 z4xDNbmdp>NO;9Z6TG FQ14JM&nKEl4aaFkcZNbT}z1IWDm!~n3bn+ z$MgTS-{L`VzQ$tEf2e`de&L^HGIBrywL$0+9LUL%+(^BC)SrE4MqtnE0PoFs7)Nn| zqgY~=#9Hpy>mUkx)P(SQ#{q6XmOoFG=#TzXSHzL;&Zhi41k*-vTTox5Voyq#qBtMx z{^OOkd&?!1-b5>}HI`$hDNgW~Nmv-hX3Rj*KL&@xX}BJh6yJmKOXj-^@6J~ x@g;nx{?y=Z&v8 |K^pC51-z75*RSuiThBu2)PIcK^UtImgx9k z$RX7CXQ^f3ctIMh+_QuG$JdeO_}CncqrN0&GDtDcMc4z0Tzsbb1%dhFzZH}K89@I^ znw-1wLv?W-EI1AlIfb=$7nvw?$9n?se=)a7oCCdw)s{<@G*uKcy2|{Pf37OC&W}_O zd0CRSoBQhLUj59IJ#y1ciQWkLvKyX6!3787VU<-~2=CrL^EQYLep5DM9W2%=vBy$p znEWA>nqxej5=8i*#5=W_;?ijsihW(~_dhT{dS&qGnq z$`v2N&TDbea&Dg$-6iRJjSn }@5)$|bB+d2V$^}#eZ(#h<>`VIW2dH&f&g`?kWkCnX`;{`bPkp~GM#1RLcBo+ zmKpAk3mGVproQ;1(m$doQ rSJur33lP?FZi6Sb|Oj2ngb21|8RGp7J zHIin#DJj4>nti^RFmgHLe8%(!OvN(|ONAlzET9utVVyK9$vu+gP1eYWN1)&pGmMsA z%FzDvY~@r0gqqa$ipHSYJ-~@WZpDxyCR`bVA>P3OB7jVeQN$FLzBFu#Dr;ihpe=rs z6e`(+11E|EZRcLhBPc4|*nll{WsR^6=F$fN<{gx>D4L58x99>GM9V?fN~lu2r_4&Z z9>*+VvnVStB_v9DNru>WbhgFemXz)XlC$62*iDFzJTKy5-xGN0mavQ|X QnJ9 zIK@cAS-AP+V1;P{j5*3=#gai$9qo*jTC88m0fhqyc_ae~>A$j@nTJwz!!59?TpBio z>NK4*d;t?=$^Zx=a$cnR=tl&{UQJ0-VGyOZML6uS7NSTt*v2uZp7w+fLr2uXhvx2J zB14(b?rASQ-5@3b)A0mV)q&Oy*CHOxy{i|b`ahaf*{G8SoT_ zf6L~t4U(8oEbQ7QgI^$%LsodyS{I4%nw374%Sfq+F7wqfJr$B;e0%z-_ WrbKG&CuJzKB1>EcU0b;j^+|Gyxh%Q==zrSDe@e$s8@<7^} zR#3V|2=m%2>ICV9{E$Ru7N9|?g(I!rT8IgiWUG1|=p(_~yz+?&(c_yque8o vh zvt|;V_l7nR3G*pO>|O3ti1SXw*A)`eFvU_2W?b+c6T24hAF|*FY;N $cna=TxH4cf|83_A4M$d&2DM9pK|v>9!l7ZKY*t9a6z=(M36>-UVw6e#QaS@ z^NXv@WSTODOfLzwYh5Qo)c3ioN*vcCYv4<##}0~p1gD9t&OO++g8o$bZ?H%qh7N*? zMXb52YCTNqzk|fPX#UG1`3U!ajCchZAk|NG@<7YhNAfKb&@URd@%Ep`Lq;>ASR}g5 zBl_xJip0k)8>2h4UfW-*hy^f+l(c)=sHgEryEss7KWkgz6;J%;-#J*5Am{ZyW>EaG z|Lx~Jy?(-Ub*c{@iEpqG;El{NcT`7~D(0Bh*r#itEm^V0{JlUI^`ZF+H8eq})o2Ae zbcw1wOJTR*M;_+Dc8#2dy|%pu#Ry$*dnQ+v(u+|E8lU#lf0;zo4g143UmP~ ETwgb+)oana1fdb``Mnc830uZU4kR~6h|}c3RJz12ObrSuxQ)}3 zvNY7q_}3$*8d;q4O|j^bIs=cBp3IcA|Gvf<))^S9jW7`4D=0zi>x@3?E;8M5vhY5~ z{8FPSm!G#n?s3bUA}9>1Ym}mUrwJeg+Ou^x_9uk$bwei8(3Y*PGGy|aE6ZOuYdKez z%{ELK?;6cI>lJCaQ8H@%`I%oyFKg>&Qg-P-m8Wh#cNcQi=w97)9=R4oL m9n9T8)hOhYN3sSVPTArV<*G;6VLO08xcrpExC zGGT-PGvTz0th%C5>%vW9c_^QK-oE=F1|B7z3EqePg4OScpM2Dhhos9ehU=8$k}P|C z%zw{^wp 8`CTrmyYh@*+>jXL|@YERwJ+RZN#E856SAdMX}@asb4)-@y@htipt9~ zYdyB^$G30aAgUNoNj5EED8q58%t;%iQ8W+n7}~})C}z
M&mnoy!BCl9%KQrxPm5OT9Rw-To_DONzf4PQk)QI&P= z${sZ6DJR5{YC`tlm)|&!A2$l83xt(mT1F^_D}oe$jTgQ|SXUGzh`b|ijBni$ cHUd5r9-bOp#Y%Q#9D?EW-RDg1sA)=!*( z^U%m2e$ARQC)gzD;q@d_4RxzS*R3 zUelrP>)A?pVTw4O-|E<9he!q;jEi8<8RwTpb~0DfIW$Y}D;BAJ-%k=^Y8=)bb??f` zN=Jj^@VK19$(l@~jit7JlHjWrW-tS4gmnXU0d!fWs!PlJ?q}H;JI4vgli@BMv1%r~ zsWK57+mh7w&W04VIONiU-tFDL#@&A+$fR=P6Cd0Ck}k~GX2&j{qLLPsvyuOiB?{C3 zxfG?z? 0izK<4q-1gDMcN?$6a76NhoieMdK`MtZjz et zg!WKQ{4y~nH48hI6bHy<;VQw%Fwt5liAb>F3!JA^V{m4?vD|Hec Z zwx`cze2ei>Pw!(tx;=7UMY}PgA%P~jip^k~n6i8bBe8x PpFd?xcIrJibuvv^Wvk|n;KX2jZ7B(68?&u=*e9-6SHYORzUn>eV7aL z(dd;l#FwuAp@#3atY5Q>`SAqO5!cF&h!bq~~o25
s 2l}~}_SQ+MH&N{5yn_d3h zwJ%)dUg6d@S|d6C-Yz%#eU&9V#9_RCX7n4yOUrpdEl{nuK0fGF8kD7*(AxYFq{NW6 zJF$d#S6uH#x|^=fvh~CP#(fjr=-ezczq~j}4d(EEt1-w{A9BEQ<|) zdB>%^Znu!;0{#pV+@_PkrWcy+c8#Ie!u*cEX(r8g2a?(rk4#*10y-D|B7}DS8jnuG zVF#owct4F!QRG)w?gvk-n%O=?!*9*E&BCxeQ?xV-qdEZ%Id8EltXZ;M9~!PLL^V?? zwQ`Z{E=;_r8}qAE{B_4TN@D4qmr~kDe@R#Aj0BUfus1a@^e#kz$y>Mme!AO8oYw4~ z)znH~f810@0zxNfDu|pY)z?DOA4f8VTp&d`JjudtFM?KJR{09f$*knnUfvw_!>QQt zR1$KP()4}yxjVgwqgp_Q+fr`xa!*YgnoKYS&kURFw8a{-X`i3W{`5BS34SgAy^$Hm z^e`SzrTio&`U^=8SYV_>)}kP;$vqQ07?~5yb8;mnoA&9zvh!wll}zihoBA*N-^}B^ zV2 4P2Vi#H=Lq` zbfbC*e(z!)S^~IQvQu$3 KewAb9pR! zuIJxbahQcV*gy1SKw>t}ei63q2JdV&BR3QL$cZt%aTXN!s8$^D5lfv)JRIXD%MTBD zTfLk3=iqZfIYNeb?6eGhiMF(KUbmD%ei%(TR@Oiv3MM4J>5OlnXhcg;ts#kazN)QB z{0E+dnqpA}P+XEBK`9;6oI8KDc6>x5vgZ+AlH*s5Z+!ntZ%fP<1^cbO_7kQsJZqC| z(WtV>ZSlwbTBjSqV11k~o6cv}pW2NN36X3TPO_TLl3$#8*-(5LKJC+4o+4b-vHVX2 zfn}fR`qK&aa(|nfMN7X3{-76UBuqSe ?hq;wlb*C{#&Xf?*yJ?iWsx@L^7J;lK% z_lT007IU&6y{UV9`bFBhTrK_fOb#B9%J|hVk@F0@)#8oX*`-?=)xK3b+CE>qvvyKq zEpc6q>z GNY`Bwxa@Djm5ZeKK94bds^HDxI}7XO$SdXWMAi(ywlDr}h_{ zFo(Jp(6q`+tE5*wQ!Z2gMv2h`4yZu!*BYWMx^Huk=*qc*@sAca)}fZ$wUXK@KC^ZC z>t9SWSt8c1fe*U;)CmI8j}R{{*`gC5;E}xTi4&soY?SYnj8k-Lj HXs>co89kEBo7pdM6*l;FGC-9;FjGYLhi%a?(oeQw46M%g-|s&Mi}0 z&qaOl43%@(^12C4N(^drwcBVi0oElUFj=)>lQ3nC4>Grk==LZA9+#23ncC01uIiYq z7pMx*QTOg6OMi>D=9M?3cAASTK_~Nn6Z3vWpKO4?mbLPKSt+}%E!wQxP6l98?gS`( z3@zF$+csN}QN!FmG|N`j#k`l-3d 7{6?-9Zl0mx8D@ z|I1Peh4ZI1-qCHSK1`>j<$2>U6<>UzqBY(ts6M;fnTRSzmQ{yH7NE$Co)_{5eTQGz zqj~3z|6(Zadwyz5{9-8UlYeUC<{W}T!rKh7ONPSOVhaI{RQdy{{{8bvzhvr{$#vtt zy{Il!9YcYXcL9s?asbL2JdipgA1+vyq?$mvs`Bd=D4Ku;yNjbE>!l|wKk2aUlC9Tf zipvpBPkT=4q<)h*iLcm_XL?`56Kk8F_xImk_me@E8ey*uwqDY8{qee!t4^NLR2wE) zt`<^e)06t1c56&fQ3>;7Sp9YQ6{4AY6sIos1N%L7BFB$u6`}C-09Ary;5JI;N2O2z zz6`}gVT)~Lhk#*|0Ay(<5y`mBJDqTtr-*vnb1}|eoVco_aMZ39+p&^+y{L9hi8upZ z|CqtT;R(_u`3a`qLOX7JklL1rF?M(s*U4vmwEhr!reUc2;GiHIiv0#ZOS{0nEb8B5 zg__>=z^#QXHeB*S%a1`UI$Z3b=^*@y@GtklypknfM5fA4qv_%Bs`sX<_h=6)Jp=^o z{pGt(ts{enR+f_mmkRu>9k4!;z;I1#6277$hQogjfb=`dx`En3`&wW$z6cTb+nq7= zXFjuGs8q7bk`tMetH|8)&r{y3VukwAj1?3&4=7QoO&muaeIweSC0cw1ERkbu|MJ-( z#{l?vTRsgLGv>iK%2wgZt^zBVcWt_ia0k`T 1tDc4?Nca_6Cny>T02VTllR7ZH`d%|)T2-hwSe zD{DnpPvx@ZJ?KsX#^gE}NjLPOucl*cxetz_nV%@McMqSh!)D9mXz?07a^S+r)0SRt z%;(m&6b$H6QS5r74V4U+WNTIhhVF-olc`1@D089vA(#(v&@^DD^; <}C8d;~v*`uYu-Y$VJmtb*JkT*=e|waUBCzRq$e| zWOtf?&M3Om6?Jx+5VutEVlBzJj)7f#?__CZCDXWQxvV9YXD`<-!x_Jw&lWxx>%tQs zqOkAG50r@_UCbMdweZME7XKB$Ad-IaFVqSr43GFbWR8&{8_qk`7aSR?%}8R92Kf~Y znsvq~;%|LsPw=TH=Z|-G%ktip^i^BfXUzyDJK{y_ItjiYPvd)Wq9}-a4(9K+^8q;5 zTl6=Bv+^Adb|IHfj;@%Z60{@1?27xc+XUAEsXV`F#Z9Zt-y{s=#hzT;4As`M#qcW) zLEF)uKwAG`d)kDjhj$-f+{sd*{SFS=9#j6C5CZ9KG$t~MR@B$e5YcH1>D>`T#n%Wa z15bDwwcKOP$XCI_W81Y)?JhB)ST>V+uv~N}2amw$!Jtp2(Np+@tz9st?_p{*V4XGc z!?6WkfA4fTFYMF%KpuEX&zZQ6=r0C5nS-(0k)FKQC{Bw7cJ-0+LFIQ|t0ww#`iuh5 z-)`W0|5|bS)F>C-T?eI!&N+zwz9U%jz <5ZtiJOL lL>y%Vlhia>W{UQd0N71b(mT)eANNZ zVh*pA`%UoUfnz&LURd (Uq!Oy<0a&zzx{E4qkb#koGId)e4klFmbTe zy`^Y`&gz1^WA0waOEjaDwbLD#Cq=IUk3ocWNc;_1%3-E9tYs&ZY`rR8WonXV#CeUD zwN`hS(QxEsU8)LW!>&HU26UlBc;v<26F8GvIKfVIZ@4~Bcg0ZnUeI5Vy;J<6n`u=U zZ(lx6Q?(8!mt_#wE4K)T0mlrv6!GIGe{kc*xSl@ZuHyUfa%mmug=RoxADHrvh wBH1L3|EmNV^EWKL` s5hcTDV@1R)f!t)APvUoyu$>Fqd%rW1Fzx zbk=gsl^#ROuo-I(OCu&7&&!$@#)sx0BVbNj#&^~{HYM2*=W^_pwr4s#PowhiN%jY+ zYInzH?AaJoL!x;nY{_Co!kyzE8+B40cat_Va5@f%>yEUvfh?Mv2@vJ51SnuIZd+x2 z; uo!ollg7>7&v+9@hncYB2EM0?9ma=BVtI?8|d` z_@l1JL%{5ZFMT+T&ixpDeM)EW*!V>($&IhyZm qITu;po& z&Q7MOs7W`M%xfCzfSpr4B7}a(8ql^FsqFypx~BZJc0krCAVu?t0z2n+28x`lc^xo- zLLRy&KDi60QjTYqc+QXRC+~0vV-qBKK(P+(zKFAj2vEGCq&`(CegX_N-63>KuL&j@ z_QKB%gx~SWcz_bzk(>-oorP$?{L&v9xbvn9U%UV10d78&-43!lSaQcv8{qDMDSRP* zN2m{fdx-TK(C$m5bM~T-d-nH$)CWdjH2lE+6$0_4>JH!oFE9YuSNUM{p@8sVfZK fb23`^cF_b0pm~M&`>lqr>()MFdA~Qh~+j0!>of z(0)AgSqVprAIs%LGb(2x`Q;SFu8yMc`AFHCju9tw{ir%SAD$BupHt9%X4ylt_l(L5 zPGy4v6wL=wDwu$vUBm?fDtXcKy!PGU8f_qii7ZT791{uyE`9~^kCdHInAEf{(Ezt& zp}Vwbd)Tej_DvTugxGLK-9#J*K&dE(xj}YZ=w|p~z&FzSRbYmC!;QY_!)git*pK{? z-zE=V?|zb-q(-Vh7Z8!3m~$ZwaCzAi RER5J#-^*pr#L4<`fntxm>LDx z3;Q6p_EPHjO-?N5r0<)egR_?FjHg31q_j}Rxe3Oa6pY%r>LAd?0&^kk?6&l~!&R$L zbhPi&LtMJ +wy{RSv4{2TtVhb9lklI^x8*@B+U8YM&d#Z2zwi3r<<4tHWJ1j= z2KXw{2Lb8w@85{rJY8H}>+SH++)YtUlAX>u+`M zQMWr#3?kCAI3vidB84gdKE>WOo&K9y>p<)j9N zZQzIUV9j77)z?h!9+){9Rh#FtyB~YuGVm$62F2w4u_jW^z^RlFp~MqT=AX5&C47u! zaB|98Ccqz(+M$suFj@RBhndOL0H@AA?#)x(PUdokoL%Ja5T&^6#L$pGSF6l*o+YBW zT9ud*@Ty9*Ny-0aCrD*I`652)zQ}h??E8+|#J%skLPaqz_t3!(2Yewav=oBB@R_An zV4n1Yg74tE;S3%bzYyH_O&}WL570lXg|EVkF+mIxmA}$|{=o}cw}& $ zkm)oKO`KM44n$@(q$BF39aBgWeWem{FgmKzi7B45~`62hlHqd9kJox*c!gi5P)d zCm{bbjDHpT_AMJ4>eUSTbU^qsR^h=nI{@l|gfzV30j3`nd~b#yq~l2Cs3Y-_c1X&V z!^JSRw{Q!e5nFd4 to8bqGP?tx-CKPiCJK$jdc zKFx}sFD6mvgyFCdX}4$rNiP6_O=>tHfAf;#ev?fxux>u98B#c;$9t~z(*8ye+3^A< zO)TZ;E^E?e>7&5ifaK zCbZ!|H%okr^wB`KiXaVG{$T{jI@}l(Qim9h)Bv|iE`{t;c}g)Y8X?})8<#I&KA3?w zzK B5&ab lq_-$XZo n)rA!ze=Az}yr9%qV^>Ae<_Ts wu_7iP2llPV| zOJY=(-xWoC8s4zQ;TD)3znAe<+=-20B?0wLQuu@yZ1Px_=375=x0#qPA1`OvA;zDq zT}f$);%lwi5??@CV5N!M0tnOb6W9yzBX+KWWpy*oY694^S>j#H1q%DY&cfgeF|Y@4 zbjxw@O;>-vhyTN?dWWu9ma5VIKAw7@g3A$)_&G6fSvRw)&<1SqNq{ygW@ywb5F-)@ z%AeRfZO(EKz}$bELYH}%ECPny_t=5!Oo)>AG&>g+6)Pe{M;+*>MO|THQVJ}`9XOX$ z@ +tF1>dhH^|lM-FN1Y+8gll8EMQ zKq;pK(uWKVPg*^ifTr4bqJ2AS=CaV~hO$qD(MWr#$QVkgZ7E{aCU7^!IXRUz%_MEo zNI9ltM#=JQw&>_thj`fXF)s{rWK;d_CKNxf-eNy%cAXr{8KIPdElPIWOL?|QjWnvI zoU4qD=HlG`jj#bMfR7}Z`@x6G3!Qf757wE)OU}i#vZt!m7%q>p!eo;q#CV9xs7>-g zJbl=nT3@Mi+TpYv=70!lQHH$O_}@vllh&vf9izJMVAOq{-tFP^E$tCVCC7U(bA>|9 zJsJ)^iq)=1F5oU)^h?wfHczY`P{zHNbxv=e&cnr}5MNJKS5?;oTh0Ls13T6Qn>RZ5 zP04WuEYCzBPpjPxo+|=mBv1UQ)+4-q!0JZ9acGpphWjam)jqx*wm{8>JUtTUliD*B zSc`RbIJ-rAqoqluJ)KEYmRnYt 7K|`#<_K_wx@NDNyb!*N2G{7OW zO}n1r-h`jlX2>?t_5E5wA`GS$=lDh8%!V%D1j!%_+1P}6w&U`(LtWhaXa-;ID@Uz! z9FF`dS`&r03xU2 pU+2}?N#fi3`6Y66z$h;G(Sait z<_jV4a}*eC3}#oB#z#hR$kBk~9@XTS&PAj%; ifT)onX+J9;6!t! zNbO}2y|3$}Y!*#t%e=!~e%)rxcaS1ZPq#X&+yZ%!zq#R(ju<>lWg96`PBKeL^^1l_ zRAgJPLp9H`gEl>@ispj8i(Prgvm7b5Xwuafw1eWLS*=Zz!AZ3E*^au$gp3CSlE$km zyr>-9A%|fUKSb#lGOFGuTwnME4aL;?KY9%OAls`1Dw7Hus;rXoh)MgC=C4RIz3R1* zV;9p)-+&yXhI5^96V^O`F|qZhmw@i4DNQ32z`RO|QXmj?Tye?4m+n#@I!G|uaueJq z&5JL2F`vll!jHPDw?>gq)hy6j!f_M}M>a5jeRh6 |mZIy>BXwMt?66uIwoS`E17jG%BD$= zmO{!nv@sCf&EnarX9W70!j!z*_vfj1hL}klkCrQaI0H0H+m*tpB^kH^?rKNTB+DaV z(a`c=W$a!ZJ*wR`!htbQ+&(oQp`C6?pJ~PSx$qP*2WakPmiaBiA@@xWDc{4`v#KYI zNE<*TNxBof0GXBaf{k$+o^K&Lpi|EW3)5g#lY$BZ(;yuUS?NC4w6?jhbmG93AFC^v z%r;R3maiFAU){kh;h31&(Fz$;W}vBYBUJhDE%Zt~Q+QmDiuEzal%_gWYZf61W)c^f zQ?io0t`9|_2RZm2948JVKskdgvU}6=)m`M)f4<%y4Dpq^n&joi=R>!}D{dpoql$64 zds&^Z6MiKC7H%YK{MoF{nrT`CylTLqJW BLm80<)@htxXV)7J$~jOS+GSpMqYX& z6gskSO-0LVyVJxL6?-h4zcSae;be|mF!iG{(uuzXQ=g1C6Cf7(Bz?FyxD3hUd!HAf zl Qmaq)JW=b9~KRYEpX;l?UYTDxLfi&S#>fsf1 z+w?LnaPkqN!kFUgnU-@DWRQV=(nn!*o^F1ts)^M=B*Wl@ }k6cBR!6LyL?Ln_y! zQivr24GRVlD-xj`ou?YZ4QBq6CJ~Yo9^8+n(I|U7kbgND5Xt8ufzf|igz`o8?aa-W z2JvP^K+jhDQ24|p3U>zrpA~ew^`oLS*ckMYHGyh~Yg)h-I9#cW(PmUeR?`l0{UKpq zF~m!`?%r_p>C72$MFq>f`h}xg4tElVu{P{>& 1npOLWJrKFhc1F(U3Ny__SgiyID{gH=1C7%KZiWm{FKMixv0ATKXu-hPL?dVeb zP>KDB#DTQLfp{`toFNc)IIz0hu-gu3?Wkl9q|*BeWP!Yq5O!>^+Zq34!N&Ifu?7o2 zWXi*8){Wvpy~ItjxJ$reJUY#}!+YN*l7i;EGjLlGAsbO%4wErj1-y(WTX-B B?9gjTb^@ZC| z>Dbd6G-z75IDN3s#_=<&lUEi|(qGef0T0Yvv#Ptvu(&np=E?!-Y3TzO(bFda1CfRM zWLk)E-t5xp71T}I8A;K-QBY}ul#EiR*C^oWA@H>}bVe+1(NT{s1s^w+RSL99E8A`2 zB5Sd{`oJ&$~G-{F?-+tk?TZCJXX08CIE+)LvZeSDv?p!}I znLZ`@_d|7t8*R-=>ZXXNLZL2h>NEVLM S)sl%~J%- zY9gywuVxLz7ei92l0%LN0fAk(O(-!BmT;gA8S|Vt^pm=h8Iljwp_ i$R~F0?8*0d!#mIDJP> z9`Zo_@JB6;`AJNVM*L+Bj3bO>SlrMl6r5zkR@;2Cal7`^fWI7{9Z6~RZ?|LRy5;6c zc6L)GPvT3&^HXv=b@A0)TDPexh;~=*P5o&djH4DQljXDJ= lE_%SQY^HgNV`tYh z#CcG5EXpp~M}FuO0;ofs@JCbKV2)c`CZRR)UM9n_Z&G=s-`%g1y4)xDmEIy2CEtD( z`q0q4JYGMBK8Sbj&>B$ed!}-}U!~UFbAY_P>%T$o5)%KzNxkJFP AyMeziEeTr0Y;_oL7Z6e z0h?}w7C;||2-jaw3?asjs88tF$)Ebjm}E05!%*dzcn3C))YT~I!kW5B*ip3maE|0Q zXc_}%UjC%Vdo;D=czy&Qa=OS}BZ&RzI)8^}?!qhr`yvebDS`U0G9PeFBfje@d_uTy zKasGI6FKaLm|YC$TWMpx5#WdsdYaAjd%~NH+FNCG _u(bt-AF^h|2c)tVT!&sZ)TcV|O@VUghG<5)8 z>H&u>vdxHOqa$1jTjhf*eww9vGOlO!$bQ9orFsguA5hh+wez)PNWDR<{dIccY+i#@ zw!N*ejVZH njnp2X5!g|A4>Wmwt z|G*ROLRnQGezA*`qOR8T&ZO@FQ!qyQpmrD6Tpce~$Etyc8=<8J-mspB&^)yE3X@xh zUtxM(N`D(F*8x=K$~0{_4GrW1y0kV}KSC(Dn8gqJ4>l91@CUk7Fpx?#9&xWJ7RUaC zYLqB(tx%kkI483W@?4vtt0#}=r6XxA*>{F6GAL}&VwbMb;wfY4=j$I#DP!$s=pWFQ z@QQCS0{X6XsIIe8#5f3kBw9;T@FLxunBZ>n4M_f`+f^WkFd5raVo8}^XfNkmj&oCf zx`?QX6& v4Y9_I|&`XZD58mv1UIFM_0z zm_TwIQhblL`f(isb88Py7v=`->0EGgQ_M?d Tk7ZT%`eqmeHOPBeEuzYf{l6qYHR MK_>ze;r8CdUG>{;zuLO0*G1h H(&8Z{s-+z;0R}o+RW8ZUX zc<=rdGEA+Skc3(l#n)i-$2UB;K7UJ1$ 15OrP&t{SquM?ePqGL3957 zhswHaNxoyx3j%VR@IM)PS^gJ>-v1XLm 84^PA-Lh(nRl6LCmK;fT6YN((g$EV3 z=rcs4Fgi3tbK`vDLiP(FBCm}&Q-U_z4d%Q>eEjqE0JjfXhKnAGcVMAStLs&1yz-VM zuhYubh_m%)_DNMhWu{HNQsGd@Xk}h%G;#T)!lFF}Zlf3PI}7_#^Wdt@