summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/python/python-native/multilib.patch
blob: 0526031ada843d80f57d873d00f065da90e4f6dd (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
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
commit 248279e54467a8cd5cde98fc124d1d1384703513
Author: Yu Ke <ke.yu@intel.com>
Date:   Tue Jun 28 21:21:29 2011 +0800

    SUSE patch for the lib64 issue
    
    see detail in http://bugs.python.org/issue1294959
    
    also rebased a bit for Yocto python 2.6.6
    
    Picked-by: Yu Ke <ke.yu@intel.com>


2011/09/29
The python recipe building was failing because python-native 
could not handle sys.lib var. sys.lib var is defined in the 
multilib patch hence added this multilib.patch for python-native 
recipe.

Upstream-Status: Inappropriate [oe-specific]

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>

Index: Python-2.7.2/Include/pythonrun.h
===================================================================
--- Python-2.7.2.orig/Include/pythonrun.h
+++ Python-2.7.2/Include/pythonrun.h
@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
 /* In their own files */
 PyAPI_FUNC(const char *) Py_GetVersion(void);
 PyAPI_FUNC(const char *) Py_GetPlatform(void);
+PyAPI_FUNC(const char *) Py_GetLib(void);
 PyAPI_FUNC(const char *) Py_GetCopyright(void);
 PyAPI_FUNC(const char *) Py_GetCompiler(void);
 PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
Index: Python-2.7.2/Lib/distutils/command/install.py
===================================================================
--- Python-2.7.2.orig/Lib/distutils/command/install.py
+++ Python-2.7.2/Lib/distutils/command/install.py
@@ -22,6 +22,8 @@ from site import USER_BASE
 from site import USER_SITE
 
 
+libname = sys.lib
+
 if sys.version < "2.2":
     WINDOWS_SCHEME = {
         'purelib': '$base',
@@ -42,7 +44,7 @@ else:
 INSTALL_SCHEMES = {
     'unix_prefix': {
         'purelib': '$base/lib/python$py_version_short/site-packages',
-        'platlib': '$platbase/lib/python$py_version_short/site-packages',
+        'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
         'headers': '$base/include/python$py_version_short/$dist_name',
         'scripts': '$base/bin',
         'data'   : '$base',
Index: Python-2.7.2/Lib/pydoc.py
===================================================================
--- Python-2.7.2.orig/Lib/pydoc.py
+++ Python-2.7.2/Lib/pydoc.py
@@ -352,7 +352,7 @@ class Doc:
 
         docloc = os.environ.get("PYTHONDOCS",
                                 "http://docs.python.org/library")
-        basedir = os.path.join(sys.exec_prefix, "lib",
+        basedir = os.path.join(sys.exec_prefix, sys.lib,
                                "python"+sys.version[0:3])
         if (isinstance(object, type(os)) and
             (object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
Index: Python-2.7.2/Lib/site.py
===================================================================
--- Python-2.7.2.orig/Lib/site.py
+++ Python-2.7.2/Lib/site.py
@@ -300,13 +300,19 @@ def getsitepackages():
         if sys.platform in ('os2emx', 'riscos'):
             sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
         elif os.sep == '/':
-            sitepackages.append(os.path.join(prefix, "lib",
+            sitepackages.append(os.path.join(prefix, sys.lib,
                                         "python" + sys.version[:3],
                                         "site-packages"))
-            sitepackages.append(os.path.join(prefix, "lib", "site-python"))
+            if sys.lib != "lib":
+                sitepackages.append(os.path.join(prefix, "lib",
+                                        "python" + sys.version[:3],
+                                        "site-packages"))
+            sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
+            if sys.lib != "lib":
+                sitepackages.append(os.path.join(prefix, "lib", "site-python"))
         else:
             sitepackages.append(prefix)
-            sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
+            sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
         if sys.platform == "darwin":
             # for framework builds *only* we add the standard Apple
             # locations.
Index: Python-2.7.2/Lib/test/test_dl.py
===================================================================
--- Python-2.7.2.orig/Lib/test/test_dl.py
+++ Python-2.7.2/Lib/test/test_dl.py
@@ -5,10 +5,11 @@
 import unittest
 from test.test_support import verbose, import_module
 dl = import_module('dl', deprecated=True)
+import sys
 
 sharedlibs = [
-    ('/usr/lib/libc.so', 'getpid'),
-    ('/lib/libc.so.6', 'getpid'),
+    ('/usr/'+sys.lib+'/libc.so', 'getpid'),
+    ('/'+sys.lib+'/libc.so.6', 'getpid'),
     ('/usr/bin/cygwin1.dll', 'getpid'),
     ('/usr/lib/libc.dylib', 'getpid'),
     ]
Index: Python-2.7.2/Lib/trace.py
===================================================================
--- Python-2.7.2.orig/Lib/trace.py
+++ Python-2.7.2/Lib/trace.py
@@ -762,10 +762,10 @@ def main(argv=None):
                 # should I also call expanduser? (after all, could use $HOME)
 
                 s = s.replace("$prefix",
-                              os.path.join(sys.prefix, "lib",
+                              os.path.join(sys.prefix, sys.lib,
                                            "python" + sys.version[:3]))
                 s = s.replace("$exec_prefix",
-                              os.path.join(sys.exec_prefix, "lib",
+                              os.path.join(sys.exec_prefix, sys.lib,
                                            "python" + sys.version[:3]))
                 s = os.path.normpath(s)
                 ignore_dirs.append(s)
Index: Python-2.7.2/Makefile.pre.in
===================================================================
--- Python-2.7.2.orig/Makefile.pre.in
+++ Python-2.7.2/Makefile.pre.in
@@ -81,6 +81,7 @@ PY_CFLAGS=	$(CFLAGS) $(CPPFLAGS) $(CFLAG
 
 # Machine-dependent subdirectories
 MACHDEP=	@MACHDEP@
+LIB=		@LIB@
 
 # Install prefix for architecture-independent files
 prefix=		@prefix@
@@ -97,7 +98,7 @@ LIBDIR=		@libdir@
 MANDIR=		@mandir@
 INCLUDEDIR=	@includedir@
 CONFINCLUDEDIR=	$(exec_prefix)/include
-SCRIPTDIR=	$(prefix)/lib
+SCRIPTDIR=	$(prefix)/@LIB@
 
 # Detailed destination directories
 BINLIBDEST=	$(LIBDIR)/python$(VERSION)
@@ -532,6 +533,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
 		-DEXEC_PREFIX='"$(exec_prefix)"' \
 		-DVERSION='"$(VERSION)"' \
 		-DVPATH='"$(VPATH)"' \
+		-DLIB='"$(LIB)"' \
 		-o $@ $(srcdir)/Modules/getpath.c
 
 Modules/python.o: $(srcdir)/Modules/python.c
@@ -566,7 +568,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
 Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
 
 Python/getplatform.o: $(srcdir)/Python/getplatform.c
-		$(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
+		$(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
 
 Python/importdl.o: $(srcdir)/Python/importdl.c
 		$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
Index: Python-2.7.2/Modules/getpath.c
===================================================================
--- Python-2.7.2.orig/Modules/getpath.c
+++ Python-2.7.2/Modules/getpath.c
@@ -116,9 +116,11 @@
 #define EXEC_PREFIX PREFIX
 #endif
 
+#define LIB_PYTHON LIB "/python" VERSION
+
 #ifndef PYTHONPATH
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
-              EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
+              EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
 #endif
 
 #ifndef LANDMARK
@@ -129,7 +131,7 @@ static char prefix[MAXPATHLEN+1];
 static char exec_prefix[MAXPATHLEN+1];
 static char progpath[MAXPATHLEN+1];
 static char *module_search_path = NULL;
-static char lib_python[] = "lib/python" VERSION;
+static char lib_python[] = LIB_PYTHON;
 
 static void
 reduce(char *dir)
Index: Python-2.7.2/Python/getplatform.c
===================================================================
--- Python-2.7.2.orig/Python/getplatform.c
+++ Python-2.7.2/Python/getplatform.c
@@ -10,3 +10,13 @@ Py_GetPlatform(void)
 {
 	return PLATFORM;
 }
+
+#ifndef LIB
+#define LIB "lib"
+#endif
+
+const char *
+Py_GetLib(void)
+{
+	return LIB;
+}
Index: Python-2.7.2/Python/sysmodule.c
===================================================================
--- Python-2.7.2.orig/Python/sysmodule.c
+++ Python-2.7.2/Python/sysmodule.c
@@ -1416,6 +1416,8 @@ _PySys_Init(void)
                         PyString_FromString(Py_GetCopyright()));
     SET_SYS_FROM_STRING("platform",
                         PyString_FromString(Py_GetPlatform()));
+    SET_SYS_FROM_STRING("lib",
+                PyString_FromString(Py_GetLib()));
     SET_SYS_FROM_STRING("executable",
                         PyString_FromString(Py_GetProgramFullPath()));
     SET_SYS_FROM_STRING("prefix",
Index: Python-2.7.2/configure.in
===================================================================
--- Python-2.7.2.orig/configure.in
+++ Python-2.7.2/configure.in
@@ -629,6 +629,10 @@ SunOS*)
     ;;
 esac
 
+AC_SUBST(LIB)
+AC_MSG_CHECKING(LIB)
+LIB=`basename ${libdir}`
+AC_MSG_RESULT($LIB)
 
 AC_SUBST(LIBRARY)
 AC_MSG_CHECKING(LIBRARY)
'fpmg ("/RPTcǖ(i^Oĩ!J+FԎN4dygTSnA *w_^ZG69ǚֹv _Y^$M"+|h!o7A3U"W6̴< OM&}z_#8-h r}HO2ǐE'.[zpUBXzZldY\Me#-z]3&gQVe`;/[BÒ+쿋@+Fdpl5S97ᦼʣnpBӟpv)BsIErHU3&,_:^d c*QK1ӎHwg *p^zW&7@$V|+;]/ҹvbuq񇋧\J׺T$ޜs%z8l9}Iա wͷsm =;~4Up7qi0h]/ZX3(ݲ 6`Х[qfh+p@8?H#IK]ʖEb4 [݈w4r%6 IIN10s\ LDŽ@JÖ ߥU.^٬YQn"Ytͩ|Z[j jέƖÝF_6XFxW)׀mQ'Ҵi O"v{ ՝h{&N%-z.f% O Vpd}Ǘr[o0r̗2Ҩ&fF?/2݈ݦrq0UD:F;!ɤn$I`yc`Wx^_Z5톧x*5uGzTCASR ua2W0,][;V/κ3û +ťntXy2e3 ֭*Z6ax̋TU(OxfwҸVDCi*Ps@/ravEQ]k9d'Z*J%8rlE3vc”L)gHbHH7E'$k3%t1)vB}CNٰ60֍//^D$I:Ԍ+RK;7Y(ڿYkwpF=kri5P@{XoE|vw>U-4aT -n11dS7"{yYR[8nbU͟/ēK+|gӍ~[_eٓ%/[ _ۅߩB'%MAbxǽENl1_(J%r_a;ծ$C3;?wt"ky;BV 8oIQsD t?BJVc:5숨o5wE_Gvinpg?nɦ|.V/931M21yd5s8pw"j^D? LSD=Cvb/W09*?>V<9R/UiM-QmsQ")p䂒DNYm޼銘M;{oGz-u Nj (x'&ڥ?)=(WDCgE; tw_2kGnG&]N~+a|a|\ (oyC ݝ+ bM!H E#Qj#dQ,NkzTmA~?㤭2&. ȟW9w9j[ckG1M`Tdf*k避R-]PWl6~xq\!L/UA[E"(`Thc4c-cHp(j_ MzSis=k?T P9\{4VO>g"zC !4%l*ir4:hn%Yr piz4rZE]4y8gp>裬3QZG.s!w4QW鼘 p 6 |˔|_jUVf9Av*h5[Uƚ]ThnVq ,Ь )F2[%/۬<(y\,oLX޹Ę* LlN)&Ҡ-|Opy2ըIrs(o<@,cv*h_2@4`"hIg> b#"|+4>@P(z@FIHstpLҏ]. P"ִU39qs@Wy+YbbWyy$>cG}kpB jE|ۊ$B8O\&.H,lNfjn!:x"XEJ>Y.)|:R ƲE#no=yг A0aIF6pRXP=_y}^ݳmwǶjf2M >7y0g:H֨*n櫺E nl&45<.gmZ|pco.#%/m-Y۟e~![n?|T.th?ΰz Y|8咞n {ˉ_WF!]'Ѻ.9mUg@?9PqzYzlh|koҟqFS DG^g7f#W WGq#u5i#LeBxYm[UoV!bFBt;u<6rNOFA4uaK{ekh$M`_]c`9cdj~fɘ=ˆvy0ʑG{޳}d~y5ڟ̼ ޯA2"yztO81h5Xd"ۉN*Jx1Vϳz0ENّJZ>,+?8סz@aےvAe;Sg~#?dZnq?iGʢFm^0aw$˫}O/Y>_|t׆ork P7' n5MfGc2s`^ÜZ-&/^ G/50JNJhyӽu޷ %o8;4 ͊[h7l\*X#-b\ fNsrp/r9;;?<~pH vDzdi_lL_:T3S>Lk>ԈP;YyOk6ϯ[R98nGռ0NkGUMW7WQ-ʚ|TU+rEEyQ]n4~|/pz"?+6;_H:ZRdnyGE\>Z5&ZK 2*[$g[\!2Orӣ`3惼!qki cy.i O諝h^C$_I:Myo#D{\Or7L;^ Y;^>2'OJ8,Iey4!EB3.7wfLpcf"#7RM?AXl;&O |iN&WBl"K:Fo2Bt2ByrĂޮ? Le Z ~jc7wb¨1`!\YԌqN[МAөS]["Afypx(oi"b;ݰZL0uώ\ȣD!U"4]`<`ڄn֎AčZ^O`B 1eְ+⚸v8w Gntip/e̻Ӳv[`|cu^wwT mu@@`߿̠DT\a6EJHj_uL, q(ȶgSE3/߂<v8zGdF7zA,8@s<v@hUg|w6k $I \5V!lxb>wp:?ѱS//)^ EmEEC ]:R6iuUvwk׉\$@`$ ~ВjH +g| wh+chֵXNzCOF0|^1oeYf|.o%0yD{dQ,'8"dCenlzi7>dA*7H㑌V d'n1G??iGgNN۲90zth?Pkny5AeO{9ac1NˬMy*Ai2d4NjFH涙]"|ˈlϓ,ou_x ~5϶=\%(G^pf9`PO]"iq+&(䏹Js ƬábZ'.N"2g7f]9)jO)}#a #z3'(hΘJa.=A;P~3VNQVPA}|=GtiqFL9?LHxz*Zmci49`4[,!ٍ}-/+,;_LRMhp.ISo@v:_ɥw~CMem+w I+y;CgYQ0֯1㖰BW_YʶwSْq+Q`;iڨ?4{e> %M%gY em E[/ 5~2zQYjg[\O#Eah`Du,.S҂I⟼=]y;UrH=y}2D8XROK,3ϦE{KpjoKf8/9~0R|!y xթ@}{ SA"7@V+3s7U)~i{ꗇtrk"Ŋxci)1TD%:G|QLa2~46I! #_KWV -meʤzPbZ7"P8\BwݦACNo }^n-p@2`W }2#EG$!Έ6Hd/_MiK_\haa3~s=}/fbgՎ//y]"U|؋Y YE\uLwU_&LZ~\.qˤ{ ZDwՉqooFgW1=xҮ9=n׳>;9Jr6rdF.ʑM#jv J32CX__ף>|3M |^BU@VOxd idmq&$jAhDcG;c Ѿ@.qà{}x_]hYɠ-Y٦B>*<~}+@(׺E)Fؿpw %dr:9m46n˰fGl gyk8&(Gϧ s|Sŧ24TPfNx+׋66Jz\1u&$J@~o,]AP=TP@Z,SӲt|Yz_~_[-O @ۼYh 1mkBj[-@-;p8KϬ )ўmg[յUc 'NƔfK9Φ/}&9?gL `zܣNR<If~qEۏ[/:Evo%27Fwnlut6n.+ERίhjJ:Rbjo.Cq(hx ͳx&y{\ɜ8n\4+^THrw(vK0-} VbswQ~X(S88ctUl s}*iE7-y`GmOM&gмzѦ3 gDSdN0@=|q[;u|I0(j,Gj%Ҽ)Myrau;,-Zc%Sbi<YAGSlʖ?gjjEkVL"_pRep;ƗozdqL):ss ZczxQQ:vf)k׻\&W;!OAHwǑ%d \9tDdck!7v4$&ͺr^+Cm`FS Oτ=&7*f572%-K6x/qQ"ai(#A8P*{mͱRV[*oWALJv.2{ &U,ppv;laߗPcD]&yJ()̝MZ;aJ\xK1H&*n+q<\<@ekDv9HDt5u;F>toa֧u/f#[.B=.™2>5}%yrGAR #G%Ӣe.XqK $^]_P7QNMv GF|`&G$HHmćDm4$"ݵ["cV9\Pa[K[sJcїgel->Ttf_lz|EV+r!qo^O4›$w6lx ncV=;k{7"dC.܊<I$ `40Kf턦GSdÂ$VMD[rTiM c130޾ƏJQXSlDqWsW >#!6gNTcfgU!Cp今8GBj.g}!T5FX䇳soHLL?k*M N;lHO]_b=,_-"lQ—&Ds\y$,)Q|;;*u[P2F6a}z0aZƒE@ T_\,s\*3q]5u|u Bo*B]6oeD.!qu}QӋ_q%H!|%RH}m/;MK!+42o"YN E>,h)3[ (]<{QW\+#Kj##?< RCAEV m>^yE1L^)hY׼`G^W#ܞmըWu2Ҡt=zK2w s!(m(V+U})T|dV}L/tMl9J ڮG&_n⯟l<|O~|铭qzy/ ɣG!rfgvAgϞ_n=x/+}?[Ϟ>}/_vG⌺DUn{_nSΓd^[h0ڎ|{Ȋ1u*mGU9e/ P"Qdw|ٚ'Ҟhp׼k8h 'Qsmml;S: oz`&LlQZ㻷{:Yƣ~t4'mE16U_a,g:rnE_EHD~D?>~w1atX+pvtK7$yPݗG?Byux,zEBnt{z~hDY ;{ ߠɜ*0Q<&ZbSoj]g9֠N@&{9&^q/| ov͍u"$ ,ݑk6X%;:C4Z~|`}:ף0 /!4qHL!R:Ң&}ז7y&lݡpߜ*K3veDv>{f4tbSәwTpq3JDʁb48㜯nkkz Gfѳ.^ :iS,qG)ɸմBIrW,ePQNN$ߞ%)U+7ߎ5 ePN#CyGӱzhr]vy2䗊C,W8d-`wNX䧝2bVǢu%>a\ccŒuIe2>ΚWHf ct: !NA-s WN[JN.l?]MȽmRxz@UP>^ztD}ŊHNɂ+< ·Ard+AR|iarqqBHB$78|ytC,\S X3`nߎ1cQk%;*)ODi7{OE02[܍3"YsMlDUZ.oPG,Czoy#`f ?l a1Z6^6 )bk8"CmՑfb\'!ʹG׃!"6`jk#8?>?2ē1h>D}%}!` J/]ϴkx%%}RzG>>g,1'Cs$/A|jGV4e9\*'GDsUD.FPUY˲^^$""n`eJbI5,L rA'3L!#|T 0il4[qcG=cV6yᓊqȰJ W#*G˧+yH\e4hvDR)w7^X1v{CDVTdaZlrApg+هDr^r6f(F%Bj|mH+kPscbagc5PAH$sv^_iy?F7*g U~9\8#(gsIJl17oJ<< i6nDMV1ؽ*8JNč{(ލ3W{ңTH{ԂR{AHE!**P[^_%kyR|>BcfY8W}#ZFvԧnfhAj^pʘ^w&,FGOS-V9b۵A_o2wǦh0N p$WL,7Z86u<GeAg 2?žZnHJqӿp_10Hn_ (юH#_ 1-s{#]=.tsTAkxR \^; T:1L>!5F2 ! ;iʭ1&V+s.t}G1,_s\椩+v2b όNPbJ bqt BNt f`Z<AGp1}tvN,*u^v~r6+,PK|w%YȬDY 4x] e/g6"-C6Sъ_ #Pu(_-s!0QnxhLABҎh˅^iWg\_x*nΪ^P5 ѡN 4FySȻu5QC֐NQC_H8MoG!V맽ݽuSO"9د 9Y9 8AJEw8|Ǎ`N 9(p 2NxDE.0D0V)D/*,CAApz'uO^})c&'&@y Obu#~k,Jl`mFh|+z$XFF:-K ή!'i>и^eKXv:. " 4AU7`[>]f۸s~`f_R3HD-"XYP(k$Зi*׽!2;+\uTdM6G &tzUʤ.*unr]Ia^4xv?8mG81z 'J-BʿW獆j>/w䍁x !HXǯ* >w">hgp8x :EWreزw;SꋎlD\ďu;MXltVW|y8A nmaI󔞆d.CF[jhtbvޟ/L9qu"t@6;YVȓN@>,72$}3vjf :l B@1F RܚCݴew*׋ ZUd؉)]ߗ^A NԢw#jg+J lA2ߎE/\"|9ע=Q8!@}b%&NU{_zwCK2-Q2;N9 \:􁸞72I|Kݪb rY/2s6W>GFKUnsl26O{V߳(u̒xVtq^# ?J\LQ4# >bpE-wZA°MX:x7lHs`eX?V̶ eA]"TpiMH-Z0SDeˮ/bSRaƉJx0V _D\ hիs)-afCn7 s҂WG2Xl7VO/EG[xÈhx7Uk=A })HCa+Roi޸uֶ<+/1}U!5){j,ֱpX f 1*cys5oU V=xޮ[tXTp+ !b<.r9>5YMQ"[N|\QDXm3֭E.h,7l+e[fCa)<K~,n"s SDʿf,0?B8Z^ҤaG`N]$]rwl6PP38LO''jXYR)yvlL;,Re9Aj7BBϵc6TZ`FGTU脀q隥as+ :jW!RTexϛ5S,]%ʒfV0Q_SfFCS|1*s)&zCuA<я.һ@}5Cۭ&R$H?;ŤeYqhB~o`ܜ)vYP Fά/vq̅u_&:k1R;5% 8M82 N 0x \6,~yXt3>3iEEV XMV=GjU% &Wte16Uˍ*l vnҚ %If,#P|NHPnt/_vߞwy2UOUnR3Q-ʆC̄ 6oG7pp+\BkMqvwzݽ+_]uNSͣx; aqpf-7)AeUt {v-/S@VF~PrꗂNm#>d8gɒZ8߯(^%&ȕH5<206ozϖLt3[V?x{rz 8z-*o x_ɧ8$tR?89xV_ҲװI茆Ái;l XwpCGmv|pmgN{X>]Zx6au+$B}ѨhoJ >NS6O3{-5pٝۋٴXUx$`llgoKS!Q9pi8t̒YnΒ6ghV7ya`0#bķ6uMwƬαH0k8Ii4ʓ"vrvt i(qm 8{q/Rx9$EaфLD%ZZ ϦKXӊjˑ+;֛N1ղ+c'cek,a/GcPxp‹y>{&װ UFARck_dᖼp/:a-cz)>aTΰp<}~ܚ ;e)R~f%C‰ yZ܏H0.!.es.SRTft2WP<|~馽 b5yT4qF4Gl]rTskHg_7'oOY}{ǼP/^^SOlKV Wdj]r0zNo+z.P~޺ kHèiߙis<8Đéc?j^FӔ28xz*96F󛊉i aLA?:To_Kpuϋo@nl=YNTOar 42wM(n~[bP5K\ݷNT.2d^c6jėKek 0| y/G$jBck[s,vSWշ͠{!bcMHNQKk-j¬vLk`yvhw/[/ږE=!\~~r!3pZs,57J]PnbUn:bsJ ) m 7M;*8Z@vjr%yr ^l. Px.fBVǣO9:YrIlFuG^K:~KW*MCǖ UU#eGRtf58-h`*\46bTHQ=an +bX w+'',a1j\T XOxz©h(YUCVwZY(,j,bGq6A`{Ec2y rd% {Q[c!!E ^lq%ޭ=[" YA>\H6牑RpexWlne\aXi_CH;GM7#U$^2=+FQHyb>H!OwdYs̕Km0+"@lQ;Og(*?cdbro283rywwɜWXƻxp'pe}Z2bPMVkp]XSJ+JIKv/&24NM^" i nV?*4T"Aug?gЂI?xҮ>/^V1\J+brP^.#>bNf2:n6*KtⲎXSk/pQAJ螋'&q>n8Z=^^,MUprpW+\/fϛjه˼;Obk[ &zlOfYp{Rgi*hN9*ʕg}S1"R弖oBUM;THY 9?ء@gq+ΆM'@$uQEϨp ¹L`fItIoaW0{ѯw\wٷIts/3w ^!"P +5Ƨ0 @U&ؔT,@Lp"^\m1؇QW9u k +,hd^[gQZ+ljƭq\ W48?Ǥu+;=>jtj+cw2a'\փr4ړՔeŇQYri4#~T'D?]'F57mCm0bG?|i&L+67o<)|gG<{XDߟ[*?)oVNY9Y9 X~9' =6ϩmdRX&*ӻư;=S ~&uP[o|ybu -(hp]Q10hUĞN'MĤtݷ zWD8EGL+7U1*g#%P`ڸU[Dx @'p|v~| \z*$~ a-sqlTCNkrԧzśf6%||~>QnxǼƲnX>dKCV})QsFxP(h^m-+ƴ Xg' ݬv&dU6\e3-4U;y+(jg=øMIXI ةۖBA[V@C"^Vַlk}Su1JB :M5IKe'* fOE5R`$cT@P׻k79 pf@uیŚSEAh׽RՌdxʑӵ,zcQ!U a3uyܘߦfNY5`tֹ? \HT ]e|n;p,n]˥+Fc-nG[n_fc+!o1sG:a؅۝{pw^%kuIp3slاǦ{\n w/a>t2wh^0P#c[Ln8 ^aL[j̚l@~MI)i'hFQB|n$](X۲WxXϚusF(w'{/.Ҩwi-w#NО EiD ĥp$#0"KQɝ$w$ѭ:):8y014~v4O&oc݂-DJTdٸrjC3jbqu^s, W^-Q2 .ͳ0ru "[]\ӾwTj2ZN' LF2䶊W8ײ! մ՝(ȋ 0N;V5 "MUtEeEЍ-+W!hWq> ه6`G9 j` *mVƺ%" !0q1l&\5$XnWbvDmyL$ʟ ꎈQoGT$`K*P,-+la}-G fahcgوTEHymX% !Ƹ*^8L@;eV)lƱdGC?q|ٌ$nsB+@i*up?lEi Ip>as GOK zTǧI,f8he1jse5 ,@[>/$QaOv1Z:Vȁh0XRU.)z3YL̂?缘WHAŞejq &դ@uU/OެG1.^jo /, (iDF"vV ދWߥlj~K9s}\]R.F+56dhbk S .IRwTVZ/g(o _T/4ezPTD=Z,zQ7yqӻVyr-e 4K"P9%!{v+jsE$Z2P֕:jŵr{:ْ^E24֛0%|3Q 9b;a ۴$r 9JsqS)5,~o;9 kr T:-#ggJuf-F1[bʙXD◚k Sw(5Dp,g;F?<;oyZN9RXSr:w/Bq{ږi޻q)~v_a]+;v A3Glw]ˁ!:mͲ,2PA~i}32qmGPj<i1j!8,x>6"9z88gN/z^X1IKvCV/Zh= vrS/6fShGwQ{^*C  V:U:ĥX{fEnRꨮdt(TqL݁Ƀ'C&EZ+'vyKW8_9e,QU 81gto oh]XT{ݧC^mhMZ~J/ ayV@em}Gw o;4˪mmFQ* s3f_>Ǎu1ϠW:eDk^IV܍nGAz‡YTčީ*w+ީ>Ed$.,2ડA˻N9D:V$e{&7 Qfton<bễܒM2jfe `.K@Y:p'Z֟K *okvNN^wON??8= I6,:W"*g-Z~+:eM4Uv$K+o]o1d/;yVL˚;YY5wѴ( e>wyUmz S=Ҝp4x6眞@I^:Ui\U;(J1M0pQe%h\A tkJChv "]Ct4竒2{azq$|'ze_GRxB8#~:ҳc?y?!7,-Fʹ@ Lprדg&Y͒c_lCl|eE<~XBS\#002ֵfbF۬rrz ;Z:#?0xʋb j+? U0И0-,aK 3Ԫ!hZ{I #% h^:3S^N)ϫˤ|gЫ;n#áFOrvM1wj?,ͲrTB6h TVp}wH"QP,Jٶ)UW4̦4Ԁ'*arkp<|\6ypfH.aiE*]1丹wU$KrȼpxoHJUA6z)Mo[ԍm D_/ˁ̥V6s4>jCLt:%@ɂJ˗w ˽L]Tu{c=r΢-WX wL%Җn'yaxJϞyLZ~8%+c٤ٵsl$ΌDoK0lQ{TJU>素M!\}a뼢K)C_OU8neWGݓӷjj_7\Joi8b: GSLI4VLH=wϝRkdlp"ȼu;R\59??Ջ!h $f܆IbۂeKCMcon.:&cghB{dm;MV4d: _=;ˢ}=YH~* g` t֎.0zp46i[kBM?࿔!8J|J/.`rCS[Qf\tne|?geӚNMGEƤo#<ڪhbB>-5.`G0˅J:kGK ڒ"!^_C)2U8qVHׇD|%rXsy”nT/۪喽ڶ3 !gyv2ϊK.WJz0 vw>G?vәIEg ڼme}YEؿѹotd-Ql`eDVxoaK]l( Psޮno`4,SK4CQ1ߚD'M?@wp!jqտoyݲ2 >5@Be[Ӫ3;tpe8y' ,j^Gx(|ؙ&Vhԉs<d*OےOIU$GH=:"12lSu[! `GBa^bW+BdUWš{v́_آ/*}rPYW#hA:;wzя.<1PkT'JO6B|T{3zԀ&׫(+uV1dUF15ϗ.`]\c"*˗ovaCZH50h')MtkP%ZNҶt=["oRSG*2 ђvy@r@HOg얊l^+ӤOg7rjQ>јg ıbYN^Q3Q^"5hV jj*!7,?5*tacK-:[qUVic^^(D xӷs/^'V'HF3wC4qm5g~ "SiQaaT$f+FXҌus)kR%qTz7_ḶuP Yha:^ [ꦓG[*o] j;xRy7iv -佩:\pVU+Y9}U'Lگf>d#Y^Ϳ,YLQf +G/ M.s{oO,P^1 `8l ;gOM/SlQŐ}إ+.?3ЯCǹ,,qswT*PT""Kr ޶hwۧmo=/:&t3KEbkz+:-^_*(Te$>>J&d0H}b#ן'6?ӯH>>zzGtפ3q}ٳ'>Ϸ67es}?[ϟl_ x=RP*w| ډ$Ob^=SsO[]@+ LUqDu%h?nvZ0W"iX=n XTw/:\PJ`{'fL[ِZ%VQUzD\ x:C5:|t 2H돀x\`NjWc C Brv3"9Ķ(hwi<(`>E^Nt:_axgs%e6^e_Ti|2K$ȧd\__&N\igт}4ҝ|2<ޤ6@Hj?dE3j2 Wލ"1[ۍuY,{W Ntֿddu觳lty5BgkE[OzRjmt5;v" Zf8&H\~|&q߯zg7$7OҀ0a|OEA+z@;Vr8Ii4YL2߂ۻ!޶$gmn_ëv4}lb-t  Y5<ϳff/{Ւmpzxzw=?R-o5,*x2g(7Aqw) 5OG[sjOo3a9Żg1$.FzqeƗ1 z Bq#oS 5`@m1R婏}iy'%/zsɔwlHa6 "k 韵t%0 UcW"} 6V:wyAroᾙ+Ys˂0o;&NUh|2aM,h~wL 3LF ǡ<*SZbOނs`^)P&yLӖ66wmU6!\q3: ?\-T.Z*VGx=f dвjQ-^;bIpf#rٹy(X\nQNl1<0%Ήtrjp~./O#*9{y->1a&U: F5kB8Lpmk؍?\v*G5ۆ9IUDM%O*+:N<gnfc0E|Qgd3qI>}bi]#X(>C T}q`")@dCc.w ,Gg(7]hs`qx@KvqT%)I'@Hð̖72l _ - Q(ȠB[.O,qsX5qVl+`o* {o |0M faȤN=z_P߬Å֩x A3 ]83ڳ7U6'< ׁ`'v\S'glLq&:;?>99w4][27$oB,wvpf@󉌹7c"f|qyxX; ud;h.)G6}z2z2'ɖRrṴ2Qar\p SV&Kݎwog"k 6;!60a5$6_I/}GYs[~0qeH9udN>#ralq  W >4,ϛaQ{tPMܢ׃`?=+oY;ԗAktz l,}䉢 xe+,gNFKX!D,pG% })HH6MY$V65'>rѧJ܊;)@>8yrt4wy Cf%[V4C;Y -9x}6 yT^XڞaUmW,bhS~L {V8{3'K*}Z͡ҢJy6jbxVY~|Uv]K:Uw?$7T-Q߰iثdG VLL˧k'֟/y˞0PG%msy יPfˬ #>N%5ؓ8NNi9<=zbhm:v߾:|{xc 5%ꜸZbə:-abEٲV47>SAM}?̍J@6y.eJ~Ic'aRa)ߪxVm 3%@ot!˴G bT347jt)1 ͆)s~>$FƘEInA݌VMcAY&Jòp#讓|^lLNBQF䩷,03 v cD^#wO8jg3ΈaaG{_ &!pPnHϘgu#`; =jfTtPT [<8^>"6kd[~w b+.8f tH6~^O5Hb;:԰pZ.ri_AoFϗǁV<~dkhg 0|v~k2'ڶub{ףj;zM_y2GH4S|v4Q50zmV{eJɏxL(WDc7R-k4Z\b FL㽨6 <#Ngw1/iA\&+L?P|)KtPsC V$LL#AȪq\uc\NFLitsiKDnZ6ȴkl61~ M2g:ί0A.$7tJ|wǗwzE+ш`Q 9T[3Γ l{qysZ,>>AwHgM cn%XV^By,;qX]%qDM&T$_B#9L[º6 h@bF6}E{WU=~w1atXE.W%C8oyC/H^ۃi잞;=Nޝ<-MWfh4E[U Q1T5CQ/̶p_pO7P<@DtF &^q i%.Txmlmnnѹ;9dE5Ǝ z=5|j{X`P5Ϻ 7Of䰻g/6_?~1f7Q\v%fmg1}o:~2MFe[. @$f^.f1ԤHI8U!W.aPwk^/YDhJBMuS? hA Q@x5Smp%Pv24yD5Yi$~}ڶnK&,F\O뼍:ѨC@x%tSyNd D Y<1ƍܳTP®]5+%i-V~M F4oL_5_?]<>4lT'>*@vNDDcq~pw9M$iߝ_Z.:^N՛Ϻ6@Tm[fU$9hff.Ӈ K*)V>_K_znnP[wFJ`f$㪽&!q6la{9UTK6ةR'!@nHeR/Lax436ͦo+Wcة[>)gP 92g p"S+vWEe݂ Z $~K+n*ػyiCTIm:5l:'˄QpD[渕 X/ݼ``OndA:4zCr x  =-%]D(4"w2dnq˧\A!rp[sؽ˴%Dс .ݷgPm5vk7ʮ>\? vK^"D# jJ9>nDTbkIJ4,7.lt߸Y!pip ]p-KLٟ:妌Zp[m5chI&:#3l4H]D:ńꫯdS9~B"pa̸i[[=#pq*lq4)@h]]'jUϤnWܚdc=?m󷿿zngU?vUxRIi<O#C3ҬG]EބַV2shI,⍷* $_upX80'}tn?9$_m+xܖyڱܴMQWg>;tKf&*W؍|LȷtE>8$\9+OIy]2KV/U y0[+bn; uGxY6{"u-rNj*0d /8.(U ɳ+ ޺$Rzv'8j'<@&>܌ `ۓVv67c.V1V:g|1KO0qnp=ږ݉6+́^IⳊIfc|(KOS䈕iWp " ;a[ u?W rf}7!ǝǍ5*Ce+m8.wPA3 #7Z׻f^k%oǝ v&f[s%؅c-z{|~m 9`TCo|/Nmu,$.o 8BI˔%ԘUIĔ_)"߽0mdY=L,)ǖl!`%t!dnvش &ucP;8g y$9`|fn .!s6Mw,9BjM?RFOe]nգOoc̱HR4z_ftoZ4T^SH9[#fX_mN{aaWf ˑʵ|]1,~ѮDGG_Ub$L&EV<3Lz4=YrH;_cpoL:k'l{z$}*j O`r(ul¨ƹnkOV xKy?(n,)|' ОU+fK"}Yd Tw\cpaZplyWf4xO|,!B8ԑlhANm: j\>e<.xHN Mа%zu;u=m юRؔл˻цmYp\77i/ox:\!OFMM^tXRRC\=x'#=+UC4t-w/#B $^Mcve \M'kMO n:AGŭu⺫U9rE`HM:N1ՊG[/!ȭc/DWSB:7&[kJ.dD9ٵ!yfو!%G.$ {No&6Z;o0Oҁ~Jy= H'+A- 8]e)rLޜ"}]G~ʽ2ρ<>'ЉCSGr3^5ƍl ,~MQ(!uO((4qI>y3T^)** .Pw- X}e^%3DGnBJLe=E̍_" #=x 5-]T+M3b!Ԟ(8p@LfkxŁUm\bb"LRKJBѹk$õgW9RZO'*9)p'.?s10F@ $Pxenm8/8>],,Ŝ%p'ތ`P<,ww9Qu:Ynĥ%X nRyq/-!e+Y~K21±I9 {f/zr^|Vev;n+mæҍ v'BW :ua:yQVoѻRk|~vGl0kA$_&v~Vﳤ'.r1V{p*7EG$Mbǻw\s5GG_pwz[pcܱmÜHl QKa.l5N_U놹weM?| P-6_hkmj5xM2mhJњ;Ӻ/Mg&nz委t`pZO_* 2LAX,ɴR8f08&ȺYh: 17l]lmo 6;KtH"%B"̓yu{s&'2Ӥe@qr[RZ7xQoKR):V `>}.:aA`PB(D%PM>bs8c; "d3,"/ͨ6-7裖k+*&<-^߭MRm0e* ۩v#2S!L5 +;쩬P&X>u[Ue~ϊܖldE8 t=1`P8]4me{߆O%Vh}y6n]]EF! 'V#j]8*FǬ.6]l {yAC EFהy(T+HhoTyM6@a m}Z{mJ7Λsx^K3eP zg]5l޲ 5<a3ccHqR|FL( j_5 ZϺrup:,pڅ@1vo.4;Y8;*\p a{*Tv4.]c8& 8]B k|ܚPU=[cϛUa;-pi@h.,6Fhio0΄!6Z7K?_%[1W_]Ehd3!eV=~6YJF'"ؙ(i[ ->AUoWorf`NN?]J It)&5%j#T{w3ʡBj!B"Xa*~xNnн/ SeA][9c)iuU:1.EW 2q΋pq !,ok퐴PڢR* ˢ.Qq:ؖMGkLhf4RY*py7mn@*ot3^r9.tIQ4GNm][Μg7$a62A3Ÿ~~ŭe|z j_pHmi~? 0Lv8;2ݪ z_PtzA%jTfHߗet껏s Jc@A v04NgW 鵥k*dx&{L[{#lteOqU{o|X؎xqa7hp]{0h`*(yq3Q C?IX Ґ7ێ5Mx `15]!l<Kf68WEUسf"##C{c1jGEK 'Ϯ+]2inH#m V f=؏9jqD:JSNm-jC<~k.I[MA}@.NZQ/klOD݆/ZןgA T[Z3Vix4Z\;d,טhm?+7=de.X7|. GWbʁwnlBVKM%s,E8Ajj3 iȓlP-uO DY BC@04Rӷ;fݔ!Z3ABt B46xjlw;LmCz( c핒.8wkӕN,PtfM܈6њi#Q^`b7[w6555>o4qUZENi$2O0uy<#ȥ7Fez Q[LkF-TPx}~t&H\)0V&~.=L'0B)ޫd8_Vѐx0X&G RiE6Loh .&=pZ=>`pÆIh 04lἺqF1Û [W5БS1ݯI4OO!N8@|+7cu5P%hFK|, -TXSA'+lpS2N_ C'/]_:+_r~E*dexܞ "wz5ZgΔSzU rh%YPjI`Pq ү]f*m#gbxJuG QCn /K$})pu:d/K--/^ɀ;| vDFZQ? wq'tͨ[aO_e;=_v:"uYÿ'~H}w׳1X!H'kO?>B?2cBO.d>,