aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2001-02-22 04:33:18 +0000
committerBill Nottingham <notting@redhat.com>2001-02-22 04:33:18 +0000
commit87aef170444022cdcc901be0627c9a92b773af64 (patch)
tree5820fdd12a8547cb613bd3ab8d04565fec63ccad /src
parent8ec94af1056cc65fe4cec54199521da5dbd0a522 (diff)
downloadinitscripts-87aef170444022cdcc901be0627c9a92b773af64.tar
initscripts-87aef170444022cdcc901be0627c9a92b773af64.tar.gz
initscripts-87aef170444022cdcc901be0627c9a92b773af64.tar.bz2
initscripts-87aef170444022cdcc901be0627c9a92b773af64.tar.xz
initscripts-87aef170444022cdcc901be0627c9a92b773af64.zip
close extra file descriptors before exec()ing commands in initlog
Diffstat (limited to 'src')
-rw-r--r--src/process.c12
-rw-r--r--src/testd.c1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c
index b320051f..ce0d459d 100644
--- a/src/process.c
+++ b/src/process.c
@@ -71,6 +71,8 @@ int forkCommand(char **args, int *outfd, int *errfd, int *cmdfd, int quiet) {
return pid;
} else {
/* kid */
+ int sc_open_max;
+
if (outfd) {
if ( (dup2(fdout,1)==-1) ) {
perror("dup2");
@@ -107,6 +109,16 @@ int forkCommand(char **args, int *outfd, int *errfd, int *cmdfd, int quiet) {
close(*errfd);
if (cmdfd)
close(*cmdfd);
+
+ /* close up extra fds, and hope this doesn't break anything */
+ sc_open_max = sysconf(_SC_OPEN_MAX);
+ if(sc_open_max > 1) {
+ int fd;
+ for(fd = 3; fd < sc_open_max; fd++) {
+ close(fd);
+ }
+ }
+
execvp(args[0],args);
perror("execvp");
exit(-1);
diff --git a/src/testd.c b/src/testd.c
index 7deb00eb..b2a5c7e6 100644
--- a/src/testd.c
+++ b/src/testd.c
@@ -1,5 +1,6 @@
#include <sys/signal.h>
#include <unistd.h>
+#include <stdlib.h>
int main() {
signal(SIGTERM, SIG_IGN);
:j+eEfI &3cuT`gHd$aP4J\&3.9~Y]7!>iH<:0ہ#b h2TQXFEc7cG9a 8;xTѱxP7IBo*G]cALf5kC}P~ O~XTGxØށ.ђCp0[/6Ǟ}x͂v7)5b>դ$ޕt18D v g=57|ˬ(oB!PX7[ OFI$@haRxu)q= Tg2YEWP7J'  t]}/γZ<[]Wi^2K6VfTGm|8#%bJX_^?q}v- hN`Rj[47ɐqxrΆƟ?p_2x8 O'ik}*|y]mDDdcPi.6 ^Jb e~KqQyXD?`G6mՀ1VBoB(Ԏ\qxN fa8Iv2o[PP/&l#k~f>.oNr6 8Kv F&%84џ,wxlN \\h=KֱCTqyY,;+9,ڒpnNh{ׇ2V8)mU[Cy1>/,bs(aGVatݝ{i(T=2߀ɛ<ӹõRt:t bݢHǚx@\kUҬT9Lzj{5kμ16F 6Rʢ PcDlTv-{[{6i!i {ai E ذ~H#Ϧ7S%C1w2"K'dNpĽ5{G7YX+;|zO@*45p$dIE6TՔ*:VE !(׾FFXHÂQ ]e#,#u1iiUtOs۱Ϳ+cl vOWSUd)<\@GW'kZ1}"Hw/5@RXɏL(j2hڶyX(eS潗JV)7 P Mzy l4}R*y\͆IL0Zq&~wkLFքqjW2S Xk(RϡmFP2+x-iAzhA}b*d?֟ YKs q(0j=E o6t4s >ӋH4<~Yݘ`Rbє5[XVs-y3_˜3+7ˢ"qMXDϨJ"LҵۘͪG#@Cw[ AFER䦚ïj cR}24j刮qzMGIۑKg|yVVr'5Wj|ؾ-9с}2#>L$K^篵uBĭ㈌0e&C*a oE7o/kxyӹ+!!C+{${tPR/.!M;GQVuC61ʞbAawTN!y]we1Z#P m}Z#p{ 䉻GIK(Ń<bl'ӈL.l$N{b3@CQV\FM'ƹQ7L;kݜx >a!dHA9[IlQ]۫Y0VZ9ܨ[Kxc[E^xFbl4›;̩I wg%^TϺ[¨L DLiіZ2W!TLH&WGv5-IvM WIąCC>vrz y@L@klF< [Z] .ߪ:C' -ɬ yU9F؋H|(WR6=ȋ k4u7@dSS,߆LpgV`S$p5t]o]R>awI,@vtͻ œ/yfN=Yu~ o %l q%mwI2PaX׀wa tz ШlG ]&Ð֑18s肪[=_,K i%CNSiq'9 zMIzLDX mKH.ؑo,fx$L`1DV kbh`d+%jw%6/*bVyc/7T|S>`ռC7z wd,IF'SlۋO.5(pUTra`hљO50A HItNe5 źF>+ĕ-h6!&4b[fyCJޘN#}ٽs 2qU?;iPQ4V.kGo } m/(Ʃ5-W3HE*wv렊6VGH 8 `]W3ig`;5|qNm2+ۣwmZx.x G]*][P~gNzENb? ca{{ȆܼI8mr䈥ST`\mx^gkR3+$\z)CI_> Z\X`8u8#qLh$}0GPBtw c >1Uu68\AdgD:39zBq6u1;<2;&dz `3cF`AI)߭%C*bTrfEzKΆ:Sq!OnS8LX*ACcIj CjaP]KU)5l [͔csF[f3n'ݾZ6z7._ͷ[>RVF?[McPS:M:PH.c LȌA+n׊rݳe/Ėuwҵhk 5A[hd+S!녧KDIRث]jx/v&-GxZőf33?d'_6L] -OH \oWi]<2MmuD84c]mK!O$$Њ-맽m\& V$E5/yӛu+V]m6H.Hxl̪NV$z%GY 0pm d9b<1Eh - wlf2IcFiؚVk Rv?8N\s&!W>_Z"6GWCȔ$3^!2~T!e@~7k'~j0ǜCפf[TZ+`LU#9S$vrr{ɕz',rL. C[[r2img3ANp}@@6*ƭQ@ x44P–r¹j"%`ma*y'Տ:ck$x(q):WT^Mwirg{/}1UKs譵b jڈ[ɬ&n;1͸!*~3%"{8"ZZD7__8S܅߄-8#o#)Ua p`=͐)QCqF 1B;5H°9k44Z"*~! gE΍b`iTD|ZH6")(NHo!@Y Efk;Av62%R% @: lIsmБQ`p{З9JҰE%E"@kQ P`};]u)[{ɬ!1 72TEWYKlYrh)K ֈ,\;i?:j3Dӥ,jt -d"b^A-FL)cm> U7]팙RN xWk n_!넞ZV:(J6!ZFtvc`HS`}XF+ID&a}j6+dbf xJ8oo޾ĊZvykMЕh]88?z=_Ґ6~\F_eJdԝ;jvr(nֵ's%!V)`eEJv"I;P3^U#kv&מJ( QϦu5]F0`dE4b}iJ9 13zK`'zz1RՍhF/ID|0;dya:жr>EĄVx'\:[ѯd7n  5О0bɩGj ]?h ]yuGU_F&3 sGZީk! 3kaE֭3 1nEQ\R}Kb燭,r/h;.$ىjVxx󔣟r;ߗam>H-(H걔JФĎxVi}\[9..`>8;]ӚA{ Rl4ЌͿo4=fXb ;>m"u[5e[ϔb.nfMiY.:RcpQU-23 fBא j2=㑾tnvQJpJl2IPэyyc.P i7^p/2?' K (F)DK6$;Z(؎7\Qe SSW-:v5|e)bV w N#5S3<+؈0mpp..t>6skwPP ͟qd4B/PE#ȃsӀ7q rq3hr*뮁u@͐?T;sLF yK$OH g9@^~*pA 8 l1E}m`=ūŵ҆hakP[&HWtyѦ8`%+'1cl4=yƛ*n tx'CZ.>#)C/_<2n 9 ]o!SV%ѓ=<0u8=@61fZ5Y,17=d.4`0I*.@ĊupF_6\F^RS[C$Qw-6eDMH9 m*RPc^HrRʍ:ɦ$`2PXv6mf8Nr0M̼E2vdޏ6X` <ǥqj5xD٘BiGzFZ㛀t@W# MqG9+L)a%{`(J-Yo .i<k/Ka(k3-3=Mׄ*id#$ݰU TOwIm9Swk.Z}I(v H5Tz[4- ivYTC O wRZrfkc Q P٥&r?b$b(10@QTM{Bh'4ŧ:kv&eC,/AճZG2mk[֖N@A{ī{Џ5(* bv ;HIvM?{w2)H=7$jm{41$p`{y l>髃D.3͒3 l٘:ߢ fֶPuPOmޮ.gRY, uL;\c \K@ͭIw(\b&wQN?ZL)J;Dv6}Gc;QezDuP'DѬQKcnzeUQR,$7>;>u`.F!6!q֔P9陯L8DiƱ=D0}-#. nܔaP U!zSÃ/*rR"cX4>YLq Z`nc\ϰa9!ia"dž>R;\ǥ.SƒЯ*:r8|nT#z-Rճ;ɣWDnÝxxY¤>ȾMyO]Cerc7_ *kʺgֳ.Xvrs}I'lۯI)3:h.N gߤˤ" H5JMX~S4 ĚB! Lkuզ50U>)/4IE^$VƔVNϴ/ {Ӷ]UkWi4q47A_抢OzO {)޻Vko(Iln5GtJI~B( ܻpZj_5koqBU}:k88`=(ъ8a_*O/m.ntJ&"\{b~šXoZYUQV˿f$XȲo='z6%;B,͸)O rYR\_gҰ@8cᏧ#c{~-2HgŒJaŮWg7CWX.RXW5 pHbu?:m&mȿ򄺐T6aBw~'̈U!A^^i0\y䋉$4GA5SFkmnB1'YFW:@BKQX^-E}6(xfL_EBAZXrǃ[ɜUHU1A݌`,0)B>hTՃƀB,oEGܴ$QݎFꨅv_PhIdܩ*0eLouELjK{0vB?G剺~JEm0<ר iŨQ5`Ҽ8IO'.HǏastb?B7Z'=VSQ%XP/4,1U+5k E1L.}ƭ2T.#ңRrPؓ}oo"1&k-CW}=SCvB A+'v]s5 Fʅ6~nqsҖV&$c(4-3φVb gGgR骴c;,9ޜUitHL)[&5VңdČɀd1c9`'5获u^^6b&h$JF`]h0 06h[rErh\,U^81ٱL;Xhmdq;fI^bc?b6KgeCa!5 4 \ .IEkZ(m7Kg}C5M͇![A~02ap-{!XvXs՛xH z㕗OB9CtJw& 6y|dl¯¥T$CB"؟xT]~ noOE?Nku s *,=p!QZ\ +g=|UnI-sb Fb#Cw2k(Es7TJ"0QtåW?Ah&Fyx>^LT by>)ܔd6PEaʟL>x^+ӓuE1BO.PJ|{GTPN䢏BRԈVYTے/ ',RA" CAL|;#~D qa5qa(,U> y=^=ndEA•KG-#(Uns \y*02p"[VCw$W]U'>02VŜy a-9qfJ&oOEs.UO8΅YƮiRʇ?H~h/w8"OHYYNN_HB߳*DSOj.|eJ56hkRSlp"qzʵYGg"pK#IiuF)Wё\XƪzE +߱zkPigoKy8tM?OaAHAθc_a+3ր li5xplS2KtL^CGmͣd"`x RNCu жئzFҬb"u&8:>evjFx9ߝ[5'{{'Nb ϽjV 3KԚD d>^_$ x )ǛXr<jp7vX1c-˺?l\W>D7NC f#ydV8I]x3I*ۯU |WYE]IV3pd/^Bu&'Y5c=w!N2 8GT]Yv2́c0ۡqw?/n|f044ȝ7\cm*(->[J'rk "y.Mgũb٫mi_*Q|o+ݙF6 ҡȺ #Y ['c єvR96uzsU{N= *fQţ^C2 $:$0bqRaX9^3&|ܙ5\B*JvA ;2Lj-j]> eDٚ2H^$> =wZm{\j#T8| KyAPCmׯ_OV6ě昘XH ?IA>};HA#r/kAw(W f+ՉE MGKڃ"⬈<ψL2|jIY&PKZ9u,ܤW){(x@\z =ngr}PA~\0_q2]hΞѷ\G{ }:j˫2F.b .G/3'f-KE766`wPX('a5iwOyg$z=#rH_eG츕@v֣ DSlL1.u|nMvqƿ ܖRCxHRkࠂV0u3qQrg;g|% C;N?Y,NNsKt25fy=YK}+ sa}ђ+l2?ZBEvq+@𪠒f4oWN_}SǖmK{u~ۓ7Mzfxp-Q~y=6e: k(gW; nC ڿ#s>[z=AG S~MN k}_H}l6^mo8]я%:L%ptX:~)Z}f_I Ju'*vnXO]SC0AH,'dXq1P:>Gp@dBQ*bSkI8]Q%y9;l7>{ "ʇ>!A6=1a$DnMKݤF`d*q!+Tʋ&`%JuP0I>\:xF7vB79LnCYo-@\q-61`qgS4#Tjr?n'Z:R]şx u,EY Q"n<2)͗*Bv(yNsݘ>чC_qwgAnU)g}6q^tK/o׵¿e;hf(lÔі$vxX^[8{߯%*Yxv 0 5:676HcqdžKPFZ N0N,h&nEKJTG!g'*1r+g?kП5ߝ>[̬=jM7BoCFCspH]n( Xv^Vi? z+p-"%$pZQ~41`wwcj9 Q$ Í{-}jʶ k&^Y1ЉYT]XS;~3AN:΅H>ʚFfFW7DԽw:rЭөc,ހX 63~ cqi]L*νoro\j`"$]#s"4ɽa;#LڞB%w&y-:A7=ZGF/as)02Qet= ;xl X-ʐBoa߾5{q?gJ9D8j &a>vs7z*-IZQ*[zwd,w;ڦhlvQ;4o^7"su8/@A.{ &h 2k W& z$={K0;t+|^A;*a|%ڵ떔V*0MC2ҵXkΤui5jbYZy2$Dx-dO݉B`06VZ`Eh؅ڜdž* ݜDqGtS uNV.sH1+#6Av0M݆qktMF **ÉܟiNxT':h9!^|}Ύ%p6h㻇(u*S=W;mz˞h%Yܛ,]C8áى H2) uhOb&XoG݌YJky$#}ΧD.n+2XH_ l_Ȓ%نF:aip/9iRʟ-;:D'6 asa+\ƬN.0Rix.Yq+풩#NH7Ğ4a͕jߊGYbdG^:Gx%T=MoQwQ-Ncj*Czu}Ԭ9UK|KHO٠Lv9{lnjq!v? <$Rߛ0 4oѸ)AET֭F>WUFcY`;f|'3MxxG|VN!V_b|6Guap]ˁd%CFgtl2s@mG2 p`a਱ _8-O 2mN C9A N~)_Z((/qݵ|LoƁ.po&/NFtܛ@:ndU]ZBjFJ`^IɀhlgP:]6Zƌb-그j1qy:4pڦ}̬DIpSwŧ;z񿤅Gfn<]~x$B!o:; yP\ZD3- rM,S:KOtƚ;flGRNuîU ^15$.mmhUXCsvS~sSHgtƯJ3O~0\R29D+[b rR38e4h];Fd+xͿeU&tOFGQպJ 7h)<(aUY87ۍg rRDu׌ ':߸a, vv'= Q kP6`Kk ݁n))u ʭ)(mR؝paqogg ot+yWO<ȄnSڪ1W&ϻ%rXȸ+$W$j cnl~㯽tCd6Di~2{I+*/!_;vSÖ:E7lG7T/VèWm dp^.w~FcGwB Lޜ1$eLF!`U^C?.>h2m<s KI/BE/ $p!4DN|u4a5Zk A!%SMFzGԯ!2 ?z4hz?ٖStAQn+\gZI>Lre7SV\sX <3Q.S3'\F:aѨa!æt7UA~x3@4?覫xdDx~[~L ǿ7ܒc8E|ݐbV\ 1U\FzzdV YYڑKؾI`,dq-B x-O|9푵hs2(^d5t%`t IjJu\hكgSI YŚ$_@ 3)\`噝u+Lje )=l} |PP_T\^t Qݏk_XT^WB-]$KWA kvI@bylr%2I|K>Z|e]D};φ=I0x~%P6噰#[aY9bPԚ/VJ'{0c2BI`.RYLݠcg(42 r)1RdUuAuAg+\pKڣM+hH|3gH+Ulv*Jh}q\'!($O/]"{*u56<)=1EO {m1A8c|UGzx|o€e֖˰@_PehPg(r[`\@D: L PPÖ+".e`fo"֑ K"=PUE ^AYօSwM#'`;ԛПYUC&Ik02Pap ;p t741qukxJq@~D b',Q/+bE@f8EӮ_#k'v`tkH$xH=||Cr G6E֪)ERb4jF 2cL%"jo 6k10f >: AW IYY[B(\' ]R?K="YtAI^!aUa$ ۑ>RIq~q=wN{ʤ򉉻fX^"Ms5N$cj5Z4 "3gTS2[&68aKRjl1DC|,yBQ|ebOm}QRqL -I|OެL4oRD); pCt>(|Ӻ%LM([Z'w*NmgKJñh" rMw$ER(xY,ۋXBT1&sv6EdQčIUfj++T}40- Ko_Qp9 zK!,/:A,n+) Or\4;.b3<@]!!M]XVݫg %,gS)0G}t0AZח e]r^W;ك~fuI>!Ĝ;u1D(r6g3?_PYrJ mqi/4:%;"jEcpp:JWajx ]jTaHZJ_AUAިS߁Em W=$mKC-D82 )d%Ln ;{Ơɺѹs&6Qo5u!R62)MY[j#V!aӼFg0P P[n~)֊Z*ʙ>F۟rY\/BEɛtM̒BpM6x?YBT[Yם咽M<<\>C9_SGH8z lNra/nI*q +}ـ{/淢: *bG.# &<ax QpFR3ǘ]?g yZ#[z,a4Kd,\-ǜ8l즻djc P(S7f_SfCyݥW_ ZH Ah'R̔QiFWb;tR@+@L1g >Rzb K"TG%&!t;k9/# q 3l2;N߽`}Dj!N-Ҕqw řj.#J{OUBA/!O?%!4 `6&bωy5'Qw5h%Kkz-+1聻mytsZH'3-sP-xpڽ9E cܐD|.v҂2nW?h砛 J3s_ ](.fC;?RFꔟ9')L13fqhd{acur P.*,DhJc){r;+l⼫P #-X z"IJvU 삅\6218piZC9j-E Z%Pv Ö64{gj<EE鯧/"5j;vseadĩHL#;!b3qٱUz參Lԑ/j46Cե-Q6#~eWl]ֲ0Ek< j Pu9x|TЫ)t>cB|eW&8c9;҂\Z2bglAɵ}s$PϷ'Q0)oyzJ1fiZLwZ.TL҄OS37.AX lV|lLCX"Kl Hܠy$ uC ‰/G<(Iwm9Ev. 2Бuc ,L|#* ,>%9UЊRif KSjѻxT^ŸcNuQKrh&WꌧMq("xoxW 15.6|OfBߺ QWrZ\ݭ_u:f'l* ]8E ͌KidBD۹6o;ei8WZi5)k|ba,#/d? ynD0zzȍ|fTDh"hIƅR,GЕě(;-#{U,od7Gy=oZHK>e!:YjV^ o=B9 $Ivmyq}K>WeDtK| #xRCx8-}܉DW[VAe3]<S\*> a%m(b&#DP$3 !HU9Ïo?,97(-ۇ!zD,F"_8Z9FǺJܩ#ծo+b1ЇRG4Õ|?j].uWc8t&Hu 5g.-> 0AؽM+uF?՝22e6OC7W~X .YQUvCTw孱?am."rwtH @}.,N4'D ~D`PRظ>ä@qɸ^9{4 +8߰_* PFg@mz_ڙhW1gx nl#TE~B:&9Rcs5虯LB#$˭b7< U;^Sn3[!CR6ڷo<<^wap<:%fR3ؔ 3tp P5+>@.BR>rAz1>KBz-+2#NVmf8Ǡ}zE%(UqB$ް mVrD//}IAu5eK\tlK^+\o3K$80~08Ӡa6/u iڰP4@g4:6 ʃ۵*߮ 熄[|,b4iU|L7mH\tEcޘϯӈz_}>4J1vh2^nnzFz jցOq(N1Fus )Q);)f0LO\2,K͉P>;:dqT!K[hR%-7&aK{L՛`JYL>X,5)a vW`GgT:c՞LwkO hG_I)TA1b {#5j 2 %EIB)5 3UzeHH7'Qt/@ۚM-G&0U7ͬ#DGbjқ(]I~cac7}= D^7)o+F\(x~ZIɟi,s4.>ro$ !BMw'1PZpj{+d{撬(HZ tCo["ަX5IlkO.)j0{ aX*ximW046\d`mtzAE_i*̲1Zш_"@%x?7 %#}whlZriqSӧ}>58?p~uXpm[1m= w&=νfYUC΃ etewP5P||=Qag:2(c4J[\اJxy(Q'ƗoKBUٱ*#<WXwxۢsHUY)~I8ɘ7o !E|}ttt8o z9CXGᠻsx~EjnYΨӍ$}lmu(DA%b(6:9˟}ބUq,OΡ yP f AZ lZJvLe)߲S" -A ۲=&^_$T:ԶA;Ҝ5GokN@I-)=inR1-Ez| b .Y_:ae4$&$@@ I4rQ &dr ]P⠃Ǡ _B#8_թKIJΦȗ;a~(+a0JqD8aSXQ%Q@< >ӑac[]sO(GlkFq ea|By'{j)70| Aq׉\ۂHɏSjXd{2`bOkfN{Zr6lv_d>+ "\ÅCȜ o v]؀!X(3`h*[~_ v1ǵv  xo{zsҧX?'({w,[&<TST%Su]gm71Y0KwZLҜ% \8,3!ˆzZʢp5Sj]ǝNHRRP1^G]qTHI,0E9x@"[Oeᜟ&qh:cjZ72ljs%͆M+RX OOɭ32[F6+~W0`B @jE46 s}3"L | WC~E" }mZw؟)IՋ_RaO5.<$[?/&h6DUdUA,yne%wu;@3*)dK Jx1FUFk_ 3*MtƊ> BM qn;ݙy{ʀlo|/l'mΉkvb&2FW[Jaw:"ȓB.LJtK^\ݪPja"mbjn}|-Ts7]ЕX6Cߔ5zX:ɉf p3\,_TQ>,9\pzv9}Vz,7R"OG 6}ÃB*~7DZme(y@ir 8^9Fii}N~Tˮk'Nz%0E6;Oj7$Y9٫ȗp@p/H{<@ l/>`2OL CP'O+kln@0*F# 2]bHUȷj(66!-N2NXaIzc2Ί ^#14`BKa(5Qd=W:KtE<=r0@|;6 Yƫ7(%u+(} ҄jED t`$0Lfs@וˠ͛6'C|n &,h-~kͪ$y[s*qIg߀a.%(mQ/^'Eq+Ǻ#o +~o4IBg oByD [WJB 5ک-:PSp. b]Wm8NR"76"$bj>J']g~ed]KU:yWx*(+j0\n≯p8W/H aE;][’j=} fj;Ƃ#L@ދ}1a7uC p)ݫ ^$l^`] cV,@]122!Ƥ Hk2>Uxx5ԉZ_Vвf@4ιM*ԠpͱCU,NBJfJ>> :#]45DJ:¶{"ͪl".0Zt25Gi1%RH*'&D~kC2$2/6®~:akW/kQON-q DuG#4s\>bVVn$@>K_+u;+4-f<5GN3̃p|@j V<<_^bNvQ}u׾Q[MDOd$ hѡ0"2ڽ0?.'ΤP i8zqk䔇8n QH,vV>iTqg|L1 y)`yy,3&y9O%A֫zT2!ԗKL !(CdjHU2KT Nq%5(Sn`=@ ;=aI_),~%@y[8P~d)Rr̢=xp pY[md)'S ;T`De7@t4N7. Y~)e HL;M幩&sݝ|mb)cdɱir _E;rJ>'  >\/eʉETxۏ[?'?&5ڶ"/NځfaS4Pj#{.K?bAWs*`K4ݫLU.NoqRCJPJ1Qr/P(V }G.e|Zq)$OiQ478 6 &O"2٢a`[b~ʪ2隩˞4q^&)5 =zQii-F٪dESIFX%9";urJn_kE^ڟN mg tc'bϫPe% MK\NJ"=i6i_A%pb F1`{ "w[e1M,(/9N\o-FX?5x!!~0//u)TЩTLGRA'~f\ \KPwmҺO ] AjdފGTWĺepT$9`@7B'+DF "F:Ǜ%۵[Ysa5D;+ l܅Q;-ws!ƵXMgz8T{ɔ6kuuaf> g ^TbѱF0a+_%mJL"`*'4d|?s~9؊@PnqyQқh3lthFYh #OT_a [nh*: 9)C]+bثR*q(&gO`l:[[#Dw;Fޛ&Z.._ 2T!$(@=0T9FlC-殺#S}f+#7ၒǶL'ɇ:p` ؑ?G 쯼IzՎȇ 0YZ$5Zp.گ,ҧl}g!ӹκHWiivCe8 y8N >w̟%Q0-xIO?wDw\t,UkOݕXta;ώv._#<|fiI0C;~L{ޑ `f!Ɏyv־д嚳]߃C4잮Gl[RP%`SkHLS苈f_k`*d4E,`@mr,j(W;i:SUeIxղQ^%7 nZ\SM٤i $''wہnӥ ̧o=RG! 1Z|VCsfu<^-!N&u0&oŷwax5j"0mh#7|Eב}50h)s]-2GQ:@0yahsV&r)%w->:DcQ%Bid+!Q-c?k%H7̗A܁KKFc4RL=;P4e\'Q._ b`~0溃FUUaY fכkNǤjɇJD&R̍? nG-hס5k'SROETWjsqȝj9hʄfϪR;UwqpJ7x8uxBěO1slsH5Hg|p9oӀnc] Jʥ~MVT<mI%~#C$C^ص¯s~e=yFװv +S nwMyjHP~_ ZX mVg}ǎC UnoxR: F CbSE3,\GHc0#_%$ L0c?;K UiTM R2.̀P?8WNǪgC Rm.E.XnU柉 lԥo>c6Ӄe>ںk9_Z#LKLP,_Vg%.. }"īfOmQj>̗Qӓ\5'Q Cu6jOנ;Z&ŭoqtvL-߄UAT7oscФ$jq_54[m>zy[T"hd+OClûk 'pS 1O>%`M F(g-S?7r>*8EL SNk=AY/&5 #Q$ۅbq*).vъqYm6]'d e9bHNx,+B{4˔|D4(hz$/+QHܶ(-G1pPޕ\D8-^؉C$4dA^iS"̞-ah-AnZ!E(6rvGA $+$1̏SqQ^*Wc ,x{0Ae<}<uv$ġBd E&+l $ph%wRo['S U*9M*g%7oŹa~سvP&@g{yWD<j^f{<@@{zkwոkDl;6"%gy t.) | WK gS^-&/(:a1K>m#7Z\ߛ') 'a*tZ-Ajq:'"*/h# Fv5|bOqS~TM;Fq$iQw>d8̭+=&DD5OQ0W)&t6kS,aψ-vޖcKߒh־8k?,SE2߽9'[fmKb(@Jf}}6jK7ĢΣZEjXSyBp2CqֻOgF􅕠`R BӄyV GA6Rs49P<b"ڄ[ fǒR)F{_hhw= (F]M2rZk7Wu==DPPCLT0>7/?EyaFƇ)=6W5`%WTйDngHfx89.RǺ+&sZNЫ-SJWl] *`xV.J L-ۂp^e 9y 5CL*2}8{~j9c坔>yÞgդs3Wd h]ۢ?kpq }Ay4qv T<la41٩}WbC+r6I8ַ˛(]G @ۛk$#@# 2P'M=5x5YW ⻾RՌf[H)%sƜʅ-U$Thj]W ].(W ŭzС&VffXa C׭ PL.ʒ|. [T©9,h|.>FGւ򔳌C*o֑,y,QVW ;Qf~M5t&U}XQ6le>q}NNfg.Gp/[b?M ;JlzMi'4a9~~ٿw^(v[AtSu}PBu-1:-Ð/6U"iRW46LSKjh JHM u)[WZn_M#f_.椄[VhFbQyoD́ 1~X'ͺƉd1hFj0Z{( &YrA0&ݜM{&,kJ{f'yUVApNYW͂#/~yJWS9 Ϸ2X neg)>vP[ti`(3:=㩾 J8b.UyO=@$;g.vqi>v#O{@kL?2\e钅Ѡչ$/Mi߇[sDT5?|/ We{-7kxC5F>gv9b3R}AQ9$ %,WMoĺ7uIKL~d.Ko1yS_~K:zkpGV2 MNwTK_) kk.]<"\V<@A">e.U?oB=^*)j 3'KrXBeL`֭$kQ\R)a"*1sOw5zRC!F;-H^jL@ґ raMB!2X1 #c5ZT1Y<ַEKi 62>'Զ7~ո>"Ak}-E:rw]Ϛ'=2UuIk bӡyx)&n΢'dٱ4_5X0 yBr& z#a5,DI r$`BR(v' ޱtG,ɂt/\(ג>UJug<}"Vd8iCӻ2Hx$!=;gqih_Ř~j^'N 'oV٫m4[aaў "C#X.5ސ U8(JǁHan|<&!H *'7'˫~stLHENT77Tۥ#tB9¿ 1@޴1 {r"_5f_5{dd' *P$/uͦkeU5r$ Fj 4bk o/*Qr3ҿDO}LgCq%PlL{G"XdP褁ZCءl]L1. g|4*b)yMQH4ESސa`NA?`ؐ ޫ.P پ__.C ϓER,m>ONI="@qDuhfsJF3溔Rn#sp|v>Uhketׇ>[GGҥB4Fq|C.kSĆ~,_ t2 Z{tx#Z9wT1dG/ca 꾕cp`k8=ş7>K}sI΃;zJjUF(WeiKq8B%o-Ao:?~hҨdžҪ˴^Uo j*h9:7Vylb bGh=bx Ï{D `7H3]qK*CrdǐrW sDһqE_k]{w?{bQބhI|I)t(oKUc{_ViUC ~&pixc6Sߠ\1M%њh!bհWx)P`\тḭ[gie A^Z,U-\E.r@"<e{Bm*K}s*;R?ag$4Wx=6p`4=HtwNƤ0"hE>:L_4JJ2O:;rC'b.ZfOES*A?SёCmE;ZVZ-2Xb ܛ4Fr`1Hfa+CáY_ND0@֡a7mvuV8ol_+ ial@Cq#co̷9j?ZpmڂV;v-Q%q(;2nn՟Gލg6U$:([Yt)q٬7(! lEտ?^y6O@joT,1YnЪmJ[XXGr7^`;?߻0^\Ɉ4 EPeb7vs'I.B|+MH#unα/cM <ūBmƒH`;לqe բ B߃0Vz] :wh+!pNuF+Jz|"IbN4ƛDz7'Ͳ835N} *5 iqj+f:MV{,Xa!amGB zE{3``A}F:E`wл`>]a+?6HPjh=Т_u66u1|WaoV@kqȢ&Vk-g̨F$# xRX ƤK?W$XB%h`GjcIZI^H栲]o}J^Ժ]3^=lQÖC:4LD6z4P(g2 +Y/|rAWGζcD p~T!?ꭊTN'?}߫#zSj_3ջ[l3es.E5}ӗl߁I̚'Kz92rsXpc@VVď RL—aMF 7bH<a8M.µפ{4!OπN5+ Jz٭-m>E7WyKXA |* GfŢ7`Fͫ$|DU7M Ex,9(HL +@Ƈ",ib:SxᢛBve`QF62z{}1tv:Wv B= e{=ɬ£~xʠ?2UXWSe=W!SΫȖB6?~˨ZjĻI^!Q@JWK*ńG1ka|xpB/ Zl-Ѕϣ8Mvɗ `!  \x5GsKt@ɶG_T@Yl_sqT~Om(h;>W*\o`\xF};rsF'+NQ`D{t ָO.F%Yj&i$*9DPNaG@+K ƿq;t|ӷ.+dZȓ,]fk<MZmHŚͨWɩN;0h q@I ړsSLxQC)XAE6J6_{{M(lN'ʹfeP=3hmK΍o%*䫞pn PqCo'/r@߳8MYB;~j922үU N\K%HqFxWq iumGӡ tzJ6Il I")n9{~ `Fx .¾Hh u.cWi֜5 22JL:L#1g6{q֨.:6//q#m2EtTjր NU2;0Xl_)6/zn4`S$歘+kMgLqm8D5 E%4WfONċ;A)5Yƚt\{es IUfc^*=I"[qt3 cr3T&UHwXkۃ|"Ow2$&wq qIkRg&'\5oAr_B{W;s(a++k 47k>S!)HM#!XZo@#գ67s]_1C(5*wȘs{ \JklS[~s[R"#`Y|+̱nQ6k 'īsBEo5BxVzLe,jy1Gf&[KkѺfq(6JGBmGQ7[]Qy;C  iY%$Sƙ%9G*6S" Jz/bDzZ&?7N,ЁFmsF¬i5*d:KwS,{v{6Ę6-:28D'}n Md̋,%X.Bŋ88K~B1 @& eFˬqS`/ cJ_\{4i`ig_y<^tFLc.vgOO%^IڅP%DJ¹&`}] ]R|8^ֳs9 k`Vo4;L3sـ zb~v+tCp0 u~v%(ǗC"a{"׾^+fr*CǪoVvsV[3_@iP>ک>ٓjqcH/h68eDKKH3 d(, ҭ>^lL. 3zgjޣ9\;+5w) !dcuytE{"}}ɧ RkCxF+/>Y2*!g7J;V#7T:7k=|y.5^?4`956PD{&t˒*>C36=N:Lbm35l S!}ﳧtfQB'} >.Wo7$^%sh͈d{XhssjBS0#C<)^Kf3o_# gjnmCOGp:V,j(Cp͒?*+ P\5 iD[ztDLFGɞn}ghfjqaq}|p9clڊתӢQ,퐅*Cbs>eӆHA"JK6_MEOYKhp#HCCX)3iAzaZ&)DJl7%2F^)kv@b$,Me՟R]z1> J/*($Žx:9s- mrTa*s2XIc PfT!Q!T`% r*uFC-^]c}^F2S1e$Y2DcMP\!V"S畾W}+7{dql"(0sGj1#`^hogצl AAatee`\| &2Yg6>*i=,PA2/ Josy3t 8YCCF2BCԇg6M\,]IŸUDuwD㤀Oh63d/LyH>!:K(d7/mi]_0&$v'訶槲06{NNW>͚ P5OXPA7]Zrg8YwaQ#`I%-|-B ǎ Ro? Cp<$)9. VD-1"di3< hj\5@k}(5JRV8Wݸ儁֩&VĬ6.$'qt 3i0$L.fA \J|Lk؟b3c%B@D\s9!HB#ϯ<*iO.a9pywb?Yq,. '`#ڌ],\eDo_X6iDpL$Ö1?1h` E ݶԱ"r6zCk} v>t`ş)[^?I-#Cyz1N܍E[#UcKGa:zg\x@'G A7PgkV؁ [fix E{og}v߇obQ_2Er3#+ss̜TmlhYu$ȐSb&Dax: ^E7J<Vmϖ+_wXޱj[}jDVPs%ރcpNҺP{o~b:٬ B6零:է|2KLfeVſ{FD f5!-rV3$6拣܌_6cc6amzT~sJ_E@"`7QYKF•.J#~&J&h|BlU/&c?Vv++nl9-<}9v/jMq h)ߪHx?*ߥښnc꾖*P Sm l|(^=]vBE1ĿOdY=^(:+)7V'˙A G ZEgB[O4Rةadƭ.#k991ϐ+.y Auw|a%Ng\TM|?Z Z1¼r:tK^$/M/; @cJtSZM{ck/ɫ$ 'qӄ9'\Tu_u .7wAh LD3K~_nX*5{BT 6n~i$Ek3 (Jl+|=[eƝ͑iY ͸޳&{i?кf4;o{4n ˪. :3-ڵd=:B}%|5^0lo. dX~[~"q:g^x5 1𝓌}:~_[_%AsfW}wV{dz!\S=8nnc MPx< c]-D>E _@d}g{s`"pLD^ja;Д9AXܶ`*(/6-|4dbisͿ.39ޑF}oiwI΃]<3]^3/ʀoQO<_$Bwo|cw+ +)d[';@f3:P*1dGݰ{=e~9㵧%A50Ζ(&佱oZeQɨQ}'^+PLͿi!`j_Z.Po#O$Ħt. xj'A9qQZceOC6 MACxFi}ڭG:5`CILW[& S̱/n+ޙΫjNE=^fCTKjO$v#, G=TEc]˯ @VE$N!R%(txvϣY0A b.k2h5^E]N5 !eܦ_8rvF&)4\*FIdZ8mXuo??D8PZiG<wx©AB1';c( ync̐6dGX˖04mC`xfas cZjEu?`,#Li4KD2?o!*/W:vU=z*i2g+׹o^&kNK@ }mlRrMTo?JN}kx=˼4FAL `Gbr_tP\@r'_X|H֞8"Yka#+WQ^FquEhYgK`(c 7(Mv! <\b EkĂ&)Pw>o-8`] mER-.lXmqwٽ@?#:Yasv ڦ2,O$]idXH\!Q< Ah,U2X/v!Cesfzny.@N =ULڨ_i(Db Mb|=v] a{^ʚ!S`0/tZ*T m,S߄oI<̏ 㤼k5yhpT@e4a;s滩l-6T9S1p.W '/,/#FN:V(\M죎nb ŷd0O9.#u~ dAR z y>x%qLOW,cZg  ^zg h-)_l7DH!i)wE_?$SI451+Sю+>&KDnU$<8 .'Ƶ^  -7 -_zϹ42)k#{*š|)b5wH?ɕv @ܗB VOc? P@ŖUDFRӥ%+sMY w$u|3ėjwkyR2ƾm.jZȣ:n^_ս_3O9q+]of> }9.PJ kwrUւvUd`RGdfRJ菴&FɱWSEثpj0O,M]l_|>g{iC~1FhnC<ԕI8lp ^zp:!xxBlЫSEj"Qcf?YXOe3r-Hs~q.:ޭb OLу-wUEoBOsDoSS~Lx+ 7O=L߽~N (|2i}ۧ˩z.:Oq+ H\!EuѴ8ӽ6:Z˺V/®3>$8{*ObO^햱 pJT4WcP|$Hʹwne 2E :1f'5 gvp}>_9$١=! *pM\+Bq۳=J6ZuJYvt9ZO},C'h.Y(#saStBt4(_͋Ck.E C&*|Lg^͉8^٬ە#wvI1 PI!HbOf]׻Ra"l؜:K%0s{hւn"+n4l>tsCaZKĺ3F,E V僐 #:RI{}IPJ+ ~7L2d<9L䚫R!`{JO\׷wx%|2.KkCѣŤlCeWĢEb9Bʡ)IݨmDUy(ÂA ^1HD q݊D%OGK&w0|s8wyTdjOA3 )qx9Z!ѢD<@914pp]#3 $jʭWc31a>˳0#0ՁL!>%fj,"V+X9@G{vuhjJ{Il ~ݣ[T{BuGEj# %lMcyY*Qy i[aVʕ Wj!;/Aۣ-8(UP/7Ox@S/SLod6"FϚcW !=x+k6"9T8ܘa}Y䨵Fz@.}o7,3@ 1 ]L_e6=DP+/4a$B!9)HKV%0J*lQ*1}Ȩ_2+`Gh$_/In:|`@ifϑ; n޸&ۃNN9G0芊ˏ=!0iv]6e7n$(Qu0J#.@R~=gG6Kqvx}CIG!ò pyA$#;&s+X]U&7z}?.*֎ݰ!5kjAcjY :K'U5c֓ K8Q)٢^b RDn 5\ }(B(/8|N# [2Qm'ϵ8qS}B"Q,.ըA.s B[Ȏ#)/ $M.QTQBWT`7MzVeԒFt~4p ly:W/4O9mGx + $ d*ne[@h¾G9+RPD>7Kcҝs K) tv 4ݚqxa;úw~[Ǡ$AD-FV}R9QX%"%TWŀr\Β!lęe.ܓUl?%.as$灓.zU@}FuT>G[RʥX-_P"xeŖƔgLnyd_z5~;w5"U$_K!$hw >9B&1f͡8JWtVQtCƱmn(Xӌ`0bwt8M;QgA0LPB6eG<}e ±a^U{k~aۣfe`搐!{u \̻~Oe$.m⇰Wmã`(a7Y/ OF/Ѹ9oeuBu|ff=K7GWَ4#}' UD]̳Fƹ?+U9dfYĕ [kn?=:,zR0r/$nrb-yG )/3Mkx^<! YnLj=\*A߁G\KKocc|Ս$禀p>0)ZyǢC>a.x뷰Mfo _xLECOžN8 UNl_|5 ıuaa9[DOʵ,-M ~;ιK)xŭ'< C_ B\c#Ŗ'bY,Ԋ?^'P0,~}FhR4ϋĬtJcg=7Ѯ?ߧg%0x[plh{Uz.?6۬ r$g UKkett Om"(.=N D681»ؙ-8shTF4_n׏d@|Nvvz+'iax QKl e 3r'VFKv Afp% I躿锄8{L!2 #hiW qQ_ }|,-MC iRga g+0DSYTQ>0x;xӵ[-hƦx6 oqS?_<>&2ld ۥ^_>%x6(%Of咼4f(%|Z!aѢwܿ|,Fx#>٨Y, aJ|Qm 5r׊EOIveč" iqu:=BDk'(sY1e'İ)T(/M԰nR\j4w 6h'6Jk` B+p&{M{>[w`8IsQ󝤃00xHu1dy+Ū*g':P4\yn< % oh HTP.v>X R_R5|3@{$Dӹm Cĺ'"}#dA؛Ѧ(n\U2tƉ4Ǧe?\UH* v&tO_vJF6j&iaI{N.qMn͌5BхhUDfNɂ}ZgL8&EeZ &jcpV7 Ewʈs){pO jߝMLL eӐV3ǵXY?Qm`,'@@Y>~zPj.^X/ E%ITÂizG_.0Ժ6a_g;Q*{O(>qݺG!5./lћc}c%S܅iQKl&[lEvݠ­Ul\ 7s68 mglŻo&یCF|٭0Eߴ^(W5ŚN_ #0u-(Q