summaryrefslogtreecommitdiff
path: root/classes/autotools.bbclass
blob: 1f03825b928454de5d58e4bbb34d8728cc488081 (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
inherit base

# use autotools_stage_all for native packages
AUTOTOOLS_NATIVE_STAGE_INSTALL = "1"

def autotools_dep_prepend(d):
	import bb;

	if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
		return ''

	pn = bb.data.getVar('PN', d, 1)
	deps = ''

	if pn in ['autoconf-native', 'automake-native']:
		return deps
	deps += 'autoconf-native automake-native '

	if not pn in ['libtool', 'libtool-native', 'libtool-cross']:
		deps += 'libtool-native '
		if not bb.data.inherits_class('native', d) \
                        and not bb.data.inherits_class('cross', d) \
                        and not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1):
                    deps += 'libtool-cross '

	return deps + 'gnu-config-native '

EXTRA_OEMAKE = ""
DEPENDS_prepend = "${@autotools_dep_prepend(d)}"
acpaths = "default"
EXTRA_AUTORECONF = "--exclude=autopoint"

def autotools_set_crosscompiling(d):
	import bb
	if not bb.data.inherits_class('native', d):
		return " cross_compiling=yes"
	return ""

# EXTRA_OECONF_append = "${@autotools_set_crosscompiling(d)}"

oe_runconf () {
	if [ -x ${S}/configure ] ; then
		cfgcmd="${S}/configure \
		    --build=${BUILD_SYS} \
		    --host=${HOST_SYS} \
		    --target=${TARGET_SYS} \
		    --prefix=${prefix} \
		    --exec_prefix=${exec_prefix} \
		    --bindir=${bindir} \
		    --sbindir=${sbindir} \
		    --libexecdir=${libexecdir} \
		    --datadir=${datadir} \
		    --sysconfdir=${sysconfdir} \
		    --sharedstatedir=${sharedstatedir} \
		    --localstatedir=${localstatedir} \
		    --libdir=${libdir} \
		    --includedir=${includedir} \
		    --oldincludedir=${oldincludedir} \
		    --infodir=${infodir} \
		    --mandir=${mandir} \
                                --enable-mainainer-mode \
			${EXTRA_OECONF} \
		    $@"
		oenote "Running $cfgcmd..."
		$cfgcmd || oefatal "oe_runconf failed" 
	else
		oefatal "no configure script found"
	fi
}

autotools_do_configure() {
	case ${PN} in
	autoconf*)
	;;
	automake*)
	;;
	*)
		# WARNING: gross hack follows:
		# An autotools built package generally needs these scripts, however only
		# automake or libtoolize actually install the current versions of them.
		# This is a problem in builds that do not use libtool or automake, in the case
		# where we -need- the latest version of these scripts.  e.g. running a build
		# for a package whose autotools are old, on an x86_64 machine, which the old
		# config.sub does not support.  Work around this by installing them manually
		# regardless.
		( for ac in `find ${S} -name configure.in -o -name configure.ac`; do
			rm -f `dirname $ac`/configure
			done )
		if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then
			olddir=`pwd`
			cd ${S}
			if [ x"${acpaths}" = xdefault ]; then
				acpaths=
				for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
					grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
					acpaths="$acpaths -I $i"
				done
			else
				acpaths="${acpaths}"
			fi
			AUTOV=`automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"`
			automake --version
			echo "AUTOV is $AUTOV"
			install -d ${STAGING_DATADIR}/aclocal
			install -d ${STAGING_DATADIR}/aclocal-$AUTOV
			acpaths="$acpaths -I${STAGING_DATADIR}/aclocal-$AUTOV -I ${STAGING_DATADIR}/aclocal"
			# autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
			# like it was auto-generated.  Work around this by blowing it away
			# by hand, unless the package specifically asked not to run aclocal.
			if ! echo ${EXTRA_AUTORECONF} | grep -q "aclocal"; then
				rm -f aclocal.m4
			fi
			if [ -e configure.in ]; then
			  CONFIGURE_AC=configure.in
			else
			  CONFIGURE_AC=configure.ac
			fi
			if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
			  if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
			    : do nothing -- we still have an old unmodified configure.ac
			  else
			    oenote Executing glib-gettextize --force --copy
			    echo "no" | glib-gettextize --force --copy
			  fi
			fi
			if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
			  oenote Executing intltoolize --copy --force --automake
			  intltoolize --copy --force --automake
			fi
			oenote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
			mkdir -p m4
			autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed."
			cd $olddir
		fi
	;;
	esac
	if [ -e ${S}/configure ]; then
		oe_runconf
	else
		oenote "nothing to configure"
	fi
}

autotools_do_install() {
	oe_runmake 'DESTDIR=${D}' install

        for i in `find ${D} -name "*.la"` ; do \
            sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i
            sed -i -e s:${D}::g $i
            sed -i -e 's:-I${WORKDIR}\S*: :g' $i
            sed -i -e 's:-L${WORKDIR}\S*: :g' $i
	done
}

STAGE_TEMP="${WORKDIR}/temp-staging"

autotools_stage_includes() {
	if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ]
	then
		rm -rf ${STAGE_TEMP}
		mkdir -p ${STAGE_TEMP}
		make DESTDIR="${STAGE_TEMP}" install
		cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}
		rm -rf ${STAGE_TEMP}
	fi
}

