perry@well.UUCP (Perry S. Kivolowitz) (01/23/87)
As promised here's the ASDG ReCoverable Ram Disk. This is part one of two. It contains the two files which must go in the devs directory. Part 2 con- tains the stuff which will go in the System directory (or in c). I know this software will be of a lot of use to the public and it gives me a lot of personal satisfaction to bring it to you. Perry S. Kivolowitz ------------ #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # contents # disclaimer # mountlist # asdg.vdisk.device.uu # This archive created: Thu Jan 22 21:36:41 1987 export PATH; PATH=/bin:/usr/bin:$PATH if test -f 'contents' then echo shar: "will not over-write existing file 'contents'" else cat << \SHAR_EOF > 'contents' This is the guts of the ASDG Recoverable Ram Disk. The next posting will be the utilities which go along with it. Contents of this shar file: disclaimer this is legalese and such. We would appreciate you retaining this on disks you redistribute yourself. (Actually, as part of your using the recoverable ram disk, you agree to redistribute this file along with the others) mountlist THIS MUST GO IN DEVS: Either copy this over your present mountlist if you know there's nothing useful in yours already (for most people this will be the case). Or, add this to your mountlist if there is things in there you need to keep. asdg.vdisk.device.uu THIS MUST BE UUDECOEDED AND HAVE THE NAME asdg.vdisk.device THIS MUST GO IN DEVS: This is the recoverable ram disk. Enjoy!!! Remember this isn't public domain. No hardware or software vendor may distribute this software in any way. Perry S. Kivolowitz ASDG Incorporated 280 River Rd Suite 54A Piscataway N.J. 08854 (201) 540 - 9670 SHAR_EOF fi if test -f 'disclaimer' then echo shar: "will not over-write existing file 'disclaimer'" else cat << \SHAR_EOF > 'disclaimer' /* ** ASDG Recoverable Ram Disk ** ** Copyright 1987 By Perry S. Kivolowitz (ASDG Incorporated) All Rights ** Reserved to Author. NOT IN THE PUBLIC DOMAIN. ** ** The following applies to all parts of the ASDG recoverable ram disk ** distribution: ** ** May not be distributed by any commercial software or hardware vendor. ** May not be sold under any guise. ** Must (please) contain this and copyright information above and below. ** ** Specifically: ** ** No maker or seller of Amiga expansion hardware or software may dis- ** tribute this software in *any* way. No reseller of public domain ** software may distribute this software either (as this is *NOT* in the ** public domain). ** ** The only acceptable means of distribution is by networks, bbs's, fnf, ** and by (non-profit) user groups. Distribution MUST BE FREE (except for ** media costs plus a token amount covering only shipping and handling). ** ** Your use, storage and or duplication constitutes acceptance of this ** agreement. ** ** ASDG Incorporated cannot be liable for the use or misuse of this pro- ** duct. ** ** If you use this software and wish to become a registered owner please ** send $10 to: ** ASDG Incorporated ** 280 River Rd. Suite 54A ** Piscataway N.J. ** 08854 ** (201) 540 - 9670 ** ** Can't say there's much material benefit from being a registered owner ** but you will feel better knowing that you helped defray the recover- ** able ram disk's development costs. Also, we will answer technical ** questions from registered users only and will distribute new product ** news to same. */ SHAR_EOF fi if test -f 'mountlist' then echo shar: "will not over-write existing file 'mountlist'" else cat << \SHAR_EOF > 'mountlist' /* ** Copyright 1987 By Perry S. Kivolowitz (ASDG Incorporated) All Rights ** Reserved to Author. NOT IN THE PUBLIC DOMAIN. ** ** The contents of this file: ** ** May not be distributed by any commercial software or hardware vendor. ** May not be sold under any guise. ** Must (please) contain this and copyright information above and below. ** ** Specifically: ** ** No maker or seller of Amiga expansion hardware or software may dis- ** tribute this software in *any* way. No reseller of public domain ** software may distribute this software either (as this is *NOT* in the ** public domain). ** ** The only acceptable means of distribution is by networks, bbs's, fnf, ** and by (non-profit) user groups. Distribution MUST BE FREE (except for ** media costs plus a token amount covering only shipping and handling). ** ** Your use, storage and or duplication constitutes acceptance of this ** agreement. ** ** ASDG Incorporated cannot be liable for the use or misuse of this pro- ** duct. ** ** If you use this software and wish to become a registered owner please ** send $10 to: ** ASDG Incorporated ** 280 River Rd. Suite 54A ** Piscataway N.J. ** 08854 ** (201) 540 - 9670 ** ** Can't say there's much material benefit from being a registered owner ** but you will feel better knowing that you helped defray the recover- ** able ram disk's development costs. Also, we will answer technical ** questions from registered users only and will distribute new product ** news to same. */ /* ** Changing Any MountList Parameters Except As Noted Below Will Cause ** The Recoverable Ram Disk To Cease To Function. */ /* ** IF YOU HAVE SOME FAST RAM: ** ** Make BufMemType equal to 5. ** Set HighCyl appropriately. ** ** IF YOU HAVE ONLY CHIP RAM (NO RAM EXPANSION): ** ** Make BufMemType equal to 3. ** Set HighCyl appropriately. ** ** Increasing the value of Buffers will actually slow down the ram disk. ** ** The BufMemType flag is actually the second parameter of the AllocMem ** calls the kernel will make to allocate internal buffers. Making the ** value places the buffers in Fast ram. A value of 3 places the buffers ** in Chip ram. */ /* ** Setting HighCyl ** ** HighCyl determines the maximum size of the recoverable ram disk. It ** defines the number of tracks there are in the disk. Each track con- ** tains 16 512 byte blocks (or 8K of information). Changing HighCyl ** and rebooting will cause a fresh (empty) recoverable ram disk to be ** created. ** ** It is better to run out of space on the recoverable ram disk than ** to run out of memory. That is, don't set HighCyl to make a disk ** larger than your total amount of memory. ** ** Remember, the ASDG Recoverable Ram Disk does full dynamic memory ** management. That is, HighCyl is really just a Maximum size. Setting ** HighCyl to a large number does *NOT* mean you automatically lose a ** lot of memory. ** ** HighCyl MUST BE ODD! ** ** Suggested HighCyl Values: ** ** Fast Ram Installed HighCyl Value Max Ram Disk Size ** ** 0 15 128K ** 512K 31 256K ** 1Mbyte 63-95 512K-768K ** 2Mbytes 127-191 1Mbyte-1.5Mbytes ** 4Mbytes 255-383** 2Mbytes-3Mbytes ** 8Mbytes Anything less** ** than 1024 ** ** **This version of the ASDG Recoverable Ram Disk has been configured ** to support ram disks up to 2Mbytes in size. That is, the maximum ** valid value of HighCyl is 255. A verison supporting up to 8Mbytes ** of ram disk is available from ASDG Incorporated. ** ** REMEMBER: If you have Fast Ram that autoconfigs, some amount of ** it will be used by the operating system even before the recoverable ** ram disk starts up. So, you've actually got about 100K less than ** you think. ** ** NOTE: Using Addbuffers with the ASDG Recoverable Ram Disk will ** slow the ram disk's performance. ** */ /* ** Copyright 1987 By Perry S. Kivolowitz (ASDG Incorporated) All Rights ** Reserved to Author. NOT IN THE PUBLIC DOMAIN. ** ** The contents of this file: ** ** May not be distributed by any commercial software or hardware vendor. ** May not be sold under any guise. ** Must (please) contain this and copyright information above and below. ** */ VD0: Device = asdg.vdisk.device Unit = 1 Flags = 0 Surfaces = 1 BlocksPerTrack = 16 Priority = 5 Reserved = 2 Interleave = 0 LowCyl = 0 HighCyl = 63 Buffers = 5 BufMemType = 3 # SHAR_EOF fi if test -f 'asdg.vdisk.device.uu' then echo shar: "will not over-write existing file 'asdg.vdisk.device.uu'" else cat << \SHAR_EOF > 'asdg.vdisk.device.uu' begin 644 asdg.vdisk.device M```#\P`````````#``````````(```4'````'P```@,```/I```%!W``3G5* M_`````0``!0<@`$#`````!X````P````B&%S9&<N=F1I<VLN9&5V:6-E`&%S M9&<@=F1I<VL@,RXP("@V($%U9R`X-BD-"@!C;W!Y<FEG:'0@,3DX-R!">2!! M4T1'($EN8V]R<&]R871E9`T*`%!E<G)Y(%,N($MI=F]L;W=I='H-"@`````B M````#````)@```#$X```"`,`P```"@```![@```.!@#0```4``/0```6``'` M```8````,``````CS@`````CR`````0CP`````A.=4CG0,9.N0```58O"4ZY M```"XEA/3KD```&N3-]C`DYU2.=`QDZY```!5B\)3KD```.H6$].N0```:Y, MWV,"3G5(YT#&+P$O`"\)3KD```'"WOP`#$S?8P).=4CG0,8O"4ZY```",EA/ M3-]C`DYU2.=`QDZY```"@$S?8P).=2QY`````$[N_WPB;P`$+'D`````3N[^ M8B)O``0@+P`(+'D`````3N[]V")O``0@+P`(+'D`````3N[_+B)O``0L>0`` M``!.[OZ&(F\`!"QY`````$[N_P0L>0````!.[O]V+'D`````3N[_CDY5``!( MYP`X)&T`""9Y````""\M``Q.N0```[A83RA`2H!G.D(J`!\E3``84FP`!E)K M`"`"*P#W``Y*>0```"AG&DZY```(0$J`9PI.N0``"[Y*@&<(0GD````H8`I" MJ@`8%7P`_P`?3-\<`$Y=3G5.50``2.<`,"1M``@F>0````A*:P`@8R)3:P`@ M2FL`(&88""L``P`.9Q`"*P#W``YA'$S?#`!.74YU)7S_____`!@E?/____\` M%'``8.1.50``2.<(("1Y````""@*2FH`(&,0".H``P`.<`!,WP003EU.=2\* M3KD```&@6$]P`#`J`!"8@'``,"H`$G(`,BH`$-"!+P`O!$ZY```!@%!/(#D` M```$8,1.50``3EU.=4Y5``!(YP@@)&T`""`Y````*E*Y````*K"\````^F\, M0KD````J3KD```ZL<``P*@`<P+P``'__.`!"*@`?N'P$`&8(3KD```S08&"X M?`@`9@Y.N0``"0Q.N0``#JQ@3+A\``-G%"`Y````*L"\````?V8&3KD```D, M2D1M##`$2,"PN0```&YM"!5\`/T`'V`L+RH`&"\*,`1(P.6`0?D````N(G`( M`$Z14$\(*@```!YF"B\*3KD```&26$],WP003EU.=4Y5```O"B1M``@D7TY= M3G5.50``0KD```@$0CD```@)0CD```@(,_P``0``"`I!^0``"`0@"$Y=3G5. M50``+PHD;0`(0BH`'R1?3EU.=4Y5```O"B1M``@5?`#]`!\D7TY=3G5.50`` M2.<`,"1M``@F;0`,)6H`)``@0BH`'TS?#`!.74YU3E4``"\*)&T`"$(J`!]" MJ@`@)%].74YU3E4``"\*)&T`""5\`````0`@)%].74YU3E4``"\*)&T`"$(J M`!]"J@`@)%].74YU3E4``"\*)&T`"$(J`!\E?`````$`("1?3EU.=4Y5__Q( MYPXP)&T`""9J`"@H*@`DR+S___X`*BH`+,J\___^`"(\```"`"`%3KD``!-0 M+`!R$"`&3KD``!-0*@`@!>F`G(!"J@`@0BH`'TJ$;P`!*+JY`````&P$2H5L M#A5\`!X`'TS?#'!.74YU(`7E@"!`T?D```!R*V@`"/_\9E!P`#`%+P!.N0`` M#OI83RM`__QF''``,`4O`$ZY```-U%A/*T#__&8(%7P`'P`?8+0@!>6`($#1 M^0```'(A;?_\``A(>``!3KD```<>6$]@(`RM`"```/_\9!8O+?_\3KD```X\ M6$\K0/_\3KD```ZL(&W__'``,"@`#G(![:'`@68L(CP```(((`9.N0``$_@@ M0-'M__Q(:``03KD```N<6$\@;?_\<`'MH(%H``XO"R(\```"""`&3KD``!/X M($#1[?_\2&@`$$ZY```(%%!/F+P```(`!JH```(``"#7_````@`@!E*&L+P` M```09@1\`%*%8`#^UF``_NI.5?_\2.<.,"1M``@F:@`H*"H`),B\___^`"HJ M`"S*O/___@`B/````@`@!4ZY```34"P`<A`@!DZY```34"H`(`7I@)R`0JH` M($(J`!]*A&\``+BZN0````!L!$J%;`X5?``>`!],WPQP3EU.=2`%Y8`@0-'Y M````<BMH``C__&<2(FW__'``,"D`#G(![:'`@68,+PM.N0``!\A83V!"#*T` M(```__QD%B\M__Q.N0``#CQ83RM`__Q.N0``#JPO"R(\```"""`&3KD``!/X M($#1[?_\2&@`$$ZY```']%!/F+P```(`!JH```(``"#7_````@`@!E*&L+P` M```09@1\`%*%8`#_1F``_UI.5?_\2.<,($JY````<F8*<`!,WP0P3EU.=7@` M(#D`````4X`Z`"!Y````<BMH``3__"1Y````<E"*(!JQA%'-__I*K0`(9PH@ M>0```'(A1``$("W__+"$9@1P`6`"<`!@L$Y5__Q(YPPP)&T`""`*9@IP`$S? M##!.74YU>`!Z?RMJ`@#__"9*(!NQA%'-__I*K0`,9P0E1`(`("W__+"$9@1P M`6`"<`!@RDY5``!(YPP@)&T`""@\1$]3`'H`NCP`?V0*(`70A"3`4@5@\$S? M!#!.74YU3E4``$CG"#`D;0`()FT`#'A_)MI1S/_\3-\,$$Y=3G5.50``2.<, M."1M``@F;0`,>@!X?RA**-,@&[&%4<S_^"5%`@!,WQPP3EU.=4Y5```O"DZY M```/B"/`````<B1`(`IF"'`#)%].74YU3KD``!&&(\``````9R@@>0```')P M`#`H!!1R`B\`(#D`````3KD``!-0)!^T@&<$<`)@QF`4('D```!R<``P*`04 MXX`CP``````,D@5`A$!G#@RJ!4"$0"289P1P`6":#)(%0(1`9@H,J@5`A$`D MF&<$<`)@A$*G3KD```<>6$]*@&8&<`)@`/]R3KH!Q$J`9@9P`F``_V1.N@$` M2H!F!G`"8`#_5G``8`#_4$Y5__A(YPPP3KD``!)62H!F"$S?##!.74YU0?D` M```$)DAX`"1Y````<E"*8```IDJ29P``G'H`*WP``/____@(!```9R9R`B`$ M3KD``!-0*T#__"`M__SE@"(S"`!T#N2A*@'*O```__]@3G("(`1.N0``$U!3 M@"M`__Q*K?_\91@@+?_\Y8`B,P@`=![DH2H!RKP````#8`@K?```__S_^%*M M__P@+?_\Y8`B,P@`PKP``#__Y8&*@;JM__AF$$AX()`O$DZY```!@%!/0I)2 MA%B*N+D`````;0#_5$AX``%.N0``!QY83V``_R9.50``2.<,,"!Y````<G`` M,"@$%"H`>``D>0```')0BF```()*DF=X,`1(P+"%9W!(>""0+Q).N0``$-!0 M3TJ`9DPF>0```')0BV`D2I-G'B!Y````<M'\```$"+'39PY(>""0+Q-.N0`` M`8!03UB+M\IFV"!Y````<DAH!`A.N@"X6$]P`$S?##!.74YU#)(`(```9`HO M$DZY```./%A/4D18BC`$2,"PN0````!M`/]T<`%@T$Y5``!(YPP@>``D>0`` M`')0BF!>2I)G5B!2#*@%0)9P``AG"G``3-\$,$Y=3G5Z`&`V,`5(P'(!X:$@ M4G0`-"@`#L*"9R!"IS`%P?P"""!`T=)(:``03KD```>`4$]*@&8$<`!@P%)% MNGP`$&W$4D18BC`$2,"PN0````!MEG`!8*1.50``2.<,,"1M``AX`&`:,`3! M_`((T(HF0-?\````$'I_0IM1S?_\4D2X?``0;>!,WPPP3EU.=4Y5``!(YP@@ M)&T`"#@M``XE?```()``!$*2)7P%0)9P``@U1``,0FH`#DS?!!!.74YU3E4` M`$CG"#`D;0`(0JH"`'A_)DI"FU',__Q,WPP03EU.=4Y5``!(YPPP)'D```!R M<@(@.0````!.N0``$U`J`"`*9@IP`$S?##!.74YU)+P%0(1`)7P%0(1`))@X M/`#_)DI0BT*;4<S__"`%Y8`@0-'*(`K0O```!`@A0``(2&H$"$ZZ_Q)83W`` M,`4O`$AJ!`A.NO\Z4$](:@0(81)83TAX``%.N0``!QY83W`!8)9.50``2.<( M."1M``@H2MG\````$#5\``$`#B9,)KP````">`(G?````$@`#-B\````2"=\ M"$%31`&PV+P(05-$)WQ'+5)!`;38O$<M4D$G?$T````!N-B\30```"=\```` M`0'\4H0@!$2`)T``%$AX``$O#$ZY```'@%!/3-\<$$Y=3G5.50``('D```!R M0J@DF")Y````<D*13EU.=4Y5``!(YP@P*"T`""!Y`````"1H`4*7RR`*9Q!P M`#`J``[`A&<")DHD4F#L(`M,WPP03EU.=4Y5``!(YP@X*"T`""1M``P@>0`` M```F:`%"F<P@"V<4<``P*P`.P(1G!K7+9P8H2R938.@@#$S?'!!.74YU3E4` M`$CG`#@D;0`()FT`#"`+9@IP`$S?'`!.74YU*&L`$"`,9PX@#&<*(%2QRF<$ M*%1@\B`,8-Y.50``2.<(."@M``@D;0`,F<P@"F8*<`!,WQP03EU.=29J`!`@ M"V<2(`MG#B`K``2PA&4"*$LF4V#N(`Q@VDY5__Q(YP`PE\M(>``"3KK_!EA/ M*T#__"\M__Q(>""08:!03R1`(`IG-"`*T*H`!)"\```@D"9`+RW__$AX()`O M"R\*3KH"&$_O`!!P`#`M``HO`"\+3KD```MJ4$\@"TS?#`!.74YU3E4``$CG M##@D;0`(<``P*@`,+P!.N@"H6$\J`&8*(`I,WQPP3EU.=2@\```()"9**$4H MDUB+6(Q3A&;V($5P`#`H``SE@")`T_D```!R(T4`"$AX()`O"DZY```!@%!/ M2'@``4ZY```''EA/(`5@L$Y5``!(YPP@>`$@>0```')P`#`H!!0J`"1Y```` M<E"*8!Q*DF<4N(5G$`R2`"```&0(+Q).NO]:6$]2A%B*N+D`````;=Q,WP0P M3EU.=4Y5__Q(YP`PE\M(>``$3KK]X%A/*T#__$JM__QG9B\M__Q(>""03KK^ M=%!/)$`@"F<V(`K0J@`$D+P``""0)D`O+?_\2'@@D"\++PI.N@#J3^\`$'`` M,"T`"B\`+PM.N0``"VI03V`2+RW__$AX``1.NOVT4$\K0/_\(`MF!DJM__QF MFB`+3-\,`$Y=3G5.50``2.<`.$AX``1.NOU46$\H0$J`9AI(>``"3KK]1%A/ M*$!*@&8*<`!,WQP`3EU.=2\,2'@E($ZZ_=103R1`2H!F!'``8.(@"M"J``20 MO```)2`F0`2J```E(``$!*P``"4@`!P@"V#`3E4``$CG"#@D;0`(*"T`#"9M M`!#8BBAK`!!@%K7,9`)@#B`,T*P`!+B`8P)@`F`&*%0@#&;F(`Q,WQP03EU. M=4Y5``!(YPPX)&T`""9M``PH+0`0*BH`!"!M`!29J``<(`N0BB5```38BR`* MT(6PA&=`(`J0A-J`NKP````(;3`H1"E%``0HDDJJ``1G!"2,8!XO+0`4+PI. MNOS24$\D0"`*9@H@;0`4(4P`$&`")(Q@)$JJ``1F'B\M`!0O"DZZ_*Q03RA` M(`QF"B!M`!0A4@`08`(HDDS?'#!.74YU3E4``$CG"#@D;0`(*"T`#+7\`"`` M`&0.2'@``DZZ^_Q83R9`8#A(>``$3KK[[EA/)D`@2M'$L>L`&&,*<`!,WQP0 M3EU.=;7K`!1D$B\+2'@`!$ZZ^_Q03R9`(`MFU"`+9@1P`+PLO!"\*3KK^ MM$_O``PH0$J`9@1P`&#`+PLO!"\*+PQ.NO[:3^\`$'`!8*Q#;W!Y<FEG:'0@ M,3DX-B!B>2!!4T1'($EN8V]R<&]R871E9`!.5?_\2.<(.$*G2'H`B$ZY```! M;E!/*T#__&8*<`!,WQP03EU.=2!M__PD:``B("H`&.6`)D`@*P`$Y8`H0"`, M9Q0O+``H85A83TJ`9@@@%.6`*$!@Z"`,9@1P`&#`("P`'.6`*`!0A"!$(!#E M@"@`V+P````H($0@$%*`L+P```$`8@@@1"`04H!@DB`\```!`&"*9&]S+FQI M8G)A<GD`3E4``"\*)&T`""`*Y8`D0%**#!H`5F<$<`!@#@P:`$1F]@P2`#!F M\'`!)%].74YU3E7_]$CG##A!^0````0F2"AY````<MG\```$&$JL`3AF"G`` M3-\<,$Y=3G4K?````$__]"`M__3E@$JT"`!G``"D("W_].6`(@`@-!@`<A!. MN0``$U`K0/_X("W_].6`(@`@-!@`<A!.N0``$W@K0/_\("W_^.6`($#1^0`` M`'(J*``(2H5F!'``8)@@17``,"@`#G(!)"W__.6AP(%F!'``8(`B/````@@@ M+?_\3KD``!/XT(4D0-7\````$%B*>`!@"":24H18BUB*N+P```!_;?!2K?_T M#*T```!4__1M`/]2#*T```!/__1F!G``8`#_,G`!8`#_+$CG2`!"A$J`:@1$ M@%)$2H%J!D2!"D0``6$^2D1G`D2`3-\`$DJ`3G5(YT@`0H1*@&H$1(!21$J! M:@)$@6$:(`%@V"\!81(@`2(?2H!.=2\!808B'TJ`3G5(YS``2$%*068@2$$V M`30`0D!(0(##(@!(0#("@L,P`4)!2$%,WP`,3G5(028!(@!"04A!2$!"0'0/ MT(#3@;:!8@22@U)`4<K_\DS?``Q.=4CG<``T`<3`)@%(0\;`2$-"0]2#2$#` MP4A`0D#0@DS?``Y.=0```^P````2`````@```[X```/$```#R@```](```/8 M```$Z```!F8```<\```(:```"(````BF```)*```">(```JD```+*```"]`` M``[L```28````#,````!````C````,8```#,````T@```5@```%F```!>``` M`8H```&8```!I@```;````&Z```!T````?X```(:```"0````HH```+4```" M\````O8```,$```#2@```V8```."```%"```!4P```:&```'*```!T8```=2 M```':```"$X```AP```(F```"3(```H$```*%```"CX```I,```*<```"KP` M``O(```,U@``#.````SX```-,@``#H8```ZX```.Q@``$F@``!+2````1P`` M```````&````"@```!(````6````&@```)````"4````H@```+P```#>```` MY@```.X```#^```!!@```0X```$D```!.@```4P```':```"!@```A````*J M```"S````PH```,H```#-@```SP```-8```#F@``!,````3,```%'```!3`` M``5<```%=```!8````6@```%L```!<X```7>```&/@``!DH```:H```&P``` M!LP```;<```&[```"$@```AB```(A@``"-H```D6```)6```"7X```G4```) M\```"C(```IB```*E```"P@```O6```,0@``#,(```XL```.E@``#J(```]: M```1E@``$J@``!+````3!@````````/R```#Z@```!\````````````````` M``$8```!,@```48```+:````V````/C_____``$````````#]@```^(```80 M```$D@```^(```/B```#X@```^(```/B```$1@```^(```0,```#X@``!'8` M``1>```$+@```!`````````18@`````#[````!<`````````#````!`````4 M````&````!P````@````+@```#(````V````.@```#X```!"````1@```$H` M``!.````4@```%8```!:````7@```&(```!F````:@```'8````````#\@`` *`^L```(#```#\E8` ` end SHAR_EOF fi exit 0 # End of shell archive