From be0fedf12a17238280d12b40f304130d1388a5de Mon Sep 17 00:00:00 2001 From: Ahmed AbouZaid <6760103+aabouzaid@users.noreply.github.com> Date: Fri, 11 Oct 2024 03:07:15 +0200 Subject: [PATCH] added: hivebox project architecture diagram in steps Signed-off-by: Ahmed AbouZaid <6760103+aabouzaid@users.noreply.github.com> --- docs/getting-started/README.md | 5 +- docs/projects/hivebox/README.md | 101 ++++++++++++++---- .../hivebox/hivebox-architecture-phase-01.png | Bin 0 -> 95310 bytes .../hivebox/hivebox-architecture-phase-02.png | Bin 0 -> 95527 bytes .../hivebox/hivebox-architecture-phase-03.png | Bin 0 -> 95577 bytes .../hivebox/hivebox-architecture-phase-04.png | Bin 0 -> 96620 bytes .../hivebox/hivebox-architecture-phase-05.png | Bin 0 -> 97975 bytes .../hivebox/hivebox-architecture-phase-06.png | Bin 0 -> 98211 bytes .../hivebox/hivebox-architecture-phase-07.png | Bin 0 -> 34524 bytes .../hivebox/hivebox-architecture-preview.png | Bin 0 -> 67791 bytes .../projects/hivebox/hivebox-architecture.png | Bin 0 -> 168716 bytes 11 files changed, 81 insertions(+), 25 deletions(-) create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-01.png create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-02.png create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-03.png create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-04.png create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-05.png create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-06.png create mode 100644 docs/projects/hivebox/hivebox-architecture-phase-07.png create mode 100644 docs/projects/hivebox/hivebox-architecture-preview.png create mode 100644 docs/projects/hivebox/hivebox-architecture.png diff --git a/docs/getting-started/README.md b/docs/getting-started/README.md index f4f3198..f0cd4f6 100644 --- a/docs/getting-started/README.md +++ b/docs/getting-started/README.md @@ -40,8 +40,9 @@ How to process: - Follow and implement the requests of each phase in the same order. - Each stage builds on the previous stage (the phases are continued, not separated). -> **NOTE** -> Each phase of this project is tackled gradually as part of the roadmap modules. But it's also **standalone**, and you can work on it if you have the required knowledge for each phase. +:::note +Each phase of this project is tackled gradually as part of the roadmap modules. But it's also **standalone**, and you can work on it if you have the required knowledge for each phase. +::: ### 3. Mentorship Program diff --git a/docs/projects/hivebox/README.md b/docs/projects/hivebox/README.md index 07083cd..9aaf9aa 100644 --- a/docs/projects/hivebox/README.md +++ b/docs/projects/hivebox/README.md @@ -1,18 +1,22 @@ --- -title: "Project: Hive Box" +title: "Project - Hive Box" sidebar_label: "HiveBox" -description: "An industry-grad end-to-end hands-on project to learn DevOps" +description: "An incremental industry-grad end-to-end project to learn DevOps in a hands-on way" keywords: ["project", "real project", "e2e"] +image: ./hivebox-architecture-preview.png --- # Project: Hive Box + + Almost everyone loves honey, and we at [DevOps Hive](https://devopshive.net/) love it and appreciate the role that bees play for the planet! Because [bees are essential to people and planet](https://www.unep.org/news-and-stories/story/why-bees-are-essential-people-and-planet). For that reason, in this roadmap our main hands-on project will be for the bees! We will utilize the technology and open source software to build an API to track the environmental sensor data from [openSenseMap](https://opensensemap.org/), a platform for open sensor data in which everyone can participate. -> **TIP** -> If you are looking for the full roadmap including this project, back to the [getting started page](../../getting-started). +:::tip +If you are looking for the full roadmap including this project, back to the [getting started page](../../getting-started). +::: ## Project Badge @@ -29,30 +33,31 @@ Preview: --- -
-
-
-
-
- Image by storyset on Freepik
-
+
+
+
+
+ This project aims to build a real system from code to infrastructure and everything in between but iterative phases.
+
+ + + +
+ - Understand your role in this project and how you work with other teams. - Brush up on your knowledge about Software Project management (Hint: [What is agile project management?](https://www.apm.org.uk/resources/find-a-resource/agile-project-management/) And [Introduction to Software Product Management](https://www.coursera.org/learn/introduction-to-software-product-management)). - Decide which Agile methodology you will use. (Scrum, Kanban, Scrumban, etc.). @@ -77,6 +88,12 @@ Roadmap Module: [Welcome to the DevOps World](../../content/module-01) Roadmap Module: [Basics - DevOps Core](../../content/module-02) ++ + + +
+ ### 2.1 Tools - Git @@ -108,6 +125,12 @@ Roadmap Module: [Basics - DevOps Core](../../content/module-02) Roadmap Module: [Start - Laying the Foundation](../../content/module-03) ++ + + +
+ ### 3.1 Tools - [Hadolint](https://github.com/hadolint/hadolint) **and** [VS Code hadolint extension](https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint) @@ -157,6 +180,12 @@ Roadmap Module: [Start - Laying the Foundation](../../content/module-03) Roadmap Module: [Expand - Constructing a Shell](../../content/module-04) ++ + + +
+ ### 4.1 Tools - Kind @@ -210,6 +239,12 @@ Roadmap Module: [Expand - Constructing a Shell](../../content/module-04) Roadmap Module: [Transform - Finishing the Structure](../../content/module-05) ++ + + +
+ ### 5.1 Tools - Kind @@ -222,7 +257,14 @@ Roadmap Module: [Transform - Finishing the Structure](../../content/module-05) **Requirements:** **General:** -- Add a caching layer using Memcached or etcd. +- Add a caching layer using Redis based project [Valkey](https://github.com/valkey-io/valkey). +- Add a storage layer using S3-Compatible project [MinIO](https://min.io/) and store the data periodically every 5 minutes. + +**Store:** +- Endpoint: `/store` +- Parameters: No parameters. +- Requirements: + - By default, the application will store the data every 5 minutes, but by calling this endpoint, it should store the data directly on MinIO. **Metrics:** - Endpoint: `/metrics` @@ -241,7 +283,7 @@ Roadmap Module: [Transform - Finishing the Structure](../../content/module-05) ### 5.3 Containers - Create a Helm chart for the application (Hint: [Awesome Helm List](https://github.com/cdwv/awesome-helm)). -- Create Kustomize manifests for the infrastructure resources like Memcached or etcd (Hint: [Awesome Kustomize List](https://github.com/DevOpsHiveHQ/awesome-kustomize)). +- Create Kustomize manifests for the infrastructure resources like KeyVal (Hint: [Awesome Kustomize List](https://github.com/DevOpsHiveHQ/awesome-kustomize)). - Review Kubernetes Security Best Practices (Hint: [Kubernetes Security Best Practices with tips for the CKS exam](https://tech.aabouzaid.com/2022/07/kubernetes-security-best-practices-with-tips-for-the-cks-exam.html)). - Configure the Kubernetes app manifest to use `/readyz` as a readiness probe. @@ -263,16 +305,23 @@ Roadmap Module: [Transform - Finishing the Structure](../../content/module-05) ## Phase 6 -Roadmap Module: [Optimiation - Keep Improving](../../content/module-06) +Roadmap Module: [Optimize - Keep Improving](../../content/module-06) + ++ + + +
This phase a free-style user-defined enhancements which means the enhancements could be related to any part of the project. Here are some suggestions: +- Deploy the application in Declarative GitOps style using [Argo CD](https://argo-cd.readthedocs.io/en/stable/getting_started/). +- Prepare for production by setup DNS ([ExternalDNS](https://kubernetes-sigs.github.io/external-dns/)) and Certificates ([Cert-Manager](https://cert-manager.io/)). - Build Multi-environment Kubernetes clusters (Dev, Stage, and Prod) with Terraform and Kustomize. - Use [TestKube](https://testkube.io/) for better testing execution. - Automate dependency updates with [Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide). -- Deploy the application in Declarative GitOps style using [Argo CD](https://argo-cd.readthedocs.io/en/stable/getting_started/). - Develop a Kubernetes Operator to handle the app operations (Hint: [Introduction to Kubernetes Operators](https://tech.aabouzaid.com/2020/03/introduction-to-kubernetes-operators-presentation.html)). --- @@ -281,4 +330,10 @@ Here are some suggestions: Roadmap Module: [Capstone Project](../../content/module-07) -In this phase, you will design and impelment your own project similar to HiveBox project but with an idea and a tech stack of your choice. ++ + + +
+ +In this phase, you will design and impelment your own project similar to HiveBox project but with an idea and a tech stack of your choice. Check the [Capstone Project](../../content/module-07) page for more details. diff --git a/docs/projects/hivebox/hivebox-architecture-phase-01.png b/docs/projects/hivebox/hivebox-architecture-phase-01.png new file mode 100644 index 0000000000000000000000000000000000000000..2da4714787618914915c2497dc70fd4d7a383956 GIT binary patch literal 95310 zcmeFZ1z1(<+BLke3vt_mih)WYh*@Rt-pjk&s1kGg?QM9!UV-;X8h z6ly^G5P-xs;FxbA&^#&R8)8%s@;(3>uf0G<2uNi=?-G;Hy2YXtW71jb)0AZy3QPf; ziNYo@u&3j0GYrc&1DDWWUe$h~`%_O4TArc?d>A{Eos^#e-W2Icyih;svr6ZJK(p zJ0$&a>z8gFkE<}ML0};$C0RRP6~0L1h`?2v8_!*Ebv1|bga~YK(U3fl3>7I+gCO74 z*%=AcMhF^E05#Y+&9RoE;f3Xa=XDJY=?u@<_=H#naq0?)B-W?uroO(lMLLhCUTu)$ zu57?=uWyZro~puz?>0&;3gidMrhdG=jhFeh>UR(*Z-FzwUO(Zo@{+i`&HFP@quahG`-mJwYRoVnZc3 zs WRDB>VOE^J&oI>P@N0gFHM`s4oiHwRZwcxlO1;vn8 z=qC`?OprZ!MWHPapOd5R2eMxLBE{y0OENGq5i (0>( zYE`7Ft@VDXo^9JDwQ5<3tZphYM<4&fcN|Bga!mTxzy>uERK5DMXp8^cw3-}5wAZ-# zabe1q e7yw zqy{r5?#H+XtZ>T3p)0WJuG*H`PZk2J785hbS@F-Thz(RmoHXQ)b8;8V+{$cWVSW!y z g?AVLjR`FFLiwYgP#!K3 j})yfnL3 z4p9`FI~F5ixc~Z5Mm%>6t=3)~;c#oGQzQ!ch1ZEYc|}Ea=VyxNrLWp8CJv(Yh(Q9o zv5DYI#Kk>OlIv>&Qw%uHOy(Uvio{vyknCO%1D#rVYir@_nb_!PqUeV*JkZsWU?B9P z`tF_Fses%|nimz}qPl35(hFL(&>l$@o%`VnTv ?X6*w+=LTMr&44h#&HPUL3<5knrf`$o!5MvtEaDiN@QXlnMo<2m?|kBCyS z2uIR>lDD@$CQWV6sd8N+ncbq}e5@F~!SP$Vzh2lEY|(X7NG+TQ8JJ-6c``q)JFh~z zS-?I;bJOO@>S@PuULqI=8W{&E6LM$rJ#Qu7&!6w#%M{Mf&GbS3Ml|#7vqMfqM-EnK z9~EeuG x*YIoIvk2lQm? z PGApu>@&9C5&^kGM6`0-l}7 zE>?l2zs+OD@)7j1nBEBya!3Fdz)JNgauTrk6oFC$MapqhlP)7~4`4PZ9%2hKV0{<# z*W)cH6tTp}BfB9aqGDNyoP{W2LFFj}CWpE7u^=JOeiJOdS6p1oWQrc^G-e}G(HUn~ ze=0^QZRmhw!8@7YjDAss2g8s_75wK3u@>S>xKsl2-WsL%P8QD>R-464{Gh-8=#k|W z3fk%lK>GD5+RYt5= q?0cR#X5-`XoC5K%|Kw70Yof3J602d$q@9s0Fe7O7wbTg0lb^o zkauAB?#DXnA8V)hy9Tq{RSgWHh=dl#ph;xx69uIG>GsoRZ%M)*&=-IDq`vpl`?qfu zumnUFjKQ(f;cg?;$g-Avr_?a_i8BigN>DQkMAQtVapME&m1aM`e|7;$g90e_!ss_s zlpK(jWGgEw?&+1vE`ksD6e9?!z}bj)Ft =9`=Dq=)*8zA`JUXJL6eCj& z3E4riv7}W;Mo-X4tz(@3c@m~-in!+&1yz4P%oDV1>=PuV ZEB@@;rPsv}gX zpy!CSNBW8+fR@p&8%=MtAmk6~i!7_wgg^F5GV}2%L##j#r3uIfg<)CYGG3tv>~r>q#)njH44x2j0X=5I zmA-oQYO{m)5zn~-Ff{Znn>TNcNjI+4nR;fJje)yrzbJ@r1g1UiN1@wFM#qw8(KWqo ziH@!k+zi7&h~TkAl!E>-w3MW>Uc2)sGnGVVNd8D+h217IY91aQD9`+$eMcOU@vOm^ z281LeW`Hl?LvNgFHdff#)wK`R{n(g2{?=PO*Ix`NjX}XA)Sm&t!Bh#5)EYZlSJFVP zj>O 0FjnpXUk}_0u$T|O22k> zp=170{m%94Iep#Tot^qeQ&Dnb${}=_Fx`q3agz_AXv4gVfa?GxBemw#&Ct0(WGGo# z2nBVx`$RAV18kTO0+o|>$lotz$#GiREL{za1kB(u&?wk-Z-G9(#}2Aje{e5pDf T#>{g@(Wy65$Wi(W>uj?Vdd8tpGsJGFv|X`}e+bt@N1pLF@- z9>>i$i}G(7GOBI7pgw-gKu!L jSE6P7Cj0Yp-n7KN4<0@oY#@?b=`I~)#dy^1=ToL$xJ7z#eR+a%yyBkkd2X|i zRlY$uL88mz Ewi()F9DWe zhGa1f?^J=(LU`hn{zM4WA )oaMY2-v{(kpD>MQUPaFz>C;)8Y%z5p87Y1P$`}iz2@wBnAF~y7iOjFa-@1Pq( zoJr$60 jLq-TRBbw=JWHO_dD-{b`*9&v{!i5>8>5sga4vJ6Ds83!_Fv^D+@8A{klj zk@z^u{0^-FPw;@SmTHQYsdX_DX$G1JfNU&K&V_r =t!vLZ68R2V||Ri*s^-{YQ#o|3jN}vTZ>@V2>n?6yu>>S4qsla z1X-P;oR5(JqGEGuyKoX9K@~k5KR>@QEPete00iCKpq&S&r3Nzoy-~V=RSP1;$cSQH zf(rO=-M40$eI*wc?|YF0j)sMkGqv_SGOnDJl@*Ee_TWMh`uoAIkh}~EHbx`UEMQ8b zxyU^q2}T9t52!CSKz|*~ltXEV+s{CO2qPkcNf^zjmtDRUPS^mU4(L1sx*62csTT$x zLd$^};~KDxu%G=-PLu09iPWS0d&F!`CaGdJ?GVQQ=iEVTk29@_A#4& 0FLlgA3766P2f#)*&@6!udm<;Ex-?S+jU(lb~pu?6~3D(c_$CuY3qMk*2 z_UsuDwjw$bh*=8fru%t9D{kJoql&RQSh_~@yiR!_djRkcD6aBzX+$6hDV25nc!Fv& zYh-mCLe)$Tnb9SXL^??j>KmUOM^qU-f2CnGgbB!-{QBX;hlZmQAXsOAjaCvdUl-ax zfX-& Hk} zuaRN$7);z73xPyTS4_02>zCfH# Z_-#%#!ipDEMN;X=b zIhcr4)DJGXHs^fj*Dqh5v=zFNK~8+3TA|~^hYvRb9snnm8>O=#dE%Px+4l-a>FT!g zv~sLMSc+T&FMfuU6fQ*xX!-i~K3QCFqL{6|cZm{Eg$5D;W-Q=iOF%a#GjkQ3o$QTw zLOG!d5mA(c6W@Ko 1N|0y zSG!)L*34eITXi3=RZC9)TICs6{K0T;-^55sPWC(Wu=Y?%b%(L8D1>`+jFpgI=eWGs z%FoZDG|cTPqos7+cz(7D=7Daab4_;4tYC`3)}p;RO2Rcl4t-2;S6kQFjllUp=v@pe z@!SA`E9!Uc<7cKwV+dx6J1PA6<(3Qjc%<;aud)xgjsbxyIyz>N>9|L5M3n^PY6t?A z6IIy>vkkk($^F4flEi^5|LD;9<50>GOGTp<0 6pB={F)4293zGbxjD5;Y}Fv z7$m5PaCPYQ^Mss+l2Ep&!4dry7;N0j1WVTBKw~5jq6vzuXX*zv3SBazq$i&(gFF-6 zSyIEIfb*>DZA;y_V@EQ^ru$KiW><#s+jNNWn^cMUS^dm`B5xp@N$Mj4K`j!``s@m{ z+UUq^Hr#@!s!3jul9Q`Pk0=9MMkaR1exaN|A-sng!fSj7?Z5<5Dj?u~1g(%8hq`~q zYp@hvH}AmW-vek$9Tf |W0lnWPOry`6#fOHQ*9kH9~^79Blwwa7Jwb7rQzUHJEP;em~ FzAjEdoMc)cA1qTO+B_zBR>8ioe%l^E)7=;_#i*JFhy~J*MmC8?F-BEH zNtAi+^(rFj!=HpMj6?yl@}Yj=;9KBqthkRSNqzGzeU+dPc@3kb0F=>QUS5jjAaD)R z8wt*6ZbsxURJ&hX?0I7xVbf~9$>djZO*?S-IKnL}_!5;w)xyuk^jW4gl28iVdws4N zNk58Yuw|EzA(|NqrGV2XqhkatzCOp|FjI=U20m)w+459RoT`Y%7M|pgfLm=2La}$s zZ>Rg1f;)y}New|pUZJX8e{rYR5$Geev5hh7D69eHoe!EU1ZED(QRIV9NJwyRlU@oo zDIegS6~Pzfg%EnU@lVSe8q`Py409|T?5U1~T)G+;Z++ Np}yL2fK})4~uQVGBrC z33=*C?Fiwg!NaMbX-1lhs8D;c)2g_CLK>m5|K{~;3Fx9o))=o6r!z&bkQnt);iL|F zOXU^ @R z{=R%rMVniVBJcE*^-fGJO2D#U VmZ-Gpi-O3Ig6q| zL0Q=!-%E&^e*!A0YnENUwr1NCV%I>Oxj^lFwqH+i2>kY>-7gXBEq+BWEBQBxI6^D` zSI{AkBAPfELPUWalah>7z)*$2Qks%s&p4azhEps!hu6rkWZ418sSC)&6otZix15&` z&57y-N}aNaLXg|0ztOGR|MtM6?O_}C#pPhWJ{knUs*4PM0Re{d^CR!+N*He-m0MUG zyh<+7=491|#6{8zHn-<0ikf}<_pkR`>~&dB1|vTbCr>A>;y^c_bRgE{q@Wx?H}Xwo zrLXz21_^6nat0@QatY+8 r&P~51GOMU-3MZ-eIl{ibq3F3AOrw1Xd Bt2L(i-=wug$5KF%m)w3?3KJNfA(wy$_R)QBC-DE=#mmc{1X!a|CwU) zFoe(44~5|PXK%(naH$E3(Kq3WQHb>{gd7BGjMAYCFp}tXAb;vSL4 k32+di`lq$d#(-NPW(~=+F33|Lh}s6_6f}Oddwq{C3|Ww2859PC%@)mBvP9qo zlG>`h3}A)Np-=hD!Of)A?YEJUF%?wwUoM&f{t+yFFE}WGm?|RA`ua7Bh;ERCY9KkU z%e6Bu#5_Klk`2hRc)m;$(ahnt8`N~&U*A9^ERlt2us#NgUU;ewt~(|71F5Vr6i=Qq zv2jh#;yH8%n4$J3vb6K(f6!VtfHx%`ZdR8-f-t%X@lek&W6HU@x|)aHhe#5D4q{Mc zP!$nu@U#`{_LCU0MZwZFFp#ugHsn)TcT<|aH_U^?6Og#1L}|)%Fu&1#8Z;=7M;#sx zwQbEZgjFaKsL;dvV@v^0O$Z1JOF@l7G)f&O7H9vF4Iw 2!=#}n$)RNcbR;)@m{+`<0R(2c1JBF^o1ku*a%w=$|*H3tip)x$Du=qKFv9x zu*|e>7cn$2U ER}RD zuUuJj_{b4yzru!BU39M?pCVfT%ijz1f?}o@q p>qLG?1qi6d9LC`1I-iMp8%M`_IIVFz2kuNxZl9;a_wn%nl;wE3 z$vNx4IEQ=p9^(_`$UGR9tAYcd_)uddHcqixg7pqi1_vwc_Mp%<@L9Pf#>=0`m+aUK zEe^)I`oK&2HChCMvID0Vhg^VlMBWkKSFa0&6X8t}{t4}doQi;%M2-R@iLYS81D4RQ zGZYEDM$6EL3{2)IP?n4}nWwU_vsV UlVO9FasELB!in<$+Y#uK?P5`#X1B69}^z==1pTRhn7IBC(4iBweD 3k4gsi=I?zQkgB}QYHRyvVqXmGDfNN^fv#ppHHmVFuM!Q1?7l5VD@{I=9K`Qp< z&Hd4 j9^vQDJN9Rs7uz>Ela|KRi=o&EJU 6 k&F z4Ox%D6cB! zrB@^sR&=aA^;g=YP`V@`8S%XGQv2lTgDnoN8V!*vN`{ku{@5iE*8v1W9v`xbrX#Qs zk~raA-Lp$ek|pU*A6n!B3X%MjeEyrf b1-{fSmrD9krz=yvC0p9;lUMW-746Oa@et;ctyYkil z`MUgl)w+~19}d}e5?m`tBg?K^4$sxOfr6BE%>gO0y#A*FuJA;(>2A?^77S>)&Wu)y zref}Jo6oNbdW!r-k0Awut|HvXL-rt6G345c7RNp+=wcL~eoTyvj5n81; ?%xfqS$6>*&%!zdgy-NE{%C9jpQMWwfap2OMv~(>>7EP%RuD!o;C&eot z&kGd;fsiITfvAbh$wEG>=Xg9~d-LR|qovkN;j<61(#zhytkL9_?W|2RX9P#HbeZ>? zvf+<15~7xk5rz3#2|6$L@0<8x`Achu@WZ&+vSP(2?z4S{P0#c)OHaGpKMruY)*clm zYKwcX)YXC1Z>(F*9IMKyo0QC;mgwT_uaVh*F!Fgsy0Khh+|xHjA0i{ep2$<)4Rl7g z(68}79cEVFY3&zvHB^o&BtiAEH6h+bld}v7WV?{lewAjAU&pv*hn2! Wl$^Q zB|_!QY91#tv50c2-9K=Yg_;+8Yy+*c^H*BYZvPvn6E(w+-L!0z^2>1Oq)*n&j5={T z**!nYwAt5OS=m|Pxk{pG$5Vxoak`Ex3*IzmennmEaE4u(5wfyFe`~Q!b8fC{&*!r6 zyG&pz8k;TsZdQC--><=5&%+q>`dqF(TjX0RgDPiTl9O&jyY7R7k@r4NdX2 bCtkn)# tNS(BFPEs1_r&ce@@EiJ97+iY4_s0lhfl0IVhvOhNL=;L#C_YzK?uzf+UnljIi zVAUl*{yoI3DknH=Hb-(>_lE?%`$o1rhkHK_yPVdJmvr`j|7}n5)STwkYgfy)3{+(- zT4+U$TV1%DW=2()E?LGBCv{yeT!tm{L+^&N0RJ4_#^CNutMT x=zWpp~pS{s>P~d8n 0_B-qh znT~Z%tQ-Pt368?FTZI%Q57anhhw|%(e295eFFH5bZhPLLaA;b3%ZH#;&xk!w%$l3g zv{`gn{A*`7CpGVGK)m7VZk8+w&DIUAr#2^c#ppKl-e=Jmt2^K_J*D<_;LC`2|Mb-I zzP8PS8Ah+q@msiYZeb^@;co{&+ZMh3$diGj(P^dpnSIp5Tb_;MVPx+VwURbl3dKvE z;_osr?hU%UvVm5^%KQCj@3hC;hQ9Htm#b3NC*-EL)t}ZBjFaeJ`@h(G%do22u3dO3 z0xBRXiiCh7AWA6`(xQY&r+{>abT^6$ihy*32+|?lB@NOnx*HbV%^nNy=Xu}#?q`2L z_U~^V_i?*eYp%KGykcBqoZ}ql &jM*6ll$VH5kNoXXqY zetosPUEY9%!_135GLq39znOSJKk1Xo$gqu@A2#yo4)5Vc`X=## DQw|Cbcs5*whYpm%qW#)yXi}CfoCZZ;6tr4=%_;Kw>nUSFH1>k?GD$Ob3TP7gfH@ zHz~hJ{8JU;6I}<(D&)Mj(T1Bh=({&2CUeAB$D^#%Z&YN1m2b}M=3=LvmsVt9*MBpr zmoIPVW-BhCKFFoT@$s!k%{s3E;P{lWDe?QmI7jmi?aQe$$P?#7*U?P*mI`Tp{t6Y< z5te!X$2+>G4$H9tRQQriJe!rLT@x>`^Q=3aXJ%BsHBBe@svgp2%5ypF?>)SeoO*@k zNbK)YKLaq8l+b-&a)oUY|9}LoTqR-r`>7(ie8CrgWd>Q@eG^-D`sufkK&s2!C}&7i z0yWNT^FWi}wsu6bQMN&EX%^a-=OMrSFzu&eWN!w2w%;n@pKkvIjK%dT4dSmt3~#nR zhA L(`PT0Uogcr^j&bA<$a7m|bRj(rC#f4vD(UnIindWZ$6w89xAT?C za827SFexb%P;RP7@%2q!8M$RgqtVpzjZMoLimO|1cz(xQb8~#gxrLB2jN)*SiFMrz zAtzr?`2G7H?Zv-7L^CbZ+ 4EgC0-_nFAkiZH|%UB*cx~gUFtd7LJ^ZP0tJ&zTTFpM*xT)J4A z#v2=2==Xz^t+Pu|y%C8N_w#iu5lFUTEwwWZ_RdXnIYrjQ=WREzQa`6(ka?zX7;`{9 zI1FMKBnngbyJp|wdN`rC1}hoaB4I2h?KGeiT$36HI~O-QYN!i}Z)?eCkUTU~=MxEa zOi}vceN!oIMc(Pn{@y;!*J70-@Zk%g@fc2wd_VaDuGpT(uI|E*7s>KEGzMSIj?dI| z1>Gs7p4ftz2sv7`DYzN#y;Qh9pc6<%jMo=4zxii@;BuO@EJU@ap42z$Fu-21MRv8R zlzd!M=9gVeAppPZ;9wJf35piP;lDb)+^DE%(e%^h_r;YvSB!u1aIw+dpL 6s(MfL`BI&M-LIkqPg9`D~IBEP87`wD#C&D5ca$KwvPmwA88bE#vfWOhgb4 zWJJ_m4=U=pdH7w=y<^YEuXKOr NbgfIwJg~(IT#;rxJe|(JkK2d$`uE_SeJ7Z8ubKD$+NPE zot(T=eq zvNyeHqFLus2?;aRukRX8Ma=9ts;22-sh0beQ;_@!OSDifbo|VFtWlzDH=k&`yZenw zmA)}FH<#`fBjWq;8V+vPu%G^XmfNX1vH0s))jciO3PM*_;RfH^0aW09C2IygwOLvJ z-j)>GU1}!L)tKG>fF=DCTjsGES3!DToi`@5>c%F1kGtn-`op_OYu@AZQ8(i+oV!a& zMIk2Ck>aZoZu0!{&sog-V>yUn6lo<~cs5{f?|^!48$#7IP$#I#YGky#Bi`K7TD*85 z{~`_5^I1Db*$pSv_sCLel-D(&`g_MObMTX_XSbTtOx1tB0_@qNO+QLL_}j1Rr?~Y2 zaS}p~5%Avov`?=Bl=Dl~mpONP-tXsv8uiZz>7QnWLlrjh+~v+JlT7U)d$+F1zvf%* zKl02sx3TK0dw;~-w>JG5?CJGXr`5y2=V^UXiarsQ3@k*`GgE2P2_8QStagifFfzY? z-+H!vO*)^|d20-rFc6z((yi>|Bw<^?&0St(ehx8H|4sPx2Y53Ks#`Oxec{_HEI(sj zNf+{Z^q4iiba32PvBGT(Z18IysFMdfn8}Ne7l_pAEE{-2C322mzUPPd{o`L+{$OwN zb*D&XR2t=0U0*!C25kmmagel6M85T6t@PoP+VLl#+#A)C2Id(aKO__Dk5}b0>3SXO zk~|!RV>FZ<`A6_$1eepN>$|H+@LGbRte=sUY=uxEjj!Ij<>0jRFD`(3C89NY+t>E( zNOD5$ab??}-Dl6x!WF{~0r082OXNkjTi&@07Mle69?5V{rx42vLp0Vx=#o-4d^=iH zR9@&niCCNl?o&Z|F-2x*X)IT^( ^Ehmxz^n zCUp}stA@y&I! HMW{Kk7&k& z)ei!ZAo#h|n%Dadr|=}r&3`&Nu4yA#GJme5jJ@QqzUx*bX-2^}B3tQC!s;WN<%& A|B%wQ(=NtMp^t>@kR(VMRFW8Z4DPqw{+KEC_s8v+?$a%q0oOf3?2 zy8Nt?ZPI1~7Ndq<3gpk%m1(^{ c?yg^ zp+AchX#xYCkI(Du*}ToBX;p4E$~RnYUd>ybGqJR^mG;BNdXS)OvpvrxkQU+^kGZMW zG}Q2Vn}oHqVq_@aq2?jj!hOsOX{Q~cxsPY(X6Kz9BRF^MzoFO9%${_4;oSm*w2$h} z=}9q%mDgJ&V!0Xh^>2NYOLLVy%)D-y(qP;6kseb% wtqR&IxjF>~$E#qc(PsW4EKCwtv%^4N#y1iWD1&tzfEm z{~XLxDTK8Jd;!&_zA2rq7cVGIYx=GYl?8*(_7F) tj#Btwg+m6X^|JV5fUGue*#wH<;}NHLT;fAb z)}4293QmoC_^>27{m<7o8{BhUGWig2 Sg7 za^7K$61D{z{AMlB@*!y$6-HlILDBvL39AVs>SlSOmR4j-9a4N#ue~D<<1o*uL4iz^ z*SfoX9oFJ6sj`y!s9xF1YQG0lOT;iweI_vwx3AnKG!HDqj{ zg$FbR9~GG1&>CldL|^){_8H!G @LzRksyWx!R8mh$(y=7BLT}B=stE zW24#c&=%E(g~BKhO*vLAcK$tm8l*UyHg E;hkPt0U6@=(as(Co_GMm+ln5e7Qu zxyQ(uc`)>Z-~l{lm!^gtyf=R30b68#YSfho(|pA|#{tTlHwn=!3p>oS;tF$5=hKn% z%U~>-gK9k3iLCEvhAKE8vfjUrFn|3wJ81XJ)zo)qY4FDiK5js#PFLZ&)po4gY3`A; z`6Ch}s@gO7mwu@wlaAGMxax`iHEQ@(glT0)WN%aJ$cx<`GdWZB7jn@~(+e~4@TMjD zwA&b^Xms7KiV1r+#k4%knDJDrO)OeWL_xaq=i?+wO4NMZUB8yr5!C>l+`&A@I?Ck( z!$A5vJpd|Fp^@<@j_pLycVe?A^`4RNMxz1q;(F!D3;E~2ttS<8Dh~BBbDlhzURlV< zEI&w7tEmr2sPVjFuW`eCisSFy5U?DRo;ypio{YC{g zINOyY?E7Kq?o7gY#0u?MQOY=5u9697Y)m3wKFYb(M&dT#53fc}Ba*&X;d9;j5PZTy z`;muRxnv$^`OqN}?ct=xA#EN_=tJ|?R2;`)ILYyFzp`K$O1;A;d2+70xs5xkUGJEW z_3iB>({gNs)%KzMHSdAc9ly|N)Lhn{1H}V~npw?|YWohw;LZk6x!mG={qf^1 ~@8uqcq7z$$u(GmF?M UwA7`L(l3tvRW z)s+`U^xu3ejK3##exlXwki#;wCxv}0fJX(PgqBD^lU%{jt{Bbzj~_m!*;U@99^~OJ zqZ0Yg-l>$>+bAP}o}PNvG2 <7NEp6=*qL%aGlX`6hbf#<}yLdB&{26Mf5eIuDB4W^vG>^ynHIaFKU 7MdvEhj^j5xD?eGhXF%tV+~RskmFQzJ;%?? zu@11dx&C?}Hu_017Kgi~E|nIF;$JCASw6&fQ1PDP>)Rc3Vesg@!^9MeG9|crBYh%1 zwsUe%a(m=`yDkgK42mM5Ai5+C#{HqKS>G&Pn$9Dl>04LRPhJSWf?{j}>&bpiB@;GC zvZl-d_A}wIKv *JQa9rl(L1+)9dNGTvUvw3oBdS#SAzy(uxeLAe?g|WVsM3&>@!4 0jYWRPBPa+6mH}r)9U*-a0{21aT#NG>ZS`B@; z*Tml^T#2~GLn?LlVHE>9T@Tr_R3O5Dk{ur=tX{PLb@tybM1Sx9fA#;;23C-DBtT2e zup0Ny1G~Y}#s*D}>;YjtwDGF|B3KeoFwjDr0eL{o1KR##jMEC}j(ctaZTtb0{{iz1 z2n%RB6;z8^Lxq!gG^acmssJ=!FkT1`U7Y|Vz8`C69V~bCgJRJ#umw|rCM|tW*jEme zW+7?61uT(fBvKx@>g9`UPzngFk2K%g96!(%bij~P0GhZBs7ty4f%*WLlG{Kv6Ag%p zjt1dLGZ8e;1TA1F9?mTI4@KZNc$#p0KR<5!d{_ZE&&tJ?KV$4CFCjrv09d9_#2SKT zM?o2mvFQ{r5`h^2B|@nnENs;I VZ!trR)ErebZOl0-@jkwL7}7~WTz_@*+7{Qy$==;WngEUG~inVDXuIpX8>(v z8$Y&?-vbM@5NZDw`@3I$AEQ{50q4<~nXNLL1OkZx68Px)N@z>qkLkLqL8cG5@m7Cl zO7fkH+2(IRtOAM(lH{B~zzDbi)ZTS6sUrp~%>x5Uz=i>^2_%W=@{fUuYYmz?#=K@w zr47Xk9Dh^0XPuD&e3D?OdjRrLu)!Fl$}3J!oPcS5eHjFL6=44XswTiafwFN%EU|&Y zBNn%lBR=O*V8GBZGY9;;9lSmcHN)N=VBmYWR?7gs$4`U$d+16up%+@cR0ajwC2v3z zVy6L31VC$M0E;IXw$A}sBD5+g5b}YTtzvWt=})vK5Reti7EjLZ_1S)H)k@Jax@sLt zWY8iSz{dd)s}z(d&}`jc#dcum!)6^&=CD(ME{k#l#tl?5W&sPP1-LJ0HV+UemQi7? zdT7a6r~&Fs22!2@FqJGVEaLXgy7R0>?t!{=CXf`>ZNh=n0aY1yMRp!7z5)V*46yGq zOH5$My1Y3%U&_J)NMdKlf8)3P7t`&(z545%&Y){zr-8l$yk4NaETy8NKo| hA+4NGg0xO9T FO#(M1UUr4D$ zCNUV@U+td!UO$&i4;5EwAnetw@d&Dwf{z4G`wD=F_>he)MC;u6E?v+e%J1FCx$p1G z;xG^oV_V9zGjV?b1(ym+C7XtZA`y@(*SxCr4j=i9!*0L#IpWz2n#}`_lNy> #V#6_p02}dg*_=0^)eT}M;Vbf?>?3q z{b&=xf6d+a`+Y)F9CU>_qG)sRlj;FB@CpR}cap_8URI01 jw1b0hz@X*%^Wl`=o9~so4lzqQFop}b?;{m^AlPj z%sK(6^7z*sA22?(I!H)78O!Aiwp0lS`kO1PU}z5xjZBLzJWYOobi}nW7;t@;Zc0V@ zGYHD`F0{T@|Ms&eEYOYg5%iE8{e6j~g>VrwRDYA)7vS*U1g@iLpXXw;vuGTkiY3UF zJi9rCnVC5Newy3)q?S3i<&MJ=Av+T4_UzX%4>y&_f8_u}``d?P)n$CVloz??JFhQ8 zwkHu+DDab?>p?*|mX);sXc#wSO5|A%Qr6kaM*1M9X6l0V;89U(d22(T`nzg*UFPt; zS!gchTR1q|ey>M6wU0|5WQurPZ;5eTV6a&=k1feJdw_4pE`Mn&IH`2V?KrBNFCr`c zfxb?*GJJV@c_Gt@bR@n)b*RaJ#T=S+2KKx#_Z~=Rb2&PR 8dAH{^ziS1c zMX=M+bCCe`XWxZ*_RC&W`jWk2hgmoeab+|lXYL|X$F?dKS>L8R;*nZe4AY={_onFg z%B*@nm#vT`l(T}bQ6H}C?hb>TlwxviO+&tI3**ept$BaX64|$iXT`u+;*}fI;xkc8 z>XCf_&GHyhovSxRl}~qYbPqVn4`-=-ZXZTHuQ7TVaAkQcqlq9UhzgB{Ww*W=>DVL_ zmFSwIIOgLyKBC*$*$$*?jXuu&;@wK^XvCoURGoOPODA7hu2AhOInkaM pd$P5aW7s zlWe$B*jRzScTdFZRR9Ee3XI1>PPT9T>x`uBTL%}}bv}UiK`lbs=b8oi0yJa<#b^8b z*hW<~ZVJKQi~ M8ogdQwW3Xd9Q_ cYM0UhuI5v;8A}jdZ z)Xk8eFNadq^`yni8qQfy?>#uQOhYDOw)7fowp~z4S3sr^CpKVjha`EHvaR-~?T?*& zza+{1qvIieb6XSA+srxP9M52y%_dD0J-U!13=G>g!_KBJ!{v*q8>I-;0U#Jg)BSTS zmP=NtV{3)#mowPX&~%a0bhbC)Xkg<755?`&ooFYz2aoy3oFC6cpvWO<{QgK~q%XBx zIlovP0`AoLNx{Pnz}pV?%KM<|E{+$2T)q$+E7egT$Ynov&?di z_
p!sLnbq}p9)=%|UE2eTdS5N&aSE@%z1+Vg7I45nfO6KEK8(bbp z(`pdNW>T?SXc9qFX%^U)o@l5IE7Mn}Iv {i%4u$K3}DuTN$V1o^@W4lG0K%nI_~VPfJVd-G?+MPHyc3NTeDa>eZp0nfB?5 zNuL-#p4oAEFP}j_(cuBv?P$dc143}5b_OM11EC4e-(=F<*5WSXUH_jrdO0R2At&*) zZQ~GaTl49-`|4GSFZf=o@m8>|;K=!e6zK~yV|e=fbXrX%acX_@VSR#cbiArUHLv_e z)#ln34QBxvVuf7o&)yyxV^qs;zDHg^ew;r#^6>idx%-kZ^4aB7A8Ja=!#(HG%e=9L zKO|Zl9ZIH9%hj1K!iGa7Hwn{%r;^$?#y`Z}APoJMb9hy9jQ!JI*h|C)j<@13OYM9c zs#Wf18*Lc u z6#mH$XZZmhb)2^Tqv7J{?$HH|2VP#ork{3}pAYp;AQQ_s7lxHXCA~iDG*sLZJ9mYg z=QC389&aLRgJg8IUhewDEgYuM=Wp5GvXR~l4&Isdv@rQi%#nO6m=Gs?E=Q@%k-)5s zE4t5Zor+j#E?YUHHs4TJUD({6qD{g#>Q#G!wlm8~#VGD#c;lDtl&$56XWuLRuKa*o zxPDpdGkGd1+%pMZDSV+%jEUhvTtdS9VOD#M_nKF-QMZbU%F=11n0%-Oi0?)B8K&eR zq?8<%?QGu;y|2@n@HSjkd$Q_0t91T-q-O5Gqob }fsEJuIVI&1=_+seA6j%<&d|Iqj@~)!=tKb<-{?N|l!3!3qD+W=T)@ zVR3q{%}HA|M(JZBp9_5*(`F65K6$>rbN)%{nLBfnlS0iQ+lUKTtoM1AsT9(-BUU5D zW>HwE^Bxh}kBFW+?zy`t@9fhzx4beWzpgOnvbK(+u~mCW%(wlxEsC@Lqm`1~5=ToViDoV#@+Yu>HDAMb9Iu`A_8UUDBVse*L!8@~R_K e=L;Ji6w>Wt zsoh)M*`(F(6em9APr_Q+%0*!=R{~$O#-IE2p@7Qa#dR*(LJgLPwXL0s#2tAP?sAv4 zoo)Sr-%7yp9A8|Na8 Zf|s_?kut}6tT{8Q6X 2STFknO#FOqp-7 zqSkMp=WjnPE$Ya8@j4)c2~pMB>Va&Tn_8HW)t3DoL1m`m?U%*Z#>jY^E04mX+C43D zh|H-i X!s zH6^!yT 03L z=_QTLrt(*zdyJVYdERLpFS~PBuXag9k4IuYc^o0OMQm;t?V*U+ B&{qou5t1v6$B~rTfy+^8*_1T1I?UcxXo)U1_1o z#9rqM0fD-;@jyQ9iN0>7r-x5)vF *LvE6LLQ;y=RJ!N&QC=w3W zhkDq;(8je!`CUJBFYJoBT=2*?HNo|}JuEud6t8H)2J9x{$EFW6O;<|R1OyVA7Kh63 zi3SFUeDzE1m0R;~iVrKdXN9(l|Izh6HxNVn(^f(I?)J`jV~X_^7v`i??#ZQ>rC}Fo za4Fo^yH;1qr#?-Lk5|3FNeb3Spx|v=ysVJsBO=8jOP0BQNTYm+NwSgYexp|rrz(p5 zkkf2w_twwV1`+jRdc@t&Obc2!V0tT6Rt}xYY#(yX^8~9$XdEQC`eq%}24L}23nWZH zt<3`h0rZj3BzskKONs%ae)QoJ^Bz{!LJl7Z+Oxmy&SPdLH1Wx;4#ohhromb&K@BKL z@5vrSlFCQ)tf&hlETkr<>#VRFXDiZgSD1Puo6B^KAJ8$q7V`FLG~wr`H|)X}Ke_Vy zUt9nrkgDjT`2um~a!s3e+7gp27WX=hx|yG}t PI5Aw{-2Jp}fVZoSPK^dyW zH<*|xu9xmys4~j_Ws8)tH5qztVR4rx{@Q7k9xj;!e%!=0K1V0fS(neDeiRJ%l!uZy zxJt*TNZq~DP$t24IQs45wVfViYiWGFhWlB3r|dOClJ!h?=0g%o6RmsZ9vk#!<3#pm zX)UKxe+}PzHf3K`j2Tbx#p`7a9qmKC?ww=q$2L?nQ!{q$GdFJ@ZAh*XOs}?PxgAL5 zuik!Y`5s@NKH*2s_4rON7(&-HTZwrR@b6ZiLmcfayLFf7Uc?u_UF|ZpGFiT`N#ycc zy^MP}c!83#D>;QGgr)z*c7|R`y3T55hV|+bB19yzKF{qqxD};vofsLC9Z0S Y<*hnH}NvWtb 3_xVGC zG%_)3C +(3j>{ +}g|>5E4U~ zbC0Ns42GrR-n!;5B*~hcP)(j{X4CqOputZgU(rkQ d zRYw)Zy_>fl@3t65@jBdy?|kXm##3xuYyUNL)V1ws>jk8ZBpe)w5e#nxA8RhggK6yV zvoIKwP;=YnKz#Cxeq}FkWA${KmE373lm+LKu1lAt47;1Cq2VQkw41=Rpc&nL`mVb5 z++KUBTYXD|-{)N(tg4Sz;YX-dw;VT$)Ch*QNDiN2?}4WrrH}0Qo(|r(#TcJnzvp}s z>$dTm&aJklh18vxqEb><7Zaan|9tN&9IJ|h589qPn)%9WYg@BPOsC`?>j$kj7IRib z=iHjQ_SMh#7slFdJoTP!yR)jr#%M~89%d#}LqnChcKQ$LLjL?rNVu3ga1I70&FJY< z$iBd{e>Ed?7BrP$BNU~UHX#VJAJcX|Sgj27x4rypf};PcMIc2z-=pMSYbg1a &SkrYfGwgDl9Lgly3}oLnYd&;{(C#o2m{iwcOR{I=fFhf z8Ioq 54w_Pqg@wWr#i+piP7y 1@r!gtS;Z7>*k_yv03^6}hx;}8aorlWAN zumdj_R)#nEnrmy>h`qf%*o#Ka `P>3d&lCa*A`1_yf8|>B!#kb49uAkRi&aTb{E-$ z!bHzKWVgfLV4PhWa61)oK4iotW%VE7k_ltq)Q+g!;wp1?=J;iIAEzQlqV$UDXJ2DU zHPb6}gzbsn?@&~_-vJ}_&1K?t{C#fsz}zRkz7h!Qg;9LZ3SUKfLIuX~ny7G!&7RH5 zOjfeu*W2p(ZtYhH+r#-A7|SpDc~RQ5aPsc=sqZbcR5sMKL@wdX(b6|+|4HzCMD%s( z EP?px_RT}PJl#Q+mfAq{@bYLg+#tdvq_=BFAqF{(~@R5*h zE^@FR ST&zeQOF+@$X6=VBZd`r#qEd# zJOJpCrj}N{)(uRX%UU;YOi#_v3#dF77Snq&;V*5|)=j!x8tP}3@1kC6bcwg( A89+|s-PhE z%Y0`Gl{jT&{F?rUJc UHhM>i23)du+XLUpwpy%et1C*@oV zqfYL}MKg0VY+q2~$C{tLSa?1P)+uHvIG6FHiL2*YkXlGHSXkInK8|Bhr&npM4^qWl zRORUheg-Wa)7u=>~P<@&2De((!TVpfNV#(-WldF4Vw2&bl} zo$GFp3cXk!snSh|{$1VKL|%2?>x-}UOaO %FXeCQW58;+f7 PW8ySVs_$xk zCE?3=)Eq#PMIt{TjWVpp7q}w(vhLb!77nvoQntSM{nXhUAJyl)S>CJZvFeg8u4k2h z4gogH!p8V^{8K~g=hyrb=Sr(&3>Ri@2}KqzS8HXjwcWSMR61EI#$mzPDs*$5t+uc) zDVTZndeB&& X_DmaW3?fUK-=r!{a7#ddh0PfzjO(&Qj;@t)**#2Z54isxl7`DKYc>m z0`0@bn(ppWX%#b)Xen^-EbOf63|PJe+7;91KGwxw{_$qrJ83mzXKr@#PvIL|xkFcb zgD1};u}2=cV}6T#4Yi0>H6!B0Oz7S=(h~9DksDi#xI1ypq`&0xXIKkvlSR+}4ajEF z7EUR%-%tRrJtaMvYPrWkS-7E#jq#i$6NR3bQz-w72B1bg>)ODqwVQwMZ9H<>=58E= z$mqA)wjKr|9~$oR@=Ck!_bOi8nswb*uTXmA-I!c3trMHYR=HZGxisMa=d0gXyr`dR z6t~5PDdC+bdXpXqd&k4^WmJ34$6Q)Ex@sgc`l#%-%1Ek_GFg8qj;JoC+GvH2uAWA| zvW4C0x;XaHd5?htT^?80cQ>Zzu9HPR8+%vNU&$3L$$Lbq>a^3aH2$o2!1@56_}nu; zUJs>Q=W`-0w+Kkc(MHC!D0*D)?rokT&*eAl*NBFr{(Q|N1w(a=?Wa@S7n}2T{r2xS zg8n)CZ<<>~7ueTUIG59Y<^%xg_4mD@`Lihpk;28T?b-RyPpl0oM0e`AnVD2{jz*3z znRTWQ=3Fwl_j1I=>p?vB>30({j+jrCez){&78#-GqtFvA|I1sCP6M6Om}u+y9=zOv zcff$WNf+9tzuI=Az(mQj)1Y>!FE)8z@ez^zR(NRm<_rsA+X*iCW6!nlKlwyR&6(^h zaec^>y}zedE%ud$zy)jAM}K%1M=RgQOfu`_g~({pr{xEvk0Z&}a4yzw%iL-09`eMF z-6P)AbNL;`bm|=#_@t&mg1X{`{vqdz%O0_w%gHs-S=V z4kq?;wOCdO-&!a&oW%Z@dHrKt?m6lw-U>o6)Z1m zyeC^^*6c#@{ww9!GAb$pMjM<3ZxwyA-0oD_95SMib{FTEpD1SQu!S_gg4hxImWa_M zDbZSmEWvxV13emh>D8+W7*J~)J2P Vykj*50hok z`ebf|Zwf`xxc2~`y`K#o?(G~jdOaOc52}b{blJ{De4wgGAPsC}2zo8mXf}G_m9$DK zu41j@@ph_lz57Ue@a@Uo2Em@a18ujUDM+2|RLUKnTyd0~38e|+O^KaK (h~4gWX?YbML+%h307t*`G)bJV~ZlA+oB$N`36P9A+Z(6p;ik zua_^@H_Vfa4-G0*eqByODy*Uk2i`jKx?x67#^0#Ae$9XAeFVX)ZpNeiJ!YNS3qYR= zBKGOnw+eszQd!7B=>bhH2E%XV$6CWdLeY9qmxDFNlPQfk2!_+^WjCu~kH##cs&}1H zwL$vWk5WJqO>{)-ahKD+5~8mR<9eDRmCJ559;54}%_@)kO1W9qN!0IqKQ8)t8Oa$M z;i3`5mo?^=);f#*r6f8dG=ZNVXn&6cm^)h@1V;rGbw;3vJ FuAY5`M)K^0MiUA2@51qa z`3lRo_h%muU%F9yokz}lc=mt3bM`T~*GYFmAaee%%T=Y*fBOVzt+7eEF6kB88Ufc2 zAToe-4Z`xTIA&_TfW8ew7C8b@lBGE1vzQ*D`U-%>hnfApddbpw^ dTQz6}_FWu&a^^J~}6{Q|}UT-LDb@2&oi8$*Y=aQy2z z|NE`}$HqE)PIpdQa3K=^x5m17<`am=p0zppDc~^N`qO;gkQP+$3U+;1HL4I!8lv5- zs@ q6>HYD&A&W5ERif38m0QNSLAM;`zCxuo}BMGWsJ z&3^b-cX!P{KzkuDK`$h0+rf`5!UO*OU3BmYW8t5}aO z{C|BQ{!fES{D+%{hxqr?_|rUV1%x#r<^OuqPv~$G?v}6DlY$T`LSB9tn29c<##!a{ zXsJFS9}+>>#Wr)_)X3-|4k7&=K0XTA8V7c+3g@&j%C|v3%*CCY5SVeY=&uST)F# z(-x-6KLnE8{GjE8R~Z@;(*~Qk)q`ZA7|2J_K6o$z!Wvqj{=^MCOEoM0ZF7IFuV6Id z(bOdnzX2WWdwRLVpic$@E1=T#kr_7fMjz8x65wZE0ewZK%-$d5F5H0tBdeq&0>Y^F zpwS-8fo?TcDJvMqhKta7B-FqZI@xtQ4F$sJ6WHemG%rElNDDTzxByzM9)B+@u=41# zmPkBE(N%$t&G{ hJOAyen;CXND2o~H z?QpKB=xL1WfguEZAnP|XS?5jUBLsXVdk`rP*8KZu4J-eQE%w$Svr3oNygoIjjNTan z0s{2LB=u(l47w%a?=*#1FQ?EZ1^t5HJ9;wwdtjok_aBEE%nyz@7^V=l{p)fs *aF$2YXk({^WB$vS{y<9qZX8IQLND*bu$f;KIIET zNNe%Ftw=tA?*tY-=woDz=elUBUR~(5lUUr!dHLGsA{c4F)V5ZCtCgfbGuE8CuT8 z{_`j-8t>kmeIE?Q^GNjbU=-yT=E933d$`fdCg|sZ pj>HNs&YeUB1zF1)C#BIq^P(F|#G`27?3&jMk8F>Rv%ubx8k|nH2VbJhm%1uy zTC7<<^pHRxGv{s1Io Bp=S6!7@oUV{5R^mpD!AYH{-k z<|cfd{k!jo;6Jzf%msSorR={t6{BMwZQ-^d#Fvf}hXzVGM@3CN(z6U;;Xk((NSpUh zKfdgSX?ivmFgl*G|BtWz^VC1@gd}&+pj#4-e~%BmaRoeUNbCgdLkm-ZX%kO9JE=?2 z03s%6EchDB=d*r6U!TR~U$zc`XAOw9OeL7qn}g`-MpD&EJ}>ldvlJn4cGu`nBG~>h zrzGxJCD1h~>Sx_n2%9i6@2m_92|76BFPxr$YILtY1?#|ZTYGuqyK*j@^RQsfG*-Ll z#J0-_d100K3mKZcdMMhPk?R&ypmFZa&XPhsoKlTmNgw8=h-li({QP;epRfK1LV`S0 z|BRCh`_v!9+4h4Ex77CUUGen|WzxX*G>S!OO)L>FjaJM=EZF&!d1mq)vZitml{k=< z7MjJGIAcdYqwLavjEAO67qg{R&SRpgk?u%x7p(4Lr&Wr)ivI>2m$V#@t*R%=>#zip z+fPO~koIP3EPoN?K5glPq*Et<0H<`UqRg#BKMENB{d^R>(LygZzB3C6nBqVi4A+Cm zgSmy(DgPMhlZ9%d?)UE_>0Ss<`{pi2V!l 2dNl-9!SS+gh=&rPbQ%6J`)M2&d`1Y)DH7Fh*#-kXtUfn)m1e0{5pRW9mnc z`GaK{PCFZQ8#70<*~06)oh~l~B4_~65V zYB6g*S$C_%tU|U%$DX!F0w!BG)R49KF1hP>R2J_ UI|f-MFQh ztAtJ|^^4#u3@KPh-_5E#xQ*zvAVZ_AoJs`F{pM=s!pHd^3$~J_#%gWMBN|WzU zM7Dl{kUK4uL1(dsFS~uH%#{@@{u;zo{QSHK>N-I*2K^(Uh$yg0AgvdD)jPft5{N(l z5%os=(%Yw$Vauq~N~vuf35<)UxlRzOF*Z9IoszD|92yWn`9}}Ctjsyg{&Z?*P$%V0 zZ?5S!dr&ap)UB(3ikk4RUG2ej4{AmAm$}{){D`TM``CWZzGQ1YjQ|%W<#v|Sb8hH( zk&!~b6V=qdrLht-ij&dN%Nn0w27;ML?&!S;H2B106jM=2$&-oEhGKKZKvp`!$y--n z9@d)f%p`Ij;X*xjSgU-f>FM2jOPg#N>UG&QheW)#4`b9u(Xser_ieJYI?H`XTXrfU z1xLeW??arYwb!2#6dIgkJEK*xx5snnF#xrE==|LvwQan(7}tiS)!H`x_k^ObyugNe z9u1;6hI_P3Of^h*E&_n-OFn9b4|{o9Twup%8Xo3(>M}`0lN+8LNb#er>}%^-=49n+ zWt~;!9tITUAs~BTITp`{S+$Ja!%1*0rL~|(92~MwzC`LMX75?&>g;=m#JqZ!vEu!I zZtCagoV@-TyJ7CLTfVx5#*FuN e3%Khr*o3^03w~b-7BVMi1 _ETBLi zBMzeoQU?HT{Qg31HP3E;p}JN1m(hST04A}w)E)3}v3$t~{mx+!ByxX28d2Y&RlFbi z5@UURi?U-Vvga5(6*C(W!%zMFt5rwRnti}VYA^4QDW)rMtEz@SGQYDtC@^Avtj`oR z#}wPDq3E}QyD}R6%KKw+nnLz+hi1A0U8iQ;FrVdxHeZRO#n{yj2F4Hz53F-iN=i*k zr|Xi5SIWH^*Vj1}DZB1~#W%dLvpg!H>B=j~clyw`txce=)?#B%)7C^Zld$&kWh2|x zp`+Cs|2s0Ae@pK2hLyuqA=4lq7f0!u_vvvi8Z7)Dcr)S2JN|UlY%hfjZ6cnD3L_Lf zU51e(0bn$_-=q$=dOOzvdbuSeff(Ov(*7Wvm)*X*wUNE+aFcY*zp{M)q48@*&FQ@q z1d&g@5emiy)2*Dg$;H`s@wrw$o8I1+2MW1@f#51ACw3e0ao>R|0}>O(X{$~MU!mJlD9c8SFHf~#yE#Sw$tAwPo@Io!u&^u|DOyQtIRHfYZ7s<~ z)k52KdgaP@zbCbv0)H=K<7?y(%==5p*Dxo_(>?d_u&_2CA2J!*w{E(whJShqdNV(> z@K;fooqpR7Rn$u?yVWaIe{@@(nom*%V&VTbV0mObW2DERUhNStbd6v%;6;+;P^BC5 zJu=b`Hp=JNA_62|(QetBd*57VZ?HuM7pl9}@wV#aPS~WRXsAM-B$Q_;aQ`r}GR`>b z#2UqeXi&b4PO^)Yty&8I*2{g7fx^ShG-3okgtwc V&cfoqOv$9^7>^9k@OD2MjgCfy4C@p1)aP#{Vc_L#zwdzfw+D}!NN8jcS0D~ZT zlTCOB>0)xfJWRvq%cs=vpi!kHcHhxDk$?xPHIarMJq30lunEkem1rA4otgC|{j5 zIY~*_8dIG@ApA@5Aq156j>u7+Ml?$Qx(9ct+=Xr|Q|*-|f6Q@=y0Q%Jv(dV@oVF`U zn_po6v<<6)m@)v`+2tZ_9)m`Q7d315Gxn~lj(KM7lX#>9C3Z|0rM4L*?Mnl~E#L2O zkE9u82!B$$lJ3cBT%WdDAuQC(LHXR+^|7L~bTwbaQ2@fsjGTz$y8DmG>jh-owFKG? zS4oL4J#*E(=FKjL*~pdmdA6Hcl$L?1W}x%)y`=6nORLhvEJkq1AW}k`@GvkldQbdL zrhhKpN-j2<=EwL%npp$%v|Fy*!Ub<%YC#45+mXDG*s?voqTY_Lbvn!hBx;3)I#)u; zZRrVd`rm5gs_w?E8f7R8PmPZ^g7(xUJnt&4lstBZ^d>ue8+ON{8`t);kB%@nTsCNL z&djj-ZXJx28w>{tuW#;F&hje1wpiwpM-`3K)dlY!ibej53lK1=1)w4#d!0 #-#XAm_}slO9D*j@htQSTgDLxvtup|FYYNwqc7FwBk*Y z^>d}lTNN`je4sAobSv4Y%`{(m*)Rp9+P};0x>_#{XAD}KnejynP!_s-2NIY(e=(4g z^w3LQMfvyVKVpf)thE(l&7 ($;wL? zgNW=@=~qX^u-&^O$cRrW3v00u^}EbpR2{0bnzkm9j!WfXqQnCy++XNUk&@SO#z` b*P0!cP(f>dVxrYs*S>iuJ0hU-S|wEtmXMG0})6rC=_)8QZk*H+OG?!v-Dx9 zfpoJ;rQ*AH)v&f%=CpV2$eb$JXrfaC#ly}WHQhM)l37MAkjzoP@_`uFdYRQdpN_DT zlXG R;08zXa zd9#Nl)$Wm=bFBAhUyTeuh$pCk`XCT#^#s9BvaQGjw>b&tr*`CXmN^4 MaCiV{Z z6x_U6!U3le`1Ijhi5p+^lom&DuwbRcXU?aTUEgoi2GB?wlt$|$Buz|P7oXnLzx7&+ z;JQ-2HF@mmuIj-R65pgG_PKWb>!IJgz^|-0c?VS|P EOH8R=35;n!15azHXNl~`n0ghwPqUf=P=-7u6_p%O-#;) z%=`B*j7&-{cI56pD=;|;85v^h1`PtEP3CUN+`EPx@N;j+O8f%?v>bP{90Q3+2>AsC zIgCS?5|myN-JH2eMP=J5LPfd#Ls0Q4Opm~v2cM&GlxhoCzc%U6px$!Q%_jm&B ;fg%U{G z!A5X*VSlG#*m3-_-pGZ=8Ojs0OJZHUa#x~x#goDe#OhPOcc H$6{hr^9wrqe2d_R}wrCD4R~YCqyNJ3ggy1FVjo14~tF*|JK-I*e8o zdragpYSt^ANy_82s3qb6_Vl=%ob%Yi_kkirQ{mETRs)N9*!}|cYo6&38+(#&4mDeL z^TQZvNFi8r!P)vcQ0+gVO+#> )XD6Clh hR(q zB_*Dq9kG98ZRbGvSlPNn#{c5%t)r@HyRLBz;5Gn*P*SColoDwXk&^CKx;vy%1QY}W z1f)9;2P6(1A_CHR=n_Qo(4D_^?&rDR_`UBR-}f m!Ld+%#s*IH|?x#rxO7#Dgy zy)kc*nEYut>fMh5RM(n_(M6zvRJ`JUKIKT0zE)W{cmURfhXIRnE2EJ=3Wi+Hd)A(8 zUHR*~@2@!Fs^bfOZVRns7AKSIMUhaZM9AH_ZvGH5_%w;BI7=2FXs%LoeW-5H@t^@o zx15bSvT?z8$)_`WLlb{;F6~V|)V;atHE>#AUPu!rbQG)=Q|s_f)3@T?vzZ%g^* (QVy)4nqOY^SyKd+D<(uvj)=IM0q@>jqoL`Z zto48t19lFbmjGk2AYW{>sOZH*J)2cB((#YiYu$_Z>HTfX*S?u?&-_}lShMqz+_Rw+ za10=cFJB+7C_)eNrC6$$(Fp!94USnKV@#e-RZRaqXHpiVBgr8<(0;Q9091aX2eBd&L+-Saij=2J%tquZ&0I85ecNB0N zewRfc=LlIO7BT?Yv0QI&^1_lUopw>R>V*lQyh}?<+e};t7 (3c?3?F1 z=*olj!u-N*egm97`S0)0&5rYhW@Yx4D>v%OPgxC1n%Q03Kx+G}t=WuLMv^v&zQg71 zZ@3YTmkQ9N6x4f7?d^d-3WVJDFe0Dg9aEd W3r~_c3G>eSbB#1ESX=#-B`1o4y!~sFPP@&7ish@b6 z*;J0pXOOXGy^RKe8-9HLe33@}Zg;ZhK5tO)Wl71E&=D2Y{^|a(Q*0t2FMNie(bLE? zKALKYn+qN;_U2JT0A1@{NiZ{qJ=FrQ(ZzxS8v+MHokWoxBwUx3R(%i(5sm%4s)c9d zxijC-yI4 qXu(q8Rd3d5~H(IY=u6)PWi> znCfia3xS~wWx6foLzSiymzN`>!{Z}E8gN#VCbt*3zI07^oTZ#-a<0kLcpm5BhC{gU zKGy)G2^EZ^{q-}iweEe~i~Uuylu3HRfDN4 +{KsMLVL *PV_-XMFUu&rj>i)rXSu170Ivlx;|73o{LT<0*e1*K0Yq*C0am6IJx?UD_n3T z2r+Y&F=xIF8fX3q%v;&1+bdjOnjB3Z8mtg^5H97YWpIoZ+q1$**0Ywf^op;(QhVwl zKck{zyUJnNoCcoN)a1PtIrm2N_aBp?ssdO)6Ys-wkSlzo^r3;E`|%@pLZYsvjyIb3 z3cL;^tXj|efH@BcAK(V*HTk8Jds_{RN#$og```5P)hNOQPqr-fvg-VvU%QUp&7$#3 z^1_RNEHbhs^cwYTXNg1~*S06TGSMvO?%cos9y=`j8vVqDioc`j?RjsPwc1_t+@swh z&vsIW%}wBAjCF>H>Q?uZhy`j#G )5%*=QPs~-mguGBW{x4c31nHal5Q@$g !>`6zsQBhzMzjcPH zzmC7)A|6<2&KOo=wt97w&181wPeV`mUeBXCA)E*CLq%>UOhK2gd^0gzU*EWRQB}3& zwB_uC6!JP(?^6-m%{j(1EXEg@ z#%s%Fd9RD=>bw!WbVcqXp56yX b^lnR#Sipk2hUy)!S)}lmTk~V0%OpT`( zetXIiJOuu3J8756RFVqBHRL_RTLO#cumd>{*z!2MtY-zj+I7uSinzajWIgNrE13If zAkj*y?AW`!qnPTzlhZTZk}9=u>vf{51^rch-3iSGxkkso120t!s4(0uvJ7cY`mZQA zn}}Vr>w-%55#hJ*BV3Q&&Db;P>2JwCr#@+w!J!;2j~vqXBJ>6NZNxB&(YAJ1rfTo@ zv*dGP4?4O59 ixS{Hn+a)p|g!L62BR_q$rmQU#+pEyM---e=XDe zfR@f`#hpQ{kI&oeB=;aFD~+FD(5mI}-&aH0IU=hhShS8<5z5LR%q9~WbgO4xaykm0 zT+K9|D`yD-B+JR{W>ef}Vr(x7%JHhlZrj&jFi)gviU=ot #n(3W!0{ z^Fw?!J`{1kXZI#&fTtch{O*~W7gtz6W9W!wa^hq6_t4B3vTC;|TA$jRg5n|k*X(MO zMXu58C?QPX@qj_L`%|wc-PO$ zPvV8%VoSze-luP%x+}9ejIM5xt6H_&98=;2?%FMW15aeT&RX3CJF_!3h?YH>68f+` z*Ea}oQj8Igu2So%jt#W5tc{*z<+10H1e;#yVPXpS^fel|N6;i}gZ^GA(Ii8K+pTm) z;rC5S9}4yF;Djq$!$ettUplQeFVc8Y9bz4t7gLW=x1BOUabWa)u(ZBQd%|77_|MlY zx&}I`ql{`H8iV&(-YU0*joZ(^G`zL&$K*Arm^e3@zXX%#1U{dnhKanYx}P<6Z+OPa zdWD2TA2bGx#8h+Im7WcAWU*^XyBX8V5fX0OB!7Ef=Y`qoHZtBAnW0bUZf`W==BzO# z!gE4i?qJNcF+7Mi`Z{7Zk%mhYb~_|kS@l{?pTVouJXI?Jr&|cLw3EjDy)eo*Tba?9 zKX7myo1UHrK;BM8*7>^PH5nDN>N*hi1UcPhYp=cWy~ib{$AMV1+Isfp;)IW6h%JWQ zME{!w>IO`j4LT!rQ5R`|Oa`S74rF6|4ljv3Tr&Hr&vdawM>WKQUEOQU_j7Jj>rD>H zE{n;ZUe!PIC7-7nFONSSr%duZ9U2;l-rU$}X(`XUFsz15AF1Z@k8B}Qy<(tSdy+vC zyfB;@bMmWatR)6Jsu^p_^_LB`k|B9M=@rO|VXC7Mh?I7Ab{PO-0Jj|HSqnoC3mvg< zao-K-ikeJ+E!s_;iZB0bw$Z1i;f+@{OeLI?x78 CMKiyLo^OC8A-9ND-)dHK{;O@<6Pd_lGLiq8FepsG37cgRI{>3 z7T%m$QE?5*-5A%Ct93Bu@-3yhCA`%09R40A!*ECsCS<-g*PXB#B{rcu(+A0zoNL!g z%|?O-dyCLneAQKYj_g%&>5*LQ$4g !AYpYwxn&IXEUr%D2Fr89&Qa-_B|m?0yjV zy36Sbwb9;H^7q;C0upk`26KbNY2Uw_-K3VY5k2Q~G$Zr$!i9?Z`G-ubq~|@^>faF% zT+NVg3H?n*!g)64+@V$XHt@MRx-YrX>NdVyf>GbJD2(r!Aay$P=a^sHsi2R4_9$3= zD=Ot4)g$Ln#-4zRsYuey%%)u};hnpJ_kxn^5Ai^%%d|ZJT;jTU7e$PI^VsfMLzTfv zZsEg~92@=|c23PkJQ qrLXWj&Ye+>Smq}YJxGF8p6LX zVtISSpahD@_TAq*E5lW(qxr#nWENKqNPf?6Hrwi7%zMtZ2@Tka2Vn!FF$0wyC93|Y zM=>;$P>b6;IWP!eh#|W5WLclb-(AIFa6DePYo%rx!jo3aiHN)AP4=y7bYz 0405NlS{RJ5P)barq_EzQs%tCgfxamW>UW*T#NB)c%_fkSnpx`@>n4hM$tVsq9= z8qca`6NjPYf&J%ui2 |0jkcT;~2UHppUVmsAVj)+mx_+)BZ;8lC117+~AmD;5D zNtDIWjI%f^2i7f!sm)0#==cfQ)|H3kAr*QSHVLtbA=SabwY$o)$2GMZTLtdtMi^@7 zbMXo7_P5PP-vyQ!^fOR)nj|Ijqnfock&REyhq9LHq9bFv1173rj)CpfSc8}#hs)KX zaMd@M q%vL;+jXl9mFo&ReAnsY~M0IE(Lk1n$0z&|_%rIFhh?$dDS_ zz;WOm>L=#7SGgMNSa6hpz{zo@D^i%(Ku%V<(<9Wv%(-I+vc$+xi#_7Zbs8zo`fQ5T zp%cH4kfi#e4XL0T$M3WH0#!mO9nor}X5^HxdRrv3&%xGqioDxe0dv)T)$VbgNOWT= z-&$SP` {Zu^X!v9i*q`xEg=Q!gLp02sg2Q>mRf_vX!Aw9Oi379pi<`V%b6PEX$y zyL(LSyBE^q+756PSs$^D*6{)B%*0}96=QMjCVQ9#lOqTM6H0V)k;D}^hf}&v(Oy32 z`uv-rKcvw}N~);F%kyCRoXyW=t%L_`1ru)ukdu>30L8d(Q|I_}yGvb}_sPkw?_YXA z$E}ksPpz8UsfPJMJ;k^>FzWi0=iDQ%S+FSlk}fB7m}_0##l*%o$hda470?3iOq{Wu zT^!X3Q7^W3hIBz>H@K-}vKD{2edV29Ewt8RWt(l)r;KV^*9o%Ojm%E-&{cK^L3FLF zb~zOl_hLPF4WeggX>EsD4=JwSy<4n%q`3Ct4=x`i;fY7@jP%BjUv@drTZpzS>NI$S zfbJUwe#&6@kEe- H^T#wVZBDPLZ3JsW^GLS(=H%D&H%M6Hks9zcnYabNR|>N8N|Z(1 z*r5P%D*qoAJ5?J81b865zC7dacscB2UFKH&3zMd1-m1A}f-ti?pvILRNW?^!KjY4B zYTTx#l#ka-BD TBKkYEd!zXQFI^k0o2W5+jlMD%5|Lv~2jfmql8GE)k$3Z#K6ZaW2)0 z4^=Y{eg0Vx+GOAmT5nM|=)U! eOu77!9| zK9)s1VnvTGYs+mta5QCd7AtjkW9DSi+7kAZ>AX1xZl2F@aSujIZ8BL%!z?22rngLi z;Q5vh&+=M#uKHQ(Wx`A9im&QIsipgW7D+7$*j4oHuJ+*D)}{fosNJgQKD>!AOQ1UI zj2jpLhM1P qipg8?h+-Ysr)*jVkC8#OTX$Lg9n(bvw%qWn9%2h7cLpjhO_4F+I>kvw6 zY!P%|o@(CN<_|)oO6`L~*&(YvmDzRDnh!vnYtULi)gwRpgEa|gQ-)2QWFHdT&h-8E zGEu~F$-Sv(NFMInvT@0n2{kfshaaXkD=%NYtQKj))19xZr xxG} cHyA}S8%d8q6Z2C z+2`T1^z((z4+I?#D`vGl$<*Ew#XS$&AaG{K2jH&8cMO9q~g!S5d&&z(>)Jm<2UrR zJ|CyT=|&4{>6@akL&cre{Ab*xM4Yxot~W0;*}Q>q4OE++BzkODVjMt4z WqjsgLwhY zcvg$>;ex>kjRz+&c4z)(z5nL3_d zY9G!%&bUnfA0*0W&&6D)&l*#{E>gmLGErve>bx*6R#`csRkSa{#LgZW7?>T$Ei>@b zgHhe%qrFr=@okcHjP{^q>svk&qHtmFrD4<%RZC)$SKvZN?oF*av!ss } zr+j)S#626MC3q&rDt9W0=cfqbRy{w9BGEnzLRdpASf=n^v(I6L$u)&2wt~guu(M;I z?U5RyQj5j&d A<1m(z{ o;!y@$Y6Omwq`{g^ zkK(spi+Sw!gl>zuV`k+CvJLTLKQhG1K1bQO&%T~n#vscs$(DL lz-+lcKQz&U@0?3PYHZAPmfLa zSk{CJ>sX{LoYypjDa#i#M@mSjDf7*TOwN7I_-s8^`f7-6j#$NMYiDaysoTYxC*M>) zlSU*}ULC0 *@r$UPioqAacHYdDghynU7cfxu597&6_;-3)fC|cYG|K z%*&CFrU%lQs~?JXo*KmJov1cdxWen2jMPlGHpf?0(_=#fil=+*sdev?u+E8Smg$&s za_w|%1AbNhz`FOTlu~u}S@59@RgLgK*GVQlsm@FwAtj7=^--{kWD5xt%C8X&SkN0z zvFUaQ7G6@$QoiL&v9&{_u c`8NTgF@grVYD#2tmM3XG|68SXE(?nnWapL?3zW*LEA+h-uhH=8D}&56A1!% zkv@n8n9Y2;tGdftG*Y^}{z{fy@I3|IH~O5`RJqH4T^{_Tc=Pu>*^^h_=pk+5dHv%t zuKzp5TfXrW!X^ SAcz9W~;;pFK4`?r6?{jz|E<2x#T {Uw|ypg7WZ(li9xQQJHyG( #d8{C!E|s^-C@N?_MG_WZ^bkuQtsH$c+;j_?I% z(*NJ*_Au4vxyYZ9`NK6Cg7G1fHC&yuZ{x2NkfnAem%{21!)<^_^?%-m&K-Jse|Rqc z`El@Qb|nq4SIqY987~gb0NZ~&v436ny$`tm`pxfwGK2li5wZ7t5p;}<0xiwt4`2Fn z6*X;E*L(J)h=S>_XDy$tuGT4xD_DSdsEu2qqN1YBksBC;sy}}o01C3>o2NGzHM=$s z%a3jB9#g73IfvsMclW`AR#8N3Rs6FEGZNgC( mghM2-}i`J6QPK|ZOT9y(SxoCz5!qV+!j0p%)gfSKi3d`TrP0~9E`DF zHer9S6a4Le{K6+x1`lt6aln(rXMg|eoC}nM`0%`Q`v3LF{_lTx3gJt5FQ4fCpL{x8 zk)4N05Kh5vu>SGWxw*LrI!L&|k`>G;rJ%zVkpX7A%aQWJy@fs}mQ5`!0( 3MhfsJ$tl`esdM;r;0gfPpQR*PkHuybp{Cpz&8?(y64TM(PjGaGe#; z?+v_D15$KFcIqJLx3kzUA>_W@6G1PN&<^r&M&)BDa6h)#6L4Po?7qE_`t|EWaC~rH z=n(~9Sg`IPd!T|{2%M#J5gPlVrItf-^IeJ6r_Z^`d0^;;Rkun7d{ V{ZplxIt6WRPpOU`BT z(PeECDRQzX@BSy&wA5yT|MCs&r~10TeKWD)_p`GT#DUeL=CE40Cu=^1wQ#U&4uQrp z_I}{$gNAMVpYCLKcre~4hl(lK|BEwVU;5)akpW2N28D(e6pve=m>xWk0_#gfbMsuf z2h7YeB4-EPiCmO%FBo
2Z9{*5{|ApBYpm5B6@Yd!y_9Kp5*kdE(Ph@!mr1Z6@9XZn`mTam&vQdu zibPo$T8@_BWNk5!qZl$K0{8B|S~;KKBeK=Og*C9>2J3o6M#i(r$w} #ym{;Cd}BB^6FbaO>fdn~ZWseC?WgfzcA;;<@6%q&7Z@5f*cg z{qP9-U}(s4hrhqSp9darwYOe$Ny40~4 y#Ml4o%p1Oq!GDaC!w#v&1qB*V z*_AA;-HrR+*tpXoavFaA+>?{b&Z{R9uJFR*eDf! pYbzx?|Y`6q%H!yV>Hk9BGp*4A(1 z;Np(|*jD^Ne14UGhD$+UgAdN*!NsYf>1EgZ7pEB*oZJ(h;#fS9VX3%S0xlu& V3y|SHE^jEX5`L0O{RlR+RWAipz!|oFHv`(q3 z9@D)<1&0+#3&UZRD);Xw_GAL03iiIvVHI&xT>gnVWG~Yom|2iXu_&1TOSSgj$Kv$) z{~iX|*2QG8V?Osi|8*)l=V8OEf