summaryrefslogtreecommitdiff
path: root/classes/linux-kernel-base.bbclass
blob: e58c228080b959ac473bf8ac5b3cbd4737dcd6bc (plain)
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
# parse kernel ABI version out of <linux/version.h>
def get_kernelversion(p):
    import re, os

    fn = p + '/include/linux/utsrelease.h'
    if not os.path.isfile(fn):
        fn = p + '/include/linux/version.h'

    import re
    try:
        f = open(fn, 'r')
    except IOError:
        return None

    l = f.readlines()
    f.close()
    r = re.compile("#define UTS_RELEASE \"(.*)\"")
    for s in l:
        m = r.match(s)
        if m:
            return m.group(1)
    return None

def get_kernelmajorversion(p):
	import re
	r = re.compile("([0-9]+\.[0-9]+).*")
	m = r.match(p);
	if m:
		return m.group(1)
	return None

def linux_module_packages(s, d):
	import bb, os.path
	suffix = ""
	if (bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) == "1"):
		file = bb.data.expand('${STAGING_KERNEL_DIR}/kernel-abiversion', d)
		if (os.path.exists(file)):
		     suffix = "-%s" % (get_kernelmajorversion(base_read_file(file)))
	return " ".join(map(lambda s: "kernel-module-%s%s" % (s.lower().replace('_', '-').replace('@', '+'), suffix), s.split()))

# that's all

