#!/bin/sh
########################################################
# This is a shell archive  --- shark 0.1.1 ---         #
# Please remove any lines before this header and       #
# run     sh this-file-name     to extract all files.  #
# 1994 (C) Fernando J G Pereira - fjp@minerva.inesc.pt #
########################################################
echo unsharking mercuryServer.java
cat > mercuryServer.java << '\\__END__OF__mercuryServer.java__FILE\\'
import java.net.*;
import java.io.*;

class mercuryServer {
  public static void main(String argv[]) {
    ServerSocket serverSocket = null;
    String filename;
 
    int port=5432;
    int i=0;
    while (i < argv.length) {
       if (argv[i].equalsIgnoreCase("-p")){
         i++; port = Integer.parseInt(argv[i]); i++;
      } else {
         i++;
      }
    } 
   try {
      serverSocket = new ServerSocket(port);
    } catch (IOException e) {
      System.out.println("Could not listen on port: " + port + ", " + e);
      System.exit(1);
    }
    System.out.println("Starting MERCURY on port "+port);

    while(!(serverSocket==null)) {

    Socket clientSocket = null;
    try {
      System.out.println("Accepting connections.");
      clientSocket = serverSocket.accept();   // pass the socket to a copy
    } catch (IOException e) {
      System.out.println("Accept failed: " + port + ", " + e);
      System.exit(1);
    }

    mercuryThread connection; 
    connection = new mercuryThread(clientSocket);
    connection.start();
//    try {
//      serverSocket.close();                   // be ready for next read.
//    } catch (IOException e) {;}
  }
}
}
\\__END__OF__mercuryServer.java__FILE\\
chmod 644 mercuryServer.java
echo unsharking mercuryThread.java
cat > mercuryThread.java << '\\__END__OF__mercuryThread.java__FILE\\'
import java.net.*;
import java.io.*;
import java.awt.*;

public class mercuryThread extends Thread {
private Socket clientSocket;

// ----------------------------------------------------------- constructor 
   public mercuryThread(Socket cS){
     clientSocket = cS;
   }
     
// ----------------------------------------------------------- run
   public void run(){
    try {
      DataInputStream is = 
	new DataInputStream(clientSocket.getInputStream());
      //DataOutputStream dos = 
      //new DataOutputStream(clientSocket.getOutputStream());
      //PrintStream os = new PrintStream(
      //new BufferedOutputStream(dos, 1024), false);
//                                              Create a connection thread.
      //netProtocol flip = new netProtocol();
      
      String inputLine, outputLine;
      String user=null, computer, port, msg;

      computer = clientSocket.toString();
      port = new String();
      port.valueOf(clientSocket.getPort());

      System.out.println("Received Request from "+clientSocket.toString());
      byte[] buffer=null;

      while ((inputLine = is.readLine()) != null) {
	if (inputLine.equalsIgnoreCase("USER")) {
	  try {
	    user = is.readLine();
	  } catch (IOException e) {
	    e.printStackTrace();
	  } 	  
	} else if (inputLine.equalsIgnoreCase("MSG")     ) {
	  int size = 0;
	  try {
	    size = is.readInt();
	  } catch (IOException e) {
	    e.printStackTrace();
	  }
	  buffer= new byte[size];
	  try {
	    is.readFully(buffer,0,size);
	  } catch (IOException e) {
	    e.printStackTrace();
	    System.out.println("Screwup in receiving data");
	  }
	}
      }
    
      System.out.println("mercury closing the connection."); 
      //      os.close();
      is.close();
      clientSocket.close();
      Frame f = new recvFrame(user, computer, port, new String(buffer,0));
      //f.dispose();
    } catch (IOException e) {
      e.printStackTrace();
      System.out.println("IOException");
    }
    try {
      clientSocket.close();
    } catch(IOException e) {
      e.printStackTrace();
    }
   }
}

\\__END__OF__mercuryThread.java__FILE\\
chmod 644 mercuryThread.java
echo unsharking mercuryclient.java
cat > mercuryclient.java << '\\__END__OF__mercuryclient.java__FILE\\'
import java.io.*;
import java.net.*;
import java.lang.*;

public class mercuryclient {

  int port_number=4443;
  String host = "mac-n2.stanford.edu";
  
  public mercuryclient(String user, String host, String port, String msg) {
    port_number = Integer.parseInt(port);
    try {
      Socket mSocket = new Socket(host, port_number);
      DataOutputStream os = new DataOutputStream(mSocket.getOutputStream());
      DataInputStream is = new DataInputStream(mSocket.getInputStream());
      PrintStream pos = new PrintStream(os);

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      DataOutputStream local_dos = new DataOutputStream(baos);
      
      try {
	local_dos.writeBytes(msg);
      } catch (IOException e1) {
	System.out.println("IOException writing to ByteArray");
      }
      System.out.println(baos.size());
      
      pos.println("USER");
      pos.println(user);
      pos.println("MSG");
      os.writeInt(baos.size());
      os.writeBytes(msg);
      os.flush();
        
      os.close();
      is.close();
      mSocket.close();
    } catch (UnknownHostException e) {
      System.err.println("Trying to connect to unknown host: " + e);
    } catch (Exception e) {
      System.err.println("Exception:  " + e);
    }
  }
}
\\__END__OF__mercuryclient.java__FILE\\
chmod 644 mercuryclient.java
echo unsharking recvFrame.java
cat > recvFrame.java << '\\__END__OF__recvFrame.java__FILE\\'
import java.awt.*;
import java.lang.*;
import java.io.*;
//import com.apple.mrj.*;

