[comp.sys.amiga] FileReq - proposed file requester IPC standard

SLMYQ@USU.BITNET (06/06/88)

Sorry for posting this to comp.sys.amiga, but I figured it should
get out before it becomes obsolete! :)  I'm also sending it to
comp.binaries.amiga.

This is a proposed standard for "inter-process file requesters".  I
don't claim that this is the ultimate file requester (although it is
quite nice if I say so myself :), it's meant more as a "spark".  I'll
leave it to the Amiga community to come up with fabulous file
requesters with every feature imaginable. :)

I hope the documentation explains things enough - I couldn't spend
too much time on it.  I'm willing to answer questions, though.

#       This is a shell archive.
#       Remove everything above and including the cut line.
#       Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar:    Shell Archiver
#       Run the following text with /bin/sh to create:
#       FileReq.doc
#       FileReq.uu
#       FileReq-Handler.uu
# This archive created: Thu Jun  2 02:13:12 1988
echo shar: extracting FileReq.doc
sed 's/^XX//' << \SHAR_EOF > FileReq.doc
XX
XX                                    FileReq
XX                            File Requester Server
XX                        Copyright (C) 1988 Bryan Ford
XX
XXInstallation
XX
XX    To install FileReq, you need to copy FileReq-Handler to L: and FileReq
XXto C: or another easily accessible place.  Then, in your Startup-Sequence,
XXinclude the line "FileReq".  No RUN necessary.  It will load
XXFileReq-Handler, remove any existing file requester (if possible), and
XXinstall itself.  Then other programs can use the file requester whenever
XXthey need a file requester, although the file requester may be open in only
XXone place at a time (it will be considered non-existent to other programs
XXwhile it is in use).
XX
XXRequester Usage
XX
XX    The file requester has many features.  At the top is the "Directory Of"
XXgadget which always displays the current directory being displayed.  You
XXmay type in another directory name.  If you use something like "DF1:XYZ",
XXit will automatically convert it to its true path, such as "Abc:Xyz".  You
XXcan type "Volumes" (case insensitive) into the gadget as an alternative to
XXthe Volumes gadget.
XX    Underneath the directory gadget is the file list and the slider on the
XXright side.  Directory names in the file list are marked with a small
XXgraphic image on the right side (you'll recognize it :).  When you click on
XXa directory name, it immediately changes to that directory.  If you click
XXon a file name, it will put that name into the "Filename" gadget.  If you
XXdouble-click a name, it will also press the OK gadget for you.
XX    The slider always reflects the current position within the file name
XXlist.  You may scroll through the listing by dragging the knob, or go a
XXpage at a time through the listing by clicking above or below the knob.
XX    The Filename gadget contains the filename that will be operated on when
XXyou press the OK gadget.  Clicking on filenames in the filename list will
XXtransfer that name to this gadget.  Changing directories clears the
XXfilename gadget, since it's unlikely that the same filename will appear in
XXdifferent directories.  You may type anything you want into this gadget,
XXand it will not be checked for validity or existence.
XX    The Parent gadget will go to the parent directory of the current
XXdirectory, or the volumes list if the current directory is the root
XXdirectory of a disk.  The Volumes gadget immediately goes into the volumes
XXlist.  The Rescan gadget re-scans the current directory.  This would only
XXbe necessary, say, if another program added a file to the directory while
XXthe requester was up.  The OK and Cancel gadgets both return to the client
XXwith the filename, path, and a flag indicating which gadget (OK or Cancel)
XXwas pressed.
XX    When you press the Volumes gadget, or get the parent of a root
XXdirectory, or type "Volumes" into the "Directory Of" gadget, the file
XXrequester will find the list of volumes currently available and display
XXthem in the filename list.  You may pick them just like directories.
XXIf a disk is inserted or removed, it will immediately rescan the volumes
XXlist.
XX    Sometimes you may see a flashing dotted box around the outside of the
XXfile requester.  This, when requested by the client, means that it'll be
XXacting on only a part of the current project instead of the entire project
XX(such as loading or saving a clipping).
XX
XXProgram Interface
XX
XX    The program interface uses Pete Goodeve's IPC standard to communicate
XXwith clients.  (I'll add an ARexx port as soon as I get ARexx :)  To find
XXthe file requester server, just FindIPCPort("File_Requester").  If it
XXreturns NULL, then no file requester is installed in the system, or it is
XXin use.
XX    There are two acceptable types of IPCMessages which may be sent to the
XXport (all others return with IPC_NOTKNOWN).  If the ipc_Id is 'QUIT', then
XXthe requester server will exit immediately (you will receive the reply
XXAFTER the server exits, because it does a Forbid() before the ReplyMsg()).
XX    The main message type is more complex.  The ipc_Id field must be
XX'FREQ', for "File REQuester", not "FREQuency".  Bit 0 in ipc_Flags
XXindicates whether or not to make the flashing dotted box around the
XXrequester.
XX    The individual IPCItems give other data in order to open the requester.
XXThere is no required order, although some item types are required.  FileReq
XXignores all unrecognized item types.  If two or more of the same type are
XXencountered, only the last one will be used.
XX    "WNDW" (required): Window pointer.  The ii_Ptr will point to
XXthe Intuition Window structure in which to put the requester.
XX    "NAME" (required): Filename buffer in which to put the filename.  The
XXii_Ptr points to a buffer, with the buffer's size in ii_Size.  You must
XXinitialize it with a null string, or a default filename if desired.
XX    "RESL" (required): Result.  After the user closes the requester, bit 0
XXin ii_Flags will be 1 if the user pressed OK or 0 if he pressed Cancel.
XX    "TITL": Title.  The ii_Ptr points to a null terminated string which
XXwill be centered at the top of the requester.  If there is no "TITL" item,
XXyou'll have a blank spot at the top of the requester.
XX    "LOCK": Lock.  The ii_Ptr is a standard AmigaDOS lock referring to the
XXinitial directory to use.  Note that this lock may be freed by FileReq.
XXAfter replying the message (after the user closes the requester), the
XXii_Ptr in the LOCK item (the last one if there are multiple LOCK items)
XXwill be set to a lock on the directory the user was in when he closed the
XXrequester.  The old lock will be UnLocked, and your program must UnLock
XXthis lock.  If no LOCK item exists, it will initially use the zero lock,
XXwhich always refers to DF0:.
XX
XXDistribution
XX
XX    This program is Freeware.  No donation is required or solicited
XX(although gratefully accepted).  However, this is not in the public domain.
XXYou may copy and distribute it all you want, but you must not change it in
XXany way.
XX    The archive (or whatever) with this program must contain the files
XX"FileReq", "FileReq.doc", and "FileReq-Handler".  Since the name
XX"FileReq-Handler" isn't ARCable, you'll have to improvize (rename it to
XXsomething else and put in an EXECUTE.ME or READ.ME file).
XX    Comments, ideas, and criticisms will be appreciated (even more if some
XX$ accompanies it :), flames will go to NIL:.  I may be reached at the
XXaddresses below.
XX
XX                                Bryan Ford
XX                        Snail:  1790 East 1400 North
XX                                Logan, Utah 84321
XX                        Phone:  (801)753-1159
XX                        Bitnet: FATQW@USU
XX
XXEnjoy!
SHAR_EOF
if test 6554 -ne "`wc -c FileReq.doc`"
then
echo shar: error transmitting FileReq.doc '(should have been 6554 characters)'
fi
echo shar: extracting FileReq.uu
sed 's/^XX//' << \SHAR_EOF > FileReq.uu
XX
XXbegin 644 FileReq
XXM```#\P`````````$``````````,````"````!````M0```"K```#Z0````).`
XXM^0```````````^P````!`````@````(````````#\@```^L````$```#\@``)
XXM`^D```+4(\\````<(\`````D(\@````H+'D````$(\X````$D\E.KO[:*$!*J
XXMK`"L9P``]F$``8R1R"`L`*SEB"`P"!#EB$CG`#!%^0```*Q'^0```"P@0'``[
XXM$!A",`@`)L@@.0```"0@>0```"A#\`@`#"$`(%+(__I"*0`!$AAG7`P!`"!G6
XXM]@P!``EG\";*#`$`(F<4%,$2&&="#`$`(&<$%,%@\D(:8-02&&<P#`$`(F?R]
XXM#`$`*F8@$A@,`0!.9P8,`0!N9@1R"F`.#`$`16<&#`$`968"<AL4P6#,0A)"[
XXMDR`\````*)"+1H#DB$S?#`!(>0```"PO`$ZY```$2"/`````$$ZY```$6"/`#
XXM````%"/`````&$ZY```#(G``+GD````<3G5A``"880``@B/`````("\`0J<D,
XXM0"`J`"1G$"QY````""!`(B@``$ZN_X).N0```R)P`&`$("\`!"YY````'"\`^
XXM+'D````$(#D````(9P8B0$ZN_F)*N0```"!G#DZN_WPB>0```"!.KOZ&(!].,
XXM=4CG`08N/``#@`<L>``$3J[_E$S?8(!P9&"P0>P`7$ZN_H!![`!<3J[^C$YU:
XXM0_H`$G``3J[]V"/`````"&?"3G5D;W,N;&EB<F%R>0!.5@``2KD````,9PXOG
XXM.0````Q.N0``"QQ8CTJY````"&<.+SD````(3KD```H86(]*N0````!G#B\YZ
XXM`````$ZY```$F%B/2KD````49R(O+@`(3KD```906(\O`"\N``@O.0```!1.Q
XXMN0``!"Q/[P`,<`HO`$ZY```!5EB/3EY.=4JY````%&<J2'D```&L3KD```/XH
XXM6(](>0```=9.N0```_A8CTAY```!]4ZY```#^%B/3G5(>0```A%.N0``!]Q8A
XXMCR/`````!$J`9@).=4*G3KD```EJ6(\CP`````A*@&8&3KD```M`0J=.N0``8
XXM"LY8CR/`````#$J`9@9.N0``"T`@>0````PA?%%5250`%"\Y````#"\Y````K
XXM!$ZY```*CE"/2H!F`DYU<``@>0````@0*``/<@'AH2\!3KD```546(].=4AY_
XXM```"($ZY```%0%B/2H!G#$AY```",&$`_J!8CV$`_TY(>0```E-.N0``!(186
XXMCR/``````$J`9@Q(>0```F5A`/YX6(\O/```!]`O.0````!"ITAY```"($ZY1
XXM```$:$_O`!!*@&8&3KD```M`80#^RG``(\``````+P!A`/X\6(].=0``2.<`A
XXM.BAO`!0@;P`8(F\`'$7Z`#I/[_]T)D\L>0````1.KOWV</]*&U?(__Q&@&<2=
XXM+P!(;P`$2%1.N0``!"Q/[P`,3^\`C$S?7`!.=1;`3G4O`B0O``A(;P`,+P(OC
XXM.0```!1.N0```ZA/[P`,)!].=2!O``0@B%B00J@`!"%(``A.=0``2.<P`BQY:
XXM````"$SO``X`$$ZN_]!,WT`,3G4``"\.+'D````(3J[_RBQ?3G4O#BQY````%
XXM"$ZN_\0L7TYU2.<X`BQY````"$SO`!X`%$ZN_W9,WT`<3G4``"\.+'D````(]
XXM(B\`"$ZN_VHL7TYU+PXL>0````@B+P`(3J[_9"Q?3G4O#BQY````!$ZN_WPL%
XXM7TYU+PXL>0````1.KO]V+%].=2\.+'D````$3.\``P`(3J[_.BQ?3G4``"\.S
XXM+'D````$(F\`""`O``Q.KO\N+%].=2\.+'D````$3.\#```(3J[_$"Q?3G4`9
XXM`"\.+'D````$(F\`"$ZN_P0L7TYU+PXL>0````1,[P,```A.KO[L+%].=0``L
XXM+PXL>0````0B;P`(3J[^VBQ?3G4O#BQY````!"`O``A.KO["+%].=2\.+'D`*
XXM```$(F\`""`O``Q.KOZ\+%].=2\.+'D````$("\`"$ZN_K8L7TYU+PXL>0``9
XXM``0@+P`(3J[^L"Q?3G4O#BQY````!")O``A.KOZ>+%].=2\.+'D````$3.\#<
XXM```(3J[^DBQ?3G4``"\.+'D````$(F\`"$ZN_GHL7TYU3E;__"UN``C__"!NN
XXM__Q2KO_\(FX`#!`1$(!2K@`,2@!FZ"`N``A.7DYU3E;__"UN``C__$JN`!!O@
XXM("!N``P0$")N__P2@%*N``Q*`&<,4J[__$YQ4ZX`$&#:(&[__$(0("X`"$Y>B
XXM3G5.5O_\0J[__"!N``C1[O_\$!!*`&<&4J[__&#L("[__$Y>3G5.5O_X+7P`W
XXM``*(__Q*N0```H1G"B`Y```"A$Y>3G5.N0``!*PO+O_\3KD```746(\CP```&
XXM`H1*@&9H+SP``0`!<%`O`$ZY```$S%"/(\````*$2H!G3"!`+4C_^-#\`"PB\
XXM0"-(``H3?``$``@O`$ZY```%J%B/('D```*$T/P`0B\(3KD```086(\@>0``A
XXM`H30_``L+R[__"\(3KD```7H4(].N0``!+P@.0```H1.7DYU3E;_^&$`_TA*"
XXM@&8&<`!.7DYU2JX`"&<.+RX`"$ZY```&4%B/8`)P``:`````+B\\``$``2\`+
XXM+4#_^$ZY```$S%"/+4#__$J`9V0B+O_X($`Q00`JT/P`%"\(3KD```086(\@;
XXM;O_\$7P`!``($7P``@`.2JX`"&<VT/P`+")N__PC2``*TOP`+"\N``@O"4ZY2
XXM```%Z%"/('D```*$T/P`0B\N__PO"$ZY```$_%"/("[__$Y>3G5.5O_\80#^D
XXMDDJ`9@9P`$Y>3G5*K@`(9@9P`$Y>3G5.N0``!*P@>0```H30_`!"+RX`""\(R
XXM3KD```4H4(\M0/_\2H!G#"!`,B@`)E)!,4$`)DZY```$O$JN__QG)B!N__PP#
XXM*``H"````&<8<``0*``/<@'AH2\!+R@`$$ZY```%:%"/("[__$Y>3G5.5O_\$
XXM3KD```2L+RX`"&$`_V98CRU`__Q*@&8>+RX`"&$`_IY8CRU`__Q*@&<,($`R_
XXM*``F4D$Q00`F3KD```2\("[__$Y>3G5.5@``(&X`"#`H`"920#%``"8P*``H9
XXM"````&<8<``0*``/<@'AH2\!+R@`$$ZY```%:%"/3EY.=4Y6``!*K@`(9@1.H
XXM7DYU3KD```2L(&X`"#`H`"930#%``"9*0&8N2J@`"F<*+PA.N0``!118CTZYF
XXM```$O'``(&X`"#`H`"HO`"\(3KD```3D4(]@+"!N``@P*``H"````&<8<``0E
XXM*``/<@'AH2\!+R@`$$ZY```%:%"/3KD```2\3EY.=4Y6__PO+@`(80#^\EB/(
XXM+4#__$J`9VI.N0``!*P@;O_\,"@`*`)`P`!*0&88</\O`$ZY```%@%B/(&[_K
XXM_!%```]2`&80+R[__&$`_S)8CT*N__Q@)B!N__Q"*``.0J=.N0``!4!8CR!N1
XXM__PA0``0,"@`*`!`@``Q0``H3KD```2\("[__$Y>3G5.5@``(&X`"#`H`"@`^
XXM0$``,4``*`)`?_\Q0``H$7P``@`.3EY.=4Y6``!P`"!N``@0*``/+P!.N0``E
XXM!918CR!N``A"J``0,"@`*`)`/P`Q0``H+PAA`/Z>6(].7DYU3E8``$*G3KD`(
XXM``5`6(\B;@`((&D`$+'`9A8P*0`H`D#_`#(N``X"00#_@$$S0``H<``@;@`(>
XXM,"@`)DY>3G5.5@``3KD```2L(&X`"#`H`"@"0(``2D!G&B\N``PO"$ZY```%7
XXMO%"/3KD```2\<`%.7DYU3KD```2\<`!.7DYU3E;_^"`N``A3@.F`!H`````N)
XXM+SP``0`!+P`M0/_\3KD```3,4(\M0/_X2H!G&"(N__P$@0```!0@0#%!`!(@/
XXM+@`(,4``'"`N__A.7DYU3E8``'``(&X`"#`H`!(&@````!0O`"\(3KD```3DZ
XXM4(].7DYU2'D```*83KD```'<6(].=0```^P````0`````0```Y@```-P```#(
XXM5````PH```+T```"[@```N````+0```"M@```J````(6```"#@```@````'XX
XXM```!Z@```>(```!``````@``"T@```JP```**@``"E@```G*```)G```"S8`L
XXM``DR```)%@``"5H```C<```(6```"!(```?.```'1```"L0```JX```)Y@``Z
XXM"6(```D>```(H@``""X```<8```'M@``!Q````>"```&^```!N0```KN```'5
XXM8@``!KH```:>```*E```"8(```CV```(;```!_P```:4```$#````^(```-^T
XXM```#3````RH```,:```"^@```L@```.,```"V@```L````*N```"F````H@`@
XXM``)Z```";````E(```)$```",````AP```(&```!\````/8```$"```!3@``5
XXM`10```!"`````P``"T(```@"```'O@``!QX```<````&[```!L(```:F```&.
XXMB@``!H(```9Z```%V```!<````6L```%F```!80```5L```%6```!40```4L3
XXM```%&```!0````3H```$T```!,````2P```$G```!(@```1N```$7```!$P`H
XXM``0R```$!@```EX```(^```")````W@```->```#1@```S8```,D```"D@``?
XXM`H(```)T```"9@```<@```&$```!>````6H```%<```!/@```2P```$<```![
XXM#@```0@```#\````[@```-X```!D````7@```$P```!&````&@````X````(C
XXM`````@````````/P`````U]&:6YD4&]R=``#&```!=0````"7U!U=$US9P``R
XXM``6\`````E]!9&10;W)T```%J`````-?1G)E95-I9VYA;`````64`````U]![
XXM;&QO8U-I9VYA;```!8`````"7U-I9VYA;`````5H`````E]786ET``,8```%/
XXM5`````-?1FEN9%1A<VL``Q@```5``````U]&:6YD3F%M90`#&```!2@````"8
XXM7U)E;6]V90````44`````E]!9&1(96%D```$_`````)?1G)E94UE;0``!.0`L
XXM```#7T%L;&]C365M``,8```$S`````)?4&5R;6ET````!+P````"7T9O<F)I\
XXM9`````2L`````U]5;DQO861396<``P``!)@````"7TQO861396<```2$````_
XXM`U]#<F5A=&50<F]C````!&@````"7T]U='!U=`````18`````E]);G!U=``#X
XXM```$2`````)?5W)I=&4``P``!"P````"7TYE=TQI<W0```08`````E]P<FEN(
XXM=&8````#^`````$N3#0````#^@````$N3#,````#^`````$N3#(````#_@``8
XXM``$N3#$````$%`````)S8U]P=70``P```_0````#<W1U9F9#:&%R``,8```#5
XXM]`````)P<U]E;7!T>0```^H````"7U]D;W!R;G0```.H`````G!S7W-I>F4`5
XXM```#S@````-P<U]C;VUM;VX``Q@```/8`````````_(```/J````JP`A``$`$
XXM``````````````#_______________\`````````````````````````````T
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM`````````````````````````````````````````````````````````````
XXM````````````````````````1FEL95)E<2`M($=E;F5R86P@<'5R<&]S92!F'
XXM:6QE(')E<75E<W1E<@H`0V]P>7)I9VAT("A#*2`Q.3@X($)R>6%N($9O<F0*\
XXM``I&:6QE4F5Q+4AA;F1L97(@:6YS=&%L;&5D"@!&:6QE7U)E<75E<W1E<@!&L
XXM:6QE4F5Q+4AA;F1L97(`1FEL95)E<2U(86YD;&5R(&%L<F5A9'D@:6YS=&%L-
XXM;&5D"@!,.D9I;&5297$M2&%N9&QE<@!#86XG="!L;V%D($PZ1FEL95)E<2U((
XXM86YD;&5R"@```````$E00U]"87-E7U!O<G0```!.;W0@16YO=6=H($UE;6]R1
XX(>0H``````_(`X
XX``
XXend
XXsize 4868
SHAR_EOF
if test 6855 -ne "`wc -c FileReq.uu`"
then
echo shar: error transmitting FileReq.uu '(should have been 6855 characters)'
fi
echo shar: extracting FileReq-Handler.uu
sed 's/^XX//' << \SHAR_EOF > FileReq-Handler.uu
XX
XXbegin 644 FileReq-Handler
XXM```#\P`````````#``````````(```@=0``!W````+\```/I```('4Y6__9(N
XXMYP$,('P````$(]``````0J=(>0````!.N0``!*A0CR/`````!$*G2'D````,@
XXM3KD```2H4(\CP`````A"ITAY````'4ZY```$J%"/(\`````,0J=.N0``&O18;
XXMCTAY````+TZY```8EEB/(\`````02H!F#'`*+P!.N0```P18CR\Y````$$ZYG
XXM```$;%B/*D"[_`````!F''``('D````0$"@`#W(!X:$O`4ZY```#[%B/8,POW
XXM.0```!!.N0``&418CPRM455)5``49AI.N0```RPO#4ZY```$@%B/0J=.N0``X
XXM`P18CPRM1E)%40`49PP`K8``````&&```6B1R"/(````&"/(````("/(````\
XXM'"/(````%'X`,"T`'+Y`9```DB`'(@=(P>F!($W0_``>T<$H2"(4<"@$@```T
XXM``AK;+*["`AF\D[["`9215-,8```5DY!345@```\3$]#2V```"94251,8````
XXM%%=.1%=@```"(^P`#````!1@,"/L``P````<8"8O+``,3KD``!KT6(]@&"/L<
XXM``P````@(^P`"````"1@!B/,````&%)'8`#_:$JY````'&8*(_P````^````@
XXM'$JY````%&<02KD````@9PA*N0```!AF"@"M@``````88')P'B\`+SD````@C
XXM2'D````H3KD```;>3^\`#"`M`!@"@`````$O`$AY````*"\Y````'"\Y````*
XXM%$ZY```.1$_O`!`@>0```!@A0``$(#D````D4X`O`$AY````*"\Y````($ZY(
XXM```&WD_O``P([0`&`!A"ITZY```"\%B/+PU.N0``!(!8CV``_>X@;P`$((A86
XXMD$*H``0A2``(3G4``$CG(`(L>0````1,[P`&``Q.KO^L3-]`!$YU```O#BQYT
XXM````!"(O``A.KO^F+%].=4CG(`(L>0````1,[P`&``Q.KO^:3-]`!$YU``!(B
XXMYR`"+'D````$3.\`!@`,3J[_E$S?0`1.=0``+PXL>0````0B+P`(3J[_@BQ?'
XXM3G4O#BQY````!"(O``A.KO]P+%].=2\.+'D````$(B\`"$ZN_RXL7TYU+PXL:
XXM>0````!.KO]\+%].=2\.+'D`````3J[_=BQ?3G4O#BQY`````$SO``,`"$ZN#
XXM_SHL7TYU```O#BQY`````")O``@@+P`,3J[_+BQ?3G4O#BQY`````$SO`P``T
XXM"$ZN_Q`L7TYU```O#BQY`````")O``A.KO\$+%].=2\.+'D`````3.\#```(1
XXM3J[^["Q?3G4``"\.+'D`````(F\`"$ZN_MHL7TYU+PXL>0````!,[P`#``A.'
XXMKO[.+%].=0``+PXL>0`````@+P`(3J[^PBQ?3G4O#BQY`````")O``@@+P`,A
XXM3J[^O"Q?3G4O#BQY`````"`O``A.KOZV+%].=2\.+'D`````("\`"$ZN_K`L*
XXM7TYU+PXL>0`````B;P`(3J[^GBQ?3G4O#BQY`````$SO`P``"$ZN_I(L7TYU%
XXM```O#BQY`````"!O``A.KOZ,+%].=2\.+'D`````(F\`"$ZN_H8L7TYU+PXL_
XXM>0`````B;P`(3J[^>BQ?3G4O#BQY`````")O``@@+P`,3J[]V"Q?3G4O#BQYK
XXM````"")O``@@;P`,("\`$$ZN_\0L7TYU+PXL>0````@B;P`(3.\``P`,3J[_P
XXM$"Q?3G4``"\.+'D````((F\`"$SO``,`#$ZN_PHL7TYU``!(YS`"+'D````(,
XXM(F\`$$SO``\`%$ZN_LY,WT`,3G4``"\.+'D````((F\`""`O``Q.KOZJ+%].<
XXM=2\.+'D````((F\`""`O``Q.KOZD+%].=2\.+'D````((F\`""`O``Q.KOZ>U
XXM+%].=2\.+'D````,(&\`"$ZN_Z`L7TYU2.<P`BQY````#$SO``\`$$ZN_YI,)
XXMWT`,3G4``"\.+'D````,3.\#```(3.\``P`03J[_CBQ?3G4O#BQY````#$SOP
XXM`P``"$ZN_X@L7TYU```O#BQY````#"!O``@@+P`,3J[_:BQ?3G4O#BQY````1
XXM#$SO`P``"$ZN_Q`L7TYU``!(YP`B+'D````,3.\'```,("\`&$ZN_E!,WT0`;
XXM3G4``$CG`"(L>0````Q,[P,```P@+P`4(B\`&"1O`!Q.KOY*3-]$`$YU```OO
XXM#BQY````#$SO`P``""`O`!!.KOY$+%].=0``3E8``"!N``@0$"!N``P2$+`!W
XXM9A1*`&8&<`!.7DYU4JX`"%*N``Q@W'``(&X`"!`0<@`@;@`,$A"0@4Y>3G4`S
XXM`$Y6__PM;@`(__P@;O_\4J[__")N``P0$1"`4JX`#$H`9N@@+@`(3EY.=4Y6;
XXM__PM;@`(__Q*K@`0;R`@;@`,$!`B;O_\$H!2K@`,2@!G#%*N__Q.<5.N`!!@[
XXMVB!N__Q"$"`N``A.7DYU3E;__$*N__P@;@`(T>[__!`02@!G!E*N__Q@["`N`
XXM__Q.7DYU2.<\`"H!9S)J`D2!*`!G*&H"1(!"@G8?XX#CDK2!9024@5*`4<O_"
XXM\B("N85J`D2`LX1J"$2!8`1"@4*`3-\`/$YU``!(YW@`*`"SA$J`9S!J`D2`<
XXM)`!*@68$0H!@(FH"1($F`,;!2$+$P4A"0D+6@DA!P,%(0$)`T(-*A&H"1(!,A
XXMWP`>3G4``$Y6__Y(YP$`<`$O`$AY```$Y"\Y````3$ZY```&6$_O``PN`$IYN
XXM```!\&<62'D```%$2'D```"]3KD```:T4(]@*"!Y````2"\H`)A.N0``'\!8H
XXMCW)D+P$O`$AY````O4ZY```&WD_O``P@!TC`#(#_____9V9(>0``!1!R`2\!T
XXM+P!(>0``!.0O.0```$Q.N0``!C!/[P`4,#D```3P`D#__`!```,SP```!/!P/
XXM`2\`2'D```40+SD```!,2'D```3D3KD```803^\`$#`Y```$\`)`__PSP```;
XXM!/!,WP"`3EY.=4Y6__!(YR,$('D```4P*F@`#'`!+P`O#4ZY```%9%"/0J<OF
XXM#4ZY```%3%"/?``,1@`%;``!'A`Y```!ZTB`2,`B!DC!T($N`'`!+P`O#4ZYZ
XXM```%-%"/(`;!_``*!H`````^+P!R""\!+PU.N0``!-Q/[P`,OCD```'J9#@@M
XXM!P*`````_W(?3KD```>$('D```!4T<`O""](`!1.N0``!QQ8CR\`+R\`%"\-9
XXM3KD```3`3^\`#$*G+PU.N0``!310CS`M`"1(P"(&P_P`"B]!`!0&@0```#<DY
XXM+P`4!H(```!`+P(O/````/<O`2\`+PU.N0``!11/[P`4(`<"@````/_C@"!`6
XXMT?P```$B2E!G)+XY```!ZF0<(`;!_``*+P!"ITAY```#KB\-3KD```6L3^\`@
XXM$"`&P?P`+"!`T?P```/","@`#`)`_W\Q0``,4D9@`/[>3-\@Q$Y>3G5.5O_V=
XXM2.<!`'`&+P!(>0```\(O.0```$Q.N0``!EA/[P`,('D```4P0J<O*``,/4#_4
XXM_DZY```%9%"/('D```4P0J<O*``,3KD```4T4(\@>0``!3!P:"\`+SP```#W]
XXM<#<O`'`(+P`O*``,3KD```443^\`%'``$\````'K2(`SP````W!A`/X@$#D`W
XXM``'J2(!(P"]```1*@&\L(#P`!0``(B\`!$ZY```'0"X`#(<``/__;P@@/```I
XXM__]@`B`',\````-T8`@S_/__```#='``,"[__DAY```%$'(&+P$O`$AY```#Y
XXMPB\Y````3$ZY```&,$_O`!1P`2\`2'D```40+SD```!,2'D```."3KD```802
XXM3^\`$$S?`(!.7DYU3E;_\DCG`0QA`/R:+SP```/H2'D```3D+SD```!,3KD`J
XXM``983^\`#$(Y```!ZDIY```!\&<``20B>0````0@:0`B("@`&.6`($`B*``$+
XXMY8$J0;O\`````&<``A(,K0````(`!&8``.H@+0`HY8`H0'X`(`=(P'(`$A2P)
XXM@60T#(`````=;"P0.0```>I(@$C`<A].N0``!X0@>0```%31P"`'2,#1P%*`1
XXM(DS3P!"14D=@P!`Y```!ZDB`2,!R'TZY```'A"!Y````5-'`(`=21TC`+T@`_
XXM#-'`$+P`.B`'2,`@;P`,T<!"$$AY```%@"\O`!!.N0``&R!0CTJ`9BH0.0``(
XXM`>I(@$C`<A].N0``!X0@>0```%31P$AY```%BB\(3KD```:T4(\0.0```>I(_
XXM@$C`+T``#..`($#1_````2(PO``!("\`#%*`$\````'J(!7E@"I`8`#^^B\Y2
XXM````4"!Y````2"\H`)A.N0```KA0CTJ`9P``]B\Y````4"!Y````2"\H`)A.]
XXMN0```M10CTJ`9P``V!`Y```!ZDB`2,!R'TZY```'A"!Y````5-'`(GD```!0'
XXM4(EP'B\`+PDO"$ZY```&WD_O``P0.0```>I(@$C`+T``#..`($#1_````2(B.
XXM>0```%!*J0`$7L!$`$B`2,`P@"`O``QR'TZY```'A"!Y````5-'`+PA.N0``<
XXM!QQ8CPR`````!6U&$#D```'J2(!(P'(?3KD```>$('D```!4T<`O""](`!!._
XXMN0``!QQ8CUN`(&\`#-'`2'D```6/+PA.N0``&R!0CTJ`9P#_&%(Y```!ZF``5
XXM_PY*;@`*9P@@>0```>Q"$$AY```%$"\\```#Z$*G2'D```3D+SD```!,3KD`/
XXM``8P3^\`%$IN``IG('`!+P!(>0``!1`O.0```$Q(>0```T!.N0``!A!/[P`0J
XXM$#D```"]2@!G!F$`_!)@$#/\``$```'P0J=A`/T@6(\O.0```$Q.N0``&FQ8D
XXMCTS?,(!.7DYU0GD```'P<`$O`&$`_/I8CTYU,_P``0```?!P`2\`80#\YEB/1
XXM3G5.5O^V2.</!"/N``@```!,(&X`$"/(```#'$*G(\@```'L3KD```/`6(]"?
XXMIR\\```,'"/`````2$ZY```#3%"/(\````!42H!F&"\Y````3$ZY```:T%B/E
XXM<`!,WR#P3EY.=7`!+P`O/````01.N0```TQ0CR/`````4$J`9BPO/```#!POP
XXM.0```%1.N0```V10CR\Y````3$ZY```:T%B/<`!,WR#P3EY.=2!N``PCR```%
XXM`8HO"$ZY```''%B/Y8`B/````(J2@#/!```!@B!Y````3#`H``A(P'("@<$$P
XXM0`"*,\````44,"@`"DC`@<$$0`!:,\````46,_S__P```W0O"$AY```%$$ZYF
XXM```%^%"/2H!F0"\\```,'"\Y````5$ZY```#9%"/+SP```$$+SD```!03KD`7
XXM``-D4(\O.0```$Q.N0``&M!8CW``3-\@\$Y>3G5P_R!Y````2"%``+A"IV$`?
XXM^WI8CR!Y````3")Y````2"-(`+@M:`!2__PO/`!!@%`O"$ZY```%X%"/('D``
XXM``!,+R@`5DZY```$;%B/+4#_^$J`9P`$[B!N__A#[O_$<#,2V%'(__PO+O_X,
XXM3KD```2`6(\,K@```$#_V&8``X`@;O_@+4C_P+'\```$Y&8``*!(>0```%A()
XXM>0```+U.N0``!G10CTJ`9Y)(>0```41(>0```+U.N0``&R!0CTJ`9V9P_B\`R
XXM2'D```"]3KD```*(4(\N`$J'9T8O.0```%`O!TZY```"N%"/2H!G*"!Y````:
XXM4$JH``1O$"\'3KD``!KT6(]A`/V`8!8O!TZY```"I%B/8`HO!TZY```"I%B/)
XXM80#W#F``_Q9A`/UN8`#_#G``(&[_P#`H`"9*@&<``:02.0```>M(@4C!T(%32
XXM@"P`O#D```'J9``!<"`&`H````#_+T``%..`($#1_````2)*4&<\("\`%'(?O
XXM3KD```>$('D```!4T<!P_B\`+PA.N0```HA0CRH`2H5G``$L+P5.N0``&O18"
XXMCV$`_-Q@``$:<`$O`$AY```#0"\Y````3$ZY```&6$_O``PB!@*!````_SU`Q
XXM_[QP'TZY```'A"!Y````5-'`<!XO`"\(+SD```'L3KD```;>3^\`#'``,"[_E
XXMO$AY```%$'(!+P$O`$AY```#0"\Y````3$ZY```&,$_O`!1P`2\`2'D```40A
XXM+SD```!,2'D```-`3KD```803^\`$"\N_^PO+O_H+SD```(*+SD```(&3KD`:
XXM``603^\`$$J`9V(0.0```@ZP!F98+SD```!,2'D```403KD```7(4(\O+O_\8
XXM+SD```!,3KD```7@4(\O/```#!PO.0```%1.N0```V10CR\\```!!"\Y````S
XXM4$ZY```#9%"/<`%,WR#P3EY.=2/N_^@```(&(^[_[````@H3Q@```@Y@`/U<B
XXM(&[_P+'\```"UF9B2GD```'P9EI(>0```+U.N0``!QQ8CR!`T?P```"\$!`,R
XXM```Z9S0@>0```$@O*`"83KD```,86(\H`$J$9Q(O!$ZY```:]%B/80#[3F``6
XXM_0!.N0``&M!@`/SV80#[3F``_.X@;O_`L?P```*.9@AA`/LZ8`#\VB!N_\"QV
XXM_````DYF#$*G80#X&%B/8`#\PD'Y```"!B`N_\"QP&<,($"Q_````=IF`/RH"
XXM+SD```!,2'D```403KD```7(4(\O+O_\+SD```!,3KD```7@4(\O/```#!PO6
XXM.0```%1.N0```V10CR\\```!!"\Y````4$ZY```#9%"/(&[_P+'\```"!E?`H
XXM1`!(@$C`3-\@\$Y>3G4,K@```!#_V&8``((0.0```>I(@$C`#(`````%;P19H
XXM@&`"<`%R`#(Y```#<!U`_\-(@$C`3KD```>$(CP``0``3KD```=`+4#_ODJ`%
XXM:@1P`&`8$"[_PTB`2,`B+O^^LH!M!%.`8`0@+O^^$CD```'K2(%(P2U`_[ZR]
XXM@&<`^\(3P````>MA`/208`#[M"`N_]@,@```@`!G"`R```$``&802GD```'PN
XXM9PAA`/GP8`#[D`RN`$```/_89@#[A$IN`!9G`/M\$#D```(/4SD```(/2@!FM
XXM`/MJ('D```4P*F@`#'`"+P`O#4ZY```%9%"/.WS,S``B,"T`(`!```$[0``@'
XXM&WP`#P`>+SP```"R+SP```$1<`(O`"\`+PU.N0``%0!/[P`4.WS__P`B,"T`,
XXM(`!```$[0``@<`\;0``>$\````(/8`#Z^B)Y````3"!I`%9P`!`H``]R`>&A>
XXM+P%.N0```^Q8CV``^M@``$Y6```P+@`.2,`R+@`22,$O`2\`+RX`"$ZY```$A
XXMW$_O``PP+@`62,`R+@`22,$O`2\`+RX`"$ZY```$^$_O``PP+@`62,`R+@`:D
XXM2,$O`2\`+RX`"$ZY```$^$_O``PP+@`.2,`R+@`:2,$O`2\`+RX`"$ZY```$@
XXM^$_O``PP+@`.2,`R+@`22,$O`2\`+RX`"$ZY```$^$_O``Q.7DYU``!.5O_X,
XXM+7P```6<__Q*N0``!9AG"B`Y```%F$Y>3G5.N0```RPO+O_\3KD```246(\CR
XXMP```!9A*@&9H+SP``0`!<%`O`$ZY```#3%"/(\````682H!G3"!`+4C_^-#\;
XXM`"PB0"-(``H3?``$``@O`$ZY```$0%B/('D```68T/P`0B\(3KD```)T6(\@^
XXM>0``!9C0_``L+R[__"\(3KD```:T4(].N0```SP@.0``!9A.7DYU3E;_^&$`D
XXM_TA*@&8&<`!.7DYU2JX`"&<.+RX`"$ZY```''%B/8`)P``:`````+B\\``$`Y
XXM`2\`+4#_^$ZY```#3%"/+4#__$J`9V0B+O_X($`Q00`JT/P`%"\(3KD```)T=
XXM6(\@;O_\$7P`!``($7P``@`.2JX`"&<VT/P`+")N__PC2``*TOP`+"\N``@O)
XXM"4ZY```&M%"/('D```68T/P`0B\N__PO"$ZY```#?%"/("[__$Y>3G5.5O_\X
XXM80#^DDJ`9@9P`$Y>3G5*K@`(9@9P`$Y>3G5.N0```RP@>0``!9C0_`!"+RX`H
XXM""\(3KD```.H4(\M0/_\2H!G#"!`,B@`)E)!,4$`)DZY```#/$JN__QG)B!N4
XXM__PP*``H"````&<8<``0*``/<@'AH2\!+R@`$$ZY```$`%"/("[__$Y>3G5.U
XXM5O_\3KD```,L+RX`"&$`_V98CRU`__Q*@&8>+RX`"&$`_IY8CRU`__Q*@&<,]
XXM($`R*``F4D$Q00`F3KD```,\("[__$Y>3G5.5@``(&X`"#`H`"920#%``"8P:
XXM*``H"````&<8<``0*``/<@'AH2\!+R@`$$ZY```$`%"/3EY.=4Y6``!*K@`(7
XXM9@1.7DYU3KD```,L(&X`"#`H`"930#%``"9*0&8N2J@`"F<*+PA.N0```Y18%
XXMCTZY```#/'``(&X`"#`H`"HO`"\(3KD```-D4(]@+"!N``@P*``H"````&<8Y
XXM<``0*``/<@'AH2\!+R@`$$ZY```$`%"/3KD```,\3EY.=4Y6__PO+@`(80#^%
XXM\EB/+4#__$J`9VI.N0```RP@;O_\,"@`*`)`P`!*0&88</\O`$ZY```$&%B/-
XXM(&[__!%```]2`&80+R[__&$`_S)8CT*N__Q@)B!N__Q"*``.0J=.N0```\!8_
XXMCR!N__PA0``0,"@`*`!`@``Q0``H3KD```,\("[__$Y>3G5.5@``(&X`"#`HR
XXM`"@`0$``,4``*`)`?_\Q0``H$7P``@`.3EY.=4Y6``!P`"!N``@0*``/+P!.4
XXMN0``!"Q8CR!N``A"J``0,"@`*`)`/P`Q0``H+PAA`/Z>6(].7DYU3E8``$*G1
XXM3KD```/`6(\B;@`((&D`$+'`9A8P*0`H`D#_`#(N``X"00#_@$$S0``H<``@M
XXM;@`(,"@`)DY>3G5.5@``3KD```,L(&X`"#`H`"@"0(``2D!G&B\N``PO"$ZY'
XXM```$5%"/3KD```,\<`%.7DYU3KD```,\<`!.7DYU3E;_^"`N``A3@.F`!H``U
XXM```N+SP``0`!+P`M0/_\3KD```-,4(\M0/_X2H!G&"(N__P$@0```!0@0#%!*
XXM`!(@+@`(,4``'"`N__A.7DYU3E8``'``(&X`"#`H`!(&@````!0O`"\(3KD`$
XXM``-D4(].7DYU3E;__$CG``PJ;@`(3KD```,L2JT`5F<\(&T`5G``$"@`#W(!B
XXMX:$O`4*G3KD```/44(\O+0!63KD```1L6(\H0+G\`````&<,+PQ.N0``!(!86
XXMCV#>3KD```,\3-\P`$Y>3G4``$Y6``!P`"\`+P`O`$AY```%K"\N``A.N0``<
XXM'*9/[P`43EY.=4Y6__Q(YP$`+RX`"$ZY```"\%B/+@!*AV<*+P=.N0```J18"
XXMCTS?`(!.7DYU3E;_]$CG(0PJ;@`(*&X`#'X`($W1QQ`02(!(P"]``!!2@"!`"
XXMT?P```!`$!`(````9PP@+P`0!H`````@8`H@3=''$!!(@$C`($S1QQ(02(%(#
XXMP2]!`!12@2!!T?P```!`$A`O0``0"`$``&<,(B\`%`:!````(&`,($S1QQ`0_
XXM2(!(P"(`("\`$+"!9A`@3=''$!!*`&<&4H=@`/]X($W1QQ`02(!(P"]``!!2*
XXM@"!`T?P```!`$!`(````9PP@+P`0!H`````@8`H@3=''$!!(@$C`($S1QQ(02
XXM2(%(P2]!`!12@2!!T?P```!`$A`O0``0"`$``&<,(B\`%`:!````(&`,($S1I
XXMQQ`02(!(P"(`("\`$+"!5L)$`DB"2,(@`DS?,(1.7DYU``!.5@``("X`"+"NC
XXM``QL!B`N``Q@!"`N``A.7DYU3E;__"!N``@B;@`,(T@`##`Y```"$$C`<@)..
XXMN0``!T`O""]```1.N0``!QQ8C^6`(B\``)*`(&X`##%!``1.7DYU3E;_]$CG(
XXM(``O+@`,3KD```<<6(\O+@`0+T``"$ZY```''%B/+RX`%"]```Q.N0``!QQ8]
XXMCR\N`!@O0``03KD```<<6(\O`"\O`!!A`/]64(\O`"\O``QA`/]*4(\O`"\OU
XXM``AA`/\^4(\O`'((+P%A`/\R4(_G@`:`````$#/````"$$JN`!!F!'`R8!9*E
XXMK@`49@1P/&`,2JX`&&8$<$9@`G!02'D```9H+RX`##/````"$F$`_PI0CTAY_
XXM```&5"\N`!!A`/[Z4(](>0``!D`O+@`480#^ZE"/2'D```8L+RX`&&$`_MI00
XXMCR!N``@P*``(2,!R`H'!,CD```(02,%T`H/"D$$SP```!OPP*``*2,"!PC0YD
XXM```"$DC"A?P``I!",\````;^,#D```(0,\````<`-#D```(2,\(```<"4T`SD
XXMP````B`SP````AQ30C/"```")C/"```"(@1!`"`SP0``!M`P.0```A($0``4"
XXM,\````;2+PA(>0``!OA.N0``!?A0CTJ`9AH@;@`(+R@`+DZY```%?%B/<`!,T
XXMWP`$3EY.=2!N``@CZ`!2```"%'!`+P`O"$ZY```%X%"/(FX`""!I`%9P`!`H;
XXM``]R`>&A+P%.N0```^Q8CR!N``@O*`!63KD```1L6(\O`$ZY```$@%B/+SD`[
XXM``(4+RX`"$ZY```%X%"/<`%,WP`$3EY.=4Y6__A(YP$`0J[_^B\Y```"]"\N$
XXM``A.N0```KA0CTJ`9P``NB\N``A.N0```QA8CRU`__I*@&<J$#D```+X'T``D
XXM!%,`$\````+X$"\`!`*`````_R!`T?P```(L$+P`+V`H$#D```+X'T``!%,`_
XXM$\````+X$"\`!`*`````_R!`T?P```(L$+P`.B!Y```"]%"(+PA.N0``!QQ82
XXMCRX`2D=O.A`Y```"^!]```13`!/````"^!`O``0"@````/\@0-'\```"+"`'#
XXM2,!3@")Y```"]%")T\`0D5-'8,)*KO_Z9R(0.0```O@,```@8Q8O+O_Z80#_-
XXM#%B/+R[_^DZY```"I%B/3-\`@$Y>3G5.5@``<`$O`"\\```!!$ZY```#3%"/@
XXM(\````+T2H!F!G``3EY.=1/\`,8```+X0GD```+Z+RX`"&$`_KI8CQ`Y```"D
XXM\@P``"]F!D(Y```"\B\\```!!"\Y```"]$ZY```#9%"/,#D```+Z2D!F/G``F
XXM$#D```+X4H`@0-'\```"+!`0#```.F8,0?D```=H(`A.7DYU<``0.0```OA2-
XXM@"!`T?P```(L(`A.7DYU<`!.7DYU``````/L````KP```````"`>```?T```<
XXM'[(``!]*```>W@``'LP``!Z2```>B```'G@``!ZD```>7```'C@``!XD```<\
XXMY```'-0``!S$```<M```'(P``!R````;$@``&P(``!KH```:P@``&K@``!JD`
XXM```:F```&GH``!G<```95@``&80``!CV```8R```&F(``!A>```80@``&(8`?
XXM`!@(```7A```%SX``!;Z```6<```&?```!GD```9$@``&(X``!A*```7S@``$
XXM%UH``!9$```6X@``%CP``!:N```6)```%A```!H:```6C@``%>8``!7*```9$
XXMP```&*X``!@B```7F```%R@``!7````5D@``%70``!56```5.```%1H``!3TB
XXM```4L@``$K@``!,\```2%@``$?(``!"R```0I@``$L@``!$Z```0E@``$2@`&
XXM`!!F```0.```$`8```_@```33@``$B@```_.```/4```$W8``!-B```24```Z
XXM$CP```]\```/:```#M```!+8```/B@``#MX```Z6```.L@``#GX```YH```.1
XXM$```#*X``!!\```,D```$%````UZ```,&```$]@```JL```)U@``"G(```F<>
XXM```)6```$I8```[\```-8@``#3(```E(```3S```$7(``!$4```-3@``#2(`C
XXM``S(```,,```"^0```NX```)-```"1@```I.```)9@``"/P```C2```4?@``7
XXM"CH```C&```1U```#>````L4```(C```$;0```VZ```*]```"%@``!&,```,J
XXMY@``""H```@6```,1@``"`(``!%:```+1```"B````?B```"8````B0```).W
XXM```!_````FH```#:````T@```,````"P````C````.0```!^````:````9``L
XXM``!:````2@```#0````>````6`````$``"!*```>'@``'A8``!X&```=X```*
XXM'=0``!W(```=K```'8```!UP```=8```'4H``!P&```;T```&WP``!M&```:,
XXMW@``%RX``!;J```62@``%BP``!88```5[@``%=(``!6V```5K@``%:8``!1NH
XXM```3O@``$X(``!,V```3)@``$Q8``!,"```2[@``$H```!(0```1S@``$<(`,
XXM`!&H```1G```$4X``!!$```0(@``#TH```]"```/.@``#R@```\.```.]```4
XXM#EH```W:```-S@``#:X```V@```-<@``##X```P.```+.```"PX```L"```*H
XXMZ```"MP```K0```*Q@``"H8```I6```*0@``"BH```H4```)Z```"<X```BV,
XXM```(H```")8```B&```(>@``"'````AB```(3```"$````?V```'U@```<``O
XXM``!B````1````"X````8````W`````(``"!B```@6```(#P``"`R```@)@``X
XXM(!@``"`,```@````'_```!_J```?V```'Y@``!^"```?=@``'V0``!]8```?9
XXM0```'S8``!\D```?&```'PP``![Z```>[@``'L(``!Z:```>4```'@P``!W\G
XXM```=]@``'>X``!WH```=V@``'<X``!VZ```=G@``'50``!TD```<=@``"UX`$
XXM`!3>```4U```%&(``!1<```4.```%!8``!0"```3I```$W```!-<```32```0
XXM$S```!*N```2H```$I```!*(```2<@``$FP``!)D```22@``$C8``!(B```23
XXM"@``$@```!'L```1Y@``$<@``!&N```1A@``$7@``!%4```1&@``$00``!#JG
XXM```0V@``$(@``!!T```08```$$H``!`R```0+```#]8```^V```/L```#YX`D
XXM``^$```/=@``#V(```\4```.V```#LH```ZZ```.D```#H8```YX```.8@``:
XXM#E````XT```.(```#@H```W\```-Z@``#=0```VT```-F```#8@```U4```-P
XXM0@``#2@```T(```-`@``#/````S6```,S@``#+P```RD```,G@``#(8```R`3
XXM```,<```#&````Q.```,-@``#"0```OJ```+V```"[X```NL```+5```"TX`$
XXM``L^```+"```"NX```J0```*?@``"AH```F\```)L@``"3H```DB```(Y```T
XXM"(````A2```()```"`P```?\```'[@``!]P```9<```&-@``!A8```7\```%]
XXMY```!<P```6P```%E@``!8````5H```%4```!3@```4:```$_```!.````3$4
XXM```$K```!)@```2$```$<```!%@```1$```$,```!!P```0$```#\````]@`6
XXM``/$```#K````Y@```.````#:````U````-````#,````QP```,(```"]```H
XXM`MH```*^```"J````HX```)(```"0@```C@```(N```"'@```A@```(2```!=
XXM]@```?````':```!T@```<H```'$```!N````:P```&D```!G````80```%Z-
XXM```!%@```1````$*```!!````+H```"@````A@```'````!2````/````"8`\
XXM```0`````````_`````#7U)E;6]V94=,:7-T```&6`````-?061D1TQI<W0`B
XXM``````8P````!%]2969R97-H1TQI<W0```````80`````E]297%U97-T```%P
XXM^`````-?36]D:69Y241#35````7@`````U]%;F1297%U97-T````!<@````#&
XXM7T1R87=);6%G90`````%K`````-?1&]U8FQE0VQI8VL```60`````U]$:7-PK
XXM;&%Y0F5E<```!7P````"7U-E=$1R360```5D`````E]3971"4&5N```%3```C
XXM``)?4V5T05!E;@``!30````#7U)E8W1&:6QL```````%%`````)?1')A=P``I
XXM````!/@````"7TUO=F4```````3<`````E]497AT```````$P`````-?3W!ED
XXM;DQI8G)A<GD```2H`````U]&:6YD4&]R=```````!)0````#7U)E<&QY37-GD
XXM```````$@`````)?1V5T37-G````!&P````"7U!U=$US9P````14`````E]!7
XXM9&10;W)T```$0`````-?1G)E95-I9VYA;`````0L`````U]!;&QO8U-I9VYAB
XXM;```!!@````"7U-I9VYA;`````0``````E]786ET```````#[`````-?4V5T^
XXM4VEG;F%L``````/4`````U]&:6YD5&%S:P```````\`````#7T9I;F1.86UE2
XXM```````#J`````)?4F5M;W9E`````Y0````"7T%D9$AE860```-\`````E]&3
XXM<F5E365M```#9`````-?06QL;V--96T```````-,`````E]097)M:70````#2
XXM/`````)?1F]R8FED`````RP````#7U!A<F5N=$1I<@`````#&`````)?17AIO
XXM=````````P0````#7T-U<G)E;G1$:7(````"\`````)?17A.97AT`````M0`D
XXM```"7T5X86UI;F4```*X`````E]5;DQO8VL````"I`````)?3&]C:P``````?
XXM`H@````"7TYE=TQI<W0```)T`````````_)```/J```!W&1O<RYL:6)R87)Y/
XXM`&=R87!H:6-S+FQI8G)A<GD`:6YT=6ET:6]N+FQI8G)A<GD`1FEL95]297%UV
XXM97-T97(`````("`@("`@("`@*"@H*"@@("`@("`@("`@("`@("`@("!($!`0#
XXM$!`0$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!`0$!`0$!`0$!H
XXM`0$!`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@("`@("`@("$!`0.
XXM$"`@("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0`
XXM$!`0$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!_
XXM`0$!$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0(````%9O\
XXM;'5M97,`/_A,3-;6UM;6SDQ4/_@``````04```$%``L````+`````/____X!F
XXM```%```!6@`````!````````"@``!@P````````````'`#8`^``V`/@`:0`'0
XXM`&D`!P`V``````$```4```&2```````````!$P```1,`M````+0`````````/
XXM``$```4```&V```!I@``````T@"@`#@`#`````$``0``!?`````````%R```>
XXM```````````````````!V@`(`*``.``,`````0`!```%\`````````88````<
XXM``````````````!297-C86X```$`````!``"```&#````C(````````"!@#2#
XXM`)$`.``,`````0`!```%\`````````(Z```````````````````!````````)
XXM`@``!@P```%$`````````DX`;0"1`#@`#`````$``0``!?`````````">@``>
XXM````````````````4&%R96YT```!``````0``@``!@P```*Z`````````HX`/
XXM"`"1`#@`#`````$``0``!?`````````"P@``````````````````1FEL90``8
XXM`0``````__8```8,```#`@``````````````6````!\`````````````````$
XXM``````````````````+6``@`?0$$``@````!$`0```%N`````````P@`````Y
XXM```#'``````````%`````/____\```````````````````-``/X`-@`/`#0`:
XXM!P`)$`,```'R```````````````````#;`````````#H`#@`#P`'``$```%,)
XXM`0`````````#[@`(`#<`\``*`````1`!````````````````````````````]
XXM`0````````0:``@`00#P``H````!$`$````````````````````````````"V
XXM````````!$8`"`!+`/``"@````$0`0````````````````````````````,`L
XXM```````$<@`(`%4`\``*`````1`!````````````````````````````!```C
XXM``````."``@`7P#P``H````!$`$````````````````````````````%````]
XXM`$1I<F5C=&]R>2!O9@```0``````__8```8,```$G@````````"]````6```I
XXM`&4```````````````````````````````````/"``@`*`$$``@````!$`0`\
XXM``%N````````!*P````````$P````````````````````10`M0````````3D5
XXM```!R@```7X`````````````````````````````````````````````````*
XXM`````````````````````````````````````````````````````````````
XXM``!204T@1&ES:SH`4D%-.@`N:6YF;P``````````25!#7T)A<V5?4&]R=```S
XXM`$YO="!%;F]U9V@@365M;W)Y````0V%N8V5L```!``````0``@``!@P```7`T
XXM````````````.0```#D`#0````T`````_____P$```4```7<`````'1O<&%Z=
XXM+F9O;G0`````!@``"```3TL```$`````%``"```&#```!A0``````0``````1
XXM`"@```8,```````````!````````'@``!@P````````&+`$````````4```&X
XXM#`````````9``0````````H```8,````````!E0``````0``!0```A@`````I
XXM4')O8V5E9``!``````0``@``!@P```:,````````````00```$$`#0````T`)
XXM````_____P$```4```:H`````````````````$``#`````40`0``!KP`````4
XXM```&E```````````````````````````````````````````!LP```9\```&T
XXM:```````````````````````````````````````````````````````````H
XXM`````````````````````````````````````````````````````%)!33H`:
XXM```````#[````$4````!```&G```!G````9<```&2```!C0```<0```'#```A
XXM!P@```;F```&W@``!L0```:@```&>```!F0```90```&(```!B0```8,```%T
XXM^```!=````74```"(````?0```+H```"H````F````(8```![```!+0```,0]
XXM```"R@```H(```)"```!A@``!2@```4D```%(```!08```3^```$]@``!.0`%
XXM``2X```$<@``!$8```0:```#[@```\(```.X```#I````X(```-B```#6@``Y
XXM`U(```-````#%````O````+6```"S@```J@```*.```"A@```F@```).```"'
XXM1@```@8```'6```!T@```:X```%V````!0````(```:$```$Q```!,````.42
XX8```#(`````````/R```#ZP```+\```/RZ
XX``
XXend
XXsize 13344
SHAR_EOF
if test 18728 -ne "`wc -c FileReq-Handler.uu`"
then
echo shar: error transmitting FileReq-Handler.uu '(should have been 18728 charac
   ters)'
fi
#       End of shell archive
exit 0

peter@sugar.UUCP (Peter da Silva) (06/13/88)

OK!

Now if the format of the message isn't too incompatible, I'll put a
port into Browser that looks like this filerequest port but just puts
your program's name in the Tools menu. So if you have Browser you can
use it, but if you don't you can just ship this PD program with your
software.

This is an important point: people should be able to depend on a fallback
position.

Too bad he didn't see fit to distribute source.
-- 
-- Peter da Silva      `-_-'      ...!hoptoad!academ!uhnix1!sugar!peter
-- "Have you hugged your U wolf today?" ...!bellcore!tness1!sugar!peter
-- Disclaimer: These may be the official opinions of Hackercorp.