Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (07/16/90)
Submitted-by: Arthur <AP_vRooijen%pttrnl.nl@CUNYVM.CUNY.EDU> Posting-number: Volume 90, Issue 207 Archive-name: rexx/rexxdial/part01 [ uuencoded executables enclosed ...tad ] This program can dial a telephone number by producing the telephone tones You can use it by holding the telephone receiver next to the right speaker. The program uses the frequencies specified by the CCITT V.19 recommendation The following keys are used: 0 1 2 3 4 5 6 7 8 9 * # A B C D I created it because I don't have a autodial modem and I wanted to use the amiga for dialing. Usage: runback rexxdial Send numbers from within an ARexx program to the 'DialPort' port using the "address 'DialPort' telephonenumber" instruction. By sending the CLOSE command the program can be stopped. This program can be used by eg: VLT and SuperBase Proffesional Author : Arthur van Rooijen 15-April-1990 Note: This program is only tested in the Netherlands at the moment #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 1)." # Contents: readme rexxdial.c rexxdial.uu rexxdial_ba.uu # rexxdial_back.c rexxglue.o.uu # Wrapped by tadguy@xanth on Sun Jul 15 17:37:56 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'readme' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'readme'\" else echo shar: Extracting \"'readme'\" \(1208 characters\) sed "s/^X//" >'readme' <<'END_OF_FILE' X XThis program can dial a telephone number by producing the telephone tones XYou can use it by holding the telephone receiver next to the right speaker. X XThe program uses the frequencies specified by the CCITT V.19 Xrecommendation XThe following keys are used: X 0 1 2 3 4 5 6 7 8 9 * # A B C D X XI created it because I don't have a autodial modem and I wanted to use Xthe amiga for dialing. X XUsage: runback rexxdial XSend numbers from within an ARexx program to the 'DialPort' port using Xthe "address 'DialPort' telephonenumber" instruction. XBy sending the CLOSE command the program can be stopped. X X X XThis program can be used by eg: VLT and SuperBase Proffesional X XAuthor : Arthur van Rooijen 15-April-1990 X XNote: This program is only tested in the Netherlands at the moment X XCompile: lc -Lm+rexxglue.o rexxdial.c X X X -- X Arthur van Rooijen X X PTT Research Neher Laboratories, Phone : +31 70 3325092 X 2260 AK Leidschendam, Telefax: +31 70 3326477 X P.O. box 42, Telex : 31236 prnl nl X The Netherlands. X X Domain : ap_vrooijen@pttrnl.nl X EARN/BITnet : ROOIJEN@HLSDNL5.BITNET X PSS (DATAnet1) : +204 117035801::ROOIJEN END_OF_FILE if test 1208 -ne `wc -c <'readme'`; then echo shar: \"'readme'\" unpacked with wrong size! fi # end of 'readme' fi if test -f 'rexxdial.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rexxdial.c'\" else echo shar: Extracting \"'rexxdial.c'\" \(5865 characters\) sed "s/^X//" >'rexxdial.c' <<'END_OF_FILE' X/* X * This program can dial a telephone number by producing the telephone tones X * You can use it by holding the telephone receiver next to the right speaker. X * X * The program uses the frequencies specified by the CCITT V.19 X * recommendation X * X * Usage: runback rexxdial X * Send numbers from within an ARexx program to the 'DialPort' port using X * the "address 'DialPort' telephonenumber" instruction. X * By sending the CLOSE command the program can be stopped. X * X * This program can be used by eg: VLT and SuperBase Proffesional X * X * Author : Arthur van Rooijen 15-April-1990 X * X * Note: This program is only tested in the Netherlands at the moment X * X * Compile: lc -Lm+rexxglue.o rexxdial.c X */ X X#include <stdio.h> X#include <math.h> X#include <exec/types.h> X#include <exec/memory.h> X#include <hardware/custom.h> X#include <hardware/dmabits.h> X#include <libraries/dos.h> X#include <devices/audio.h> X X#include <rexx/storage.h> X#include <rexx/rxslib.h> X X Xextern struct MsgPort *CreatePort(); X Xvoid sound(UWORD per1, UWORD per2); Xvoid dial(UBYTE digit); XUWORD duration(UWORD frek); Xvoid fill_wave(BYTE *data); X XBYTE chip wave1[16]; X X/* X * Frequencies specified by CCITT V.19 X * X * B1=1209 Hz B2=1336 Hz B3=1477 Hz B4=1633 Hz X * A1=697 Hz 1 2 3 A X * A2=770 Hz 4 5 6 B X * A3=852 Hz 7 8 9 C X * A4=941 Hz * 0 # D X * X * The periods are calculated by the next formula: X * period = 3579545 / ( 16 * frequency) X */ Xstruct { UBYTE key; X UWORD per1, X per2; X}table[]={{'0',238,167}, X {'1',321,185}, X {'2',321,167}, X {'3',321,151}, X {'4',291,185}, X {'5',291,167}, X {'6',291,151}, X {'7',263,185}, X {'8',263,167}, X {'9',263,151}, X {'*',238,185}, X {'#',238,151}, X {'A',321,137}, X {'B',291,137}, X {'C',263,137}, X {'D',238,137}}; X Xstruct IOAudio s0,s1; Xstruct RexxLib *RexxSysBase; X X Xvoid main() X{ X UBYTE sunit=0x06; X int i; X char number[32]; X X struct MsgPort MyPort; X struct RexxMsg *rmptr; X LONG test; X X X RexxSysBase = (struct RexxLib *)OpenLibrary("rexxsyslib.library",0L); X if (RexxSysBase == NULL) { X printf("Bad News -- no REXX library\n"); X exit(0L); X } X X /* X * Open the audio device and create 2 channels for the right X * speaker X */ X if((s0.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s0",0L))==NULL){ X printf("Can't open s0 reply port\n"); X exit(0L); X } X X s0.ioa_Request.io_Message.mn_Node.ln_Pri=10; X s0.ioa_Data=&sunit; X s0.ioa_Length=(ULONG)sizeof(sunit); X X if((OpenDevice(AUDIONAME,0L,&s0,0L))!=NULL){ X printf("Can't open Audio Device\n"); X DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort); X exit(0L); X } X X s0.ioa_Request.io_Command=CMD_WRITE; X s0.ioa_Request.io_Flags=ADIOF_PERVOL; X s0.ioa_Request.io_Unit=(struct Unit *)0x02; X s0.ioa_Data=(UBYTE *)wave1; X s0.ioa_Length=sizeof(wave1); X s0.ioa_Volume=64; X X s1=s0; X if((s1.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s1",0L))==NULL){ X printf("Can't open s1 reply port\n"); X CloseDevice(&s0); X DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort); X exit(FALSE); X } X s1.ioa_Request.io_Unit=(struct Unit *)0x04; X X /* X * Create a SIN wave of 16 samples in chip memory X */ X fill_wave(wave1); X X /* X * Create a message port for the rexx interface and make it public X */ X InitPort(&MyPort,"DialPort"); X AddPort(&MyPort); X X for (;;) { X /* X * Wait for telephone numbers X */ X Wait(1<<MyPort.mp_SigBit); X rmptr = (struct RexxMsg *) GetMsg(&MyPort); X X X /* X * See whether it's the close command X */ X strcpy(number,rmptr->rm_Args[0]); X test = strcmp(number,"CLOSE"); X X /* X * Send a return code X */ X rmptr->rm_Result1 = 0; X rmptr->rm_Result2 = 0; X ReplyMsg(rmptr); X X /* X * Stop if close command was send X */ X if (test == 0) break; X X /* X * Dial number X */ X for(i=0;i<strlen(number);i++){ X dial(number[i]); X } X X } X X /* X * Clean up everything X */ X CloseDevice(&s0); X DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort); X DeletePort(s1.ioa_Request.io_Message.mn_ReplyPort); X X RemPort(&MyPort); X FreePort(&MyPort); X X} X X/* X * Produce the right frequencies for a key X * create a pause after the tone and for an unknown key X * The keys are : 0 1 2 3 4 5 6 7 8 9 * # A B C D X */ Xvoid dial(UBYTE key) X{ X int i=0, X found=0; X X while(!found){ X if (table[i].key==key){ X found=1; X sound(table[i].per1,table[i].per2); X for (i=0;i<7000;i++); X } X if(++i==16){ X found=1; X for (i=0;i<10000;i++); X } X } X} X X X/* X * Produce two tones off the same length on the right channel X */ Xvoid sound(UWORD per1, X UWORD per2) X{ X X s0.ioa_Period=per1; X s0.ioa_Cycles=duration(per1); X X s1.ioa_Period=per2; X s1.ioa_Cycles=duration(per2); X X BeginIO(&s0); X BeginIO(&s1); X WaitIO(&s0); X WaitIO(&s1); X X} X X/* X * Calculate the cycles to produce a tone with frequency freq and a X * length of 0.3 seconds X */ XUWORD duration(UWORD freq) X{ X return (UWORD)((0.3/16.0/(float)freq)*1e6); X} X X/* X * Create a SIN wave of 16 samples X */ Xvoid fill_wave(BYTE *data) X{ X double x; X X for (x=0;x<=PI*2;x+=.4){ X *(data++)=(BYTE)floor(127*sin(x)); X } X} END_OF_FILE if test 5865 -ne `wc -c <'rexxdial.c'`; then echo shar: \"'rexxdial.c'\" unpacked with wrong size! fi # end of 'rexxdial.c' fi if test -f 'rexxdial.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rexxdial.uu'\" else echo shar: Extracting \"'rexxdial.uu'\" \(16058 characters\) sed "s/^X//" >'rexxdial.uu' <<'END_OF_FILE' Xbegin 664 rexxdial XM```#\P`````````$``````````,```D+@``!$D```4(````````#Z0``"0LD+ XM2"0`2?D`````1_D```'T<@`@/````,5@`B;!4<C__"QX``0I3@(L*4\"-$*L\ XM`C`F;@$4<``B/```,`!.KO[.*6L`F`(H2JL`K&<``'`@#Y"O``0&@````(`I0 XM0`'X80`!+B!K`*S1R-'((F@`$-/)T\D@`G(`$ADI20(\T(%2@$)G4H`"0/_^0 XMG\!5@$)W"``@`E.`U($?L@``(`!3@E'(__8?O``@(`!3@A^Q(``@`%'*__@B' XM3R\)8```>"EK`#H!^'!_4H#1K`'X80``PD'K`%Q.KOZ`0>L`7$ZN_HPI0`(PK XM+P`D0"`J`"1G$BQL!/@@0"(H```I00(H3J[_@B(J`"!G&B0\```#[4ZN_^(I, XM0`(X9PKEB"!`)V@`"`"D(&P","\(2&P!]"!H`"0I:``$`CQ.N@;`3KH3V'``! XM8`0@+P`$+P`@+`(@9P0@0$Z03KHA9"QX``0B;`3X3J[^8DZZ!I9*K`(P9QHB' XM+`(X9P1.KO_<+'@`!$ZN_WPB;`(P3J[^AB`?+FP"-$YU<&1@M$/Z`!!P`$ZNZ XM_=@I0`3X9^Q.=61O<RYL:6)R87)Y`#(\_U)@<#(\_JI@:C(\_Q!@9'*48&`RA XM//\T8%HR//YH8%0R//]P8$XR//]\8$@R//]J8$(R//YZ8#PR//YT8#8R//YN8 XM8#`R//YB8"HR//Z`8"0R//],8!YRB&`:,CS_%F`4<II@$#(\_R)@"C(\_QQ@8 XM!#(\_UA,[P,```0@+P`,+PXL>0```LA.MA``+%].=3(\_W9@X#(\_SI@VC(\F XM_HQ@U#(\_IY@SC(\_J1@R#(\_T9@PC(\_T!@O#(\_D1@MC(\_P1@L#(\_OY@= XMJC(\_OA@I#(\_O)@GC(\_NQ@F#(\_N!@DC(\_H9@C#(\_IA@AG*"8"`R//\H- XM8!HR//]D8!0R//Y08`YRCF`*,CS_+F`$,CS^YB!O``0@+P`(8`#_8C(\_LA@C XM$#(\_CY@"C(\_MI@!#(\_C@@+P`$8`#_1#)\_LY@$#)\_L)@"C)\_UY@!#)\' XM_I(@;P`$3.\``P`(+PXL>0```LA.MI``+%].=4SO`P,`!,&(PXDO#BQY```"U XMR$ZN_DHL7TYU3.\#`P`$P8C#B2\.+'D```+(3J[^O"Q?3G5,[P,#``3!B,.)^ XM+PXL>0```LA.KOZV+%].=4SO`P,`!,&(PXDO#BQY```"R$ZN_K`L7TYU(&\`W XM!#(\_M1A`/Z@(F\`""*!3G4@+P`$<J!A`/Z.(F\`""*(3G5.5?_`2.<#`"XO+ XM`&`L+P!D3.T``P`0)#Q!^2'V)CRZ````3KH-(&TP2H9G!D'Z`F9@!$'Z`F1P? XM`'(`+P$O`"\!+P`O+0`,+RT`""\(2'@``4ZZ!*Y@``(T3.T``P`0)#P_U%\P2 XM)CQMR<B"3KH(S$AM_]`O`2\`3KH"Y$_O``PD/#_@``!V`$ZZ#+QM&$SM``/_> XMT"0\/_```'8`3KH-J$CM``/_T$SM``/_T$ZZ!.((````9P0(1P``2H9G&$SM< XM``/_T"0\/^```'8`3KH-ADCM``/_T"\M``PO+0`(3KH"4DAM_^`O`2\`3KH". XM<DCM``/_V$SM``/_T"0\0`DB`'8`3KH(-DCO``,`'$SM``/_X$SO``P`'$ZZO XM#3I,[0`,_]A.N@TB2.\``P`<3.T``__0)#R^XJ[O)CQ+GN6=3KH'^DCO``,`H XM)$SO``,`'$SO``P`)$ZZ#/XN@2\`2.T``__X3KH!SD_O`!@D/#WO__HF/#/5D XMT4-.N@O.;P``]DSM``/_^"0`)@%.N@>P)#P\Z(#_)CQID]^42.T``__P3KH'A XMFB0\/6KD("8\W`A)FTZZ#*1,[0`,__!.N@>`)#P]YA(\)CQH:M0O3KH,?$SM; XM``S_\$ZZ!V8D/#Y:YD4F/$M=P*M.N@QP3.T`#/_P3KH'3"0\/L<=XR8\I23P; XM8DZZ#$A,[0`,__!.N@<R)#P_*@&@)CP:`3X:3KH,/$SM``S_\$ZZ!Q@D/#^!] XM$1$F/!$1$+!.N@P43.T`#/_P3KH&_B0\/\55528\55555$ZZ#`A,[0`,__!.O XMN@;D3.T`#/_X2.T``__H3KH&U$ZZ"]Q([0`#__A*AV<03.T``__X3KH&L$CMM XM``/_^$SM``/_^$SM`,#_N$Y=3G5C;W,`<VEN`$Y5```O`DSM``,`"'0`=@!.J XMN@J6;"),[0`#``A.N@9R0J=(>``!+P$O`"\M``PO+0`(80#],&`:<``O`"\`7 XM(BT`""0M``PO`B\!+P(O`6$`_10D+?_\3EU.=4Y5```O+0`,+RT`"$ZZ`"PDI XM/#_Y(?LF/%1$+1A.N@LP2'@``4*G+P$O`"\M``PO+0`(80#\UDY=3G5.50``K XM3.T``P`(=`!V`$ZZ"@1M"B`M``@B+0`,8`I,[0`#``A.N@763EU.=4CG/P!,D XM[P`#`!QA```0(&\`)$C0`,!,WP#\3G4L`"X!*@!(13@%`D5_\`Q%0S!M```N8 XM`D1__PQ$?_!M```,;@``$DJ!9@``#`*`@````'(`3G5(0$ZZ`\HL`"X!3G4VA XM!01#/_!L```,`H:`````?@!.=2P`+@$"1(``Z$,$0P`4;```&D1#=/_GJLR"" XM?@"]@&<``!0$10`03OH$%G3_YJIP`,*"LX=*@6<```H$10`03OH#_C`$2$!.* XM=0``+PLF;P`((!,,@`````)G"`R``````68(<"$I0`3T8`9P(BE`!/1P`"9?W XM3G4```````!P84YU3G5.50``3.T``P`(=`!V`$ZZ".1L&$SM``,`"$ZZ!,`OB XM`2\`80``(DZZ!+1@%DAM``@O+0`,+RT`"$ZZ_M),[0`#``A.74YU3E4``$SM8 XM``,`"'0`=@!.N@B>;!9,[0`#``A.N@1Z+P$O`&&63KH$<&`\2&T`""\M``POQ XM+0`(3KK^CD_O``QT`'8`3KH(:F\83.T``P`()#P_\```=@!.N@E62.T``P`(N XM3.T``P`(3EU.=4Y5``!(YP$0+B\`$"9O`!0I1P+,*4L"T"EM`!`"U"EM`!0"7 XMV"EM`!@"W"EM`!P"X"EM`"`"Y"EM`"0"Z$AL`LQ.NO[66$]*@&<(3.P``P+D7 XM8`9,[0`#`"!,WPB`3EU.=4CG,`!V_R0`:@``.`R`O_```&4``%Y(Y\#`2'D`K XM```"3KH%3EA/3-\#`V```$9(YS``)CQ_____)`!J```&4H.W@$A`-``"0G_PG XMM4`$0C_P;0``(`I``!!(0.A"!$(`%&X``#!$0N2H2H)K```^8```/'``8```N XM-DCGP,!(>0````).N@3L6$],WP,#(`-@```<#$(`"V[@LX#EN.6ILX"P@V+4X XM2H)J```$1(!,WP`,3G4``"(`2$$"07__#$$`@&T``"0,07^`;```/N:``H"/O XM____!H`X````2$$"@0````?FF4YU2H%G^DCG/`!(0#@``D2``#H\.=!P`$A!E XM3KH!K$S?`#Q.=>:``(!_\```2$$"@0````?FF4YU+P9*@&<``(Q\`&```!0@+ XM+P`$+P8L`&<``'IJ```$1(`,@`$```!E``!B/#Q*@`R`@````&4```H&A@``$ XM!`#@B`R`"````&4```H&A@```@#HB`R``@```&4```H&A@```0#DB`R``0``P XM`&4```@&1@"`XHAR`-&!2$#01DA&`D:``+U`2$!@```*/#Q+`$ZZ`9PL'TYU` XM``!P`"(`N4!(0$YU2.?`P$AY`````4ZZ`Z983TS?`P-P`'(`N4!(0$YU2.?`E XMP$AY`````DZZ`XA83TS?`P,@/```?_"Y0'(`2$!.=4CGP,!(>0````1.N@-F4 XM6$],WP,#(#Q_\0``<@!.=0@```-G```>2.?`P$AY````!$ZZ`T!83TS?`P,(( XM@``#",```0!`?_!(0$YU2$!(1'H0#(`````@;```%DA`2$$P`4)!!$4!``R`M XM````(&WL0D0,@```(`!L```&X8A01$A`2D!F```&Z9A81'P`0_H`/APQ``#MF XMN-A&2$`L`>FIZ;ZS1KU`Z4R:1$A`2$1.=0R`````(&P``#9(0$A!,`%"001%` XM`0!L`/_H8```9@4$`P,"`@("`0$!`0$!`0$`````````````````````=@`,[ XM@```(`!L```&X8A00TA`2D!F```&Z9A80W0`%#L`P.6XUD)(0"0!YZGGNK-"S XMM4#I2YI#;0``#$A`T$6`1$A`3G5$1>A-)`#JJ.JZZJFQ@K6!2$"Y0$A`3G4`+ XM``R````!`&P```H$1@@`8```$$A`2D!F```(X9@$1@0`#$``$&P```CIF`1&G XM`@`,0`!`;```".68!$8!`$H`:P``"..8!$8`@$A`2D9L```21$;N3NRHW(;B` XMD'(`T8%.=4I&9P``%DA`"D``@+U`2$8"1H``O4!(0$YU4H#<AN*03G4``"\`I XM@Y]G!`A``!].=4CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`S$*]W XM0KU$L$=M``!.L$)M```L#(```'_P9@``"$J!9P``!D[Z_@"T1VT``!H,@@``W XM?_!F```(2H-G```*(`(B`T[Z_>)*@F8```Q*@V8```9.^OVT3OK]HK1';0``( XM+@R"``!_\&8```A*@V<```H@`B(#3OK]L$J`9@``#$J!9@``!D[Z_8).^OUP" XM.@#*1V8``!I*@&8```Q*@68```9.^OT<3KK]K&````B[0`I``!#.0F8``"9*S XM@F8```Q*@V8```9.^OSXP4+#0\M'3KK]@L%"PT/+1V````B_0@!"`!`$13_P9 XMVD=H```&3OK\^$A`+@'AB.&)X9^S1[]`2$(N`^&*X8OAG[='OT(N`$A'SL,L9 XM`DA&S,'>AD)'WT=(1TA!+`',PD)&2$;>ADA#+`/,P$)&2$;>ADA`2$(L`,S") XMQL#>@W8`W8/"PMZ!W8,B`$A!)@)(0\##Q,'1@B0`0D#10$A`2$)"0MZ"T8;"_ XMP]*'=`#1@D[Z`O0``"\'+B\`""E'`A!*K`(49Q0P?``!(FP"%+/(9PA(>``(( XM3I%83RX?3G4```````````````!(YS]`80``"$S?`OQ.=3P\@``^/'_P2$!(* XM0C@`R$:Y0,Q"O4*]1+!';0``<+!";0``+`R```!_\&8```A*@6<```9.^OPT' XMM$=M```>#((``'_P9@``"$J#9P``"B`"(@-.^OP63OK[]$J"9@``*DJ#9@``6 XM)$CGP,!(>0````-.NO],6$],WP,#(#P``'_PN4!R`$A`3G5.^ONTM$=M```>` XM#((``'_P9@``"$J#9P``"B`"(@-.^OO"3OK[5CH`RD=F```J2H!F```<2H%FF XM```62H)F```,2H-F```&3OK[?$[Z^RY.NON^8```"+M`"D``$,Y"9@``)DJ"C XM9@``#$J#9@``!F``_V[!0L-#RT=.NON4P4+#0\M'8```"+]""D(`$`1'/^":. XM1V@```9.^OL*2$`N`>F(Z8GIG[-'OT!(0BX#?`OMJNVK[;^W1[]"2$0X!2)$H XM2$*`PC@`2$$P`4)!2$(Z`LK$2$,\`\S$2$,^`\[$2$?>1DA'0D9(1MV%DH>1Q XMAF0```A31-*#T8)"0TA$+`!(0H#":```&$)$(`:2@TA"D8)(0$A!,`%"06``] XM`"HX`$A!,`%"04A"/`+,Q"X#2$?.Q$A'W$=(1D)'W4=(1I*'D89D```24T323 XM@]&"90``"%-$TH/1@BP`2$*`PF@``!1"12`&2$*00DA`2$$P`6```!0Z`$A!X XM,`%(0CP"S,60AF0```Y31=""90``!E-%T()(14A"@,)H```$</\Z`"`$(@4HR XM"3H$2$1.^@"```!*@&L``#A*@FH``"!*@&8``&9*@68``&!*@V8``%H,@H``@ XM``!F``!03G6P@F8```RV@64``$)F```X3G5*@FL``!YF```L2H-F```F2H%F- XM```@#("`````9@``%DYUM(!F```,LH-E```.9@``!$YU1/P`"$YU1/P``$YUT XM#(`"````;0``$.*(XI%*16P``$Q@```*!$4`$&P``$!$1>A-6$4,10`Y;P``R XM#D[Z^2XR`$)`2$!(001%`!!N\@9%`!`D`.JHZKKJJ;&"M8%T`-."T8)(0+E`) XM2$!.=20`Z(CHFNB)L8*U@70`TX+1@DA`T$4,0'_P901.^OD`N4!(0$YU2.<_+ XM0&$``!I,WP+\3G5(YS]`80``"$S?`OQ.=0A"`!](0$A"/#R``#X\?_`X`,A&, XMN4`Z`,I'NT#,0KU"SD*_0KI'9@``X`Q%?_!F```JL$)M```2+@".@68```XN$ XM`HZ#9P``"B`"(@-.^OC.O$1G``!^3OKXIDI%9@``1$A`9@``*$J!9@``(DA"0 XM9@``#DJ#9@``",A&3OKX."`"(@-(0+U`OT!(0$YU2$)F```>2H-F```82$"YE XM0+M`2$!.=7X0FD>_0+]"2$!(0KQ$9P``))*#9@``"I&"9@``!DYUD8)J```(> XM1(%`@#@&3OKXW$[Z^!S2@]&"#(``(```;0``%.*(XI%^`-.'T8<&10`0#$5_( XMX&4```9.^O?@2$#018!$2$!.=6X```K!0L-#R4;+1PQ%?_!G```P2D=F```^$ XM2$)F```02H-F```*N4"[0$A`3G76@]6"2D5F```F2$#2@=&`8```(DJ`9@``E XM#$J!9@``!D[Z]YA.^O?`"D(`$$A""D``$$A`GD5&1^A'!$4`(`Q'`#1N```>\ XMTH'1@`Q'`"!O```@)@)T``1'`"#NJW0`8```-`9%`!!(0-!%@$1(0$YU#$<`H XM$&\```XV`DA#0D)(0@1'`!`B1BP"[JKNONZKM8:]@RP)O$1F```\TH/1@@9%Q XM`!#BB.*1#(``(```;0``"@9%`!#BB.*1?@#3A]&'2$#010Q%?_!D```(@$1(- XM0$YU3OKVU)^'DX.1@@R``"```&T`_K9$A]*'?@#1A^*(XI$&10`02$#018!$$ XM2$!.=4CG!S`N+P`8)F\`'"PO`"`O!TZZ#4183R1`(`IF!'#_8#8(*@`#``-GD XM$$AX``)"IR\'3KH'B$_O``PO!B\++RH`!$ZZ"/1/[P`,*@!*K`(,9P1P_V`"6 XM(`5,WPS@3G4``````````'!A2.<#$"9O`!`@2TH89OQ3B)'++`A^`!X;2H=G` XM,E.L`5YM%B!L`59#Z``!*4D!5B`'$(!R`!(`8-P@!W(`$@!(;`%2+P%.N@*6D XM4$\B`&#&2&P!4DAX__].N@*$4$\@!DS?",!.=0```````'!A3E7_\$CG(3(F` XM;P`L#*P````@!&9L``"&$!-R(+`!9PQR";`!9P9R"K`!9@12BV#H2A-G:"`LU XM!&;E@%*L!&9![`1NT<`D2'`BL!-F)E*+)(M*$V<*<"*P$V<$4HM@\DH39@Q(4 XM>``!3KH,Z%A/8)Y"&V":)(M*$V<8$!-R(+`!9Q!R";`!9PIR"K`!9P12BV#DO XM2A-F`F`&0AM@`/]R2JP$9F8&(&P",&`$0>P$;BE(!&I*K`1F9GQ!^@$D0^P$: XM+"+8(M@BV"+8,I`B;`(P(&D`)$AX`"@O*``$2&P$+$ZZ!"Y/[P`,0>P$+"((U XM)#P```/N+&P$^$ZN_^(I0`+P*4`"^'($*4$"]"E``P`I00+\Y8"3R2QX``0K^ XM0/_P3J[^VB!M__`B0"-H``@`I'X`*T#_]&`J+&P$^$ZN_\HI0`+P3J[_Q"E`: XM`OA!^@"F(@@D/````^U.KO_B*4`#`'X$(`<`0(`!@:P"["`'`$"``H&L`O0`O XMK```@`,"_$JL`9AG!'``8`8@/```@``N`$*L`4P@!P!```$I0`%(<`$I0`%NE XM(`<`0``"*4`!:G`"*4`!D"`'`$``@"E``8Q!^@D"*4@")"\L!&HO+`1F3KH`Y XM,D*73KH&0$SM3(3_W$Y=3G5C;VXZ,3`O,3`O,S(P+S@P+P`J````````````* XM`````$[Y`````````````````````````````"\+)F\`"$JK`!1G#`@K``,`0 XM&V8$<`!@-B\L`?!.N@7*6$\G0``$)T``$$J`9@IP#"E`!/1P_V`6)VP!\``4+ XM<//!JP`8<``G0``,)T``""9?3G4``````````'!A3E7_[$CG+Q`N+P`T)F\`T XM."@'<#'`JP`89P9P_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`%&8``(0(*P`"+ XM`!MF>G``)T``#'+_OH%G``)"+PM.NO]26$]*@&<,".L`!0`;</]@``(J".L`Q XM`0`;2@9G#B`K`!0B`$2!)T$`#&`(("L`%"=```Q3JP`,;18@:P`$0^@``2=)- XM``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6""L``@`;9UAP0 XM_[Z`9@9P`&```<(@!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O*P`<*T'_\$ZZ$ XM^\Q/[P`,*@!@&G(!+P%(;?__+RL`'"M!__!.NONP3^\`#"H`?O]@``#@".L`S XM`0`;2@9G4G#_OH!G3%2K``QR"KZ!9B8@:P`$0^@``2=)``00O``-(BL`#$J!# XM:PHO"R\`80#^KE!/4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,2H%K``$<?O\@" XM*P`$D*L`$"M`__!G<@@K``8`&F=22'@``D*G+RL`'$ZZ`N!/[P`,*T#_[$H&T XM9SA3K?_L;3)"IR\M_^PO*P`<3KH"P$AX``%(;?_]+RL`'$ZZ`FA/[P`82JP"! XM#&8*$"W__7(:L`%GR"\M__`O*P`0+RL`'$ZZ^M!/[P`,*@!@`GH`</^Z@&8(% XM".L`!0`;8`RZK?_P9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,8!@(*P`"`!MG) XM"'(`)T$`#&`((BL`%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@:P`$0^@``2=)$ XM``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_9!03R(`<##`JP`89P1P_V`,</^X% XM@&8$<`!@`B`$3-\(]$Y=3G4-"@````!.5?_X2.<#,"9O`"`D;P`D+B\`*"!*C XM2AAF_%.(D<HL""!+2AAF_%.(D<L@"")+T\`K2?_XO(=C`BP'(`8@2F`"$MA3Q XM@&3Z(&W_^$(P:``@"TS?#,!.74YU(&\`!"`(2AAF_%-(D<`@"$YU```@;P`(Y XM(F\`!"`)$MAF_$YU(&\`!")O``@2&+(99@A*`6;V<`!.=6X$</].=7`!3G5.< XM5?_H2.<!,BXO`#1*AVX&</]@``#2<`B^@&0"+@`@!U:`+@`"1__\)&T`""!MT XM``C1Q]^L`2Q#[`$H)E$K2/_P*TG_]"`+9P``D"!+("L`!-'`*TC_[")M__"WP XMR6,0)(LE1P`$+&W_]"R*<`!@>+?)9AHL4R2.("L`!"(`TH<E00`$+&W_]"R*, XM<`!@6K7(9`B?K`$L</]@3K7(9BQ*DV<.(%.SR&,(GZP!+'#_8#C?JP`$2I-GS XM#K/39@H@*0`$T:L`!":1<`!@'BM+__0K;?_L_^@F4V``_VX@;?_T((I"DB5'Y XM``1P`$S?3(!.74YU``````````!P84CG!S`N+P`8)F\`'"PO`"`O!TZZ!=!8< XM3R1`(`IF!'#_8!XO!B\++RH`!$ZZ`F!/[P`,*@!*K`(,9P1P_V`"(`5,WPS@: XM3G4``$CG#Q`N+P`8+"\`'"HO`"`O!TZZ!8A83R9`(`MF!'#_8!XO!2\&+RL`3 XM!$ZZ`9Q/[P`,*`!*K`(,9P1P_V`"(`1,WPCP3G4``````````'!A2.<#,"XOU XM`!1*AVX&<`!@``"D<`B^@&0"+@`@!U:`+@`"1__\1>P!*"92(`MG0"`K``2PI XMAVTRL(=F#"!3)(B?K`$L(`M@;B`K``20AW((L(%E%B!+T<<DB"1()),E0``$F XMGZP!+"`+8$PD2R938+P@!R(L`9S0@5.`3KH"1B(L`9Q.N@(>+`!0AB`&5H`L6 XM``)&__PO!DZZ!@983R9`(`MG$B\&+PM.NOW*+H=A`/]44$]@`G``3-\,P$YU/ XM``````````!P82\'+B\`""\'3KK_,EA/+A].=0``2.<#$"XO`!!'[`$P(`MGW XM-`@K``(`&V8H""L``0`;9R`@*P`$D*L`$"P`2H9G$B\&+RL`$"\K`!Q.NO;BL XM3^\`#"938,@O!TZZ!/A83TS?",!.=0``2.<W$"XO`!PF;P`@+"\`)$JL`B1GH XM!$ZZ!%!"K`(,(@<D"R8&+&P$^$ZN_]`J`'#_NH!F#DZN_WPI0`(,<`4I0`3T* XM(`5,WPCL3G4``$CG/P`N+P`<+"\`("HO`"1*K`(D9P1.N@0$0JP"#"`%4X`B3 XM!R0&)@`L;`3X3J[_OB@`</^X@&8.3J[_?"E``@QP%BE`!/0@!0R``````F<6L XM#(`````!9PA*@&88(`9@%"`$T(9@#B('=`!V`"QL!/A.KO^^3-\`_$YU``!(8 XMYS<0+B\`'"9O`"`L+P`D2JP")&<$3KH#B$*L`@PB!R0+)@8L;`3X3J[_UBH`$ XM</^Z@&8.3J[_?"E``@QP!2E`!/0@!4S?".Q.=0``2.<`$B9O``Q*JP`*9PHB< XM2RQX``1.KOZ8%WP`_P`(</\G0``4<``0*P`/+'@`!$ZN_K`B2W`B3J[_+DS?H XM2`!.=2\'+B\`"$JL`B1G!$ZZ`P8B!RQL!/A.KO_<<``N'TYU2.<P`"0`)@%($ XM0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5*@&H``!Y$@$J!:@``#$2!80``($2!L XM3G5A```81(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$T`68``")(0$A!2$(T" XM`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`9```!N&944,,00@`M XM9```!NF964,,02``9```!N6954-*06L```;CF5-#-`#FJ$A"0D+FJDA#@,$VE XM`#`"-`-(0<3!D()D```(4T/0@63^<@`R`TA#Y[A(0,%!)A\D'TYU3E7_GDCG3 XM,S)^`"!L`CP>*/__<$^^@&\"+@`@!T/M_Z]@`A+84X!D^D(U>*^3R2QX``1._ XMKO[:)D!*JP"L9TP@*P"LY8`D0"PJ`#A*AF8$+"L`H$J&9S0B!D'Z`+(D"'8+L XM+&P$^$ZN_]`@1U*'(`@;O``*"*\B!D'M_Z\D""8'+&P$^$ZN_]!P_V!.2JP$R XM\&820_H`AG``+'@`!$ZN_=@I0`3P0>W_KRE(`<!(>``\2'@`^G``+P`O`$ALW XM`=Q(;`'(2&P!M$*G3KH!F$_O`"!3@&<$</]@`G``3-],S$Y=3G4J*B!5<V5RN XM($%B;W)T(%)E<75E<W1E9"`J*@``0T].5$E.544``$%"3U)4`"HJ*B!"<F5A3 XM:SH@`&EN='5I=&EO;BYL:6)R87)Y````````````````````2.<#,B9O`!@N* XM+P`<</\L>``$3J[^MBP`#`8`_V8$<`!@9G`B(CP``0`!3J[_.B1`(`IF"G``$ XM$`9.KOZP8$@E2P`*(`<50``)%7P`!``(0BH`#A5&``^3R4ZN_MHE0``0(`MG? XM"")*3J[^GF`:0>H`&"5(`!1!Z@`4)4@`'$*J`!@5?``"`"`@"DS?3,!.=0``M XM+P<N+P`(<``I0`(,2H=K(KZL`1AL'"`'YX!![`+L2K`(`&<.(`?G@$'L`NS1% XMP"`(8`AP"2E`!/1P`"X?3G4``````````'!A2.<!`G``(CP``#``+'@`!$ZN/ XM_LXN``*'```P`$J'9@1P`&`@2JP")&<8(&P")$Z02H!F!'``8`Q(>``43KH`U XM1EA/(`=,WT"`3G5AM$YU``!(YS`R+&P$\"!O`!@B;P`<)&\`("9O`"0@+P`HN XM(B\`+"0O`#`F+P`T3J[^I$S?3`Q.=0``2.<'`"XO`!`@+`$84X`L`$I&:S`@_ XM!DC`YX!![`+L*C`(`$H%9QH(!0`"9A0@!DC`YX!![`+L+S`(!$ZZ_"Q83U-&6 XM8,PO!TZZWI983TS?`.!.=0``2.<`,B9L!/P@"V<4)%,B2R`K``@L>``$3J[_& XM+B9*8.B1R"E(!0`I2`3\3-],`$YU2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z# XM)D`@"V8$<`!@.B='``A%[`3\(&H`!"=(``21R":(2I)F`B2+2JH`!&<&(FH`8 XM!"*+)4L`!$JL`1QF!"E+`1Q!ZP`,(`A,WTR`3G4``````````````````")O> XM``0O#BQI`!1.KO_B+%].=0``+PXL>0```BP@+P`(3J[^PBQ?3G4O#BQY```"J XM+")O``A.KOZ>+%].=2\.+'D```(L(F\`"$ZN_I@L7TYU+PXL>0```BP@;P`(; XM3J[^C"Q?3G4O#BQY```"+")O``A.KOZ&+%].=2\.+'D```(L(&\`"$SO`@$`P XM#"(O`!1.KOY$+%].=0``+PXL>0```BPB;P`(3J[^/BQ?3G4O#BQY```"+")O- XM``A.KOXF+%].=2\.+'D```(L(F\`""`O``Q.KOW8+%].=0```^P````!````) XM`0``%PX````1`````@``)!@``"0$```C\```(]```".\```CJ```(Y0``".`G XM```C;````W8```-<```#0@```R@```,.```",`````P````&`````````_``? XM```#7T]P96Y,:6)R87)Y```D%`````)?5V%I=$E/````)``````#7T-L;W-E+ XM1&5V:6-E```C[`````-?3W!E;D1E=FEC90```"/,`````U]297!L>4US9P``G XM````([@````"7T=E=$US9P```".D`````E]296U0;W)T```CD`````)?061D1 XM4&]R=```(WP````"7U=A:70``````"-H`````E]"96=I;DE/```C5```````: XM``/R@``#Z0```1).5?^P2.<#"$GY`````!M\``;__T*G2&P`8$ZZ`[103RE`A XM`LAF$$AL`'1.N@/"0I=.N@/(6$]"ITAL`)).N@-64$\I0`).2H!F$$AL`)9.( XMN@.>0I=.N@.D6$\9?``*`DE![?__*4@"8G`!*4`"9G``+P!(;`)`+P!(;`"P? XM3KH#9$_O`!!*@&<82&P`ODZZ`V`NK`).3KH#1D*73KH#7EA/.7P``P)<&7P`R XM$`)><`(I0`)8*7P```$(`F)P$"E``F8Y?`!``FQ![`)`0^P"A'`0(MA1R/_\= XM0J=(;`#83KH"ME!/*4`"DDJ`9B!(;`#<3KH"_DAL`D!.N@+>+JP"3DZZ`MQ"I XMETZZ`O103W`$*4`"G$AY```!"&$``>Q(;`#V2&W_N$ZZ`Q)(;?^X3KH"=$_OB XM`!!P`!`M_\=R`>&A+P%.N@+>2&W_N$ZZ`G8@0"ZH`"A(;?_:*T#_M$ZZ`NA(` XM;`$`2&W_VDZZ`D8L`'``(&W_M"%``"`A0``D+HA.N@(>3^\`%$J&9R1^`$AMK XM_]I.N@(D6$^^@&R<$#5XVG(`$@`O`6$``#I83U*'8-Y(;`)`3KH")BZL`DY.V XMN@(D+JP"DDZZ`AQ(;?^X3KH!\$AM_[A.N@)"3.T0P/^D3EU.=4CG)PA)^0``+ XM```>+P`;?`!Z`$J%9EH@!G(&3KH"1$/L```2,0@`L@=F+GH!<@!#[```,C$(G XM`G0`0^P``#0Q"`0O`B\!80``,%!/?``,A@``&UAL!%*&8/12AG`0O(!FLGH!K XM?``,A@``)Q!LIE*&8/1,WQ#D3G5(YP,(2?D`````/B\`$CPO`!8Y1P)J<``PM XM!R\`80``0CE``FXY1@*N<``P!BZ`80``,#E``K)(;`)`3KH!HDAL`H1.N@&:! XM2&P"0$ZZ`29(;`*$3KH!'D_O`!1,WQ#`3G5.5?_X2.<Q"$GY`````#XO`")P9 XM`#`'3KH!*DZZ`-A([P`#`!`@/#^3,S,B/#,S,S-,[P`,`!!.N@$6)#Q!+H2`; XM=@!.N@#43KH!,$S?$(Q.74YU3E7_]$CG,!A)^0`````F;P`D0JW_^$*M__Q,D XM[0`#__@D/$`9(?LF/%1$+1A.N@#F;E0@2U*++RW__"\M__@O2``83KH`OB0\2 XM0%_``'8`3KH`=BZ!+P!.N@#(3^\`#$ZZ`(0@;P`0$(!,[0`#__@D/#_9F9DF) XM/)F9F9E.N@",2.T``__X8)1,WQ@,3EU.=0``3OD``"$$3OD``".X3OD``"-\( XM3OD```F\3OD``!J83OD``!IT3OD``".03OD``".D3OD``"0`3OD```S@3OD`' XM`"043OD``"/L3OD``!Z(3OD``"/,3OD```DV3OD``!2D3OD```HD3OD``!T@O XM3OD```ZL3OD```9$3OD``!'L3OD```((3OD``!#L3OD``"-H3OD```?X3OD`) XM``D(3OD``"-43OD```(83OD``![H3OD``!J(```#[````!X````````$#@``% XM`^H```0F```$"```!!H```0L```#S```!`(```.H```#]@```\8```0R```$M XM/@``!!0```.Z```#M````YP```.N```$1````\````0@```#H@``!#@```/8% XM```#W@```^0```.6```#_````_````/2````!P````(```,.```"O````E@`: XM``'B````"@```1(```"T`````````_)```/J````?3```.X`IS$``4$`N3(`V XM`4$`IS,``4$`ES0``2,`N34``2,`IS8``2,`ES<``0<`N3@``0<`ISD``0<`7 XMERH``.X`N2,``.X`ET$``4$`B4(``2,`B4,``0<`B40``.X`B7)E>'AS>7-LL XM:6(N;&EB<F%R>0``0F%D($YE=W,@+2T@;F\@4D586"!L:6)R87)Y"@``<S``2 XM`$-A;B=T(&]P96X@<S`@<F5P;'D@<&]R=`H`875D:6\N9&5V:6-E``!#86XGF XM="!O<&5N($%U9&EO($1E=FEC90H``',Q``!#86XG="!O<&5N(',Q(')E<&QY% XM('!O<G0*`$1I86Q0;W)T``!#3$]310`````````````````````````````HL XM``````````````````````````````%2````````````````````````````3 XM```````````````!=```````````````````````````````````````````U XM````````````````````````````````````````````````@`````0`__\`" XM```.``X````````@K`````#__P````0`!``````````````!H/__````!``$5 XM````````(,@`````__\````$``0````````@T@````````(````#[`````,`4 XM```````!Z````=0```&L`````P````(```'$```!4@```3`````````#\@``N X*`^D````````#\M0`U X`` Xend Xsize 11440 END_OF_FILE if test 16058 -ne `wc -c <'rexxdial.uu'`; then echo shar: \"'rexxdial.uu'\" unpacked with wrong size! fi # end of 'rexxdial.uu' fi if test -f 'rexxdial_ba.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rexxdial_ba.uu'\" else echo shar: Extracting \"'rexxdial_ba.uu'\" \(13853 characters\) sed "s/^X//" >'rexxdial_ba.uu' <<'END_OF_FILE' Xbegin 664 rexxdial_back XM```#\P`````````(``````````<```#*```!,T````0```!_```!20``!6X`# XM```%````,0```^D```#*2.=^_DOO`#0D2"0`2?D`````+'@`!"E.`%HI3P!BJ XM0JP`7D?Y```#('(`(#P```"!8`(FP5'(__PF;@$4<``B/```,`!.KO[.*6L`> XMF`!62JL`K&<``5!A``*<(BP`5BQL!11.KO^@*4``5B!K`*S1R-'((F@`$-/)4 XMT\D@`G(`$ADH"28!TH'0@5J`Y8C0K``4*4``%$'L```L>``$3J[_(B)`+P`B0 XM:0`01^D`YB!$(`-@`A;84<C__!;\`"`@2B`"8`(6V%'(__Q"&RE+`'8@1"`#J XM8`(6V%'(__Q"$T7I`&PI2@`:1?K_%B+\````.28)Y(LBTD*21?H!-B`\````# XMW1+:4<C__$JL`)QG```:0>P`AB(()#P```/M+&P%%$ZN_^(I0`!R+'@`!$ZNJ XM_WPB+`"4)"P`F"@L`(@L;`443J[_=B9.2H!F```@)%\B:@`0(BP`5DZN_Z8@+ XM2BQX``1.KO\<<&A@```F)$`B7T7J_Z1!Z@!*0>@`!"`H``0A20`$(H@C0``$+ XM($`@B7``+'@`!$ZN_W8B2RQX``1.KOYB3-]_?DYU*6L`.@`F!JP```"``"9A; XM``%`1?H`\"E*`!IA``%,*4``7B\`)$`@*@`D9Q(L;`44($`B*```*4$`5DZN# XM_X(B*@`@9QHD/````^U.KO_B*4``;F<*Y8@@0"=H``@`I"!L`%XO"$AL`"(@" XM:``D*6@`!`!V3KH!"$ZY`````'``8```A````#D`````(`](YW[^*D`L>``$H XM2?D`````*4\`8F$``*Z3R2QX``1.KO[:)D`I:P`Z`"8&K````(``)B!K`(#11 XMR-'((F@`#-/)T\DI40`>(5$`#"(L`%8L;`443J[_@DAZ`(1.N0````!83R(L9 XM`!XL;`443J[_9"(L`%9.KO^F<``@+`!.9P0@0$Z03KD``!6(+'@`!")L!11.G XMKOYB3KD```1.2JP`7F<:(BP`;F<$3J[_W"QX``1.KO]\(FP`7DZN_H8N;`!B! XM3-]_?DYU0^P`>G``3J[]V"E`!11G```$3G5P9&"<0>L`7$ZN_H!!ZP!<3J[^9 XMC$YU``!.^0``!$QP80```^P````"`````0```HP```(<`````P````0````D` XM```"/`````X````#````!0```L8```*T```#(@````````/R```#Z0```3-.: XM5?^PO^P`)F4`!"I(YS,"&WP`!O__0J=(;`$`3KH$0%!/*4`#J&8F<!DB+`!R9 XM0>P!%"0()@`L;`443J[_T"(L`').KO_<0J=.N@0X6$]"ITAL`4A.N@/24$\I& XM0`,N2H!F)G`9(BP`<D'L`4PD""8`+&P%%$ZN_]`B+`!R3J[_W$*G3KH#_EA/( XM&7P`"@,I0>W__RE(`T)P`2E``T9P`"\`2&P#("\`2&P!@$ZZ`\1/[P`02H!GX XM+G`9(BP`<D'L`8XD""8`+&P%%$ZN_]`B+`!R3J[_W"\L`RY.N@.00I=.N@.B% XM6$\Y?``#`SP9?``0`SYP`BE``S@I?``````#0G`0*4`#1CE\`$`#3$'L`R!#- XM[`-D<!`BV%'(__Q"ITAL`<).N@,&4$\I0`-R2H!F-G`9(BP`<D'L`<8D""8`$ XM+&P%%$ZN_]`B+`!R3J[_W$AL`R!.N@,2+JP#+DZZ`Q!"ETZZ`R)83W`$*4`#Z XM?'`T(BP`<D'L`?HD""8`+&P%%$ZN_]`B+`!R3J[_W$AY`````&$``@9(;`)FS XM2&W_N$ZZ`R)(;?^X3KH"ED_O`!!P`!`M_\=R`>&A+P%.N@+N2&W_N$ZZ`HPKP XM0/^T($`@:``H0^W_VA+89OQ![?_:0^P"<!`8L!EF!$H`9O:0(4B`2,`L`'``> XM(&W_M"%``"`A0``D+HA.N@(N4$]*AF<H?@!![?_:(DA*&6;\4XF3R+Z);(X0N XM-7C:<@`2`"\!80``0%A/4H=@VDAL`R!.N@(N+JP#+DZZ`BPNK`-R3KH")$AM8 XM_[A.N@'X2&W_N$ZZ`D1"ETZZ`B9,[4#,_YQ.74YUO^P`)F4``<9(YR<`'B\`I XM%WP`>@!*A69:(`9R!DZZ`CY#[`"@$C$(`+('9BYZ`7(`0^P`H#(Q"`)T`$/LU XM`*`T,0@$+P(O`6$``#!03WP`#(8``!M8;`12AF#T4H9P$+R`9K)Z`7P`#(8`T XM`"<0;*92AF#T3-\`Y$YUO^P`)F4``4Y(YP,`/B\`#CPO`!(Y1P-*<``P!R\`9 XM80``0CE``TXY1@..<``P!BZ`80``,#E``Y)(;`,@3KH!FDAL`V1.N@&22&P#7 XM($ZZ`21(;`-D3KH!'$_O`!1,WP#`3G5.5?_XO^P`)F4``.A(YS$`/B\`'G``@ XM,`=.N@$@3KH`X$CO``,`#"`\/Y,S,R(\,S,S,TSO``P`#$ZZ`0PD/$$NA(!V] XM`$ZZ`-!.N@$F3-\`C$Y=3G5.5?_TO^P`)F4``)1(YS`0)F\`($*M__A"K?_\` XM3.T``__X)#Q`&2'[)CQ41"T83KH`VFY4($M2BR\M__PO+?_X+T@`%$ZZ`+(D& XM/$!?P`!V`$ZZ`'`N@2\`3KH`O$_O``Q.N@!^(&\`#!"`3.T``__X)#P_V9F9# XM)CR9F9F93KH`@$CM``/_^&"43-\(#$Y=3G4``$[Y```3S$[Y````4$[Y```0R XM_$[Y````%$[Y```&%$[Y````*$[Y````/$[Y````F$[Y```).$[Y````K$[Y+ XM````A$[Y```2F$[Y````9$[Y```%CD[Y```&?$[Y```1:$[Y```+!$[Y```"B XMG$[Y```.1$[Y````7$[Y```-1$[Y`````$[Y```$4$[Y```%8$[Y`````$[Y, XM````;$[Y```3K'!A```#[`````(````"```!B@```/@````"`````P``!)P`> XM``3`````#P````4```26```$>```!*X```20```$H@``!+0```1:```$B@``^ XM!$(```1^```$Q@``!&P```0J```$A```!#8````!````!@``!+H````)````` XM!P``!%0```1(```$,```!$X```2H```$/```!&8```1R```$8`````````/R6 XM0``#Z@````0````````````````````````#\@```^D```!_,CS_4F!P,CS^, XMJF!J,CS_$&!D<I1@8#(\_S1@6C(\_FA@5#(\_W!@3C(\_WQ@2#(\_VI@0C(\A XM_GI@/#(\_G1@-C(\_FY@,#(\_F)@*C(\_H!@)#(\_TQ@'G*(8!HR//\68!1R0 XMFF`0,CS_(F`*,CS_'&`$,CS_6$SO`P``!"`O``PO#BQY```#J$ZV$``L7TYU! XM,CS_=F#@,CS_.F#:,CS^C,CS^GF#.,CS^I&#(,CS_1F#",CS_0&"\,CS^J XM1&"V,CS_!&"P,CS^_F"J,CS^^&"D,CS^\F">,CS^[&"8,CS^X&"2,CS^AF",_ XM,CS^F&"&<H)@(#(\_RA@&C(\_V1@%#(\_E!@#G*.8`HR//\N8`0R//[F(&\`F XM!"`O``A@`/]B,CS^R&`0,CS^/F`*,CS^VF`$,CS^."`O``1@`/]$,GS^SF`0" XM,GS^PF`*,GS_7F`$,GS^DB!O``1,[P`#``@O#BQY```#J$ZVD``L7TYU3.\#+ XM`P`$P8C#B2\.+'D```.H3J[^2BQ?3G5,[P,#``3!B,.)+PXL>0```ZA.KOZ\8 XM+%].=4SO`P,`!,&(PXDO#BQY```#J$ZN_K8L7TYU3.\#`P`$P8C#B2\.+'D`O XM``.H3J[^L"Q?3G4@;P`$,CS^U&$`_J`B;P`((H%.=2`O``1RH&$`_HXB;P`(? XM(HA.=0```^P````&````!````(0```%B```!?````98```&P```!R@``````= XM``/R```#Z@```,@````````````````````!`````0```.9.^0``````````9 XM````````````````````````````````````````````````````````````` XM`````````````````````````````````````````````````````````&1O3 XM<RYL:6)R87)Y`"H````/H$1I86QE<@``````C``````````!,```[@"G,0`!$ XM00"Y,@`!00"G,P`!00"7-``!(P"Y-0`!(P"G-@`!(P"7-P`!!P"Y.``!!P"G" XM.0`!!P"7*@``[@"Y(P``[@"700`!00")0@`!(P")0P`!!P")1```[@")<F5XJ XM>'-Y<VQI8BYL:6)R87)Y``!#86X@;F]T(&]P96X@4D586"!L:6)R87)Y`$-AF XM;B!N;W0@;W!E;B!215A8(&QI8G)A<GD`<S```$-A;B!N;W0@;W!E;B!-97-S= XM86=E(%!O<G0`0V%N(&YO="!O<&5N($UE<W-A9V4@4&]R=`!A=61I;RYD979I9 XM8V4``$-A;B!N;W0@;W!E;B!!=61I;R!$979I8V4`0V%N(&YO="!O<&5N($%U* XM9&EO($1E=FEC90!S,0``0V%N(&YO="!O<&5N($UE<W-A9V4@4&]R=`!#86X@! XM;F]T(&]P96X@365S<V%G92!0;W)T``I496QE<&AO;F4@1&EA;&5R(%9E<G-I5 XM;VX@,2XP(&)Y($%R=&AU<B!V86X@4F]O:6IE;@H```I496QE<&AO;F4@1&EA> XM;&5R(%9E<G-I;VX@,2XP(&)Y($%R=&AU<B!V86X@4F]O:6IE;@H``$1I86Q0X XM;W)T``!#3$]310```````"@```*>````````````````````````````````3 XM```````````"P```````````````````````````````````````````````" XM`````````````````````````````````````````/__````#@`.````````: XM````````__\````$``0````````3<@```N3__P````0`!````````!.(````2 XM`````^P````$````!````P@```*>```"?````)0````"````!0```Q@```,$= XM`````````_(```/I```%;DY5_\!(YP,`+B\`8"PO`&1,[0`#`!`D/$'Y(?8F' XM/+H```!.N@T@;3!*AF<&0?H"9F`$0?H"9'``<@`O`2\`+P$O`"\M``PO+0`(9 XM+PA(>``!3KH$KF```C1,[0`#`!`D/#_47S`F/&W)R().N@C,2&W_T"\!+P!.% XMN@+D3^\`#"0\/^```'8`3KH,O&T83.T``__0)#P_\```=@!.N@VH2.T``__0( XM3.T``__03KH$X@@```!G!`A'``!*AF<83.T``__0)#P_X```=@!.N@V&2.T`: XM`__0+RT`#"\M``A.N@)22&W_X"\!+P!.N@)R2.T``__83.T``__0)#Q`"2(`. XM=@!.N@@V2.\``P`<3.T``__@3.\`#``<3KH-.DSM``S_V$ZZ#2)([P`#`!Q,4 XM[0`#_]`D/+[BKN\F/$N>Y9U.N@?Z2.\``P`D3.\``P`<3.\`#``D3KH,_BZ!6 XM+P!([0`#__A.N@'.3^\`&"0\/>__^B8\,]710TZZ"\YO``#V3.T``__X)``F1 XM`4ZZ![`D/#SH@/\F/&F3WY1([0`#__!.N@>:)#P]:N0@)CS<"$F;3KH,I$SM* XM``S_\$ZZ!X`D/#WF$CPF/&AJU"].N@Q\3.T`#/_P3KH'9B0\/EKF128\2UW`X XMJTZZ#'!,[0`,__!.N@=,)#P^QQWC)CRE)/!B3KH,2$SM``S_\$ZZ!S(D/#\JZ XM`:`F/!H!/AI.N@P\3.T`#/_P3KH'&"0\/X$1$28\$1$0L$ZZ#!1,[0`,__!.1 XMN@;^)#P_Q555)CQ555543KH,"$SM``S_\$ZZ!N1,[0`,__A([0`#_^A.N@;4` XM3KH+W$CM``/_^$J'9Q!,[0`#__A.N@:P2.T``__X3.T``__X3.T`P/^X3EU.B XM=6-O<P!S:6X`3E4``"\"3.T``P`(=`!V`$ZZ"I9L(DSM``,`"$ZZ!G)"ITAXI XM``$O`2\`+RT`#"\M``AA`/TP8!IP`"\`+P`B+0`()"T`#"\"+P$O`B\!80#]6 XM%"0M__Q.74YU3E4``"\M``PO+0`(3KH`+"0\/_DA^R8\5$0M&$ZZ"S!(>``!H XM0J<O`2\`+RT`#"\M``AA`/S63EU.=4Y5``!,[0`#``AT`'8`3KH*!&T*("T`@ XM""(M``Q@"DSM``,`"$ZZ!=9.74YU2.<_`$SO``,`'&$``!`@;P`D2-``P$S?1 XM`/Q.=2P`+@$J`$A%.`4"17_P#$5#,&T``"X"1'__#$1_\&T```QN```22H%F0 XM```,`H"`````<@!.=4A`3KH#RBP`+@%.=38%!$,_\&P```P"AH````!^`$YUP XM+``N`0)$@`#H0P1#`!1L```:1$-T_^>JS()^`+V`9P``%`1%`!!.^@06=/_F0 XMJG``PH*SATJ!9P``"@1%`!!.^@/^,`1(0$YU```O"R9O``@@$PR``````F<(\ XM#(`````!9@AP(2E`!1!@!G`B*4`%$'``)E].=0```````'!A3G5.=4Y5``!,^ XM[0`#``AT`'8`3KH(Y&P83.T``P`(3KH$P"\!+P!A```B3KH$M&`62&T`""\M; XM``PO+0`(3KK^TDSM``,`"$Y=3G5.50``3.T``P`(=`!V`$ZZ")YL%DSM``,`W XM"$ZZ!'HO`2\`899.N@1P8#Q(;0`(+RT`#"\M``A.NOZ.3^\`#'0`=@!.N@AJ' XM;QA,[0`#``@D/#_P``!V`$ZZ"59([0`#``A,[0`#``A.74YU3E4``$CG`1`NZ XM+P`0)F\`%"E'`ZPI2P.P*6T`$`.T*6T`%`.X*6T`&`.\*6T`'`/`*6T`(`/$/ XM*6T`)`/(2&P#K$ZZ_M983TJ`9PA,[``#`\1@!DSM``,`($S?"(!.74YU2.<PH XM`';_)`!J```X#("_\```90``7DCGP,!(>0````).N@5.6$],WP,#8```1DCGS XM,``F/'____\D`&H```92@[>`2$`T``)"?_"U0`1"/_!M```@"D``$$A`Z$($D XM0@`4;@``,$1"Y*A*@FL``#Y@```\<`!@```V2.?`P$AY`````DZZ!.Q83TS?9 XM`P,@`V```!P,0@`+;N"S@.6XY:FS@+"#8M1*@FH```1$@$S?``Q.=0``(@!(H XM00)!?_\,00"`;0``)`Q!?X!L```^YH`"@(____\&@#@```!(00*!````!^:9: XM3G5*@6?Z2.<\`$A`.``"1(``.CPYT'``2$%.N@&L3-\`/$YUYH``@'_P``!(4 XM00*!````!^:93G4O!DJ`9P``C'P`8```%"`O``0O!BP`9P``>FH```1$@`R`" XM`0```&4``&(\/$J`#("`````90``"@:&```$`."(#(`(````90``"@:&```". XM`.B(#(`"````90``"@:&```!`.2(#(`!````90``"`9&`(#BB'(`T8%(0-!&X XM2$8"1H``O4!(0&````H\/$L`3KH!G"P?3G4``'``(@"Y0$A`3G5(Y\#`2'D`! XM```!3KH#IEA/3-\#`W``<@"Y0$A`3G5(Y\#`2'D````"3KH#B%A/3-\#`R`\I XM``!_\+E`<@!(0$YU2.?`P$AY````!$ZZ`V983TS?`P,@/'_Q``!R`$YU"```K XM`V<``!Y(Y\#`2'D````$3KH#0%A/3-\#`PB```,(P``!`$!_\$A`3G5(0$A$! XM>A`,@````"!L```62$!(03`!0D$$10$`#(`````@;>Q"1`R````@`&P```;A1 XMB%!$2$!*0&8```;IF%A$?`!#^@`^'#$``.VXV$9(0"P!Z:GIOK-&O4#I3)I$U XM2$!(1$YU#(`````@;```-DA`2$$P`4)!!$4!`&P`_^A@``!F!00#`P("`@(!E XM`0$!`0$!`0````````````````````!V``R````@`&P```;AB%!#2$!*0&8`/ XM``;IF%A#=``4.P#`Y;C60DA`)`'GJ>>ZLT*U0.E+FD-M```,2$#018!$2$!.C XM=41%Z$TD`.JHZKKJJ;&"M8%(0+E`2$!.=0``#(````$`;```"@1&"`!@```0: XM2$!*0&8```CAF`1&!``,0``0;```".F8!$8"``Q``$!L```(Y9@$1@$`2@!KA XM```(XY@$1@"`2$!*1FP``!)$1NY.[*C<AN*0<@#1@4YU2D9G```62$`*0`"`W XMO4!(1@)&@`"]0$A`3G52@-R&XI!.=0``+P"#GV<$"$``'TYU2.<_0&$```A,- XMWP+\3G4\/(``/CQ_\$A`2$(X`,A&N4#,0KU"O42P1VT``$ZP0FT``"P,@```I XM?_!F```(2H%G```&3OK^`+1';0``&@R"``!_\&8```A*@V<```H@`B(#3OK]2 XMXDJ"9@``#$J#9@``!D[Z_;1.^OVBM$=M```N#((``'_P9@``"$J#9P``"B`": XM(@-.^OVP2H!F```,2H%F```&3OK]@D[Z_7`Z`,I'9@``&DJ`9@``#$J!9@``! XM!D[Z_1Q.NOVL8```"+M`"D``$,Y"9@``)DJ"9@``#$J#9@``!D[Z_/C!0L-#M XMRT=.NOV"P4+#0\M'8```"+]"`$(`$`1%/_#:1V@```9.^OSX2$`N`>&(X8GA= XMG[-'OT!(0BX#X8KAB^&?MT>_0BX`2$?.PRP"2$;,P=Z&0D??1TA'2$$L`<S"F XM0D9(1MZ&2$,L`\S`0D9(1MZ&2$!(0BP`S,+&P-Z#=@#=@\+"WH'=@R(`2$$F7 XM`DA#P,/$P=&")`!"0-%`2$!(0D)"WH+1AL+#TH=T`-&"3OH"]```+P<N+P`(J XM*4<`/DJL`$)G%#!\``$B;`!"L\AG"$AX``A.D5A/+A].=0``````````````F XM`$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`S$*]0KU$L$=M``!P7 XML$)M```L#(```'_P9@``"$J!9P``!D[Z_#2T1VT``!X,@@``?_!F```(2H-G) XM```*(`(B`T[Z_!9.^OOT2H)F```J2H-F```D2.?`P$AY`````TZZ_TQ83TS?M XM`P,@/```?_"Y0'(`2$!.=4[Z^[2T1VT``!X,@@``?_!F```(2H-G```*(`(BQ XM`T[Z^\).^OM6.@#*1V8``"I*@&8``!Q*@68``!9*@F8```Q*@V8```9.^OM\% XM3OK[+DZZ^[Y@```(NT`*0``0SD)F```F2H)F```,2H-F```&8`#_;L%"PT/+C XM1TZZ^Y3!0L-#RT=@```(OT(*0@`0!$<_X)I':```!D[Z^PI(0"X!Z8CIB>F?F XMLT>_0$A"+@-\"^VJ[:OMO[='OT)(1#@%(D1(0H#".`!(03`!0D%(0CH"RL1(A XM0SP#S,1(0SX#SL1(1]Y&2$="1DA&W862AY&&9```"%-$TH/1@D)#2$0L`$A", XM@,)H```80D0@!I*#2$*1@DA`2$$P`4)!8```*C@`2$$P`4)!2$(\`LS$+@-(U XM1\[$2$?<1TA&0D?=1TA&DH>1AF0``!)31-*#T8)E```(4T32@]&"+`!(0H#"= XM:```%$)%(`9(0I!"2$!(03`!8```%#H`2$$P`4A"/`+,Q9"&9```#E-%T()E? XM```&4T70@DA%2$*`PF@```1P_SH`(`0B!2@).@1(1$[Z`(```$J`:P``.$J"E XM:@``($J`9@``9DJ!9@``8$J#9@``6@R"@````&8``%!.=;""9@``#+:!90``% XM0F8``#A.=4J":P``'F8``"Q*@V8``"9*@68``"`,@(````!F```63G6T@&8`9 XM``RR@V4```YF```$3G5$_``(3G5$_```3G4,@`(```!M```0XHCBD4I%;```2 XM3&````H$10`0;```0$1%Z$U810Q%`#EO```.3OKY+C(`0D!(0$A!!$4`$&[R* XM!D4`$"0`ZJCJNNJIL8*U@70`TX+1@DA`N4!(0$YU)`#HB.B:Z(FQ@K6!=`#30 XM@M&"2$#010Q`?_!E!$[Z^0"Y0$A`3G5(YS]`80``&DS?`OQ.=4CG/T!A```(' XM3-\"_$YU"$(`'TA`2$(\/(``/CQ_\#@`R$:Y0#H`RD>[0,Q"O4+.0K]"ND=F2 XM``#@#$5_\&8``"JP0FT``!(N`(Z!9@``#BX"CH-G```*(`(B`T[Z^,Z\1&<`` XM`'Y.^OBF2D5F``!$2$!F```H2H%F```B2$)F```.2H-F```(R$9.^O@X(`(B) XM`TA`O4"_0$A`3G5(0F8``!Y*@V8``!A(0+E`NT!(0$YU?A":1[]`OT)(0$A"S XMO$1G```DDH-F```*D8)F```&3G61@FH```A$@4"`.`9.^OC<3OKX'-*#T8(,& XM@``@``!M```4XHCBD7X`TX?1AP9%`!`,17_@90``!D[Z]^!(0-!%@$1(0$YUO XM;@``"L%"PT/)1LM'#$5_\&<``#!*1V8``#Y(0F8``!!*@V8```JY0+M`2$!.U XM==:#U8)*168``"9(0-*!T8!@```B2H!F```,2H%F```&3OKWF$[Z]\`*0@`03 XM2$(*0``02$">149'Z$<$10`@#$<`-&X``![2@=&`#$<`(&\``"`F`G0`!$<`4 XM(.ZK=`!@```T!D4`$$A`T$6`1$A`3G4,1P`0;P``#C8"2$-"0DA"!$<`$")&\ XM+`+NJNZ^[JNUAKV#+`F\1&8``#S2@]&"!D4`$.*(XI$,@``@``!M```*!D4`K XM$.*(XI%^`-.'T8=(0-!%#$5_\&0```B`1$A`3G5.^O;4GX>3@Y&"#(``(```" XM;0#^MD2'TH=^`-&'XHCBD09%`!!(0-!%@$1(0$YU2.<',"XO`!@F;P`<+"\`F XM("\'3KH#M%A/)$`@"F8$</]@-@@J``,``V<02'@``D*G+P=.N@!03^\`#"\&@ XM+PLO*@`$3KH`[$_O``PJ`$JL`#IG!'#_8`(@!4S?#.!.=0``````````<&$NI XM;`!B3KH!]DAY````%$ZZ`%P``````````'!A2.</$"XO`!@L+P`<*B\`("\'` XM3KH#,%A/)D`@"V8$</]@'B\%+P8O*P`$3KH`V$_O``PH`$JL`#IG!'#_8`(@O XM!$S?"/!.=0``````````<&%(YP,0+B\`$$?L`GP@"V<T""L``@`;9B@(*P`!S XM`!MG("`K``20JP`0+`!*AF<2+P8O*P`0+RL`'$ZZ_O)/[P`,)E-@R"\'3KH#J XM?%A/3-\(P$YU``````````!P84CG-Q`N+P`<)F\`("PO`"1*K`!29P1.N@+,6 XM0JP`.B(')`LF!BQL!11.KO_0*@!P_[J`9@Y.KO]\*4``.G`%*4`%$"`%3-\(4 XM[$YU``````````````````!(YS\`+B\`'"PO`"`J+P`D2JP`4F<$3KH"=$*LM XM`#H@!5.`(@<D!B8`+&P%%$ZN_[XH`'#_N(!F#DZN_WPI0``Z<!8I0`40(`4,G XM@`````)G%@R``````6<(2H!F&"`&8!0@!-"&8`XB!W0`=@`L;`443J[_ODS?M XM`/Q.=0``2.<`$B9O``Q*JP`*9PHB2RQX``1.KOZ8%WP`_P`(</\G0``4<``0\ XM*P`/+'@`!$ZN_K`B2W`B3J[_+DS?2`!.=2\'+B\`"$JL`%)G!$ZZ`<(B!RQL$ XM!11.KO_<<``N'TYU3E7_L"\.2JP%#&820_H`B'``+'@`!$ZN_=@I0`4,<``@V XM;`!V$"C__T/M_[!@`A+84X!D^G``(&P`=A`H__]"-0BP0>W_L"E(`O!(>``HS XM2'@`^G``+P`O`$AL`PQR`"\!2&P"^"\!3KH!F$AX`!1.N@'$+&W_K$Y=3G4JI XM*B!3=&%C:R!/=F5R9FQO=R`J*@``15A)5```:6YT=6ET:6]N+FQI8G)A<GD`H XM````````````````2.<P`"0`)@%(0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5($ XMYP,R)F\`&"XO`!QP_RQX``1.KOZV+``,!@#_9@1P`&!F<"(B/``!``%.KO\Z- XM)$`@"F8*<``0!DZN_K!@2"5+``H@!Q5```D5?``$``A"*@`.%48`#Y/)3J[^L XMVB5``!`@"V<((DI.KOZ>8!I!Z@`8)4@`%$'J`!0E2``<0JH`&!5\``(`("`*4 XM3-],P$YU```O!RXO``AP`"E``#I*AVLBOJP">&P<(`?G@$'L`\Q*L`@`9PX@3 XM!^>`0>P#S-'`(`A@"'`)*4`%$'``+A].=0``````````````````2.<!`G``D XM(CP``#``+'@`!$ZN_LXN``*'```P`$J'9@1P`&`@2JP`4F<8(&P`4DZ02H!F# XM!'``8`Q(>``43KH`1EA/(`=,WT"`3G5AM$YU``!(YS`R+&P%#"!O`!@B;P`<D XM)&\`("9O`"0@+P`H(B\`+"0O`#`F+P`T3J[^I$S?3`Q.=0``2.<'`"XO`!`@3 XM+`)X4X`L`$I&:S`@!DC`YX!![`/,*C`(`$H%9QH(!0`"9A0@!DC`YX!![`/,M XM+S`(!$ZZ_7!83U-&8,PO!TZZ``Q83TS?`.!.=0``3OD````8<&%(YP`R)FP%S XM&"`+9Q0D4R)+("L`""QX``1.KO\N)DI@Z)'(*4@%'"E(!1A,WTP`3G4```/L@ XM`````0````0``!6"`````````_(```/I````!2)O``0O#BQI`!1.KO_B+%].S XM=0`````#\`````)?0F5G:6Y)3P`````````````#\@```^D````Q+PXL>0``Z XM`%H@+P`(3J[^PBQ?3G4O#BQY````6B)O``A.KOZ>+%].=2\.+'D```!:(F\`# XM"$ZN_I@L7TYU+PXL>0```%H@;P`(3J[^C"Q?3G4O#BQY````6B)O``A.KOZ&D XM+%].=2\.+'D```!:(&\`"$SO`@$`#"(O`!1.KOY$+%].=0``+PXL>0```%HBZ XM;P`(3J[^/BQ?3G4O#BQY````6B)O``A.KOXF+%].=2\.+'D```!:(F\`""`OD XM``Q.KOW8+%].=0```^P````)````!````+````"<````B````&@```!4````W XM0````"P````8````!`````````/P`````U]/<&5N3&EB<F%R>0```*P````"R XM7U=A:71)3P````"8`````U]#;&]S941E=FEC90```(0````#7T]P96Y$979I, XM8V4`````9`````-?4F5P;'E-<V<```````!0`````E]'971-<V<`````/```U XM``)?4F5M4&]R=````"@````"7T%D9%!O<G0````4`````E]786ET````````K X)``````````/RU X`` Xend Xsize 9864 END_OF_FILE if test 13853 -ne `wc -c <'rexxdial_ba.uu'`; then echo shar: \"'rexxdial_ba.uu'\" unpacked with wrong size! fi # end of 'rexxdial_ba.uu' fi if test -f 'rexxdial_back.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rexxdial_back.c'\" else echo shar: Extracting \"'rexxdial_back.c'\" \(6315 characters\) sed "s/^X//" >'rexxdial_back.c' <<'END_OF_FILE' X/* X * This program can dial a telephone number by producing the telephone tones X * You can use it by holding the telephone receiver next to the right speaker. X * X * The program uses the frequencies specified by the CCITT V.19 X * recommendation X * X * Usage: rexxdial X * Send numbers from within an ARexx program to the 'DialPort' port using X * the "address 'DialPort' telephonenumber" instruction. X * Sending the 'CLOSE' command will stop the program. X * X * This program can be used by eg: VLT and SuperBase Proffesional X * X * Author : Arthur van Rooijen 15-April-1990 X * X * Note: This program is only tested in the Netherlands at the moment X * X * Compile: lc rexxdial.c X * Link : blink FROM LIB:cback.o+"rexxdial.o"+LIB:rexxglue.o X * TO "rexxdial" X * LIB LIB:lcm.lib X * LIB:lc.lib LIB:amiga.lib X * BATCH X */ X X#include <stdio.h> X#include <math.h> X#include <string.h> X#include <exec/types.h> X#include <exec/memory.h> X#include <hardware/custom.h> X#include <hardware/dmabits.h> X#include <libraries/dos.h> X#include <proto/dos.h> X#include <devices/audio.h> X X#include <rexx/storage.h> X#include <rexx/rxslib.h> X X#define BANNER "\nTelephone Dialer Version 1.0 by Arthur van Rooijen\n" X#define NOREXX "Can not open REXX library" X#define CNTCREPORT "Can not open Message Port" X#define CNTOPAUDIO "Can not open Audio Device" X Xextern struct MsgPort *CreatePort(); X Xvoid sound(UWORD per1, UWORD per2); Xvoid dial(UBYTE digit); XUWORD duration(UWORD frek); Xvoid fill_wave(BYTE *data); X Xlong _stack = 4000; Xchar *_procname = "Dialer"; Xlong _priority = 0; Xlong _BackGroundIO = 1; Xextern BPTR _Backstdout; X XBYTE chip wave1[16]; X X/* X * Frequencies specified by CCITT V.19 X * X * B1=1209 Hz B2=1336 Hz B3=1477 Hz B4=1633 Hz X * A1=697 Hz 1 2 3 A X * A2=770 Hz 4 5 6 B X * A3=852 Hz 7 8 9 C X * A4=941 Hz * 0 # D X * X * The periods are calculated by the next formula: X * period = 3579545 / ( 16 * frequency) X */ Xstruct { UBYTE key; X UWORD per1, X per2; X}table[]={{'0',238,167}, X {'1',321,185}, X {'2',321,167}, X {'3',321,151}, X {'4',291,185}, X {'5',291,167}, X {'6',291,151}, X {'7',263,185}, X {'8',263,167}, X {'9',263,151}, X {'*',238,185}, X {'#',238,151}, X {'A',321,137}, X {'B',291,137}, X {'C',263,137}, X {'D',238,137}}; X Xstruct IOAudio s0,s1; Xstruct RexxLib *RexxSysBase; X X Xvoid _main() X{ X UBYTE sunit=0x06; X int i; X char number[32]; X X struct MsgPort MyPort; X struct RexxMsg *rmptr; X LONG test; X X X RexxSysBase = (struct RexxLib *)OpenLibrary("rexxsyslib.library",0L); X if (RexxSysBase == NULL) { X Write(_Backstdout,NOREXX,strlen(NOREXX)); X Close(_Backstdout); X exit(0L); X } X X /* X * Open the audio device and create 2 channels for the right X * speaker X */ X if((s0.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s0",0L))==NULL){ X Write(_Backstdout,CNTCREPORT,strlen(CNTCREPORT)); X Close(_Backstdout); X exit(0L); X } X X s0.ioa_Request.io_Message.mn_Node.ln_Pri=10; X s0.ioa_Data=&sunit; X s0.ioa_Length=(ULONG)sizeof(sunit); X X if((OpenDevice(AUDIONAME,0L,&s0,0L))!=NULL){ X Write(_Backstdout,CNTOPAUDIO,strlen(CNTOPAUDIO)); X Close(_Backstdout); X DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort); X exit(0L); X } X X s0.ioa_Request.io_Command=CMD_WRITE; X s0.ioa_Request.io_Flags=ADIOF_PERVOL; X s0.ioa_Request.io_Unit=(struct Unit *)0x02; X s0.ioa_Data=(UBYTE *)wave1; X s0.ioa_Length=sizeof(wave1); X s0.ioa_Volume=64; X X s1=s0; X if((s1.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s1",0L))==NULL){ X Write(_Backstdout,CNTCREPORT,strlen(CNTCREPORT)); X Close(_Backstdout); X CloseDevice(&s0); X DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort); X exit(0L); X } X s1.ioa_Request.io_Unit=(struct Unit *)0x04; X X /* X * Write BANNER and close output filehandler to allow window to X * close X */ X Write(_Backstdout,BANNER,strlen(BANNER)); X Close(_Backstdout); X X /* X * Create a SIN wave of 16 samples in chip memory X */ X fill_wave(wave1); X X /* X * Create a message port for the rexx interface and make it public X */ X InitPort(&MyPort,"DialPort"); X AddPort(&MyPort); X X X for (;;) { X /* X * Wait for telephone numbers X */ X Wait(1<<MyPort.mp_SigBit); X rmptr = (struct RexxMsg *) GetMsg(&MyPort); X X /* X * See whether it's the close command X */ X strcpy(number,rmptr->rm_Args[0]); X test = strcmp(number,"CLOSE"); X X /* X * Send a return code X */ X rmptr->rm_Result1 = 0; X rmptr->rm_Result2 = 0; X ReplyMsg(rmptr); X X /* X * Stop if close command was send X */ X if (test == 0) break; X X /* X * Dial number X */ X for(i=0;i<strlen(number);i++){ X dial(number[i]); X } X X } X X /* X * Clean up everything X */ X CloseDevice(&s0); X DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort); X DeletePort(s1.ioa_Request.io_Message.mn_ReplyPort); X X RemPort(&MyPort); X FreePort(&MyPort); X exit(0L); X} X X/* X * Produce the right frequencies for a key X * create a pause after the tone and for an unknown key X * The keys are : 0 1 2 3 4 5 6 7 8 9 * # A B C D X */ Xvoid dial(UBYTE key) X{ X int i=0, X found=0; X X while(!found){ X if (table[i].key==key){ X found=1; X sound(table[i].per1,table[i].per2); X for (i=0;i<7000;i++); X } X if(++i==16){ X found=1; X for (i=0;i<10000;i++); X } X } X} X X X/* X * Produce two tones off the same length on the right channel X */ Xvoid sound(UWORD per1, X UWORD per2) X{ X X s0.ioa_Period=per1; X s0.ioa_Cycles=duration(per1); X X s1.ioa_Period=per2; X s1.ioa_Cycles=duration(per2); X X BeginIO(&s0); X BeginIO(&s1); X WaitIO(&s0); X WaitIO(&s1); X X} X X/* X * Calculate the cycles to produce a tone with frequency freq and a X * length of 0.3 seconds X */ XUWORD duration(UWORD freq) X{ X return (UWORD)((0.3/16.0/(float)freq)*1e6); X} X X/* X * Create a SIN wave of 16 samples X */ Xvoid fill_wave(BYTE *data) X{ X double x; X X for (x=0;x<=PI*2;x+=.4){ X *(data++)=(BYTE)floor(127*sin(x)); X } X} END_OF_FILE if test 6315 -ne `wc -c <'rexxdial_back.c'`; then echo shar: \"'rexxdial_back.c'\" unpacked with wrong size! fi # end of 'rexxdial_back.c' fi if test -f 'rexxglue.o.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rexxglue.o.uu'\" else echo shar: Extracting \"'rexxglue.o.uu'\" \(2420 characters\) sed "s/^X//" >'rexxglue.o.uu' <<'END_OF_FILE' Xbegin 664 rexxglue.o XM```#YP````````/I````?S(\_U)@<#(\_JI@:C(\_Q!@9'*48&`R//\T8%HR8 XM//YH8%0R//]P8$XR//]\8$@R//]J8$(R//YZ8#PR//YT8#8R//YN8#`R//YB; XM8"HR//Z`8"0R//],8!YRB&`:,CS_%F`4<II@$#(\_R)@"C(\_QQ@!#(\_UA,/ XM[P,```0@+P`,+PXL>0````!.MA``+%].=3(\_W9@X#(\_SI@VC(\_HQ@U#(\S XM_IY@SC(\_J1@R#(\_T9@PC(\_T!@O#(\_D1@MC(\_P1@L#(\_OY@JC(\_OA@? XMI#(\_O)@GC(\_NQ@F#(\_N!@DC(\_H9@C#(\_IA@AG*"8"`R//\H8!HR//]DJ XM8!0R//Y08`YRCF`*,CS_+F`$,CS^YB!O``0@+P`(8`#_8C(\_LA@$#(\_CY@R XM"C(\_MI@!#(\_C@@+P`$8`#_1#)\_LY@$#)\_L)@"C)\_UY@!#)\_I(@;P`$0 XM3.\``P`(+PXL>0````!.MI``+%].=4SO`P,`!,&(PXDO#BQY`````$ZN_DHLV XM7TYU3.\#`P`$P8C#B2\.+'D`````3J[^O"Q?3G5,[P,#``3!B,.)+PXL>0``> XM``!.KOZV+%].=4SO`P,`!,&(PXDO#BQY`````$ZN_K`L7TYU(&\`!#(\_M1AF XM`/Z@(F\`""*!3G4@+P`$<J!A`/Z.(F\`""*(3G4```/O`0```U]%<G)O<DUS4 XM9P```````>H!```"7T-683)I``````'6`0```E]/<&5N1@`````!O`$```)?Y XM0U9X,F,``````:(!```"7T-68S)X``````&(`0```U]!9&1#;&EP3F]D90``4 XM`6X!```"7U-E96M&``````%0`0```U]&:6QL4F5X>$US9P```4H!```"7T-6N XM:3)A>@````%$`0```E]#5FDR80`````!/@$```1?56YL;V-K4F5X>$)A<V4`C XM```!,@$```)?5&]5<'!E<@```2P!```$7TQO8VM297AX0F%S90```````28!( XM```"7T-6:3)A<F<```$@`0```U]3=')F;&EP3@```````1`!```#7TQI<W1.C XM86UE<P`````!"@$```-?1V5T4W!A8V4```````$&`0```U]&:6YD1&5V:6-E; XM`````0`!```$7T-L96%R4F5X>$US9P```````/H!```#7T-L96%R365M````] XM````]`$```1?0W)E871E07)G<W1R:6YG````\`$```)?5W)I=&5&`````.H!K XM```"7U-T86-K1@````#D`0```E]3=')L96X`````W@$```)?4W1R8W!Y50``U XM`-@!```"7U-T<F-P>4X```#2`0```E]3=')C<'E!````S`$```)?4W1R8VUPN XM50```,8!```"7U-T<F-M<$X```#``0```U]296U#;&EP3F]D90```+H!```#7 XM7U)E;5)S<F-.;V1E````M`$```-?4F5M4G-R8TQI<W0```"N`0```E]296%D@ XM4W1R````J`$```)?4F5A9$8``````*(!```"7U%U975E1@````"<`0``!%]/C XM<&5N4'5B;&EC4&]R=`````"6`0``!%],96YG=&A!<F=S=')I;F<```"0`0``E XM`U])<U)E>'A-<V<``````'(!```#7TEN:710;W)T````````;`$```-?26YII XM=$QI<W0```````!F`0```U])<U-Y;6)O;````````&(!```#7T9R9650;W)TW XM````````7`$```-?1G)E95-P86-E``````!8`0``!%]&:6YD4G-R8TYO9&4`* XM``````!2`0```E]%>&ES=$8`````3`$```1?1&5L971E1$]34&MT````````? XM1@$```-?1$]35W)I=&4```````!``0```E]$3U-296%D````.@$```-?1$]3A XM0V]M;6%N9``````T`0``!%]$96QE=&5297AX37-G```````N`0``!%]$96QE$ XM=&5!<F=S=')I;F<````H`0``!%]#<F5A=&5297AX37-G```````B`0``!%]#! XM<F5A=&5$3U-0:W0````````<`0``!%]#;&]S95!U8FQI8U!O<G0````6`0``W XM`U]#=7)R96YT16YV`````!(!```#7T-M<%-T<FEN9P``````#`$```)?0VQO& XM<V5&``````8!```#7T%D9%)S<F-.;V1E`````($```-?4F5X>%-Y<T)A<V4`T XC```&```!R@```;````&6```!?````6(```"$`````````_)XJ X`` Xend Xsize 1700 END_OF_FILE if test 2420 -ne `wc -c <'rexxglue.o.uu'`; then echo shar: \"'rexxglue.o.uu'\" unpacked with wrong size! fi # end of 'rexxglue.o.uu' fi echo shar: End of archive 1 \(of 1\). cp /dev/null ark1isdone MISSING="" for I in 1 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have the archive. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@cs.odu.edu>. Mail comments to the moderator at <amiga-request@cs.odu.edu>. Post requests for sources, and general discussion to comp.sys.amiga.