summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2020-07-23 18:22:19 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-08-21 11:02:02 +0200
commit5edf79a812a0a2e03a5433b19cb63caffb0b1836 (patch)
treeead42f5968ba8f0c461aeac577ad90fdb0597ac2 /security
parent6bd5aeb62401126e3aa3e8596a5ffc81776289e1 (diff)
downloadlinux-5edf79a812a0a2e03a5433b19cb63caffb0b1836.tar.gz
linux-5edf79a812a0a2e03a5433b19cb63caffb0b1836.tar.bz2
linux-5edf79a812a0a2e03a5433b19cb63caffb0b1836.zip
Smack: fix another vsscanf out of bounds
[ Upstream commit a6bd4f6d9b07452b0b19842044a6c3ea384b0b88 ] This is similar to commit 84e99e58e8d1 ("Smack: slab-out-of-bounds in vsscanf") where we added a bounds check on "rule". Reported-by: syzbot+a22c6092d003d6fe1122@syzkaller.appspotmail.com Fixes: f7112e6c9abf ("Smack: allow for significantly longer Smack labels v4") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'security')
-rw-r--r--security/smack/smackfs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index 2bfec47b8d5c..2eba7c1e6663 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -928,6 +928,10 @@ static ssize_t smk_set_cipso(struct file *file, const char __user *buf,
for (i = 0; i < catlen; i++) {
rule += SMK_DIGITLEN;
+ if (rule > data + count) {
+ rc = -EOVERFLOW;
+ goto out;
+ }
ret = sscanf(rule, "%u", &cat);
if (ret != 1 || cat > SMACK_CIPSO_MAXCATNUM)
goto out;
8҄kEGQ#~K\VdmKosx8@bX88318 fOp(bx$if]~<>I^>i0M-d`:I;OW; y zwE/Bᶸ}/ڇݦ^lvxY0o%ژM]Hک==^C;ýPwۻBGv|*J*By҂Z9!x%݇Fki=iձvǺ@~n;fwA VꏹnsϽxfLVc>Qř4ςC7Zz[s)1<!6^_9%@aEH iG2% yzS} |]1fɯL I1 I<*&Y}2L+L(Q($,媕kipb>HGe""-躺| rox'z:%S _.}L9S\ӧ?aѹ=J K=кlaCxsyo WBX'AaMT6CGzCz&=-1fk:E(SK\R:"`eʞnJQ1`}?ou t 0t|Lo| )P̘a<#|=T ?q$˲Dzu@Z%QqUiC6WP.RrQ}~k4z>G*+++&n9"H(r=v1rcZعCɣXFbVqێHLX/?|V'i;Byfɰʜ}emTr[ᝪPES.*Qkkygpi4G7VP|ZWEƦ&y`U՚=\;hV*4 F / w+ޒY)&qc]Yrt{RZX68:I<T2hT":A|m< =vK"dd?v<ۀ,%Mv⽵ywk,pw1CkZZZߡp$ 0|܉^Vpm5AtD~ ^w&C(XS]}3͕eTE VvHҦKPj@־#Z"ɒz?dt!zK',[/rMROdⳚUt6T#eBزRvK[\H⃭_|D_IK͓fXSHvIUxv콄ߋĤGg;j/U^5]mLƄWYwI5c Սo^M_ZU Ŭ-bNMxvxY"m'. N,&%ެԵ!IsjNlRIG6 TXs%-DHKl~BiE4hn2yQ 81Rd_ݑwK&uή:~v"$yM/Ua&:e:d(($ ^ItXZ嚺K/ԟX{Iyw D%[AYG"EY3g*$fNE䙰?A:^LH G *&xfb<\oqS8s}n&&s\Qf#ڕvWn"e'֤UU/9$nɸa tU&-U@xQNKpK]tGhu쭸uI1Gxtٶ]AV Ylݒz4u\OVX')xCM$:< Y :/jxHM\>ȃ!( ?KI.^(p Z^PǷڷV&--L-4oX#YqO֣= ~ ,9t)uZ/x{n$Ėe/i^*% &4&piX̋v@].27D6ĞCjG>OuFB03"o6=z;O,KB@,pY"H|Xp=i=wt>lOQ>`c ;/;1nRUhz-_]黸&=ǕשI=>JZozH{ BL1bWaimx:֋ _V"%gamV jlѓ( ŮMn1<{}z:0vlO=ڄe#&OMTLԓ/ce038rd IpuYwĽH1E/|N4J Clʩ-.y\@mcfBR\9 &~\f5scIu\TCj)THBn\:2 =#G)0ޥ-d/JesG;3$huaMzGUU{ZWwD{Pw'9_4&𠸧[u+#蚙;pgfM![!fA,_¹'wl>ZٮuUsH``Ӡ= &RWh*BP*Cſ\ageGo3;ZM4TG>b(Bx3mlvV0\x"vB6i/55_zk69XH9VPϝVPUw778 l{0φ]rX_Y[dze&`y0 C5OĘcJmTr{0V]9@ F}UV 7FJuW+jP8u@Ò2Zֵ8=X}I`By X".dy^^lzwKom9Ov׶6%,9<sSd[$0D[dI2m!&7Yr Z$Ќ7"/ށ?ѵukU'wpI`ZŠe5fyZQ<:b=:ЦE6N)}6!0]]Lfe񗥵/R@v,豮f]ReryH49a0r4rV `(yڄĀ6<|h%k|'6^/VH<fhris=o5iolo?kTQ-(1R"gCIRFKnۻ?gln#7uҭk[u ϵ8E>NbR[o5V"V M/(09 &B>Z;~쉃{ekI<$аvI=Oh 2|" n^Qu)G)!O!@umlb OrNEs]\mKQLvdXS`'G<&^!p !?`K^%of ;M2<6u~hc>^J#{b*++N'خ]lT6H) (ij Y]S8C^wXUF6Ł7g\ctHC1>zϙdtL$EB'/r5؈f*7/b;jkWS2l99ҍqmۧ 7ˋ|ÂYڎ4(UCw$;;n [/02ao!m5K1/W4(h`LjHc:iJGs 3=<]Czp<N\ `*7Z'DZ6'%6]*ߓb=ˉe".G_0O^ 5ij:U Z;(>ըF69IwCहq)?$;G D #ދ{d~ґg9 'F3A$@HkmoUR]،_ \8CXx/X!zszω=HooEFUY1]rBOEaZzCt⼦-^&JnladT'x: K3{ɵ 8(7uyAwK*#Q͇ :-.5iSJ  ,0=]xsޏ{|򸰃w$P}CR.Bǁ' =*u(O\LT\4&Y jdIwɸ%lW5T;nGsXY2%?g08.z26d 6R|ü>995rc( cd{[sMyHݣ$?zQ+5&O6Za'$ K>8T݃"T#Q*yn28l/ْgY%0פykF<5'#[ yE2]ͻg%߈\΋CCn~k*b.O`:iLĂ9%2nu$b?F_$W|oH /%|e,;r1y5JwA(I#KP]pu>mϝoA1wI"wq:6Z<3!70IwDY?kFpLwu9Ӌum[/{+-whDD 8&qZ/e$I226čNVsɵ=֢u%U4[?NuBAsv/viIK5<%e6M+P~*Y:SڏiwnƳ; *Y 7 Sf:FRSQYYGdH3J;G1l]I>C"0 n"iF+@ !x1ftmE- hlC3 (QOdq;t詗Pwu3OW_·- )~%VH|f: Wi&PØ HȊ_ ݮ|z}m뾋um:(_}áI12R"s$f+_M.lq( zdPx[nfIIp; Kc;MUT_]$0Wv`,pj8SM{aJ I=%icaAGzU~)q5Tj\e[8y:g4LK.oݹ{ً-?`Ck<ɘ))ϐBi*0Iti Nub H'ی%Yaj}"j*YԇR޶QZkw{֮'b2Q,tJ䦿wI/s7h +7u5iu&VԨUv ָJۮI%t)zGiB*}b3.2H $썔:p1MK0%IV_F3F^Qс^EI /I:"%N$F,/IK_͗X!Oy"L^'TC sN9OgѠNRt"G$UIXKV*ܧ'WFC0O,iIx26e2c9M1ߦ ]TZRu@ Tkʄ>'1 .'$WMj |5Y ]GH g ^ -Yk/p=]pb_z[l#ȥ1Nk)CS0j~M`w4v*~"4`{ƀjDW}8rbr9Þe$En,/j=Ϛ8 ^C)49~f>BK4ƊPi'c)IWA#?'h˻c]UB=ZڨV8PAYDl5CTj*mqCM:j>7N yQA5C)$YzA֡dio&43[mI ϱB J_HkDH%ROإpvZƢR/RPSh]㹙zrM&2}5%v8)l6+2]CPF+ KFRʴ mJmj5S53QΦQzbOjy{;]UkF@gmt%{d6]$L` 1vDZ, {; RzcqvqWE_K$\tD]bƁvdcuh \nb C M`Cݓ&4kݧߘGڑ/8z-}hJ`nl)`soş4?;z=hv1IP$"LxTLԜ٨po=Y܌%ϐ]dv>᧚-ybD. +R 7&)M V*9tR+kL>GѨ+Ւ; l5_AZyWb$ O)s$uOt,JG)k4!O2SBp-fCP&V6lsĂ۲P +[iӈ]&֣C)-_Ȍٕd39Ty/Ww?ӨN2>Z >|^Lk#` AAV/ £LH| Ro7CX e6O+U4Ϳ(#H~=,3SlLJfOJ|ijbh)M&NҌL5y"L`˄}>+:'Fm2-qY >vq t/lO]obJg"RɱNy"4>52ۨl\]$p&f`lEXwErI:GeA*贵u=/3f =}h1`;}L"44>Zn_B ƣ{? VIFRL } jsU/XAF\f(`Co[=1xR$tkSxs)풤.RsH;3>/U .iZ#S^ pܐ.ߥd$$Cxh譱8aq8,馫S2 ra W=Dq}߸eCME' Է(*w;ɓmP[.0.!NQ_$N64G*I%rl{_s2?/JV -I Ҋ-G;U,Hr09j ^q {R`- QmK<]dt>w/kU|3ccᵳdtКOvx2+ "Cދ O,a-I+HizH[=߃MX_E!J4YQ;6@vh >.}A]/G sl8.ȥYgf(.,Лv9๽d ƨ,9*\'&+LTԙT*(4Z*6IJGOD]Z_+\(taƛі#kYF$LTp׾Km f.IT;hcLYX`613n$ *r5(L1 ]97JƶK(%zxA`9O+j{Ҥk2% tى6d 9^ sQ#48Ϭ)3ـ€J yZm6pt bۼ5S&`vY 8p -<1j-2;rY37^>ldWKV{bf:Ƨ)SLqvKrmssb4\T3`fYnYIc/(## J(V=4UdOuPŽI1H`5@R[/RLU[ pK T>6%r44H*!*ON  8g.y|WLfKIS啄V\T!K^R)c-07r)Ԋ!ݠ"O&gofDp&geh=?+{ l'\Z6,(fF֎@*Qcnk|B[Q9nj9W[J4? @To6 $nwӅAH^@P29_6AP#}O K4EIH--ty0dgj{&석dPWUm-6 A[W > ~/ ͗a-GbIZ1)\K&4&7AŞ#ϋ|&o3S>g9[՜a|rl_2*|Dҋz@C.ܿia|]Lw[U$F0*&NM켹)}0˿qIJQuxڭdoA쭃b>R?d({mGHOW}l08n [S4XG 4B/KxZ<5{~jhdxjEjvz#wtΙٚ=4]vڍfd L\_[O~8heR%iщuX+A7Z 7p+ f`iKqiU/@ h{n'> p^%O!-rG* 􎸳vٛ TPSNHW#J"! y-.Y]s&36tڭlWخxո ~_5I UWɔխ4ۍl&p :K٣`A I b]ήZa0ȇ`65:z֞:TpID:R|dՋ\a|Z51ܬ{ &11>?Ȍ%=mAkd+Q͝8 h)ZΪlD ~l# +3|ENA<ms "/ռ$,%ࣹ:wd 1h 0R${hs}."fRpZ,Kk{UHNlkc<1C;ghT[i5Dd8|пI;e mWKyUn өO0R Ɉ KuܹоID/H~7y!ϴȬف5q0i%!ltRPi'/ pAU^x{M=P .i~Y9 k-5A[$`~s+wU%7\ sL,noNfCA։cہVGMͩFxI$T+rDqJ(-n{ΖN RQVBgQjy\ x:ݞK]ҵVȉGEU5)EC.xOK=Բ&7 {0@5-:q>l dMW[5]5FVۣ i3N9Qe:3[W5a_p dߗ; Nn;M<6xf@<0=x !2TuYy\6\8|٘c*Lq5ᱩ3;D"%C+;Ah%Pq2a"d'pqH$Ϙ&djƴиQ5̐E[xddxJߌẉr ̟xdm!-`C`-I$=ܱ#BK_z#}`'뵁S0Ÿ4 Iȯ|*z|oƆ0;,\^Ά,wnww Z9hpGEg?3&8;}sxlYJȤ ͘YuXnCj |8 ÃM; 7&ax*ZFi;@N:"aɗBV-VN !Q҆>n{a% |\??$:i[suGݜ fH-g"sQm>qY\X?ט7B@JE>^ʔ.)Rwz\wAu=a)Tw{Y~T&2Pv1pՠ_fNt[0zhb#{l;U<4Np0|?O5kmo<41GYJK8Ϻݩ vhpw1!r$I1\LwUH]zM5Hca+{Ͱ#˿\wj:Ye 'Cխqy8)|X FS۪VW.G_Lߪvnޫ34cv$y 1WSYX(qrhiC8.F67Bb`Ȃ>t V\-"^wY3+d)K;_Y 4^E?[|:E.*Ð Lt8j44IyW [[´{2fĽ>ɼ<{M%iTm J76j튺FOe Lve5*:j~ߟpaPY%{mfɳ,m,/f>1:=-4xV՚V6lGIMUUۑUHW\t8}ցCߨMXa(K($9%c.Z,k+M"9m&) g*ccWw$ĖkkIj <= Ֆ^>sUrs,UkMIlOBZI_͂r:$N;jZt4#-r2*~!q S8iB{׆Vm~@@hq:W#3I>/ #퇄NB P #D)ٜ&HM`O'gv}pU*ddY3K "5iu9q  $L{ xkBuX3o YٲjH:ʔ$"$+?]rV2lcòd6FRE~)WN&fwa{o2/q6νXl׫2)y( 0LdT tJ]%;1W?J<ٙݾQ|oSFsUߌ0;) 3~%O*~%tWz" "q̄+dn/,^ыPHmI4yԆY0G 16w FOᠣ 4\ X5\mT]4g"Urzػڔ->~@(sm_W|"µ-]؂nc㖮f®nxIB~T=BF23A+G,RmiCΉ}c=!NILlC>X.WRi$ ]\99voqKl3˂a>ތ&>$ p:la:e=VT./ԚVKӝ܀ /_~)F{3~``"~UVDeC׶rzEIn]nݛ|]uOFh& VP~V5vtǞsLwk3 NB,}&W}:aD7^k~+{܍fU.ȼ+(wƑp.E.a}Ny=?NmY$ǵFL[H|bYhroTW|L4<3Q)k`i~Xo8,s:5Z763n-UYlp$lHEE3 A}@Ĺ$w̋N bh*2];_Kl%ImSSf'HZD6чfp][˄1/anr:liR?mumerk֓vZ[;P/R)6O:Ow ɣK-%M`t0Z4J6;|\ggH[{T>2jgv0=,yxpͧouVH_୴M7wRD qX@8 PUi75WH)%Yn[o L_HaJ9b>2,n%@n._%K0 zzNncΰRd7bLTT:l`:c73Ybr"q'?z.Vծ/iCśņ7![3qWTM>Is惨Wءtae('#iqaJ͘ QȿL[_'NZ6&~:v}2ۣ#IBImXf,kc`om,iqKxLqw 5qbwW-_VE+;oBjW-T;l$~ϑq# akȧxe?ޑWD~M.DBP w2&Gڗv?WƸ?sF}!,OejVPZX.$&<CJXyZHl*39$ , *i.]rp^vdJ|@qaz3W$zk@!~ֵCդ5/Ue4jb],[cYw$ሆNwE`ڒnX"I'VUvE aB qv6ffC64ĀcKrC9hB7 r/ԥ4֟rm-DɆ:0 7.-:q ?Wg哏cg5elpa!]vj4I¤?^T7^14qvpU (p3o$Y;y/}byC$=4ٯץe [ׯiIUYW&*+C5v ɏW ohQ>YUl#rR=뻂/:;iZ]d&0֒3­CֆJj8 Rɥzj]!7&u KJCƲLVG/1Tqms/ANDzTCvt07(ߒ\|ulM8F*W+F .BN.j]Bat=˄k0"8=-]uȯ齘< /VC+ZYmj0W%$Iv|Qj\CZAErv vԴmX0 -x^sbHfC[>5ǟyrxˋ&aߧd&`S•;?\zm{On))H&Q}PUٗxzC5 5:1'Oh1 SpIzZ@&}97]HÓ9x# z ȴc_/H [`]W[l9Eh2-Y-Bdd0ণ'+`BXtKF.J+{!]U-z)zR'9FmSGǭ%^iJi׎ ]ڭ>mhخ] ~>Vdsjv*]%i SN^p[70sX`~pלlwjiyD>4q JLV|Q~qLo%<;zXozG\BИ|ȥn͔R iK 1N(PNu~B%/[u㫟x̹8ӄ/!蠷:SZ;N3LG46$<`᱕-e niH>.5Nw2xka{\ Pht;C5ZE_FFz4]CR g(,(}lI9-Dz_M}5ݓSzǽkFAO5lN8=#9&k*1)2d,QFԎxB@&։9JAWw[rY.G8^X:Bg@Yf^ʷn,:CO;'ՔL''vUvǿ)</JaozpFûy<-shR=ŌjCi)|:R Y\U71FFөwɫQofS#(ͨ ŧMŘl"(4y\<\h1s}oGQpܝ@=D~"C o_w/J;X jq>uXN[M \?NZۍ*B;AĤ,7fI30cLʳ cWK*:“7߂i;}8JF05]lQ1GHsr`8i4kZ.\dIMpXCY;Z8$;VCER. F9e>F2ɱݩObF'"x{琈-Kͷ`*WTxw돿"G*a=RRڃ.yL ^9qWhHhԟN"Shf4&l5H/Y>׵(\-6 ͟35g}{Z/_ 儕8,Mj knjMIbwEHi0 IУQVi'͆0jf O)G{+ٓvɄ4jr(G~bFS|TA&oQ̜N?$.aL`{+ qAhM(8\Xx0?SΧcFwa H^vf"W)߻ɜ>-H,RA e#jA>q"9+蕞4Y VzҭH$S"TFbCe"HkP;CUU%->Vsa[{B[s[_#{ ,UQW@h?~J ^H>X+45O!9RM1ag4y4"BFaELIC5T|Kڍi:FNņCJXZZu c^cxK\i])Lj[BD0h42<;:~ܫ8EIRA6A3i~6.mw~k&IU"iڡ(=ѳ}p;H|n<|.?}ЩU-a }$M+..v-:d-D[' IVJrmO;ݒ73Qۂ '~,i>W/" mZB*IUF(4B0<-򩙦>{rPk'LJxoggOS &(FK )1=4 ~t =!wϕÇC {-u?} ~ TUXMI5$ Z`ƾCPpFK(]HzƢq[d%m>o6lu(h\0~ lXj1l$QՔ`n{}ۜ ^ C1Qۛzo)]A04YfOWӇ1>Ștl$u;9+s4ONIgCͭz2s3,N;bN1 0 7m~+$ϬN;5;¹:7Yom:|]a@V6ĎN%'Ykg?\s!鮲 8ÿȗjb#>ե!B~"&S ,!YpVW1t^C$' >">o:jGګaQd RCWku$-uNf]o@xtk7J *#[,'iXAt n .6*(35m)yuhK'}B&mVR$N?}n l>;x J֩.x-ّ~oC>rͤd.t"0[̧ow1H^ͻv$˰QmܤOI/ x7\٘Mt6,h>9̮leވ(L'-G ҺblVKZ hNRk+^kF>J7`08-<•R2c{D3&%v)Vó-0 Z(qM9|G>е }=4=ݝVtڣƈ`F"1kXAGk]_{?CN흏7d8DFYsk(Vd KcaJfzaHh0Jʓx TF"^Mb^SCHJ˞R$='n˶|,G:XAIᄢ'nˁ?'%)t:{/^>a6h2w[ɱ'j25h֑;lCEnﰭVf!8CבNB>n衷G$W4ʂ+N}(^Z :8l  9c5ΩET`Y1bIv0CA:2r뵂ķUX`.S=u (|#!7,!kl8,A ϣvPO3ֿaI碞T# τ3_5@s&Ogn7&~tІ;Kh Vּ82_={wCEi(S_^J +ڊVxDϝ}i])Mۇ5]!e= ~$jw>$7;' yP{oY>h!<ҕrR'[K^ڕ%2 `%G 901[I.dd]j~S4Q> zeھ͌^9 } $A&7>߹˄4&f63k0˒ @D8uZ_l\,Zvoٴf|-JbRǼ wӃM&_o9gz/2Lwę]ӈ@pN0ᎉ3"Hx;0\Xc:∷q,1X0yPz cu.ݑ-E΁kR# ԺH$wؐ#ZCx_ĚK9@w1<j8]k!_@GTW~Re׍ ~B z(C" +V{xy_ibyMl(A#H#{BQGC_XV"`8|QC^\*uSi<ˡv%fS ZZw '9Ui3vfn~oUU2}xPʠ5Qzup)kI:Gz$ak@ rٽNF+*{q3)#Bkp?gdQ]=?Ț6*0G)!)!OƲZ6cj#ޓ @I`hDC5 m5ȟ3N5FE/f2 cu>N~/C^SM-q'$,5`c'ga ~h=Y]d9sv5,hA揜 ^HTX:X,R7fymij=A$6Ly+=rw#_}FB8|tgA2,jk.#8\j[inMbݣBhqD0(DD;hjtY[bϏC;wUzcA5y-ц=jhdFɲ"(Bld7 ϼŦDozgnfb @>-5N&|b ;6: f|I:!GBf"eR皚W&N6%Y^;Aڥmxea(re 5jMR2; ]8R[ARvkakϮR]QWfuF`Y[6>7H*ȇC& VP@L*5`ڠ_3T$wD1Hlymmup9 NWc!T{6/y _ܣP?XdgUĘ&w=Eu8I^ [8I=q@<"}2fFhR3؅D_Z1܊+@VqJYЍ]`J`Nڪ@{4`Tډ/1y5~Hx*fZgngj3׏|_oWGv'I 'aot?l7i& Ȑ[*=B.(rg.Jͬ`R'NusF|D5,żs#nj2D˞:ey\0mTGCQҀ&A6wSSURpD$NԨVr{V{ܳayFJw5Gs9$@]p,tmŃk j4%)>owԧjFduIboa>qwf[TBIˏuә-CT:hG!цQr9t5:hEQ2@هLXoǟfIT=pb{lh͡%3F{7]kSo _joPy9Z:+{ObܖN$n޵ǖaɊ"i Lv$Iru#LlThTFs8,W*hZ)TzLt_~zuoV'_bn{rs|z(zBg.l8w _Q7V$ҵbRlП:"c -NX$."zpǞ?p2S{*/rz6ab"˜6'5Ύ'x!nHraA]@kSv%/ ퟼m!rkoژW<%c8,W?BEaLYjy9 ex˔ +jQҋwp qHl{KD8ez.hCHKƕ qǦ3dħ'go>RgLƇ?3sNftNΗR{)Hdx|՟MST>Hu*ڲ i@ֻؓ-ͬZs)*EK4m2C\NrRr,ѰR<1/K7fD} ePE0Dzν1I(+2A-I}O(<%oNAz0i4VhכMOzKمO=6'UOдi]fҢ̄*:axbkd !3p!JufP\/Vpm-NugF5H F@R!%AK\ iF8i~r7Z| #h-#XIuߦlVxz2i4ɏ"!_p16(u1 PKnҊ|LQ<-ΥV[R%s4B>6lkc `9wCs/M9:;=$Z=GK~+ K{tCU/)`0lhS %+b a+]0(.mG(=6p>\ikZ+DElmMa[I[q^c>)uڜ!AosDbrlZLSG#FUM&<U>9u&M5r;BMfM2t+q-N'=y7 BT/G)G%Gx*4K"xffGҙ+PdbЭv&Tv hhm^h6;=Hڎ',Cc,su=R|mU󒴈5{o%L6f8x[Ze}Rq4{2@%ISJ%$Fa%~n<Ӌ$R; "8-|S7ba5>,N{_ 6-H:;4qlC?:dJa $zy2>u4|<*<4[<[~nto'8l>NecHix\)Kw|zWD#vBTmpdu}VNA-֦Z L2Cw1҈L r&9k~xR[.8勵rFF8nqyP|j]t٥ xa݌pPT^DʭA[$^ ͗9"Bկula`с(cx|ַڍMG2-(gJ34h:rhlll9Og?-]unFl3 5a,eU[ QxV蝂s(AHv\һya8`2\zV+ oXM1=06JKv.tk3Y:X v@drfcL8G3هf!<狘ǽMtU⫰lU@18S1g(_Z$t4,\# VPi9"ECE/BrOy!\ddy+aUI&NWu;j04UCtjwk51#2 M#mvp_ GD2\ٔ^" s HA{A)Dh, 3ޏdPA#`9гF[5Bެ%oL]}36;QUPO||Da>> jڃzKUƕ4Ȗ' 6YdOhwL}p c_UY "YNLBT_A24wx]JZSn, )4Xe`JAeauA; Bx~.mtBr%r 9əٮm{K'@>% 7~#Y>vH)8SW:Ȣ}9Xt<ߛU o-M2 bH>ҝZQnmkcgGrۄzAȴf[4)?iى1}n>Ug N3`4Ck sApWMJ1ңmzՉ&OY?4jmxNӮ7iѢCZTm}3V܄F蹹]-iXY@KҮ^t7rrxqra{ psoRylR&![ Z\ 0g176Ƥ?\ H*jͣi>6FS?2ܲ}axHsR?UZDH4+ue=p? \ t~zYz"=Ŀئ͊PTxg?!]whVU$V ;R~'+eѳ?XQn={2׶gͱ]X`iӴ㹥@.%VjbY?4 n]m|t%74-alk)U}{@F#K;ARuz3,y 83}x :26X1r!'Brf5& O\W+)rݐC4Hp<"%eӺVpC6_/?;QBPuV';}|TFyJ5Ӄ"WZײ%8rBYNs0?ШpZTEG!ٸeB~*Ӑ{Y!^l\gFOR>]3׀?E#) /!w(B ϝf 9Q>ة\d+lB9TVV6}wAEݐe#J:t!z͆nlwծ~Y@2ԤSU[\O5ۭI37;} G/uiq?\C]Z M;am'-I5H_qg'śj ׂk 7ǣ )nVݳoΎyWP{T9"pˉ-(.Kъ=r'P9xoXpAfg x8XMɑ囔>I}ԕ:7K= S), g{-"Ӹ0Lgy,4\&PXmiξ\ WAR{ggE1yx/E<rC3LIJ'AbokQ@vVvtCyOT4}M_G*Qk^ {!_r2d8n՛t$[dkju2wFEuA g(qus?vi8QfKCH+AϯOeϞv HԓCNӳ'Zզ0ZOyXӈN*299jTlNޅ`e / d֞g~ EwK ||-Om9$^)7*mJOH rϳͲ '4tHy31M9eVpdZvQXm0nYz $_sy]dQl!)^&CV:Z[0SIYVaZ^XLK!HV{v$xG^yZ)~=0eIt撝v{{?zm 9Ɨd+ȶH(=a g%}tpDCU}zvA,ש$UX_]B }#ӏZ\{0/7K`eSu(Yq́'NVn2WAuN.BpWijU{UP Mb;RrhG񡼈ifI0 oTjӵK]?}GQ3͉l\fɺEDEýO"_M {k/MK"qB9P7escHyG{BvW5 ȽlsTK7d=㞒%Ǽv81Ktو+W RRǍ:sx|ticaK*+s7.aUi,pk)A|lQ`!zyĎӬ}3%?'8-=] S1⿤I|,`YGbˉc/6s-C9<~FvKŜF.=˻%dFgu׊᭤=05m"3Ҭ&ryp/1;f^*4j}BJYR#> u\iNOp}0~O_V [-4r/{>-I2e 8Qy9k9XbIrHY f6;79pgB7.(lqyH}߲a W48wГQtmZraRȟ{S"w$}w{ϧj\P|K]JUf nRic8lN+E( tscX[9rj1Z[tK67O|EhHJޒ힕̫V;:Mo9wY¢ FylNX %4L*[fiP^&:CN|&+CH 3> IJzI5faQt9@A?KaٰI]H@B'>8?%,IӞs1Ie)-=B|4IGzѷYwŶX8xN$B6WJҳZYGIߥmU(A=,GZ1ʨT/-+9i:]z#R֎ٖ:U{~vg4{ ЖyxX:Eg0>M;InVPϳ2u#׺|`/DBMpw '&*Zg\:$ytřGZגG `kI;m \a-_]a)*T%U"p;dt+Y OGS-xjdv^d!to]\ZfTqb s:a9guӉI}djZe`ʳ|8>p>|V{e#?m-K ɍxhLubBDp7> tdiP5Pe魤c6<,zn'v_ s=+gH+bLMF8- z QּkW^t҂nǎ^-0C bErouSvh#NjΧ֯/d;{.$ާpo A)cD ؏\÷5 uCg:8؀[l9)_χIu¢ Yޛ`tJVmԛLTwisfdxJTm|ßzp< F YaeFo W88αq| nA(z沱rj{ƙ48ԗ/|Zn=Y]{~ I#,Pac)JE*Ny6Ar dZJA&UI&-\Sjm&S{,Lu쪡h$D~8:ni-oJ?Ɖg= j)OSzVVH -͘Vqm(0wpصlLgrP$VlC6HՍɮXd*5{P sTvٻH? _@d :gYF^OړH֞ K+fG5 >H %zfD9[%)f=w'|^VGsbchyR&ߒ$˄s2~O ̓VlVYڭ0^E$qI-r{!n94`iO2D3e%RPIQy9]vcok1FO#0<(=a{\0c x W C7,d*(5` |l-j,󸶢P=b ]JH#|T}1H'AhUU5m5$.X*c0F<"euc.s0٘V6IQ;TX N L &k̡ JXfXRT`0NVe^Ma4>L 'ٔOR:sBk z=jIutːx!aρu/qjO@AE/ޥO6_qk$/RS:9|8Co֛>MiE"l2'bG_KXzs/㞽kրA?v+L@K5R*FhR߯CXPIZ&?Yy_gVeo.@<4${>Y#@GfCwE:֙g`%҅O.Vݿra~Lt Um DӨ3<%/j!v7]Cypf;ЬPກ 5gLb@ C& `v  ŰLF'm(/67U NkHCbj(kdXy&ܝ&y I|X>`HRў6v(ӿX+5EIydjkqKlyQ135E)A5k/d3H7'7u$oA.,&c iwȠI{$EW2ϲbT*'ٖ #bo| ]al U6%I qPa֭ת:en,Fjğ3=?l+AƩBΘHL6Evc-lwX|mC>nFim"t0dik7;cj\Uc@'f*Qhp):Q,j0ir l@;kGEB=G#gl{XT RGh r mbGz r=RA;f.Ƴۂ)sZj_kD))btG.%7sz@Rܡ19m5/fvD.R3&)^ տ;,[Um|<6^g㩺ɽ(PUpW3꺸ZR0 #y[n$W0Ÿ䙏QDnBˑ'X~i}_,% kٛ$l',B<#ic֡ KHI'XQHt PE:TNC\?1eWo&4}P>mب+F8zIi06߯9SaVcfb5RR5bk ؛3rOkti N>2:>.vuSi a}lǓ#ZM:TUAR9ե@xP8|HlX^m"9pF|+3?OZ/~<,=xMCd( HPjbK\ZyK# nI]F1X++d[[j6wr X+[$.=)XYoUQX!BAl)!ڛDf>oyX E"L/K &\ZH8[ ]T"n$țŠAo|x\qEROL˿>qA{TTZuENPUF:&:$ȫdLpG}3Nѱl$p67uhDl;p؎40Vԭ.& Լ:?&ãZT5qIFeDw6vv;6rR?| qשgЁ 2 =0[I::l lY$s:XI IRh5Yb"I槟LJ.bsOm.9L{M,jvsK O)#oR-<ɓ?ti!⥽ʡO Z`kCHUdFGo7 0;gV]\z䯙>5UN&-kL05{ĺݬ4 TvDh'4;@3\F\,|zaFO=wijs5J]SA1/hgesɤti֤ *$xP^m3Ua, h١OTl|R*g?#/"ec9F'ZJj'k^\!GR1-F+nG}$x!w>4] 9ۘq [|<į_Kr?Ϝ*ԓXZ,yT}&ul /Y)ƚfC]^փ~O+X}A .4 x=qihiwf*jϤ>q,[i oJ``܇'tAWc|x*SʍL,󝷠BPaZul7 Yf0i4I@S13!Ξ$f{#dwg$;A F. cq)Qjej{hr'A9X1-E.:t{94cwLN`2?F秱F1[,RG԰ av8V ~&nCuFdXQ1'bK SNDzke"ߎ˵b?ڸе-/>$ )r'dVO=8{ ۇNt,5Zz궘c)sTYQr67Ĭy=&d0=_c/˛k%3'J.(}к:mw&0~m}qs Ӛ~+YO'"2ϫ0F_EZq̛asH}I4ÌI9&Ma>k{Gy9aHJ>kEC>iL)bµhg;r2it mu5鐇72D#r-q)YbHv ^ֿI~/Oв;I Mnw5Ԉ;9)lG^O7dG ?ٟOp'ycd{+WROsoCmi W^)vs[n5'猓,*ݪ],BXOJ:D;-vs-y!M3Vj4\)HYƒ EjMV}z<~^>%s1_N;J.f rsDЖޓJ~L~{lVvab P7WCuK-[9 yI%arqhxXt b<G+yI'y0MNvR84u݂ C"r{<stS*>f:RP%/2y=YÙ8M{BkKF_w>0̜M YۯO'LيJaUzYaGV|\? 6BÐ EѱA:-;ij->C?9L; <>Md{cSAD7IpKGնATZBUnՕW+ݜц' ;sĶha3ĚgxBi唟`\Y#Uџ 6bN=?vg:ev0s+z+):~NؔN2ZlL>/P.9"os06ig| ZleMOM"CΝqn?٨%n(P 1LI.VeM6XU~]` >GXtOk^@>ZNц~nF2?oIfsiبfFB2kEDJIU83wg˪U:J*ouv!BŀS6OKŷ=Q9γ(ɕ̞k+@cD2 d`)T[]3͆458%̔P/chc4#Qy [05]刂;G7cuVƣTJv3O81(^clhQSw-C+D7`:/F8q@uM:Ӝ4K'A8c+IF-BKbX$dzw \!Xd*t rN*f\PjVg(ѸRmD {9aS,Ϡ7hkzCRrP-P *`X}i\/}r^hpFJ퐠[ VB: hB.wL[Zu˾Ѫ>. ILWz?N r&Rqg2 \O(g:)p48r7DtaHie]'9s筛/auUј-f %$}HwZZ$J'_ܒDD/3JꖞdK^"A/#C)ޗqbI 'gn_8u55^]5vKbռPnnms]rkG]G@]wfP&4d6+z'aӨGzH$8{q,֤oo Tr5Wn[һw}=8:Rƻxa% !}@P뵁cZLgd#83Po73N>!{G:L6ໆN8֙BjҪUVhZ1 x! F:Qt 3NaŋKθdr1?!m?cLkzB ʟZ p5qhWq%uDS<4gaodA׊fO'IA@і= g2'{az 'dMZ _t|ڱ&t3K.8+S kTī.6]fd/JY܆$u>Lْtco]'~7A^%vZ[?Lll%6bޮLBŸNm&vDs$ aAF!i'>[+5My[R?Nj0'=<. ,K1CRO؁n$h $@m+*-=9%􂏽"!<+n(Ϳ,VڪjvBjZZY# ֚Vke׫U9ߚ:M;?Wjj+u^Z-J~pFz -GW_mzYw*(}p\ېXRގƟ7 zOnߛX8?K-L\F]PK:cOHzZ:udtA+a/X {UkN$x{ŎRV Pi*6fޢUv-қ\~gn Ro{ "Z}'Ko~v*e͛ ՞D%[HV%ӧyy98A+qػIdrIWRf_9:ܯ7fMZ7M7/?*6pAR Y1􁾞GLኞm<J|ID|yɧCWCM؟MKs Wn2=s6L{` xKZhޜ\Qt.<$N~Mz64_Oχs[`X谷T~ˊtМ!x& @B`jg('{U}3MGVIK! ▜w^#8e;Ssy)񧳛dlGƆU#-ş&yQStGs魌s=m>\oxBAy 73Ǻ8//(NVrrW2,x'w77 +Ib~/OrF|zt(\ 5)v6V0~ 9p-z ?i'ӯE|L-)YnߝDHYRZݮEOVFZK(b;wYZ%u=4wr\[jj, jVͽ]i2㑂upo7Ab0{+LU%9$6`sR:ϛ.-4KGL8u!-:3#]i)Ԝft/">3WXDTqAz`}Q7[Mz᪏E4@΂शLd,{>[6,cg 'H[0=`p~c8L;v!nR֬e ެM%l#gD4[cY~ G(.uQWce s]/ /r\db-YRĖg9eONxim 6<=+p. (^)TZi%C؀&o#9Vf|B鍍Rb(R &+ =XJ&,tyxvԎ'/j$y΍irƃ/6Öde[[ЌEIW~QHy9cUr,v ~8 ˖wх'YM`@ B\H7upM 2W:4Ix"s|(ӣ_.Mi?Nj*OFa:].AD^Ʌ6PY)9&7KۄLaоY6bNf}󔹒~.sv"DŽsX%lq 5_-ge,EA}PɦWN>$fΚc?`__a1ÔDG`A~Hi Q:yMQ_I-SmIR'HthmB;u%s8TaQ 5KcHW7g|-;/Rx>2zRv"nҬx}ij^s?5OOk ݩ-G)pPƓlEyH_0 ;S?P~iy߱xA.'lsXL!F}WL ţBgՑFWwՔlQ댜oCG[;,o`g# 0tQR[Jo 9&MVMC& Ыfl/$ |~WI0089nDl9s029ZՂ\!xQՊbvѓjƗ3 fz7|f RN7qc"KTӆEסcaE>Ne;Q'{cg3{=\btkMaǡ? $K$BVU?;5Z6: Qϰ(DI-Uz /A~l,*\E[r{d$1#`/:ҏ@R__˿4qg3^vGf[8:s*kZ!g<\ x+ˍ t-rg=Pٕh;46z@-]oA=$+)TNt75x$Y Np!Mq醘g\Z숃jt%5[\9{F|~|(>+JZJB>,GHDC0f{{狹#d{.`Ӊ7Puq@WE? ǒf٠Gz?3#8x;|ly}`p )?s}InIw46?P^7{A* (p6K/TI%J)Ά4ߓzt蕳%c&dEŜu߂)=i #1XsG0 ҎK-74 5tW_${%_7VзF(d7ۮMN[[qB^ؑ? +xcf:|oI4"ERܓIz^IšуP@377Y>٩_Fwf., oXOa rz)v $6|kG8<Oˠ7UXHJLՁ>Mx܂Mz0lZ$xd%ʩ4@e8.RD#q|=rdm"s4cq|#W;E1`NpGE_F+ъ IxBΘ`J0ս}MGq9!(ţat=ғ㒔7ym e7C@]YDQAj,%l<ؚ}G9DŽ Nىσ0~oɲM^}Ϳz ^_\K9K?\ޜ E]'$'st <CQ)}pHbq O7pQ :)tiqxɭaX0A3D@SQۣ F}@XnvwL:)_MJSȒĹvpCfRۂ?يq<tLrZ(xxכSIBgۛvᛃHH%AQ0>Jb~ p!q@{3̦C3iJ}/ i@ O=;q9;94w%骉1>6q (\K5É;nh*u@I#C 6h#5{FgDXU9SKa6tW>+x)=:8+){2SSZ E(8rE5rM@^nQGn}qn]NjFK-kt*8W =ry4PviSR[Zvk$òs3 gF(N{F"|Hc88wz%΂gˈ}jt>z ;`\IokM%CO[`PL%0P;{ÛLf F4:yr~W@~w<^L\~vc7¬=x|Q]fZ5+0|Wd?йpQD?|:)x>^kxe'K0+ 0xAK^\/UW~/֚Vح%xx!mz>n8BCHͰj3Py */ X{;z/ 7] X d/-Q[2.7Uu w0Q OJ;?i_% uʌ*/d'`=iW-D&U"d$[T +)6\ gto'.$a߈Ζ$[[2 SZL\byBM㛘xuGP#L¦q54~0;2P#l39:96h")V"@'=_#s? @_M7@*1%a]M!3!$⊆9CG,8"$55j6Ϲ{϶ZdSm6c"YC܊#) \s s {ĬÏ%o<9{w"`bR2Tp Pq &{q{$#P+&-N 55N,R3Rt^PWIm(ܞ8ё$:sr{oQGb@E"'P>} o0XV(8fK|+@3?b2"bgU? ZU_ waqO6WBeC\Gc<oⷞyOW\>cD}~T^la_U޶ki@Bb,MƎh~gC+_{-滿@aDbD)OuE Gwiy8+x4 4x* 8{z:suHO#\[zh:Aˉ: Xϯ%@Nkþz5> /i֕3;8QVO$6*D?~s{fDMG٫7K00 !gVP(=(WQk-gf6'.$do}76Oe=Y]E-Y;L7?!'p+"F23Zmӵ~sXWM X1 : tmqtqĒ{؛*%ϠQkүP:@'ЉAr{7rot/+fq'7bmlT1uh:O8WZ' 8cЪVn荼Y]HC!fk-#xqEFh䍑:b{@y!C5'X:} .oI 1qGTv_K'17E-,G\JhԊbA[lR r<u<Ji'jϘa_эΫǥ`o$gSP)ĬѓAgnASјNzBӜ U0[G $d4i6{9YeBv\菬I1,c %/|:jRHF|.t-h2Lav4{Fc@xFK)|c|ʂyB`N[u]{^[mt MzbFmwM2|㗲BH/)T2ILo?#ר+߿8\~wFo5+9ӏRf HT*֔o8U\jZ55.7x_A/ $<^3l;L+X^Y57ߢisAHG~Іͥя#ЏuH:x޶| 7K=OqxUε\IDw3 J~B`WY&A|FsI>i!cn1iNN4 < q~\&X]{0әKed-аiFq\3GIZ'CBBD8 a l<@Sy xR #[<2,!?ںa.JA2B<1J4a-TM ^_i >Sŗ_`Ca$A*|W>s, Gcڼ τxgyū+hkToMRy4b<#V\:+h:%`LAd]J"GH]vW[H֭ HPKwx"2 )Yj.r剾YYGW+3W!iX RK@H"$R'z92R7x\ոdo3{Sf;Ex'ޭ&nBvdeZdrB7~% oF[FcK:qȃUU9/qy^roZ#22b_H?dN&' yUܘbҹgzu4Tn!?׹z44#pE}{ Kʢ P@ κ#ΠNSA XWT\wGnaӂM | ~5I޻uCpE#Nm_ou8xQS,OT=a(rodh?.Ѻ~}O:߾qtiXRt|(gONDGp,gN %3TZ:zk f(23)i,SbxlY5eOV]Z^Q;T-A*&68Y$Uad<ѧ0 jBN0闭\dd?ܦO 45FqfڮSݦ,XEtQ l)΀\4ͷY~7x1wsҤ©>e 3vc̥̎0"$Z>n/zn_RY;n'9,Q?A aHlzN e y"kEڣV욃CBȠE5~{2=l :!6[ @9tZWqK:U+4YXLq2e"z5ZfG:g;Ȩ>=VYapO$'Rt~3ؐLj0C]/8XJۣGnxl5?NQ(3?[EFc/A2.zǞ~tͣU]w*щ_fsyf/ĉ{DZO2z5c{.ZxNߧ ]2d ,?:}}r/b !d1xbK*/?m򲝾7R<&zR<ҺVXSÖ%3U<V똷Uw 1xjC氫ZQtyCN1[? 0Ÿٚ`(2:4x!3fz᧋idl?;qxWf9wDK$nt\ dCq}!cZK#;hǯ%}~dF5@;g%Ε" _,'ne6,AH?VX\,h-m,`zani\9U\BC?{6j NDAsErƁQNZBXhӄ9Nx Ӯ>6~401W_|?[2m齁?0f-EQg 8D3Q?B&4=^xy^dKxᘊCb5ze;= ^+{oҗx#ݴZpPx|zIY^L`aq\ jC]2g꒲Ыc;̏|`1_|W̷潿"ub«}־KI^gg7o1l{/&zMz/P3uN#Ӳ3b,Y[8FǘOS6m`ԩyI$ǚ՝*qoOI73b]c}Gǧi6z_|5qzb@[z)e~Tk gԣfxoUɪ<6&eBmBX'1T\)S2\&=Zs-)(,F.0Je8]󋡒`Sid8?_]$2- 鷦~qLX{!#{1`CaCwi9X DB\}I/Y?rP2X^]%5>J#$$ߒ<2dXc=`\ӲGbq0h{0ttympɆ2XM(~8S|!,MXlkLIba}qμhxNo^] (A:rBMSߙX-Hj$;'Y7y7|λq_LV+x\ B?i?2%^OEH_*eۯ=8﹕Ê 3-N p0{=]̿,ki!}#&=l4[$+K<2v P'v.TX`֦x{vwo4X<"94jٍ.|`h-=,i> hȺ4xpCy~t??li=?jXmZE@[zOÓ G^$f n؈ `qV\9-=%qjx+@@L i8Xo(L-;#OY% SxZV~v,b>;U=Eu6 > J=-IgDFvh{o?n @-6e2!DrV x>uxϽߣ)n\yHjk46j{a)-ݱcR/>~GSSTEdNزYϛ"kckc~UvՋ(^7c]9[:_o}71TWZ~[>~~w3Nku.-rwAű ptoVກ!~OƷj==!c#Kہp #!gLvǣf`mOV7;6`p9Z JUuO/ˣA2 vc{ATlco76덗wC/IXj Zŏ~EM fDG=?zJB: [~Qh  >N0WA„.8:{HBDE"ѫu+ʞFz/CH$QrR=K7m%/کCȎ=iHZ{WR2Pb:6jE,͚_+ Ð:^h/Y5\ q!^4K2#Lh6qM#xxo@ =a6+-QYEmhS4R9<`.m?ZϒmE酞E0,̈ )D8ZiAJi"cv-^cve@8 ?Gf