add directory Linux-0.11

This commit is contained in:
gohigh
2024-02-19 00:21:01 -05:00
parent ca9fe7ce11
commit 26e015eb99
85 changed files with 8336 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
70c70
< DEFS = -DDIRENT -DST_BLOCKS_MISSING -DSTDC_HEADERS -DPOSIX -DUSG
---
> DEFS = -DDIRENT -DST_BLOCKS_MISSING -DSTDC_HEADERS -DPOSIX -DUSG -D_POSIX_SOURCE
80c80
< bindir = $(prefix)/gnubin
---
> bindir = $(prefix)/bin

329
Linux-0.11/ports/gawk-diffs Normal file
View File

@@ -0,0 +1,329 @@
*** 1.1 1991/12/11 16:13:13
--- Makefile 1991/12/11 17:07:11
***************
*** 64,71 ****
# MISSING = -DSPRINTF_INT -DBLKSIZE_MISSING -DSTRERROR_MISSING -DRANDOM_MISSING
# VAX running Ultrix 3.x
- MISSING = -DSTRERROR_MISSING
# A generic 4.2 BSD machine
# (eliminate GETOPT_MISSING for 4.3 release)
# (eliminate STRCASE_MISSING and TMPNAM_MISSING for Tahoe release)
--- 64,75 ----
# MISSING = -DSPRINTF_INT -DBLKSIZE_MISSING -DSTRERROR_MISSING -DRANDOM_MISSING
# VAX running Ultrix 3.x
+ # LINUX
+ MISSING = -DSPRINTF_INT -DTMPNAM_MISSING -DBLKSIZE_MISSING -DSTRCASE_MISSING \
+ -Dalloca=__builtin_alloca -DGCVT_MISSING -DRANDOM_MISSING \
+ -DBCOPY_MISSING -DSTRTOD_MISSING
+
# A generic 4.2 BSD machine
# (eliminate GETOPT_MISSING for 4.3 release)
# (eliminate STRCASE_MISSING and TMPNAM_MISSING for Tahoe release)
***************
*** 80,92 ****
# Comment out the next line if you don't have gcc.
# Also choose just one of -g and -O.
! #CC= gcc
! #OPTIMIZE= -O -g
PROFILE= #-pg
DEBUG= #-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF
DEBUGGER= #-g -Bstatic
! WARN= #-W -Wunused -Wimplicit -Wreturn-type -Wcomment # for gcc only
# Parser to use on grammar -- if you don't have bison use the first one
#PARSER = yacc
--- 84,96 ----
# Comment out the next line if you don't have gcc.
# Also choose just one of -g and -O.
! CC= gcc
! OPTIMIZE= -O #-g
PROFILE= #-pg
DEBUG= #-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF
DEBUGGER= #-g -Bstatic
! WARN= -W -Wunused -Wimplicit -Wreturn-type -Wcomment # for gcc only
# Parser to use on grammar -- if you don't have bison use the first one
#PARSER = yacc
***************
*** 154,160 ****
# rules to build gawk
gawk: $(ALLOBJS) $(GNUOBJS)
! $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) -lm
$(AWKOBJS): awk.h
--- 158,164 ----
# rules to build gawk
gawk: $(ALLOBJS) $(GNUOBJS)
! $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) #-lm
$(AWKOBJS): awk.h
*** 1.1 1991/12/11 16:18:17
--- awk.h 1991/12/11 17:07:45
***************
*** 42,51 ****
extern char *alloca();
#endif
#else
extern char *alloca();
#endif
#ifdef SPRINTF_INT
! extern int sprintf();
#else /* not USG */
/* nasty nasty berkelixm */
#define setjmp _setjmp
--- 42,53 ----
extern char *alloca();
#endif
#else
+ #ifndef alloca
extern char *alloca();
#endif
+ #endif
#ifdef SPRINTF_INT
! /* extern int sprintf(); XXX LINUX */
#else /* not USG */
/* nasty nasty berkelixm */
#define setjmp _setjmp
***************
*** 78,99 ****
extern char *memset(char *, int, int);
/* extern int fprintf(FILE *, char *, ...); */
! extern int fprintf();
extern int vfprintf();
#ifndef MSDOS
! extern int fwrite(char *, int, int, FILE *);
#endif
extern int fflush(FILE *);
extern int fclose(FILE *);
extern int pclose(FILE *);
#ifndef MSDOS
! extern int fputs(char *, FILE *);
#endif
extern void abort();
extern int isatty(int);
extern void exit(int);
extern int system(char *);
extern int sscanf(/* char *, char *, ... */);
extern double atof(char *);
extern int fstat(int, struct stat *);
--- 80,104 ----
extern char *memset(char *, int, int);
/* extern int fprintf(FILE *, char *, ...); */
! /* extern int fprintf(); XXXL */
extern int vfprintf();
#ifndef MSDOS
! /* extern int fwrite(char *, int, int, FILE *); XXXL */
#endif
extern int fflush(FILE *);
extern int fclose(FILE *);
extern int pclose(FILE *);
#ifndef MSDOS
! /* extern int fputs(char *, FILE *); XXXL */
#endif
extern void abort();
extern int isatty(int);
extern void exit(int);
extern int system(char *);
+ #if 0
+ /* XXXL */
extern int sscanf(/* char *, char *, ... */);
+ #endif
extern double atof(char *);
extern int fstat(int, struct stat *);
***************
*** 100,110 ****
extern off_t lseek(int, off_t, int);
extern int fseek(FILE *, long, int);
extern int close(int);
! extern int open();
extern int pipe(int *);
extern int dup2(int, int);
#ifndef MSDOS
! extern int unlink(char *);
#endif
extern int fork();
extern int execl(/* char *, char *, ... */);
--- 105,115 ----
extern off_t lseek(int, off_t, int);
extern int fseek(FILE *, long, int);
extern int close(int);
! /* extern int open(); XXXL */
extern int pipe(int *);
extern int dup2(int, int);
#ifndef MSDOS
! /* extern int unlink(char *); XXXL */
#endif
extern int fork();
extern int execl(/* char *, char *, ... */);
*** 1.1 1991/12/11 16:29:17
--- awk.y 1991/12/11 17:08:04
***************
*** 96,102 ****
%type <sval> func_name
%token <sval> FUNC_CALL NAME REGEXP
! %token <lval> ERROR
%token <nodeval> NUMBER YSTRING
%token <nodetypeval> RELOP APPEND_OP
%token <nodetypeval> ASSIGNOP MATCHOP NEWLINE CONCAT_OP
--- 96,102 ----
%type <sval> func_name
%token <sval> FUNC_CALL NAME REGEXP
! %token <lval> ERROR_TOK
%token <nodeval> NUMBER YSTRING
%token <nodetypeval> RELOP APPEND_OP
%token <nodetypeval> ASSIGNOP MATCHOP NEWLINE CONCAT_OP
***************
*** 386,401 ****
nls
: NEWLINE
! { $<nodetypeval>$ = NULL; }
| nls NEWLINE
! { $<nodetypeval>$ = NULL; }
;
opt_nls
: /* empty */
! { $<nodetypeval>$ = NULL; }
| nls
! { $<nodetypeval>$ = NULL; }
;
input_redir
--- 386,401 ----
nls
: NEWLINE
! { $<nodetypeval>$ = (NODETYPE) NULL; }
| nls NEWLINE
! { $<nodetypeval>$ = (NODETYPE) NULL; }
;
opt_nls
: /* empty */
! { $<nodetypeval>$ = (NODETYPE) NULL; }
| nls
! { $<nodetypeval>$ = (NODETYPE) NULL; }
;
input_redir
***************
*** 953,959 ****
case '\\':
if (*lexptr++ == '\0') {
yyerror("unterminated regexp ends with \\");
! return ERROR;
} else if (lexptr[-1] == '\n')
goto retry;
break;
--- 953,959 ----
case '\\':
if (*lexptr++ == '\0') {
yyerror("unterminated regexp ends with \\");
! return ERROR_TOK;
} else if (lexptr[-1] == '\n')
goto retry;
break;
***************
*** 969,975 ****
case '\0':
lexptr--; /* so error messages work */
yyerror("unterminated regexp");
! return ERROR;
}
}
}
--- 969,975 ----
case '\0':
lexptr--; /* so error messages work */
yyerror("unterminated regexp");
! return ERROR_TOK;
}
}
}
***************
*** 1163,1169 ****
case '\n':
lexptr--;
yyerror("unterminated string");
! return ERROR;
case '"':
yylval.nodeval = make_str_node(tokstart + 1,
lexptr-tokstart-2, esc_seen);
--- 1163,1169 ----
case '\n':
lexptr--;
yyerror("unterminated string");
! return ERROR_TOK;
case '"':
yylval.nodeval = make_str_node(tokstart + 1,
lexptr-tokstart-2, esc_seen);
***************
*** 1171,1177 ****
return YSTRING;
}
}
! return ERROR;
case '-':
if (*lexptr == '=') {
--- 1171,1177 ----
return YSTRING;
}
}
! return ERROR_TOK;
case '-':
if (*lexptr == '=') {
***************
*** 1256,1262 ****
}
return LEX_AND;
}
! return ERROR;
case '|':
if (*lexptr == '|') {
--- 1256,1262 ----
}
return LEX_AND;
}
! return ERROR_TOK;
case '|':
if (*lexptr == '|') {
***************
*** 1279,1285 ****
if (c != '_' && ! isalpha(c)) {
yyerror("Invalid char '%c' in expression\n", c);
! return ERROR;
}
/* it's some type of name-type-thing. Find its length */
--- 1279,1285 ----
if (c != '_' && ! isalpha(c)) {
yyerror("Invalid char '%c' in expression\n", c);
! return ERROR_TOK;
}
/* it's some type of name-type-thing. Find its length */

Binary file not shown.

View File

@@ -0,0 +1,332 @@
[0029] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/10/91 19:38 (329 lines)
Subject: patch to use shoelace with linux + fsck and mkfs
Date: Sun, 10 Nov 91 16:21:27 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Following are patches to shoelace to allow it to boot the Linux
image (sorry, no building by parts cause there are no parts).
This also means that the fsck function of shoelace is available,
including fsck -m, or mkfs, which I have not tested. Please note
that by using strip on the shoelace executable, I was able to fsck
a 20Meg partition. 64Meg partitions, I doubt it can handle.
In this way, both minix and linux can be run from the same partition,
with a bit of mv'ing of directories like bin.
You will need minix to build these because of the 16bit assembler.
I also have not tried compiling laceup under linux yet (no disk space).
Perhaps some kind soul can do this and post executables for non-minixers.
If you are not already familiar with and using shoelace, please install
and learn it first!!! The following assumes this.
To use:
- Get shoelace from plains or wherever.
- Apply the mxvid50 patches (may not have to, but my diffs are against them)
- Copy makefile.bcc to makefile and then apply the patches in shoelace.pat.
- Put the bootsect.x file in the shoelace dir.
- Type make and cross fingers.
- Use strip, ie: strip shoelace
- Copy new shoelace to your root. (Might wish to try floppy first).
- Reboot, hit enter when shoelace prompt appears and type "load /bootimage" or
- If you want an automatic boot, edit /etc/config and set "load /bootimage"
You must also ensure config doesn't allow shoelace to find system,
fs, mm and init or it will boot from them by default. Either
move the executables or set them to a bogus path.
Why Use Shoelace:
1) has fsck and mkfs.
2) doesn't require a seperate boot partition.
3) allows passing environment variables to kernel (like video mode).
4) doesn't require kernel patch (byte 508) to indicate root device.
5) allow you to dynamically boot different partitions and different
images in the same partition.
Disclaimer:
This patch is a bit of a hack. You can set your rootdev in the config
file and it should work. But I didn't implement the bootdev.
I also did not try to pass on the environment to linux.
Acknowledgment:
Earl Chew for shoelace.
pmacdona@sol.uvic.ca
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 slpat.Z
M'YV09<:@>0,"#X@6(,2\>4-G3D Z+O H<$@&Q(D77K"\F/.BXPD0/A(N;/@Pz
M(@@>/"R^.*$ "Y^6?!(H9.AP#,0Y"1*@&)("1(P<.6* 8)+&39TY(*B\D6,Gy
M#!LR<V#"%$FS)-(T2-F\"4.F3,4P=$# P'-C# P8"?. H(.F3,(T;^:TF$,Gx
MC!PZ=>" D/.F#IVB9>:P !'&3<4V;^P$GHJU#!LS(/J&?0.9K=L[8=32(<B5w
MC)S 2,?F.'MV<.&*:NJT@8/4\F<74EV"2!+6LAL06KDB/>$0+YR/9-)\MLE&v
M;1@S=,K( 9&&Y&,0*$3#D'$VA6G#:]N"F).';IDV4\&*Q1.#-(S!1XN> 2$Du
MR9,IS-TDER,G;T,7(&+S >'D"94B(8 P1AWTE2%?<=MUEUP;S"$E'F)T@8"#t
M"C;44,,,-J257%9ON'$&?E2@@=5V ]7Q5$)NN?'&5'#P)08;WPU6AF*W%96=s
M6V;X16 9^"4! F;RK470&F64H5=SVZ6Q&HP@BHA4#3'( ,(:0DQ%I!QN.):Dr
M'F[-4>*)8KAE8%]GH"'C'' $E(93"(;1FI,@D/%&8&Z<$-88'=9EHV53B5&'q
M&68H)V 8 KGE9GP@M%%4&A*Y-%6(;N76U7)H'!JF@8ER92A2<R@)!XR$(05'p
M7)V^6,9U%>$I7U%UQ#759UR!H!Q?<B!U1QILL+%78":&96,8(-3AAABPKA&&o
MJ;@M! =^4I0Q4UABJ%6I83W2,96DHGY&!QUJF>$FM&J=4<:VZOTX$*@U;58Kn
M86$!^U<;E[65I6++C3I'J4RVU)(+R>%A+18N=&4&8"!\09===+#!:J/\EN&Om
MOEA,400554#!1!%.@- #"#3DE--^;BQ'V7;CYC770TM%A8403_@G\1$@:#P>l
M#&7!X/%^2Z5Q1E%.$4:&9Z!%!MFS)]NT5$M).)$$%2_'O+%T9]W\HUN(*495k
M6&U]=E!D?@E]XX^9M20QQ5 T_30>HU$G=6]Y;5?774AE78;864S1M-/CE1?Uj
MQPEZQZ"D7K&;MWG057BA#2G AL544K1,Q1=$%&&%#@F,1=K6<X0![UIYI.FUi
M&5K! 8=Q2#VK>$R5XS$##$(A-'"M8<&!<'-PW=8A"*]'Z%D:5H\[1DN-^P>Yh
MY#*/M;J4^QD/@PT0&_QVP@OKT!(("52=0!AXL# "RRX7<<3TU2>6 %0L8 ^^g
M]=AKG_32+Y\O?F#E-WK&&Y2CG_T8*H=OQ_B"F8^%_@F G__V X>N'6P,:Q"<f
M: !U%L4!\%[Q:\D#X:"]L1C!"'O;CUW$T!PYV$4M36%#'=SB Q] 2080>\,:e
MOB I@Y4,#M);G&R.,*XX826!N[.:[#P(K_D(9CMI&D,:!C8&-JDE9%Y+5\I>d
M0 </(A!B !1(!?%P%@DZ9#WX@\D#458K%HRA40!,WPC6QS3O2=!Z FP4Q*Q8c
M!BRJ+#S($11;Q(."&2DG#W_Q4+(T10;K3 T$J5F-D*9B&9+YI@5\\0O! %>1b
MX PG8<:)HQP(J9UGO>@-"(RA!-6PFC14C@5CJUC[9 BQ-LSA##&(80)<$*WDa
M^&0&+"B/!%W@)B&F 00B8,)6@J-'[O@-!"X(I@AFV4JWQ "6Y8DE,F$ L88]z
M# L&(D._Z!##@($E#"V))AFN64TQW"N;AO'F'*3W @4$9" %V5H;\&"'-)"Ay
M!LRDB$HRLI&.K 0DB6*G.^%YDI1<A"58, )?&)2E.\S!!56P0AK&X((A!"$$x
M=1##&%J OQ 45"X.88IR7( _.:2!7TO)TQM<X)4ZA$ A;G!#&GBD*CS)(3AAw
MX&@8("JL<86@#6!!@PMRU((PR4%A;@A8&2"J4CF%P%LCQ%((G% &@TY!.78(v
MP4#AI:LFW.ZI>@%!#GR22@OI8'4@@ (1J. 3H,2@)4&XRT)AI .N8FBK(\/3u
M:EP0%Q<H2J6-@D).VSJ'-[ !H0IEJ$,MVM2#)G2A#7UH1"=:T8N>3*-RX.@<t
M/ I2OLAGI"4]:8=4RM(.N12F,J5IENAPTYSNM X]50Y0A4I4=[[AJ&%(JAN6s
M6MBG,D6J;V@#55LBT-RV=:J. 4(2W&"&I>#T+VMP <5:T(01NJ%008T<=)80r
MAC2TH IW<(L4<DO5%+2$J08]0R)9TU:Y+JNN=V64V"*JAH>4MT,#.P.!CH6Nq
M,7P&4YWB$NZ6 H(F+,H@*)@!#A#7DB: )@SB:D$2B-!6'OPD*%C%@0NB=);Rp
MN& &,[C!#(1+7..")0W)76YS#01=%T3.!RTA EC*T%8<@ "K6A5*E'1P%AV4o
M!P1': (5Q!9-Y;3UHAPNKAR."V+E5H&YSBVQ=%$ 7J1,04'?\2X6GB"',Q0Fn
M#7KX<(?:2H5SJG0.A0)!%51*KT[5I88C?JZ\!D/#(1<F#RTA2I;&R3$8S !Bm
M/@)2<BJR&1!\*C.$221V;L46&P)*.08*"YCO>QO$= 4I0N[O^K! &.P45UADl
M: F2BJ(J&JTT2$[!3'>$)*!IB0L$*E (6U1 HCFQ@5"&PLZ5LL2&%ZBJKTP:k
M PM:,IS<P@%7L:X(4!/H.\6)C2 ^JI35!%(8<57$2ZZ&-:EAY*MVC6$,1FH7j
M" HJ(.Z>1I4B:&=7<ON&KIS$T64(R1:*&Z2VZ P-=.C",+&@:C0@JI"JBB_Ni
M@%WIBA1E/H3ZBV*:-"*YXA0[O7$0>]PSA9:(P4V!$W<9"(+N4$TM5Q8OY#3Wh
M&Z0^XV P,:!!9)83@PS]&@^.B=N[%0<ICF.M#._V%5+> (>_=,@I^ D"&_HZg
M&!\5L#9W($AO#&2';NOV-%>Y3;YU!NZANZ'HB_X"GG9^$CS@P0<BN)YA)"@"f
MIT/=OE_@BT%/DH<\8+TE=Q"10 +M%MG=*W!]+N2LM12M5CL&UOBI0J?TR):"e
M>QL[>>C+H-R0S>9DS9"$ 8'$*5YNMP@K#7%P2Y\#3R#%NW/B(K$+&08SASJLd
MW4U<7WS%,33O2%/!(7JDP>44HGFDH."8,L"##'#0$_X6\F"&T3P(K'"$(*S%c
M86&I.*'MC4TL!.?0GPD2NU\><\Y[GOA(P0$>/LX<DN('!V/A)[K!+?K&@V &b
M$IIW2R!U&Q\QVT.!FWNM;^U7ED+G,Z\6N.0)4L@.7<;PEK]+'9S2$O;#: X]a
MT6='X19-X5'T%1@O-@12\ 5#\ 1,, 6#,04*^ 6-<P7P<1H)N(!#@ 1!( 7Pz
M413>$2N4T7^B$R=E,#!SUB2!08!VL2:F8BN(YC-=P6=#HART]@)GH!4N0'S8y
M81==,BZ:=AOJ9VL'<Q<<Q1R5H1W')1#E0G3"T2'P$B0%Z(+_QW;[A6F*\P2Nx
M<2L.<2/&H34P@AR"8QG"88)(Q08- 1W8)WLUD#@0TW(<M![!D3EDT!3R@6!Nw
M@16#,4=A(8$:R($>V"#!(D^_XC;U81/]IG@M>( MT15C\&H>9'.W$6F%U$[Zv
MUS.+5B2WX2?(=U!)(3="YA;)%BL"V(7 4E"->(($XQKW5VB%$2RB(R@*@6F1u
M<1NW9U^:N"4\\HDL*$((:'X#$1=S@P64J(38HR2JL1VXB%]8YA:O-P-28A#Pt
MU!-%-(!?LTUUH8M>(W<VZ!@MT6?B]09WD!;?9P,)E':8DAYZ=&G+88EXT3/^s
MAX HD ,N4 ,)E";+D8D&LFM8\(Q2PFK\A!#8AVH@( -M2)!24DQ(L3%^0(_Vr
MF#B\^!FA" *4ER@Q!S8=1Q #^(UMT86R0P>%,G-N@"##EWC0^!:*!F4,@@(?q
MM8O^A5<M(& 9PE\M\@8/]R)J<3O%9P/8=Q9"\@8_,!MQTB%V,B4J,HY#E'_Op
MJ"OQ:"M+D4"W4T@\21J\\9-NB 60HA9R4B=A$71R<([X9QE=B%,&D5\(6)(Eo
MAY)A-03]]5_&A@5!(#H( FUWAVT!DY1]1I>OAFT^X0(P "P8J'YW61D$\0)'n
M(0<;(0=C\ +JUQ(8V&N=!"KJEXAZB7<@, 2FUB4#49=E4)5+MQZ11GF31(QAm
M8 =]X5&NM'B)TG@Y9QB#X2E+41?R,1A;691")BZU01 N]4A?@R<CT&\MH3"_l
MV1MY= 9)!P(OX#M,I!QM4$1Z$9JG^7M#QC.ZPBUI\I;4=4O8I5W<Y8U8 %QLk
M 1%(61$EEQXT0)MD&3R(E00,P(A\ (<Y 8;@08M\9LA,B(C BQ>XABZ8A=,j
M:#4H4)-DX'F!4W=>8A??5X\S(&7V21# YT2UH1T#4X5F,%#9D9^**2**P7FEi
MF8>YF7@3>BJ[4C7#^)MV) =X)")Z="R)(7G:(0+O&9_S*0*X03 LNJ&):)UNh
MT77V%J)?X ::4P8BH#@C4)^98FXPD ,O ,X\ (/)F.I) ,94@54P)9U!YY g
M !6=TD;*00<T8*13<)I\Z4A<I!:&.5D;@1=D\ +@R42K49]&ZC!849S[5H6Wf
M@G']059A$AGT<@>HF1RW(2S_AQ04)8AHHB8#XQ5PB@7V"2<'NARJHB=N,$Y&e
M"B,>4FBK:6XQLZG;%J1&V@*@&JH'$:JD"JJC6JJHFJJJNJJE:J0Q0QT#B4AWd
M(*NT"@)24 1!0 1-4 2N^GW+ WZT*@>S*JP((9C'UZL"]A,'0:S,.JMVMY<\c
M<JR,:J0]4*W6>JW6:JNXJJM%H#'8^JW5JFF5$1AAT0*0<0*WFJN[^A$M "Q8b
M( (D$ ,T&@(;\ZX4)0([<".$]S_G1! G8! (,0=KD :B4R[IRJW0803\YA2Pa
M0@9J(:=T 8 E7+#V*\6 ;"RXB\0:K#;NJO0T67^D@( )4^\@1$:<4\H81%3z
M (A?4 1/8 0?$1+HVK%%\!$F8 )(@Y%[1FI_]H5],6CX=WR!DGR*MHR-UGB0y
MQE]-,&F)>&E;AP6;]EP=XFF)1AAL(&JMH9N9B6KUQFJ5R9>!V8WKUR&XQE+\x
M")F_!BH8.&RR I**(T-A*I3*YA;GYVS/*FU]1FW,86W85G.)QVT&]VTM\3_Aw
M=GGD9FX\@&[JMGP@X&YE$F_S5F_WIAV?6:?!%A\ 9Q.\LXOWB12!BW#CHG#Mv
M\1X.!W$5H9H5=RC9A7&'HG' YW*D1GTA-W(^87*,DG*-NW+C)Z%YTK@P][B"u
M2'.2B',@H',\)Y0_MQ9!9TA$9W0'!Q6(\IDQ1+A>IXQR('5^A10\8'58IW69t
MA@74.R[-&W5BI[UE=W98D'8+17Q:XW;R%'?:,9D&NIG0FG=[MQY]Y[E_5Q$5s
M643["G.N@7C @KK>]WB11VJB:7GCEGDOY7R?IS*$VWWF1GHM87JHMQZJYY.Lr
M]U*N!WNR1WNT>WNRN4TOM7N]]WO^DJFM2'R-.$1#6[6,Z[CPYL#0)R'3]YK6q
M)R'9AQ;;-[@)4+CC-GKA-[B[BRG V&SI)[:V1K;M=X0H '\?9C7PZQ;V]R/Xp
MYX[[QP;]Q\3_%X :V853>(!.-H$-^( 1.($5>('8X8<,"(@?.*G)(8)F0()Zo
M(3" X8F0 L:+^()3HS6= 7<UB"6.@8,ZR(-?H36]$813HL3X\SQ'B)?&")(Jn
MNAY.:%E1&!9AS,<^>(74TA):F#5<Z*)E\(61<H+M$J$PMQP"$UMHZ'IK:)!7m
M*4-PJ#,V1(=V6!>GIH?9(1YLO($=^(%(,8#^=AOZV42>UR[8D<DPDHJ/:!=:l
M-HFVIQU8C(E&FQ!_,K1X#(I+(8J-2XI?;"C;UE2IB(*BK#4E^8IY@8\B08M1k
MJ1WZ>!MFJ8**Z(M( 8P+X1 5',U4<XSIR2#OK(W^F$[3."C66$C8J)_-N(WQj
M*[;?2!#A.(YUAR'G*"^#6"[LJ)19W&V3VGZNYY#W*"COS(\!#9!H(9!HP6JPi
MC) :@H ,Z=$0"2D2N<T4*7B* KQZ1FH;B05BV79@$9*U2)+X!RPGR4$I^4LLh
MF<,OR2@Q.6"T6Y,WB2 ZV1)3Z9.; 91"69MAL09'B808#8]<?)9/68M?,]4Pg
M4)55?959.91<^2-A79([G2EEV8RV@G]I2=1KV99X];9H)9=J\;71BI="1[_2f
M%@-^"9BR)K:#26IGBIB3M9B-B06/&1"^QF^3B8%^C1^8B<1WBVV>"5^T#)T$e
M4L&E>9K-08"&J\*MN7G,L1JQ61AT0)M$&1:W64-]MIL/T9MO\)NG$9QI,)SCd
M4IS'F9P@N9Q#YIS[M1P)/!]WU3,ZJM=8D)UBEEVVVIU:_)W4+9X=YF;(Q2^Hc
ME9XDMIY=(38LZ[)&T']HX&AB80/JK:WJVJU\\!+0)!#^^AET(=,C<[ >ZRW b
M1@8 =05C('4]( )@< =C<! %[D_X7;-@,&\;$A:P6M)E$ >X1 +^+74T^MX2a
M9+$SV]YME3,[ Z2Z8I8%R:3G(2 $0K2Z^!'P6N%C4'II0*W@BJV++,A_=7S>z
M&N/7*JZ_%R'F:A'&.D3LZJ[P*J\@0*\@8*\MGJ^VD>'R?;&8,[ %JT<_#ADHy
MH+!JRP8-^[!X,*<2FTT[5[%-_J];\Z !5RY3_K' )[(M0;(<04\HZT\KVX$Mx
M^[(QZ^.(?7PVB[-8H )\#@(Y.%)HX <)0 4C! )*8"(%"7XU1@,W8&,W4%9!w
MT1*B^N<[..B%?NBZ(@/@]Q,Z( ,Y0&,B]Z0MP>>D7NJFK@*CWN<T( ,LP.BHv
M1NJ2;JJKS@(!&:J#&S-%@)5%( 49\V^R8F4[X#$OP&HJX@9<PA=<'8^"Z#V^u
MIP+E!+ZXKNN\CKG*6!C8VQ7!G@##7NU*YWTC0R1JT2*@ <AN@S 6B5>H]NR4t
M!@*Y_A_3[NMS<)39ONW%?NP$D93_G"5>P2E;_1E5TS/.WA(K (C,$0",QM.s
M\!],\ 70V!Y,(_ 9.Q\U$B2][( 0F($4^ 06>,9_^,L[ /$C$$U#1,30CIRLr
M9F"(@:*ZZ(D!7_+MONL9(RR=<@994A' ]P7P8DK-&.S;OBA_X13-6!%UYR8.q
MT0:FDH_/TS9X8FXM3^H"4H00,0:"3NAN@>F)+A8PT.DSH ,7 NEGA06BVL@(p
MPU&67O6(KNEEU>DXH ,TX&*BON>G'O>H#O>LE@.PE ,N5NJQCA!V'TO+<ZHMo
M<.O4DY1U]'1Z8>1*L_!00 52T!-B8! ;\RQ?L$-!ZD.L! <&X[]+[Q8;LT)@n
M\09I4/AV <I\/$E'T"&+S,KA)M$AP(B4)/8=B]+(0*E+_@)0/A$=_@;D_A?m
ML/B-?S63[\P]I!P')0:8#_N@P5^=_P6?'_JY7_M8,/ %;P8'GS0*S_ RX/ -l
M%_W4L^V] 8L*C'F?.5^2F.X0C_JCK_I?P/I/Y_I1-W5S0/NF/_"W3^6Y7^2[k
MGP2*S_@]4?$/J/[-3_21OOE'/>[?\F-_=L#]@9WR)?_.'^Y+?8A/__4^_H?Qj
MTA@ W S.S_!!/_K7R]R8S/!_\('5L+$T1@!#GF$8>24O9O0!P1<SP(RUVWPRi
MX_&9/AGB].(11YEZE^[L;;I/-P-2R=][>V'OJY$]JF?H=&#:FSU:S^NE.KEGh
MZI8@"+ !L(0GO3H^M_>>("R)5;:NY!6\YR)"S,WKXPO)P2;LH'FS[K;@(ZH#g
M7G!;Y($Q2/*DG\$[00CO^C4\]@'Q8@84J )"@ DD ;;DZT"@S.!4V(< VD$\f
MJ ?Y(,5#8QH//FP,3F60!&%8(81[D-IUP%_V!V/&0$)I-< 1C@ [EB4P7A,(e
M O^#4_DC%3"-0![%JH,$CQ.Z!3_(J5HA]M%VK.8W,1L(1?S$&K *FZAY0V\d
MF+$)55$G'(&)L!6V0H,$"PE>C9HS8NT6,1KSQ_UXH2K$>+XL$ G#F($"_* (c
M1(06* 440UE8*6CANFAG7:*:Z<)-U0O)F2<$A0F 4TU"#V0*3^ <BWZ";]L-b
M ;(EF]*0,"-'^.:KQ0F/0B_P0\LK@\]P"'P!*[!@OL 42 ):H%MMJK% ':+&a
MMILZ2V$PX(!SM!0JPLA035(@"#0!9@@0?:%;: (#L2 >Q(3(J2Q'3RJ&B$%%z
M"(2!(J)D $4L81?QM&7$C=CTF& 3I'L@X ;$ !9P [:*WM."SS!R&($O8 28y
M0!5860SH/5"!=.@39$ Q7&6] G>($"_1;2+$/W2&'I$],($@, 260$Y8B,7Px
M11"*!+(Q(.)R0 LHX'9(KI0X4A*16>P)5S$59L4K@ 261A'XBC'C!A1#]>5*w
MRJ)?X2^/+BUN(H9@;]@B?L! ;Y$9(H1R2#!8X3348=NPU#@SFU +==(QS(7/v
M;C$^0V!H@1[CJZH!D1$7BJ2O\<]:GF;,BNL0/CS&:DC&+!Y!XHQ30!MN.VXXu
M&7U(,G1GXE#=845S> 2> %%\ E+@"G0@(N 9;8;WLR]^15<(&<Q0PN(B8^R$t
MO?$+" &NN 2$HQ0@CM,P!A3#19,<$\)89(X5P3D^PT^(!5J6!.I]':@)J,9-s
M51Z*H5$P>H)B9 0&Y_2#XD"2X6D\Q$'D"G$4.$RCJ<(!5]#%D*HE:!.I($Z,r
M 3?@!L02 #D%Y]ZZBQG;#@EH'N:('RL?\?.'NG%3^;JE< :R73&T%[3C=HR,q
MW'$GNB%^L!%C( \\HH5BS9 /1^14OFY U(JEX"&W'64P ]\OKA"(OK(<*E1Np
M&3GKH>4%B!8X$.Y"9.!$6R U=@&>QVJF68BK9IQH:+W(305MC*18= -K8 YLo
M@3P8!)S $I".56 HCL0BL"3#XC43%)&JNJ@4/7(E$\@L9'D9L@_,P"H8 P9,n
M+,D!4F) ID"3!P(DY$NAD'Y&^(FO6H$A62"UXY UDM6 R/(W(H5#A)B%)U+Im
MJ$B%4>"BI*"(BS$C1NY(&BGL6,V-S)&004;R2-QAH3@D,QR2K<9(VJ0_D20Gl
M$'DLD]O.25JO7&0IEP.F3)70XM5@22W));TDF!23")%,,LD6*273Y*)@D[K2k
M379#."GXY"3)BW,+B+R9-_2V/-;;F<-P\0V=G #ZIBZH&&0X<_H-1O"WEL#Bj
M MR *W"%RI],N1.PX+X1N?)54/ @1+@)Q^(N''P+(&%NRG4XC_+A,%%"6QU0i
M<##(2!1GEE0<A?MO+:Z"O3A&=>-PW,:X;#;.8>8XJ#6N>-RY@IA [B (N7@Uh
MK^J5"+A72DY>,#EMB;$$%L'Z-;U$L-DE&U?E%A:6*P-<0<MQ.34'3;Y<-@ESg
M&(O,::Z4&6U6)N$#672 9K(YD^41^HG*&F]T#I_P!I7YU\Q GFMA@,+ B0$Af
M,(X\W'R:$ROR"+F JQD0% 9'<8)6DRYES3&0 *: L'@Q1L(2OA(;DTIH0 U0e
M@F#/5&U-L>DUR:;9O TP1D*L34]'8S+$VRN0/]'IN4U:=])@7=Q$"(,32@ ^d
MP7<P_D*!,TWN9"^<32B EC2;)*,ME(%I #HM^X:)XN$G,]F7'2%HD,Y+>=Kc
MPYRO;G/.P!98%QRGX@%]H1-0D<[*^6\$9C=,G1NPW+E.T&E([$#%*9VU$W7Rb
M.=7).%LGBRP*C>='Y:.!< <<25BIG+42U1#/DN<Y'R?L#!:32GP]G>=I.FTGa
M@AJ>G)- %D@G: -R $\4.3]15-V \W #,H2>?) @8 ]T'=$Y(T3 8! !0&ISz
MC,Z%XA:H9 VI9%"H:M$%C[*BD,+^Q#;V\S'VAM'9!_@1_)2?,D][VH$$BC^#y
ME&?L"M1&3#R=)^0&+IDA4@\)U#-NJ@@J.QNHH92?+>+?$!T**D(W50H-$@"Tx
M@PK0)J(>XM]@:*%^AH"64'ZT"^,G$)LXZ(:"5IQU(Q^Z0 NL(02L*[P QK4%w
MFE3(<5(V0-[<T&G8&WQGXS&A>W(/E+@MN@)+GK,$7^+3)CI!&I #:D"KPWL-v
ML@J2404));;*^Q2&711^QE%.I2T(Q&V 02PBZX B#?LZJ#70J*G#=WXT6>Wu
M1[E?]7R=D;.*5APC( .Z9Z Y [I&>*H TU!E[("4&7A[P &VF]\%;^:? Z1Rt
MC[3 A02A<$FI1P+H#5_ BG8%%! [<(9L -;( 9T@>E92.D?X0NE^$1*E-($s
MD$FY7TZ086%A8[322KH%9, L)8 YX98"4V^E-]^;[[I(U<HGB!QGNDRC:5K:r
MI3D!E=J!Y8,"JNG&<#%!:2Q$"1#05KRI- 4!X90\"(6V(DYI0.Y, ',4!'11q
MH24UJ>;(T1E<,]]HS7P*7[XF3@R;FTF?VLVSF3?=WM:+ 6WS;0)!N<E/B0O9p
MNYMH,ZL8U$[WZ7Z@60FC3- ))D@6@ /^D>%4GPJ20;Y1W7D\@X1#\$_RP@X@o
MA=*),:P JO&>MO(U!0G-R3E9YX<I</!.@J[4RME27ZKPA*G2LZ:25.L9.4DHn
MT=FI**"G3E+A24N'*B*-G:K4+0#/RSD+<>><I)[&L\"-OTA4.U#-&" N<&#>m
ML9JM^LS\#.B3#Y=2W6%4N><$\20+R &/+GV:JKX'%!9G%IV?LC.$<BK\(4&Ql
MZ /%JZ-3KVXJODH'&*@#Y53RLSZX <':"A4K%NVA\E."":DIJDBOZ&'=5%HTk
MGGY1&@@X#:33@X(?QP;0 *$@5Q&":#T/ZBU/9D'X2?A0P&UXF# S0QU5T3<8j
M\J>(,IW24RQL3I#P-*0,_(P9=11+&**5*/I:@ \XJG!@"[B!+C 83D /. $]i
M8>#%@-6YJ8+K;4 !555SBH4\*O#XZ-S;A7\4DP72QC-(NZLAS:I/M7<NTD8:h
M/%UI),VN2]656E*(UTMMZ2:-.9[4E]Y2]XI/2.GY.Z7C(I6B&U:* 5DI,96Eg
MM/230@=<&A)TZ?FKKZ:TFK(+T&=@7VDQ/:;_59ERTF#Z34$ -=VPS'1V?5AHf
MNC&NZ7\%L'0@E7)3<PI.\X:4**<@UIJ*G'2*4,EIWG"GR%2S0DW(0%&F9M7De
MEURS?MF;N<DT=Q#8!+*7#0V438*:-O7F,;$Q6\]MPDU1161[)H]0LA"UH*[-d
M&5,#MLK?[*QS3W#N1,7Y$\N@&2(8.$5@?0&BAA30S1?X%V9V/(+"+Z 'O21\c
MJ+-?DCP*OM_T#)V 1BP"!C%8\H<_^P7T+!8($+^)TW3!';78$M-BPI%+#(ZQb
MP4-K#!4M&F2TA\G1+E&.T-S0P+Q!M/'A#'K!1MO8-BU\^A.3%M1:VE&;:4LMa
MI$6>72'55EHN>&EQ":E53*:V\^"C25L&*9;'R G;+JD9!,)& PR;T',,XFA*z
M)EI:B[@4AJ*X#V@ Q6C!4+MHS\U_B;1T80=)6U$U6FE=ZUBMO/#,=L(TNT+8y
MK I[LWM6W'[$.8MG[VS2R+.@,-WV64([)@?MKBJT\9;2+EM1NZ."B:F]-1#!x
MT[8$5<ML^^W6A+2=]M/.6GZ+2_PMI.5$LG;?5MLA=7 Y JR]L@I7XM9:BIMKw
M\\)&$;A:T-?^VF#[7_I2L4U$84(KC"/G2&UK+0]PMLWAH$3;=+MJW4+BNK8 v
M5]ONV'KZ8_'I93,(598S180CZW.++!Y8LGBSR4Y4A,KV0MU%/9S ),CBG:.;u
M997NWK0!7V4'1CJZ!SC'J!GE)Z658WQ=U0JJ;)\S@;,Q8Y4\0YRG)LVN*DP t
MJ=2=^+SS)U3,H0M)L5&5[JY=;;I\W&Y67'_C@H?X7;O;&P3OZ:N[@ 'NVKN<s
MMQ3@#-<=GP>RHR[(N/I1356=I $L0 ;4V)&: /# 4A@?V8,,-(IU=_OD0^J0r
M)24/OM$_3@('$@ N^A>UM&!HTQX&#WVIYY4#UR-[^ _Z5T1RA>N= W; O-(_q
M^]'J4(#QVZ7_YO0RD]J[>E>#Z]46PE?V!MAMFB=B2.SMO)\W?>Q>ZM%[V<#Op
M#;[,EWH07QI@?$G?^4,?9F($B-.O-WS%Q^.;(N9!D](!Y6M>22_K?;Y "(RFo
MW@1 0]H%8A 6DP$R&%YH.>?*&Q80"-12O64(C D9L*6&XY;V#3(P8-Q17<1En
M?T.8YI+ &;B38!$8,+MD<.\R6;G1>;GB$*:]')G^B@'O2YU!G;21"!:8)TZ m
M-B.#62\59C;9<F%A^;8$Z+:=IIMN\4XM8=OQ8.FV77XP&Q@,S46EK)U2M1>Nl
MVWCR,-OM/'DW-6,@A HS3#'O 9@$$T/U%UC7KN@9%:=#((ABAT@T41-Q;9AKk
M5MB'EC MR ",D .HPFIA+2N&<<($?L"AFZH%2(&CX! PSA7 %0I#<[R1Q5%.j
M+%;)++(?:2($CHM 3SA"T0P)E^TC&<U_X@3%9C]E*!YNT*&!.L ?$D->% N-i
MKN1P/:W[]425)7:H9#-$<&(GX(ESHEC8>EV6[;F]IPMFPVR?6Y\\D?(:2)NZh
M.Z^G>;$_0:)T#M!C)B""GY%<JL$3ODY/7OPYK^>SL*W<,QG?3O!I^I@Q4:T(g
MBC4:4]5I3%--7X XI#)/9]0\$U<@Y,/HY)Z@<WI^8_0:CFE>X,!-Y[AT9M=Ef
M[%1Y)V%M7E/U="ICZ&>-TRMAC<>T<QM_SVX\/9QJ3D6I1Y5[*E6@BHQGZO14e
MG^SST>G)?FR/?0TP#@O"V)@AHO^V0\)"0];'W)@>'U+>^8PM:#YFR 2Y<Z)7d
MWIF-3[(D5<?8<^:-XX&9: R"DC'T"] M.-Q#(]G!/><Q_RX'OOBZN62]W$Uc
M%LJ1\Q_[Y*(<DH/R(3W(LO7I(-6%_%.I74JNQ6,T!IC154=:#>>F8C7S\.ETb
MJ5JV!C:?#G@6'9G4 (L#FB)4@T\IR,PP9@Q<I[J3 P=--L<^&8.@ "DCE]==a
M+X615&X.E67O8P+ZY'"$'$E@"BP!*<-MM7*KT[QV]2M?IJDUE@6S64;+YJ[/z
MK.49P3^WC5M6#G"YY?5EG3RIQ+%=CL%XN>CH9;Z<'_PR7.9J*, R$V;#?!T1y
MLV*6,E@9)ZXZ\TD#9L#;_(F2>4\Y+3XC-P9#-TP5C:<BO$>?XB"TAC!3'%_Yx
MV8UFNER:W7%%Z,FJ.09@UVE,FV:$;67-!?DO:\@@,3K?HX<LAO)EW#42SLR7w
MEG-:5:.>KM7YYL@<,UB-</Y9Q!G1&&?=L_F4\V=>%YOL.8=FZ=R:2;-,?L?Tv
M,SMOY^_9G>W =R[(X?DU^[KRK!K.\[9+SV]G/;>3]OR?F:'3HTL<A:[PRP1Pu
M!0('*RXZ3U LK#UH]%5DS-,UQ9MI"&[B3HRB'QV3LC%8=]7!S=SL],J##8@Et
M-3;L^F@@378#GTJ^J<6+"!"!6V4WAL(N@0)GE0Z(57,1@_+6+OD:(2HN.]5<s
MM:2+0)-F M]"EW"%*?UJ(L0!(1(5(4N+9J=:5<4T&9@"SR-1[A%_@Q12@YE^r
M'N5B'#[E("%GZ@#DVZX0^DB[3@.1C'YQEI /2$'8ZI6[,"S5U]I)RU8Z5JSIq
M0SJ,-[(Q]LC"=@B8@; *;,>J9Y,O[2LS$P1)X:'!K!/4= I2!NCHL*OI/HZJp
M%CD3N3X3Z"[:EP<>62U_*F *=*BP'%^@0!,YRGWT0;*:)_!<1)E%$B]EM5*4o
MCEQT@@(%951MD8HOZ KWA8#@%U8(S;A#6&BN#D%P((VV+G]AXL.]";< *W2%n
M5X)*D$%2E MAJSAX=)\S2*S.(.GBN2>J#!+FE5(E+0O&#/$<,ZKJ9U(A<OI6m
M=]4LK4*T=+_^U.2OJWY5,Q"P$397O1WC,&;H:L7 JW6&KUX.&\,$+.RC7)#El
M85M (.4.9*,):;.F,R654]<=)DDB@2=0!+;B$""3+N!,,U,8T!-ZJ;MF-39@k
M>; &Q"D*Z]I35([NT[29X(4/!Y'TG@"T@4#A2@11]@&=*"6?IMQ8H@2[S$>j
MTL;R'7C QP:E5Z@'5/ST7B: =?DZ)^BO#?$*\IY.GB&C(#>LR60$M'/T7*K'i
M-U#?["<H Q2D:.W*N[@U"\-;B@*T@H?H"2B U:" L&V5 ;<)J)SS."&0OBW@h
M)W %&5BS$&>6@@#IRIH]HP@L D. "@#'0$L2C=S2;D8U>RX+PQ=*!\R ZRL!g
M^HNX4$HZ)>*>L':K'5Q@L0Z&$/6=O?$T]-MG@/76$?K >D%.3FZ%731 B.Y-f
MA2,1R!> 7AM#<!-N7Z==4<#A7M"VTO$M[L;]%""W0U@!QO1W<ZKBO4+@0(%+e
MWM!A>3MDZ/"\$_?Q9=QUP'%;[S*P F@ AJ6TVQO,K!#\(3.4=W4>Q\S;<"/Nd
M:2R]4P#Z5M\/YWI'T=\]O&.&\2L*?UIB9.[-/2:/L@H,U)S*^(FXA]F,*$/@c
M/KY;XX"[ 3Q@^D05%,2\ZDTBZVN]W0KY-NX&W/;[0 \SCZR_H7=N/=_4^W$'b
M\#(@N2GW:YZ&EWN!+Z!ZZ[F!C5D*W?";3[I0'6JZ10#JUFB@8Z&P[H3FNHE,a
MAXC="91V!RGMW0IQM^Z>%;W;)Y0^(3D-";<*: .=HXG(C,%]OP-'_B;?^_M[z
M]N\M $]PP/M&E7MU&H-QOL 09 8"G /5<%=_ZHO- D0 '2^L]9.* V;H,$#'y
MP&I 7-\)/3Q9Q%8-V<!;X5?/(QC[ D;^A(Y0Q#DF^H4!G%A&,EKSB3'HX_<x
M9$.'3B[&HRG-#N7Q$S;+YJX@9> X#@?CGEQF1 XK\ 60 !% "P,/,S-J5!XSw
M-+DKW]M4S@VX$*.Q+DIL&^+ED!R6E_+Q *MLMPCUY7B8E']RV1,#QH S!]ZHv
MO$__Z>F:S9]TE"X>:,,\7/,(CC+_-"C?Y/+TD5.L^(G*N??Q7D@$B8RK\,*-u
MQEVX=H7AZ;MZSW#L_<:GH3OWWO4[?)?Q%9Y;G7<:C]Z*VW_'\/7=OONY,'3Gt
M]!M\RW/33-";=_GFWPG]?^MSB+,"!O@XWU0:/(%C;LV]PX/E1P_>)/R!K[O7s
M+,$3&@7G$A8\U9"^#%[.3=_<%JT@O :@3Y_]!'$Q3Q+A9?>W=IO1L1D.^@O7r
M"[F\G \&-PVE@V=+YQ)!>7O[\(1V$"(?:]AY-]Q)<X6F'B16@%4W2XY0E*, q
M;0X";A9T8.I1NEI)AR%0'4HI8FW-/72OTAP\\@:,^CU'ZB]FI#/P8#D84 "7p
M9M*Q49R:APBDUTMZ0LR=PA"M^[JS41X:8EA/YT+=N@)J.0K!!^M<+^KV7'I/o
M;L6-P)>Z-P^>$]TZ8ZZ>\+FAN@.W7!/<)SA"PJ?-W3J5?!Y=&P^0;?@IV8OVn
M%SC:D>,HT^K6_*&-KHCV)"6Z(ISHF)$A-"_7:W0&:<J:JI^KB5=Q*[;1H9@&m
M=#JT\&4[ZQB] 1^G[?UFKTS" >P9"" J(^T2WYDX)OD&#]%&-F(-B(&Y?$HCl
M2NZ=(JJ';W@&FO,$18YZ9^^GX;V/@!8P%N)[ M@/@J:1B*-])=[%QQ?1'D.@k
M$"Z!*0 %=MT2J!*D-SUYWR\B-<Y[ZU8ZE#)+%F0 DD:DQJ/)(V7UBEPR-8K=j
M6QT.>)NQ>L-?$?"^X<>[1BSO_WTO: [T+H36.Z5M[V) OX^%5QCCY[M>B!(Ni
MYK[?^/PN1OC[]+$9,3[ #Z4[0.#%KX'/'B,@P>_!!=_@I<"#;_$FPO4>7?,^h
MXR^\@,CPX=W)[X\.+]_)%<\H?R(^T53B@%HW?_MW5\4T^A/3#!NSHF?QUH71g
M6+-N-O<X[XIA@'3W*EVONG==G'@#,&]/3*-0M]!SU'P=U!'K%AT,,&"W?]%:f
M'?&TML"&V!.[#%3L,W"QCS+H--ML_I:L9KEMJG$B@.2H>8^GXP#,.QJ&-NI4e
M[V0 22:-.T@%A$"8- *[;DR6R6(([C:8T#N3MI) 9\H@D08L-*LI"EW!(*QId
M5)CI-_W%EAD:^U.?=JB(AK9J&7#>GRFJI_3C!AU^SBQ$ 2<@=D/7?)6O@+C3c
MPRE$(D2QDFM#HDUT*\X0-YH&2/>3M% 1 KI713"BW0OW=Y_HFJZ-D1*"'O(Zb
M/8/$ GH@HD^[IW0SR8F#4I9B=(&C2V( 1QXA+K#A$WZ>_R@//Z!>8KLC\0L<a
MQ2>]%O\$R>\C1)?^G!@@^9LIYTU\]A[R%0680?ES0KGYT[X<,Z!57K!):J 'z
M) ";?UX*\JU0*<\"Y^M\NM06N )=L6) ?R30E2I(\ U^K,ZF"K^N-/PY ?.=y
M1<<' 1\?X=--C&]W!"K'/R@>O^+3)>Y=]4U^U5?Y8?_&MWRLP% R?LQG3D?Hx
M6:2+H;O2UQW/%_H['];DA:6_[GY^&@CZ8B#GA_RB3P:.OM\W'2OB\8I1G.B;w
M6QW>GGM:/^H?E,!&]2F_U9_\6%_LA_JC?XK- .??3!*?(&1]4SKV1[[E-_N6v
M7^6+?I9/EUP^)K8[,C_QTWQ@,@5N?1+ EZ:<AQ]DS#S@0D>H"LQ1%0U_M%*u
MGZ'^G%CXG[_RVYV(C_E'O_'OFA_%\NM3RQ_Z,S_(+_T()/FW$:UP\E/_=SCZt
G'S] /'_7K_UC_]68^[*?A+N VG]!;G_N7R4$@??_CG47$8"_ B@Gs
r
end
--[0029]--

View File

@@ -0,0 +1,42 @@
[0030] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/10/91 20:34 (39 lines)
Subject: shoelace patch #2
Date: Sun, 10 Nov 91 16:57:48 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
There is a big difference between floppy the device numbers on linux and
on minix. In particular linux has fd0 as 0x208 while minix uses 0x200.
ie. linux /dev/fd0 == minix /dev/fd0-dshd5in
The following patch will keep linux from using 0x200, which it doesn't
know about and instead use 0x208 and 0x21c.
Apply this after all other patches.
pmacdona@sol.uvic.ca
*** shoe.c.bad Thu Nov 7 08:43:30 1991
--- shoe.c Thu Nov 7 08:52:27 1991
***************
*** 638,646 ****
longjmp(errjmp, 1);*/
unsigned *myptr = (unsigned int *) (&((char *) bp)[508]);
char *myroot = getenvs(SaveConfigPtr,"rootdev");
! if (strcmp(myroot,"bootdev"))
! *myptr = atoi(myroot);
! else
*myptr = 0;
if (*myptr == 0)
{ if (diskcode)
--- 638,645 ----
longjmp(errjmp, 1);*/
unsigned *myptr = (unsigned int *) (&((char *) bp)[508]);
char *myroot = getenvs(SaveConfigPtr,"rootdev");
! *myptr = atoi(myroot);
! if (0x200 == *myptr)
*myptr = 0;
if (*myptr == 0)
{ if (diskcode)
--[0030]--

View File

@@ -0,0 +1,38 @@
[0043] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/11/91 14:06 (35 lines)
Subject: shoelace patch#3: put environment ptr where linux can find it.
Date: Mon, 11 Nov 91 10:58:22 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I know, I know. Three patches in 24 hours... I plead end of term
instability. The following one line patch puts the environment
offset relative to the shoelace corpse which is located at segment 0x80000.
Thus, an offset of 0x1234 would put the address of the env at 0x81234.
This offset is stored at location 0x90506: ie. in the word before the
root device word (508) in the bootsect.s corpse.
By including the shoelace header file shoeconf.h, the linux kernel
could now read in any of the environment variables it wanted (including
scr_cols and scr_rows ;-)
BTW: Given Bruce Evans comments about shoelace:fsck ties to minix,
we may wish to remove it from the code. Who wants a facility that
only works with ~20Meg or less partitions anyways :-)
pmacdona@sol.uvic.ca
--PULL_TAB_HERE -------------------------------
*** shoe.c.bad2 Thu Nov 7 09:33:34 1991
--- shoe.c Thu Nov 7 09:45:28 1991
***************
*** 650,655 ****
--- 650,656 ----
else
*myptr = 0x21c;
}
+ *--myptr=(unsigned int)SaveConfigPtr;
Linux = 1;
LoadPoint = 0x90000;
bpinx = 0;
--[0043]--

Binary file not shown.