9$eIH,3}C~ODTHADY}RH҇nDm;mwz t=k^d]FhпeNUfpҽ\kQ^6+U K2q4'4v3EGƂr!)ʇ -HB#B5 dnl ߳nyvZ E5i H0vzG'+KM F$o%kA(';[g{.+H ,iIy*"ч%F+QC(t>XWWD\k9(nr5(Eri<+176;D,7/ ½6LrOse2n;V@O ágQ(^J#Rcމܓx`FvB /5q1ԛ`RH@@E E/n.NeP0  9JDX{UPJ’ nQ> 񝜑_63 ySD/u\ܐC^lhGސM3q3zY66̟ac.o0 X7gNNqTYWEb2Rܙ>D8]?Qڛ Xr{%f? Fe8xᝆ}eL?Ӌ9HFy/h7,[yQx ?L@/˄N IzNI+ތ-s:Sa2S4IA0`&?ӈL.pB9'('3dFgFt:C#ߩ#7^?5J>'VW30Q;;:lՓh;GI\5ӊwïC/q"Cߟz&RFYK% IߎI45A7 0tZC p٧'x vN@ qA遄cզ+Lq n8w0g9Ҩ`xYj% 1K~A\7oDB bU0 ΁-i7"/DuT܌< g!;'3cvB&jj,K 2U+7CcQ.>!*`c YNE@$_01h`kƣz#Xq6㶂M| ّ:;4H0 kJ]?vzHߒ4_4zە֑SRI.<&膽 dخ#dR.kX+ U"GeNUQD- #i XQ)<^gzMͱ{iW~kzŨ YUvWX|MR-\{I?zɆwv"-a|%]vfCR_:^hG jkM})BQvE]Hv0"$ ?|qi9,B:-nh9Dg{8Nij8K7Z%9%PGzG\9DIrx9/h'Fzun 0B kn<1rmHؾ$[nEOx\oȖO:)}(ƙ8O`%̀oI ŵG'S^1oL[sw~ CDc+M NZ}-\X'o05&!S tt Q+#ۅۢ0Is)`ó@ԺA-#5~= Tat`0UKTVHY `*e| DL-6$-: ~V)k`/l(HC79v$aDjM|VqհjL3u,[kFsh󉍙Y4mV 1ٱ|I0tKyNSʣh#{?kAe4^j,?R© ll/M񜨋CXnk)^ DXZ_:@a+8Cc;\`6/P0z9.RžhQ&r+98\m-Sn q[L`ZyGXT9MbXY Ģ+wEWDdZE 4̎gm)fSjƚq3HhRe&+؞`G#C;b:'xmd" M|6]uƙmlW9K`uXLg9Y҆ !B^͕!H)CGxXD1< Qc.d83bBF;@l!3#U!:0!/ŗ*k bxr|ZKXa"¯QfMjOqB #M|l %86EL*<!j1}K&]94#fqQJDo' dR{=^ΩP=$H9K jYzzfǭ5&K٧M®!/qgg9)S.UkFPtxuZ< h|#|[!aƞ;!,9#i`H*kd^7a5M.U0ᦣ2PX"'ͷypap.v$Þ[(C9ˋSX,`\-GdeTf^ 9KP Eb:V蝭hFv >'4 $X֭ւ.Bm YN|'L?3`[Yc'o =:4(Uv=-Ir)|2SH,~q Th9L 6,5647BƊayuq@7ʚ؁U $g@\Gq tOetʚYVĈL3樭Z;}ČH8#{\U_0eiCn8tƓo\۫{vĴ^KۢmbXW[g% o4&FՓ{% $sFYo\e-3\R gn&.j}3.Lɱa(O(y -5W6Q,W#lʚ&k[Wq' `9xSBɡ<@-\gm T{$y>,̣8©\8#*fuߒIvzYMu`! GFNK_0)1~̐l:)u0m)o(푎\^q''boOjceSz/IU@Oz3+=UՉ .c]|V$EI1;gOh$ f._]PXgCVj8 10?c<yx6vqƷ {;>|wi(^8Wi GkODXSf[,~z!:zȥ@`=5/P:mjgD\"/irGc efN۷{X#N@,̄al MgR;TXgֱ~ab=՛zVimz܉BM'U*ZHs=JaLyAK^vVs{BV\Иs&4fs9x3No,SZ܊`$lp3&rY;r֓>-AIڈ@&DM ɒRT-4'XsujPHTloۛ<2LS*;WDS}?%[|ZNiGcC\='Xӣb>~rgDB;^7{(S D ##=s4݁h˛<-x bq-xȅgG#Xѻ?8N㼁~7n|Lb+ǧڡCoS5&tN 'i Zβ42$:Ỹ'2 '"kIp^+K!c*j]o@7|*ΚJ=%%31:D&LC|׿qP>!QL$9x r|cN:w Q&ŎD_N/:qkI4$`[E:w@zѪY(Wqe8x-qIw7&x83壌iP9c1xڸ! Q66ƣ{w|=Ssǹ6!l~Cb XOkOY[/zoώ"mrF~}%6X|%h4F>G11D)vU?H(vcTM<9 '0BN3 2'{/NNvUAwN`\Gʼn>R˜`VOxVmؐs {.|r(4i Sj jk׈?sF/iF_<ѐYG돿Z'Linh;d!&.M]rL\3Lja@ VY2Ix~1X_oQ#Ojt̗Cl?vvc(VWג` ֊Xґ1kmjŀ.X)ʬKbVT{ˠ`)hd^:'5S\[$]c 17mFT8+ҶfMU;bw9q JsRq5e$NX1"Ev,^w 0ξi$$CZGEV8wTVk6P`Yq;ћ_X¶,H#a,u>O]*i2aovl"B9 uY`R#~s 71mˉVx7N^!)եO8_H p yh6HX+ Y?;?*p o8%!h}I/vHCDK:STaUT;v7)KtXs p$D{W:q>a Om?=:88;#n?I2'G+mTы55f,\K^aCwa481M OMGRDŸIJ{_6{`ބ)K5C4ԴHVz&t_=qعBQE3g2Vm|)X?0QsE]1+bȊi?=կWO6>w0/<^QI2k<(844+mS t(AR쮏 _< :^~l5 B s#~B8S}Xe 7Sa)6 @į߲Ljvj0P U ?~u{KC3:O?K sM)C_4o 3/K3=~+ 1#:&Ю86)d`hv+;̉XZZOvuHQkŤ?bպh xT+/f0.*Pw<=e}LkéA #,R4Z?jrwpiV ɩgv|ĒZڞrE$6RQa$2OG- ܒm܎g2ܪ- ̺Dlw[2 h9~ẍ~յoqgI&ay,)\ l@1E)1Sꎚ|ȖWOHڴpLU$`֘pRep^HqXmWQ[B-׍3%Ʊ\ֱaU@| qUz\lʒS0]V)iχ@Ϝ C3 lPG;GbgvRщDu! M\[0Q[< sy?Y<+}tDFt {I\"EcB&G͒{Li\޷*;.C*f+']e3K 0!vbzyVpb3Nds̓t,VRZT6!EJyzk\Sq2d /VS@[VYO'AƷw'x״$"8~1H $YLwKU(A{|Jaj U(N.8WԦ8U^ ;H(s#qzow.;|F:!c8`"4uNBRt[Cv]ݿ餝I I蔕9fAڭBB\,0 ;SHX)LM6f.9;GX1a+g!C#vΦaF5;]>߫-mqKk/OW<"aq#K7l~ED^GrtA h?8]ʥ]tlPU5PjN:ѧF&A?Žu}\G?Ӥ 1燲g|`֌~-?zC˽ӳ}Fy\xoWhFOx֘3ˊ cUዿʝ=Q]"QK6bڛ;G?:̝2!p~3cU7y1J+.jD^U^eՇgʳkg$Fp1{:cwD^uӖ%_ɭ";tTSHU%.~}Ă۽Go~&`gۤ__"ܓ;$8ϠY}=@W>&+4 >Q(C"AV.0ca%LWL(?>@Z= XkV忧O]>>'z+vCEJǾ&BJ#O{GG绪=᤻tW{:B?NǨ^D#Nj'iF ߨ$WoW߷IO6(;M]s;O~,xPuI-J{!YB8B mXŷznAMمJTc5& w$TVKBCq?#(UvߩPXKcgMwd`Q:I{v ?|].2m_F7Ҽwn¿rj7>O^h/m?% hY@eQz[Ӽi֫g-Xo&%>zgn M1wi9ΟbXe"~Z:%4W|zFB\rR.#!\wO>OX-̝ dv8vCr_qx."z{|Sя-mkB2H/[cm{}=Ƕ KTi`lLKKǤq/KnB"mS=yݓ?9Z Ti^%F1hvS E?@M|N?@ͦmk'(j=)02xC% MgM LH:TE6 KQY`ZB:]HԵs?r&8%o|CY8<{SixO%m|QXQJ3GG4, "tu[STKT%inL:z9p9f\ Yޅi3^0^PkFs+5=vob\&U͡u" zW"Lh@ĩ[Mu_k׶{NNfQEp4|1tL$z;Ց;7sUw-ll5wj=[ajn/Ӎ/&Hj]s|o5VQ8ѐi}"M>=Zl#NRyMΎwOqCɰYw^+:JuXJ|Kv~9\ԓ.uVl{T2 TǑ`rNU`E#"R}C! ZSHlT۟MXzm(Іڶ!b0@[Ӟ0񭦶#X^)NcA VP[QFg+8iK;sz5V|9.pk*F>GbuRi[%~I2thBGe"}_C{}?]R=][M+|)\R&J^şQI_HkR0ԐW"LWH~t 4J7,vr?鿪+-$C w3X`mRTfvTdG3ƂƯ7 b6>C7-; eRG>*`u:NTh"scqQNuFʸss 8b~B%]1^ pzVY݄E `䠉ybK UR:v\thHFkN\1SmZDTm{bgCpbvg v,ՋIJ0w9 *Aj ns Tk3XSŇXo{[AZrQ:?Cy z= Gy 8l5+R+H+ Ĉޒa_|mx?V-Q=L̝)q9DHۈAm% ev߂o) gMs .{eFW"q18BCI#w-<=z@T6SN>/~:LfqhK g3Ēlo/Y/I4C~8|<Аϴ6 2 G|5^"|%x|TJ]x=XVwֵթ% 8J)І(XtH$D _&i MV !gKu3ޚ/8aJ~'/n4~bgU`S|I#n_/%m otrXk&+SCgD4r:)z2 <=RzSvm9ho}7++?>YY=y[EiVVAPs,ʈ0|]~=_wsF=f tfD=hIf ~SENU߿8l >7}:>pvGh_lWwOVW//SDCL Z1|]9Eӛi6aw563V@A,Xn!]ץ=S0J U 8R"5L%MzH-#{R߹RsRE ōڅԉM-_2KwŨ? ԻHN;s =xUHyq9L<)<Fܡj+ 8qPїr՝ٸEf9u2*;u&1K HYlq0cfc0>nF]x{XvmL87V&U0: á'K{zQ((hy29=#B%Kzf Ǔ2Qi'?8NH`H6? ;W{O3^OT$hIeMs̓GԙE4Q?gÍQCn#V/wY˷A Xg˕ՉFK@4頨Y;gYLćf 39Oꭣ&D@'ǻ5 EEsAS,Z[HO2ǐE'.['zpY웴 BXҚZmc %kHK1v40&O~vm`5m$|Aߒ/U4@w])Dm8hNDkF 5Vdpl5l p Fd7=EUaTcƩ%_:Qߐ"\%G|JDϡμckɯkZ=/׎S*3Go p8Y?┬W)vtK]Әsl8ހБdw,enX]kG,R-5eNH'C>e| nR\O(k^Ϳee `wo7-}c9hn95ZPZQbc^ =JՑސ0NmkUP$Njeϡ:9YYX#_akG":^ ޑ(ya!f+ly=/opSyŖ ߥU7cYKt):4Esl:J̋1(GrM6=p,S*_ 3jBoHb H4@կT ?~Jsx4J1 UVcwO?~?ovԵ_5B;x&.2_ۺߐ9ȇҟ(>\_IB޿OUU]㣶C𿞑juLPQ}^Уλةyc}C#6/y /!;(VCoCm]"ޖix})B̺xJ4W2D0ETCFڰ2[rjڈ[Pc裿z.? G>>΄_o}|o+|~w^*=^מ~[_0~ ΍ W~-Y7 vޫR4,/{ЅP<v| _eߥkk5> h_3AD!L.!xU=8K@wy ׫9:i^DSjyQ;.vBxb<ԟ>&)8h-lRNN~񭗱y| +xL |atq6Qz!?$Mv Tbhq("#z} IoRzg^>8R;H:2 y6nfc!/>h{wn8&77y}xV7I0f)1Q $\ϸ0_ngs U^%x> c_<BIQe'}!Hv$weh~0\?<f̒챎WFݐw; ?ffnǠG&_mVZ~{_0\m}גKz~wj+Zo߫Qw5~×ww{~͆ |w0 0{)bb^ {2f7 ~Y-X`<X>= 9 &yUnw9DNvkֺmut4At{yQܟҤmdD22߹Z<8BF PxXo8z0w_!W8(hN;TQ~un;VSؗ_lgYWfbjezIREk%(-s-*Qt:qYK퉠aZ,+"h޶"h|_(~GpQk\FjN(|WTNW=|Ik>YS ]tӈ=nt 6r?Vpu,XbXe(wYM*`.ZToFdҼ~4ybZ/7]d,C;5/>̠n4%:BF#%p(~㣓owOkcL'qMzٻv_w] <= Ӭ~Pxsý"r !D"yM#ʰDe?Ks~]YߵsX[y[ ;5|ZԽj'BU3۰s5toigPi=Ta{5w`*(B%AWwPo bO|>Ado(?>\gsqlhc'I}> [󼒪x}W&99<*LnsAeW3 IG[z\ɘꡭ`O Y'Q?Zp $ &1qJn)Ք(ifH.0.2Œޮ՜\6x^F\86ȝ, 1%jK99Ň|t,k8^Γ !:Z.puh09$霺!<:ԇL g NIjJ0 I1XXzm8j"\BM;q]UK"8 ޽x*$1;p0"b]E9}&$҉eg:0 74m1}Sdt!> }gl~ 0j*j5t ݖ /l;7=1 =FhT(6>-ά-1=;y}o;GCZ=:₯v_lƾhk%F5M@N&hѫ.0:x opo9܈4z'Po;,> 0z&{ J?=ּI\aSvޠ KCh|>qp![:*L88e=AMf I ŵGzS^1oF*`G_a$:[2*ߡȊ4}= =PrL0 JߠAEJX jѶ(LyI9,ءL(,3e&ԺAr%iJ ;6Z`ȐNaH&q-hW3=s@-Ȃ+ S[4Ϛ{ޏɒIdرS0|pjX5ml 5#F|@3xw9L w8$EA|)IAmg|- PΓj9gK KA? G6q <>BҼӍ@4-]%twVh˛TDf6Қ$ݍ(( gG#1g=eEUR0b*eQ9BRѣT3 4:5/ӾKdFh ,97$tFeA0טqe/ep[,͑olH*FdxRK&W fxcRvJg~WDƳT:̫DuaMX;c ^@3(ލQ2q\mù[Л~x7`+'88.]%누J( _jPaĻdQ#)IZ\OĭbY`:D]jTaREX1[ fCwV0IkLtk 魙)y$]i1Bs>˺ir4[9HQaGFhրƦB9-&EI0-#D@l߁,5k{VkE'R`&]|w(Ez9hDI"c >1BQ bvpTٽ R{[P PDEu>ϘN6;|I%z1-t <ΥnLyX # +.gaDBeWhseHy^Aץvcx9 iDOV^ɐ^_U8wf^989?SsGTL`E @J,7]tD_6Z`;S77.HSi-'@sޟ :L*<2.aDWx HEXUDOXߜC dR{=^ΩP=$H9K  р "IW_5úL"fl}p.)_RqG]"e>'3, e),a)NXo@œ F-q3@ر YufOqw8K4gMu _RGLn:ʏ+5%60||^o_VƱÇ^#!)}rm _f k0X]nGdeTf^ 9KP g.0S.FlE;0b((%Imm"C};>պ}|-XTNpIDt s)\r" 1 _ rLɉBS=mQ0|= E!gqҥ p>X+Fh!nv >]8]Mij-H-Ԗ F}@mU\_rleN=ƱCNV;,"8o W͒t&P?oHJ=6BOޘmpb{,/u|#J{Hf*h2E<,W'FeEs\b"/pΕOEE_.0覲)Cf&q@6JT 9 +TOt6r.%JVj=9nq_и S\g%1=Is UoTyA' eU F.`<Y~70 )zۙtH¦J6|ªel|PPU/{قjeOet ٬T `x/ Xrbk-dPOB!ėq/Lѱxy4̧ +V-x2g<$/Pyj|8r3,"),3#SbԋzȉV,BE^E|u+Kf Bz хDiz%h;΢$u5W!![@~Pl^ k=)lȼCvơdӤAM|6Ԉ&'bي!ұӃ +ĴB@O3fPqbL ]m^ :T_gn@P",aMs՞;U!_5ۻ.Ԃi|A-O炴r.gOBlSk.8 G(?s8潗\H\Ly~Gƹ2#-œ؊p$cVz2ɽNN~_{;[oNW{'[Sc<^;NJm@iJ?{'Ψcj|k`?3W{qsz 'gs=ՙ`wMuWwoz4wjlҰgޜcr[??{ޟONiFG/w6pxtFp8ώ4iC{N~g[%̆_Rl\%#ysExsr|t @HOOoz xe"RwxJ ?A>Eݽ{;g?RI=?ۡn8x'{[~Hq-=,a7` tq: UE?~=hl9vnm4} n~Y$Ւ 'ԣ>.7XEz[P {vhp.Vw G@6l=>;$xvysB[ %PFs6!/n?5?xsR1@&$;mw+]=k_RlQAyH[P8Z~%Rzʠ+1bYTg|ß@oC.8DVx 6kZYyi"JyjTކUk/!`#6|EW< :J*6'P{Sl(d,3q%#L #'0 4n|"\7zaE{\Znh;hH/Y|gaFb;tb|V|<ѹ\9c#u@><1pL96'cӉ%QX/s! 4nC~f ,o&֓YgqnFkOʝ(ātr_Inࢅt>êv Llx.IV$!Ϙ4ȜϬrwƜl4Q> w8OC:-x؁bVSZ܊`$lp3&r#l=pLhBٴ@,/0UK)IG(> ԎƩ)oR8 c(ӌQQsM9SⱯ7(wҎƆR{@„nmq8?cP9uo2EO>1\K[P?*>23AHOV.of+61ڊYR#bEBC@7&1 SԏIL7Fp:3vAYNZw ɲej?}OOk|s$f#hËsO_bu#8V&R- whwƏ"4|cqܵjsȟs0 E8:*1-떗CE[=R@-:YV ħR2NhLEr]%ڵi竪@d d֙>ǝZT ^՞zRVthL;LEWxUMiGhYx]9<:?|yB;<+WY74S_8ǹ*w_w? C|eF:g=6&t#| kTH l(* 𶟘^d'aA 3S`솋X%@M2_Tw3ua0cq<¯- rӟOO޶;ߪ1 B ôs"iHsC4M*^6 ^TMAs|3> xxCMAsslxntwhh"LiN̍az׉~Lp8 `J{uFVYƐ췆(YͶ'Lb,cN0Glo?s w3% 7'6[61 ґ{1s\A2M@QZUT#K1hL6#ѱ\#tqy t [ESwdYCkpuu9&v1H_f:=;S{fs a6~Uev+\{e90!]Pw0za \`6X-)ȝ?H/PM8\qP%3C%_$x =5,S2I} Nj(%:oKiIq'4q#:l$3c[dؽ4 ;%tBLA"iQP{$MZEBg׻&N~=0l {2"!aC^BUS"QG4UIt|=32Vhk2۟X:z6ĭAΝcNK iӞN-bVgIaeLxjmQ;xxқAvgn<zjE 0Injfle0PCh†l}$xhJ<}w|Os{a<*רŇ>*޼Vn=~Z귫~$~Sђ&qd=b#̆Бd$/l2*NGëZ3hQY? 凗pnTN-@0_C u.ӘN釴\flcݏ=G.4VՃ+يrt+<[|J#_aǀm MM;ļ),G~b7m*1D 6H@lٵ/D1 /Qg5ו1U})/V=_cӂn$x7<2keg={~4Yfڥŕmgt [6|Yݳ".PmC#M>`svg˺ Z w'7O8S 8/}5@;g b"cPif]8#l2^"ko, 4{_fAw/;_hJ8_ߠ_/C7\U)Z.c;D Mώʽ1>K&~74svw`N;^ۍE7yŎaTc9o+o߯YΣ s3, AW+5aj윞qQeS&Fk h6 @מApSvZqK[ h4 ,GeVaǿBԄY< ꏃavąEaB 5\bxƔ6d8?,A 8}89M<&͢$L_9(iw8f2Y8OzغJ7H.@:l ]e#m&9TlZ)I n'i$/oMBX!hMld3Ck!)v}?pfSf< $? Ԃ'} 3:W&<$_׀jpxR3"h50w`ozq I&򠴱hYm07NUUρ 8@dIhaqvSfp@px7`pT-X@T[e^ftяgG+pb'a@ )*HY܃%ܣnTq/a+%J" /V#|G?L.h?@CwnQ_@S(`{%xa|3'Ε֣'w+kucm}c;Ug~&^ϔ5]|tšD*1z7v!Zih|obHt^4ޜ#|0FILRgիet$ÄO۠pC-?`J3πiKyeHFL8N6`Tϼ ̡ <%PUNůd_[]/տ-++RB{(Hp/I QQAs/.j^U孄.γ2lZwV:O\0[]E+%|RǕLOJEמ.,[X*ZebkDM8 *1<p|Jk(%D$u HX8X@IaӂNo٨٠785JfWAЋqk]fF=&jGeJzXFW3<*Ds .hkk fӋ #~=?Om2qu \C0QZ<`x2(Re *w1T<9d,f4yiH $Kzqfg3QxNot{!mIha"vglIEžS$|9mX1~qii^I^PGnwBnS;Eп1j&j_K@6-=Q;O@Fy0ܐC*wChI_ xƄ+4Yfk%]%_T˧noT_Ď_Vx~cBżu{ ϝL|Қ/+`WSݠ3oaaaMOcqy>.5iFˎ6\6yAH%X{N [Zw$C|+Ј8!Xq+Džʘ+˳Je[WQֵϊu!08bEf6PC[s L5gӝM. ,xS Q'Jzm,L< `ix_iVR饯jvegX2αA0$939{si&df/͠m ģxH G#%Cu(֍ \&p8V[N4=l1 }SӁo{! ȜJ_$\ߒ\^ȫk_b/-E^/٧3Nޤڧ .:g#?;ḧ#`I LrxuLKWi eB9puB`F l\i+$').8SpDDcQ/x,2G e 6Y#dČgG\ Y,S dֿ/Ќ8'#qn8d.+W!Qa_bvQ=/$$ QdSS{|`edȎCnH(uӀx$[e|ё e"L??$ >Cʩh>H9d1禎7v/\p<_/3 %OyvV O~)&aANhs̑+s(zޥ֋( ;ZET~WTfLINBO3"g]bfUnp܄9 `Ҡhb1LSy 5qU0ՃS?Pqk8Q2ouQ 8|g?шN|QO G$,Q >e5bS-btI@jsvHu!Hy~9jtRn.#M*}7DFkܺ[OT$yL]q)h"fꃚ4OSFw1M"ԍmbq4ZPcIP CJԺ[xRsniHasF> 7bB\|RpLkNQ'6N@M_-lNh/De{sth ȱp8,O WRɕc%ЃDC1_LNmD8hY+mBq_1OMA< =b\u"B^ Ӯ)eoADidږ؛W;\} sLŠy (fJUH4oi2iCq3r40_=;~0҉KfѤJ±jN~ .9t?d(c;pJ8b{xk{e.w]nlK%ܧ[ @ bݰeCi rcs0V%ZG@k4'Ӝ#jzAgޒ>(U\+n?f_Z/r~n^Z9D`".D)u& h"{ .loý7y9~BA 3( :-v2 ɍDo)GfkiFX Y)"pf=VAp9z]ar*jA\q3oHI9;ŬEHޠSn«(r?eiB#9lx4BZ=!ay8B^sm ~7T i5O^tߴÎvnݒ$YL!38 ?)b.+ TUBZyttIu*~髉@,.Id eXn$b61IPJ7v8Ӑ^h{Ahʤc"ΖırEq!Ea(a>`8{RXґKS}릷|y}/{um1\uUQI%oswVmyu̢00d*p,E8)dȔ#mH| u%[꺛8`!ֶ}:[;a2dL@U[0V|&*HٷjB~LErlY PM\0aN1ٙ*0gI;Ӑ5Kj_uZP+- A4 9w Vy`4eg3Y*FyndPg*+=d3IMu8D)g3dB~^+rS5Ey]L$ْ*ʈ42zmL_MPvOL)|iCƻ!&/sSC2k^ P;t0d C7LJ(ba;gs 0&cTpOs )p7LTj& 2rIoD!!pV%~(–GuػCbg$cZr{7}k hơLxMŁwDŽrمƓ%Pwdz] |䆗䜁=u4g$j?3h'I@6@<4 >g~fOM/ӆi˕X{ub[ '!'xq)d)i8X1`&`[P5cXO+8ػb"IhWVAUidO2L-4"Q䈷#?2;Ti ŝ]JR.VlFIEА9}CY'}OYk)^  )5Sh# ɛ,}W..N * g8dyABԚ6zg Y  zpGM@eʍ tڛ.;R4 )NalաDspD aϑ9-|1C~BYNrrꍻařv$n<{4W/nuˋJI T fqĖ:+p1D~k©g@Fq ܙMy+OC;-ɝVdpOP#S^.ڳ8~`%" .3w u/ܗ>3X]J曩?WcҖkh"s߀>1\ՙ0E YW|x7~33J/GL%ܛ\XKcI[ϑ6Bu+n8xY{sNT1jt:s$ 1h^%@\bNׂӉK I3&Ӗ9\=F"+0lАN"#1 dScv{*sљTN斣'%LQ.EoKgqX$z> j_N+PվLK.R#Ty ea30䳭Kav&@^Mp:R!wRԷ{A4\$d4ѽp!9a>|͈_'< K]笔=-qo-:pz~rx%fO.AA!NSeؼ)d pGx&tQgěPv q>$p.;&oo뾉k<3 $(@ΎW^LunY\B_em *>ԙ[8W/\Sdɑ{j:+J԰ܿ7hy3{2k!DH,,%6g!߭P>7f|wfWj)+̓H7iX`厾~}rPu|Z PH)`|$3p'jShC) M5*V\;_DzX1fY\/\W Ta5Hkj(>>,$$jD*.*=Ao>l~ͷQmYj4,2I?B*($B]Bh-k*:%:}l4} lۈv'k|LyZ貰]˕3 q^TQnxpXs=ZN4ȯfE!zWͳ\Oқ6FAn:zB;GYԵݶئ<FiVw9تwK @ %{_ @QJ؍1k,4 } _܋c.y,:]΍t!^4Db\|dfW*b5BZplqhB.訏\1N"E e`}PguMiC1bI')MsXhfZ4J tJ3fI4aB4;BXpUen[iX .9@{h{gɢU_OEʊɃIq9r`[Xy,(!B4e/1{DfmXzL=CѴr h2l< 6;x[űXl`ni-zn-M@m"g|J5 9͛4%:zĩ.;|o&H ] -01M3Q(Ɲ{wk,l s)4A0.cє$D&Jgqab,%\ع)ZSnj/+>: SuD7W({ۆd/B#eQ8a@OS]~͝wpL# %/,o6O\PiJd|ICR8.d\bZ嚱\Xd0+ңQ5%QO*@&hA,D8)f?qC|1Mz ʅY7z5fwf 5 ¨`٘0! 5YV; >g+-3_jrth#IJi>$y!f;`$t%d@=ڌkð?pƷ?Ex%4\fC/K-@)wtg#mG]`H>~1 hb&2"/HLf< 4~x.skwȃRUw b F~;| tGH<[ p?`KPku.z&PCQPCߖa! WQO9Ӝ`mD3-R{&3 5}/ l NʕE{$f}8$q?:;(b\2S1?Uԍ2'?a"Ze0N q5i[P`S%]֩{Zo\.0-3aK vHbf4͑=,ix MԴc3,l$>!_6 !kLfsXBc$>ap'}Kvq81`3RNI&CV$K / k$<:te\fo ynӘ^GfP88b~n5q^D}z#AcZ KN;(I[Z i0Lz]zB@ ig1b0нSuDoX̃)u`Te% SݽEF)*ˁj8/} 43s8k$IlY:D+Y8"ɘU ׻ɩSoI Xn߆*4E ꕎA9)gj`Z xLj{zqj-ZЖ[=m ,x~٫-c@=.O{`j c/ڋ}@aadRVCNq#^ɚr6!bP_eehɲc@V^} 6\Y!]6۬*MPw9!O5up]'r4Dޱ~c,Vx繬|ElwY~Nnث gD\hQn^zXt Jis4O$dEG!aM곱Rf5:;2$P:Xt{)5uE8>nL-ͭR?ˬaHKwR=Y:M _e6b(tNl.QbP-{sA(U`UamE5'~%N'.^Ť_ǿT㻡V Fo(B0Y [qsݓTaND+ϏCI &I%ڨ?x mWbnٖ8kQH: e ̠ky^hEKq?lzh@E~\Sͨ 3ؕv #FtVlTl2)2g=G/47szspv.KwS0^}hOfZYmt,B2Jm/(FӺZeVU] ΌIӸ? N-^W4Ev4vv*1^ "8_o+0+cPe`Dwu(CҴӲvdAǨz]GKr&nj5W `mHs/NN[G$dS_Ѽ5Y;jeIB9ފ{^AKSs'C&K=i^9PN >H4mj&69 ;RozhfiF!b`fVLN6":<|=cZu:]y#B$Kh?ÕX.k^dLLÓwv([\ZxlܾY7J z'G'g?zZ}m][]1 B0=_z .λ ֿphoGkoǣ'Idɷq_Y*})O/_[铵o>OӇ) $en{_ֿܿ >e>>;G?f7u}_kUDFn>H 3gA{ 32ƣ4R Q{DM٘¶L} >D3H90֪ c,#8]Ϭ# %Q6*bB37L0v7y 4f oK'Lrc!ΐz`FW;|璶0uyaC-qћ3'ǭó1KJe)P$Ǥ^켢[@&}vwz<:㭓7['=!OCqJx 6#.DTzr#L7$|oy0ԒFA0YGPA=@ SXR/5r$mjg_]_[[=^]ߜnl k BIRW%h>2z~+ ]$iﺉ"%4Q``+E4uG`!goDe"(sh :$jЖjNV`l% }O#Ri,<CZtv`%|*=-f\&ztG9jK/v+Єiytryȧ%2)%} <6Jj8qJF͙΋^]#5mF\) oJF($ 'Thj>,lR 6-pe> k!4k!@\jqVAɻNc.< 9Seۅj2A{+Si6h ߓ5 ajQ,yjD#ئZW> PxAK$Ib> xPy+4>PP,:@UFEHst۰XߥKPi,b45˭9[3ȸʓA!S2U-Xk5=֜X5Jel+>/*]4l?\Jy)E&ScڊN0 Q&X6=MTވӿ3(h $RA>^!+x@AoAYyЗ}ROWԆp_Jml3y: <' Xz9J8 >F}϶̀e :}0h\֛"XX}n>oXSv]xlk<^oop1?lC>f/4v:/!})U]˯  {C8o :hgX,>R ʥ[(xre8\f\oN.g2ժJ_scC'eQdӊ7_?mqʡJ2Q)8y|&rNj ub/KA*޿1bu AEHYo[UoV!Uw~HZc[r48WCr6h.̆Y0ka%Qh_C[["?ycʶ}85?p.'ܢ`D)A`͟DaEJȔ߃ +?FS5 gH3-9xq/È`${)Ddl=PQ2j1o,Еz0FajKJYs .m|y8Rz{ϻF2nq&A]njKIA2d_֚'I;~WD)[?{ HIzA1AAF)i^7ۂz"H.ޮ6z76kK(쏄؄^+y69t~ѣ윷9oV+C}q]-:?IƕF>A#uٌ|`!®0kvʩil?RBӆƹgj]YP-5qW>jDԎ $Bk|5_~%Alxh6{i PւEe]5&r: m SL%$¹C8#lgE+{(oNvHCP3˗kesh0I±!Or5H>T|j?}=7,D^5F5&_`bնOXݨbޜrU0j/XsN/-R:PUz|ۍʍNkmvAZuBQ‚eN+vj@^|-<:;}tYkAÙO͙)}ty,)fyVM8M㵈@$5ĴHޥ7~)cHGB%5@87KGnti*`ޝ9K@&:(r7 6V6/‚aMûDPݽon+ϖKb!e@:]zYUF7UoO4*vOAՍKJe&C2,eЗ_Ӿ |tU4ُ&udaY e ra]:T0B9٥'{B*„$^߈'Curd^gz9Ϣ1HNkT^;NrVxs7ȫ2&/n)Xj7!#f&t8 5I܏Qxz#2`yJV#V&WƂM*b~DMe#~0FVAfCX*U̇@uQ,n5s]Fe"K!Y1g8>rj7W(n$^>%G5H9nu.Vx+*T9uZy5*4G XPY OhbfS䗠uz}tgr3SgwiUq0,pww1Fݧ]-9!t+u?po-/w1SA)!2DiR_"{򖂼 _0WMEf{/^pPcLVpOwMJ[Mlvf$8SΞIK$%"qEURQW2ҁ+S5FS0_)(=19G$GAhΘJa.y}ݛ=&HnM }.-+wYjbv_gBg}*ඉ&o}U>R C]XHYȘ;mC{dͺUq봪)m0 !vT#4)r-K lGFkm5s&^6XHbE"xVY$kt|fyo5[7R7s-`1' m?5 kKйȇď1'xr7o;SK<3Ymv( ̃p cdnar)(;9$/ &8":(t \Ø)GDؾĴK=FI,2-޹/Qd-!P/cQ_xU 0=vli׏ٗ4B[}.\*D}[0 -09}6_r& dx}cdfpwh4p% ]鮶lUbIjW8[ |nO/ی8Eu`&m Y%kc֚܈5RXkN/|ǿ[ i4qp)7(2xKjA}svm:7N :)nj\K.,Ax^H8jX:y;H66 _.Ilc2 8tRx zW., ?fy0T^+ x7 G1CD_קGOIx˚[1 ˽D0'ġxlxop@>nn6Z—۩1u:lqo6JPmͷEw&u~Ku_cnd3ei 9Px_)3fQjn1J:ZųV- "w 60>RayJ.ʊQ盫U? !!)#4 'b1W~hU[|gr#a"O7}S#egF"70rWyB`;'KӢMh"4v8ظ(>XHEzlCmd *Xy<N2=@R6@V+3s7Uɍ=]trҏDijHb[ZJ =QΑX'9li()@NRmO#7R/R1 BokE\`E3JhZ(S%&V z.nEteڰPv  -5P6vU&ع[8Plm㽰Lf-XժAюnG>9#h*#Mf>[`],~1ĝJnËK#c#~ޮuޮwW;Ղ%OK5*r:Jj>77mG1\Wntw/*Y(j,ȥٚB>X/=~]ɝ g4r58)Fؿl ~k&m8lԲeXN)l"*pxk8(G#*|YۏU]k̜l`+MV^ZJ8>cN%s=zLH0s󍥫1hctX8WP-;V7eow5g%[֫`؆(UgQꚨ$@OŰn5BxVJtfk=έ9;3GhLq]I-\soq{Y%S l;JsW{K9G^1 }~jEG>xt9[Ս@Q7{OzJ{"9Rr.8mj}:Rh`Y XpWqꌍc5Kw8&4$sj%ʼMyra8W̷I\vl+$X]Y٤xUncuLbZ=ܪI\X|+LSGm8y" POr^¶fʹ"I*hhKj{Un~`/'>"$p07DCMꯝ Lp)4K]q(p|_9Du8o1#$hg ,h"V,Tun*p%?=&ƍr^+Cm`FݎbKτ=&72΄3B6 BLx[!aiS$3GpRęcVV[(oALNv.2{ HPYh+l+Gb.@RI >GAw]nBӼ[y ~/}M}E^i}[Z34Z[e2݈= pi&!@"%h,Y4=*߯/%"OQk>usz$[^\)?8CfoͽDQ@E'%rHH2aFXi-9XpٙȐ,p8GBz.g}!oGHhbS;(ސPU6;Nhw8(YZp\ iM{/c zM%Fxg|"rkIރ2Nؚ[$-A Sk.DzKOO|mRJWr&[H+Y[-|W <{QO\kJj##?ʮ< JC|7{~q5-ke1L^)hٹyofڂIpu?|ԣ^utޖm]-Wjߕ9{m XGiF]JoY2@ڪS@C(7)T ฼Y`j-[M= m_o_Zp16X MX`:`?k 0kzk:r=2=ɺ(̣V4D$?%~_i[.R|oEiU(۳N/-ޠ /؞P5}%Za54AZ(YmFk:$[,D[3՚wzJ?p#i4u(W,YnL9֗?0ʡyjvjY5[Uazrfif-kmEwsb;:w*2Ff 845J[1p{ViaL+F턊APVlz <,KxƲuZ~z]5 S{ӿhá`0D{m-goqYwFqVI(>W5Bs7>֫}z6p&ykZ]9nW͜o$ |ղp GR@yE"&Wq18 sm8_DYګCZf!5 VjK ͍h mz{9J"?_t2Vf4/E֡NϸɌu4Ys }I Hz{Mpi/89;FnVk91 z{^sr|'9(t!ZLgHY/3zr{Cݵ9uZPc8r |ޑQ셋0[yM|骉8Y/_/FxƐT[;d<9F^d=Q[pGFH";l5A91x5lr(6QTFm[NM<)6&x( .(&n78{rX6w0.UΛBb`.yR n|ޖ_~&kLBEoQ[ah>lRv*Կ{&rwܦo{Wn|D_'>b :=}0Sw;bغ tf\judp`7 &aGu2|骠fRtot׆jU%Z3ok<0h|~<ЯDX4|jMI|`uM \/@Ӡ/Q эthnpr⍄`{h;toPb!_g˰`O# %ҔXH?@i$C,).bO%z'p{͓םG%JU=* Yyhz []-YǧMΫF#gYcW{Y)%?Y#_-`>X *!JB|# t@|#+\t\|^f_ 5r 0GSqmwK6w FڭCF1.8Ր/`و vkZ?oc!=؉\_ *V3+*X=`V}rhmq~z׆xLj9JFlPA`ӞP)GjZ]@<`Tr]~G*W'7[H6!ŦIňJD:5$7u4So-bS+'_AjKq,ͺ)cEcθ٭vpbg7e_8ur(3T9~JE& b&;.tRn)&8Y!UYɷ\ےޠ~#4hZخ_8RXb>qczԔ]o}NryG!'EqϾqqbPS)OǴS+ܒp8vR;մn["FzFE6,bX+v8 S9RT,%Z?"0$ YeΪ\|XFy*~8H}%G []jKY-]}"ڢg1H Bnְ;"| 6טy7ѴƧr?]P7;X7ꆖRZm7l\[iԅg9},O͕{MZӫ-|z.~`wlȷ0]z︤R2gD +tl% {"/6e [uQv)F!l +~E^{@Ӆ:` p'pfr 5 ~㚦R+e[[{@0Q8<\Y,| (%É}!jWfa~? M18IVw$Gr /_"Y'Oqs+f,e=ZMZ\,oe3)K:0 z-Ye/8g ZL)" ,Q̡LKֳ$ݨt5̧~I0j.1İF+Քc&[YV `7 C9!P}08zE;ӴyW4_^-_ v;*0~ s1*#_K,U|VKVl2;pPd%0|kR.!γ+0u,@;َ k6U*"mEEqw}mYQ姯[2)\"Mq~> ^oiba<8/n/ӕ=~_}?1QF;`o ߍ֟<^_v6&?^<|:|OV|J?peWn}҇)>_k<}|oy u|<L7tFzkggA{ 3i4ƣQf9Yʥ]lh~j;ʶden4A.$$D8a6(~ s/ yhM7/I8=mtv @icw.b,$M iXqL}P"$LMlD'JGIi<ʮ }~`HB$KhtC#N&:L&??|$8  ' oK1-B՗˩ Lm>ydh>P 0qћ3'ǭóPlw܌Q~<^켢[g?A!rpyto['g;oNL.pD-`0d7OAw Qẽq9=4DV[|H3K/t `SO[ ⧽=22bCJvLRe ι :=J-  Yf,]}Hz6,L1uTXYZˀ?p`u7G܀P<~G%Z[r\QS55}g-C ;SHU y{oV>NkC (VƅB.Xбf_ mMtQLǀ bTٱHb jbv4Iol ❲۩d?edwN*)Öҧkk]4ߛj`P!x`?:[ .] T֘$,3.w8QM N!F8p(c$q<3|t%>ӡZ0Q~ÎpR4ⶉK℘^4.HgY>nڽi @cY*,(q; % Qzeg}Mj8YZ$#tOR/,̯*$ [\ >@\nVQek Xk2QE (8gѮ8z;y TC!mg[2=3$YDDo2:UݪI2WCĄxǴ>_Gc4rJdk9W(p&y2ݏboUnm¾iS i{Ǵm1qԒv~Vܢ].ȘPXAzi`J[`izXsitt4Wt>۬T(0'w|~$LҍDwXSs7c5:jt0bTkDIqr.*)< !yf &%ej_Ƽ o NC\ܤ="4L iuNZ@m 6@pi}sfmePMT?:]VfOE#T[(. B!R\ףGpDQ!FrsdxզoJld5L8^rEI@| 熳:`m4JtƣeVN̩dU$n='Tf|)vj$4Sx$VT*D>R:Akד=KgxB}gx<<' Ialwrw*juքi]*z$(jfZ8n뼠_zl kw<џ[K-(J–{$}j*+r[Qcn b-0oBXO?i<]lDŸ`[#b vmpT^0L:EPg/HR؄&CuŻ2d^[;5xX0Ef<$ʰH1uOCZ,~ ;S#玝IT9,{ [X7MP틒͔3P oZ9ZC/poGS=~xp V;ӳFs,7uwUsVȝ +V`^HJpa>Zl_hhf2::s*e)E`ZkhU9,vDR]ph*BshN3vAi %ymm{g[؋[Eج(,ⵄMnowzvl*3uegCjt}[AZb \N¶rZj>7A̟kg+bUwTO[Ƌs[MN8eK++]+`H_Ee\5)ё}-2CX(OX79ڒ.S s@W{,jIʋA4fِ2~Tl܆K.t~GYE}0CzNdA7!\Izs=+"1.I@w*.ѪF2#"]2:T9AS>Y`E>iAmՋ ^p{ݢy\=vRy_sX=Xbdd>2é9KŋFFH kBn7KGu`P;G+Eiӿ͡P1U q@ɫCLTOV9T!HؖR>}Z{kH*N2(>ԂoL)TnjɢD216 Bmg9ƫX58MVr] cCsEvlxliPݧƣj`cQq%/ c(ڒ1cI_>7Mj}&uUic׫fs"}$dt˪{&r$a~=f9w 3' ;On'> 9޿U}TRm3^JRT*Uv_D?^txG6niZ3DoVTB>}]%I Nn#AWm+x3d R+,I1+cgѷ:9p@xZ)7? ݂.3<)zGnm(<\R$#2j/ůz *KKfqR`LALSG+pcZ*!.sJ #iIp,ؿ偺!T;R~ACB/)Y}"nQceg!9(;W8]FN^R11D8YigS£=eUS5C~n ֐΄E_{»89Yju@wLr:TƧF08vxstw7+UNIg?r ArUt3Pjܚ?xԓDV,DM:L+0P(?6Q&w7o^ o_ ~)r˙KiA%RA_$tV){^Jz 'aKzRyMC+ gH"BΧ R1/ >?^!קJ.8]Vn*B:Z,LT`:5=N 5μnXn)޴gګemH |y4q2wbYɯ{5T3"&  Jsؖ=Kx L M$b\23HV!2ɶl:y`wtqf29aؙk(}KO kvu=`N"LwskeN,ڭquW `jp_8 f(yTb،L#Zu0%zOm":}c֍:}\E\6ll,x*J0gr-aWd7lãY.*0ʃp*Nl=Y}* ()Y]lEykd0HC]c+!wH]f*hxg.7yyw0Y}g!V69Ϩu`fj)r/^}u}srh %J@Xy/ 3%PFܛÿAj.M]/*Sl<6b-X{sإceנ\ң~&~sC[hhsZ63ƍߥtBh& , B0NKyW^شt cQb3ї[fϻ3o":B%t0, 7U]Ex8q1Mz>n,.>f(C׿L"Q˰i/4#bV ܃Pqa4_,{hT$D#8zsBn-LzBe2-"-H<5В/]xKuˤQfz|NJoy H -$&?LFmiB\-ABr>g,`l$1nxE)EGG{_D_v;+CAja`E91ވqSzxѕ50sRCtW_nu+͉.{#*н %m&-u:dʯꉞC8wCo$:V0VKx!Q) Ly jiZ3#<*2*O}c9ؔQ"K,gWƉ=ZDuEiҰl>WҽXYrx4kY׬SW3Fh6+hŋ1f%勐24VoHI#t<4A_isk$38ǃmպqgG Y()_|uãW/U3uQƸ1ш,%\7x婸B8*dц?qFy4Gp,[ KImc+Vk%vg_)[[ {d&;&U|^Aĸ/ fs1,+&mrF7j9sni)R(Y0QO>ayx_1a0g.U%$TZqT1 \L,[0N]PP2jxEB3$02(69iLHjv"-e2f{rD^X՛J_4ոs"D'_{]O@LGڔR |ɮ=dxH _$dÐ)}@/ܬ\gx 28bX%ZPOxana_s s؊YI3Z'=?m6>=kp:$J׽xXa}WƺE 3\ɲ8(ax6;( 6 [ٟࣙ9U"]#@f&Z3>0`` f&,鳨P=V_@ |אָ0u2T0']qPS D!=/+xit>1+=8Eo~Y4e]o- 肦:B_)J0`uYmSowGdē|W [y~008 VP|Og \tV>-nZS6=|YPRPY OE9^]9* slmaCl)U_V5ϣ_~CQ={ ٢huo:Xik"ڒqݿ[` ד "οN%Φw(6LP⢞BV n4AU6CK~\*A]jt0 Dw8NUwj>