Writing System V init scripts for Red Hat Linux =============================================== All System V init scripts are named /etc/rc.d/init.d/ where is the name of the service. There must be no ".init" suffix. This path will very likely be moved to /etc/init.d in the future. Once Red Hat Linux 7.0 is installed, you can access scripts as /etc/init.d/, via symlinks. Sample Script ============= #!/bin/bash # # /etc/rc.d/init.d/ # # # # # # Source function library. . /etc/init.d/functions start() { echo -n "Starting : " touch /var/lock/subsys/ return } stop() { echo -n "Shutting down : " rm -f /var/lock/subsys/ return } case "$1" in start) start ;; stop) stop ;; status) ;; restart) stop start ;; reload) ;; condrestart) [ -f /var/lock/subsys/ ] && restart || : probe) ;; *) echo "Usage: {start|stop|status|reload|restart[|probe]" exit 1 ;; esac exit $? Notes: - The restart and reload functions may be (and commonly are) combined into one test, vis: restart|reload) - You are not prohibited from adding other commands; list all commands which you intend to be used interactively to the usage message. - Notice the change in that stop() and start() are now shell functions. This means that restart can be implemented as stop start instead of $0 stop $0 start This saves a few shell invocations. Functions in /etc/init.d/functions ======================================= daemon [ --check ] [ --user ] [+/-nicelevel] program [arguments] [&] Starts a daemon, if it is not already running. Does other useful things like keeping the daemon from dumping core if it terminates unexpectedly. --check : Check that is running, as opposed to simply the first argument passed to daemon(). --user : Run command as user killproc program [signal] Sends a signal to the program; by default it sends a SIGTERM, and if the process doesn't die, it sends a SIGKILL a few seconds later. It also tries to remove the pidfile, if it finds one. pidofproc program Tries to find the pid of a program; checking likely pidfiles, and using the pidof program. Used mainly from within other functions in this file, but also available to scripts. status program Prints status information. Assumes that the program name is the same as the servicename. Tags ==== # chkconfig: Required. is a list of levels in which the service should be started by default. and are priority numbers. For example: # chkconfig: 2345 20 80 Read 'man chkconfig' for more information. Unless there is a VERY GOOD, EXPLICIT reason to the contrary, the should be equal to 100 - # description: Required. Several lines of description, continued with '\' characters. The initial comment and following whitespace on the following lines is ignored. # description[ln]: Optional. Should be the description translated into the specified language. # processname: Optional, multiple entries allowed. For each process name started by the script, there should be a processname entry. For example, the samba service starts two daemons: # processname: smdb # processname: nmdb # config: Optional, multiple entries allowed. For each static config file used by the daemon, use a single entry. For example: # config: /etc/httpd/conf/httpd.conf # config: /etc/httpd/conf/srm.conf Optionally, if the server will automatically reload the config file if it is changed, you can append the word "autoreload" to the line: # config: /etc/foobar.conf autoreload # pidfile: Optional, multiple entries allowed. Use just like the config entry, except that it points at pidfiles. It is assumed that the pidfiles are only updated at process creation time, and not later. The first line of this file should be the ASCII representation of the PID; a terminating newline is optional. Any lines other than the first line are not examined. # probe: true Optional, used IN PLACE of processname, config, and pidfile. If it exists, then a proper reload-if-necessary cycle may be acheived by running these commands: command=$(/etc/rc.d/init.d/SCRIPT probe) [ -n "$command" ] && /etc/rc.d/init.d/SCRIPT $command where SCRIPT is the name of the service's sysv init script. Scripts that need to do complex processing could, as an example, return "run /var/tmp/jb@֟46b`ݟJx>"?jq{g8жh#!~%Q$pJOΉH)ŷC-g ^pɧ}X{>Jeƕ+ ``dgF7w.|Y>*=o{*d{=9,E%yE~+"}dE /p{s%^\E]DSsg)'9FTg nq:qR,Vzf78LRRV7@UwrIa4gRCP˹s]wgkib.Pf˙Q[>4])LX1؇ߙJZp(0 7MjK  4fwUGrR !WfSeA%=/Ydo^?T>9ugފIzcšC?O?Ψ`}D*SDÓGӃL[X [hffSjIȚȌ>E][7 ʽa%Ϟ=Ӫ|oPKEC*P˒? "%p|[n:p>xj]; [ hΐ1M`icf|Xߵ]ד> H8wis;豖m:3W!DgVRh0s/α6}0c쌈2gLsc: Y+ GJ@fFDs1M(xhPRVyp[\.E$MH}]FCK/;(SW]$պ0n*ɛW3 B,.;CÚs{"I?<;c_@>Clŝ:%OY}f(6JP{.n*&-U @mXl '`$.φN0KƆ<k2]Q=nɒzaP%]N޵e@.Dj&ܸK2[M'FXϗ\gm`4j6ٹ k{TVڹ)5wq@J zзE+5=/C.pAnr# j^ՂA,.} b)?/#Tl;q-3 ]qXJ=Q]۞MX`^ᬩC|;8<<:=c|D2BdoI-nvXn~DpIbJ$o_XYG? r⮦A(fi7צ,F]N\zE 0**!^Cn3(l~wf_I 9'2@GJ +fq=SAW)NhWh%{rsث5rд7qbOrEz˭r%-OeRS t֍ae\ P৴r9BJbP6 e,\q㌨1:Ƽۏ Gci9@wP˸5}<$J6c 8 Qph_}rd2BG(nR˟'0范E^k\{]x44ªr^KeEY-lᯫeڃPR Ѿ_:/-E94!f4f57~l*x.^Ll:mt]w=\D:_=V= >m1 XJuXDe \z0J|BE.K2g`ݶΑ5JȤĈ/7S=d:2 &JZw8v SGo԰S t6c3ѧv8ѻ;+WsDӒglQ+q-=p @1 xc'#sx)3(!$ABt ,)=2C5x/lԟݜ]Yܷ2t)rD$+1og+iـ \ƙLo{ cC#zAiӸ.HO8uGڧK3n蓀3ŋ3&HYE^',+0/5n VA42Dc9#V;ҳǷQE(e"y]=Mr#N>X94e,ͨTh9AI٥v1^I=M&8%HA`7Q?#x_Fc@1J'` 涖B[l3GvbY #4J܂ ;fh"(/[*!cM UꥺJBѬ@gM(I9?>̏"B%- 94=vnE's2E3Z ITܠE@GϔK Qe'HJ4ylMx-1mqrHV[T+ g]QH/>E0pO{v`NLP6COϯDx|gMW7jl $~Hhu^Uݚ,)M<H`TǷB8j3A|oYG7 z*BuGssum5%;)n!-#{ںEާ@lr?;az"}r=2ϴkJiZwޔ౬ I\7GSn{BNjzI2v.\MP W|RNsΒ]rH^_b],qCHm-`^e{SH2]ۼwNYsv%Z`,Ԍ1 5` |Q@Ž!<nArn9 ^ArԃΗ{6!~iul 6Rq3qLb=tKʤuY׭8/!,,/ٳ r(wV q.q=vk+`3 Py2eٷfRmu/ʶZ==0G"Ñ:t(FeT[*kπ;Yۣ!gnZ*ynk* F7{\ģ.">w#4u:b ҟεvo htj|GS.Uģ>_4nS&3w';b|v۝R-9u$Ir&:ТWb;b0GLZY4} F,#sڅn*{Z)Jj k,,-u=2YO-58)\KUrKP[ee3GW?9G#bz۞`sfUk6.!7 儰vgNb\ )W4`$ !`OraZ߻eB"sTVQSfI?Qu_ث>m2 N7}3 @#dJzկՅJb N:b-{'5VRW`N|eJd|_:z*)Zx"P?y4W)\ܻn4yr ȓ~ArlJs &%{RX\kU{h(:(b@Mzhtb+ewS#lC|Y\wuIw+Ӛ6M%""GIpD=g>2UxI?}]T˾9.+ofU ƽ]*!E]v9TUwCjteu%>s zNe2E37E̲ps`ԯZ#.mX{zjjgH2"IB7gZDR Ffcl-YFzk6?9tl AYZ#.uWhҝQ/.t3S|'~m+T]U,,NzXrH\ԛ^  g\ Mv9pڪ`j\ҿ_0]Mx9)6u"t!=f, @/&_9l*H%} s ߨ@yEBAߜg&(_fも\\wT(To%}D9t9=@v!\TžA>c pEs;*i˾x`#c'yPqT9BWX s.ANC}7 }ń#1+ pwE9g|re(ő΢y'+ &xϸ/O1x^tM'+!{Mԉ)vufxs]5| r {IH9LFۇ}P㨍l2Cj< 2~x ]6*p$ЀW,e(7)2,m(JZBH%+>RDIv]%!d:lš("LKq;j.FR'QqwqX![1~l,a+uEN@ zXS%J2Ǵ(9SLB6ؕ䡊f"܏e ҏ &W*&nB. )KKc- X {id؋yn&zS̈:/vbO}~GC` }CFYN*ٵm||.@;&Hbs{m D sAZYQracGUo9#[t":˷n@gN9e pd~p/m1%g+B8nY<(h-6ZrO$gWSPC.t{9@DEש:ÀDA&z(Ƿ СHoHleἓCӲCIV>S:q9|l0DɁ72UDZlE0}noXYgwj@o2iC)+IޤL 婂Nd(ZNL MμkM%2жRHq771 cWT"y‰Wd%˅MpՔig{fY ,S2SWO.Z"Q*oW>1p>Ȩ\8 !9S:qK +a-_r4XO;Tnkq9ӌiԎp¾IU$D>c+&i)*P_|"CEC(BֶBRE8Rf(>5΅N~pQ:*]v@\PfDzr𸠃WeԐ'Ye1M Ntl1wҫԟ)eTS_Z 3tk2x؆.;t&' iLswD&~ǩcjY0É>n_st͢_eOz}~7S`9 D%T#waU9N-`MKz)Ňyro4.w~zz>3lq6sWy[6& TnjZIǀFgoZq-#4PL*G!9{_'F{ƒh؛T~ZuV7ZwC ^DwoBq$DI&1Ng]_YaeL z֡ơVWØ:vOD;D*?vV-YL{t8P +wLa]Թ]I$e +;u$D 8KR ]uo;BE)n+&C.IpdEՐFF\Ӏ9HG-sshSl%˶"ZqNjpfj@%u=m\rGj}'uY1P0^eYl5'Uf0Lbڬ6-e hjbPM%'r;)o.<5Tzdžg*"VجRV E:M/kc)*lv9iO*cUGh y3&2n( "֩OKƕ]m0>&уib?trB=,f(l#MT69 ۔M?EbmE WoŦ\^x!hf߆ SVyn;H9l9J&up~ЭC$r2a P:!SL gdx;@+.1 @5Ǟg !]92U "Wr+|&gh61]9,r)a.HYg$z~=|t}~Z]Mt(6N+dnF+ qzNTf:yRə8R8|;\q_:wt.`5{+,S$- ~}DŅSsa >bK?3|`Skؽ7h A{rh5Buo4ޣbSEɁaD/#=jˆݟmnՓx+VwTՄډ6v27L\,DkMk#{䦒iǙVe[J%2% $ %nP{ UD5nV㩠iZK`ǃ_v̦ѐp8鑎Wg70J]1k,bVb> <-`*]ڽ/Y-"VgY$ Oa0C˭ci`h961JHܿ;֌ϸްgsJ), |id  2Dj+s[?0'"kb81s=Jc, :xV/uW%W#M VB); f3uFl5e9Bވ!X*5_@<'] - ^ &.lWv~MoR FbN۽J(hac)suTի3Z`ݱCˆНrިuF<'xL6[ Y3?J*W=,kˌd  O.FF,J77pմtG :[|$EEkiO3k,Î I#(/n<4U=q(9@U,55z[6nprLo{OC'igF<}}"]\3zV1\~nZU}%kpۯ^(uA!%myG.O)ZnD0%$@%Bz:cᳩG؃L\/]:ebEBɴ!ȃ$'k_v"'Fs(C]qhc4ƈ~}ЛGLtOԊF ClYkKdɾcQx˼6`b7o[G*zCE|]8~#dQ#ӥi1w 8kOk(^>MࣁqL6qW\SDոG]w%2t;Hݷ|Q3> E=7ùSv{ʕ_{ؽpÁ`K\xw{&gVjD46{oNsUief[ ȉ'hZJ3J;P}"%IV{y{C&bW#2qn̫CgwpKkMy<=#ysquh5Q dSUGwYl8[Mĩ~9hʝà0TtlY4S ]jf*8# UqE< ='Y/]/&J ,Rr*q`[ 0(DZo/?o5W낐yLXᣫVR M6_[TٌIW$mTہ*wxהa0_P <$u q2Kc_L#}5 ǰaxin{3͑b7 R_ј?YIc\GE#vE@[=ŮQ.Xj\a#L"hS|p&-8kf U44BM ,Ţlnn±I?Z Ҹ7E%2)惵 ,xn ۳ $+|=%?g0q^u m&[oo;th $>A`:,#ȴt4nR^l EV}l9.x!}'e~[Iayç=D_ѶӮLpO}@wgFJ]!' @,t) Mu>?DX9/mUnτ&֎OҸ[K>3Z3=}rSYR%3~$oǀ,w4_]8UN懾쑭.N5O#E/]3c̪9v\EF}%(roS*chT"4>'ڔ1 2ޯŋ5cDjk,F=R;W]./Y<_=Ű/PO +]&3_NOGuuC |SrL\W·r4(JEC]K vY9wzfٻ+HhO%>ޞ;걱^ uv܊ƙ&7B9{]Bq'/ {Wn,-SR#s.4' zG"CyLCkap 킍qŜ)A.U'ZSc؀3F1Q ~H-n[oæq7){2&I<TSx{!ӳ^l1g^ "򅴄Q (R|)DI\綅?@mUoV* 1)<0$˜wq`ݚ5O{U S[og mPY3{H1cI#&gDq0핵l{K\ vjԷ-*끱y 펹`y L1J#,>$$n~EtiMtWq!Io{o&>ˎ!~ q(gbcNQ(d@xK\0hZl.-uyZ|ޤ\ əҵHAzRӻ:Bi~َ x_)F c`n3}k*z0۰J:h`\EJ̘*;lhYMM%Z(*c{b&8FrM\NjSt>6B j'eoφsNcOS#YI8|8/anAbi7+|qY{MB>,EYBj8?˜dMι#{iK s&4N/P!1.|Th%DMw0Yז[J|jtFcaS^+ۄd4ᗃU]bTvޗt\qN bu/qJiYfgX5戒6D~#헝̅ [نBFO<_BTKdnLT=rS,"%Oeq|:{w41EoJA:Z$0& ?󏈃.Ն"R`v -z1SڶԬ9Zo2{k!g-q߱g7+1Ci ZXK;qad;ܪwc_T'cyu.ii>SKryJbMG Ja/)ݱ-%N7AKH\ËL؟D+|ϦkbpQ&o)uV5VU<ÑzcJETx]fu@s2?>t?ļ `9 ln5Qdo*(CwU'R` 43-VЉBeϯL?>Sg[PJZǏa=>4pYR/:Qp[9ړE.PjgN>Ɏ~8&C+L<ȍ[w eLQ_o6!Ytɫ"DW!G-9gBd'[Ov*xmWMN?O#Xw39pB:$agv_S:\ɒ|q,Rdm'Yls2&>Zpct;^, n4bVH={VQvnZbMP1 @g6b'GdX+(lW:Ӵ]Yˍ_>!Czud؝e:eu3\SSάOIT۹u³rI܈N+)G.К-kp#ғ%d] Ч9.hB2ۀ#H\R>],H5tS {if(WhfD U5}U=oż8UՇ7/=^i]zB1r yKPD]zV7PyaZgjkF3&6@K}3/s \fZћDQ)c%Z{0sLr9].K/ =QN%GNi|2fwN{aq8ϚFoIz°O'1 &!Umܢӛ.0 !W%Jel0b RBzx]ս'< $,`kF 8Bv-, ,|n=-53ukxg83׼H}w_b@0B/!kcƑ߬RMi;{%e櫓^&Nrapд'\ILKk&aD28 {{ne,)xc~Ot֒%ikx~" kؚcS#:-j3 sAyԍGÎ49fUk2^!Pu\nGV  / #M/#Ie/xRI]("K\'N(z$z-_^}xxhCɄ*ز4*ӷ_2f8>Oq*A2n%mzz\4̊6=njI([rbu N&\IgW,g1L+Zy& vCRZIUD)#L"\ɿFE {퇵|¢WNAs .HmS Am7ROЙ Ub9iqgT߹(V+Ɔq+١%`Q Ql^eI@26%Y<+JݐdxԾ{EK6H|3S.*|XyЭ vGB<4j)̃#t N@_3x'M=nAt )A`I6CP.HʜT ~+x$rj[shI렂2u0i]9rs_,D4~dC’>dj3L@D$|Z&%x{&5ᵍeKF j]WNEUfLxlTO }A4-ͳ |Mѣb3Τ}~^|NQ! ꢇWeen PޚJQ"CÑ=U5jP#dV.'l}~݁qؔ %dtC*TR7xU<3Du|+}|{[pc nϽcYb00?\[(\;p4V sNrŢlO2U<\ aFIȜR.c")=+3ېFlC4#+'L(EA ,Ŏϵ 0 hc`栚c,EkCg*ej<p'.ɦ(ZOAy~PHF݋V<kTb0{;Fן6Y?e8\Hd6#Q5><w!R_21,bjSu(duRȭYHqL/Ԃ%hʶauOK4Fc ԟpKewH'5Ql:E̾RZo~q1>app_ytc,C>)CT窫0bldOoĞbC Zqk4!\4]Nrw+ќ+>6Zۭ8>p`ޔSΣPxtgb(xAh0E*CVK1]I3$ -|@$){ 7W G&H.Uչ9Q5[9 F3N!(1moq f=7oA6_'͑ ˘x/TzIڅM^eY~ TML/JpQӱ*]o=sHz3aӑbXմu@NM67C9 9a3BxV4?`ݒ8, J<:L50[iݧa2s,d fRRߑ_N3Yr_!]Q+T5?lu #ٺ9n@2Օ ͽ1j '+p`_~mꛓ<(-Q-\lR8Ԝ y˭E=)]d_;  IFO0$/z[uB!2KJW|Jit,o6+ޚi`0ٳQxiG@冹i+ao$OmYvf^-ӁjV' REޱF@^Ą 3؉@( o}?}aaFo (Ԩ ZeoFoHdS, G? hDTY \μI HcZhT ^Higɦ5ꬸᰘ95T~j2a?,AQ~eD 1@hāR'.*E?0%EbQČ_I Ǽ1fOykWxL+,(#]%ŶzwͮiWQK`uB§h?AcXq^;c [{(9fRw^KH[)N'-;@Ux7,βؚg ؅r޽ȇ] n%#_¥S&N~zU٫\ݥѺzZē>hߝ8훱m#[ Ʌ4'ZfsyGzLʼn_e.mFf7%ql]= kY8]9h5N񴗇[|\\dI}YtfL9[ ?j?s>8o'D)ڵda<0Q֪synfob?_cj0M $jٖ!}sX$YO C}Ya#yh%SNGaey[ s"qe8{ j~ ?[ɸyo5aR>Ŧ =7(%;\Xw삁$y۾Or%jxhRH`v*6R1ǡ EsUӧѺZYZ 7 pt#Y KoCєj;z U&%39iɴh^[fK=m2Hs.{Aas84Kjdi1PAs{ް oJE:{t2UprOzj[Nx BNQyn?(_3x8I> Sf*'ńKj/BTR\ܐ/'1:Kp^ֆ8~`Ƒ턯No2kc|-cgȜ|~4;$򲦕F3L\f9:E} LLv ˇ0mB G#i58>AGBFw`|Ư/ wӛ%ǰsovX^){bx)p:-)~n/ѝ5)v 8*"_yf [kC:`kųn%kALby0t#"'DCu\-4.zxQ^Zv#O.:H+|R ~eUGK!_A`6qcz_5%!b!mNI[{6^b.<>t''-Jx>P!5Hٍs9 T{ R˜kbhdzRg!B!3jX@{x9S$Ē ?T"ŀW6˞->qe"o6Lb$/9^pLjg EH HNM}4@j:,(WnPUѰ,u쥒Ъ#մo]tE7 sb]8#FˍS}/`8,=}5}?4B:Ͽ w )k'b|gE@M~:RʘbG@e|8"F6B>0:b]HPP7)@VEַIg>Iy6gn5 yXϖnJRhe{;9͹g'xڊkx+oEi E6;AYuB&=aQ';܍jT~){f'#$g#")}ۺ l }I /Jtjtbxb?Yŵ@&u/[$&\=,LaԆ$nUudE U'.=7*kJj4c90Cs{L$$SPp/mOi_c}Y5EEtƆ~*<" bB 66'稢ܕR(9P[+¡d~ʖ-0{&XƯW;!7F5w*.^mܛ 4*xL#>lk m`KU=2Xpq//BiDM/-hZ ˆ5yK$^vYC7wugn+~y塋9< EH^9XBk*_U")LuiǗ+Å-G=vff]Baal $mʔ.zDct$h8PO!SR(TGiSy.|4$x#W ڿ%7&-$4s"3+| nEwÑ;7kct aA˘D}pV=ܸjZc C\/gk~z#SQtoA u9]b!?݀Let 3yո̛6c;-ln;y6(bߘ/iMZa)," ydn%Qh}RP<97½UՖ;\Ư 5[#Efߵ dM>[w|w~l" L"?VYs=]"xy)둉h,aZqnЏGM͊tQ~W'^SQy>,]"rC۔m\yQw-zXx0XJsI>&-+22YKL̰/ͳWf@'$x'U ra [GA1{VfE8ZӢ8X(UP~%Ε>-4wDgHѽBqDe?ٳxEJ#~'K,OcZFO,Ƴe8\ԓ ~T--H{$ߤЛwjA1lx:Gwx_8y##ȁh$*cĶthE2 :r J}a%Olq+1$_6C:3-fQ+J>1=#JanpMU *v9=jVL+=qiv+ {Ν3f bɋc b'7"P,f+T_7)2/~)`?G5=:w4g^s~g.ExJ\x/ζp@R :LGppnp*>{|8h6=`<~|Ja,VY[Vr,h3B` ĿԞ) ӺЕ!yh'Y7p W3M3iAmgD~-Wxvo\^aǶ&̾^ 9 A)J~.ZE֏ClJ9F>]{=#QuNj񢹁>aB[^/Cfq<aC4^BJCfF|ժ]]?o^շXeErxmr-MK-Αl%h:HF[Tّ;딘J$T%4ZڷGm?и?f[ll20=yW Lǯi":/H'zc84@Sz%A3*u;` 9|+cp)owR/:h#/QwSHSf#߯d7{=0bfH 6 Hε{jwH<:VXhʹx#ә'"(r e׽1:8҄ s+贤 M&(=Hpyh_ CJ;]9Ob۷2.tBDeXa[[Kws턝n֪tRкM擔T(ΡXATݠ+:$ پrlm71%V\|5mTw3;b(!p7C{Yǫ:OVDTD+1%}"("u19*z 5hPjx`#{ 'paTo{ =1/-<(Z>w4-쇛&QL-(d$H e˸lU  ӹWqUȯ>Sd7̵Fh"=f|%օnk~uOmo -X͐i'|e%Rlգط"( >`+f|q@YcCy\Z7˚i3F"a?=rx$t$7F%qO}oVI(&"A7:)|f OdPNrhqO5K$ rPveë7κ0T9JG2x}O!$GŴEEqb 'N>:| n^im|]ǯR+ӋB8k %irRev6߳0P-l*n"KN瞓*2O'(~x1ucqߨ;D'%V+Ÿ (f1p1٩8nQ.즽ulӘD3Xe܍gd#s-0 l3 Jd5?XvԸ &ܐ&` 4,E A}MEB\_{R9v2 ӁťcVEIǢ`&3>ORLju`7 ?Ey}>%tG``%cxk | R-*}n ㆙܌!;ȼ/6./?{wܼXt @VV2xtQbۓqopLXW;K̶{pa!ЦT(r XC<.-gL@ +%畃#[:yXK4jlIf=soop>2h"ӊip3MS˜߰㎢,g]RzOfW6^45xroC-V')(p# Jg#M̩F%Qa sy@ P>X7-LuՠUΪHF̷U6c)c[u6xV'!G T˅L.YE9o. JB U, &7\bv mpC.G`0P<\;F!*ԉ((q!u7cv?[|ܵK':Mb!@*n]h<̐"7oUL$Gm 3 Vd\CE-w/(֞ kL5|0ʉ 0h2}٬JsDžD̩{m)X.ҳ$-g) hQΫ*=/}1ꙛQ3xtdRȻ LNcF)a1 ` 7r#k) 6N@7j7FJj ׼[)|KEΛYXG<~`,Y)NTGQFQ7Ƈf|cIQy/D0^1ffêәTYDۃ,ľb%ӹ\k*1DQe_᱃,OlmKgUI(l4!Ӟ:gF@z(l`N@gZ3c:TQwhHC p Mݰň/mFd|6N}@Ob)>Nsr(y9o\rsCK+V󗘲Wc2Ok[jB"W)]ϴXc# \n挈kRQA${xzE PhP~{/Ҿ}U)7Cc A/ƍ,:yq5:2FyRgrvrIڇ--EsYU7? +25/?D \w*T h%:2JBd3p](sɁՈyM1#i)Y!327ߖZ9 ;i¿EWMd`YĢfI@V'D+Xх畓ɃI?ni*)&i=9keS*I,+)k͋x+J?1:*rWb*r?Ay}W#ǴXh٬;pwل_ E)ʪ[iNS9* uݎM$G>qc2r*('JtD"z6+w6KWBJj/1=ryP\]?NR_^:*%UX}wt*Qh59`ux,^ܔ>|'}6a>`zTi]XQ薔5ȿۻn,H| ߩ`?IRgғa ΍tCM|qN-*OJ .PàW $IHhx}rޘ'p [:u8=tJ[ g'']nPVg#6vچN0BΌmjsKDPO㎸Nx_Ba>vȦ.x%[YB_P>h /|J4u\;w c1O? Tl(=:CW:;>6]Z!iZQX.%|7 ? ,$48d=ֈaN5i vDk}ے03Y x/H+UAj,A7لu*Ű0I MaGL7Gуm)70%5_D޹e [< zn CHٖ͛0B(9}Q7|5)Ӕ*y1 9\iqaOR|i1; 4܉(?1f3ױ^2'ck9mʵCk,bwAj㇅ JIUHic)<->f: ,z)vVj F?K Q1=rʍ-(pXE+96k[~ QCY1$N|qN2$P{8 ?kbhGWC󂷵+cJށjtfl!;T%(_D%hg~[{M `en'Wa`]ݸ>:e_@ u!&k/V|-~['跧K[ kf V`H9*#yL| Z eۍr+;si-mNWojbBhbC,}qHxAyjhOU?!Eb}F9Z£udSchy{D h9z'.#Y2;ދ!6V Zm:$Qh .[$  KER5q֠Dv2"%3[՝z3[Oci)Hq㷔ܲ:MP+PQv` ߕRc*g;"IN2 5rW #cmځ4pS^d3K^\yx5,km艈WHL*t$tOBx`;m"T/\)iO}  5ZN/WъlR g)x OW;0N0뗺!SHQ wx{5Jp |~EZXS ^7%ҢL³_n7?.0m MY`*'.H'XNhFX^ةm "~˿]ן,G%9ru!lhkޞx@ HE@ Fő1U/fyŎM1ˉ ~ܴ?\+UHrcXf--^ Ʀ/Ao\>S|N7/'mb! V k'FYQ*l!-u(-? ? F~]ۅweJnLmC}Gg} S)f2Oz5p|Au]igvhaoR)(GDcKc;"UT~mqIU(bEWZ?-ᒗSoxtv= J[Y~+2ylt' WS QѻL0OCTS!le T)'DGWB,0*Vw`sn!:zbYtAO}OBj ̀Qy˾6pI9L!Xe*?ϓ4g<_?TbYa0nqt@Ӱ2ns.EKmapX$0b qo}L.j]w0٨N(>"*;JVKmC;Nfg+^&?- elI+8qb,[z{f$A:@XZ 5@u?Q`\3T!QzU4tV4Tc⯄)5Zᕹ=`,7w5m wUnC9J&5wqcD})G`e u&=ZK#cz:<5Wq9+PW@-Kwrqd|vfw&OR* kϻƫF(>0D^h:7IJgI[ƩJ_ ^/<@zəZ)V}PlwJX),t%y 3CE V@,zVaZ51VT+܁g5Gp;pkPX/*3( h1a{ Gmt&sGERHьJdآ НWNi(vUw_:}r F]qcldMSQ OrK`FD}6<Fͳ7./qhqgbU\1U\x]o(=q*ό?"kg[u*Gb/|p5*DK0IND͠_ Mm}3-Ok}W mƵ/xeS,#vy@&/7=NޕDm1hcB%7d (~YH&/3lWNJ⯾ٌ蟟ߤhJ0FکsUb&,')Hš|P.icO9t -[LcOQDQF ,Mc7įrqOoT* ɢM \Y'/=1r?ǩM@߃2D^zusyXS£"EMk 9(fi]Ȧf#z׳h$&>[.2'ˋӿ3|/fﲂ{}߽/aM|0:T=s!Z[K޶$mڢqz%JʃίP0dj峕Ol4ȁ^Rut%ֆ."pW<9QLur$x_Id>22qJ9Ib4Z;"X,GS׭6C EN1ӕEeF6&/:'; 9z'T)7KȶxMdq}63(|PքmS2"e"=g.X]MeU~k6VņD =~MXC=Â=fBsX/Df AqB&#ĝJQM*p 3 ŏikE cnPY͙~Wrg5Y^*DPߦ)%Nk g=Fȳduݏ2;2,w=Jz]Mkp"v,vRf3 ~K٘[wK?Nr ^$ް Ӈd*?zuXxY;]p a BxXt av;ߖK,]ͯ7ҁ ivu黗7/>m^+MγAϦ83 jf+@h72UMg?%l֍YA=^@DL آ[x' ذs5Bij<|ؠ\@.a|!JZ!j1 0:? ǵ٩[aAQ: Kx27* $$;-YeTAp汖bUl]&Hښu"I7$&CQ)x kPKI%$>b]b;K}z >; :9lxl9/tnVWoVǁ,7բ^v, htJ$]KY 2?NQF '߸ P<5 ~3$r[e J D*j 5 0e (y & B,5^"'DcgRJZeܧ~$z8OF_=ZWT>5@DtUbq$3*X l#ZyŧNc^0m 3)Ow H)>AGiX\Ş|[?t|]2O/9:C\R:`Jn+m,tzZ5W#h2B_#$'S|]b0KX0s*Բ9`,!MMPCIv#hf8FU!v|b~5BR};Xi|t(I€~aŕ-#u)r;C s3$}mTv=!%P%Eq)!S9 \$M.GiyORʛxFSG\tc6M&!s zp'yY/k} j 7GBB.NĮ,8Ґ-#=8zӈp"Q.mڌ{'N/c#jG h +6˖l4K\X0qJ+;OMY9u kN0PԠg5rAf qcu𦍙TZG>1^ ܻQi#$]1$C[._Sb~6(#ς4{Qf!Z^X|l:Ym|MT!tPȐn5^sY,ʭ#q1n0\xjH|ZNv-X}q(ixH35`Oڢ1N9:PHqq)Tj "tȫz%U#rx5D2#[ |0'QŒ0!զ'OWXȄ>˘rHV+ߎ7h00 {0jE=_S%M9o$2 $Y)QD#ہ 8$P ,~@T.?N%wfO#|YsGݘ |ۊCNH< $pc |8Yn|v_YbQ+kxSH5YSOcF$V"o=\eý4N"=~|O8:nDjas$EĪ}]P!VIP6+X9px_嚙23Hp7t`˺/m+;ʬ) =@Ȱ+* u7EN-z[~j(~7YLG{iz2{QM |I!)tK2?X_Y[G S9uqlWZS]+8d!OKzX0\g4^Pp~y2em8Qrjy eOKo\JR@et}XC$ Q+nH_ngu`R.¶{B[e/rxN4[Ɂeixg+57lٷR.6Z_I-}C?Tњn7-./,Y[լMK输k7?S/__ĜVf^*x~Y],C!&~_jBeEsa2M ܧ> OP3-iE lw1r|$T<ũ6<`H =E vՁAsRòJy(ܽm|0ajVL6g!:UHKZm{ִ&S~!Rޙ]3QKZ9%KNhdwN Êzrh_P}WMqWx}c4ms>-}f0l7gRSWcj 1a.j|(i( e-U'J\nIDx釴,W:?)|x#ڎ8 ^ܨ4wu$nwmiӉu4m4b%E 2<M"c; Zb;zhy }}bg'%y(gM=]/Q!b%CFȸ* "w~>JTz2%hE`ghf} Mߙͺa ̩- $bE5R<څHc-J (.2os$25󉄝B se\kʯ֨U¢-i2VFs%^}gjmVa z7N Luч.k*(3/΃=/3*v4ŏ;B؊ ,ㄔpȸݤx}R]7Ҫ Y9>|S9wXOT75<y*DDfa 4/伔u]S Gր뇝,~ȸUr%l^堋1qɞg.T^&r:}0*дq?润]}E_ö$̓MD+d@,E>|hEN0R,ɏ2=jڗ"ӄ#I5¶,bl._ݦ^ť-J*ZU(8@O̹\>{3_=r?Á4e2SER)8ɇOܖQss r:sP,k^8䲧>1nO.dnt/L}l-la\/ R=A~<OЅPBpSB!}n\tKPWҵ<;>19!Mm<jh/2FW"D'g dKRU:[Rt cf>5F*E1 2{/a0" &5_s4,W=z <=0h"TLgy'}|-P$ٱHL\72Ent;LvV>ժs` . Vl\wtx5+x#d{$oʕQ!#nߪN;z,-Cg.5AgElCDNM3톚/N;#47|VQC@r+c$eր+Ղc䢜`" k\WO"aj/k[2iձ(Nf׷v}=ys u4_3mp='lGaZf'+3:cKO_@fc\3ןu 8mӊ2\EE81{ *U]7#̌Ҕ(ZeU̻IKC]jNO|-5! ׫iR#W6h_*޳e(28k^;G*bۅ`US !d 3ď=!g& O+H_+u3Fd᯻VS1I5*.bwpՀ 35Waѓ6մUb"aE.OX9S=~@&?A^.peKA6tɻ]*-Hpqz8܄[%>koU_NgӮ+` "cm(|Nڤ}DafPN:r{%>7 M-<7dA rٙ=֣p|żvu/] \X2|S cw,ypt %}}yUEz2/XVy_45g7E S L eގ.#L7➦TT̫zBUz2KN)L(qݩxoS  ?*nT0{+X֢0ߟI"z X5mjB8H\Ha Eʺ[ ReΪD˺ViɻźְkC0f/|9'Ь)v&a-s6L: }QM4̞7::ܝE:kOY \%)_|TsMn3<$彅Y[K%r8+3 )t&G{Kyk ɫN `HH[ Q~A)}FoODyN~Zܯq\)&$$v各qkxߺ zUQu(c B!cde^gE?@Y*9Hh gL3x2f( ۲^_#tb/BIcbW-wm=ܟzBAX[+'{G*Hi|=iK_7A4Em),/ ҏLR|aby5*1GAty_.H/ߢ< IY; $#_gxvEmw W̡qX"eg!5CaHw7$J;܏RҢ!D DmF^:6qHk3p i}3~n [!@=a&} M&fHr?+w]_F̿s؉&y"~;ЈN<ʟj#u8:(CVO}E,Oփ's(x?:lRx8lxLa#MPV<3o ܛS7/ AcX7- J̸/u6N0b"I*lB`-pNOk4fnzMnt'bT&xJqE"H 6䓬O ړC?1, =g-x۳Q ب>HO׳Ӈ q`mrQ{yuq=JC~*\.si~ u鐢3S,ނ5 nX*Owt"۵Q}]a9U+({[*IvA.(SPKK1;TSS)RЧ@BD^(dKʅ{ x\l14h0i+)'46ߵ &`3&)HXy.jL[6S&~>ASoٿY %r Tx+8->ܒybPx8 b_#y,kOA7d0_IM+D5,w~Z{H=VB|_5($g6_: K1{3юGKZ{ʒnSϹrDoJ 7㮫*q\T%ǐ:}fm9ͫEp2`kBWS+YZ5bF1u\-mx=;J{ִ:B)X5A%E~K+k?W&2S*G/wZ9J.xF90>zku q(g~yIZrه{+nqwFW=N1=RZ y`O{E_F6#ԔhZ@q3SM\SR7Jbbuߌ+)>iMZ8gy3i{?ot6d+U>71﹜4 ݈KAXƲ#J}n*GmKLgS[s3wibdK$x5Q0\4n`FÉR4ionⓕ%R=s굴Db|m䟫ڝ\:4"ELn%7H__-7~ $NpP/]DfcJlճvv(&f9Yc1&T=YO];_/|˂l/tMuaEy_1Fo_wOR%]}JkOM|)A!@ Wv:/j SQqcz]ǺP Cze; M <#j`Ve;:^A޴ Ywj[ ']\ Iۭ0!0Etr/L֬gSۃ5f\b}f<\'Bc)p0CCI#"0pK/ۜ/`,^Kr#Re',te&ɳ&*#3 .$zW;q0 T3@s|Fqg*7˕LѳZ 0q9[vRbHc.bOyuI~s %rW|לIur?ME-g 1Rk @K'Y,Ft[OY=LqRBvz| fg3ni-O B~3Hz􇿏3}v-ku+ON̍(}_"o*'Av=o$(>'g~ yI /t0Dԗ`r:6~deqk`/Vd,ΎF6bE[`T9g剸< Ed}/|(L׃CFZZ5hJ^]JnLhDtM'^@b E`*fhuUtd$V笪 ŨUy0bf<[^10mcJ o ;'KbV")nBSB\&j(αW`\}56).ϵ&a01BѾW5Nhx4D߅%V&Z:ND4=^8)5жAe$ ձWY /esEbU |=</䉼)jK5S"_3?\1oGJ5=뭽D̉ ㇉wd'y:W,ۄ#uAmOK<ӵBn]{W)fzԃ)^Y}4H:r;6 r]**]~!3rxI.EGiO4]haBC:3@JFBzXd1P]}cq"&]=`S]*=i{.'Ly F!CL;Zem4¶l_; #B餍Ĺ!$ߦNjo*q  QqBeO׏]$I@4H`ջwJ!8ϑVjrĵ{Qn]O$h½PYcVlHst q"il($i։?d'<#A]Rlv4ߖ3R/Bql.c$޴L^ P-5"a#uÐ\(T`g<ep(Jx 7*&%ooxgO[u9>vs/S:ɡF,D?\lЄB e=Oc7A;w\mZ "DXWTo7qغm8EsގJHݦFuF㢥"HwZI$9]T)Ʌɽ|[V7Q3CXEHf=sqnh:nDkքTI/I'iŋ;N7\6uPֵ1 Qikq ?`4їE8ƺl Ù*h.4EBH C*0$H=4>`KST 9Dw|v0^<á!"A.PC B;Z6=(C_4rȱ3 |"0)s_M6 nn7ޙ`Nj.Vgzŗy:lǍe>AʼnlȳqSn*I炑,\"y TJ4\%l-4&P}~o[$FIQkl~% uQ>Wm)^F@'lހ)Z8k\{[t((g $2>UipD-*OXa#დJ(P(>PTmQpZDBl GNiQ(iu ۥ;NO:"2$cQяܡYⳕz>ahJ% z2~فC_'M4h֡U0o 4$Q0bݾqRABS9'6>e@K[o2`&?WN=~)n`&-OJ)D*S:te|4`fm.N `w\{kX66q60PN<]* Ei̳GK$BӯeЊ]X8"9Qk8k`@!Ђhnt0t;æ-bd-hFi6-9gβdS ;l+3d:H' mi-]pːU#p%e3S>HzI?Pߜl2$hqv^R"񑶼 FRk(NAZWU 5_coz͂}ܔ '%bwK~sgZ.秹PwDipN&ǟ)WG5߁2T?a|Az( 2X4w>=RBTqqx\}9@lCVݧB3a3l;wfQ _\:p/CǑJ n8lAs՜"(4Qj]!^8g,P*:Ir, q\ƅCse|iӋqfA'n PG`zcDVG <ْU9 N4гP+Dr9^LOwG=*!jc,|f4A.*] h9Byu%M  X: Oe:;o4t%&C&& ]leLR}Qs0niߐbY]C5e7Qhr& Yr-kPKҝ9ՑSn;m/3q5Iw ,@@{ٲH(pRS=P HvxUiyC7;fIrl k,KDdC|Aс4yW bA_Em#nwZ3O{5-[;p٤[Tbq%0GQ3ࢊInm@qLFiJb(ʫ{\0?\_hœ$qzjg?6*Fhi|<9yM9ۨ-UcD"D߾OTz>bZuNa20ϼ%gXǴC1Xc5)'Fs r0Q=LQtnIDAh?GWGe8W?mU͚l1ؽ# %co <QY\U c[]J/HMa]ל 6,qy%edYPLTF!e3'gW6Du/Rev|JV:*H;cgٖ[$ qnT#ބ팳pn49S߸*-sYY3h-U֕H^Uۚb.T`t2|^|g}oۦ~c4UG;ŭ8K .~抙i-}P?.O;GqK%4q.nrd& Y|wE栕4Q.VUnMOPPqNJ4*y&O?m=-Fwd E<9ڣCL(uOҾA;؝` "Wx s>ixu((,,M{=[,VWM 3a <"7 Z{(ԪȤ4<34`K̈́1=N=cpp@ *r:})$jEj I)* ZxȘo1@Gj/bW ђ&2|qTIM@Qpel.|'dd\McQK#4jϣ+Ls|E-Z"'sdفOz rail[:56.]E4hB1W݃<>]F[B 6 LUV),%ˋma9_Gytgssr:4q a\1%5Y Qkpvu1dq}Ò\ =R/Ougg\IL6K@p.9TQG#+u}¤MX O V8hLC_K5F ro+J,?[H 'Y`MRCDfuWzg-Z 2Ujn=Eq.<}| :TJ4dhx1|@[ۭauXn*dÛ)耷]HɊCݺ%ܰ~|+_ُ3ZBtk~y]AMKfW(-P"nmI=: i!w BIW-l2:o"mFSј%l*Np| *ZPϧ˂dzPvgvĢwBҩzS^'NlRpgF3_y®oUP.O]kCnZ-u9> ܘeJV)Pum:Ha'R| -~dO()p2"^†g]>c#@y҃V.4Hu[')p̹O?QL֖E|孀 ,w}S/<'~,"/8$R?yI5E kSXGѰU.~mlqrXf#hHhF,</|X=qҡڄ/4oqgX&,iUs b>jyl1T>K*3c|U !À9u %kzTmQɃ+Vc]B@HZ Z ^tMҏ[