summaryrefslogtreecommitdiff
path: root/src/string/strsignal.c
blob: 3b0ae6d7c7c16bfc2a59df60325d7dcd6b94b33d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <signal.h>
#include <string.h>

#if (SIGHUP == 1) && (SIGINT == 2) && (SIGQUIT == 3) && (SIGILL == 4) \
 && (SIGTRAP == 5) && (SIGABRT == 6) && (SIGBUS == 7) && (SIGFPE == 8) \
 && (SIGKILL == 9) && (SIGUSR1 == 10) && (SIGSEGV == 11) && (SIGUSR2 == 12) \
 && (SIGPIPE == 13) && (SIGALRM == 14) && (SIGTERM == 15) && (SIGSTKFLT == 16) \
 && (SIGCHLD == 17) && (SIGCONT == 18) && (SIGSTOP == 19) && (SIGTSTP == 20) \
 && (SIGTTIN == 21) && (SIGTTOU == 22) && (SIGURG == 23) && (SIGXCPU == 24) \
 && (SIGXFSZ == 25) && (SIGVTALRM == 26) && (SIGPROF == 27) && (SIGWINCH == 28) \
 && (SIGPOLL == 29) && (SIGPWR == 30) && (SIGSYS == 31)

#define sigmap(x) x

#else

static const char map[] = {
	[SIGHUP]    = 1,
	[SIGINT]    = 2,
	[SIGQUIT]   = 3,
	[SIGILL]    = 4,
	[SIGTRAP]   = 5,
	[SIGABRT]   = 6,
	[SIGBUS]    = 7,
	[SIGFPE]    = 8,
	[SIGKILL]   = 9,
	[SIGUSR1]   = 10,
	[SIGSEGV]   = 11,
	[SIGUSR2]   = 12,
	[SIGPIPE]   = 13,
	[SIGALRM]   = 14,
	[SIGTERM]   = 15,
	[SIGSTKFLT] = 16,
	[SIGCHLD]   = 17,
	[SIGCONT]   = 18,
	[SIGSTOP]   = 19,
	[SIGTSTP]   = 20,
	[SIGTTIN]   = 21,
	[SIGTTOU]   = 22,
	[SIGURG]    = 23,
	[SIGXCPU]   = 24,
	[SIGXFSZ]   = 25,
	[SIGVTALRM] = 26,
	[SIGPROF]   = 27,
	[SIGWINCH]  = 28,
	[SIGPOLL]   = 29,
	[SIGPWR]    = 30,
	[SIGSYS]    = 31
};

#define sigmap(x) ((unsigned)(x) > sizeof map ? 0 : map[(unsigned)(x)])

#endif

static const char strings[] =
	"Unknown signal\0"
	"Hangup\0"
	"Interrupt\0"
	"Quit\0"
	"Illegal instruction\0"
	"Trace/breakpoint trap\0"
	"Aborted\0"
	"Bus error\0"
	"Floating point exception\0"
	"Killed\0"
	"User defined signal 1\0"
	"Segmentation fault\0"
	"User defined signal 2\0"
	"Broken pipe\0"
	"Alarm clock\0"
	"Terminated\0"
	"Stack fault\0"
	"Child exited\0"
	"Continued\0"
	"Stopped (signal)\0"
	"Stopped\0"
	"Stopped (tty input)\0"
	"Stopped (tty output)\0"
	"Urgent I/O condition\0"
	"CPU time limit exceeded\0"
	"File size limit exceeded\0"
	"Virtual timer expired\0"
	"Profiling timer expired\0"
	"Window changed\0"
	"I/O possible\0"
	"Power failure\0"
	"Bad system call";

