summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/xilinx
diff options
context:
space:
mode:
authorWang Hai <wanghai38@huawei.com>2024-10-14 22:37:04 +0800
committerJakub Kicinski <kuba@kernel.org>2024-10-15 10:59:23 -0700
commit99714e37e8333bbc22496fe80f241d5b35380e83 (patch)
treefc981dc6a7eed83ea0b0b73a5f8e383b6d1fc722 /drivers/net/ethernet/xilinx
parent56f51dfdff841bd07a31e86834283f4fee2f8c88 (diff)
downloadlinux-99714e37e8333bbc22496fe80f241d5b35380e83.tar.gz
linux-99714e37e8333bbc22496fe80f241d5b35380e83.tar.bz2
linux-99714e37e8333bbc22496fe80f241d5b35380e83.zip
net: xilinx: axienet: fix potential memory leak in axienet_start_xmit()
The axienet_start_xmit() returns NETDEV_TX_OK without freeing skb in case of dma_map_single() fails, add dev_kfree_skb_any() to fix it. Fixes: 71791dc8bdea ("net: axienet: Check for DMA mapping errors") Signed-off-by: Wang Hai <wanghai38@huawei.com> Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> Link: https://patch.msgid.link/20241014143704.31938-1-wanghai38@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/xilinx')
-rw-r--r--drivers/net/ethernet/xilinx/xilinx_axienet_main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index fc35fcb22d94..d940853acc0b 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -1051,6 +1051,7 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
if (net_ratelimit())
netdev_err(ndev, "TX DMA mapping error\n");
ndev->stats.tx_dropped++;
+ dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
desc_set_phys_addr(lp, phys, cur_p);
@@ -1071,6 +1072,7 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
ndev->stats.tx_dropped++;
axienet_free_tx_chain(lp, orig_tail_ptr, ii + 1,
true, NULL, 0);
+ dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
desc_set_phys_addr(lp, phys, cur_p);
GMKHSU~QC(:805cE::_&1le?mlQk)u5 Ǘv'>Hw{gжsgK|8RB=pXlgZ`W/0gQV?)5`^-O Hc#Ӆ>UiS /](?lna 5QHv-(Yp6EmҺA;w{ݫIUKuQIc$at%A(S xa~Xge: }۾u4!885~& R1g]4U+%WjhxLΡ_'"ynЫ,s;pկ~Qݨz8_G!$0UskהDFuzLJ[ ϨH }DSĵ+d ,aF2j"LLS%*V){t/mՔUԤ9A`J D.nVs[ *Ohl=;'qxk & p_*@ /T{.C;nmL4fb`3iusJ0m'3mn)"yv8poNݷ mf눹aoMug[lx1}_g9ɚ>\->#h.@%FʪX*w\2sMb-esL5#:DJuj y%1B&',9(F80u.2Wϕߢ-F+` *3u8>Ap l2e;H_G׆|/Ǘ^9'}͐'.5B` V@riٱf,C: G?nH~VCfc (WM-nf.$nD8(q &'r9oǒG4CD@KE 7jhFB~`$?n4wZhU3SɑCLP ,&oĩjiye1C3)Ѥ(1hX|&0e/ UfʀYTVp,z$c'T1&a"8q<[vd۲ hi=UG]C593J1>lHϳ˧}τq_yۓdjâm"dd37Ec*5/}l&E+%iGElc ڢl`T2ti(xR399tkUqUQ_'=롮%)nM%v n5N.ٜdlHʚAU-pUpkڔ[Ms<M3kИεDc>u\BEW{إo{-Yb8SIwɮQc}$i8%^WrlvOU )'*w_d'[=[]m4OQڼ7~'Yq,CC!01RJ'z1a}% :m G ` eϟȨʴb] OxopL?)|\8sK.، 0g50674VSʱ8iװnskvc^]-Fwiy4뷤jgWcԡugAt kYeU:f"uY Wp vZ`qcgzNy:Zmӎ\aՆ}O~Vr͊[#xٖ U<ԯ5C,v?gkN|.oh#fOa1ӱ^my=R症,,T0H]u$/ O=g54, ћN'9H;fX.rf?h- pm}я\8VH_mw\A F*t:Tv+ pbm5`U,j*AzUmmU[mڪm9m+VT=NṒȫ4[k;wsjmmMےH!$h UwjѭV(*(! Vc\ۅrLwy:ѹȵ˔Gk[r瓰#oI,|Y+JɎGyvWl#rQƫmh7"\ {hq6Q)@vxGSU=3Fʥ" pv5k66q.;I$I$I@ᇆwm_ָDВ1@ D~Sŗ|B~2̿şcфuNٛ ,^A"[" '."09l@AD#daE?Pf)utAb@&'H,@7Ȯϓ=6 R6ڈg?n|m6L ě2 م  NVFZ)h4۳+7,O#FP2Dyp.M0?۠:QQ|tP*CJKR~IwS?7s'(Rp > z >3s~8x5k.+fyb#'I-pS˷^b?q)EıBҜht,>r]뿋{7$Nu3p_?.v2}ޑ>xS$̻QEkb_ UGx/<)}^(A@l! lςl4xk[3B?]%€[1 W]gDoOZ󫫿koe^Yiig?$̷/_x=sb3ˬ@usuÉv$a-!y4 Q'TH&}YX;Aʑ3n!$vq p[&gLKch#\XwyE M=P8dQ/~o7+JɀqE5徽]:EI#%n?GSJb,0t pNx?cJgm(R-B6Da/FDth\FKq]랗a5v5Fھ]r1Qɟ3hCߓK0 % nb=^wBL@j^m"sXxljWz0O/6D{0ȏbpBH$/oWWft 6owӗ^Ne~@ d=2vER.j.jt AF} C[]#_¡e ^ԁuE>T=~~UܰTj!=u~ޡ!:OtdC`oq(>oxg9/tt0~sV@VC+RXG5up uƟD}#.?6z_Q;rۜG!sR96wIᶘ0@_Ehuu`G \ĪVmAk;]R D"#Fk]-4Ay3ֿoݝtVdz7 ٶ{U[ZG>/;MӕDހ1zA7"*6̣$viA~EU«@*`R#a!Ut GkS^R{7{/?Np]۬6kj{?;g22XI" $r=F |#-gG?z|n /v/F@{}b`'vvKA{t syN ;Μ;/X,cMTe^wj㷂f0xw̜j48un"3:Q:fIn!%J;2_W'Ɲ{!zj3A]!Ϗ9JT7ۜZM(a;v|GXm;m"q`M_J;6qDqw덍p>=y|W+:mx멖NǏmӼ,׏E8:ݨѱΝg;y}:D{Ѐ|dīgmyn')3r˲NU4`>gZfAv:z:_ʗsv9ymX nHB]Ah#(P[>^v06!Y냺骺 w+̵SGݣ.nvqZh-mK"zg{0=k~|~9Z;tV4FÄ:2ϏcÏ'8 s,:}-Z"nfvl6.!*_}-BuogKǧ֗tZZp"7IB=/(S_WIՇ7~i&2U:2C!s!g?4ffmp:>ZX=UvUnv'/{Cf6#-'KLm\,#Z 4K6zUa73@۳ߢ^*]D):ÅPUhOd[P_6@iwF}Y@qF³Cҵjl8{Adt%3y|#0TۛLfErN`13{$JYu؀` G'qӡvBl\ P@I$=Nn ^Ja7OlTqcK.s:jt$F?͋@%=ƂU,`9; Kkb͢OWb~Z'ۼYzSVAZP=o`&q GPU Pyz|Qoǜ{v>-QW}oFNX] ma+{ffBw&QρvJNk9,R@t(O?+ˮ[cIwѸ8ٔAop;pe<XO`9Hfu^͝"1]|'V+\dy78lc A(vM fvHwpR\m@8:M%Biw˃,u Ci(yL" R;-;P-C\>IGFL ͫh[ -`0em Rq0;r3i÷qTp'zW.͑q(b-ה3~'g=N)DEH!y~psjͷE)o_ծ $J`5\8AZe̩-a,uQNNӝf_[ZDDED%) -u=SH {P@"KT:oO:d4]V)< Sl 9s쿘ܷ~Cmggc?cRRlt䞧sfшa'/BŒ!ɽUyƈ/!@Ao=BJ {#ZRxt;=F{v\2`kbQ 9Z8=~.ޗ7srp=& ;b)v^uxÄ؋@Nހ[ WFs|": ۣHbJ"9{50[l➼@D .E]; áA[6 -;!u ) d6N# ZQKܜֲt?p{l!9l͵$u(2vnAi%C4z&*wRҙH. WOU2F0:}кW:AwGe7`3u ZέP?(=m=:uz1G7=.V0n[z,tꖇ[cZj"1o.I wu}v4Pg*kRzt{"9zz*y;χ5 {+׏kQ5 hβr91=\ 2zEpBꘌ_U4p׫׳eR"ôg) }Lm)ᐹSpLwVm* #?0AWڿnN"O1 O'_X[(i .J4!iDW(Ë&|ycUc 1]$.aDJ%+¬7$N )Bw=NS(߰s;ֹ~[vh"2Pb5(\n9 + #ðܷ.T@aR%:9K/ܿ?<?$( ;i>Z u^eύTtm<, :\lF Ƀ*5sL{UdPyl}[^@+Rh.m+2Z;`x P nOW.l i{l<@nUEZSȗ䒓 e9|Uzm/>Y?5_-zOc}Rx@^F7A5Vn" xsy}%G+B%Fmb9p>~3u8ƒxA7k&<" 1;fK" "0֕ԭ0Cp#oorEC3ć媀vs TGp/}|DqY#\;QUQZϱh4:T [@\6Hw]l/-rkQ` H 2.Ő; YTD^P\P/Դx UO?$$b` s<6Q:"5NVSO[.("9¤!ܢsU$N!{'SC˓ySOZxi!"qx{|1[>^6H/U*pzxjoz.>ZxFwQGF]vVUpew,G3Q(:^iil!Jz& 0P%֥ʶu'קw#_r7 2|1 ]],bۃ^-EY 6/LjlY>mEϒqú4{Kok冧Ѐ_]Mz:9 ߄Z;\$'_%X4)P~SgVAsK.0t.~͢\=V{z/ϫjQ.Fv$ [~l4@ ؼL < mc[A j 9:Sgv9TLbԀ:5nC,W0 W"1Ż!aӭ3DAہGnV`@O!DZhD7m̏֘䂢zO7JhHD]T*gQHw9Ru[DUxTX@l@_>]@9}zD홴l5L4R~B|I2TB'`7P52\,7o npkpaipD肻q Cb xWnx@nU[lvݶg1ˮPkhQ Ԕe 2D]ɻr`6\(|  n _ߛhz!'}}mA,vr]J"(ʱBpǤ"?0rݯNٽaF-~mzZڪG2 Y z%قª;/ԃMJLn~ 4gusz5gl,;~ zS5|pv|rxvRL_pWM F}9ؗOA}W5sĕ_f9%cctW$PK"l;aP\)|s܂9u/Ac]$zR,6IJu5s6P6Yb(( 9T@[/H bnCp̓Ts۪A_` A`p;>mOlEKꏨν4앣LvI@&G N#蚍=0kE;S˄PW6bODaiE*܌GR!X jv|)ՠ7N4=C.kzvF 7j<l}5 _?7ŏ<FBB[9Ⱦ %ulbB8irQیZp 3݉vUG&yQ "d,*㧆wɜhyqD I[9x2|ɐiưerGE`B=]@%nS^x"j Nwz~InDwׂm9`)j*EArWW|8p fGȌ߯ 2 XSCisdSes_N; lz|Yn>~G-xo0H|::u8~w}H6ޞ˨N^wOnX"`ؠzDl~RցeU]#Sy~3aoVL!5Jd9AS> i0Ƞe8UIC+\0P}ϨJEO$9 A)*|k7)LʔpllXYU,F >]m|&|.pcs jMwj#VA;s͞]:\*wN -{&h߽ڜ[UR~ 9,>q]NV;axz gr{K:?HLgZ|;ך{hle@GYq}Mv֯ Ք%ıop&::%mN7Vf y?#Xmy)h*E0' YNA™8׸gRk5ŒPHҌjZuƝS&y8sz<+Kc:p.B0CWM=t㜭u(Ú-U!w\><ʽWVK.D9\Ջ8P9 >W23p6evZ|kd0ptI B%2B9k Cl@-atPPI 2 ]_`I]5Y:yTX569E P 7LhgJ VdRVij~/56net| ^{Tq:LdgK?dR/6' 9G=ӓ 0FsxcEy]Dn;^>c|Z~ț65riG>>8G6{Ekϡ!ᫍíwYG`MV8F#(hVе0w]^ NMKjOU2?# ûT2n&MBnܖ&i@e.=&W ?Ӳ/M14tJ V:ᜠ9\QDGd|ÐrϊK>XP4vD l[_;g|o\}7-f뗢 `p;F^bMCS;Ř:4QTok0Y.bV. iS==+*(rpO%ac.Wzo9嫮s>,sv7_v6۶sGoz*?g  ?1Wo/w'zPxmN `el^%JP+lTQ.8UHSEN Za0A*ԩH-6D:PTOCDA|R.,B%6*s 5OB[Hgδe~@g%K91S@'cIJ̥["t n 4X/T0wwve$%7|nC ;ϥ<֜]qPtF'\gc@KexV[oS>_0ʋ4t sN{ox2Ra߶?mw,/ p>u0L3o$̢$/TxPQz௿- H5\i)*2rVܭԾhydʏ9 <|{b*aڣV[VEU5IS* ٞUhk1fÍV$sKKûF!#3c;~k[kYœ$u{bMhn+Ɠ%P&Ѣ:.:5OP/dh!@_F ?Rڋq@\{ݶ@Yf]퓫GAdZ`ۨ<6ebk8,iE SŅi[ui(@jq3gi/jl}0K]Npwp!@(*P?d^.N?›peh]ҁˊ+H1Wϖ2Ъ-L$PtGr~pL}(ﬞwB=uL\޲BMY[tEO$ Q7{ZL3ll*!¨6= -e:-8&?\t޿4бeL1WZ֠hΜBw?8^^֯b80oa9 Ǣm=is=[XX_l?:_!"!H@/@ʈj<;so>k{ʻ{;y_Ov3 ,!^A5<~>cVf>Z~'N@uIbpH_t (Ȃ| l}SpqKsBjrqrYS( rS!8(Ӄw Zխ(ya6,Aď,d(KvqSǺ 0Zn:@GY{}SϬOاh"e* sn!0Iem݌/aaGv5$}cPbv~MwӅ #g8aPnA!4w9!sݮeązkO᛻ϙ{گɩoU*7+SP ,p sDxo H;,mnͪɖxP^~*\,J<{BӠ9XD T:߶{1}:<66w4V(Ys^3f;k3Y䧚cRVjL.|}fPx dǻ(?Oo~P6A}WNH5c9՗?Sfr?ۛ 6WT#TM+j̴$YnBf7*vz^] Q~/L'!HjT(6EPP='s9zCܶlxU}>WL"'s6< wE?oPKc\T:rW[k #~ӎ%Ǎ%TQ6݁VЋ ^Mr2">1D| bظt ~pӉdll |Fy<>4TuOK%]džLCV/b :L:/|v#UV;ߩ4P*}Ǧ|Dn/V/gf:qsx$ŕ-%3v>t x3BUuM|kcoF|<2f3"?A/Gs,`^gk!{aj,Wqϭdn)҄%CT7=8uf&j| R{ȂF/ Tˋ6*=I5^V }vhѡ](뽱(,H9M@U m=7, GmĻ$:w;(2}Q,=n0JoVU@ (PP~dׯeu٫mv}G&4ȕN˛GCNT - l͉<ʜTɛE58Fj#U{{݉`}Q/tjA~K~{tm٣PFqτad/: y*oUp9 6}R3ѷN}W}Ahe;:gY9:K02| Uu|Vv3+1o}Loa_H \'hΙfw WDYj2{Tw wbfWDe}$t61/7EBԣ(lφ9(ڝU<@ G߂̓B~^ۻĦ2@s{Dj3#!_B /r8=sX0šBg?O㈱sVcL H!3r<,ﺏE*,;"`6?Bv-0f ,Y uTVƢHkrC5Gb>淌kO; l؋@0" ^~IF1@u*=) Ĺ듣ӴY3aF# )%oFcUX"k:-dNU>a"|̞a] K>C&GOˉg/ )g9M9<t(.\ѷ%Qϸm7-aw?mt̝5Oeqs{GK8 ͅݎ#si^Ǣ߰r9֣#1reASXˌkeȀ8+o8㝪R9,K'͆B=XD3XA~.g#`?oT"MZ\ }bg#oɭsNKĈgm$s9RiR+u* kwQYrVЗv2ft¤;6l-bwCcdc'boB P|v?ZJ t%gTr^}XB&\3eT֘~J7ЗrF"<^ X5o˜nb]. Ȗp_Sk~DT`6z(r,Ζ#Q@5\ /~tC| !WjI[exE H1"xmV+ɽVA&H{۴J`%iUZy[j<63rnȼ| T̹.^?Ou.5eqG"|I q3!Kj .PChe U:xby("T3WE$bm p 񐄎7:*,}3u :;{nD%|095c,c"ʈٷiI*$ps5+AbC.ǯ}FvSK _^Qf.2дJ4r6^g3D y),5?e8 ۱Q[pxj5Yt@HDǬAnAm["~B@ PkX!n}  ːT딘moĂ.dC¡(Oj= )G?E[!Pnj" JOKh@*NIDOg(sp#o}ۿ,fcp[]CzYbjt1t! V=7~ֺs9åp-P]8{c+ ulewM}g! w<_4 uDWT#Z-a )Xk**C U~^Wa61-y2 %>S V^L`0(.gqa$$ Rd:.ݕf}4+](,:y4]췍9UP,NChIk`n"U5F/C@bTIz\.!zyTtxxŹnS)y lēǿ͖ߣf % YL9\M`3g<7=aE]Wl"us\6GK82W5- - m _{;MvCG}|HȄȏ f$,]., $X 'l׳]!}^+AVSe26줓zq[h8W#AR7Ю0%QApkb KRHY"uȑ@|.sE,>.S.FYCxXQrPxPFX=*G/:Rֶebj#{vD]Ԩ|QaW'U0&u]bx̏'ttli;S#mZ$Eel=oo 㵣vW:9ͬ(zRGT(K*gªGdZ'5 ~Q?{;~>Ouĝˎ_+2NH[K¤ytk&4@O>"e{OY9V$`-u(YX;@H'o/3؁hq~ ScK{9`CdiBZQ fmg ,x$7Zv>!%9>aUw;:TrAB8oćgk9S|xԶ'dCGފ"!n)v.U3ggN_̗$pgu!.o3 Ԥ  I'B i=QfW*W_ׂf{v;sc$ϯ(]O`p`8 e.=)& "7!Vq5tm2&V(V rȿٕ!_ץu Wr&9=M|h@.LrZ 3K:יru ۮg*OU u O֫^gVs7z vOPEt{pW]8 =$9Α$'=`@P!A(HQ{2`SV:Lץvv [rDUYG\PgG޷VFE#QMW|c7^䀴OZAȭjdZFF="e!egC!8 wYI p>ߓ, 4o);WMAD([\gB2,kZ#Xΐ.d{,|?O 8 cB xz^k7$)t^rUĞO7.Xكm'"7` (Ke=-2\ ;9 ;?Uw5f(Jc:D|!D AUzBZ_@YPJa:Xʮ Y@*5'5voP/zMna &zKf-GB۠(3E.sDf G:${K3j-S_~,ukնV8ܒ!'k `V:|uA.ro>pЄF`!cqw/mCЖXt $qsӕs PEBKe{]r9T * :透m(Ё"Ng# 4MP\[A~5&ՃLvqG8ҹsDyi&4 az_NVs;XM+'8i?@agDe!6^tD ت-spIE㟯 ohtfヵN0u%S z &|{3U^9F0%^Gk=m\9{$Uh&K_oi/ E2@jb@L`>e ._w'3DnUkgcE)jK {x!gZVTO鞕{'7m7®xBND-rdS8o'\t"pF*BW@>,*+c}y^.+bSwȠM>޿ţ#*UG*hNؑQ9 *&ok`B`/"~;WtDGO*|h3 7kWJlvQUi}n,rsC_Uغs|n<[eGui 1{DBAtVrTQ5."b[BBф J \I r9?gI2I*9xp,s,mPs)F-fq{j{i=/!A]p|o.J'͛?+M|SS@,!VȈg16*ު 7ΛPjAvF-wk̴̐`N?o'lg!vX,\cc'v;MNоJK:#omp,Q}K1`/'uϟw",QWW˭f#|]ٚw=_ϫYk9I}V o(Jj`[EMNޤy^D:9,C^{ ^&ϭ?4$]-MFպ3aj:zmos (PHzo9a0?.ϛ ZX @ 9N d fAtf<(yI(ZW8?rBs"wwl<@IҰ/j945;vGg0D4_ ݪQP]AG@>Q.FN8 >r;O<ʄх=zjBDt&RT@RvQEKO}>p NHj2j9AHmKs6Ǥ@r!&tΧucvCz>󗙒qWl SƆӐEMk vBVRX?']g~vK>GCwOΰ?8i'z]0ӱADOeͯ@wn@T[k.\lH$ 's*zY0<\6A&=EruO~"2ɒE+ g(({OlJ]>6=mu,Wal&6WHsgu]!I-}HtDS)K6"J| ˼~xYJ'VOFYu<Œ؅ˍnsxV G[cc9} cOQ{{S:C .v Є?]Hx#îLpuGj>Rs,>SadfrY JۺITGr 4+M'hW(VOxD5R-]aߐ"nN &te.L'տ2٥ߘ,6b{hb$vOph{*?/sARwmmlP_[rY..^uoSjӺA܃8ÌdGn|,%Dzn$#A՜_S3q?OHb̎'TGsR/WVI^L3WTRNn~(e."11.òBOak)(Eq|M]۵s}rǨ珛{@ecBeB%2BnnI2C53a[z&gX̊?|Pn2F-nFRa6K;1XD3up?:ª[y!NH4>h Q%U@εwx٢W״YL2(c^35Z3{QB[j6<=mnmm1~dzRavrC:Ԋ0W+tN&v#S #VG); *j+j-Po)OP <{Sߔq'Hzi4T84fW'-s.B NU8_""C`Ƀ1qq'(~;be!+~ y'D+?e<]C;iL3N&I2cbf){;maByZ__2$j{a1@pfW_"Ǚ,OM*iQ:_ŊU0 ԭUͿi|/rU qakYP Ay(%9rpA|]kbgل0_x̷RBfxvtwYVB/۽@sȚ9hv7/.>ȅi^bJh>]jrxϝ r:>4 UA {>ky/+~xշeгb8~aZGD|+2n S_׼1~EQbXWAS|w5d`z.cR,㷇NJ8 +y B5H׳Y6CލY+Fu`!8?g9`p_H׺{@(G-F~/m/Z"x5aXF+f<{5pA^1`ʑ!fZT.E))`X+M g%ktKj٭zQNs'=!˦8kNg ́x>mw³톍3#l8 5Yh]?0;+aκbl*)jpm1ޔ JwSzhs)azOG{(p:b)V]fتOZ (?[U19>'fI۱nj.+,v`}#I@"DlrxXPr˂Ə|7-B_Qe~Quշ`ASkƼU*$ 2. #[Z"eR14\g`&&x+%i |V5hک.|q0(0./! %ԣ4HJMQœ^Y4j*|,xhwrt:ǠXBP0J<҃)[8m@U W2n1d3=?&;[FυS7s(|r퓝Gw9=IgsI[˯Z%J(Ԩ t\*ae\J y88,v˞0oKU`!<Ά* @PJ h?'P>>[/;܁!|͍)gEb;cDjqp0ο͕~ֶPL]sa>/ڭ{=ce65 Z[O* g'%(|mYm[Y|7mZ99hE)٭9C]_01W͛\!5E m U.U9CV(7oc+`慻͜HS;i-X9<кv0=V NWؠ ``-RWڨ?aPk+(ՒL6/L~1͏z4~cQc1~Nbs:x n?ȓ7;oj)<ԇ_k8t:nNoqi`'zbivCi]Y@)';o.cBa3M_([_=WkHH'RX4!$Vaղ$gjkU8$D-iH% Nry엚3e+F!h2(m4bwJm{ 3Kژp~,>;YʎX9WGN?(k\߮،-c͈Bkwi3$ t~t/WJ g}IE=ykq}5jiW^z_WS񛎰)RHK~_[go3f֦G҄m8'O訏GOnyp4R=sa{4+~79 _a6;Jzaqow˰7sm1j@{fz\w3]0f4C8X#h♥BJ{ @cm3iqA8Ɵes/Bi2wn`wCwX⎵/h|:XL>!Hܢ-僟~mה{.$Zm?D}>tTh1Bo ja`n(z p'3N6ٷ}m9'&BXeuPszPs^#zT.$LreB3PIñ7 /k[.wRO"uI.k.Q >=-5B"!~љ|T`.``V1Eb"Å]:~D_ҜEbPy#Q;BT Oe9?F>CqbDx5 'cwMp"Q$&w|ݻpP,a`w% ,|y/z3*ϼZA o? M(a ;2qwC$Gώ kl"D>!^0r); `%J'ҍxg~aFo`vo_o4G"q =Yl ){9-G{ Pzj*<9VgwS57Uq4߄Uۏ(cqQ- R9@.Ž|@OYz2K2=y387c_8 Q^U_Ŭ5sNv5AM#25%)db{eC{pD<ͪMn`7OP6'{4J{gR:v<iP&_k{{8)sTq{&gu6NY^|c8/si)&d/cڼ5(襑 Lm:])~_c-7ZBr3tEAb9' DD(^D+МgْoA65-[\:3aSd0z.mAF|vz1-90xS Xm5;~I2~,X PU 30fl5O;Qn@Y`Woz_QRAqD,f/.\#Vڪ ;iG !zDʥX60tgHWXF98{!EIީBn!q#a@2.$? ~~X*>^$zj muh)zW29}*9%G ãO1T sĵ wf"פ_ۜBڀU&zq2 !C;*Yb,BN r(H* I\F dle^R%d<blw'Gb 5f>|CC@pˊ~T~o>Wn-ȯUz+PqOt 7#`$2rh8'j` mۆnVvꅶptAO ~L,QAQ4{Q(sV{1u,,^w~@%~jŕ" `w͘Gt fyp~?:%b q4pΖ'g;9+RTq2xZVb(̅1" s- z +lv<)L`N"2u3$𧿣\LSCsZ2h»+^ vC7])~8 ls`Lc7.ƻc]@%ذs!*cR5Ѹ':Z3c3@FX񧃲rK"& VYW8cws 6~HK&qʄ1aӝE2vNVg\n֍o˙ܑBdFP(js2;*q/y{=s#dXėzgX;x4#f6pcC߶4PqXw)VatTK&'7ϙ|n|[K&fIʎ}Wr`ՇXk}sFƠ4p <]kjX#A+ H GkȲvL[,[L(>nӹļvy2cM:K7tפ˹48}Y7vѓnt(qpm˴$Ql#4ƚc2:oj#KAWqV8jk:2f| OP@ vn.ٗ9x qѓ9`C2lb < S;h-]'HDmU6 Lr-='o-^ -HԽCvKk"kb5jLo{b.^5aqh1{-qR;*H AG}Q Ym1ơźn 583y3[*Ǒ!) xf GB0⎽ Cp܊cO80Ouj`+>IdgteCGN'歙{˞J&皆$s+PEPEt"}F `rNgqʧ2s?fIa,[tT=?ܰBJw\Xg.d kC+;5:M]pʖw^Ȋc9{󼘑oEtZZ[W+9c;|nFH%dáCܼ:(\;IA'%"o_#@p4p~F1Tw}f;Ds=U8\@ͷ8)"7,5bDOT4~"?̶w]N 2Ɨ}-dq}COLϣz7ip\2]0aboW OeQ/7ٽ-7_hk ? ~fՕޒqEVUi?W>YKcZx 3f߰WcM$|AiQ:)$އJL@弮vh.NrzP=m9BPΠu e,ZM c!p>㙓}3. n|jB$VEv6='RXN7tĐ&Aoz cE[gd QpKB=ur֌K7?TZ&G9G;_2i cG@ QY2 ҂h!m}nU`Fl PVܩBC+v63fn9a6ܔ̈́oE١MhwȹqSab a{gD4{އ.P[{ebSL.2h g̗ uj06v=@5?ʉU0P"A cxКTt'ÇxQc%ğRiXF~>*t瞗vւ>,6aN1#xߥwZ.:BN!Pf?!ES F]QP9COꭟ9k6G>h:]UhizkfF1 HBGdRR)ݙk$p^YeW a:s3L*"`GF %$VQ}~Rc 8p4zA{z@ʁF9]`8(pa@梄n"`]e(6E .c{¯)HYa@dBg=We؜P)cu6!gȌKln|Սl,I>lS0ca4\ ( KhB~ 5ãqȉ"ÓksV{2AdjsG>M&R(~Ι;j$XN4V(nF3GL %`t5$P̸>E'enqW(+XC(!FAucL帖 dmfac `1!.q=w,l7(x': Tld`QDUTda~LEc^e|.hWkk:"Œ̓}5W5ꝑTjs T,b­f :ȉ\D]Bn7,RX&׮㼠uuȷlVޝ""%Z[p, XgI?dTZ0u׽=ҿ0ށL!28GIIR5pQdGFq~H#PHwHp߭G`9k ÅΉ},r8X;Jj}K=Ol/V6-%~7Xe.upWZEuᐒL7Ps{#GŇ']aTG$5 Pׂ'iW9>lpW>{6،Ni!5nqYX۹bkFޅzN `9/ @AIbIsքYk[|&q؅()) 4\54xis:=jxBOsM{jlÊ"`ƌd 視 ^瑑H4,20~ q'\KT޼j`n.@? ~ҭ]|2$|X"F !`?>ïi+ }6.+ߗz ȮڢK]3rsgwփ  <]Ci|=(L՗spK!T<-^"xLs/il^[j%W{~xG6b{w*.x}8` "x t-7 O(ߐÖ681)YYӎB}e\E {9 ߀r`5Z# %?뷭?vb+w^7) #9psH\=Zf $8#JjYc]՟*By(wa Hc?ìˤ)bJE:>*t^dXKޞ-f;EAIaXh+JW=>&0-hfKj~)l{\kAJP?}"`ȃ(H׎nfwʢBDky$y!M)({H!R$RF @eD@ ?aoGat} `a4R` Z: "žJ%{#h?.I7ª_]OƿMos'(:S121{#c/5gKci`0SW&;>ٞ nϟ򏺑%/g?8Lm{p_٭|/0aX0J}Ϯ% n/[VÉ03K>5,I_tLX ,bѐB6$_cH?-?34@n6 l?v ]-.ڒ `X}1-6#6`F I;2{^p !Ips~o/.B{W#{<Kü ,vn#ͳp7-xw˝G1_-@_:vF4J۸Avݮ1NZ/B:M3!!9}w] ~z7f-\x~!컗ϜWI^#/i5碃m-v/᷿od]b{_*[Ժ-lp tx k{^;p.q%K`Q!A @Q2jm8{FXU[%0< 8|VbHV5-'Koϫ!~ fy9:@DNa+vn/Ӳ0?U$XDjHL? ;RDh:_I4|m$"N@vkD~I=8P~Q ?veFx=Џ񘴐0XđAE;O_R?Z{w1dP0Q~ -:Di[BgoѬ8t7;V("Qx8LDo+ױrF5Z vth! /V,,ʿ[Z<"&z"OU|C apg>uQWf{L@(,vAymqhߛctnk0$Vxܞm( 9::zsdaxAn0Xw P+@-TY=aQhvXެrIw#كev`,H -1E׳εң?=>j{k/Wxǻo2;3FRq\'7RMƖ @^HVzgOZtp^;dg߹vQ ߺGǧ>cY#Wkշ}a|Gwg]Ͼ3mRՄ.םZޗYEn-O Ge-y;Ƹ_> @=>hHmhrd2Ӹ 1b8b`5}-|. Y,t^#y*ۏL_;pC۫dy-/J$F$0H!H%hְSK s/2jg8j2x]C{[-=%(ڕ7?pu²Qջ7~|n;ԠD7N q[ɁY:= v\%MI|>:*mng pps-݅:/{"gc䤥{,5ʽe>UDs!%ʂ:yWv{![:hO$M%cI+}_ 쨍ÑC_/W KG=AnK-{|wAY^TC?zK8f|Uۅ5wk{nKqNfFIx}mfsk9]l9r`%v+AS2P[O"'-o6rQ0A®p'J>0qf0\L`tl"ކETQUPG#W&z "ط9e=u'JeŐ +_z}_֡[B/zPcF*|#tJr+ݽs|KJ`Q "(? ctev LPD5mXŐ/x/9@sI^s*k3AG{~o}GCéqV\YC?ZG"}?__vIv 5qt֩G_xlZ=g^G:1mnQm@-o&Y}ߦ`rnP=Chj"MDk B!}:qAg@|w~ݼoxF0ˆ6rPݙ;~lקH:FCeT)}wvxlJ@9\(^I&0t5sw@*jյՠIlxZ&RuwR|j`Qjꕨ1  bo׿iƠxZ l=T1fCpr:3v}<3nDL*,D2 4GN`.$67]n<3Ta$̵L3'{(|LKΧMw7N$YɳjF ~MY !domn$5v xlefFŻAM|t6,FMB+{܌7l1wԉ·TeuԀ"ns0ч0f7\ 0Lʹl"ALPk8v}8`hAvQbZB;A?e0izh!pT/@V|N{˗F;EK܃` er(\٩6):V٣p#7#=^Hx)Kg؁-gk[,}LoQB{f׭nN_;7I=ڗ^J2|$~+15r+ֽd^ ~(#yoƮ.{d.ۭv{v~N[#]ͪ[ճkؾӷza}IaB)it;y}[1Dvˡ+1pPόv;7E=S8'tyhjiD?5 {77zZB$ % vVy}L5irz\T,d,Fz/IMvCuL\wWNsr=41ZQPR  drnp~/2ag%q}X XL7IG4 ;PHP! rı ,?l~Ǘ80jH h`$c$B.X?+L.y^oqpoh΃K`Bް]o @V=^A@篛$Nt1Xk-qZȷ^gNE}rX}jta;XLۚO-wYV֯۹k΁KF}4}6- H$Pw3rT~ C(\V5 'aFLb#֭>{{cˀuV$4 cL萕VsUJOBy0Xh2,~1K-V'aZ9})6,R5Z"?8ErWm#lճUGʾNbg&k=gxRfQERW{Ci'REr"s<XGkgHlR`17a>c}|ysqEzG%2ԅ0yohubF$#"!\ŕu߃GcN_Vdyclϸf߆T˿>ʢZ׭T5%#$!EUCAL.t UT>PUtk3\كX_Qv֘Fȗ TyFNcTOVOE4"nV #'v7׆ά'K*nJ{k JF J0o3afj\=w|֣Bbe{+|W(s[t:>m쀁Y˶ǤSJrvY .2u_sjr:ebtWKj!pYv J5ʉ} jn#^~G;~/|TNCT+r9\^F͊qUT (VGFho,Ҳ|µ獏S)'@ɺOc 19ꢇ4){:a͋ ڀy=^7BaĐ QV5>7}1!YfF/9G|ev@❀rtv,65`kӍ_tBAQn\̴[f\۩KYBY;Q2zOksC}}jo /\V.s[^ =l!! ,@P;-VRgIam`s,WN JrJ(.Lߒ[YNj O$ ˅U*_F$\5}twj{=V˾'tbS.MeDm\R=%TEG/{zs~*Og) ~?WBhCp9k-p®÷꽶s\86È %سӀp*vX('q`$hRAAųI!VG2 x u|E DT+Gl.sWqwOG}=x74MAH0Wί: ~Uu{'d"y\>Ć$H/""mG)u$x 6 ٣ȻOz zL^$ | ,kkȻ h0} <\LpAT'&QAT f8 äVsN\od~F(y>' M+IkQM4DA7rZb9@ e2Eh cu]k\dHj9jM4, ",%-dMW񵠳A>ܝU'9G EGuR+=^"vٽ{}ts<pq}g}U/xl2>LYdo_~70 L^" Bm'>nW~>ۇ8i Dx$A#umx+!1e$@m$,m` ,5iYDuH\>olK◝KcL3s&r ~.f ݩPn}kI@E(upW{3@Qe .Ծt4{\ܲq|ynxcc'Q٣/}s 8(p^RXFۯa8X\&?vߟD8mHCaMOA"nђBsKR8a6kZ~ɩqk7N^}>ƌWK u;S#bVBe+-J#mN ºarjȥ7NV쐶ǣ@>˔r68PO/zh!6GP؉8[9YAuJQbYzkc . LOЌ"˻\,zu8 Qe$A`hխᄒ:.{YM"+%*' ,)蛌sno[JϢvLJ>=./߬`s!qxt9%OpS>lѭȞfl>f-ݒg;$8"S]:#|&@"pAPݡP./3 ߳tLAI"ƠAV<2@ˍ}LX/^O^+~Nxwǫg\cP|=&-^|(W>^ު9j{(di%]OF0Wl D&IQ{In5\AURY5ك*|J ٬lbxyߥUrYkHW:툋@Sw|2sڜ+lQ8 m;)~/KƁ'M5Fm˦[s횼k^l}i__N(8 @ͮie\n7F 3Of]XIQF+n@w Bk;H6K،Lv\FR: So.݅+074P)%W^:P݀2"|gneJO=bWN)Ҏ봽W G00Մ6 Y6f O`R\A@ n˓_c[hjGcdqV°ˠotKuFxi F3>"(j%DOvOˡ]G&6Ӳwo 4b8Mkiыڵ8`DKR ]5, 7Вض0V!Av1H%7;|ߕK'Y]0답7Rr.ƷNnP-F@,ZLfxhb)]z +bnqlΞ6$ ڗf 0T+I6zb2e#^1Rkg7C L׭[I%ۆfDQ7 70 &ks7TBkUD=Gf'"Fg4^bZgMVz:l.w$Д4" Xĸ,i3 1hq# SDu(̘v$.\# Dٶc׿\Y Ή YMOz3_1 Qr'uewJzNJgwFYMx)(X~%;Z3gM`XsGzwuN;ݯSQ ]:#qD@(6ym0܈`a'}"TwRfpg_ewq6 ms98&jrˑ]U,%+jERECpK o0 SGF G AʖEx ݷ4l$Nj9DH .H R&f9ʖRUJ/1s}5qycl dO3,-ҍϴ)HD*ڿ b~l:_[y m?*6ƆO'?E_>,ɰx"`݇\SW!Yx[/θfy 0IH@ͥNcHCO kߗ؃F4wq)>1OUY_©}ߢn`d^pV2V2ި|$ $ sci ŋ-V6\5C(}c)ؒ*!jOj ?P6)Х! pZ Bv޼6`kܟLAow}y}5DVSO⿬#/HQ'f(|e櫘lY9J;~ׯ(6`06뭩݊Gśr= g^r^)N]1Ec۶bU')=/Le3Ҧsǖo& 'f89(!lnl`(yÃDQQ^/(c`XXǺQܛE&id0a_@4 DÆ]4o%\ӢIb ,y5!lQ!b`v lz xUCN +/` 59Q&>^MD#zy\텈@nWI m؂G$#)~ɹ5vn钛 2<>4RUXKmrEF"cp_Q_v>^N [8EHH 0H==He}ȡ  h*A#wFʀhb0]d oXCêuqׂ`/M.@ $tіݻfi̚Bl9'g"یWL[rHL$aEJ`*P&IJ**Jj `i()9~DB>$'j0mAhhhaiXڴmX,O*b8Z#V )uXb'9Y6ՓlCZbդ)uZU)uZڶ܎!+ \<6VvmY@Fՠ(4cjڱM==]Ϫga5> 1 cݗQz aO zn_;Hw o*VovА&^['e )Plߔe.=:dgE]^hxl.R1LpK;.u9gjwxM@7fqr0x#7{?C Q+SǼRlXƷl9{(Rۡ GnG(7 sՐ~"ة=QVٍң_Dd7QU!&و d)dC!!0.Q=D%Sxz {ҵ*ձ@B(g+kj%Kc8ܪlG_A>Ȋّt5 _dOۯ3lr#F6$}wÎ~ Bȑ|@kZߋP,V u@'^z `)L[[N8m{ {x{ S wHjA ZM/{ dhq=Hx< f΀i$ duZѭrk9,=օNRAoESL"s @x |φZP> xzxjxoPcOxPȑE˫N״"ڔJJ(DHGT*'=jjh(5 1  ^G,qB^BE1P1 @@ e Ta!b.0Ly3EQ'1/JijX 5`mO qev4 qLW:V4Дm^ }耿Q#>w:WE_W JKo|DM Aj;v|RtߤNVmЃ ߰n>e~\0R!{'wTx8g|& uk?fxϨC~alt+dϕrUnyk d=xCiۙ0ŗxtIȯ骄/38Sç3[8vr$}??P?wFM?pyoups2[$8x!԰́)_酧R $T4\keTu#͸(sʈ  URU^9tstgIjKvY!IڊhK$Ya7"9Pn$`* xF r] >CmܲEFgjb낦Y;U[jt[ Q:z;/sf ĢӍ1R\/V.2*X?-/j`kvAx[5~L2DŽm:+\VI} -1;1-Xh#97[;>k,Cx]'tez!mug:x YtvwCÇo!чtmn]U]NÒz7_~?>i_U!JP0IAiT^h.^W筀?[?0Kk@Ւ@qBG$o<Ć,.Ha`. 0 D{v_Bcծ+p!E@Ug_q{zΙ^O2҆?L3ON;SmyZ+A\b'!T*3$@(! Y݃v+qҵ$m{Yݍ;jaσro7 425g] aPR*hp ( ԋDodhpqb!1N W\܎,&y6lqeU. vvuNc{|&o4י/k<&KNݤ_noQ,ws]N5 Wc]tHԷT""p.i[tᠲ/.u!p۝ϱz_QV*a VB8+^×\}6l} =o_t雘9ǓUB}۪GFms-3RQ(:qGo Ej4a%/ u_r‚+f~,-qm*@&ߵ 1M6̄Htn (э 6w`ԡe\08i@nĔ;.l`oܻzӮUwLLͫ*QMu7NEpQ ߴ*b{Fx@Z!PQy.:3&pX*2"0"̺}Y3ZPUl+|%k)~Ͱ3>}k Cd[)UJ.ڸh"cJ45t{+Zxe5T@X#.0[u/'0sS?e@u@? p: @HJUKmUO-E _*  , 2^0%Wћo &ċƻ 8t]?8H-~wۨ(':D OkN/2<~r0vc‰tUng 0? 0ݜwcW)j935cKtۊjP|uf# Œ.RstBȿMEd>e1BM ~UD(#~/аuWc~Uwb?_WNͪ| $R@;0wox"PhJ(P:nW!)@$CioZC=DD (X(}H ::-3 @3/6;c_Di 2(|`r/|xJOl0}ǛNnF@X#@,xi ]kw#1ߚ3{ q`b$HjF»_aw=4///_ˮ+a 8dV朢d\"ena%:GvpA7Q| !iH"iz>&rhZ}&9|εU3WFfa1/ۯI,̸6}Pkћ] =/7OsiΩ^#i"DCgk7,EE-1o}FӃ̣^{H" `-n[!1)ޝl%!@:`Д8qڟ䕽[,hٶi`}7%<"VU݆xpd47l&#oʪ SgM @P.aipD,]cH~a~ O%-rw_5w)yз!k4{ER˜|YK E2kB 9Rq'#l,K k}#Fd@Q7ye/hKZ?e-Qk$P&d?{Rs=&U9"A1 J*>$Q<" ?> < W+Uʂ;?a[D7HÓS{a -;3 a-E;kyifIa) _CIܔ3<g~*$1 M=* zTa#m(c FR"f K]&֔e_ @YJ93JJB迡aNr@aתx>5m;;QCE8zj^P i(o=]F3buy jؘG$z$LUD-Ń94l+8n͇_Nn҄e%nC;DG_{.wI g^' ˣo2[ iwf!"Y(rIg5)Dn*N݂-u=]'g\3:3Q}HVSX[ya&4'έ"2myj걓F%#Qȅ32r>\ NMnNPV7c\/ 7D|ϪaB(yޥArF2=T#G=zluPz@̈́NriJd!M6APT'k` lXR6z̄Eg˘?}}G} :ayx^}İǕ}qX C|P@)tX%+| oKC%17(nFާDaJ![e:Qw}oWy- ,%N|G4ѹ КPFS̕5\X_42j!c~`V%b+++\ai:f r/(J9.cbWC3â qM@b{=|