From 33912d2cf7408f7b9cd177ea1bf1dc1d530ce027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manu=20Mu=C3=B1oz?= Date: Mon, 9 Sep 2024 11:25:12 +0200 Subject: [PATCH] fix: [ANDROAPP-5394] responsive home (#296) * fix: [ANDROAPP-5394] responsive home * snapshot test --- .../screens/cards/ExpandableListCardScreen.kt | 5 +++-- .../ui/designsystem/component/BaseCard.kt | 12 +++++++---- .../ui/designsystem/component/ListCard.kt | 19 +++++++++++++----- .../mobile/ui/designsystem/component/Text.kt | 2 +- ...temColumnSnapshotTest_launchAvatarTest.png | Bin 130 -> 33643 bytes 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/common/src/commonMain/kotlin/org/hisp/dhis/common/screens/cards/ExpandableListCardScreen.kt b/common/src/commonMain/kotlin/org/hisp/dhis/common/screens/cards/ExpandableListCardScreen.kt index e4afe9359..082575718 100644 --- a/common/src/commonMain/kotlin/org/hisp/dhis/common/screens/cards/ExpandableListCardScreen.kt +++ b/common/src/commonMain/kotlin/org/hisp/dhis/common/screens/cards/ExpandableListCardScreen.kt @@ -8,7 +8,7 @@ import androidx.compose.material.icons.outlined.SyncDisabled import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import org.hisp.dhis.common.screens.previews.lorem_medium +import org.hisp.dhis.common.screens.previews.lorem import org.hisp.dhis.mobile.ui.designsystem.component.AdditionalInfoItem import org.hisp.dhis.mobile.ui.designsystem.component.Avatar import org.hisp.dhis.mobile.ui.designsystem.component.AvatarStyleData @@ -51,8 +51,9 @@ fun ExpandableListCardScreen() { } add( AdditionalInfoItem( - value = lorem_medium, + value = lorem, color = TextColor.OnSurfaceLight, + truncate = false, ), ) } diff --git a/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/BaseCard.kt b/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/BaseCard.kt index 0561ab189..2ad2d587a 100644 --- a/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/BaseCard.kt +++ b/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/BaseCard.kt @@ -105,7 +105,8 @@ fun BaseCard( fun ExpandableItemColumn( modifier: Modifier = Modifier, itemList: List, - itemSpacing: Dp = 16.dp, + itemSpacing: Dp = Spacing16, + contentPadding: Dp = Spacing16, itemLayout: @Composable (T, itemVerticalPadding: Dp, onSizeChanged: (IntSize) -> Unit) -> Unit, ) { val density = LocalDensity.current @@ -123,8 +124,11 @@ fun ExpandableItemColumn( val itemVerticalPadding by remember(childrenSize) { derivedStateOf { val value = if (childrenSize.size == itemCount) { - var availableHeight = - parentSize - childrenSize.values.sum() - with(density) { itemSpacing.toPx() * (itemCount - 1) } + var availableHeight = parentSize - + childrenSize.values.sum() - + with(density) { + itemSpacing.toPx() * (itemCount - 1) + contentPadding.toPx() * 2 + } if (itemCount == 1) availableHeight /= 4 with(density) { (availableHeight / (2 * itemCount)).toDp() }.takeIf { it >= 16.dp } ?: 16.dp @@ -143,7 +147,7 @@ fun ExpandableItemColumn( } }, verticalArrangement = spacedBy(itemSpacing), - contentPadding = PaddingValues(Spacing16), + contentPadding = PaddingValues(contentPadding), ) { itemList.forEachIndexed { index, item -> item { diff --git a/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/ListCard.kt b/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/ListCard.kt index 4e840ce20..fa4e3e839 100644 --- a/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/ListCard.kt +++ b/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/ListCard.kt @@ -119,7 +119,9 @@ fun ListCard( ) listCardState.lastUpdateBasedOnLoading()?.let { ListCardLastUpdated(it) } } - listCardState.descriptionBasedOnLoading()?.let { ListCardDescription(it, Modifier) } + listCardState.descriptionBasedOnLoading()?.let { + ListCardDescription(it, Modifier.padding(bottom = Spacing.Spacing8)) + } AdditionalInfoColumn( additionalInfoColumnState = listCardState.additionalInfoColumnState, @@ -256,7 +258,7 @@ fun VerticalInfoListCard( Column( modifier = Modifier.wrapContentHeight(), horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = spacedBy(Spacing.Spacing4), + verticalArrangement = spacedBy(Spacing4), ) { ListCardTitle( title = listCardState.title, @@ -264,7 +266,7 @@ fun VerticalInfoListCard( .padding(bottom = if (listCardState.description?.text != null) Spacing.Spacing0 else Spacing4), ) listCardState.descriptionBasedOnLoading()?.let { - ListCardDescription(it, Modifier) + ListCardDescription(it) } listCardState.lastUpdateBasedOnLoading()?.let { ListCardLastUpdated(it) @@ -673,8 +675,14 @@ fun ProvideKeyValueItem( text = finalAnnotatedString, textAlign = TextAlign.Start, style = MaterialTheme.typography.bodyMedium, - overflow = TextOverflow.Ellipsis, - maxLines = 2, + overflow = when { + additionalInfoItem.truncate -> TextOverflow.Ellipsis + else -> TextOverflow.Clip + }, + maxLines = when { + additionalInfoItem.truncate -> 2 + else -> Int.MAX_VALUE + }, modifier = Modifier, ) @@ -811,6 +819,7 @@ data class AdditionalInfoItem( val value: String, val isConstantItem: Boolean = false, val color: Color? = null, + val truncate: Boolean = true, val action: (() -> Unit)? = null, ) diff --git a/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/Text.kt b/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/Text.kt index 9e07b66af..71269f396 100644 --- a/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/Text.kt +++ b/designsystem/src/commonMain/kotlin/org/hisp/dhis/mobile/ui/designsystem/component/Text.kt @@ -151,7 +151,7 @@ internal fun ListCardDescription( description.text, color = description.color ?: TextColor.OnSurface, style = description.style ?: MaterialTheme.typography.bodyMedium, - modifier = modifier.padding(bottom = Spacing.Spacing8), + modifier = modifier, ) } } diff --git a/designsystem/src/test/snapshots/images/org.hisp.dhis.mobile.ui.designsystem_ExpandableItemColumnSnapshotTest_launchAvatarTest.png b/designsystem/src/test/snapshots/images/org.hisp.dhis.mobile.ui.designsystem_ExpandableItemColumnSnapshotTest_launchAvatarTest.png index 32085bdc374aff962ede1e16e496fecac32cea58..82d3bcdc181b005eb639f0c121b7d3f42dffac8f 100644 GIT binary patch literal 33643 zcmc$_Wmr{R7dEPZ(jkb5bZr_0Hr>spyF;2ycc&tVA`+V}K|-XvL8Kct(xr4GwP`pD z-&ddK{dunI`_ADXd#*L-n4{*s#vFHqs|~Pp`3R={d~@#bT{yv^kHuA-9T9TM=) z5)LvcT|xvS4l#Z&k@k9?O8MK~mprLTxv{{PZQpL%ey?OxQYJ{RJ2gL^WK#j&rC(Kq zX$7iv{hkKd)JyiG!Luiy=S_dge9DE2#*AcRsYK@fmgD>D`A1pQFuC0*+b=>SbV`?P zuQ0iONvgfQ8?_lK6YQc__39w50q>%EP%B)wF%^2iCa?Q{Ppt86EA9o72enG$^0T*P zIZ)9gqa;r?YNkTloQ4|h??It>5^|NutzWr*DV1SW@pn$sLLc_C4WcLNXlcNJLH)6l9 zn9D=<@tJfYCQ`_l9PD=muh4VU~6~>xyW= zi_d@1o%KfW?e1Yd!ItMrdcM1x#7BkV%l=3LjVcDI$%1q>Ctz$(%nvM|(iW48 z$3H9>{yPPV$|eeXC^-Es7Z&sa=Y_*?&hKeB+j1g)LB@P)0298dwpLF8G)qlb2u__T znf8aXSPpP!$y=uBr+)(Uu-^tm8>b{P@qtHx;bwc6odtEPn3Nok{3D*BZL#7PO>&8TX`eE-{v z?{eb&vpf)YNhtmjQf~YJ=c~?hGx<0v-rtXCj=I7P<5d}<4?_BBI7X=6MB9YHX*(WZ z7$sPJiCuXc7wVKZdHqA+2Lj59LE)s}RDgL{6f8>FO8BAOFYE^HF?P{*tdG!Pw zDH7RxeYjoqJ7bp#^}ir?si_#0@OSTI3r>YAY8-4-A(cLVbX#bi;NQ}q>qwkRfBS`V z_;oim*HI1_QuSL#M|pzs1I^qkSzePo=m)#7_1=(3rs;q@`KYwww@Cwl*++5i_Fu=U z1hcv2X?-r10J>3o9kb=-x85^WiBToCdkNkA_;)%5x2Zk#`l2A^V3zH7%wa2i2Sr=K z0o4|&DYP?LV04%Jyt(|2LCII<-C~S0%c2d|{e+TktBb6bbL;Dmw|LYpMGTn!y^G$` zm{ghd2XgR^T0!f6^Dzty2eaHKD?3vd=ZQn)E@s|+uXkvrps_aLcZ!^Yfy_eiDNt;P z*0kDPEtT!-pA_m55l~zOgp^(%MID^S!u(A8s$if9Prz>tzdAsp=1oA0TPty^xECvO ziAr?7MR@^69Yf!l=Bd!Of!TY6E$?qvN&OYSHrHpk!@u--X0jH8-`KM~;>+hZaHad&pUltKffZYqUb6^N1iKxZA3H*10!rM`T~D^vc=a#K z4lw(zdz)B)q&OXnNva&GQ0gFg_qJ))SdhB3vqA}Q!QUSKBLU2DAdok5d4A6%oSa~v zjTJ*zRPzPC7Z=KdQ3p2&ATG*ZAtX~G_{R@-b|lW}`_B})LQxKOhx95yZ9d%@;(`jz zvl1V}xzbO*ImrLfY{*&yC`0unj;OJo=Rj;>_qkyiew5N1xSZiy`4o2GwNZG1Z1b)_Pk*AJcW!W^a-T}|E^s9RbXA| z++}N{RsYuW8A%e7KTh|NKj-`>#v;nYq~`oAS>N|_25UwX%g?=XAA0VzEq^1|o~G-v zPVrFNyY}~Rc_(E3kGNVXBq~~cK@&=1!OEiTUc7V45wW}T1pdjJKp-|-8de3hROZOt zj3fBU_fLjme){!Y^)>(FLN;%~2Uq<%PtHIT-WIkY%e|-xojN_OUMIrN7uBz&;hqlV zS2>OdN;}GS(k-#BLE^s>Gs1<^^jL2-CP|(+yzf{3Zjw;_kh9B6OD1CHJ6rDym!l*h z;hV7*irSZdoC++RvW$B+19DPR$E+>pV62rf&e#`4N2=&63}5xhY)3CxY8!8^jSus8 zt|k%xt5)j4(}WB8O0tRYy$7?ZMSNpU zB`RO+)ve_J^>!mmy3Z2|FXI#s{2qOkP(}q5D_UPu$E>~hStq|`Yn<#qc}gi}ZI~sl zd|w5Zlm{Lg^Rc4Ob6bAp7V+z(q4Snv7{jCq?XP=1hNi4rP^S&i%+AFm8L-kIV7;ZR zm5-=KI5v~@9$buCARN;EIzFIe_R4`B^I`BPTSUE0VuwyoRr{*%o8BlG6U2p&wi7b& zt}xo5d#%5gg)9QE_CtT7bT?B9IPV`bOQ$@2XeLz+Dpyxg3`R#IPcr;SFLai#JbhRk zl|f#9MpUZC8Q||55;<$aMo%)ThU$=RQ+st3i6p9*oygkPxs2c)MnU_R@%*92SvvZs zDt(h~L;74TVM|2FZn>9h_}yfIzeoo^=sdZsHlS`<6qKDQVTHP1T9*Ay=Snf43_B=M z7P^ql#oMg`%-7GJQ7t*A6?U8JR?}4f zSv@j>o>&o@WXK5*^5&QFmF!bM;{mHD&IQ$?#!q2yeX6Quzyp*%XHZ z1`eUmGrp1Eubw57=#)%ye<0xMZgWn=hQynyeEtFclRCxBbI{dJwDdr0k=)dheoLR5 zE%n_IC$BmS3{~jQ4i+0N`@gr7yOcma!@BbbQ7rN%qk7`dQTxa!^2`6a-7}iO zdKbb4`c%qa9kE?FyHhEKj6qK~w^fhZTlf#Z4?6otjmx>O+5Jo3pB>_KhOigKvEchYE!A~$iGI7Y^?yT&(h%x7r@BP=jC{G8 zx7dX^4?S|0w36M~6-mhdqL=tV#ZS!*9EpEo7ELzgV0!#;Q8>UMIyyZd-PvsP0HfaA z&{(XI4#`qq=s{SEz3~gCpjMKU*^Mj;iXw&yhosub-Z(AvkaYi%I0UK( zoxVF*z?H|JpI7!@YXbO*>Q-(X1tx-@EXJ24&yUGj+^JUAxFasF6B!4QCE4k&FhNF*_-8CCTGX;BEk*3Gu+nsu>ab? znMtXN+gSV5hD|7T`)9!e->9kJq|vY250_dX=NBR4ps^0*!fV8%wVR>?L@YHwY?H+; z_fJ|<&W#BEI^Y~*^ZqnJfaLP;dGjr1Z6m<)KK|RhuPl=DwS1|tkUyFBv5r9ETEUzx z>yQn$Vp?<>(OLb=&S|q7hq#U3*z$X+d+_t8+_6ULcCDJBQiQ*O=%=}8y~hmi6@=g3 zfvx%9aMrQl2!A&h&t|x2Et4n0^$s6pXX{rn>>So<(zK@Ofg%F$enVN6YZPMZ>|rVx zrL&Xx4Nejn8Ct74eOl^dzMRo3vEc)c=?BC6^!as28DQ`DRa1tT3oXMSY`|I)`e;4K z%e-##cB}R-#TF=!l&VmDu`<~U#-}|jtFJNeeq(FHdz2&ZxNUbS5~AM$c^FRu%>^wN z0(?dBh2DLJNRR?n0X|%C06<9&z0Pf_kfGjz$%TqRW8YZs4Pn*qy>qzlqA^Q$ zIQR8cg|kYYrqi`Fx}CyqV8vwtz1Y+{MF13=`| z8R#S$Cxe6s^Sl$ir;CQA%R$DcESFIir|$~7Pn14L;l@xZS=9BeD_H(|J9eS)G%(Rw z*~@E&&JqSfM*`j_F9ct*L1K3g>MM4=O9p1+8NK`~$C!sKFNddj=^iQ4%5jy}sXLz8 zHlBLDfzx6G;q<1PX)u?EgItAKop@c~dSNk)9NrIi>&rRKmfEa-u7=O~&hlac?Bk_a zw4+(UonsL%f18`X(p+ACcyq=_+{h;FI*$Dv$1zQVHy^U?;&S-2tFlD!G$ z{Js>DniFvvngx?ixkLLj9&^~`)4u6Bm2_~+1&EKGW~94jH=jpIhZBXTGg~te-R5Sx&#oxW65|Pv5B~X%v&pmYlgmQf%*4#pE{EQWWO>>x)-|f&GE!Hz5AFWp*59gZMXt2RCzmnY?kF2YIoj zP~0d5R#;|Bqc}UoM+@^Q4^EYq+X>%h|G5jzX8Sb+*1ib&-d;>5_XRs7)=uQeke(p1 zxmG+XpUCgjF6Z3sC%c(&2x)Gj`M}oi~!U)&{DWl z=_K6GbVNLzLu7tG*!aedPSe7I87D1ncGi#c*$y%>`E$6G7#__e?e-4lWjiO@K5;es z8_eXqN0gkss=B%7+qgUh=CpmP@l+%cw^ERGi!fP>_wgXa>z%spmr~85m82%RGNq6h zm2qya@q1UTZE^$$O&6}5GDaqvC<7HWTuUdu(HEGna5gOgMX8r7j5(hij!o zD<(8#Wz*9NU|^fX@5~d0+9lP{4K|XRbv4x1%x0M^zDaeB$#;KO@u}Ba0^&9^0X`8l zDqejT1&ZTMAFa?U%yD>HbpGK#oaLAix!L!jrf1q;1@RgS z(f6U&yA;Au1ebzL1s`#&+m#rY=SB=$dwZOjHe-o?$Z^YvwaLA};;lK6yP%4Xe-;TY z-;Z@2_9)VP2~K8inY#xwd>>idt}#;bp8YXj0(7`Wo`CM>%UGuC%I@JobQlPF2f&52 zp${=(*CU>md+)TN2*ad}+S0^uZ^td2po(!Pe)+UKsW%8YIrLoZCPyxjA*XqraI(?< zR}cbTFT04z;OoKJ{!@Y&s^U7mM_Ms!- z8$543u!Nt`dY`^$7pkne1Z0^XwbO9_IFFxe&(b|ip$n+wDce7LS(x;xWovKALgFN8 zx~giKHaJ2n1k>C9vK0SOo^g46*eGz}xNwh5g{?G>R^WA-hzV1x&92WpbO_Swu^k8E zT;!@5Vr1w}iF`^eqj%utp+`*(&#ga_Dsc?zbmh%~?h6YJsAG$vlB24_Q)N^m>?ihFO_jbVjlf_X0#j^a%-6baxJFO8ExV>^87p^ny9S|lGfMrgjv z2LN^*o#8-T5;Fi|E&DVOqOor}Jrdu7fXgLGuI>1-~HGS39@ zb(na+^0sl|$w@}F!jYl)YhJ%sE6>*mBxMyDpN8;AI%nnT>FVbS3Y!wkk8QY*c?7;R z)bMJ?bA%in7+<=tf993-t?&+Ie5X^es}{?98365}GWsShOJV5b&M99?k^#Vy+AJVX zjitd+lBDhls||`My{Lnj#2LK6MR-gOFD1!o*ax zB1t+f5PDu%b?D}Xlvds1PTFX>Ro~o}t6#eAzysD-Fsqd>_2{djIU*nMYAc4laGW49 zuRJ-Rl(Vq+M9{5mM?P78Oa&ob^apXRAQRIYoBM+ncv)uLwAsT)qCM`OhBXho1 zA|_nQY^IT9m%YrnPjFy9-H^m`Esfl4B2^SH0Yyy z7%R7}ch+##Pc+9#9qb74tK+ z)lM!Fj?JCLi3xaUS4kUc`0W2Cj-*w@c=y&~^l-lmGd4;ePMnsVJ3+*Dk9=<8kcvUZ7NlUvvCpLL$G(*%rS{LzCJj*;~`Y z@BL1FN~gkXvP)5ZlhYLeiB|_D;j6i|GoL-e`Uu#Y*lMpfhh4!pIbLME({&!XLjFe(7IO`lsFqnz(zd-ZR^H1{jg{Z9K! zOItP8*!1&ECO=~xwzW3VmNs3+z!Ks&Ev2P9_0!m!&ReY0Q=ZjdmbdoJQUoxru98Cu zA3y1BAHGsD4!YGCjxx#{{t@Fkyd0#}ePY?Wx=MJlUsccVO{*N}JFeu)02;b^LZt>6 z`i&%I1CNP&bg97Up#jdcxXAnk_GsyFj%82jjd!?WX5)xc^CPCh%lW}mc}K^L*gfL< zovl<4=%jpW)+Y}{vWe=CT2f6No&K$pRJuLgras*dy=CQbIi>nR{ZaGkdaJiDc9vrC z_39lzJy{MmH9r<0BqS%!h6y%!q*jj7A6VWnKg0i#&&dx zw?948?~_2p-?Fz}hp?RlE@Y)Xx!!lWj5~h%T(dOJ1(D`|`a zHDHjl`08r$wyF6viGjcM=s?GH8(F1~ez(D9)Hq=Ky5hyA{B@wr8b52hwMl?ZVxmFN zgt7JX)P7C6-?6~_CGI#e&xD`a^=$4iW%_7_oMP-Og|B>u|0ec%gM!obezlhngMrr` zf;=-??(XwE;+TR*f6x02n(l(sgP)vd^u|U~ikKH+)3knD+Nfb2sU1yb?6NG3pBcST zOZpTl^6UG%*wn;)Ivp*oV!Gp5lKq6^flA-zg37h+$^2N2W4oeoWtqf6H;L3Dy$O=l z>F%4YL0bSWIAriHTqe<`BX$b)EoV)wbZ=GN!o`lq{(y}OJ{QDL z2R4r)PsH|sN0z%|Ar($I9LgP8*g$KxC%T>ZIVYJlt*m{UwY78#TPrbG`7FBl<;$2S z9lyin1=4rshZgdni6G-e#19Pt%#It?1!+>%rOVao+Fl?Eo8cWd#ZA9t?0iuZNS#H|FZ`o$e*cCGFs+=yjaqJtb{o2Jx5V!PJuo`*b!647VBya&ZaJK3t5-mD+ z9xZg;H_K#BL2wM*#Ki!hR*pvO{8)yL+Wmz%Di!lnZ6v4!U{v&MC9VU_iarVRt%_>o zz-=IIbW0jmZ-P0}KL$cYSdnET$4f^K9=ehXyQDa_N|EebD9wIL0QC({xqJ>q z;J6yO4}!4OgYuViZp7qtZX$dclWg)0$=ST0Hn=Z?(Pb}`=%RXO9-D@~y8^WgKy1I72mFr7(zrJYFzqz=~ zghI2rznE?$MY#4O2O%7-6G2Zo0^jbj+WCG%l6%JWl&akWs8t!J z^*)ZQ8Z~~4Bh5f>?u|_q1C(9lo*t8fB@~b_GUk%wP}U0n2cu759U7_^3d$1Sd8URTI*Ef z!a*GRmiGtSX{zNW8T7}^>M_&$tKs+@Va;MNz`B@BN{U0llN(jX1B;6>>&AX6B~9nX z^AV`ITKRCPQX~Jss{6G!Md?F1AIL?sLXkrO+zgfsi0(+vI#?gtnzsB&hhKQjM13dgRnsW!%;`S zfMa#7`1D)$gz8ZVVvDEj*KX59 zb#KeV;A3(SdpYTFv7x-cfZ%rQhIsPC@8|Bn}e zd!^Aq6x|)miGZJQQ&AAgpg{o*)idbT*~UdCx2X1VRq<8294l#$?;@)N@joTn4`9NiVnqjTW}XR2 z9=?gy_H=AnbQLnGnEi2}Zc@W<{*&pvs-Lo#ouQ(2^{M^4bptl_*r>+|rHgFEt$VD} z3D!2oHoqRM6_QJ~2d3$U0fpMoF#$gw7QIU8nW}x}d<`xZJA61Na5M6Sk(D{ot7V7E z;FR>xU{5Ng2SQ0OJjq+vZu^Abhi|C&DHzgSl{RL^6+ zXFY7ay~^-9-#TM*)!xv_(A$}WtH1`e z+n*GQZT69(tu94qfG7nD$P>H1{g<}s{0czD#-z%((tU?l|LwNp72Y1qr{809zuoDg zFzB*peg2_c$ZI5CM>N~zsDK4aAgX(Ggu@`II8!R3J|?@?MFNwDZ!!84ZhnM`y7mbL z?0gW!9+}NfiwGD;MR~2L7$lPB1Y}FUGYe6u1o?K&?&xJ__1Bix9T81@mdh@ILf-w@ z4+4nOl2>kvRc@_bWd0KcM>?NRh4+6Nwr+?>EfK^uZ$~BxsWjjwe;k75h=j+Jcx|js zm2{6pFbNh-WbaM|MPg-wWicO35^pcfQ3>B;44m=#XneD$BYeU?Xj~!FT5HwMc3!ki zncn;iKW6_ZzMHUJKjBj5!W`guk;fy*QB5a7RIa~Bt5W9;@}{zC|ye+$+K+DI)Oh})c?fgJ=K74_|oxupU$K;kd`mJUrT40W2f@T z22FHsVWL+EU-^Gssqe3wiU#UU@DOv=Ib4weIDZVien`n&DqaJ zDR^K+!~py;s*B`8q0}pThQ~l8Zte8xcci!azk0&BLV^WLj}dm7``Q2SK8k(3l?vU1 zo<&$m+h`m_-x2h#tNy3k#}2#TU}qzxWJGGUATzOi(e^APZ9Yo z;pg8aq5_o^M3h)G9Vetp3#k#TwkMf~td?cXN^4*OA)LxZFEfGNT)a;K+12g<0oD`v z45^~4hG8tbXs%=!%_t0Oyw~QmO*goOPa4wbk=uhSvV%f_Pbv7<2e_Ez1!DtVv+&&qrl15z;V=M8;|2G&zD? z6N^Yhc>#L9#tHu?EQcI^qie(BkN%N6$#7a_pkAkWSFh`lrwkKcw(3h14%^}pgxN`Y zte}IGirz*sUsy#UxI8q%&_>be9&cP7LDugJ#7PoA?v_e534qVFoR*2yY}%Wb$rB{A z&j<*fP<-kiL%b2r_%V-TCax_Ez$hcv*GUP*vtKG@EE@B$j4702tQ?I)93_pbeB->5 z382bJ%~HPDnU6;}(2@m*h|__KR=DAvLZQk~3FSN@7TSn~w7O}UOAPLWF*YSqTw&=! zr8|HplEtPr@cC2V*#XZgLOsypMBt5UlB=FwM=NP3=_6pG0 zwY!4>I}9eKKS9EZrjrug$rrzxb@aYk*m3dar;9EUTbq|gDU9-z8_f}id0u25IDCm0 z9j~!4i8Erb9S@Pa2Y$(Mg_e!>K3r9-8cW`FK9Vgpvr7eqzP|n#FcEwtqYV{dmO?qu zrH}Zk`pmy3KsIV?a@m?~Vu_LMB;Mil%l4~`uBY0_-(o-ldtzPpCMiU5-4`V28IY|! z;i5DO1ygKFRl5>r5cS_{ef(b-R{P&D*i$r#!*O zb;gQ{z)yKwsf?V$Z!9)K`S0h7zA{RwJC|UqEBLg&mNM9Au>w19m@MIUd_F?;VD}^5 zkEYe_lRoKlN;kAR=N}W(Z@hv)9XFcyiulfdM!hoBgEDnQH|b>m4m_07x^S0Lv})2U2s!@wL8XxXRLSERo757qg$fini2LW8wRD9J@V#9R)Skw{g`~?aMJk}R)6EAM@#{UP-5eL5pa ztzXwSvm}g`=%h^UuZct!r#%%hZA;cRzQ-x2iAB>z!;|un7t~zlqfAa+3UZRFDJ$9c zc%hf?8yLaeH_s|RblD@PIj&nYuj$i2M(`-nU)pX2AWyh9uu;7SIwnG^7(9XR6eR%6 zMn8D~-w}FIG+?~67zmLA10YvIpR~%MB2qs4(fqV2Ve4NssblKXalaCP`+D0^*i-4@A|D-ht#c7?;5<3&lpO->!)~tlo~PH6Y`p+ zNYqn2ZsB)hY_u6QinlCWN#J(IK_0!7HuP3d%29PZ-F6qEDe{<(0OzO8l6Jp z^Ig3>l_XY5CF^M`8yDXds7TJfB-d{y2e^ow!x1W%6avS3Y*i^oV7dt9TLK?eVSHy& zyZzOA_e@(|6|ym!`|DPfNb^XyIegH!81SRE9KB4w?YMlSk8S_6T-gO}5(^1_o>7YD z`s=qckTH|Aklj@5Ualmm{}4p*JrlpvE70#Il>m#0$}zZv#pbJgB#+Q<4}A1{wdbZ@ zVJ;El?ArTvREkn@Ih*XtCIu5r!xt#FxS6Vw{qc7iBXXM}!`pZpCIyYR44~7S%#A3c zC=zj*pjYvmVn_MSKmqLxIaBwqJpobML#cOAtKW?Q{ew=4pLO!?_Vfab=jnwKmm>?i zsjz1=rG7@I6ng#RXV2J87NhFjI0|MX%@#qPh8~Z0(i<5CKvwipzDI-%<1?R3|I31* z_5XJ4_5O(!9xu06(i;$DEHslvGW1%K<8B|LhNfOo+$oX?AbrJ@HqK$V>)ou+zhO2i zC|VISQOlfH9WlZloG^ zH|{JLX}5z@A^4@>&>jX5RB+i8FL_`7IIKE_ncX=Cjph`YnOCH28uo`_`yxId5UxKe zTNH@uT2{*^N}?`U|9(h!D&6!{_IZdvO#ZwJwzMw1iei9Gv610X{5ZF|h5>UmQ2Gf4 zi~jaulzy>PjWi{IlClF&bN11y{to|5WWoDQWU1_=x38th5i!-)9-k6Ly>ouEuab^$ zD%Idv+OeGxrb~w36M;Mwjfw4V0djZxtZCMpE`8TfZR2SMQBEXcc=5V;Z>(8|9M~F1TqG*No7%Ld@czg zpjQu$``tz+^?P2{(V5&$%`{WFF|T`mexSRiGg@^32ZpMo3{?)6~vO=9NBRZv>Q&*uKVAouiUG+u#tmuI&2QsjuECJ+t z>cJQ3!OqT8sc>2%nxsng>$eJ?&|-_n6LJ^Qsa~aIf?|a0u2I zTZ{q+XFT8eFKSngd!lLpE#zJWGtj%Y+QYWG$o-#gzI%FB+UU8^4;WUdw0(dcT<&8v zmSMiia^zXHpQRlIZq@IoFP!~YPc|M)%YlDWMxK7MAqq1nU-5pO#)xJ}9ua~g9xBBJ z987Gg8x>%ULpuvc!}>WPkjYKGTaBWqI(eBg?ZdE4Jp4i6w7R3FNNJyU93$P)Tn=#; zEjH_*iWzA`g)tiS+?>pLhUzrn|DmTGd>@dwqp?hJC@h$0v*_Rs#|3S{SlyQXhsL7d zrr?@;rGtCNVqp$n>(j0tYRHklBeEpA?OxX5{p|*wOR&-xf8W&dnL#XJ;;goWyx^ua zWBTyxia)E`WuU&mpYGy2IsGhKcXJP~MfmS$7qJI&JlBcJD8-pFQTT_Ip^*}Y8^6t? z*!Xz&U{To39X0EAc1))$z}6}x=fSk~KdrgW8Yw;C{im4}ln{caFAuNgB#fe7Q*uNd znQZ&cEHzJ;6P3gPcK$EfLn8(4&4|DX%0a6p!e_omNYC?IPzCavqvFmM#IQlvnu6KT zYsNA4Kb)G{Tz)f^WdFiA*_XGUm)4P8b8n;I(ajd8X$7$qh?A<2>?%PUYv@-2)<=KZ zu>tCfet%_9stH3l7s(K5>$K{U1Lk!MzKy?j`z+WC`1tq_U8gn|S|QWXa{MLu^wk3^ z%!}P6yv@p|Ereh{^;mTQ z~2Lw?b#5GV1IA;{_@cfZQ%uRvd1JdQZ>Z0=_H2kAJHX&^)_MsDD1A=8< zj;fB9fHE-%Vxm0bAj5`ew|@K@9rvF%<=u?Ta<6hSRg!vGTJ;TB=qrSUt-Nxyd%gVp zy{}Vt-1sPc8Yz) zF=~GOE4&HQAvd24YKl}`gR+tT^o);?!u`DpoOFAFJckqF>9-SSI$l{WoN&wz*TBA> z9H77iyH@*a1urwA4_V{0%#3FeyoZ2X`XA@E`2rq|ir7(6DAq`boLzJlq{}(YhX4YT zXBz(q*t+AN`8b%WeQhrcni1_DZAoSRt0;|}2y0V)zYY=pcKX&ZGcAeNSDAY)sLG;( zjjHNxI5?i{WPkvEXllHc;uypg-d0`tLAw|at(JTcT_?GL{0S`@!@-`21|2VhkC{&$ zF{olH_kgfLr}SDl|F7StP!9@rUv?==s3T5O@i$mtNhB@DHTjxbQPQ`06*_WLH!WlT zVrHyaUI#4Gk8Y3O1S-hf(U07<%1sK0$lfmvy=FK5+i4FFQiA4&C&x}SX)3<0p}}7G zIWfm)>RHi9ya0&8B|m%smd5|mSGM;F#&6tj6$#>s%(3Y6;3UnZiff%(J!@m}gEPt2 zTR&avt-Lc9$29Q(N=ah%)|Aa`mDBP+vv1ssDynwZ~TTm{LRkfD>uu&ELVuf)cHdR((-)8K(kH7P{dIArBGZ2yMQs(sp7z7 z+*gCw5uV@mI98RmR+ef1`o4J%|Fv9whTX)Qoi@gE{Pi*;IJr%JQ|}>*vQX1A+%%cZ zai;!E#(L^kom@P-m(DbQ->id6`4Bop<4ucx3I6en%k2aA^Mu1K(;GTng2l~vR*F)V zgtMYNGMc%+oBt_axvOs?2%348DnOv>YWzMUavnGYXIMuCz5L|I5Q|g)JSumT)Q2c) z7Y0$-&PZlicPI2$(;TfBh?C^^&hq>U;LU2T~+3H%aGe?8Uw`48bAp1mRa*+t$Y~J z=$6n_TP25Md4Z^2l6vjM00?~Oo|+#Z`mfWm0L(Gn(2H04EP)8|Doe?~ra{;1ug6Z0PS%yebg)U-I&Us{q_9+UbHWcaG^ZTD{}ZWwVpmrEW*>#a07xzX|4$S$fZxW znO*>(q`N{y$AkZpQfTUaJtnxk93(6_=VppKks}cH0M6b}Fp!Y|&L`6#cSO8zieL|x z3fRT&nV|c_3(I-K%G*wWnIiKWivfg@$o<=sV>tqK!HFK|(K8IiLTdrcYkRR0w)L4w zXvAMbDd#4`42tR2HcwKDXSw$?A2VURWN|w*ZUKv-Gd?PraRKHFzu#5gl-`@8K>nn8e2g+%*UDP-LXF>n0rSN+SsY#4?T zcecS5|6%jCZ0_d)CZDs|5PSv$tq%X;oCIHZ;NU&{BvYYax10Dj`ZF+R#{=7V63%x> zxh@5=E_c%ajih*qJ**za+0BoUc9X~5LI35ZRHRJjabxsB75_uWM(d05^f7!Jqoq#6 z?GCC(11{8Ek|p9zEm0oz=Hjm_0G}{KxPbau#q{EP&X>fp3z01f;$sh8mJBEI6`pN(6XQ=hpR z8(91}Kj}K&_=W>5{_z28ggP_4G>Omec31>AY`9HZ^n+L{tN{EOi!^o|k(|U_t9VEw zG5reAgxnBddpz^l$7O_S+8^BQ)EMQa+@oNdsuM<@a9=?MQqw1}1JnNA(=*O^SW6YY zGX7K6Vkio08ZWi@^!=fcbo{!P$LK<(FEJu6T8|pwdVu!dzaMufrOf}VzWDK0WT#9> zv}Y`;mX~ALmqE{qR$>3sha0zx?;ks?2_~RUChapWDFI_+yNB zYH|B6kP zjGQn(?~>?cQ1yPPrp{(quYRW)dtntc67`y8A~^LpE&zdAuJQITitKobkhISKZkOCUffUlk%sa0!u2!g%}(?Ch8;(v)3DMS1^I-1x1YC8POV%& z_!!1NExkx8=bpb@5cUwg-2cq3HIZ3(Kk+)WkLkd;X|*3UkeovC&DiYHdIZo(`xH2@ z55Ch6vdUw~pg2Xn9qk9m6?5M`8xtrvrRMzAT#r~5sWf=eVEP&nb!O#M3`5uh~VE)!NNKap-Ta7gdFKW3sSP+({E(QZKWtv{%u4uW!S0N_Q>&a~Jo>2ozJr0FE!7hqLA12+t-_&-m`+nec z&)pYNd}5Ikk$RoSr{eQi?+1;rkgK?pDa_%%uYZan&gv{c^FhB)0&);q7H(neaWZ0`4L^%;T-f&a_gM zIISGso_5*9TkT8V=so3>VQF2fEDr1+y+O3s3iDc3#Zz52Hod2xJ$vzzT@a}h=jaVp z5}1n2t^oH()kq#spyU_*{iLdAB=o0V2l3!jI-i+~NN~`E?I$*pEr;>0ym@Tm_!vxq z{Ewj#t7m3-7{GPmgpFv4zEqJ^K zQ)w2N2R|Kb87{=apZ?WG&{L8Dq>b#vH!^XwfnL`K8Mhc35f{SUGNzC1dy@X zgAT=)8*CyTUPIL8HA4#z95D|bzVZ1oN#H`?ZR$xx<&sIPvnh>q;U_)7Jalw(j)|ix zoDojQ+$oMqZ%c0;O0Q*Zk4TSbKa?+>)(}L z72qY@p@oFghDY6x=EBfTvYhfWPe=Ep3^?(=VTv_G{*rrDnDKHo=F%oMXRSzobMAs% zcC$7q+WnZvTxHPPbK-s*i#M?6*wCnq>-)brlstW(aPIQGjlgdPo_^5lp`APLj?M1Q zWq9qteyL+%a0~38m_Z-U$71%-EY|IxKs0jnYqqn3QJnJnbK~T@iJTkJ8{$KNzrgoY z-pc*-;Dz&fFI7r}h7S9`c2<_){~u=PovZ}7n)^dNh$8H z2MbhXYl`iT?w`5R`>`&Jrd^X#c{P{eRSVa3EBI=5D#z{;YL1aQ3cu{7VdHwO@x>I$ zPEA#^;qfUip0t^c+q2?-=`%6CBvB*zmGfyDM(!W6UtFTLTl4bYsPOspZnvnj*5Ilx zRQTfS%7E&F-8KBZYhFnOc4(aN3hn?QNj2wqbpq76y}9E@|Nc8*2phKDhRFzTpN-0@ z@WKj*|BLH0-*Y_6X!!X*hx!;k=UzV1H1q!T!C-Lc{Yyr5#Xm9Yg!t{|-oMB0Zrw`s z89nh)DDqREywGTY3(&De^!hQtdu6GFdz5FrfX?c?ZikpxT#|NjYl%H|T`3AE0=)hX zV1o1g_-q_Lsiby9EitW$ahR}5(fGp>Xnx>XiL1K8^k~9PdKI-J<=Sh%CvLShzZxB{ zcYX!h(A?C2y%nWdp=-uO4P1CKD2jLW>~_83San-zSL!qwMX600jK)0~I48y6>f_HY~RbQy5W zphuehATX9wjzD<$^cwH3*B+LU3E&M>pF_txI)j5gSU~#RD#6YbiHmK9hRQW~u0z7% zj7)ToItpc)&tbRde5tIiPNj%*6Y6&=^Bf!z`TYV2{f&u=HGG7@55|YTpCSO&t5Rr0A8Kxx4G-ISvp}UsS?>Vl#^$V-loBfAfn;^)dJo4W z-}t*o#xh+#xXrm17CPe)TJ9dsBGpEIJx_%59}}+tNQl-L;tXG?$Gb3G)_Na-4bNf& zG*m5s&6K@;yW)nwnm3sH%mNpSZ`+AM*SIMA_{{9+XP{-R3#63aE^G=$7+f?mu}M+X z4QFi972IVQnt=^V=0K&a5B2xV8XQd}`+q+?_THE1TpbzQTP(c8taPNnm-KHnZ-`b7 zkIj1cE)~v@-_PP<(MY2*}0Br^?9y2$$ zfDijgYbY936Q-`Y)W>8ZU!77Y76`fR@@D#Z;=1>5xv{c#*tU4^ru@kMo2%t+OX-7h zWyqd=NePxhkC9s#Vi#I8`cLS*at*=C_f?9{!w0-IJbt<_t{_V(mfxJBL(=Xj_;b7v(U}nPQ6l} z7ip})npQGz%;M%4sO}_4VIL1t}MnVlDGg zgoYsYSEBP|C^1X zi4Y>(sfu#Zc_K2oy})wa?RX+c+@V%pPL8Eyx)B$fXV(9{rnKMV;vNl9?7L;&`KNOI zsI;>;hCdpinGHJhN<>y`a`Qv6k9QPW0!G;8%GT$;0#RZHu3fIs!~FpmD*~x>u_Y2O z;FQm4HPZ6*2PV41jqp+ zRmrrq;z2nbc1}&L@huOJD&Fvla{Ke%(7EmgSJ(K`SOV-qnvADW(xuhH`h+Q|e_cI% z&c{`Xl4TgE7Tr|L<-(J_hfgNx^&$jJsgZLO%oX8u?>>p5vhL&iOFy#}@Ec4%g5kEc18 zyyL>IMq)s3%U0JD11mwcI{8HJXYJ*cl!rck7mT~kZ2o;+5~$ZnQMnpTIe=Dyr&eJhjzM2x=?f^}82y^Egl)CXV zJuNrNMEOa*L>FTj;m~uw-WhW#>Z@eY!7IL&)qGHwp0+RFtjQfl7$KmJ@tYL}*MY01 zEzAiVP4NLh6oNs%J+!cNp}(eSC?|I6whdvoWS2D*0Y?aDpq)E&#AB2;4OVl-I?Qig z+`}yR&s~6yZ&wr9Cy7@nZ{#ZOtsPhoHFo%~@OrpSkswirfl6#deeFvYYZk-d8{-(UX)pt7H zEOex(fBu(BKVjG$CHyh*W=`Xdj^oKw(7jz}A3gc&dc>#w>HF`9l0C?Yufv_DC#+3B5OosE%eR0&lq zFV8Y~EVor}k{RAzx!tTd>`ng7qHXRX42wqrD-p4I2+W3R)lUJ3CdB#%n$?Hh#;PuP@} z^z6 zc#CrG3gmeV8Sy%6ctk&r;+%>wFNs`^39ml$XD2XvX3F}&MNTD;sgQFW>e7^}mw8#^ z{{_#uxJVzmm*g+JG>W=-75h)h{HSp4@`^2SCWZdyLnP7X`R->)?Gw@Nq0A%e1|z{V zd7ysS3=V&FQKn#kJPA{A5+7`_x|Z55Vv$llf1jfxt!SUt@9n1=JpLZsxTvjg@Yz=? zOQ0zOSj_mVkIhcwD31&8l~tCnDakw37|xG^(P2+cMo5~u#!kBNCt{TBXKPXqA7!i-Iox~Qv6<2IhX$pkon z-KZ}~0Nw*paGi71+h z3Q_C4^;agn*Vy&x^W4_`K(2aE#%}xz=-?u`+e*2kou3_mlHWtl>CXV!*e@VWD$W4y zRojmN<@{o%(8BuO5%$m?3C7$r43D0s(ci_xrU{LNVvpsMNL9$r%$J5B#1k6C%P7O90`PjKuHM zsl6I_FFZuav#LOCfB2H2qm5Z`}?+C7c)mr1$;9I879wWM^h~XHNL8 z(2S)lD>rRBxTgxT1HjT3%jSG>uev?m05LxP?Hh%bHD)nB;*Iyps7Pt5Au5zfmm^{b;K7`i(Bl>?^C>(YXZgvF55BUd!KN;@_8qk4RZ95WR>4 zcDJVs_OeKR>0g@y#+zu|VPk+1Qu+&6r!&8QpJu(}UCOsKC1==G!cuGaB z;{YH+ApI(mTpcdLFZ7Ww_nSxZ`nIbFuM~_@;=CZITF+r{}M^oc884 zgi)(nEzoybv{a`;S=euLQ7Z~tT$0D4@Pn_XY=?`hT|+r}e`eqpGrP+#FYDlZd}<#I z$t-J#tNP@7=aOm{jMvYihvv7o0&e^6_I_ABLQ5SYEk`UT4D@-~**&63qr1-E!7C?UU#MP$R1Lhp5C)^*39){VG~o(laMFJC?C z86Ba$;Y~Q&@^R^N=*@}E_Y<431^b_-oWS!*q+GpzNayO=Q_Tl;bU5p8P4)HFe~UuD zYY zS5fX|ty6(1R5WwL+E}5Qsg=`F<+0iIGq8rp34&kqz%sOsC2B552i%A63d#sp8+qz7Qa)STVP$RF zVs75m*O;1tfSM|)VrJBSxmkBxkBANyO11+j_yqU;$&>Fzkw$>wn}L_=J3to z*xENceRF3ud&U}kwOu?-M$GMxhi8=BlucJAmg#J;eFc+#rsazKupWY#PAd0hR*Yy$ zM|MxkKc6sgZN_0*@ej=GMKD2@!eJKbhTzc2Jl0KSGu5sf(yWGikNonDK1(L&68)g| zFANEb-1#Rn;u?ch99ZO8MGsri%_nA0zQSo!_7%h{oWlE4C66APL-Qks6o>jeqVZoV zqb_0u1rrR;Wo!1;5?zDq0LIyHE8Cly6*$CZZIEF0PlZ2~_&Ha)Pj)hq4#~HJn`Z~; ztFT$+pvG7e?&Oscxj0F4`{MM9peFp-N#7&yawO~<2)}zVbqMQ{%NAs1(#4+MKl7Zg zJzX6VV=9&l!Cp7gPcjO-E8S{j*bdD7Q4eC;1CN3h|{1mr&GU?!BJDSVKA zW%}93#Bl3K;&XKk3Z$6ayY7z%%?|mXS!M!B8HwkW+m@0b;~IlsWpl%SozS9kZZbbq z`e&tIUo?Sszj;9xnge7F3=MCel>0gY=?^@jApQN!tf-)sutJ}&Z`-im>?7F{_*sqn zCYMPHhQ5m>xuNb2iX@?)gU+;ZAqPXbj@G651_rjk!lKUVrKcCF}VL(vfOLf0p}8B<}3BOStY+CMf!ChslM>?4XVCWU#>vZ7msAnL5H+db9FOq zkxh;nDR$BeD>r2+TzY$a8V-}}kN5S|xxKW_cC^E4AKh4rJ5=(R(#oV3(wi_@f$3iP z+s}*Dm71!B1;R~7q;VMN)G~Ma_dHiNUo^%t?UVtp+%0EuWAq1x6`cbLpv*-2wJbRL z8w6QLHE#}-8HuIaIb%cL6@iSSx?HN{z6#m(oggJOu{ENk@*G<#?8OSu1Lo?|S#n*i zo_LV`C2e)qZd5zQt4iLfx=ajt-vov+?b8fQhu{1Jj_!Cu@}KTGZqnWB>^mZUL`Gw# zX}8F6D9uM)1N~q+d#2f1RrahWEV|Bs({s<B)4Mz&4iLm}ibDlp-hKtZ4HP$Rs-UL#>PFursv#Qxfp?OZ%j& zo7EWwv53(d^KMK2K{g>&OxbwICDKKy%G3SL!0|5DA`9h^7d!Sh>F|{iC_R8Y>ls66 zI$oROzMTEr+}7u*rd??6db}^#Pb^*VpbI*kF_NPm{6|37EGdVsPjAl)0>;}#+Z0+F zu`wv!p_d7Nvbk??E{vG3|UXXGpkZ-W)J z$+cb`N%U;5Bw_l28(nW5y$f$ZUnUx5q3UXnWq!$aX$U-Mi$|e5) zaLp)Evv97gq$|6+E{+pgP$M5^|JB-_U3;I@F_eo~cGeAFTA;yyOh2H|)j|qEGjDqv z@P@bZkiRro1w>I!3qNyLKG?~b8WY?Ar)+RNzK*qV2IoHm+mmOWJ{~n9(IaJJ2o{Yd zj}4WO+;$>FYb_B=IG|IFSb6x8&I*xI(~rP6|18Bjir3J-6D_8XCX+LybheqG?X?RP zS~QH|^hO#vhQ94w4y$Qx8n1=(EMSz4#UUt*(HjE~=T#eJeR&TO&s}qeuQo(D=td+h zE^pMIg*X}#SllRGlujhYqNcyhy5(o-5H@)vLQF370Wgmj)+X^_?vn7(I+}JaG};U* zR;4Xs0Ykx-i|i}XWx=+ncVolAa8hnSyHDnn`nKA6z}N?@pw`U`-{$GjVpW>UV@-{? zZR%&ia>i23Tb)udTdD(%c%Rh#X_mM#+!|H7YsvJjC7D(XJK(9jNO<2rT3S*?i6+e1 z@Otm&)#oi@)l>}8Z#j_VcUc-a$BNMG>0%(??H2Xbne+iFu9>Vq`!WYR3lVNPQlhTD z)?AF--FBwA>Kniza2rnk4zB4vmzTKFM_9|62f8~|=EweOxNDCq2$*n~5!3 zJrMQQk-(9QRr6~XmV<^D>CxgBYDtEa_eIUTc;5;a*0SDU3z`;bqu!GOA1_bwIcAFu zZI`hxjL-w&09l2Qt*?a^P&WKHR#*gUk1antf=YPOzL?%>eo1;JG z52Y)KD~u2Mk2umeUB;vzv@bUOe&$zZ(r1&yuiJ)yLvS+ub25fQXax?FcFP~c0jpX! z#oI_$ehcVcIkWeT%hsp0`3tNa+&i&?o$GK;o}gCG2X<;HTTnDjL|%_xT*psEc|^_* z_w&ZP(&I89ja@cM&5b+UF|>ws>SlT%tmBD2KRR7fmzl;mBxa9hcnBH}1=MuGAK{Bw znf?aUme~CBqXr$kJE8WsS~dd;grHfRD)D?;<)D0U>*Pef;F(g72UZ?Ix;c`4;k@DG zzM8&rusSg=W7OG3uR>{B7TZz7_BLW7Ls7$1Nrwt5AtcPm#AbV)G6>%w{xE!Te6n)+ zJzG!Zr^k>08 zN>i6)3>R)NdoSvC*7nHdIW%Oczt#!W8UfmgBs{S;TQ_wN+`(add@v)Et3Q8wX$Fnk zaXxsO90{r~Ua4uGX)9?RclY4!64aH-czp}{`6Hy~uX1wK`k3Qh&ve5VDyu)tQ6+Gg z$6E=_3wBX~VzE2h&F=le3i+F81%GM>Wm!=q#?s`S?8vguD)}E$|H$z2+>ho5Yshi$ zdR{~GMT+2GawOsv0A+;?8;oFMGotfT>PFTVP7WYzGgyav+25Ui5OP9dIg>qOWbY( zV{2Nstyx3Mc`o{P$%W(hI*&(8m5`oDl_7!IkMvxcjhpp!RCKS6c@PC>W>pzkL*`_Y z6NJ1=UZAUPyG%xIN(~8=dVIIcNy-?5&1x;nqS0Z4`Xv~ab-ahmS?I9Dvc?$&&+)_s zPpbNGL%QZQ>21Gla0h2mT?)^i|F)cu}2@98c z8=LQ0w!Sv=I+W!1iS2~v8J0v)oe}D17nF2-dn;YmIbEscP1F)@B&WyR#DWM)7qPGi zDdAK5-1EN4T}#J&S#zv8Hd;LpE7xNg2>A;EIP!~iAXu(S%_ML{YXRHyZ$nt2NoATw@nbtf)HM{bVc`W+``(O$H|$7eX9de0>)b# zqNWx%v2&j@oUIR^UsRabbL|9hdiLhp))=|oG1%E-2um%wVUge*{GHXG{xjLsHgomC zQpBQ2sY_mUcATb|`VbFmEw-T-af~rDwPuy5y{k-kWx~rD@ z{0!t}@X$D+L%Rjgrlbxa@x2t%1c{4XawMsK8VJ4aaR!sLC?ktsr~sMjWTA^!nma%! z2efgY&?3s{7JgK1C`WDH+PCzheMU{&wl$L}2S<3=2ahZ{z|A*-&Bnj4-0GVhmb2f# zG^a&e30S;kL#f%A({@^mKm7Y@9kFVjfGxcti_0$S5HjWlH0Z9s&w`|-dW65;-XSEq z))o=ize+2DbEB40dM-2rgKWdebew?6S(?kE=*}_q%{zV2vzj$pu4;KXbvnRAMccOf zqDc;cCZ3C{pOJQ!zQg@J(OVB@uyoGshdU-OCds+m;|q`r`r3Df>!Wup0neaYf# z4^VBHUhJ8xQR-qntv`cUR=Q2rlQHyd&-MC@0Ard-hd0{QmCJ^M|A-7KD3AiuD}%E# zXJ?D^9;JtF7-;#b`gUtR8?`0^`Yn57Mq#csT&b#S?M&>uLMn3h@BFa}kWcHsckl2Q z+R>nnSvA5~(#l3D$bSE}D?ucox3;#fFG;_spM3gJ+Ft1L@}llWVw&2KZupD9_lX&n z5+y33yQ>tqOTGgUSv}O-tT5K0kuTRHg6d_iVP*3}%9Ehtd;Kr=Uicq8=*R>ZgOeS6HI%Ffg?I5|m4 zyL11SUR|<1S}NuT^Bf!CrjCJSfja>oP56%AZm}V8HP~Yd!F4qKi9*n3>h9oX; zV&~rl`yagX;pK2ve%ZY?hdo^w)mVX+@_G*Z{N9DsX3rW4o-h!@jy z-{CNeEn|mI|9qRm+5Ys0B;bNQa{A{Vn957o^(?yPGl2&Vq9i8Vou=ZZp*NzCNnAJs5Js+s3;hzw_xyd zWz$%Ml6wNz1lwGBCBR<$Mphg$)P+J=Xl|rA{0mInDPb6?v!MF%mol5T+WYj9m3>{} z*Wby872K~~%9_uFiDA7z=EY;8qgd=&g6$-`8#sp8_|-35k&Iue7DIY1p0KA^R?rn_ zIt%YVaxW~)jRV5f#)*4>8y^?}CoeK93OIwMSn@8Z`6_Dhsqj!gZ)|X=f43`R-om-J z%qehOV*%myK8%wTEUL9lQ{y?+f;HsV{5hJj)!)u@FT)t6t!B zsGG(@A>LHlixq_0saHd^iENJ48g zou#q)LRo{i)p?DD%>muD^MXo|bxj;`)bci@or0qJSrZr>I%3wa*?TlrW#E->(hj+o z=uM_Q{Eol(C277^7OmkkM$I}oTNa`CRxF3GdE<4)Buby%0J#x4q}~&!SnA-0#cV8! zDSOoUIJ1J0yP+_eQQhz{L?4r>1?q4XuMFlrn4*5p=Te`~^E}mB5Pc&x1;eTeE#Noqo6jeOw?MNVJV{#}udf3N|)7na-fZbgtbznYqL7b6p9q%78Jxp=O zU>z7HL?xehhh+=KwrM7x8Z#>mt1Vih=Kr=#g$KL6i;8BAwC!55`fac-Rpb2wbU&Oh zxM^qc5fGBUQxdOaSMGq%whkl$l@n;SSGu?z)@g`?`q==#C0;|6aFb$xSH>ER{S9XI z$YX2k5DCV$(Z9^CKykxhJgMNyDrB4Ix8N9G6To{K*%f3R-tpyynX}s6zVr+AF?h*c zby%O-Sl%u=zZ$ukT{aZR(qtF6@%n3`S`c}R`GHV&ZmV?=dvXVX$b*S_PVB}kXuvAK z+vD~0Snt@{>cB^(?#k7slNkQ~xU_-_@$`y;1Iv zt9yck-W_}2t~_F#>XlN1QVDB!x?fMWlqfx6FQVK=d@q;lRf8x+ET9=`B%#%>HVT2= z3_NPx4i*4+)!)C1LKBAc=>8+5s{A~Bn=rHl1fzh<(5wzL(J?Q4`Sbm|99Q0UuX7Hi zl*BGZklbCMGu4yPpxr^-y~!VMo^Tg)ZahBXd;e&0t?@7UamUWX5OR zrSXVz!>R=K2;<}(6Yq|pgP8-4M;3#B6g8u6)7qk#)RV#H2F9$<>;uwY``6xuhJi^2!zuAst6a}zLi4Z&T7|aF*b4Xvmis-pj@Y=0FM)FRbyRk zn!{l|wwrsj`jY%~JQ%PH5Yqy$AP(CkZNM&kMZ0Z;SaZV-E7u9$o&Pb9PKphG(7ooS z)uwv|j!pFmvIr^Ob>+?fKw~M(G0>l^O-HQo-EgpOhX4=4iIV%>;1=PCx|O`8HnS5s zI~wS$6lWIV%dvZ~{V^rjtlO_Kws&=el9(q`;p^`ZRVvg_BeT07o0Qfu9S9i zd`wU&sKks%DRz0%v7%-?rnkfxEa!!NtN5a~Lm#Jy0AZ754KPX{v{!~)qvaFsyjFq# zkuXQ!ixhPFD>Z#~jx6!Jh&Ty!-vqT7Ww7(D!)lejHJ7|Bd>dV%D{J0>Lr|rnM`{3z z1PL-ctibc$5>gd;vASFOdC#ux`^n{h+Lr5r72PnyFXkBp!26E`&h!X!2O9d&eyALO?sq*3nJdcF)>!U!-@u!hxpBql$OcS+TsejI%j~ z+`jy&m$7oAT3JD2yDF(bZmlt3SY4{$`E2n0Ae%W{B&?D-Vv|i3V*F0tOgd*+1F~-u z{z{*XdEqCXUWbKc1(rbB41QehVbJpr(@#$cPfq(YLx&+I!GXeGwSuy>7ILEOAV3P1 zm}@7M3GoigqQLb3l#_HT1hp0_k&KK-!Lr>yeEWt;FIM95!;Ymi{5#hc-{Q^m9Ue2= zU2+h)`WXmKo@EW(Te6XhNGO*dEa7q2-E(#vnAsxHy<_d#@v{9ns;HmGs5e(3h*eW` zuUKtvzdXru3No(Mvs))m3!(yDbG_H|I&!r?M?bVv(iZmGO}~>7d1n|qUxS*#&?CV| zO7-Rb5N)uIoT(^>F=FHD)kG((KjV7$CCwtDJAXPQv~qPBIn`A1U0tnLi{IzI20FfS zR6P@OIt|D+7!KwxO3M~yLUspm2S&oV!)40HTWT0fXlJbscht<5Z;rY*k*o@6ptqbC%MoAX!7~4o{ATKtz~3v)F5F|>O&I*{jUY^uER|P#iGfHa5IkQ zcxtT4F50l6vgxS|cr;}WBFi80uUg>$zgfN@hgHdVrTR-VNjlqYW4UA4lkVNpXE!(d zZ|K|M4)dnhv`MV|#gMK8nLuaQ!|N4>vA!#nE?0hhW1c5@U(bNh>#PRUoV3HUQIZR^ zr6wWCqC)p4qo|2gI@fu`p~FKLzpb*uo+YYAx`&|@%S>A_`};EHm48U*o($rtKDgvf zG|cZ%PY2wacsbV%=cKxs!rcRk=r6`fHC=HJMRY}zm%~Yi)q8rRWz)r7^`;ryKX091 zE*tayoKeEi7z1zbe^NBpVgqx!-zF5>T5_u{checAvoNY4a(@aD3&|0%#|pm*-U-+; zIr#HWI)`(mzgH8Zg2S8(+;4dd+S9D@+2WtamyrD7_PWoLw)69ht;vdUVvSp)g8{mpwIrj`>`G;(ocx7Kw zz@ZA2bOA8djQ%l}B=#}YXUZ46tJ;gqpyw}4EQSg_l=?~+J-}XkB8nTcFlhL2@!-#u z3=Z>?m`8XK$kdFhjUg3a8V_FiQ7hiZjcny%YB=%a-CXajf+xLhLYF>XOXmb`w2bk@ zUP4C)3PBwyyVSLwo*!2YR%4oBKhGZd_^68uVh@S7@Nd+`+1ebB|KG^L_uh5E=46z- zcp>uK%uvqiB5C9a19NDQ16EQp^jxVTX?^G>4ujPFgPY6V`(P3@87jt)YbtVy zKZdBYi(?obm6DV^tv-iaw;!~(f*xNVkx(X$;xvqJOskkjl`XzCvcsmH^-ri%Bpr)2 z)X(LX1)V&JSus;?kllx?8ULI}klpvn2pXOMdkr!*c+%*GP4a*FqVreAk_L8?yilM` zQ6wSHCN+U5zeUPGl=Mfn*BSVw%Eo1taiNo`Mg{A(QPAZd3x9AfYTY6*D3TgNs^6An z9YHqM5$7c(B@Zdjy%B;$WFTI5s0+RYnVt`X%+#ha@Y-!a*cK-lmZieS{zK)oh$fN)H_fLA$})|Kwmb3b4h+Mn-EQTVqgT* zq%o$kWxUbrf}X11fD z!HvIi%!{ScQsJ1h@6OwGBcl4a60}8He^9ZvUpK4Cu&6ggo<#n=kmZZNYN~9mo!P|@{L3={$KkI$Bg(NnCI_z>6yRLCkXYa&s zybO!2li+(@F?gCFHkYJ8Nk?v!s&q7fyo$-do7lcXNe=l^nV0w$EQm(Wvu3{6d2c#q zbI1!3RKJZ1P~4f>?^8Ka|IFT$>Tlyd=X>ZxR5!Wcvecp?7?2_S6(`I&D_nNP^m0G) zQMl=AJ{2d9_1uOPQK6$k#mjQ8Tf_MU^z6-pNBF#kma~wXVW#LQ+wAw?y~oAN^h_^*A9yLmXU@{~@v~iOQP{+* zco8kscjQ$=5lG~t{U5pK%PyJ9_Z*Pxz497(WA{RfUR;)+GfIl@Y6VSLDsy@^bLP<* zh{ywIcX3V1 z9IZqD9@UdyDH$?+BJsdQ$PUYQ>n3#nRSBE`-?RVT`0slB-z5$m-LAEKdANR=kfmn^j^c5 literal 130 zcmWN?K@!3s3;@7;U%>|~hL8aL4Fw|1sC0z(;OliSdzH^<{jKVp$Jn%fw0V2VSpU~^ zUsHeSag?MlSbEE9)M$t|u}nn-7@d{OHY72-H@;X*85~#)0TKa#Gxrb^Ghz0TfjmX= MxQzBK3ehnwKhDc0kN^Mx