autotools_stage_dir() {
	from="$1"
	to="$2"
	# This will remove empty directories so we can ignore them
	rmdir "$from" 2> /dev/null || true
	if [ -d "$from" ]; then
		mkdir -p "$to"
		cp -fpPR -t "$to" "$from"/*
	fi
}

autotools_stage_all() {
	if [ "${INHIBIT_AUTO_STAGE}" = "1" ]
	then
		return
	fi
	rm -rf ${STAGE_TEMP}
	mkdir -p ${STAGE_TEMP}
	oe_runmake DESTDIR="${STAGE_TEMP}" install
	autotools_stage_dir ${STAGE_TEMP}/${includedir} ${STAGING_INCDIR}
	if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
		autotools_stage_dir ${STAGE_TEMP}/${bindir} ${STAGING_DIR_HOST}${layout_bindir}
		autotools_stage_dir ${STAGE_TEMP}/${sbindir} ${STAGING_DIR_HOST}${layout_sbindir}
		autotools_stage_dir ${STAGE_TEMP}/${base_bindir} ${STAGING_DIR_HOST}${layout_base_bindir}
		autotools_stage_dir ${STAGE_TEMP}/${base_sbindir} ${STAGING_DIR_HOST}${layout_base_sbindir}
		autotools_stage_dir ${STAGE_TEMP}/${libexecdir} ${STAGING_DIR_HOST}${layout_libexecdir}
	fi
	if [ -d ${STAGE_TEMP}/${libdir} ]
	then
		olddir=`pwd`
		cd ${STAGE_TEMP}/${libdir}
		las=$(find . -name \*.la -type f)
		cd $olddir
		echo "Found la files: $las"		 
		if [ -n "$las" ]; then
			# If there are .la files then libtool was used in the
			# build, so install them with magic mangling.
			for i in $las
			do
				dir=$(dirname $i)
				echo "oe_libinstall -C ${S} -so $(basename $i .la) ${STAGING_LIBDIR}/${dir}"
				oe_libinstall -C ${S} -so $(basename $i .la) ${STAGING_LIBDIR}/${dir}
			done
		else
			# Otherwise libtool wasn't used, and lib/ can be copied
			# directly.
			echo "cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}"
			cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}
		fi
	fi
	rm -rf ${STAGE_TEMP}/${mandir} || true
	rm -rf ${STAGE_TEMP}/${infodir} || true
	autotools_stage_dir ${STAGE_TEMP}/${datadir} ${STAGING_DATADIR}
	rm -rf ${STAGE_TEMP}
}

EXPORT_FUNCTIONS do_configure do_install
7S/zcʈQl, R?<#D a y*qKCca [ZD#a"KOHS6D\FVLJy?M& EK㿹ObȃŬO IZS fP Е*4۴\:w`F#}!8En" jmU಍FC-qkГp%i1jg!ě#1H Hk#5Č%rrJMAh#))V؅I"p]Kb G K0q2J@dcḢ#F!# ІΨ3tߘ[hF|f*=G6,_FC&c'] ^uMf FB?,д0&-AyǥMMc`a< ֓Az N4,; GG=%K'.rDfA1fRTg`,StF|mE_-64N?%)Ps#ehn*+`{IBх8K&raRqVyR7,$D;Th!0,IђQ R1֤=LJ%`9BA]:^Q 46pN]\AG86_\ h(@(03 K>m'H.A"R(=8Tr$O Ժ|á㬆akS†!Ȋ# y"Q`0匤o<(LIMc !\6jpLIGt4_jR[&ݯ y B~ƽpx,'A'8)S WN `H,A_&τ-K$Pܤ^A`Rl$;a%X}/5YR0Ֆہ8~BhVJIhvD08HG-mRqVǡ.hIij5YZ(azĀNu{?Î&&"ǜUB.# 8^_CqΉk"^\(b7ķzn?3_QGFmb1Z=~#v[E0B,̵h >SF Yްb_hut*.;Z bDn9M"2VA%epʧ g iьn‡2""^?i?g‘E ޱB X&)YfQIܦ0X Vf.3Sd֨.ExF:m':Ĕr,K>L1jOS8L_{K4ÈW7nOt}sLI KZ(#'8E8֌uÉ_?% $ 96$d(qUKaB SΧFKT+d 0g@fdg33H L_u,2N񉱖4(7!#$&$wjmJpQldt!X06CiYf8zsh1pLx#NX3Q>*? E8)xQtdP01UEf0 qEǤ%GfI;:\D  s(0྄ >F}Ϧq4[F`!h8$ax6&$+9`##:&L JWQڈKkim!SIMtCP c ˲)ȩ.K|]V[v R`|Bp~] Lw ԼHA!yJOei %`.ferɢF2e]FĘkgq;, OpD^zS&RV@s2ÐqbםMl'׈rdtiM*ZZnlɋ::>|:$vW=;n3byX…(uH?NQ @YmfND}"?-w~<;;xNm c2]֩"mw]Ptb0G{ #@ퟎ^Br`g.Yo'䐦FС3?'Ed) 0{V'W[.xuC [H0],8Qm~q_BIhe[sB;_-iyG[{0h }|p`_xu=n+ON@[ad: AU]a[?Uϲ=l)>9؆Q#8!D[/1Xa#0Kw kϳ?_*`9qhe ^;{Ο˚m;p_vpA#'[z X}Eikg1-,57WphQ/]}hճWDž=-"HkfA&3hj煬N,vmCp:{2'ASV,_bpl"E(WO?#=ZG. 7\WGJCֆqm =+O#l;᷑a@QIϐP:HY_|_B6v hP;ilRFƐW,tT=6Ǻ0A n|RV@gBYCc u277V _1@w2K8M";⣁Y hxw8T_ 8PZ2 C7~ȖD ,¿'Xwh=@ 'z?5*3kzrVn,g;|9d[L'Y' v ׍[UA"*W+\d5 S!?vA~j/DOH jsNDɽ-݉hƹhGKEfe2tZQxF"5cl{:L;OM&QƓ>̏)hBFhɴ,^T-4 ?&3SCj25=@ӓQٹ!Ĝhs&m#w@+4jѭ>?S!/zQmك A?*#>S~HV.瑖Z|QLm,ȅgCR.ĶG e(S]fH8>vMXNO@6Ѓ$G9LX4ΚMKg_;zŖO K HJjlg{֖#G\DѥQ9ɜlyr3[ Jh"_B{ Alas=%'G0 ;в90 GR帗Yj\Lzbo]+%Yn^ MtK7|k?^OO׾sWE6fÍpsUͯp {͋x0;P~fq QLAeM҉I<ª!,dCxD bInV hPۀ Xhup&K֕*c3R,$*6|4E=Xa|:O` b"&]`AQpLp"|'PET#FN:D3[ ͵}vQ{8Z}@f؏GZ|?ZkCC:#PG9\흽v#J[ۻʤn0ѓ,ljZ_U;!6tLJGCSiɖQ4uyAPV F# VL^LZd#$^q\6_`q*qr7x;?wѳf 4!D ÆKwָ B0ܤtU#']cAA$4K̖ڨf`fZ 4tVztPmt EMWA~E]2'=&vHm`i[;27nz-kk U뻡 ԸWW6uL;taFƮ!0\@(V=OD¾2Nz4m5e@zmUxv3{CO>V΍>D1ߐ cCgHcnnOwT8GouF;q mH%v:Pz;}(APoE&'~툇CT2-b8kXl mň PSDźyFU AoLG 9 ]H;k3'5{s>i&Z,_Ibm,6+^^U#kw1OhyvɄB'Gs?T?gޟLR k]WxK<]0)܃f5mRi>tNZ7ݩU~FݹiN.wEl)%'">fR.3rSZ.! x!xxl`BP6$^QLjQ봥N1~O4MQVG\g{Eɾii_*f |X U%O[CҨTlZ, LZ`jD #Xx4~]o=?7JXo\y:x?2Q~PRYFը`?6<-kl ޕ=L4ҏ|F״5~?5xY2Mf6_A7Ik:?Ap) l5Ұü-($Z-B]^MQVb*y%YT3KLXy`bGJ*H,#JPlK @1H*wl1 ӱ[cn´:~X6~۫ Slރ-iX-@TV]AЭ9ݴ-#7Zl~Ҫj]怷vUTsUvBgMퟧ#cӽaPТz.<ѣ(\FT_hj-)"%܀O?nW pFѪϸ@-%8wUq[ vGAAl7]Qܛ%ɨJ%k\h[g`똪mlJOtE@菅iDɡmN -GZ {,rqfNun>*vl^1 -ۋ!F]Y~tpDuJV(P\/ jo- '}:\SF2ʺA}kQIՐ%bxa+#+ ~Ʒ65ijMGVwDJX bt3a@D`Oad fT~.lv%o0L4 |T.#N%_lpG]g#5}YVJFD\  `6|mS9*km:zf{}u[z*D%5pp h=hR lڴ}ʵ'|3V,ZgBvh'z(&̢0ˮO/al&oVJ4(RBw^7B-a r- 9RpG1]/3npiFKo.뮵k f Y\d ٖ"TmIb _1=!QsۨGӉ o"DTS[y;#!A2@)R Wi%ߑL"k'W_E&M<:l_=!*L^c~yޱѻx/ëQk\b3կ /qɺѱZv`#Qr KOaǸUgݮ }Hp ,v)Dȏ MIHj3H5 ;f" RkPBydE]˦- RH5j,꿇u:Z>suL`_۵k,9fhfey_G8q+GD)涣;>X2'Z4bK␋!_}aGC /M[yi6RYd˸Q)\V͟F_rܡaX4j _My6_kݯWlXVA^*zr=۽loי0i ڪ,Kp{P5 ׭+>BH9>:ywpWSGAq QB,o+3|nEnǺ9N./:MӤp奋0VZIEQV൧`5^.P6$UozCk r:PZD9Z ?dt4XT45hkGT<^מUFλPMFzLw>Wcӣ#\wH0cmڱbƂ]VU 1钎(hsr#fGtsay=KCѷUNdͿhNʮNX!p\ Oblu~,8̙IGBbQ,Q]zO5n3NíZƜQs׼@srx2RpwAT=SХ76ę!fs.[3f.smzseU4jȁa̭(E QkY&kj\Iڃ/?>+'-% *aa-CAx] mja3t{QDG -ՙӁ2Fe)ҿYpf';S$߁5[?%=s|P`4%wcu䉭W''ü,tb7E`)cuaTjhM{)@K'ʥ>r57]]؂m kiJN xc 9LLftUmE6K5>̼0QDbQ97R =xWԤ.Š H œyTxU$FM Z-΄k#ycbhT={x$ެ{\_W`]?vhOqC[Իe_TbrK7 1I˭g@Ӥ 65J+tȇCS~Μ|#mFwt$.?ܸ[6+4~ +W%{t{^ 7qPR/`NP-+M<#2jyfCb*:sMsLoW;G=mS7$Kh߯{`%$,7*x]џ:d4;Sxh t3w1{ uJ34'^}o9T6r39'Tq#lYD LTK9@1B2`&>ff Z)Ǘܱ:ָliFqL$x+` "7yWp^0&G&w-7oGׂ1XRބ"nhFH3$[2B ;JupudID{6X@~)I.8ՀFav^vћ9;5*_%0fRxy = c_=xcY"xOD^]e|9r yGn2 gYSY4n"{ zS}U+ܐk'w^y-?~i F\UK;I&qމߢoNTZ땷oߑP͹^=j{1Up+?E4hr71ԇflZYymYm~{++WOU*V" b_G̒4E/JfܓoФQ[=p3fU{ 'WegȌaFNnWogg$ auL` Z4Xpr{=c̪px1[PYdXH!1SuyDbe^/OQ/n;X=G4{Y#nl]LwU͛ }|oUyFTQ\`At2F4&n}}tx±Mjِ"r5dE(,x2iOsH@(if=o+Aw_?T2ma}m%G6+ sF<4`^Eh-&Hsi5sn(t*E)2fR"]`qt{Uմ.{aBVhhD,qH"gR'$<[꯬zq0|9!vQ<`tQAj;~;@[="q_|?g|z>k_?ǧhe_G9aiuZ1/3|5RGnߝNuxnUhuбf_6CĘJoҔ{e8ov<% {;D&~V_j^0~%fͪ,>(U`N1BDKUlc}5!%~ik3 TԤY@]z; *uV5ajE cQVcv+K$ai(io E pflִtKqfy%`phԯ%ڠ.y6]uJ\J,01򮅋7RZ.jŷz3+ 4f8RbUKUϽ㽓 Bu-ۻV԰ح)ܘE7٪sQiawkx:\"-}l,VUOGI/e~.R?DmD>)`!w:ȶ#tZĢ 2 Ὧ9LWo81aPC۵!lC9QKTYT蚶$OvZ@r(sκ+jwiҥ+G s5z>NSF(D$BsMdgn]B$ '2?w5N"['A"wU/2t:7GsZfHI.u>" Z٠jJe3 }qENaVCyw#%:qk؅:Y ~ᮐqj_S:=mn$1i|\<[[-4,Srõ4Е\ NN^P>%S$ k)sNvw'[WŅAaϟ9INDqzh?LMa@ԏG91:Db~!w]Tv} LngLVFH-ʭ0jGY~%{{DXcYe #^ISj6bQTꆟ O Y/1jȹ7nCcLL_==u|as汰b<:p<׺A[r&5?|{ xnŔ H:T*v-c ׳sHs/XjB?bY-NMVb?l#5(m;mPF˔V ˥m"I2]܎,Z}{Zꦋ]g5X|]HB۲ׯ%OqY-Vq^n{ %x0cp@o]u`fӸSaw >@<4,楟5G,gJvR ֗k]%Q4?{4ӷ>79Ψ"#,᫲gq\$QI *-T{:|eǣddž;O ^ópIr ]cYzQOBisrMQM"7Ev#0%^Mf-An~o2Ï?QǮx>),x vT1lBJ,9sfq0ɵX1k1zb qv|wTEH6ιѱO=kzk.)QV٥}]_+o)3LIQ nQ41:JrJVTc<O'>P9 /ޓ4:7~oF]I qTj=A`o+7mRI4JX{iL {ϣ5gy Q|¸5Ia7 *Z#ܛچ]yt^s-ڄ , oV7뾏xjJ \D3̵R BICy A 8<+?ʔA^4R9`h22ϨR1l daax,KKq q4>pl+쀀%HnpvRQw+fn{GZ1#FP dyy|0p/Ytrn^8iZK0/KXTO=,euuqrMf s*apMm^g yE* زu==qu0(#|=D`Q#GBg&O“7cfi#èAY|GenwuS4za,u5nsn*h=+[ve- g~gg9⥆+\uT J}vEHzBOK"@ZD/ZCNlѨVgQڲ]ʪ_3z:s} S _D'H] V^$GBy~gEӤO V*0. 7! U VyLBIxęN`0fÐq(VTvZ_,SŜ? .XBT.apAN"#M:E!BXgGafJ@c"L$u̢H )0C9 g $Z1D[үs) =_OuųqUr/ /s$G[}:~O`nm¼=X, ɎO xL$_ % AImTi{bz[ 9!#C%"yww#EmY+.>X8sFG])gw1{qئbbYUL\{٥HH\hu#/Y76' o|<$Xx dfjRNאG;4ݣȚ#9q&ayBtrvBb=9N]-"9ٍzR|!IBy>k(? ymI1Ԅx6p}7!zJ1 eү Ht-ZۛhMFi ٬0'oXmdHgF)Z\e'G^*_~P0ޘ6弓Q NHa,8-^)nKw&xP|A<;2$ZTĸ7m;Æ#gWʾ&;vM(5]U(*a-Bg Љoӆܣ +) EaIĮhJΚ@xnJ gS= fQ]z?t@6"K!9WAWev9`A 6 ;^~;:S1 %s&Lt-@p>N~u!x`eh><d?8cZ}ClV,E)$-{jyL(c?Cf2# @%ߥ8)i2jަxe(аJzY1ߐj/JR1Q zM YT)ʌ%`=_e Pn2*L`Ts-=vA d`K^ľwpM|+KfKE 3~e++ug4MЗtہF~"S{rFI-i)*owW-P WVH:IM<( 2Exfm.3Ͼڣmw]'5%YWȃ՞ЬHBY!ު;F9ܗM2O^itmneɍ^866# L!Q!\*ze:zE8RÒ(p]yeBQ0se'PynD5:cR èRn4sC USA3Y|eZ7ɼuu-БX+G]qa"0Z*:apQ4Dѓ3EUJ)Ntg6P$J/ e\i2Лg(/Jq_5h0G;jU"i*7DEN_3^ aY6J@אȪߨGBџ4  GԸI-mmxD甈:cⴢ]v eiF:iw_wOven>{mEYBȢ\*xQ>E#YW~{fkXh%ew<8zu )Jɍm-gM/81Y8wR&5r(PR1'/2*(!IyXzK09UtYhH܌`h4݀(*GJkw4-޸R3=+JB܌;N _XPNr8=:ow^DUdHfy) ܃@]8F7hN>]UYzëE\(܈p8!)krzk(Nۂ ~t|G%StYkw)MR/VArGZ6hh&#{=edM>3}j=AݛZ 7E}|r}!ƊLtu 9(mbuZr?@JaoF4C+ۑ~~9Sy}a,{GG{ϽFʹEn2ՌJ[|Jcm mUn#Q &Q"܍vqY=46\DXζ zSʂtl|5_:&> ZHdbIclt4q_'+2r"[B')@_HWdz%]=g>£?G vy^FB8Zű.vSѝ/aggIO_#<Ýwׇ_;O>`l]vvB@߿n!,B}J6*-u]Dh>O9Y9TŊ՛ ܡۮ_7ïh~q{_>37$,G 5Ww$+-t]Zi7Mƨ"0Tz'v ҂[5^sD,ahvsWpK~(:%jl֜ڒE,Π&pRYYn6x?g61vJJ rAJG+J3YVt}sp/WTUaVY.bg'VZU+.-)O|nr+@.-O({e308@Pۙ\X.l )&|G# /ߊv!8n|DBx~Os#r Ozl (D9\@a 13=L6Zt?12O{BNt?xhƖқQQ6.W/mMJ+*bz=\.h%jwnc} `FtECF|=j6'I3n{oV[:}ښI:*]I X: -^M^7u>{x BҸL$Sf1ដYk"hG iѡ@O @ Zm-m4`gN}wwvs+ߠd&cqe!x#n͜Opdg=g`ц u@/Iy@>|MϞcN1x0;]F^g,9@x-.D4*&(M;Rժ Ζe_plo$\gaSW #yb66߾];lcma6VQ^̇i0'rJ88sݭ-q@_jEGA Кv/(Ogsϝ:;Yëeu nPGzdujJjcq%o1^^RۮX9wȏya}~q^L`9LvP]|u<>{b%%Z?6SHc.7`<nBv}%9^ l{s+" q r""r\djLNZJ ߼n턮 #Sx !T;6~t`*gh%_kIpFz(\XoH+A Kv, STq05qDz!uk]]${ѻ2r7}e.p!˲_.g({&N?psU7xESڣf*f 3fIJ-,! K򳶸jEl^r|J9[>!.c^ak(˴neyɂ$ЬA.`TYTUbQ &?t~b49jlG,?*W~?ZrpFI.uc#+(Æc`zPjoo(4ITE7$cA% wE:u'єSPJmVqaZ(FqiyA+C8 Dt>q Ⱎ?hC:  Xz}gHw%] Cq6HgkˆØ"B!p- f Ιv|IDMg¦fAs*F}rt|h /Iu!(hs#' {! z7^zȜ0hG97"cigl$lYѳj.!k'Š5;Horhmw!6؆E>ۅ(ė,b6\{hlę=&MŁU^U<7(t>{/_I+Ӱ'Ȁ<<+e2wPi&Qbć1zl:>:f281chP8I[Nt#.*($ra> YU݊4 z8͢tıZ޳Ѷkk<{*Vܖмv2s;_x-6DSynn眇#Wuu)а& ZX\|[N1v=C c:3~v?!t#SqD+|%r)q} ˆ:/wp%OuN~>>kgBwa&UYA\,36ۼxY|wY=APR8'o/BA)d@*+1}|}4X9Jv@0q™ρ,v.32c+wwrn&G:V͡4 C hIԁ$v 3'}b߹TkV0Q$+Cx;Rx^m`7>{>oD 7oG?](iOll_oͣqӁmEM;gY0h48%0-nat0\ý߼3}F]ۖqTZgJ$zr5d?X+R2P-d  ? <_YsMr5!CCg\5{3=wV/Pa{KGeQNq{,> O;Wqx4J2}d<0l#TG c3d8V?.^ N8pBGQbRA%lΜxj@ޚ >Xo)W?M{<4cwGDcP@whh݀4Eؼj5\Zml|칕㯷r'EOw q>m$ßx[dk_nrAZۯC~_bAS/ȋ5bU #L/:N>I!, *\VCv&Rlˢ슀R,$F{®N/]E:x/> Emk!cU֯˃b] ;B7Oo⽪lIP& L kZ';>; j~"\VZo?i`N* 7<"p B dٳN#jEȵ灗h`1ztkqY^cΙ:,uǨDz4ٳApg4!tRN/|<+8@ȜQyi7C;jm1b\\ فZ)T]#\\T;.zՕf8|$j.afi ߴ🇵z7ݖ`X;S,XR:O;xż^{7Wp&=uo8u ·:g3yu 8ŨDn> X m.$r&mwtmnSh6W?֟x؜ uʬvvU+0m\E$ &GeJ"o9ya zd}Ԑ=VmPf6!\-4d11EӖI,’(yj4+/fӴ,NTWf}T1 㼴ZdL9+Z;Ngs휤$N3 7; ~EJfF 6Cuk张YPmճ)vr3w&j4RcѲ)J68h]^!n@$H!5?vljQ0k^ZQtc $ Jͺugڻ"{[XH4*;IUw6F65w ujbXaZGl;t g4 3%15#C嚆@kP T&O$(\*%i#J7Q!.T" Z= [>jlR7a׎1*i5*ʜ7Otc!6'4#6 E3_ $cb(0X<򭍤7Vti2]Z*vIe;tqim[7,IB}6^@ѐGaɺ% n[Ta8ë_WvL VIw}J$}Tx2G7'b1ڲ;!cԼ m1EʋgpF9F5ѾłeKfuYH!3aaxhO/]_[8b ]A]'Cȼ!% f{o:8_ ? EkWEHl<Ɓ6wUsi%eJnMg/uVJrSPCжE1W?dD8XNS ';[' ν1˻^5uG2ghc~Go|x]2bf,3iY}4 8tCXH\6\INaz[mnAlB7R(S CGȽ03 _܄hro.Qݳ_ x4 qnye{k kjO6Yl>] 66l&u'tNsrxlj9~RbVA36M7kX{]i.1.Q:Cilzy\wd#q^$ڼ yΧyZxŔ3cNU vq)%ڬ$BHp2-\f6{ؒyp (9OeZ|Ǩ𔱖R!!6 #} fR@7]YNvUbXцew5ZbD^(ՅӲ5p4a Ϛ%\x"Z+5@vҰEG?;]xFK$X#חNTM5fHTtnP+tUtFcyQ01f6@RugI?3v~hHtCa69$uHY(\0lK22%t~:y~ax8ehc^B'M=ƣtoOc*J'P7dguO8G !}=iT)j@gb`4Bj.rnN\F94 &@$?\go|U #)!-hmO[YicjXKd%T|6sGݜ۩6FyJbF@׭] PӸ^X4 }Ml) hu 3x̘߬i7U!,N=\1di9a=ۃ1B(=dqe{`vB]8Lš̺(-CtZx@o\Dt#/<ޑ2dVt_>!ʞ. 2;1 :"vi+hYCv9%=7S1P9Jq4`U!Ly渇6vzۭnf.Hu UBۑ`jc4Bź0ԋ$x0+ֶHOn@ω,EfD$JgI6+t ~eo899ٹ$*l&mN44PRK|aU;'@T%#W}j^M ̖do~)F]X?`WنI3M4|8 W TPȟԆD(hbe j~%!8} ޡ㇭hժ벀̣m*A &SK4/J"r=wUx-; n] lnet5ZxrxJ~K*!X&y3~z켰a 55編taI:a]z'ɲ>GX|%u6dȇJmr."Ww<)\2R>UE}tSPw:hzssuq痞O+?θ֋T4ӬsÅEVmэE0TItbůJ-lž/Y)0`TO#槰fK !0s %$T%Mx, 煉Pdq8cPEi"ҖcG. Q#B3f4JKoޒ^0GC 'M|EWΉQ.Dq$vL;ޟV@J$^oM+u L9~cNy lrբY~:iX/i.U/zP4*cڕrL cjDAz}B:RzSH?<aºvڵ8Ю3F7v,1:׀tׂFPHo9k!;}>ڹ~{Fpso w]V.dZ#e&2.Xbﺛta:+҇zWmM#@͚x l'GA>x ]K@ A.+ՑskJxmzQ ݳďOQ} Xn M+e*v~,<_,<'qLPF%FH%7`(nXi%Ө:ZUKo[Zm~ۺ|w|o19u=:T>yƏBWkխ֝ԯ%yy,ZwހXl׳,Rs OPku:\zOoq8h :H藾kw̫ǥ  N4*;+*(m஗=ZN]E0/lHzyprA7(p[|[iION횊X2xو( g`EvYLQrj8$~7VyBwc 60~|;^CC Uұ o?^ʪjS1ȕk]z?1YբVZ#pN=F)wObJr6.RN3kwN<4'9Ahhi-n)/GU0"+s*ICgz# y1:6z[T %Cl4Ѵ K6׊pe"@wyiתٰ ][epU]C^Cj{ZDUb8`U@Hsw$ QH"_Se>RHRfX5A0us9^1NyaEWf)Dtib҂io*'@1ꏧ5xDM U3}l^د% .o'qFrUtt;7 Z]D~_eoaNbMWդD35ruh~E:[\ -}h'[+'G,kF̔ע3׉}oKoSJ2A<F{=1PSG/sN֨oX0E0'.w9.+Isp IǢwґw҃x{ySaF]e)I -'й!P+.Z -ܸ,$Z ӕ--F{(4\Ƞ߾/r'LSSOScXkb75Q { ;GU\-4I=%r*L>gEjdJ?LNr[9{ Cqpۑ^mGѹ3mT߂:;rT=]mYA@ J;zP^9Z\K-EVWvGҲeK˦ee-U[ڂMRlGE}js\N>P52EIy\ ]y\8k]s-MsεčDM0PWҌ7_N٥y`QZ䂛.:<vqXz0a [XEG_A)d+Uha4Ru3 W !YuK0YZ,giҪ,C-:*+kdBؚ[s]ې{ _z\E$?ʪfIKD|-Ekܜxj|bA؋GU0jjKms&/\/>z$缡M+ʝ A k*,Jֿ̎YKɗ& 8Gt!ޫe/zڿ?AqLe1 Q90uH:-t@WnGgDEj>'z+AAęγn$^ VevX=hNbO6u҃Evvy }Zt ]?/sx rL"h%VGDnLS&[!ZpѬMn5K9v C 3j&yHM:IClAtutGfkH|R5B|R}\[ӿꫵL}5EU~5VV]Wk+IyM'.Ib/@+TOԾVX?|t2ӓtsbt1j \Izl`J kУ՜7/PX{C$f*4p3X^;:Aɤ ,긝lfƝwMHI߼n[tOX* S1/2.lPQD3*@3cL^&()\DvRjCULM⼪,]f<n0쒉3 6>p 8|urh lVSמjZ(^@P? w*Yz&>ey(v]}Aȧ]R =ΓEtIm=;u6y8U=-Hxo⩬'b2N(4v|eH%! k1;E)GGNڸO?E ۅ2L҉,#i:}}|BO)G//[z/By\6"~ F5I'c)B @`D )(+&۰ׅ dmnh'ڮjvKIF;qvL Ƥºvhvc01%z}2$Ƌ*kn |,bp a&VOUJy7רmtuBZ\o(?L:^ǧ]oP:BaeLպ49 1sɮ70mRYSzw~Zmvv4aߢix} 7Ǜ]*zbp䢉:Y{2qW\GCsDwMX.ix9,8].{{H@9fBRݝNQ|L421- 2mݮ:upXx$tO;vjɝUBwaCa? ls2hy(L ~է-iqun3-sDNtv49Ǡ'#OVz\wWx ` U^؀%$mXeSem*XM5}WcuGb-Q(1f sgѠ(ʹ!^IY1Z+"π^ eo$ "y&,/`n=_6RrI-u2^Z,|(=m 0ʙ$CupF+Ѭ$@)lCKVh뢭V4gJwBO.H}H@+k Ua1%1PAę>́HPVC\NEd*Uu^>/0Z!LFQ8m>J8^$N>`"4߅1֠1b`+G$ܐ¿9aY9(17`\iYFopJ=¦F(R~*iGWPP$u +>zP 9K -?3?Ɩ* )}h.Ouú :ЪF0R\k8Q.ᬛ Nh9.&sY5g"\L( 1-7%ac@SJi`Tii?$0*7[}el(rӘtJlwzko&. .r]`ҸE 58(##3Z^YF"~ ,ra<h+LAvjܔ; UiHKᔂ(b93 ެ#Z֫$@Lz93X#SSCy̆6Ɨ)׬/@Y9"L'ʱ1L UDx9p%1 )9I t\31Ÿ8CrfD$hci[xw[)xYYЏ֞<~%gBKO24I04_ZbOAݕVpVNa xgDc9tBu{`^VL"I:NFdY <eS+| XztX:CoIbkpMN9،cJ*z X&Ջgd@DWxn2\rf·;Iw&ЛY!Œ N+ j Sj,DQ-72x7!C 3})8b(O܈RFrQ6"{<9n'R^m֮J#~6o6<f^iJmDRJqw^-^y ?^+[>kPqN;ZԕJ}慳VXx$s%m^V9z?hK { WN)Eè"d`ߝWÜ)2KcMglAilr^V']5 SiPYUfQP u6M7VVGi8 o@۟@Bwůt;ii0+`+8+ш5ڈOUk65 X6g?~aTxÙGLj,'><(>̔:I Qh1cxQ`MpREc̯q> %:#ιHlj0! /Ae]@^SUkRBQb@~:lPuDb6R/rp[ oz /qg/=EmN[3*gj g(j)74Է'O*۪e'[^㣴 GQ?_xP<{Y[5 j^mɖHkbe% I("Z* "Px'q?3+G68Bo!^mrf=ߵaGMaFl;EQ8ђEPf~٨Uct'Go{ h+Y.2`D m^uZ$9K [ yE-V]%|Jr(gܝw&9[]VJ7+w@ ,IFڕ,I y2lP"JGs'֢ݟ%b?o0GQI?^ g4>ȾkAM-,FOt9c0 %o/(dRw>,>wVi}(?:~9~(7ô g=fvZ+ eh[[*aXt2ǛxX + tsXu*@=STTM ~F~~A3}QÒ'UۓAQH.\@\1d YoxS &yhhQbK:b:JR=W¬\֕qs^w1Z\n5fBtw]v]rփ݄/e=Y3Kϐ5'۩h&Kϥ xF+̯6{`J5u뺗m<("[OB]}rst֥ti2j,=fAy?A\c%ТSj{=ҙ,\ƫ+@2*;N3aL/wv(f.} cƲ͐:aS*J8LHcsF"A-zŵe<_&It  t0]d=NclwO^(ze{@9AI$iQǑ8X+ҥBpTZ R9GW RZǘ\"۪L^4PGJL}xS-R4ШZcv=#IAq@y<2 g=WEnEnuGgKOcBE\@NLK *kHfl>r.L'nvjxF`@od$qQc92Ph0ނZEԕ-"?t|z2]̱ W(2Nj!g0= )a((iWޚS?FS/04 l[+XH{6 ̿` w:T|+r?ïlep 5''d3.]^I*w,^xJ7:RC]ou' </aC b!_f#dDq3 P~en2Nc(8ZհW " 3r[n% H5ć>ߘx56O"kt/)@k=u͡LBN`Yj~{uvߏ}iƱY23¯?t9NO6?^F H~YԋHr IU|7W쬢lgn6zsRyr=t K c:`C2d:*g!T߻4ONUHʆAuʗh4R(A٠ edi= VZ-rOLP|n3N8a4S2'kG<49rGi4,r{ gy/p)- ?/ KÆ%+%geGܶm)WL?>|0gy!6YE9:yaQ~ʶQKU*G2PPEW4swa*woNqH%{Gaf[@\ % o?K9o X~V=(G׿yqw@gUֱuF"D=NlG Iy)_] :26 f5.;:hU>E*H-ca* !/BM)&ɀs}_@r GGoaGY]$}Oh=Kls,ԾN,PZh0 EjB؞dx -0$I&i.M2~}~,֓BE4پ۸dbC]Y鉳S,>&S<%(ȠZs:f] z|v( +` v#hNE'b TP(8P HgL'rCBR < t JhZa:FH"(_ (_`+ نjn!5ɳϬIɍ0 X?J8%zUV{QPbΫY$~!I>m-Fj)V1J8^> YD?EKrto]8Pb%{;hxp,zHaG@c/1 =(غ!K+^UhR{L` ޓ2*e\JFs$s#HUhUMnC7?jm#ta[fwe_lakT\Ѷ C׵@=[oqGjǵü[c;MBFґ GoM{8ȳ ;jrM\Q$b=0,R6 L{)㜻d#& s <2pNj!X9Nll +%c G 8)6yo8o5H0RZ9p@K9+)'y9] C&Ej̙|0nNZ-qL29`؏EjvHUna3[K ~'ȝ>"(j$PUaO(7(VqOJwin "ZC;+;+܈$}B1l>sL dLsf7gBM2fFjoko[m۵/[@k@`u4s:lyGtw^ }rxbk{xDYո;P~P3x:d~ʾ_;']r(w)=moz^һ=+ԕ?|hw&ᚾp cs$mcGcO^Nv ­.$쟅Tʑ l ~]nFB'e6lӌдVcQ z daEH4yι[K)<.mSqVP ;'{UOIb~X![.%wȊѯJ "z/k=^\9p%]{ ld21b`(\񀔥rb8 CN/eQ6锉 eOWQl=RDJWgLv:Վ7W}|]wD:::8xʿf-$NPƊ2ߌ^s$6Jq4r7-dfgL_6 c^IջTLdf{Į1 Q7:Ns;p`v^ jdK`1':I&je+e>~6%+*+B xq/A,Xf jI8hlй3'esTfޙ "+ܣdr-0dDKQ Y3Yx'oIrf2lHKMdLk*NX#82f/1&9+TLW&5ۜ.p+́r`U Q(Y@[^SΥt!6zrrFe懶6+.L-SƍŰ vu "ɫXA[~fym={Ǻej8]{9;&.3<K:nHۭvGK:xuQ-.*H)O(**p’)8\ X"Rګ}}< ?~|&Խq49?w(y} k^a5̉w`OG'gv8Ἃ0mBjj1E'nO7Z[ NpɃG_VB ڄ{Qrh22$uM k,~0t|i)2FQFl7C$<{B,qPH;8[x-vxvX lBo+qA;N{P9)J[9 Z`+)%LVg0S+<gj1x@Lcq@zR{d;pMaTʿᲇ那܏2;#U煸 f@:גc$ Dt1ջ@"O0x4B%,Fr8A{0FC>1nk._qn3 qհZCŧ^mZ%˰c=G|:GK@rR?<e |<ص*\)5m?{El4yϼ5qʅWݜ M5F@!`RrA4޺la Q\$^_ŽdJE1.d.9I'BܒKJ4M V]^w>;N2:@zר~?a嵪~Xdi>d5k1`o!l(ڭ֗ܠCo: Uʚ$QZsUvBlľ(:Fw\x1q%ט_M5 W>IZ 7ngBS\G?zT~-D7ޤ-#ޟ?q$W . yHl 9>@4Y$vFo9$Aٵvc꫺%moV22OAUjDmU*(G=_w9aH#QJO1m"N) :T9B!<`5/ATi%[2"DF3 3V~&GFÆQ+F Q⮔YKc0E,[TRGaI4TX¦K9(nd71Ь9&2&Z[?la3A2?QU.Ys;S|Vk;yf'RN":^(L%j9\6Uk{WZ"et8CU^d8_eWV^|?Ç<x]K; 8pl xR3NcG2A}j4UwX,q4V7-OmN)gjE@'MD(/pDy)Z`4L]-]! 9FHler" )'4=t[3N $X2/[ϟ-M3rD2f^,Jzs|PN# `a>Ӡ9Bv$CNRE8i2ґ''{pBɭ~DZ)"zűx~ZbE\_:Ǹ}*:> u>*H@jVU0](cِ,3Q_ q޺ވn+*:\M 3M\4dTXvN)SP=1N-\0."mS12$Y ]$"+9KYkTr~lq=I]Ohף7WR^nnggg5REPS`F "rYHbn8]!aC( =i֝!?JQ%4JHT aR!e;Y Py-:d^nMgi@Ƃ?4`: 4hj}!$@㮎:Ghdz<]:> p=tO `#n<=@9{Y=jbf@18a>ڏc)n9)`^#'#e]W8Q V}M𛊿NRO`18#"GbYZ+]E"vTZt8Ƈ5]\!b/`)*]N +W7젷ޟ.C 3a73-VQB-;9M3r<m7_Ku:2Q6G5DC%[_n}uy:])Y'Ks;bd߶~sFf[sF2bU2>֌bVs)@pAH:T750H'ARSȇonV7%^iϊR e,T{PbO;;+*cbqVNe iqE nf9RYy[>=;[l%..ܪ7 py)$Wgۡ{;m @v"hX\X 3t}sh&"FN5mtL5՞ P5UX``}oJ=8J%1Bz41?vdՕ/>g~o8ߟ}RNgoGi0"êGJOYJFM<-e!&SthI}6|蟒;ʼn4?2DN2xC=γBAIiXʱ@YSgy}RQ}~JHv.7bvѨ4] ^QtFFJvQD+YtM3T㔮`qIEk|l`e_>xd7#X-!B!qa2s ~s< ŒrEڊ٠ڨ;*[,ǏzU5mshoPc'p?ߢ[UCƂmqSuJ7Aj j9:xba{ofgmfFc太+8^p_@Ş;$rحE9xI\ .@nCIAՋ$y|G5&,̼ƴwqRQǸKWk@e,9둅KM:pw9@ &Q? > W8~k^gq:22.PM4gaC3'jH1