char *strsignal(int signum)
{
	char *s = (char *)strings;

	signum = sigmap(signum);
	if ((unsigned)signum - 1 > 31) signum = 0;

	for (; signum--; s++) for (; *s; s++);

	return s;
}
@Ux-}vWc0XLt?ŋ|@wV}ZvǛ3fHv>tƱz27B $Ly' V㼷Nphm!8e߭OB¹mI.Y`WQhFWv+IP>04{G-r_ƥv/Ƹqz"Bgτ.Ɋpl搵s\)i=7g:I̧jE lzwΖu:TB\~U=dV9`$ x/SC(=\0%kt,SQ.` ZA6Hx+lIޭF`6uH׿Gv]Gtk2׉c} xfv?0_hGEV Rh[8<#$y}`9%k>0<Ő>Xj3 &/0 a45s!& 6z&rװ:# &%c p^!deK{o#7lq-(؝$q)/hͪg.hVcN'Pά5Iqbά'mw1*j I+ G7` TB`o D)׋p5?6[hC?yloiKcL$ڈsdr0)3`4P:x&Yvt8 edqz YUV3p Έ V=F$c)ʮ,eD8JI+o if%ZM e3ZZ0]ĜIDf¤ojAEsW }\]}s~/kk2T,ʢPa,92ZG;ho]M22`T[:6 s :T>^fH6[!}B Kg~[ڐ%>iuA̮YK ;S$sT)җZ֘xB(T`2:!,Ab#/f"(6(Nz` h7a&4&4"^i]BG*+A)}N} -ؿ&Vw(G)̞3L呅2) ;A)_yY6'AOzsS& h{!(t0(0PN=CN4G+T^# _7N9UP,(%BHhn-Yuۦ+9!w&/HʊE\xs`0>!UY8 QGho2sW@qxɡrM/)ٝ>{t+{q5?~eOdVcE/>8Da1@HoτKEJWA{7ำtfVs$!t‚CAO,ҲJ"`W<3pMHWJv.m ٧enF=~I8**vx5 Ŵ\!l|Js{R(ʂ 9{61ɴ,JSUIFS $zMfEg08fIYy0_dd:7CzFbAmqb,xJK\ا\\V Aj0$>(. =ha4A[p$ub:A)9" D,6U 9qّؿԐWMftê, lD'o/=xmY5ɈXx!?iGgҬ8SET[&7L&MyOݠaaRUlU4]GBVg{c]=-/dкP1%$LZ Z6ROtD8]ZB:@BlmւNlWjnZjIAw0tWÂ/ )yīU$zg5-Wqb,]2 7@բRvPF(92-d  УduGo nI෼߶4ȉq 7 F^nx3{e @KY "XWpL>1s;n|e{Ք'u[$)جJS8:R@Yb,6+8"5+"p--eg5#i3w52$LTWs") l{|\41ڄe r1ؕǔKFtR*ã 򪖢U&WH{؊ボ2Bn,WJ 297?K|3SW&(>ê!}0$Ox72J1x+ٗgg:n' nHkXeR$!\_wQDp}t=E7;\*Vh ~\iYTf#V{y!E(s e#yYJ/$0ڨ70-赥6p!@E3rw`%#(q5d6DIj,0plDV#'wAkO_[Jۡ>7JGHCYfDnHmd#TJb<]z, zHa+SC)<4jOe}D1ՊKMH-y&]$B(f$ -{cHJ5 pŷ٤ ASƉYl6X`m [pmyzB=Pg9;ze`< Ѽ +sT.>nvIPrQ~b"c `t酊XEuef%t$}&,xjr uuZwQVz5[ABޘ"O`-5t;w5_,L f*XwT55]u_;HIfEw6+`)F7x)n{_ u8fp3$U&܀c&&3̹>}fr3=gPD|VAY#CPQG1cT {ShAQ V w<<5QG(V6yR'rsisH@a.+&G̎ yujyabOޔXb5aa(i_[YV7W?MR wX9h eVBf=[_o(=N?˷`MBcCbwpXH !Ij}mjT 1V柚T R~X$E(H-k!m39l@L_@!}HRTYYSg Y#QUც3= H Ct~)Yk"$Wz8 Ł{ѫ\]8-e ]#A5?3 5L*,tHPvibej|s@X&8A߹$+ ;M $UУbA:see*Deq or'ވpqY8dEfx&":mJnz2vN֫31F5,+c:LqTHx RzIu-J_aIkl/+k6d(w c ؽWy0Hhu.~9G۫?& Vn C){K*V8f k;aEҔ_Anjs5t%ZA1 .<1I٘)H2 I$٘ xXw)Ө#D=vvԿ|GM0zFf&4PµsG:J%#70 ,B&h;*1"r%h~2]1hgoc͈ y91XE׎fhd5%9xwҲ)P;T =mRzq^iƙpB`RK+^-\X>_h{0XǑ:3= vdTz4]Z_yaLԍ.ɸcAgvt+֣csq<#[i9M/cbQWX+&oY6fn!]ӝ łܧ"eh~i~s7yH7{7 QYekLhw|勳ddٌ,'yU)LiH&4s6;X.n _W^*HVYcRN'r6q=]F/hVgF^.;xc'| z@\JzZV4G{x1ޥzjᖹolW]I_(Eғ ;,Pߢ7?fwe[|'Db ."<91MXYf=&AȢ `%#*( e4 2 yB mEv.]Փ=*b~.R i{l}G{M]4tMQtO IR}]F\F]ЕB"T7uusPIn'sX_*̈́؆(E8:w_zo*}[h3-{*g[}W",ܢ0놞?W(̞r≙K&=)Ж^A7fV^UԎ4ash\G\6H )h5RIs80b]8;dG}'-~.6FK6ae<诌꽷5qm%Kg5A{ i-8ޔbI n>}GLpҫcEmdLx2c9,GSH}d4e f8R>o}>ٷ ֝&k.ɲBǔ% R\DC4)U[^ҁk%UҏpG%,jTvUY WVi[Sل c&BR#NcUȣ hn6e|;exO-k5vW^iFVdhoSyo+6cnQnEio؍S[~7 -YxHjwwK<]N&)7z4D^VccOu('7YtD讦!`[M2u}v7 NT{rD_fnB6LE"Ѿh`WQ%?w5EwN3Gpnm3XWh`‡ɨ A`)ڠ Դ'y2Ǜ2PFJجңhflW+Mr >Exvq*Nc(g{T EwsZad vE!$#u-*U*y)dQE gΈZgPw%GBILH2 v ]b0+-Fh LM /]R6@6^8`\PSK6Ux+`'$]7Nt@k!s% 9P*e]xԤMS4UT 9T@I1@kDZ9+fx͊l Jbj"bwyDYY);9q2t~]-\¿{k|G[M?CrIkhhh(nN9cGza?c5Y^2| ?N^Rqg k<*{mF3x',<r'yٖd!)'VL7끗/J~DSǀɖGTsέy؈(d(c"IhMjY"M@,3rL'`'+U,3qԥͰY{zuzx7c)]-8#e81HB$1?ƐQ_B!Ɛ4#@/Kf"FhAv2zOKi&3 /ax~x ";~n/}KP`˿le۝8!8UfmZ{Nc.vAx_Qϛj7i".zaJzޮ?mxqNG%E{2&C;]>Kg9Hlq`/s ǍrH53$mgAS9B%l@:Dvnc8ഹs%\f1M>E1-:لD٨*(sl'Q_ E)ջ*5u=kߴ)g*xgK [#8`wbEߔ?r|H_#Yiv\YŋHyh35rY/8$<%diNvb5pkN. imAheFCv839T|(VzY)US! ?5ʚ;_bq(8]d=[Il7Py*ظgjÄ@ja ՞ LG 6.?eqN)L٘JAXFS0+J 2Wjo0* KI181ᒝbLk\,lwF_sZW U#Z:KVwz&n{EрpO-sMYiU|C{ܗ`)s"G-b>Ҙ#Dòdߍ+stc?c z^k8>i&#^InWm t%>## 8+[%F&տd`nxgiz֢!umFr Lњʯ)NPi6[a*#K2&hӕ?XlA vc&$Lvn><$5: P3Mk#3xbRLF/'#Eouڍ^HDEh^օlxb-oAրuo?0pM`ׯ/%*Ѷ\L z=i?Gnh W2vdM_Wz#k,10Ad(*đpkO)+Xm>P'd.“H_d󥷃Ʀ:0PW%jЈc K}ofy*(ސ7H1Vd^i[|XC,uЖce}>t_mƄ0l]m<{&j y<]c4_\B<v=BxI/PP Mi)w&6A_<hUMUHKe|Ԣ]:֑6MDՃ^KTRDsbCj'^^aw(Z:őX-,ѸH%v.{Gȶ.F̵Ə$4bϳ7?S Kddͬ3R.vT Pm~<bH l\Gm\-"ş\M uF*$(U:W|; DZPmء' ZƖ3{c=Vj%C,`O{,Nh|'dk_Dvkt)FRJh)\ v[tYvn([T@4z#!eeC"`<bXA Di.}eY8zӷ\żCV VNq}o^2{±A`(wDpKk\ɚ2W{ye[/2֎ǾQ0BD[3Et<jхR! Fv 9QT1)\d$k;4m06 ”yogw'vY'үP\1 ^ʆudK\!l7np$IuogЭRjμiu])_U\t:e*:/x;nqzV /~m 5:.8fsgUPb@bCY0'`)2:8YkdE*w1 nH{{fl?㖍D$wXg%nX6{LVε2ޤ4dTa+#0lJ+\餘ٕc4 qsτ5y3etim̸-P:#c=y7=lX1|^/bg/|gM~Naw 6k8Ӥ7Bzkj>@ fh5矘i#EX7 "x+<$w4qdR+fAw=yFP%~~4=.{]?\uPK~ޔIG/b%SK@])cˤ0NJr17/t'VpvFۜ[,q@AZ|[/-A5*^^۬6M4>`1f  5Kc cs8>!278s!<sv}pY(ˈ"v# x)( VHjf>eA1zUac5҆*9R֋$ %H(RĖ&3I=s^8 *y7ZP7bq!ťh2C!o R)8[)*' !xu`l}p8=<$]䪄L7,=No8}˳t#YGm5Z5V1ɽlIr=vgkK {u+7vo6^8}W;J ~ cxj &(aZ@Wt¦W3O]Sp8~|,ƌ _ʑ)f2R!=x%yc rZ$hn`gZ6TtgYIxpU8ӱ`+|ڰ1YUf5mPuж-!Oz<?~rEdC3M::׻zQI$e &%&K;;9 N{eNSmL'[þT4dsS 4rg "M&@JǾ^"o6Ԙ`mbj!s92ĉ oJM:2C[6(j< 7I/5_Kp a_GpT8qS;@e{7lңB ;ک^׵8灲݉uy6"7G} 9qE)ԕY,+}ƝYGm?X jtlj1eStMέW\\\ڰ,"=,a wNA[oJ^ wyN;YkeC$I$Cd9m fU'8vP4+Xɭ4J h+- ao|9|[%^રSz_kt9 D>Sb E;}͝6h[F^D(,OHǐ&ݙF}kXJё#<YOĨ6KUPu V)x=$uWhN# ש#!)WhCUp2[a6$i@XG,zgDEfWdIO8CsL v!Wq"HGsA;CDX.!t6-lne‘/VJ ~Mop_I ZD6z:H~75@^ɖN6},^BPj5j4:RI8Q?N?K[l%])"iGg^4>Pt'_U/5˭]UFEUDs%ҍ+M{TI78TdT$IBD[&>h.(Feq",aKb91ڱ~ZfzAe1^'c>ǐu ;"EP+^seTތv|,oX?r&èpn\x; @ yo/7d?#~!" VN:zE=c^zwy!8t;r' `h  YA^qچ^4iEoe.i1>M nUQ=+ӣ%+ۄ9,kMz~&Q-L_LS:ֺaԾ;~2%~0Ytu*⋩XfXsd׵`F|rvjԙ&Ww*2Fk j=/կhX8oAgu2[Ib# IT9Y*Pށ19w]޷R.tsw3gq%u/.?El}Qs5Γk*R1GVde>&o2Irg lLJYƱ-P05]60ҜtV!eps'#ʒ ]46E_).cC=!wA8 ^)j/VY|RnW_aAeϋn, w ,= o[]%L\>:&wS=Ȥy3|Imi#pK/Ľ1l*V[2=AL=fؑ{4H1mn#b}d)=DpUw:`?6fspu-%!C ,MskL c0C'%Lν/ 18CXwpetJ#x[(3H.}}CWd0B+(#IFdTcYeKo\܈ʄ5P%'-a[OAxwv{IgI|Ʒ\hZS}[^xT)c3ay_ěG#X{ҠM[v۪y,FZR m(tyJ8XM?YXEj)2otn@j sY}^E_8*[ϖ4\yzݓ2uر-v}hÈXOYʨ$ vЄ6~`Yp 1\-|pKvP܇hZ H6RɈ yVcаʇ"&K Ayćl2&˗rp,p|4꽪 s5d8 4FRO&Q$J6Zܳ2I")};Zo^_ɲ XTgc5{왨8*Nv4p/_6ybK+EN[Vnq8X PnɥB:r%1~l$ ߁hQس`&ceOC/*Q0IҶ&QEhΚz}5gnȞ^ٙ^>X wGgw֊D5Jc)Rܬ o[*UچXjcU`7J6xN)(ibJQ)bvpm:"{Q[mTSv]j,nzOzTE"̉#ߥAVGL7_ة^zѭg9FbnB+5,P$+O-"4t9Ȉk 2lX^٣H uAE):2 &ʂ9c^ ;zBQff"NKK}ĪY :z]eݾi"G*d+x3K3?=`IV\w@$ڽֻ (Kv̟.Z%yL!H[)FAq-#",5FZ yߢ1&hJNH? oλO ~u$[GBV qΈ컢j=+#HF%ԏqB^Fu y{(^~3 ~eOzOkɌc|i7¾_=Oi1|]7x t&w057'+? |  {lԻy8hQUlN%I=l1[Cm 8upm㧍0<~4~Ail%zCr[F!K%y beܖZS|N]`$4b!\S~W}c[dAԺ-re1HY$+p/ij4]e ڿaNLX6!>`*0|$`Kf'KXeR1mОSD)R:RhMTډM |VCڷ?PAsf쏍Iؗāț3RzɷHN1H1kN_LPظ(X͒bB_yCYgT1Hg~ho1$<|VX][!Z"Su#:s{'! _K~)W, ϕUh=~.Cpwp&J||#_`rx;`d%xOUiЍo2# i7 @QhD7C` QqgE8g lmmoah%ܮ6% _w|/W-&{Ƨ;#m.w@5˦TB@HȞ{ApCf2=]3|}o-/A,wt)U_KDw^$I5ܚVo `A>KB,u9:i*֬qcݥa{ReዜmbJiM ID?@MSn헠ЪSYo7ohh)j®݉1r1q Q1ѓR VK rn@]/'ɧa?9_D@N^aX )m.рi0av$ͯk7$X2xsZI%'|0r@ɯNQhY~EX  `gzcsHd?[ӭAh鈹OAz w3CYﬖK"= e*#/Ѡ{ͽQoBg?>EJg|;T=Ǽ?|/_*g|ӵzSIWkS̃=>%&b &LqE@vEے#@_N?W :d 4Jq$)d\J=F|`?A01+gy#aԦ5i(O<댃L%۪ ~< /эʥe%37c~RZdWt_X>1N6rڈKrN][VR9(8l&ǞK_,P=Osdҭ)'Aɇ~=hwk.hVQi;5~g!}ѽ;! >z;'>V P>nRDSg}J6@$!|1eT}hĈs1rViy]` P S* 'cE/Q 6oe#ٖn`~ l4z}9o+Mh l; }1F}D#/qj6z4N#!m F{ذ  JL+lꕚXS*~lh䅲r*{hcXZy l;EwfV αvKOLQ`Q(NQ`ےFVCLhQ`Yx#X,A][#͖ݖEhj*dnb$G)o$, l?1-]/-POtt,Y=jmy,$/$VWb@ FX. %J jE7J:ߋ, tce. TjzeI@ey>t}1ipJ4ޘvh>?.USCz~A)e/Sq2Z8m l4'pƠc uQY{[ |̀HGhfT*A]I6.zG9ɝmj.wH`&i]nQ `?;0Jӆ l`$׆q 38h4K UjF 0,gFŹI~ fVZz^3m}lO FW%O n-ְ#^ג)wHW3Jϋ L/ }nf-g[ ϟ/ǃ8 jr"$_$8)jJ jJE BF΅Ie7PQ/Gv]tl7}g:7]%%3z7hz{WMC.` I+|̚m0ӘۓwBP@P(c__a'TM#+$&A]^wGYoؑA(?%|?CNA_z1u PDN}mvI dB;c*܅BvsVk︻275db =uŰ'zwO|]SEbVTj/N;TzI?UEJ.urIֵ:#~^%VU%WDiF%ɀ'"qzJoCs0.aBG@v~*n@wVO )%hAa8d4z^vӫ~ht=Gvz~eر+ iW95NakKg F=g 'ӵzQINȞ}F4*ݞ,2 b=[0aޞ3^tVsG5`TNEtwu{κQI) :ko.ˈ]XZk}cDSwτD&dWPta*S]$!=?oTZgҚj8t}Fp`dq&OupVu=%k]S22Ĝ..l .TWXz1F=oy#5@mQ:J@&8L. $lO2PDQŇT,(kI֖KN7D5=?HO@{6tyG Ma!t*P!RVq|pFFn's )V5F UZp1MM[Nt'3}AlfLw~O@c7eG.+[pTe"zUt @\hifc eZrko95'05n@3 .8d>oIWi+t.jfCXr6?&NGdm( R\$ @\%r"Lce*T V-r,{m6N.ziiF/q;9 7wr^b߭T=m/.:|: `u rbeDU-]ypw&.`Z/M\~l$J]Y^[p iSc"K`-J λfgr\tKKni\vKS6-}{9m T`k*-mn:п-mdxqs -py& )PPCkVMČYBd̅jn2XVހu.Vvl ĜtەZHjSQNĬq1A'l(C±xb/Kqv6z.ޭX  O "has6O`~sW vT6V@r.N6:_~}|8C?[(01>H@Y2d_+C 2ـ_'+G__eDf9R~ѩM+>z]RJg'`FNVo$gÅT  ݩR .ROz5n12Ɖ99p #g[fk>6{(s@N+ S]l$ Ѝl'obXD#YމOJ H^l`zo*u.B$LI9;m׾zH~XnlDD `V;'擰O j#j \YZAn(l(NE†/B;EQpl{J|˚O\5 z|Wjo1&H.-GҊni9z.~ɧxh6[uBZZ79DW{Hv ֞1Yjj3^t:oAN/]Mfs6HԷAy$XA{EyO:mϹ0 ]vwд{]bdAZ*Ҧ V iu Z{S#ۧ}:?"ڣ1|\z|g_ArE(;*]9>-DNZ%* B> |3S+'NùNY]i$HYq/"C_cS|?_~)>P)@}C[c*|<+%F=ݭlMc~>9hY ٣)L#^0Gǔ-cI(׉w\k,>Pʧ̂$rֲ{'J=IUE?Xc |«DRUl\1p,='F`R|uϣ?r 7͓W L?G)QxM04pH%=)E*1aG|^B/9/,H]lpK's;_)L 'Μ]3\ddXS*KtL@t;X}lvuB(‹_Yg^-/ܳ~|o!E|ֈW;S8 mFo9ڞaxzM 5Z2HȞd6=FiӼ9h7 ĵ(qxN5h1>q?y7pK4<,2@3t@W|O7 ēJkcs)S|GI]͘؂]{682;m6ǫ n)eO:#| )$D):cRR6Mߐ/r mohz?L=OZYW띛iL< $T3D5kvj=\,?vl"<_+`)Sg)>&AхqɩI88iׇbH5eJ0RyZdpjHrTsR $u]*~wrU"i'ٌɡ*Iցq7f~M?E.E' >WLA7KCBG.MY0d M8_GB``^KeJ@ \#&8vj2ti39 U8[܄ `j,-`91H^>s2 $i* W`NZBSy1- '#XXB" y3_'OwEF`=VLg8rW&M]x_;k Bb+8}/F|Q&+Lw!*\DfRvW+'*p-6u+8ædx9Y$^| [)Ψ:zayEw`ȡ !Xy]:ɥ]ryx=[),C^/nH,yx%gċeH(JPo+c#wҖa+9flr!q.K03f\LfAۍd^HvF gKʏw7ޡ3(P/:\F4ޡ3%R7*@GE,ZN'Chݿ*:Ԧ>tK5L9Gp?͇ޑ9]v q VBݻY@Mw"@4AS縛\6D󱻙K$h39Ywpj{w;/NF;vƿG׃UTldm%pĤx$4{0_D0\r1f@.9 #ûpL?m7sbFa N[zQ4^3~00O+8A qZ(}d0wxԋ4 0Ӡb\į ]ڹ^ ؜hx[V%9=U,.5,&֛Erip| f;0%ar$Xk`vSȖפ-` P9e1W*ş0]6[\E@m2 ]Cx)DsXx.`\#'J 7!F.GV {% $";1 kePI1un JJ.$I*s}.J. 9%/&̀RQz=xr~ ɑ_/&?ZXJbxXmV`b'"<- %qnv9Ȃ`s\> tZQ.$ H"`M*1p_I:| LEU8 '7,qCP1¥)g\w]!#.rp\H_ o (Q aF.S. 4. 0Jvwj%ת ^%׳&| C;HPwyZtaY]5b>a5Ȼ,0\)` Hwpx3^-fqm-IyU<+V )br%KHw*tg~@cndRh7]|B3 ;䲘f*!`-oK` ciM eg$I]FqF*¼Z%xeeU̇ ( ]$I`2Nr3; /b:La]tҝiE o`8Tp5fm7y;d eiІq ֋f\eɜ8AFIAJ`>` Np'+K)@T)< p9&'88AJċ0R ]EP껼|`OQ)#us$ *5Hr޿[=)A. &^@dNex`煔rHV ,w{q|nml g"&==Ů,g;g6 ]}B씐^ma7a,>_|2O)ZQl >X6y\ބ1l^ U,/4[]Yei:--ِ9)%sl!Ĕ]0))!d,:1#xuOFeΥ+kr )`k$ )`eWLWb Q+;Uj&cU+56'ja;s%TKY|ѥfZHd#Q mQt31"SS8p^i nFaIId#33D(5SlbjНMܰSh.86iљL;'kt_Vc ҌX\rm= AnƔJx&\ r*pƔOɰh4O ڞ2neWO7SlaԬʭFgn&a3Ivf6\]0h0|wA}wV̴]i`mn6^\'{p-zph}!+ 9@a(}OɏȂld@R&@Z-bҎ2b)$NmdH L yˢ¿G22Nv͘_.վ3HtdP? HeQ?Y^)r_G f#$w<`[$usMIp .<K cG?6\bEiO0 $x<n_[4q/M,%7yM2s̠M \N=jٔ ve ($TΘ>ʶ;1Nr97mEF,̱M4]q12lsvb U.J\L$EZdQ.`ed,B_Uh)VtvRP$g&-;3&Y\T l_Js'h<}=0Iodr52E');>qyIq57ybD;^?vzQMhpѺHn&w^&7~S .ۧz3VoZɾ2ծS+vu%Ojl(:ɹ&!O}HΧL>$8}SI/u'=5J;)WJNO[1Օm?}g;q]ϩ1r aI~9(@(E(1};D @LO  'e Wu1@?1|Q8V 1q:8p(&tXVƻ2r [ŀ[h@iD~97`᝺5Dޚt[%j1UBhxT.jƻj3XWJxIC\G&٪x]vZÁ]o$(5$k}sѩ6Sho]4 m{>5=9 DQtvIDG1&& ڧޛrm\4bj{«߭y4Ỵ{q`/Ɂݨ bzO FSOK͋ ŭTz鶫z2yW䬄[ -e udzQiNU{0VFz.6ߒC5tjx^Eʃz4hugk3p:]meJ**']OF#.[j߼.K'|DOceN 1)/;G/?J<KLͬ"$Gpd~`x=Xy/7|xApBM~lVmn(WA8m{/׫,wYJk_,r~[8Tjz;;,)jU78FctsGU8] < _xOKli.NO8 Ջ ZT7޶ZXvPY!hSGN4޺n}8?i7tG *P'y0YO> jL睠lyJnթVj!Y-ZjyfCzg\5B=!]vnj^5S--wvqڑ9!k+<6sc9fl=#r{4W,w,=G(eZi6}. ;rgg3G_Ŀ tJ}ǏSw?~ʒOδ3 9=Tݨ@;fw0a gh}  =?Cqw9$8>/TAbpNȔL/ǀT@;E 2(+/D{#T)| ՗ Ѯd*L%4UH})9(`^M;zGcS;Zv2[ _/oۋ_f KsI/U'_9S%ʿzHs|ɝaYo&9^dVmUA>oT7eb~`[0ݱoSyH]? /W_<ù@w|EHwCI ~z e чe y;T ŗ_;ww}/r ?|\ jEO(BKߟ4bJ yH]( 6?tLY+o+sҪU+I"k@헃j'U{=]zz;MRxD;%X5v c{K5B~[P[ Nc+Zd!u[mJ]_Dڶ:FcKt#܃Fvxֳ壱䧠ɿMdW}h{ ZzxO=\CI|%o] EHX-I4}㧢)(4!j '}OhshiOO6}Y= =z Y@ya&U||=Ph}K;k׳{KwjrYcvhr98v5]GTWmF+<&I]l?t)𩗛t=7~B},A0Ut0\N7g-dOcc<] o U^c˄R#%URFHg`0.XUPN+-+& (JoR',L~JȪ([6Jm6Jim(_ؕǜc68s~1(=O@(ayw8~Y>0şGj(Jթw= W C.MF) P۳>%{G_O(ZZ=|_Ơ8bR;F&F,"T*:#,lD zZH`r!dF> l\>xF}'+x_d[?Qk3&C)5z}9o+Mh6u8w@66byG^`^ykm:bi6zFGvC`>36Λ$a6jmk{6֙(Vب+56 rTvn e9fU16A~A`VK#ik_4k'Ͷjw[zbf#Eq#7ݖ,%0̷zZfB#NJe RiF.ZoEkT{T)'{hu$#>Jy $eI`ES챒[*-A/K%_*[bYpmzEO,(Y(I/"!٩+1HUUDI AFBI{1enx eJMRS, H\b,\݇n/&P`N-ү 'Â5r lֻMF I@VS^ d<-<$ͨT7 $kWR#^+hENxxGGr'A[Z˝9؀Ⱀ9vjqb<pN).Nw, \>T[rUy׊*Lnu;AJmX:wfȍhuz`)7·I[ t^cX~΢/'7ET`Y/Zケs-0ևns/H+,&P< ղ="L ԗ\lAD K6тUxX)*%#{Qm+g0ɮ腢ard1^0R/mT[,ŹI~ f2)gmd{/4/yZuo9W\-Ly[kJ3Jϋ L/zyi7zmCW;L,F7 ةwZ0:H9f4Vn0*k'T-bQ(/8)]} %+zwG6thi@+ˤ߶$ 't"v o_e~pQShKivv؍3že_Os'uسy]r2BI9zr\,A-E0+M% G#Br8aP<* ~0w^sb9W [)?IPhWwQb ~ ߏF^L Q6Su;U"# Yp ]YԐɮ~VnR)ϷkWQ\ݕ9989$S'T+*dge'Y~ڏdI{|,߷[U\J>OE25+%-Ya] PP ޟRKHт$pzN?i8W9Nz>ڧj˰cW,FrjnOG֖`A(gnԜջ O_wz&@lu3 Vdi\;{pUޞ/nWդP;"YX*r7X[Ths xr褫_(e,Wu5L'&хr8c`j2fJE֋aܜ^F`əzhSk(dkB0f0>XƻJCko9MCW )|*-Z9/0= ^.gVx~:-/#Pg1PV 94z@dCG[[bƝ_?g}9OcK]/VUZp1MM[Nt'/7t,;К1Bhށv=u gC sUYs>^]hl-#Ze٘vhG[ 8$8ddm>oIW'^,TZA6'ӑfY?>Eϗ2%r;az(VMn\4cnqr NkMl4OMÈ{iojM 11|7UaIսczS,}(]J?t]yGՌO,p޴U Ƕٵ5Ntb[wYπ n6ƱǕ6얮ɝm[o >vKATz+[uU=[di'J[ ~NM ZoU+S:1681v.׬:N̘.ML&uhls @u$pgm՜P(''ۮԪ(G} t$>ˏ :aD' .kC` ^r qs%nŢegO`gO|bA~y0𣜻2mSV6VUG).N:SӅϯyeɗ )>JP j> H@w2d_+C 2d k(+w,#eF0"oSdp;?ltڽ׾VY@~[Z'N7S9U w"pE Ӻ"|rwcS44ϔq6/;L/<x* )訤dD7 ꂟDЍl_'ob͢ 8;TIq -JME;Nх)G^{j!nXplD@T[JIT{oj GU WVo}P'U E_׋*Z ;MơF> FU7xw5C[D̹4y†7{KiʀrÑzMp4=f}wO|!0M#`>X)e^E2^f];f`:ݍo?f5RLFQ@֋5D˔L\8[]m0[/oyU60{Ͽmؒ7ZY}O^>W~*?bFHVUL􏀰;` ux$ |녫b ^ /Xv9%G |[Q͍ &O .ه2_)Qg =+JGDJOkkÏXz=+H3o|8:sYfה#d'槯h`ue\ 8bd9?6+&`f -;>!+þiN۶[ƞ #3775ߤ:w_zME&:ɹLX|0ei?\ #KOó~?' 0u4oN;Z{a=q-z"TncG >+cG9Bn> g9DnM8UgkģhEuJU:g)*a˸LI=7\,'EW1\)ڐnQˣu_A'E5̇u(|܍gs\ W~b<|,l]N?jai,~j Fq4X} C?;=?G 7TC;7,HApLדy`A2"8d!2/]WCdnH>vl"<_LңKy0_xO<7_F}PC7I/s8OVz}(oq.ޑ98YH#~,9L d-N5)@R'u@C?oގ̒d3&$Ymo6?ϣh8bOܳS|boV7Xjb wo[S`UnWuUpUӆEnDrud'VgNېgO<ބ[h>-azq;Q99 CӹpNf|w f.$dwj0 N? 3c@_[j(8GíS ,NV:[#Ӆ S&FVruL)ö.a)K 4^)0"zə 1)zxC*9粶JRKjЭ{}*ܵiv:[|rrY-qmr_[D0`rm"'@>_m]/5-Cw-CSp바j LrEb[GO[G 0fV2:JYC1:rF%wrȝ&(E/q[t3 [Ngz}A8LT8ƉJ'\Mp2|:vG aZ"eֱJsV ғkeG@. ]\saJ `~wOd]dw|p;)Ba݆pb'W+8AVpds8" 4Z9m)=6*Y"_}wq2[Ȧwzݓ jg3֜Q)쯛z//K\y9O75dKi|0e(vm$aG1g,T C5=Ayx dpcTC33H$C7 x;LOxH) r=P-8'g=gQҥ~J~a}VERu8"3X fwgW1]º<}KκCq)4 rCWh J pʷZQ|nh@\b ]v^){fSSvF=GG)UFe/,WT\SI`br|`hL\>CH8Gx@ ݄ɾˑp7.O\eI