/*public class recvMercury extends Frame {

  TextField userField, addrField, portField, textField;
  TextArea   textArea;
  Button done_button;
  boolean typing = true;

  public recvMercury(String user, String computer, String port, String msg) {

    Frame f; f = new sendFrame(user, computer, port, msg);
    //Frame f2;
    //f2 = new recvFrame("Hello World",addrField.getText(), textField.getText());
    //f2.show();
    
  }
  */

  public class recvFrame extends Frame {
    TextField userField, addrField, portField, textField;
    TextArea   textArea;
    Button done_button;
    boolean typing = true;

    public recvFrame(String user, String computer, String port, String msg) {
      //super(title);
      this.setTitle("woober message");
      Label fromLabel, computerLabel, portLabel;
    
      // Add a menubar, with a File menu, with a Quit button.
      MenuBar menubar = new MenuBar();
      Menu file = new Menu("File", true);
      menubar.add(file);
      file.add("Close");
      this.setMenuBar(menubar);
      //MRJMenuUtils.setMenuItemCmdKey(menu,0,"w");

      fromLabel = new Label();
      fromLabel.setText("To:");
      
      userField = new TextField(20);
      userField.setEditable(false);
      userField.setText(user);

      computerLabel = new Label();
      computerLabel.setText("computer:");
      
      addrField = new TextField(40);
      addrField.setEditable(false);
      addrField.setText(computer);

      portLabel = new Label();
      portLabel.setText("port:");
      
      portField = new TextField(5);
      portField.setEditable(false);
      portField.setText(port);

      done_button = new Button("Close");
      textArea = new TextArea(24, 80);
      textArea.setEditable(false);
      textArea.setText(msg);

      //Add Components to the Applet. 
      GridBagLayout gridBag = new GridBagLayout();
      setLayout(gridBag);
      GridBagConstraints c = new GridBagConstraints();

      c.fill = GridBagConstraints.BOTH;
      c.weightx = 0.0;
      c.weighty = 0.0;
      c.gridwidth = 1;
      c.gridheight = 1;
      c.gridx = GridBagConstraints.RELATIVE;
      c.gridy = GridBagConstraints.RELATIVE;

      
      gridBag.setConstraints(fromLabel,c);
      add(fromLabel);

      c.gridwidth = GridBagConstraints.REMAINDER;
      c.weightx = 1.0;
      gridBag.setConstraints(userField,c);
      add(userField);
      
      c.gridwidth = 1;
      c.weightx = 0.0;
      gridBag.setConstraints(computerLabel,c);
      add(computerLabel);
      
      c.gridwidth = GridBagConstraints.REMAINDER;
      c.weightx = 1.0;
      gridBag.setConstraints(addrField,c);
      add(addrField);

      c.gridwidth = 1;
      c.weightx = 0.0;
      gridBag.setConstraints(portLabel,c);
      add(portLabel);

      c.gridwidth = GridBagConstraints.REMAINDER;
      c.weightx = 1.0;
      gridBag.setConstraints(portField,c);
      add(portField);
      
      
      c.weightx = 0.0;
      c.weighty = 1.0;
      gridBag.setConstraints(textArea, c);
      add(textArea);
      
      c.weighty = 0.0;
      c.weightx = 1.0;
      c.gridwidth = GridBagConstraints.REMAINDER;
      c.gridheight = 1;
      gridBag.setConstraints(done_button,c);
      add(done_button);
      
      validate();
      this.pack();
      this.show();
    }
    
    // Handle the Close menu button.
    public boolean action(Event e, Object arg)
    {
      if (e.target instanceof MenuItem) {
	String label = (String) arg;
	//if (label.equals("Quit")) System.exit(0);
	if (label.equals("Close")) {
	  this.dispose();
	  return true;
	  //System.out.println(addrField.getText());
	  //System.out.println(textArea.getText());
	  //typing = true;
	}
      } else if (e.target == done_button) {
	  this.dispose();
	  /*
	  System.out.println(userField.getText());
	  System.out.println(addrField.getText());
	  System.out.println(portField.getText());
	  System.out.println(textArea.getText());
	  new mercuryclient(userField.getText(), addrField.getText(), 
			portField.getText(), textArea.getText());
	  typing = true;
	  */
	  // System.exit(0);
	  return true;
      }
      return false;
    }
  }
//}  
\\__END__OF__recvFrame.java__FILE\\
chmod 644 recvFrame.java
echo unsharking simple.java
cat > simple.java << '\\__END__OF__simple.java__FILE\\'
import java.awt.*;
import java.lang.*;
import java.io.*;

