Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Jul 2003 11:38:01 -0700
From:      Tim Kientzle <kientzle@acm.org>
To:        Julian Elischer <julian@elischer.org>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   libtarfile (Was Re: pkg_create broken by design?)
Message-ID:  <3F05C989.7040908@acm.org>
References:  <Pine.BSF.4.21.0306271101500.22281-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Julian Elischer wrote:
> Sometimes it's a pain to have to install the package before one can
> build it..
> 
> The trouble is that both the @srcdir and the @cwd produce 
> '-C [dir]' to be added to the 'tar' command list
> 
> I see several possible fixes..

Another alternative:  stop trying to use a separate 'tar'
program.  The attached is a functional alpha of "libtarfile", which
provides a pretty clean API for building and reading tar archives (complete
with gzip or bzip2 compression).  In particular, this could be
incorporated into pkg_create to address both of the problems you described:

* Remove the need to install a package before
   creating the package file.  In particular, using this library,
   you can separate the filename written into the
   library from the file used as a source of data.
* Remove problems with building 'tar' command lines.

On the read side, this library eliminates most of
tar's historic limitations (by supporting 'pax extended'
format archives and a couple of extensions used by GNU tar
and star).  These extensions have not yet been fully
implemented for writing archives, though I do plan
to implement the 'pax extended' format.  (The hooks are
all in place; I'm just missing a few hundred lines of code.)

The source code includes a very minimal standalone tar
program.  If anyone is interested in trying to complete
it, please let me know.

I am working on a complete replacement for pkg_add
using this library.  So far, it's working pretty well,
though I'm now looking at some complicated issues of
package management, version control, and the like.
I have some ideas for handling these issues, but there's
still a lot of code to be written.

Updating pkg_create should be much simpler, though it's not something
I'll be able to look into for quite a while.  Again, if someone would
like to use this library to improve pkg_create, let me know.
(In particular, this will encourage me to find time to polish the
write support.)

Feedback much appreciated,

Tim Kientzle

[-- Attachment #2 --]
P?\{FϯغMرN8-|iᄴj!Q}̮qss	vvvfvvfvvcCß؎g}գc|W^WQŋ#>8(J}(}?,¸tQ=VcB7s=Ϟ=3<?-iKu+|]Z)vBˎ=azug'P,|oB:;
^܍,9{C97BsjJ̤aI4S9u=I7oGXCo4&"iz!y׽hM]>:SQ;qUX*W_V o2;>\xJb}F[fܙFV~ibwJ=;4K03,&6{&rmm~n`ذ*5Cs+Of_	q`"$Զ.BYULKNP(ٮDB{W( g'EF(1n5՞/9njV=3Fakjx.JMX^'(+m<TW	
վI?|ã/gR-n}{:E,js 5,	/_Kkϩ'-,	!V0\KDp+/MOƶkeAYܐ}áo/
	ܳmj-×܂dʿ-\3#d3ǻ;r-:eVH7i2=9h%ػ&-
B2 f]f9,	aϥQ0~^xcN :[L-aEVJ(o텇><BUBf{'xsYJDSa}z07nj1:ҵ<j1cC6PPx
IxC*JiVM>1"/xQE#=mE{>n
\_߷͆8{Ʀ
ob$Z;;i{EGZ:ShuaySgÁtݺh
6yn{..[<ڭ{5ЈݞZoЪ۵.}.~]k]4<迭+|5ASTXY> BS\@N,z.?4A~!zo@hEM/Y!U9@p"gAk04śnAfV?.\M&Qxx`|aŒju^ox9hu;%5nHYB{OI,x="j$ת`r1sK~Ezԛ%DZf	@c!NspeD:-_c-%,[-XͿ9<7^op+`ɽ٫^^rb9loEw+(>ە'DyL
}-`ƾw%X1;X'O';i4bCcd
{8-À6Afr
Sh-vw}|@x;s8>y	[XĻL'|RKƥ1o!]f(@~%h
WY
fs4ͽ)PNJ$Ś]DKZcBeJϩ	iMcveȰ$;nZ&xbyĝ
91"'|):Bq-!Rs	$
j=ґQ6dҜJTHV*	C00xO?^O~҄tI^.T:~0O؉kw!<ةSj/Zcщ{ESTClH~_EQcY.(aBoɭ[uKE)}tZ[-v==[5vi$GU0iU&a2QT8cAVJv<t!MIA)]C'R*-t֠<PR_Շv籹s"<׹m*ƈ'݇
ΗeJG*R[/l8L(="*G?h/X^[p4lO]Ϗc:,9\m}
v.Bw=DC'yLװ<9_.}iNx;-n;5@R͝gbϝjo"KE5t}izSp/KGeѤغ*AV"PjrMX>LnJ*BB4+o+ 8Eӎv.b}>\m,ji80uWdakkKA'N^#S⡕?DӢH84ri1e*z!I=;)KIw+gVzd	fL!;-_Wc5uʐ&F&Gpi({J
j7X1L.Dz"HK@[K<#<DHY5SR
aoV@up@!]ef-eZQK#sL*?]?
Ԩ4
Sy5)1	I:(+b}H
}U4c,KolDo٪ɐP·HXy"V}&}Nd'Fµ$@We:
}c3(@",x'_"Tp<df'QN	O5vEc ^:_S5FpuEUVY'Ӓ(,F\xm$ל/4*opr~SU\&pû>}Rrx0hViŹg~n'	Ͽ4HuXIR5sbnƊF^{jÛl9LFʐ?Hwkt;Hc]&%񭨪7
bdH*ձ`Gr4$m2PsL8uhWM"r'8()fafbob'4G	%~Xx~(H>}-<PՄ5U.gkEbb.#]
^6AoةE̢޴v?rna+vfGRƩȧ-OI"bsAHZ9OexpZS*Hƶ	~腆#??hObbK)GpQb%8iJCŰλNcYk4{<q!	2sFruϦ⁜6:%@2TFGHi
8}z6ba1r-Ɓ18Pg>yύVor鈞wc;p#DdH'.MVK:-NQG:tGwU`
Nc+	{ShR)ްϾC0xޕbjPԉ󿈒-q9'cQn2)bv ؏\Xa ʜnP_ف,uCgyjV(U4f[UٜO3H!c+ضrEd#h7*a4Cx4g1=0wq_c?˦>8ku2PHU	,Rt#?{#MCy8dTps
Q%%^.r2i
A<ޅ}*&%nu$/-Q&tnjO&{2P{cS"SӖg35p&wiE`+2<Yl41vh/rV^mƘ,[2wR
N[[qJ7V+du2ʬ)ONXj`=$0AjIS&949ܔ$U-u?!Z\펡9ΌǾw_Ǫ2edLB%q\
9r`?ே?ōṖ!'B!=aW<}3D$iUX/oa4:Qy0GOD:<eգ-zB
'5Kw}?K|\!gˀY86-f3_":n_}NX`,Wt;JOʮ|UU
؜C)l-7pzzS93:V&빥Vq
ڭmD;Ȅ,	+K-xBwO?uD^<Z=zA}W|RKyĵ$٥)xN
Ch0 vyCץҳft썠`^Cai
<

zZs:Q3MI/b_D	W˼}XUYQfw\J
	$#Lt>?oGjM8UH7Yp\61|yS~;uBB}~AG;u~js.'	,Qa
oP5?^mYWlK?(6pz7sMWнC7CGb4V`*
YO! [V;]7e$ARy#EsᙳJ3k^IĕNGpdp#M/J>#M=T9TY*l&^EtE0)RդЕ>Vn4*QnV]j]vm^jqcrD)03}I,[1r
feEZqD
NN!v!Z鸐IWNA\:y>WtpV?a$ͺ.X%TÒ.,eoƆCA,Ж\`,t(u'vw86S73)d!
ⒺXYIԍeEDXYu:i^5:aP=$qA`_Pنr0	,&DXb|y>#_U閄xr4z};9(x+K
ԩR߷:}b
`TM{c|\GM5U
rL+	4mHPQ>^jSa`&VSOvk
'"L"⧁02}`=TMz9Nq|krȜG&bx*سnӸK/*H{؂;vx<.ߧ%>l'm'pxТy)½]U[+:5P@a+$hЕ謷촯G;V&bM_w\B{NR\漵t=ys(u$7eκl24'睌oqʔbbx3>^֩X,dh.3{*w=QPp#ם<,I`m>FNpDCk8o,̸=({h!t|.UIT`EXd?+?e]i`x$1IKpIlkquLgsɦZ$Mm"%7KF!u=䇎KC&"A(\{yQm^ʧ8Gpv&l/%"b
=9K{xŗ]P/7_zr_{oFv>Ŷ%aI6vc/Vb/)XQI`r5$Ij{g>CHiv}ٕI޷kgxRcjSec>&<1J)= tԍGZWb 𛈨T/lX6cE8܏%@ol!Dzl>$f)aǰ!~-=hfl-m~W(X>	H&9
m_pϬ^=OP'Փ<ˆnQ1ˈKVnJ
ӧr$S;(WE*
$
f@a.#na,卻cGõxV:}͇5즳=!CWfThp\ZX@J$96PL/lsG=PI=!L2!lڠc*kVtK2F0N.,TM;oPą~Y{݉+^QqIኧX	
`n__

QΟn#Yݣ󾡰OZlX]YMyH"TN<5;rᣌ[[
#9BWFͬT6~侴W
' '}=MUޢv|6kxO3qPEbg/L:F\%;T!27ǓfK]>q*ӧHM)#wܼjjWp_Uxj[l{"ami[UeF"幬dgާ
jU+,nO++vgt{u
fӾK/Ju~LSb?utDBeꄊ*yTPZ!i`?I&'
o*e!\ඝ֝nkv+4XsgHu#k,m	nb䎠a,CW=Bia~pw'yvoa>ܿ'apQ;&hp
"|+)eWˡS[a}Gl_}m,oO6wsƝ[[Q4b*6≹caja`a};meӎ
ZAhЦ
դL^fq$v_
aаjpH#Ŏ5qz`W
JjF_[lHU
5:-|Uիgb`S>?${ŕ7
NJ:"V$d
m00}|5EF|,SGS"EjG/qHn;\ud$*$Sɧ#vTUׯෲN^;vqy':j
*)tNp?RSa@9>^N23Q誫;jVVv5_oJZޜ\O[iUA<#~Tp$C\yRs}B!JhZoo%d"}[\MP\A/UA}FA#_CfDY=]C/'AQ
<~bʌOa=e)!-7$ޱ7kỆ[fC#2HzERDV}x%Sg>AHB\MeB8VjJwza\asDg?J--dm-_ kO>5G
8x*o5Po;E薦{[t4>K8eʶ|֘	ƒ
w^x NSkO_0ּOuL~Q%_
f5D_]ę`p_xi|u(Q~Sm?[1qU~Jѿ6=~?x7*?w;ߝNw4M;o}SpAĘ'YdBW\~ՋicA`4ؼm{N[e~Q?|~	{vXؕ`7P$'kg@x=ڰ0YW}WDAsmYlD֩wyWx21op
˩L`	V+UBaSF݄Z:">uԮ
$6 Z﷢<Ғ~D/Ȼ>%Ӭ9"^1[;HBGJxq^2+ekYJ?KHaDGS1ŠfFoXQe}mCzos~]E{!vtS<
'd"0ojaܗ+n3+[qc?rT09%ضe$|cOD#ja$+
F憂#(wbpZs9F寤mSSvjWm@kkN:u_:JAn3]"Y&MvzCbcWW
Y!(tWz_5OO0[^qPA6zD_3ocw~Z6<juto]9|
&@{|UYx	!aT֪[O4`Oonff

jCX|e,)e1&9B`~Ιhq]vRw(VeBГS66mQv1r[wi9`5:y%9BK:,Bw:t?oX/WzY@ajfգO''Vm|EI;Y[<cd
3,mlq'E#};swh)7MM䐝
@W*Aqo7$3^1,yBa.K"zO/)3Fo$RvBJLҤ>%Sm"SO?Mb˘^5Lq&)5ygHoLaFGfMBG!u#(j%yM{xm> ,|6ggGDK2ט0g=CȲ*E§yWg(O#HXKڦ#OFuj5Z8P\|paղ}a/@B$tB4l/Lu+(gdɩ\[<M>plzbx—3$f1_)5EˑJ$NPX&P2gx4O-/
JGYx<~fIdE?0ޗTeuJHAy"

#.X`qd߹XIƨhhQHOY/)%y%)x\ߡS|
Cr&,TkMD:	RP_زb檩a%M׭:ދԑu9'پB8`t4(xqAG ]üu}yɄ1B9Lc[M{
fۛ\ڝrv[E޸P-fFRh	jy>5ca3t/k}|7l|lsÕ"Pm\Kd!dȘ7\wj)G0
PuΠ~OIi5ŏc4KX̺Ӥ>7!h9!'YaW^Q3؂"Snt;5Z,b}RYWaFγ9`>M?#dKIa
?+?w%g!C ·Mee炘j\Is<<y44i9I>Z{)kӔX ?bַhm6m&ppk#dW
,#`lh_8gN,LSO!>7~n;Q"*M
Mё	Kboo_.Z,aOḢ}dMlMPLId@t>"z䨋H3h&P18=+%	b#OϺ	t&xXdlX4K!'PsT@1焾	ݦ8t+2|Q;3$Sjxb̘WeĒ:oA
)%=fB-kըjYN1Zu<4
?v56'-3‹/mSȗRSjt\BF0m#NTyO{5HфaI#su^6;I9+:t{޹#BkHAE?Z9KYKl_kyF?y{K[_,h^#/`lթi3ƌ;MKմxب'$ \4dEhq,u}Q"P]wKXWϺY1pP>H?HvÔErybX.nJOjh_ҚO}Tn7;Gqf-Ct>U(|?=TwӉ!U394a/#
.=\%7++}Vת/_υ̽к|^}W%#<I߸bx/`75+{
7@bBH8?eSf-wpZ^ltU04p'c5`=0Lg;\VE0ͥ>L2Wў&H/ⲃu'6׿ϪU$]~-uLx\ >\!XvDΓsR[@DVh/0x.2#N-.I'xǬ?_~:p;7K/avAZju[YgRnl^axB؆Dh#nH;lZ@|֨,rc=Wgn{8t,!I3q~ɋ7{[B4;)C&/Bط8p0}9ga9arg!lH܎x=OܼS
.ԞHwb^0ҜL1ڔ]?!K=lA:7ӝ_])sοj?-U+(#cCB	2?t<ЅB+|yA'A9ag7YU")%v|rT^{#f28좫1aPJXFwqlc 6G倸K5h4T#W4Ț!I%kLTkH)Hv.]7gYOô@1>?#P4F=}n	|	#]y˨PEJ|4?0+%fmkwuU_aFI]37:T⫢!0\[[ޘ%u+$PO'\mIZW
f84a)hO_$tZ{S8v3XH2?JKDFtV9|H`VBIҾj2EdBO)q`X#ۨ_Pᘨ4XUE<|9\#uÆC%]O3+jy0%vFŊ/#]/Ah
<'7=:c;Od \!ss6J;jc	'FA*0›SXvFafb`>1Vgr<.Hwd(vR1ow~zwK
q_
1˄44[>E'Ǟg"~L9j>;|'[pu" 4@B	A1~poK
Z%iy$vSC%fzLDH%bo(	K({U(ƒ*]\vl&ek>5IelFΜly0=N>|/QK}SI@kNbMf5ti'.;:9pwjmqwk.^\?5
$lbb"K{?/;+6/((Qܗ	J3FޮSWwY׍t˦f| 1aESnp☡u>|1$JDE*WS}DB!tCdt0>e`dsG$п0Rgu+ҕ5qpCRok[Cуm =)/9{iPNƅY!BR
>,Fh7k43n/J5tVGDN;se-Ą`"reeOn6to3HL@<a6?6cRk
ʼn)CKMtX=ˊͽoǒ<^[Y<?얈ιuQ?wwU{//I>	\<`%mrYfzLIaxĜH\#)ޏǰi1+#x*xSۣR=91tFC}R'u愩S
~cӃXB.k͇1/786ؔ{C9[drD/xd.LεvoխOnR%dO"P(/Xxռ"Ϙz8=m4p˂)2yǎ-ڒ2K[o:O%\}	0rFH;*b6thPGQq[NRFd
;*=ּ_Fc~&0|}>ʈnEcVSL0
&H}#jIWZmVF0&vESz;9&~}%f}SE1vjfKs7kY4e?$FU&Kaq`SAmk$alI/uT9`钆}%ȞGSP2S}3 --U_E4Z笮jEjhQ'匕[Z{;L*iX'yj)q=N:gʘK=*r 8!\4Jel=fbﰰҙ=`iܱwcIy6ušdZxG̀B31'yA\-wyR'Tq$[+<f$S.fta12fw$mz7{
? .7BFflwB
Xqũ7H~apr]ų{LXI˳Nuʹ:	qafԥty
B=Hfη'?Nj[ICM0͈(?DfK&^ dލ|[yĤ}L^irr؜2e M~eM!Mm&eMѼJn3bC1_ 6U)q<zǤ~J]W6303+?]l܂5_KY$L+0
(N޼_Mί-Z:kPN	}[cdFnԙ\ڠUAzoF.W"rXR>Md>L0|mj=CwbTw'F1.N+>´C+1%W<U_VE~
`a2Hg[:2_	=WcG3&i͝nMUi:ɔPD?2{FU/52J# (\@r
rnrn)э+yT:NMN<wga.uiE^_3*i	i	2ŞJd!9!M5YؽWf		.'b*$N>,ZƸ,Ɇ
A /0gwxCP2;S]C3j"LJp7j-&0'NE]G\kOǤ*;*
YZe[",sw7Mw**>svSe%*L>|\)nB@ي^Dyt<~㋰p[Vr]hٰp2{=Ov/re%r|%ny-$؋<b
31jN+bL`pr24eWWUK2L>BkS2m-Z&Z䥎rQ%SpySq}2jͼ\ܶoRX]B|%F8h>z'E%34BwMҖ g'vUrܛƘ>NK!S^O?O?_П~?rF:HL08"Z|r9B+Q}T-0
]ʇD`-zqu:|^zU(jV~"yP"`A`=1"Z:vCb.t"<1/#E4_ޑ.
c$1wjcdtac
vOIK#ZxW!굲eDg|y'$b̝<_\V&bɃ[flĩ>#!l~8A]l&VZxn~JZpjBSadOX5H
Hvu8kXxk.S Ϧ577B~y)PWJchIzO*Y/u/h7-5pm\E:#蠰FMkE7{.Wn}<qEDO:C]^Rе	j@+`5`QqIo$0le;{/[C
x)Zgq֧M$7),QmT٢N8$MI,s-f3̓-вkU7fG3	|jndxK]?^1`t閑GLQ1oS
{gAPV_}&PSV;>$qmx\.v5>	:`
Ulg]`ܓiCc̼z	{qfaj΍4o}[<rMYْge;#g5g>
޲O]?Z
s}MfSo,
qӹR}x\<e9-#Z/A!5-eqI`H#d
'kx̓=)o:dLn.rLe4Ȳ;bRW$JUlly:nKjƗOh;LKaw^y%A
0We(h$>~zM^u~}R6?2_LA!f%r`GK|\HI+9t6"SbamۙA6Ap@?UP	js#uyFUa%H|G$節<ž\b+8U	
'e9I/ܮ4Oj~jAJ5ymPjTM(Ug+ zCj+"oQY
[[fex_dg:aqP|
w|p/s_v2)J%6FF*5s/,!Z'|rj>v_Šbk#T/1ʉfk.$ulrQ$α)/UV @/'cwOw'q%Tm.1bZN<T1@'i3Ep3o2׾G0j~/-PaVꣀt׬17aYk !.fILj81'A4N׃A2bx$a$k4HC6a2'xV9)KrYKkq16x$Ȏqq
Oƽpk#$_y+@>2ULJu!VQSQzLOP(Pv=4N/{rn+\]շUSӱԅW>`}>=]]>LJaC(!Mxp<_9\11Q+<[ӄO%`YYۿI6>9*ߍW<bBZrshufsCfP3f+ʆ;įl)`ݻw//;c*oTKGkX:uHx'3_Ohx?M
Tfm8*_O|x) Ksq)k+iB٦w՝H"e,%yP5Az%9ɍѭ6VeF$x:^W-gE,ybL~	jcan{_+hAO͹t7{b=:khʅ,VܒVujJ/X+Xm}Vgi|<@Z5-1REshm,$`	r:-Rr4"]Tw!=Qn]QK5"Qei}+3*rEqgr4G	0U,1u $N_s5$
]KWl<[aY»?R
I-(g(Y
)8`'Dil9/؏# ֩.2_;(L=>,yNh=JGG8.4=Xo+Ňu$SuX7,2 1yWfRܜ1&7l7Q`.I\4ET1EG+Q
qtsk$)	2cmc1@0͡X9oasC""!&COAU#Td8ϸO'/]vvRe[s P~=u2
g
!P774rFp
14!q&mQDY
po6?f=_`q'*
"uJWOwם=	ߒ)p,QS\'~{vw\͇1<8>yY-)N҂`Ν֙S4̪utM릌~AX>Yq&̄ޜ~o=:ͦ2y0ZmM"W<?#uρp-☏|DѾr,+Su+ٺyސ=-g390Oqo|lrs7:8%EyrοYخo>`^o;BSղ?B#eH젌6YN'#B!:]kgEG(}s{wyAaiP)T3s/,="g/Q̖RO`efdut&-W]1<(
s1*ּܱ-+*4XX|Zr
|9o;+Ite; Na9d[PDh1[EsTt%q.Ś$V΢j
X*%s.	$JH>+ed}I!U%#][aWR1H-?X
2%^(x?Mf{ѲzWvK)SV`:1Qas>֋2diВflזr6kPR9,pu9:ɮ#-4] 1~ng
]]|ik?z_֟lÇO'?Y{hm1|U?[_@~wӟՕ&k>'S2:ubӡZ> s'^ubI78	e^
HR@v:ybJ?O_I<wIu4BvD Y#,0qI O ::3I<$#$yj54pN
\M҈aXh"FPʛ6-LFwI~[;̝6ʭ"RiYpL)ޮZ`7iZSA4VgAi~AlLqk8ix	f4lܛ]}vtQZ/lJ8:xuខ~Ҽ^okGu׿ժ	pRPoPj:?n5L{퇗
ñ?86o09>hPbu~e';/o?S⫃Ccw?94??8Cx}vn%D{5{?7;i=}{߸]ۆ9z_~ڃ܀I0G{^;v^Z8	u{ﰋ0/냃8hіy{S|8ڣ9ޡ~M3\ys#LtJ)=1^;8IoCENa{<>8<f4^{zow?8~laGAf?qmoka{6hMyC/em^M˧T^xͺΞg?uViK	"'w0~$U%V3~E^E?WYY/bonZ:|5~;;O?1<&wF<?WR.q!f&V	|o-LƦjwA.I_l:H̦/zM,NvƔ&swhLxd6m_;v?qiHؐH.2g~m\?X`ɶdm.ZnC/8C4Ŷ7aZrܯZ؟'=yhC;kRoJ?xA/ojnj,|9|!KE3u;-F<V8<	覥
,QM8db姸c!OerTZZbݘX7eLM8,i!uc+Yc0|g1YTUhY-zk8\Zx0!`wI (>Β	"!BRq(*-$~]YzåK~%z0,5qÒ& 9Oݕ:?_6&})d䊏0쓒UcN`=P>AҢϯJV_x"|qeL)vӦ$8ޞǢҫ^m|cL^Ya֫BB_yp+
_y[(b<IF˿YRIiwWK
,0m_d!_@b!.%ӈTbKʵ:'3Nש
f`(*ː}A9:$'kA;F$CtL'}UYr\rH%ZF?\-WRB:pׅ{"
AˢK[@/?.']\CApwޏ\bnx|DꙊVv}E4b@cLgXtOQN[hԉIGPVɫ	$^(f
=A& iߒ4}iPp&儖|P`H3yw8$$%B-,FNʞC
9gD)!ExL6(>DeN0oDקUoIgFfr&1دLZ,)ѫH!|x?Sd7Y+ʥv!] f?afX+{ #DYh!u---HNkzҨ+ǠBR^`)#0#8݄Axedcre:	M%eEaI+?183"NRtVd'cAŶV(bb`25,QKsH+̰нUj.,c/*[+l-
tԢ^Ki>Mz|r
QnD&2d`((ebw'&E݌x?+RBEfUW*MY7j(DŽ4~̒(R`LPf tQk(3ȰcpDrj5	t
<jXi>~7x
\Οؼ(Z4塡y@E_UzM|.]>D`fhP,ڐu])	zsozhUvƓ4
rMgNfi+ڙ	ɄV6*\Na1d
Bpx"2I}g8#kA|=g欒\Gh SA(Vym44n,}sLmr	BmKyC졙|@;Jػ1
OP=S
/̯7(,]cA<mQ7MbZ$M	Gw>ig>+Aa0H{3oxuP׳+Fp\8	hD(pxXm\{)R%ܿ:t"Ů
|JS#BqvzqUw@v
7%Gd{GmGB2jt-za~!|SvywT O/YLD}(h<1е_ϊ4d&dA_1$yޓERe;$Y]JK' R|)E}w\_.-Ocޡm9>0/̛=^=;po~ya(z',8ZPRb#)2%=1CaMh!'fhqRcF->+)%@CN\xHo|#S@^{&n(6kHx	œ)4!p#`'ov^F^xO(~U١ɯ95cd$XI.07swxxiV\AAn1Cv'Q^0t
(Ni/.pqsltZO	ÊGIsjxl7h˞7Z@8],qdbC`m̧B09'y	fo=: Eh7
}t|p3_CߌcjL'PZ>'GQkgdqblY}%9bOQ~qgOҋsCC_O6>'O>|p}؀Gw__+Lox`dY3lY$cijLtQh0@HFRHdCVuƹ-ksYzȢZv9<I9&u5YUX}J)vN7$V-v@fs+T&gpbm쥟nψ,Ujc& m}$l,`f^8:**F0`)5 ",q	AoW0{,&aJbhN픬tň6KQ?[' #2SkN
Tg\WNڀ //I)u-pAR*ϰ.!Gx33VLrdQ</VT4 9`ŽJͦ\0Р#4m<Z܄nrΓHB9/m^'TC\t8D^`nTyRQ{ʉV-O	X(mVVnrﴫ|[x(i-3Mίgh\Ǵ[5ŒS-tt|z}R+<:k3^>/XC	vld-VqTN!%	EMvfy0]tF"oAa;h
dhnQ9IN}+|62	,R	xE.-PI@5O&oXCx:%$Cis xGRvu`Xm]nqiIFrӆMgKS<}HO/#q}^]L"%ɵqAyBc+p1 
15v	xY[=^2wfmښpk(7?Y7L<ŨN".Rz<c	e"{o S5szG'{x/Nی&z3'Is%ZӞ&yZ%`x 1G$I		EO
rٴj+)Cqo$bfS;9֙M.L	@x(`"|C—;k6aHb+m\ H45
3!Hmbq틜'ϹNt}YNeYzX/Em5z}d.6[aD7yjHn{t8@
fg ḸV}OiBrGt6Rg"{3E։ɛ'W1gsF~<tDtğMdŎCFg!}AI	yGJ1>P2H=W7zx앍Jt>!{ ec?HSh(?\pDhFݓfڵ0&p@|v"V4|k'բKk"ho	+Ğf\Q(@GNeDNҷ4j-#Q97"G0s
;У oc@2p9/뛛&.=O8oOd}za?tMU'>WZ% @|Z5GWKx.J	Ϛ42fbP5PJnY[`>LdFNe3Q48iDދvKOqEOLm4Raꑟl}bIN~~gU5hI#)9]WNQ!-mJH
OEZD<rdE脮94
 NK}ei9kI"4NNaOS;]̚m@ڇ=cO`3"%/;6gCBJ	?9's2$)dsn홐F?9JEzPi	ZfcfZY.\BQ:0]$qhiE"qq<p+k"3V5ĵ򜰃$|ނ8U@#hњUDmo9<t))^YY25亯ёH8Ye}<O :P
