summaryrefslogtreecommitdiffstats
path: root/python/examples/create_disk.py
blob: c80fc6d97df98b07d6b5721c60f012de7acf4bf0 (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
# Example showing how to create a disk image.

import os
import guestfs

output = "disk.img"

g = guestfs.GuestFS ()

# Create a raw-format sparse disk image, 512 MB in size.
f = open (output, "w")
f.truncate (512 * 1024 * 1024)
f.close ()

# Set the trace flag so that we can see each libguestfs call.
g.set_trace (1)

# Set the autosync flag so that the disk will be synchronized
# automatically when the libguestfs handle is closed.
g.set_autosync (1)

# Attach the disk image to libguestfs.
g.add_drive_opts (output, format = "raw", readonly = 0)

# Run the libguestfs back-end.
g.launch ()

# Get the list of devices.  Because we only added one drive
# above, we expect that this list should contain a single
# element.
devices = g.list_devices ()
assert (len (devices) == 1)

# Partition the disk as one single MBR partition.
g.part_disk (devices[0], "mbr")

# Get the list of partitions.  We expect a single element, which
# is the partition we have just created.
partitions = g.list_partitions ()
assert (len (partitions) == 1)

# Create a filesystem on the partition.
g.mkfs ("ext4", partitions[0])

# Now mount the filesystem so that we can add files.
g.mount_options ("", partitions[0], "/")

# Create some files and directories.
g.touch ("/empty")
message = "Hello, world\n"
g.write ("/hello", message)
g.mkdir ("/foo")

# This one uploads the local file /etc/resolv.conf into
# the disk image.
g.upload ("/etc/resolv.conf", "/foo/resolv.conf")

# Because 'autosync' was set (above) we can just close the handle
# and the disk contents will be synchronized.  You can also do
# this manually by calling g.umount_all and g.sync.
g.close ()
МC{ St)ϥz=V|%r^зxZjg2'~5fǟrՐ[1<ɱruQEɌ ]BJ\C`XzkLy솵G q"1i^A d.jF#E ej\ K Lѣǜ9cRO["Fc.pzio+.:† ZSM`9e f4\†tX,rUk휱YBr18kCMx /\Ĺ*UI΄# n*IH)AҔ >-4  uE֦ZpK7:np )YG4WHvYqED۟sJ5G8$>6,%1 7_51{%`>3msj*lɲUz )o̕@sx߄Js{sA}Qh]miGV.DqgSmAwa(  ZlŬ|mw&Pf锧p ryA pwթJT0D&i紵:eسpc;yX~D>#M뢇!էiR o^* I߾+S̤J%yψeZ6*_ PTe=ʘ6$0Yk!>Uͱ1m0 0.In-]B7mt{"{ۧ}8Cezd9,%|N߬-`R-wlFNޖ98\g:Aru"#O@T~W&p_ƟϷlw~"#O?2Zf)אfg{r+bԪʂw(jCGlp0L傕@NhFVqPxg ,4'\'ņCdf9b&ބ }iq{Z6Q;4Ҭ0Lg P+ p.$zIuvdᜒx$PeR[{HvFd̅'qi)/y[]16")} 0(e_|z,FHO)GpHɐ@ۺ:D*fx8H7?J}حM,м7W՜P38{lc~XOk漖86!\BۈMmpC!azӘz-onpo/HqèTRz@TS^LG٭OOBo{r)\4L޶'o}SCv6]mhskdh|rJ5q8:w!$@(fy И xLp|9Y9yU$:PveTژpD38[#FjJ(ḇ2۱ zLZEnUv(@(߳7CN盱%Xػ*>tKzbcg#(Nk8ѧ&KOVk~AɅ/%a|Tc?-RWІpPI@p 缻7OՍ7?vvn֜$g+6lqTI;TPR!bCY•ӡ Џnk%-] XfU& 7 .{si!eσ+#P XU+WrG?`Z7jhZZ*b>`_{XrJr:Aw=.% )0\dN쳞[:/!#Tv}ŹAVA%vfڟ,k R#QmK |*ҩ-V,6`촇I&@%"0aL}׶#:<=;db| e U׷񁵵H(݁#}f9L'њL$ X^/ %_hj?#+S,XqUS>zE7gS.)`!xm G:?_ч2.ċlk.QF6eL.{@Ն]>Р5Êb/劾Tx%Lrd8)3@ݚknq]Ku*~wwvĆZhp]PMw)O(c67 )ޘ}hD+j#cʵv V,OtJ6VW_rȚr@gq[=ǸLBbH{ndh*,rŞwm=]QIJiY;pz'bݗ䘱fpN;sFf\g@Nq 6lƀu+110O"w.@G&Td# [?ĄMHTM>O ?ly<7 L%\P6=Vsg0D¯u8WiMޚy.4oW ~,gawb(q] ]0v>siF@$΢pWAĶbJkI :E ~rFW};kF1Zd`q,992!p$m^%ҎdYG=_=Ce3Ge&h5db=">:zWe-f:_P_ItkDwkada%/"f vgv-Ev|d$Ҳ4)\Dס'ȋ!M~u!WE#AbғDVlVd*u -V+(^/bi1{]9"$$ V R ;^<#G\*. j:i2FҶoJE0+";OdC6mx/ ?;{$ ~Fʿ 4-g.kN3%:`~8`!\cjAbΈ1Gx R*%QZw|bU[]FJ 0 eEN{W1":KfUREFೣ=d{P̣VxF-kpF*m#[mSVȳW (W0$Wl+7=煪%rb\9d2&w2)t\]8b`Jl@aCXY _j3P ^!Sj񖞄Ԧ .߻Bi;:t=*.D \`緢Ԧ3{W"* Nn<@~M7yĺ60[!k5rSqx\CDktS,~pHTB-TQV`Հ(.~{}փ4R&ą|,A\Jdl|:?CmzH%e!Jϱ kG1&8: z QŝǻWA53jDfN} zծsIit)0袧NcIUu`2;}(Y =#&Z@|2o#W#g~LrSwnLnpsY+cP$b wM@Q-E{HVktc%.1gLd&*C!ħd0c_9c"LUHGjl.bUQQ4DsBav:Α;!qyuҾƞCR3!'z_MIƙm<.1XڞT\іL<3){ܔ8m%8GԦ7Q֎HZ1?:8IQX)đ`x1 |o}zȩ/FRj;-9B͸x; A?R3~^ "$fT?З7ǭK5XCMJ,o)^8IJ$/+V䓁A螣j6"ŌP,L5 \* sk)LkN+EZZ)fɏ_\jp"hdVCB6ll9ukJZV_cpo2N,yl$bҜzBbm' >%i9\-[an8hR,M5ݴo- ~amKN7lna1&B^qOZ< i} ? m˨ylIՌO8Y\*wEk ?;P]dX2g!¯wk# aƯulmWUګ̡۪<:\ڟ*!@g]S *G:V̥%zI s9| 0E 84׉x"ːM?tv Ny{##e*ˎ&^CVD'l ^lT57NǒmwxkPò_%P?܆͓|p>- ^A1JJL2]vGGPwN.mf|J}Z̒3*q6r/ci mjR&<|mS(plg >@7wG* P]au'gD$&Js!(톝pEMD@ %Xb݌޵qHH˨)Z珕xXowKAIJRT~\-A| 8o[B0C ~d vc FPF1Đ%#KTFPHg+f֣|ʘ_"o8NGcl^D-e^Fʹ87(U\e7~Y_|H[!0'ΧV^E}3w14x}c*+КyR$40Z.'2.I WcLLµR:\xCyF p\)i B ׻)zmU;aڏxC%9 zaU I ! s ksc |Æ9`FcM 䘑MAhĚY+/LwA*]E*U~æ"<w,nMQpsuhp1˚[y梹3<7]fMC$GP(0= t%Y[_Y#1_ʆ*B;񩺁GLN&"UY̗N%iXUsK/1.\StJmYS(`g⯘;H ʟU,J_тX SN8*xn7q{_рMlT5x)p4:RoWpf}r[t m+j @8wϹ7*r=#e\5.EQ!-y_; 1;ɂLpM% دܜجM~ N1G6sa̸U^7\g>+aW&fA}WQ'0~psU0 z1NÑΪYp.v6R!o;㞿,15HT݄M( #|V ی5dvkWpCi߱M9[.}[7p EYveSv刧@B*9C+_ǟJq AbPAqΣNBSr᫞~s +Y6­.M {*viȓR)`"o]HVB`08#'q6b+xX~"ONEDmu p; 5N)o=R?Zh,:| fG5XO(+|g8?C) +NZB`ro X6}AM׬͂`3ܳ&Ve'?.ah e흞Y|G9F]*ѱIS@4HmAm dL-a{Iv&@I0P>xankSQ7MW^mytFU+T)I?gw,RUr"C IXO 3bQ2n`$0O_v$ L*MmUMdOâ]ɰ'v 9c]K#:(SG\la%d%b]!WaN ր6RSO{6إM@AVwD䟯lɵwO^L9eKPS3z>z4FWуOeN iXeCPU!"#9(yuQ 6ɚe4Fu9h>&3#/H@[mT`Ocy;mA0y8"d/a0,T6ho9(/Ԭ *e3ae6됂 b*Ҟ`9P6 /g( &nQ%-6vfWCx*{_EY͑[ |5 `EPwjbHT#$DA]"G<]"*Yɇ Ң2'޿b*TĩFbZ"IU%k$ʭ_(Lz7( ʧ_`Ww =e$ }u CþZXc(d1Жd |\PIBI fi3E<[,lC+ n풏<.)rp HQZGRkn:wHm\[XU*oQV2F>Py?Z_q&+J}e>ta4pu4voPH@7 }$Mjs^a[vL#&w^w]&:Iy4d<*v!}TMa*x 4ʙQqV 5*ɱ M%7(xF,w·qHqw!_Ũ`:FBG!N2_'X;Sb 3:Jz̤W69f3u k[s7pFBTqrt5zMd{^T*<\HĜK&*R',Z/NЏv?VptfyZ/ ȥy8 emhkNCSW,sda]NIѻS9ќ2p6vRs٩;B[ozX1Ѧ:BбOg Nva鏉}mhzmW +'dW =.-nڂ4dgߖt$;4a26M TO3ҞgU 5/ '+KwKįVh|]:")c= Mi3ɝNͽsUEe-f{ @cx7?VY(~jx5*I-D(۩P=kFdkaF͋XH}F"6%KN"cTy"tH u3<ga8Y|̊ ;"h̫BHbP| FC֛6w|`wJ[D +(~vۋư{)wʣ?aO+X@{`m.T=j^SC.5T -iTК&y,Znk,P O bHABk.ck#$-\I0-H+bx4%h^zĝ:W6Nuc$nR7wPla>XEx-{P)c$FgG#E25.dN E+/m縴H k=^pirJokjj(PڇP;BX]5F^$'RTJ*?H/ǣ>2&VuWI0$5K=ߘ|=Zj`SAsm b M%>Dgd%ApoD E&! "o9e)o;3w^ `cO]>LjRbb.q!hr- vjy 5[b3GL;FKҍ; Y[Fw]gaN=@ÁÂR]} IzTi-!d. fvX.ϓUe)J =8&AK52cXhֹY(#5?;hMϊEip<3`p72HDi8up3j\ce]Cjk J抚FT,V 0tm"9&SS %mŗǹйH{nx7 ҽkXB{Q6^E9~l%ai}+ B!r^ޘ=4Ž,GIʜr2^3 |zr5"ts7FpM($tS!-g.E[l _Jy{"NBz^Y5 m`4ݩa͈xm})xYy˺qls۶_3FK6d/cː(qJɕ@uVl7,=z Ѱw0G‘ #yZfeG9NVSJ1nZj_H:%׶{ ݺI-LZ)?PEWhƄRö C<5%p-`0iVLn89-+Pbϓ Yb`{\%TJt"v5Hg h|\MO+CSVw7fnE1ʽ$P0ʰj|~*67k%Di=6҆5FR="E1Ny5sS=p-W|mg` yX0ib͐t/m=m9N N[;#   }/\3y;™ ) D$R<:үkx.w%Zh[U `Y|Fg /ňJ3Wb^f"K@E:xA[Z"ʰZ;4cǸJ zߍKbl}0pb i= 9icו}yygm=b~w~YPV;G|Amӳ3 {:G>Zoewi4$o%m*Ab(~f>X,3 ODwq݀2:#&]զOթK}X3зH 8lyarfQIDDoCWKtE{?uYm0DRCX6 APr!Pr p{=O5aJ돇^nFVMECŎJR]౹q>&*<;ʹں4 ?xZъBYiqz mob+A[x>q6{i6m\$O{JIVkѼzCj:'Hjb֔B#~xX|Y8~mW^yŒwK^]T̢Vٵd1QˮZ҉8:҆Ƒnn4ZťT. >H/S*ɋlv[.4ʹ O&O~C_AVѤ'ۭ X:<13l jc5\j"8/n!sm6+d F*}˽ōol;dBO:n=h!M<F1^O@PȠݚ SC/3%G0@Iz=ax.M/؀W4l{!>XҢח dHR^+/+ 04co͸KU|˾bMIMZ Eei*lÁePeIs*xR4o03N/2c3C6ƫ@-S3m0尷k nH@Rʁ˹`iCeŪM6.pw EJML*O)\[8?Oa-h@mN}Θuord]L;[0Lj.kmk].؞/vUlk }먑ZE7tCN[}NJp;Cnž5+?k"WYRQ5XF縉zaKh&Fi'W?еpX+g\/*_N.$֏#0E>CALǖL2DĖߍ1Y:-d#jS''jlF2J/ =R32!}JFhl$}u_zY/ҡ׼oÙ#T>o<P ^ >x]<#L!x?tϦF+H=XjMklR8[mrxWѯ-|>Oy)+COl7FQ\.;z>[/JPfbvl7L$nQˏihMl\Ft 7QA>8Mg4J{7jm8{:)UBy3ˢ b{W厠.2lݎ mxFS%K{䡆aOX{+յX]i(v&eʴm oA5yC6^Z0EZB-xVJZ98B ga.]2!7 3'=rz}E!#x~e(_}+DUKD|vm,yao8"pX#4z8'QY*/g@I*Q|;|-`PpH}uR'V+:&{YTDDDAJ= IP›!-A`a4}Mta"wnrSFD,:plY'85*٧9e!0a. :vZt# =H//v醗0?.7Q›6Ra|.!a_ȶ7U,TϦUkt࿻#}rw%IUG.ߤ`jx ɫnCQDͭޟn3(4Re<ܮȧCb> UnJrw*s%ܻȓ/ǟfi)1"m$Bl5( L@`݅̕e80{uacr^b= lbQg1u5CbU09|k`^{^ N0h{&#+ Hg5Ӓ6k^LE 9*vB?ޥKL8 'r3?ƥSB#gՑ__]I#%#ǁ;t./?Q!&CKV*[\iV`?D,BFìN5K_Dk6[)OOsc駣G~qqiMllOsѧvom['Bh Є>5$ΊJHEdsQnRˏA0Mk<_h´)1 偺|:%~i.crX"15u v,5@9B*TE}2[\7pO`I\2qBa3`_uY? y޹4 *Ev«+)(##(>? Py\i7 fCGYXvb'w0\ |*6P۸qDBFxQR~m-@\RtڡJzW Yu*.$B BC&P Q)*(rtW qskOuO|Tغ>I7H}y}iּZ}s+++34>Gf[," |4EGGoԿQ̾*irGѬ}1=4QvJY$Y'c>@X5Q o3yC}EAk2Q5=vnThd?2xdPs\:0^~w+<rX,Csx2vOQ4]L<\.D$Ig Z3Uv4Ps8()RjUQTPQ99F׵bb1[ Ѧ;%!5f#zL3+o֬.:Aa/ )3N7fS[=Rz>c>7pcÝ7vZVi}5gѝ^(ulP20 YJ Ut~Z맯 ;Mk|B_Վs kUG戱Ib}@ *KWz٣X0§Щ{w!kBҭGƇ PnF7LQk~)Is,G 96ds^ۓ$1cc h"y+tͥZx"BIJU*;l{[[mG!R2kWT FH'{FVZM;OZ6@ʂRw:$FW|swJqèN{DP7ׂo'4Wf5:5T i&- 4Q*(m9vԆ2mŸم6kGD3^z0pGтg0]-b ԿBlYE͓oIzw(;Gxd|U[R)Q%ئ_m.MwiB0H6} +mJe7Rj81m_!Bs4EϠHI#_4aK_Ma%W@:5^ce@yI>L9yGVl"òE"SN]a?Pj~cA?f⭔ن 0Ji±SRF{^k~eB8ZvA9VzȖ^kk-6 _6}YzNd| 2uDž:$[0h!"C463j>.㶋P4~$ҳY=;_: h ٸ wnJ(4>?{^Fl\LGv+0 ld["'pTtufj\UQ4yLs ).CG2#!(  2EkƬ&8H\|`x>Ta/1Y ~o- zB)g1B+>Qr!:KoJ3E,CG ee> CŸ;;6Bk: bRj=ZQJ:6Hփ@l=RZ&Ԗe: s 5 +Xgn'{[7' [OyYp~z.&SL;TVaZ+5 ɤ2>1S}&nqF, fE,'64$߲#'60*X n#i5U|;&{ XATMj^L'ۡ^ U~ۧ+~lF~9<bj{3,{gqNp!eAN 6v˧C#FFS긹fDɭ1|s [ nʒjM&T‰O盍27fF˔#\)QT>:sT|m ;9wjdb|@ [%) 2dY,@%X5bw.ȆMF9I N.~veb! r N^#,PJ`B0lccĚJT8J^'ȆI'id_|U&we_qJAfqթR.S:qC?ᡄG(^CrL\sk2XZTضL,ٙc„UBnVȣ|Ŵ϶crIqqɀ<%"GymΛNK}T+*d #.WjagH>Rĉ%|eve81"-TwjA͠2w}rFh3ӻw%b9޸*aDSemމЉf~B(62mvc{yp}'%MOlNKs#J3/Cťw0er+9#Dyb@oO{1>+]@cJTw ƵtwD`VMQ;pzC[Gm4Bi@H0A׍jC?=T}r݈ lr\g8k\mL'%˩vn^xyOq6*k;;++/)"OɈ{!$>*%GykY~T8ٷiJrrӄ (i&0Rn\BL%,u){>t Hm9#yۻac$g40WqWuUzwϊ"A]m1wV Л_n}8ԆP79L{Wg{jg9 X'?H&ڀR &;|JAo+M+è]_]n/#do,Zsi"]-ѣE\+ᗋV0.3{7]9Ѹ5P6QSznE H#&5Cc/`e{ 8]t $Oﭲv.kXv.T FTMKH}7$gya 6fOtQDkubwP)Wz, 4p/pЄ1 O'{g#cO:Y<j~/= <}  H+8lE#UY[isMcd( p;޺(~Ll%C15'7TSwM>~G@HRkKl(@M ׹A,5~zpoz}0l$'<MkdFk̯77H #Bpi5ˊn ыz^W]J1*k/tIh\1H_ss9hethUS} *D?Plhɂ<*mVM Qϭ!mNamlH-k>ḣ]~T]Q y 6b6Bt* "wK؈Βo -w>'jUT4{:鲍2gidm41X0jþMK bvql q8pUcQ%qf!D %VBzEr4guf.?>3ogp1E >^Ҍ Lp1gN r<QV ߰ lx(?'+tK#\ Y@1ܾ mYY^fC,{/( T`# ƈ^NrI8<`8T|4Ku}*4_B5Y76*=yfKP1le{Rg )[>,0!6rK=ȫM׳^GlNmFu+q'kH>q[k)J~ܮռ].G$&62aBĨw<ŚfŹqJ$4_y ){۳33aWY];F4h'<}='ךڴ㴕xuЄQ8Ax&Wt_r 9f>`"+{wX]jUhb$. Yv 6XNٴb\I 5Z_] N%.ƨL-ooRD%ĖG5G0$ą$ɂK%LڧvFOl$̌߷wv5xXiCfɠ\=芁=ɾ]3ih9sN[;nc8H-g6i),z==%NcljKxog[BE10OW7)yHQ+)A;s97= Ķ T38n2{plC)BGZjT6AZ-.ke8vmZݡ-bd)K?,_;3Utg\87}TMg:~Ϝ}r,S/C= |񴳊! oC)3)]ڋ(aӔR Hn4ɽ<󕔺]΀\^ DoLX4?_:Sq7F3;zY ?=}!"NA߷l/l=&z Pcg!K*`loHjэ'H-i`ϝNFSaيԅd 4b|r~9`BVk2(EJW8\Eu1^[aO }>x@]Tr~ȫ(^HPyȜK[ґ/?ZP8”TJ{u&L-1p&jCƺ,DrGZci>'~fLxO E ,,6Cj6@wGv%"1l,2<56VjN珸T03fܓf;v=\P󯃝V7nuZK۹NV nڦpOBhܪ g+:v8k>Gne[J?!HE$zjH9' &S te2q.+]OUܡ~5wz vU~%׷)34+ x/~(K}^Xq 8aW{,Ϲ943`WܻqG`-p<{ iIے,WV NHaHHW% 1袼B"H@E>v8^@ZqhTǟ1_=y~y&҇+F䛮mO'jݡ[K`(sTqXw 'JQ6VcgUN͂.1in~+!+ .>~{Jz ?U[X]hE{,s@ЎX?rbW1JA`E#kLaINMI۰,. Mk<鞮qЦ^$<;(V41cc M_,8<l~SɜIn zJQZ$ 34'=3kLb6r Vo@{{a3]&<٥`[ƥ_lA] }vfjaӂD~L9u lcX,֚*73oǧB0 b/vp6rz\y<DYBn"C_G=gI<ÃusKP'k)eߤQˆ.=KT('SD ) N/6NTQo 0KzEf; MV& ?9Xi86 ma9|8m1]}"i)'EΘdl1MT'aB4?Hl|Q@ /7t}.`oM沂O/QN;VB Hdҝj o=~#R`9<#q*``l$GXKDbĦY=J)27jfFa 4X_kj]qERStoOU5=`h $CϠ.A+*koYK[sL-U̘̓L1;w,N4In:&D\q)jsa€꒜/&/וX%.%!cB=/Q:qvo\kgO8՜K]m"'tj-?!("0)|G5j3X9*68T7am"E&Զ5F}h r;-˼9֨MC.?LEXAQMȷ-;:RR1K1[ <-5^?;(V#>,e%TuW&[M|H( 5ՇxuFbkMLW.&Y dҕv^r Wa75`ۭFvux] eMD0?~B53@+u&hy q%]wjm!ݎ߆+9 wn d'ҎngAG=dZU0KKHj3#У vJ4GTÙ ;`j}7. P-QQ sNSo|`@zr)yHrvh(olN0gn_^e)Q :&Mf[쓐gjs-^cZ@^] YH|xꊹy{>-h&e+!TIVbUVu ò1/Te+Lp: pX,pΕ%ʊ9bѩp'GȿP*E. qh(dcL$@q߃OҋjXѠJoK,di&fʌDߕ6'F$Ҩv γ sݦq5<)RG\:Z;zTWc 5ލ5]A;XV2블wDO١ _seHc .qXͅ6k{0-."`!!.u zrzg+~?TF(NS ~Jv<г(OʥMСpDzC]Q4šSقEWPsHi/ihJm* XFO16.Y8~/0jк%@:FN+r޹r&QzNrn[z{3e2PQrPnjPŘl"PqjݡB魛̯:|;^Nml*ƒy09+L ?涁֠aV0L1Z`L-!UpoӊԚ-9#\gVz3SMxSyI76z*b.v2.A> bD7RJ܈ّT^WC \P$8ȤcE+P,% ՕB0pd"Q;7ǡJ.ɋ+ u!& .uv19'pK-ZXoGj`DT{_Tu~| [!Z`7g]c;-j4Ӎ LF,@B=7B51% q,t,BInYr L9+MqG  \6ez32B=V_=X(QcRWЙt[8>r!O\V ] E9R=>O G>KC, O1Ӆk:cuE:& k?h**p ۀ2cE˾/u? 1= ?j#"*#"2`4` |͡S^+̚% Š%Qtɤn?v{4mF49̕kR,>T'Mˑb 5v-TҘ;P&hr0= miUZxcG'Rltu2ђ^X$2-X=+QF3:3+K1rR>ģ7>j˂A*0A/΃3xMP\¦{uD0(s Q|O-pF#N W8U ޙ7W\̗E)$3Bl^^Z[GTt/(|z 4"N@ u>] "[T_ ӌմLuxɎ*Qj֠FsTvXYYx~ȗ1vEgL%j&կ} bo:es]yפkTCٶN luCXttysK%x>)SzOJpWMI ' RZٺׅ#uBz~ ۷ƜjhZA{7]? ,mmf+@l OF]Gq x=-^>;W\zgTwVo<Rq+? gmL\v\5;[LBcu.ݟޣlCjjF#>yV!3+BlM݌UbY~Nc L^TMvc͔Z9kD!Nn[[0tOv` L;:N*C ɻw#մ2m=ZOxbpE6L.YBvGz$3.,p@߽?#^Q9)go(nDn}ǘKX>p۲ ]r5 nbD퍳bXX*ƛ/Gz$JL#4on&r.~a􊁬,MT=8&#zAu`od+(_laAʸ S[7>hWyf`m8YHt:x`p&̬zB3-9+XZq`uʋt+`O-4Wb[Zݧ{Ï=Jނv|7Bͤ~t]ӶLnd 2cYܕ#M$8/snޑd*n@(/s@ìbx${AGU ["^pq%q@).W c7&>*]8r/ZqU?A}.I=D^G9)FU1jC[oixQoRaSchG, @&U4 {{s mCib҃jtqe~ 5MGvI^PMRl-@AASzX8;VbVp<F0ye ҆8mFGl]Z+xcNSQB8 nTJbELGZ}׋}爁6FN=k0gK6y9Y &@MH#$B Ӧ7ɵS:z2xo <Fr_v}2F[]aE<~Ort*ѣ(.6 ߦ/ Z[=+i nH%P'#;p7qT7UсRtzDjX(a 90*rx\?Drր)%;ʬEh1%LJn$0GƲ4u!^$ u͕נц[N׏Ʊ"x97W_FW" _@I&gpShv ztc|5)#;lMMҎZh#ߨ#p1+ublW#0`(PW鄖'='܏LИk]'^CN .~@ŸH՞Gdp_u ]ЎĀ17f=c )خ3$+0C@',&MP֔ڗqAH7~<*DT]Cޏ4@ ~Jr*"\G#o4iH]򲕒 'oS8J#/.ًA3^Y@ M&':<[3H .un^5(kK*uR զ5flk Kjk1 pShb[ T`Չ8UQИ||W:r8ң eex7`L.뜿3 dة.{-'&L^lIZ`K 4e`S p $W=SK?r:' R W͆m=з#W}9^l1 8ri#c) gޔل]OF{*K]<>SӉ\`$)uql_Tq@DzaOXNdsKmɐv7Tک7lpCAC X(ibOܭ8y/Ak ;A@0(0Ǭ#q&`Bl௹O{N,?o<݇#LYC-Tv;H6܉O@})>C w2atʌ9̎P9E0TzR&+lAӁYS4%yS)">[[A*b? 6;|h'5)9ٜH3b\XyjΘ;̶ֺZfʝ0$!+½ x鸛yDp(5JQ ua[2߷՘Ca䗆r&J6?8aN{=tN.J}I@%=fBbR_k{iw`tՅ5z?26~ӔR$1gT3ڼ7K׋g-cEP Mx@G-ʡ #~3b:SBw7ش8< zZS6xY j+CNNkRbz\]}~^ۯb(q)z̔ ʦ;_?1OgksY%p@V .~FoGʌB9É龧4 W_M77ăAĨø3_䝧TZ?ЃqO RNe Ru6 %҅6kb+ۊ&LAM?-r?DUYP#rBF@{:--3?,}~,m" łKtgD*Kȍ'MC{b$ 0\ƭaͳSPTp4xOeX$"!ͨM.0llu%Q";"s^bED<;W^j˖ "B"E$3 t)lwv s04\.t'Y=ɐHb䨽_ϲ,o&jW#uVl,I Sv2U9&<U.ΘOaƾ67*I%Z)_禮$Sœ'c RXjC!iiD|x6d$fEW ނX2n| ԨwW\wS輙ˎL3%F è Մ&),p(ev7W ہZ*5&$D&s7,Z؆1 ~g.LoF k|*{^a 3j e+ E:Zz W)N `q*s{oo=Yc /utou KZS0ADgR_p>`h$LZ7w_ybQ#>'j/F$OH]\2g0Q״ӀzPtM2)^l"mE΢;T'~9M]e^NNaV״ddorp; yDϡf ]Ԇsd6Ui6#T5_E ߅Rxfv3|gD;eٜ<̯@`.2x\-rI@8Y#szvߘ@ A}P> $h2'i7y.Lڏ79mCP-St 䊟fh.=<TSiO ,&{P1wjf3 CՏvBVC &)fsO-% Uam3R?m/XB9.u,k.zقVC6U!N +hO@).$6pqOh6C{pzxP&}?LMV1pߜ ;c9q!_e] `yJ\0*̧ \J~V1)-?э}RiBgZ V1&H\eOW$$bÈ\KOu3*ጯ|NO\,daI%S(6+\0$ i3bK+P4 3RGXҧqEmύ |YMP`iͦ\%с&`2&:%Fe-*Jﯛ[2 t)XE(R㖚Jς.ҋ!yS}#6p~0$`t.m8hS|1>U@zccN||m`PѮEۈ[k8ƵKӟ9dG%F?n a4dHTtiܖ-@,,7fR-@79|S~1T=@TE9ꀲ /Z&enjq^Myӥ76ΝIX!]3G;2N8ᣏA ^L4Q}ei&*pϣȦJƈZ,ީr^l:^Mrcut%zl<1GĨk.߁ǫKh}ɆVN̲ Vbd-)T}n4^ߢ^Hي%{jDM._0HzV٧|9776uZ{9iLI]a_sÇiBZ"zNB±糚lP~ .jsY~ {~&9f԰d?vU],z2Ʊ&jEDJ0/Go%8jtZ<{K?&>3] Dmս˼|~6Ss򝂔^Y,G/%3^[G_L:~lpqBVe&3ݵb&A-SP1eoTevɒF-I+tIpv@HBd: <2HO93bbӔRFMMHZl]sa[ZX]Xʘ$S"|owCw_װʯj=\Cۉ3*!?5vq×<7J>#5mUiF3cG h Y 3`YkVƭ>[j_Qغ63 9gT3Um'2-r؉AWF8=]( ;6IlTeKyç+@&^Y0˘DKN ٔP Z A'OqqӻE6ޠ\U_@U`O--9bO^ }~ȳ4(W,7Bwbw]mY"TtW6J<(1ͺ q! :O֤$ABc 灌iGۏB=Ƴel4V'p^E*mfshrơH+/6:#6H}Î)!Zg0n$Eg3&[QߩߗuzxhmlC2{[z,9DX9x(7D'o}ߨR!4)#NFJ!8_V>iBk" Ɏ1s55vXM1"՜H=aDXw@ <YEr~y(>bAK2BBbд2)w@e8rF D$eqe=<$D+v4*ʆ;.wK r>g SeYmN ?o[t lM,#|?)nR3F FHs.4":Hˍ5Ƚa'>'!Y^s,p$#8''s ^Y{ i;o6|m* )Qk|݇^k xWhvMPuK5YRCNdY TBR}3 V*L5Wqպ?624sN7xgKRx"(Rܐw<37KV͒"%k9{t>i5-sN|B6ܹ.L&~, S Jm#Cژ{CZ [=-пFw/.V3\ Sldb:Zh@z}:1 F}bP>ڢg3PZ:!,ω #*s˶d QJSU*.ͼҙ򖳸dG g@^ :?`\\zZ^̀N+t"BgNZ[ܑ;?21f?]2LmTۇ  I Q4Zb{1 <bY9xMٮˏs\EH-ˌ͖Ie#J~-הZ'Dc]asT8uD9:k#Ơn oF\&A2HdӽZ)bFS"OlY,mp [Z xcNÓIkml= Q\sYy{#OsD^Pr oi+gcL23^ܳIIY|-z`V,c<ʃH0=Nrb/p}= +TD ʒ52u/u2UUT}L`z_eT/b!zJy^>W)9Ѿ^zf~vIjf:,su>wbWY癿ltҬg>;BrazmV,Rj?)wt,9"b;4ydwf cul}dS8Q#B3oʟ!P{K(0}gSJ{j}_,`{< "6Qr$buH70EtddQF-2O 3S-J?ƹYQa3`NS rrBs)j`m1d7&Ve J,VM.sj+B#梠w{D<3Wa 6ٺű2EתfI2Ik7K60g{$>Dk1u +oEǑ eg\\eGD/FXOAb,QQ?{ܥjpABJ mZu(p[OBMႇBb.%@c~^\hIcH#=d&*O GT ln39Q(IF+CTP'GoCHOlx[SܩBƱB;yJ.گ'G d恷"heC峢:Gnoq&m(Ht5%2~7hM썾J׿)1Ua|/[¢DDpq$$C*A%xYَE zsmf0x s0[dߪ.X=-݈B[>T!]!wel#d8^Ƈm-7 (b CW=?=:4 YBO'2$\1[tikҚԏs;ȍAC3"ܓ#BovӦ+t4xڱqnUZ@p}~y$VyȺ-xyj}Lv"৛w8fYzEYt? ɮkK@TdatݕO֥Y6ŲQ=M/Q`' xr//e& yȁa 2^w<+ܛD$BGiՎR: -7٨{?RzE3bc"NrcǹEm_g! %{)V NI.)̯ū^p7t+ V@Pgx;:Go}i|)cq-Вh{c#ǖpOՋ{0t;`oᕒ$Z),3qs̭rwOu궷Nל(n~M%p[57'͸kA2;xӵ^Gdc=>m@uc%Y:M[H1ڌ .m`Y\ 0'J"XT I ޠxA-? m2DJ^Ey٧^Nc0xAl)-{P̖d"tOf{6fn+^}ۊJ <0c]]7}IZiI7ʏ*Q/%`a{An2;h.y>ic!y [$AzDkKa6N)F U|h!DI8z/ip@P}p#9V#)gS MoSF%_Y P)3P/ `|Zb E:{n;pe9?–0ſ!2Ц_$*Sr:\/4\ǑG%``8 wwH& v¿r:1}^OZ#*ؒ( .5=R5͟+IʒN*ꎾ0_(/_5ߒ;|p RP`|xFVb uΝDE>lN63iVC5 w!iWωtW^^L:Y 잇PJ^(^pzdLP\MH-o(h (Ԓ'+ l[K(~ AvTo~[Ka=^;(;&)hd dFU&ИDRni[pX6$X4'ac#@]:6+4\4g]rAHnRWq8iXC8O-j }QlRN eۉ9CoԦzz[J3]r`eylN>0m*[P,_` jiY2~~pb/DD+JΩlȹjJ$GDX+1-} xfS4Д# ĜJR/-T.q;emKܩN h+'Wu`ږ cirF1?IMen!P3 '?E }'&Pp5O5BM'.onY?t{\;u_mTfR0G9u""UVN>i ]$JϤ A~Ŏ6DzyiȐn&?%ZUS9vUvUw9E"c8'zbVvQK;ݶ*֝g qyij:%=Mt3}ps<<':#(5t k-q3'ó@Af^V1pD{= Udw'Оz6|4}0:Pt