public class simple extends Frame {

  TextField userField, addrField, portField, textField;
  TextArea   textArea;
  Button send_button;
  boolean typing = true;
  public simple() {

    Frame f; f = new sendFrame("Hello World");
    //Frame f2;
    //f2 = new recvFrame("Hello World",addrField.getText(), textField.getText());
    //f2.show();
    
  }
  public static void main(String argv[]) {
    new simple();
  }
  public class sendFrame extends Frame {
    public sendFrame(String title) {
      //super(title);
      this.setTitle("woober message");
      Label toLabel, computerLabel, portLabel;
    
      // Add a menubar, with a File menu, with a Quit button.
      MenuBar menubar = new MenuBar();
      Menu file = new Menu("File", true);
      menubar.add(file);
      file.add("Quit");
      this.setMenuBar(menubar);
      
      toLabel = new Label();
      //toLabel.setEditable(false);
      toLabel.setText("To:");
      
      userField = new TextField(20);
      userField.setEditable(true);

      computerLabel = new Label();
      //computerLabel.setEditable(false);
      computerLabel.setText("computer:");
      
      addrField = new TextField(40);
      addrField.setEditable(true);

      portLabel = new Label();
      //portLabel.setEditable(false);
      portLabel.setText("port:");
      
      portField = new TextField(5);
      portField.setEditable(true);
      portField.setText("5432");

      send_button = new Button("Send");
      textArea = new TextArea(24, 80);
      textArea.setEditable(true);
      
      //Add Components to the Applet. 
      GridBagLayout gridBag = new GridBagLayout();
      setLayout(gridBag);
      GridBagConstraints c = new GridBagConstraints();

      c.fill = GridBagConstraints.BOTH;
      c.weightx = 0.0;
      c.weighty = 0.0;
      c.gridwidth = 1;
      c.gridheight = 1;
      c.gridx = GridBagConstraints.RELATIVE;
      c.gridy = GridBagConstraints.RELATIVE;

      
      gridBag.setConstraints(toLabel,c);
      add(toLabel);

      c.gridwidth = GridBagConstraints.REMAINDER;
      c.weightx = 1.0;
      gridBag.setConstraints(userField,c);
      add(userField);
      
      c.gridwidth = 1;
      c.weightx = 0.0;
      gridBag.setConstraints(computerLabel,c);
      add(computerLabel);
      
      c.gridwidth = GridBagConstraints.REMAINDER;
      c.weightx = 1.0;
      gridBag.setConstraints(addrField,c);
      add(addrField);

      c.gridwidth = 1;
      c.weightx = 0.0;
      gridBag.setConstraints(portLabel,c);
      add(portLabel);

      c.gridwidth = GridBagConstraints.REMAINDER;
      c.weightx = 1.0;
      gridBag.setConstraints(portField,c);
      add(portField);
      
      
      c.weightx = 0.0;
      c.weighty = 1.0;
      gridBag.setConstraints(textArea, c);
      add(textArea);
      
      c.weighty = 0.0;
      c.weightx = 1.0;
      c.gridwidth = GridBagConstraints.REMAINDER;
      c.gridheight = 1;
      gridBag.setConstraints(send_button,c);
      add(send_button);
      
      validate();
      this.pack();
      this.show();
    }
    
