[comp.os.minix] Symbolic links for 1.5 PC

rommel@Informatik.TU-Muenchen.DE (Kai-Uwe Rommel) (06/13/91)

I got the symlink package from an archive and found that it did not work
with Minix 1.5 for the PC. I spend several evenings to fix it and finally
got it working. All changes are now diffs, no complete files are posted
any more, except for the three new system call hooks for the library.

I have changed a lot because apparently the current 1.5.10 has a lot of
differences to 1.5.2 for which Fred van Kempen wrote that he has tested
this package with in the README file.

It seems to work well but I think it is still some kind of beta code. I
would like to hear of enhancements. Test 21, subtest 1 fails with the new
fs with error 91, errno being EPERM instead of EINVAL. But I am not shure
if this is really caused by the symbolic links code because the error
persisted when I removed the symlinks from the fs code again.
If someone gets this problem too and fixes it, PLEASE send me a diff.
The problem does not seem to cause trouble during normal work, I frequently
run fsck and did not yet encounter inconsistencies.

Be careful when sym-linking directories. If in doubt if you can get cycles,
use absolute path names if you have directories with the same names at
different places.

Kai Uwe Rommel
rommel@lan.informatik.tu-muenchen.dbp.de

(this text is included in README2 below)

table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 symlink.sh.Z
M'YV-9<:@>0,"#X@6()"4"4.FC)PY"N:4(0/BQ LO6%[,><'Q! @?"1<V? B"z
M!X^*+TXHP-*C!\@Y>=K *-ERI1$Y;]J 0 .'AALV(7CZ9./B9YTZ9XH"32,Gy
MS1P;,6:X.#/'S)BB8>:$F?K&3H@Y=,*D85,F#P@J=<JP !$5A)$R8D#DF ECx
MAHX9,G34B %"3IDV;^B4 6$&I\XU><0X7 DE#!TT.D @5BPG:,^?EH<J/9H4w
M,U.G4*52M8I5*U<[-@U'!BN6;)Z54@*626-G8F0Q9MND<9,&#U(7 \7@=E.&v
MCE(0**HT"9*$"0BI,%XT2>(D"984(.ZD>0RB2I4A4':L!$&^O'FT:MG.< M7u
M+EV[>/7R;5*$"H@5,&+ @ %;-FW;(. F66(.[0!"$V^XL58,,K 7UUP@P&"#t
M#A+J-5,+^>W7WQBSU49&9(7EM--E;&2W'1H@'#4&' 8BJ"!;#;[U(%TUZ"##s
MA#7<L&&' (:H4QMCS%&'&RZ444=1Q05HEE _;?;;3R9R-T435$ QGGE8ID%1r
M$$'$<,.7-B!7@PLUX.!"#&?2\((,::;08H(+QM@>A##4>*->-]R7(7]8Q,;Aq
M?Q\J"0*00A)91!5(T@&"'6F$ <*AQ-'QYHL,.NA>A';6.$.>^.DW$PKT49'"p
MCH"":!@(<+ AEAMSN. =>((>%:D+1R4JI@M0O8!F##1@IQUWKT(!PDH): D"o
MES#D,(,--1@XQ9 +\B7CI3+8Y:4.^AU4IX9]^N>AJ2*2808=<\AAAPM'3&'$n
M$"XX$<040:#[A!6"IKIJJTZ\0408:Q1)1AW.0LN6M'/.)$,,-DX( PW:VL"Mm
MGSP&^BRE!,\(@@QYQ8 #M@P7,85]/H+PV5-1H:LNN^["*R^] HI+KKE35765l
M&UEM=497M]:0@ZYDCMKMG]\*.G)H,9-&LVDWVY&S#"^,:8//Q6[9)5[5!DRQk
MI1!B;&.--#3H,14K4?%&9+KQAD<+?ID!A+V[M:HB'"L]*X8: =$1F0QN4"1$j
M<8["U(88;["1QA@@".[&&GV505969:S41!ES:'5&&2TD$2@/<\%PL QUR3 Fi
MEU%A/ ,00Y<\VLPUG^;#2OL*%MG$T6)M<%Z>Z]#UHQ^O%#8:3HD\!PB/#2;1h
M& E2I%A8B2\N$0AOF &"WX +3KCA:[2ZTA!HA.'&Y+^''#QA3(&5_$++[S8&g
M&W4TI(/N6)0'Q1 @$-\&'(ZE(099A TY!AUI) @"S6V ''+(\(8O^(4AU$,!f
M=GKGAC?< 00$-" 9$I@"GY7'"+TAS!ODD"+ #$E1<,#)_?[R.Q0D:#" \0NJe
MZD"'+^SF#0U18/S"P(82[08$"VDA_1ZC0 N2)PAB&,MVS$('@NC&(-3[G0D@d
MR)2Z;3 - KQAWW9S!OSM$ U7,@\*OA<XBM3F(?USP__*,)&)  \-@Z$>\ @Bc
MOS1F15$TO$,8\C ''X+@8X6SWU4<98;>"+"(@^+78- TIIFPX7=WV. :UH>%b
M!!#G@9.C0T/<0"X9:H\B<9C#!NF@P"SV$0]F!(L<W+"B/,C0A&R@R FS\X8Za
MI#)^;X"#65:)&\&LT8C:RX//5A($.<A!>Y,[XV#Z2);?A6$,Q),#&:C(ACPPz
MDEAFV CU7# &:&XDEF4@4C4;&<T7O+ AU+3F"ZX83FYNA#7+E$,Y$]#-*KX!y
M..(,RPC+22S!B>$%VIM#&C1"AU&6<IWVQ">K]IG)30+4?B\(#!KE\()(3I)<x
MY2P/L<HUAA<$5*$.T4A,IKG-!%#4H@C%*$,/.,'=]*NC'[UH\!AZR+ 8!Z5Rw
MJ*A*%SI.A^!$G=LD%@_*UIL7$(]5QD'#ZAJYT]WT= PT9(,;U"E4G=JT@< 9v
M*K'DUX9+2K-5':6J52VJS:GFI*IYVT@TQW!2K[8!K&38B!S:0$\L! $.J3)+u
M4H6)*L<(Y(\$P2,A7?"I#>X$FV9PI0TI29#WL85,?+VESY+@O#RT<B=AJ T(t
M<HDJ$9*E#8@\4?R6Z3QB"C KB#.#7^\P$/R=T'K=$D,=QD*1[T43!$NLZAH&s
M\[U'2L8AQ"G1$OT"N,"X8"55@ ,9')-&/;K 4;]"$2#-A[Z&T-6V@24E_Q*$r
MVB'D! YC&<PE@0<Y1=6V# \L8N!0FP1%]<XO5,UF:[.G*,?6@;OB@U[@!I?'q
MP_W.?]_[I4Z6.8?0AL\XK"-( Q4EAR%-U@VS=-[WM!K6* V$A<\%[VU'J;C?p
M8H%]+7E)3/C"@YI@X28B8A)01.RDSBRE*203C<Q*8[.N?"4LV34+>A:TGFG1o
M"3YYF4$.$@<86X9L,HO!0F,>$QD@5T;$F6F249YT8M"8;L5':S%J/JR:Y\'8n
M-:0*FH!XZIND!&<XQ3E.<I;3G.?P53K4L8ZO-!LL\;0/2^=)"XUE%R$<WV7'm
MH=*3I[(,( $9>5)QHG.%*G0C;>WY9Q$#ETY$[. 4U6%%@(:1H&L4@QS8" =\l
M#E3("#6D(ATI4H(B\9)-W.@I52F+<!:9U+QD@QR$"05C*M.9TK2F-D6Z4C:Fk
M$;8L+0,<Z/EAWNIS;H+4Z4/9BE&.@E1Q;BTGB]4)6QM+UJ\_%2J?0:Q4A#D5j
MVUCEJN\(2T"R"G.M0 UK7,6 9[Q:,["\/:Q&&@M9,\ !#6Y@M=CE^F)V69B-i
MUH.A&@ ;:#TZE<O*=:YTK:M=[XK7$>95+U6UK5WZXI>_ '9'@<6@8M1"V)WRh
MT[!_)[KB5[NWUC3&,=R![%2EDXK!49;PE0EJX# ['8M/D[.=$=+:P0Z4@%)>g
M--0A#6?EK@'3G :U=T\-8\T"N;T+=C':<6T]7PO;V 9EU+.E;6T.Y_;;XE:'f
MN=7M;GD#P=Z0)U_IU1=Q?E%>X[#PN,B%87*5NUSF-M>YSQW=<Z1#,=%D'F75e
ML8ZXK[,XQK/F=-M!/7<79HE+GA>3!G6X!ZD),8F23)11*R4$/.=[ZI+VXM:4d
M!017F,B"&';ONF +1WSQ2X^'>2HC,\8QD!D092A/^1)?/O-0WGQ7(M^&U5RYc
M+)F^36ZJ_ILOYV%64!HS<YP#'317YSJ-;C.JX1QZ,HQ>T-9"_8'J,^W@"^K/b
M9Y&S>@0](9+KS- >QW;(&)U<1T/Z0'"2]+UC4*,*U8 &WM\TL8ED)%L)2-3Ha
MPV2E1B56\F:IIFK'$@3),@,PX&M!9R:[HB9LDF[,1F?T1R$XPC"=DGY:-FR%z
MX@+&!FK(]BA5$"D5.'_U9R=\L8'45A\X!W":IFU9URK!$BM#(FZ?EB3EEBL1y
MJ&XH4H/$8G3;,@,T<(),ERP4 @,VDB?]QH$!%R[C0G F<W IHW ,)R#;AB\1x
MUR\307$N$FBE=P.V4R/GAR$.PR?7%C1?*']'N#'Q9B-\\379)B(\MW((IS(+w
MQS)F 7/GHGD_IS1!9W,]XWT[IW=/9C2Z!XBQ-G2X4G2KA@,X< ,S8(3.MC$Tv
M0(8=@WAB0S95AS9EH#992"N/!C=8(#=TLS^1P1#+-%VLLD:,]S?S-3TF]3MPu
M\ 9@046. SF20SF6$QF8LQ^;$Q67Z *@ XF2F'=.IF*(^(=#U3IE$!EKB&MMt
M.(9ZD8E@DWA4P#N_TSO:,UED0 :LZ(K?<SQAT""U>(O;XP+DD8W#E%TE 1/Gs
MY%)1E1U90761@XM8$#* PQTA5 :,TDJ_DW;D SGJ>"R'1!!) %F2M4-W11'?r
M1) Y]0(*$! #41 ' 0+4\3%!P 1,$!%F9!$8H1$<D1(?@9%.H)$<61(G81$Jq
M@05H,EEPU4QTA48,X1!,9 ;1]$Q8@! W] )U4"[>1$K-]8PK@50UM%3 04V<p
ME0 )P&4^E51(B458\%-@D91CL)1-674^15U!M1)/]4YHH)1I8 9,^97PA 6Lo
M$51B298>14?\Y!AGR3YL I-Q15>>Q7A@\1<W&4WLPY-BY)- ^5%\B04/24UKn
MR92%N4T<=9@)P%$K@4W:Q)B064[D=!57.99,69DK@4Y,89B7R9:<B5,K$4*!m
M 9:,29I%=);R1!:>B96K609MM2'7Y8ZNY8[P*!AML!:R-1AI4%7!M%UC<$"Vl
MY"B"(3Z]I2C\U2_LLQ)209<R^3WV]$MRL(=C.9@KX9<@ )@,E5((E4]I,)HVk
MM4&MB9D)  ?A*9J)YY>L44,B\Y<_N9TQ!5+W)%(KT5)PN4TDY9AHN5$FU5;6j
M-3^TB4;+ QC_4DP'1A&SL5(KY%UHI!.[ 4CVM$?,PT$/2A!AL)EE0#^_9$OVi
MY#?'E1V\(Q @X%Z#\I.*<@;_X8K(!*+9='941%<,EE8KH1ALX$ 6QCYCXIQ$h
MA$:P=%96M9<0D9[MF9WOJ1'Q&:-!^B_CR99*NDUC=5*,^:3E])!8Q9A46DY*g
MM:1,F:6*6:6?N:58M1)M<"Z6B95C6DYKI:4)D*;XV0;II*9K]:8Y]3.SB3_!f
MLSRD>0;ZU2H@L 1D! >PA%T"U#QTU46+XA#Z1%TAL)Q88 /J6)R*XH\.D0>/e
M@8L229$$81 ((05%$ 1$0!\>21$@F1$;T1$ER:F>2A\JB1(M.62QEX4A\ 8Hd
M&B1E$ )E$Q9K$ 9?T4!R,%ML($=DY1 A0 <L1$U.X0)OP#MOT )I"9M=& )!c
M0BN"@0=9,7&VVAH%-@<A4 =F4*--,5RVFJ':6$3;VA! <5;BPGN1(4=L0 =Tb
M P1<5GQO(!QY(&8W849VT(U^.C_9Y#-. %YSH*>M! =S$!GR P?(VBI<QG5>a
MAXIW%!.Q>';=XU?3\7R'52.)<XZ*(EH<Y*=B- 6_]QILIXMOQXM$X(O5XFHQz
M  2\,3E$D3X55@1$4 7-"'AR 0)*X$J7 @-B6&EWX6M'0"5QHUX.039NJC8Py
M2Q0R6P4KP02[ 3F1D0,WD .,88N"$2@N@K,Z>[/[L6L_RQ8Y,!?L0P0+P4%!x
M4$,LP#X*H4+<B"I6^Z*$V@9F(1&*0J@B, 4QX;3V)0)U10=W-0=K48\::T8"w
MXK%Q$[+/DQ.TU9O:=3,%.07F,Q@>^SQDA%FNJ!B+HCU.@48.25C(80=OH"4Iv
MD+98L%WZ1$J#@;=MH+?5$R"SL3T@$ >K94L/ZA#=145KD9 -]$ :2U>5NCTKu
M\7:K<J-8D"^NDP"Z*ZD<E$B]:D;MMQU#NE?Z49 )F2 <LJ B8UYBM%<R,%&1t
MBY&3I1..4K'6 0*Q80:VFQ[;!;W,.UOKE4T%B00.I+RDFP!!D#=SRS_LF3V_s
M(Q%- 9 0U$IB0"[,(T9PP$+\ [O0>T/2>VYHXJC102QL @-\M1::!+[$\44Ir
M(A$."4?C8I/? ZE49&'(ZSQW,!B1E+VNV+Z5A4UR()/MMX\H@D?;95@HL *]q
M9@,O$&]/0RQ?E*BM2*CDBP5KP:.Z<09H0& !05U:XA N\,3$6P1NH 9OD ?Up
M>Z]>I*]_89YN0"Q#W!W^"P)'@!-U *CR6T/;A0).P 1-4 5',"J7*A"9>I&Ho
M^JE%T+T<C!(A6:HD"1)U3!^.MY(IL1()>3,,*CS\>3AU158E.X?B*T9A$%.\n
M(UG;)5I#LEZ.H<++1!$#QDJ]NA+MUP15=[$:Q$'?\S[JF)!SP,44(1%?1$,Xm
M5!N\L3V_ TB?I,*5O!M));*&K,+M.\(&62(" 4R?I4*["Z1KT4 ]FBK%T8X&l
M&LF#,;AD$+P(-B@;E!YE@ << @<;ZU<AC 9^,1BV=9MZ:90E,A!OT+H<2U?1k
M&<GURCX)F3V2-<S;8T:.4J.*HAA(]9/:!5?03$G/R:-C4 >^E$V*(KTSP;^3j
M53B!P3QFL!*<A;Y^@;JU3!#<6\H@.C@H@L69*T;[RL79@1.V]!B9S*,*#:D3i
ML1*52HO'E*O!E%S$6UZ42T(KK$C9H3@EHEJ*DI"_BS@+W+_Z6R*:%$"2L1NJh
MY#SD"$O@A)&@W$JO)#BSY8HTR4&$FDW9@[H!1$E\2@7==3$Q8,%=!ZEL01BMg
MD5G<\5UWL!*OU7[G*1=?C4.^I,R*\:)%  5%( 5-T)YYR1 ._2C4804;J8Y"f
M &$)&08ZT<ES@ 8$O79C>4:]<UX+44-FL<]Y+"#?4W;TE41*/1CZ' ;\3%?Ge
M"9Y@E)<405HMFI"JUQ5F=-F)K,ZGXEJ_0SS.);R[86&,E;@!M$J15,O:V,(Cd
MI!/B=:#@ TK;2 =K 05,T*E34 24&W9$[2@1;6'LZ-N7%< "A-B5JZ*>O3S]c
M),#X\R]- ;N\6E4ETKZYFVUE(+L&W4PK46!B]*3"O<G_T]!YD"391#P?9)/Fb
MP\1Y24I0A%HKL3<SE#8Z:]IBY#<M0#TOFDY.U!0$B9'.<T,$%-8BTUB/A51Ba
ME,)CD ?G SFD^]EA( ::A#ZV=$7_8]A19.'O)<^#P>#[\T0"U'Z7C>(G'D#&z
M1 <079VV2TFHHBH< N!8L 1BT1TG;+Y?I3CM?>1L  2J0B2[P;%5Q3_]0JPMy
MT 9I04IH1"1D( 8(VQ"Z$\<5J:DS=)1,M9:AJL>D.I(> 1+F')5KN:HLN1(Jx
M,.=CKE3J]$1GD  3<R!S=#%APCE;8SL[5FDY$ /7V0((T>9,I><&U@1]7FB w
M+@-BN!=@6^AR/N>8GNF:?NDJ\!PXP (T$":9?N@($6^@OF.(CNA7,@(-T4?$v
M 0(S"P5,21XTP!>KWNI/"P)0D 1V/>L@<#NW_HFY3@5)0!]3X.LT, ,KL0(@u
MP.K"_NI20 1,X 1+@.PU$.RNGKKU<01)0 3(;@/8GNM'L.W=CNPZ\F;.GNUWt
ME 1'X"Y,@.R8A@7,GNZY/@5,0!W5G@"T3K7RWNRX_NI,H)%4X.O^%NZOG@1/s
M, 14\.[Z#@+W9_"#L2Y.L/ $?^WH_N^#40184 1#0/!4"^9SG.A<:96<=>:Cr
M*I*FRN8C'Y:?">>#C 68#DM A:Q-D>?HP>=F 0)Y0G(SH'$,0^B&OI.(+O-5q
MB0:,+D8Y6R(@X&L7V(!)6.E\HNE2/^HP3^<X  ,L@ ,U  )4G^I+C_4X$":Ip
MW@(0CY%?X"[T001?L.N]OA^>LA_9V>D 9$;899[(801)8 1/@!TJ()$7_^R#o
MD01?L-Q4\ 55T.U?( 1)8!_DL1\+X_@)\ *=3K<XA)-UDZ*K109?4+=BE,T!n
MP?5^3Q[T?O"#7Q]?P.UJK_B,'R' "/F23[F1:OG[DZ(HJOF<CT.@1#A]O^S^m
M#OAF;^_XSI3[X6^.'_>O&#V9;5*@7_8;R01?T 1/0 0>DVJ.;P-?<@.1W^ESl
M%40$O,[\+ =K(;!E+-PB]3N[__?J+@57@ 7/'_W3#V>.S[-?DOW6[%S</[$<k
MI/[MDR R>?ZBC_'F*_$MO@-4'N+??J !]$\*W &#@)HNG__@?LL/Y%DDA-"Dj
MS%P>.WE\;,U!D"-1IAJ;26!5G&X#TKPT8//2 LXC#SO/#=$ "U'I@I[7:U()i
M(&OEK.TU.VR$$M(Q+9#33;U-5_4ZW0RH :".+U"]_P?X$L"]<P)%(+DY@8M1h
M \#=FRE[1" )2 &TEP2+P!+D%2LA!/2^;&<$!9Z5<0Q7@@[D ?/4ZJQ,@=D?g
M(. +I!-1 @+V *IY(9NO/=6!-N!FS,,PXR":;^YM@2@X!8, ?5""7<#->+T?f
M& 0/0JJ#>$:0.E3!)>@YG"!Y@()2D HJ0;: ?[" %AQ]9: +4H$@8!_L$XY[e
M,V*0#'XB,_AH%(4:_"\<Q T:H/940+37'*R#Y>$.0I OH ?YH"2T@H%0 4A d
M,6>66%[)NX 7(<VE/+@V2DQ3R_N <:X'$D.H@N<2P,US=#DO!=X%A%%I<J#0c
M0PB]\.AI+:7'].I/M)D)A"[J[4"I%P(E4=9K$%UOZ)E#>6,(51WZRW56\ DPb
M@2&P! X0"AA\[&X);@KL8/R468TB*\8D7XV%$(<__-\6A(=.X E,@2PP!>PAa
M/FQWGHX?OK[H,OO\1R?K3<PLJUVMY?<.7UT\I )%H E  2J0!;#$/9P"^? Yz
MY ")V.E<7!&93O,M4LT/,<@1YQT _(CVCMK!F9.8$FD #&"),7&A8399I,@,y
MXI5X?=--M-00!_*BH%E0A (*L7R=)\ 5("!,\)ALW>@6[:\P %?@%T<D@NHNx
M"2:\)2"S=N)#O(+Y 2ABN!.@*"2"<R-9P<0@8L)'(00\U1!H?B;Q++(%S0$4w
MVYK_<(MDX 6@%QY1$P^B1V0"3\ )I LJ( 6HPQ$@#SP1(NJ'&0 41<F+"FXUv
M"G89Q3>#%'F44JQ1V@%VM3795LQ06#9Q",3%>.RHP3!;*(P-(1>*PPRH([DXu
MELK@X&.((+$)Z,*)),<F(&&8 V1E29F\8(CR^MAO#(X=T'D@PY<7\Z14,]QSt
M,Y \-(B#02'R0A.TAEY/2HT!;1@=+X97HQ"6:.L!/1TX#N=<"&006(]!B#I,s
M=R6.8J>S+OF-)*RSA2"B0N%@(%0/Z07H@1,R&T-?>U(4;J PD)&'E,S\PAEPr
M)9$LF;G$#6+%_L?]J![F:0PDLSNXR@)",A,##.$AN1DM^*#^1]U+#P$RG.U'q
MXK 6](!]W )KK A8@228"Y_@F^F0?H%^,(7 Q4)R0OV0D'D$'9V!M2 XP(*0p
M,$]R8 ?0OV[U=LR??^R0?>0AT($>*2F8$OT[:3R*2;XHFC027%>+"B&UBPS\o
M ([H]= C"U"/[9#LN4CR\/K@(R5!5!B-/BJ7,7@?(UP#:0CZD3]^Q?_X/P3Dn
MZX(A(-) (DCP]S\6Y'2ZD&P 0EK(_T$A(^2%S)!OL@QL2#KI!CYD,O,;;""9m
MV<D1F1Y,))M$D<EM13*!%OD(7R2/BY%B@4]ZMB(2Y08'CW0*"6Q'YDAR4<8*l
MQ)!4%51A3B+)_\(DA213>GU0LKCHR)T@$FR28KB2X>UJ;<GS5QYY8,P+'5\Rk
MWG ]]OAF5*%Y,)"HTB:1A=K !F!A%BP/2Z4,'$A5P4%Z0)]L(B\.)GI+-_ @j
M*R3A&)>%\O.-2PRY3!(E"!B7'_)=1@A82![6&0J8EHI#7L(  X$O2\1)2)&:i
MDE]**C:P E8 =K"4YFD+],LNH"_I9?RX:I.#(GC+?8EJ5MJ#E)<),?$A1GHHh
M"(<>LHP*OF;L70EG61Z@95[B(/W26EI";*DGN:6\S!O@\B6:A749*,WERTR7g
MY])!(DH\^3+CY;B$E T3U=C+?MDP"\? + D@ & F08%)+0OFP3R1"S-HKD)Zf
M%C&EIGFPF($28SX!C3D6W4RQI'HQ[P8X#!8@-K=>.D0(8A/KB4VQ=PA7H1UDe
M'&9O"""!(" %!I]=&P))8"/I@/+$0NX@"C@!8^ $N(D$( 8.R!IPF&]S>0@^d
M(; QEX#=Y'AYDPGLS0/FM[*''/B;8D!P"LG"N1 .Y_2)A7!3\%%!M<?VBL#Dc
M[)N6\V_" <U). VGFV%V< :I*,[!=P27P-[DFY4SDOU--L Z.2>_0)SEH=5Yb
MMG9U.W&GWSP!/T!S7HD^@&JP)"4!DFT !:0!.- "?$ :^ ($*CW8@-Q5^@K?a
MX4M]BV\MG( YH#Q[X-<\CS' !LB +YD^\\39'!@V8 :PSQO %T2FVP2=LW-Tz
MKCU>9SJOA"/YD 43%JZIXD#0W  *B %N@O?%SM!)._$=(V%VC@12!E#>-T")y
MU2@YH GT?I('X>E*[(;_))<[LR%,T#=3GH*E&4 !(H!=UK\V"0)$0 ;]FLSRx
M6&J,KW9Q(M&R-(\DU'G2@1,J J2G,O.6): .Z":>"43?0 K@ FY !*R%%[)$w
MJ:?UQ)YX,H.2!W;B&&@("G6A#I-YKDSRT-BDIQ.]GC]A%KW+B8D=2&8)?5 \v
M5(W@-QZG!QP"0;!;4A0$G-'G"7M0P/J,$'&T@A90%/ 3.R9"J*% \.(4NC#Iu
M/W4H#_6A! &("M$5*B]+@!%%HDJ4%3;1ZGD]LV<>-0-5E U<T3A*'K2H%N2Bt
MSL.+4E):J-E:0H2 +4M$E#[1[ E;S!Y)M&O8(01X2\$'_*A=&2VD)A2%JM%6s
MPD;=:%_#HKCT05T1.[H6^JC_] L6U( :4_-9+-%G#@BDG$,(,LLIND;IP!9Xr
M(0RS!7C+VOG\@@ 6$*!TB_NA '/I0JH*'%@+*(#[T4(YL$ :""<% 7T AQR2q
MM:,%$T UO:8-))MZ2Q0P)/3)&2 .9&"!?%%2.HL<)C(MH ]S#61/1-I$XZ@6p
M[91=DM!]2<X1,MLF->6EUA2;'H1MBN^ZZ3?UG^%T.XS3"%E.N2(Z5:=+I9T:o
MT2PJ3R7"M2P6H5255E*>N40$WRLM MC!E-+2VNDSZJD]Q:CX] TPS(FY*!. n
MXG"I*Y,IW5.-JDV10S\E@0!5H([2,&I?#"H!'24)=:$R49$!!QQJ>V2FY?$\m
MW@@:>B/6(P[MDC?BTS&(&\ P[*=YZ*(@M%WR3%F*1RL+"BT!-N"]E <AP-<>l
M4@F8 Y#T4,K5AK 61$ D%0%S )BNPA!R5_.J>;A7O"E1_M7 6B?#&8%LH8<Uk
ML;Y3QBH"\*I>)0]. ,51A \Y69-H,G.4F+6P:M;761XXJV<U#ZH+^1'%-5!:j
M(RD!) ^L8J.P 'UG6-<">4"LBI5,=CHBD"#88F7ID$.M'2F.M&)AS(,A1:&0i
M=+->SL[J6,M#ZW 4E+*V[M:&AS#+P!:  5U@MZ;6\@!<$^@NO$B)R0)^).*8h
M 4M2>CV&@JPEQ;S"]!P;W:,+$SXK1U1'[#CT$I,VA(9^#FSIA0GA$ZTA#,6Ag
M8?/3X8#U\#YO@()MJVWS#8;2I@"H3&EU<'[4P?UAAX,Z2H3DZ[LK9&5*VB[?f
M@4.R A0Q95=M2)DSFV0002ER0'04=I16TS%:5_< _;N>,]:4SH0 DD_F6P'Ce
M3;_C)[THZ'7,SA\$[:(H(,:N4IKZ^W@JC?V);=#X$1 W8%S[B?X@+L<O8FDVd
M@]CP7"P*2++3<ZIJMB4B!+( 2,RI9+0-^L\;2U#MRY,=% NA%=E)NE*8YB13c
MLK*DA+B V:[J83L=AX5D[.E[)*< \0];%[$\L"$P[+& 0?H^(]&BY3<658Z:b
MAX<J:<O#4>5-$S;,/E&?.4OW)RP%'NX-J0B&/9M'GZ6FO9X^,VENS=)I((Q?a
M8G-J%"&.S)'?@;DZ'#2C"$96CFI1_]E%E>SU3">*PI3R09*X8>^ "TF4>W8Mz
M7('&2.P4XSMEGN?5+^%)+_4+U^L>4W/N-5%26P\87T/@E6J&S[#/Z3RVH +Qy
M!'^5M@T!J\1 _Q$=LT6UL!T(8P:LA_$(5L>A6%6KH>Z&J@!4(PM5BQE D7X0x
M)6H!3EDRM66TI% J\Y.*#'F9GTS*O7Q::\'?6K TT$:;1SKE5A7$87;1-( Tw
MH:P9-0//%2R,!#XI C!<)VNXBDR[UI<RD$?_;!:]EN3!WU[3H3HO8>YQI20Gv
MU.:F&A%0(DK PB ()4 &4(2@2Q',P_UL'W_U(( $[:ISX8P3!0M0U+DL$?GWu
M)4B7PDTU3[>%9#ZK>UNS[A>H?5R7 !H.M=!TL82_]9]>U46B57P+8=VA';2<t
M5?'?HCV!2W#)@\D4# CWJRI<CNLM4>X:>+@D,NZ^TXW;<6\I"06YN53DVI3"s
M:G(;FM\% 2IW[+;<J^H&7NX6C;M; "_0W!/ !6# "5B4Y.&YEEWSP','10_Pr
MN32 ($#>%H 77 !>^!T:--6\F;\*! +KZ&VMU1/JLM*I>_UN -?5=Q+W]I*'q
ML8MV82&EW8V8RC<NIL\T'*_M,%R^G,7ER5<Z-TW K0D$L..6Y]&.01>V7.#0p
MXRCK%ND9&'>+,/2KM*&W!W;?*D-AE"QWS/MDO[QBZ[G5=C-%7U\0V!]U8)>!o
M6B)"$(:$&JE-9,% 8-*QL(V<AX8R:"26E<Z$XG 5[&ROI;%/8 EL6'DI$2*9n
M0#B%E_.%I9-S:@9Q%W* @XI"!6 'K ?KJN"99:TP%3GLV5&Z>UUI%OBT.K6!m
MZD03L%L@L 16L_V.*?G:-MNZO&4,0,%KZM1&W<'@+;O($):7@H]3'8$JP 3Hl
M)A#>P9F/X0KAVB<U(6@"T [FZ=CB25*+@BEM)VVI@\&,=L;!8,Y(;)QB"@JDk
M(&&0>58\MD,8^1TLSA4%D&Z&8GN'.6,D4Y3KR5&$D!3=D94S3MJ%B: 7F8E\j
M>Z.8XU+J552Q5VP+$A Q? 6!RC!+6=_!@'VE(1'2"TRO^Y*ZPJ%-N*.!\8X^i
MJVO) .YKZ>KM#CR/64_?;F(:"FG=KO%3*A=)C?"1[,*4@@ +&0AR(#+<+S(@h
M8[1'-L&0<W!.\K[7-Q3/CC=:16]84$PND.5YS$*N777,!6:]([=D'UM%4T%Wg
MT=BY\ !X]):"RE#IE#;1]S'&*L#<@EXX5G=&8",MMPC!^ZZ$+-2#C9#@BI)2f
M^ 7;(AT0 RHS_8I5%D"$5'&SY+=P5P5XEK<FD+.+#'"8LE %J JH>[ 4R**Te
MN5TTDIT!PG$2&@0?X .310Y,Y))$&3=8R7+($#F4'I,?-P=0@$2V UL@!H37d
MNGH2/.Y+%;E?P*;H4C=@L+1')QO)NJB%9M!Z"I-E\DE.R5T@C_9D7P)=DV@>c
MS68B%8%:WKT;2M.22=;(*%DEKP43 !;$ ';P 1,3E2*'JNP"="^3G0)?(.]1b
M"31[1\*R$>"#V.$G?>2=7!X&LKS\R2KY(5_>U\=SWUMVX5L\MA759?"!/UP a
MWSI_3!DY2.1SZ2UE0$^5HYZE07A+$>"702\8?JF)^2U#Y2T@ UJD%ORJG=(\z
ME$DT0E9<D43 M,!#(B>)MN4GZQ67])B^]_X0TG\\-0/R0%X+!9DL'&2 ',FXy
MWD)N(0V9+7-1'C?0Y, 7D,B.&;E^ 2)Y!N1R8'[*&[DB@X"+G)$W,DCH%1YYx
M<H#DE1F2MW(_&0/S SE'Y94L IB5"WVRAK>>]N;?K)'EY6Q.JG-@.,-*>3F.w
MBX!CCJ>7%@>+9X)&GL^ O/S!+UD]OQUYF8X#GGNVN9ZTW1QGG!PYM/,6&,\2v
M>25#V98<GN7H4)ZN2J4FNX&;C$QRLF+ER9(D)A/EGXR@-7)0!J<96B:+@.@Ju
M0)$R)U'*J"9 >]GT3)QI;']>;@TZ!8]3EV*@._096,E4^1Y?Y8GY4FFP=18#t
M7;F%M&"P+)9%!8TETF=9"AYFIJ26I;-NAJ?7TN:Z96_)H>ES@C;.Y8$NPV+/s
M@I?C[._8RW?)+W/$ :V1";-W]-$L>CV;TA>-4R&S09:7C%D$..9+ZZ9ELV0^r
M RC91M\'MD!P,7.6?H^<&7$ DL]<X4*S1A[-QD00-SC3?&AA: @T=?EV"#KHq
MZ^P84,#<XY%OY LTY(&<<?UG9!Z7*&XIEX<NFD!>,U\N X8Y1C_HF1P9AH#Vp
M,*[4@T2_5!.-02VO>:#5R[23;N(R039;L9B<HJ)$U%IJ%(>I&?)U00&<^I*^o
M:5 =0$3UBM;/]MF4MN<8W44AI<,UU8FY@LAG.>I10C11KLNM^E6WQ=8FJY.Jn
M4<4#29DM)P 5#4_!\+:6T:4ZN[RU;!VCN[7F$]$1&@2X:BJK*&*U42ZJYSI=m
M%U4O#*57(:Y.N_I8&>H,%F #&(:DOA)-N@QT$M:L<%>U"*@"NR@R;&EY#0*Vl
M0&+N N7Z5J/K$YUVO9ZB':3S%V+OHHE-'E1AQ?;6TQ5CERR-+4:V +-BF&[9k
M8QMDD/VO40VM1M%O!MKRQC 7B[?M0P.&SM<X'I(E)7U#X-*NK^)7C(!B2[0"j
MJ\6Y+1SJ%CI^X@9!<FB )2+%02]A'TL68#:999<DFZM9N&+M6(PJ3_4<<)*Vi
M^#%LD,@ !9H9!Y%?_*Q$;$9F1XQC@FPUQME,, P4ZJ*,6Q0SCC&%T3T" 160h
M!"@)3O@7%9%(9)%.EXUZQUWJ'1JJ;CD/+F &DL AX=S"8IV),K.1RA2%'$$Dg
M38$.".XA==F<YQF8W'VMTN" '2,@ZC;>O2/J"&]+!*)P%GI;GM(O)/:&?(\#f
M=C_H"P&I*E+$N<T1\AA6E2%>X,>^1E+KX7Z$\5!+>=B,EQ  )D:.)P^5@Q.Xe
ME2WQ$PU/\_([^ +Q0!]M0(Q(25HV)^=B5:%BEQ,/8 <4@!SP@ _P 3@ .TS=d
M37$#?(C[?B'Q>WX;A/W])7S()B9"H.Y"1-KI[1>J=W,E#]B[V5VR4;B]AT#Wc
M;@+?F_YQT'9%8LUWX)B#ZAM54A$C6?;>]P9! ?(;.=3O^YV_6VE=*. E'("Cb
M< 'NPOFW 3?%4R\$'@SY>3"BM]D>>@<#"&*,^AEIYS$:/"1WB622!R-NCS.9a
M&?@":<E63D1W].0V2*GT'R'C(<U)\I"0G_C<LY5#TAW-O<+(Q0,R]:"%H1I\z
M9UFSHT;&>(LEA4>\*K@C@?P%#C EZ;-U9:(AIYC)()>H\Z L!K$/Y&-$Z[RCy
M C_6&/YX$*9/?FRUYR\(EH-T\$H@U\B234+UR%2@#[,VTX'Y@<8#2.:5REQOx
MD\.!.LY:)2QR\"R "B%XEM^!E9,FWDMNAG>*(EXT.J-';F$]))$AN($5L[#*w
M0[8<_=DOE)#'/'F[/8F0^YRFY4&3R($$UA#P@,XF"ZG<;=-<5*XRWVI3=BEJv
M<DE7:QI]1>8>LLXN774JH_+J^<33$G9@T.^Z6/ XK?!%BJ&\_$H >Y;CW%J^u
M>%LH+I\A$[JAI27(FUC70C='<=\<FG=J$FI4XUHB?1Z4W* +T/)TGC;I0G>Yt
M_I-@%TQJOCP/>*WCQ^HS;2?S36+4LMDSSU 7:95/<W!>S4?U-2<NQP0-:/-0s
MZ@E1P#\/( $]0XTNV#+.?4 Y=RGGO,:^5'7>%A.Z._>6\'RGR_,=2L]]R2TOr
M6/B\DWE"?AY)7[K$1N4#?8H6])^.T-MY UGH0/*F./0U"]%S,'R>ISC8"HORq
M.BXOQ_H7IZ RNJ;?=+CDE:5N6<Y[.?$&JT(K/$ 1B,-UZC$]G ,/3C[W,BA=p
MK^EG?(Q[2\NX/5@$6K_"O -_H  5,-:[:ECGUK68"!"!C]$8%>-B;^Q.$PBOo
MZ\/NJ28[8W2,?[/SED\K3&DW^RJ<Z"2]HN-P<J@,N\:G2W8,]H<C!!J0[$ =n
M#4!UD18QA=)L7 8P<)"2ZN:!.8]3CIXW/'H:Z +D'(K+H[8^&)8(DA[+(("Nm
M(FFTC(.E^D_-;Q*3+0!A:ZZ"E3DS-^[(W:8K=[8NI+^R68;NTMTLQW4?XB2+l
M2%@H$2N 9KX!@#C<EWE'=^;'/;FGI2 -Q2DNRUWHI5V+BFTZYV_6YUXPJ^K7k
MZ^V%3W=_%+@K[K(S9'D@:<9I.PGG=I@#WW7S9L[-Z3K]9^),7699;DJ!O7G_j
M,KR\!)R?MW5V3@'ZX=\ZWM-[)/["FWAO>0)6)X=?\0H4PLM.$ _7IUV%+_'@i
M]<3SSE;K.STG"34/&]QN6'AR,>,K0@M(\45>@![?'(QDA_1Y-]*F%$FO]\?.h
ME(*U+$$!)J#$@_+N//;&GF*%G>O:79M1+V]*PKR,!^5R8 %N 13 2N\W"'@:g
MK?0&?&B0>IV_O)MG\C1@)<=Y9T[G>::=[\A+1,\+Y3[?YDN\GE\+@W[.M^#^f
MO>=):!>U\DE@"GQ/[%#B9\#F)9\"]-*;]TR/^CB]C+<!G_[SND=06NC=.I&>e
M E: "D"?$I\#-B\=2/$)("':AV*'W$*B%02)1* PFG8T7^5'O1& [EE>O?MXd
MPXOFYRA1[ZR_X[9*^VG?0B/NA??K4_2K+P\S^ERA/>05NJO73." +VWMR<5:c
M,&C32;\O]Q9"5=< Z<K#<,:!$(?+B>[S@+HG[U\@\T5U.=I%B7-Z/@/8H=N7b
M@!8@[LD]"!!_<,";U_M[;QR@;NT;Z .^TPF=U"QO_;%4#R'#9=0N?/&^WQDRa
M_P@@1WF>KEF,KV<W_EIO^$+ZX_]W -T\<RFTCZ0FOY.O_#%ITD\YK$S/1D Kz
MHX"<:152IR6-I31>M =\U*D[QT &5?![@6Q#!8V>F91)R7?<]I[CKWM-K?)#y
M/E*]^$Y?XT-]AL_?VT#5']@L__(6>U=_Y<FREE_V+U7@_X[JR=3/_=87[Y<:x
MA[S]P([BGC2=7JPN_Z_"_+?OQ>M^2?>R_OX+Y'P?O?/E9<_7G3\_N@=]SSOTw
M<^?E-/I>4Y@3^%!'MBG=^\P1-(!LXP B_N#_+*MRF/%9U+OU_'!QV+OG/P$Jv
M0-7W._(0^F,JIC_V6-Y;GGU;2D%//Q!0_;=:Y)/0TR_:C6\A)MH(P1.&$Z0Mu
M#)7V?J?(W18+C #>7A+L2519"<M?*$GC;>R6]OLU9@Q5@'$F ?C1(5MZW/>Wt
M$LUG? $+?I+L0T(^ZVC)RJ+!?:X"P'^!6 DD\\_N_*32!F( "C "4V M!+Q-s
M2 5X9#89UB"_F!;3=\^M=WY 3@%Q?^<'Y!3@_OGDA5U[C'&@"^WD*^;.5')Lr
MOL5? YZIY-BTE>&9FL0G,/NZH11TM<_4=I2!X[<&WHD<86 EOP_, :"N;./0q
M*0K,;77-1\YFNB.[;'Y_TCD)7,;18$%;FU%[K:&GZYB*#,&56Z]JN%SII;K%p
MMFYS@%_C/E19K@=A#@!U\C>W W-;7?.1LYGNR"Z;W[-TIPR7<318T-9FU%YKo
MZ.DZIB)#<.76JQHN5WJI;K&MVQS@U[@/59;KB+_T@""C1>:ZFN:K;>+*KZT9n
M)9MO;J %(.7^MK&R2W^LSC.Z4G>1J0P6@'Y=Q7"<I(O$453S^FZ;)B%HUXN!m
M-+0[D+H)8GJ8LL85,$@6Z.5_<_+W8QYWH!5MA_YHRDURA2[0760M&&;%?TK1l
M-,K/]\:"KD:2S-=#\#DGZ2)'?^AIO47+^7]U>9CRFGFX%E=% 1@HV7QS RT k
M*?>WC95=^F-UOI=.N8M,9;  ].LJAN,D722.HIK7=]LT"4&[7@RDH=V!U$T0j
MT\.4-:Z 0;) +_^;D[\?\[@#K6@[]$=3;I(K=('N(FO!,"O^4XJF47Z^-Q9Ti
M-9)DOAZ"SSE)%S&O0SOD,0\N)AR)?W'4@),I.39M93B9H/8)A'1*J 9@HJL]h
MF;;CG@.PD$X)U0 [ 0XU\6HWEE8O62;RH8=O-;H>WJ %Y'S8HF?$T.4 E*,Kg
M0P QKF-RIA/,&>S>H 5DGI:!11)Z'0*4HRO^N0C40W*F$\P9[-Z@!:0-K(%Tf
M,CD= I2C*TU@"?!!O(2;ZIP"[70;M(!8Z\,1&8 DE*,KM;0>DC.=8,XFMW^$e
MQM+?N8B : (<1 #SMK?*$"HP; 2_B=5GLI2_D=9/2[Z6T!):0DMH"2VA);2$d
MEM 26D)+: DMH26TA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+c
M: D]0/W"3A7@)!- !+'6A\-)0GBNIT!50$MH"2VA);2$EM 26D)+: DMH26Tb
MA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMH26TA![PC/L=a
M%,C^]X[[\[@(8JT/Q\1F=G/=^-5M.0#EZ(JU/AS#.H"\M;EGF/$2;JIS_;$=z
MK_[$@:).)AS77CQ3!4Q/V$QA66L9K\TJP+"O_DS.00C[&0"X],&CMDC8F3A0y
MU,FDDWPR#;#6):[^M1?/5 &/Q(48]M6?.%#4R5RA<?#^E?+5;_R(ZQ_QC+JLx
M1)3FOG8"YIX,\ A(&2P,2[\'.PLULF; :$#F#^L <D?GG@SX F1A>SR&M= $w
M$*CB!P$1F-G+4?EO4S1U%&6MNKK?8?(N^H$K;.'(U.F$G_JO.@Y[+%@_H2+:v
MVL(VA["<$*6?SX"@\M^F:.HH6LI7?U^0EQ&XE*]^XW?;3L#<DP$> 2G[R"$5u
M6-@3"I!48J2Q*;-5=DQ8+NRK"'+ (P"2\]0?,7D710Z/Q(546&^4KU"7%[5@t
M_82*:&L+VQS"<D*4?LQ>CG9+8JBI\20*?L"F-![^^@GL+2,P:_W"\7FNRU'*s
MJ85CR"-Q(7RV]LO+(J#Q,CT58*VZ>O4O*"T<0Z8GMO>R'(2N1N -2WF1 SLMr
MY:N_4'_91^)"*NP8,;;(]OO5<=B#3K/GYL,..Q7?H5-*N4Y',#IM'D^<#HQ@q
M;6UAFT-83HC2C]G+T6Y)##4UGF2M7S@^S_4_?4?(2*$^ 7//(\3TRU5<#L=$p
MP Y(V4?V1PK:[QDP&I#YPSJ O+6Y%P.^ %G8'H]A+30!!*KX04 $9O;<FG)Jo
MX1CR2%P(GT7KGA\%V!1-'46[, 7MHLB!PKYSQU#'Z^CWJ^.P1UM;V.80EA.Bn
M]&/VW)IR:N$8\DA<")]%ZYX?!=@431U%NW [SL&44PO'$ J+[3'YZTMAWZ^.m
MPQYAC[XJI\P?U@'DK<V]&/ %R,+V> QKH0D ;6:'R8DQL<))-:X,\(4*Q0J=l
M"PI@0$JB. 62%)YKRY.\W/D!.04\$A=BV',PH(KO%P,%VTN^.R\7[DE@0 8Bk
M#3A-+I\ 5  <*)CR\OO5<=@S<[LP!7TD+F2@ EMY.6RS  JFG%HXACP2%\)Gj
M,;D697:87/[;%$T=15FK%H6=[09VMAN^K0):0DMH"2VA);2$EM 26D)+: DMi
MH26TA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMH27T /5[h
MO9VD(P$OM!!/.DD(S_4F=TMH"2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)g
M+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMH26TA!Y@$*% 8P1L(!&.:R^>f
MJ0(>"2W<PE>DW%-%/4""#XE_]QD17^=M3P@AO3L=(.E&7)$T84DLFZ_0QV! e
M 1%X0AT88NA72&,*>.#"^/+>79O$Q%FA<U$!+RQ3IY,ZWD]@,X5US'=7OWU*d
MA QW"?L9 +CTP:/VZ57X^J8 &2G4PQOVX'/7Q3RXF!DA('= C  2Z/1&%'6Xc
M9-1^[S@GV=N,@>MX/Y&7MQD#NW388\'Z"171UA:V.83EA"C]-BSE56/-(2PGb
M1.D71U'-& 8?-*-$E&822Z#UR3P18TG"U<&R@W5">!RA&MZPIS^B&@K[ELE a
MOD)=2?8V8^ ZWD\L6#^A(H,WE/:%Z4EC+VQ83HC23RO;%$U-1+UE//SUL5R.z
MOCXF\$;Z%HHX6">$QQ&0Z];0D')5(@^.+JK9EM(L]_L)H_:/,AHY4-BWO!3'y
M@!:.(2\L4Z>3.MY/1FE#L /EOHZ0Y0L;EA.B]#.\7?(2?<FII='U,"#I1ER1x
M-&%)+)NOT,=@0 $1>$(=&&+H5TAC"GC@POCRWEV;Q,19H7-1 2\L4Z>3.MY/w
M8#.%A<U&N'UA8!=BV"_OW=5OG]*"G7%+EC<0,MPE[&< X-('C]JG5S_S2"5?v
MH'UA8!=280F#$P6Y7Z!]I1,#08PI.8RZ [C6[S$[3$Y N/P<...6+.QX2S9=u
MRE?AZYL"9*10#V_8@\]=%_/@8F:$@-P!,0)(H-,;4=3ADE'[O7J*9%]8IDXGt
M=;R?R,O;C(%=.NRQ8/V$BFAK"]L<PG)"E'[U&N22\U'>OM*)O#3"[0L#NQ 6s
M8?S\ EBX9C#J#N!:O^=3Y?^%#<L)4?JIZRFOF2FW9]1E):(TDU@"K4_FB1A+r
M$JX.EAVL$\+C"-7PACW]\7.:V@KKC?(5ZDJRMQD#U_%^8L'Z"17!]A2TUTY/q
MQ9\TFT-83HC2SV=8822[@UNP37W!.)7&[E1\Q^PA.X6EP&>\GR1TB9!L^Q8:p
ML&#]Q ._L$R=3NIX/\'V3G(.G'%+%G:\97O6[)13"\>0%Y:ITTD=[R?8WDF"o
M7'(^RMM7.I'"+,+X727/3#W&IR 6]L.^/,13TN*.QND9MV1Y ]MC<I!+SD=Yn
M^THG\M((MR\,[$)8A/'S"V#AFL&H.X!K_1ZS,^7TF\+2V L;EA.B]-/*-D53m
M$U%O&0]_?2R7HZ^/";R1OH4B#M8)X7$$Y+HU-*1<E<B#HXMJMJ4TR_U^PJC]l
MHXQ&#A3V+2_%,:"%8\@+R]3II([WDU':$.Q N:\C9/G"AN6$*/UN:;3M6RPOk
M$:.YXJ@!*].;6X[3M].1$ZA] @M-?IUTX% 37\.^Q?+^ZWT5L/H5D:-?R=_Ij
MO 0+P!B)'#6S !G0=G]ULV/^(J PH0$1 (VEOW-!K*V2J8@ ]L'L C=NR>0<i
M1 6($E+RY?WZE=![ZH]N!ON$'$ED_G1VCRVA);2$EM 26D)+: DMH26TA);0h
M$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMH26TA);0$GJ ^HWXg
M%R,'8'2+#\$31S)-FLTA+"=$Z3=9NH?^"$?Y"GUHE[#3C48CS[PA)\"F:&H\f
M>0(>.$>TN7?7)C%Q5NA<%/(RX< J@,(B9+A+V,\ P*4/'C40/DE#Q1=,W,$Ze
M(3QNC"^4P7#^4,WKPR!*DGF M.$->P+8'1 C@*0VT8P249K[HRFGW_=RF538d
MPI&ITXE+AST6K)]0$6UM89M#6$Z(TL]G*'+;KM'UL.>_L&$Y(4J_R=(]]$<Xc
MRE?H0[N$G6XT&GGF#3D!-D53X\D3\, YHLV]NS:)B;-"YZ*0EPD'5@$4%C8;b
MX?:53ER(86_-M9FPGP& 2Q\\:B!\DH:*+YBX@W5">-P87RB#(=?NYK9XQBU9a
MWGB=F-P(MZ]TXD(J+&%PHB#W"[2O=-)JB3$EAU%W -?ZO16 R0D(EY\#9]R2z
MA1UOR:;=#*IY?1A$23(/D#:\84\ NP-B!)#4)II1(DIS?T0U,AHYI)+I*2]Oy
M,P9VZ;#'@O43*J*M+6QS",L)4?KYC(C_Z[[:O$GD0^^V,VPF%&%7X>L[ DG"x
MU<&R@W5">!RA&MZPIS^BFB!<8;U1OD)=]W*9<&#"#O!?)P7MM=-3\2?-YA"6w
M$Z+T\QE6&,GNX!9L4U\P3J6Q.Q7?,7O(3F$I\!GO)PE=(B3;OH4&+%@_\<"Iv
M9'IB>R<Y!\ZX)0L[WK(]:W;*J85C2"J9GMC>28)<<C[*VU<ZD<(LPOA=)5=$u
M/<;G%[3OL"N="/O,Q$*T< RAL-B>*6E1V-FN28L[&J=GW)+E#;_>/%F(%HXAt
MJ61Z8OMZZ41![A=H7^E$7AKA]I5.7 B+,'Y^ 2Q<,QAU!W"M?[2[E)<+JW;Fs
M;6^58=ABG[$=A_K/,<RV?D<*B6:PIR#Y*9"NH4Y74K"SC\2%5%AOE*]05[+Mr
MP-OCZ,M1RJF%8PB%'9STC\+BD!-AD^;5B&MF$TID%+1IJ3U"L'^4T8_$A518q
M;WEAPW)"E'X;EO*JL>80EA.B],N@_G,,USE7Q!#R%>J2(4*B0I<1,J"&&3"*p
M( YX0%$<K!-"2?IC(84]+Q.\R'P!2F%?)GAQ(89]%5+:79MXA&M+: DMH26To
MA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMH26TA);0$EI"n
M2V@)+:$EM(0>H'ZOMY-, )%$YCM)",_U5G&E80'5PL&+2?\YAMG6[T@AT0SVm
M%"0_!=(UU.E*"G;VD;B0"NN-\A7J2K8=>'OD4;@*7EQ(A?66%S8L)T3IMV$Il
MKQIK#F$Y(4J_#.H_QW"=<T4,(5^A+ADB)"IT&2$#:I@!HPCB@ <4Q<$Z(92Dk
M/RX["HID'XD+&:@MV*:^8)Q*8W<JOF/VW/J1N) *^SS.>#])Z!+!4H,7%\*!j
MKX@%ZR<>F,)B^\S$0K1P#*&PV%X'3\^7"5Y<B&'WZFH>K5-.+1Q#*.S@-'X4i
M=KX]D 2U4)B'B L<S6Q"B8R"-BVU1PCVCYD)]KQ,\"+S'_KT?)G@Q848=A*Jh
M16%GP=;5B6<%#&,5T!):0DMH"2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)g
M+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMH0>H7]BI IRD1SGC_22A2P0Gf
M">&YG@)5 2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)+:$EM(26T!):0DMHe
M"2VA);2$EM 26D)+: DMH26TA);0$GJ D1W&G8YXR)*^A2):B>9FA<YEZ'E^d
M+5Z+:I<I(PC66I%AR.613FHB[X,"V?_>P0\FS@J=BPJ8 V>\GR1TB9!L^Q8:c
ML&#]Q .GDNGI,YC=W;5)3)P5.A<50&%9:T*^(JPU(1/VXLS[[JY-8N*LT+DHb
MY&5BV/O=7"^X*.ID9G(.H@(XL J( [#9"%\1UEK&-?D6VP)0@!,B 8_:(E< a
M)J^PR"$A;]CIR5I#[WTHS*\3DXL24O+E<1,'YL ,:'#2/\K)"IW+3Q'<!*Q"z
M<9?Y0<:YR_S(O$%^\>/ZUW<@(YGV$ RTA;UPE_E!8MV 8.$N:T67;40CB\GCy
M  7N)U2$M89>>7E%7N<P[G08).R8-A5"V.VS>ME&!@SV/*Y^\J(P7 &32:QAx
MF4^6#\9!',4+&%(FSLAB<M+BCA9['&#V<I2TN*/%7F%I?$I( 6J\OTQ/HXDHw
M[7-*(.$YN#R-4 A*6MS18H\#-)8EI0 UWE^FI]%$E/8Y)9#P')P XL (70$4v
MM(NJ $!%5U5 '&#VW)JTN*/%#JCH*N=E_%R>*15,PYZ#=3MR4 $5EL:G!)]!u
MUU7\[T3K6M0*=U$54&$7O^ \[%$>K=]]NOY3$EA:Z,++CH(:81/G+5F$&E<]t
M<,$FF3850J(L6=B!7D:6@I(6=[38XP"SY]9PH&"NA3@00.E?C4IGD^60C1$\s
MH"@HI+"7T2H@#M!8SLOX#WN47W9HO8NJ $!%5U5 '"BCQL\OL(9E7JCG"J$Br
M[/;Y(AHPV"/L,Y.\-,)71+.3%G>TV $57>6\C)_+.\F":=ASL)/LHBJ@PM+Xq
ME. SZ#I3BO*'78O2]2ZJ BKLXA><AUW%_\[#'@<H<#^A(D!8BT)0+0H["_8*p
MP.1QH*QO,=9*'DB+.UKL<0 [%,PX(,4[G:M[7W+_J'&7^5$3,3EI<4>+W;&Ko
M@#A0,.6E"H # 93^J2*Z8N( "6X"5+D6@L>!$]_[G>3K.Y"13'L(!MK"7KC+n
M_""Q;D"P<)>UHLLVHI'%Y'&@K&\QUAIZY>458:WD@;2XH\4>!_@>'"B8\E(%m
MQ($ 2O^(ARSA+O/#%9FX7 O!*VQ%Z/U.\O4=R$BF/00#;6$O?0M%,!#!PEW6l
MBB[;B$86DU-.+1Q#**Q?Q^05MF^A@=>)R;NH"JBP-#XE,'LY2F$-OQ,%N0;Dk
M#02&=,):OW!\GNMRE,+*RU0R/5FKKI9WF/Q?C/*'Q(4QN>?GPKQOUW)&%= 2j
M6D)+: DMH26TA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+: DMi
MH26TA);0$EI"2V@)+:$'J-_K[2030"21^4X2PG.]WQ_R4,5Y$H[$OSAJP*PNh
MGI)CTU:&65T\0>T3".FL(QD"AYKX&J**\T1-_NM];3H#%EMP;4V\VHTEG:/Mg
M9'LF2.H$( (P"%D8XY@Q09P!)>H_14"^8&@ <;((1%4Q0I2H_Q0!1D!_A*.+f
M.#\NBT&;"$KTI8H (L#'86(GVV)B4 0LSY*.7.D(+;0I%-B_6UQXI*%?&*K$e
M#B_@>?AWBYN0C_[0H^UDF_/_:CDJ C (61CCF#%!G $EZC]%0+Y@: !QL@A$d
M53%"E*C_% %&0'^$HXLX/RZ+09L(2O2EB@ BP,=A8B?;8F)0B;Y4$6"\A*+?c
MUK(F100LSY*.7.D(+;0I%-B_6UQXI*%?&*K$#B_@>?AWBYN0S>O0#GDM+#7Yb
MPK'4?(N_!D1-QC#Z+L?IV^E0TSN!VB<0TBDA?5,7KC9J DO_];Y>#"6D.<:0a
M@97\G<X&;,\OD<B'G@W8GE-+HW?("-(&UL";G,Z[&3D5D#:P!M+)=-[-R*F z
M0*;IS.PZ9 2QUH=C.F=FXU>9YB039X7.104PA'R%NJ;S;FZ+9>L"IY/IO,35y
MO_;BF2H@A]3Q.AI'F3@K="X*.5.GD^G,[)@X*W0N*F .G/%^DM EPG3.S,;Ox
M0U(36<GC(LB'G,X1?R\&TFSQ?GD6^VR[OYI.1A"!@!,"PW3>S<BI@$03&AU'w
M.V0$<<K8OD-&D):.[3MD!%$F%*2D$^-6B5/F)$KE($EEOG\!<6I>AW;(2QQVv
M_7 ,?VM;_#6@WZ4F35OY,W\>X/RO<?0_'].?&UM_J2)DLO^]X_Z?4B0DD._/u
MK<+_2AC_B1&/G']+/I4"LOL/DO#_2LA_<U;_[W_^-U_2CMKY?P/:UXMI,7WWt
MW'KG!^04$/=W?D!. >Z?3U[8M<<8![K03KYBCDTE8C17'#4@FWISRW'Z^EFVs
M,HE/8/9U0_4';&]B-N6)N2%;\(9/+QPR;WNKL#._P[#XL1#NCA(4EY)[S4I6r
M 6Q>@<#F8%VI!R^/,P-D(.'6_!E=J>,^5=;69K2+A@"<!"NQ@^+U)3, A:Z5q
MR!!)XS[?:B!NH 4@Y?Y&!WSY5-\@<V"$3M&NKN SO\/0Z&6\-H\2%)>2>\U*p
M5@%L7H' YF!=J0<OCS,#9"#AUOQ[Z93C/E76UF:TBX8 G 0KL8/B]24S (6No
ME<@02>,^WVH@;J %(.7^1@=\^53?('-@A$Y1B!YM^X*;ZDS)L?D6?PUXAG'*n
MFUN.T]?/NJG.-(E/8/9U0_4';&_B,XQ3PJ_6HH%-9]]0"+#-O.VMPI:?YT=Zm
M%^S,_*=AW1OX(Y[1'2%E\3$L_=YQ=LKI).Y396V]YB6)39$!*""=Q'V^14 @l
M![_&?:C2ET_U#3)"IVA75_#RLPPM\(*=F?\TK'L#?\0SNB.D+#Z&I=\[SBT]k
MG<1]JJRMU[PDL2DR  6DD[C/MP@(Y.#7N ]5^O*IOD%&Z!2%Z-'V"\JI1(SFj
MBJ,&#$U,>SE.W\D7%MX4U#Z!A2:_BB$)<;5#$S7YK_=5P.K7 HM^)7^GVYX7i
M)Y$/O>W9%N:O'MZ@!40@X(3 ,#D= I2C*R+^"3P!^T#.=((Y@]T;M("DI<GIh
M$* <7?&"Y$PGF#/8O4$+2#1Q*9/3(4 YNH+_^3]>PDUU3H%VN@U:0#SAY'0(g
M4(ZN['].B)=P4YU3H)UN@Q8094(](@.0A')T)=KY>+R$F^K<Y/9[T%CZ.Q<1f
M$$V @PA@WO9V_?(*]NE^93O\_)*02*/;7<J;9-/N,%8!+:$EM(26T!):0DMHe
M"2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$d
MEM 2>H#ZA9TJP$DF@ CB"9TDA.=Z"E0%M(26T!):0DMH"2VA);2$EM 26D)+c
M: DMH26TA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$EM 26D)+Z &Y%@IDb
M_WO'_7E<!&GI/H/9S77C5[?E )1C9T[Y^V-<O(2;ZEQ_7':8_.[:)";."IV+a
M0EXF'%@%4%C6:G<-[LFDDT$2D\M"PGX& "Y]\*@M$G8F#A1U,C,Y!U$!AEW>z
M8?)^SX#1@,P?U@'DK<V]&/ %R,+V> QKH0D@4,4/ B+PAJ6\*,"F:.HH^CJ'y
M<:=;BXKBL^60.EY'L</INE[L:RR4B'Z2T+E;E%1^1A:3=U'DD$JFI[R\S1B8x
MG_JO.@Y[+%@_H2+:VL(VA["<$*7?AJ6\*,"F:.HH^CHQ^>L[ DG"U<&R@W5"w
M>!RA&MZPIS]B<@K[ELE OD)=]W*9<&#"#O!9:^AE(5HXAJ22Z>G7,7FOG9XTv
M]L*&Y80H_38LY44!-D531]'7B<F[93W6PC&$PJZ%"ROXFP,42&8HSC ;B-?'u
MPM2 B<HC48W]^[T5@,DIIQ:.(11V<-(_@00WOX<6S[5VE_(F66RO15? LAO&t
M*J EM(26T!):0DMH"2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)+:$EM(26s
MT!):0DMH"2VA);2$EM 26D(/4+^P4P4XR000090)]7"2$)[K*5 5T!):0DMHr
M"2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)+:$EM(26T!):0DMH"2VA);2$q
MEM 26D)+: DMH0?D6BB0_>\=]^=Q$4294!#>-]>-7]V6 U".KOC=81U (B[&p
MQ4NXJ<[UQV6'R>^N36+BK-"Y*.1EPH%5 (5EK7;7X)Y,.ADD,;DL).QG .#2o
M!X_:(F%GXD!1)S.3<Q 58-A7_Z)@"E^@E@@0._ Z,7F_9\!H0.8/ZP#RUN9>n
M#/@"9&%[/(:UT 00J.(' 1%XPU)>%&!3-'449:U>%CFDDNDI+V\S!N:G_JN.m
MPQX+UD^HB+:VL,TA+"=$Z;=A*2\*L"F:.HJ^3DS^^HY DG!UL.Q@G1 >1ZB&l
M-^SICYB<PKYE,I"O4->]7"8<F+ #?-8:>EF(%HXAJ61Z^G5,WFNG)XV]L&$Yk
M(4J_#4MY48!-T=11]'5B\EXKA%OP3L5W9=3X$0]94CC>R'.8";5$@&1Q=UFAj
MXJZPK[#((2%OV.F)@@%5?+\8KY."*HU]RBA\<RV!'-AA[IWG%4!!RV0L68TUi
M+IJ%KC/96@A"A=I@-FF5'1/8).R[95\PMM\/!1"!M4!:WL!:L /HE%'XYEH"h
M.; # _+G:X$*;,TJL-RD +;_PO%YKLO1;ODH='U<9ZVZ>O4O*"T<0RCLX*1_g
M @EN?@\MGFOM+N5-LMA^UW)&%= 26D)+: DMH26TA);0$EI"2V@)+:$EM(26f
MT!):0DMH"2VA);2$EM 26D)+: DMH26TA);0$EI"2V@)+:$'J-_K[2030 2)e
M)B[%24)XKO?[0UX])GECJ?D6?PUH_=_<<IR^DT\>3>(3F'W=D,;!KYKX&M9Cd
MX.")I3;7MC3Q04(86,GO S-_@974<_'5?T_6]_CV@QJG?-\/ ?D/SS?0PI%<c
M!("O'O6Q/LT!^>@?Y4/X",A_>+Z!%HZXK)-\?<0!#Y#OQ.&_/ 1&"RP6=#!\b
M-L!L&'D\K)?U!?#MJ7%V+CSD2%=L+8$[EK6H,/#!.,AGVXQJ&RJBQ/915?H+a
M_K,R0[@_ECTBK?^J0 'D6?M!C<O[HF5W%V"91PCG;Q!F_EJGT>?BJ_^>K._Qz
M[0<U3OF^'P+R'YYOH(4CN0@ 7SWJ8WV: _+1/\J'\!&0__!\ RT<<5DG^?J(y
M QX@WXG#?WD(C!98+.A@^&R V3#R>%@OZUG?GH !:IR="P\YTA5;2^".92TJx
M#'PP#O+9 +-AY/%&P,>S/@8$^>A?,58CFU%M0T64V#ZJ2G_!?U9F"/?'LD>Dw
M]5\5*( \:S^H<7E?M.SN BSS"*%1GT^%_>GB9R(?>@N;66CTN?CJ13R=3P$)v
MX,OJ!.=>]H]TB$<"4B %W-A$+0MMIEP$@*^>PM/Y%)  OJQ.<.YE_TB;90J?u
M FYLHKX?\QUQV$RY" !?_8M_ G0^!22 +ZL3G'O9/])F.>_MO1N;J#_D"WCQt
M3Z PSL57[^/I? I( %]6)SCWLG^DS?*RO[&)VEH71?_HIU^?$= ?X0@*B+3 s
MP";Y5*,^G\KP!JS/&U"V<2AY6'M2X E0@2=P4^DW<G4I( "=4B5%D9#K..RQr
M8.J_B8?@+^!O4P!3BJ-K3PH\ 2KP!&XJ_<Z><7 .@A9TVB$U=57I+RG 23*Eq
M.'HM1X!Z:6RO;_#Q_R^ !$XSVLS\5T^CKSTI\ 2HP!.XJ?0;N;H4$(!.J9*Bp
M2,AU'/98,/7?Q$/P%_"W*8 IQ=&U)P6> !5X C>5?F?/.#@'00LZ[9":NJKTo
MEQ3@))E2'+V6:T\*/ $J\ 1N*OWN_OL<G5(E19&0ZSCLL6#JOXF'X"_@;U, n
M4V++:T\*/ $J\ 1N*OV&D2)!C:!3JJ0H$G(=ASUKX0OX6ZYW!U, 4V++UW($m
MJ)?&]OH&'___ D@@ @[MD/>*'!/Q+XX:T%H?#FK2M)4_\^<!SO_Z"YGL?^^Xl
M_SIO;<,Z@"0S%&>85\+X3XQXY/P3:ZXW]\YS_*>\\[^&U/_[G__O2.WT_P:Tk
MK_M_ SKW#',QK5_((2%CA[B_\P,R=IA[ZY/^ <GL0;#J7/VO+)##(=0&W@8Yj
M!L/YTW<7=NTQQH$NM).OF'M-PI'X%T<-^)J8]G*<OIWN-8W $DB)Q:TESC'Si
M5A-?P] \3[;CG@.PD$X)(2%EB7XE?Z=KV&2S;./0*1I!'"7]NQW>\D,F "X;h
M03X^X*)_R:ZL,ZZWS64;"!2G(]OU]=%V>>G2<8(92 $) ##+T08"Q>G(=GU]g
META>#@E^1@82 )>-('1KN[Z^?#O8BT/M2P!<MH% <3JR75_?O)&7D:3V)0 Nf
MVT"@.!W9KJ_/:U-@$I@  +,<;2!0G(YLU]=WV^7ED.!G9" ! &8YVD"@.!W9e
MKJ_/W\C+(<'/R$ "X+(-!(K3D>WZ^BC=/AW)=" %)  NVT"@.!W9KJ]/Z,A+d
MEXX&Z$@*2 !<MH% <3JR75]?#5@/^[30IH $</Z\7L,FF_(WMT<01TG_;H>Wc
M_) )@,M&D(\/N.A?LBOKC.MM<]D& L7IR'9]?;1=7KITG& &4D " ,QR-((Hb
M$^JQ6U_?)6*X(D&-<-D(0K>VZ^O+MX.].-2^!,!E&P@4IR/;]?7-&WD926I?a
M N"R#02*TY'M^OJ\-@4F@0D ,,O1"&*M#\=N?7VWG0*WM@0 F.5H!/&$N_7Uz
M^1MYZ0D3 )=M(%"<CFS7UT?I]NE(I@,I( %PV08"Q>G(=GU]0D=>NG0T0$=2y
:0 +@L@T$BM.1[?KZ:L!ZV*>%-@4D@-TGD0!Px
 w
end

/* Kai Uwe Rommel, Munich ----- rommel@lan.informatik.tu-muenchen.dbp.de */

DOS ... is still a real mode only non-reentrant interrupt
handler, and always will be.                -Russell Williams

v892231@si.hhs.nl (Edvard Tuinder) (06/15/91)

In article <9106132139.AA03262@mcsun.EU.net> rommel@INFORMATIK.TU-MUENCHEN.DE (Kai-Uwe Rommel) writes:
> 
> I got the symlink package from an archive and found that it did not work
> with Minix 1.5 for the PC. I spend several evenings to fix it and finally
> got it working. All changes are now diffs, no complete files are posted
> any more, except for the three new system call hooks for the library.
> 
> I have changed a lot because apparently the current 1.5.10 has a lot of
> differences to 1.5.2 for which Fred van Kempen wrote that he has tested
> this package with in the README file.

I have taken a quick look at the sources and I noticed that this implementation
still stuffs all the symlink info into the inode. This is rather tricky.
At MUG-NET we have also taken Ken Staileys Symlinks, but we have changed it
to be almost completely identical to the BSD-symlinks. This means that for each
symbolic link, a file is allocated in which the information is written.
By doing this, the inode is still free for storing the information it normally 
holds. It also requires less changes to the user programs, since nothing 
really changed in the filesystem, except that there is a new filetype, I_SLNK.

The implementation is now going through a beta-test, cause there are still
some tiny bugs with fsck and rm'd files. When this problem is fixed, we 
could send out the cdiff's for this implementation, but we will probably 
wait for 1.6 to be released to the net (and running steady :-).

							Edvard
___________________________________________________________________________
Edvard Tuinder             | internet: v892231@si.hhs.nl
Student Computer Science   |           edvard@bbltv.nl.mugnet.org
Haagse Hogeschool          | uucp: ...!uunet!mcsun!hp4nl!hhinsi!v892231
The Hague, The Netherlands |       ...!uunet!mimsy!nmrdc1!minixug!bbltv!edvard

evans@syd.dit.CSIRO.AU (Bruce.Evans) (06/19/91)

In article <56346@nigel.ee.udel.edu> v892231@si.hhs.nl (Edvard Tuinder) writes:
>I have taken a quick look at the sources and I noticed that this implementation
>still stuffs all the symlink info into the inode. This is rather tricky.
>At MUG-NET we have also taken Ken Staileys Symlinks, but we have changed it
>to be almost completely identical to the BSD-symlinks. This means that for each

The next version of Minix-386 (more vapourware, don't ask when :-) will use
Earl Chew's version of Stailey's symlinks. This was tested last year. The
only public version of it that I know about was for 1.6.15.
-- 
Bruce Evans		evans@syd.dit.csiro.au