From 989200cd9b6416ba0ef705eb10453ab63051d51f Mon Sep 17 00:00:00 2001 From: AmirmahdiNourkazemi Date: Wed, 6 May 2026 11:50:20 +0330 Subject: [PATCH] feat: add database lab_test --- app/build.gradle.kts | 6 + app/src/main/AndroidManifest.xml | 2 +- app/src/main/assets/lab_tests.db | Bin 0 -> 439296 bytes .../main/java/com/approagency/drug/DrugApp.kt | 8 + .../drug/data/local/dao/TestGroupDao.kt | 32 ++++ .../drug/data/local/dao/TestItemDao.kt | 36 ++++ .../drug/data/local/database/LabDatabase.kt | 43 +++++ .../data/local/entities/TestGroupEntity.kt | 24 +++ .../data/local/entities/TestItemEntity.kt | 37 ++++ .../drug/data/repository/LabRepositoryImpl.kt | 24 +++ .../java/com/approagency/drug/di/AppModule.kt | 25 +++ .../drug/domain/model/TestGroup.kt | 11 ++ .../approagency/drug/domain/model/TestItem.kt | 9 + .../domain/usecase/GetTestGroupUseCase.kt | 24 +++ .../domain/usecase/GetTestItemByGroupId.kt | 26 +++ .../drug/presentation/screens/LabScreen.kt | 181 +++++++++++++++++- .../drug/presentation/screens/RootScreen.kt | 4 +- .../presentation/viewModel/LabViewModel.kt | 94 +++++++++ gradle/libs.versions.toml | 18 +- 19 files changed, 591 insertions(+), 13 deletions(-) create mode 100644 app/src/main/assets/lab_tests.db create mode 100644 app/src/main/java/com/approagency/drug/data/local/dao/TestGroupDao.kt create mode 100644 app/src/main/java/com/approagency/drug/data/local/dao/TestItemDao.kt create mode 100644 app/src/main/java/com/approagency/drug/data/local/database/LabDatabase.kt create mode 100644 app/src/main/java/com/approagency/drug/data/local/entities/TestGroupEntity.kt create mode 100644 app/src/main/java/com/approagency/drug/data/local/entities/TestItemEntity.kt create mode 100644 app/src/main/java/com/approagency/drug/data/repository/LabRepositoryImpl.kt create mode 100644 app/src/main/java/com/approagency/drug/domain/model/TestGroup.kt create mode 100644 app/src/main/java/com/approagency/drug/domain/model/TestItem.kt create mode 100644 app/src/main/java/com/approagency/drug/domain/usecase/GetTestGroupUseCase.kt create mode 100644 app/src/main/java/com/approagency/drug/domain/usecase/GetTestItemByGroupId.kt create mode 100644 app/src/main/java/com/approagency/drug/presentation/viewModel/LabViewModel.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7f77823..cae693c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) + alias(libs.plugins.ksp) } android { @@ -82,4 +83,9 @@ dependencies { //navigation implementation(libs.androidx.navigation.compose) + + // Room Database + implementation(libs.androidx.room.runtime) + implementation(libs.androidx.room.ktx) + ksp(libs.androidx.room.compiler) } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a27f1f..3c8b9af 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + DgFmQ*c?!h&Gl$Xu0B*X>eux2hkKS_YEp>h4=AB=p39F|mczfQ%mK z1%ngXln`x2f9Gej11Y0BCv0FK6p-FCLuY@Ab{DzxsO=o|=AwVzc`5Po}@fzb$J` zJ#^vq*H1lo_kGRH%^RBAsr-&|=bE^4w7IvrTTk9V8|QF&;D(uP7w+6S^Mo^H_OdUy7qNlZVonAm(O!!h38aa(45zt+svuKTXj8Ge_vVZ z4prv{J%43$t-ka3RchzzW^q)0*xb|H)!g5_wfX)n>PE?%n%mU#?E;tff$KH8#?x1- zm3uUhn^ofbo9`)q@86>AA>9XEx2f!STh|HRtD0*x;v1UR3gTC&r`KwHF}59od`I)Z zp|iJLxU@9&;EqImAT`G{e&?*yL2Neg=Rxh^=1vXrjxCUI;2IM8{(3QsO-` zh4kcQTHkI&$gkt_r+hsR@jaVQ-&q8i2Y<|`v&ua#&)od_T)sZ1)KIypx$9Qn<8tR(ZNvqkwTq-lOm(6yC?>QoauKY3f<} zG?kDJcyQTfN4v_WQkct2+wHxauV>TB(`jXvA}d@Dmj|1L3oL8&dxXN!RDvtOBDVC%DuXLDuts)^93IKOCEfV%MWZmxP`Ap_ZF!B z1?6t#@;f}ZEnDHS1EiCMSgYj^7hTAZ|CX%RKD`*A5i3-n_qu{ zukYIY`uJwG2RHA%d-LA=Xy9X9eyZHtEb<7gJjCTgJbiex#)r7~823J0K9x(>-7NPg z5Asqv`VsDZe6x?gODmt;tnmq+mdnrc;5}S^j?3TU!2{U`Uq8izAKt9{DeirmdmHU? zKa^iL3;!~OKT|H$cw70D<@lPU_;tSiN_k4*|84WrXL)e@W~0AZzEb43xcoMk6Wn`? zew(Lr(XHu!JN>)8{}%tadFJN~2L94x;Fo)cWZ&;^-Xv>(XY)omSZ80SL4Ul5_jFXg z)6M#KpG@?v#Syrx80$C7tGYwK@6f%Y`g`&FFFbqtaPQvc&H8$ehTB4@pA@vQ0B zPj!pDt+aYnt-nQG}|-t=du|Jn3!P5FJ-Eesuc7(;t|A@ASK;k4?X0`o8JArhjny==2Xvzi#?_rmvsA zdU`m0aQbD_S4{7n-Zi~r`X$pZo_@jfv!|ai{j}+s=_%=$Kka?F_aA%zq4)XTzwZ5C zz2E8m^WH!0{YLNCdjF{R%e{Zt`}@70?R}#6vEF07AL~8b`_bNmy&vxVQ18CpoxL~r z-q8EL-uLvb>#g+;^`W>w{PG_$%hKeK0apZ1Q-40WZ=gDSB!v!Gf>^og2R>eKwp z<$Aielvq^R1wC1q*{}B2RJsk-yvi-iEUV6Lm5jbO3go+IcF6~iK7e9Pt-Flj81E5i zcd9L5?>B!u!@u3lmvmK}qE_ci|EF$4*ilKK*`txUPs0g3gYsm!`DFKuc;q|QpCRAm zqV@04=Vz|Vcue)zpQh_~t)Hhm&s!%Ld*S*v-FeZv%1^yu9R|B_UG`?`dFw=s+t=l7 zPCaK`ADj7Oy6kwTE|>gG-TclU(&ewbU6*GPYwo>YpPq4_K3#UNE?3;6%XiMhm#)#}Ggs^K%U9|0KMr;I#Ur|W>aZ?9e^8fCEbH>| zzpBflFW2Rx->u7I2Xy(+eqA2gtIPYAbUD6Tmj`$0^1x1A-gSvC?_AL3(>rwep@A-M zpV#GAFV^L*IbH7V>+GB&d)aCZ)>++W8>T=t2bb0f4>hdq1rOPeP)aCa? zk>>wKE&Kpf`J9N-{M%Vwz97Oh-+QhuuY)ZAUQ}tm2oZlDn*0GSz?Y`@ctekIHaC79 z<^M~)Kj{5Gz0XPdKim61d;dr8f0gY2Qg5U8c<*N<`H%J<={?kYkL3Oxy?c9i^xo9F zx%ax>t9sY=uIe|I*M76qT-sc^zWuCi&D66GJn-zZZjz*bY35I6cIx`2nSOJLWZ;On zdMKGbTs|Y6OOlwwk_~hFv-#Q(r12=Zf+u)vVtzEkG|m@WAWO8Yt}E(Of5RZ)(0g^IrwBBgq0L($_i~kz%leFvr-0ZMS%iZ(ePFUa45I$k?rFjgSkox z2mZcBpZX07luvw~*Ps|C>H@Wa(t6-fPlI~Zfd`*?)^%c_SFK}5&Rd7e|G#zE{1xl4 z_}V(`y|VriU0=R_k*+UYht~(|7wWpW4x_(#9ZvtQ^%v;++;tfKIqPuzcdm=&ryg7v z&rki>y7+zSp`wD`wJwgI`r)F2{>Hl4ed^6c5xsF;3_tb#D59y?7ZvncRM6CQ>vD3Z zt}V*vRqJYa>J?HxQ>*BmzmDEnd5119lirznxm3>7l~OrVciyebWoVnX->J(!RLE3IE6scixEX)G$!`pm=^jHxr>8kF-?`vY6elu5C>#*bk8*^|}voEH;v2iQ=R0}4W zpV=u^L-x$Zw7pUo2>Ii_EjIliN3ht!=sBOUY-{Bi5^L$~$bacEt=)2AOyIX2gH>VJ zgUz1ia+M9(kH`|onCU0%-I5@#p>>S~m7VP)?|2u71PSA;M*z;S@BQYuAYe4^_wr_E zv%k4mJzJ#b)vvMIZ!XuE)@Baqx8Go86UxIgmz42xpH}fXfH2wskLWV@ctmBPAlR~= zI-uvF0?>D8qbt>~DU8oSpW(5XZe9PxT9#hHS&adxwouwaGooB(`{-5Lq=$a9w?Mp9 z#>8mXRDMaC5uTVUwJ8m@j%f_2BB)FsE2YeuvXaZ{86MnQ>Z4ujnzQ{-ULNso_2|(- zp=GrR%mEJ&Z>Swp33#J6xUeS}9I;z>;Ce<5RgRZh;JZEU;3$uHS#pq`8ub~krH7h} z<=cg7WksCmk*zfQ^a=bO6HnPffuW)Ba7^{N3&p|fTxk)H6G;LuZT{mvl7mE29;(~V zG-n~j{tmYz5#i@a{QvA=f%Js>>^B=~X?5mt^$YHeot=VnudHqVTj<|;8X?r}H%G){ zXb;A`zuT-Z)X@ap&d&l{Ci~P3XPo6(E|GBgm`jQ<v7MXoLk(<*@3=u9f~CSHG)8Do&^la>9t`1y$TfD)9sl3NmP8 z_<|2YpPC0ASGi$_{_T6K>c5MBFld_7IAS72hp|%)T%XeU}-`6YqhjR|Hi_c{AK7v%d4sZjlqg}7hcN|Ys@Nh znaW^Y7sT!7$$Lkuv?Yh}SsvPYXqRf!x-Ba-v-M+~P-v%mg$}k=0rg_R2KAzT*b4ZE z`+Eyd&;l5tP52H>1=WretU<|Lf_YDY8UEWhfjU^8!zu|jUr}1a`=Ql~WY4W#Pc^#G z$lw(GT`nlWFn+>`B6HRejBi|nOu|@=&o-u!FnFWemUWhS3;DOD0XNB=_ye>&S2WXZ zNhGoaKW){=Vc}s_a)Fj{5AezE5mxsWtPXT%S83&#JWX`LzM{Xa`wkbb#Kt=R@_4}z z&(Ixv%C`;GHvgx_KR7BM9Kd+GP{IvB53S(~aBul=FP6B=OBu%OQqVOtL~S$a2|j(i zlpi$166P_Vx^I)?Gyg=t5znHn2Zf(4gUBn~WF2o>O&)J>Rd;0OBe>cUPj6kTB=P?W zl*UFO6APlk;o|38L!QuQ(-sK)6r76(`j#46j4Yb{Xmltzq(*Sb);-{@VLMjJ-&xfm zs(=EfLi;%|4Aj0Q-y>WU4i{n!f#e@Z61hf{?>{=@tS$NylX~RO% zpgP*;faDqf8U2}D=kd~-VOZ2(K2ZaEZq7r0A`ft?y}2&5@aR50XY_d3q4j(Rtqu0! z(v2c_NHT3_ti|`F&{#xTumuV4AMXhLOs$~7I3-h`VgFA|Xmw7tX&vlZ8$bc; zEoY3O5HdH^{lM^?^1OzWIsu{mxv<5j!V)@-a!4{*hZoErT|9-XS{8tG(kN+XUL&Ec z8Y1@q)#vpD3}mETOC!+?Z4Wp3fNbHEG!y@y^ykr)^-IoCmgM;TKYN=pKCEhalV&Se zRKvsvGZ;sUj|-ixC9w3w4TfxgbD2Khsam@=gL1pHVqd>_#d`!9Sg$#EW9CxbgHE(U z+~ijF=<}}AXbJw@qmkD7h4u_nKtvRFYKYtp(!LJEjE4b?)o!8z%v!l{lpZ5<|SD!2r0v+k*V21`5;p-Xp7N<{`Mh zwhq_{Fo>6d1W|vF@XZx?!@u?utU~Bcuvk;CueE5aqZSN-t+M1@$&!kqI6-eLSuw=?}N95wsv% zV;q=sfElf~sCv{)TgbQU`^oyOtw;8cf8}^AyvW!A63!XR-eP~q)uO#D0fFzJK=yED(YIJn^SfaPYlnTGS1WL1Vgx9m zD|N>4(2gVP(M|3(#(^}V{cJUJB$t&q$k__GXL2jpc<6(*CvwH&wfQV_BY}k)HsrG& z`+1TkX9CUn>8W2TPPGQM9(2S|b7S(V^R=^Tx#q~zl?IO|phQBE+M#+sHj-CbvZVks z5j`Fh?a9}GEAT*+!?(u^c6XKaKU2M*X!QTg&lwDSZ7?wPG1hOt=h?CTRW4^|jd!eh zeS_As;7s1pJaFqaujt-f2ks>~^$KoE*5AL0R&;N@8vL7UjW+}@hGC_cUQ|chJ;^B` z!hF;{4nVj~sFIk{vnd`Fg~&7+u7krA6pvfA`@(m-hJ=x;GhsNgeS%xkG7*fU__|6Q zlSZ0zubynxPQaP&9T3|MU{aTgtnMb5{C}ooI1f7aI3WDkk6*Zio8y|>{N<1f@>S9NqF7L zB-Yq8ZAe_=3?%iO9KozYT`EtKe3T#Zu5XM;7EJ)VTCQL~| zUy@NySL4RDc`5>~1CnQS0{STWpj~hPf6ylmAN|2$l!{Q=L4@VvtxC+?uEnZ%==Uz! zOLm>yroS-?!it>Gci1r*BF2lP)jfu;h{=xm&B+d?;AqUQOkdW1eT`|ZJoszu*2aZ``E}~{LG%N1*>(2i29mm0<(`LRpCty|z z(+S<$v}#BGsUB$;I!uDvd=qOO(%^uVZsvfp;4+jus@|iC=nIOYw6pJ2&CX4r2pBW; zgbUiyVyygugWxV^0BjnAMywRJDX?m3j~U6pT+WtysdTo+sd>|C35aa)4I8y^vfy&@ zg+815wK}Wa1Wcjl^+LJS*>S6`galq;bXFafvyAA;T_6{y%6o*038R3*^T?4YWad8U zn4t_pWUEZ=1A2Cuo|26=cAZ~_ws3dmdC1E^!FIl#sNb1Kx7QuhIOo({Y&>8f!hK5U zP?%QRTN%B2MC9Dy6C?<@EgwmR(=+JkH;)6y1iX=5JERsF_du=VR$6-k6+MNKin&%w z(grK|qBXb%=u!*SbM6>GbCaQtd}ge$O9{gDviveKAV9kt0{C+0ru#(S0U2uzcFSBJ z7WbkX=_Q_ujP;P_vEU9|lC(#RFK7_h zw{fRTcNCtH!U6(^-LbSB)QdjH`&keMsS%-q$KZ7<&TNI=GQ19q7^5|}%Nr+9;Go(Y zhY&mxilL{>!Q4rAKb$A)&EPX;EzrhpeL>>`{aPfmb86$X%TqU6~Jb-n!CA98mH69qZlm@+0X281b_~}V|yHxT2r{3R8 zJ)z5)pKmAz-h0XV)3-I(U-QB1Wwh>U{s%d}w}^e-q^VUlhPB<{u6V-gD41ZDQ$N=@ zpYfA-ug`94F1X+`oC3fq;G0TPhOi>m7RP;f6#k3*4t(e`yoa#u=3Gjq?}4tgT@P7s zYxqp?zvU6RgZs_d_BD2mhPK{3|HLNSq zB5CzJFUNTn*c{IYY=vQ^VK0Q?og|x8E9e<8?^T0fgy`g$o_K{FRy4{1J@k59Fr$^Q z8MZeu!<1=4dr$k6HY5lpa>J*@wo!|56X+Vxv;ClbXn$*Ud@~2}v2wk=rX4Jp62xiN z!Q)A?s7s&>1hh>s4ji>7zFSt|gnm7L%$RG+MOu+Q!7?_?DY33MRww9AFVSZ{C9Z*Q zu_UyK2V>~~>sXoKDCm!{TegtQkV&|ofHpLw;16wQX&6XXz}M#PJ=#}V!Gp1aN0f9L*JQ4HKsg9j2w&bw z2xnx4%vpO_My$EEmvN=1-yU1W6nLW%!%Z4fq-{+xXb8+mS;l(AT->#GqebvoU=rtp zwb(NR4bdlH!Q-R%Ou7YTSPvEH&z-Wz*Odh5Bzb#k@MLltZQ=Q6c*nUXC=E$~mL#5i80wQpBN_iz1@VNb@ zayM6$nHKDr@pCjeazUm5oFjjXtsCo%<25rXH8jbab>f(HfQO_fY8?e#LPuNU7>-F< zCMS@C)0`cPETuW7hHt11qDV<m)D=81)$G=;M|ArFB`6hqvf8S)g*n~P8+kh@};9C zo+)mzjEC}+U{0k@IkO~GKj**i)$7kzcNf3s=^uLLSwm^YBPzOAfe|{#`8~%2WN~b% zHl%gfU&5MFbTN4Vy744q0(WYlD2??gd(8DW>P5SeE$=?Z>*gP=vtJ~j3Qc8O3gnYu z+#@KnuYU9L&2dClxJDeMfw4WZE`;r;0i8)96tfdpZA7#bI|ZCuv44Y4z^c{ochGva zylw3hu}>XG*{(5qd&imMZ}*5jfnK!h_-7zn#Ev0DVs9R6YfO5jn!iWC8LJxZ@Zf19 z%G9vg->W?`Jd;T!&0}rNN7@FW)_~+qE)}Jd|vGc)mAKQPHD4 znD^YUdMUd&GIDT)fLBRuK>inrLu$sOn@KGK;n6wk{2Uz;SWCaT9l3|6x^2&@Y};F` zJyS;{hN`Xe4#*PWzq>wsSZl9tFUYN92_!!;!fJQ!*oQwcbAI2t08J3s$S4kpwH&u0 zjva9+(Ljv+Bgg2Qwm*)ZM)MH6bZ0m?uEh&dA|k7!IHD%j^%J+C1473z{?xbGZx;_( zy?S2V5*qP{aS2A46##N}=Ms^HzM9M%RrD&Xb^8Rj;6c*ho=%z8%p0 zs43WA@cuj2pI02~3m!e7<8#Tv;lZZW!v`bJhyTF-p{@sP2YS*jqPmSMRd-3&{!}gD zgVuYQybq0?Pqwl^W#7Y+7utn>v>&}65(W~;>LG2mON-)KbFS;eSu3$;GUeL#5s6Iy zrryUE9v8+8tsoP+&{&;pr%9I7lC#n|JHL>VIFZni(CE4@Yy+wItufKWv^>#M;f9B^522PEEhlcCtY-{%K|LDtf`Z&u7IePmxSx28;v??Bp^$OT0 z&d9N(J2tl}ytG8Q&YL+Cy{57{6+*j@)?}Ztn>^(%**s1MS}EVTV?P{=>s+5}xHP$8 zpI$`^)Ltug(hJlL30LHkr|1?W4GWIclS>B%VluP}a_w`KELoQqSlIEL@h7DtUgGnL zbR%(2c;v(ep{=YnW1lq`3J4R1ZcpsR_i6->JaMzA`36-SZ47t+>P?>3MVyqro15OBU;6nHgqE}04<0Iy5>ZP}g)p%#Y^}g~gcU$=sBgaZ>BO4T(51?0IlT0;`xc7{w@CHp; zYv#4lx({QD`CFm@j|6BrdkH=YZV0Y~Yti2xIb|3nl)<+0+1YSo%qNW*pG3{fl;AI7 zg@AZLpDhR5^^Jb>d=xU<$Ofa^Tl!;c_?D(KW9D1TcR_o5;84VCvG%G*w@X{Ba>6@w zDLl(zff!G7pXA}nf^+xEiDBjxFo~>S3CVg8ImUS?!Tk}{uBt`G1yn;}DIx-7k@3X* zm}QfG=Y%zETiyYetl^2;oDD%tWUFaO0LE3-vBq&-W8XO0*E!MVphm+OCSfcx7xn0T zE{W-uE8t97VD-sdZtaj_N4R0CeQMfoN1Rcz_C0Ir zb|Z}ldm<-ptpHT?=qr8XMkg=?Zk$^M`}nBbp)IgO%u(}NXv@^a8B!TXw19rIokyRI zw-SDP8?MbPPoZ4G<#uy#?sm0VudRkg<^cLOk8rO|gRS_%nh(6V9Y+k`_$jyI|2H3O z`2S7tbNr6=ZQ2I3^nquNd6>(RjkbTeT)6BC(J{H8YZ1!667dQ4fq84RtnCvPYAD%Q z(3A8{Vo!$cGN&oxCC2He)WHt9HFS=B1Irfe5W7u+!Dpv-pBz?Jn$~H_JkR-|^h$;b z-C*CsvKbrTtYs+^t4>4P8tV4BW|W(kedRA_Fkpk|4C zats6$bHydl=b4QJ+@Bmo=>T7xaWpWJbrFK{;?5(JT^h-X`vnXRw0@ zRgwrY@4{z}o4_t|2tD$o%E)4oK{AA0t~(^22fl3Skf5Un)~UG;T82;T*8pBt{P@X0 z-|Os^WgH(Y_}BgzBcv=G0q*VNv$uoqk<+qnpk4C8vYH9GgcCT^kkq9)sg5dz5%kZ~`Nl#241sPAxm{ zd#hxO@}`LRq3E1Tm7n3fEkC8d7ze%aV~S%RojIjPu+jEZEN{6N2cMU6v}SIjylX|w zjg-3eIt!gA=EvR(JYXy_`YL>BS|dUZt%a4OJ@9g*oQkucZ!s2V5<4t>AKVcK(5_eL z1}vP7f_8@Pw7yYBialH`dU>xTl)1M>_2V&mRG~AWH1f22RMTGJWPD7Tw=o)3Ot5JRLz& z-;oR1N>kDp2)>4?SZfLkh@1yzu zsXuM>|IE*~4+b83=lTmY-?+4X_@mE%(bclJcwOjFub6Ol0~_6q{+DD)h}tjJ>a@@! z_Dta9jQZO)4xS6`Nv;|$MrtPMXm~U1Nyx;wOnWD$bwb-?4mrkBk)c8&$j0GgAq$+$ zi^d9n+xC@_0u3HNy=I*{+DFE_R>hjwSse5jYrfGVZ8-fa>mN*@x|^Jl=y$@jg9`F`T3e*;62Y-f1%!#^ZeU>bos2q zT1w!|MXXIdwX`v_pHZ=QifdPMX{9ZJcr;i_yeaG>+(6Fcu}wb(Ucsu_2H?5!3G0Ow zGaUF36Hb*=bhcVnrPFFH6L1_Hh}6;+md`nW99I`=TlqMn&iPtfCCeqy!{696*3X6Q zjPX$xX^m4RiXSQo^EyNO%^RxES^linsaI5u;yXoXjJqBSngD!Q6XZz*r#gYaai*am zx&w00?3f1D04H2@zD%&x;~+;21bwL`9TI&&HP{6TD1xpy!#!BU7|8yySTrURC9DM_C8L zDFwl=1GUoKT|_hvrkSUK1_7_Vb!fAu`(AenU$=8OjuIVB)zJsm#Alw81@PRNN3>nv zz%CNuc_YSJkB`NnvA>6(; z@`ABao?m6mNP>N8eC9lj(ott(>PkU%Md3i7MuHuqejQzR=k3Y4xPNA4++wW98ONqe zW{=LeFcQ;-xWRO4V~OGi$XVnj4paVfYT}_~aXNaK`QQ72X8zd8y;$ zInA*-XFATElX+&Sevo4Ngj?F})p;0338m0S)PQ62HENz2G#+RJsL-X8Bmy0Z-t_6_ zH8(NqiB;E}k2I7$E8`-0kvU|tk-!6IIM>QspLmxGGLm#K#T=mkHQd0K3+x1|pltsy z7_9{Oni;@v&4z#c#`WoK&Cb_;>Ok3$&w3X!EH^3N7P%hpNJgilUAF5lROh>JTuKtd z@y(H%Y1QV6JTKc)6BY=+7F&L(?D@P>EwlG?yf5UHeFJFrkc%$o;R$aP`rlOOKax+4 zrrRF7wr0+pu)Rs=A%3iQYrD;(V3N4%F6#+Q1+BHdhtU zdz>B+`omTitBM2y4|Q{;aD7Cht$D~AvDSf5378P@uBW{rL?UD_6=)X zQxR;z6G&POO<)M_piH!d??;qSza56&TMly&m3rK`v(?cn%7-LCKgo&oirg-Ysp+);Y%m(wso- zCn+mnpVo6#YnuakGZOQ4aB}!~M0#jlAhdRlQ8Sxt*{0hs~;<5uH%xP~p`pgh^=Od<5Q?^-{!+Py*@MBZ-bTHo{}bpQ8)7fjUF=O7DCI zYnDd5I=7JP41@NWZBCoS+#M7(mybqQ`R_ z&rLx>(TPZ{tpPqh@FGF<2p{2#hBjuTP{Tfh=b(t;!1u7|CG^Ii^cMa_;#4BWwaaS(+9_8_ryV z_ibl(l@Y)}v*j-Q2L13O;LbzB68Snt0ngY27`Jb2>4x6)(&iJ7|H*VGrNR!ynm?%I z91Yme8sO&#?Q4IA{^*rV?V#|rS2iWp!aM5vk3@F1c;S(STu$<2z zJe%8uTUHC7M7(R?VE(c&und?;+rxJy>%B)&hJWoh~uSmog``ae_3*=+H+{8VBHN$qBuN|G<7_w3u;@ zF7X_{Po#B8a8AHJq7;~)!J_XiqOGzltbK%Ut%6d0}YCPt9{_)AZt6Q*|vlJ z9u}{r6!%gBKwukhJp_Lm1BRyd*}`Y6X@bXz+>lR&gVGMg{{KrGO){O<&yQTaK6OrW!TPxmpIfpH z2X(qKvoKyoXOElq-BV!FGEiF%ud5(_^_zfeIz!jC4$8L!(l*ja*52z;C~aJYyuz)a zqoFxi^1Q6|bVj>=%k^O7>ySZREwF>_OY}+E4YgIj(Yk&EDo|SQ;P2wSI(i18AtTd0 z$L_4&f%Zr+@jN=!rFk=~-zywz3XLmDL|jhGj3Ba$$S;_)K4Wyj@!r+m9`meb47?^b zdN9}27_U#`05b4I?02QcA8)RW+J>*LJx(vUkMY`fWh8tLd#TpN&p?UK;{!{x ze#W5;YlaNOF{hr<8Az+wmI5wuRw%u?$+U0tWb|N61Jh+?bt=9Hwi{g*@SP4G>`M{F zfm7_(23@_Ma!rp=fw_-d$8BL>=T2Ce>f+F#bgRStv zTAtMOo@GhT+z^r3z&p-U>(LnS0{6o*biMJ29GL%`Zobq^KQcY1KY#gu-hc7>g^GFP=yyr(+4UG)hzEy^hCkVFSo4ML z_X$Bu<#-Qr$9r{tX_Of>{yWdWmcXxTUACu4J8eN#h0fiGA=V7Pqi$=rm|UT<4X~j0!zqdEU@B zuRLbAH`2{1b42z!fk1ccjpDhWX(bK^9((nAUkr1>yYK#m{bwz!z_L^|$J6#3pXb72 z$ePH3hJl8P62s-bQ7lC=lI8lG{o*#H=y8Vs=Iw3dfEDm>F(jfAJ*zo6+Pk6$uN;Zh9>C@-vAsyIu!}W2*dyN$|8Oe^gBtBv)cync zD#zQ56Rp2iY=SYK8R!}-ll$rVjOjHyy8}nfYYiK@7_xz^UknMt1MvJT)WYt!*YCC8 z{ZXH2_wQRgUQm0OJ)T4SCu>A<+q11Z@&ODOQqOfkF-^YWVhk|nVHL`v{8YP?`Y zc}D`Uvum`=Gs8l!fHb%Te5{TivurYyU7ST{_kloNAKV3@|1r*aKYc));xRv-#S-Xd3B;ZwW&AT8g-Xn z@psXPh7lRC)~X{+=7rjHPi<^G)bz6l9kOayY%;HFCP^dM(X=7#(&g0BZ9N?F=6TTM z)0&DkJAwv3ZQ>`yzNC$5{Qkttv61~?P#65gV< z7F;X7ksda#>B(Mw?D0d+OtsKH&SyAIApdE)1{9ODylKFgYg$5iAVimT-}!$-r%LSqvFnv**{N*HQJoKapJKaP^~v!y(b_RZGUP>&7_Y1ios;y! zep{c`upwue*)!aD>p1n`9la7dog5uwGp%@vj^=#^%rOo11U||h+d7^#@@RJ`5pzmm zWyr&m4@6HtnN3G(gqfYi|8Ksp;s0Os&&Qv!{vz#qx!|^6Svo7`F{~qF-2yr>X8ss; z?jN)5fi}c(j0&8jewgiBheu8Yo`|@nJG*AR&*^Qv(I;mff=|ioy(8;FrK0b7e73=dRqA zTd&(8OF`|(Cz2^g_XA~jW#umMERbP!7F7o5qD5Zz4WGKL_NtVy)NM>M5_7rRSQI4Y zT;v7(xIJ>7zz0Mgm;DQm4@>2J*>0tt1&%j2O@=$HYxZlcg-4Cd83*(j9vD1i2y0%; zmw&fs+OQ5DxknjKnJ>lz09P>vzxNluHS{@V2Nn z827BoIO_4Jyx%ca%mu%AM$2nj3=5hCZN7y3UxdtaDh${UO4FWa5|Rhej`HvpyNGZBRZ_ccaJ_I-T`N*eA|S0Mlfeh^*1vWd1n? z6~46w&Y1vUC+5d6);XNuFeX^Hx_kHF4Ze?B|+ zgs3xHT23zsJPpJzvT=IS?u`sNc*bu)8=+0wC8&p9U>yU!P{ZDGT2PPXSm`79($q>^ zfT#YvMwyMkZ-5)HrRFze9PR`s(AHWTnL%H2hdJ*!u_a+>a|Ajf>Vq{YztdnqiHY6yK|7kT`J=@ zs4@oHq78a>G=RqO{#jxNuPSFuL$$~5esrg8n&-q~eTc`4gtA{1zGV-r`LsXr=eiPP(Rrf<*#ikcSm8Dpk>a}?N0FOb@t=gWz=M??)|%k!d{ ze+a39>YNE3+7K<#<`zRzmx14CnO@<(h^H7&QZe?tkHZGf!h_I~r<|8X8|W|7##Wm> ziQcu0><7Iq^LtAh&?@@dG?o@hPz6e`0Hb&fo_xJavdY1^9AryiYc zMU4|ql0>TghKcr>(?}2!8d+F4%6|7i_sMF8t?_!j9AVA%IojB1k(}sr>8(+GmU?g^ zeAOOnT99Zbc{R_zaEqQ#K-V!kY$Uv$@@k8Z%?-SnAK)P1MZ45Gz}Vw_&NfGZy^Mg{ z*t6e=?}a9Zzl_hY^-vUy+5%0+39^LkLN3#f#)1MT_Xms=xI0O1 zSl0@);G}3>tzNrR|CmRcRV{P|_TRn|>n@zz!s-ts;g(@&4*mF6uYQH2VjUs)>_%iM zD|n{P*4h5^8IB1J8#%lMwa96F*1K>_v`^oTZOvD~pV2Ndg_S(N?`YQiVd-k`K=Avd zz#6nhYf}>*y;NQ>V-1-MJ^1)Y_XI4H#+s7AY@oTl#+ChVpz>0lyoz=)%EcP@p9gl93H#DZ%R&4BM^og>5H}*)861;I@BV)(2EZCmVq{w+-$aU-71FJf()zTlw1hf;o3mK{V zrnTgrXp0fGdqD<+d*Xz`MbX$%=0JAY`CmhkyvmLl_#2t8a~RP(@(-_2&uiqp2LpW( zwlAoXtzswRy+_ow59iZ}2L-q2G3T?ev&a==g3fhpRG&=hcd4?J3aw?CtTh~Z&y>sf zB4j3g+#0XT1^32CSRz^onF@%2l<|Op-DUM%_63K7i#n1)^VN|LUJgEnZ5=a7L^xil zhMzPL9Gq$FH|6mBYJGc~etEClo6D&po_VxRZpUM$6tJPmfu+_gz%r>8Wf{5i+@_{2 z#Uz{!#Hl)8eKh}Bk1aj*4fTW;qPN)DkQNMkv?dtI8#&5?CvttEKba!<)Q%#oi-xL) zpI+=i-xvpCkDLeqd1Yq3%IuiYOr5?en-KCnIEueG%!<7!I~kd2oastsl%$iFgs0e3Ret>-W5wPxL! zefJQvLlMzMEKq0B7#lenb^%y^!mB#fTn$;GdZl#eqV^0+>o&n|P}r%$o;O#?c3g_h0p*tU8`$XL6vcz8hR@82u98Bch5$eVH6 z#$rN9n|P5j88^q3kk<}4$dSVxJ_H_nXbEv~>| zYS|-={lE6{;S2iAJ!sBw#fmDl7gB-twI+M<<}TWC-D3URjlh{NCAMXqR(Oe#=|C4e z*{)+|Ct2;|n2DHTpcb7;z#6hQ7j58Kf~4<;>Y#my_&nPgHYRehnQiCnGDpH-15NGu zUi;c;9kUD3o~@C@?@&YZv- z^%!^x6hP$tKaVxN$G&~N`ZFW{=EK1IUVrbl=J`uM&M6bS6>G&iKk^N#UHK0AI+Z3H z*ZH~U&l2LiLao=3Gi1*1R$~SMo#vc`z3JMQPaQ{JwrND*K<9ax~T7F zNso^9p%*wJKH@BOP8Y2`JbQ3h=y-cz*Lpvh2iL_-_<hOVy*q{Kwp9~eo+2JhBLT&l(fG-l-o{yH=RL--+Z1FJx(O>XsC z#V3bG+0~kUz}J1mpaPl%&x;-l?u*j*`u~+iKz_A9AKY`#In9ps zb3b-f!#iPbY_^xbsk6Zi{o9vh#use`wvht+jo=K-TGxQ<*op0Yf=|S<<{X#a+Pg^( z%*gg|(H&3+iUl;KPr-WAXmhqDF6nFPkI!s68%9g;h;fg<$6E#?%3`0P*V1#(E$6xI z0RenM8}N=bea_R>Ia?sz04FMmtavp=trO9ca9e$H7#PLx9_k4e%{hR~QCOytFvd)2 zBp;5={;?UBJT1n51m$zO2BnBru)njhc+ z^8>hH|IgI<2t9S%`7LPM&5qT23Y=J;>lsa-rlFRlOpxBI^lneTGsc{S)DN_}0vPJI zK*8D8Oz2GbIG_x!%*d2gJ%cjZTIMY~DH%kW_6t@dD{gzGoO=%>Uey|_92hBl3oh$S zX=Lx~u|NY>y0a#DL*?Tn39r}bY7UQjr^bX21_jya;yIt;$cjbAACT zO`rkMU2r+_7+kXTm@OgT6?}S(=mfabE9=1AzOqI;a!l<}lg9`@%z0#UUhGC{uL^gY zj3Ha&ofB!@;dk4hIQ6TGyK${s^IsdfE~nP(36LUs&NYPXy3m~&n{FxN|L&p*e11@^ zpPZwN)4{sAV&f*f2J55Hfg#0Y7{I@EO5!QyCZt>IF$Dz_A4-c`B9M=mUB@c$jdz*) z)Gxjd#MABF^LQuN+{kS}M^F0w{>gsxkthEC$iGN(4`edxPmQ%8r@4lt%vAk2zKcaT~&2OLl z52bB5bhpmQ>?!>+k1P@53i|HJ?8DMd9ud{r=*~kLv#1%;)tP zip|e(2fe*DrVLMQ7sHcFT%f^bOMB_JTfel+gawCZ!oEOt_M+KhSbwaFvutU+o|I=1 z4^THw|FM>(kMPBTA~JW(Wk4k&G3HL74l>}i5Wr$NYDXkpyAGuGWJ3Q&47rt^k2t_R zLRa2t1SDJKhogtC&Ph9LzX=ZWiao}G?hcP9$Avb}r^cr>YufkI_v}(*0vi}4dgblm zF)M*&13$XMymGm|aY`W?cBp92UW@%v>owzoTCTSt3Snb%{{Lh%b@Hoq|IgI>*2Ta> zZ@+t6v*W5qpRM%__inzQ{a#7VqBK0wzAca6iouK*y4R5zmem%ep5Y)b;xn|7CN!ok zoaMaEly$WXTpD^0NrTU0Ha1(eln=BT(6BJeVL7lDOpo=vXXq@S?Li-|hx`DO^ApGk z-Z3zfH}|tP42}bweMd5LRtL!! z1EX*GI+Po3N7|F`$g2i~$i zr*qd{_Tb@<-Zs6JeJ1Ce+;!z>rudf{j&XaFp84NPTgdML(5EiBl$E|ZQmiXI_wpeXy z9|EXsbHl@>U#vZu9DD`yBjub&*sn49UDO%j*1Eu+jL)+}CK(rVnn(%px-|)74(+fN zwffD;Cq5{zHFCAvg+nBl{P2Fs2>7CPOB8-Yzxl>da^5 z-~H?2722=+Q1KBTk^lQg^7j7hiAUr=_M1mf{+*LwIQdWY2@GV-e^XivUG;g@diW$W zq3N+%i!sVab+hqeE_A#KoZt=(YQG5GZ>@z6if8C5dbNg%S$8r_XdZB$*?VTV zxs&g|BSXM^DfdjPq1xVD8>;)UACc8ioU<@#Wt@8lR&=I0hO9O)5(zR|>siMT#tR-- zzUwADNZvjKrnPFbkC%*xmiaKZ6(a(N@F;7kCcz*421daJ@DKGVR>hHpz=F^Ucya3+ z`sO?XttQ>$T}5h1S(d}H;5$o1L$1vk3LS!bE( z4LsHNj63>=3m6ffbB5uFAYW}}b?@rYU!S#nyVgcW6v@+@6jk!3^1I6QXo)oM)IIZd zoxN#OhBs+?ZBoroZM=niW+-TR2Insd|76h_Avv9(QD`G`O`QJ#HNB1jDpRX| z-wX1_zOMB71DiFBw1Ex`%{SYR+==@#?*iRY;U{uqoZAj$i-m7;#a0cm_0DMhZ|}B7 z|IhrK!NAuJ0}nlI{UZ5SJJ#R%k+aVV$-7aKyszw>n^Rl?|08qc)pnINc&q`!XSzb) ziEr=FTFG0Aw{?e3#$|tjJsW3}<2`XcZIhiOu75?T?>XSQel2InCpk3h`k}ss6>haDA^p7JiYa1YQ?+IT*hgNFq6}%g= ztG0gj5F)4ScCf|RLjAmqOZaHmC0lo_D%yfok6t~1w@0*OZ!@A8Vh^y)T}~)P_YgNm zgkdj$Q`IsaIaWsKRS1j|z21&>(0O&VGf;cjOL$>YZM?(woWWeFfhDcsr6;iKRbf~n zj}6#4Cl8J48DQ{WYY%?m%%z#*qkB+yLwBsxft`~P?6nd%Gh+{>!55#P;-K822Ot8k znZE%_;zxKcc_|`cxFWK1)MGsd?HpG-(2&_=_Np?L#JqiTppG$yM|PyVhY>pA4I2lp zXL~}HjTr^w)VZ~I9#+otXT(BK(L4_xHUt6rTKNZh#y_AVZ{`TKO*^RJXf?b<*1R~z z1q!bn0I%c`C~ep_^xd-RvS8G?Ht|2apgB8 z{8C}dyXwF*au0PFCo)0Z?FC2BJ90h)J-42zGdVGSAkI}t#%K8cMEo&l4EKk|4*6h= zwj>Lh7e;%40Wc3A^EbdqP>S;&KETGpj%tvl(D4cscl>)w4;z&<^z(a-j{P z*7&>%{EMYPN5FCHs=&H>rxKq+V~3`uEwY_(4U$10J_TmEoM{a;YM9_DXx-(2Hs50Z zu|}C6$eCB<1T4G1c-Ix2M)t?rAmS?Cj&toMZ1suRxeDKJ5k%sX$7y|0-=mk%U4Fk4 z^ngCOg3Zta8D306eLxtyOr^WW zDDc5}lSFW6+bVH?{3KX=IcTNe#Yx!=kC^s=-7wVaNU+XGH?0H}D2-mhPO+{KdGR-o z+Z3f`G$j}b4G5Rn5^{!FXbQKUc|-1-yTFF&8tWI)Gf*aSpl$k@K4?fZna9RS*J#5z z)%5Pzd=@9zJXA6% znsnF8$7raXQwXRB!F=4QU z9PbnP-+FbNwe6ztuf1x#*gMpUd1h^IpY-k+ci%7Bd?<4lKM-49l3!D?5 z%_(ge3=6;Y>1#j>hJd4s9XK9Ivu=qsb&S^Qui2YAU-*&|l#AAYh0%a5?jhqq<_H2! z<<(+|Tcjk$iwBCA6S!`V9WJ7_;WEAcBF4wAcWdh$1zv->%I^k0A()7Tt`H2syCEo$ zT>C8^jrqtUhXZ1dCiJ2{dIL-`LNF0r5|lHx*ry8|&OIkb)jn@nZZxYYMf+QW7m^YX551u8HQ zV+c*>m2KGjxYNcj*aeDJ{RXC!-t`E>8i$-YPi}n~8M2Hup$hajrhpkKGu zJv2NrQ*(y8xYKoc;6joHv&XTXt=lsTT)kJ@6r9+4zu({68rr!as?HfYp$iUGj z90*160Bi3j_{}}?jMA5>?Roi=(8IbtteShZ&99?XAjeaM>gX(XpVKzdiF`P(g*-ab z(T;VIWpv(fhFl5!6WKJEuI(Khc~OCk@$+ua^n$V-YX!FhACpaln=Olzp{UzKr<_h5 z-rvO@kl=P!UE5!0ERK`u)6p_xoZL5U_*{MP$T!|Q0%e10X!@*OW5iJtt9;-&vuZt+uI>JA>MOcfe==)qOEi>sxdKJXAvncc7i(l$h}` zf+O#bHZ-AeLr0I^|I>S8)B7D=&itIgz}Ex=@4e`@ZOwsKeeinud-q6(bLttoyf3zQ(qr?wG+KjXPC_60vZ$xZpvRFNHxU60S?!#qYjlI%{ zsdJTwSDGDnE9c=@D zccs#)dZ}lf>zE>Z$o7a0hb_b;9++Iq&}QTfPubgsqmT-}1rVz`6#P(}C$5K2mKmj* zlEgS*$NXTKp)|N^pZ-S#X?qy6-KJQc*u$8x;@OkeXGR}x6{&J;7ruC%_iW?JP@${H zRA8&2lH&nZcO?WHnvV(|soM)a4@^K?a0EAnJb_E@MfMkO6A6xULWm{sg+eRVoN9~( z$M~D$8?W_3-A`UcS5slqI0Ku(xz;J-N|gJLAS@GtJ?As0JNOFX}87 z9v^P%Q|b_XI7@}^3H0$^rI4(8PY~6Cd9lLCxBiaMZd3~_wT2k&NNn5>2j?5sv zPR?a)&4FzWi)@O$ZRZAnDdwqJmxIh5(Qoi$y%LUbY!{BmtC*X@-ULS4QU|Sv!hLWa z^~-FHc&|GTW6iu;WCPhGy9g8uBffLC#rXuN0zbv7h1oum28MZJ?STGFNrc{~2QxFO zmz2Ik6WAkgw%7fV{ba<81qQDo#3F9R1K@#KZd!6V=MC%GA)q~|>@!e?Wj#eO6^*)?H%z{ET4mjWF0RY6q#F z=3@%R2szkLh7=PjHcF#rqcqPE1Vj{40D~7FjUNle2;A;aO=>`6C(2N)7Q|?+eTQ*vsAbYBOfG|2n>3O@(8tdZZCWDP4urHG z>6D@FdolY~1`M3U(3O?>RmA)l3Ln&HloD)mw`8=-ZnWr)dBsm%me9|6WZH^mShK9a^z@ zyK?roDj)X_MQ#@U^ZV&Fv8o>nWUz8yG7Q78K~i7suQWr|hA7KAZT&iWD@3prFzT=% zKGy)@@e^v`BN(B0UI?i5JQ}UNFFIHbD;-Q8o*GIB7C^mt79B=JUBP^Kq+Y#e{ZB@U zk~w0=7%J0Hcn?~A5(8_J5W>j!!K9I?jJYGj1>XI_#(9zl6UV{q|CcROgHBukpn9RM%boTiA0HR^D$`4j^MFCk}e;*!?CFKNYkw8;AtFW0xH(k2Ff zdy#}gYHeTPK*Prg^FVt#t<`?{dE#`(=x8bAi&gn`JE6PkSh)7vk(MYE?m^xQJ?ggY zV);F~7-mc#YjR@`mVI%g!}llw!8W>ft+)ik-@7dNU(0N+N zC!AU*MvWQ=Jl|6+B~V6*ut7ZCyJ<(`of_D&^ES(N$DVr#oMk#tcK+lp0<SuKMs((Iw&H6wha^T(P{`4I)2gMevBlCWfrtdfk)#HA(V+bjMlP%5^*`TElNI&n&Nx_RbR zg)hW! zCX-pxI~8Ta3FbvZ8tg1uq0hA)j6|3swhv6wx03{)OMJFQ{#t3KPK@XrGkCw53aeh|tk!83}|AGN5qQ^fzI&1Z$Ffz`2GQfmK zWQm6xoZ2QbLq@%FjYtGtjck)?;1e$Cpvc2bqex=6^aAi&vYm^dC)+-#36-CmN|Je< zZDOq#^s3!k`~-X`+6D@z%?(k!{Rl2FMV$U51I07roo{G7v?ga~o+zhh)_T`I3?sBA zr>}jjXa$-ve;nDjJgvmz2e+&(c8rU+6!4O$MPtLgz+c0F7Thgci~aIW0ZOKuZ|iS= z*PI;QTSihqT!%D~Q^fnis_+!10&d`lwec|_z${l%6qC3Zy1M7g zekb?1Ew2srJ_oD{SnST!Guc7=oEuZ?pn=Z)sg#jn z)(Q?C2#zHMm{Z%-ZF?3gXRAo!qli!>UKYhC&jIr3U}0#K*OSdM!A`;82*$GN)WUeG zImh;lTRpGVh8rZ9Z7@-Yk`1O=pnHHD>0CQXu4khUo0@c}`P?|_(d$`B+>s=HOuhLv zJD5bo5C?=Q^-!puT!vN0=TT30Oi7D2JUa!!V(Ak)c=j-8WW`Ss5XX?`o`18DL3l(N zV{8U)CfnM3lG9A@I+K|*y*09)I=aDnk)B;in8px83( zdOpmm6amE}j?vcIR&qY|qA0j?5H_J;J@5 z&vWVmlV;b^ZY)r`_h^|JS9sJ3V#bIP0|$O_+#6)L;uv&~821wQfto=X&qxCcROUG^ zHQL03?Eki4cTnlUTL>b%8bY*K05~xM3r4Vp_Qa`$48&O1!d}ZG!HE3_AjYQ>5Z8i0 zvnD&aU{`$O;{p{xZDXkcs%*C?y(%k6?8=klx_?klgR#Re=1!d604dDypundnpc;rM z7mE{kD%zgm^G+k@P+60s^oLRmn98dp|AFuPS3 z)POB1*QLx*cVm@m*DK>(LGoYt0Eotc(ni8;yU)m+#p&kt_iA<*pMesgM#B?Gn8LmQ zA>J@!s#RwVabO_50mcN}wYOna9*k)}s9rOKaA5K68N*%XTjKKAAJ)cb`-Bbz%z2EPfl0!jL*lj ze-P#cjs!>0*e9EHTZ_Ef?-maYijuW}`|v<90^q;Q|220v{QtWAd~kaGncJG>rH}1Y zJj2@TyEH{`hyLBKe8*8ix!g#xi5hrj@D=nWYOZBFl-qbYjZ9;!%Od+oAoSd>C$t+L z6jFiQA$4I2?L);Jx1)aZK;3FU06sAYv_i&cSiV_bSZ{iT;6QyKAEv0+b3+lME9&5m$i;y!gTG7kid zwQa?41ECpj5NC|M0gWAM?N!$-V6sK7ae?lMGvM26Mcof)MS)qe8}wmZjKAv&Y}&e< zD3HK~e6ly-ER1oxb&s`NF^U>Th5@|#JlM!N(T8DT7ROnS%CTs~puUS_dUUlf!QG7!$JJx3^Dy)qT!@9N7aFFuvVW1#;27fU9w;&s zc*QDr^L5U$t&|)co<+P-&3qiQXO>V#Y|N3z2Xk$kZ2GV0*|7Lt)+@O()i^^A(V_5l zo;J$qHt1^Sfvl(O_!HCeuG$q{+tAlpdt<;7Y7K2l2HvBl*V6Kg{M=fBGv`jJ4^(*u za?UdazedIq|7+_v-qiGLONn(;VgTxbUo;35f?8d@5qh3l@OjieHCKB5&wb6*eQ1I+ zKVJ_Fe4tt1xlKo5-u4q`&#Y=i7P;?(^4c#S*@;}`Z|+4K!HtJEXSHk*yeNVCJ4f~L z2Q7WfxjRB(wGa39i!b0DOE{W$tz?~;0m)d4cg?sS@k6)XK}jH)sy&-^3>ou?-LmAj z*Hkv!r|hCQ*c#uu7$4R+sK;PQrUWNP&&!rzcX&rNnipBfeeU#OSwIJXnKhM!`*~xg z-`a_OUMb&^pHX???Z)Q2)&DhRZ~1NVJ~=^|xi|I;zIBvw>uVN{J?KYOimPYj3_T;F zkH9(_9VpUo0}6YWc4E7KRK^?mpna40$-y$QzAtjv8Z6we{GDW805 zl&v?s6Bg{r;b88Ak5Bs^RSWkAc z!V_c;*%XKWXMN^e>1Nic_^9>(@QYYEXW!E0$-naSxUBZ!vdYc&Fg@P%5bZ57Zs2DG zj(}{*JgUVJOxH9wXelEW!z=#gp zxag@pzJ3{D%-;qdW2JzGc48$061Q5QXGGz7Zj|TF+9k$J0diGqr3KpZh-uN@V)TIZ z1vcKF!@3At#jFcY9MoOBDezC=rW%6uc1H zL*oCM@T7PKr8$Yv?Z$hO+zO*x9pMB$a9Jr$|2|V0Oq)W%X&x!97~9EP%v$&jz0{8U zo9X6R8gnCYAKsebA%5yoe??F`?_(^YSy}5wY+!oSSvJELS|zaAhK5|Ac^Aw=N%m!g zZ1IH127LsKw2^Prr03%W9`fX5i9F_%Ww;=?H@O2Ez$c|#Pt>Ea#>L}>x=0GY zaq6UT$8rJl9?#~~7Ci?aSl{HEs$D1AGqz&gxW|e9xKfnH%5g>=L(G9P>bec;JS{Aav^?G2TpmGN3Y57x18mMfP_9csBj^1Lb`__d1@ zX7RuSqg+twVd=4*HyP(+umn}mXSOx?4!q~x{Q`N+uZ30uLi6{A^oB=?)@BTpF+IS1 z-FvJ$1YbVEC;O#E_ZJoljJl6lcTP4feQNJ+q+Vtz_Q@{=26_g6_MSHi9tN_Dj08F& zA^b!R6Di}2mbK#FXCJ{Y_EBgxR>S*T7jTF4nIo(lBa?!K^O&$}P?^@S%~*D3M}V|_ zl)pS#tNg*+E3m;PZvX`G+Ocl79@>`vKlY#4ma z8W~nUh2C-03B|xYIAx{!+DMmJB9Yz&QNj6da&CA~)(T*-i>c^^5@h?)gNc3c&B`Ow zI_&B=95qklU$o<(woGArt=+n|tZgIOw#aj}@E4F8BXK@>W8aQ9k(T+Nitf@`5rt&pY&sl zdtL~7=aZySaCP`EK~bQhepqzm-}%3HHB;{@s^HA!>x_X1-+At~=7MW}^!XQDtqs^W zDeAR6+W*CuV6T`X0_Tx)^?>K>CzbI^vyg1hXT#Aa#4*7gsbwR_k2m2m?cGvnkJz_? z_Q%p7B@6mY9j>{4CGy|+kv2yeKC#;YaYLsr;W!+_!b58_+^fX!CeSgV zliEE5bmLHwJ;t_RH^biuEL(rXTmzJ}-Ve$d*AYE?mh-6Pzjsfg|7U*AVBqV3fp`h#PP}R}%fbKHK9`Ps3G>V@ja5#cfYbHKNFrs?9dwb=7=)E<5l*aR1|{c-|}TCkRjGrk-H5HCjC zp*t6J&lv(n?}!IX;Qx5FfN>JOVZ=c8nQHGf=-(cTeYkqB9IX@kcvYfXhac@_ahi)) z-q`zED|mKnoukF4#q!T;#FKo)@aV|lFeY=CPnt+y(6F&_#Lpcua~Ig?BdJHu%dKIJ z_=e@+v*S3TYr|&>dW6B*=}S7B6z?gAN=wSHfDOxC%w%MH(Fd8tkdwOqCzICev{uJ+ z@qv}3GT5g+IfaOXkwPqR(gBRPu05Q!;vx8a+M#N1s5ZDdJ#JtYk32VCM!hy-oNvfS z0iW{>k(aYP?Ha8=I{J0c#L)$#GntZak~{Vhz4wZ&0@A{|8lElaa~GoAue_jVU^%3Ed=@Nl8kW!4 zSQ=>)>a#w~Tt`_VT1JeGF_v=9%DhB|bD#cYUWyY4(dJilpdr%*hKO#>7wy%$X>($S zkXH$YZ6W^x&(S(I7o3t?wyrRAKUzd^E13`PBrP#q>$e*Kd)lmVKg#)+pfcGPX6(U@r6Ss_y#X-A zoQo-e&vcP$U?q@nG{=``{#aL2t30AD>x;=FHfHT1fvY-i3-_CU895$28X3(9ADVl@ zYvTztz_-K$VGk|X&fGdspfliXx9Tyb{D+r=w4#;kEWP>hzo>3%rmtpxuf}!F&EVO3 z1lT=VkM(rt_(EdFxj1GUP0Lsd;@+$aSH<686psKLrA_qe4CjByfx|DcKEg4I_47)x z0!T@>MJU907#|T(+OxL(H75kDp{uFIo@nL`X?rLrYl~*yiZ{P>d+->!i}%U+;0n(; z&h|t5+xm>-4QmOt(f-Vfpr1?=v;rCg9ml=Eh&_z3h(w*x+jql|UBY8-04KJ7&mq)PXo!@W(b?GZsG+450ymKllF%Tp0zCY8=vy-FzfAdET|Nrv; zJiP5Ywlyz1@RLiLtGh=tdUuvL3*J@Mn%$)xAMYsq2i95hzqeeyH`Mxd5=AmXYR_WA z$3y)yH=fXlxv8d)K-Y&9I?0n>A zX8VSTxnAO1=XGK(7CAW}-GgThx7jx1Ye!i;i6z<4t!lXE%)8mIV&rZMZALHj>{td( zVwixXjg=Y;hIP_;p!nE!Ic zby$1!BQF^NMoxW(CWl20?wd;}bKzlQV|c<7P`H;_?an~^=+otUp+^pgW3fA|?jP14 zCF4qcZmfG8o|R{7++zH_y2EH-n+6RP(t{)?8matOXX zIri$TEBcMxiYL;6T}HyFCNEc-obE8tp>sr3D$Wl`g@T zRfJfCHQtJS@&W9mlA$gmL2|(r2(aeo@#!kkfF8;laMnlhROqk>Y~=;{RP!;jY=DxAp6^*^7Epc=b&$}+~eVJvJ8{cdI| z;~Dr^E;yn6!=k|Za9O)5Z^22q05a#8q+hjjsi_)+x?Y4}&q!E@-u zPKMwz+QV@@X^hyvTor<`RwSqUIQ z_D)B?9q%pxkK}54rL6zi|MQ{EnGa2-;KpBn!W8(qZ~E4=n;(7kSKd)ONqMXJEA=;T zHfN9dE1MVV)APrx4`e5~@}au(W0lv=qo8ZWRWz3Kr+5v5{+TyR#6Q!4V$7oM#p8Db zJ^D8_QY*b*;~H6D?~O{-{KU1)O&m>bnT#U7Lu=Bpw9zZliuK3O@JF;-T0rM0#@KGyH>^Fb$TSvLecUi>- zBNg@YeEoSr4u35`bR!c{9&ThJNTd2TdfwBbX|zPWP@~Y7rN#6ct<#N61TTRRNJcHa z|NqQJs8sOh_iko&e7Ukn?#9l8M4WJ3E)rws6!F{2mRe8CsZ#h2?$|kJBsp2Ss`#U8 zbTOl9pXV z@r(ykoNfdM3}2pL@C|nCKOeIu#^l7-+lLwP*GNAxF+S&!DL){R6xu|TdsEFYb(yLx zoWuL}yv)t-z|L4?obj^a(kpA=g-2dr^+~0j`OQLjUV6vN$CJYO`-{)iFm@}3fd5x( zba$h(%Zkht>Ql97uS_(2a)o@k&U9Oi&B#cR^+Kho`wv4UR=TNJ8CydoYd$;;e8LSa zp%i>KJ{l>vqzcx~a}&u{&cF5y+**t3=bdoSkhM+b8b=OA(RgE*#Q*3&koPx81~Ss? zRdN;@dR83!w8iA)I1)S)B>tKB(vAZP!QSsnIF4&?dr3#)7UM?=3CZI|!vy<=E~y>aK+)HAmSNVkk9s z#*Cvk)roB#kc0_~8q%p+#obhK)`SN9SDWiGT0e6bUB zOlmzwnl~NitNUQJd;oK2rCT0D6dD}FeY+gv;{r3aXF~xsF;E=<9s!^ zq^*c9Ljk>Ub{@lJi_m!KFI!bw2YG=e69LYXJe6}Z7PsUFA$kf!U01>GyBzs&>X|vr|f6ie-Ugcsk-F>wkY{bLP)nzrFaz zz4Mc=eB0U0BaeLco9YZ2-g9mZ?ju#Bvpaw~8#;@}>Fxk!Ez&>dF=#qI08NhE3JcQNK6!gyy`HDaq=yh$huUZYTHJ3kgC3`?n`>)${>lW| z8(BLC{*FYlmPh2#+~+stNQrgwB)&V7No{JjCbY2<{g7%%;{NByKUw^Y!?U^S?0&D4xwC!Dx zh;gU7xvIOfkb-3vN=$`c#21lOYWbZzejE)TrZpm9ltTFS_sYc&?iIC|2kAQr z>gc=_L<^;q-m-JGb*kD;9{(Bd$x1dfu@W)QH^(?~8GSh#TudZ`JQKr6C$xS#+4jZH ze8;!fKEv<-#piClRNY<&6{o-({Q0%ImpQPCoc409uKA9Mas8iKGJd;j5;Pd7_ zMiy<0dUU11-9E&vN7MYqOlzk^%xxMR(RR;sc}EQf#Av+LzzPGAqZV6DzipBnY}vM# zDs}(IsC=U4NEbabseX_Fm@T(gq55NejtB;r`}7%l&EP3DCZ$(6G6zzM$3j=Ipq!P3 zLoid@8I(>qPi9GoJOq%T8Tcu=3lk-<>9^!k*tLJgQTSm0C!7z3$+!|(>5hn($B z^DMKUV8m(|l#S$#vx6^C>+R`&*D@eqQ{}O~!*(ZYoogo;nQ7_KU3bG;;x1T7Fp9i6Vdkk8S)gdI;#8+-uZ7^SI27{6a&c5qZ|WrE?(kvpt~q z^?7kklf*uASy=LMzaSUlesUQ}E#)B`2_&8IQ8P3)fF@9BjKh&Wq>k_UtQurTxu62W zcSxjgMn0(Brt?Kog z=t<;|`2TQo=J4yl`F{Rls2l1 za0x4eEOP?KmE#&(VsiZsr;nNoC{6bJ#um}Ng!ad7BDc}HWE|@jkI|?#kr^OGd-Z!{ zeJ!SqWuNCFT@hCfqmPcqGvp=r*F0WXT8Vj#uNG^0wF%?u_&n}LQ=u{ze(gD<8t~(L zJRVtwwR2%@Jx#@bjF19Fa)nS8`krJ%a!)8f=cKc?|DpzjSHk}Rqx{yIUaVbf*bP0# znl-c@0T)m5Jf%+m8~OiD)qQf))%xpC=;w2P_AO^OPdxw2-+Jp|#p=Azl)RdEeZ5?N z|5*Kbxip2!66<@~*2HQ1g*zvlaOx!y0C90KPW4Q}4~gw=q%M+FBybiJ<$cn<15 zq(l!-6o$WsAJia&<63WTVz+UXixGQ`tLcXAF=FE>&y&E?Ac6nIj=3QeGT)W~25PM9Jh7S|zB? zs7BZFAY=A3M%2h8_-mh_nD)pkU#jn7i|#4fbLR)DEAWHUxr4+JA3UyhygcPP^PG94 z8o3a^``**5^@+X5CvjLi6D~pv??lGU0>J|v2S5zs(Eq};d*j9nu! zX4;)(k=%fL(Ns7FeZ?5b!rQF&eo-ow_o9 z8`;$I;iKRrQk5zWJSAcSYAWc+3f3LYaUc4LpHUth$2`?5LKJ)A_l~Vi2S)F~gJXLc zHM+~5DNc@~)7Nj1oWO)VNfiZJ5h)QPoPTXhD8?xPjLDrm4F*u~YF$M(b1krAQF4u) zsoDrm9#oDGr>CHZIRO})4sWvV#5S(*sgv?25)oP?sx#&h<~3N7Az^dDalc^meNoPZ zl=&u3;svZ4GN=A^vz@_-OZ|oJy~}VWx`{%g=!xZHG`&B$ah5XM1##+q|~!=eJ(RHZNt%B5JGWO_ogG=*d5sj1;jWMXm7?^0d-I?!-J6H z^BD~Un(cYH!&rBFUhftXvjMCVF=}Ye=!~1+M;?;bnk_R6{GE5zL6LArJ?k8Oln-?n`^x>;l;DWWH3#g>Vius0 zX0A8>VVykV86)dY#@aw1xrK$LI>3x@lhI-g#uKAYniGvj5|J1(&9!;?ZkuadWp+*@ zz;lp8clYZ-Nfg;HctL4kQs3<7!Y`QV=X$J%>u5wUaGG!72=N)P5o;aGQAIj<<@DzQ zqdpYK4yNbhcX|6dvJ1UOj^%xYmue(v>xwSpLrZ60gOaO4DAAmt0e=z%LTfx!U-pNprae4VI#jWw^t5 z;!U)vtRp+oZ@9XV>MXA*~YEUw{Fk<#Rr{+9f{^vu}y7Eg^yZuY`30@%)_|$R5J<`@0 zHFOnE-$3BIqlx9XD))$u4E+W+%An=`-jMt%Q{`@c3Q@H2nm+}X`@@A%oDENOkADg>#m zCUSbQVyaiCbqL;GOD#t$fef|wYi)P~D6)d|p~dlzeP84_m2Bi#saJD32g@21HWAx{ z)iw@gR4gkptu|njk!@^+r;%t&$NA=ZduQoEAVk~AO|&)CDq?At@Mkvu)o*%*`yQW8 zMgzj%yZN6_C%<7G@YwohJu4QOm36N29bQO1bR?pa3uQ;m+|*C35YT&#juFn4>(P50 z$Jib}`6iwf+?eyRq9#!hw!`PxJ36;n+?CT=y5^-7#u~M6E*bs^>q^&ZG~(k#T=;XY zjkzk+BER8j`OX~|>b|21GP4n&Gg^YS=>bS~PQ8RE;kvE3(3T z<}SSk2aMhI!f(i=`LKFK1`A$tDZ0hmJFwcw0Am6Lcv@ej8j7r~LnI` z3XJ0=h8Ryo2}W=UO@OMNGiIJl+_jDGI!sU**(T~S;?0_+bt$N*OaLouiR7od)8~es zF}Mq=BN@;w*cgq&fvnn_;bBv-Put%dyyii{Bb+pvlx9bhoL!hCust;JNE@ih_{1_x zX#ry@07~uABpvp$@XfrdgR>Z@1sIzn-PU7!^_Mj#G^E}jGtrNn&nlIAsMWkuc#v1C zS9g_1hf2WFdp)o_R>akwo(&!!)wgOrTsoNGa2L~z4SgWnb8gXZc9Pv z`FfDx?WxDgy$1^-v;+G2BvStHYw``Jwfov~t<}0MQfk+v@njs}47n>B9SCxkI@EDY zJRrCuX~ULJk}G9(Z^MJGL1=*sko@9;*fvY#(#@2OAJ zNXg+|uFqH{M&)^IT=%7b9e6W7oRQ*<6;cyDJbtI|rFelm29bs9$Fd2j<_eE;JUrg*)#)>Y1oW#1z> zfi*G)g|*Jki#O3X(Sd+>;O@?A=d}YPUg*WHENd`I?bV4EQabY+%>y4ZU!JgIJRrvk zuuILDhkKBU-SS_|Pv;`G|4RL>l|mA3uix&QFyz_$3T`N&_q1+D%o=)Pos5Tt%6tL4 zZvP!8d_j#TrV-%|(r&GXJ)+16dt5q7fIr|24nRDAChw>N9^iIX_Mkcgmf9U=xsx%j zPP2OQPpA%dM^l8!C+@nfW<{!v8KDodVHGSL%KGf;ajE;Y(q=+*bnMkNu*Q;tF|>tN zPzyh`lv372pe{OfCAD+6weAJ`!4Bzvc@LK)8TX!U%qEe1O zf|uAle7<^U^wl+*j>a+uu<)7K7Mk#!aSvGXE%L+r?tu|mZBNwpQ3!z1v6he!Nf?>u zo$LI|D))UwJ+SqJXD||S^M<>Nvg~El1x=_ZBzg#hjMF>Vpeho_ z`iC*0o&o&SsmLoM(JL71Z}vx&jkkp6P<|V3z5&YAGa?sq6D;5Xu=061uQCXwl>*{g zOOzlH}Xgt~S<@)`g{^Pyy9j^ildA~k_r`0Gq@NC`x&ezUo?hZA%K2^bZeWy_2Oh)BSj~@EL57W z&mn7YG;iGt=D-S7A2<<)<;4pxvtNk<+a3nLM_sHPLho;b6rW55LF+?xKP3NZi|4mg*yXoQj>y)3*ebf1~o43F9 zmw&M6L$#6K_7|!Wir0m5jOM5CXYRq6%kw{obg+X6n z()=qmrn&|_;8WxQD(4%ZFfwKYPRB96c0PO6jlbsB)6wO)Jq}3Mh%=HxcLQ;;lGJ`E zb)v)~KoMRi%2i%lrUO0qVdK+z&+o2z8PSZC0`i6l8M#^#W0vN8N+H&id<}T`9IEme zddBBwHJ9rnH%m-@{1+d&y}GfU`>k7#rT3_?CSErVz%t_hh%exj_H?h{i#DnCcpcXZ zpa^dcfi|P%M_R?y?ss)O9$twdtMqgcu|%@0Xn6Nr4}=BZh;<${b3QK~O6}?j7+mi2 z5*)o(cB5B;c|AA1rEGy`1N;1FE0HtoKGL;>^W{lrwVGHIFt7)?Z42;?dZlMUF0{f} zD5S}5t>WX4q4H*F$r#l)-yg(h@(sF6v_x|miyX`KdGsf3k;lV{&gA{Zg6MBYVBC>$ zmXR0VtgS1}r2yQFPvKejbd0(&T9I+(bUxDDcVnf-cq_Ef6NetRPz_yBm`cOQ*KMAd zRlo~)7Tc`tfxBo1b#AZu`!8 z<**ZrFXYy!*ZhPiAHY zPbjO7rW)6E(w%c$$GfOQ8IzNsnLTvy4*B_9LBRRh(2@U;PUt%Cxiv39gQ#&T_1s0o zV4V|NN&mjQ>^*C}2C`dJ20lDs;`+V%oI9W!Bhn4x+tr%J&OcvG%8Z8v?}L+uJ2w^+ z9LVC)T>9PTTpaNb+dkjcIjO)n=Ru7Xy_LsHs%i(|VON2a+E@tenfxanKq4AzW#UW4 z&9SZ&xm324OlAPX^id)KLL}bwNG0xHr$H!2mDW?qyZWF{)5=<@P@k3>&}W<>BgC0z zAoHrRdYj5c>oA_rN*2hO_=-v_n)Rx7M|cTpz!RTq@hFFKTV2 zW26q8I1?Wzk-$06?f?I^&8GhU+WYwrpWQvXdEw&UzN2z7_6pJk{Cs^XZcJS*FHOC{ zm#Pn#s~@YJ7yVu$Y5$5OYQ5YgEP`~P|qyy+^dnmKl-|6Cm$#~dCz32 zd&bz+lV>_@#0Os+Q97J9npDMeTiuC-KUm%axR7Uk7*-Uyp1(gYHcNQ;HnWYocbe_Z z+U`M(eYKufx70JW9eyDd$d49e869RnTjmTu=C(uGGcMY;9M}kDinya?N*&I~MvX@W zNhlTFN8eeyQ0DZBMD});m%jg3=sZ53U7>g+e8|y+5p+X#$(`+GCKBZ;vv&nnJz7RN zjzh*Qe{#MCI1p#?HVS=f^pJnGgq*7hWzji(S)l8g^;oGLS}CCy5{ZW{+n8j0#-!GO zedXS+*#uV4^0A-Hh_-taw5^c@e&aK<9!(=M`iLDCzzQg{DUopXv>K^gUsArR*CqKp zhlhj`c5Sm}P6QUNKDK#o^L>-vx>o7%&>e0G9t!b^(y7MbW7ZYSF8QtZ{1~6~< z2M*kaC8b}RzvZV|l>2JFiMz@l)Wl{(H6kWv^S#b@O;O!)hIdUdBx9MW*%wK?i(a3f zXoU4)%@PQVMO)tI@LFx78=da5b-rxtnsVTqMX__W%W!%+y2Ecoch-!N39gLtU}W4C z_~>q14)kA(1Vz9M>dy5H3E+vG(rI?$nmUz)hl&cW&GvJ|lebiKjWwBD=k_1)1a26| zV13xD2^XO#eT%~1JM#3U)>UGoPaE&@BsD@$%tc;)aXPyw5kHy>AE`T%Po3L5T3R+< zfi7m?o?!`mv9El0WujSj5slx3%D0pzc>>wdBu~~>csBIOozULhf53HH-Hmh^w-M!H zt&k-%>iPFrU|@T)^fOgxI46Abd!a9MW6axYe4axpl_XZ#0}-^oZw5VawSFM?oCbB@ zE$?pG+&>$Qc!rGSjZlIZ%$0v4Dc7B#W@dO`ngJ?MR{{t|0~&1ck0r3J`u)0=V7OzcO#=ibnas?q3sg8%6dCgNZf(Y%<^503Q}t7u#b z97eX(akM^sE8p~5XxefA|4lD%>i-)*Hz@EYN`cS5dGGAzrAuEtQ@f-;Ryo@%RepZy zIG_9B>&oX?qt|25567A}-kl1=wlC?b44H)5&pNc4YHm&RfCizNuKuXQ*ibabRSN7a zy2@|ZhQ0d6=gBh}b3O)fN4zCZ986=K>?!Z4_(;2QFu{|`5m2!XOpGafHTKAGMsI_l_K_j^v% zf>uT_+?mQ2eSf?;0fvP{U7ZdBs{m_gNi064Kokyo-z5jK+ z(d$A<_Di)dr=r^9n&b9}P?#C)Cz1ztg+Qmhf)L+Ebh1;waTeIMl4D_G_ulBw^`^wn z>{6vyMh?I!+;{u&cd2mD7YWz)>w6^z8hN6Yv<*Lzvw0>Ijzk)K{*CNI z5N0Sr+(s0VN`KE?8q+ox!b6%DF;6AX1#s>iBi{%w6`KLh<}&=ab%YOE#d zXMk_bI?SbUw|IQ#1fjCB)Iak|aKcwyD-B}Y%))gz3je_}a>t60c8SvwoRKp*)K{KB zK6#e=kSb)6r?KVqAj0=Nhdzd~f8FU9t1k|G?F8bY$yft;(uy zQ)v5MqiXq&ts3cV*Clu%OV$DBbVCQFH-4A5-l?_e2n7qWCNvk!u&dC5ZdCAu=O@!E zYq{=tz~_@Q0%O};?2s@&R^tIBbG9AP*7XW0GBWoc2lX8C9Jyf>v>xbqlknxu57eB< z1HP@!?>N?w2PRn;LkdoQnD1 zKT&Z5mHQ7?b^eDZi~Qm8i630yJy!6csm6<*h;gt$7my9UQS)3sMAx~_Z_0CPRZDNz zXNeI~orN;@)qHq*tQif(OWzj(NNU4+8IX!9~7cjC=+DV*9!z{HVW}0z5 zzFFE|$H7`!c??AUwqFq2xr)_wR@;+3E$fRN}C3;k+vZ;KrK~j3Lrj3wBU{iZPDYc$Am@iBkGHZ7kzK*)fjw z-i8_Zutw(Fz>!o|6~G%9@jF0xP`|sEC-mmTh==OG+>iF#?@m=Zv4&W49bAo=g&{CP zZM(;ykMfDe2V?!7aZS3v(_K=PrmA4wUw5OSzF&aY5vg9or+aC%NApM-9yHwZE}VO( zY8>4V<6MpcG-#%0;Dbf*1xKhaW~?VDL0G5Kr)jj%e?H$D^k5G^ddE8OqN(9lqQnsf zv|wG%pa$PQRDa~MJ;cDsS}*#5CTR;gs-ioUJp`?La|vNgpTvT*Uz{idX&UR{=0T%( z*)2Hj)CtVecg%*&Ge(_hYOoIt%ozoYV@F-L5(4U>=!B;`U~wYPsS3CBGgjMz>HM!V ze|PhyC+n{pKVSP4`00P;u5aEv_fv2FnIEkFbapX6U9r`(rN0-aHMdJualp>pUVkpt zDQaWnii{{Bu30NP7fZwWgij(jAcAt=4jQ7Cjr%B(EW8Oeb-rJ>W8~iBtd`OFhp*`C z{bVnZy3T@ubU+*~Qa8t6~Z+~gcS z1wHuwT@{g2^FsgjYo>U;tbyOX`NEz1XEzVr^*6s|igS5a6sNEd;hw82&Q8RyrCnQ^sr=QiK7 z*{Q4apk_}15FiiucA(;Sq?^-v@rR#T&SYM}Tf*_Q`ViI&lhZ00>t1iW>f2cdIgfS(IQEZy5Z;*IsrbrK_dk!e zMh_}*ym7OBdh^^q^Ar*aVOH9h8c_)H4{-xx>|%q3$TVIm#Wr z-1E!8clq5{YBLxqI7lz>JoyBfQ4Xn96O%kJMH8&w%`xcxW~oOwQ~ROlM*5Drl8h!1 z!{J-9rZjq~Pg3g><*qj*{Si{^R%k_Xq1_bm%~9BI$okxxFG zmxyy~<*3tREN|}B9o$bACE}qXJCpyvsowwjb@BGkZ=?w21}q)#XsP})6bH7k4O&={y*0;IVc~H{tYA5fw=~!pHuC=>R{*pKAq|&Kx z9arh~H0Y%E-8;JW$T+NYQ)M`+vGiZuAI*z@Ap7ksApM`{JrM<#ni}eZll8KOZZ^_T zyV|KIwd%37My!HqJF%7QrNj5K7EnL`3HA;9IC{``mIvFmt-S{jKPt}gBMqgtuUF&x z?Jm6~o+ar(-NKOz_z`$IhwI{&BaJ;_b|NX&Il{{7At!?wd_DV9dLh5#CNg zlDd&2^r?GrNql>xRJ8)n+VfOq!9u#nGXt-@#oA{bPV1h%?PH&V9a==8jOBgsn2fL~ zM!bi&z}t~=>-ks@a}})bgtpBUv?8?#qIK>kZx`l16=4n^v@zSk6EdT7OZE9&)FK1b zTxw32lGZ<@*Lbe|neZ%UdaP#ZYfY1N%p5a1=zGEN@nCPaUn-Ek9}cP#dEQa;Y(4t9(**0qFj z$^ix6Zz3XVLH^JzDy3^uG+JKzoX~%@O^G$W$9iIKTS|eF zxwT{37;8O>H8h3pE3nMr)zm@=j*huRG)|cjx5P=4-UO z$6Vvpxef(9l#$LZmAeb=~?5dV*xeXQ+lCLy3x9V0)5d0@v*O> zDcSF*1EXj<<0%>J#m=e#xW@-lb(7=R+@rc53h;>x{9lkLthB8^>m_ySwZYT^rffv|E8hfe_YaFSiLTTV~{BVzJ_ycI54@O4NirBZY zf07j^;~==A-MT)$umVLS-*ryrX@4_6H$TwL?-o9wvunqwP$`2BEiXcbUjAwPOzZ!f zoz3R2Y<7PBFJC;ndB>$+e{-!5ez74s}De+|78~H<{i&7vUV!j z%J?mIVDvJh??7{#19}Z0F#03^Glt9<9pxGqu4M&tzMM|Aa7|7y%Qgp~Uejo&?g)+A zR$SU}eGM9HKN0KpxO3XCkNen(;~o^1kf1fLj`4WQ*!m2{|BSK*{XtRWYJJBZS8bq? zR!g~A7te!_Q4F#a$u2GYS@r+BHk*I^mAwD&(`WCizK3^w;eqNz;k|tY&7{d6D4X$- z@_BZX5V_@T2u4_3p+B4Nm)}N~uhl*M?h@Zl5$)j~BjH$nvYW!^=dRv$@7c{$mp=Q_ z1j) zZc{^QzdH8@Xd-by>r1>z$Le#>NVkm|lRJsZZZAyG_RdfFe6=v#J+^ennQ<^{oJ6=r zEylN_rC4$xUN0R0>)tONuF&YPprL<1F#z2|?8(STA1|1Y5PUWF2b0^T2#;9Vu3@On zyQ*2&08TT#oS#Y-!d2v+`?ptNv`M3l&P-TS&($T%9PK7Llpa60Ml{oBOV8Jrq&9o8 zlytiJZa>B;wsQ^FXsqz%tzj2Sa)1ho+&f7T5ieAncUpE&=u(H2t#s@XW3V?pG6A*5 zl^b`dFg{etcNdOV-?*-4qsN53keqmARMqjF=ewf?*hFUFUg97mN=c;(;2I5>@hLl6 z$feCOuyT&7ErasOE67`oI;md)1>@X5JxRRBJVf+Z&5FTZTgACvypa!V1$4k35VOJw z-zx|mjLrGPY<;>lSJE-_dpG}K{Wemsr4M@uM&vlq=*u_%KhwROUBwvl8ZM(WF7yjy z0fErFfpp0`aSbf#HaxNCT+v7-!HiT+4T0R*XQ;Uij(>0$ripp2ksz~ z;f`l2K3Qv^hZ8*D)A#4xmyS8+r=@W>l^!Udg&*y>G*@eyM%M#(*LvWwaY?EY*p1!d6S{$gkwZuT^?ufVwP*1V;n}&(AKm;%)0;x6+tN$Y_Hm8gUC~ne z;VyIEf%?}Rk4^avJ5AjkEga8O+%R4&m#uxDP$sQkS zhK^&Tu(Y{m>Y?6j-?LnJf?L*}!^yA+B0c)|M+dz!*lY4ca zIQQyBX9U}Ghnl;`a`Vu1z9IXL@NvXs@B=LdFC^k=aRU@xT%$z8Q3CqO_jcJ7_?1gR4r_1&|=#0Oep}}E&=bJl1-*Gid3^*WUp5Xo7+f$r-wu63C_IPn@e$o%p;wW`i2 zx?dN*$m6b^ct;V2*{U(r6BbAhRlDjI8Qitp`%e&fH&DY;%ZE-oi5%I{kks^58 zUaj?1S9=5Sw7k;=nx*G%+;3zpv@~$?|BqLnWvWEb0h>llf&`2+1Vgdo{Z#M_S^-t~ zx6TQ4f4_8A&m7JyXXDwW1$n$;TdE5msLDDOhLbGFl6Gb>Xce_+ti?z>=|*fwR=C_# z5xS30Ftf7m%1`pYSYWys>=PZIavrPUco?L!?RDgb4lb(+==;r8A@R$3%|K=c)r^ z)z24x@$L7Y-Q0E8Z@sx7A8qzWwyX(~3NGn&ax|`@eLxDFRs#}g#JZ^4*h}-Aqrx%$ zF#2x334Dx4?>t(9^)%1IVrq-W_>vhDn=wYmH1T|J3QGWt4-_5o>fPy|Ie7B*yNro+ z!4h7o>0?aPks5P~^H`yvjw!r&X}M+wgCEx4c-5T)YjI8S?61|I&k>tbU&mw6b>1V! zezoP=&i}`%P0ItYMN%`$T)N?|5Q@E?SRCLV*j}7svUhIoEIm+up+4N`YAa(v3-{$X zR^+~IV^&@DD1oePHnL$=HP1pr{1N_An`w=ch+KZKI>vAM#MDOf{7BWvPe+pG_{1Mj zeZ-+{wl+E^mf}6BIUs$Z68;q2ffG5&^^tn1m3F4OKaIjX>J9rup(~@DR55jYd4$KK zzRC0G5Bhg*^M_MCimI9wL})w8hG(FrF8ce&^+YU_-Y`;pFu}pwC!-tKG`McXuJyqc zwyxkkQ4+`Mg|ZSou-fYxrb@?h2BomaQIExys5&RUsDH*^K!LrY#-bDmP2Yd1R<++- zatoag>mKkssao6>a$x7JK8MqesqXjqgRffU7+FSYsKDHh-Tp@Cal0ePWEceJMCO^S6slcFA|oKl@}1w7x=+6uRioG&M!Dz}R`0oL^=#JS9)Z_e;q^Be?z7tVPc-M&x<#!+4Gq&nxMAZ0NtN{N7U< zBmJC5FE(GxT5=%%kg@0ph7O*%oKw;|4qxY~l^C9C>w3#;*-Td+<~h?c-+~g#`ACW6 zmE*Nghp1wI!gt&M9ZjPlsganGgC8&JqwVDTbDJNpYRJdx&-;%hMei>4&ee%iFO?>G z;?%ji=Y^`taT?Y8>kli!?A7O;C3K#Aw7zxU{wwvnGQ4}8BQO)=zBuKoAFQ#UEOL*P zKPX6*<1tIX0>{#gG~!-sTkhGzR~qwlu8IwsbClePlK}V|T_nHE?sy^CopKOhk>(hH ztOzB4U2+!PB%-0JuV!ZbLRgUGj#8!i9GCWcV`PMHB~}qKsF29iY#1HTHpP#-3JTBN z)8;ds|3-eP+o~7wdRTL?Ug8#+g^p0u3?ILxUmmRnR}KqGYe8BdqPMZ~@_4PvlBc7E zL>W9Ya=jx{C1a`0S<6oE(JjX^7<|wdWC3X7?VGynFyy=RtXt<{EV_cE$a+s4vh>UZ zIel%uFK2`sinbj&w^_GTvH6^B*QZk8DYZ(-G%~|(VC7FtkUSvJL#*%gIesUerB1+;OO5?#S*lmd*73vhy$U9;sG8{y z%u?gU)uMZg7yC83kx{todMhz0G-MU+e8orJlL%O;U%suraT-_XMwqY#=p@x@;EJU{ zU+5b_ukfqP+$$?co&4M{4ZsouSLlcJL3i3Fyxt0-@dEmER3lMMfx^&_lRv1K@>yD8 z=|-#HvG6Eo4c9!ogJal^oCOLdjLj_K0PjP2vQ4l7H}E~E-=x=eluCS&&MamaE2MJJ z_p$xo_1*a92ykHr=4Jnov_Q^~`i_Iufw?RMPM(@uZZtkCAgpE}Z6np%SI&E?=9PTj zc}RUu$$$#zl9GZ=NS&d_U?wPWG*L~~NNIrM z^LN496{4p(x%(itjZx>2cHJYnAD%;tILfsB6FW7(&$lGOu?OoqCrR?;#c7SdEtIl~ z9x{6G(4fAIt(cXl}8BZP6RcvB#fPU7FUSFE8 z)|2QC)=(=R%7@R!^37>hl=VEhqo4Jye}OIEpA28tB9ayB&w&71EUN~+OFgpx_Y<2lw{1RwE%?*_`SiE{g|nNB4}9SVYb|P?fnBa>9ggn3*13vp zm{$>@?Uka(@=p4ekig~jXE#Vn#<()sq3~zFbc3!j^Z_Y4Ume9~{^BS9-AB)EzW>$F zyt!oQBhyZEa>n=7_)i{ZdoNA9BR*OgXzT@fmtM{MCEif0jP!TJHHYQ(=YZ$v8*fcA zb4PMp>gfo_X7WZVKJ(4^#9ALhP8hjTBdJH}DoxxL8`(L)+&VKC^2+_%GWrnr>NCEW z*bCb-?w}9nVk<`&q&|Kz?}p0V!ol2aIhWdPFAHyv3oO_RYTJkPFEDLeq~$!@(BMbs z^UmKGgh%Rkb$ALYclcf37JnX zSCt4`@_bz<2ereQs2tuML;fFq?mhn&mho3!*s_ezZrL?>JjW>-v$TL;9m@!|2Sb)& zUfA*V`TE{iWt7g{@|a{a!IIvT$BM3WR-&U=kW|}QhazUeZp^dnQMw&#j1$of;?%_F z=ntB)O`W;Ms$olNxq1@4pVz|mFjmdXJ{gf5hw6Z_1YC%B*9v7F6HLh+yDI|7vuB%{ zTD(a(InD&$Sap5L66(`=oSH~!$6v?)|4SvGH+}BR|8nNf*M~pBpHIK-k=kGQ^cSA1 zJmZ74Mtu5?p>&aq{lMzR7|E~QHBx5W{Xm7wj^>WD;@{*=GQT3i7eD>BhtF=_^MhZw zqarP9!hfYS^|8|7_m`*VT}U4-{mp)&7gsYlI7bBnjYhV~9H>OL23P@d?E@)A(x}>b z61$#V9^>z<`;0XbW+-TX>8CC|R6DWm_{2L3+ULu%yye_S3dVFAjFR-kv7KOS;81hL z9}DEEH-1O2g3qjV$&`P{F#$<^fjx~KOb z^!(v3PY`9nE%$-s?o?*sD78TBRLRXRpzczL>}9l8OPhD4Fvdb{zb%a%le?h?_%26M zwx~ztodHlk?_2X^1}N4&4`9ue#5miwvUx(5O4a+IXoYOJS00>p>i6yaUhztvP~1=U z$^2{9R4J!I9AK$th3;HO7%Wv>Va{)T-%-ts>hqi*}ON3t5}`oyq7nOBtAxU zWIxP@6+~8}tIW!na`sw%TIZ}BT+Rcfnt*J$5lb-0yQ2ksCb&U8e%uG zu)T7ePU=Wv_WB#ejpIT4o|lp3&S`P{cv7M^TYFDd=evTS7j?a51^_p;qGL{hJ%=jk z{KjHxpOMLQwy6JRt$JlBM<#C-0cynh@CI+RiC!D&HQ!qc)_pbySgYr|^=aNKJJKp+ zaSa;=++BeWjn|%7r!g}j7jVBNYrn3LDIhCr_F2nCUW~S!ue&ZzS+bn7?#GHI{ZP@v z(_kAd-0Sncb2!G<1EaS~PLKCx)cwLMG<@LrJvP*=_!GJ7z1jB`hQD1S^R&{?@xgp= zFPwJ{-i>wAGw8A2eO#+$t?HmSptQ)-#tZ+CCd0qO`rA5k+a&HZ&I?}VV(iqmmrs%!2Xe|ox}Y^iUJf|^PwvX7P0TP)|jrECus zfiYIwo|#ORxux(Zv*sRDiy~**ysX1uC3F7dhbzT z7)MNQqK4Y@xcx?0sO-5)O;M^Y@R~|E62@%Fr`q3TX0#9)gqA$vUJ2f$qt|$%-sMU@ z4DZE+E&`ue#_&yt4iTJs!Cv($9y|*RuJZq?L3MIUiLJPb-C{;?8Fu7B#MClZJFAVG|jegbd|ZK2T9+p|Hgbw zEa8;zFRkxud6#0PDf%NA@#{Nnx0FnmFf)^s(ok6)y_F=1s#;gOxCdB6cXNJK|65j6|j?c?*-E(om<{VXuSCArD8F;4G4Tp(fE>C*ySmY;ARIT?MReskNa1TA^Z7YRH` zj^;3-2~ZT74E9PsqepU#)rcUVV`466SkBw;T$FNIVUYgB1UK^kWo~yP|JSM_F*ovm zbE>6`d}HMQtpA-k^R7+(f8*z?K!Klo`@em5^Yjn?^+%>|gLjvAvfqGw=f(PsRYM}W zk4@EEqHjA8meSR=j)U@9M|Gc7bK}&kW!t}$w`5rb<~KY>Duh?cLwG75o`&B#PQg=q z#Z_y5+A``ffT zxcTJ?gT|jYw`+cQ^DC1_Kdm<1P=6JAOnwcKPpy93g*Zk{w-r~YI2;vp#3keh_Z`=7 zk-0oiJlELtS!L8Rt>carN}@COE-2YnR@7#!K8639v#))WJssOw2j@j7izifbl362*?pvWcGh)sgBIG0A1JQ^psXA5yztaWT_SpGCVcbQM1SyygWEDk*3R|rGSPlErOg|#MOMGD zOYpZd-oqM!-5b{6<}ytVa^-j>CV2$;h4oe=|JSYWy{=aSKdcI{WPwD5L zNKWTm_f>bUdku2mvVLHHa=eZ_O_rprQ`ZD1>#1gu(4V>yrwkp{XRnSu0@x&^IPayy z_E4_^pVTlPt}Dq9of$7khKGbvjiUM?hxt2i>xJLsRXcUfyeb%9nB)VkbiD1#p18qd z_XhDKGeTeRK?0CNEZzOn$(w)^3Mc#;sbUb)mKUvtkCeTyG&%RmpIXQ~~Pe5TK> z2>Y9#ee-wM8y}wg;;mJg%(`4vTdR)!YGp?sEiYqVhu;Z>*3eN&Ug6BX~$$W z9j_?Q<2uDjbBwWd_DdUO2lDhyd9H*WdwsM-WZcQx8BrWCKUkV0L~vLMl%B*8du650 z*L`B!eB}*dSeDz0572&uv}uy)uK7hYjFlQsA-I0Ihxh1DuSO>`t`bn0>Rtw|neCtiH@UzDM1|!eJMQpQ#f;Ib%el(s5j7 z^zQSOW1yp>Rp`tzc_nx+?F`qJmPQK;UgH~Xs4u}ISO0)9vqpx=3xRtMBiPS-6<#l% zO)hIRY7K82n?N!`%POb&tYgr#Mc+qLQmbNAiC(!Th35p{ZOBiC)lBb}DW|3yvi-EQ zwMGKv*0S@_r)HgsYdJ$DSpizo(Yf_Mdg9vtp9DJ+6(5pX!1lfERUa+Mhca|k+R;Ax zY(8O>ZrP<4!NKGZE!AsO zS7O&rJ?L88eG^AZ|Njdt0lsU$uqKX>uWKu%sRY)$k?a1Y?5M%;7L7wwK3;a6u4-t~ z&xSsFcu$*XYskIO+0i(CP3W*(p(|1WwA!_iTgn?$#X9#|FE(iB9CnpjTjDILy;#{L z59m*5KI04SAH0E(G1A=b&-r+{#(>AxcEAd$?rNA2A&KY(5XDZ7c9s~JXPxuH1h2HE zhmI4z_-+YFOP=$hS!k%$1g}Al`RvP4*5DCps0@9fvzC&6{9c`AXNy&|yC>_eg-8D9 zT}nI;ul09u1|Kwz2_K{ocRHq0p!C?0C5O7}oS2ERtS^ ztE3ulhwI(ZyzTkdCqx-y~iPW=wN^i&?!$ZK^W?UQ=&Z+zEPu7kP@Zt?7PCebstR@+t9u`Jn^otAqw z26LzW1rGd9439?;t61V&3ZuQk3#qd51P{jhBNg#dR||S<`*+?v(&GB?jO@2m5lMsl zIO7PRXMIp_LQ9Z(ID$k*)4;SvF;l=gHrL|dXht=mLev#+&4>wM8{_@+Mr4jHK`;8^j3P~aA_WG{1z4t)d zJJr<%G^8tk=q<8!Hoq5rhE%H(*dpm+w}>Pe{#q z-E|&E0ki8v`#1lC3BIgX2-g_7#}B|^Vm#yzy)^r7FM?glN*A0I^AU=^H}BMCm3cPM#e6(gFWzIbJ1C?mQlO5sxx!w zV#Qah+O{e^d0i2ra)6J6h9gC=u$QK4+DrB6u&QfR^~lcrM17AOEq25+oZ#3tKY?#P zc1HPuTF>XCOU^a;-m2emmS*#E%&MSKDi4eo>Nl=jooCzXleFTqUKy{$f>HE}GA9 zy>+hFbhDdeT|?%wi~hVXL<# zWt40EKO-ZNuE;hP4Ie&~jI=qsU-u((SREp_ym>QGD`yH&3lM4~vGUq;JqvLpaX8qa z3wtF$W~0W(Yfy~bYDn7lKoMdOIEfq}8G24W?bl}`k})0`DWDZZ+ty~^rX-l-R~a2` zNZb>MO8Alk`u5PYAF5A+II7XpMI`-WQJAm0)}b!^2n_HqcEAXa=Q_uh#<4FW4sv}wn??y$ zJBg2>@ceA^-m4Z|9xEM0r+bgHtM}-eP(pp}L9*B6k%^7{*XW-UkFaM*8=P1|kk|%G zNF`^#=<(M2j7Ncn(7fM+WxnTV(RF+s`EDrqeKiWB@*J{)Er*f~y%Ks~b=Cn7`owph zeTpn|)f4LEdCwo&VFWN*e;Qf_8s${l6E|QVtow4$I%ky>Wik<{P&wpIQHZQ}rX9`3Gm7sei8X=M!&v;_T+FPyO`s6<6L}ovwFRzg)6g z^glZ>kw;b>4@xJOasJ59L?~1a@KzJIYmNBjiZkC=@#T9f!hBz?5c>wOcUAZ7%XO9A zoQ+vBJ!pi_K}zqPqV%?UMuYaH-<5%m{uUBiw>F(xx3Ik66a^GX;gywnGS9uPsIr|MRUn$r<^{jVSU#Wga z&jv^?Rm?j2+yj?u1^Gkex3v?sm38Gq5MWPx0pvc$eS0D+f|N8yFD!rPHR!{!Mffvck+ z;9kzN>@;K^FcorE5v)_lyY!@T$K!R{FRNDd^SAB)|IN*r-{jXDKVOR!_|>N#tM_U> z|Mza)%IxPB3JF`+`pZ?}8T)rG7x(AVHTOB#BI{;z%WTwWl#$Fz|2y|TkQd7(j8W`Iur z&igu@ZCqW7#~5c8o?gFN+BLtY!`0K|sqGLo*gF+Jy24~fn=WaY2tiJ&tQc}tB(#@{CtFKxLM zZ{{6k?6HzkYI2WNY=FPMqkh*;Ga5c3mGb6|{b%qud>-xnh)euOC`Go|_{DEY`|YgB z=;mOOF7QMu)jdu~LzkPDbM68+bB(ey!j+kqnxOO;hv6y5y(i--+oJ`8g26Agi@DF& zDI(cJ1Q&^ZW5dv3<<SuI21Z4E5y^RZ(Nw{ zP^gpdJZ*!k$#IZHG8uFi38z-VdOB~R;&=G5?0qzUM9O!M@3s3-37d~coNK2N9eVaH z-8;oN%bD2~#=XqDcRcee(+Mvho-zgN)4@cV1GBlI-iDaam0@rSNgm>3_#GX0cE4kzb+AUsqf8>`H+SXOxugL7c8aZ35G@{IJSy}I{=`01`P@&4_GZP!s4OcvnZt3g{hZ3k{qzxXhR)?lN{(tQ ztu%9U>IL_q%Lnx-Yrve+1TLJN^}(uOP-%I-@Wi4YP0~g5i^s!v#IHdm8H?X4XqbT0vQ;0SB?BR#P6|Fp5?J`{K-C&vnMc0^K#i4T(+ z9CrlcFspUcH}>mJD|=Y+U#XdE%&ISO;vBmv?wDpjs1b=t_v+t;szwg&o^9@EN$_PcVV!7f;p!Dgu)0{c`^fONSMIQI3Z;dxn`68w< z$IEUk=mNypGT`r;S*kfa3lDkQ3HB9R2vwZb%5g_cM&_B%w=7s=^ITf4Fp70HPi|vO z@`7-cCRhjtblr>*?OuRW(DF*f3dlRuh(7`TgXt>q-?_~n)E~6SU2W(HIRRS52%g#; zk46Ru1;GEw+HZ?xV2q{+5vn^`u^&0XYYwyH0z)VQjLSC$q6d!@+_z1$@XVaHXe7CT z{t;{BY5ZsfbWMd1*j(X~Lu3W@-PM@G?1;BSG;3vRxzvM{?2X44zXP~*SBPg4t|37h0 zNdwP8d3BAwCA_)B^LCN?r3KzQ#+xXN&%i{y9w|cJn474l?W*#T$QKBJ(mL{ks=Q}731?UKu$J*ue?rnXu|uq$?%U%sYDX_!#|3q=tQQNJKE} zXM&Y<2U#^L6@+DFg8!}1;!MaU$m zl%bzkir2>$D1j=gH%3kNTtNXWcVv;60_f)6jeL?*Y?08W3Rm-7OW7#Hu^&yhR0)v= zbb%4yRn;BFg+53oHuv%bu`xxTC*q902O_dOj&vGDG*TRtxrcBxx?K^meT4-SSU_O;Z2xm1p3$%yQOeMa^T5@$vZRWC`r~D zu_@4Ku0ddvPVtYIj4-;gm&kXFca4FOOsQccy^NcIcX?`4*S9_I>5qTz2f9Dy|C`_4 z@c-BO&((VmzIpT3pZccHK3DItW>uN41f%|IMNQHj~JFILRiPV>}H#7SRxL0{# zWydP!_MUe3O=7X=Y2^?3{q6NH*&6Tr^y(d(tp2WzrJQvQHE$-eHlSXl+K23k*?dGh z-{_YCOD*a4Gsyr`&jc^%fgVI#di@2=h%tfSmWm#T|A}d(1~wc&jh@Y)5obmQGcCNC zT=yE}9@cHL_Y>NK)!Iz@8+qcm8DENy5YUwdbnu-TsaYWr2zsl(+%3DwC+c)Nb)Be@ ze~EgHNr9XzyG2uM7g#@9*TCoTX=HK*pN1|6(;d0nE&?oQzn8eIWyJ&V8EK+-NV({z z8Ig4YxV%P%(3@wWU?@-g9qUeJ@JXyN<+&U~Zj|C3AoKR8kUd3Wj! z{lB6A|Dx-E`TUQ4sB#tPkTvJ;tqvitXc5_=%lG361gTotTX&_tb$!OD&OYiyLHIH( zG1UaGjcYjMhdhrTqJDq{{!;lKtQzY__}%f;jB$P1n21^dRuKD624h$192>{&)q1^T z>U4?583!9oCXAIdhRjI#G3(J(oDK_Kp^i-*YfD7O^dAxpV)Mr=NE?4)dj9_D`zup) z3N)$EXwk)0ua&%0oa4}cZX>1SOpIcEig!~v zQ|m#-qy|pr1ii0JQcN|KT9**4J!^!*OkI@#b|i+GhzyuLRU*FBN(3-52r`50R*b(ZJk+BZUXJaz&PK;J0slC(_K`Os&H8 zMV-X7>oMMlCuhq550c5h%KUBh8QT%4)Nri{_Q$$u?1Hire0ucQP~&1WsOM4(tN`3r zbYtv(`wi3~s~^vR8TrsB3!cOgVS)yZeNebTjWLhd=1_15-luT`80B5ZzCd$%OU{<^ zG1fEN5{8OJ-I8hPe|?c`pV#I^1Z8~w;wH#PphY4h)GHvf>nzPdl3y8o$f-aPVCXMX;P+I&hfe)sWaRF7%B ze`5+yl1lH={EJ-ADQm;&pFwgkP_0PHpdN!EA! zBu%3>UjGbe^}~f39uL1uY!)p-#yAi4VET^Vi1e6O{D>XeQwtGx@yYVH>Agx-g{PF= zXz9sv*l)XD^C00U?>oa2GcHim6~WlOpI$xMEm-g^-bp-^brAe9ZzVaHFzkH@$J9HP z9HTIzmQh&y$g%)9_12Bc2}5LuG+DSPR$ds=Tj+Xaz3yO3^3{z2kys zPo_Km|4o};+q~%)Zu)ce&)3+`XI}Z)a zmFBD@o^E+q8v$b05710zTXv9QchG9?`x0lu{kNZa<$Gq7KfRLDxZR+9d;hP9@_+wR z_g^{LYd&3VK5If6*Y!rd=6{327t`0m4a34#6O1Va3TMH;q(yNH2v<_wQCM+pC;9La z`icvlE>}$x3!%_lpyLFyG@3A|gCvvOn6&H&3NeI8@9f zZrUqNGjPQ$R_@dj%Ru3DqkDQm9ar>twXu_?;H*qj*1}}mgvu|MG)!Q?ag`*=(4T~n z&=WI|6vmL2-!TR!m&~EBWqcj$8VxOQxPbXcNkN<@i`cfx>z?_>QAms_$-_5i&_oe# z9Mn_$)2v_<6(T`rBPmbd*rBf@a90Nz7&zP}CRoaBw;%&YmKx#R80s_oQ9VBvK}Q!)VU$#gKxN&oVcTV0?@0 z5b2kxCy2RNE4Jx8#*i~2)g7G_PNkz@T(_CqJUg(8Jt~pTv*BP*;XM4n<cj?29<2x^^WdI-Ohdz z>W!{;oGI_eUOTN1zU%5!t4+|*&K!45y#Pr_1p|IVGpeXuSISOu$3TPHkGx|Y9_*m` ze*KMHGa{5CgkjWFXOR{@kF@4)B|?`!%KkV{GPk*eiSzi($k`5wUO!y8Trvc#2lZdx z9Y-kM)suTm+QF2+fr7pU>e6;B*hhw>Ly>gzUMw20HUob=rxW^JstSv9pv#x)jEs|J zBn&?+nLl6mNgp~o7?BkOPQ4MwWzQl8n$FF9k46D^`dIDiBtd9v_t2zUb4|<4xI^Zk ziw>B_Gu+1~SP_EO_Lo_Q1$X=SSib>(tQh#Dj@5fykPyQU^@H%yRkH9!jeoXi_C(E< zk=CE`-Vv4u3JZ7$O`%QdXXpV?patN^{#oA_h8}S*shwS(4P(PC7lJ)D2+46xcRpup zw>q=Lphucxd{FbR?`eTEqybk710_woed4enAt_BiBDi$Nu~df3NIz0CpOrM@$|P^M zO+1Bro!X>F-T-iCC1J{kes z%|TZ&Nf+Sy4gY_`|6|*4`2X!4x9G<=s{gnC|4%nJeg3A~HvjZ1C?0%WJ@Sc*-+y-V zmgj!vTdMH*OzqLgnhZVydrzd#Ndnk{OOwYZk~5M|3_*m~YcAMUIx6uZV|306l5b+e zBQdt#A?s4(S&ZWtjPBiLQXL2ODQ5T)_QTtMibci#0TD4v)%E@ixYpInF^RWbG!15>AiVy?wN{!pp<1t#v{hhE_&iFV#dCb z{wsN6Gz+E1^;$C1OA}{+)}@pR*Cb4d>j*`P5Ir}RuK&O3%)i6>-;?#vji0X?1wQ@!+v{z2 z5B$Oh%GS7-{`uqm^e>bYzi;9LF_=~dzF*$D#yMTxv#4~SOPsf_e4Vf7$TfJLwQYI` z)UM)m^)&F7m+z^5&P!7sX5_d${VHcqj$M|?p?h|p&4NO5-6zo6S3h&<->iPHxBk-8 zg~N}$b~fYtYhOBhBG5`|2t=*1xMX3(8&sJ%PsF%gZM5r-XgGE$SvFe7exwVP;l-jt zfw5L#giGHB@h)d3Qm6+Xo}yF1JckGw`n&s+K034&T5`R#rEqz2TAETHJI^$8haN312gvjVW(0P5N9I)yXqUPO#OWH^H033EZ|eWajAF)-)<{-&79=_g|ZY_ zBc8jr;0Fh?uC=>>NI0}rxm!BdY#(MycP)w~)DlW)ZRSCphn_?zvs=A>KURGGaGg=Y z8JvH4qEJhTG{}B%PBA8jf)k8l?yC(YV_ZH5kKi?uksWDh2z%VPMqbAq@)U_rP6JID z5!tuLn0v3*Ge`A2w3XW7QZM8HA=#sJ`u&^#S$$?)Gv1?`t#h~wMQvu}JA4b34Lv8> zvz(nnflNIzRXqd29OuIc8z_Mt0D8Nm?fYVOpz&R~d;)&DIN^Ec*DYvZm{d{hl%_lA%5S%3a_*S8ok?sZOx)oRRl! z{!)FyYTZ-z(bMIxmk-KraHb-FCbIM=m*DO1-Ta4dkhgPA!E602IxI%%DuPexrJh@d z7REXo65NDospuzGXej^{1tOXH~=#93H59(Wr6tEA^V*BhHFmcJO0g!OT8S ztz#@A%}uoR;2*KMT3q*0a#9_(7(du=SM_<~B`CAJ4ph>yVUdEqy$K(xEdXQNjJThu zSd6gqiBFiB&sp{39?u++vW(1m^z3RT6CnQO{yvk&xqHWtYj5!|OKkCU#9Rk83NaS< z?Nz))?7{wL;2C8@D)uTD_xA{{_;L*iWnA|FP2Q<~XDsM$H{wzzvmTPw!q@!X@FXkK za4E5CdS;;lxQW3w|03IPG2`Dqd1BhAd~%Jyd5*V>@J<$+Y^R zCH7z}-cSL4*Xj;qAY@B^@ifyt6p9tnNq+^5h5VPHcut!<^%3 z-H+dv{JDFQoNzLb-BXa6DdO$+N>dm=9$9-n)&I}@z~)WgcGGXwKR159Dirw46W>Yg z@0T7ZdH8TuNqBR~c#>vkh42^)?VcGkSA4BIM$>$a?XV@7Y6aT*&ntE!Ydp6xuf?m+ zD;7OR;v4i~^e4Qp)ZMdq$BstkPXZm^8#iFvuqNo`G9CpsJvjF#J7ur;;q;Ud39@)` ziX)VBPWVIjbCns4LYV0a^~L|;Q$O@?oZVc!E~~)*)IOV$EyCetWRLUKVD;KCGY`qDmq6s z1p4gMJ?OX{1ZXTXq%t8b;cDtu?n@$4if7|no|1bRpUQ7|p-n=M&llZ^G>i?Hd(K0y zNbT(9XT_*+{Se}gyk)j^FL|!K6I8-dF^74X&&22G2eqO4q@^umo~2LI)5?j&YTT7` zw~V}yc;@l$uK9fEW-X*$M*DjV7&q&~E6oS@y zt~Nf^)gibTD$3D}a&L{%kRus%h7rTZJAjp532vjKXd<57*ind^BGhx{=jJSZ70(A3 zdY{@?&FS#yB*l82lPKj0V^9dZ>P*MddVCX58%6QF9*X|RdE7u04E%fbEYeJ^AIc^Y zl)8)#weP9_E==zk+ns*DP`@)an&jW9Aa`_gXWjWoJ@rVfsJw5Q4GO|7Y-i#s^zVV! z#?P#~HP_|(PpSvDhU3o7{nPi`qfx`+q;2>a?3sZ#X`*M^ug0^plB0s^aFP{u6};X# z#Q;K_=;g4+K3Nx`KBo)qPFW)IMJ$3|B0WY=sTwl_E7apUW=jbE|E8P1ZFAEn>aQC= zHz-gP_|!YUg;RZST|MWvXdgIv z1AAarLBE2Y6YXWU^OJa>4}9V${(P->UHs$|wW`k>%#eGYLYCDLGQvysAF(nP#<~yR zx7|e}@SPu;)~0}zNFnbie($ta^~&^?;*S*kFBJ42E?nk*IG%UxoYpp2hne?D3g?vp zPR3&;&u&un*EJI09?wF-@00su;n&v6j2DQq;%gF3t=%n*ZFh1nc8+tNrQ#ZN(;0&Q zJNB}3Kx_%o-MzInulr2f=P;VxqS9X*kIlo%VDpFp`}`I+=IP=l{=#MBLx%O1`1 ziuC22xxjo-aHsxof)k&UeM!5MD+N4DoGFFvd7#p9PhE?Ihz|}AX`q@&_5qaIm~rj? zpeRA?MSUjLWxqbV8ot)e&RE98+So`JmhJJ9O#AIPA6VYA-^h*)vP$wKzCpU7Dfri_ z{yAu7eElt@hv=YoMT-kJxdN={z*r%LirKetIyTu~#0b07Y(%VkwIP=^31;v;oIog4 zZgdqBt^o0c;vgA0^J1-z3Ucfh{LM}T>p58HSPE+RJb^qy-Mwk7*a%LM!J;p5L*}rK zu7Y4;uGI5p?MgOs9g2<6JXw^6Q&<7xd$E94V8J-I*LX*D4{*)p1YB4LV16_vx$2U> zHD-0vJUg8Y_PzD@{?s!9FOl+4QCrsfm(fPrAbZ~5y3l*A$jsmoQa`RyxbH!#D^J_l zMQ=No@(l+~H*}9)P`Q(>>Pn<@s_}Cgjaqb1(HZ$k)S~QiVz6?uS6T?ys8}F1@*ix_ z8t)#dflM9Le?~rCHCmg)NuCbtj{W+i=8q%m z`;j^KkYQW2X8avlE<*pWKYiwzvzu>!`jd}T<^0JhVxcO9^(I0}M>e~6sJx(i$nx?$ zGu9$KBW{FZZ3OHr{+>UqLImgWoj~}hqq-xI#`a#DW=8u{lkJ{Ex}~MVepzAbO!E_l z(OvYIu5x#hp`#wsz^A*5R<2`Rtxxy~>5d1LYG(X&3TB;vh+yX&o)J&Z=z8?_Cf$E- z%#J+)hOxW5`0%@Wrg_{#kC`<^A{0C@r}9GuEZ*gbiusKS2(=*MMk_QOH52DKe#;v+ zJhNf%_iDcxmJA$$P|rZL#@FnunJH>x+J(^0M$Vfd76=f)it~h(Itm;43 za%6So^pW8c5>0f9oR9Fp`RG1WuufO+(x}hLVVi#K_t6#dNGJx^&~By3^;R_1>epNb z=iEy!(wKI<52fHdoW^<>f6F~Gy;xYVOXi6Dt>=8kIF8=<0J9@LURr*>bYfc*us@zm z+qH66NtrnvvspI4z>UnIp~Q47R}h$}yomQU%6jRk5j8j-inf ztw*E0p}owzF7azvYb)r-x&PRf167|lfs9=#&u~yz#jgFr(F8eCUO(5$x)$C_2L2S= z@7hzUb5IKjWUZFBnKEXq%-D-Y4UloDKCIi~98~6PvG8pL;f=nQ*<2Nerjaw_I^xxf z)7}=TcCV{O$8f=uyg95j{Tj~{C)Dk2Y~!Iv9AnGJcm^E?f4Iw-tikAAT+vg{vR)Tk z!fFwEkE~O__Pk`?LU59I;$(2&gp_;{8aRr)zgp4^Z4M^y2TV{b+Cw$0*G19kL^Mz@ ze1P&f>p_2b^qOqUW#aC-jwI=~Mk?)1+V9h&KZg=fXdYiAGD^%2me#v~KkL4ZhK~vb z+0(+>-AP7B88Dd&M06jPK;T<(ujF9vcEjsi0YNN7G9G{}J*fHuzTTt92P7 zaz<6MoX)jwCCJgJZ8NWR9DL!N`)%>H@ysC1<7mxUYIw{Gt-ur5=+ZU1?}!%f=6&#dJ||po z1ac;EAZiA>mU!p~3|wn_+mYNh{i12aVOS+#jMX?_l}lDF?L?(f!`fU8p`r0UM1`9dJUl? zZA1>oL(-%~Nz_Ko4n=B46U&k<$+k9j99bW>V$t%K>?mD3p(NAFMu{CSoT>?sZP5=v zP1^wq^q({ZivF>GaTjR1ZP9JJTVz{w3lxQuZnsIAqJ4hncb|FA``&wpv}=1Ko0K@5 zd*Amx=lT9R&pGdEoCm}T4Qpu72tDRbVkP(q7JWn~7x2hnF_ca{6;wl)v>(__{kOhp zD7AEGt;HkZTMx+fsBwfsD@f_l8ggD=uY+`jb!ga4PrG2c6Q!47$*8ea@I@9(?=w1BwpSR4PbFk1f zaMd&7jl`QB6~5P)IZ}?GttTZ>UGcs4X@@+QOz8E#*bBz?-I<9O7@?_Y3&cw9p`GAL zbZrjkRp^7|0SBUZR&CJNgkdAbbSHPxjpy;AsUMD3STUYBZ-yshM7*|?*A7T8>H_S% z$kkRo4pCh0a$zS3mTfUaz0HIk@QxKhI`8IZoy35wP#T|uC+nU(1D3}8+`}4fRaV5+ zH$_>s!}Fm3)?LlZjat_NX5Tgbhs%Ey{_>CGE-338#~q2Mz*o9sv+Q;y)6Va_GyC22 za;{4%Roejp_Kr%=dOU@lfphRD>A+fYAN_*Wyj*-fRgg8IfLBBSN(X*;#w{Jhvt5861j7=R|`<`j%8vrv|zr>UlRu4*=ys+-{Z%B!H?hPyZ@Ts z{_b`0TUNMwLw#iAzs8Td>%P6Ke{s%lf4P0f$OXY)$@?Z=1&r0b?`~qsTiVCH@7~96 z9s2DfkG)zK+DD#U=f^QVewp9CTDR;y_Qk#5?&OvixcO6i-`&G^pRUKadM`ij|OXNK5n;jEA0XwU*h8{{PynQ z&A(h9=l#ZG-xytJL(RKT_XSOqN3vBlO;wRPAW-Xx}V z)%Fm%n3L$ws0LuCkA|(sJLyYzn@z91nB{A!o3ffJ6vp)IJLsWtc2};cMGj}ePt$wD zvzZkUQ}8|ZIPu7gwZ{Sq5Eb@#@ob)uN~TVi#(Ye$wAfyD2du2pGow}BFS=kx_ti-s z@P|6kzRuKTgp3^VBw$Ck54@2p+-~vTpiENw|oarvPUU>7j)$Nj5kvz7WqZi z%{M}BpbxcW`;U@$NYKhEaTas|A1Fzj!uhPmJ=Vh6??cQqOZ8b!fIBe+(Wxh5+H23Z ze3$ZOM2Po9y77=;#;S&EBVdnA*B!=#+;ur$%~(XE%(sYUV4Zm;Bg1E8hd36#keBcs zJMMvwc!P|}mukqh)DkIY9!vC#Wao)5%88s8Bl6^oE6pljkI!_IRg`@!@@xBl!T|jK z7+<;5uL+PBfid*r=lBUVvOgaM{He5vW#+PAnqyc)%*qw#y}0)SDY;|t>F&X&6Y;9T z{@!D;dI7A|SCDPy%+qzPi$XJEKKR{dq0FR2z>(CK%F+6~PAew%ujtf*XUjt2~6nGvr~?waDLTq9}Z3PnwG>VL+t}w=B;OkI)Pl0nb@yUa=RYiB3X%P!h^IPZsUdi|CdMx9kX(DktRy< ztPICauy#MTNSP=cm@iLir-Dt-7=Bmnxueyi)mN!SeHsYIcdAv^0m<5`g8?};PbRyB zi|g?X_uDl~9X9qDgd8DH>|-#$I}x%;R%N?nP z=YtR8S~4=;Re^N6N(--fV(1ggLs(HRFT-y}7fDlKARa`ku~Arx)yb?U$QA9xA@u+6 zGV>y@qBQFzq!k)Jw&X*bjSWjLfXpjLNsqC|SZNTK-7QP6)O|OsFBr1FV0$W&Wk-`9 z{q8JrPFo4CN#ql z(OCMaZ>O75DL|TxD$#7^*XkniBiQGDV?Gt_O0u`xQ|TM@>tZKt$EG`quxKddw}hqU}ltuI4^F%@T}Mfkw(V$dk_z_n< zm=%tt=43>`3a#CQADU7)Yqt1@+{2o2MBQC8nSFtW5a)AQ87Ru`G#IFt=jwqp$MOiT zaSlA^q_pjzk9aw9uKLJ@9LMp=S@9%rTa57#eVs-rkTag}>Zqq%?FPA&i_l+c6}BIm z03#zpdn?&^t=9v>zIRiNbi|YvJT;gTHI%Plr4C+L#d1FT7P0(Plk$0_jeDsrIDYwA zpgJ7dN~~rdIroTHMm5ZmaP_qeFm}}eO!UO?LrTgI-m#AD!p;m~Tn}9YFLOZP<31_^ zoW=!Qj8EPoL{@5go*|E5i4|Fo-az^)m%sehORw>6NzHa#$7Yks$$#ytI$8c!+3W94zsJn1IBtbJ@hmv;w4TYC z+-bVjEYk39y#n2ciFH4RT$@jaloLAnfC0Mi#!q%8A=%OtD500%oe9XWW#IZy{Fa=a zKZCO4{=eUw99Uoay|4vW|GbGP@byza#yh(IjTTn|n+8{QFlrAkj-h`2h4@(=#@){n+H9q0eun{K|Zovh^=KOUDod57aJJaVqe z;NA5Ku1`=cFk;YiF)mM5TvAZGXM+*ZmW{Z}4iq97E9q)Z-${XAWG#rbBYd2*rT4A= z1Y;)jmUs#a;CbulG_=sBXY5+51H!;vJc%XHqi6J=9-R~U?JvlcfgTUx&M0kVmH8^N z_cYsz(%4CS*OW84S3ukB+`Em>eLM>9tg48IFr@t*(=)jGRMY>-A5WH^i61{if4+A9 zv4fLaPW+u)Vy7%8Ha-#OMr71MHjDn8jqb79(?&#<-@~`G{e9Gf*GidE_gaVLKl;_T zJsP_6;J^O9X*JRs92HMAXSN=hxuTlMNJB^#MGD+G%-__5iU&@HSKq%DiWZbi;(7Et z$Cuw7&!!(Ea#s(qFQ=o=q-wrZsmQDd$-|!Tvn)gA*38lC5gL>|-dGR(9n@xaDkNEH zLkFpFW6!|c%!$~ge@T1VA!{Y`s+R>>LIg%&2(&<__Q8GQ>O4uKj~tIi-#7VPjv?iX zl2s+;4)SmBsE7c{Q!&8qI`tJ$4wOCI6_3XU@e6S*ZJehyE`u z{o_gefA!A~9tB?em;S=_lh0hZ`8RG0ul+JcF0GCq5HlFg`ULwH^zM)#X$l&&%iZG3-h9 zTV!=AsnbUc_o4qEL*z5+!8S0DUER56LY)=AMi#RulQ7z-tL9-jQgSvctWd2yN%AXC z&t?_#RNR5>tr2+!3!c`zdghTrBb@!A*lIFpri5RDN7hK7rxhF5@)mhl=mg|Ym`)-_ zNP9dV(y=GSGv)3eGsr6$gFbs}Qq+Uw2Asm5@_sj}wnz?s3W<;!dY3+KNZLV1Bmv4@ zjOXx}{aEbCq07naeWm&BoG0tc!+W43-WR$cn-}A!(llHtF)IN|u+NG>52K!5K45#$ zR3WWZh}0}GOb=Uf!1q|Hl)D}`qc;32u%K&j0KQsLK=XQdcH@e7WV{Ebc_Lv$Q-N3P zbFFLsoZJK6Rh1IXt;RPX(t^4QlTjd?%?JohmSg=WJ_%gFUzF-swfdRdO#>I2|DRln zUBGXC=l2`8z3t%S$m75BM4Zg`Xvo*+!k=+UC0P+s5;D(v1=KWSHBQu*<=xV-Jk*ud zv*9XQgIp_@T73A1O@}X)cdx9nI^cbt7e$^2=knbL+>d|B6^*KFBaKx2(YcEK@=a7` zpH!K-Z#GAT7Is0_&NcFI^psOM@gLB`9K5n~Jsy6mhgV%lXpl{4kn?7>ySGPJFzeIQ z*U7=bRJ$sr^>V@wzs%Esnj^b9 z`7P&lzTAi6P9DatDn>mG&qCw>d$ito2YGR&6dRT6oyaT}n5$Yyr8aZr#l8~WVHbga zD@Fiwpy6AvL&NN%vV+qaEO`-kJsAJa=0f^6u4e|O&&T539pf1pWzD$qL8?gf&)yPG z)~FfbfLrRUP>3Cnll`SM0XrI?f6xl2jaDA&goU!O(4QGHQb4=#7;EueR%Vdyq<+pq zFDNp}vxP~{$F4H?g0!e}J-w0Ud|v?f&@D!fQ&^)ZeOXn-*N74G*ae6W$vLnITfu+( z88e!O`eMXM*)=K>?OOqd_|iR$G%=TuiZu}io?YEn7ooP4S}Y-48TK313QO;~;hxxO z%PTWaIH*QApY$KoxxAQ+fLIuT)fwgz2L!L#iGIw)^4w9lTsV9x_YDHK+=9=qpJrgUA9OrswN)U02 zJM+?p!8K zC)UZd`HZs2mtiH!+7WGlq1K0M{3iY3m=U5Utqy%CP*p67^;FJ1J9a&u#pbq=+K6|> z?}tLlwC>E)?`I%x%JWH!Ha!KjDdeH<4#Wy&hX=p)8GZP{RdWP$tVR7J+I*$!cu)-L zftU8F=5o(MQq9;MKF|?wE|A_Cny?a)bo}wCW2)^~KE@u)_82d9c1UY=vOm|Yyh~DT zsD0z-nHddt^t8`sf@iM({r$;-pIG|)Z~hG6haH2j|J4sh2K3n9c_L2P-JEp?|x*n4m)+Q9Ay!WaqIIvaZP`UhqH%SOSIdb!=j+6?1{j) z04*KzzypOmHPqkhlu_Wr1K9*r`WV`MM{bAU}pztP&m#NO^M> z{c-Y(=p0%}S-<6X_bzbNx+8G`o{}r<9YALp2aj$(s&qSQtxZyI!wx`~TLTg`)@r?L zu&i1#7QCSn$sKk&_$1N<)<9KM6-M=jJJOpM|DXcdRjyv9Trump;1xAmszCg8{qN9Z z>Cg|m@7xdnUw!Dt@N^IS=DlI@9*V!KahiR;MFy!rd*LLO1<8jmoHvC{=KIV`cbXl* z@8&z?u*SX(PgymxV+7uI&}S9OSN7L14|W`1gCC>AbtOLc`(}_0uHq%p#;t%1O*2c; z$Mm(KjBwLiuSHIQ-E!ukT|@T4+%DQY+f{k2%9hctehqIk3$M~kCo6h}2 ze!8kuJ)VxPCsVtCl&r%OD)G$2(@^sa(xhI|2ReFAYEmI_QtvZE$#{D{5A^}?1s#Mw z=sg`dXm?-Z%RQGFrKHc_2-vBMAr*`x?dQYU^L_{=xvG+vx#T=}L*jo1smCr>z0a5m zdfU;3JY!9;r%E_hPfi~Wo4Ov5Vv~}SJc+f`(%Hw@TT5yHjGP{hG1xiW#t2ySh~Nboqscr^##4oWoN>tQtgiD34b#5@rCqM9Rf&hbnB9#$k+CJ* z0}ikxrhx)PnKw+0p+*-?Hd{>5h}4DtqvWZlp)D-zPftW6`K&&Jw6Z~a=GJkz=Xh>Vg>R#vEe zAlvAKwE_F7iHZ1DNmlUz1lUXzF z0=pr;Lu!n#Ng-jY+R|`ukaCe!%WQ@9H=;%TY3|)fyCZFp9%e+})!D??ZYyMvE=#VW znaJ%%8pPOmXQn52=T@6Oc2+#u&VYBV0o$NVXv^e zEAd30bnj`fJ8jlJl1cy0+94JdtABU=&TsSXv)czKv08Q+ZO8q7#yeD zl2#S;zVi;K_2l{sy$2S+E+p4N!3V0icSzd-r5WFA*oxfAgH-_ot`L1;(Xo>W1-~Z+ zwK8>ru5`4n+nxXMPdwkWx7BaN99Segh9{W`7nTq{kU{kIqjpB@wC03I)jQN`m{wPd zNfbyWKx>-o-IroS=jg|k{(Th&UVsCD- zsr{_l_*%mm!U*;i;W!_Da54VJgN8#rnTO4+&h!zaV-O7tI|mqdyt77qMV@CNU(BnF za_6h=JTECV!=s%pV(T;A&iTvK+C*Z#R-3@ASJ9g!$HY@EiN=mJsR%v2IHMz0!^c1QlX%atrLpC3}E zP64es`;*JzL7q(lX0F~DSI@&K?JYcJ9dk&v%?Z*d-HB4~j8Cj}iz^Up?ZMgOId7(v zqF#2(f}s`KrJ^hJEVF=s7Ia*OLJ8`812miRv81C7H&F(#jRs;4fQB62T>%?|jq$ObtR z86oWkeK)tfV3QYYxv)Bn4r;GwFTJ0DYrDnBb{tVtpr%Mn2BhN%RS%7H+a-~5PWI0I#!&b& zyUB@CiOTRQJ25W$Z9Ix*SyAchId~VN1+4~}RGvQV&M!zjk4Voyenj$8f7=&m47 zE0Oh?z2{dMANaOo3^2oPdEy?iH>2|`7DODhE5KLl4&xJq!DDi>C zDa%T1Pl8<-+7*bSiq5_y>Uf2;pR=Fb2BfBt;+)WPtLkNw(p zH*ZJZ+SW9pwBoCEy3`|+ zSZH_zUR*^>QX17FpH2IPePH#0x(wXFLRM`@8X9?1J3>a0HlX2dM=U#xtoNOERd3>n zJ3>~6`ikzPA7UjsVQ1`=6{rG*z(-vwiRH6t5PS z;ceTGyAE~(eopnA>^^#7XcC-MK)KUXR6LrZ~QKEE9P>)yY8#IDjWl=&dWl$J1rhUUOMLs3)u6PU+Cw z@Ekp?R;uxs$`>m<(89=^n1zwa%&jv5%YOB?q)GO%<@*AOa~9Rii6`KFQMmUsmtsa? zV(zM4>63udy*5fq`qcT9#PhM{MeG2#DsJehQ55cF0)7c&)#8B-s!AKA(TuW}gBv0e zMb5aFD2O@Nx~H=JXhL?e;I zyOb&866Ay5a$e%ZH)0mDnUomxANYxzOMWs&&9Sj|a58fdDpnUGr*a;+lDTS0rP+}4 z81ZSD@=kSmzpNIE#S9sZLbr@Hjb_b!q^B|uhp0kirka=}@6#Wy0XZN=dH# zK%>IiU9>d|P|%x}^*sByh^w`HvlJ{mie}d5!HT&O8oy=dtoZhDK&z~G^!m`>lhp}5 z0@AY{Pt{&Pbph@RYvn{GQDmWD%e~Y{S62Cn&JJgil5`2$<=DdntSM1wLhdjI5^GSY z>3#fvAog)Cy%s;N;Ll5sUw3eF@0VU#y7_^qK0nj??$1Ye2zvmYZQb|@4^~U7iD!Uw z=#t#W8mCRT6#RFuq#05^kImtEaLOJAC}>5?9s+ck=%^pr3QOO$KsJbs!CkahZeN`0 zXIW^k!2vv{ndR)WDVNTzZeS^(ci+Q-bZy6MR66_aQe{CK050_|mRCM=?ZL@|kH2~@ zx^SKgT7JIK^i#3k$yo-UkIFxNIaK?TMnz+0JKg*gGGx3!r3m{fg=Vko2Z5ZL7j&+@ zEOfta#Pj&vJX23Df)jRxcS%A6>I^&K4bVe1*cyy9;hX;bM!SvbL~L2JVLT#OBm++J z8Rwt)jKqY`<1Ak4tflE;CWeU9nh*-6^Xl^gNGo$-U?deSwmG!=bC5Y$M^8huYT^DgOgMD{??7La`yRvMr+Gelpu2vJR3n>Wm1c+azYkjf|A+A+PXPTv`txh={LsP4vk&~%&3pOJ z1Cv9M{XY=CWix#0(fIkX_SH5+6ob4AGU$Oe{C<*q2Uy4Fve;OLpG$`op~-U;qc+2+Ku; zBt3?`QrHpfaAwEp6VMuJ_~y2ZfnG7%dQdq}D#cF|N#)q{>lC{&ey&CrZ8#71?uC4T z%he4@JtAub%BGP7nG?SeccfLLi{tjNdKqc-9BvDK|J44U*Cz))wDkH9lJ>vZak+5s z--vqjk(b^V_Uhwdsa*52!)cnv#ONFR!M=lat{^d9u%~ z_>7lIPe;ChjY31JLz4LN<=Y+y{)@LX_#Yg=AMayp5{)J>eqTw;zBooKtB2iXZmd$` zQ|B@<3U3l+#~|9NzZWKY>wwr@`1T*AO@Vr6V?1&hy)V%L=UqZI>a60_@3{mD{?meI zJlWT~_k)_wLt-Yd9P&&~FuK(cBbJN{+zSOBTxB+Qc&)_!!#>y{C!sT0D1ZAi6QCn@ zaC-jV(r-rp-97`+7yHgP zrWQHynA$e~Js0qx-?Mf4jO3ZgdeHq5XOOY=_@c{YnUj`$%Uacm=;JV^gMwx46R)#@ z2idMM8S#NtY3wFXaE_O|ForZV{(ogMiU0pa{kiz!hvO{%&%E|x__<@z3v{gY56#;A zJA>CoUw97j0#mZ3`{(qhCvEnB4vW7Tvu-x-8AlVPZ8w>k)sf+-n<4qoJ>k$7Avr~7 zt65`whT{-ZCRRBXs|RaM#cf&jZU1{>*@G-n>JR% z=#j~L!aCrG#(g=M@IHl>CEE!+0sz zPN57C&vFc^@e~yXD9xLAr8WLP{@mCuS82WxCP1L5a%ozA=W&3_*AgM3QSfO)8OC8? zve_F3MiDojNdX1uDCMsT491+}Eiwp^l?qHBdU_x31OlL12nZrTn{+}@GXoFgtCn`f z&P4>bMS2gCx8h2fmX`oQ3fz_SZ3#F8Sar|;EeMzwZ(Ko%Uc^y zNLsmG3L-|#2d$YAW#S$d?eC1=!Oqf~Dl1pvI)}=DAa`MEGmvVEsY|e8U zEM`)1dTB7dC($PfKn4u-!98aYt|2d^ED{84EXNc#!Kyw%CEOSR$l*a@;fnXf`7-hpJW1MGi4Y$`TE-^K>yO+%LE*sV+sB zLNHb~kT(6)|F2KtAdAcV`Pxq{MLc@+x1S9!^#1Th_9c;_AWB)Uq&sFi>JZ~IF(n4V zM8AY1c+&P-kjr%>Ri^q#BoRiU-l(}YC9|l_JDa;s-$WqCCm|vR%x4{#RaOaRE!Y{U zzF{FH95t2PrvY>I@clbexnm=kkGe0ye~g<|;@zNAR)ca5l*{#wf&=CbXGB!0e)O$n z{yRST!}zJ0K$+moeq$iA_SCT6>72reO35*zaIYK>A!KEmnK8-i5LDoyVq%iUEBCR0 z4QmB*7?13JBF06bbt2L|d$+7m6VDfQ+>7LDtBU4X?={e2!#2T#9 z@dP*k6LTP|T)~L(93B)?$=WHnOM9W#Z#t*Xr^IXqJ1gb#aPsDEtTF?LYrMT!b!A5t(tuG-y2I z+JdVlNe{k*gItv^z@z)K^Bw*3Eri_DU&&}?*mdqq>5!2zq8mmhene+AnBSWPMv?{BiC(4mk*siM<-_|?~NRJ zBYgk;@pE(f$qdSx=vvs$>YBC}BOyeStn3_Vehc}`6?JT`&(Z6FJ`#p$!=c?)Pzq~= zMq2?hVAn5UU0Ji&b{UFln|;nbGO5oM1Y+mCTX};++l`-uUbzF_=lYd!D>Fb>xY1vv zZ|XIGd$8t8Df)J~fHyt=?0k%b6jz;F-$YV|)L?sGx_kNHWa-%lUViMl`+{L?8|Dxn z*!P9_{b(#Tv+T@<;b()b5lY294@XG>qnBCB$z_6w^HFR#9)*Hu>BzoD=pmHGiov7>i^EFGPhp(Rww^wNFZeH7sPvGVdFopJP4`)OGvcQNL5LJ0U<^ec^l5~?tqnq^aX}i9OaSWj@jOkq2OI_f zFMavOAkhPpuiU%5HhC-*?7mjdV@-NJ2E*GLQPuf{3{a{$lp2cz*3jzNR7O;hSP}b! z)bw{Gu(`_&5XXH_y;KniAfdvE9d=d`oJ~0^HmYc-p99hz4VK_d>2WpcP7jA=UZ0X~ zC*bFIVty66D)@|oa@(N;yfUqS>s1e7Sje}n;Mv}C)64IOIY^03_8Ey)64wWzYgWq< zg8m9IFKcYy3b?X<+F$2Mg>Eg(=hM-%`N=T3PezZA=QL0_&^z@{<*2FKJ+JC*M;Uvt zI%zIe1`!%MZk|tu_>t+R0Z!S1N+pu$|Fx4pogDa+r9WNzC-KV<&7TX;#AzN&AGztJ z7a{uxb-2c964gt1Kb#N->V7XIYoNRE6~LGprDdq}|gE^63n? zOQu#**Q;fz1eQ)pALik&!bB4&%(U^@$!Yg`If-{!CPLw zW%-e|A0$QOb043>g$KWJS^IP=_qP^bSyJ z^~Xo#D=~3$G+r7`YLn|ewlzRMjR;o>15bvb!uaKe4uVMRI_hOK5T@YT>jVAMp9%Iq z*}74mkKjlWaHjcg+(?uOQk*@=H(A>#Z9Nl&fEafF=3PS}m`Ad4Kf1)G__^7{&bf(4 zDOcv1;bY{7q&XLH0w+zRdny9-rzC0*)5&?_Xzq~D^A-_*at@pz3NXy4j6-E?ozh~y zN12*!HaVy~v3$gH}&nSH;GS-yiv=~83wr5J;-E=8y2NfEP1eRlasyVE>6 z1uVOY$?JiNk!p7wT%|AczW6SS|I8@Ftb}-a9x0l?;{A z7h-ra+y)BD)%i5s6LK=A^k%(mRQiCCS%lfFSuH+r<~q;e52f%%a9c`bFlViRpc4uc zUq~saO(7_mj7r( zw*vxj1bRC|h&4A_-m_?plGRmhiw=fociZUZ$fu{NLBbCQd21a#(Vnl&Z%PiC^`V#@ zN*r!h6DLkR#A>0j;1E{co`SrNr4-7b5A2S_cHP8p{8u0|UFsrD9@@wN9(`vHnW zcQwefYXuDQgm(IY*8(c61#?3`KEVn8)pnr+r`y7#C4i>_4%bF_>dT>BcA>0=oLIFZ zcw(`PPtvv@>qL9^APbq}@t9NHn}y)c1_3*tj>mJHdxo{eYAHR zDxdk8afRb6QMIzDEl9hD3}OTI`dH1_7rttzY|dOhe3sgGhaBJ5B)LYJN2is*V?KRn z$2>V5Gx1Ig&@$+evIuo4S5j28`kZSvW0|TEu`~3|j=9Na^d22c&yk&WSOWRv{=J^Y z&_+&ZFUm8>j~;fQBznRUFd`Ag@I(tNu^ew!JK#JV_pAp;^vpbig+!{*OEt(S2#I5c z`18k%t{<q=mDTA(WictxripI zYcN}`Tnr_H@yc>CGPprUe&?C(>8UA;`pGSS<5fQw+MfPZxktml92x=_@nV^%V`H}( zj?6NID0N!i0i9*O#qcvmwgGt>XWDS&y7wb}H=T4Os<1@{=*$c`;dl`xOAn>e_@oJD zo*nVz1P%=GWIkjE>dPtaSVU#@ux2-sr`ZIFqDS9->sLPe
    rBmvG5UD30*za+s4 zZ5g#qG+`{s>}y0Tgc}(}`&@JHcisB*Jo`$-<@&39&puIR!|8zB+5_3G=Tc)y}Scr?dA~`DtJQ?2m z=k{#J&_-cv*1~>fMuWAY#%4U5ameBDtXLoJ119{4wK1tb_9uE&y^|KV{Cn?<@a02} zLJgw4J~EnxXE-+khYTbQw6S1-mF0W>MX<)69=Nr>;~glddk@)}fD1VOY7=d^z1pO( zzlZ9JwD0R|`$G?0Yk@8HA70?E@G4X>)*4>iQPs)IbB|mp--I`$lc(IXXaSdN5!84G z=*L)#P42|S-(k4$K0w`f9$DWa>wy=%?GjEd_WU^+3N?>rmRo?Y(H z5PBlJ%qs+p!Tih^fBx^XD``vmz1d?Mq7}he5qPD^tB}@0wb3C|lQY*z9Nr zpYgL?^X)V6NE{Zgb%@zKxcmHXNay`9DxLus-o#9D77{HSRtTBOeg!uN@EQ3*A_z#R zYJh8mZ?=a+g;zWH-?{CUD}QLk@L|1{|kvH zW6J*CdRH1UdViA#vK&`cYKQS!t43MnpkD$VG9$tJQpux2k-MvUzmoArKkM;WX-%uR z6I9C;iVR4HCm=yVYP4_$Tw;|pD0!k)X5pmY@m>|J9rQ+)sXS8obo>$|}1y>O8DF;{~aF=@>@Q*OD5xVX{!^3)`b zG9v9)J_7!zByYw}5cgfqR=0qsAn&2bDzZ@yXPTfpMfZNa{9@21-!g@LBAS8C~7+E>2PG4n5ABom0 zi?t_&T2NW!g6&M}?yrbIU(x3d&~Dy*LSLN%E2~%+bjO-6vNH=$@vmf^xScteiFgEA zw-yTBYb6^U+=|cODxBz?QHNHKJMfGdKMYrr=f@g-?Y$r$$1QXtpJ?k;z7rd07tbVZ ztW|L*c$l5(xBL8{kHBvaJz=*6b_sdyXGks#adIXoZ;@aa(V%Va3ri0w)wP1f+2W$` zrG^4I@?Ubvwn8A0Uqk++{VH1}t-#}s@Iu@1*PI1u9InYj5h#USA?Ezg;&+G-Vn+hDOZ8ZyUngz*#3(o$T7TE${DM#+YK+St~EV|dq}nW z5@sn0jQGUk%fKi9@E5+!1+GX${poNFo-)R21jxKzBg&FY=V7h2){Ngrb^s(GpJjKrGR*=8*& zr-v%@Gw9y7QDtMkSx(^lGm>&=Abof#J78*8g%A-{;O~cWJ}=T5(=l~^Hc}XKI(gjs zf0y1fIq=&D-o5m@@ypde-!TPVJ@K*FA${)aH%ClMzR$TWD5m@ad2|m>0iGo>H<_kSPVE78k^aT=Mv_(W)FFKp*0UA zwX7TCYS-~M^J;)WnD>A6<3D?Fa%A(@zO*;%>4=0+2d?9J`JQTXW-haHqj{|>X&PBV zCp3kQwlyNtM_>BrM`N~oU-``5Y;>UAK4&(+Up!ag$#4Ccc#HAIvTX#6Xlm`^)5k$U z@)NGjt1#-b>?6iPr=2KEn)&FE);XuVA)1DxTI%GE-UF+#6IZb-vpq-pD()F;zWAj6 zBka8g(3|mG@4Kjguzo-+mHmm%FvhFLCf_2iRqL;$&v2ie9>x5^dxv%B^jOfed=Jo! zD~NR!`c+^tm4`M4OfW;pf~)@6V~w6)=!MR8a3F?!kL_siiwJKM_inZ?wVB8y>4>F&qg?-^Dec7t+T z4FjsU`Sy(YaZOTpTwO}3G4>=QNjbQjOy3ZzRcS4;LGNi1>U@~W5{|7A+X#RGnIb;m zd_g=myuWe@A(G>HYltPEiB0A*eMB`+Zd2PXugz%mmH%=5|EbB+?=L-d)FhZ*c!dSM;sR(>dz z@zk^emidXZ*i&iE>drO>FkFnW%m+8a{^Lcx8|konR5_}3AN?iv&|Fq2EBm~^?5_nj zX2E7{)=Kunrlb_9tDLxI9C`#!fTl7Cbev*il?AEUh^LW!xJ{gIJym>$G+b$SW#m^r zcR#IYF zUe+IxYpj(q09gXjHd=*Lh(n!vld_c!K#Y{J@_z8CJDy6I)-K2Dt2mtPaChS{Blpqr zFqXbyYSqo$!5E0CZ(4udigAcS`g}lpCH1+x@2Wf&pLXJJ!lciDQ4a}OxhKvno=S|VRZ4NEgqCnfQjIEQ4->K6=A%13Wi*FF9 zhB;O}!OeVuJI#5p*}~|kP@F5sj1^4cMd)4gBXjUT$QesLNNQ+l&PEn^IOG&dd}lxo z%=7sP48>9G`n>_|TFY&SZ?SN|U$z?F67}*VJrr07uJf51t<)s)uWuR0@5MK3iOJ#l zu%)b{w{QsChTQd0MS3r#w8wH<^9cCNCh*>5w5)~AQcs^=(%;`*r}qy#cEAZ6#418b z{Gz*&zWbLSj@c9Ieh&FIpAN1;-~;e8`bfTC)=X{uM=X*KzJtp+?JzC%{l6@=V$z zq|UPqka9jrjs2n6YJ8JY@CA(V0P3MysMIXhL?MTVRPEKo{VnHkbqj0r?#9LJ_PUZW z@FBk68V#2la0*LB4FnH{1q2eT-O#?&I&I1Wblja%?&8$O^<(jVDSD;U-j!w%bDmti z8{PvQIl2J4z#F1JtTW$YE6^140X_jG`jZx6Snn)b-$&1k%BfIrTc4AhOA419z|r1I z_qf&Q*n@FAtj+G>*^Rs4QRzA|$!Dme9mHZ=xh$JKe@RqfNLfG7Nz==Q2Lo%se}tH|DXKsWN9says7@YzVY$vCr2(^x4Rif z>AZjPXcUGYi5L9b*PJ5;6BmVG=J7gt916sABa>7~$7 z{=-|HiM?H%x%0`^Va?kU^Ax*}#rOFRMPnS^V#w;G@j-8!pknrUF)R0^7oU%DT~CkK z)6EoW?L0^>5`(|;p1vKW=sA|0+06t5N6ck_g&c7YTb+wP+woZwv#S69(aAOMp8Tlp z|KdBJ3r~0CS6&D^%G)>sp!j(xoa>Q2S4u1qozrcFx6k&e7s1}1)sQ&Pph$bB74L;Z zwRBuW(eBcIY)AuJjI>-Mu90OYMu!y_?gVuN_E0c_iV@7$<@d_ z`nqiz%-(CKO8|c`t!Gy1<2@A2mU@7HpW6CHStPBf$P7s< z+!g%|tm+Z;Wq@Y*#;KTcN9~24V2m^~O7GT6V~K{bNsP!{&U{03Ioa{wKUEyqmP8$@~kJ_cfK(QeLK~H9O3IbSGb2nUK{TW{XRJS%-6E_ez>mkUx zgw+!zpv6Xf1GMJ(dKI>@qYHWrEikL0MM+?Ty6G>~uJIaU`2iH}|AX1or+K@@yQm zc#ffLR#!uM3TPG!jMp*L1AKnQHfdSaZaAK6eQA?R1{1PHI#85bS^k~iQ|eLD!_}n! zq+Ll#M2dteAuBOVv2(&_Z7T)61oDZ z{Avd?{_gh#!|$vgBWHIsS>Qx%aZF3q+q#~!NHltTIqG0#wf#r{@SsI#c2X-xh4<>I zew|E!Yuw3GLrDQo?0eR?mE$$;Y7zwe#@6nlBs$^rGfNoK`PTLcJ=TjZ*5g~_Nn{wi ziG0$_k5$Los-+Zpz)vfU6&v1%zETp9YTL2KN!*8KDV=Hp+|Dc%&#~3`Ayu&Sa1E;G zp4=|7rW^Nnl%Li}^}&!2k=eB+@{ADnDH@NXZDZjm(n#Rw_Ci>4V(e-v`MNxgXQ|gm`N_jSB<#}|6STeI~ zD?nIfSMIe%X4k1d#6^~5RFaOk{@N zqA!Bq%vsWRI-?YdSop?Qzxe#Y$+-u={zBM=7vl^U&SHIbO5gi0OJ6cZR?nsIA}-`z zQZ6F`)(1lP{`%KG{;AkS^4M>`*mBs-g}gL3me0-y#j;DIkG9JmrLDEMIqj{PiYpX;&Ms5mf5?2yYhJ`V*E+R3UKW=KGKaY;YYI$b18nuZ)IfAe=i-9_h$k;FF8-A3{O#w<@99u* z$(H%RVwM&?C2DplSv=^YIwgZBD>L*E}=FK>h82w%GIpskfCq)Z}o@d+* z#aN_~8)zTrSqP1Gx0cO_{-8-NoWZsI@APCBa_n3v;u&l&?haiT&%uc3<)Qd#CYY2N zE*36c>>Do&W)49t&fHLsj9CunUOA!ammPtWe08mH+kAH3tWeNuTUL(Ego*W_KibDV z$PBzqcy{9oUZJ`sxXUbEXv#mKF<2ZXvm&_G26^WZg6^D7IOtO8ki3kfB~mxJ&rZCU?*$jM!MchtHJn@(R`tFUENM zi}rzOogV{seRe-9)989x6(o>85;ae1ZnP1ZBfTtA53RgAq%o-VT%*)yTRi@7(CyPf zH$RenWfq^@LdKaty$dtKYh&7k9QZQ! zR$fxFwSxFB`{t8YB_~PCdji(AHg5H7?#4`DozewtTJ$l8v>2%ci!^m?)m;Dky~!m0 zf3y9$xcT{mlgCcKc4O>)X9eV;R>65VbmjTz%zHYH+r8Fst%#4nUn`8<)fqV1*$Cy(RpKx593m3+N)2_PkO1pVhB#a zs%>Vqn95t8OUbOzLKw4K?_zudcaa!$+BHr0Et&<@j&X9-!>z{zu96q?LQ8q47qKR> z72{-d52x96!W?VM7ek{H9-b2l-onG4Lhi}8G!})RS$6#cJJvpJ@v!?8iJIj%vY;hz z`oHuaPU8QofBxK4;I*wU9Gtv;^Y!;dN9!XkBY?lD&E~*l7eoPGQR-G!IbG3;*;;#+ zh>SbvN4TT?JMW!RJhKz`5bNYQLP#$&B0*H-kuPi-o|6~x@vXWCWVsVWtrjM~WAEJX zj5y&zvsrgiCz$=7z=nS_CZ?Lcv!}&e;jEurxt!Xku$`Vv3WS`aWaMyP{LY&BN_>Wf zXkg!J_vN^g42ArZyil4YKG-v8f~AEH`Mr0E5%6dB=nRb3?^ZOjuxp&?)eHn%PVPcH zCME3@o28SZ>Mx+-R=^}>IcHl+_56o6j813LcJwWA;v)FRpOgCk|9mou|KFT{F8;MI zM!od(Yxf3T_XT#y{_9~AvD#R6db=nXBBn9e#}!M|B#nh^_Gi zFMELSf153~b>FUD7`eO{^md&P+PmYB{R~hMe-HMqJK#}ymnHEA>i|5>jKD^DJyCWTwMJD%K9g|~ z7p=t=q^LiwfiqpVr%@MmW#S_$AFj00e=UGVSI~BIt_A^MHE4s$hokyxyLVIAO=mU~z(@!g2l~m` z$?d6#FHgpJj76o29nI<@F@oG>WPMuVA&t<(zFwE_%D5C`RYe>r@bnxgwAHNXqB+g# zwQAUtikj0-XI_m|stLtoaP>^+gaio!O6?MQxEA)9XUzrBn3QVl!=ac_8Fzhy_#e*+ zfB2noz^=GmyqV8OBEKm;E+7ty+4y^9TAspnd_@XoQS?04W`*QQyv zHiyxy342~!taHEp8*lk}R@MJ4qD1@?8iN#K;gCaQ0y*sC{{HtKit#M7R+YQuT>93` z;n&*Q?{=G68{!H1Jx_X%y3(-k^Ls5dRbcungp2F_Rw!&a6>cgL_`;ki<1=9ky8IXl zkDtvext=k^2~T)m&>V^}|DpI7x#*$Re}E@ljo_dR@H_dBmI)d|as8Kktu+C-l9U63 zJ6hzBr`q5>tg#ZGx@L#ZlzX$#sj&~n)?i>4CS^!p#(p5|f5Oshq>#*Cmj$vhB*+iC z1;426n0xqHDeS4d(Y&Uyq1JBfeWOPpAjS%@YN(!QzxjU12YHO7mG;*DU+ypO1?Qjy z6=rD7$oLDsVX zNB|Ne-0&KU$7kgh__PxI^l2=wTpiZG@F&I;U`Wo9N9<;1RT#Ba(|NiA^jwEW>N zyzlruPs#~8Vb#F9ciVW{WoRr#&8V<5#1Z_&Zg0f1@J-)tR}?Z0ywFh?wNB|Jjk$OV zs;R;wo&-*~)!x1v?~)WZ#OrG9^Yi zUXQC>Ni#{~?C?nIp+oNt<17>_F_Iw|Ld8rj>Xnip&aj?4Gc1`6SZKw-gc8~*X5a>+ zb%CdwNitPcAQ%rNTI{f2e(o2qpPaaG+r@WG-WT13PqcO1N2jYPvvvMOr_X}`c9oy8 zUOXX|;&+IQuV#0gGTrOz%4*iXja2xATr0^u&$ zB9%Z0i#@p%-)zKHq0q97v4L26njtvy%8&i(PqrKLIpemY( z5yZ?R<5$oBpFKYm+3bye=4Y+`f8gdx{D1Y&RSFC#@GBp@aNywN{L|ljA#$isL_fTp z6?Aodtb2p{ywi1vi_NdmcsxvLz2_Xd%7yn`9P}-&0pUBV(!Lhs&18E z>}afh_Rxmhhy-)1~`7(7_iQmZ_NdfFFVMe+jy`Dk0F)Nv? z{Dp_m!1FO8Q;taQc)SsV*LuU<+<8d##wdz`-jjUYy>o1K)xk8qg z?-@y5C`rwD864OVN8jA-0oQmxWI;8an<&wkJnG_M6Fkuz406Q)oi`gt7Kpt|$F>4K z@MnH>&A$ zlH%<6{{u_EGdb{A;>XoLf1WAu)h}MS?%?F~>94HX)XKQTGqiYKu~*xvp_Buqg7 zX}~i2t$V|UGR9giz9p+nXsCB1C%hGQ>76fs?83FzPflOB<>FGvw*ANKH$>9yt(?uL z$NBT3?0K!}|K(}{+3NswnMJccVE$<>;QLhxScD0*E`5S}S5^a9S)~eq-S`(*0m%Hn zuYO{gx0+YCMnF!LHXP4}$1~HSl8lrY7w9AK)A}W^Q6j_h$TKKq%&^kxFi?x}tNyPA zw4`NZVI`EcE2{a9&uHuMoL-h#1do?176q>`?SJPiglYTXP0fcN2BIF@`SegCl8Wj5 zkm1WyC$qBId!>x)6~M99_<%p)ULY~1z~0?20BCFZ)q2cfeBGz8A z@#*#)9gBOdHRD4Vy`M?^6O*;UHD^f)V*ILa;j^frXUwz~D-F3HO3%l&>|;)A)$@unp=X*tgZ@%@ya-6An;*AGqJa=?thD`Nd`)tUpnX9>m5{!j2 zw%eG#Rh}6Co~VvlALA3YcBk1|x^^AY<&?A2j01g8W6#9hMwnQNt)~6-NuYf$7%)4w zwB8||t9!1Z?Zh>70_ojp_I#&V^Yj+Ocb76t_VF_Zt8YAue%uoOCRW+4yAt04Eq%V| z*iJx0oq*BB)AdSL$aZ23uV`iYy^n^;J%Ev{#X0Y4Yt&@_vvh)P?~3oShk0gV*+JmK z3cF^^_wM^)&g|5pBQdkS{>+h`7#aAp2Wpm{v+&$L!#Qwp{gB=dJY$^%HS`3)=F06> zKtx`ctNU~kws(K8BJ$+?Sakf#Z0}OfgIW`yd&>7RoQtXmRL#6HBLUuBfP^LA7zeJy z%Z!tt$VPlhiGY9Rj>tL{6r>TVVVmi9I2BJb+v$*1dLMa0kD+$t?g@CIR3ZzEf!*#g zO^<5-9C!84NI4)Sa%MiO5%8YV0=P2fmT)Mg<*A8K(K((#+NCm|;15vafsD2ob7&2C zla)F_^u(yvtoZ)cfXu#^^km$@`Z_sv%7Qwo=cT*P+6R2V+v1;@8#>li$2-zIFulaC zL$Aj@SrY*oDTpP}OBOtgnrCMpUgos2x+Z0rfmJ~C32lNqIX2(9;~&_(gHBA~b60>; z0*=YOG2PCz9wB5gdzip{WtAur`vJ}8KVyWK@ep%j2{@B+WtG|t@X&F_x7LdIW;Z^Q zBk=p_z|D6Wf#qg!1S#hVpInYIX#Rg_vb4K&=zHb<-u&af`lSmu#8$&+zy4TkGJG=r zd!cRJC26J@&Y|+C($B}w6Hx?9r*J8lkp(;y!qRGr*75jE`D-`WhJi-tY2&l}>vI?} zHoIU(gN*NZ<-rSYiIY@sdv!Ci@J~ecUp0WWX>4(JP`rW_8I( z&ZAXhjZOHys<=ci*!&>`S{X;xz5)-P9NK8JIfVtS9zWYduds09sJsIk@$w24**-^t zv%s&nbp4-vULOZF$R3Ghfcs**TUgFb%5TBxS(+tnjIzLDCI03* z%PhRL^3tC>lT_jPqHNYTpe0l!O4|*X^&m)cot#CZ6&Nc^Qoh=&#%n~3k@*vb7 zx5@+emSy30X^QN5rVieY)qXSpsGNN$g;*42cdKb?Ny+#=>_f>()^WB1`#RmFmn<>P z)~mi^0e`EGp7js+8Wvy04Q)(buE%Nlz#a7a4mChKMtn$?ii8>m;K9)}Egu?67G%W9NUJgO z6EQ09)_JPI%YF~O$1Y+Ew6nd!Mmh=b;SP$O-2vJ*NAkIsv4jb^=bMP>> z*SVMz89*+uFI?ego%cg^1pYuV?v{Q+-eZMk5|u(bG*}#{M5LZb^PU@}Q)39I<=q}u zr}T|gjuUO~J5e`Rp>9ZH3d+ zIkq|~?FKx`Iz3euv11Har`|&&}S?`ZsdXGe|9b-i20ecXhjUo#t%+Z1H+3+gQxBaA_jXp%S zkbFM=vnQd>H9;Qr$K}ZmHLQr4wcSeOO2FFFE~&vzV6_>Vhz<9aJmHgx=WCq0c08WJ zDj^|yz^(Yk>fZ1wldYf`wahn~-9VCV?YM)5;JT+9U~Ad&#r>=qK)uZ< ztKApUfIMu447?ce=JQeidOA8_IO~fd+{ap!%f0u--Q0U*a!>rE9Ent(_4_3ow!Rs&6UM4mCmKc zF^7GrI{_IM8o1Q$v7A`xa~|kOZY%a^D6?+F2#aUW6*5o3;d~A}2-R%7ma86Bg#ZSw zl%^MCNI$S5+x+c2gMi>zqlnjlF>MoA7<$n2=CNd@i zb~F*XX`6vW2}|Bo#?!1*z+I!2ygKuCz=4If26}6Z1#Dprrn<*B^+s2*F@wnce_xm! zxF-%e|GxeCmD4{H>*4g3XYV*&WpT2vCD!PL`N=x4_?+B?PNL~(G`sK64($n12bx1BkY1Wt2*|4{r_I4Oy5iCMdNLpL zW9&ojqR;Wy+c-e!H@h*aSw}*x#j-Mow7DN$D*_DI*Rnvd;ufDPeoP7%Mnp#7XfHXC za?&m_r8D78jK#3$%6;Z$)LO|Rm|;x8ijx_OXx$zvU}o%u1eMoH4kJE!kZY&I)fKH3 z(G4S|<))gEabIz%vJ?5l{lzKh?^*M=23$NXucQfB_vDo?*;7rK&PB{jv06P9?Rc zQA+RrblD2oO$asu5^D|2iWI;vyr8p*%P`kgTk1p_*0F>}nV05rtB09Ud;K7bAQpmR z@);>Xmz6uHs4fsG0T=X~?I9^{rKZ96tdQ^o=OURYa-IirfV?vA>DZa@bMY_OfPYe^ zQ8{Ke=dR49XXdH_jE;VJ|E;%NyA|)cdN@u}JQY6gR7eaygD&oOPd_6so}+`UHCv=Upj>Lj zGmfF&U}FGTB-+F$G7z3jZW+}OUy|v(&~l&8MQj&G1H|7?hxa8L=3h@i;C^F+1LtNIrf7lJ)~<1SW@W--OyjYVXlnbYSkB5jq8Dc%xEZY zIX5%lI~WP+%Jsk7CQG;NBmO_^m%j3$a|b6&?>PUrHm`j+4lQ}8>79CicW6BwR>UGm zyE?(j1@;&JfS0|zjyvw7v0Cy#yqC5#4KJ6vl37klI$Xy`QiXvT2NtMww) zTLA^IGYXU>3ZQd^{Mjh1I#ClB`y-TgE3;>#I~seOGy*Q5CU!_GH-_k3JmU#x;?Hb5 zEzSTh$Hm4#C+5-*EF{NQ2L{u#$^Qe~)O^}3SvY7^coml><@PM8(w;BF2e`kGy+CTCI zkMM7B6j{Ej{RVa6iXIIq;9h8@4c4RBk*j8+7ueI(9CY&7-ssx{nW0+*=|Vr9A8#8g zyfH)1>4XhAPff#ibLJl&jv0B&RL;qauAzcWu6~q%=)G0-sGN!M@GHzgZB}X8YM2s{ zvIfF6x_RwyF+)Pq&{DO5c$Mr3N&=lyN^>JC(2GaSINc5!da0pjPX(A5 z#QH<7f)joj=xYWg%iRuQMV>)SXh!b7UhFZ@GpevF9Z3higFpLGR5?ZeuZ>QSr8g#j zHu*%02tg*W*e=Kk;^GV{GuD^ME&Mv+tfehP`QHUzl~9iv64qubdV8 z3+sH zXFp(HdGyf$_SEFnFD-9Itk0W*o@i@hpKA6^8J6dL|IDy1zw= zYEfzf@gkf<=c#ph+FW&*szb;*Ph#!TZYc3^E>2~Q>h22xEo(HiN_#(gV?7_g#eJ(S zM`2g<=Lh$rySs6R@2tQA-r44wA5Cw@xL9OoNp1sAo{!JE1y^%T8YW_w(NMHstbh;S z4Q$%ltnF9afsI1Ckv}wwIk;a=@GpAr2=lS#dOl0UMJ0h~#NJ0C=x1RLqJ2G)^kems zDk!#^UM$wbUIHl3i#+-ephNA8oIhrPR%!fV2_9RU>5yg6p z{Mn9Cp&j>?jO5)9w{yXfC-}oXW39~yR?DAj6!0diBIa~>mWNya8a#q$#9CB3v8MgZ zvsDvi7^vk=dJXu7lxNnhQVqg$9F zW)M0lkvvGPWN+1dZN9VdZ{m;k8Ef*BN&|5)o|<#?a{Uon(aVtY0Shum#3*m_S>-@J zEr!=<8hWDn+zsWVs`(~7N*U;Ty0)gWgB-F0>aL(OeQS(^+<_(jk*8hBRdRX`oBe>H z5s9+5AARvrSV3|lMwY^8zg~Df1dtan0z#R-^~}^@|opFBR@V98gg>rtnY~U1J_M;ni$Qs0pwqL zj`Q)-)7_wgaqQjkFP>w)QLefGZVjt&|MF*kCPJULpMP6! za{f@ahbXd0g9s%w7jF9LRsy~8!i~!(qqs;2LRx_ea33azBQ25*1c8??i&R@Lu}?OL zu&jmqIo+7Sk{v?q9H%1uLp=z9&;JeL(WhTnet7azlgHYQzg(ZV+|<2pV4twwbUh$D z+S`hU*Ld?Z{j~Vhx=+nC17B;t zl`2mkfh67S9ll0_=Yz>%)VbU-@He>fjM(^6JlUuq_tfHMo9J)(8<8T%)O*QvJ1z5HjLyuF5GzG z!MAKq-V<>gIV@vCU<@wNQLPWbc_2F*GoOwBiUOHK_Yq>9e85{_d5UV)**3=5!=H)o z$v2GIdFLC@kVn;XR7KJEC&QE*=L08nyk`pWiAZh9z!3<$BF6K`@r=%U{g9JHp;!Q_ zWZ<46WweHHp-1)s@F~}G)jUL!>JR&-N&>ReKjiL5_tWp!6y1I(2zArrG%5hKpaPr!M5Dw&kj@}zaBk0r7r z$ZSx3fbaLk4A?01HX7&<>wfA`Znp=6g_ptXO<} znm2rFt)La_0*sQB10H&n_-?JO#6KJLt{20uvid;ZI&VXNI;t|CjGt7vo@my%bcwYt za$vL(4Nm%kvlVP>6L<_LitcU)HOS?u2f-n(@lGOgdCsb}>y=Mv`B)m6uOwPs1b(PN zg=TE)vE@`x^eMo{44J*puMp^0w488bwpyW$qvvfS<_0EtaxOj-&nBnSf)HWVU36f` zc`8`QC{H9+p(9-N9l?Cc3|xxBQTeF$^Jy%J_%HCBl}YjjD=m&Zgp5_;w6C7y32o^q zemJfOq1A9?$+|^fxm6|;yYh#4fLmfDpM{>!#U~{d4MjH1VzsAgA2KlfUc50EP*Yn{ zl;v6AF5_W%J6%9G(+I^nq9Ed8;NRkFlgsj0j`MUu37an34&t7ITw` zC?&vItze*qjE~iV;%Eahn-mz*7HHF|leR0{VGH87O1z~%wYjRlqDefBM*ET#c!-r< zOo7W;BIFlbkSDl;kN3PKt_&?Poo=sBWuAH$8i-s27f_vT+Aw?un~(KoH0zH-1jM-$ zVMrhDJQI4l9rSpvWw=N>GJ;Q3;~0Zn94hy3e3F0Moz+i914eZ7WP@TWJ~1QMARCOz zRs08*i6_+M>Gcj%zl1j_dvto%Dk6f;73G%@w zqG~9>bHv|h8Sqv#2Zz7~|DX95+5y~*%WoA2Tp3O)@f=Ta_7$gyJIYp!XUAB=%uXU! z+wjhn`G7H)!yC^78FrWB`#GZ=YLa)^&!aT0#dpR+%uiOO#(?=&{N?>z=uBTSQx+=T zEgG{9gmlc(NG|1hHfUt_L_lvSkH<)UD08PmUmggH!-wmwXWF-W>?tqm#1vK<`p}pP3Y z?kmv_@pKlmslHBdN5fRu^l<82uCWcN0R^bS85cUTngD0etf?&te60+t8}AD2;flJw zh#uB8j3UxAjIAH^$Y?)hpdd=yL8X<<3J=X0NQ?$-bmRh=b^>^yx3Sli@+kS7Pp2fg z0)>o8mxNCLhHbDXpyo;K0U~N_L{Pf{snu)uSq~%e#GELF`KbRNnEc3O=`Y8R$uIxn zC!>CO@5}G|`gPZCMwZI%T3*oiMC7#Z4eQPu9@2B~v^kOejTY4tbD^JE_udKm?FP(9 zB^pJvRdVxO`&28jNed{6L}z_WTzBI6q!M&s<&x1jd5v*hji)Qap3{nLSrX2^S`6kmk*K_j5;Fh9DZ=?t+0W3R=XR1KZo z`%{C`DfH5)bZLnDs@MrXowU(O{(&sXOWUs&QtRJ*02Bg);{O-U`X941`W*2 z>3#NI>$~69x7Pl`?a$ZB^YmskA%7yak!_qC<-pZ$sQ*wnwy4-dTQdD!7j zghhoz{|8OqHoTni-DA~P0F_Tw9Q4uhfFCXy(J$l6S%amWrruFeW56lzUfyfN4foO- zb4UG0Jiv-F=i=}baNtA9W%!*x!a-H3&W5hGwMSH!yP4Kbck=imxg2{^r30~ zb)OB^J==`Ig`o}1^gvPa<}>ca=(OZ1#Etqtal zYOQH{Y~vp4H0Cs9UTFMojj&fS^OcI`Sa&DyKo`vl)qlis8y)){4b&NzykbqLjxzDiPp>{h?2Pe#K2@7590OA z4L_|Q9!I&;LrOX20UWVViT?QHelOR+fPzTUDi{__e$DlsKm^xk7>uVKpY^Jy_0^+H zg;ALgs>W`14KAF32J}%dJMfW*F&@8>s}kqQQQwP`I#+V*WJ2VdOB!q6iHZFLEXs{@ z-CMDpV{d~L8KvvVn0PzfEos#6IlW$www*J|CX_lTypVbC&)s;9S#!J}e7oXmwFlU& z!BXcC2c!qOu_~1Jd^oaIOKI@7qn&#|!Kw&UX1!$I-R`{5Jv#xSwY|o&dHR4j5rIR4 z;Ithhs@Fsd|3uDg6j3SwEPT;}|ri>uq7EW`P|{Cx9spD3q$ z@t4m3?wekBxs1xEDtTo4!6%LaDqm683-Xl1Z4T!PRjxJ4M*j(y!wgf4FYD@XJ7Bxa(uW>lX={rSO%(~F|Xo}t%Pzp!AEE3QsNJCx(7_;6>5gJuEW*Y;^E#*6eS;@Fovts(&xLR`%8Ntubkq2t8bjxxm1t4GpoA&M-`3p3E4Zsi408lTz$W^LG6q7 z3S2A&B2T45ubUdU7IyBQMIo?By;cyg^i(CBTMds8V6XoPK1SxeWdR7I*|=n-CM%L$~^4X+MupfnS7s196Wisdd261Yvhc(_D z&S)iGoen@Ku37oOy;-SM`dco^jD(->v+nCv?qYr_)a3KPe|bcD;VRNK&w>1Ix=?42 z4S90-GWr(rV4tq8Mo#+2kG)XW(xK+uygLsV$WT44l;0Bd3uT{b!wks0l7Jjwq3JI~ zI${a2BIbPrjNqrA0lVYFfF%ySp1@O)xze_pOFC<>p!QN?o7Y{vV+`&*sAq2!time= zkWzR_c#9l*b+)^`+g}W^KECyaG2e02A$Z*Q%aQ2L!J@btp(U2eKxO1`{0fEoZ{6a2 z`DE4lx>rvkdCJ1gM_TsJDNHw2Phk+R*;>uZRV}=u5(nyi z(yIG1kV-3#nYHE6C`=x~2Po<4GwV@v9v{wk9tric6UD3k9UnuF%b6NQKZgXlHa2%C zte-s~?2Hrpmfj%bj%Z8@^eGVFL?na9m3H#ly;%4uWRpk(IaGUd1Ov}7BG=bBO>6)+ z$e4k1Rq;N;NX(8Gj!7B^6K~QG!aFX z_|5bWc~bxEgr+{7bXd!Z28d^D>sbFk@e8Yych_I9{rs6x;MY%mx>CgptKWV7U%OnJ zNgpdlajqoImoZ)xR9;BIwM=khHREXGaM_4`d>aFYr7= z_w#E9x(6JPz4P+$2Bhs|x_WxF4{wW?CBj0Ftz+Z2i9J|h=bJ_q;t(Tk^Uh=`o~FaM zbjx6&@%W6)6*agc(-1JDO2|~#)VJfKkj}$XzyM!;4mI9uqd4+lc|q+=?3^*l;ebX< zR#n_ncvh^8u_6)j!LTjjYs7;GU?V3!^1eD#B_nRaSo#0oMBteV?8U6@4JD7iS$~%C z(ABy-5&ZM@)H)RKj=YkrFEN-@g5qFF1kg`y!WDS(v=m#O3uaV_6AvE3SGgSU8-O&cig)ph3Pp_ zhK^Bggn1PemSZzOJiH;M6|ft8lB#O3BQoe5G*Jli=5NU)@gPtcO%_q(W8c4b3!3TQl~u! z0|NdoEQ_R2)RizgKjVnMiR4JD8wL)p=f zYor$u$A%4O_Bb~>m(SGiWDCG!x9VSdt?dBL331kb>oiU@m9Sszq#H(^oM-9rS9jGL-0cAMagJs*4Znbm8u z6>L*OHRIEA+Eh(EVgGBiZl>irjgTR1-D5R(A`9-v({c(kaR>M`&J9i0|31As`R`O= z=g;QnH{S5`wPJYo`uqOLg*r%uF!EF5z&92|SofOG*CUx_rHz1sk*+azH=QWVnP*nyR^J$z4vdy_r=c8o zqRHch@W9FZF>VzW{`+72$Y)1-@|8EelAbJAuF(AGW!8ZD^ao?myXu~JO0|G~ZKm3- zKaY)_x%2lA7pc{q$ZGBtF~IcsPKg)^zhLAJv0*x%Ss*Ctg{+X04g19b<*WE$g0HC9$Jq{TxV)ZX!neT;eg2Bl069 zQ-gMOc=(s=8u=)4?zbI@rf8vratC7&Y0f^$xToV2GA?usV>)AkL~9n&3UU;!2|BM1 z0t;t;qHB7@F;`VDIER!INqMIrdwpqH`FLGpg`T%4d}vfO#2uSq?RJKe;*3$Va|IUW zQMZl4fST2DA~CEI5bzmVK)=KKJ8M}zzA=;0K*v4nxIlsR*oHl+#$>Ug#$t0k08D3C z|NoEc&qbZY99_!+?4A1!s}Hjr+TCTfjDh16JHCCia1iS_Npi}iqjgmGlmfX{JQ4;K zvC(`(^dqIPc2Me|Mkj*o^P1odwm5MvIDttj#?aXF7m)(|LmG(0x8WqaF@oaG)V+J8 z1OcIn@f6tsIAfPH7M%54Xou~EKYm6Vkci#-SE*f6XPd0;o+7AWoDMqpjj_-OxWU}^ zA9lWycy>91cqcmUEah8;2czOOg6rlk5jyniL59xYI8!m_U>XM^~1V{F*yf-QLq%Q zL88@G*HRzQ4u*b#V##@B36H*fY7YAHq*QBLw&Y00Wt=ldvaJ*+U}U}4yD|pBWCA%Q z0qaLd2Rv;lwR(5gRqU*mKaxTxBXTutz(;9cd#)^AdfZ*l=vF-9j#SzbQe#upP}VE% zugY(S+YgT4Za(IHJasfe#+Kr#8mGjEh$GvYrlevVJb&<^a&@DmR?S6UE zX1RIXdFKd_(13Syc_L z*nJ{NB&1J_Y&)BiBA4gg#p2D~DoB)mk~i2`Gdvg&R2*$c5>IXYO{VK_tmrgwX1{?qjh9wIc}w8HImjgiP5d(N9% zsvTCef=ZFud4%(jz6Hml4_gJZR3!#ZrRI8MyJat00tb;+Jt|Uuu4YdRxYVF^>aANn z^!j@%?4U`BS(dY?4QjJlfl(ka0~qpyzJV)qbBgr3eO_83IJC5!Ji+YY9JZ!?%DnD* zb)0K+aaaS#L298lmWI!G2f9i4TZp)Co7dxAk+m~m zKHqg56?}RdB;>GoBBVKT(Y%G;Xd(KfmC_dSHv~9gYbnFL8bC_Wqh#Fq+IN#SEJwbz)L}k|pLQ2;SO(%I zPs_30Z>WfJw!*h2g2W8Z2Dv4oryqe?$N{o4n>P@Md!uYT^odamAqL__b# zD-nFD)`GG{<=HZh%NKK?7Ad7DW^Rt>z;}P+9c~==oT5#j6P{Q6iL5PKm**%5vPV>*) zWbBAKWZR203Mekk=(L)nV!A>WJbJ~cD0}6X{@Q<1HQAq9edC9Uupg+3BS*3G{??C= zw;;V(Bt9tg=zbMw$gp34yOv<4u#Ba-19GjeRnJRG$Jq?7cZ?0e@238Dss8+&I~)~H z6bK>U$oMC!zl*M}bFb_m_Y@fKSBxK=wwCd1vvhN$`)Z`~^&j1-_t)o#=pvcOwmw$a zyE)Q@dYTP&6?fGqPNvxuj`h)&STRCi;e?zAkGuw5EyM+iL^8=-y=z>j>%xvTm{0c^ z@2utte7cK=2p+4jjQ zKI<#XTCNh6bR-v%ck^1r_$O+f*(@)|ivoDoCVhHh&*-Qs7#&BkR~s1&QM27sp_;o& z?EWLy&$-XcgB~#3k}t$J^x#}8<#yehdx!$*#NoT>+I_>I5GRB(j1Lz&s+3>tyTRAJ z4eolWJnIx%1*b7|^dZtUhz?K@wL^X8@T|WqykbDSAH1_b9Qjywgi(V-GQs??W>bTS z()9Q8X70N;3fiPlcjr+%#o>2nY&-99NnQ|1rJ8iD5cO5YsVds1n8EK#k z96GTy(6mK>@<6q$0xf6U8yF#X**8SZ!Zn5Y6s+~2VmZn>wewzG>s`XNSy8cS$@vSw z4t?z*h2y?0*?mJy0T1M=kdFX~Nr#@t#pc@}%HS2STX zAX76!BgaL)`#WTY&?L3NwllGd2{wB zye6-)ZsKYMHazcZ0Z((`WyMZReR7tDRJY?p$r_O{>O8Isb@eE9qRg&M=RVhV)Dty& zj;}HTvy&Ac4z6hr(4LabwPq!CzAKn}rLhM^GiXQGollup5;MRrGUQ+(MVA$}^(t^z z2;t6>TCtFs^}>))vVLbqT8I(uEuNj3>VME}_mnHFVA~XSs9lVWV;8~XK(oVCif#NXA4%W5^^_2ug{#< z%X$Xh+?Dmr&6WLvgzBky%b&-;OgG6T?_~vrLoq5+G2EfQ4-XkrpKbe)~4sp$BL zim*+PjWm7V@A`8z-SONbV->ES>ju8_V@J~RIc9uoMV&m!Ii08KO>WM}H=HBo{c;T0 zvB7w^K+7I4)(R;E_$-+LGS=A=&#<#xZ`F0GSSl<3q>#v${uhZ#h2@|=b1sf+M8bka z?}`p~$eNmU!1-xLzrS=Jn}tjgDsH9r&Sb${?0O+-5tkt-!ZHXCfA!Qv1QNd+xZ7rr9SW zeXrIvuBfl`3C!x;(&j`P*@H3j8d@_i_WyXS?Lpu!bFmpVWX@9wfZerJy$EY+K#A{^ z9$9O5*0!MPX1?AQhCG0Uw`!WCu_Id@(deNc+3Dt=IWjx+x{yI%hsUozIBPnU`dr+7Q&O< zb#eK=5_bZRDwBPX<0i^b)ieTm+%Z8_6 zZI0OO`6D}VZA^?lv9?ZipWXFTJs2r@B%0-z*n@Lru{_^EJtPX4d)XL279>7>#vu01 zXm=AIB-Y4)TozjZ$;f>ft#RTv<_4Bn2_gb*xw#g(C#2o0{<~*tpNpqv3HLmb4bWtC z!ZV+O>nz7(IOCS5UAp&tW^?$zO6i^@7qc1HSxMxe`hAZNxqKdF)L*UE;KNQ zAx|^5=T7G)=iwgm1hjI$e#44FQF3&k=sZLI+X2k_1N3&6-^?Ad3*sWqeh^Nm%PPvX z8kJdi?r@y6#_X*Bop=H}4(;Y{IwLkLlbL~5qooDeAjX}0EOu)geSqsz>802#7%yq5 zKkFVppz&I&Q}fzPD>t*ne?zZyvA_f4Eqwv&#`C>=PXYM2H+Mu{XGsDcZF^UQdX4RL zQIGXMc$?K<zPeT10mA6`TShLnyIGDQJ{yXM8xsq z_-`ZoC677CYn{WH_YZc?uD(-a5Sh7tslcpCl$f+f^YB_n1B{dac$aLcG?Y78j3U*8?S zqS-j69@IM|INj7v-Ow~LgylxAN^?$Zb)0k4WEfY>5PU#<}bj< z4>7lzEdKFGMOv=0{W``8uiWf z8#R_2i)scPHCQfivOb$!a#>%RS3m;Cqcsv7)hi$`WVAW89orhH5-%|edMX3S>H zTW-u|x79M>4&IpxhmylQ$fs2k<`Wxih&+UMc+g4}e=N7*9^Cw4v-+u4sD?d2D`jYrj-K|D;!b=SU2xn5)s)p7;UnArimM zn|N+quM@fsO+VI+;XPtayAFjE6GNm5g%#CXq>F1k8tkYJYp6aVu{_r?(?6@eu#T6I z>iJvcx}w*|zjpuUs)ga%>yLipojaUV=7F8h){6Vb#>UbY>sncestmEs^u=0>=e?}= zjB4s^iK%bBb*!L57i$st-p=Ky)TT;<1x1(nLt6?fQ;9v$#H6s@6SzL}U2IM0C`IXmDvaLMS4LSsn~E%HjAk-EhgLW++d`c&6=2CTP_C?%1E=0)OQuobFxteEStMs)^aoW_t0 zlM$d7l*TvlHiOWm>6+6UvSPj+!cd=o8F{zH^ct{p1>72X<%rBcc~z=5tpnqP=6z1Y zT%SB%MwYVPojFQsF!Zeni8|n`tNsnEQVtcN77%Tlleo|7f8VH1oo`?rV0alZM z02^amC_36CAU7JPrPGNJh69Zcd}AK*VOE3$jF~Hr<5JCvtKdE%uqcKIp4+*nu9FBr z8InlCRGk-Bft2xBj^jQQ*1{I_h)a=YUA$~+rX&$l#GIHWg9>IO>~KjH_%sO$yvuo9 z<5P-a7K1R7$b#GCx8aXEB2h?pj73vOiuaZUewQBLwO3`|OGkxDm%eymo2^A1WHlcm zS7}RN41#xz9I6cMr6wF>0TUV!)00nm)jYTc%~?AA!RnmwJFgYU9pLgzY)4iOXvlwPkIb)WZ? zZbA+$SVIRvCiN9>I!idM0(#Et?5xv0IG|x{6#+1MZ z*8YcV}h2N(v-98dSo^6gZW3m6*rX6x~qCQ9Gzr7>n0 zUcMoIN~SW);HHGn(IYrv2!OC>YD|0AEEo(EP%yQ!C@dH)abo$O%T|$oLEz@NHN8g5fLojQsyZWj_3Wi$A}5@%o9%xE{Rz zL;vvow?AE3*2k-tnQZIhm05kZJ}=*g*%G(T|(JqK#k;*;-H;`!Uosqhq7r9iIiK*Fp`O{;4Z10NaX5}NT9?|-c{q>3@WQv z^!4Cd(PG#7cPnB*Q~925Uo7Tsjp+Ay!%jz`C-`#jUG*>agEYmJJTXa5{_8(^{k9U1 z^Vi@1kDuJJ==Y&w%*ARs=g^<^y=r$%&WD#I>YiAHqnBiUjp6zkbM3Tz4uRr1Hq1O! zi$|aU$T3T^ku#S@sY?mp{cAsW{bYfB@e3dLM~~nB%&1ecQ|P4vnd9*Qn|Ch&`s__- z0NBvQZVdo%Pfd=-TY6*PEGN=6^}A4IIBfr$zH6`e?YqV3S|vV(!cFVhO7*_bSzbgH zA4U2C=OBe#Luyjr;u)jTWrUpf-%;5(J~?aa*PWZ`jRz+^K;#1Hy*h9qhp9e5#qES6ee9^n)XrNEZzLTzg2Ot28F6#aCk^;7jK;N|n!0MY9{>bd_WD z=*@j9Wum%BIIB(anroBEA{QNt0({EGkv%YLEiz_f zEHnAJUWV?@7A){cnXVwv3CAus?Jrg?_I6%WAu>Xbtp*5T+k{k7;ZUNDIRbOeO~{cg zZDHn&-Nc@3!&N<}s-C9cD{Ur;BOUFU;Lr zQ>BjB&Q;x8p94Fb6O@oVWDTFFeF6?LEifdf>Ktmjl${&)R=`<5A=vNLn8x0>t~*N4&FHeMfXq4ZCZ(3pwmgsv;6<_DWU@{N2&-j>A#G1AuQ zFR*;Zb$WnX%Y%K_BcoxtW`5zJw`K67|F5$B)ql%hf4rZs?pB*LTb^pc~xALuI*ob>hhzm;P?e_Q};R zziH>GvG(xYbbo1su^0O_vVPwPifG8U{&>&Dn^d^wJd2u`1`cc$-yz{0Q#5xRf4xB=KBU_jutsp5Kg@)zZ@x{ydJ!u&-eK>z%m2h9_&nxD z#*w9D>_BO31}@yemCU21YhMAj)VlPaw2O#etS0jzFI;t{aqb5UWttl1!$6lk5^b}N zlLAITT2gOCi??$D%d*}K1J$)2Y74SLPROdAP25GB7zGADiQp878C_D>X*(3|<9zC&&wFAoazC_;AhTKLP!6R8T zx{)Z4&&-8g*{jd<{uQDFqjYTpHi5gTvrwT=BxC-#-H7x0T&jGVY0EU5)=Quw&h zpgZ*miy);aWtdGB}9q53$LO%GNj38VzO596tqR6Bl;1#WS9j9IP;vZT76P%Nv-O#hp7#I#@kmRJ{l9Ey}u+ z91O(EJr&yfYlRWCnCrJ#B=GL7y$6G0%Nk0mWyi@m*2*pcD^g2JVsV^D$(HKL6T#F7 z5MRub*XnN~VXZ6~lu;mK@ZCHUPqc4Xhx+oUq@e5QcfSzm-K*VtE`G{7z&e!cxL&I< zn7!ePosMTrEVMq7_~IcSDGZS(=w+uLY1e6Dkz91MCl=ao$2|Jzsp{pz+ao&2d2AFB_4 zv3{=KbvwK8FMQz*wQl;%>f1a2y7qy7d*|DQDfvA+%npuh1+u7(CRdiSKYpq`NAEH> z+a=S-o3l?*Nx4{0p{G21R4=XX&Q)B5gkZbunR7oRlun)h-qrPY-By6!dEpE1zkP4K zxRGt{&#b<)^Z$&kw0~5OH^2r>xN%M7JgmZbNWkx*e+{2e-rPb4RD1>XjG#?pe~qlgTNI&9BptVD6xLdIZ*>}c+IV%a&x z+xbo%y+<6lD{gpY4<0ga#nRYMUxzILGUOWEw9UQt@9$JWTqg@8eFl?R3>uK=Y`sI< zY7HIhz|H+woYP0x6P-(?u^Lidg$n#$-H{3{klwT6nT8f>q&tPU2e??n<}PClR>JTs zL{~={K>Y@mtipGc)6kg@-8aUV-<9BwEJk)5)&=-&$$cCEB9AqZmh0!FX4iBwUTo*3 zI-LaVLi#axsJQW_rM|KrjH;x7+7{q2@AmC*exAOH*_L9 z0Ux5;5oAPKemUkFH1l)_`}ehy`o0q6R_5@L+I2O>Xbi z5kAnvD=R-%&$K%9K2tgQt%Ch<$PW^MM8?J#-!Chv;*vEQYEZ~JBe)hw^@j7~kRvEP z#}nMQjW!Prx*{RTTnVh8*Io68ID62&Muc+EdZyVr-&0q~x@dFqcuCTyD^Kh1^@&7C zcY5txT6%1#fdA*`9Rq(TfHim1T51J6v8`SmnXu-Kj(3$9o}lwUNkx45?ZL=|wY+=- z&6;N|^V%0G@$gv*M}jtM=fJ}E+(%x`*%tB+%f#6T;E|_jh7Nedjn4PoyC> z+@41|;?=D5+S_eO-4d8$YdI?sse%?(52X_LyB5#yv3HdY*Yn&-G>J95TxY<&z5acr z*K+jgJM;RQlK7)tcw8dG<_b{{aOoqgm5WL5KmsS=8j;+9IxBU=W{is;M$*FT!}^>) z7tYej+8ENQP&sdnAB0Tn-0xE7x(KM zs;T~l&LfF@!yU*Ly~6Moc=d<#l?z1?yN0Dn=K}FU?E#@&Vk=khXHCZ5qRrtswCW1$ zymv5}CVGpE%-@C9ygtMCLgagEDEU4Tfeh5Cr8N!}9O!C2Qx9;he#gRdw#{CB;wmv5 zQV-9RNhs61@?G<)O2XnQR*2Pet98=Khy*ONd#7WEVGFr-npv( zU;BBD0^2F@_ug@Rr}n43;R~<(<{NG&|6?Z#r<|Zm+GXCQg8X9Xly+9=sFY%x5>1XQ zs_rx2BM!m3qF?b9*iAF5Iioy3GD@O!_8FpW*g-55&n4?iRd@O1g|Xj@3P~yp^fajr z%uKEbtd0is)cNfy;#>5LSv)aYXw88G^D>W2=e(ZjV0Z|r;=1fz!&3Sz^vU@61ZhQl z0Tc)IuU6|gi1enfo{{?wT)dbT(Tuz_|7X?zf3-UKueP)PwX3gD;QN&VU%T*&WtHyv z%IALh19b-T2Wqz*XMfRehAq-Axfjj|54*x%P7aEGxc;Wvle6aUAJ23wxM|hM#vFnD z&1cJ+_`BcDWmfA)9aZ-`rhBdj2DH3Ontk$_tKVPEo>T4U z{0#e5Ilq6#&{}cuVzXlD|AGB~zgMd`tKa*6|UZ@W&$$);80bQ{=Z~O4MHP1b8W)Cs*W(SIKAazk9EE;NG8%ED+H% z52zqx%=AEgMq(mIw>DFGnevb~pNp9;3>{(~-cXJ{^gK)0_4xA(|HO%GYWU%LIyvUH z2;rWA*@Gi5biVrsyT04`$c>=jt;_}`!3?;Vll|a`h;!=g>3Gny8|{0ZL02C;^QR^R zf5kVQcXn4m=_kjct9AU&h?8wuo9#+M_pzNT&Kon3W6yKYGlSp~;TVsVsQ!oO7Wo8u z0X^LaG*OAUE3pZ3hSi89a(A7YQQvTlyp?yZQ8%Tg#J5-L54jOms58E0M)zbXAu==L z$(YG-nVCuine4S1nY?Sx)ySA#jo+&nl6;MMfpNZz_>wG&Xs+aQoX`&b-ot#S$N1#& z%$SUkwN@fCu_W_jy@NY4I`}zE*eU8zm0dmURa52Ks}j>u!GA(j&dV zmlal=40kuAxzn1d`bG2)cf>_|Vn6?KCN&YBz(aOsu|AS@uKSAv&=HM6g7%K&i_hfz zw0PWG6*l?`sy7RF^+95jo4Gpl)Hn)#-hMZF{%}EKMn@%%xsdo|d5q$-T2EKoI#<)d zEsnBql>jWmvi6Ea)8-m2cBIvI&AOWv z&aApwr9Lx4hUHwnx=1vcs+WEb&I14X6JU$BK~bT}T4m#9lrZmDneP|+zB_AP_`g5B zSq8RDVx|Hhr#ApTHnpM>eZ>2bAB7Ln^RBO@4F2ki3TE{(%O1!)}E2ieuj9# z*Feub+fbjCa8@9=KQRw=b)>PocCZRv4N%U|de=)>I|@{E9N-5x=bkkpBjf+kt{$D* zGyM&X9gtZMK@QbBpd;2uodiCxKajklVdCx)Vb#A@YmqibK3XL$sdh|`(1Z#|`2+PY zUdDPhZ#-pIdf8dkw+W4Ew6+qBsi}kjo7j)V} zjoHeB%WhrU?Bq~}_v;B)2#jXD7s;{Si+zQ<@nFc9Q6Dsd68$#7J_eRi>{u|OJgiX? zBk~=X4|IE532nB~rpVL*IF|=1IJCS3L^{q(}Oe=$6+z zWS#J!@P%HiZeeeL1M1;HW*iRcce0|yZ3x%ri!WmhPH zfjkE6o35GvU}zU~K$2S1^wY=<(54-12^AH)iEeLXVp)v1~quJg<8Hi&iybv&)cuCUfk!~%!smBm9p!NoK3k^ z!Z!0ybd1=@`Z*kjmYxX3`xDY-j4j|T9=-=L`qEW%u*XvH^xRB+ZCvYIf+zGTM$cK- z2gl845*33qv^;2nF>V$|-fM|Pd9-#spb{0&U8KWH&J zgUs=nsH7!d`;O0P`{ulOnOJ-=m4X>}iS3e3+i(V2B^9fwKa+d<7d^(h_nkd~^`W^d zl;{TSu^)4{u-LAXcvZe--tJLr?UVkS`ngwUw>)0iA+AfuQDPH()pnWKMu}t@ z%A~dhX=aAzHhi>)t9`utWZLh^mvqw=_D7zgt)h1rm+Fs}5YcI3UvQr#g}uWA0*!BL z*zE8Fx}{I)D7U?jd~VLi8_lw_ghy|=9N7#8OC6nSNt9|pjBLZ9K6~0dWtC+gX=L-B zJ7XQ74Y)cp5rY1J%78m07~O~hJCeP2)bI3Nvs7^h)WZ)TJsoAKN{b$VzO6vEl0{Zg$=p7uUry`BgfLT z{mLD$#NhY|xyW<)DYZV9eD~DeQMK%dW@DA$;K*i!Beh-rj9#~Tdd^UekJpHHx*pXM z%Nhin!na6cxI|TUT|Q%-W*K$;|5sNhfAv;!h1c$RjRJqF6!`7;Uw>V#oZk7LfATjj z+&+8CS;~nUw42xvJPmn$-dj%<&HT|*6>V~p z85vpom!%idmSkT7tM`t`8a|n=*`Ba#DVKe|i7k?!a;6+{puJJI<`vqTV;QWU&wD=3 zSB2ojhwIN{jm7D*B6N}_5?h}4ZsZT`6Mf*dSsTV;lBunqYth~Wdz#&_jKI0(oOjq! z3I2jJ1n|t*()s-fk5x~{r^ZRhpBe9P(|2F3t1pbV4|qbd?{@=NWC95xPR{Ymn`bw6 zCPTMA&j2MhT@L^hbhkr~__KIivzJ`&)AF{T7YIanFyH|@W}}A~FC35K3_yw31sb^# zUTnvzd&q&sxW<2pH#$b&Jr#eB?{ch21Dr|ZEq?fP@*c*-zp;}A|3lP|-*wmi91kEj zz1M%P;>&qYWt4B^cZ{vKLYj9^+1U!E$)9KJ=V*GCB5FE>T(BEa6b_!w57_Ccf%Xmi)(t=<ItJU9K)nBXCKYsZ7UoHdurZ3$2-(9@@YAw<~ zTIYh@S?wH{E(02VW1+(T&X#GzxLsX+u>QU{%;KG686bDlY){L?^1l0OvJ;>DM=xBz zqo#ZCci#BBZ+_^p((MlpEq}4J`lF@YFCML+jGR8E365hc#6vT>9RHCQ0%b^|6`T8FSBvKwwyH{*Bg;a^gq=^ z?q6b&{QND07I5Qq*|-@`a(`qKn3?0CK2v31-o-e%3(UX)4L<%Z#sWG{V?=wiM#S~| zi#MFwuwSF9!(6qp0p+N2k%NV5=n1>%z`Jc2&)}VaE8Y#RWzE8wdItsf$OY^N5Q#Cf zLC;4EZ+y5{f!#g8?((CKW*!(iFn)5BP;dL|!Y&q+>?ea7ND7JvCX9g8V;iA5*BBjX zVE$6T=jzW3-f8Cm@XEbJ6x&MQextqbft!jlo!8e)nF;=7-ZWBf5@wDWT zQ*EBw3n!HPMP0R?Ti4sz^y6zniK>=);ijyi-D;^Y03}|op;S`a%O*lX-{l9E0$ima za*-8Ns!;F>%J^-M%l%^Ss+t*UuNN^ku>|)m>#1EZDsuF|N z0|C;54BlPR<4PU8)7!!g;2@$|O8mOD5*x6+Iv{3@NH%iM-dW{VI;3xh`-x@HA0!Ap z53RB?<60vlZd$|Hw)J`o(ERC1-BPBcd)F?oCPY>T1;b%sqhwGGvL<<0SKuprd8A$= z;+~4ESSv3?G?8)R9cTkqys(5$9(9~6{RH&p3Y973flts5pWpk?p2)XqdnaMc< zK%U6`a_vxgtmv>_^O~_UGJw|Xv(rB@o{=xBu<=fk%UXMvk>{f)W@$!ff}k18F{6-CfL#)HoL z^+_3L3^yI?+5dtqLzw?=)o zPSyEH{mt)GPd;8(q3b+zcp=r5Sz|n7HmM9gONf*eVdA^T3U6hFw>UuQ4ZAMS)X2g`^~B!tD|H5_d@ zV`W?wk=0cqwB$(14IGP^V&%br-@#K(y{$gMW%iOY0=BcyCIe?jQErwaQ+2^M zqj8(xV}qm3a~=T)fq|!h0SQWkt}og@!XC(+0eFQhTBseEPd)J7?(+sRo+EF;W6a)R z_Y~H=y~FbSgyX2~3Mo({pTLuN=QyqivlS%lu3eIK?!c+|Q}S-}S?J~cU;=&AZTt@% z6q^*D>BG}zr(_BuGY#e zv$GP5jx$nXY<#Mk!BuF~r?B{R*Vk``FHn~Le;m$XFEE`_4Aik*SY0&2S}oL$?!vL9M0D1)Eni<&>wr)#v|{(I zqwWqZ7%NKX)V4EBw&!U;f%aypu&}QZ;R!csKuim^hXz2bc(s*=Kn?*k##c= ztJmKRt+cb@Kq9!%4~_~o7-bh1vc@;c2ROWSRMpuDeaiQLpZLF5_5W)>KadpoFo%#lj%0*}hg*fHFn4euadT^~DzpYzH_k_(^K%Zp{f0og4_dTt{GOr7C6!YEr z4aS_U>FlSr+uq|n3vo=Ja0x}R`c!ks%z7Sj10x@1KqHKQ@j^y-cnzeGJE1h+TWM%J zuU74scOgbGs%|=}Ep*GzWA|>2R5Pf$I`W)d&F9u^=M%mf83!vWvhX=M2J7SZ4PQD( zY|7X+ia;NFw~2gbS&p30y`#lzG1ht)2Y8;V`>lGUQd7RF>^Je@-l%*=gYYEO zb;MLol7%q)(mHzfDfe~75if~UMxTTGB*`~Jiu$bwlAop#pYrTv^|DJ9g_jnT0e z&_A`D8)GggwqBd>S_b(sn9BXmv6z3qpn&TcFYC5Eq5o4?do;#57?|F1B!AdXyetsP zJx0c#t36!nb)jK%>dDWR-~M1#bw5>J>*@OK#c=`>mELFT3eicV8~$PejYstENdNuh z|IZVP*s`OJvhJ&oQUd%g4Llb|qt9boDnfIQiFG63p1Vq-End%#q1ZerhxMl~hbN=E z(82d}AjR0K^_pcMPo0fXQiI!ezo+IP`F1;4)!+nJ-$_QrCYrK+#-(hFkT5mD%cWuOYN zIeuw&&5KTS<#cXWvsn$z{nM;f9|su`1yL6H-rZ*0&ro~hSsc7;%mYBXUeI?r9XXQ8*;*7pu z-)3aHahCNpHJ!0$tKU-Bxe~Ivlwi9q%$by5F`6S@GD!FF#j~$>tggeY2Hjh_lh_DK z;K48M?A9lqCwl{CC}Yns-_VHx9o1s;%)|POb->RVRY5Q42sT=B<9JTL(F(y6#)U8V z5b|hT1Vfl&u0n`y5k**IWwxCxo5BB&G$C*B$kYQOjcFl&FrJBg_Fm?ALVy% z=SGbx?qn6QSWRQ#IjlLhSwQ#%OhmSc72@BKZRBLT21xrSOC$GJ*T&xm}FGPF{*9i4n7|dUL~L#EdVLbi<=NbQ zE`CG?u$TKsvbAohA}fg>lM9eRqFwONe(~8Z+fy}1McX(q z%L!a^#8;O~?<3OaD0laikjooz$2MSpxXyaVUiHpBQCv?vOgybc<&K#@sbF3hwAPdM zeoX8gyzG@D>3y}v(}wdm^hD>gqnoFg9hrN}@VmsBKua_#ui!5cm0h7m&Ugx}tEXBV z)Fvu)k_(b`Aw z%*Z&<)#V)Efh9vW@2(ECz4|03?w0}&R$HOD`>5xRJ**=2=12vcoNF#uN2K)at|a+o!93@qzI-R_Izi$w*|Z>fE)XXVU{t zrcaJbf0Na$S{2}YbGDAtL`#lcj2--Ztfaf!cTli zyy_kbw4WLcIt0J531@bmuTS$y1yTrF5f5>1uPo3t$2WW9c`87T#H`fX)IV}tW`Zj- z{h7%c5ueDN>4rQwf`Fbc_<}4ERXtR+d~8=7lRA2Km>5SgzLQH^geunmp2Cnqy;G^P6I8lU-&-h&A5&noj-bT(KD}ewjrET_{L9!8_pTF6p^-P1V zg9cBq)f>4UPeutezNQy>W$gg`m`#2rt9ZQLE&Hw^=j|);B0R4xGe5$DppmZ4%(1u; z03-K$WBgE7k~Z^}c{I2|7fxu=^Q7a6Z$ew!i3ijiXzo+X zir9>8xPESDod2=<#)|*HKYqUcp%<%P<;`Dt@|!Qz2@szs?_IhwI+jw!A>tr@N2lSP zxjGf5zE0kOpMb`ms+%4Z-!jW-5yoQlr&PpVcO8GH?|XQ#?sMM|HU*2}=vH{=^H%dV zi61{zcBB5gW1InlT~V);b?U#uyo3$kWB1H`)k{I&uCsDK7$QNOKHpD+ExSv%zdMK1 z_<`hsdWLgsJk6gRYB?_*VN|ER7pQ}6-tkAR{posNBu`!}7|s=ELT9OPU*$k{(J;ze z>$gV=8|mvE_m4ZkC3kR+{^^Q{;N>MoE+2(()x=im$GMwv*6)vYz+oe3 z_%KJ`dzE)ysXyku%*iv1j{TdVBTsG}UY{wt+^36CXEZw|VFOBOTzWZ+V|5k)gw9aD|3P#fyG5k}zo+^nHQ$A;IH-DM4ql6iUZ8+)`)w@j|L~EQ=Y~<&>uGy9L zZIOqwiroy&?7`Io=|FeX%VR~F939!|xxjy>J2GzF#?fY4BM0abR648?jmNsv2m1g< zn^-f8^zX`dPLV@5B4NJA%=uf|T6=n@gtA8e&#H1_xI>Zt`g+9j`ppKlQXE5^!v{60(nqoW#jrABv6sx=Dh)*V^V-KG854k2@}9%vrh z^|K}QfNEYfgxYw{O$w#25t}e$m9>4Ih!tkkSR6IWH8@wmjN+hdXxH~5J!&~|^AfUH z@J(EZC6-iRoJ)fvOG>L-t~B7^nM(+JE+_!6*K_}H5BOc}f);3hvi>D)x7TgyM?pL7 zaC>`=fUUtgK{K%S9Z?-+5~)DZZ8L#+swvh=TVA*y><)^X>Oa~ewpvx{u}h`A;ss2;IJe`9?$(MN*veQhdbuBXNgvn5M;-S z+0`1CPfJ{4G4+;#hWP64x_9pC6&q+pq)Yzp{xR#YsenLJ`D7)AoF8bUhfri$A~!q&c2InZb7k9HZZleb(gJNu5ZxY3&EN_%o~N(6-_P@54VWEsll z?CJO-a7A9O4vHaNthz`OsZLCUEI`pY6HkXC*?7(uf+AF{T_NeJoi>sj=W3led$IoG z&g~G*Hn)2Sf-UPZ%ohtN&iGHRVqM5wpm5_wJU@>#uP6{fzOs^XMB#Hs^bVxjAFaW> zZnX_-W(8ZYSm#t~m(sP*LB)JS-hy60&|M7yO-czmz> ze@_0&s{ViN=QRra`BLC(AHBZIUZv}A_{}@(jh?InU#{5l`T9>SnfJiV>*k%^`czw5 zt%}wDxgwXfu&grA6<|GNtf0|=tK(SzQ!9Fb%!1bEjg6%5Y3|2&f91Imdt4g!$U6^? z{5#{c$0D-BJ7c#Fhpjamnr&~dk2}(OoZ=c2>xI|^;tDf**RH4>@rIBSpMl}@)nIK{ zbI@+$HOv>=-{sT|Y%1q7K!a;_KTorU1+-Y>z50xg#Iw4##oET^I30<57vmA1VV|vI zvwmY-$#}q%HIU5PPy;=lUmwhQoY#uljI@6Qi5^g@3VEMy%6Q?owOV|KCxD!(5qSF^ z_+iU^+a9#?e35N-+>(pX56E&_2Yk9#BXMoXsv;#Srq9>YAFNFM;}sE-uXFBg@^41< zG!bZoOsQ9{XMv^pOK`+88vg?mmApv&Y$xZOQyJR6=7K#zd##W3n+L?UVbd^Y(0Te*?SlLm!c$RBySBnzpHWWv$-d@rf__S|( zb#?&RE!$J0EnRGpP2?coQ zTf|jKO^uvfec6#d$J$HIH0R(9(3yWKBX}w$5LzlL+s~7R4n_lvp{L2)+wcQiZJo

    a^$Y*Y2X?F#n7gi5lvn{(`mH-3mgHcC zltwHCTByfwYqh>dUP(eHtcs&8=t*|XYJZHM`K;wlJbiY^Jhi4}F0D1baWs2ukx$K0 zg;kjBRu)!t^`PJZ8zY>}nhY9_O~4o6>o@OkuH`sHD$ol3N@XIpA(#;*fIqMh*RdkW zb94$AZE26qE3m3~AfgoRa_8IZO)r%7#rMD|R)6$iSO6;gtXfKyIYZvj*G#j}^kp#W!-A?wavgV*t1pOTJfpPsdB!aD9~P zNXl@Jglr;f8OxDbN#W|lLz?WMS5uKL^B$#{sKIWrjtV*wYU2)b;s@N6oaLL3{e`eqDX+I$z?;xk9jv4YDGk1u#x%je=U}D0mw60J*!RtRC{+ z{?0x1{gT5*4?@z^Xh~Uinn|VPoz9OP;CgV-dSW@mUC&O1ka!y#6I$c-Qzy9j^Fle! z|NeRO|K#c)u1@|>_1E{?&oBSG*MGEB@zF>B!Nr~TR4JU4ho#0RtA*rZ6@@-ni;nNA z9H9+VvoFojeI)So=IpPGVNf#KOhIU=03&EZG zJL38bsPHn;pTqvck#;r<=OjAg&E_LZIEP2D&?Y>?jR2)cjC!X1o>pZ=nr2uJ1S27E zxtaOJc)f@W))Zd2mrp3ATMyf?pg^Qv5knOUA(fiPwa3v~l;S-LVubK)#9qGW6~iZQ z_G=cJF|tshnPU6OiR)iGfBoO8c;}5@e(CGa)+;MMT0J5C;OWX<7((BxCxa{rCcE~gRt5~#rHPBQiXc6Uhn^y%bG{s`I(~Fklvq>BzGYb9>7;lPDkaPQ z6L%0Ih-2-f{tfvN1I2y`k)vTt5-o662uua`BHk~c^7gf^3$rBdH`_#9g8MAmWbf|J zK0o$1(9JV5)iWQ6UyPq39uYn8(5Iwt#&gPnl5y<2#bdA=2%oUNlHYzRU4jwGR;&9~ zKRxhX!bWVA6}>vYqKv^DpV5nY*MM4T14HVDONuoF^a9){3Xt7xMv7pDWFXKpMYQ8l zApDFzbA7ip(v109(l}h1jn}!MnnoE*@2zp$=I2=V&Awn@F=wWB0S}fKceKMu$iPf< zJQi528%5%3&6W{>5&=fb(L>MK#EBiVAwfMWT9^uP8@_N79S+sR96d&|fw#{B>aL-6 zm^Tf1A}i+r&(?>`wZtdX%9G|7o>32#4$BpRYfSj2sV35oDW>}zjkGi5QhmZ1u(v4v z2;3{B(%Xl9S(mc10be$LL-LJ;Ua36{thyF)-)gr;$hSnr%t+~!mg+8Xm?uQwtQf8HGcmRQDwQnbHs3ooyVhP! zfjh3gFcb5_+hu)+nUSc&f%hB%0t0rNZ+pEp5uUO~trC}tyS-6RqXo{SR(I?c4Ef$5 zM4gZe;sQ?{x8u#6)ek0@N^gOx_oi*faHeubj2t6(SZ>ym=FF7u8JF>`W1TrVr-+Uc z>EHE6dC)e+@0&K}CQ6b1o4>Umukim=*8%%|AF&k3V0PgnnVcj|0D|RWUOIpHq)(Bv zNRu@JXU=Iy@Rn5pcoK=HTj9M!QiW@lpzvyzMy*xL7LcH^$j3VN&=SAUH2^3+pVh3T zc%|?1l(hw*iwt#^*gkLF+Uh%c?9%@)z*l5NZx#I#Lg+wV0o~+~TmchuU-$!!w&Cvx z#2f6$MvtWNtT8q75mh}`h-Z@fY#XyRTwZR6X(_R2BGhgB*Ypvh=ngU?*S5{w7M@%z zIb_0eM(;aj2%IDIYmc!_=RysiG5lsW?0VKXh!R<=fdX@0Xpk<|p;PR6qz;Qg-3r|R zTJ45&7{q%8+*zyO+GB$oaIP^%m+%>h-mE9+&$Q=;_OnGl7%>*l2%o8iQo)<2kU^p$ z-hqdGjwS=~>8fKHjrweCM)a$nqUx6Zo!R?u_LmDSGBGGo^YO2{G3c?9mQX7GjTKhv zHGAcE!5(>z4}e=*mB@H(CzNp2m)-?y`u+Y#B&KaEbhQ%cNgRnspaG{pzGd8N@)aKy zNThfymDCCh^Bi`xf~V^RztSMW2K5Gxn!TxY#)4%gia%QyBK8&IsDI;nY~7hvjTIB@d7A^>$Pg z7`WD(R&z&z^vy56bp6K)q&HlD@WxLSNDmA>MBm*vWmbE(_6`y8b^j^3>vGo=RZ>rt z=5BJ-zFS*_T%u>hazu$(kmauTu7|U(W*ngW&vE_JrGI$QIo9RuMBkHy<@0=A^b0NJ zyeTaXW941Ft{tG`kW_fIyG<~jf`nSenV~*`7j`E&7MEDABP4CiUeO_EYV6kc*jDBu z1~fy!lcpNWD6HsFXi-D?eST&c9d{H2o@B1)kJcN=Ld~>s z7~|>Eng_j5necDh zv5DNCIXWu^jN)y@Y`-+&&2<$&!)`+*&;Anbo-yC#9Nf=($9fJeJ&}-bt@+Rq$*dKL zs4Rn;tIp+7ES=uJqr!CKZc1YGWR9=W*T>sU&@eO>F6FnBfS2)JsNZ%CD8S)n@iAkE z260!OVS&7&$>g8Ary^~-1am&?TGC4?8T$YGrSdA>YzTP-U{Js$c`~^J`6y??j@gu| zbPz&i!i*vgC`BI`vuHC+Fi6 zuv;eRYv*=u6dl2OK89y5*l2j0n#aSck%HosA6Y0vVKD9r_-5(GCos^cqvn%@g=Nw} z&XzJ<1R;c!&PI6ffuB(V17Ik{HSa}+4BK&5S8EhT_RiyEA|)p* z&t4rUvUkeZkp&_J*Qbf0n8k_^Dv-4U2oa(~hM1`(yeLw9$g)pu7S+wZ5JZg;_v>k> z&_o6gvp{jB#t&YIU}B1-4&aD61^T@CYTk*$TM2=WXD`(qd-X3fbE;_m_ViEgkTVgv z#0=6p*f*R}lAJ|0?~>&G0nit7yq)V(7ZLW}n^CyW3AuZWmvs^AoxlrDs=o6QrSu98 zRO`E%TTOl4iatE%aF#17c$^LjZgBWu!xM02TIn4Q4p)A)Ph5n$3#Is*Cs z57p_SxBagt|F4sO=frpFl>D9>JKOH7khRI zTMIUxzrX$^6J@y>eg&R)jf5UJaH~lBwozZK)#P)P#j@|2w=2_4$B3N0LH;Z5WWm~@ zZFq&VnR%wfCeFak8&NLQzvSEB3+895Y;dktx8;#`8d_ap#rMot@BCb3hy;~G!ujpiAb^c1J%%Jr1+X2}WckW5ANn3g zOk;s!v<=%F8Mwq+gGHQ$a+eAHFyvmn^YqiDpU)Ifd;#e5yDIGwz`vZ?8T~&ezPP&W z8}-*~KYtz+_|opX={G$4l^1r{<@-Qs5WOP`)FZ_^_i_B2THXDlopY-{EPm1f>sxE# zEs0vZDUkD)bQKKo^Vm-n4=53PF@1L(euTKT;_)eq zR4np=7j%L;6sBjR5jZGLCuoIx$iaM{#sxveN3)RbW)pb~?Xy_h+fA}QVaXAw=;~9( z0t-uQq(E1yhzy-Kv03uv-T@oDe6%D4!v#btjj+HQLU!)i91R|kCN-BnUw5(?h9okY zX3^9sM_3(SM;QvpY{O7Cs|FxgjDDZtwf#3dH*Z)d6$2UIr-@Lv$ zed)&0c%`a>8k6rQ+wbLB4PL6^d~f{HrD!}p=9OL%Op2x!mEJ61TWU+?0L9H+m?1O$ z?vByf;e;q?&c$uVN%`9#NU@oPFKIdDdKTX+WbR)kwo%cJpBVxq~0Ud6Q_eMG!(J7$>4s)J`xruAxAZyWtP8jqvb-$Gz z=2-8sJr2`UD~(v!%{?PAcKU;HlE&?vX8?Xmeoh=;QWp5Qr`;iPRBpd20^{tV`pxqZ zmmSPJ!>k`1ce(0^tLnfqJ87WqeWhit9>XysdbNakrN8pK9XjfQxXImug%R8}$NZe* zc&+|O)x&{HWChCW7UeRoS}A}gok5k*_|xb5QlQ&sKu>@o|>ox-Dg=%6DT;l{@-BSo2n&`-G6L5Fpo_ z#)dX1jYuFezg$7!O2Yh%O+tYNVCmEsQx)D{dZu*3)MM5v>|uK8VqwcluKrdfu;ACd zLfDymtKNNn)Vr}hhczOBF;Q7pVx{{cPOd2rw=*Yp!@ zi}0jSC}I8s^%=V6oiMyz%w(7KBJ87fqJw+VOU{YKGT|$rfEth0YClJ^j6DQfG@aB# z%Sfsg>d&0zjo91=)#SvvvJA|R?cMgo!Qhehb=3b>Kf5~l>H6zW^yf=|^~nm=&aS@t zx*c9r_Ms{&bDZdN^?5rJXJ`I&fxccX(5bnZ5<#V?q;QKiB>h&AD*{hVfctRK3P4;U z;?A>(LN{e7UU%2Ed8DwCAS{g>ZGx$?;0zGYysG4C{butI0%O)`I74vC{p8UJHigWW zClJ1&CWz{pf{yTQ85#+<5X$5wv~edhE%!zph+|UoZI3x07~9SQm%2YN`k89qx?I#! zMHEOrKf3cbhJeoSCE#Ldi%=JF%oAdXlHR-e;vG+vV7z(t<^)T$=APA;&hI=mO69m6+|S&vKWm5?{L+1_>-c)6F~>7)P_Z_#OK2={ zzB;Q`&#oo@nldl8i8Xq(5)H-zP~gO!srOo)T;m%}zccLC6W;ANvlZ$p$h@Y(b4TZY zuI^g#|M5Rx`I)y@tor2jANiH%b{?%o38?w8qUZC&owGXrq468<@#37aGX-rpp-BVNzZQ)eOKCuau_ zbf&{LJQW>Kk5wGcH&6qfvh$YJu&#R%=)PLLsMBDgI>P&hlx7=_q|(GwFeqxJ&|M>DwVX3;<_lSRLdxsU-fsptZ|R7fVc z?H6WfW$ctQLN{eMk=b7H{90W#!azE%jL-HHnq83#@;o8&13N!CMumfDC$KZ35(@R0 zm)t43ztkABHSBTfIk`_+bj(@m8I!ObiXny6Q+Yf2!MNs(obSeyTHi<<&>4-Y8~jbU zOCo?~&*$^7)*U(+3wrkJ-oT8J;B>0UbM@$nvZkM1{an=pc$T6y7&3|_ET$janI$t`qFrg9-h48VIJwOQ>UtChX$&@Grtwy$+&lWDvI=2~{&$2?Cu6&VQBY(>U zKX@45)0H(X?A4uEy39LE7d*iOt9eLPDtc#2#-yi|Y z`Y4OaK%uW;T<9*m%3HRpX`A%_Cs%)Ub@C7DuUCG4cCu~InV zgfX0?Z3GT&qJF9rLE>nD4~B3WI3b)swPXsaGgF~)Cd^10yJQq_2~D6la|Dh3UH1>g z07u-F%_Gbj(;Fj%!4oEo3JQn`$F(*_P|eI6YW7kY=Iv6=1HKUzsL?CdH)`fbk9ZZD z?$;R1vlKBLXw*O5CODbYD4+tf;M~EA;1f#1`>w0dl`y@D=0+jNcK&vPLnB=Dj6ihyx=5IijXonFkdy z{=Vyfr&sl==VN}p^0U`pU-Wvz<6nQFc8A_S)oI!9={`?7fZ6$3r{fh3fg3Ddu1|Q+ z#K3f6V~>nkeEXW7f%_CuEf^FqW`uh9S8%4QxqGyD%TF3Q_%3wgs&7}u+RtxPR^d`V zM$BD)WO%r&Y zap&{*d6I5BXn%y~h%abP`}vAoFbUE#K9-JYl=Gp2mGjlBWo&c`3v(N$o*OeEUPumf zvWnI`7P_3p3oPLW@$}3ko^cHtsynKjA%4VDB4cx({JQ*LLcr5 zjREqC`5cu@#%2yAI1(!KLcvP)nfi{b1GkiSwi#I*)|1TaF6BNsTP&S7EB$CwpFT6o z9rOUs!vS6L|C6hatWMrjfBmWbeDS9b%7nb}oj1Nfhf0abL={|=cJycJRKRzP7SG4WMgomXe5M8$!w4B%BIzY)#zUnr z-^^=r(Mw&JDV1oM(g9^NSdpI7R~dz%vFM+T#|UhvEgd&;;02Kl;*`y-K*lUw%{m7z zitD-2^S!X0Y{=>Y;{^YkGqwe28*67M;%`xTq8_&|GL!imIO%!u3wF3% zu5Z~gfw#ZE{=1WZ$9k;Q9IPuN@V8w~2qU#H;u$!@M%lyq)_Ou8dw~Tc&^1;8Ypi4| zI6^r0ZrDqb_dOf%8B-DXqM}&P%k}r{|ATXVQ_|(;51{243<0~4xW_k4VB3M=p#Dbv zQ6TuRghX8N-%t$ILxS!e&Cq-GNon!?2hsu8W8s8!?JUzLiD-moR@mlFaN>;}%mbHD zU7(M55hi3eQA~3w&l@cTzV=v-1kUsP%p{eW?^?l*=I0y@zSS&lhrvJ`y7c#$!)%$A z#>>^P>~82dw@7%<;c;5?k*VMGPT-ZCg8U)5>yWVn@+3fAe;vJ#D$ z`wbi$8W5%3T{9tXX|&(u){@$n2V~H~5!Mf9nfG8~Kg<{C(?A26O-2Bkg=x}4TpsBgup%F(bnbLfCuTi6Q{w|05hya5{3^}cSPwftTDsL3sJ?{V znbcL&cQim4=hVLG1dJ&|FuPU_nW9g_2p*|awr5!3E*zm_!_vW=Q?}*UgpfIx5VUrn z`@nIg?!g|Qk4m`k*nJ3Ya0qF|lige4|}Tp26?Cbq}K$XdsPB zOKrM4)j`&kF*=e@O~1=K@CDiu5ie~_BrH)rJW%%KF!43;EmQmE^E{dyU3zZ#Ntr~S z1Z3OfzhY8^Bc5>Zp{U{x(ImG2&g{xPGh~Nd zdh1Wg5x9VylD7C>ah}|k#C)o1`=6sjnIgLq8#|~y>)}asOSvzaA1jd=1L|2%@b*YiyR~>jy+_oUSC`v zRjUD1p(0Tr>6$Px3ftPSpJ-9XKw4g(g6dMrH*f$YPwMT!0vN69AWL{uPEHsQHiu@Lt62%@9@-$(0^{U1E-|1-nr%a2^D-1yCpf9*}R zE9Fw{d_P}S=E0I%&IyRExOenJgu_bywmelWo_%q5L9})m7n)7rFOVuFq|51%viM}~ zvjf-r6R)O9CQSHD)?Dw zH3I1R-;LGDUtQh!Gt-xiiN3V+)1^Rfdh#n5Zhvo8?5@eQ!DZcU1xD zRE_qI)z8$wSL(`Bl`K78fq>T^uR;@*Lh6MSnjWw3V;rM4ii7PG5RfnxVMRsw9Z{sX zp4F;Z8ClUH9E=l=OJnJq)P=+m!6C#%h5x_y&h5AEtIFfQbDTIAj7UsPd(yhtrU^bC zJHbs{aHxwCJGGtGX_IkgCR|cn>cT@>nnHkx>p4CNLI{bOr}Dx-0Gd4UJdg7*enBIR zh8YcLMo37Yk>a#z+8ND=_1WLE&fdRse#eQDiUx?C{QSG_%et?%*WUa6LkpqzgjfUz z96OX&@%xwUO9(9ne$s76VHueyk#O>1WtJ8aLlF3eVIfU|^9rYkksK!s&a~GDQ!@-e z8^DRuZm3tz1}-G#unQSrhZ3a*zF@$`iGF`pfB6$e2rDNWM=Gya<^nd6Qpc6Kz=)H; zjMqXClo%wwJJoE1By|$)7Eus(VQ(6GLf-hh%}9BHSElN25lmZ`Vu37-#3E3LiT2$ z&5Zyduy#4LpB}nTBsjkw-k^6*yKwdXP%lP{sF<3?{aD+Y$Csy|?zmHXL^E1zTg#Tf z9h93wT37(0N&#~_09qlY2j!|A#C$ab4pno%Tf4;zo|CcFSbpm}bJ$`+lYh zd?)SevG)93D1ftn+Po-U`Civoc>1s5U|lW!8;5`A@>`t!2ZvvB_*E=`r~lQe{7~!c ztF5!gT4%rI+u!lU%dLBdTW42!y1~;Y!oAjm>pXaq2eYkvZ*%W|IQ%aU!sY*Q`Tty= z%@t5CbMGntw!GEeEBA8P*1ETYSDx|9(z85$uV0qm$K@`+EPbYR_8boe{IYyMmk&_X zi=6G@@Sr~}eSyn|IegIXm4~?;;qW02kMQl+{b}jj+#79Oe#g(sy@YY_OJc2e1^+U@&!mPf4cSHESCZ7pXF?Y!}AtIdyQF{UbuP99#jdeNAv=92a%Ka4tke6rmN z$lGMD&s}TewVQjGvOyW!V`O?h=yGZoY_K+@d$7wCY`}|7HDT0romQ9ILE~lvVf_)? zN9SJ&fAM8&_Z>FV^~_AII`B-0A7LDgn)4h7q6r$1JjwiQc5?w~gcW1(;B7MiJRIk7 z2|6)r-2v5OcFxws48lDjrob2J7`kxawlMbp zmh6$Ne4+H?>_6?K;HP%@W7dJn-ulu2(XvM~%qUF#x4OV8?h|{(8l{0Nf({Nh&_?nO zgRyG9KheDTd@2a!1)IrO1^#0;VThCtuvQ4LA>NlMSUdbtL7&D0{YTAS#=>S{zam86 zRgGVM%o;y1S-)tFU$BP1VQUfI2#sec&>Mvv0Krj=6_9^Su;;~DW{%6e(VosA-m254=^*~_NGR;^@5n>a;$t0$J3s;be28X<^9E-(agr%DD$Jy{Jrtxt{gTk>ZHiyVc1KoBi7%=k z%m9n}f9;?l==5~sV!sv~ad|-ON;*wlCTkz5;Bo-@AZ2vbo=6?U3YcZ$ZXI=arC`i8d{{K@8q?9gZKm9`x|LxaNJAS|z;N)<9x*yJ1Zkdgd{257S$B1ee1cqVkr}(fmDAg z){6vE8{bc7>btZ4Q(=)US-`2rbB?Q8ac~3lbl4nPio*C-%7EyJd+@&eKTMgb#k|p! zlK?ev7jLypykFP$;qf8NR*HRC1a5k}(kEoHI#12)=mF53u_YNPk{ zF0D!5q}3ZXmXt3Y4ip6+v{4X6xIL92?>q_~Kufa|9aSzr9I6pD&I{;d&-{~#14m+i zKo%N1k>#DZ|Mmo4M#}0N8Eomg!g>G0u?@KhlBw*FL6mB22uae1C=SxEUG{ZK4pu?#w4>&m=)Lxw4{(L$#Zz~oC33XS z89WR<@;uF%Lw`s};UPKk$uM<>&6GZ+sDVGUnwg9wiX z#EGyuSey~0SV6Aba3VvfRm5L+aMibe*g82qxOTGdh>Z?Pk&N2eyeWodn@c03%e%{X zp@Mw!4CGft{L!eJfn?ssy`c}c&GNdw7!ceo()kOagQ-7|f=IOCc1)gb`i9ymNA~|f zR{q=4o27xfj*H)&2G!1v!vu@<^ShLe*Ih!~Xvv2-e?59zlEUp@XMc`kHL=HO=WfV}*dUT7Cuo-2e$ z(HZ-r1UwAceS90KFilg%Hc3m4W+?n$&VH8J&VN69cbM%qYONpMXEd@>Y3%M>4q2kF zSUwH=|GjKbLYjBpUCcI2iMd2ClGfl0TkD`HHTWy##XR|Uav#1cv;a-XBABwPsZfgh z*Rsruuqb+isn|yVJx_cJKOPEYg*)0M$`W0*YoutKMw)`TQk;9Ns_~w^jBM5>FR%8^ zW=|PaMc*Q2`x`dcfCKfGl~U|O3?*y9Y}nf}6Kr52z@bQUxsjk=0BMb2`F;4vmpf4K zRGfrDm%ihTn{#GS-KmbG6ra5uO%7p7S+>YYjjn?2Vr|;4ORZ%F&k1uej~c|f(}eF6 z-cA|a;g+`DDS%eF-M3)yVOI$a)4nGf5*TL=7bVXm8va^9@rxn520oVVWyo?le9@jxPi+R`Oxx`lmi*q**IX zGzNFFaNVjU%P~1ltj!{L{4$~osKjpVJ3Cb~345g?BKFg_9mJ`q?j(kY{JaoPClW&* zR{}I5Sk)T`ts^HA0>mu$FeT6!L3ie*MeQt}vIy{Eh@IAn8AgKbEo&Mhm2qh&PdDuw z{Ue6Z)tT>Bc4~B;S*u#ZBLz`AK=WuvLTF4b{l>xSQn0wA?tyzZi-;pnM4ggW;6qk2 z*Ol&L<)lOw`zBc`AVDrz-#8I)M`!Dav-v)SaVUfMBM4?>K>ik77g0*x8rl$Jpp8MF z*2-ka8{PyS?9QV-0%%bjNbPKiZ#3JlOaE;r_kQkT2+R!I=)lBMWhZe?2paa~KU3E9XQI(Y$iC`NDy~!Egea{-{lOI&J??n6N)!bc|GiV#P^O@U`=_DuerO zPag3l97bNZ^A22vw(K0$OU1TFbX-r5*;jD+{_qPgcK6=C@vy<>OjfJz5RVeoMN+QY z_sE_0%mMjzM-3{VoB)V&y5Ve(Ky`kFoC03sRvr@5Rj%y+<5_ukcKpr=e{F8iIfzW2eDtj`6Fp5KKi)QN0h3CaY5=&IT-g_cv zPc_6ZK{q0uaRXWa(MbhTj$jbqPHhOU2UVpMdI*{PDuu4wVG~0X?J9Qd+(U-O&kSC^ zu;Zwq@0|UA)lm6-6P2v`Mf6m@j;wECHE0ZY0B)!5CL9h)~u@L*W0C z#Q-ka;m`1={*?!f+*kHCzG+hHX%p9M!Ht%S3*N}&#QtVN)4Kf<5kr0PS5kxt8jzb@ zIusG4;QZar$siPM4Ki@jaoj-Cm4G}*oi|ecmSz81Q`V(VobywOvYGDy;lwZ%^Y7uQ^+8+a}Pfy3BXqPn0%Z_e<=w@@= znlDAG6e*!MMfGkjvqJnoJDHW=F1==d?);}d_W{G}%w%J7`;!)jJ7lah8f+BgG1pa# z!rd?v02b0_+gAf4IJD-C*kBEfZetWcG8%D3%E{vsUC82-4J3K*F%?@EEf60vH181# zV?b)mB6Q#rT*H108A0;g@%0!)wCF0LC6F^E$`7M8KDG)&vkEPLV{&p4g+;egs_MNq|9kRf^A&c6eT z#KbomE>Nokk$EKlXm`kYB#aKIx|4Nx){WsxkW_40Z64&i)z&F=>WUB$do-lJ{^M})}-p$vR}ynN`9GLTYAO9g523A&+4{QvW;=RmnX`}v)-|GQp7 z{fSD@D~%&TuRI&Z1CT+ecgA*ardLu$TExGKUM(1Iq&&fmM(x43*eo52iEfYCkQff1y8k4spx8pF&ctn~YA@Z~a|8LFyIqMlL{kZg8 zX^)-$vHu)cV@R0a&ju$1`{!o*1a9qTXickMiKRI>@sp&9KN)78w2>=KUP9K zbwkmp19Z8%Ds{s-io#Tc4O5X2CHjwxkFrds8$Kx+lkRfNR0_t4lMe(YkH?2KMVRRb z30??ysYg#Cci!+VX^tMX4US9oQa3`J zptmH9w)mpHF^e=&TZEGL&V7{HXWwVwpPHYeqLrpm7-k)mfkyiZ%??qVSmK|$JKDKk%r5HqDS*8$?=Jjy(RU1&tU zBaDqAVHIbPr8QBhqi;yi(x|DggP?J%yiCP8CoPSyiBS0*C)F7VPo+j>#Cwog)xMOk z0Lw5oty)r#W8Us*?I^WZ5Q}-?s(B=QNxy_Eyoq&Fg4C%p^Q=INq<&zU346!!;JKQz z{=iXOAsDzHvVQKj_X#7+2PpF<@TW$HckH{fVx(tccs?AfeKBI)MB`%3!b8k35hfK+ zCN$!4D8YcIU|iorIWht|GbR;9q`km_K2Dow#$Cm!V++uThy?ZQ*6Z)dVPgfB59dQsexWZDjs=3l7^t z3m3zkCBH+m*7*?sw};y)sD7$<+wjChsnL9gd++>D>2z8LNn>oAN8;FGID4t%dMi@^ zj)my}>@cxxXGhIP;C!Uxw(>`KnEEdS3f%EqNls!KYvPb!Q+RAx4 z8*jePE`49L82T&Ob6vjmHPSb2()mmQ7>T_GS4Np#%8r6tg2Wsq7=N;Q7 z>gIrr1>6Z}k6CWWih-mUU{7xPbaM~^iZ2<;*j7<9MQ<03wLRr+!;6ch+TI98@d(IX jHB^4dj^_g^U$zCHorAhP?dcBQ&5Ipvfn&T`Wi|UfxmA|f literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/approagency/drug/DrugApp.kt b/app/src/main/java/com/approagency/drug/DrugApp.kt index 90d424e..f3c5812 100644 --- a/app/src/main/java/com/approagency/drug/DrugApp.kt +++ b/app/src/main/java/com/approagency/drug/DrugApp.kt @@ -1,7 +1,10 @@ package com.approagency.drug import android.app.Application +import com.approagency.drug.data.local.database.LabDatabase import com.approagency.drug.di.appModule +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch import org.koin.android.ext.koin.androidContext import org.koin.core.context.startKoin @@ -13,5 +16,10 @@ class DrugApp : Application(){ modules(appModule) printLogger() } + + // Preload database (optional, for faster access) + GlobalScope.launch { + LabDatabase.getInstance(this@DrugApp) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/data/local/dao/TestGroupDao.kt b/app/src/main/java/com/approagency/drug/data/local/dao/TestGroupDao.kt new file mode 100644 index 0000000..a39bdd7 --- /dev/null +++ b/app/src/main/java/com/approagency/drug/data/local/dao/TestGroupDao.kt @@ -0,0 +1,32 @@ +package com.approagency.drug.data.local.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.approagency.drug.data.local.entities.TestGroupEntity +import kotlinx.coroutines.flow.Flow + +@Dao +interface TestGroupDao { + @Query("SELECT * FROM testGroup ORDER BY Id") + fun getAllGroups(): Flow> + + @Query("SELECT * FROM testGroup WHERE Id = :groupId") + suspend fun getGroupById(groupId: Int): TestGroupEntity? + + @Query("SELECT * FROM testGroup WHERE Isparent = '1'") + fun getParentGroups(): Flow> + + @Query("SELECT * FROM testGroup WHERE Isparent = '0'") + fun getChildGroups(): Flow> + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertGroup(group: TestGroupEntity) + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertAllGroups(groups: List) + + @Query("DELETE FROM testGroup") + suspend fun deleteAllGroups() +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/data/local/dao/TestItemDao.kt b/app/src/main/java/com/approagency/drug/data/local/dao/TestItemDao.kt new file mode 100644 index 0000000..5740cbd --- /dev/null +++ b/app/src/main/java/com/approagency/drug/data/local/dao/TestItemDao.kt @@ -0,0 +1,36 @@ +package com.approagency.drug.data.local.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.approagency.drug.data.local.entities.TestItemEntity +import kotlinx.coroutines.flow.Flow + +@Dao +interface TestItemDao { + @Query("SELECT * FROM testItem ORDER BY Id") + fun getAllItems(): Flow> + + @Query("SELECT * FROM testItem WHERE Group_Id = :groupId ORDER BY Id") + fun getItemsByGroupId(groupId: Int): Flow> + + @Query("SELECT * FROM testItem WHERE Id = :itemId") + suspend fun getItemById(itemId: Int): TestItemEntity? + + @Query(""" + SELECT ti.* FROM testItem ti + INNER JOIN testGroup tg ON ti.Group_Id = tg.Id + WHERE tg.Isparent = '0' AND ti.Title LIKE '%' || :searchQuery || '%' + """) + fun searchTestItems(searchQuery: String): Flow> + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertItem(item: TestItemEntity) + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertAllItems(items: List) + + @Query("DELETE FROM testItem") + suspend fun deleteAllItems() +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/data/local/database/LabDatabase.kt b/app/src/main/java/com/approagency/drug/data/local/database/LabDatabase.kt new file mode 100644 index 0000000..f7f30df --- /dev/null +++ b/app/src/main/java/com/approagency/drug/data/local/database/LabDatabase.kt @@ -0,0 +1,43 @@ +package com.approagency.drug.data.local.database + +import android.content.Context +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import com.approagency.drug.data.local.dao.TestGroupDao +import com.approagency.drug.data.local.dao.TestItemDao +import com.approagency.drug.data.local.entities.TestGroupEntity +import com.approagency.drug.data.local.entities.TestItemEntity + +@Database( + entities = [ + TestGroupEntity::class, + TestItemEntity::class + ], + version = 1, + exportSchema = false +) +abstract class LabDatabase : RoomDatabase() { + abstract fun testGroupDao(): TestGroupDao + abstract fun testItemDao(): TestItemDao + + companion object { + @Volatile + private var INSTANCE: LabDatabase? = null + + fun getInstance(context: Context): LabDatabase { + return INSTANCE ?: synchronized(this) { + val instance = Room.databaseBuilder( + context.applicationContext, + LabDatabase::class.java, + "lab_tests.db" // This will use your existing database + ) + .createFromAsset("lab_tests.db") // IMPORTANT: Copy from assets + .fallbackToDestructiveMigration() // For development only + .build() + INSTANCE = instance + instance + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/data/local/entities/TestGroupEntity.kt b/app/src/main/java/com/approagency/drug/data/local/entities/TestGroupEntity.kt new file mode 100644 index 0000000..a256e47 --- /dev/null +++ b/app/src/main/java/com/approagency/drug/data/local/entities/TestGroupEntity.kt @@ -0,0 +1,24 @@ +package com.approagency.drug.data.local.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "testGroup") +data class TestGroupEntity( + @PrimaryKey + @ColumnInfo(name = "Id") + val id: Int, + + @ColumnInfo(name = "Ename") + val ename: String?, + + @ColumnInfo(name = "Fname") + val fname: String?, + + @ColumnInfo(name = "Detail") + val detail: String?, + + @ColumnInfo(name = "Isparent") + val isParent: String? +) \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/data/local/entities/TestItemEntity.kt b/app/src/main/java/com/approagency/drug/data/local/entities/TestItemEntity.kt new file mode 100644 index 0000000..e4d814f --- /dev/null +++ b/app/src/main/java/com/approagency/drug/data/local/entities/TestItemEntity.kt @@ -0,0 +1,37 @@ +package com.approagency.drug.data.local.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.Index +import androidx.room.PrimaryKey + +@Entity( + tableName = "testItem", +// foreignKeys = [ +// ForeignKey( +// entity = TestGroupEntity::class, +// parentColumns = ["Id"], +// childColumns = ["Group_Id"], +// onDelete = ForeignKey.CASCADE +// ) +// ], + indices = [Index(value = ["Group_Id"])] +) +data class TestItemEntity( + @PrimaryKey + @ColumnInfo(name = "Id") + val id: Int, + + @ColumnInfo(name = "Group_Id") + val groupId: Int, + + @ColumnInfo(name = "Title") + val title: String?, + + @ColumnInfo(name = "Normal_Value") + val normalValue: String?, + + @ColumnInfo(name = "Detail") + val detail: String? +) \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/data/repository/LabRepositoryImpl.kt b/app/src/main/java/com/approagency/drug/data/repository/LabRepositoryImpl.kt new file mode 100644 index 0000000..db5fd32 --- /dev/null +++ b/app/src/main/java/com/approagency/drug/data/repository/LabRepositoryImpl.kt @@ -0,0 +1,24 @@ +package com.approagency.drug.data.repository + +import com.approagency.drug.data.local.dao.TestGroupDao +import com.approagency.drug.data.local.dao.TestItemDao +import com.approagency.drug.data.local.entities.TestGroupEntity +import com.approagency.drug.data.local.entities.TestItemEntity +import kotlinx.coroutines.flow.Flow + +class LabRepositoryImpl ( + private val testGroupDao: TestGroupDao, + private val testItemDao: TestItemDao +) { + // Test Group Operations + fun getAllGroups(): Flow> = testGroupDao.getAllGroups() + fun getParentGroups(): Flow> = testGroupDao.getParentGroups() + fun getChildGroups(): Flow> = testGroupDao.getChildGroups() + suspend fun getGroupById(groupId: Int): TestGroupEntity? = testGroupDao.getGroupById(groupId) + + // Test Item Operations + fun getAllItems(): Flow> = testItemDao.getAllItems() + fun getItemsByGroupId(groupId: Int): Flow> = testItemDao.getItemsByGroupId(groupId) + suspend fun getItemById(itemId: Int): TestItemEntity? = testItemDao.getItemById(itemId) + fun searchTestItems(query: String): Flow> = testItemDao.searchTestItems(query) +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/di/AppModule.kt b/app/src/main/java/com/approagency/drug/di/AppModule.kt index 0399a9e..e4fb0bf 100644 --- a/app/src/main/java/com/approagency/drug/di/AppModule.kt +++ b/app/src/main/java/com/approagency/drug/di/AppModule.kt @@ -2,20 +2,32 @@ package com.approagency.drug.di import android.app.Application +import com.approagency.drug.data.local.database.LabDatabase import com.approagency.drug.data.remote.DrugApiService import com.approagency.drug.data.repository.DrugRepositoryImpl +import com.approagency.drug.data.repository.LabRepositoryImpl import com.approagency.drug.domain.repository.DrugRepository import com.approagency.drug.domain.usecase.GetDarmanUseCase import com.approagency.drug.domain.usecase.GetDrugDetailUseCase import com.approagency.drug.domain.usecase.GetDrugSearchUseCase +import com.approagency.drug.domain.usecase.GetTestGroupUseCase +import com.approagency.drug.domain.usecase.GetTestItemByGroupId import com.approagency.drug.presentation.viewModel.HomeViewModel +import com.approagency.drug.presentation.viewModel.LabViewModel import com.approagency.drug.utils.Config +import org.koin.android.ext.koin.androidContext import org.koin.core.module.dsl.viewModel import org.koin.dsl.module import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory val appModule= module { + + single { LabDatabase.getInstance(androidContext()) } + + single { get().testGroupDao() } + single { get().testItemDao() } + single { Retrofit.Builder() .baseUrl(Config.BASE_URL) @@ -47,8 +59,21 @@ val appModule= module { GetDarmanUseCase(get()) } + single { + GetTestGroupUseCase(get()) + } + + single { + GetTestItemByGroupId(get()) + } + + single { LabRepositoryImpl(get(), get()) } //view model viewModel { HomeViewModel(get() , get() , get()) } + + viewModel { + LabViewModel(get() , get()) + } } \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/domain/model/TestGroup.kt b/app/src/main/java/com/approagency/drug/domain/model/TestGroup.kt new file mode 100644 index 0000000..62f23f8 --- /dev/null +++ b/app/src/main/java/com/approagency/drug/domain/model/TestGroup.kt @@ -0,0 +1,11 @@ +package com.approagency.drug.domain.model + +data class TestGroup( + val id: Int, + val ename: String?, + val fname: String?, + val detail: String?, + val isParent: Boolean +) + + diff --git a/app/src/main/java/com/approagency/drug/domain/model/TestItem.kt b/app/src/main/java/com/approagency/drug/domain/model/TestItem.kt new file mode 100644 index 0000000..db680fa --- /dev/null +++ b/app/src/main/java/com/approagency/drug/domain/model/TestItem.kt @@ -0,0 +1,9 @@ +package com.approagency.drug.domain.model + +data class TestItem( + val id: Int, + val groupId: Int, + val title: String?, + val normalValue: String?, + val detail: String? +) diff --git a/app/src/main/java/com/approagency/drug/domain/usecase/GetTestGroupUseCase.kt b/app/src/main/java/com/approagency/drug/domain/usecase/GetTestGroupUseCase.kt new file mode 100644 index 0000000..8944e98 --- /dev/null +++ b/app/src/main/java/com/approagency/drug/domain/usecase/GetTestGroupUseCase.kt @@ -0,0 +1,24 @@ +package com.approagency.drug.domain.usecase + +import com.approagency.drug.data.repository.LabRepositoryImpl +import com.approagency.drug.domain.model.TestGroup +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.map + +class GetTestGroupUseCase ( + private val repository: LabRepositoryImpl +) { + operator fun invoke(): Flow> { + return repository.getAllGroups().map { entities -> + entities.map { entity -> + TestGroup( + id = entity.id, + ename = entity.ename, + fname = entity.fname, + detail = entity.detail, + isParent = entity.isParent == "1" + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/domain/usecase/GetTestItemByGroupId.kt b/app/src/main/java/com/approagency/drug/domain/usecase/GetTestItemByGroupId.kt new file mode 100644 index 0000000..f2b459e --- /dev/null +++ b/app/src/main/java/com/approagency/drug/domain/usecase/GetTestItemByGroupId.kt @@ -0,0 +1,26 @@ +package com.approagency.drug.domain.usecase + +import com.approagency.drug.data.local.entities.TestItemEntity +import com.approagency.drug.data.repository.LabRepositoryImpl +import com.approagency.drug.domain.model.TestItem +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.map + +class GetTestItemByGroupId ( + private val repository: LabRepositoryImpl +) { + operator fun invoke(id:Int): Flow> { + return repository.getItemsByGroupId(groupId = id).map { + entities -> entities.map { + entity -> + TestItem( + id = entity.id, + groupId = entity.groupId, + title = entity.title, + normalValue = entity.normalValue, + detail = entity.detail, + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/presentation/screens/LabScreen.kt b/app/src/main/java/com/approagency/drug/presentation/screens/LabScreen.kt index d360b0a..9db7956 100644 --- a/app/src/main/java/com/approagency/drug/presentation/screens/LabScreen.kt +++ b/app/src/main/java/com/approagency/drug/presentation/screens/LabScreen.kt @@ -1,12 +1,185 @@ package com.approagency.drug.presentation.screens +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import com.approagency.drug.presentation.viewModel.HomeViewModel +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDirection +import androidx.compose.ui.unit.dp +import com.approagency.drug.domain.model.TestGroup +import com.approagency.drug.presentation.common.CustomBox +import com.approagency.drug.presentation.common.CustomModalDialog +import com.approagency.drug.presentation.common.Loading +import com.approagency.drug.presentation.common.PrimaryButton +import com.approagency.drug.presentation.viewModel.LabViewModel +import com.vada.caller.ui.theme.dime +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.count import org.koin.androidx.compose.koinViewModel @Composable fun LabScreen( - modifier: Modifier, - viewModel: HomeViewModel = koinViewModel() -){} \ No newline at end of file + modifier: Modifier = Modifier, + viewModel: LabViewModel = koinViewModel() +) { + val testGroupsState by viewModel.testGroups.collectAsState() + val isLoading = testGroupsState.isLoading + val error = testGroupsState.error + val testGroups = testGroupsState.testGroup + + Column(modifier = modifier.fillMaxSize()) { + if (isLoading) { + CustomModalDialog( + onDismissRequest = { /* maybe disable dismiss while loading */ }, + content = { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Loading(color = MaterialTheme.colorScheme.primary) + Spacer(modifier = Modifier.height(MaterialTheme.dime.sm)) + Text("در حال جستجو..." , textAlign = TextAlign.Right) + } + }, +// modifier = Modifier +// .matchParentSize() +// .background(MaterialTheme.colorScheme.background.copy(alpha = 0.5f)) + ) + } + else if(error != null){ + CustomBox( + child = { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.padding(MaterialTheme.dime.md) + ) { + Text( + text = "خطا در دریافت اطلاعات", + style = MaterialTheme.typography.bodyLarge, + color = MaterialTheme.colorScheme.error + ) + Text( + text = error, + style = MaterialTheme.typography.bodySmall, + modifier = Modifier.padding(vertical = 8.dp) + ) + PrimaryButton( + text = "تلاش مجدد", + height = 40, + isLoading = false, + onClick = { viewModel.loadTestGroups() } + ) + } + } + ) + } + else if (testGroups != null){ + TestGroupsList( + testGroupsFlow = testGroups, + viewModel = viewModel + ) + } else { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + Text("هیچ داده‌ای موجود نیست") + } + } + + } +} + +@Composable +fun TestGroupsList( + testGroupsFlow: Flow>, + viewModel: LabViewModel +) { + val testGroups by testGroupsFlow.collectAsState(initial = emptyList()) + + if (testGroups.isEmpty()) { + CustomModalDialog( + onDismissRequest = { /* maybe disable dismiss while loading */ }, + content = { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Loading(color = MaterialTheme.colorScheme.primary) + Spacer(modifier = Modifier.height(MaterialTheme.dime.sm)) + Text("در حال جستجو..." , textAlign = TextAlign.Right) + } + }, +// modifier = Modifier +// .matchParentSize() +// .background(MaterialTheme.colorScheme.background.copy(alpha = 0.5f)) + ) + } else { + LazyColumn( + modifier = Modifier.fillMaxSize() + ) { + items(testGroups) { group -> + TestGroupItem( + group = group, + onClick = { + // Navigate to test items of this group +// viewModel.loadTestItemsByGroup(group.id) + } + ) + } + } + } +} + +@Composable +fun TestGroupItem( + group: TestGroup, + onClick: () -> Unit +) { + CustomBox ( + modifier = Modifier + .padding(bottom = MaterialTheme.dime.sm) + .clickable( + indication = null, + interactionSource = remember { MutableInteractionSource() } + ) { + onClick() + }, + ) { + Column ( + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start + ) { + Text( + text = group.fname ?: group.ename ?: "بدون نام", + style = MaterialTheme.typography.titleMedium.copy( + textAlign = TextAlign.Right, + textDirection = TextDirection.Rtl + ), + modifier = Modifier.padding(vertical = MaterialTheme.dime.xs) + ) + group.detail?.let { + Text( + text = it, + style = MaterialTheme.typography.bodySmall.copy( + textAlign = TextAlign.Right , + textDirection = TextDirection.Rtl + ), + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(horizontal = MaterialTheme.dime.lg) + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/approagency/drug/presentation/screens/RootScreen.kt b/app/src/main/java/com/approagency/drug/presentation/screens/RootScreen.kt index fb82de9..992c7de 100644 --- a/app/src/main/java/com/approagency/drug/presentation/screens/RootScreen.kt +++ b/app/src/main/java/com/approagency/drug/presentation/screens/RootScreen.kt @@ -80,7 +80,7 @@ fun RootScreen(navHostController: NavHostController, modifier: Modifier){ containerColor = MaterialTheme.colorScheme.surface, modifier = Modifier .fillMaxWidth() - .height(110.dp).padding(bottom = 2.dp).clip(MaterialTheme.shapes.extraLarge), // 👈 کوچیک‌تر از حالت پیش‌فرض + .height(110.dp).padding(bottom = 2.dp).clip(MaterialTheme.shapes.extraLarge), tonalElevation = 8.dp, // subtle shadow windowInsets = WindowInsets.navigationBars .only(WindowInsetsSides.Bottom) @@ -114,7 +114,7 @@ fun RootScreen(navHostController: NavHostController, modifier: Modifier){ ) }, - alwaysShowLabel = true // 👈 فقط وقتی select شد label نشون بده + alwaysShowLabel = true ) } } diff --git a/app/src/main/java/com/approagency/drug/presentation/viewModel/LabViewModel.kt b/app/src/main/java/com/approagency/drug/presentation/viewModel/LabViewModel.kt new file mode 100644 index 0000000..0e1cece --- /dev/null +++ b/app/src/main/java/com/approagency/drug/presentation/viewModel/LabViewModel.kt @@ -0,0 +1,94 @@ +package com.approagency.drug.presentation.viewModel + +import android.net.http.HttpException +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.approagency.drug.data.dto.DrugListResponse +import com.approagency.drug.data.dto.DrugModels +import com.approagency.drug.domain.model.TestGroup +import com.approagency.drug.domain.model.TestItem +import com.approagency.drug.domain.usecase.GetTestGroupUseCase +import com.approagency.drug.domain.usecase.GetTestItemByGroupId +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +class LabViewModel ( + private val getTestGroupUseCase: GetTestGroupUseCase, + private val getTestItemByGroupId: GetTestItemByGroupId +) : ViewModel(){ + private val _testGroups = MutableStateFlow(TestGroupItem()) + val testGroups: StateFlow = _testGroups.asStateFlow() + + private val _testItems = MutableStateFlow(TestItemState()) + val testItems: StateFlow = _testItems.asStateFlow() + + init { + loadTestGroups() + } + + fun loadTestGroups(){ + _testGroups.update { + it.copy( + isLoading = true + ) + } + viewModelScope.launch { + try { + val result = getTestGroupUseCase.invoke(); + _testGroups.update { + it.copy( + isLoading = false, + testGroup = result, + ) + } + } catch (e:HttpException){ + handleError(e.message) + } + + } + } + + fun getItemByGroupId(id:Int){ + _testItems.update { it.copy(isLoading = true) } + viewModelScope.launch { + try { + val result = getTestItemByGroupId.invoke(id); + _testItems.update { + it.copy( + isLoading = false, + testItem = result + ) + } + } catch (e:HttpException){ + handleError(e.message) + } + } + } + private suspend fun handleError(message: String?) { + _testGroups.update { + it.copy( + isLoading = false, + testGroup = null, + error = message + ) + } + } + +} + +data class TestGroupItem( + val isLoading: Boolean = false, + val testGroup: Flow>? = null, + val error:String? = null +) + +data class TestItemState( + val isLoading: Boolean = false, + val testItem: Flow>? = null, + val error:String? = null +) + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ca186a2..fbbb379 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] agp = "8.13.0" -kotlin = "2.2.10" +kotlin = "2.0.21" coreKtx = "1.10.1" junit = "4.13.2" junitVersion = "1.1.5" @@ -8,16 +8,16 @@ espressoCore = "3.5.1" lifecycleRuntimeKtx = "2.6.1" activityCompose = "1.8.0" composeBom = "2024.09.00" - -retrofit = "3.0.0" -okhttp = "5.1.0" +ksp = "2.0.21-1.0.27" +retrofit = "2.11.0" +okhttp = "4.12.0" gson = "2.13.1" coil = "2.7.0" location = "21.3.0" koinAndroid = "4.1.0" koinAndroidxCompose = "4.1.0" lifecycleViewmodelKtx = "2.9.4" - +room = "2.6.1" navigationCompose = "2.8.5" material3 = "1.4.0" @@ -51,8 +51,14 @@ location-services = { group = "com.google.android.gms", name = "play-services-lo androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" } androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationCompose" } androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" } + + +androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } +androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } +androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } + [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } - +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } \ No newline at end of file