#!/usr/bin/env bash # # Copyright (C) 2011-2021 Intel Corporation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # * Neither the name of Intel Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # set -e PKG_NAME="Intel SGX Driver" if test $(id -u) -ne 0; then echo "Root privilege is required to install $PKG_NAME." exit 4 fi PATH=/usr/bin:/bin umask 022 DRIVERPKG=`mktemp -t sgx-driver-pkg.XXXXXX` DRIVER_TEMP_FOLDER=`mktemp -d sgx-driver-XXXXXX -p /tmp` trap "rm -fr $DRIVERPKG $DRIVER_TEMP_FOLDER 2>/dev/null; /bin/sed -i '/^isgx$/d' /etc/modules; exit 3" HUP INT QUIT TERM EXIT # The number of lines in this script (plus 1). Using this number to # calculate the start address of the payload. NR_SCRIPT_LINES=93 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=a9c19aea7a56a8b266bf3dbd8258c464 # Get the install payload from this shell script. echo -n "Unpacking $PKG_NAME ..." tail -n +$NR_SCRIPT_LINES "$0" > $DRIVERPKG echo " done." echo -n "Verifying the integrity of the install package ..." if test $(md5sum $DRIVERPKG | awk '{print $1}') != $CHKSUM; then echo " The install package appears to be corrupted." exit 1 fi echo " done." echo "Installing $PKG_NAME ..." tar zxf $DRIVERPKG -C $DRIVER_TEMP_FOLDER >/dev/null 2>&1 retcode=$? # Save the return code # Clean-up the temporary tarball. rm -f $DRIVERPKG 2>/dev/null if test $retcode -ne 0; then echo " failed." exit 2 fi pushd $DRIVER_TEMP_FOLDER source scripts/installConfig make install popd ${SGX_PACKAGES_PATH}/${DRIVER_PKG_NAME}/scripts/install.sh rm -fr ${DRIVER_TEMP_FOLDER} trap - EXIT exit 0 OU)e\{sHϿ)z8c;8Ύ * $FvMgI'wnTO>y9qF< =]_Kޣ~}www~V>bG2(p'ܗC''nCjRvknm4?v<̆ 4c7Lc3hyou;e%:,nr1w;0OI*Lx$%(tH1HaGZ:iK;U; 滄R2M @[C9g Adi'Li^hD"T.ƙ<7b-oOY;GFܫbQqhfZ)ꍾɰ\[,j2zRSPN0b&c̹%_Kˋ*C_X97WłĶm'(fL֝/]!TYy\;WJ^o{Gl$*y: X Ʌ>}b5ė7o2ЏEX<.pĶ ~!RfnD3>aubx:3hխjMm1]o$' w!VeJe 'z0=7=v7wN{]湖GN1*yD $Um5* #W9%F,z8>-NyBGK_hsN !|XKp̈hf[ғI]d`Idj 7.蕌^\j3 EscǷV M' ?rq9wZo^T]V+Nts2q}>P?TyZ -qĺlk V{vNS'f5h R=Z}{M=@h'iуtJaZ@t^iN:,rݹh_J SavFإCd#:F| N69b)%+nN/ ,5 5 ];5BB [}xڕmUѥ.2 qxKPN C  Zph-LLG`BeΊFFS o-<@Ru o .Coh4:+ƙւ=#sQԳZ$܏5L/ޒmxɷSu\"}TkŧuNK)h0tc-dh$U(FTo؛`! %H> ZAAPtӢ}Z9%?| Wb/C_lP9_YQ&aa@DF&P3jƆ$j1|!Wtf0&Gve+03$'^5Iv}{_x~#6~y  &Mϛ7?o~e7!*! Gjҗ<hNN+X(5!X0ϊT y^?^W#yz03:uSx:n \D19b9g@t(6U戉W^rG(w4J*X Õ+5. h'ykrmBJπ-F& eD $U>0TYbjPC.i=C,քJ,ʵ +8pSaԵ Q_7,GLtZwIJ%a&-C#b3L| !^@~'R^Đ&n̙mԢZF_5.m`_BKӍ,.59Fj 0 2ai;~*uu^+t XV.'_N^b*{}֡-ťV]#vyUؚHvy_\/Vv6ۢ\bA~m,X/(M*C* 2hN^B"'6h܌K%VBʴ}Eď~bosJ>/;TF 4O;E`ZQ:9tyJ;22RN/a,t.Ek+oƮ)8ǙTTcd02md!54(&C$ vNqYD sDѲ:6#yAD{K GQGTy4KFhkoϕcE?ș멁\\N 0FDL O6g%5BDÜ_[#F4Nggs6nEZK<NLybVaK4eY2lAxDm2Z)Fd~ZY4u[-)eX1GӵMHKg:os`bBIhO ` 'wBI'dwqܒ8D`p:# g7` 5 $8f8'! CoQ =v J/EZiI%&Fc98c,3۪dI]RK^~ Ϟ"./؄5 qD@O6u/7)VuUiuZyjVyJ> qYK:zdgҩ}5z6lDbZD7=]Bi(L0:oWC[9Vs /dj_\u6;|"IR~YY#!ԦM>mXHdq,€lTQ sjRq㫼gTs~3 .f5TU!P"X74 ̚+W4hQDfA7Њ\.ΕJs Qg p~ݗZR&Yr7rZ$jd⬒\V /I`*"- C'7fKg[I%$p=o?P O\ϑ ?-]|o!}}88݄(};YpmF56'SsfQ*);pg9=GuIcErDTLfVb%Rr.b "p#p;MȈ b:6_4Dr _\6,qM;xk܌L!O ON栶>)@X7ۇt:mnN_Ayl[FSZnyĸBjN/cT}Jܐ>/,nGaWpC / 9?zYmLm)_0e^4oO ^5S'~~S"bXXY)WPp$2NVEuHaTJ)Ff |U|?tl"%Z.ɴ*Jʖ}K=̈́"7tT⪖ymD` ;Ry O yhP):_zbv;bz^]v Eϸ%"`|cbw_o]!ւt{>K.YY%acOϹbiCUV.{鵳7 @-X D>rR*)_uD~ŭZh/ ]d1vEӝ1,9 _,"HOT|$N#Hb`H YI@zãځO?ōg0U0ƪ0KO , rUf0Z@B?\y̓9s"*M |MqXVRړ$ߵ#h1QR)h䟷Nxy}РO\X_\bL/3l2t'֍>L/LN^1mq5AwK'IC3dR 3 -VR1Z uwyfQP㘞h^ WETW:Gmcx Zȹb@$u.[2ņVǡli C2:WD`{.1)?u%ZNl'ARtR?.w"͢qQR"nսC Gt :( cW?&筑 7伡Ow=~7>h=Urh'A%D?w{9v1UmBz>:ptư>u5Pքd*Ba9z5a6B%g\ԀӣF+\}@߿8?ƭZM̒1}1*5ƃA3:mzqz@~che@n2'>$_zpOeޒy.eҀ'A:ed=7cWFuCzZ. -6uI><}غDh×{(`xjv0Nna{PU72dEW=Dy{Xt5|m Q@}Q TbmDw!dlGz0#A-k]i:a[N]]㿮⿿,{=g߳Y,?;["ff`иvVL7tEkbA0`˺{QvK6cQ,1O;lVTY/ 'Zq^a@@`^|-XkۻVGkWb=zq…ԟoO'g헳!^ǿw鏧fџ?6'%sv?f?/y@eho}v0tN$| .? O\( ? j5VTt%p;(s+a \j mr}h U7wLsKev_x?W}?EL7W`H~T5RArꍇ!mE֥h^mDs[9R#|R-/Dsր[~C*qN2𧹲!!񹜢zKKKߔ@[8)2ughe'`KTD-L=A:1ʨ2y톮I1Jg\Hg;\IzD}$ŋMVBenfU~k[Vfk8*47Ю]95璚Xq{P0UtNAk I7pQ[(l$'͋BSBvNAsƲH v9ٕ61h|C 5^; v GsnKv}"5I?;ԩ6($Lߟ~}1g7K eSVnlKӿބ QN&o_}o=uW5٦]&jNN*SѧIe2#BKR~'ǵou=~fgffgffl/256t(;bhҠ(85PKC/H-l¬s,w/q =-o6+xe=9aS^y7x)Ի<;Bњ]%i+y< TK7FBq'oվ9GpwGpYaUK+s-T@b]RtWչq1KkuT(K 'ѽ)n&A`mc5d@1PV,{Q(k%1!9X tKK֨rGxд-,JU Da )̩h"J{O-!pzH@՘"9MȽ`B6$ Hj(V)q4-ބKnZQ2a)Fx`*LYꊄ́B84?h kL!8bgSA=^;%$iV&cՆgc*LpPzY㠐]f~mGn ɀ 5-b^] SO#~Ci Be ꍎMcatL#"`dYaJRA^*zŞ=v?(#zPwnD4B$h5*6wgaua|9!7D98r Ԑ)EH@P*U(joHBH)ߜiE,&ƈ j}!lCup.R 0\ LRr x <,iU̔xpu.8Xyw?=c!*DIy 2Q Lzy>eA@NRЉ;Av*P 5+Ѝ:1%GDSh(&zb]ƛćG񅽓3- xGQӞh9o9 &L%@.eQsAaб$C&Іbo;4${%%ԯWg =T"ۢ $p~jCb<]/ L .M1,( K->Y>nHZ55d\\A{N[9mh# 5Wp#.sP%Y9Gd \+4Hs`'5XHì o׾R1'1G)N_8qZǜ7Lqf+5h"&bD}-2$Ē 0W0pDqzIlǫUPpXϤo:acugx}-t ?CNU oW~\N|+]_RP<(V>USj.8aF#/^ߵ~[C1ӝ#f?Xc[xevs3t󱢃ǖJ"޺K[P95&|󖖺KpDϢ $Hd#[b_%>M\ }P>ZdӾf( G]9Z#(H1Z9z]%)ٲz>,VgXLtR1= IK ]:{ɪ o4$:BU(=*Ud/E~*=*^^oszBJz{\N]EB_U@ClJ(](\J YaE|֙VCg`ʫ*~E嫓*_&U]Ng#e fOC.EnZoZt,-R!W΂RGL2/Y32InJm{+*3`7V8ɦsWd@eV0z Ҫw?ػx;SQuVV@,Uz' yI!Wb ¦rK.<^i$ O+3H}.(>Hɇ_؆Y]y7<9*D~VM&U+C)2766n&"1m4zʜ&TuzѰNhQ 8NlO,kʁEepi(2ov.X;3',+}Nq@i;?P [ Y\i6=;-H.Ie Uk45nmN:@7G'یm&D) R;ىCJh'!W$͂8SHYVN:!VԴ̗RP;uPά<+h/yk&'>vL@"3q`HM%ޟ Џ1ruL´Z~e߲>,:#.e:ʰTҚIѲ~,L*,V(e)]-vNnK=J=)?RQi+GI9=RFȅ:,T#\\O޾՚^rlnto vnū㳽~cyD_ȹEȵ/jAhp\)utza)eRRGBjcC7[>`G@헽Ѕׁ2GgϠ_8Sޯ^A _&8:@L4QBl0E x\)e<^VI; <I:([w2犅) bQ G(hmܰ n,}!EPӣ16Cvl}9UmmrYJ>Nl(̅r.r Fu6.ڮ/ո۸5%/)c0˛M9We'&tO΄M٘&U)e .4u1L EkD M옋uWG߸w? ԸwlQymv[Wڀ%1491V["vkڈI{L^hL3YɔcR268lG{YFҧ>4?ᚽO^W{h9=^yI!ph/ .J. qst~x&ˆ??{?tqi!+j{{= =?[_m7&8FH%U9#[y2;vc0[lfdsioyk}S`:ьAs J?ifn.YFL6=ǗvH5:R+ rnR&V/ 9+$8W*bmɒIY+f6*0UN5(dUZk* DrTteɉ-fҩ?CIuu%aem{??????????|a8Xl0fHFuO9 0 q|NqFyw[Wv}\li2?wk;'{9>(P|0U\uiee2g{۫em,97ߥ޸OMĴm6pU"l]S<1UuG59Β7nB Ԟl'[Pi;@bEw_D`VQl|xa)ry(SZyl婩omڽ n{M@UX%\nmC;קӢgPw?8 ߥmM[p[!7k "Ux0(؃[_^eؔhS95;荡U6; s<<>wadMv(%\@oe$~Ҥft|wm=;N^vnH3/jTOl2\ fLBm# H"q(cse9. >t@ep$YZ9^_땋SV^-sQKwl ^<'upZDG4Dj+Q/-a$5#"]Zn2n8Xb3 kD,x$9:8>oẍ́PiKP Tcc)!\+7+-Zb 5{; Mx9ׂ RPlga9;kJNLHe2͊% e ^Ff,׬vU_NNe&[U7 ϽQ_|H>v=.pڏa[/ck}sezjRyRrcqLihˋEjnUTO+͟~^Ub͵˧ʓ*?]t=*̗p9Η9IҞ~7A|t|J~ ogt9aA;"zdw@Yȗ)=Osz$[N#@':P k?}`6"ssI1n)Bd~w>N:G4G4G4G %TzTi lw#oҕS _P']mfz|"mDӲ á\~x9tGKptO$.F(HZ=)\R"L5v<5QC;ݫVgf)b?N@To~z N5r.lACg`s{Yu"0 Oj[T* Ut  9ND5Z^:1lҤWoK4b:w(w=x ƩwB=cbpih FA78OJH$Gz@ oH.ulw]]ᤎ{ډ+LJN G|e:x0QBsg .WM_mxyRoT,(ogH4#- op0 c+.qURS10N_]4=2PuYvNW |!@e.NW_,NZۯ49;Q=8T}vVES >Yg3r%B}TY72t\wcbBA +)K[^+0|EA¸Az`=鮲eCM[ӿm\_*5]PY)0Ak>lM d+$@!$DHg}/~q#z~9Z_ݪ,2vJFdRa:뺉RJ=7.д.gr:'u'+nIXۭPB4fLE3E~;<)Hyf$?AIrrG"źl:21ٓEv`=qϢ(R [tr.p/>$Xx0pI@^N t5)9ݹ]{Ιienmy74]Ɉ5|kWUv@B|^ϛ wu k]*@n욠^9JIA@︰~TETRHM uK=~$(Hҩ@!(Ap7$(9 .s=*&eliixd%Il}֌zpURa> *utbteH7F?> )cji^7D @_I>d%t#=Po)obV.u]ddw;?#ǣVOVgg=g3{=VN9N*ʐM (T{í\_JvBZܿ얲]CB0at*wԯ[Ɲal MSjΥ D%y*AUFK7K'?C#'&`u?U zj-=%C0RK+x]$p[È~SS囃 f#tcu,GKt՟K("D_*sVC)R0m0D'wBQEr^ ,C/G* G%Fg1ԃr0XERE,JE8zR{ ߒ.áϺ L=eEbWW0T[q5 |G9f7 5I(YAXQLuiI1wHRxL!9i$2a6sL"7D3p|k~GI6?;ntgoF4 'JRc]囑[>sR`߉-O% <]Jaq4YBL:<3r(sj%g2et]J&ir1t$Q&ybL\[qBtY@|L;ᕢ[_ ЂhPMV;pg3NK%ՅhU+'Za5rJ=M̚ɹ c*i~N]Y|)yk]4F R}Kxyk+YajSIV=׹nImbfLF-_ LNüSöo_LzYvX z0YJt5*. U ͉y|9f9+59q%VLQ&mӛ~@2n:yT0u(gV}_gpp9p0&vfzV(IMԦY)R{걢u ʇ?%}qkBs \䅏 `=ʻkԜH!d7^0Plk0Iڜ6c}.HWFmL |ԹiRd~VǏqаKWۓt2&|w!`2ҌŰcPX&^ܶPkPUcS:)Ft.f+48Hߑ 2:PkK5"n d{jt&7?a,tӸpqPU_ɿopiR{W^^%<'Wu؞u2)Kyc3*<4l6Ũ(FJxLzfG;1;C{ҘX#&O i6 {> DN(Նuvw}N9 ChPݱ%6θxS⒴bZ9UYQv+-&5 |[ѿ anv{ď 5>r uI!FN"b$`| :3>.$f1хO=gA Ia.ћZDfp\F-65ǔ&t1jM?־ ;o/ y#H.ѫBS4wz?b0a1U̘ow=<~JG vqčVo .'2aI@ƬϊDJ/TbpZ?G^}K'4 `TcRjd-L݂*zx0ȼ*$$Xv2d^?hd]@ܗ+ȴ_y <˗F͍IH"R6 #g #m3noj/h LNː1rҮlP6ZAJ38Μ\ T / CtSP$Y׸D$$,T {MtG 㩓ԻJWXyLܯX_ؘNe#TX|]Rm8>N^cx?}Orf!6eDat /_G%4}DŽN/lsMh4|zem^T~{=g3 xv3iC8iBGκ_rY@B{;cKx>wgB)]u@t\ yB]@3DyTZBTM⢲*)a(E"?5Ы#ĥä#N}iw>Ǘ|vdI{#zxO=Roj6􄟿vJ*7O]FV+uܠ0 %AA)8佣=x礶}YqG7 =S%7Ns2pl7X\m=JƩk?VodHݪ ]kљp8t@%%ACiESDS9L-^ [:jF$vKu(Qy1/E^bTG,-.Wl̡#opo%4pjNH21D3HUbH*Sm`[Mp,yn 9FS?cT̚Z^)X- sEՎ>147z/Q5OҧY"Tr]y" ڳCH5(OErr1T ش;wῚg3v\aLJNBН^?L"-Alv3. 1te 7@p_Ս(@ޔ iRĦl5Ȏ$܋Nv5n(|/rˣD)%Q5}W`hO N(6\zxP>*跅HWVàRc{T r5Bg;KlL|KF޸DkN?J%u8#h!݌x[xqOuGKR5ii\E:YauxM EBvv(Ii2EUE!7r"CxO4 ](Mv;i''{٫P oŝ7Bc1{ #+m-%KQ#[.Nn㒜=k34Kgp e &5od nO&,cg^Ռd<3tlFJYHNJ <lٓrN=_ Ɛ>[ J _n/ c;yOlwj{JpL>9֧ 0_o~aMo8ĵzb΋׻? HQ!|h< pX+jh-S[-J7N]='hou)oqq7hENse)jvً.؄.OY;)dr3~#O뜥mx6g:%y+: ԯס #8Ji;"t%Q{2[> ѻߔ.uhdl\~$E%z#l6 Kj&=2#X*f+jjG'jb5A̩%߉ՠr8<:{kS;ΠPZX詜:y``,ÆˬM W+[xBu]JYeI(D~F&ই-m'&U^r} ]R|ᅪ|'ku:.?3?g3WҠ]Tۧh`]?>2μ$v.j5eYB*^,&qͮn&;p 'rUSt秶/Z0.̊^RTċڋ3~&_B׵_JE&5ZI`}Ya/Zv*YfY\dMyS-s km} srjo7a߫U|?_ 9N0i'xO#v.cɦ|i㝆Jo馪NSR : t:Խl]Vu jzO7](=X=EhvB_3dū#`z!:HS޸O|&Zٍb3by@]z~"zw\^UCD_C G'UE,0h&VPpC՜}gs3&٩?Geyq\*ۤ",V˨L1bǵ` X%0=>{R 欘b໧j6qz|ؾ;ӯVRNj\o_7N̑l'5?2#-0N6c|z =8tHtix)׍ yYkCM3Ơ pwkyS.#}jV+w;BX8:j5tN>5S(Qe4_CsKGvҎeSr./g JFdD_~֞c$YD$xMQn5>eΥ6XPXafp>'kFLg<t'xw[Go:o{'O|]~30ά3;ά3X}govϸkZ`cUĕȁ`LV ( d9v` N䡆D݄δa,tD2fiM8L#`q4> x)0yZ#<^!4ԖRL)(U: EHsi2 3vow>'"3X wAyifɸS!V`N y)ܜpzx$D/Y[Sni0$3]m$o&nJ8g~{|R0h-*D@h#-Z*´qt Ihd8Gd 4rO? 36HKDŽ18{Sym&S7hf6YBs51vQbH06U}ˋT7l* !jaRf&ɪi<lC,T tOFД괺%^̪⤛&0+;$:h < 㳨?z>J22+^(6\bU<եc ҩÉlD&N Jo=W)tq^dHjNnf@"Es>DO U6.ZTǝ$iqp'M$Q\$>i|6n%{Kjbq~3-3] ߬otG&B"OsfؓP{b":G{}*\\;gfn@PDroMؔ͑&>(tT)#x6j![Y63/OiSLBanN'l*[g!Wsڦoѷ\TrANfG 0Wܴu T8Q86ޣdEAx24)}i/[Iɯ[SM,+rv.V!nӢ)k7$*QfK3犛pXt-1;> 1l˂Ƃ ěZ"݌ \"P-Gj^0EQgw?[[zTn'6UWgT:\=ӊPO|\dXxur60~<(#k*ڃ{JHՆ6VclJ>}:H<2԰fBhVcDWU$BD0t/-psaA4VrqR ȴJ<>9n\+][a D*vs(JA9 KI$`v%7ǏD m S?W'~{y&dLU9& M(zƃ0J1ծJ KzLG/0(7K4-G䃓/8L/Ǵԗ&][2@~:M(6>2p{x.+MV@vzpIwr#ꏇK܋DaD셇T'p"x݂IMnU"`S[ESk`b?/۽WCc-DTN_dX n,>8mzyȴ=Lr>eZʫ=dtm$7»d%ʾn_dN;$,%Bl&fcW/?gx6M"!# ǐ. I M+"R1TD¸?9 3,:c.l XܓKTu.鲞lu+4DM`\Sk4PQjM` Vq볮B7gh"9=T&_.Ȇ0%߉n7Uz?Pv h%hS &sd53(c'_YHԹyw<)9ASR:]wz\-!e$}ؤ}^PNYpTI _bgL݃xyti0U5o\M,}3ҧ&5nV{I]n 0S.*aj=dc^T^r9^czEO5\dȨj,6FbP[>+]Ț3Z)(F6 7Qo4ceɝa7m@9rq"E܃4s#:L:}tp+=ʾO8tٶjcGhI-K4ZHw9{PܶBL@+e?Xж6c 4 zEkTb5MN/",PGTYDRAsrkKMh]|JTgNOX Δ $ծ'Й;9MS&Ls8$#/gcxtcҩͣ&\.*oz"s@̺S'=v*0H~upcì B`^6Gji~w?Y 8ה{(]_nCEvdF"YYt}tT1|)6/kv&HokbN߬V lHu49o]D` iM) KKKe:ѻ#z0B]brxFߢ9?L%2ͿU;xo:;$iFL.Whze80eʱnj]fjZIBi+m Z)kŢy n:J^3AȪzqiwI~Y͌XP}l3@㠧@ ͯiw-~s M!fP:ۄfib]e oߣ!\slxu7n>L o [oN),7X ʆWP3(œ5 ìQ@ X:0-J#6{trk#AH䝑; =4L0M/u)i㲼GsqU0k]S1\FՋ!7OHˋs2#_BSkU>uZعd Z,y:He  ehOɓ ?*?ѓo)Dpi @euu_[~EtoP|]|X|hۢy,V+Օw[nGTthb{px{xnvރ[#wwuïut{s{nn=8¹ޏ{ro{mɹ==׶~`+EWXLbtd,[[e\T,o2^ݓ=]{zoqg}^WAdƟΙb*eXm?x9%frۛb[ߖ?Dɨ GҸ 7# ? 4"vY U̻rfܶF\1.E`Cp[{-v+8ꉹm}N[[ (⠼|1nKq @d(P~$OJ׽hm}Ѕc#:9=ӋԬ⅓N:FM|Cɠ4Wlִ"fsSQ$!Ä>ŚU;S+jm8Dwn;U$ GC;`=G}蘬 3c &C/6_ʀ8hYeeظ_YY(џߩ :)݆dWo3hCGuh "L$RMLʋk-z|;US`Jc!ZjF\xKY򷞚Dd::M>X*4KNwstrS߁;m0jh14]7`BF Ȕ7}+|`㮽&FϞՎ^gavfN8[b mijЩr:j'Z HPh^!)!GBv £x~0@֐|~QOƺwDAW ]* [XsUF~0'߾m(O!J(]k{+MJbHyRjW#)a@GBD@]N|de%;V'{\Izk`858-05x0H"Mwb'o9b DWwj]>4gZ${ʹ.a,