pמ`pB)+k靴ЃHөtv."btخR]3ieÈ-Het@>Yإ![""^d,;re>SL44aQP_^~i%P)̴bϔHvE[#"\
3ը=M#zɈM_]{wӉjQEP#l+Spnn$B+rz1qlNf-i0bAt7tl/.Ǯ]_B3qxʎ-"RT!I]%rb[;K	nȷjQ*l4tj\~8~.E6_X&g2e|5"FQ1{|rp
{'melC֝0*-.Nf?_^th|w%
Վ6Dd,WwSNwIL:p2T-,La>1g6GJipYt|`SݡG̃Jws6|~FjOusy?I{aBn/Fr-7V,M3%5S6p˱@P!,Tu 'GUԔn5̫ºe,<@&"(QZ"D\6d{LVp"J6IKEi*?W}F(`Y.S+WLc<YV!
%TØ`Co|:AN3E#iÁOCp$Bf@PI[)$koD
)f*[eVCX,$2q&ꇗ9rP6Dl^_`7<<LkwkOTѓ>tB/ï`whkdݝq&uj`NR Th#ӏx4Kd,7I?zӮlb<FlN)Lp($$2p"MFG7>̒cG}Bw`;e[+.s$c[tJm̠қZpY+K}oWqXx7Xlp	~C#o;8X˙5YőhK!4N/*!A]xZ|*:
4+}T+=&0	w^Doy[;gy#ަ,=D$p:M4 ,j/dZ3Ay-&Tu"F$
JMCOl>r88p
}F.`B#w_<S3]?4(YePmEmrePGHBj.vku^"j793͍\ʎD[1g.X`zxH?=bHJ?˳= '6a#L	{~?p.tU]4HfX-kMXw޷곂3&=D]d53/畎DXI^=ԙ9Q*A\+TZ5AFscvy>f:9u6ܳŎ,Q!JiIʺQihje*dmV	 Hl)xfܣlMDžG4enE
Oh`U)2ӑ@H$V)~D-Y]1/艃s<X95ISא6	Ses˷bƕ˜Ff[]~9K)6"V񥻬.1eZp_Z_؂Pq(oA(ć} 4oӹ	1`]}H5I.22C72ͶŰ*w Xmif|$7uGSuBX3D1t{v>=>K{'/	i|=~_)]v۫jTpkЕ|S~
x26wҖ/jX/M׋kլhT~/JiV,̬׋ַWqe&-_hj؏eS佾
љ`Y"gz>vwyrs	yxc4%[B1\ΐ.GQưf^xWYKtIw>Qk!{co2yUd>~Hm3wz½|z8G&Gؒ*堮h@a>ܔ~Ot1|喹Z
PթB'Jp{	\NkuI:AKpTE\C^妎١UL?@!}F/5Βm|Ѡu%PlR)1E-"RWeUSBBt0&[;U	4t{I}~6+]$ySu:<<ʊi^Kt[0n4dT6I	ze.,.w1(:TB[׻}涙?~m䞬]M5#ooaugX+&ڟ"7ZM;A0u9v^x K1M
3ϸL2lGvߴ߾\ڏ'Y&'7{MN	!O#33EReKbdH%X&	F]rQ5P]3(&߻>[AX"._6Gg::Ql/F6r#
ӊt\*(4(^)-ǟQ)9zShO+Nz8.۽w{\]!bq[6?"⁎aԵ1h8y^\}-/J[_.h^N$'c@QW
=AU&(ZŠxŽ޹\y7t,́6!_^r_q'5SptSr-}/kVV]V|kl{;74pߑ`_hR7EA~
Fo
]kaBkzS7=6nGGگL'wߜ8zvVJt"x_pU.T砷75l_*T&-wlцtmSyj8Јݮh6){<uVo9=D)dP%GHu|,>ۄ|g)8kE<q:qaPeU	( ˓1 v}e<$5Ā?UTCvy)l])kl٥!~ą0!VY;LCRә_ΐqGoD\Bo^KޕR3
A1m$vܵf[Y-hwGD331B*sJo_dFdyD<+S?>Uaf~?KI2]-ltzn+I#o|]3n[xoFߔ1|5AӡsTß@ڥ.SX.VEpyq>!$EeDut
E4C'ٖV4rx¥=Kiљ{xīƼOS/F6Rȗmfފ&cNmu*x,
_X&1NչfJŽZ[bѵ,?Zn/[hq&sƷᅦG 
3V4`I3@-}%%ʒLϗ1ޒp[ʣrx|F k%nJ'f5]caS(i)!x0@'x@(3bqfYҿU
7?f+LD\qzaYWҁI]1$Q1fAꛜ%а\A%5iW-&/|qcZ	 .o'Ki@RkIu9jyҞ35Cr(HRBH=KIh5|n$p2EjG<33i<`eo°A6?w(X4XB*NUYh[Q5zzN^my*<rf73L1fo2[V43T!l}	#4
IblDi0J>z
Ο{k~?ƒ5~[@m8djNlIڭy&gX-J^ڜS$fZ%	H,c71\ODs+Y5ɛh=3~̕?K*HU*|A	ipWq}.Eà:#C
fvDeڄMlNu̞-vdLQJq}J>8Hm	|`zY<ռI?I_?	b(r ©ӡ;xheB
f},g
LEAc/%I᮸F_TFK;wHbo
bJLXJz5`6EL%f԰Һ(hvCL.k5,Ǵc9zl&ox+YK&4sul[<bݜ4&^FI54Іք˂InjZ+b~^poL1	L(p3ONe?ԾFƊt
dBcmXdCIdybT́JU9Mf6`+k@,Kq&!n
U¶7a)LYY\L?o|U'3۪iAՄu2 tfa\?mKbPAH<w}&1㟼K
_KL?(_Z#W
[RyX7.{IIEW^]Q*菰
|$6Yxbz~#í_xASˆy\?0aR6F]/yoq+F~*
6X|m.i`03>OAn4ߚ;Kkq~71H&&iJ|=t^0ξSbML=V\g54vAnʎ,53$$K_V8x!/P((wLQ)łm2KBtTC;'+>Kymr`|D)sEǭl+;ukc-UJˇvOT;z紹w8P{tIB-	PF/n!e2096-_yWOTIglZV	3"VXLBp@[YhQ)_oZJedjʎB)1u9jQ@](=hNŰ&OA/^Ffu'Ӿ9£T%MyhSA2jv\N;yj5>4pdvT4u@h0Eg}y6ǃIU8gg!{_k-yLɈԱ
$!,,[Yd:9#B$x#WgIl9tySysLlҌZMg@kDȦ(`OD
cLH7\悭cɖ^]fUNd[V#`EH<NQ!YX]935@TgqZ0<ĉ#4
mqV:/xQc+6ZdY{Js9XUM$<3V[_?{VV(WWB1imȚ3˝Pimڵr#d5)r-X-̢9no2aaSPr
ŽC#yb9ꬮUsy<mnR]Za;;%~Uwر6ҿ揇uu*\6?~}
?Y߸?w~|-Sa<J'G??jQ"t>9ٙ9i<3;~55wB"Ap7U w|б|f~e;+a&,C1?ѓ	V5ܨ
5rmXҜv<j?馶aƢIN#5`2qvSZ7cvo&LsB+3&b&2ӞyXԸTWGt>Ț4SC{R	&=c
+uecN+=)a0/nć=bI%}a<~l[ޒ2kk<Ȝ:Y̰JR;I~2/7z6ׁTΊ\U2Av5b.o0{)cnӇ#˽A(XيF{iJhjb3"ԝΓm<X4<})\,yEL?ᙟ
ҳ4Q1Q!ok3S"CFp{K㹓
&ҀV*rs.(el
Xn0z8c	lNG|'>{_fx 9p:I)ilڍt4n}lkBkLw
1eH_W,|S4drQ'M:t$ys/AC7L+H_=lmЮQor3nsEA*mj,v`x>C
kihk~"EtTF/ǒM0ѽKݵLi
hy!?~֒"yXt!fʾpU~0裰BC,bU.lo\QqOI,4$Iot{[p`'QPPE;轈pJN);AFq>vzu!*8qC)j$}߂#
QEhS֊zw:	n:gkC\1-4dNtc;iec^\Fv5H֙d9`!7'1)w[}F9N(13<֨\5$GQ4eCRS7VI{Gws`h/8YyF%=83OId@yӳuw;y5tdc}Ϧ50;w-h}GFg)$Qtubz踽'f]ڇͯĈvOSvQP$L[$vkQ{Y“;5d(Ҵy8
ji5o1W	 N׮\;ǢFń:'0bOr!ܹq%[efҤ3L1!#D^M1n%XAs/j1`Q9O-:o5Om"'l^H-tk\LH;IrG׌`΀,}H#Ze2߸z8(bR1v_QriwU^=vddD]"9#ݥ+c6 %&w:NYD~⎺I,$ES3M77iL'l/ʇ[#WGkW^ȹyS,wӋ6IVV
l(K;y5:%D^GpAp6!	&ERIi	~{	YB]OgiL.ZWsіԇd9mr^1nCj20Bgvs{;N&peD7njG$NƭԈb,x	g&))pTsg=ѷ}NkYj`mcxqr\f<7CyjT&7=^{mo>^_.]_wG*pW*ߴ4}?Tqԡ?=C&8HBCnQ*BgN|m@lk0`2ٹiamjTHxmT2Ә<AcZҐOPy$	c_;;A]0GZJ3'..ߓˆ#
R%$aM5(:XQYK^^f:n&tMSaN<>;ȥ=Bd`L퇧}5a~}G"i@nF¸Y9mWR-Y
+kp[u\pu[	]7llá):TNc26*{~V?5ƤJSvF][Gw:AYXz`}8KEtAfsH*d_=G߽?$2JS'PJǨNla`Vָ9`sb?b?4`{w'|;qG	oll_ǭSąvC[mwTk-!r$Zѝ*$76dc4j[{;>fh?#MDCԵN@^H;p>$}s5wF9}3n!FlA%†)fJNJz(F.7E7"BgOE>S/N26l~ڔ`nj	?EFTM3:4E
HQ+ &
.$W;0I!Y;o0vaH@nFF	XEMNO7.kLW"cEzHI!5V8eAu[*	=dm_v{S
XϹiռ)3	#y=/^rdIRegz2b;6Ixߤ.
Z%`[\xVOmEQZYX=;N-;e>M-""pth|'ehB|pYD{S̐}a10q-.<OBSḥۚA-UGBM:?#B@Ȉ>~
;E5Vl-
i,<َ>CrF
IR2;J@
[
Nbq-S^Rx`?!%8Ĵglރ0B4ċzNZ813zĹ%M&>ƣR
.	rt`_SǀcIb2+U3PCm_ dZ:#iy	h?x~|	5.A&ȠS6h4of2Kb|5HRluj	k
Z|ЌgO0AZ[szt<G6H`ʣM`	KIOSOhѯ쀃?Zf9sM<.lnwžGm>OSmJ&zsW8SMK4:HCD_SNDn|NG{ZV\j $7>ag

9At}Ү*qnQE
B<)
'Pԡ,tcxl	 "cRaV<\ėzYTISbaY}d38=u]U#+,EVn"*򇂠b^!!a9t&;$FMV)#ڠ.H
i~(Q]
50'j|2.U_w&qyl=	ep"P,]EpRS<u#dKY5!N	Baɚ9T
>KW`0|kFw8+ԱKv@'GdӁcs<橧K9OExM{i<"یl&<@
~,oUZ,N]nM
U	:ȟ%6"<9B킇]|kaՈPyл<\)~~R;<L⻘8N"&T(B%M*:QqmA)87LEUR?$H\'qn{ޱ^Tux3y7Rܬd<\jH*	Z(rP+<,A:ZdZ((\K(À8aߊrG?'kO_{tuFA?.U›,>$Y1܌J<A# @[$nJc΅`f?E	|O!dp	4{)Y	T(‰BxFLL	1>d|Y҉("7җ>W~41h\"BelĹR|m׭Sy@,u{tqBB9Zn^4 ,䄍U7/L.K{bhU$enj/cP	;^vH
~~wu-TJ.T5.s寮EF1Ca)8Dz0p_\~	= k4%{	Ct%1S?S^Fj U}o7F
2gu"1QjktG9qo	|6&?D&U^=
{wx2u>fN2e4Rn-Kn$M#6D')+TS˜tOS.cЇFڧsfZF$<ܝ1_"0<K1:0Ks
3
hA@7F=nuFb+.w#_up;lo{?q+mO/y4Lf0
^ƾi7~"dAϼ`~{C[88)+Hdț$&ikBSW-Cx
GX2XXF |vu54	ouDlc>jLܻ,R6N9Oavg=_=)A @E6mL60ҝ%pI+DÄSRjBW	ȰK䳴[CJɂk0@b	!GўsISR q%aI@MgCm#37N.6vy"gKVwiwU$8gk׽Q	.vی&fd7/%CN=M&Ϩ	te#8"UQ;SS
bX|WV'ʅBZH'%E+?pC|j%z}12MglQ„\lS3g4;5;Ȯ`OGxn1]pb|);L1z1,1O3deC|
B"FͰVWiWi V_EEՈ#tbOulTRBqL37K'|$=c@lv]y֧LOF*\tA\/s~jh{|<oIќ\hll\	(C_V7`<%z̛ǑbSbH	j@qԈ텫0!šw{{Py8f¿!n{szS8>.敋$mMCPd@9,42̖t|P@B"G]u~=ԯdU1l$;|W2րvȡs`әRbmb:,%~%DpkNڎcu	FwᖠvvlqYJR[+Ļ*1U72zn8![H	,"·N
R.jKTzyޖG.K'"M囥
W{٢ʏ쐝]:WC%-^E~rI
s;lUe0BcqSE_w_ Bd7T{[F(U˽ӭ~>8w˶D~ir!uxR6oHtME.X昻E;wӷVhDv
o	eK玜DgVef
%zјj܉ɿH1w*լSMϙ6WgQgS0
8$>?$6):ft3{/'>IqZT8ZVJqN+=5*`</[a:zIlgy`8.r}YCU)o2QCvM|B*-רVi9}
}_)k "}Y!lW.cI蛂d#C2l~kp@\eHDcl0	^bRR1l%?-G=Ygs,Y5_d"{=l9&9^JŦ>(,|f[u0F-lZ˚=H`Bmְ:`'SaJ*[wrUw+Bw![ٛx:NZvKw`}h\}~	xq>0L4xY30,4HȌo>gt~6Op56R\)rB%CgJ3*gHHRvch}091
F4_c3U#20ö'8/#zHsU~g?_[)<ˆIrr9ǡ9C>z&Y]t|\{ϩRҟ0x<K's<x0*ea@N`N+J:k,dw~;\[vE-r	* 8W3	]PxѰG,$[PDCaU/tf].=b=-p
_9=1{l-dKේ0)6gM?uVDk2Y%o''$&<Xj%o
[#@&"g$E\$OF٭.hܸy!
מvqqlօc&*@4-aimfq5M9[[hOB;vuhlziLNfA4Ԃ=/ߺtF6nEؖM~Ufxɷpᾪoo`K?ajJ*Y7Րix)V/R4f-8brXH֍=paPtX*yY	ɛw޼JYܬY$?
7F߳\r9KF_yuW
'3szqWMЭg{>\=B'.k:yb?G:xXc3:p֕wq+Y5;?ɒNEɹ_3`~kakϩ`autJޒ
m=sɁV	6L4c
va
W0*߫f9v0?Nj=xan<~=?ӤβQ.g	3EU)R^o@##ijg6kǪԯd2[]>?$pI:##5e`Il!'0Si֗ϔ頂p&xdOO*QEHAD[͍<KY<ĝGpHc"d7GgT""7χ'qs:e>w7X<>IE7pT(
I(1X	d*Q:!iAa6MF,Q(Qgbd0s<ChZ8)F?)?vz\z&QӱB(OZ>#/;hdǞOة,i&>ldhbh~8U}~ŐzX*R!n"C,ėbB\
q;hqK8q;!Ct[p[pkhp;8pk_p?5
?%_v$P:*ozdscc
=|t'};;;;;;CvqrZg5"JЦg9XYN?i9N	'ÏD JT^dT(	,mS@gyðe
7^X{Ͽ'6mG'W3D|Ϟi2fl,SXW?
}#
A{-DB)Ж_#ж5
M+}Byi/iAt
/Pl8'/YD.\O~?	gWzG𵨶]dF[1Ndib?9^Au<O6x!9O~N<__ B

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3F05C989.7040908>