    // Handle the Quit menu button.
    public boolean action(Event e, Object arg)
    {
      if (e.target instanceof MenuItem) {
	String label = (String) arg;
       if (label.equals("Quit")) System.exit(0);
	//if (label.equals("Quit")) {
	  //this.dispose();
	  //System.out.println(addrField.getText());
	  //System.out.println(textArea.getText());
	  //typing = true;
      } else if (e.target == send_button) {
	  this.dispose();
	  System.out.println(userField.getText());
	  System.out.println(addrField.getText());
	  System.out.println(portField.getText());
	  System.out.println(textArea.getText());
	  new mercuryclient(userField.getText(), addrField.getText(), 
			portField.getText(), textArea.getText());
	  typing = true;
	  System.exit(0);
	  return true;
      }
      return false;
    }
  }
}  
\\__END__OF__simple.java__FILE\\
chmod 644 simple.java
echo unsharking mercuryServer.class
uudecode << '\\__END__OF__mercuryServer.class__FILE\\'
begin 644 mercuryServer.class
MROZZO@`#`"T`8`@`/`@`/0@`/P@`0`@`0P@`20<`3@<`3P<`4`<`40<`4@<`
M4P<`5`<`50<`5@<`6`<`6@H`"@`A"@`/`"(*``P`(PH`$0`D"@`/`"4*``P`
M)@H`#``G"@`,`"@*``L`*0H`#0`J"0`-`"L*``D`+`H`"``M"@`.`"X*``P`
M+PP`/@`R#``^`#0,`#X`.`P`/@`Z#`!*`#$,`$L`,PP`2P`U#`!+`#<,`$P`
M.0P`30`T#`!;`$8,`%P`-@P`70`X#`!>`#(,`%\`,`$`%"@I3&IA=F$O;&%N
M9R]3=')I;F<[`0`3*"E,:F%V82]N970O4V]C:V5T.P$``R@I5@$`&RA)*4QJ
M879A+VQA;F<O4W1R:6YG0G5F9F5R.P$`!"A)*58!`"PH3&IA=F$O;&%N9R]/
M8FIE8W0[*4QJ879A+VQA;F<O4W1R:6YG0G5F9F5R.P$`%2A,:F%V82]L86YG
M+U-T<FEN9SLI20$`+"A,:F%V82]L86YG+U-T<FEN9SLI3&IA=F$O;&%N9R]3
M=')I;F="=69F97([`0`5*$QJ879A+VQA;F<O4W1R:6YG.RE6`0`5*$QJ879A
M+VQA;F<O4W1R:6YG.RE:`0`4*$QJ879A+VYE="]3;V-K970[*58!`!8H6TQJ
M879A+VQA;F<O4W1R:6YG.RE6`0`"+"`!``(M<`$`!CQI;FET/@$`#T%C8V5P
M="!F86EL960Z(`$`%D%C8V5P=&EN9R!C;VYN96-T:6]N<RX!``1#;V1E`0`-
M0V]N<W1A;G1686QU90$`&D-O=6QD(&YO="!L:7-T96X@;VX@<&]R=#H@`0`*
M17AC97!T:6]N<P$`#TQI;F5.=6UB97)486)L90$`%4QJ879A+VEO+U!R:6YT
M4W1R96%M.P$`#DQO8V%L5F%R:6%B;&5S`0`*4V]U<F-E1FEL90$`&5-T87)T
M:6YG($U%4D-54ED@;VX@<&]R="`!``9A8V-E<'0!``9A<'!E;F0!`!!E<75A
M;'-)9VYO<F5#87-E`0`$97AI=`$`$VIA=F$O:6\O24]%>&-E<'1I;VX!`!-J
M879A+VEO+U!R:6YT4W1R96%M`0`1:F%V82]L86YG+TEN=&5G97(!`!!J879A
M+VQA;F<O3V)J96-T`0`0:F%V82]L86YG+U-T<FEN9P$`%FIA=F$O;&%N9R]3
M=')I;F="=69F97(!`!!J879A+VQA;F<O4WES=&5M`0`0:F%V82]L86YG+U1H
M<F5A9`$`%6IA=F$O;F5T+U-E<G9E<E-O8VME=`$`!&UA:6X!``UM97)C=7)Y
M4V5R=F5R`0`2;65R8W5R>5-E<G9E<BYJ879A`0`-;65R8W5R>51H<F5A9`$`
M`V]U=`$`"'!A<G-E26YT`0`'<')I;G1L;@$`!7-T87)T`0`(=&]3=')I;F<`
M(``0``H```````(`"0!7`#L``0!!```!80`$``8```#)`4P1%3@]`SZG`"$J
M'3(2`K8`&ID`$X0#`2H=,K@`'3V$`P&G``:$`P$=*KZA_]^[``]9'+<`$TRG
M`"DZ!+(`'+L`#%D2!;<`%!RV`!<2`;8`&1D$M@`8M@`@M@`>!+@`&[(`'+L`
M#%D2!K<`%!RV`!>V`""V`!ZG`$T!.@2R`!P2!+8`'BNV`!8Z!*<`*3H%L@`<
MNP`,61(#MP`4'+8`%Q(!M@`9&06V`!BV`""V`!X$N``;NP`161D$MP`5.@49
M!;8`'RO'_[6Q``(`+P`X`#L`!P!]`(L`C@`'``$`10```'8`'0````8``@`)
M``8`"@`(``L`"P`,`!8`#0`C``P`)@`/`"D`"P`O`!(`+P`3`#@`$@`[`!0`
M/0`5`%T`%@!A`!@`=P`:`'H`'`!]`!T`?0`>`(4`'P"+`!T`C@`@`)``(0"P
M`"(`M``F`+\`)P#$`!H`R``%````/@`R``$`00```!T``0`!````!2JW`!*Q
:`````0!%````!@`!````!``!`$@````"`%D`
`
end
\\__END__OF__mercuryServer.class__FILE\\
chmod 644 mercuryServer.class
echo unsharking mercuryThread.class
uudecode << '\\__END__OF__mercuryThread.class__FILE\\'
begin 644 mercuryThread.class
MROZZO@`#`"T`=`@`30@`4@@`4P@`5`@`5@@`9P<`70<`7@<`7P<`8`<`80<`
M8@<`8P<`9`<`90<`9@<`:`<`<`H`"P`I"@`.`"D*``<`*@H`#``K"@`2`"P*
M``L`+0H`#``N"0`1`"\*``@`,`H`$``P"@`+`#$*`!``,@H`$``S"0`-`#0*
M``\`-0H`"@`V"@`'`#<*``<`.`H`!P`Y"@`,`#H*`!``.@H`"P`[#`!)`#\,
M`$D`00P`20!##`!)`$4,`$D`1PP`5P!"#`!8`%`,`%D`/PP`6@!$#`!;`#T,
M`%P`/`P`:@!/#`!K`#\,`&P`0PP`;0!(#`!N`#P,`&\`/@P`<@`^#`!S`$`!
M``,H*4D!`!<H*4QJ879A+VEO+TEN<'5T4W1R96%M.P$`%"@I3&IA=F$O;&%N
M9R]3=')I;F<[`0`#*"E6`0`5*$DI3&IA=F$O;&%N9R]3=')I;F<[`0`8*$QJ
M879A+VEO+TEN<'5T4W1R96%M.RE6`0`L*$QJ879A+VQA;F<O4W1R:6YG.RE,
M:F%V82]L86YG+U-T<FEN9T)U9F9E<CL!`!4H3&IA=F$O;&%N9R]3=')I;F<[
M*58!`!4H3&IA=F$O;&%N9R]3=')I;F<[*5H!`$LH3&IA=F$O;&%N9R]3=')I
M;F<[3&IA=F$O;&%N9R]3=')I;F<[3&IA=F$O;&%N9R]3=')I;F<[3&IA=F$O
M;&%N9R]3=')I;F<[*58!`!0H3&IA=F$O;F5T+U-O8VME=#LI5@$`!BA;0DDI
M5@$`!RA;0DE)*58!``8\:6YI=#X!``1#;V1E`0`-0V]N<W1A;G1686QU90$`
M"D5X8V5P=&EO;G,!``M)3T5X8V5P=&EO;@$`#TQI;F5.=6UB97)486)L90$`
M%4QJ879A+VEO+U!R:6YT4W1R96%M.P$`$4QJ879A+VYE="]3;V-K970[`0`.
M3&]C86Q687)I86)L97,!``--4T<!`!9296-E:79E9"!297%U97-T(&9R;VT@
M`0`94V-R97=U<"!I;B!R96-E:79I;F<@9&%T80$`"E-O=7)C949I;&4!``15
M4T52`0`&87!P96YD`0`,8VQI96YT4V]C:V5T`0`%8VQO<V4!`!!E<75A;'-)
M9VYO<F5#87-E`0`.9V5T26YP=713=')E86T!``=G9710;W)T`0`7:F%V82]I
M;R]$871A26YP=713=')E86T!`!EJ879A+VEO+T9I;'1E<DEN<'5T4W1R96%M
M`0`3:F%V82]I;R])3T5X8V5P=&EO;@$`$VIA=F$O:6\O4')I;G13=')E86T!
M`!!J879A+VQA;F<O4W1R:6YG`0`6:F%V82]L86YG+U-T<FEN9T)U9F9E<@$`
M$&IA=F$O;&%N9R]3>7-T96T!`!!J879A+VQA;F<O5&AR96%D`0`3:F%V82]L
M86YG+U1H<F]W86)L90$`#VIA=F$O;F5T+U-O8VME=`$`'VUE<F-U<GD@8VQO
M<VEN9R!T:&4@8V]N;F5C=&EO;BX!``UM97)C=7)Y5&AR96%D`0`2;65R8W5R
M>51H<F5A9"YJ879A`0`#;W5T`0`/<')I;G13=&%C:U1R86-E`0`'<')I;G1L
M;@$`"7)E861&=6QL>0$`!W)E861);G0!``AR96%D3&EN90$`"7)E8W9&<F%M
M90$``W)U;@$`"'1O4W1R:6YG`0`'=F%L=65/9@`A`!$`#@````$``@!8`%``
M```"``$`20!&``$`2@```"H``@`"````"BJW`!0J*[4`&K$````!`$X````.
M``,````)``0`"@`)``D``0!Q`#\``0!*```!\@`(``D```#ZNP`'62JT`!JV
M`!ZW`!5,`4XJM``:M@`G.@2[``M9MP`3.@4JM``:M@`?N``H5[(`(+L`#%D2
M`[<`%BJT`!JV`">V`!FV`":V`"(!.@:G`%XL$@6V`!V9`!4KM@`E3J<`33H'
M&0>V`"&G`$,L$@*V`!V9`#H#-@<KM@`D-@>G``HZ"!D(M@`A%0>\"#H&*QD&
M`Q4'M@`CIP`5.@@9"+8`(;(`(!($M@`BIP`#*[8`)5E-Q_^?L@`@$@:V`"(K
MM@`;*K0`&K8`'+L`$BT9!!D%NP`+61D&`[<`&+<`%Z<`$$PKM@`AL@`@$@&V
M`"(JM``:M@`<L4PKM@`AL0`%`%D`7@!A``D`=P!]`(``"0"-`)8`F0`)````
MW`#?``D`[`#S`/0`"0`!`$X```"^`"\````/````$0`.`!``#P`:`!$`'``:
M`!T`(P`>`"X`(`!*`"$`30`C`%``)`!9`"4`60`F`%X`)0!A`"<`8P`H`&@`
M)0!K`"H`=``K`'<`+`!W`"T`?0`L`(``+@""`"\`AP`Q`(T`,@"-`#,`E@`R
M`)D`-`";`#4`H``V`*@`,@"K`",`M``[`+P`/0#``#X`QP`_`-P`#P#?`$$`
IX`!"`.0`0P#L`$4`[`!&`/,`10#T`$<`]0!(`/D`#@`!`%4````"`&G?
`
end
\\__END__OF__mercuryThread.class__FILE\\
chmod 644 mercuryThread.class
echo unsharking mercuryclient.class
uudecode << '\\__END__OF__mercuryclient.class__FILE\\'
begin 644 mercuryclient.class
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
:`-,`#`#4`"@`U@`I`.T`"@`!`%T````"`'>O
`
end
\\__END__OF__mercuryclient.class__FILE\\
chmod 644 mercuryclient.class
echo unsharking recvFrame.class
uudecode << '\\__END__OF__recvFrame.class__FILE\\'
begin 644 recvFrame.class
MROZZO@`#`"T`K0@`;0@`<@@`>P@`@`@`F0@`K`<`B0<`B@<`BP<`C`<`C0<`
MC@<`CP<`D`<`D0<`D@<`DP<`E`<`E0<`E@<`EP<`FPH`"@`]"@`+`#T*``P`
M/0H`#0`]"@`/`#T*`!,`/@H`$0`_"@`'`$`*``X`00H`"`!""@`/`$,*``X`
M1`D`%@!%"@`*`$8)`!8`1PH`%0!("0`+`$D)``L`2@D`"P!+"0`+`$P)``L`
M30H`%`!."0`6`$\*``P`4`H`$@!1"@`(`%(*``H`4PH`#0!4"@`2`%0*``H`
M50H`%`!6"0`)`%<)`!8`6`D`%@!9"0`6`%H*``@`6PD`"P!<"0`+`%T,`&P`
M7@P`;`!?#`!L`&`,`&P`:`P`;`!J#`!^`&$,`'X`90P`?@!H#`!_`'<,`($`
M7@P`@@!U#`"#`&<,`(0`<PP`A0!S#`"&`',,`(<`<PP`B`!S#`"8`%X,`)H`
M=PP`G0!B#`">`&L,`)\`9`P`H`!F#`"A`&@,`*(`:`P`HP!>#`"D`'@,`*4`
M=@P`IP!\#`"H`'<,`*D`7@P`J@!P#`"K`'`!``,H*58!``0H22E6`0`%*$E)
M*58!`"HH3&IA=F$O87=T+T-O;7!O;F5N=#LI3&IA=F$O87=T+T-O;7!O;F5N
M=#L!`#0H3&IA=F$O87=T+T-O;7!O;F5N=#M,:F%V82]A=W0O1W)I9$)A9T-O
M;G-T<F%I;G1S.RE6`0`E*$QJ879A+V%W="]%=F5N=#M,:F%V82]L86YG+T]B
M:F5C=#LI6@$`&RA,:F%V82]A=W0O3&%Y;W5T36%N86=E<CLI5@$`("A,:F%V
M82]A=W0O365N=3LI3&IA=F$O87=T+TUE;G4[`0`5*$QJ879A+V%W="]-96YU
M0F%R.RE6`0`5*$QJ879A+VQA;F<O3V)J96-T.RE:`0`5*$QJ879A+VQA;F<O
M4W1R:6YG.RE6`0!+*$QJ879A+VQA;F<O4W1R:6YG.TQJ879A+VQA;F<O4W1R
M:6YG.TQJ879A+VQA;F<O4W1R:6YG.TQJ879A+VQA;F<O4W1R:6YG.RE6`0`6
M*$QJ879A+VQA;F<O4W1R:6YG.UHI5@$`!"A:*58!``8\:6YI=#X!``5#;&]S
M90$`!$-O9&4!``U#;VYS=&%N=%9A;'5E`0`!1`$`"D5X8V5P=&EO;G,!``1&
M:6QE`0`!20$`#TQI;F5.=6UB97)486)L90$`$4QJ879A+V%W="]"=71T;VX[
M`0`33&IA=F$O87=T+U1E>'1!<F5A.P$`%$QJ879A+V%W="]497AT1FEE;&0[
M`0`23&IA=F$O;&%N9R]/8FIE8W0[`0`.3&]C86Q687)I86)L97,!``I3;W5R
M8V5&:6QE`0`#5&\Z`0`!6@$`!F%C=&EO;@$``V%D9`$`"6%D9')&:65L9`$`
M"6-O;7!U=&5R.@$`!V1I<W!O<V4!``MD;VYE7V)U='1O;@$`!F5Q=6%L<P$`
M!&9I;&P!``IG<FED:&5I9VAT`0`)9W)I9'=I9'1H`0`%9W)I9'@!``5G<FED
M>0$`#VIA=F$O87=T+T)U='1O;@$`$FIA=F$O87=T+T-O;G1A:6YE<@$`#FIA
M=F$O87=T+T5V96YT`0`.:F%V82]A=W0O1G)A;64!`!MJ879A+V%W="]'<FED
M0F%G0V]N<W1R86EN=',!`!9J879A+V%W="]'<FED0F%G3&%Y;W5T`0`.:F%V
M82]A=W0O3&%B96P!``UJ879A+V%W="]-96YU`0`0:F%V82]A=W0O365N=4)A
M<@$`$6IA=F$O87=T+TUE;G5)=&5M`0`1:F%V82]A=W0O5&5X=$%R96$!`!9J
M879A+V%W="]497AT0V]M<&]N96YT`0`2:F%V82]A=W0O5&5X=$9I96QD`0`/
M:F%V82]A=W0O5VEN9&]W`0`0:F%V82]L86YG+U-T<FEN9P$`!'!A8VL!``5P
M;W)T.@$`"7!O<G1&:65L9`$`"7)E8W9&<F%M90$`#G)E8W9&<F%M92YJ879A
M`0`.<V5T0V]N<W1R86EN=',!``MS971%9&ET86)L90$`"7-E=$QA>6]U=`$`
M"G-E=$UE;G5"87(!``=S971497AT`0`(<V5T5&ET;&4!``1S:&]W`0`&=&%R
M9V5T`0`(=&5X=$%R96$!``ET97AT1FEE;&0!``9T>7!I;F<!``EU<V5R1FEE
M;&0!``AV86QI9&%T90$`!W=E:6=H='@!``=W96EG:'1Y`0`.=V]O8F5R(&UE
M<W-A9V4`(0`6``H````'````J`!W``````!_`'<``````)H`=P``````I@!W
M``````"E`'8``````((`=0``````IP!\`````@`!`&P`:0`!`&X```-G``4`
M#````B\JMP`7*@2U`#@J$@:V`#2[``]9MP`;.@B[``Y9$@($MP`?.@D9"!D)
MM@`A5QD)$@&V`"(J&0BV`#&[``U9MP`:.@49!1(#M@`R*KL`$UD0%+<`'+4`
M.2JT`#D#M@`O*K0`.2NV`#.[``U9MP`:.@89!A($M@`R*KL`$UD0*+<`'+4`
M(RJT`",#M@`O*K0`(RRV`#.[``U9MP`:.@<9!Q(%M@`R*KL`$UD(MP`<M0`M
M*K0`+0.V`"\JM``M+;8`,RJ[``=9$@&W`!ZU`"4JNP`161`8$%"W`!VU`#<J
MM``W`[8`+RJT`#<9!+8`,[L`#%FW`!DZ"BH9"K8`,+L`"UFW`!@Z"QD+!+4`
M)QD+#K4`.QD+#K4`/!D+!+4`*1D+!+4`*!D+`K4`*AD+`K4`*QD*&049"[8`
M+BH9!;8`(%<9"P.U`"D9"P^U`#L9"BJT`#D9"[8`+BHJM``YM@`@5QD+!+4`
M*1D+#K4`.QD*&089"[8`+BH9!K8`(%<9"P.U`"D9"P^U`#L9"BJT`",9"[8`
M+BHJM``CM@`@5QD+!+4`*1D+#K4`.QD*&0<9"[8`+BH9![8`(%<9"P.U`"D9
M"P^U`#L9"BJT`"T9"[8`+BHJM``MM@`@5QD+#K4`.QD+#[4`/!D**K0`-QD+
MM@`N*BJT`#>V`"!7&0L.M0`\&0L/M0`[&0L#M0`I&0L$M0`H&0HJM``E&0NV
M`"XJ*K0`);8`(%<JM@`Z*K8`+"JV`#6Q`````0!T```!)@!)````'0`$`!L`
M"0`?``\`(P`8`"0`)``E`"P`)@`S`"<`.0`J`$(`*P!)`"T`5@`N`%X`+P!F
M`#$`;P`R`'8`-`"#`#4`BP`V`),`.`"<`#D`HP`[`*\`/`"W`#T`OP`_`,P`
M0`#;`$$`XP!"`.P`10#U`$8`^P!'`00`20$*`$H!$`!+`18`3`$<`$T!(@!.
M`2@`3P$N`%(!-P!3`3X`50%$`%8!2@!7`54`6`%>`%H!9`!;`6H`7`%S`%T!
M>@!?`8``8`&&`&$!D0!B`9H`9`&@`&4!I@!F`:\`9P&V`&D!O`!J`<(`:P'-
M`&P!U@!O`=P`<`'B`'$![0!R`?8`=`'\`'4"`@!V`@@`=P(.`'@"&0!Y`B(`
M>P(F`'P"*@!]`BX`'0`!`'T`8P`!`&X```!I``(`!````#$KM``VP0`0F0`7
M+,``%4XM$@&V`":9`!HJM@`D!*PKM``V*K0`):8`"2JV`"0$K`.L`````0!T
M````)@`)````@P`*`(0`#P"&`!@`AP`<`(@`'@"-`"D`C@`M`)D`+P";``$`
'>@````(`G```
`
end
\\__END__OF__recvFrame.class__FILE\\
chmod 644 recvFrame.class
echo unsharking simple$sendFrame.class
uudecode << '\\__END__OF__simple$sendFrame.class__FILE\\'
begin 644 simple.class
MROZZO@`#`"T`*0@`$P<`'0<`(@<`(PH``@`)"@`#``D*``0`"@D``P`+#``/
M``P,``\`#0P`)P`;`0`#*"E6`0`=*$QS:6UP;&4[3&IA=F$O;&%N9R]3=')I
M;F<[*58!`!8H6TQJ879A+VQA;F<O4W1R:6YG.RE6`0`&/&EN:70^`0`$0V]D
M90$`#4-O;G-T86YT5F%L=64!``I%>&-E<'1I;VYS`0`+2&5L;&\@5V]R;&0!
M``Q);FYE<D-L87-S97,!``],:6YE3G5M8F5R5&%B;&4!`!%,:F%V82]A=W0O
M0G5T=&]N.P$`$TQJ879A+V%W="]497AT07)E83L!`!1,:F%V82]A=W0O5&5X
M=$9I96QD.P$`#DQO8V%L5F%R:6%B;&5S`0`*4V]U<F-E1FEL90$``5H!``EA
M9&1R1FEE;&0!``YJ879A+V%W="]&<F%M90$`!&UA:6X!``EP;W)T1FEE;&0!
M``ES96YD1G)A;64!``MS96YD7V)U='1O;@$`!G-I;7!L90$`$'-I;7!L921S
M96YD1G)A;64!``MS:6UP;&4N:F%V80$`"'1E>'1!<F5A`0`)=&5X=$9I96QD
M`0`&='EP:6YG`0`)=7-E<D9I96QD`"$``P`"````!P```"@`&```````'``8
M```````?`!@``````"8`&```````)0`7```````A`!8``````"<`&P````(`
M`0`/``P``0`0````.0`$``(````5*K<`!2H$M0`(NP`$62H2`;<`!TRQ````
M`0`5````$@`$````"P`$``H`"0`-`!0`"P`)`!X`#@`!`!`````C``$``0``
M``>[``.W``:Q`````0`5````"@`"````%``&`!,``@`:`````@`D`!0````*
*``$`!``#`"```0``
`
end
\\__END__OF__simple$sendFrame.class__FILE\\
chmod 644 simple$sendFrame.class
echo unsharking simple.class
uudecode << '\\__END__OF__simple.class__FILE\\'
begin 644 simple.class
MROZZO@`#`"T`*0@`$P<`'0<`(@<`(PH``@`)"@`#``D*``0`"@D``P`+#``/
M``P,``\`#0P`)P`;`0`#*"E6`0`=*$QS:6UP;&4[3&IA=F$O;&%N9R]3=')I
M;F<[*58!`!8H6TQJ879A+VQA;F<O4W1R:6YG.RE6`0`&/&EN:70^`0`$0V]D
M90$`#4-O;G-T86YT5F%L=64!``I%>&-E<'1I;VYS`0`+2&5L;&\@5V]R;&0!
M``Q);FYE<D-L87-S97,!``],:6YE3G5M8F5R5&%B;&4!`!%,:F%V82]A=W0O
M0G5T=&]N.P$`$TQJ879A+V%W="]497AT07)E83L!`!1,:F%V82]A=W0O5&5X
M=$9I96QD.P$`#DQO8V%L5F%R:6%B;&5S`0`*4V]U<F-E1FEL90$``5H!``EA
M9&1R1FEE;&0!``YJ879A+V%W="]&<F%M90$`!&UA:6X!``EP;W)T1FEE;&0!
M``ES96YD1G)A;64!``MS96YD7V)U='1O;@$`!G-I;7!L90$`$'-I;7!L921S
M96YD1G)A;64!``MS:6UP;&4N:F%V80$`"'1E>'1!<F5A`0`)=&5X=$9I96QD
M`0`&='EP:6YG`0`)=7-E<D9I96QD`"$``P`"````!P```"@`&```````'``8
M```````?`!@``````"8`&```````)0`7```````A`!8``````"<`&P````(`
M`0`/``P``0`0````.0`$``(````5*K<`!2H$M0`(NP`$62H2`;<`!TRQ````
M`0`5````$@`$````"P`$``H`"0`-`!0`"P`)`!X`#@`!`!`````C``$``0``
M``>[``.W``:Q`````0`5````"@`"````%``&`!,``@`:`````@`D`!0````*
*``$`!``#`"```0``
`
end
\\__END__OF__simple.class__FILE\\
chmod 644 simple.class
echo unsharking makefile
cat > makefile << '\\__END__OF__makefile__FILE\\'
JAVA=javac

mercuryServer.class : %.class : %.java mercuryThread.class 
	$(JAVA) $(*F).java

mercuryThread.class : %.class : %.java recvFrame.class
	$(JAVA) $(*F).java

simple.class : %.class : %.java mercuryclient.class
	$(JAVA) $(*F).java

%.class : %.java
	$(JAVA) $(*F).java
\\__END__OF__makefile__FILE\\
chmod 644 makefile
