/*
fds
lc0. widescreen
repeat /buffer playwave
add wave files insert graphically
rbcopy  paste
continuous synth
continuous playback
synth staircase
synth variable voltage dc
measure dc
Collaborate between source app and meas app
*/
import java.awt.*; 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.awt.event.*;
import java.applet.*;
import java.lang.*;
import java.util.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
class Te extends Thread
 {
  static Sh sh;
  static boolean runBuTrigbusy=false,runSlTrigbusy=false,runLCTrigbusy=false;
  static boolean runMenuTrigbusy=false;
  boolean rtsflag=false;
  double[] da;
  short[] sha; 
  static String[] aprimitives;
  M parent;
  Fio fio;
  String rs,ts,name,sts,stsa;
  boolean stsorg=true;
  String stokadelim=" \n{}[],()!@#$%^&*-+/=|<>?~`';:\"\\"; //"'
  static String fidipath="";
  Rec rec;
  boolean fino;
  String currentMeth="";
  String ocM="";
  String[] sarray;
  char chararray[];
  double d;
  Point p;
  dP dp;
  XYZ xyz;
  boolean boo;
  K k;
  Color c;
  Img img;
  LF lf;
  LScP lscp;
  LSpP lspp;
  LL ll;
  Sl sl;
  Bu lbu;
  LP lp;
  LC lc;
  CC cc;
  Container cont;
  Component comp;
  Stack dlvstk=new Stack(),dPlvstk=new Stack(),Slvstk=new Stack(),stka=new Stack(),rtsstk=new Stack();
  TA ta,ta1,ta2,ta3;
  Tu tu;
  Wav wu;
  Wave wue;
  Wavegraph wuegraph;
  FFT fft;
  LSort lsort;
  CuCu cucu;
  static Play play;
  QuCu qucu;
  BSCu bscu;
  //Aux aux;
  static boolean schleepflag=false;
  static int zzz=0,nod=9;
  static long tyma,tymb;
  static String mkf="mk";
  static final double PI=Math.PI;
  static final double DR=PI/180;
  static final double RD=180/PI;
  Hashtable Sloch=new Hashtable();
  Hashtable dloch=new Hashtable();
  Hashtable dPloch=new Hashtable();
  static Hashtable Buryh=new Hashtable();
  static Hashtable Gmh=new Hashtable();
  static Hashtable Gph=new Hashtable();
  static Hashtable dh=new Hashtable();
  static Hashtable dah=new Hashtable();
  static Hashtable shah=new Hashtable();
  static Hashtable boh=new Hashtable();
  static Hashtable boah=new Hashtable();
  static Hashtable Kh=new Hashtable();
  static Hashtable Sh=new Hashtable();
  static Hashtable Sah=new Hashtable();
  static Hashtable Primh=new Hashtable();
  static Hashtable Meth=new Hashtable();
  static Hashtable Methtrigh=new Hashtable();
  static Hashtable Trigh=new Hashtable();
  static Hashtable Methargh=new Hashtable();
  static Hashtable Methlvh=new Hashtable();
  static Hashtable Methbodyh=new Hashtable();
  static Hashtable Tuh=new Hashtable();
  static Hashtable LFh=new Hashtable();
  static Hashtable LSpPh=new Hashtable();
  static Hashtable LScPh=new Hashtable();
  static Hashtable LLh=new Hashtable();
  static Hashtable Slh=new Hashtable();
  static Hashtable Buh=new Hashtable();
  static Hashtable LPh=new Hashtable();
  static Hashtable LCh=new Hashtable();
  static Hashtable CCh=new Hashtable();
  static Hashtable AJLogoh=new Hashtable();
  static Hashtable TAh=new Hashtable();
  static Hashtable CuCuh=new Hashtable();
  static Hashtable QuCuh=new Hashtable();
  static Hashtable BSCuh=new Hashtable();
  static Hashtable Ph=new Hashtable();
  static Hashtable dPh=new Hashtable();
  static Hashtable dPah=new Hashtable();
  static Hashtable PCLh=new Hashtable();
  static Hashtable PCLah=new Hashtable();
  static Hashtable PCRh=new Hashtable();
  static Hashtable PCRah=new Hashtable();
  static Hashtable Imgh=new Hashtable();
  static Hashtable Rech=new Hashtable();
  static Hashtable Shh=new Hashtable();
  static Hashtable ACh=new Hashtable();
  static Hashtable Cih=new Hashtable();
  static Hashtable FFTh=new Hashtable();
  static Hashtable Wavh=new Hashtable();
  static Hashtable Waveh=new Hashtable();
  static Hashtable Wavegraphh=new Hashtable();
  static Hashtable Menuh=new Hashtable();
  static Hashtable LSorth=new Hashtable();
  static Hashtable Auxh=new Hashtable();
  static Hashtable Sch=new Hashtable();
  static Hashtable PPh=new Hashtable();
  static Hashtable XYZh=new Hashtable();
  static Hashtable XYZah=new Hashtable();
  // insert new Obj d1
  public Te(M p,int i,String t,boolean b,boolean donit) 
   {
    parent=p;
    lc=parent.lc;
    play=parent.play;
    lp=parent.lp;
    tu=parent.tu;
    wu=parent.wu;
    fio=parent.fio;
    ta=parent.ta;
    ta1=parent.ta1;
    cc=parent.cc;
    name=Svo(i);
    ts=t;
    fino=b;
    if(donit) nit();
   }
  void Welcome() { ttace("Welcome to AJLogo build 361 with 531 primitives. F2 for General Help"); }
  public void run() 
   {
    teS(ts); 
    if(fino) fin();
   }
  void fin()
   {
    try 
     {
      this.finalize(); 
      //this.stop();
     }
    catch (Throwable e) {}
   }
  public void teSTCE(String r)
   {
    if(r==null || r.equals(""));
    cc.sendo(r);
   }
  public void crtlteSTCE(String r)
   {
    if(r==null || r.equals(""));
    cc.ctrlSendo(r);
   }
  public void teSTC(String r)
   {
    if(r==null || r.equals("")) return;
    if(cc!=null) cc.sendo(r);
   }
  public Object[] teS(String s)
   {
    String rtsMeth="";
    Object[] o=null;
    stka.push(sts);
    sts=s;
    while(! sts.equals(""))
     {
      String sa=nToke();
      if(sa.equals("")) 
       {
        return o;
       }
      else if(! sa.equals(" ") && ! sa.equals("\n"))  o=teToke(sa);
      if(rtsflag)
       {
        if(currentMeth.equals("wackawacka"))
         {
          currentMeth=ocM;
          rtsflag=false;
         }
        if(rtsMeth.equals(""))
         {
          rtsMeth=currentMeth;
         }
        if(o !=null)
         {
          if((String)o[0] != null)
           {
            rtsstk.push(o);
           }
         }
        if(rtsflag && ! rtsMeth.equals("") && rtsMeth.equals(currentMeth))
         {
          sts="";
         }
       }
     }
    if(stka.empty()) return o;
    sts=(String)stka.pop();
    if(rtsflag && ! rtsMeth.equals("") && rtsMeth.equals(currentMeth)) sts="";
    return o;
   }
  void addtosts(String s) { sts=s+sts; }
  void swapsts(String s)
   {
    stsa=sts;
    sts=s;
    stsorg= false; 
   }
  void swapsts()
   {
    stsorg= ! stsorg;
    String s=sts;
    sts=stsa;
    stsa=s;
   }
  Object[] teToke(String s)
   {
    Object[] o=new Object[3];
    if(schleepflag) schleep(zzz);
    if(s.equals("=")) // begin top start of teToke
     {
      o=dlocordhp(argvn(),argd());
     }
    else if(s.equals("argStest"))
     {
      boolean b=argbo();
      if(b)
       {
        tta("Enter for argS(true)");
        tta("Result:"+argS(true));
       }
      else
       {
        tta("Enter for argS(false)");
        tta("Result:"+argS(false));
       }
     }
    else if(Meth.containsKey(s) && (((String)Meth.get(s)).equals("simple")||((String)Meth.get(s)).equals("trig")))
     {
      currentMeth=s;
      if(s.equals("render")) lc.clearscreen();
      teS(((String)Methbodyh.get(s)));
      currentMeth="";
     }
    else if(Meth.containsKey(s))
     {
      currentMeth=s;
      int dc=0,dPc=0,Strc=0;
      Hashtable dlochb=new Hashtable();
      Hashtable dPlochb=new Hashtable();
      Hashtable Slochb=new Hashtable();
      String lvname="",lvtype="";
      String arg=(String)Methargh.get(s); 
      swapsts(arg);
      boolean b=argop();
      if(b) argsops();
      if(b && argcp()) argscps();
      else 
       {
        int t=1;
        while(!argcp() && t<100)
         {
          if(argc()) argscs();
          lvtype=argopvn();
          if(argcp()) 
           {
            lvname=lvtype;
            lvtype="d";
           }
          else if(argc())
           {
            lvname=lvtype;
            lvtype="d";
            sts=","+sts;
           }
          else lvname=argvncp();
          if(lvtype.equals("d"))
           {
            dc++;
            double dd=argsopdcps();
            dlochb.put(lvname,new Double(dd));
           }
          else if(lvtype.equals("S"))
           {
            Strc++;
            String ss=argsopScps();
            Slochb.put(lvname,ss);
           }
          else if(lvtype.equals("dP"))
           {
            dPc++;
            dP ldp=argsopdPcps();
            dPlochb.put(lvname,ldp);
           }
          t++;
         }
        argscps();
       }
      if(((String)Meth.get(s)).equals("lv"))
       {
        sts=(String)Methlvh.get(s)+sts;
        argop();
        if(argcp());  //tta("no locals here");
        else if(! argop())
         {
          lvtype=argvn();
          lvname=argvncp();
          if(lvtype.equals("d"))
           {
            dc++;
            dlochb.put(lvname,new Double(0));
           }
          else if(lvtype.equals("S"))
           {
            Strc++;
            Slochb.put(lvname,"");
           }
          else if(lvtype.equals("dP"))
           {
            dPc++;
            dPlochb.put(lvname,"");
           }
         }
        else
         {
          int t=0;
          while(!argcp() && t<100)
           {
            argc();
            lvtype=argopvn();
            lvname=argvncp();
            if(lvtype.equals("d"))
             {
              dc++;
              dlochb.put(lvname,new Double(0));
             }
            else if(lvtype.equals("S"))
             {
              Strc++;
              Slochb.put(lvname,"");
             }
            else if(lvtype.equals("dP"))
             {
              dPc++;
              dPlochb.put(lvname,"");
             }
            t++;
           }
         }
       }
      swapsts();
      if(dc>0) 
       {
        if(dloch != null) dlvstk.push(dloch);
        dloch=(Hashtable)dlochb.clone();
       }
      if(Strc>0)
       {
        if(Sloch != null) Slvstk.push(Sloch);
        Sloch=(Hashtable)Slochb.clone();
       }
      if(dPc>0)
       {
        if(dPloch != null) dPlvstk.push(dPloch);
        dPloch=(Hashtable)dPlochb.clone();
       }
      teS(((String)Methbodyh.get(s)));
      if(dc>0) 
       {
        if(! dlvstk.empty()) dloch=(Hashtable)dlvstk.pop();
       }
      if(Strc>0)
       {
        if(! Slvstk.empty()) Sloch=(Hashtable)Slvstk.pop();
       }
      if(dPc>0)
       {
        if(! dPlvstk.empty()) dPloch=(Hashtable)dPlvstk.pop();
       }
      currentMeth="";
     }
    else if(s.equals("==")) o=nboOa(argd()==argd());
    else if(s.equals("+="))
     {
      String vn=argvn();
      o=dlocordhp(vn,dlocordhg(vn)+argd());
     }
    else if(s.equals("-="))
     {
      String vn=argvn();
      o=dlocordhp(vn,dlocordhg(vn)-argd());
     }
    else if(s.equals("*="))
     {
      String vn=argvn();
      o=dlocordhp(vn,dlocordhg(vn)*argd());
     }
    else if(s.equals("/="))
     {
      String vn=argvn();
      o=dlocordhp(vn,dlocordhg(vn)/argd());
     }
    else if(s.equals("++"))
     {
      String vn=argvn();
      o=dlocordhp(vn,dlocordhg(vn)+1);
     }
    else if(s.equals("--"))
     {
      String vn=argvn();
      o=dlocordhp(vn,dlocordhg(vn)-1);
     }
    else if(s.equals("+")) o[1]=ndOa(rndto(argd()+argd()));
    else if(s.equals("-"))
     {
      s=nToke();// not nnsToke()
      if(s.equals(" ")) o=ndOa(rndto(argd()-argd()));// space between - and nToke
      else
       {
        String vn=argvn();
        o=dlocordhp(vn,-argd(vn));
       }
     }
    else if(s.equals("*")) o=ndOa(rndto(argd()*argd()));
    else if(s.equals("/")) o=ndOa(rndto(argd()/argd()));
    else if(s.equals("!")) o=nboOa(! argbo());
    else if(s.equals("!=")) o=nboOa(argd() != argd());
    else if(s.equals("<<")) o=ndOa(argi()<<argi());
    else if(s.equals(">>")) o=ndOa(argi()>>argi());
    else if(s.equals(">>>")) o=ndOa(argi()>>>argi());
    else if(s.equals(">")) o=nboOa(argd()>argd());
    else if(s.equals(">="))o=nboOa(argd()>=argd());
    else if(s.equals("<")) o=nboOa(argd()<argd());
    else if(s.equals("<="))o=nboOa(argd()<=argd());
    else if(s.equals("isodd"))
     {
      int i=argi();
      if(i==(int)((double)(i/2)*2)) o=nboOa(false);
      else o=nboOa(true);
     }
    else if(s.equals("iseven"))
     {
      int i=argi();
      if(i==(int)((double)(i/2)*2)) o=nboOa(true);
      else o=nboOa(false);
     }
    else if(s.equals("&")) o=ndOa(argi() & argi());
    else if(s.equals("&&")) o=nboOa(argbo() & argbo());
    else if(s.equals("|")) o=ndOa(argi() | argi());
    else if(s.equals("||")) o=nboOa(argbo() | argbo());
    else if(s.equals("abo")) o=bohp(argvn(),argbo());
    else if(s.equals("aboa")) o=nboaOa(argboa(1));
    else if(s.equals("dmd")) 
     {
      if(Tu.allturtles)
       {
        double dmd=tu.dmd;
        double dhmd=tu.dhmd;
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).dmd(dhmd,dmd);
       }
      else tu.dmd();
     }
    else if(s.equalsIgnoreCase("fd")||s.equalsIgnoreCase("forward"))
     {
      if(Tu.allturtles)
       {
        double f=argd();
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).fd(f);
       }
      else  tu.fd(argd());
     }
    else if(s.equalsIgnoreCase("bk")||s.equalsIgnoreCase("back")) tu.fd(-argd());
    else if(s.equals("fdbk")) tu.fdbk(argd());
    else if(s.equals("bkfd")) tu.bkfd(argd());
    else if(s.equals("tic")) tu.tic(argd());
    else if(s.equals("toc")) tu.toc(argd());
    else if(s.equals("fdpubk")) tu.fdpubk(argd());
    else if(s.equals("atuon")) Tu.allturtles=true;
    else if(s.equals("atuoff")) Tu.allturtles=false;
    else if(s.equalsIgnoreCase("rt"))
     {
      if(Tu.allturtles)
       {
        double r=argd();
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).rt(r);
       }
      else tu.rt(argd());
     }
    else if(s.equalsIgnoreCase("rti"))  tu.rt(180-argd());
    else if(s.equalsIgnoreCase("lt"))  tu.rt(-argd());
    else if(s.equalsIgnoreCase("lti"))  tu.rt(argd()-180 );
    else if(s.equalsIgnoreCase("rp")||s.equalsIgnoreCase("repeat")) repeat();
    else if(s.equalsIgnoreCase("pu")||s.equalsIgnoreCase("penup")) 
     {
      if(Tu.allturtles)
       {
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).pd(false);
       }
      else tu.pd(false);
     }
    else if(s.equalsIgnoreCase("pd")||s.equalsIgnoreCase("pendown")) 
     {
      if(Tu.allturtles)
       {
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).pd(true);
       }
      else tu.pd(true);
     }
    else if(s.equalsIgnoreCase("home")) 
     {
      if(argop())
       {
        sts=" ,"+sts;
        while(argc()) argTu().home();
        argcp();
       }
      else
       {
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).home();
       }
     }
    else if(s.equalsIgnoreCase("cs")||s.equalsIgnoreCase("cg")||s.equalsIgnoreCase("cl")||s.equalsIgnoreCase("clearscreen"))
     {
      if(tu.dd)
       {
        if(argop()) tu.cs(argKcp());
        else tu.cs();
       }
      else 
       {
        if(argop()) lc.clearscreen(argKcp());
        else lc.clearscreen();
        tu.d3dgrid(320,20,0,320,20,0,20,20,0);
        tu.cs3d();
       }
     }
    else if(s.equals("3d"))
     {
      tu.dd=false;
      lc.clearscreen();
      if(argop())
       {
        tu.d3dgrid(argi(),argci(),argci(),argci(),argci(),argci(),argcd(),argcd(),argcd());
        argcp();
       }
      else  tu.d3dgrid(320,20,0,320,20,0,20,20,0);
      tu.cs3d();
     }
    else if(s.equals("nhcs"))
     {
      if(argop()) tu.nhcs(argKcp());
      else tu.nhcs();
     }
    else if(s.equals("prsts"))  tta("sts:"+sts);
    else if(s.equals("return")) 
     {
      // if(argop()) { String r=gSbaf("(",")"); tta("return r:"+r); }
      //sts="";
      //tta("return requested");
      if(argop()) 
       {
        String r=gSbaf("(",")"); tta("return string inside():"+r); 
        o=nSOa(r);
        //tta("nSOa(r):"+Svo(o));
       }
      else o=null;
      //tta("in return    sts was :"+sts+"  sts set to empty");
      sts="";
      rtsflag=true;
     }
    else if(s.equals("scvp")) lc.scvp(argdP());
    else if(s.equals("gvp")) o=ndPOa(lc.gvp());
    else if(s.equals("gcvp")) o=ndPOa(lc.gcvp());
    else if(s.equals("resettransform")) lc.resettransform();
    else if(s.equals("sfm"))
     {
      tta("Heap size is "+Runtime.getRuntime().totalMemory());
      tta("Available memory: " + Runtime.getRuntime().freeMemory());
     }
    else if(s.equals("aLC"))
     {
      LC a=argLC(1);
      if(parent.lc==null)
       {
        lc=a;
        parent.lc=lc;
       }
     }
    else if(s.equals("asLC"))
     {
      lc=argLC(1);
      parent.lc=lc;
     }
    else if(s.equals("sLC"))
     {
      lc=argLC();
      parent.lc=lc;
      tu.lc=lc;
     }
    else if(s.equals("setabg")) tu.setABG(argopd(),argcd(),argcdcp());
    else if(s.equals("jfprep")) parent.jf.prep();
    else if(s.equals("jf")) parent.jf.FractalMaker();
    else if(s.equals("yaw")) tu.yaw(argd());
    else if(s.equals("syaw")) tu.syaw(argd());
    else if(s.equals("roll")) tu.roll(argd());
    else if(s.equals("sroll")) tu.sroll(argd());
    else if(s.equals("pitch")) tu.pitch(argd());
    else if(s.equals("spitch")) tu.spitch(argd());
    else if(s.equals("qcs"))
     {
      if(argop()) tu.qcs(argKcp());
      else tu.qcs();
      if(Tu.oo) tu.home();
     }
    else if(s.equals("q3dcs"))
     {
      if(argop()) tu.q3dcs(argKcp());
      else tu.q3dcs();
      if(Tu.oo) tu.home();
     }
    else if(s.equals("dons"))
     {
      lc.doffs=false;
      lc.dons=true;
     }
    else if(s.equals("doffs")) 
     {
      lc.doffs=true;
      lc.dons=false;
     }
    else if(s.equals("dobs"))
     {
      lc.doffs=true;
      lc.dons=true;
     }
    else if(s.equals("ds")) lc.ds();
    else if(s.equals("dS"))
     {
      String r=argS(2);
      if(argc()) tu.dS(r,argbo());
      else tu.dS(r,true);
     }
    else if(s.equals("dcS"))
     {
      String r=argS(2);
      if(argc()) tu.dcS(r,argbo());
      else tu.dcS(r,true);
     }
    else if(s.equals("dcvS"))
     {
      String r=argS(2);
      boolean b=true;
      double dd=1;
      if(argc()) 
       {
        b=argbo();
        if(argc()) dd=argd();
       }
      tu.dcvS(r,true,dd);
     }
    else if(s.equals("dlS"))
     {
      String r=argS(2);
      if(argc()) tu.dlS(r,argbo());
      else tu.dlS(r,true);
     }
    else if(s.equals("drS"))
     {
      String r=argS(2);
      if(argc()) tu.drS(r,argbo());
      else tu.drS(r,true);
     }
    else if(s.equals("ticS"))
     {
      argop();
      tu.ticS(argd(), argcS(2));
      argcp();
     }
    else if(s.equals("swdlS")) tu.swdlS(argS(2),argcd());
    else if(s.equals("swdS")) tu.swdS(argS(2),argcd());
    else if(s.equals("swftsize")) tu.swftsize(argS(2),argcd());
    else if(s.equals("dpS"))
     {
      String r=argS(2);
      if(argc()) tu.dpS(r,argbo());
      else tu.dpS(r,true);
     }
    else if(s.equals("dSs"))
     {
      String r=argS(2);
      if(argc()) tu.dSs(r,argd(),argcd(),argcd(),argcK(),0);
      else tu.dSs(r,0);
     }
    else if(s.equals("dcSs"))
     {
      String r=argS(2);
      if(argc()) tu.dSs(r,argd(),argcd(),argcd(),argcK(),1);
      else tu.dSs(r,1);
     }
    else if(s.equals("dpSs"))
     {
      String r=argS(2);
      if(argc()) tu.dSs(r,argd(),argcd(),argcd(),argcK(),2);
      else tu.dSs(r,2);
     }
    else if(s.equals("dSws"))
     {
      String r=argS(2);
      if(argc()) tu.dSws(r,argd(),argcd(),argcd(),argcK(),0,argbo());
      else tu.dSws(r,0,true);
     }
    else if(s.equals("dcSws"))
     {
      String r=argS(2);
      if(argc()) tu.dSws(r,argd(),argcd(),argcd(),argcK(),1,argbo());
      else tu.dSws(r,1,true);
     }
    else if(s.equals("dpSws"))
     {
      String r=argS(2);
      if(argc()) tu.dSws(r,argd(),argcd(),argcd(),argcK(),2,argbo());
      else tu.dSws(r,2,true);
     }
    else if(s.equals("mv")) tu.mv(argd());
    else if(s.equals("rfd")) tu.rfd(argd());
    else if(s.equals("tfd")) tu.tfd(argd());
    else if(s.equals("afd")) tu.afd(argd());
    else if(s.equals("srthome")) tu.srthome(argdP());
    else if(s.equals("rthome")) tu.rthome();
    else if(s.equalsIgnoreCase("st")||s.equalsIgnoreCase("showturtle")) tu.st();
    else if(s.equalsIgnoreCase("ht")||s.equalsIgnoreCase("hideturtle")) tu.ht();
    else if(s.equals("dt")) tu.drawtu();
    else if(s.equalsIgnoreCase("sh")||s.equalsIgnoreCase("setheading")) tu.sh(argd());
    else if(s.equalsIgnoreCase("spk")||s.equalsIgnoreCase("spc")||s.equalsIgnoreCase("setpencolor")) tu.spk(argK());
    else if(s.equalsIgnoreCase("sfk")||s.equalsIgnoreCase("sfc")||s.equalsIgnoreCase("setfloodcolor")) tu.sfk(argK());
    else if(s.equals("gpk")||s.equals("gpc")) o=nKOa(tu.pk);
    else if(s.equals("gfk")||s.equals("gfc")) o=nKOa(tu.fk);
    else if(s.equals("gpw")) o=ndOa(tu.pw);
    else if(s.equalsIgnoreCase("spw"))
     {
      if(Tu.allturtles)
       {
        double f=argd();
        Enumeration enk=Tuh.keys();
        while(enk.hasMoreElements()) ((Tu)Tuh.get((String)enk.nextElement())).spw(f);
       }
      else  tu.spw(argd());
     }
    else if(s.equalsIgnoreCase("setpensize"))
     {
      argosb();
      tu.spw(argd());
      argcd();
      argcsb();
     }
    else if(s.equals("iph"))
     {
      if(argop()) tu.iph(argdcp());
      else tu.iph();
     }
    else if(s.equals("ips"))
     {
      if(argop()) tu.ips(argdcp());
      else tu.ips();
     }
    else if(s.equals("ipv"))
     {
      if(argop()) tu.ipv(argdcp());
      else tu.ipv();
     }
    else if(s.equals("ipw"))
     {
      if(argop()) tu.ipw(argdcp());
      else tu.ipw();
     }
    else if(s.equals("shtwTu"))
     {
      dP mdp=argTu().gp();
      tu.shtw(mdp);
     }
    else if(s.equals("avshtwTu"))
     {
      d=avTuh(tu.gh(),tu.ghtw(argTu().gp()),argd());
      tu.sh(d);
     }
    else if(s.equals("mto")) tu.mto(argdP());
    else if(s.equals("xoron")) lc.xoron();
    else if(s.equals("xoroff")) lc.xoroff();
    else if(s.equals("aaon")) lc.aaon();
    else if(s.equals("aaoff")) lc.aaoff();
    else if(s.equals("sp"))
     {
      if(tu.dd) tu.sp(argdP());
      else tu.sp(argXYZ());
     }
    else if(s.equals("spmr")) tu.spmr(argdP());
    else if(s.equals("sphr")) tu.sphr(argdP());
    else if(s.equals("gp"))
     {
      if(tu.dd) o=ndPOa(new dP(tu.x,tu.y));
      else o=nXYZOa(new XYZ(tu.t3p));
     }
    else if(s.equals("gxp")) o=ndOa(tu.x);
    else if(s.equals("gyp")) o=ndOa(tu.y);
    else if(s.equals("gh")) o=ndOa(tu.gh());
    else if(s.equals("gyaw")) o=ndOa(tu.gyaw());
    else if(s.equals("gpitch")) o=ndOa(tu.gpitch());
    else if(s.equals("groll")) o=ndOa(tu.groll());
    else if(s.equals("ghtw")) o=ndOa(tu.ghtw(argdP()));
    else if(s.equals("grttw")) o=ndOa(tu.ghtw(argdP())-tu.gh());
    else if(s.equals("shtw")) 
     {
      if (tu.dd)     	o=ndOa(tu.shtw(argdP()));
      else o=ndOa(tu.shtw(argXYZ()));
     }
    else if(s.equals("gdto"))
     {
      if(tu.dd) o=ndOa(tu.gdto(argdP()));
      else o=ndOa(tu.gdto(argXYZ()));
     }
    else if(s.equals("dto")) 
     {
      if(tu.dd) tu.dto(argdP());
      else tu.dto(argXYZ());
     }
    else if(s.equals("angsub"))
     {
      double d=argd() -argcd();
      while(d<0) d+=360;
      o=ndOa(d);
     }
    else if(s.equals("drawtw")) tu.drawtw(argdP(),argd());
    else if(s.equals("rMod")) tu.rMod(false,false);
    else if(s.equals("rcMod")) tu.rMod(true,false);
    else if(s.equals("rocMod")||s.equals("rcoMod")) tu.rMod(true,true);
    else if(s.equals("roMod")) tu.rMod(false,true);
    else if(s.equals("nMod")) tu.nMod(argS(10,"da"));
    else if(s.equals("lMod")) 
     {
      teS(fio.lMod(argS(10,"da")));
      while(argc()) teS(fio.lMod(argS(10,"da")));
     }
    else if(s.equals("sMod"))
     {
      String n=argS(10,"da");
      tta("n:"+n);
      fio.sMod(n,Svo(dtv(n,3)));
      while(argc())
       {
        n=argS(10,"da");
        fio.sMod(n,Svo(dtv(n,3)));
       }
     }
    else if(s.equals("stSMod"))
     {
      String n=argS(10,"da");
      tta("n:"+n);
      fio.sMod(n+".wv",tu.swv);
      fio.sMod(n+".f",tu.sd);
      fio.sMod(n+".raw",tu.raw);
     }
    else if(s.equals("dPolyMod"))
     {
      boolean b=argop();
      String n=argS(10,"da");
      sts=n+"dp "+sts;
      double[] mda=argda();
      dP mdp=new dP(tu.gp());
      double ang=tu.gh();
      double scale=1.0;
      K kk=tu.pk;
      if(argc())
       {
        scale=argd();
        if(argc())
         {
          kk=argK();
          if(argc())
           {
            mdp=argdP();
            if(argc()) ang=argd();
           }
         }
       }
      lc.rdaPoly(mda,scale,kk,mdp,ang,lc.offsg,false);
      if(b) argcp();
     }
    else if(s.equals("fPolyMod"))
     {
      boolean b=argop();
      String n=argS(10,"da");
      sts=n+"dp "+sts;
      double[] mda=argda();
      dP mdp=new dP(tu.gp());
      double ang=tu.gh();
      double scale=1.0;
      K kk=tu.fk;
      if(argc())
       {
        scale=argd();
        if(argc())
         {
          kk=argK();
          if(argc())
           {
            mdp=argdP();
            if(argc()) ang=argd();
           }
         }
       }
      lc.rdaPoly(mda,scale,kk,mdp,ang,lc.offsg,true);
      if(b) argcp();
     }
    else if(s.equals("fdPolyMod"))
     {
      boolean b=argop();
      String n=argS(10,"da");
      sts=n+"dp "+sts;
      double[] lda=argda();
      dP mdp=new dP(tu.gp());
      double ang=tu.gh();
      double scale=1.0;
      K kk=tu.fk;
      if(argc())
       {
        scale=argd();
        if(argc())
         {
          kk=argK();
          if(argc())
           {
            mdp=argdP();
            if(argc()) ang=argd();
           }
         }
       }
      lc.rdaPoly(lda,scale,kk,mdp,ang,lc.offsg,true);
      lc.rdaPoly(lda,scale,kk,mdp,ang,lc.offsg,false);
      if(b) argcp();
     }
    else if(s.equals("dMod"))
     {
      boolean b=argop();
      double[] lda=argda();
      if(argc()) tu.dMod(lda,argd());
      else tu.dMod(lda,1);
      if(b) argcp();
     }
    else if(s.equals("for"))
     {
      if(! argop()) tta("for expecting ("); //)
      String sa=nnsToke();
      if(!sa.equals("=")) tta("for expecting = got:"+sa);
      dhp(argvn(),argd());
      sa=nnsToke();
      if(!sa.equals(";")) tta("for expecting ; got:"+sa);
      String forboo=gSu(";");
      String forinc=gSu(")");
      String forbody=gSb("{","}");
      Object[] mp=teS(forboo);
      while( ght(mp).equals("bo") && bovo(mp))
       {
        teS(forbody);
        teS(forinc);
        mp=teS(forboo);
       }
     }
    else if(s.equals("while"))
     {
      String forboo=gSb("(",")");
      String sb=gSb("{","}");
      Object[] mp=teS(forboo);
      while(ght(mp).equals("bo") && bovo(mp))
       {
        teS(sb);
        mp=teS(forboo);
       }
     }
    else if(s.equals("if"))
     {
      boolean bif=false;
      boolean done=argopbcp();
      String r=gSb("{","}");
      if(done) teS(r);
      String t=nnsToke();
      while(t.equals("elsif"))
       {
        if(! done) bif=argopbcp();
        else  gSb("(",")");
        r=gSb("{","}");
        if(! done && bif) 
         {
          done=true;
          teS(r);
         }
        t=nnsToke();
       }
      if(t.equals("else"))
       {
        r=gSb("{","}");
        if(! done) teS(r);
       }
      else sts=t+sts;
     }
    else if(s.equals("int")) o=ndOa(argi());
    else if(s.equals("ceil")) o=ndOa(Math.ceil(argd()));
    else if(s.equals("floor")) o=ndOa(Math.floor(argd()));
    else if(s.equals("rndto"))
     {
      boolean b=false;
      if(argop()) b=true;
      double dd=argd();
      if(argc()) dd=rndto(dd,argi());
      else dd=rndto(dd);
      if(b)argcp();
      o=ndOa(dd);
     }
    else if(s.equals("rint")) o=ndOa(Math.rint(argd()));
    else if(s.equals("round"))
     {
      boolean b=argop();
      double x=argd();
      double y=argcd();
      if(b) argcp();
      o=ndOa(y*Math.rint(x/y));
     }
    else if(s.equals("snap"))
     {
      boolean b=argop();
      dP a=argdP();
      if(b && argcp()) b=false;
      double snap=tu.snap;
      if(argc()) snap=argd();
      if(b) argcp();
      o=ndPOa(dP.snap(a,snap));
     }
    else if(s.equals("min")) d=minmaxave("min");
    else if(s.equals("max")) d=minmaxave("max");
    else if(s.equals("ave")) d=minmaxave("ave");
    else if(s.equals("time"))
     {
      tyma=System.currentTimeMillis();
      o=ndOa(tyma);
     }
    else if(s.equals("deltime"))
     {
      tymb=System.currentTimeMillis()-tyma;
      o=ndOa(tymb);
     }
    else if(s.equals("deldeltim"))
     {
      tymb=System.currentTimeMillis()-tyma;
      tyma=tymb;
      o=ndOa(tymb);
     }
    else if(s.equals("delsleep"))
     {
      tymb=(long)argd()-(System.currentTimeMillis()-tyma);
      if(tymb>0)schleep(tymb);
      o=ndOa(tymb);
     }
    else if(s.equals("deldelsleep"))
     {
      tymb=(long)argd()-(System.currentTimeMillis()-tyma);
      tyma=tymb;
      if(tymb>0)schleep(tymb);
      o=ndOa(tymb);
     }
    else if(s.equals("sleep")) schleep(argopdcp());
    else if(s.equals("pack")) 
     {
      LP bulp=(LP)LPh.get("lp1");
      bulp.packallkids();
     }
    else if(s.equals("rSlu"))
     {
      String n=argS(10,"Sl");
      if(Slh.containsKey(n)) tta("rSlu found");
      else tta(n+" is not a Slider"); 
     }
    else if(s.equals("aSl")) argSl(2);
    else if(s.equals("sLP"))
     {
      lp=argLP();
      parent.lp=lp;
     }
    else if(s.equals("aTu"))
     {
      Tu a=argTu(2);
      if(parent.tu==null)
       {
        tu=a;
        parent.tu=tu;
       }
     }
    else if(s.equals("sTu"))
     {
      tu=argTu();
      parent.tu=tu;
     }
    else if(s.equals("asTu"))
     {
      tu=argTu(2);
      parent.tu=tu;
     }
    else if(s.equals("gTu"))
     {
      String st=tu.name+Svo(tu);
      tta(st);
      o=nSOa(st);
     }
    else if(s.equals("sppr")) o=nSOa(argS(3));
    else if(s.equals("pr")||s.equals("prta0")) 
     {
      o=nSOa(argS(3));
      tta(Svo(o));
     }
    else if(s.equals("prta1"))
     {
      o=nSOa(argS(3));
      tta1(Svo(o));
     }
    else if(s.equals("zzz"))
     {
      zzz=argi();
      if(zzz ==0) schleepflag=false;
      else schleepflag=true;
     }
    else if(s.equals("Welcome")) Welcome();
    else if(s.equalsIgnoreCase("exit")||s.equalsIgnoreCase("bye"))  System.exit(0);
    else if(s.equalsIgnoreCase("mk")||s.equalsIgnoreCase("to"))
     {
      mkf=s;
      mk();
     }
    else if(s.equals("ct")||s.equals("cta"))
     {
      if(ta != null) 
       {
        ta.replaceRange("",0,ta.getText().length());
        ta.setCaretPosition(0);
       }
      sts="";
     }
    else if(s.equals("cta1"))
     {
      if(parent.ta1 != null)
       {
        parent.ta1.replaceRange("",0,parent.ta1.getText().length());
        parent.ta1.setCaretPosition(0);
       }
     }
    else if(s.equals("mkS")) 
     {
      String n=argS(true);
      tta("mkS n:"+n); 
     }
    else if(s.equals("ada")) argda(10);
    else if(s.equals("asha")) argsha(10);
    else if(s.equals("abo")) argbo();
    else if(s.equals("aS")) o=SlocorShp(argvn(),argS(2));
    else if(s.equals("aS")) o=SlocorShp(argvn(),argS(true));
    else if(s.equals("aSa")) argSa(1);
    else if(s.equals("aeSa")) 
     {
      String n=argS(2);
      String[] saa=null,sab=null,sac=null;
      if(Sah.containsKey(n)) saa=(String[])Sah.get(n);
      sab=argSa();
      sac=new String[saa.length + sab.length];
      int i=0,t=0;
      for(i=0;i<saa.length;i++) sac[t++]=saa[i];
      for(i=0;i<sab.length;i++) sac[t++]=sab[i];
      Sah.put(n,sac);
     }
    else if(s.equals("charat"))
     {
      char[] mc=argS(2).toCharArray();
      o=nSOa(String.valueOf(mc[argi()]));
     }
    else if(s.equals("lenofS")) o=ndOa(argS(2).length());
    else if(s.equals("Sai"))o=nSOa(argSa()[argi()]);
    else if(s.equals("SeqSai")) o=nboOa((argS(2)).equals(argSa()[argi()]));
    else if(s.equals("Saieq")) o=nboOa((argSa()[argi()]).equals(argS(2)));
    else if(s.equals("lenofSa"))o=ndOa(argSa().length);
    else if(s.equals("dPac")) o=nboOa(dP.dPac(argdPa(),argcdP()));
    else if(s.equals("XYZac")) 
     {
      //o=nboOa(dP.dPac(argdPa(),argcdP()));
     }
    else if(s.equals("gSbet"))
     {
      String mc=argS();
      String a=argS();
      String b=argS();
      String dd="";
      int x=mc.indexOf(a);
      if(x> -1)
       {
        mc=mc.substring(x+a.length());
        int y=mc.indexOf(b);
        if(y> -1) dd=mc.substring(0,y);
       }
      o=nSOa(dd);
     }
    else if(s.equals("fw"))
     {
      String mc=argS();
      int x=mc.indexOf(" ");
      if(x> -1)mc=mc.substring(0,x);
      o=nSOa(mc);
     }
    else if(s.equals("lw"))
     {
      String mc=argS();
      int x=mc.lastIndexOf(" ");
      if(x> -1)
       {
        if(x==mc.length()) mc="";
        else mc=mc.substring(x+1);
       }
      o=nSOa(mc);
     }
    else if(s.equals("gSbef"))
     {
      String mc=argS();
      String a=argS();
      String dd="";
      int x=mc.indexOf(a);
      if(x> -1)dd=mc.substring(0,x);
      o=nSOa(dd);
     }
    else if(s.equals("gSbey"))
     {
      String a=argS();
      String mc=argS();
      String dd="";
      int x=mc.indexOf(a);
      if(x> -1) dd=mc.substring(x+a.length());
      o=nSOa(dd);
     }
    else if(s.equals("contS"))
     {
      boolean b=false;
      if((argS(2)).indexOf(argS(2))!= -1) b=true;
     }
    else if(s.equals("foreach"))
     {
      String vn=argvn();
      String sa=argcvn();
      String sc=gSb("{","}");
      if(dPah.containsKey(sa))
       {
        dP[] dpa=dPahg(sa);
        for(int t=0;t<dpa.length;t++) 
         {
          dPh.put(vn,dpa[t]); 
          teS(sc); 
          dpa[t]=((dP)dPh.get(vn));
         }
       }
      else if(XYZah.containsKey(sa))
       {
        XYZ[] xyza=XYZahg(sa);
        for(int t=0;t<xyza.length;t++)
         {
          XYZh.put(vn,xyza[t]);
          teS(sc);
          xyza[t]=((XYZ)XYZh.get(vn));
         }
       }
      else if(PCLah.containsKey(sa))
       {
        PCL[] pcla=PCLahg(sa);
        for(int t=0;t<pcla.length;t++)
         {
          PCLh.put(vn,pcla[t]);
          teS(sc);
          pcla[t]=((PCL)PCLh.get(vn));
         }
       }
      else if(PCRah.containsKey(sa))
       {
        PCR[] a=PCRahg(sa);
        for(int t=0;t<a.length;t++)
         {
          PCRh.put(vn,a[t]);
          teS(sc);
          a[t]=((PCR)PCRh.get(vn));
         }
       }
      else if(Sah.containsKey(sa))
       {
        String[] a=Sahg(sa);
        for(int t=0;t<a.length;t++)
         {
          Sh.put(vn,a[t]);
          teS(sc);
          a[t]=((String)Sh.get(vn));
         }
       }
      else tta("Key not found:"+sa);
     }
    else if(s.equals("foreachSiSa"))
     {
      String vn=argvn();
      String[] fesa=argSa();
      String sc=gSb("{","}");
      for(int t=0;t<fesa.length;t++)
       {
        Sh.put(vn,fesa[t]);
        teS(sc);
        fesa[t]=((String)Sh.get(vn));
       }
     }
    else if(s.equals("foreachchariS"))
     {
      String vn=argvn();
      char[] a=argS(2).toCharArray();
      String sc=gSb("{","}");
      String build="";
      for(int t=0;t<a.length;t++)
       {
        Sh.put(vn,String.valueOf(a[t]));
        teS(sc);
        build+=((String)Sh.get(vn));
       }
     }
    else if(s.equals("repccrxfy")) 
     {
      String sa=argvn();
      String sb="";
      if(Sh.containsKey(sa)) sb=Shg(sa);
      else
       {
        sb=sa;
        sa="";
       }
      sb=sb.replace(argS(2).charAt(0),argS(2).charAt(0));
      if(! sa.equals("")) Sh.put(sa,sb);
      o=nSOa(sb);
     }
    else if(s.equals("repsubSwS"))
     {
      String sa=argvn();
      String sb="";
      if(Sh.containsKey(sa)) sb=Shg(sa);
      else 
       {
        sb=sa;
        sa="";
       }
      String rep=argS(2);
      String with=argS(2);
      int i=sb.indexOf(rep);
      String st="";
      while(i >-1)
       {
        st=st+sb.substring(0,i)+with;
        sb=sb.substring(i+rep.length());
        i=sb.indexOf(rep);
       }
      st=st+sb;
      if(! sa.equals("")) Sh.put(sa,st);
      o=nSOa(st);
     }
    else if(s.equals("contS"))
     {
      boolean b=false;
      if((argS(2)).indexOf(argS(2))!= -1) b=true;
      o=nboOa(b);
     }
    else if(s.equals("io")) o=ndOa((argS(2)).indexOf(argS(2)));
    else if(s.equals("iofi")) o=ndOa((argS(2)).indexOf(argS(2),argi()));
    else if(s.equals("eqic")) o=nboOa((argS(2)).equalsIgnoreCase(argS(2)));
    else if(s.equals("nenull")) o=nboOa(!(argS(2)).equals("null"));
    else if(s.equals("eqnull")) o=nboOa((argS(2)).equals("null"));
    else if(s.equals("ne")) o=nboOa(!(argS(1)).equals(argS(1)));
    else if(s.equals("eq")) o=nboOa((argS(2)).equals(argS(2)));
    else if(s.equals("sw"))o=nboOa((argS(2)).startsWith(argS(2)));
    else if(s.equals("ew"))o=nboOa((argS(2)).endsWith(argS(2)));
    else if(s.equals("chompSa"))
     {
      sarray=argSa();
      for(int i=0;i<sarray.length;i++) sarray[i]=sarray[i].trim();
      o=nSOa(sarray);
     }
    else if(s.equals("chompS")||s.equals("trimS"))
     {
      String st=argS(2);
      st=st.trim();
      o=nSOa(st);
     }
    else if(s.equals("concatS"))
     {
      String vn=argvn();
      o=dtv(vn,1);
      String r=ght(o);
      r=r.concat(argS(2));
      Sh.put(vn,r);
     }
    else if(s.equals("split"))
     {
      if(argop())
       {
        String r=argS(2);
        String vn=argvn();
        char t=(argS(2).toCharArray())[0];
        o=Sahp(vn,splitSiSabychar(r,t));
       }
      else
       {
        char[] a=argS(2).toCharArray();
        String vn=argcvn();
        String[] lsa=new String[a.length];
        for(int t=0;t<a.length;t++) lsa[t]=String.valueOf(a[t]);
        o=Sahp(vn,lsa);
       }
     }
    else if(s.equals("unshift"))
     {
      String a=argvn();
      if(Sah.containsKey(a)) o=unshiftS(a,argS(2));
      else if(dPah.containsKey(a)) o=unshiftdP(a,dPahg(a),argdP());
      else if(XYZah.containsKey(a)) o=unshiftXYZ(a,XYZahg(a),argXYZ());
      else if(PCLah.containsKey(a)) o=unshiftPCL(a,PCLahg(a),argPCL());
      else if(PCRah.containsKey(a)) o=unshiftPCR(a,PCRahg(a),argPCR());
     }
    else if(s.equals("pop"))
     {
      String a=argvn();
      if(Sah.containsKey(a)) o=popS(a);
      else if(dPah.containsKey(a)) o=popdP(a,dPahg(a));
      else if(XYZah.containsKey(a)) o=popXYZ(a,XYZahg(a));
      else if(PCLah.containsKey(a)) o=popPCL(a,PCLahg(a));
      else if(PCRah.containsKey(a)) o=popPCR(a,PCRahg(a));
     }
    else if(s.equals("push"))
     {
      String a=argvn();
      if(dPah.containsKey(a)) o=pushdP(a,dPahg(a),argcdP());
      else if(XYZah.containsKey(a)) o=pushXYZ(a,XYZahg(a),argcXYZ());
      else if(PCLah.containsKey(a)) o=pushPCL(a,PCLahg(a),argcPCL());
      else if(PCRah.containsKey(a)) o=pushPCR(a,PCRahg(a),argcPCR());
      //if(Sah.containsKey(a)) o=pushS(a,argcS(2));
      else o=pushS(a,argcS(2));
     }
    else if(s.equals("pushtts")) o=pushS("ttsave",argvn());
    else if(s.equals("shift"))
     {
      String a=argvn();
      if(Sah.containsKey(a)) o=shiftS(a);
      else if(dPah.containsKey(a)) o=shiftdP(a,dPahg(a));
      else if(XYZah.containsKey(a)) o=shiftXYZ(a,XYZahg(a));
      else if(PCLah.containsKey(a)) o=shiftPCL(a,PCLahg(a));
      else if(PCRah.containsKey(a)) o=shiftPCR(a,PCRahg(a));
     }
    else if(s.equals("regex"))
     {
      String sc=gSb("(",")");
      tta("Result:"+sc);
     }
    else if(s.equals("comp")) ndOa((argS(2)).compareTo(argS(2)));
    else if(s.equals("padbS"))
     {
      boolean b=argop();
      String a=argS(2);
      int i=argci();
      int j=a.length();
      if(i>j)
       {
        for(int ii=j;ii<i;ii++) a=" "+a;
       }
      if(b) argcp();
      o=nSOa(a);
     }
    else if(s.equals("padaS")) 
     {
      boolean b=argop();
      String a=argS(2);
      int i=argci();
      int j=a.length();
      if(i>j)
       {
        for(int ii=j;ii<i;ii++) a=a+" ";
       }
      if(b) argcp();
      o=nSOa(a);
     }
    else if(s.equals("Sdv"))
     {
      double dd=0;
      String r=argS(true);
      try
       {
        dd=Double.parseDouble(r);
       }
      catch (NumberFormatException e) { }
      o=nSOa(Svo(dd));
     }
    else if(s.equals("subS"))
     {
      boolean b=argop();
      String r=argS(true);
      int i=argci();
      if(i<0) i+=r.length();
      if(argc())
       {
        int j=argcicp();
        try { r=r.substring(i,j); }
        catch (StringIndexOutOfBoundsException e) { r=""; }
       }
      else
       {
        try { r=r.substring(i); }
        catch (StringIndexOutOfBoundsException e) { r=""; }
       }
      o=nSOa(r);
     }
    else if(s.equals("runtrig")) runTrig(argS(1));
    else if(s.equals("runsltrig"))
     {
      String n=argS(1);
      runTrig(n);
      Sl a=(Sl)Slh.get(n);
      a.busy=false;
      if(a.pending)  
       {
        runTrig(n);
        a.pending=false;
       }
     }
    else if(s.equals("Slt")) Slt(argS(0),argd());
    else if(s.equals("teS"))
     {
      o=nSOa(argS(2));
      teS(Svo(o));
     }
    else if(s.equals("newTeS"))
     {
      int i=100;
      String lts;
      if(argop())
       {
        i=argi(); 
        lts=argcScp(2);
       }
      else lts=argcScp(2);
      parent.newTeS(lts);
      schleep (i);
     }
    else if(s.equals("loadImg"))
     {
      // tta("Te. loadImg calling argImg(10) ");
      argImg(10);
     }
    else if(s.equals("loadpngImg")) 
     {
      String n=argS(1);
      Img i=Img.loadpng(argS(1));
      tta("Te.loadpngImg put n:"+n);
      Imgh.put(n,i);
     }
    else if(s.equals("aBu"))
     {
      argBu(2);
     }
    else if(s.equals("addLPBu"))
     {
      String du="aBu (tolp2,momentary,{\"tolp2\"},0,true,(0,63),lp1) aBu (tolp1,momentary,{\"tolp1\"},0,true,(0,63),lp2)";
      teS(du);
      du="mk dutolp2((tolp2) lp1.tl(500,0) lp2.tl(0,0) sLP lp2) mk dutolp1( (tolp1) lp2.tl(500,0) lp1.tl(0,0) sLP lp1)";
      teS(du);
      //aBu (tolp2,momentary,{"tolp2"},0,true,(0,63)) sLP lp2  aBu (tolp1,momentary,{"tolp1"},0,true,(0,63))
     }
    else if(s.equals("dImgBu"))
     {
      img=argImg();
      if(img==null) tta("img is null");
      else lbu.drawImg(img);
     }
    else if(s.equals("drawImg"))
     {
      boolean b=argop();
      String handle=argS(true);
      img=argImg(handle);
      dP ldp=img.rec.bl;
      double scale=100;
      double ang=0;
      dP dpb=new dP(0,0);
      if(argc()) ldp=argdP();
       {
        if(argc()) 
         {
          scale=argd();
          if(argc())
           {
            ang=argd();
            if(argc()) dpb=argdP();
           }
         }
       }
      if(b) argcp();
      if(img==null) tta("img is null");
      else if(! dpb.eq(new dP(0,0)))
       {
        tta("Te removed lc.drawImg(img,ldp,scale,ang,dpb)");
        // removed lc.drawImg(img,ldp,scale,ang,dpb);
       }
      else  lc.drawImg(img,ldp,scale,ang);
      if(img !=null)   img=null;
     }
    else if(s.equals("adP"))  o=ndPOa(argdP(1));
    else if(s.equals("aPCL")) o=nPCLOa(argPCL(1));
    else if(s.equals("aPCLa")) o=nPCLaOa(argPCLa(1));
    else if(s.equals("aPCR")) o=nPCROa(argPCR(1));
    else if(s.equals("aPCRa")) o=nPCRaOa(argPCRa(1));
    else if(s.equals("adPa")) o=ndPaOa(argdPa(10));
    else if(s.equals("aXYZa")) o=nXYZaOa(argXYZa(10));
    else if(s.equals("aCuCu"))
     {
      cucu=argCuCu(1);
      parent.cucu=cucu;
      parent.te.cucu=cucu;
      lc.edcucu=true;
      //  cucu.render();
      o=nCuCuOa(cucu);
     }
    else if(s.equals("sCuCu"))
     {
      cucu=argCuCu();
      parent.cucu=cucu;
      parent.te.cucu=cucu;
      lc.edcucu=true;
      cucu.render();
      o=nCuCuOa(cucu);
     }
    else if(s.equals("aQuCu"))
     {
      qucu=argQuCu();
      parent.qucu=qucu;
      parent.te.qucu=qucu;
      lc.edqucu=true;
      //  qucu.render();
      o=nQuCuOa(qucu);
     }
    else if(s.equals("sQuCu"))
     {
      qucu=argQuCu();
      parent.qucu=qucu;
      parent.te.qucu=qucu;
      lc.edqucu=true;
      qucu.render();
      o=nQuCuOa(qucu);
     }
    else if(s.equals("aBSCu"))
     {
      bscu=argBSCu();
      parent.bscu=bscu;
      parent.te.bscu=bscu;
      lc.edbscu=true;
      //  bscu.render();
      o=nBSCuOa(bscu);
     }
    else if(s.equals("sBSCu"))
     {
      bscu=argBSCu();
      parent.bscu=bscu;
      parent.te.bscu=bscu;
      lc.edbscu=true;
      bscu.render();
      o=nBSCuOa(bscu);
     }
    else if(s.equals("aXYZ"))  o=nXYZOa(argXYZ(1));
    else if(s.equals("aP"))   argP();
    else if(s.equals("dCi")) lc.rEll(argCi(),lc.offsg,1);
    else if(s.equals("fCi")) lc.rEll(argCi(),lc.offsg,2);
    else if(s.equals("fdCi")) lc.rEll(argCi(),lc.offsg,3);
    else if(s.equals("gpdCi")) lc.rEll(argCi(),tu.gp(),lc.offsg,1);
    else if(s.equals("gpfCi")) lc.rEll(argCi(),tu.gp(),lc.offsg,2);
    else if(s.equals("gpfdCi")) lc.rEll(argCi(),tu.gp(),lc.offsg,3);
    else if(s.equals("aRec"))  argRec(10);
    else if(s.equals("aSh")) o=nShOa(argSh(1));
    else if(s.equals("dSh")) argSh().dSh(); 
    else if(s.equals("fSh")) argSh().fSh(); 
    else if(s.equals("fpkSh")) argSh().fpkSh(); 
    else if(s.equals("dfSh")) argSh().dfSh(); 
    else if(s.equals("dcSh")) argSh().dcSh(); 
    else if(s.equals("fcSh")) argSh().fcSh(); 
    else if(s.equals("fpkcSh")) argSh().fpkcSh(); 
    else if(s.equals("dfcSh")) argSh().dfcSh(); 
    else if(s.equals("fRecfk")) 
     {
      Rec r=argRec();
      tta("Rec:"+Svo(r));
      lc.rRec(r,lc.offsg,true,r.fk);        
     }
    else if(s.equals("fRecpk")) 
     {
      Rec r=argRec();
      lc.rRec(r,lc.offsg,true,r.pk); 
     }
    else if(s.equals("fRec")) { lc.rRec(argopRec(),lc.offsg,true,argcKcp()); }
    else if(s.equals("csRec")) { lc.csRec(argopRec(),lc.offsg,true,argcKcp()); }
    else if(s.equals("gfRec")) 
     {
      lc.rRec(argopRec(),lc.offsg,argcdP(),argcK(),argcdP(),argcKcp()); 
     }
    else if(s.equals("dRecfk")) 
     {
      Rec r=argRec();
      lc.rRec(r,lc.offsg,false,r.fk);
     }
    else if(s.equals("dRecpk")) 
     {
      Rec r=argRec();
      lc.rRec(r,lc.offsg,false,r.pk);
     }
    else if(s.equals("dRec"))
     {
      boolean b=argop();
      Rec a=argRec();
      K lk=a.pk;
      if(argc()) lk=argK();
      if(b) argcp();
      lc.rRec(a,lc.offsg,false,lk);
     }
    else if(s.equals("mRec"))
     {
      boolean b=argop();
      Rec a=argRec();
      K lk=a.pk;
      lc.rRec(a,lc.offsg,false,lk);
      argc();
      a.setbl(argdP());
      lc.rRec(a,lc.offsg,false,lk);
      if(b) argcp();
     }
    else if(s.equals("cRec"))
     {
      rec=argRec();
      rec.setcp(rec.bl);
     }
    else if(s.equals("ReccontdP"))
     {
      rec=argopRec();
      dp=argcdPcp();
      o=nboOa(rec.contains(dp.p2d));
     }
    /*
    else if(s.equals("rbRec")) 
     {
      boolean b=argop();
      String n=argS(1);
      if(argc())
       {
        dP ldp=argdP();
        if(argc())Rech.put(n,lc.rbRec(ldp,argd()));
        else Rech.put(n,lc.rbRec(ldp));
       }
      else Rech.put(n,lc.rbRec());
      if(b) argcp();
     }
    */
    else if(s.equals("rbRec")) 
     {
      tta("Te  rbRec");
      Rec rec;
      boolean b=argop();
      String n=argS(1);
      if(argc())
       {
        dP ldp=argdP();
        if(argc()) rec=lc.rbRec(ldp,argd());
        else    rec=lc.rbRec(ldp);  	   
       }
      else 
       {
        tta("Te rbRec no comma args");
        rec=lc.rbRec();
       }
      if(rec != null)
       {
        tta("Te rbRec result:"+n+"  "+Svo(rec));
        Rech.put(n,rec);
        teS("dRec "+n);
       }
      else { tta("Te rbRec result is null"); }
      if(b) argcp();
     }
    else if(s.equals("rbstop")) 
     {
      lc.rbStop();
      tta("rb stopped");
     }
    else if(s.equals("saveImggif")) Img.gifEncode((Image)argImg(),argcS(1));
    else if(s.equals("saveImgpng"))
     {
      // was good w  Img.pngEncode((Image)argImg(),"C:/webroot/ajlogo/html/ajlogo/version3beta/images/"+argcS(1));
      Img.pngEncode((Image)argImg(),"/webroot/ajlogo/html/ajlogo/version3beta/images/"+argcS(1));
     }
    else if(s.equals("saveImgjpg")) Img.jpgEncode((Image)argImg(),argcS(1));
    else if(s.equals("pgdP")) o=nKOa(new K(lc.pgdP(argdP())));
    else if(s.equals("psdP")) 
     {
      dP ldp=argdP();
      K lk=new K();
      if(argc()) lk=argK();
      else  lk=tu.pk;
      lc.pssp(ldp.x,ldp.y,lk);
      o=nKOa(lk);
     }
    else if(s.equals("psgp"))
     {
      K lk=new K();
      if(argop())
       {
        lk=argK();
        argcp();
       }
      else  lk=tu.pk;
      lc.pssp((int)tu.x,(int)tu.y,lk);
      o=nKOa(lk);
     }
    else if(s.equals("pggp")) o=nKOa(new K(lc.pgsp((int)tu.x,(int)tu.y)));
    // else if(s.equals("pggp")) o=nKOa(new K(lc.pgdP(new dP(tu.x -.2 ,tu.y -8 ))));
    else if(s.equals("pgRec"))
     {
      boolean b=argop();
      String n=argS(10,"Img");
      Img a=Img.mkImg(lc.pixelGrab(lc.offsim,argcRec()));
      Imgh.put(n,a);
      if(b) argcp();
      o=nImgOa(a);
     }
    else if(s.equals("Recgif"))
     {
      boolean b=argop();
      Img a=Img.mkImg(lc.pixelGrab(lc.offsim,argRec()));
      Img.gifEncode(a,argcS(1));
      if(b) argcp();
      o=nImgOa(a);
     }
    else if(s.equals("ImgRecjpg"))
     {
      boolean b=argop();
      Image a=lc.pixelGrab(argImg(),argcRec());
      argc();
      String fn=argS();
      double qf=1;
      if(argc()) qf=argd();
      Img.jpgEncode(a,fn,qf);
      a.flush();
      a=null;
      if(b) argcp();
     }
    else if(s.equals("Recjpg"))
     {
      boolean b=argop();
      Rec lrec=argRec();
      argc();
      String fn=argS();
      double qf=1;
      if(argc()) qf=argd();
      Image a=lc.pixelGrab(lc.offsim,lrec);
      Img.jpgEncode(a,fn,qf);
      if(b) argcp();
     }
    else if(s.equals("Recpng"))
     {
      boolean b=argop();
      Img a=Img.mkImg(lc.pixelGrab(lc.offsim,argRec()));
      //  Img.pngEncode(a,argcS());
      // was commented out 	Img.pngEncode(lc.pixelGrab(lc.offsim,lc.rbRec()),"C:/webroot/ajlogo/html/ajlogo/version3beta/images/"+argS(1));
      argc();
      String fn=argS(1);
      if(Sh.containsKey(fn)) 
       {
        tta("bong");
        fn=(String)Sh.get(fn);
       }
      tta ( "Te.RecRecpng fn:"+fn);
      if(fn.indexOf("/") ==-1  && fn.indexOf("\\") ==-1)
       {
        // good w   tta("pngEncode adding C:/webroot/ajlogo/html/ajlogo/version3beta/images/");
        // good w fn="C:/webroot/ajlogo/html/ajlogo/version3beta/images/"+fn;
        tta("pngEncode adding /webroot/ajlogo/html/ajlogo/version3beta/images/");
        fn="/webroot/ajlogo/html/ajlogo/version3beta/images/"+fn;
       }
      Img.pngEncode(a,fn);
      if(b) argcp();
      o=nImgOa(a);
     }
    else if(s.equals("pff")) lc.pff();
    else if(s.equals("mff"))
     {
      boolean b=argop();
      dP ldp=argdP();
      K ka=argcK();
      K kb=new K(0,0,0);
      int m=1;
      if(argc())
       {
        m=argi();
        if(m==2) kb=new K(255,255,255);
        if(argc())
         {
          kb=argK();
          if(argc()) lc.mff(ldp,ka,kb,m,argK());
          else  lc.mff(ldp,ka,kb,m);
         }
        else  lc.mff(ldp,ka,kb,m);
       }
      else  lc.mff(ldp,ka,kb,m);
      if(b) argcp();
     }
    else if(s.equals("rbgif"))
     {
      Image a=lc.pixelGrab(lc.offsim,lc.rbRec());
      String n=argS(1);
      Img.gifEncode(a,n);
     }
    else if(s.equals("rbImg")) 
     {
      Img a=Img.mkImg(lc.pixelGrab(lc.offsim,lc.rbRec()));
      String n=argS(1);
      Imgh.put(n,a);
      o=nImgOa(a);
     }
    else if(s.equals("pImg"))
     {
      int[] ia=Img.gspix(argImg(),10,10,30,30);
      //Img b=Img.mkImg(30,30,ia);
      Img b=Img.mkImggy(30,30,ia);
      Imgh.put("woz",b);
      o=nImgOa(b);
     }
    else if(s.equals("rbpng"))
     {
      // good w Img.pngEncode(lc.pixelGrab(lc.offsim,lc.rbRec()),"C:/webroot/ajlogo/html/ajlogo/version3beta/images/"+argS(1));
      Img.pngEncode(lc.pixelGrab(lc.offsim,lc.rbRec()),"/webroot/ajlogo/html/ajlogo/version3beta/images/"+argS(1));
     }
    else if(s.equals("rbjpg"))
     {
      String fn=argS(1);
      double qf=1;
      if(argc()) qf=argd();
      Rec lrec=lc.rbRec();
      Image ig=lc.pixelGrab(lc.offsim,lrec);
      Img.jpgEncode(ig,fn,qf);
     }
    /*
    else if(s.equals("aAC")||s.equals("loadAC"))  argAC(1);
    else if(s.equals("loadplayAC")) play.playAC(fio.getAC(argS(true)));
    else if(s.equals("playAC")) play.playAC(argAC());
    else if(s.equals("loopAC")) play.loopAC(argAC());
    else if(s.equals("stopAC")) play.stopAC(argAC());
    else if(s.equals("playAu"))
     {
      //GraphAu graphau=new GraphAu(this,lc,fio.loadAIS("truecolors.wav"));
      //PlayAu playau=new PlayAu(fio.loadAIS("truecolors.wav"));
      //playau.start();
      //graphau.setsdline(playau.sdline);
      //graphau.start();
     }
    */
    else if(s.equals("aLF")) argLF(1);
    else if(s.equals("asLF"))
     {
      lf=argLF(1);
      parent.lf=lf;
     }
    else if(s.equals("sLF"))
     {
      lf=argLF();
      parent.lf=lf;
     }
    else if(s.equals("aLSpP")) argLSpP(1);
    else if(s.equals("asLSpP"))
     {
      lspp=argLSpP(1);
      parent.lspp=lspp;
     }
    else if(s.equals("sLSpP"))
     {
      lspp=argLSpP();
      parent.lspp=lspp;
     }
    else if(s.equals("aCC"))
     {
      boolean b=argop();
      String n=argS(2);
      int port=argci();
      argc();
      LSpP mlspp=argLSpP();
      argc();
      String pos=argS(2);
      if(b) argcp();
      CC lcc=new CC(n,parent.chatcodebase,port,mlspp,pos);
      lcc.start();
     }
    else if(s.equals("exec"))
     {
      tta("beegiiinn");
      o=nSaOa(exec(argS(2)));
     }
    else if(s.equals("xec"))
     {
      tta("beegiiinn");
      o=nSaOa(exec(argS(2)));
     }
    else if(s.equals("lprm")) exec("lprm all");
    else if(s.equals("plotS")) plotS(argS(2));
    else if(s.equals("plott")) 
     {
      boolean b=argop();
      if(b) plotS("S"+argi());
      plotS("P"+argcS(2));
      if(b) argcp();
     }
    else if(s.equals("plotSa")) plotSa(argSa());
    else if(s.equals("plotfile")) plotfile(argS());
    else if(s.equals("pl"))  o=ndOa(tu.pl);
    else if(s.equals("ploff")) tu.pl(0);
    else if(s.equals("plon")) tu.pl(1);
    else if(s.equals("plpd")) tu.pl(2);
    else if(s.equals("plpu")) tu.pl(3);
    else if(s.equals("pltofile")) tu.pl(4);
    else if(s.equals("mkplfile")) tu.pl(5);
    else if(s.equals("ppw"))  fio.ppw(argi());
    else if(s.equals("ppr"))  o=ndOa(fio.ppr());
    else if(s.equalsIgnoreCase("help")) TA.genhelp();
    else if(s.equalsIgnoreCase("edit")||s.equalsIgnoreCase("ed"))
     {
      boolean b=true;
      boolean ftt=true;
      while(b)
       {
        String n=argS(1);
        if(parent.ta1 !=null)
         {
          if(ftt)
           {
            parent.ta1.replaceRange("",0,parent.ta1.getText().length());
            ftt=false;
            LSpP a=(LSpP)LSpPh.get(ta.host);
            a.min();
            //tta1("Use F2 to exit the editor making the changes");
            //tta1("Use F3 to exit the editor and not keep changes");
            //tta1("Use F5 to 'execute' current line");
            //schleep(3000);
            parent.ta1.replaceRange("",0,parent.ta1.getText().length());
            parent.ta1.requestFocus();
           }
          if(Meth.containsKey(n))
           {
            String lrs=Methl(n,true);
            tta1(lrs);
           }
          else if(Slh.containsKey(n)) ((Sl)Slh.get(n)).ed();
          else if(TAh.containsKey(n)) ((TA)TAh.get(n)).ed();
          else if(CCh.containsKey(n)) ((CC)CCh.get(n)).ed();
          else if(Buh.containsKey(n)) ((Bu)Buh.get(n)).ed();
          else if(CCh.containsKey(n)) ((CC)CCh.get(n)).ed();
          else if(CuCuh.containsKey(n)) ((CuCu)CuCuh.get(n)).ed();
          else if(QuCuh.containsKey(n)) ((QuCu)QuCuh.get(n)).ed();
          else if(BSCuh.containsKey(n)) ((BSCu)BSCuh.get(n)).ed();
          else if(Tuh.containsKey(n)) ((Tu)Tuh.get(n)).ed();
          else if(Rech.containsKey(n)) ((Rec)Rech.get(n)).ed(n);
          else if(Shh.containsKey(n)) ((Sh)Shh.get(n)).ed(n);
          else if(Kh.containsKey(n)) ((K)Kh.get(n)).ed(n);
          else if(LPh.containsKey(n)) ((LP)LPh.get(n)).ed();
          else if(Cih.containsKey(n)) Ci.ed((Ci)Cih.get(n),n);
          else if(LCh.containsKey(n)) ((LC)LCh.get(n)).ed();
          else if(LSpPh.containsKey(n)) ((LSpP)LSpPh.get(n)).ed();
          //else if(FFTh.containsKey(n)) ((FFT)FFTh.get(n)).ed();
          else if(Wavh.containsKey(n)) ((Wav)Wavh.get(n)).ed();
          //else if(Waveh.containsKey(n)) ((Wave)Waveh.get(n)).ed();
          else if(Wavegraphh.containsKey(n)) ((Wavegraph)Wavegraphh.get(n)).ed();
          else if(Menuh.containsKey(n)) ((Menu)Menuh.get(n)).ed();
          else if(LSorth.containsKey(n)) ((LSort)LSorth.get(n)).ed();
          // else if(Auxh.containsKey(n)) ((Aux)Auxh.get(n)).ed();
          else if(Sch.containsKey(name)) ((Sc)Sch.get(name)).ed();
          else if(PPh.containsKey(name)) ((PP)PPh.get(name)).ed(name);
          //else if(XYZah.containsKey(name)) ((XYZ[])XYZah.get(name)).ed();
          // insert new Obj d20
          else
           {
            tta1("mk "+n+"(");
            ta1cte();
            ta1rcp();
            tta1("");
            tta1(")");
            ta1scp();
           }
         }
        b=argc();
       }
     }
    else if(s.equals("ZZ"))
     {
      if(ta !=null && ta1 !=null)
       {
        LSpP a=(LSpP)LSpPh.get(ta.host);
        a.ret();
        //LSpP b=(LSpP)LSpPh.get(a.host);
        //b.ret();
        parent.ta.requestFocus();
       }
      else tta("ZZ problem");
     }
    else if(s.equals("aTA")) argTA(1);
    else if(s.equals("asTA")||s.equals("sTA"))
     {
      TA a;
      if(s.equals("sTA")) a=argTA();
      else a=argTA(1);
      if(a.name.equals("ta"))
       {
        ta=a;
        parent.ta=a;
       }
      else if(a.name.equals("ta1"))
       {
        ta1=a;
        ta1.tecon=false;
        parent.ta1=a;
       }
     }
    else if(s.equals("aK")) o=nKOa(argK(10));
    else if(s.equals("welcome")) Welcome();
    else if(s.equals("sfilescodebase"))
     {
      try 
       {
        parent.filescodebase=new URL(argS(true));
        fio.filescodebase=parent.filescodebase;
       }
      catch (MalformedURLException e) {}
     }
    else if(s.equals("schatcodebase"))
     {
      try { parent.chatcodebase=new URL(argS(true)); }
      catch (MalformedURLException e) {}
     }
    else if(s.equals("gfilescodebase")) tta("filescodebase:"+parent.filescodebase);
    else if(s.equals("gchatcodebase")) tta("chatcodebase:"+parent.chatcodebase);
    else if(s.equals("load"))
     {
      String load=argS(true);
      String dudis="";
      if(argc()) dudis=argS(true);
      loadandrun(load,false);
      if(! dudis.equals(""))
       {
        tta("waiting...");
        schleep(1000);
        tta("running :"+dudis);
        teS(dudis);
       }
     }
    else if(s.equals("loadSa"))
     {
      String san=argS(true);
      argc();
      String fn=argS(true);
      String[] sa=fio.loadSa(fn);
      Sah.put(san,sa);
     }
    else if(s.equals("loadda"))
     {
      String dan=argS(true);
      argc();
      String fn=argS(true);
      tta("Te  loadda  dan:"+dan+" fn:"+fn);
      String[] sa=fio.loadSa(fn);
      Sa2da(sa,dan); // will put in dah.put dan
     }
    else if(s.equals("Sa2da"))
     {
      String sa=argS(true);
      String dan=argcS(true);
      Sa2da(sa,dan);
     }
    else if(s.equals("save")) save(argS(2));
    else if(s.equals("resavename")) tta(fio.resavename);
    else if(s.equals("savepc"))
     {
      fio.save(argS(2),Svo(teS("sppr pads"))+"\n"+ Svo(teS("sppr lynz"))+"\n");
     }
    else if(s.equals("gurli"))
     {
      String r=argvn();
      String t="bob";
      fio.gurli(argS());
      Sh.put(r,t);
      o=nSOa(t);
     }
    else if(s.equals("gurl"))
     {
      String r=argvn();
      String t=fio.getURL(argS());
      Sh.put(r,t);
      o=nSOa(t);
     }
    else if(s.equals("ropen")) fio.ropen(argS(),argS(2));
    else if(s.equals("readfile"))
     {
      Vector vec=new Vector();
      String n=argvn();
      tta("Te s is readfile  argvn:"+n);
      fio.ropen("tempreadfile",argcS(2));
      String r=fio.readLine("tempreadfile");
      while(r != null)
       {
        vec.addElement(r);
        r=fio.readLine("tempreadfile");
       }
      String[] ss=VectoSa(vec);
      Sah.put(n,ss);
      o=nSaOa(ss);
     }
    else if(s.equals("writefile"))
     {
      String[] sa=argSa();
      String fn=argS(2);
      fio.wopen("temp",fn);
      for(int t=0;t<sa.length;t++) fio.writeBytes("temp",sa[t]);
      fio.close("temp");
     }
    else if(s.equals("xstw"))
     {
      String fn="xstw.txt";
      fio.wopen("temp",fn);
      fio.writeBytes("temp","exit stw\n");
      fio.close("temp");
      System.exit(0);
     }
    else if(s.equals("readline"))
     {
      o=nSOa(fio.readLine(argS()));
     }
    else if(s.equals("readbyte")) o=ndOa(fio.readByte(argS()));
    else if(s.equals("readbe2byte"))
     {
      String fh=argS();
      o=ndOa((fio.readByte(fh)<<8)+fio.readByte(fh));
     }
    else if(s.equals("readbe2c2byte"))
     {
      String fh=argS();
      double a=(fio.readByte(fh)<<8)+fio.readByte(fh);
      tta("org a:"+a);
      if(a>0x8000) a-=0x10000;
      tta("new a:"+a);
      o=ndOa(a);
     }
    else if(s.equals("readle2byte"))
     {
      String fh=argS();
      o=ndOa(fio.readByte(fh)+(fio.readByte(fh)<<8));
     }
    else if(s.equals("readle2c2byte"))
     {
      String fh=argS();
      double a=fio.readByte(fh)+(fio.readByte(fh)<<8);
      if(a>0x8000) a-=0x10000;
      o=ndOa(a);
     }
    else if(s.equals("readbe4byte"))
     {
      String fh=argS();
      o=ndOa((fio.readByte(fh)<<24)+(fio.readByte(fh)<<16)+(fio.readByte(fh)<<8)+fio.readByte(fh));
     }
    else if(s.equals("readle4byte"))
     {
      String fh=argS();
      o=ndOa(fio.readByte(fh)+(fio.readByte(fh)<<8)+(fio.readByte(fh)<<16)+(fio.readByte(fh)<<24));
     }
    else if(s.equals("readbytefile"))
     {
      byte[] byarray=fio.readbytefile(argS(2));
      tta("byarray length:"+Svo(byarray.length));
     }
    else if(s.equals("writebytefile"))
     {
      byte[] bytea=new byte[1];
      fio.writebytefile(argS(2),bytea);
     }
    else if(s.equals("readchar"))
     {
      o=nSOa(Svo(fio.readByte(argS())));
     }
    else if(s.equals("writebyte")) fio.writeByte(argS(),argd());
    else if(s.equals("writebe2byte")) 
     {
      String fh=argS();
      long i=(long)argd();
      long j=i&0xff00;
      j>>>=8;
      fio.writeByte(fh,j);
      fio.writeByte(fh,i&0xff);
     }
    else if(s.equals("writebe2c2byte"))
     {
      String fh=argS();
      long i=(long)argd();
      if(i<0) i+=0x10000;
      long j=i&0xff00;
      j>>>=8;
      fio.writeByte(fh,j);
      fio.writeByte(fh,i&0xff);
     }
    else if(s.equals("writebe4byte"))
     {
      String fh=argS();
      long i=(long)argd();
      long j=i&0xff000000;
      j>>>=24;
      fio.writeByte(fh,j);
      j=i&0xff0000;
      j>>>=16;
      fio.writeByte(fh,j);
      j=i&0xff00;
      j>>>=8;
      fio.writeByte(fh,j);
      fio.writeByte(fh,i&0xff);
     }
    else if(s.equals("writele2byte"))
     {
      String fh=argS();
      long i=(long)argd();
      long j=i&0xff00;
      j>>>=8;
      fio.writeByte(fh,i&0xff);
      fio.writeByte(fh,j);
     }
    else if(s.equals("writele2c2byte"))
     {
      String fh=argS();
      long i=(long)argd();
      if(i<0) i+=0x10000; 
      long j=i&0xff00;
      j>>>=8;
      fio.writeByte(fh,i&0xff);
      fio.writeByte(fh,j);
     }
    else if(s.equals("writele4byte"))
     {
      String fh=argS();
      long i=(long)argd();
      fio.writeByte(fh,i&0xff);
      long j=i&0xff00;
      j>>>=8;
      fio.writeByte(fh,j);
      j=i&0xff0000;
      j>>>=16;
      fio.writeByte(fh,j);
      j=i&0xff000000;
      j>>>=24;
      fio.writeByte(fh,j);
     }
    else if(s.equals("writechar"))
     {
      String fh=argS();
      double dd=0;
      try { dd=(Double.valueOf(argS()).doubleValue()); }
      catch (NumberFormatException e) {}
      fio.writeByte(fh,dd);
     }
    else if(s.equals("rmfile"))fio.delete(argS(2));
    else if(s.equals("pwd")) tta(fio.pwd());
    else if(s.equals("wopen"))fio.wopen(argS(),argS(2));
    else if(s.equals("write"))fio.writeBytes(argS(),argS(2));
    else if(s.equals("writeline"))fio.writeBytes(argS(),argS(2).trim()+"\n");
    else if(s.equals("writelines"))
     {
      String fh=argS();
      String[] sa=argSa();
      for(int i=0;i<sa.length;i++) fio.writeBytes(fh,sa[i].trim()+"\n");
     }
    else if(s.equals("close"))fio.close(argS());
    else if(s.equals("rclose"))fio.rclose(argS());
    else if(s.equals("LCgif")) lc.saveLCgif(argS(1));
    else if(s.equals("LCpng")) lc.saveLCpng(argS(1));
    else if(s.equals("LCjpg"))
     {
      boolean b=argop();
      String fn=argS();
      double qf=1;
      if(argc()) qf=argd();
      lc.saveLCjpg(fn,qf);
      if(b) argcp();
     }
    else if(s.equals("resave")) save();
    else if(s.equals("sn"))
     {
      save();
     }
    else if(s.equals("bury"))
     {
      boolean b=argoc();
      sts=", "+sts;
      while(argc()) bury(nnsToke());
      if(b) argcc();
     }
    else if(s.equals("unbury"))
     {
      sts=", "+sts;
      while(argc()) unbury(nnsToke());
     }
    else if(s.equals("lbury")||s.equals("buried")||s.equals("listburied")) tta(lBury(7));
    else if(s.equals("ungroup"))
     {
      boolean b=argop();
      argc();
      sts=", "+sts;
      while(argc()) ungroup(nnsToke(),0);
      if(b) argcp();
     }
    else if(s.equals("rungroup"))
     {
      boolean b=argop();
      argc();
      sts=", "+sts;
      while(argc()) ungroup(nnsToke(),1);
      if(b) argcp();
     }
    else if(s.equals("unregroup"))
     {
      boolean b=argop();
      argc();
      sts=", "+sts;
      while(argc()) ungroup(nnsToke(),2);
      if(b) argcp();
     }
    else if(s.equals("group"))
     {
      String gname=nnsToke();
      if(! argoc()) tta ("expecting '{'");
      while(!argcc())
       {
        group(gname,nnsToke());
        argc();
       }
     }
    else if(s.equals("lgroup")||s.equals("groups")||s.equals("listgroups")) tta(lGroup());
    else if(s.equals("lMeth")||s.equals("list"))
     {
      String r=lMeth(false);
      o=nSOa(r);
      tta(r);
     }
    else if(s.equals("clearmost"))
     {
      if(argop()) clearmost(argScp(2));
      else clearmost("");
     }
    else if(s.equals("clearall"))
     {
      if(argop()) clearall(argScp(2));
      else clearall("");
     }
    else if(s.equals("drm")) rmlib("d"); 
    else if(s.equals("darm")) rmlib("da"); 
    else if(s.equals("sharm")) rmlib("sha"); 
    else if(s.equals("borm")) rmlib("bo"); 
    else if(s.equals("Srm")) rmlib("S"); 
    else if(s.equals("Sarm")) rmlib("Sa"); 
    else if(s.equals("Krm")) rmlib("K"); 
    else if(s.equals("LFrm")) rmlib("LF"); 
    else if(s.equals("TArm")) rmlib("TA"); 
    else if(s.equals("dPrm"))  rmlib("dP"); 
    else if(s.equals("LSpPrm"))  rmlib("LSpP"); 
    else if(s.equals("LScPrm")) rmlib("LScP"); 
    else if(s.equals("LLrm")) rmlib("LL"); 
    else if(s.equals("Slrm")) rmlib("Sl"); 
    else if(s.equals("Burm")) rmlib("Bu");
    else if(s.equals("LPrm")) rmlib("LP"); 
    else if(s.equals("LCrm")) rmlib("LC"); 
    else if(s.equals("CCrm")) rmlib("CC"); 
    else if(s.equals("XYZrm"))  rmlib("XYZ"); 
    else if(s.equals("Imgrm"))  rmlib("Img"); 
    else if(s.equals("Prm"))  rmlib("P"); 
    else if(s.equals("Recrm"))  rmlib("Rec"); 
    else if(s.equals("Turm"))  rmlib("Tu"); 
    else if(s.equals("Methrm")) rmlib("Meth");
    else if(s.equals("Methargrm")) rmlib("Metharg");
    else if(s.equals("Methbodyrm")) rmlib("Methbody");
    else if(s.equals("Trigsrm")) rmlib("Trigs");
    else if(s.equals("Cirm")) rmlib("Ci");
    else if(s.equals("Clrm")) rmlib("Cl");
    else if(s.equals("CuCurm")) rmlib("CuCu");
    else if(s.equals("QuCurm")) rmlib("QuCu");
    else if(s.equals("BSCurm")) rmlib("BSCu");
    else if(s.equals("FFTrm")) rmlib("FFT");
    else if(s.equals("Wavrm")) rmlib("Wav");
    else if(s.equals("Waverm")) rmlib("Wave");
    else if(s.equals("Wavegraphrm")) rmlib("Wavegraph");
    else if(s.equals("Menurm")) rmlib("Menu");
    else if(s.equals("LSortrm")) rmlib("LSort");
    else if(s.equals("Auxrm")) rmlib("Aux");
    else if(s.equals("Scrm")) rmlib("Sc");
    else if(s.equals("PPrm")) rmlib("PP");
    else if(s.equals("XYZarm")) rmlib("XYZa");
    // insert new Obj d3
    else if(s.equals("lFt"))
     {
      String[] Fta=(String[])Sah.get("Fta");
      for(int i=1;i<Fta.length;i++) tta(Fta[i]);
     }
    else if(s.equals("lall"))
     {
      tta(lMeth(false));
      tta(ld(0));
      tta(lda(0));
      tta(lsha(0));
      tta(lbo(0));
      tta(lboa(0));
      tta(lK(0));
      tta(lS(0));
      tta(lSa(0));
      tta(ltrigs());
      tta(lCuCu());
      tta(lQuCu());
      tta(lBSCu());
      tta(lTu());
      tta(lLF());
      tta(lLSpP());
      tta(lLScP());
      tta(lLL());
      tta(lSl());
      tta(lBu());
      tta(lLP());
      tta(lLC());
      tta(lCC());
      tta(lTA());
      tta(lP());
      tta(ldP());
      tta(ldPa());
      tta(lPCL());
      tta(lPCLa());
      tta(lPCR());
      tta(lPCRa());
      tta(lXYZ());
      tta(lImg());
      tta(lRec());
      tta(lSh());
      tta(lAC());
      tta(lCi());
      tta(lFFT());
      tta(lWav());
      tta(lWave());
      tta(lWavegraph());
      tta(lMenu());
      tta(lLSort());
      tta(lAux());
      tta(lSc());
      tta(lPP());
      tta(lXYZa());
      // insert new Obj d4
     }
    else if(s.equals("ld")) tta(ld(0));
    else if(s.equals("lda")) tta(lda(0));
    else if(s.equals("lsha")) tta(lsha(0));
    else if(s.equals("lbo")) tta(lbo(0));
    else if(s.equals("lboa")) tta(lboa(0));
    else if(s.equals("lK")) tta(lK(0));
    else if(s.equals("lS")) tta(lS(0));
    else if(s.equals("lSa")) tta(lSa(0));
    else if(s.equals("ltrigs")) tta(ltrigs());
    else if(s.equals("lTu")) tta(lTu());
    else if(s.equals("lCuCu")) tta(lCuCu());
    else if(s.equals("lQuCu")) tta(lQuCu());
    else if(s.equals("lBSCu")) tta(lBSCu());
    else if(s.equals("lLF")) tta(lLF());
    else if(s.equals("lLSpP")) tta(lLSpP());
    else if(s.equals("lLScP")) tta(lLScP());
    else if(s.equals("lLL")) tta(lLL());
    else if(s.equals("lSl")) tta(lSl());
    else if(s.equals("lBu")) tta(lBu());
    else if(s.equals("lLP")) tta(lLP());
    else if(s.equals("lLC")) tta(lLC());
    else if(s.equals("lCC")) tta(lCC());
    else if(s.equals("lTA")) tta(lTA());
    else if(s.equals("lP")) tta(lP());
    else if(s.equals("ldP")) tta(ldP());
    else if(s.equals("ldPa")) tta(ldPa());
    else if(s.equals("lPCL")) tta(lPCL());
    else if(s.equals("lPCLa")) tta(lPCLa());
    else if(s.equals("lPCR")) tta(lPCR());
    else if(s.equals("lPCRa")) tta(lPCRa());
    else if(s.equals("lXYZ")) tta(lXYZ());
    else if(s.equals("lImg")) tta(lImg());
    else if(s.equals("lRec")) tta(lRec());
    else if(s.equals("lSh")) tta(lSh());
    else if(s.equals("FiDi"))
     {
      o=nSOa(FiDi());
     }
    else if(s.equals("DiDi")) o=nSOa(DiDi());
    else if(s.equals("fidipath"))fidipath=argS();
    else if(s.equals("rm")) 
     {
      sts=","+sts;
      while(argc()) dtv(4);
     }
    else if(s.equals("lAC")) tta(lAC());
    else if(s.equals("lCi")) tta(lCi());
    else if(s.equals("lFFT")) tta("lFFT()");
    else if(s.equals("lWav")) tta("lWav() is depricated");
    else if(s.equals("lWave")) tta(lWave());
    else if(s.equals("lWavegraph")) tta(lWavegraph());
    else if(s.equals("lMenu")) tta("lMenu()");
    else if(s.equals("lLSort")) tta("needed lLSort()");
    else if(s.equals("lAux")) tta(lAux());
    else if(s.equals("lSc")) tta(lSc());
    else if(s.equals("lPP")) tta("lPP()");
    else if(s.equals("lXYZa"))
     {
      //tta("lXYZa()");
      tta(lXYZa());
     }
    // insert new Obj d5
    else if(s.equals("lprim")) tta(lprim());
    else if(s.equals("Primtest") ||s.equals( "ptest"))
     {
      String t=argvn();
      if(Primh.containsKey(t)) tta(t+" is a primitive");
      else tta(t+" isn't a primitive");
     }
    else if(s.equals("Methodtest") ||s.equals( "mtest"))
     {
      String t=argvn();
      if(Meth.containsKey(t)) tta(t+" is a method");
      else tta(t+" isn't a method");
     }
    else if(s.equals("rand")) o=ndOa(Math.random());
    else if(s.equals("irand"))   o=ndOa((int)(argi()*Math.random()));
    else if(s.equals("snod")) o=dhp("nod",nod=argi());
    else if(s.equals("mod")) o=ndOa(argd()%argd());
    else if(s.equals("div")) o=ndOa((int)(argd()/argd()));
    else if(s.equals("divpo"))
     {
      double x=argd();
      double y=argd();
      int z=0;
      if(x % y !=0) z=1;
      o=ndOa(z+(int)(x/y));
     }
    else if(s.equals("abs")) o=ndOa(Math.abs(argd()));
    else if(s.equals("radtodeg")) o=ndOa(argd()*RD);
    else if(s.equals("degtorad")) o=ndOa(argd()*DR);
    else if(s.equals("atan")) o=ndOa(RD*Math.atan(argd()));
    else if(s.equals("atan2")) o=ndOa(RD*Math.atan2(argd(),argd()));
    else if(s.equals("acos")) o=ndOa(RD*Math.acos(argd()));
    else if(s.equals("asin")) o=ndOa(RD*Math.asin(argd()));
    else if(s.equals("cos")) o=ndOa(Math.cos(argd()*DR));
    else if(s.equals("sin")) o=ndOa(Math.sin(argd()*DR));
    else if(s.equals("tan")) o=ndOa(Math.tan(argd()*DR));
    else if(s.equals("sqrt")) o=ndOa(Math.sqrt(argd()));
    else if(s.equals("logbt")) o=ndOa(Math.log(argd())/Math.log(10));
    else if(s.equals("pow")) o=ndOa(Math.pow(argopd(),argcdcp()));
    else if(s.equals("sss")) o=ndOa(Math.pow(Math.pow(argopd(),2)+Math.pow(argcdcp(),2),.5));
    else if(s.equals("exp")) o=ndOa(Math.exp(argd()));
    else if(s.equals("log")) o=ndOa(Math.log(argd()));
    else if(s.equals("find")) tta(find(argS(),""));
    else if(s.equals("replace")) tta(find(argS(),argS()));
    else if(s.equals("bongoff")) CC.bong=false;
    else if(s.equals("bongon")) CC.bong=true;
    else if(s.equals("logoff"))
     {
      if(cc !=null) cc.disconnect(s);
     }
    else if(s.equals("chat"))
     {
      if(cc !=null  && cc.chatlbu.label.equals("Join Chat")&& cc.cable)
       {
        cc.request=true;
        cc.setlabel("Trying to join Chat",false,1000);
        cc.chatlbu.i++;
        cc.chatlbu.render();
       }
     }
    else if(s.equals("savechat")) fio.savechat(argS(2),cc.ta3.getText());
    else if(s.equals("port")) cc.setport(argi());
    else if(s.indexOf("@")==0)
     {
      String t=sts;
      sts="";
      if(parent.cc.ta2 !=null)
       {
        if(t.indexOf("!")==0) teS(t.substring(1));
        parent.cc.tta2(t);
        parent.cc.sendo(t);
       }
      else tta("Join chat first, if possible");
     }
    else if(s.equals("dgrid")) tu.dgrid();
    else if(s.equals("gridoff")) tu.gridoff();
    else if(s.equals("d3dgrid")) tu.d3dgrid(320,20,0,320,20,0,20,20,0);
    else if(s.equals("aCi")) o=nCiOa(argCi(1));
    else if(s.equals("aFFT"))
     {
      fft=argFFT(1);
      parent.fft=fft;
      parent.te.fft=fft;
      o=nFFTOa(fft);
     }
    else if(s.equals("aLSort"))
     {
      lsort=argLSort(1);
      parent.lsort=lsort;
      parent.te.lsort=lsort;
      o=nLSortOa(lsort);
     }
    else if(s.equals("sWav"))  // what why how
     {
      wu=argWav();
      parent.wu=wu;
      parent.te.wu=wu;
      lc.edwu=true;
      wu.lc=lc;
      wu.tu=tu;
      o=nWavOa(wu);
     }
    else if(s.equals("aWav")) 
     {
    	tta("aWav is depricated");
    	/*      wu=argWav(1);
      parent.wu=wu;
      parent.te.wu=wu;
      lc.edwu=true; 
      wu.lc=lc;
      wu.tu=tu;
      o=nWavOa(wu); */
     }
    else if(s.equals("aWave")) 
     {
      wue=argWave();
      parent.wue=wue;
      parent.te.wue=wue;
      lc.edwue=true; 
      wue.lc=lc;
      wue.tu=tu;
      o=nWaveOa(wue);
     }
    else if(s.equals("aWavegraph")) 
    {
     wuegraph=argWavegraph();
     parent.wuegraph=wuegraph;
     parent.te.wuegraph=wuegraph;
     lc.edwuegraph=true; 
     wuegraph.lc=lc;
     wuegraph.tu=tu;
     o=nWavegraphOa(wuegraph);
    }

    else if(s.equals("loadWav")) 
     {
      Wav a=null;
      String name=argS();
      //tta("loadWav name:"+name);
      String fnp="";
      String	fn=argcS(); 
      if(fn.equals("FiDi")) fn=FiDi();
      if(fn.indexOf(".datxt")> -1)
       {
        // tta("Wav file is .datxt");
        if(fn.indexOf("audio")== -1)
         {
          fnp="/webroot/ajlogo/html/ajlogo/version3beta/audio/";
          fn=fnp+fn;
         }
        String[] sa=fio.loadSa(fn);//
        double[] da =Sa2da(sa);
        a=new Wav(parent,name,da);
        if(a != null) Wavh.put(name,a);
       }
      else if(fn.indexOf(".wav")>-1)
       {
        tta("Wav file is .wav"); 
        fnp="/webroot/ajlogo/html/ajlogo/version3beta/audio/";
        fn=fnp+fn;
        a=new Wav(parent,name,fn);  
        if(a != null) Wavh.put(name,a);
       } 
      else
       {
        tta("loadWav file bad extension:"+fn);
       }
      /*
      wu=argWav(1);
      parent.wu=wu;
      parent.te.wu=wu;
      lc.edwu=true; 
      wu.lc=lc;
      wu.tu=tu;
      o=nWavOa(wu);
      */
     }
    else if(s.equals("loadWave")) 
    {
     Wave a=null;
     String name=argS();
     //tta("loadWav name:"+name);
     String fnp="";
     String	fn=argcS(); 
     if(fn.equals("FiDi")) fn=FiDi();
     if(fn.indexOf(".datxt")> -1)
      {
       // tta("Wav file is .datxt");
       if(fn.indexOf("audio")== -1)
        {
         fnp="/webroot/ajlogo/html/ajlogo/version3beta/audio/";
         fn=fnp+fn;
        }
       String[] sa=fio.loadSa(fn);//
       double[] da =Sa2da(sa);
      // readd  a=new Wave(parent,name,da);
       if(a != null) Wavh.put(name,a);
      }
     else if(fn.indexOf(".wav")>-1)
      {
       tta("Wav file is .wav"); 
       fnp="/webroot/ajlogo/html/ajlogo/version3beta/audio/";
       fn=fnp+fn;
       // readd a=new Wave(parent,name,fn);  
       if(a != null) Waveh.put(name,a);
      } 
     else
      {
       tta("loadWave file bad extension:"+fn);
      }
     /*
     wu=argWav(1);
     parent.wu=wu;
     parent.te.wu=wu;
     lc.edwu=true; 
     wu.lc=lc;
     wu.tu=tu;
     o=nWavOa(wu);
     */
    }
    else if(s.equals("saveWav")) argWav().save(argS(true));
    else if(s.equals("saveWave")) argWave().save(argS(true));
    else if(s.equals("saveWavegraph")) argWavegraph().save(argS(true));
    else if(s.equals("graphWav"))
     {
      boolean b=argop();
      Wav w=argWav();
      if(argc())
       {
        //tu.graphWav(w,argi(),argcd(),argcd());
        w.graph(argi(),argci());
       }
      //else tu.graphWav(w);
      else w.graph();
      //tu.graphWav(argWav(),argci(),argcd(),argcd());
      // wav,bx,c,off
      if(b) argcp();
     }
    else if(s.equals("rbWav"))
     {
      Rec a=lc.rbRec();
      //tu.graphWav(argWav(),a.xi,a.w,0);
      tta("a:"+a+"  a.xi:"+a.xi+"  a.w:"+a.w);
     }
    else if(s.equals("graphWave"))
    {
    tta("reconstitute");
    }
   else if(s.equals("rbWave"))
    {
     Rec a=lc.rbRec();
     //tu.graphWav(argWav(),a.xi,a.w,0);
     tta("a:"+a+"  a.xi:"+a.xi+"  a.w:"+a.w);
    }
    else if(s.equals("aMenu"))
     {
      boolean b=true;
      while(b)
       {
        argMenu(2);
        b=argc();
       }
     }
    else if(s.equals("aMenu")) o=nMenuOa(argMenu(1));
    else if(s.equals("aLSort")) o=nLSortOa(argLSort(1));
    else if(s.equals("aAux"))
     {
      /*
      aux=argAux(1);
      parent.aux=aux;
      parent.te.aux=aux;
      o=nAuxOa(aux);
      */
     }
    else if(s.equals("lknobs"))
     {
      tta("list of knobs:");
      for(int i=0;i<24;i++)
       {
        tta("i:"+i+" "+Sl.knobs[i]);
       }
     }
    else if(s.equals("aSc")) o=nScOa(argSc(1));
    else if(s.equals("aPP")) o=nPPOa(argPP(1));
    else if(s.equals("aXYZa")) o=nXYZaOa(argXYZa(1));
    else if(s.equals("sSa"))
     {
      String[] sa=argSa();
      int count=sa.length;
      String temp="";
      for (int i = 0; i < count; i++) 
       {
        for (int j = i + 1; j < count; j++) 
         { 
          if (sa[i].compareTo(sa[j]) > 0) 
           {
            temp = sa[i];
            sa[i] = sa[j];
            sa[j] = temp;
           }
         }
       }
      // for (int i = 0; i < count; i++) { tta("i:"+i+" sa[i]:"+sa[i]);      }
     }
    // insert new Obj d2
    else 
     {
      o=dtv(s,5);
      if(o==null || o[0] ==null || o[1]==null); //tta("bottom end fin o is null");
      else
       {
        String ht=ght(o);
        if(ht.equals("S") && s.equals(Svo(o)))
         {
          if(currentMeth.equals("")) tta("Don't know about:"+s+" in the top level"); 
          else tta("Don't know about:"+s+" in the Method:"+currentMeth); 
         }
       }
     }
    return o;
   }
  String[] splitSiSabychar(String r,char c)
   {
    int i=0;
    Vector vec=new Vector();
    while(r.indexOf(c)>-1)
     {
      int j=r.indexOf(c);
      if(j>0) vec.addElement(r.substring(0,j));
      if(r.length() > j) r=r.substring(j+1);
      else r="";
     }
    if(! r.equals("")) vec.addElement(r);
    String [] sa=new String[vec.size()];
    for(int x=0;x<vec.size();x++) sa[x]=(String)vec.elementAt(x);
    return sa;
   }
  void drm(){ dh.clear(); }
  void darm(){ dah.clear(); }
  void sharm(){ shah.clear(); }
  void brm(){ rmlib("bo"); }
  void Srm(){ rmlib("S"); }
  void Sarm(){ rmlib("Sa"); }
  void Krm(){ rmlib("K"); }
  void LFrm(){ rmlib("LF"); }
  void TArm(){ rmlib("TA"); }
  void dPrm() { rmlib("dP"); }
  void LSpPrm() { rmlib("LSpP"); }
  void LScPrm(){ rmlib("LScP"); }
  void LLrm(){ rmlib("LL"); }
  void Slrm(){ rmlib("Sl"); }
  void Burm(){ rmlib("Bu");}
  void LPrm(){ rmlib("LP"); }
  void LCrm(){ rmlib("LC"); }
  void CCrm(){ rmlib("CC"); }
  void XYZrm() { rmlib("XYZ"); }
  void Imgrm() { rmlib("Img"); }
  void Prm() { rmlib("P"); }
  void Recrm() { rmlib("Rec"); }
  void Turm() { rmlib("Tu"); }
  void Gprm() { Gph=new Hashtable(); }
  void Gmrm() { Gmh=new Hashtable(); }
  void Buryrm() { Buryh=new Hashtable(); }
  void Methrm() 
   {
    rmlib("Meth");
    rmlib("Metharg");
    rmlib("Methbody");
    rmlib("Trig");
   }
  void Cirm() { Cih=new Hashtable(); }
  void QuCurm() { QuCuh=new Hashtable(); }
  void BSCurm() { BSCuh=new Hashtable(); }
  void FFTrm() { FFTh=new Hashtable(); }
  void Wavrm() { Wavh=new Hashtable(); }
  void Waverm() { Waveh=new Hashtable(); }
  void Wavegraphrm() { Wavegraphh=new Hashtable(); }
  void Menurm() { Menuh=new Hashtable(); }
  void LSortrm() { LSorth=new Hashtable(); }
  void Auxrm() { Auxh=new Hashtable(); }
  void Scrm() { Sch=new Hashtable(); }
  void PPrm() { PPh=new Hashtable(); }
  void XYZarm() { XYZah=new Hashtable(); }
  // insert new Obj d7
  void rmlib(String type)
   {
    Enumeration enk=null;
    if(type.equals("K")) enk=Kh.keys();
    else if(type.equals("LF")) enk=LFh.keys();
    else if(type.equals("LL")) enk=LLh.keys();
    else if(type.equals("Sl")) enk=Slh.keys();
    else if(type.equals("Bu")) enk=Buh.keys();
    else if(type.equals("LP")) enk=LPh.keys();
    else if(type.equals("LC")) enk=LCh.keys();
    else if(type.equals("CC")) enk=CCh.keys();
    else if(type.equals("LSpP")) enk=LSpPh.keys();
    else if(type.equals("LScP")) enk=LScPh.keys();
    else if(type.equals("TA")) enk=TAh.keys();
    else if(type.equals("Rec")) enk=Rech.keys();
    else if(type.equals("Sh")) enk=Shh.keys();
    else if(type.equals("dP")) enk=dPh.keys();
    else if(type.equals("CuCu")) enk=CuCuh.keys();
    else if(type.equals("QuCu")) enk=QuCuh.keys();
    else if(type.equals("BSCu")) enk=BSCuh.keys();
    else if(type.equals("dPa")) enk=dPah.keys();
    else if(type.equals("PCL")) enk=PCLh.keys();
    else if(type.equals("PCLa")) enk=PCLah.keys();
    else if(type.equals("PCR")) enk=PCRh.keys();
    else if(type.equals("PCRa")) enk=PCRah.keys();
    else if(type.equals("XYZ")) enk=XYZh.keys();
    else if(type.equals("Img")) enk=Imgh.keys();
    else if(type.equals("P")) enk=Ph.keys();
    else if(type.equals("Tu")) enk=Tuh.keys();
    else if(type.equals("bo")) enk=boh.keys();
    else if(type.equals("d"))
     {
      dh.clear();
      return;
     }
    else if(type.equals("S")) enk=Sh.keys();
    else if(type.equals("Sa")) enk=Sah.keys();
    else if(type.equals("Meth")) 
     {
      enk=Meth.keys();
     }
    else if(type.equals("Metharg")) enk=Methargh.keys();
    else if(type.equals("Methbody")) enk=Methbodyh.keys();
    else if(type.equals("Trig")) enk=Trigh.keys();
    else if(type.equals("Ci")) enk=Cih.keys();
    else if(type.equals("FFT")) enk=FFTh.keys();
    else if(type.equals("Wav")) enk=Wavh.keys();
    else if(type.equals("Wave")) enk=Waveh.keys();

    else if(type.equals("Wavegraph")) enk=Wavegraphh.keys();

    else if(type.equals("Menu")) enk=Menuh.keys();
    else if(type.equals("LSort")) enk=LSorth.keys();
    else if(type.equals("Aux")) enk=Auxh.keys();
    else if(type.equals("Sc")) enk=Sch.keys();
    else if(type.equals("PP")) enk=PPh.keys();
    else if(type.equals("XYZa")) enk=XYZah.keys();
    // insert new Obj d8
    else
     {
      tta("rm type error :"+type);
      return;
     }
    while(enk.hasMoreElements())
     {
      String n=(String)enk.nextElement();
      if(!n.equals("Fta") && !n.equals("chatcc0") && ! n.equals("nod")  && ! n.equals("pi")  && ! n.equals("PI")) teS("rm "+n);
     }
   }
  String ld() { return ld(0); }
  String ld(int m){ return llib("d",m); }
  String lda() { return lda(0); }
  String lda(int m){ return llib("da",m); }
  String lsha() { return lsha(0); }
  String lsha(int m){ return llib("sha",m); }
  String lbo() { return lbo(0); }
  String lbo(int m){ return llib("bo",m); }
  String lboa() { return lboa(0); }
  String lboa(int m){ return llib("boa",m); }
  String lS() { return lS(0); }
  String lS(int m){ return llib("S",m); }
  String lSa() { return lSa(0); }
  String lSa(int m){ return llib("Sa",m); }
  String lK() { return lK(0); }
  String lK(int m){ return llib("K",m); }
  String lLF() { return lLF(0); }
  String lLF(int m){ return llib("LF",m); }
  String lTA() { return lTA(0); }
  String lTA(int m){ return llib("TA",m); }
  String lCuCu() { return lCuCu(0); }
  String lCuCu(int m) { return llib("CuCu",m); }
  String lQuCu() { return lQuCu(0); }
  String lQuCu(int m) { return llib("QuCu",m); }
  String lBSCu() { return lBSCu(0); }
  String lBSCu(int m) { return llib("BSCu",m); }
  String ldP() { return ldP(0); }
  String ldP(int m) { return llib("dP",m); }
  String ldPa() { return ldPa(0); }
  String ldPa(int m) { return llib("dPa",m); }
  String lPCL() { return lPCL(0); }
  String lPCL(int m) { return llib("PCL",m); }
  String lPCLa() { return lPCLa(0); }
  String lPCLa(int m) { return llib("PCLa",m); }
  String lPCR() { return lPCR(0); }
  String lPCR(int m) { return llib("PCR",m); }
  String lPCRa() { return lPCRa(0); }
  String lPCRa(int m) { return llib("PCRa",m); }
  String lLSpP() { return lLSpP(0); }
  String lLSpP(int m) { return llib("LSpP",m); }
  String lLScP() { return lLScP(0); }
  String lLScP(int m){ return llib("LScP",m); }
  String lLL() { return  lLL(0); }
  String lLL(int m){ return llib("LL",m); }
  String lBu() { return  lBu(0); }
  String lBu(int m){ return llib("Bu",m);}
  String lLP() { return  lLP(0); }
  String lLP(int m){ return llib("LP",m); }
  String lLC() { return  lLC(0); }
  String lLC(int m){ return llib("LC",m); }
  String lCC() { return  lCC(0); }
  String lCC(int m){ return llib("CC",m); }
  String lXYZ() { return lXYZ(0); }
  String lXYZ(int m) { return llib("XYZ",m); }
  String lImg() { return lImg(0); }
  String lImg(int m) { return llib("Img",m); }
  String lP() { return lP(0); }
  String lP(int m) { return llib("P",m); }
  String lRec() { return lRec(0); }
  String lRec(int m) { return llib("Rec",m); }
  String lSh() { return lSh(0); }
  String lSh(int m) { return llib("Sh",m); }
  String lTu() { return lTu(0); }
  String lTu(int m) { return llib("Tu",m); }
  String lprim() { return lprim(0); }
  String lprim(int m) { return llib("Prim",m); }
  String lAC() { return lAC(0); }
  String lAC(int m) { return llib("AC",m); }
  String lBury() { return lBury(0); }
  String lBury(int m) { return llib("Bury",m); }
  String lSl() { return  lSl(7); }
  String lSl(int m)
   {
    tta("start lSl");
    Enumeration enk=Slh.keys();
    String s="";
    String t="";
    int n=m;
    if(m==8) n=7;
    while(enk.hasMoreElements())
     {
      String ln=(String)enk.nextElement();
      if(Buryh.containsKey(ln)) continue;
      Object[] o=dtv(ln,n);
      if(m==0|| m==3) s +=Svo(o)+"\n";
      else if(m==1) s +=" "+Svo(o);
      else if(m==7) 
       {
        t=Svo(o)+"\n";
        s+=t;
        tta("lSl mode 7 name:"+name+" t:"+t);
       }
      else if(m==8) 
       {
        if(((Sl)Slh.get(ln)).save) 
         {
          t=Svo(o)+"\n";
          s+=t;
          tta("lSl mode 8 name:"+name+" t:"+t);
         }
        else tta("lSl not to be saved");
       }
     }
    tta("lSl final s:"+s);
    return s;
   }
  String lCi() { return lCi(0); }
  String lCi(int m) { return llib("Ci",m); }
  String lFFT() { return lFFT(0); }
  String lFFT(int m) { return llib("FFT",m); }
  String lWav() { return lWav(0); }
  String lWav(int m) { return llib("Wav",m); }
  String lWave() { return lWave(0); }
  String lWave(int m) { return llib("Wave",m); }
  String lWavegraph() { return lWavegraph(0); }
  String lWavegraph(int m) { return llib("Wavegraph",m); }
  String lMenu() { return lMenu(0); }
  String lMenu(int m) { return llib("Menu",m); }
  String lLSort() { return lLSort(0); }
  String lLSort(int m) { return llib("LSort",m); }
  String lAux() { return lAux(0); }
  String lAux(int m) { return llib("Aux",m); }
  String lSc() { return lSc(0); }
  String lSc(int m) { return llib("Sc",m); }
  String lPP() { return lPP(0); }
  String lPP(int m) { return llib("PP",m); }
  String lXYZa() { return lXYZa(0); }
  String lXYZa(int m) { return llib("XYZa",m); }
  // insert new Obj d6
  void ungroup(String member,int mode)
   {
    // mode 0 simple, 1 recursive, 2 reattach
    boolean b=true;
    String par=(String)Gph.get(member);
    String group=(String)Gmh.get(par);
    StringTokenizer st=new StringTokenizer(group,",",false);
    String s="";
    String newgroup="";
    while(st.hasMoreTokens())
     {
      s=st.nextToken();
      if(s.equals(member)) b=false;
      else 
       {
        if(newgroup.equals(""))newgroup=s;
        else newgroup+=","+s;
       }
     }
    Gph.remove(member);
    if(! newgroup.equals("")) Gmh.put(par,newgroup);
    if(Gmh.containsKey(member))
     {
      b=false;
      String childgroup=(String)Gmh.get(member);
      st=new StringTokenizer(childgroup,",",false);
      while(st.hasMoreTokens())
       {
        s=st.nextToken();
        if(mode==1) ungroup(s,1);
        if(mode==0 ||mode==2) Gph.remove(s);
        if(mode==2) group(par,s);
       }
      Gmh.remove(member);
     }
    if(b) tta(member+" isn't a group and isn't in any group.");
   }
  void group(String n,String member)
   {
    if(Gmh.containsKey(n)) 
     {
      String s=(String)Gmh.get(n);
      Gmh.put(n,s+","+member);
     }
    else Gmh.put(n,member);
    if(Gph.containsKey(member))
     {
      tta(member+" is already in group:"+n+" and then"+(String)Gph.get(member));
      tta("Execute the following first");
      tta("ungroup "+member);
     }
    else Gph.put(member,n);
   }
  String lGroup()
   {
    Hashtable t=new Hashtable();
    Hashtable r=new Hashtable();
    Enumeration enk=Gmh.keys();
    String sd="";
    String groupname="";
    while(enk.hasMoreElements())
     {
      groupname=(String)enk.nextElement();
      sd+="group "+groupname+"{"+(String)Gmh.get(groupname)+"}\n"; 
     }
    enk=Gmh.keys();
    while(enk.hasMoreElements())
     {
      groupname=(String)enk.nextElement();
      if(Gph.containsKey(groupname)) continue;
      sd+=lGroup(groupname,groupname);
     }
    return sd;
   }
  String lGroup(String n,String indent)
   {
    String ind=indent;
    String group=(String)Gmh.get(n);
    String sd="";
    StringTokenizer st=new StringTokenizer(group,",",false);
    String s="";
    String se="";
    while(st.hasMoreTokens())
     {
      s=st.nextToken();
      if(Gmh.containsKey(s))
       {
        sd+=lGroup(s,ind+":"+s);
       }
      else se+=ind+"-"+s+"\n";
     }
    sd+=se;
    return sd;
   }
  String lGroup(String n)
   {
    String group=(String)Gmh.get(n);
    String sd="";
    StringTokenizer st=new StringTokenizer(group,",",false);
    String s="";
    String se="";
    while(st.hasMoreTokens())
     {
      s=st.nextToken();
      if(! sd.equals("")) sd+=",";
      if(Gmh.containsKey(s)) sd+=lGroup(s);
      else sd+=s;
     }
    return sd;
   }
  String llib(String type,int m)
   {
    Enumeration enk=null;
    if(type.equals("K")) enk=Kh.keys();
    else if(type.equals("LF")) enk=LFh.keys();
    else if(type.equals("LL")) enk=LLh.keys();
    else if(type.equals("Bu")) enk=Buh.keys();
    else if(type.equals("LP")) enk=LPh.keys();
    else if(type.equals("LC")) enk=LCh.keys();
    else if(type.equals("CC")) enk=CCh.keys();
    else if(type.equals("LSpP")) enk=LSpPh.keys();
    else if(type.equals("LScP")) enk=LScPh.keys();
    else if(type.equals("TA")) enk=TAh.keys();
    else if(type.equals("Rec")) enk=Rech.keys();
    else if(type.equals("Sh")) enk=Shh.keys();
    else if(type.equals("dP")) enk=dPh.keys();
    else if(type.equals("CuCu")) enk=CuCuh.keys();
    else if(type.equals("QuCu")) enk=QuCuh.keys();
    else if(type.equals("BSCu")) enk=BSCuh.keys();
    else if(type.equals("dPa")) enk=dPah.keys();
    else if(type.equals("PCL")) enk=PCLh.keys();
    else if(type.equals("PCLa")) enk=PCLah.keys();
    else if(type.equals("PCR")) enk=PCRh.keys();
    else if(type.equals("PCRa")) enk=PCRah.keys();
    else if(type.equals("XYZ")) enk=XYZh.keys();
    else if(type.equals("Img")) enk=Imgh.keys();
    else if(type.equals("P")) enk=Ph.keys();
    else if(type.equals("Tu")) enk=Tuh.keys();
    else if(type.equals("bo")) enk=boh.keys();
    else if(type.equals("boa")) enk=boah.keys();
    else if(type.equals("d")) enk=dh.keys();
    else if(type.equals("da")) enk=dah.keys();
    else if(type.equals("sha")) enk=shah.keys();
    else if(type.equals("S")) enk=Sh.keys();
    else if(type.equals("Sa")) enk=Sah.keys();
    else if(type.equals("Bury"))
     {
      String sd="";
      if(m==1 || m==7) sd="bury ";
      enk=Buryh.keys();
      while(enk.hasMoreElements())
       {
        String n=(String)enk.nextElement();
        if(m==0|| m==3) sd +=n+"\n";
        else if(m==1) sd +=" "+n;
        else if(m==7)
         {
          if(sd.equals("bury ")) sd +=n;
          else sd +=","+n;
         }
       }
      sd+="\n";
      enk=Buryh.keys();
      while(enk.hasMoreElements())
       {
        String n=(String)enk.nextElement();
        if(Slh.containsKey(n))
         {
          Object[] o=dtv(n,m);
          if(m==0|| m==3) sd +=Svo(o)+"\n";
          else if(m==1) sd +=" "+Svo(o);
          else if(m==7) sd +=Svo(o)+"\n";
         }
        else
         {
          Object[] o=teS("sppr "+n);
          if(m==0|| m==3) sd +=Svo(o)+"\n";
          else if(m==1) sd +=" "+Svo(o);
          else if(m==7) sd +=Svo(o);
         }
       }
      return sd;
     }
    else if(type.equals("AC"))
     {
      String sd="";
      enk=ACh.keys();
      while(enk.hasMoreElements())
       {
        String n=(String)enk.nextElement();
        if(Buryh.containsKey(n)) continue;
        if(m==0|| m==3) sd +=n+"\n";
        else if(m==1) sd +=" "+n;
       }
      return sd;
     }
    else if(type.equals("Prim"))
     {
      String sd="";
      enk=Primh.keys();
      while(enk.hasMoreElements())
       {
        String n=(String)enk.nextElement();
        if(m==0|| m==3) sd +=n+"\n";
        else if(m==1) sd +=" "+n;
       }
      return sd;
     }
    else if(type.equals("Ci")) enk=Cih.keys();
    else if(type.equals("FFT")) enk=FFTh.keys();
    else if(type.equals("Wav")) enk=Wavh.keys();
    else if(type.equals("Wave")) enk=Waveh.keys();
    else if(type.equals("Wavegraph")) enk=Wavegraphh.keys();
    else if(type.equals("Menu")) enk=Menuh.keys();
    else if(type.equals("LSort")) enk=LSorth.keys();
    else if(type.equals("Aux")) enk=Auxh.keys();
    else if(type.equals("Sc")) enk=Sch.keys();
    else if(type.equals("PP")) enk=PPh.keys();
    else if(type.equals("XYZa"))	enk=XYZah.keys();
    // insert new Obj d9
    else
     {
      tta("error in listing");
      return null;
     }
    String sd="";
    while(enk.hasMoreElements())
     {
      String n=(String)enk.nextElement();
     // tta("Te.llib next key:"+n);
      if(Buryh.containsKey(n)) continue;
      if(n.equals("chatcc0")) continue;
      if(type.equals("d"))
       {
        Object[] o=teS("sppr "+n);
        sd+="= "+n+" "+Svo(o)+"\n";
       }
      else if(type.equals("S"))
       {
        //tta("while type.equals S n:"+n+"  m:"+m);
        Object[] o=teS("sppr "+n);
        //tta("Svo(o):"+Svo(o));
        if(m==0|| m==3) 
         {
          //if(! sd.equals("")) sd+=" ";
          sd +="aS "+n+" \""+Svo(o)+"\"\n";
          //tta("m==0 or m==3  sd:"+sd);
         }
        else if(m==1)
         {
          sd +=" "+Svo(o);
          //tta("m==1  sd:"+sd);
         }
       }
      else
       {
        //tta("Te.llib else type:"+type+" m:"+m+" sd:"+sd);
        Object[] o=teS("sppr "+n);
        if(m==0|| m==3) sd +=Svo(o)+"\n";
        else if(m==1) sd +=" "+Svo(o);
       }
     }
    return sd;
   }
  String ltrigs()
   {
    String sd="";
    Enumeration enk=Trigh.keys();
    Enumeration ene =Trigh.elements();
    while(enk.hasMoreElements())
     {
      sd+="Trigger:"+(String)enk.nextElement()+" Methods:"+(String)ene.nextElement()+"\n";
     }
    return sd;
   }
  public void mk()
   {
    String mkname=argvn();
    if(Primh.containsKey(mkname))
     {
      tta(mkname+" is an primitive");
      //return; 
     }
    if(Meth.containsKey(mkname)) removeMeth(mkname);
    Meth.put(mkname,"simple");
    String sa=nnsToke();
    if(sa.equals("(")) mkem(mkname);
    else if(sa.equals("{"))
     {
      tta("ready for Class");
      String ss=gSbaf("{","}");
      tta("result:"+ss);
     }
   }
  public void mkem(String a)
   {
    String mkname=a;
    if(argop())
     {
      Meth.put(mkname,"trig");
      if(argcp()) Methtrigh.put(mkname,"()");
      else
       {
        while(!argcp()) addMethtrig(mkname,argcvn());
        Methtrigh.put(mkname,(String)Methtrigh.get(mkname)+")");
       }
      //tta("Methtrigh:"+(String)Methtrigh.get(mkname));
      if(argop())
       {
        Meth.put(mkname,"arg");
        String lvtype="",lvname="";
        boolean b=argcp();
        if(b) Methargh.put(mkname,"()");
        else
         {
          while(! b)
           {
            if(argop())
             {
              lvtype=argvn();
              lvname=argvncp();
             }
            else
             {
              lvtype="d";
              lvname=argvn();
             }
            addMetharg(mkname,lvtype,lvname);
            argc();
            b=argcp();
           }
          Methargh.put(mkname,(String)Methargh.get(mkname)+")");
         }
        //tta("Methargh:"+(String)Methargh.get(mkname));
        if(argop())
         {
          Meth.put(mkname,"lv");
          b=argcp();
          if(b) Methlvh.put(mkname,"()");
          else
           {
            while(! b)
             {
              if(argop())
               {
                lvtype=argvn();
                lvname=argvncp();
               }
              else
               {
                lvtype="d";
                lvname=argvn();
               }
              addMethlv(mkname,lvtype,lvname);
              argc();
              b=argcp();
             }
            Methlvh.put(mkname,(String)Methlvh.get(mkname)+")");
           }
         }
       }
     }
    Methbodyh.put(mkname,gSbaf("(",")"));
   }
  void addMethtrig(String s,String n)
   {
    if(Trigh.containsKey(n)) 
     {
      //tta("Trigh contains n:"+n+"   s:"+s);
      //tta("Prev:"+(String)Trigh.get(n));
      Trigh.put(n,(String)Trigh.get(n)+","+s);
     }
    else 
     {
      //tta("Trigh does not contain n:"+n+"   s:"+s);
      Trigh.put(n,s);
     }
    if(Methtrigh.containsKey(s)) Methtrigh.put(s,(String)Methtrigh.get(s)+","+n);
    else Methtrigh.put(s,"("+n);
   }
  void addMetharg(String s,String type,String n)
   {
    if(Methargh.containsKey(s)) Methargh.put(s,(String)Methargh.get(s)+",("+type+" "+n+")");  //)
    else Methargh.put(s,"(("+type+" "+n+")");
   }
  void addMethlv(String s,String type,String n)
   {
    if(Methlvh.containsKey(s)) Methlvh.put(s,(String)Methlvh.get(s)+",("+type+" "+n+")"); //)
    else Methlvh.put(s,"(("+type+" "+n+")");
   }
  void schleep(double d)
   {
    try { sleep((long)Math.rint(d)); }
    catch (InterruptedException e){}
   }
  public void repeat()
   {
    int rpi=argi(true);
    boolean b=Tu.st;
    if(rpi>7 && b) Tu.st=false;
    String sa=gSb("[","]");
    if(sa.equals("")) sa=gSb("{","}");
    int t=1;
    while(t<=rpi)
     {
      if(sa !=null) teS(sa);
      t++;
     }
    if(b && Tu.tucount==1) Tu.st=true;
   }
  void tta(String s) { parent.tta(s); }
  void ttace(String s) { parent.ttace(s); }
  void tta1(String s) { parent.tta1(s); }
  void ta1cte() { parent.ta1cte(); }
  void tacte() { parent.tacte(); }
  int ta1rcp() { return parent.ta1rcp(); }
  void ta1scp() { parent.ta1scp(); }
  boolean argc() { return arg(","); } // begin arg
  boolean argcp() { return arg(")"); }
  boolean argop() { return arg("("); }
  boolean argcc() { return arg("}"); }
  boolean argoc() { return arg("{"); }
  boolean argcsb() { return arg("]"); }
  boolean argosb() { return arg("["); }
  // not ready for prime time boolean argdot() { return arg("."); }
  boolean argr(String s)
   {
    String sa=nnsToke();
    if(sa.equals("")) return false;
    sts=sa+sts;
    if(sa.equals(s)) return true;
    return false;
   }
  boolean arg(String s)
   {
    String sa=nnsToke();
    if(sa.equals(s)) return true;
    else if(sa.equals("")) return false;
    sts=sa+sts;
    return false;
   }
  boolean arg(boolean b,String r)
   {
    String s;
    if(b)s=nnsToke();
    else s=nToke();
    if(s.equals(r)) return true;
    else if(s.equals("")) return false;
    sts=s+sts;
    return false;
   }
  public Boolean argB() { return new Boolean(argbo()); }
  boolean argbo() { return argbo(dtv(argS(1),1)); }
  boolean argbo(String vn) 
   {
    boolean a=argbo(dtv(vn,1));
    bohp(vn,a);
    return a;
   }
  boolean argbo(Object[] o)
   {
    if(ght(o).equals("bo")) return bovo(o);
    return false;
   }
  boolean[] argboa() { return argboa(0); }
  boolean[] argboa(int m)
   {
    boolean[] boa=null;
    boolean bb=false;
    String n="";
    if(m==1) n=argS(10,"boa");
    if(!argoc())
     {
      String t=nnsToke();
      if(boah.containsKey(t))
       {
        Boolean[] Boa=(Boolean[])boah.get(t);
        boa=new boolean[Boa.length];
        for(int i=0;i<Boa.length;i++) boa[i]=Boa[i].booleanValue();
       }
      else
       {
        tta("Expected '{' for argboa");
       }
     }
    else
     {
      Vector v=new Vector();
      while(! argcc())
       {
        argc();
        v.addElement(new Boolean(argbo()));
       }
      boa=new boolean[v.size()];
      for(int i=0;i<v.size();i++) boa[i]=((Boolean)v.elementAt(i)).booleanValue();
     }
    if(! n.equals ("") && boa != null) 
     {
      Boolean[] Boa=new Boolean[boa.length];
      for(int i=0;i<Boa.length;i++) Boa[i]=new Boolean(boa[i]);
      boah.put(n,Boa);
     }
    return boa;
   }
  Point argP()
   {
    Point a=null;
    if(argop()) //1
     {
      a=argP("",dtv());
      argcp();
     }
    else
     {
      Object[] oa=dtv();
      if(argop())
       {
        Object[] ob=dtv();
        a=argP(Svo(oa),ob);
        argcp();
       }
      else a=argP("",oa);
     }
    return a;
   }
  Point argP(String n,Object[] o)
   {
    String ht=ght(o);
    Point a=null;
    if(ht.equals("d")) a=new Point((int)dvo(o),argci());
    else if(ht.equals("P")) a=Pvo(o);
    else if(ht.equals("dP")) a=dPvo(o).p;
    else if(ht.equals("S")) 
     {
      sts=Svo(o)+sts;
      a=argP();
     }
    else tta("unexpected end to argP ht:"+ht);
    if(a !=null && ! n.equals("")) Ph.put(n,a);
    return a;
   }
  CuCu argCuCu() { return argCuCu(0); }
  CuCu argCuCu(int i)
   {
    CuCu a;
    String n;
    boolean op=argop();
    if(i==0) n=argS(1,"CuCu");
    else n=argS(i,"CuCu");
    if(i==0 && CuCuh.containsKey(n)) a=(CuCu)CuCuh.get(n);
    else
     {
      boolean mc=true;
      boolean h=true;
      //dP[] dpa=new dP[]{new dP(10,10),new dP(15,15),new dP(20,20),new dP(25,55),new dP(30,60),new dP(35,65),new dP(65,20),new dP(70,25),new dP(75,30),new dP(125,185),new dP(130,190),new dP(135,195),new dP(225,225),new dP(230,230),new dP(235,235) };
      dP[] dpa=new dP[]{new dP(10,10),new dP(15,15),new dP(20,20),new dP(25,55),new dP(30,60),new dP(35,65),new dP(65,20),new dP(70,25),new dP(75,30),new dP(125,185),new dP(130,190),new dP(135,195) };
      if(argc())
       {
        mc=argbo();
        if(argc())
         {
          h=argbo();
          if(argc()) dpa=argdPa();
         }
       }
      a=new CuCu(parent,n,mc,h,dpa);
     }
    if(op) argcp();
    return a;
   }
  QuCu argQuCu()
   {
    String s=nnsToke();
    if(QuCuh.containsKey(s)) return QuCuhg(s);
    sts=s+sts;
    boolean a=argop();
    String n=argS(1,"QuCu");
    boolean closed=argcbo();
    boolean handles=argcbo();
    argc();
    boolean b=argoc();
    if(!b)
     {
      tta("Missing opening QuCu curly brace");
      return null;
     }
    Vector v=new Vector();
    while(!argcc()) v.addElement(argcdP());
    if(a) argcp();
    dP[] dpa=new dP[v.size()];
    for(int i=0;i<v.size();i++) dpa[i]=(dP)(v.elementAt(i));
    QuCu lqucu=new QuCu(n,closed,handles,dpa);
    QuCuh.put(n,lqucu);
    return lqucu;
   }
  BSCu argBSCu()
   {
    String s=nnsToke();
    if(BSCuh.containsKey(s)) return BSCuhg(s);
    sts=s+sts;
    boolean a=argop();
    String n=argS(1,"BSCu");
    boolean closed=true;
    boolean handles=true;
    double pw=3;
    K pk=new K(0.0,0.0,0.0,255);
    K shadk=new K(Color.black);
    double shadw=0;
    dP[] dpa;
    boolean[] boa;
    if( ! argc())
     {
      dpa=new dP[] {new dP(0,0),new dP(50,100),new dP(100,0)};
      boa=new boolean[dpa.length];
      boa[0]=true;
      boa[dpa.length-1]=true;
     }
    else
     {
      closed=argbo();
      handles=argcbo();
      argc();
      dpa=argdPa();
      if(argc())
       {
        boa=argboa();
        if(argc())
         {
          pw=argd();
          if(argc())
           {
            pk=argK();
            if(argc())
             {
              shadw=argd();
              if(argc())
               {
                shadk=argK();
               }
             }
           }
         }
       }
      else
       {
        boa=new boolean[dpa.length];
        boa[0]=true;
        boa[dpa.length-1]=true;
       }
     }
    if(a) argcp();
    BSCu lbscu=new BSCu(n,closed,handles,dpa,boa,pw,pk,shadw,shadk);
    BSCuh.put(n,lbscu);
    return lbscu;
   }
  dP argdP() { return argdP(0); }
  dP argdP(int i)
   {
    dP ldp=null;
    String n="";
    boolean b1=false,b2=false;
    if(i==1)
     {
      b1=argop();
      n=argvn();
     }
    b2=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("d")) ldp=new dP(dvo(o),argcd());
    else if(ht.equals("P")) ldp=new dP(Pvo(o));
    else if(ht.equals("dP")) ldp=new dP(dPvo(o));
    else if(ht.equals("Sl")) ldp=new dP(Slvo(o).dp);
    else if(ht.equals("dPa"))
     {
      dP[] a=dPavo(o);
      ldp=new dP(a[argosbicsb()]);
      tta("dPa found");
     }
    else argt("dP",o);
    if(b1) argcp();
    if(b2) argcp();
    if(ldp !=null && !n.equals(""))
     {
      if(i<10)  dPh.put(n,ldp);
      else dPlocordPhp(n,ldp);
     }
    return ldp;
   }
  dP[] argdPa()
   {
    argc();
    boolean b=argoc();
    String s=nnsToke();
    if(dPah.containsKey(s)) 
     {
      if(b) argcc();
      return dPahg(s);
     }
    if(!b)
     {
      tta("Missing opening dPa curly brace");
      return null;
     }
    sts=s+sts;
    Vector v=new Vector();
    while(!argcc()) v.addElement(argcdP());
    dP[] dpa=new dP[v.size()];
    for(int i=0;i<v.size();i++) dpa[i]=(dP)(v.elementAt(i));
    return dpa;
   }
  dP[] argdPa(int i)
   {
    boolean b=argop();
    String n=argS(i,"dPa");
    argc();
    dP[] dpa=argdPa();
    dPah.put(n,dpa);
    if(b) argcp();
    return dpa;
   }
  PCL argPCL() { return argPCL(0); }
  PCL argPCL(int i)
   {
    PCL pcl=null;
    String n="";
    boolean b1=false;
    if(i==1) n=argvn();
    b1=argop();
    String s=nnsToke();
    if(PCLh.containsKey(s)) pcl=PCLhg(s);
    else
     {
      sts=s+sts;
      pcl=new PCL(tu,argdPa());
     }
    if(pcl != null) PCLh.put(n,pcl);
    if(b1) argcp();
    return pcl;
   }
  PCL[] argPCLa()
   {
    boolean b=argoc();
    String s=nnsToke();
    if(PCLah.containsKey(s)) return PCLahg(s);
    if(!b)
     {
      tta("Missing opening PCLa curly brace");
      return null;
     }
    sts=s+sts;
    Vector v=new Vector();
    while(! argcc()) 
     {
      argc();
      v.addElement(argPCL());
     }
    PCL[] pcla=new PCL[v.size()];
    for(int i=0;i<v.size();i++) pcla[i]=(PCL)(v.elementAt(i));
    return pcla;
   }
  PCL[] argPCLa(int i)
   {
    boolean b=argop();
    String n=argS(i,"PCLa");
    argc();
    PCL[] pcla=argPCLa();
    PCLah.put(n,pcla);
    if(b) argcp();
    return pcla;
   }
  PCR argPCR() { return argPCR(0); }
  PCR argPCR(int i)
   {
    PCR a=null;
    String n="";
    boolean b1=false;
    if(i==1) n=argvn();
    b1=argop();
    String s=nnsToke();
    if(PCRah.containsKey(s))
     {
      PCR[] b=PCRahg(s);
      argosb();
      a=b[argi()];
      argcsb();
     }
    else if(PCRh.containsKey(s)) a=PCRhg(s);
    else
     {
      sts=s+sts;
      a=new PCR(tu,argRec());
     }
    if(a != null) PCRh.put(n,a);
    if(b1) argcp();
    return a;
   }
  PCR[] argPCRa()
   {
    boolean b=argoc();
    String s=nnsToke();
    if(PCRah.containsKey(s)) return PCRahg(s);
    if(!b)
     {
      tta("Missing opening PCRa curly brace");
      return null;
     }
    sts=s+sts;
    Vector v=new Vector();
    while(! argcc())
     {
      argc();
      v.addElement(argPCR());
     }
    PCR[] a=new PCR[v.size()];
    for(int i=0;i<v.size();i++) a[i]=(PCR)(v.elementAt(i));
    return a;
   }
  PCR[] argPCRa(int i)
   {
    boolean b=argop();
    String n=argS(i,"PCRa");
    argc();
    PCR[] a=argPCRa();
    PCRah.put(n,a);
    if(b) argcp();
    return a;
   }
  XYZ argXYZ() { return argXYZ(0); }
  XYZ argXYZ(int i)
   {
    XYZ lxyz=null;
    String n="";
    boolean b1=false,b2=false;
    if(i==1)
     {
      b1=argop();
      n=argvn();
     }
    b2=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("d")) lxyz=new XYZ(dvo(o),argcd(),argcd());
    else if(ht.equals("XYZ")) lxyz=new XYZ(XYZvo(o));
    else if(ht.equals("Sl")) lxyz=new XYZ(Slvo(o).xyz);
    else if(ht.equals("XYZa"))
     {
      //XYZ[] a=XYZavo(o);
      //lxyz=new XYZ(a[argosbicsb()]);
      tta("XYZa found");
     }
    else argt("XYZ",o);
    if(b1) argcp();
    if(b2) argcp();
    if(lxyz !=null && !n.equals(""))
     {
      if(i<10)  XYZh.put(n,lxyz);
      //else XYZlocorXYZhp(n,lxyz);
     }
    return lxyz;
   }
  XYZ[] argXYZa()
   {
    boolean b=argoc();
    if(b && argcc()) return null;
    String s=nnsToke();
    if(XYZah.containsKey(s))
     {
      if(b) argcc();
      return XYZahg(s);
     }
    if(!b)
     {
      tta("Missing opening XYZa curly brace");
      return null;
     }
    sts=s+sts;
    Vector v=new Vector();
    while(!argcc()) v.addElement(argcXYZ());
    XYZ[] xyza=new XYZ[v.size()];
    for(int i=0;i<v.size();i++) xyza[i]=(XYZ)(v.elementAt(i));
    return xyza;
   }
  XYZ[] argXYZa(int i)
   {
    boolean b=argop();
    String n=argS(i,"XYZa");
    //  tta("te.argXYZa n:"+n);
    argc();
    XYZ[] xyza=argXYZa();
    if(xyza == null)
     {
      //	tta("te.argXYZa(i) xyza is null putting \"\"  ");
      XYZah.put(n,"")	;
     }
    else
     {    	
      XYZah.put(n,xyza);
     }
    if(b) argcp();
    return xyza;
   }
  AudioClip argAC() { return argAC(0); }
  AudioClip argAC(int m) 
   {
    AudioClip ac=null;
    if(m!=1)
     {
      String s=argS(1);
      if(ACh.containsKey(s)) return (AudioClip)ACh.get(s);
      tta("argAC(!1) n:"+s+" returning null");
      return ac;
     }
    boolean b=argop();
    String n=argS(2);
    argc();
    String fn=argS(2);
    ac=fio.getAC(fn);
    if(ac==null) tta("argAC n:"+n+"  returning null");
    else 
     {
      //tta("ac not null name:"+name);
      ACh.put(n,ac);
     }
    if(b) argcp();
    return ac;
   }
  Rec argRec()
   {
    Rec a=null;
    boolean b=argop();
    if(b && argcp()) return new Rec();
    boolean bb=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("Rec")) a=Recvo(o);
    else if(ht.equals("dP"))
     {
      dP mdp=dPvo(o);
      if(bb) argcp();
      argc();
      bb=argop();
      o=dtv();
      ht=ght(o);
      if(ht.equals("dP"))
       {
        a=new Rec(mdp,dPvo(o));
        if(bb) argcp();
        if(argc()) a=Reclib(a);
       }
      else if(ht.equals("d"))
       {
        a=new Rec(mdp,dvo(o),argcd()); 
        if(bb) argcp();
        if(argc()) a=Reclib(a);
       }
      else argt("Rec with dP",o);
     }
    else if(ht.equals("d"))
     {
      double x=dvo(o);
      double y=argcd();
      if(bb) argcp();
      argc();
      bb=argop();
      double w=argd();
      double h=argcd();
      a=new Rec(x,y,w,h);
      if(bb) argcp();
      if(argc()) a=Reclib(a);
     }
    else argt("Rec",o);
    if(b) argcp();
    return a;
   }
  Rec Reclib(Rec a) { return new Rec(a.x,a.y,a.w,a.h,argK(),argcK()); }
  Rec argRec(int i)
   {
    Rec a=null;
    boolean b=argop();
    String n=argS(i,"Rec");
    a=argcRec();
    if(a != null) Rech.put(n,a);
    if(b) argcp();
    return a;
   }
  Sh argSh(int i)
   {
    Sh a=null;
    boolean b=argop();
    String n=argS(i,"");
    if(argc()) a=argSh();
    else a=new Sh(parent,tu,true);
    if(a != null) Shh.put(n,a);
    if(b) argcp();
    return a;
   }
  Sh argSh()
   {
    Sh a=null;
    boolean b=argop();
    if(b && argcp()) return null; //new Sh(parent);
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("Sh")) a=Shvo(o);
    else if(ht.equals("dP")) a=null; // new Sh(parent);
    else argt("Sh",o);
    if(b) argcp();
    return a;
   }
  Img argImg()
   {
    Img a=null;
    String s=nnsToke();
    //tta("Te.argImg()  s:"+s);
    //String s=argS(true);
    if(Imgh.containsKey(s)) a=(Img)Imgh.get(s);
    else if(s.equals("FiDi"))
     {
      String jj=FiDi();
      //  tta("argImg s is FiDi jj:"+jj);
      //a=fio.loadImg(FiDi());
      a=fio.loadImg(jj);
     }
    else if(Sh.containsKey(s))
     {
      //    tta("Te.argImg() Sh.contains key s:"+s);
      a=fio.loadImg((String)Sh.get(s)); 
     }
    else
     {
      //    tta("Te.argImg() else  s:"+s);
      if(s.equals("\""))
       {
        //  tta("argImg else and s is \"  ");
        s=gSu("\"");
        //    tta("argImg else s:"+s);
       }
      //    tta("argImg else going to fio.loadImg s:"+s);
      a=fio.loadImg(s);
     }
    return a;
   }
  Img argImg(String s)
   {
    //  tta("Te.argImg(s)  s:"+s);
    Img a=null;
    if(Imgh.containsKey(s)) a=(Img)Imgh.get(s);
    else if(s.equals("FiDi")) a=fio.loadImg(FiDi());
    else if(Sh.containsKey(s))
     {
      tta("Te.argImg(s)  Sh.containsKey s:"+s);
      a=fio.loadImg((String)Sh.get(s));
     }
    else
     {
      tta("Te.argImg(s)  else s:"+s);
      if(s.equals("\""))
       {
        s=gSu("\"");
       }
      a=fio.loadImg(s);
     }
    return a;
   }
  Img argImg(int i)
   {
    boolean b=argop();
    //String n=argS(i,"Img");
    String n=argS(true);
    // tta("Te.argImg(i) i:"+i+" n:"+n+" calling argcImg()");
    Img a=argcImg();
    if(Imgh.containsKey(n))
     {
      tta("flushing old");
      ((Img)Imgh.get(n)).flush();
      Imgh.remove(n); 
     }
    if(a != null) Imgh.put(n,a);
    else  tta("Te.argImg(i) Img is null");
    if(b) argcp();
    return a;
   }
  LF argLF() { return argLF(0); }
  LF argLF(int m)
   {
    LF a=null;
    if(m !=1)
     {
      Object[] o=dtv();
      String ht=ght(o);
      if(ht.equals("LF")) return LFvo(o);
      argt("LF",o);
      return a;
     }
    Rec r=new Rec(800,100,400,300);
    String n="";
    n=argSop(1);
    if(argc()) r=argRec();
    a=new LF(parent,n,r,true,true,n);
    return a;
   }
  LSpP argLSpP() { return argLSpP(0); }
  LSpP argLSpP(int m)
   {
    LSpP a=null;
    String n="";
    if(m !=1) 
     {
      Object[] o=dtv();
      String ht=ght(o);
      if(ht.equals("LSpP")) return LSpPvo(o);
      return a;
     }
    n=argSop(1);
    String ori="vert";
    double div=50.0;
    double rsw=0.5;
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("LSpP")) 
     {
      String pos=argcS(2);
      if(argc()) ori=argS(2);
      if(argc()) div=argd();
      if(argc()) rsw=argd();
      a=new LSpP(parent,n,LSpPvo(o),pos,ori,div,rsw);
     }
    else if(ht.equals("LF"))
     {
      if(argc()) ori=argS(2);
      if(argc()) div=argd();
      if(argc()) rsw=argd();
      a=new LSpP(parent,n,LFvo(o),ori,div,rsw);
     }
    else argt("LSpP",o);
    argcp();
    return a;
   }
  LP argLP() { return argLP(0); }
  LP argLP(int m)
   {
    LP mlp=null;
    boolean bb=false;
    boolean b=argop();
    String n="";
    if(m==1)
     {
      n=argS(1);
      bb=argop();
     }
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("LP"))
     {
      if(m==1)
       {
        //mlp=new LP(n,LPvo(o),argcRec());
       }
      else  mlp=LPvo(o);
     }
    else if(ht.equals("Menu"))
     {
      if(m==1)
       {
        //mlp=new LP(n,LPvo(o),argcRec());
       }
      else  mlp=LPvo(o);
     }
    //else if(ht.equals("JScP")) mlp=new LP(n,JScPvo(o),argcRec());
    else if(ht.equals("LSpP")) mlp=new LP(n,LSpPvo(o),argcS(2),argcRec());
    else argt("LP",o);
    if(b) argcp();
    if(bb) argcp();
    if(m==1 && mlp != null) LPh.put(n,mlp);
    return mlp;
   }
  Bu argBu() { return argBu(1); }
  Bu argBu(int m) 
   {
    Bu llbu=null;
    if(m==1)
     {
      String s=argS(1);
      if(Buh.containsKey(s)) return (Bu)Buh.get(s);
      argt("Bu",s);
      return llbu;
     }
    boolean b=argop();
    String n=argS(m,"Bu");
    //if(m==2) n=argS(2);
    //else if(m==0) n=argS(0);
    String type="rotary";
    String[] labels;
    if(n.equals("ndp")) labels=new String[] {"Next Demo",""};
    else labels=new String[] {n};
    int i=0;
    boolean lb=true;
    dP mdp=new dP(-1000,-1000);
    //LP bulp=(LP)LPh.get("lp1");
    LP bulp=lp;
    if(argc())
     {
      //type=argS(2);
      type=argS(true);
      if(argc())
       {
        labels=argSa();
        if(argc())
         {
          i=argi();
          if(argc())
           {
            lb=argcbo();
            if(argc()) 
             {
              mdp=argdP();
              if(argc()) bulp=argLP();
             }
           }
         }
       }
     }
    //tta("n:"+n+" bulp:"+bulp+" type;"+type+" labels:"+Svo(labels)+" i:"+i+" lb;"+lb+" mdp:"+mdp);
    llbu=new Bu(n,bulp,type,labels,i,lb,mdp);
    if(b) argcp();
    return llbu;
   }
  Menu argMenu() { return argMenu(1); }
  Menu argMenu(int m)
   {
    Menu lmenu=null;
    if(m==1)
     {
      String s=argS(1);
      if(Menuh.containsKey(s)) return (Menu)Menuh.get(s);
      argt("Menu",s);
      return lmenu;
     }
    boolean b=argop();
    String n=argS(m,"Menu");
    //if(m==2) n=argS(2);
    //else if(m==0) n=argS(0);
    String type="rotary";
    String[] labels;
    if(n.equals("ndp")) labels=new String[] {"Next Demo",""};
    else labels=new String[] {n};
    int i=0;
    boolean lb=true;
    dP mdp=new dP(-1000,-1000);
    LP menulp=(LP)LPh.get("lp1");
    if(argc())
     {
      //type=argS(2);
      type=argS(true);
      if(argc())
       {
        labels=argSa();
        if(argc())
         {
          i=argi();
          if(argc())
           {
            lb=argcbo();
            if(argc())
             {
              mdp=argdP();
              if(argc()) menulp=argLP();
             }
           }
         }
       }
     }
    lmenu=new Menu(n,menulp,type,labels,i,lb,mdp);
    if(b) argcp();
    return lmenu;
   }
  Sl argSl() { return argSl(1); }
  Sl argSl(int m)
   {
    Sl msl=null;
    if(m==1)
     {
      String n=argS(true);
      if(Slh.containsKey(n)) return (Sl)Slh.get(n);
      argt("Sl",n);
      return msl;
     }
    boolean b=argop();
    dP tl=new dP(-1000,-1000);
    //LP lp=(LP)LPh.get("lp1");
    String[] svals=null;
    //String n=argS(m,"Sl");
    double v=42;
    String type="i";
    double mll=0;
    double mul=360;
    String n=argS(true);
    if(dh.containsKey(n))
     {
      v=dhg(n);
      dh.remove(n);
      type="r";
      if(mll> v || v>mul)
       {
        mll=v-200;
        mul=v+200;
       }
     }
    boolean save=true;
    boolean hsv=true;
    dP ldp=new dP(42,42);
    boolean boxy=true;
    K lk=new K(60.0,1.0,1.0,66);
    dP dpll=new dP(-200,-200);
    dP dpul=new dP(400,400);
    XYZ lxyz=new XYZ(42,42,42);
    XYZ lxyzll=new XYZ(0,0,0);
    XYZ lxyzul=new XYZ(100,100,100);
    if(Sah.containsKey(n)) 
     {
      type="Sa";
      svals=(String[])Sah.get(n);
     }
    else if(Kh.containsKey(n))
     {
      type="K";
      lk=(K)Kh.get(n);
     }
    else if(dPh.containsKey(n))
     {
      type="dP";
      ldp=(dP)dPh.get(n);
      tta("aSl type dP:"+Svo(ldp));
     }
    else if(XYZh.containsKey(n))
     {
      type="XYZ";
      lxyz=(XYZ)XYZh.get(n);
      tta("aSl type XYZ:"+Svo(lxyz));
     }
    else if(n.equals("ftname"))
     {
      type="Sa";
      v=9;
      svals=Sahg("Fta");
      save=false;
     }
    if(argc())
     {
      type=argS(false);// expect r,XYZ,dP etc not having to be in quotes and variables can be r,dP 
      // was allowed to interpret type=argS(2);  
      if(type.equals("d")) type="r";
      if(argc())
       {
        if(type.equals("K"))
         {
          k=argK();
          hsv=k.hsv;
          if(argc())
           {
            tl=argdP();
            if(argc())
             {
              lp=argLP();
              if(argc())
               {
                hsv=argbo();
                if(argc()) save=argbo();
               }
             }
           }
         }
        else if(type.equals("dP"))
         {
          ldp=argdP();
          dpll=new dP(ldp.x-125,ldp.y-125);
          dpul=new dP(ldp.x+125,ldp.y+125);
          boxy=true;
          if(argc())
           {
            dpll=argdP();
            if(argc())
             {
              dpul=argdP();
              if(argc())
               {
                tl=argdP();
                if(argc())
                 {
                  lp=argLP();
                  if(argc())
                   {
                    boxy=argbo();
                    if(argc()) save=argbo();
                   }
                 }
               }
             }
           }
         }
        else if(type.equals("XYZ"))
         {
          lxyz=argXYZ();
          lxyzll=new XYZ(0,0,0);
          lxyzul=new XYZ(100,100,100);
          if(argc())
           {
            lxyzll=argXYZ();
            if(argc())
             {
              lxyzul=argXYZ();
              if(argc())
               {
                tl=argdP();
                if(argc())
                 {
                  lp=argLP();
                  if(argc()) save=argbo();
                 }
               }
             }
           }
         }
        else if(type.equals("Sa"))
         {
          v=argd();
          if(argc())
           {
            svals=argSa();
            if(argc())
             {
              tl=argdP();
              if(argc())
               {
                lp=argLP();
                if(argc()) save=argbo();
               }
             }
           }
         }
        else
         {
          v=argd();
          if(argc())
           {
            if(type.equals("i")) mll=argi();
            else if(type.equals("r")) mll=argd();
            if(argc())
             {
              if(type.equals("i")) mul=argi();
              else if(type.equals("r")) mul=argd();
              if(argc())
               {
                tl=argdP();
                if(argc())
                 {
                  lp=argLP();
                  if(argc()) save=argbo();
                 }
               }
             }
           }
         }
       }
     }
    if(b)  argcp();
    if(type.equals("i"))  msl=new Sl(n,lp,type,(int)v,(int)mll,(int)mul,tl,save);
    else if(type.equals("r"))  msl=new Sl(n,lp,type,v,mll,mul,tl,save);
    else if(type.equals("Sa")) msl=new Sl(n,lp,type,(int)v,svals,tl,save);
    else if(type.equals("K")) msl=new Sl(n,lp,type,lk,tl,hsv,save);
    else if(type.equals("dP")) msl=new Sl(n,lp,type,ldp,dpll,dpul,tl,boxy,save);
    else if(type.equals("XYZ")) msl=new Sl(n,lp,type,lxyz,lxyzll,lxyzul,tl,save);
    return msl;
   }
  TA argTA() { return argTA(0); }
  TA argTA(int m)
   {
    TA mta=null;
    if(m!=1)
     {
      Object[] o=dtv();
      String ht=ght(o);
      if(ht.equals("TA")) return TAvo(o);
      argt("TA",o);
      return mta;
     }
    String n=argSop(1);
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("LSpP"))
     {
      Rec lscprec=new Rec(0,0,500,300);
      K fk=new K(30.0,0.0,0.0,255.0);
      K bk=new K(225.0,200.0,150.0,255.0);
      K ck=new K(40.0,0.0,0.0,255.0);
      String pos=argcS(2);
      boolean tecon=argcbo();
      if(argc())
       {
        lscprec=new Rec(argRec());
        fk=new K(argcK());
        bk=new K(argcK());
        ck=new K(argcK());
       }
      mta=new TA(parent,n,LSpPvo(o),pos,tecon,lscprec,fk,bk,ck);
     }
    else argt("TA",o);
    argcp();
    return mta;
   }
  LC argLC() { return argLC(0); }
  LC argLC(int m)
   {
    LC mlc=null;
    boolean bb=false;
    boolean b=argop();
    String n="";
    if(m==1)
     {
      n=argS(1);
      bb=argop();
     }
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("LSpP"))
     {
      String pos=argcS(2);
      Rec ra=argcRec();
      Rec rb=argcRec();
      mlc=new LC(parent,n,LSpPvo(o),pos,ra,rb);
     }
    else if(ht.equals("LC")) mlc=LCvo(o);
    else argt("LC",o);
    if(b) argcp();
    if(bb) argcp();
    if(m==1 && mlc != null) LCh.put(n,mlc);
    return mlc;
   }
  LC orgargLC(int m)
   {
    LC mlc=null;
    boolean bb=false;
    boolean b=argop();
    String n="";
    if(m==1)
     {
      n=argS(1);
      bb=argop();
     }
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("LSpP")) mlc=new LC(parent,n,LSpPvo(o),argcS(2),argcRec(),argcRec());
    else if(ht.equals("LC")) mlc=LCvo(o);
    else argt("LC",o);
    if(b) argcp();
    if(bb) argcp();
    if(m==1 && mlc != null) LCh.put(n,mlc);
    return mlc;
   }
  Tu argTu() 
   {
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("Tu")) return Tuvo(o);
    argt("Tu",o);
    return null;
   }
  Tu argTu(int i)
   {
    Tu a=null;
    boolean b=argop();
    String n=argS(i,"Tu");
    K kk=new K(0,0,0);
    if(argc()) kk=argK();
    if(argc())
     {
      a=new Tu(parent,n,argLC(),kk);
     }
    else
     {
      a=new Tu(parent,n,lc,kk);
     }
    if(b) argcp();
    return a;
   }
  K argK() 
   {
    K kk=null;
    boolean b=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("K")) kk=new K(Kvo(o));
    else if(ht.equals("XYZ"))kk=new K(xyz.x,xyz.y,xyz.z);
    else if(ht.equals("d"))
     {
      double a=255;
      double ihr=dvo(o);
      if(argc())
       {
        double sg=argd();
        double vb=argcd();
        if(argc()) a=argd();
        kk=new K(ihr,sg,vb,a);
       }
      else kk=new K((int)ihr);
     }
    else if(ht.equals("S") && Svo(o).equals("")) kk=new K();
    else argt("K",o);
    if(b) argcp(); 
    return kk;
   }
  K argK(int i)
   {
    boolean b=argop();
    String n=argS(i,"K");
    K kk=argcK();
    if(kk != null) Kh.put(n,kk);
    if(b) argcp();
    return kk;
   }
  Ci argCi()
   {
    // "("+Svo(a.cp)+","+Svo(a.r)+","+Svo(a.pk)+","+Svo(a.pw)+","+Svo(a.fk)+")"
    Ci a=new Ci();
    boolean b=argop();
    if(b && argcp()) return a;
    boolean bb=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("Ci")) a=Civo(o);
    else if(ht.equals("dP"))
     {
      a.cp=dPvo(o);
      if(bb) argcp();
      if(argc())
       {
        a.r =argd();
        a.rx=a.r;
        a.ry=a.r;
        if(argc()) 
         {
          a.ry=argd();
          if(argc()) 
           {
            a.pk=argK();
            if(argc())
             {
              a.pw=argd();
              if(argc()) a.fk=argK();
             }
           }
         }
       }
      a.com(); 
     }
    else if(ht.equals("d"))
     {
      a.cp=new dP(dvo(o),argcd());
      if(bb) argcp();
      if(argc())
       {
        a.r =argd();
        a.rx =argd();
        if(argc())
         {
          a.ry=argd();
          if(argc())
           {
            a.pk=argK();
            if(argc())
             {
              a.pw=argd();
              if(argc()) a.fk=argK();
             }
           }
         }
       }
      a.com();
     }
    else if(ht.equals("S") && Svo(o).equals("")) a=new Ci();
    else argt("Ci",o);
    if(b) argcp();
    return a;
   }
  Ci argCi(int i)
   {
    boolean b=argop();
    Ci a=new Ci();
    String n=argS(true);
    if(b)
     {
      a=argcCi();
      argcp();
     }
    Cih.put(n,a);
    return a;
   }
  FFT argFFT() 
   {
    FFT a=null;
    String fn=argS(true);
    if(fn.equals(""));
    else if(FFTh.containsKey(fn)) a=(FFT)FFTh.get(fn);
    else
     {
      a=new FFT(parent,fn);
      if(a != null) FFTh.put(fn,a);
     }
    return a;
   }
  FFT argFFT(int i)
   {
    boolean b=argop();
    String n=argS(i,"FFT");
    FFT a=new FFT(parent,n);
    if(a != null) FFTh.put(n,a);
    if(b) argcp();
    return a;
   }
  Wav argWav()
   {
    Wav a=null;
    String n=argS(true); 
    if(Wavh.containsKey(n)) a=(Wav)Wavh.get(n);
    else
     {
      a=new Wav(parent,n);
      if(a != null) Wavh.put(n,a);
     }
    return a;
   }
  Wav argWav(int i)
   { 
    Wav a;
    boolean op=false;
    String n=argS(i,"Wav"); // std aWav argWav(1)
    if(argop())
     { 
      op=true;  
      String fn=argS(true); 
      if(fn.equals("FiDi")) fn=FiDi();
      if(argc()) a=new Wav(parent,n,fn,argl()); // arglong
      else   a=new Wav(parent,n,fn); // simplest
     }
    else
     {
      if(argc())
       {
        String fn=argS(false); 
        if(fn.equals("FiDi")) fn=FiDi();
        if(argc()) a=new Wav(parent,n,fn,argl());
        else   a=new Wav(parent,n,fn);  
       }
      else a=new Wav(parent,n); 
     }
    if(op && ! argcp()) tta("argWav expecting close paren");
    if(a==null) tta("Te.argWav is null");
    else
     {
      tta("Te.argWav("+i+") n:"+n+"  argWav a is go");
      Wavh.put(n,a);
     }
    return a;
   }
  Wave argWave()
   { 
    Wave a=null;
    boolean op=false;
    String n=argS(1,"Wave"); // std aWav argWav(1)
  
      if (n.equals("FiDi") || n.equals("fidi"))
      {
    	  
        a=new Wave(parent,FiDi());  
        n=a.name;
      }
      //     public Wav(M p,n,sb,sr,ch,seconds) 
    
    
    else 
     {
      a=new Wave(parent,n,16,44100,2,10); 
     // a=new Wave(parent,n,argi(),argcf(),argci(),argcd()); 
     }
    
    if(a==null) tta("Te.argnuWave is null");
    Waveh.put(n,a); 
    tta("Te.argWave  Waveh.put n:"+n);
    return a;
   }
  Wave argWave(int i)
  { 
	  Wave a=null;
	  tta("rebuild argWave(int i)");
   return a;
  }
 Wavegraph argWavegraph()
 {
	 Wavegraph a=null;
	 return a;
 }
 Wavegraph argWavegraph(int i)
 { 
  Wavegraph a=null;
  return a;
 }
  Menu argdefMenu()
   {
    Menu a=null;
    boolean b=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("Menu")) a=Menuvo(o);
    //else if(ht.equals("S") && Svo(o).equals("")) a=new Menu(1024);
    //else if(ht.equals("S")) a=new Menu(Svo(o));
    //else if(ht.equals("d")) a=new Menu(dvo(o));
    else argt("Menu",o);
    if(b) argcp();
    return a;
   }
  Menu argdefMenu(int i)
   {
    boolean b=argop();
    String n=argS(i,"Menu");
    Menu a=argcMenu();
    if(a != null) Menuh.put(n,a);
    if(b) argcp();
    return a;
   }
  LSort argLSort()
   {
    LSort a=null;
    boolean b=argop();
    String n=argS(true);
    if(n.equals(""));
    else if(LSorth.containsKey(n)) a=(LSort)LSorth.get(n);
    else
     {
      int ne=32;
      if(argc()) ne=argi();
      a=new LSort(parent,n,ne,lc);
     }
    if(b) argcp();
    return a;
   }
  LSort argLSort(int i)
   {
    boolean b=argop();
    String n=argS(i,"LSort");
    LSort a;
    int ne=32;
    if(argc()) ne=argi();
    a=new LSort(parent,n,ne,lc);
    if(a != null) LSorth.put(n,a);
    if(b) argcp();
    return a;
   }
  /*
  Aux argAux()
   {
    Aux a;
    boolean bo=argop();
    String n=argS(true);
    if(Auxh.containsKey(n)) a=(Aux)Auxh.get(n);
    else
     {
      boolean jc=false;
      boolean h=true;
      dP[] dpa=new dP[]{new dP(10,10),new dP(15,15),new dP(20,20),new dP(25,55),new dP(30,60),new dP(35,65),new dP(65,20),new dP(70,25),new dP(75,30),new dP(125,185),new dP(130,190),new dP(135,195),new dP(225,225),new dP(230,230),new dP(235,235) };
      if(argc())
       {
        jc=argbo();
        if(argc())
         {
          h=argbo();
          if(argc()) dpa=argdPa();
         }
       }
      a=new Aux(parent,n,jc,h,dpa);
     }
    if(bo) argcp();
    return a;
   }
  */
  /*
  Aux argAux(int i)
   {
    Aux a;
    boolean op=argop();
    String n=argS(i,"Aux");
    boolean jc=false;
    boolean h=true;
    boolean f=true;
    //dP[] dpa=new dP[]{new dP(10,10),new dP(15,15),new dP(20,20),new dP(25,55),new dP(30,60),new dP(35,65),new dP(65,20),new dP(70,25),new dP(75,30),new dP(125,185),new dP(130,190),new dP(135,195),new dP(225,225),new dP(230,230),new dP(235,235) };
    dP[] dpa=new dP[]{new dP(15,15),new dP(30,60),new dP(70,25),new dP(130,190),new dP(230,230)};
    if(argc())
     {
      jc=argbo();
      if(argc())
       {
        h=argbo();
        if(argc())
         {
          f=argbo();
          if(argc()) dpa=argdPa();
         }
       }
     }
    a=new Aux(parent,n,jc,h,f,dpa);
    if(op) argcp();
    tta("new Aux:"+Svo(a));
    return a;
   }
  */
  Sc argSc() 
   {
    Sc a;
    // retreive by name or create without name  do not put in hash
    boolean b1=argop();
    boolean b2=false;
    a=new Sc(parent,"noname",lc);
    if(b1 && argcp()) return a;
    String s=argS(1);
    Object[] o=dtv(s,1);
    String ht=ght(o);
    if(ht.equals("Sc")) a=Scvo(o);
    else if(ht.equals("PP")) a.add(PPvo(o));
    else argt("Sc",o);
    if(b1) argcp();
    return a;
   }
  Sc argSc(int i)   
   {
    //  create with name put in hash
    Sc a=null;
    boolean b=argop();
    String n=argS(i,"Sc");
    a=argcSc();
    if(a != null) Sch.put(n,a);
    if(b) argcp();
    return a;
   }
  PP argPP() { return argPP(0); }
  PP argPP(int i)
   {
    PP lpp=null;
    String n="";
    boolean b1=false,b2=false;
    if(i==1)
     {
      b1=argop();
      n=argvn();
     }
    b2=argop();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("PP")) lpp=PPvo(o);
    //else if(ht.equals("XYZ")) { lpp=new PP("noname",XYZvo(o),argcXYZ(),argcXYZ(),argcXYZ(),argcXYZ()); }
    //  else if(ht.equals("XYZa")) lpp=new PP("noname",XYZavo(o));
    else if(ht.equals("PPa"))
     {
      // PP[] a=PPavo(o);
      //lpp=new PP(a[argosbicsb()]);
      //tta("PPa found");
     }
    else argt("PP",o);
    if(b1) argcp();
    if(b2) argcp();
    if(lpp !=null && !n.equals(""))
     {
      if(i<10)  PPh.put(n,lpp);
      //else PPlocorPPhp(n,lpp);
     }
    return lpp;
   }
  // insert new Obj d10
  String argS(boolean i) // i is interpret string variables    fix/add quote in string 
   {
    String s="",t="",n="+";
    while(n.equals("+"))
     {
      t=nnsToke();
      //tta("argS top of outer while t:"+t+" s:"+s);
      if(t.equals("\"")) // open paren
       {
        t=nToke();
        while(t !=null && ! t.equals("\""))
         {
          //tta("argS top of inner while t:"+t+" s:"+s);
          if(t.equals("\\"))
           {
            //tta("FOUND \\   s:"+s);
            String j=nToke();
            if(j.contentEquals("\""))
             {
              t="\"";
             }
            else sts=j+sts;
           }
          s=s+t;  
          t=nToke();
          // tta("argS bottom of inner while t:"+t+" s:"+s);
         }
       }
      else if(dh.containsKey(t))
       {
        if(s.equals("")) s=s+t;
        else s=s+Svo(dhg(t));
       }
      else if(Sh.containsKey(t))
       {
        if(i) s=s+Shg(t);
        else s=s+t;
       }
      else if(Primh.containsKey(t))
       {
        // old and bad if(i) s=s+Svo(teToke(s));
        if(i) s=s+Svo(teToke(s));
        /// new and bad if(i) s=s+Svo(teToke(t));
        // hmmmm,  ke(t) sounds right 
        else s=s+t;
       }
      else s=s+t;
      n=nnsToke();
      // tta("argS bottom of outer while t:"+t+" s:"+s+" n:"+n);
     }
    if(n !=null) sts=n+sts;
    //tta("ArgS(bo) Final s:"+s);
    return s;
   }
  String argS(int i,String type)  //work
   {
    String s="",t="",n="";
    boolean ftt=true;
    while(ftt || (n !=null && n.equals("+")))
     {
      ftt=false;
      t=nnsToke();
      if(t.equals("\"")) t=gSu("\"");
      if(type.equals("K") && Kh.containsKey(t)) s=s+t;
      else if(type.equals("Sl") && Slh.containsKey(t)) s=s+t;
      else if(type.equals("Sl") && Sah.containsKey(t)) s=s+t;
      else if(type.equals("Sl") && Kh.containsKey(t)) s=s+t;
      else if(type.equals("Sl") && dPh.containsKey(t)) s=s+t;
      else if(type.equals("Sl") && XYZh.containsKey(t)) s=s+t;
      else if(type.equals("Rec") && Rech.containsKey(t)) s=s+t;
      else if(type.equals("Sh") && Shh.containsKey(t)) s=s+t;
      else if(type.equals("Sa") && Sah.containsKey(t)) s=s+t;
      else if(type.equals("Img") && Imgh.containsKey(t)) s=s+t;
      else if(type.equals("Bu") && Buh.containsKey(t)) s=s+t;
      else if(type.equals("Menu") && Menuh.containsKey(t)) s=s+t;
      else if(type.equals("da") && dah.containsKey(t)) s=s+t;
      else if(type.equals("sha") && shah.containsKey(t)) s=s+t;
      else if(type.equals("boa") && boah.containsKey(t)) s=s+t;
      else if(type.equals("dP") && dPh.containsKey(t)) s=s+t;
      else if(type.equals("XYZ") && XYZh.containsKey(t)) s=s+t;
      else if(type.equals("CuCu") && CuCuh.containsKey(t)) s=s+t;
      else if(type.equals("Aux") && Auxh.containsKey(t)) s=s+t;
      else if(type.equals("QuCu") && QuCuh.containsKey(t)) s=s+t;
      else if(type.equals("BSCu") && BSCuh.containsKey(t)) s=s+t;
      else if(type.equals("dPa") && dPah.containsKey(t)) s=s+t;
      else if(type.equals("PCL") && PCLh.containsKey(t)) s=s+t;
      else if(type.equals("PCLa") && PCLah.containsKey(t)) s=s+t;
      else if(type.equals("PCR") && PCRh.containsKey(t)) s=s+t;
      else if(type.equals("PCRa") && PCRah.containsKey(t)) s=s+t;
      else if(type.equals("Sc") && Sch.containsKey(t)) s=s+t;
      else if(type.equals("PP") && PPh.containsKey(t)) s=s+t;
      else if(type.equals("XYZa") && XYZah.containsKey(t)) s=s+t;
      //insert new Obj d23
      //else s=s+Svo(dtv(t));
      else s=s+t;
      n=nnsToke();
     }
    if(n!=null) sts=n+sts;
    return s;
   }
  void argt(String r,String s) { tta("arg"+r+" trouble s:"+s); }
  void argt(String s,Object[] o) 
   {
    String ht=ght(o); 
    tta("arg"+s+" trouble ht:"+ht);
    if(ht.equals("S")) tta("Svo(o):"+Svo(o));
   }
  double[] argda()
   {
    double[] a=null;
    boolean b=argoc();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("da")) 
     {
      if(b) argcc();
      a=davo(o);
     }
    else if(ht.equals("d"))
     {
      if(!b) tta("Missing opening da curly brace");
      Vector v=new Vector();
      v.addElement(new Double(dvo(o)));
      while(argc()) v.addElement(new Double(argd()));
      if(!argcc()) tta("Missing closing da curly brace");
      a=new double[v.size()];
      for(int i=0;i<v.size();i++) a[i]=((Double)v.elementAt(i)).doubleValue();
     }
    else argt("da",o);
    return a;
   }
  double[] argda(int i)
   {
    boolean b=argop();
    String n=argS(i,"da");
    argc();
    double[] lda=argda();
    if(lda != null) dah.put(n,lda);
    if(b) argcp();
    return lda;
   }
  short[] argsha()
   {
    short[] a=null;
    boolean b=argoc();
    Object[] o=dtv();
    String ht=ght(o);
    if(ht.equals("sha"))
     {
      if(b) argcc();
      a=shavo(o);
     }
    else if(ht.equals("d"))
     {
      if(!b) tta("Missing opening sha curly brace");
      Vector v=new Vector();
      v.addElement(new Short(shvo(o)));
      while(argc()) v.addElement(new Short(argsh()));
      if(!argcc()) tta("Missing closing sha curly brace");
      a=new short[v.size()];
      for(int i=0;i<v.size();i++) a[i]=((Short)v.elementAt(i)).shortValue();
     }
    else argt("sha",o);
    return a;
   }
  short[] argsha(int i)
   {
    boolean b=argop();
    String n=argS(i,"sha");
    argc();
    short[] a=argsha();
    if(a != null) shah.put(n,a);
    if(b) argcp();
    return a;
   }
  String argSb(String se) { return argSb("",se); }
  String argSb(String sb,String se)
   {
    String lrs="";
    String s=sb;
    s=nToke();
    boolean a=false;
    while (s !=null && (a || !s.equals(se)))
     {
      if(! a && s.equals("\\")) a = true;
      else if(a) a=false;
      lrs+=s;
      s=nToke();
     }
    if(! sb.equals("") && s != null) lrs+=s;
    return lrs;
   }
  public String argvn() { return argS(0,false); }
  public String argS() { return argS(2,false); }
  public String argS(int m) { return argS(m,false); }
  public String argS(int i,boolean b)
   {
    int m=i;
    String[] m1sa=new String[100];
    boolean rpflag=b;
    // 0 old argvn - assembles variable n no terp
    // 1 interprets non-quoted string vars and d vars
    // ccains together all characters until an unquoted space 
    // 2 interprets any vars
    // 3 for 'pr'
    // 7 
    String s=nnsToke();
    if(s.equals("FiDi")) return FiDi();
    String sr="";
    int ele=0;
    while(! s.equals("")&&! s.equals(" ")&&! s.equals("\n") &&! s.equals("[")&&! s.equals("]")&&! s.equals("(")&&! s.equals(",")&&! s.equals(")")&&! s.equals(";")&&! s.equals("{")&&! s.equals("}"))
    // adding * screws up multiplication
     {
      m1sa[ele]=s;
      if(s.equals("\"")) sr+=argSb("\"");
      else if (s.equals("["))
       {
        if(rpflag)
         {
          sts=s+sts;
          return sr;
         }
        sr+=s;
        sr+=Svo(argd());
        s=nnsToke();
        while(s.equals(","))
         {
          sr+=s;
          sr+=Svo(argd());
          s=nnsToke();
         }
        if(s.equals("]")) sr+=s;
        else tta("unexpected end to argS with [ and no ] found:"+s);
       }
      else if(s.equals("+"))
       {
        if(ele==0) sr=Svo(rndto(argd()+argd()));
       }
      else 
       {
        if(m==0) sr+=s;
        else if(m==1 && ele==0) sr+=s;
        else
         {
          Object[] o=dtv(s,m);
          String ht=ght(o);
          if(ht.equals("S")) sr+=Svo(o);
          else if(ht.equals("d"))
           {
            if(sr.equals("-")) sr=Svo(-dvo(o));
            else sr+=Svo(dvo(o));
           }
          else if(ht.equals("bo")) sr+=Svo(bovo(o));
          else if(ht.equals("K")) sr+=Svo(Kvo(o));
          else if(ht.equals("XYZ")) sr+=Svo(XYZvo(o));
          // was commented out maybe for m!=3 ???  else if(ht.equals("dP")) sr+=Svo(dPvo(o));
          else if(ht.equals("dP"))
           {
            if(m ==3)  sr+=Svo(dPvo(o));
           }
          else
           {
            tta("argS dtv o[0]:"+ght(o)+" m:"+m);
            sr+=s;
           }
         }
       }
      s=nToke();
      ele++;
     }
    sts=s+sts;
    return sr;
   }
  static double dvo(Object[] o) { return ((Double)o[1]).doubleValue(); }
  static double[] davo(Object[] o) { return (double[])o[1]; }
  static short shvo(Object[] o) { return ((Double)o[1]).shortValue(); }
  static short[] shavo(Object[] o) { return (short[])o[1]; }
  static LScP LScPvo(Object[] o) { return (LScP)o[1]; }
  static LSpP LSpPvo(Object[] o) { return (LSpP)o[1]; }
  static LF LFvo(Object[] o) { return (LF)o[1]; }
  static TA TAvo(Object[] o) { return (TA)o[1]; }
  static Sh Shvo(Object[] o) { return (Sh)o[1]; }
  static Tu Tuvo(Object[] o) { return (Tu)o[1]; }
  static JPanel JPanelvo(Object[] o) { return (JPanel)o[1]; }
  static LL LLvo(Object[] o) { return (LL)o[1]; }
  static Sl Slvo(Object[] o) { return (Sl)o[1]; }
  static Bu Buvo(Object[] o) { return (Bu)o[1]; }
  static LP LPvo(Object[] o) { return (LP)o[1]; }
  static LC LCvo(Object[] o) { return (LC)o[1]; }
  static CC CCvo(Object[] o) { return (CC)o[1]; }
  static CuCu CuCuvo(Object[] o) { return (CuCu)o[1]; }
  static QuCu QuCuvo(Object[] o) { return (QuCu)o[1]; }
  static BSCu BSCuvo(Object[] o) { return (BSCu)o[1]; }
  static Point Pvo(Object[] o) { return (Point)o[1]; }
  static dP dPvo(Object[] o) { return (dP)o[1]; }
  static dP[] dPavo(Object[] o) { return (dP[])o[1]; }
  static PCL PCLvo(Object[] o) { return (PCL)o[1]; }
  static PCL[] PCLavo(Object[] o) { return (PCL[])o[1]; }
  static PCR PCRvo(Object[] o) { return (PCR)o[1]; }
  static PCR[] PCRavo(Object[] o) { return (PCR[])o[1]; }
  static XYZ XYZvo(Object[] o) { return (XYZ)o[1]; }
  static K Kvo(Object[] o) { return (K)o[1]; }
  static Rec Recvo(Object[] o) { return (Rec)o[1]; }
  static Img Imgvo(Object[] o) { return (Img)o[1]; }
  static AudioClip ACvo(Object[] o) { return (AudioClip)o[1]; }
  static boolean bovo(Object[] o) { return ((Boolean)o[1]).booleanValue(); }
  static boolean[] boavo(Object[] o) 
   {
    Boolean[] Boa=(Boolean[])o[1];
    boolean[] boa=new boolean[Boa.length];
    for(int i=0;i<Boa.length;i++) boa[i]=Boa[i].booleanValue();
    return boa;
   }
  static String[] Savo(Object[] o) { return (String[])o[1]; }
  static Ci Civo(Object[] o) { return (Ci)o[1]; }
  static FFT FFTvo(Object[] o) { return (FFT)o[1]; }
  static Wav Wavvo(Object[] o) { return (Wav)o[1]; }
  static Wave Wavevo(Object[] o) { return (Wave)o[1]; }
  static Wavegraph Wavegraphvo(Object[] o) { return (Wavegraph)o[1]; }
  static Menu Menuvo(Object[] o) { return (Menu)o[1]; }
  static LSort LSortvo(Object[] o) { return (LSort)o[1]; }
  // static Aux Auxvo(Object[] o) { return (Aux)o[1]; }
  static Sc Scvo(Object[] o) { return (Sc)o[1]; }
  static PP PPvo(Object[] o) { return (PP)o[1]; }
  static XYZ[] XYZavo(Object[] o) 
   {
    //	System.out.println("Te.XYZavo");
    if(o[1]=="")
     {
      //  System.out.println("goodie");
      return null;
     }
    else 	  return (XYZ[])o[1];
   }
  //static dP[] dPavo(Object[] o) { return (dP[])o[1]; }
  // insert new Obj d11
  static String ght(Object[] o) { return (String)o[0]; }
  static String ghn(Object[] o) { return (String)o[2]; }
  String[] argSa() { return argSa(0); }
  String[] argSa(int m)
   {
    String[] sarr=null;
    boolean bb=false;
    String n="";
    if(m==1) n=argS(10,"Sa");
    if(!argoc())
     {
      Object[] o=dtv();
      String ht=ght(o);
      if(ht.equals("Sa")) return Savo(o);
      tta("Expected '{' for argSa");
      argt("Sa",o);
      return sarr;
     }
    boolean ftt=true;
    int i=0;
    while(! argcc() || ftt)
     {
      argc();
      Object[] o=dtv();
      String ht=ght(o);
      if(ht.equals("Sa")) sarr=addSatoSa(Savo(o),sarr);
      else if(ht.equals("S")) sarr=addSatoSa(new String[] {Svo(o)},sarr);
      ftt=false;
      if(++i ==10000000) 
       {
        tta("Expected but did not find close curly");
        sts="{"+sts;
       }
     }
    //if(m==1 && sarr != null) Sah.put(n,sarr);
    if(m==1) Sah.put(n,sarr);
    return sarr;
   }
  static Object[] popPCL(String n,PCL[] pcla)
   {
    PCL[] pclb=new PCL[pcla.length-1];
    for(int i=0;i<pcla.length-1;i++) pclb[i]=pcla[i];
    PCLah.put(n,pclb);
    return nPCLOa(pcla[pcla.length-1]);
   }
  static Object[] pushPCL(String n,PCL[] pcla,PCL nu)
   {
    int j=0;
    if(pcla != null) j=pcla.length;
    PCL[] pclb=new PCL[j+1];
    for(int i=0;i<j;i++) pclb[i]=pcla[i];
    pclb[j]=nu;
    PCLah.put(n,pclb);
    return nPCLaOa(n,pclb);
   }
  static Object[] shiftPCL(String n,PCL[] pcla)
   {
    PCL[] pclb=new PCL[pcla.length-1];
    for(int i=1;i<pcla.length;i++) pclb[i-1]=pcla[i];
    PCLah.put(n,pclb);
    return nPCLOa(pcla[0]);
   }
  static Object[] unshiftPCL(String n,PCL[] pcla,PCL nu)
   {
    int j=0;
    if(pcla !=null) j= pcla.length;
    PCL[] pclb=new PCL[j+1];
    for(int i=1;i<=j;i++) pclb[i]=pcla[i-1];
    pclb[0]=nu;
    PCLah.put(n,pclb);
    return nPCLaOa(n,pclb);
   }
  static Object[] popPCR(String n,PCR[] a)
   {
    PCR[] b=new PCR[a.length-1];
    for(int i=0;i<a.length-1;i++) b[i]=a[i];
    PCRah.put(n,b);
    return nPCROa(a[a.length-1]);
   }
  static Object[] pushPCR(String n,PCR[] a,PCR nu)
   {
    int j=0;
    if(a != null) j=a.length;
    PCR[] b=new PCR[j+1];
    for(int i=0;i<j;i++) b[i]=a[i];
    b[j]=nu;
    PCRah.put(n,b);
    return nPCRaOa(n,b);
   }
  static Object[] shiftPCR(String n,PCR[] a)
   {
    PCR[] b=new PCR[a.length-1];
    for(int i=1;i<a.length;i++) b[i-1]=a[i];
    PCRah.put(n,b);
    return nPCROa(a[0]);
   }
  static Object[] unshiftPCR(String n,PCR[] a,PCR nu)
   {
    int j=0;
    if(a !=null) j= a.length;
    PCR[] b=new PCR[j+1];
    for(int i=1;i<=j;i++) b[i]=a[i-1];
    b[0]=nu;
    PCRah.put(n,b);
    return nPCRaOa(n,b);
   }
  Object[] popdP(String n,dP[] dpa)
   {
    dP[] dpb=new dP[dpa.length-1];
    for(int i=0;i<dpa.length-1;i++) dpb[i]=dpa[i];
    dPah.put(n,dpb);
    return ndPOa(dpa[dpa.length-1]);
   }
  Object[] pushdP(String n,dP[] dpa,dP nu)
   {
    int j=0;
    if(dpa != null) j=dpa.length;
    dP[] dpb=new dP[j+1];
    for(int i=0;i<j;i++) dpb[i]=dpa[i];
    dpb[j]=nu;
    dPah.put(n,dpb);
    return ndPaOa(n,dpb);
   }
  Object[] shiftdP(String n,dP[] dpa)
   {
    dP[] dpb=new dP[dpa.length-1];
    for(int i=1;i<dpa.length;i++) dpb[i-1]=dpa[i];
    dPah.put(n,dpb);
    return ndPOa(dpa[0]);
   }
  Object[] unshiftdP(String n,dP[] dpa,dP nu)
   {
    int j=0;
    if(dpa !=null) j= dpa.length;
    dP[] dpb=new dP[j+1];
    for(int i=1;i<=j;i++) dpb[i]=dpa[i-1];
    dpb[0]=nu;
    dPah.put(n,dpb);
    return ndPaOa(n,dpb);
   }
  Object[] popXYZ(String n,XYZ[] xyza)
   {
    XYZ[] xyzb=new XYZ[xyza.length-1];
    for(int i=0;i<xyza.length-1;i++) xyzb[i]=xyza[i];
    XYZah.put(n,xyzb);
    return nXYZOa(xyza[xyza.length-1]);
   }
  Object[] pushXYZ(String n,XYZ[] xyza,XYZ nu)
   {
    int j=0;
    if(xyza != null) j=xyza.length;
    XYZ[] xyzb=new XYZ[j+1];
    for(int i=0;i<j;i++) xyzb[i]=xyza[i];
    xyzb[j]=nu;
    XYZah.put(n,xyzb);
    return nXYZaOa(n,xyzb);
   }
  Object[] shiftXYZ(String n,XYZ[] xyza)
   {
    XYZ[] xyzb=new XYZ[xyza.length-1];
    for(int i=1;i<xyza.length;i++) xyzb[i-1]=xyza[i];
    XYZah.put(n,xyzb);
    return nXYZOa(xyza[0]);
   }
  Object[] unshiftXYZ(String n,XYZ[] xyza,XYZ nu)
   {
    int j=0;
    if(xyza !=null) j= xyza.length;
    XYZ[] xyzb=new XYZ[j+1];
    for(int i=1;i<=j;i++) xyzb[i]=xyza[i-1];
    xyzb[0]=nu;
    XYZah.put(n,xyzb);
    return nXYZaOa(n,xyzb);
   }
  Object[] popS(String saname)
   {
    String[] sa=null;
    if(Sah.containsKey(saname)) sa=Sahg(saname);
    String[] sb=new String[sa.length-1];
    tta("popS saname:"+saname+"  length:"+sa.length);
    for(int i=0;i<sa.length-1;i++) sb[i]=sa[i];
    Sah.put(saname,sb);
    return nSOa(sa[sa.length-1]);
   }
  Object[] pushS(String n,String nu)
   {
    String[] sa=null;
    if(Sah.containsKey(n)) sa=Sahg(n);
    int j=0;
    if(sa != null) j=sa.length; 
    String[] sb=new String[j+1];
    for(int i=0;i<j;i++) sb[i]=sa[i];
    sb[j]=nu;
    Sah.put(n,sb);
    return nSaOa(n,sb);
   }
  Object[] shiftS(String saname)
   {
    String[] sa=null;
    if(Sah.containsKey(saname)) sa=Sahg(saname);
    String[] sb=new String[sa.length-1];
    for(int i=1;i<sa.length;i++) sb[i-1]=sa[i];
    Sah.put(saname,sb);
    return nSOa(sa[0]);
   }
  Object[] unshiftS(String saname,String nu)
   {
    String[] sa=null;
    if(Sah.containsKey(saname)) sa=Sahg(saname);
    int j=0;
    if(sa !=null) j= sa.length;
    String[] sb=new String[j+1];
    for(int i=1;i<=j;i++) sb[i]=sa[i-1];
    sb[0]=nu;
    Sah.put(saname,sb);
    return nSaOa(saname,sb);
   }
  String[] addSatoSa(String[] s,String[] sarr)
   {
    Vector vec=new Vector();
    int l=0;
    if(sarr==null) l=0;
    else l=sarr.length;
    for(int t=0;t<l;t++) vec.addElement(sarr[t]);
    if(s==null) l=0;
    else l=s.length;
    for(int t=0;t<l;t++) vec.addElement(s[t]);
    sarray=new String[vec.size()];
    for(int x=0;x<vec.size();x++) sarray[x]=(String)vec.elementAt(x);
    return sarray;
   }
  public int argi() { return (int)(argd()); }
  public short argsh() { return (short)(argd()); }
  public long argl() { return (long)(argd()); }
  public float argf() { return (float)(argd()); }
  public int argi(boolean rpflag) { return (int)(argd(rpflag)); }
  public Double argD() { return new Double(argd()); }
  public double argd() { return argd(false); }
  double argd(boolean rpflag) 
   {
    Object[] o=null;
    String s=argS(1,rpflag);
    if(Meth.containsKey(s))
     {
      teS(s);
      if(rtsstk.empty()) 
       {
        tta("argd rtsstk is empty for Meth:"+s);
        return 0;
       }
      o=(Object[])rtsstk.pop();
      return argd(o);
     }
    return argd(dtv(s,1)); 
   }
  double argd(String vn) { return argd(dtv(vn,1)); }
  double argd(Object[] o)
   {
    String s0=(String)o[0];
    if(s0.equals("d"))
     {
      return ((Double)o[1]).doubleValue();
     }
    else if(s0.equals("XYZ"))
     {
      tta("argd object is XYZ");
      XYZ a=XYZvo(o);
      tta(Svo(a));
      tta(nnsToke());
      /* 	if(argdot())
       {
        tta("argd argdot is true");
        String nt=nToke();
        if(nt.equals("x"))
         {
          return xyz.x;
         }
       }
      */
      return ((Double)o[1]).doubleValue();
     }
    else if(s0.equals("S"))
     {
      String s1=(String)o[1];
      if(dlocordhcK(s1)) return dlocordhg(s1);
      if(s1.equals("-")) return -argd();
      else
       {
        try { return Double.parseDouble(s1); }
        catch (NumberFormatException e) { }
        tta("argd(Object[] o) not good s0:S s1:"+s1);
       }
     }
    else
     {
      tta("argd(Object[] o) not good, type s0 is niether d or S  s0:"+s0);
     }
    return 0;
   }
  //start args combos
  PCL argcPCL()
   {
    argc();
    return argPCL();
   }
  PCL argcPCL(int i)
   {
    argc();
    return argPCL(i);
   }
  PCR argcPCR()
   {
    argc();
    return argPCR();
   }
  PCR argcPCR(int i)
   {
    argc();
    return argPCR(i);
   }
  String[] argcSa()
   {
    argc();
    return argSa();
   }
  boolean argopbcp()
   {
    argop();
    boolean b=argbo();
    argcp();
    return b;
   }
  boolean argcbo()
   {
    argc();
    return argbo();
   }
  boolean argcbcp()
   {
    argc();
    boolean b=argbo();
    argcp();
    return b;
   }
  boolean argscs()
   {
    swapsts();
    boolean b=argc();
    swapsts();
    return b;
   }
  boolean argscps()
   {
    swapsts();
    boolean b=argcp();
    swapsts();
    return b;
   }
  boolean argsops()
   {
    swapsts();
    boolean b=argop();
    swapsts();
    return b;
   }
  Rec argcRec()
   {
    argc();
    return argRec();
   }
  Rec argopRec()
   {
    argop();
    return argRec();
   }
  Rec argcReccp()
   {
    argc();
    rec=argRec();
    argcp();
    return rec;
   }
  dP argdPcp()
   {
    dp=argdP();
    argcp();
    return dp;
   }
  dP argcdPcp()
   {
    argc();
    return argdPcp();
   }
  dP argcdP()
   {
    argc();
    return argdP();
   }
  dP argopdPcp()
   {
    boolean b=argop();
    dP ldp=argdP();
    if(b) argcp();
    return ldp;
   }
  dP argsopdPcps()
   {
    swapsts();
    dP ldp=argopdPcp();
    swapsts();
    return ldp;
   }
  XYZ argcXYZ()
   {
    argc();
    return argXYZ();
   }
  String argopvn() 
   {
    argop();
    return argvn();
   }
  String argcvn()
   {
    argc();
    return argvn();
   }
  String argvncp() 
   {
    String s=argvn();
    argcp();
    return s;
   }
  String argcvncp()
   {
    argc();
    String s=argvn();
    argcp();
    return s;
   }
  Img argcImg()
   {
    argc();
    return argImg();
   }
  Img argcImgcp()
   {
    argc();
    Img limg= argImg();
    argcp();
    return limg;
   }
  float argcf()
  {
	  argc();
	  return argf();
  }
  double argcd()
   {
    argc();
    return argd();
   }
  double argopd()
   {
    argop();
    return argd();
   }
  double argcdcp()
   {
    argc();
    d=argd();
    argcp();
    return d;
   }
  double argdcp()
   {
    double dd=argd();
    argcp();
    return dd;
   }
  double argopdcp()
   {
    argop();
    double dd=argd();
    argcp();
    return dd;
   }
  double argsopdcps()
   {
    swapsts();
    double dd=argopdcp();
    swapsts();
    return dd;
   }
  double argscds()
   {
    swapsts();
    double dd=argcd();
    swapsts();
    return dd;
   }
  int argci()
   {
    argc();
    return argi();
   }
  int argopi()
   {
    argop();
    return argi();
   }
  int argcicp()
   {
    argc();
    int i=argi();
    argcp();
    return i;
   }
  int argicp()
   {
    int i=argi();
    argcp();
    return i;
   }
  int argosbicsb()
   {
    argosb();
    int i=argi();
    argcsb();
    return i;
   }
  Img argopImg()
   {
    argop();
    return argImg();
   }
  String argcS() { return argcS(2); }
  String argcS(boolean b)
   {
    argc();
    return argcS(b);
   }
  String argcS(int i)
   {
    argc();
    return argS(i);
   }
  String argscSs() { return argscSs(2); }
  String argscSs(int i)
   {
    swapsts();
    argc();
    String s=argS(i);
    swapsts();
    return s;
   }
  String argsopScps() { return argsopScps(2); }
  String argsopScps(int i)
   {
    swapsts();
    argop();
    String s=argS(i);
    argcp();
    swapsts();
    return s;
   }
  String argcScp(int i)
   {
    argc();
    String s=argS(i);
    argcp();
    return s;
   }
  String argopS(int i)
   {
    argop();
    return argS(i);
   }
  String argSop(int i)
   {
    String S=argS(i);
    argop();
    return S;
   }
  String argScp(int i)
   {
    String S=argS(i);
    argcp();
    return S;
   }
  String argcScp(int i,boolean b)
   {
    argc();
    String s=argS(i,b);
    argcp();
    return s;
   }
  String argcS(int i,boolean b)
   {
    argc();
    return argS(i,b);
   }
  K argcK()
   {
    argc();
    return argK();
   }
  K argKcp()
   {
    K kk=argK();
    argcp();
    return kk;
   }
  K argcKcp()
   {
    argc();
    K kk=argK();
    argcp();
    return kk;
   }
  Ci argcCi()
   {
    argc();
    return argCi();
   }
  QuCu argcQuCu()
   {
    argc();
    return argQuCu();
   }
  BSCu argcBSCu()
   {
    argc();
    return argBSCu();
   }
  FFT argcFFT()
   {
    argc();
    return argFFT();
   }
  Wav argcWav()
   {
    argc();
    return argWav();
   }
  Wave argcWave()
  {
   argc();
   return argWave();
  }
  Wavegraph argcWavegraph()
  {
   argc();
   return argWavegraph();
  }
  Menu argcMenu()
   {
    argc();
    return argMenu();
   }
  LSort argcLSort()
   {
    argc();
    return argLSort();
   }
  /*
  Aux argcAux()
   {
    argc();
    return argAux();
   }
  */
  Sc argcSc()
   {
    argc();
    return argSc();
   }
  PP argcPP()
   {
    argc();
    return argPP();
   }
  XYZ[] argcXYZa()
   {
    argc();
    return argXYZa();
   }
  // insert new Obj d19
  String Shg() { return (String)Sh.get(argvn()); }
  String Shg(String s) { return (String)Sh.get(s); }
  String[] Sahg() { return (String[])Sah.get(argvn()); }
  String[] Sahg(String s) { return (String[])Sah.get(s); }
  String Slochg() { return Slochg(argvn()); }
  String Slochg(String s) { return (String)Sloch.get(s); }
  boolean bohg() { return ((Boolean)boh.get(argvn())).booleanValue(); }
  boolean bohg(String s) { return ((Boolean)boh.get(s)).booleanValue(); }
  Object[] bohp(String s,boolean b)
   {
    Object[] o={"bo",new Boolean(b)};
    boh.put(s,new Boolean(b));
    return o;
   }
  double dlochg() { return dlochg(argvn()); }
  double dlochg(String s) { return ((Double)dloch.get(s)).doubleValue(); }
  Object[] dlochp(String s,double d)
   {
    dloch.put(s,new Double(d));
    return ndOa(d);
   }
  boolean dlocordhcK(String s)
   {
    if(dh.containsKey(s) || Slh.containsKey(s) || dloch.containsKey(s)) return true;
    return false;
   }
  double dlocordhg(String s)
   {
    if(dloch.containsKey(s)) return dlochg(s);
    else if(Slh.containsKey(s)) return ((Sl)Slh.get(s)).v;
    return dhg(s);
   }
  dP dPlocordPhg(String s)
   {
    if(dPloch.containsKey(s)) return dPlochg(s);
    return dPhg(s);
   }
  CuCu CuCuhg(String s) { return (CuCu)CuCuh.get(s); }
  QuCu QuCuhg(String s) { return (QuCu)QuCuh.get(s); }
  BSCu BSCuhg(String s) { return (BSCu)BSCuh.get(s); }
  dP dPhg(String s) { return (dP)dPh.get(s); }
  dP[] dPahg(String s) { return (dP[])dPah.get(s); }
  dP dPlochg(String s) { return (dP)dPloch.get(s); }
  PCL PCLhg(String s) { return (PCL)PCLh.get(s); }
  PCL[] PCLahg(String s) { return (PCL[])PCLah.get(s); }
  PCR PCRhg(String s) { return (PCR)PCRh.get(s); }
  PCR[] PCRahg(String s) { return (PCR[])PCRah.get(s); }
  double dhg() { return ((Double)dh.get(argvn())).doubleValue(); }
  double dhg(String s) { return ((Double)dh.get(s)).doubleValue(); }
  double[] dahg() { return (double[])dh.get(argvn()); }
  double[] dahg(String s) { return (double[])dah.get(s); }
  short[] shahg() { return (short[])dh.get(argvn()); }
  short[] shahg(String s) { return (short[])shah.get(s); }
  Ci Cihg(String s) { return (Ci)Cih.get(s); }
  FFT FFThg(String s) { return (FFT)FFTh.get(s); }
  Wav Wavhg(String s) { return (Wav)Wavh.get(s); }
  Wave Wavehg(String s) { return (Wave)Waveh.get(s); }
  Wavegraph Wavegraphhg(String s) { return (Wavegraph)Wavegraphh.get(s); }
  Menu Menuhg(String s) { return (Menu)Menuh.get(s); }
  LSort LSorthg(String s) { return (LSort)LSorth.get(s); }
  // Aux Auxhg(String s) { return (Aux)Auxh.get(s); }
  Sc Schg(String s) { return (Sc)Sch.get(s); }
  PP PPhg(String s) { return (PP)PPh.get(s); }
  XYZ[] XYZahg(String s) { return (XYZ[])XYZah.get(s); }
  //dP[] dPahg(String s) { return (dP[])dPah.get(s); }
  // insert new Obj d12
  Object[] dlocordhp(String s,double d)
   {
    if(dloch.containsKey(s))  dloch.put(s,new Double(d));
    else if(Slh.containsKey(s)) ((Sl)Slh.get(s)).setval(d);
    else dh.put(s,new Double(d));
    return ndOa(d);
   }
  Object[] dahp(String s,double[] da) 
   {
    dah.put(s,da); 
    return ndaOa(da);
   }
  Object[] shahp(String s,short[] a) 
   {
    shah.put(s,a); 
    return nshaOa(a);
   }
  Object[] dhp(String s,double d) 
   {
    dh.put(s,new Double(d)); 
    return ndOa(d);
   }
  Object[] Imghp(String s,Img a)
   {
    Imgh.put(s,a);
    return nImgOa(a);
   }
  void dPlocordPhp(String s,dP t)
   {
    if(dPloch.containsKey(s)) dPloch.put(s,t);
    else dPh.put(s,t);
   }
  Object[] SlocorShp(String s,String t)
   {
    if(Sloch.containsKey(s)) Sloch.put(s,t);
    else Sh.put(s,t);
    return nSOa(t);
   }
  Object[] Shp(String s,String t) 
   {
    Sh.put(s,t); 
    return nSOa(t);
   }
  Object[] Sahp(String s,String[] t)
   {
    Sah.put(s,t);
    return nSaOa(t);
   }
  Object[] dPahp(String s,dP[] t)
   {
    dPah.put(s,t);
    return ndPaOa(t);
   }
  static Object[] PCLhp(String s,PCL t)
   {
    PCLh.put(s,t);
    return nPCLOa(t);
   }
  static Object[] PCLahp(String s,PCL[] t)
   {
    PCLah.put(s,t);
    return nPCLaOa(t);
   }
  static Object[] PCRhp(String s,PCR t)
   {
    PCRh.put(s,t);
    return nPCROa(t);
   }
  static Object[] PCRahp(String s,PCR[] t)
   {
    PCRah.put(s,t);
    return nPCRaOa(t);
   }
  static Object[] Cihp(String s,Ci t)
   {
    Cih.put(s,t);
    return nCiOa(t);
   }
  static Object[] QuCuhp(String s,QuCu t)
   {
    QuCuh.put(s,t);
    return nQuCuOa(t);
   }
  static Object[] BSCuhp(String s,BSCu t)
   {
    BSCuh.put(s,t);
    return nBSCuOa(t);
   }
  static Object[] FFThp(String s,FFT t)
   {
    FFTh.put(s,t);
    return nFFTOa(t);
   }
  static Object[] Wavhp(String s,Wav t)
   {
    Wavh.put(s,t);
    return nWavOa(t);
   }
  static Object[] Wavehp(String s,Wave t)
  {
   Waveh.put(s,t);
   return nWaveOa(t);
  }
  static Object[] Wavegraphhp(String s,Wavegraph t)
  {
   Wavegraphh.put(s,t);
   return nWavegraphOa(t);
  }
  static Object[] Menuhp(String s,Menu t)
   {
    Menuh.put(s,t);
    return nMenuOa(t);
   }
  static Object[] LSorthp(String s,LSort t)
   {
    LSorth.put(s,t);
    return nLSortOa(t);
   }
  /*
  static Object[] Auxhp(String s,Aux t)
   {
    Auxh.put(s,t);
    return nAuxOa(t);
   }
  */
  static Object[] Schp(String s,Sc t)
   {
    Sch.put(s,t);
    return nScOa(t);
   }
  static Object[] PPhp(String s,PP t)
   {
    PPh.put(s,t);
    return nPPOa(t);
   }
  static Object[] XYZahp(String s,XYZ[] t)
   {
    XYZah.put(s,t);
    return nXYZaOa(t);
   }
  // insert new Obj d13
  Object[] nLPOa(LP a) { return new Object[] {"LP",a,""};}
  Object[] nBuOa(LP a) { return new Object[] {"Bu",a,""};}
  Object[] nLCOa(LC a) { return new Object[] {"LC",a,""};}
  Object[] nCCOa(CC a) { return new Object[] {"CC",a,""};}
  Object[] nLLOa(LL a) { return new Object[] {"LL",a,""};}
  Object[] nSlOa(Sl a) { return new Object[] {"Sl",a,""};}
  Object[] nTuOa(Tu a) { return new Object[] {"Tu",a,""};}
  Object[] nTAOa(TA a) { return new Object[] {"TA",a,""};}
  Object[] nLFOa(LF a) { return new Object[] {"LF",a,""};}
  Object[] nLSpPOa(LSpP a) { return new Object[] {"LSpP",a,""};}
  Object[] nLScPOa(LScP a) { return new Object[] {"LScP",a,""};}
  Object[] nImgOa(Img a) { return new Object[] {"Img",a,""}; }
  Object[] nKOa(K k) { return new Object[] {"K",k,""}; }
  Object[] nSOa(String s) { return new Object[] {"S",s,""}; } 
  Object[] nSOa(Object[] o) { return new Object[] {"S",Svo(o),""}; } 
  Object[] nSaOa(Object o) { return new Object[] {"Sa",o,""}; } 
  Object[] nSaOa(String s,Object o) { return new Object[] {"Sa",o,s}; } 
  Object[] nSaOa(String[] a) { return new Object[] {"Sa",a,""}; } 
  Object[] nSaOa(String s,String[] a) { return new Object[] {"Sa",a,s}; } 
  Object[] nboOa(boolean a) { return new Object[] {"bo",new Boolean(a),""};}
  Object[] nboaOa(boolean[] a) { return new Object[] {"boa",a,""};}
  Object[] ndaOa(double[] da) { return new Object[] {"da",da,""};}
  Object[] nshaOa(short[] da) { return new Object[] {"sha",sha,""};}
  Object[] ndOasrf(double d) 
   {
    rtsflag=true;
    ocM=currentMeth;
    currentMeth="wackawacka";
    return new Object[] {"d",new Double(d),""};
   }
  Object[] ndOa(double d) 
   {
    rtsflag=false;
    return new Object[] {"d",new Double(d),""};
   }
  Object[] ndOa(float a) { return new Object[] {"d",new Double(a),""};}
  Object[] nDOa(Double a) { return new Object[] {"D",a,""};}
  Object[] ndPOa(dP a) 
   {
    rtsflag=false;
    return new Object[] {"dP",a,""};
   }
  Object[] ndPOa(double x,double y) { return ndPOa(new dP(x,y)); }
  Object[] ndPOasrf(dP a) 
   {
    rtsflag=true;
    ocM=currentMeth;
    currentMeth="wackawacka";
    return new Object[] {"dP",a,""};
   }
  Object[] ndPOasrf(double x,double y) { return ndPOasrf(new dP(x,y)); }
  Object[] ndPOa(String s,dP[] a) { return new Object[] {"dPa",a,s}; } 
  static Object[] nCuCuOa(Object o) { return new Object[] {"CuCu",o,""}; } 
  static Object[] nCuCuOa(String s,Object o) { return new Object[] {"CuCu",o,s}; } 
  static Object[] nCuCuOa(CuCu a) { return new Object[] {"CuCu",a,""}; } 
  static Object[] nQuCuOa(Object o) { return new Object[] {"QuCu",o,""}; } 
  static Object[] nQuCuOa(String s,Object o) { return new Object[] {"QuCu",o,s}; } 
  static Object[] nQuCuOa(QuCu a) { return new Object[] {"QuCu",a,""};}
  static Object[] nBSCuOa(Object o) { return new Object[] {"BSCu",o,""};}
  static Object[] nBSCuOa(String s,Object o) { return new Object[] {"BSCu",o,s};}
  static Object[] nBSCuOa(BSCu a) { return new Object[] {"BSCu",a,""};}
  Object[] ndPaOa(Object o) { return new Object[] {"dPa",o,""}; } 
  Object[] ndPaOa(String s,Object o) { return new Object[] {"dPa",o,s}; } 
  Object[] ndPaOa(dP[] a) { return new Object[] {"dPa",a,""}; } 
  static Object[] nPCLOa(Object o) { return new Object[] {"PCL",o,""}; } 
  static Object[] nPCLOa(String s,Object o) { return new Object[] {"PCL",o,s}; } 
  static Object[] nPCLOa(PCL a) { return new Object[] {"PCL",a,""}; } 
  static Object[] nPCLaOa(Object o) { return new Object[] {"PCLa",o,""}; } 
  static Object[] nPCLaOa(String s,Object o) { return new Object[] {"PCLa",o,s}; } 
  static Object[] nPCLaOa(PCL[] a) { return new Object[] {"PCLa",a,""}; } 
  static Object[] nPCROa(Object o) { return new Object[] {"PCR",o,""}; }
  static Object[] nPCROa(String s,Object o) { return new Object[] {"PCR",o,s}; }
  static Object[] nPCROa(PCR a) { return new Object[] {"PCR",a,""}; }
  static Object[] nPCRaOa(Object o) { return new Object[] {"PCRa",o,""}; }
  static Object[] nPCRaOa(String s,Object o) { return new Object[] {"PCRa",o,s}; }
  static Object[] nPCRaOa(PCR[] a) { return new Object[] {"PCRa",a,""}; }
  Object[] nPOa(Point a) { return new Object[] {"P",a,""};}
  Object[] nXYZOa(XYZ a) { return new Object[] {"XYZ",a,""};}
  Object[] nRecOa(Rec a) { return new Object[] {"Rec",a,""};}
  Object[] nShOa(Sh a) { return new Object[] {"Sh",a,""};}
  Object[] nRectangleOa(Rectangle a) { return new Object[] {"Rectangle",a,""};}
  static Object[] nCiOa(Ci a) { return new Object[] {"Ci",a,""};}
  static Object[] nFFTOa(FFT a) { return new Object[] {"FFT",a,""};}
  static Object[] nWavOa(Wav a) { return new Object[] {"Wav",a,""};}
  static Object[] nWaveOa(Wave a) { return new Object[] {"Wave",a,""};}
  static Object[] nWavegraphOa(Wavegraph a) { return new Object[] {"Wavegraph",a,""};}
  static Object[] nMenuOa(Menu a) { return new Object[] {"Menu",a,""};}
  static Object[] nLSortOa(LSort a) { return new Object[] {"LSort",a,""};}
  // static Object[] nAuxOa(Aux a) { return new Object[] {"Aux",a,""};}
  static Object[] nScOa(Sc a) { return new Object[] {"Sc",a,""};}
  static Object[] nPPOa(PP a) { return new Object[] {"PP",a,""};}
  static Object[] nXYZaOa(String s,XYZ[] a) { return new Object[] {"XYZa",a,s}; } 
  static Object[] nXYZaOa(Object o) { return new Object[] {"XYZa",o,""}; } 
  static Object[] nXYZaOa(String s,Object o) { return new Object[] {"XYZa",o,s}; } 
  static Object[] nXYZaOa(XYZ[] a) { return new Object[] {"XYZa",a,""}; } 
  // insert new Obj d14
  Object[] dtv() { return dtv(argS(1),1); }
  Object[] dtv(int i) { return dtv(argS(i),i);}
  Object[] dtv(String t) { return dtv(t,1);}
  Object[] dtv(String t,int i) 
   {
    String s=t;
    int m=i;
    // 0 type only;
    // 1 type and value;
    // 2 type and String value;
    // 3 type and isX String;
    // 4 remove
    // 5 assign
    if (s==null) return null;
    Object[] o=new Object[3];
    o[0]="";
    o[1]="";
    o[2]=s;
    if(s.equals(""))
     {
      o[0]="S";
      return o;
     }
    else if(s.equals("-"))
     {
      if(arg(false," ")) sts=" "+sts;
      else return nSOa("-");
     }
    else
     {
      try
       {
        double dd=Double.parseDouble(s);
        if(m==1) return ndOa(dd);
        else if(m==2) return nSOa(Svo(dd));
        else if(m==3) return nSOa(Svo(dd));
        return o;
       }
      catch (NumberFormatException e) { }
     }
    if(s.equals("true") || s.equals("false")) 
     {
      boolean b=true;
      if(s.equals("true")) b=true;
      else if(s.equals("false")) b=false;
      if(m==1) return nboOa(b);
      else if(m==2) return nSOa(Svo(b));
      else if(m==3) return nSOa("abo "+s+" "+Svo(b));
      return o;
     }
    if(s.indexOf(".") == -1) return dtvp0(s,m);
    else return dtvwp1(s,m);
   }
  Object[] dtvwp1(String s,int m) 
   {
    String sa=s.substring(0,s.indexOf("."));
    String sb=s.substring(1+s.indexOf("."));
    Object[] oa=null;
    if(Slh.containsKey(sa)) oa=nSlOa((Sl)Slh.get(sa));
    else if(sa.equals("FiDi"))
     {
      tta("Hit FiDi m:"+m+" sb:"+sb);
      if(m==5)
       {
        if(sb.equals("path"))
         {
          fidipath=argS(true);
          tta("set fidipath:"+fidipath);
          oa=nSOa(fidipath);
         }
       }
      else 
       {
        tta("get fidipath:"+fidipath);
        if(sb.equals("path")) oa=nSOa(fidipath);
       }
      return oa;
     }
    else 
     {
      oa=dtv(sa,1);
      String s0=(String)oa[0];
      oa[2]=sa;
     }
    if(s.equals("S") && Svo(oa).equals(sa)) return nSOa(s);
    else return dtvwp2(oa,sb,m);
   }
  Object[] dtvwp2(Object[] o,String s,int m)
   {
    while(s.indexOf(".") >-1 )
     {
      String sa=s.substring(0,s.indexOf("."));
      String sb=s.substring(1+s.indexOf("."));
      o=dtvwp2(o,sa,1);
      s=sb;
     }
    if(m==1||m==2||m==3)
     {
      return dtvwp3(o,s,m);
     }
    else if(m==5) dtvwp5(o,s);
    return null; 
   }
  Object[] dtvwp3(Object[] o,String s,int m) // Getting or Testing
   {
    String ht=(String)o[0];
    if(ht.equals("Sl"))
     {
      Sl a=Slvo(o);
      if(s.equals("svals")) o=nSaOa(a.svals);
      else if(s.equals("tl")) o=ndPOa(a.tl);
      else if(s.equals("hostlp")) o=nLPOa(a.hostlp);
      else if(s.equals("edpos")) o=nboOa(LP.edpos);
      else if(s.equals("hsv")) o=nboOa(a.k.hsv);
      else if(s.equals("save")) o=nboOa(a.save);
      else if(s.equals("layer")) o=ndOa(a.getlayer());
      else if(a.type.equals("r"))
       {
        if(s.equals("ul")) o=ndOa(a.ul);
        else if(s.equals("ll")) o=ndOa(a.ll);
        else if(s.equals("i")) o=ndOa((int)a.v);
        else if(s.equals("ri")) o=ndOa(Math.rint(a.v));
       }
      else if(a.type.equals("i"))
       {
        if(s.equals("ul")) o=ndOa(a.ul);
        else if(s.equals("ll")) o=ndOa(a.ll);
        else if(s.equals("i")) o=ndOa((int)a.v);
        else if(s.equals("ri")) o=ndOa(Math.rint(a.v));
       }
      else if(a.type.equals("Sa"))
       {
        if(s.equals("ul")) o=ndOa(a.ul);
        else if(s.equals("ll")) o=ndOa(a.ll);
       }
      else if(a.type.equals("K"))
       {
        if(s.equals("h")) o=ndOa(a.k.h);
        else if(s.equals("s")) o=ndOa(a.k.s);
        else if(s.equals("a")) o=ndOa(a.k.a);
        else if(s.equals("r")) o=ndOa(a.k.r);
        else if(s.equals("g")) o=ndOa(a.k.g);
        else if(s.equals("b")) o=ndOa(a.k.b);
        else if(s.equals("i")) o=ndOa(a.k.i);
        else if(s.equals("eq"))
         {
          boolean bo=argop();
          K k2=argK();
          if(argc()) o=nboOa(K.eq(a.k,k2,argK()));
          else o=nboOa(K.eq(a.k,k2));
          if(bo) argcp();
         }
        else if(s.equals("v")) o=ndOa(a.k.v);
       }
      else if(a.type.equals("dP"))
       {
        dP aa=a.dp;
        if(s.equals("v")) o=ndPOa(aa);
        else if(s.equals("dp")) o=ndPOa(aa);
        else if(s.equals("x")) o=ndOa(aa.x);
        else if(s.equals("y")) o=ndOa(aa.y);
        else if(s.equals("r")) o=ndOa(aa.r);
        else if(s.equals("t")) o=ndOa(aa.t);
        else if(s.equals("boxy")) o=nboOa(a.boxy);
        else if(s.equals("eq")) o=nboOa(aa.eq(argdP()));
        else if(s.equals("ae")) o=ndPOa(aa.ae(argdP()));
        else if(s.equals("a")) o=ndPOa(dP.a(aa,argdP()));
        else if(s.equals("ax")) o=ndPOa(dP.ax(aa,argd()));
        else if(s.equals("ay")) o=ndPOa(dP.ay(aa,argd()));
        else if(s.equals("am")) o=ndPOa(dP.am(aa,argdP()));
        else if(s.equals("ma")) o=ndPOa(dP.ma(aa,argdP()));
        else if(s.equals("n")) o=ndPOa(dP.n(aa));
        else if(s.equals("nx")) o=ndPOa(dP.nx(aa));
        else if(s.equals("ny")) o=ndPOa(dP.ny(aa));
        else if(s.equals("m")) o=ndPOa(dP.m(aa,argdP()));
        else if(s.equals("me")) o=ndPOa(aa.me(argdP()));
        else if(s.equals("ll") || s.equals("dpll")) o=ndPOa(a.dpll);
        else if(s.equals("ul") || s.equals("dpul")) o=ndPOa(a.dpul);
        else if(s.equals("na")) o=ndPOa(dP.na(aa,argdP()));
        else if(s.equals("nax")) o=ndPOa(dP.nax(aa,argdP()));
        else if(s.equals("nay")) o=ndPOa(dP.nay(aa,argdP()));
        else if(s.equals("nm")) o=ndPOa(dP.nm(aa,argdP()));
        else if(s.equals("nmx")) o=ndPOa(dP.nmx(aa,argdP()));
        else if(s.equals("nmy")) o=ndPOa(dP.nmy(aa,argdP()));
        else if(s.equals("nam")) o=ndPOa(dP.nam(aa,argdP()));
        else if(s.equals("nma")) o=ndPOa(dP.nma(aa,argdP()));
        else if(s.equals("nxa")) o=ndPOa(dP.nxa(aa,argdP()));
        else if(s.equals("nxax")) o=ndPOa(dP.nxax(aa,argdP()));
        else if(s.equals("nxay")) o=ndPOa(dP.nxay(aa,argdP()));
        else if(s.equals("nxm")) o=ndPOa(dP.nxm(aa,argdP()));
        else if(s.equals("nxmx")) o=ndPOa(dP.nxmx(aa,argdP()));
        else if(s.equals("nxmy")) o=ndPOa(dP.nxmy(aa,argdP()));
        else if(s.equals("nxam")) o=ndPOa(dP.nxam(aa,argdP()));
        else if(s.equals("nxma")) o=ndPOa(dP.nxma(aa,argdP()));
        else if(s.equals("nya")) o=ndPOa(dP.nya(aa,argdP()));
        else if(s.equals("nyax")) o=ndPOa(dP.nyax(aa,argdP()));
        else if(s.equals("nyay")) o=ndPOa(dP.nyay(aa,argdP()));
        else if(s.equals("nym")) o=ndPOa(dP.nym(aa,argdP()));
        else if(s.equals("nymx")) o=ndPOa(dP.nymx(aa,argdP()));
        else if(s.equals("nymy")) o=ndPOa(dP.nymy(aa,argdP()));
        else if(s.equals("nyam")) o=ndPOa(dP.nyam(aa,argdP()));
        else if(s.equals("nyma")) o=ndPOa(dP.nyma(aa,argdP()));
        else if(s.equals("rand")) o=ndOa(dP.rand(aa));
       }
      else if(a.type.equals("XYZ"))
       {
        XYZ aa=a.xyz;
        if(s.equals("v")) o=nXYZOa(aa);
        else if(s.equals("x")) o=ndOa(aa.x);
        else if(s.equals("y")) o=ndOa(aa.y);
        else if(s.equals("z")) o=ndOa(aa.z);
        else if(s.equals("xyzll")) o=nXYZOa(a.xyzll);
        else if(s.equals("xyzul")) o=nXYZOa(a.xyzul);
        else tta("argX XYZ. miss");
       }
      else if(s.equals("v")) o=ndOa(a.v);
     }
    else if(ht.equals("d"))
     {
      double dd=((Double)o[1]).doubleValue();
      if(s.equals("i")) o=ndOa((int)dd);
      else if(s.equals("ri")) o=ndOa(Math.rint(dd));
     }
    else if(ht.equals("da"))
     {
      if(s.equals("ea")) o=ndOa(davo(o)[argi()]);
      else if(s.equals("as")) o=ndOa(davo(o).length);
     }
    else if(ht.equals("Sa"))
     {
      String n=ghn(o);
      //tta("Sa dot n:"+n+" s:"+s);
      if(s.equals("pop")) o=nSOa(popS(n)); // MAYBE no nSOa like popdP
      else if(s.equals("push")) o=nSOa(pushS(n,argS(2)));
      else if(s.equals("shift")) o=nSOa(shiftS(n));
      else if(s.equals("unshift")) o=nSOa(unshiftS(n,argS(2)));
      if(s.equals("chomp"))
       {
        String[] sa=Savo(o);
        String[] r=new String[sa.length];
        for(int i=0;i<sa.length;i++) 
         {
          r[i]=sa[i].trim();
         }
       }
      else if(s.equals("chompe")) 
       {
        String[] sa=Savo(o);
        String[] r=new String[sa.length];
        for(int i=0;i<sa.length;i++)
         {
          r[i]=sa[i].trim();
         }
        Sah.put(n,r);
       }
      else
       {
        String[] sa=Savo(o);
        if(s.equals("ea")) o=nSOa(sa[argi()]);
        else if(s.equals("l")) o=ndOa(sa.length);
        else if(s.equals("ieq")) o=nboOa((sa[argi()]).equals(argS(2)));
        else if(s.equals("le")) 
         {
          int max=0;
          for(int i=0;i<sa.length;i++)
           {
            if(sa[i].length() > sa[max].length() ) max=i;
           }
          o=nSOa(sa[max]);
         }
        else if(s.equals("lei"))
         {
          int max=0;
          for(int i=0;i<sa.length;i++)
           {
            if(sa[i].length() > sa[max].length() ) max=i;
           }
          o=ndOa(max);
         }
        else if(s.equals("lel"))
         {
          int max=0;
          for(int i=0;i<sa.length;i++)
           {
            if(sa[i].length() > sa[max].length() ) max=i;
           }
          o=ndOa(sa[max].length());
         }
       }
     }
    else if(ht.equals("S"))
     {
      String t=Svo(o);
      if(s.equals("l")) o=ndOa(t.length());
      else if(s.equals("isF")) o=nboOa((new File(t)).isFile());
      else if(s.equals("isD")) o=nboOa((new File(t)).isDirectory());
      else if(s.equals("eq")) o=nboOa(t.equals(argS(2)));
      else if(s.equals("sw")) o=nboOa(t.startsWith(argS(2)));
      else if(s.equals("cont")) o=nboOa(t.contains(argS(2)));
      else if(s.equals("ew")) o=nboOa(t.endsWith(argS(2)));
      else if(s.equals("ss"))
       {
        int bi=argi();
        if(argc()) o=nSOa(t.substring(bi,argi()));
        else
         {
          if(bi< 0) o=nSOa(t.substring(t.length()+bi));
          else o=nSOa(t.substring(bi));
         }
       }
      else if(s.equals("ssafter"))
       {
        String a=argS(2);
        if(t.lastIndexOf(a)>-1) o=nSOa(t.substring(a.length()));
        else o=nSOa("empty");
       }
      else if(s.equals("w")) o=ndOa(tu.ftm.stringWidth(t));
      else if(s.equals("h")) o=ndOa(tu.ftm.getHeight());
      else if(s.equals("v")) 
       {
        o=ndOa(0);
        double dd=0;
        int l=t.length();
        boolean bo=true;
        int i=1;
        while(bo && i<=l)
         {
          try
           {
            dd=Double.parseDouble(t.substring(0,i++));
            o=ndOa(dd);
           }
          catch (NumberFormatException e) {  bo=false; }
         }
       }
      else if(s.equals("vsa"))
       {
        String r=t.substring(argi()); 
        o=ndOa(0);
        double dd=0;
        int l=r.length();
        boolean bo=true;
        int i=1;
        while(bo && i<=l)
         {
          try
           {
            dd=Double.parseDouble(r.substring(0,i++));
            o=ndOa(dd);
           }
          catch (NumberFormatException e) {  bo=false; }
         }
       }
      else if(s.equals("fw"))
       {
        int x=t.indexOf(" ");
        if(x> -1)t=t.substring(0,x);
        o=nSOa(t);
       }
      else if(s.equals("lw"))
       {
        int x=t.lastIndexOf(" ");
        if(x> -1)
         {
          if(x==t.length()) t="";
          else t=t.substring(x+1);
         }
        o=nSOa(t);
       }
      else
       {
        String n=ghn(o);
        String v=Svo(o);
        String r="";
        if(s.equals("ns"))
         {
          int x=v.indexOf(" ");
          while(x> -1)
           {
            if(x==v.length()) v=v.substring(0,x);
            else v=v.substring(0,x)+v.substring(x+1);
            x=v.indexOf(" ");
           }
          r=v;
         }
        else if(s.equals("rs"))
         {
          int x=v.indexOf(" ");
          while(x> -1)
           {
            if(x==v.length()) v=v.substring(0,x);
            else v=v.substring(0,x)+v.substring(x+1);
            x=v.indexOf(" ");
           }
          r=v;
          Sh.put(n,v);
         }
        else if(s.equals("rfc"))
         {
          if(v.length() ==0) r="";
          else if(v.length() ==1) 
           {
            r=v;
            v="";
           }
          else 
           {
            r=v.substring(0,1);
            v=v.substring(1); 
           }
          Sh.put(n,v);
         }
        else if(s.equals("rfw"))
         {
          int x=v.indexOf(" ");
          if(x> -1)
           {
            if(x==v.length()) v="";
            else v=v.substring(x+1);
            r=v.substring(0,x);
           }
          Sh.put(n,v);
         }
        else if(s.equals("rlw"))
         {
          int x=v.lastIndexOf(" ");
          if(x> -1)
           {
            if(x==v.length()) v="";
            else
             {
              r=v.substring(x+1);
              v=v.substring(0,x);
             }
           }
          Sh.put(n,v);
         }
        else if(s.equals("pb"))
         {
          int i=argi();
          int j=v.length();
          if(i>j)
           {
            for(int ii=j;ii<i;ii++) v=" "+v;
           }
          r=v;
         }
        else if(s.equals("pa"))
         {
          int i=argci();
          int j=v.length();
          if(i>j)
           {
            for(int ii=j;ii<i;ii++) v=v+" ";
           }
          r=v;
         }
        else if(s.equals("pbe"))
         {
          int i=argi();
          int j=v.length();
          if(i>j)
           {
            for(int ii=j;ii<i;ii++) v=" "+v;
           }
          r=v;
          Sh.put(n,v);
         }
        else if(s.equals("pae"))
         {
          int i=argci();
          int j=v.length();
          if(i>j)
           {
            for(int ii=j;ii<i;ii++) v=v+" ";
           }
          Sh.put(n,v);
          r=v;
         }
        else if(s.equals("ce"))
         {
          v=v+argS(true);
          Sh.put(n,v);
          r=v;
         }
        else if(s.equals("c")) r=v+argS(true);
        else if(s.equals("pce"))
         {
          v=argS(true)+v;
          Sh.put(n,v);
          r=v;
         }
        else if(s.equals("pc")) r=argS(true)+v;
        o=nSOa(r);
       }
     }
    else if(ht.equals("LP"))
     {
      LP a=LPvo(o);
      if(s.equals("edpos")) o=nboOa(LP.edpos);
      else if(s.equals("tl")) o=ndPOa(a.tl);
      else if(s.equals("host")) o=nSOa(a.host);
      else if(s.equals("nextx")) o=ndOa(a.nextx);
      else if(s.equals("nexty")) o=ndOa(a.nexty);
      else if(s.equals("layers")) o=nSaOa(a.kidsa);
      else if(s.equals("layer")) o=ndOa(a.getlayer());
     }
    else if(ht.equals("CC"))
     {
      CC a=CCvo(o);
      if(s.equals("port")) o=ndOa(cc.port);
      if(s.equals("loopsleep")) o=ndOa(CC.loopsleep);
      if(s.equals("bong")) o=nboOa(CC.bong);
      if(s.equals("deb")) o=nboOa(cc.deb);
     }
    else if(ht.equals("LC"))
     {
      LC a=LCvo(o);
      if(s.equals("w")) o=ndOa(a.rec.w);
      else if(s.equals("h")) o=ndOa(a.rec.h);
      else if(s.equals("s")) o=ndPOa(a.rec.s);
      else if(s.equals("sc")) o=ndPOa(a.sc);
      else if(s.equals("rec")) o=nRecOa(a.rec);
      else if(s.equals("clip")) o=nRecOa(new Rec(a.clip));
      else if(s.equals("vp")) o=ndPOa(a.gvp());
      else if(s.equals("rm")) o=ndOa(a.rm);
      else if(s.equals("rband")) o=nboOa(a.rband);  
     }
    else if(ht.equals("LSpP"))
     {
      LSpP a=LSpPvo(o);
      if(s.equals("divpc"))
       {
        dP ldp=a.getSize(1);
        double divpc=0;
        double div=a.getDividerLocation();
        int ds=a.getDividerSize();
        if(a.ori.equals("horz")) divpc=100*div/(ldp.x-ds);
        else divpc=100*div/(ldp.y-ds);
        o=ndOa(divpc);
       }
      else if(s.equals("div")) o=ndOa(a.getDividerLocation());
      else if(s.equals("ls")|| s.equals("ts"))
       {
        dP ldp=a.getSize(1);
        double ld=a.getDividerLocation();
        if(a.ori.equals("horz")) o=ndPOa(ld,ldp.y);
        else o=ndPOa(ldp.x,ld);
       }
      else if(s.equals("rs")|| s.equals("bs"))
       {
        dP ldp=a.getSize(1);
        int ds=a.getDividerSize();
        double ld=a.getDividerLocation();
        if(a.ori.equals("horz")) o=ndPOa(ldp.x-(ld+ds),ldp.y);
        else o=ndPOa(ldp.x,ldp.y-(ld+ds));
       }
     }
    else if(ht.equals("Tu"))
     {
      Tu a=Tuvo(o);
      if(s.equals("x")) o=ndOa(a.x);
      else if(s.equals("xi")) o=ndOa((int)a.x);
      else if(s.equals("y")) o=ndOa(a.y);
      else if(s.equals("p")) 
      if(a.dd) o=ndPOa(a.x,a.y);
      else  o=nXYZOa(new XYZ(a.t3p));
      else if(s.equals("yi")) o=ndOa((int)a.y);
      else if(s.equals("z")) o=ndOa(a.z);
      else if(s.equals("h")) o=ndOa(RD*a.h);
      else if(s.equals("pw")) o=ndOa(a.pw);
      else if(s.equals("pd")) o=nboOa(a.pd);
      else if(s.equals("pk")) o=nKOa(a.pk);
      else if(s.equals("lcsc")) o=ndPOa(a.lcsc);
      else if(s.equals("pl")) o=ndOa(a.pl);
      else if(s.equals("plsc")) o=ndOa(a.plsc);
      else if(s.equals("plxoff")) o=ndOa(a.plxoff);
      else if(s.equals("plyoff")) o=ndOa(a.plyoff);
      else if(s.equals("plseg")) o=ndOa(a.plseg);
      else if(s.equals("plsleep")) o=ndOa(a.plsleep);
      else if(s.equals("plpw")) o=ndOa(a.plpw);
      else if(s.equals("snap")) o=ndOa(a.snap);
      else if(s.equals("ftname")) o=nSOa(a.ftname);
      else if(s.equals("ftstyle")) o=ndOa(a.ftstyle);
      else if(s.equals("ftsize")) o=ndOa(a.ftsize);
      else if(s.equals("ftk")) o=nKOa(a.ftk);
      else if(s.equals("ftfd")) o=nboOa(a.ftfd);
      else if(s.equals("ftshadk"))o=nKOa(a.ftshadk);
      else if(s.equals("ftshadsize")) o=ndOa(a.ftshadsize);
      else if(s.equals("ftshadang")) o=ndOa(a.ftshadang);
      else if(s.equals("ftshadoff")) o=ndOa(a.ftshadoff);
      else if(s.equals("dmd")) o=ndOa(a.dmd);
      else if(s.equals("dhmd")) o=ndOa(a.dhmd);
      else if(s.equals("announce")) o=nboOa(a.announce);
     }
    else if(ht.equals("CuCu"))
     {
      CuCu a=CuCuvo(o);
      if(s.equals("closed")) o=nboOa(a.closed);
      else if(s.equals("handles")) o=nboOa(a.handles);
      else if(s.equals("dpa")) o=ndPaOa(a.dpa);
      else if(s.equals("next")) o=ndPOasrf(a.next());
      else if(s.equals("dPAt")) o=ndPOasrf(a.dPAt(argi()));
     }
    else if(ht.equals("QuCu"))
     {
      QuCu a=QuCuvo(o);
      if(s.equals("closed")) o=nboOa(a.closed);
      else if(s.equals("handles")) o=nboOa(a.handles);
      else if(s.equals("dpa")) o=ndPaOa(a.dpa);
      else if(s.equals("next")) o=ndPOasrf(a.next());
      else if(s.equals("dPAt")) o=ndPOasrf(a.dPAt(argi()));
     }
    else if(ht.equals("BSCu"))
     {
      BSCu a=BSCuvo(o);
      if(s.equals("closed")) o=nboOa(a.closed);
      else if(s.equals("handles")) o=nboOa(a.handles);
      else if(s.equals("dpa")) o=ndPaOa(a.dpa);
      else if(s.equals("boa")) o=nboaOa(a.boa);
      else if(s.equals("deg")) o=ndOa(a.deg);
      else if(s.equals("inc")) o=ndOa(a.inc);
      else if(s.equals("tpts")) o=ndOa(a.tpts);
      else if(s.equals("scale")) o=ndPOa(new dP(a.scx,a.scy));
      else if(s.equals("pk")) o=nKOa(new K(a.pk));
      else if(s.equals("pw")) o=ndOa(a.pw);
      else if(s.equals("shadk")) o=nKOa(new K(a.shadk));
      else if(s.equals("shadw")) o=ndOa(a.shadw);
     }
    else if(ht.equals("TA"))
     {
      TA a=TAvo(o);
      if(s.equals("ftname")) o=nSOa(a.ftname);
      else if(s.equals("ftstyle")) o=ndOa(a.ftstyle);
      else if(s.equals("ftsize")) o=ndOa(a.ftsize);
      else if(s.equals("fk")) o=nKOa(a.fk);
      else if(s.equals("bk"))o=nKOa(a.bk);
      else if(s.equals("ck"))o=nKOa(a.ck);
      else if(s.equals("clear")) a.clear();
      else if(s.equals("editable"))o=nboOa(a.isEditable());
     }
    else if(ht.equals("Bu"))
     {
      Bu a=Buvo(o);
      if(s.equals("ftname"))  o=nSOa(Bu.ftname);
      else if(s.equals("ftstyle"))o=ndOa(Bu.ftstyle);
      else if(s.equals("ftsize")) o=ndOa(Bu.ftsize);
      else if(s.equals("bk")) o=nKOa(a.bk);
      else if(s.equals("type")) o=nSOa(a.type);
      else if(s.equals("labels")) o=nSaOa(a.labels); 
      else if(s.equals("label")) o=nSOa(a.label); 
      else if(s.equals("i")) o=ndOa(a.i);
     }
    else if(ht.equals("K"))
     {
      K a=Kvo(o);
      if(s.equals("h")) o=ndOa(a.h);
      else if(s.equals("s")) o=ndOa(a.s);
      else if(s.equals("v")) o=ndOa(a.v);
      else if(s.equals("r")) o=ndOa(a.r);
      else if(s.equals("g")) o=ndOa(a.g);
      else if(s.equals("b")) o=ndOa(a.b);
      else if(s.equals("a")) o=ndOa(a.a);
      else if(s.equals("i")) o=ndOa(a.i);
      else if(s.equals("k")) o=nKOa(a);
      else if(s.equals("eq"))
       {
        boolean bo=argop();
        K k2=argK();
        if(argc()) o=nboOa(K.eq(a,k2,argK()));
        else o=nboOa(K.eq(a,k2));
        if(bo) argcp();
       }
     }
    else if(ht.equals("Rec"))
     {
      Rec a=Recvo(o);
      if(s.equals("x"))o=ndOa(a.x);
      else if(s.equals("y"))o=ndOa(a.y);
      else if(s.equals("w"))o=ndOa(a.w);
      else if(s.equals("h"))o=ndOa(a.h);
      else if(s.equals("s"))o=ndPOa(new dP(a.w,a.h));
      else if(s.equals("cp"))o=ndPOa(a.cp);
      else if(s.equals("bl"))o=ndPOa(a.bl);
      else if(s.equals("tr"))o=ndPOa(new dP(a.x+a.w,a.y+a.h));
      else if(s.equals("blo"))o=ndPOa(a.blo);
      else if(s.equals("rect"))o=nRectangleOa(a.rect);
      else if(s.equals("pk"))o=nKOa(a.pk);
      else if(s.equals("fk"))o=nKOa(a.fk);
      else if(s.equals("m"))o=nboOa(a.m);
      else if(s.equals("cont"))o=nboOa(a.cont(argdP()));
      //else if(s.equals("cont"))o=nboOa(a.cont(argd(),argcd()));
     }
    else if(ht.equals("dP")) // ziggy
     {
      dP a=dPvo(o);
      if(s.equals("x"))o=ndOa(a.x);
      else if(s.equals("y"))o=ndOa(a.y);
      else if(s.equals("r"))o=ndOa(a.r);
      else if(s.equals("t"))o=ndOa(a.t);
      else if(s.equals("dp"))o=ndPOa(a);
      else if(s.equals("eq")) o=nboOa(a.eq(argdP()));
      else if(s.equals("ae")) o=ndPOa(a.ae(argdP()));
      else if(s.equals("a")) o=ndPOa(dP.a(a,argdP()));
      else if(s.equals("ax")) o=ndPOa(dP.ax(a,argd()));
      else if(s.equals("ay")) o=ndPOa(dP.ay(a,argd()));
      else if(s.equals("am")) o=ndPOa(dP.am(a,argdP()));
      else if(s.equals("ma")) o=ndPOa(dP.ma(a,argdP()));
      else if(s.equals("m")) o=ndPOa(dP.m(a,argdP()));
      else if(s.equals("n")) o=ndPOa(dP.n(a));
      else if(s.equals("nx")) o=ndPOa(dP.nx(a));
      else if(s.equals("ny")) o=ndPOa(dP.ny(a));
      else if(s.equals("me")) o=ndPOa(a.me(argdP()));
      else if(s.equals("na")) o=ndPOa(dP.na(a,argdP()));
      else if(s.equals("nax")) o=ndPOa(dP.nax(a,argdP()));
      else if(s.equals("nay")) o=ndPOa(dP.nay(a,argdP()));
      else if(s.equals("nm")) o=ndPOa(dP.nm(a,argdP()));
      else if(s.equals("nmx")) o=ndPOa(dP.nmx(a,argdP()));
      else if(s.equals("nmy")) o=ndPOa(dP.nmy(a,argdP()));
      else if(s.equals("nam")) o=ndPOa(dP.nam(a,argdP()));
      else if(s.equals("nma")) o=ndPOa(dP.nma(a,argdP()));
      else if(s.equals("nxa")) o=ndPOa(dP.nxa(a,argdP()));
      else if(s.equals("nxax")) o=ndPOa(dP.nxax(a,argdP()));
      else if(s.equals("nxay")) o=ndPOa(dP.nxay(a,argdP()));
      else if(s.equals("nxm")) o=ndPOa(dP.nxm(a,argdP()));
      else if(s.equals("nxmx")) o=ndPOa(dP.nxmx(a,argdP()));
      else if(s.equals("nxmy")) o=ndPOa(dP.nxmy(a,argdP()));
      else if(s.equals("nxam")) o=ndPOa(dP.nxam(a,argdP()));
      else if(s.equals("nxma")) o=ndPOa(dP.nxma(a,argdP()));
      else if(s.equals("nya")) o=ndPOa(dP.nya(a,argdP()));
      else if(s.equals("nyax")) o=ndPOa(dP.nyax(a,argdP()));
      else if(s.equals("nyay")) o=ndPOa(dP.nyay(a,argdP()));
      else if(s.equals("nym")) o=ndPOa(dP.nym(a,argdP()));
      else if(s.equals("nymx")) o=ndPOa(dP.nymx(a,argdP()));
      else if(s.equals("nymy")) o=ndPOa(dP.nymy(a,argdP()));
      else if(s.equals("nyam")) o=ndPOa(dP.nyam(a,argdP()));
      else if(s.equals("nyma")) o=ndPOa(dP.nyma(a,argdP()));
      else if(s.equals("r")) o=ndOa(a.r);
      else if(s.equals("t")) o=ndOa(a.t);
      else if(s.equals("rand")) o=ndOa(dP.rand(a));
     }
    else if(ht.equals("dPa"))
     {
      dP[] a=dPavo(o);
      if(s.equals("ea")) o=ndPOa(a[argi()]);
      else if(s.equals("l")) o=ndOa(a.length);
      else if(s.equals("c")) o=nboOa(dP.dPac(a,argdP()));
      else if(s.equals("ieq")) o=nboOa((a[argi()]).equals(argdP()));
      else if(s.equals("pop")) o=popdP(ghn(o),a);
      else if(s.equals("push")) o=pushdP(ghn(o),a,argdP());
      else if(s.equals("shift")) o=shiftdP(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftdP(ghn(o),a,argdP());
     }
    else if(ht.equals("PCL"))
     {
      PCL a=PCLvo(o);
      if(s.equals("l")) o=ndOa(a.va.length);
      else if(s.equals("hpw")) o=ndOa(PCL.hpw);
      else if(s.equals("ea"))o=ndPOa(a.va[argi()]);
      else if(s.equals("c"))o=nboOa(dP.dPac(a.va,argdP()));
      else if(s.equals("va"))o=ndPaOa(a.va);
      else if(s.equals("pads"))o=ndPaOa(PCL.pads);
     }
    else if(ht.equals("PCLa"))
     {
      PCL[] a=PCLavo(o);
      if(s.equals("ea")) o=nPCLOa(a[argi()]);
      else if(s.equals("l")) o=ndOa(a.length);
      else if(s.equals("ieq")) o=nboOa((a[argi()]).equals(argPCL()));
      else if(s.equals("pop")) o=popPCL(ghn(o),a);
      else if(s.equals("push")) o=pushPCL(ghn(o),a,argPCL());
      else if(s.equals("shift")) o=shiftPCL(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftPCL(ghn(o),a,argPCL());
     }
    else if(ht.equals("PCR"))
     {
      PCR a=PCRvo(o);
      if(s.equals("rec")) o=nRecOa(a.rec);
     }
    else if(ht.equals("PCRa"))
     {
      PCR[] a=PCRavo(o);
      if(s.equals("ea")) o=nPCROa(a[argi()]);
      else if(s.equals("l")) o=ndOa(a.length);
      else if(s.equals("ieq")) o=nboOa((a[argi()]).equals(argPCR()));
      else if(s.equals("pop")) o=popPCR(ghn(o),a);
      else if(s.equals("push")) o=pushPCR(ghn(o),a,argPCR());
      else if(s.equals("shift")) o=shiftPCR(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftPCR(ghn(o),a,argPCR());
     }
    else if(ht.equals("Sh"))
     {
      Sh a=Shvo(o);
      if(s.equals("x"))o=ndOa(a.dp.x);
      else if(s.equals("y"))o=ndOa(a.dp.y);
      else if(s.equals("dp"))o=ndPOa(a.dp);
      else if(s.equals("bw"))o=ndOa(a.bw);
      else if(s.equals("bh"))o=ndOa(a.bh);
      else if(s.equals("bounds"))o=nRectangleOa(a.bounds);
      else if(s.equals("pk"))o=nKOa(a.pk);
      else if(s.equals("fk"))o=nKOa(a.fk);
      else if(s.equals("tu"))o=nTuOa(a.tu);
      else if(s.equals("stu"))o=nboOa(a.stu);
     }
    else if(ht.equals("Img"))
     {
      Img a=Imgvo(o);
      if(s.equals("x"))o=ndOa(a.rec.x);
      else if(s.equals("y"))o=ndOa(a.rec.y);
      else if(s.equals("w"))o=ndOa(a.rec.w);
      else if(s.equals("h"))o=ndOa(a.rec.h);
      else if(s.equals("cp"))o=ndPOa(a.rec.cp);
      else if(s.equals("bl"))o=ndPOa(a.rec.bl);
      else if(s.equals("rec"))o=nRecOa(a.rec);
      else if(s.equals("rect"))o=nRectangleOa(a.rec.rect);
     }
    else if(ht.equals("AC"))
     {
      AudioClip a=ACvo(o);
     }
    else if(ht.equals("Ci"))
     {
      if(s.equals("d")) lc.rEll(Civo(o),lc.offsg,1);
      else if(s.equals("f")) lc.rEll(Civo(o),lc.offsg,2);
      else if(s.equals("fd")) lc.rEll(Civo(o),lc.offsg,3);
      else if(s.equals("gpd")) lc.rEll(Civo(o),tu.gp(),lc.offsg,1);
      else if(s.equals("gpf")) lc.rEll(Civo(o),tu.gp(),lc.offsg,2);
      else if(s.equals("gpfd")) lc.rEll(Civo(o),tu.gp(),lc.offsg,3);
      else if(s.equals("dPfd")) 
       {
        tta("dPdf found");
        dP b=argdP();
        tta("b:"+b);
        lc.rEll(Civo(o),b,lc.offsg,3);
       }
      else if(s.equals("dPafd"))
       {
        dP[] b=argdPa();
        for (int i=0;i< b.length;i++)
         {
          lc.rEll(Civo(o),b[i],lc.offsg,3);
         }
       }
      else
       {
        Ci a=Civo(o);
        if(s.equals("cp"))o=ndPOa(a.cp);
        else if(s.equals("x"))o=ndOa(a.cp.x);
        else if(s.equals("y"))o=ndOa(a.cp.y);
        else if(s.equals("r"))o=ndOa(a.r);
        else if(s.equals("rx"))o=ndOa(a.rx);
        else if(s.equals("ry"))o=ndOa(a.ry);
        else if(s.equals("pw"))o=ndOa(a.pw);
        else if(s.equals("pk"))o=nKOa(a.pk);
        else if(s.equals("fk"))o=nKOa(a.fk);
       }
     }
    else if(ht.equals("FFT"))
     {
      FFT a=FFTvo(o);
      tta("fft hit");
      if(s.equals("listtr")) a.listtr();
     }
    else if(ht.equals("Wav"))
     {
      if(s.equals("samplerate")) o=ndOa(Wavvo(o).samplerate);
      else if(s.equals("locmax")) o=ndOa(Wavvo(o).locmax);
      else if(s.equals("mutefactor")) o=ndOa(Wavvo(o).mutefactor);
      else if(s.equals("fn")) o=nSOa(Wavvo(o).fn);
      else if(s.equals("blockrate")) o=ndOa(Wavvo(o).blockrate);
      else if(s.equals("blockbytes")) o=ndOa(Wavvo(o).blockbytes);
      else if(s.equals("databytes")) o=ndOa(Wavvo(o).databytes);
      else if(s.equals("announce")) o=nboOa(Wavvo(o).announce);
      else if(s.equals("chs")) o=ndOa(Wavvo(o).chs);
      else if(s.equals("samplebits")) o=ndOa(Wavvo(o).samplebits);
      else if(s.equals("chshorts")) o=ndOa(Wavvo(o).chshorts);
      else if(s.equals("playbufsize")) o=ndOa(Wavvo(o).playbufsize);
      else if(s.equals("capbufsize")) o=ndOa(Wavvo(o).capbufsize);
      else if(s.equals("beth")) o=ndOa(Wavvo(o).beth);
      else if(s.equals("bedx")) o=ndOa(Wavvo(o).bedx);
      else if(s.equals("name")) o=nSOa(Wavvo(o).name);
      else if(s.equals("ed")) Wavvo(o).ed();
      else if(s.equals("lcsc")) o=ndPOa(Wavvo(o).lcsc);
      else if(s.equals("tta")) Wav.tta(argS(true));
      else if(s.equals("tta1")) Wav.tta1(argS(true));
      else if(s.equals("rf")) o=ndOa(Wavvo(o).rf);
      else if(s.equals("rc")) o=ndOa(Wavvo(o).rc);
      else if(s.equals("bs")) o=ndOa(Wavvo(o).bs);
      else if(s.equals("scbr")) o=ndOa(Wavvo(o).scbr);
      else if(s.equals("lx")) o=ndOa(Wavvo(o).lx);
      else if(s.equals("w")) o=ndOa(Wavvo(o).w);
      else if(s.equals("graphrms")) o=nboOa(Wavvo(o).graphrms);
      else if(s.equals("graphpeaks")) o=nboOa(Wavvo(o).graphpeaks);
      else if(s.equals("grahdiff")) o=nboOa(Wavvo(o).graphdiff);
      else if(s.equals("rbrec")) o=nRecOa(Wavvo(o).rbrec);
      else if(s.equals("rband"))  o=nboOa(Wavvo(o).lc.rband);   
      else if(s.equals("wig")) o=ndOa(Wavvo(o).wig);
      else if(s.equals("rmsss")) o=ndOa(Wavvo(o).rmsss);
      else if(s.equals("crms")) o=ndOa(Wavvo(o).crms);
      else if(s.equals("tcrms")) o=ndOa(Wavvo(o).tcrms);
      else if(s.equals("tymo")) o=ndOa(Wavvo(o).tymo);
      else if(s.equals("gb")) o=ndOa(Wavvo(o).gb);
      else if(s.equals("becut")) o=ndOa(Wavvo(o).becut);
      else if(s.equals("popd")) o=ndOa(Wavvo(o).popd);
      else if(s.equals("popmxth")) o=ndOa(Wavvo(o).popmxth);
      else if(s.equals("popmx")) o=ndOa(Wavvo(o).popmx);
      else if(s.equals("popki")) o=ndOa(Wavvo(o).popki);
      else if(s.equals("popadv")) o=ndOa(Wavvo(o).popadv);
      else if(s.equals("poppost")) o=ndOa(Wavvo(o).poppost);
      else if(s.equals("popddyth")) o=ndOa(Wavvo(o).popddyth);
      else if(s.equals("popdyth")) o=ndOa(Wavvo(o).popdyth);
      else if(s.equals("popdy")) o=ndOa(Wavvo(o).popdy);
      else if(s.equals("popss")) o=ndOa(Wavvo(o).popss);
      //  else if(s.equals("pfp1")) o=ndOasrf(Wavvo(o).pfp1());
      //  else if(s.equals("pfp2")) o=ndOasrf(Wavvo(o).pfp2());
      else if(s.equals("d1")) o=ndOa(Wavvo(o).d1);
      else if(s.equals("e1")) o=ndOa(Wavvo(o).e1);
      else if(s.equals("d2")) o=ndOa(Wavvo(o).d2);
      else if(s.equals("e2")) o=ndOa(Wavvo(o).e2);
      else if(s.equals("d3")) o=ndOa(Wavvo(o).d3);
      else if(s.equals("e3")) o=ndOa(Wavvo(o).e3);
      else if(s.equals("d4")) o=ndOa(Wavvo(o).d4);
      else if(s.equals("e4")) o=ndOa(Wavvo(o).e4);
      else if(s.equals("d5")) o=ndOa(Wavvo(o).d5);
      else if(s.equals("e5")) o=ndOa(Wavvo(o).e5);
      else if(s.equals("tfw")) o=ndOa(Wavvo(o).tfw);
      else if(s.equals("gb")) o=ndOa(Wavvo(o).gb); // machd
     }
    else if(ht.equals("Wave"))
    {
     if(s.equals("samplerate")) o=ndOa(Wavevo(o).samplerate);
     else if(s.equals("locmax")) o=ndOa(Wavevo(o).locmax);
     else if(s.equals("mutefactor")) o=ndOa(Wavevo(o).mutefactor);
     else if(s.equals("fn")) o=nSOa(Wavevo(o).fn);
     else if(s.equals("blockrate")) o=ndOa(Wavevo(o).blockrate);
     else if(s.equals("blockbytes")) o=ndOa(Wavevo(o).blockbytes);
     else if(s.equals("databytes")) o=ndOa(Wavevo(o).databytes);
     else if(s.equals("announce")) o=nboOa(Wavevo(o).announce);
     else if(s.equals("chs")) o=ndOa(Wavevo(o).chs);
     else if(s.equals("samplebits")) o=ndOa(Wavevo(o).samplebits);
     else if(s.equals("chshorts")) o=ndOa(Wavevo(o).chshorts);
     else if(s.equals("pbs")) o=ndOa(Wavevo(o).pbs);
     else if(s.equals("capbufsize")) o=ndOa(Wavevo(o).capbufsize);
     else if(s.equals("beth")) o=ndOa(Wavevo(o).beth);
     else if(s.equals("bedx")) o=ndOa(Wavevo(o).bedx);
     else if(s.equals("name")) o=nSOa(Wavevo(o).name);
     //else if(s.equals("ed")) Wavevo(o).ed();
     else if(s.equals("lcsc")) o=ndPOa(Wavevo(o).lcsc);
     else if(s.equals("tta")) Wave.tta(argS(true));
     else if(s.equals("tta1")) Wave.tta1(argS(true));
     else if(s.equals("rf")) o=ndOa(Wavevo(o).rf);
     else if(s.equals("rc")) o=ndOa(Wavevo(o).rc);
     else if(s.equals("bs")) o=ndOa(Wavevo(o).bs);
     else if(s.equals("scbr")) o=ndOa(Wavevo(o).scbr);
     else if(s.equals("lx")) o=ndOa(Wavevo(o).lx);
     else if(s.equals("w")) o=ndOa(Wavevo(o).w);
     else if(s.equals("graphrms")) o=nboOa(Wavevo(o).graphrms);
     else if(s.equals("graphpeaks")) o=nboOa(Wavevo(o).graphpeaks);
     else if(s.equals("grahdiff")) o=nboOa(Wavevo(o).graphdiff);
     else if(s.equals("rbrec")) o=nRecOa(Wavevo(o).rbrec);
     else if(s.equals("rband"))  o=nboOa(Wavevo(o).lc.rband);   
     else if(s.equals("wig")) o=ndOa(Wavevo(o).wig);
     else if(s.equals("rmsss")) o=ndOa(Wavevo(o).rmsss);
     else if(s.equals("crms")) o=ndOa(Wavevo(o).crms);
     else if(s.equals("tcrms")) o=ndOa(Wavevo(o).tcrms);
     else if(s.equals("tymo")) o=ndOa(Wavevo(o).tymo);
     else if(s.equals("gb")) o=ndOa(Wavevo(o).gb);
     else if(s.equals("becut")) o=ndOa(Wavevo(o).becut);
     else if(s.equals("popd")) o=ndOa(Wavevo(o).popd);
     else if(s.equals("popmxth")) o=ndOa(Wavevo(o).popmxth);
     else if(s.equals("popmx")) o=ndOa(Wavevo(o).popmx);
     else if(s.equals("popki")) o=ndOa(Wavevo(o).popki);
     else if(s.equals("popadv")) o=ndOa(Wavevo(o).popadv);
     else if(s.equals("poppost")) o=ndOa(Wavevo(o).poppost);
     else if(s.equals("popddyth")) o=ndOa(Wavevo(o).popddyth);
     else if(s.equals("popdyth")) o=ndOa(Wavevo(o).popdyth);
     else if(s.equals("popdy")) o=ndOa(Wavevo(o).popdy);
     else if(s.equals("popss")) o=ndOa(Wavevo(o).popss);
     //  else if(s.equals("pfp1")) o=ndOasrf(Wavevo(o).pfp1());
     //  else if(s.equals("pfp2")) o=ndOasrf(Wavevo(o).pfp2());
     else if(s.equals("d1")) o=ndOa(Wavevo(o).d1);
     else if(s.equals("e1")) o=ndOa(Wavevo(o).e1);
     else if(s.equals("d2")) o=ndOa(Wavevo(o).d2);
     else if(s.equals("e2")) o=ndOa(Wavevo(o).e2);
     else if(s.equals("d3")) o=ndOa(Wavevo(o).d3);
     else if(s.equals("e3")) o=ndOa(Wavevo(o).e3);
     else if(s.equals("d4")) o=ndOa(Wavevo(o).d4);
     else if(s.equals("e4")) o=ndOa(Wavevo(o).e4);
     else if(s.equals("d5")) o=ndOa(Wavevo(o).d5);
     else if(s.equals("e5")) o=ndOa(Wavevo(o).e5);
     else if(s.equals("tfw")) o=ndOa(Wavevo(o).tfw);
     else if(s.equals("gb")) o=ndOa(Wavevo(o).gb); // machd
     
     else if(s.equals("pamp")) o=ndOa(Wavevo(o).pamp);
     else if(s.equals("freq1")) o=ndOa(Wavevo(o).freq1);
     else if(s.equals("bufftime")) o=ndOa(Wavevo(o).bufftime);
    }
    else if(ht.equals("Wavegraph"))
    {
     if(s.equals("samplerate")) o=ndOa(Wavegraphvo(o).samplerate);
     else if(s.equals("locmax")) o=ndOa(Wavegraphvo(o).locmax);
     else if(s.equals("mutefactor")) o=ndOa(Wavegraphvo(o).mutefactor);
     else if(s.equals("fn")) o=nSOa(Wavegraphvo(o).fn);
     else if(s.equals("blockrate")) o=ndOa(Wavegraphvo(o).blockrate);
     else if(s.equals("blockbytes")) o=ndOa(Wavegraphvo(o).blockbytes);
     else if(s.equals("databytes")) o=ndOa(Wavegraphvo(o).databytes);
     else if(s.equals("announce")) o=nboOa(Wavegraphvo(o).announce);
     else if(s.equals("chs")) o=ndOa(Wavegraphvo(o).chs);
     else if(s.equals("samplebits")) o=ndOa(Wavegraphvo(o).samplebits);
     else if(s.equals("chshorts")) o=ndOa(Wavegraphvo(o).chshorts);
     else if(s.equals("pbs")) o=ndOa(Wavegraphvo(o).playbufsize);
     else if(s.equals("capbufsize")) o=ndOa(Wavegraphvo(o).capbufsize);
     else if(s.equals("beth")) o=ndOa(Wavegraphvo(o).beth);
     else if(s.equals("bedx")) o=ndOa(Wavegraphvo(o).bedx);
     else if(s.equals("name")) o=nSOa(Wavegraphvo(o).name);
     else if(s.equals("ed")) Wavegraphvo(o).ed();
     else if(s.equals("lcsc")) o=ndPOa(Wavegraphvo(o).lcsc);
     else if(s.equals("tta")) Wavegraph.tta(argS(true));
     else if(s.equals("tta1")) Wavegraph.tta1(argS(true));
     else if(s.equals("rf")) o=ndOa(Wavegraphvo(o).rf);
     else if(s.equals("rc")) o=ndOa(Wavegraphvo(o).rc);
     else if(s.equals("bs")) o=ndOa(Wavegraphvo(o).bs);
     else if(s.equals("scbr")) o=ndOa(Wavegraphvo(o).scbr);
     else if(s.equals("lx")) o=ndOa(Wavegraphvo(o).lx);
     else if(s.equals("w")) o=ndOa(Wavegraphvo(o).w);
     else if(s.equals("graphrms")) o=nboOa(Wavegraphvo(o).graphrms);
     else if(s.equals("graphpeaks")) o=nboOa(Wavegraphvo(o).graphpeaks);
     else if(s.equals("grahdiff")) o=nboOa(Wavegraphvo(o).graphdiff);
     else if(s.equals("rbrec")) o=nRecOa(Wavegraphvo(o).rbrec);
     else if(s.equals("rband"))  o=nboOa(Wavegraphvo(o).lc.rband);   
     else if(s.equals("wig")) o=ndOa(Wavegraphvo(o).wig);
     else if(s.equals("rmsss")) o=ndOa(Wavegraphvo(o).rmsss);
     else if(s.equals("crms")) o=ndOa(Wavegraphvo(o).crms);
     else if(s.equals("tcrms")) o=ndOa(Wavegraphvo(o).tcrms);
     else if(s.equals("tymo")) o=ndOa(Wavegraphvo(o).tymo);
     else if(s.equals("gb")) o=ndOa(Wavegraphvo(o).gb);
     else if(s.equals("becut")) o=ndOa(Wavegraphvo(o).becut);
     else if(s.equals("popd")) o=ndOa(Wavegraphvo(o).popd);
     else if(s.equals("popmxth")) o=ndOa(Wavegraphvo(o).popmxth);
     else if(s.equals("popmx")) o=ndOa(Wavegraphvo(o).popmx);
     else if(s.equals("popki")) o=ndOa(Wavegraphvo(o).popki);
     else if(s.equals("popadv")) o=ndOa(Wavegraphvo(o).popadv);
     else if(s.equals("poppost")) o=ndOa(Wavegraphvo(o).poppost);
     else if(s.equals("popddyth")) o=ndOa(Wavegraphvo(o).popddyth);
     else if(s.equals("popdyth")) o=ndOa(Wavegraphvo(o).popdyth);
     else if(s.equals("popdy")) o=ndOa(Wavegraphvo(o).popdy);
     else if(s.equals("popss")) o=ndOa(Wavegraphvo(o).popss);
     //  else if(s.equals("pfp1")) o=ndOasrf(Wavegraphvo(o).pfp1());
     //  else if(s.equals("pfp2")) o=ndOasrf(Wavegraphvo(o).pfp2());
     else if(s.equals("d1")) o=ndOa(Wavegraphvo(o).d1);
     else if(s.equals("e1")) o=ndOa(Wavegraphvo(o).e1);
     else if(s.equals("d2")) o=ndOa(Wavegraphvo(o).d2);
     else if(s.equals("e2")) o=ndOa(Wavegraphvo(o).e2);
     else if(s.equals("d3")) o=ndOa(Wavegraphvo(o).d3);
     else if(s.equals("e3")) o=ndOa(Wavegraphvo(o).e3);
     else if(s.equals("d4")) o=ndOa(Wavegraphvo(o).d4);
     else if(s.equals("e4")) o=ndOa(Wavegraphvo(o).e4);
     else if(s.equals("d5")) o=ndOa(Wavegraphvo(o).d5);
     else if(s.equals("e5")) o=ndOa(Wavegraphvo(o).e5);
     else if(s.equals("tfw")) o=ndOa(Wavegraphvo(o).tfw);
     else if(s.equals("gb")) o=ndOa(Wavegraphvo(o).gb); // machd
    }
    else if(ht.equals("Menu"))
     {
      if(s.equals(""));
     }
    else if(ht.equals("LSort"))
     {
      if(s.equals("s")) o=ndOa(LSortvo(o).s);
     }
    else if(ht.equals("Aux"))
     {
      if(s.equals(""));
     }
    else if(ht.equals("Sc"))
     {
      if(s.equals(""));
     }
    else if(ht.equals("PP"))
     {
      PP a=PPvo(o);
      if(s.equals("centroid")) o=nXYZOa(a.centroid);
     }
    else if(ht.equals("XYZa"))
     {
      XYZ[] a=XYZavo(o);
      if(s.equals("ea")) o=nXYZOa(a[argi()]);
      else if(s.equals("l")) o=ndOa(a.length);
      else if(s.equals("c")) o=nboOa(XYZ.XYZac(a,argXYZ()));
      else if(s.equals("ieq")) o=nboOa((a[argi()]).equals(argXYZ()));
      else if(s.equals("pop")) o=popXYZ(ghn(o),a);
      else if(s.equals("push")) o=pushXYZ(ghn(o),a,argXYZ());
      else if(s.equals("shift")) o=shiftXYZ(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftXYZ(ghn(o),a,argXYZ());
     }
    // insert new Obj d21
    else if(s.equals("x"))
     {
      if(ht.equals("P")) o=ndOa(((Point)o[1]).x);
     }
    else if(s.equals("y"))
     {
      if(ht.equals("P")) o=ndOa(((Point)o[1]).y);
     }
    if(m==3) o=nSOa(o);
    return o;
   }
  // end p3
  void dtvwp5(Object[] o,String s) // Setting or Doing
   {
    String ht=(String)o[0];
    if(ht.equals("Sl"))
     {
      Sl a=Slvo(o);
      if(s.equals("ll")) a.setll(argd());
      else if(s.equals("ul")) a.setul(argd());
      else if(s.equals("type")) a.settype(argS(2));
      else if(s.equals("svals")) a.setsvals(argSa());
      else if(s.equals("tl")) a.settl(argdP());
      else if(s.equals("hostlp")) a.sethostlp(argLP());
      else if(s.equals("sweep")) a.sweep();
      else if(s.equals("sweepstep")) a.sweepstep=argd();
      else if(s.equals("sweepbegin")) a.sweepbegin=argd();
      else if(s.equals("sweepend")) a.sweepend=argd();
      else if(s.equals("sweepdelay")) a.sweepdelay=argd();
      else if(s.equals("bu0")) a.setbutton0(argi());
      else if(s.equals("bu1")) a.firebutton1();
      else if(s.equals("bu2")) a.setbutton2(argi());
      else if(s.equals("render")) a.render();
      else if(s.equals("fender")) a.fender();
      else if(s.equals("edpos")) LP.setedpos(argbo());
      else if(s.equals("save")) a.save=argbo();
      else if(s.equals("layer")) a.attach(argi());
      else if(s.equals("rW")) a.setrW(argd());
      else if(s.equals("knobhue")) 
       {
        int moe=argi();
        double doe=argd();
        tta("moe:"+moe+" doe:"+doe);
        //Sl.setknobhue(argi(),argd());
        Sl.setknobhue(moe,doe);
       }
      else if(a.type.equals("K"))
       {
        if(s.equals("h"))  a.seth(argf());
        else if(s.equals("s"))  a.sets(argf());
        else if(s.equals("v")) a.setv(argf());
        else if(s.equals("r"))  a.setr(argi());
        else if(s.equals("g"))  a.setg(argi());
        else if(s.equals("b"))  a.setb(argi());
        else if(s.equals("a"))  a.seta(argi());
        else if(s.equals("k"))  a.setk(argK());
        else if(s.equals("hsv")) a.sethsv(argbo());
       }
      else if(a.type.equals("dP"))
       {
        dP aa=a.dp;
        if(s.equals("dp")) a.setdp(argdP());
        else if(s.equals("x")) a.setx(argd());
        else if(s.equals("y")) a.sety(argd());
        else if(s.equals("r")) a.setr(argd());
        else if(s.equals("t")) a.sett(argd());
        else if(s.equals("boxy")) a.boxy=argbo();
        else if(s.equals("ae")) o=ndPOa(aa.ae(argdP()));
        else if(s.equals("a")) o=ndPOa(dP.a(aa,argdP()));
        else if(s.equals("m")) o=ndPOa(dP.m(aa,argdP()));
        else if(s.equals("n")) o=ndPOa(dP.n(aa));
        else if(s.equals("nx")) o=ndPOa(dP.nx(aa));
        else if(s.equals("ny")) o=ndPOa(dP.ny(aa));
        else if(s.equals("me")) o=ndPOa(aa.me(argdP()));
        else if(s.equals("na")) o=ndPOa(dP.na(aa,argdP()));
        else if(s.equals("nax")) o=ndPOa(dP.nax(aa,argdP()));
        else if(s.equals("nay")) o=ndPOa(dP.nay(aa,argdP()));
        else if(s.equals("nm")) o=ndPOa(dP.nm(aa,argdP()));
        else if(s.equals("nmx")) o=ndPOa(dP.nmx(aa,argdP()));
        else if(s.equals("nmy")) o=ndPOa(dP.nmy(aa,argdP()));
        else if(s.equals("nam")) o=ndPOa(dP.nam(aa,argdP()));
        else if(s.equals("nma")) o=ndPOa(dP.nma(aa,argdP()));
        else if(s.equals("nxa")) o=ndPOa(dP.nxa(aa,argdP()));
        else if(s.equals("nxax")) o=ndPOa(dP.nxax(aa,argdP()));
        else if(s.equals("nxay")) o=ndPOa(dP.nxay(aa,argdP()));
        else if(s.equals("nxm")) o=ndPOa(dP.nxm(aa,argdP()));
        else if(s.equals("nxmx")) o=ndPOa(dP.nxmx(aa,argdP()));
        else if(s.equals("nxmy")) o=ndPOa(dP.nxmy(aa,argdP()));
        else if(s.equals("nxam")) o=ndPOa(dP.nxam(aa,argdP()));
        else if(s.equals("nxma")) o=ndPOa(dP.nxma(aa,argdP()));
        else if(s.equals("nya")) o=ndPOa(dP.nya(aa,argdP()));
        else if(s.equals("nyax")) o=ndPOa(dP.nyax(aa,argdP()));
        else if(s.equals("nyay")) o=ndPOa(dP.nyay(aa,argdP()));
        else if(s.equals("nym")) o=ndPOa(dP.nym(aa,argdP()));
        else if(s.equals("nymx")) o=ndPOa(dP.nymx(aa,argdP()));
        else if(s.equals("nymy")) o=ndPOa(dP.nymy(aa,argdP()));
        else if(s.equals("nyam")) o=ndPOa(dP.nyam(aa,argdP()));
        else if(s.equals("nyma")) o=ndPOa(dP.nyma(aa,argdP()));
        else if(s.equals("rand")) o=ndOa(dP.rand(aa));
        else if(s.equals("ax")) o=ndPOa(dP.ax(aa,argd()));
        else if(s.equals("ay")) o=ndPOa(dP.ay(aa,argd()));
        else if(s.equals("am")) o=ndPOa(dP.am(aa,argdP()));
        else if(s.equals("ma")) o=ndPOa(dP.ma(aa,argdP()));
        else if(s.equals("ll") || s.equals("dpll"))
         {
          a.setdpll(argdP());
          o=ndPOa(a.dpll);
         }
        else if(s.equals("ul") || s.equals("dpul"))
         {
          a.setdpul(argdP());
          o=ndPOa(a.dpul);
         }
        a.render();
       }
      else if(a.type.equals("XYZ"))
       {
        XYZ aa=a.xyz;
        if(s.equals("x")) a.setx(argd());
        else if(s.equals("y")) a.sety(argd());
        else if(s.equals("z")) a.setz(argd());
        else if(s.equals("xyz")) a.setxyz(argXYZ());
        else if(s.equals("xyzul"))
         {
          a.setxyzul(argXYZ());
          o=nXYZOa(a.xyzul);
         }
        else if(s.equals("xyzll"))
         {
          a.setxyzll(argXYZ());
          o=nXYZOa(a.xyzll);
         }
       }
     }
    else if(ht.equals("S"))
     {
      String n=ghn(o);
      String v=Svo(o);
      String r="";
      if(s.equals("chomp")) r=v.trim();
      else if(s.equals("isF")) o=nboOa((new File(n)).isFile());
      else if(s.equals("isD")) o=nboOa((new File(n)).isDirectory());
      else if(s.equals("chompe"))
       {
        r=v.trim();
        Sh.put(n,r);
       }
      else if(s.equals("ns"))
       {
        int x=v.indexOf(" ");
        while(x> -1)
         {
          if(x==v.length()) v=v.substring(0,x);
          else v=v.substring(0,x)+v.substring(x+1);
          x=v.indexOf(" ");
         }
        r=v;
       }
      else if(s.equals("rs"))
       {
        int x=v.indexOf(" ");
        while(x> -1)
         {
          if(x==v.length()) v=v.substring(0,x);
          else v=v.substring(0,x)+v.substring(x+1);
          x=v.indexOf(" ");
         }
        r=v;
        Sh.put(n,v);
       }
      else if(s.equals("rfc"))
       {
        if(v.length() ==0) r="";
        else if(v.length() ==1)
         {
          r=v;
          v="";
         }
        else
         {
          r=v.substring(0,1);
          v=v.substring(1);
         }
        Sh.put(n,v);
       }
      else if(s.equals("rfw"))
       {
        int x=v.indexOf(" ");
        if(x> -1)
         {
          if(x==v.length()) v="";
          else v=v.substring(x+1);
          r=v.substring(0,x);
         }
        Sh.put(n,v);
       }
      else if(s.equals("rlw"))
       {
        int x=v.lastIndexOf(" ");
        if(x> -1)
         {
          if(x==v.length()) v="";
          else 
           {
            r=v.substring(x+1);
            v=v.substring(0,x);
           }
         }
        Sh.put(n,v);
       }
      else if(s.equals("pb"))
       {
        int i=argi();
        int j=v.length();
        if(i>j)
         {
          for(int a=j;a<i;a++) v=" "+v;
         }
        r=v;
       }
      else if(s.equals("pa"))
       {
        int i=argci();
        int j=v.length();
        if(i>j)
         {
          for(int a=j;a<i;a++) v=v+" ";
         }
        r=v;
       }
      else if(s.equals("pbe"))
       {
        int i=argi();
        int j=v.length();
        if(i>j)
         {
          for(int a=j;a<i;a++) v=" "+v;
         }
        Sh.put(n,v);
        r=v;
       }
      else if(s.equals("pae"))
       {
        int i=argci();
        int j=v.length();
        if(i>j)
         {
          for(int a=j;a<i;a++) v=v+" ";
         }
        Sh.put(n,v);
        r=v;
       }
      else if(s.equals("ce"))
       {
        v=v+argS(true);
        Sh.put(n,v);
        r=v;
       }
      else if(s.equals("c")) r=v+argS(true);
      else if(s.equals("pce"))
       {
        v=argS(true)+v;
        Sh.put(n,v);
        r=v;
       }
      else if(s.equals("pc")) r=argS(true)+v;
      o=nSOa(r);
     }
    else if(ht.equals("da"))
     {
      if(s.equals("ea"))     
       {
        davo(o)[argi()]=argcd();
       }
      else if(s.equals("ae")) davo(o)[argi()]=argci();
      else if(s.equals("as")) davo(o)[argi()]=argci();
     }
    else if(ht.equals("Sa"))
     {
      String n=ghn(o);
      //tta("Sa dot n:"+n+" s:"+s);
      if(s.equals("pop")) o=nSOa(popS(n)); // MAYBE no nSOa like popdP
      else if(s.equals("push")) o=nSOa(pushS(n,argS(2)));
      else if(s.equals("shift")) o=nSOa(shiftS(n));
      else if(s.equals("unshift")) o=nSOa(unshiftS(n,argS(2)));
     }
    else if(ht.equals("Tu"))
     {
      Tu a=Tuvo(o);
      if(s.equals("x")) a.x=argd();
      else if(s.equals("y")) a.y=argd();
      else if(s.equals("z")) a.z=argd();
      else if(s.equals("p"))
       {
        if(tu.dd) a.sp(argdP());
        else a.sp(argXYZ());
       }
      else if(s.equals("h")) a.sh(argd());
      else if(s.equals("fd")) a.fd(argd());
      else if(s.equals("rt")) a.rt(argd());
      else if(s.equals("rti")) a.rt(180-argd());
      else if(s.equals("bk")) a.fd(argd());
      else if(s.equals("lt")) a.lt(argd());
      else if(s.equals("lti")) a.lt(180-argd());
      else if(s.equals("home")) a.home();
      else if(s.equals("yaw")) a.yaw(argd());
      else if(s.equals("pitch")) a.spitch(argd());
      else if(s.equals("roll")) a.sroll(argd());
      else if(s.equals("pw")) a.spw(argd());
      else if(s.equals("pd")) a.pd(argbo());
      else if(s.equals("pk")||s.equals("pc")) a.spk(argK());
      else if(s.equals("fk")||s.equals("fc")) a.sfk(argK());
      else if(s.equals("ftname")) a.setftname(argS(2));
      else if(s.equals("ftstyle")) a.setftstyle(argS(2));
      else if(s.equals("ftsize")) a.setftsize(argd());
      else if(s.equals("ftk")) a.ftk=argK();
      else if(s.equals("ftfd")) a.ftfd=argbo();
      else if(s.equals("ftshadk")) a.ftshadk=argK();
      else if(s.equals("ftshadsize")) a.ftshadsize=argd();
      else if(s.equals("ftshadang")) a.ftshadang=argd();
      else if(s.equals("ftshadoff")) a.ftshadoff=argd();
      else if(s.equals("lcsc")) a.lcsc(argdP());
      else if(s.equals("lcscx")) a.lcscx(argd());
      else if(s.equals("lcscy")) a.lcscy(argd());
      else if(s.equals("pl")) a.pl(argd());
      else if(s.equals("ploff")) a.pl(0);
      else if(s.equals("plpf") || s.equals("plon")) a.pl(1);
      else if(s.equals("plpd")) a.pl(2);
      else if(s.equals("plpu")) a.pl(3);
      else if(s.equals("plsc")) a.plsc(argd());
      else if(s.equals("plxoff")) a.plxoff(argd());
      else if(s.equals("plyoff")) a.plyoff(argd());
      else if(s.equals("plseg")) a.plseg(argd());
      else if(s.equals("plsleep")) a.plsleep(argd());
      else if(s.equals("plpw")) a.plpw(argd());
      else if(s.equals("snap")) a.snap(argd());
      else if(s.equals("announce")) a.announce=argbo();
     }
    else if(ht.equals("CuCu"))
     {
      CuCu a=CuCuvo(o);
      if(s.equals("closed")) a.setclosed(argbo());
      else if(s.equals("handles")) a.sethandles(argbo());
      else if(s.equals("dpa")) a.setdpa(argdPa());
      else if(s.equals("next")) a.next();
      else if(s.equals("dPAt")) a.dPAt(argi());
      else if(s.equals("ar")) ar(a.name);
      else if(s.equals("rr")) rr(a.name);
      else if(s.equals("r")) a.render();
      else if(s.equals("addseg"))
       {
        dP ldp=argdP();
        dP j=dP.a(ldp,5,5);
        if(argc()) j=argdP();
        a.addseg(j,ldp);
       }
      else if(s.equals("close")) a.closeseg();
     }
    else if(ht.equals("QuCu"))
     {
      QuCu a=QuCuvo(o);
      if(s.equals("closed")) a.setclosed(argbo());
      else if(s.equals("handles")) a.sethandles(argbo());
      else if(s.equals("dpa")) a.setdpa(argdPa());
      else if(s.equals("next")) a.next();
      else if(s.equals("dPAt")) a.dPAt(argi());
      a.render();
     }
    else if(ht.equals("BSCu"))
     {
      BSCu a=BSCuvo(o);
      if(s.equals("closed")) a.setclosed(argbo());
      else if(s.equals("handles")) a.sethandles(argbo());
      else if(s.equals("dpa")) a.setdpa(argdPa());
      else if(s.equals("boa")) a.setboa(argboa());
      else if(s.equals("deg")) a.setdeg(argi());
      else if(s.equals("inc")) a.setinc(argd());
      else if(s.equals("afdP")) a.afdP();
      else if(s.equals("rmdP")) a.rmdP();
      else if(s.equals("pk")) a.setpk(argK());
      else if(s.equals("pw")) a.setpw(argd());
      else if(s.equals("shadk")) a.setpk(argK());
      else if(s.equals("shadw")) a.setshadw(argd());
      else if(s.equals("scale")) a.scale(argdP());
      //else if(s.equals("tpts")) a.settpts(argd());
      a.render();
     }
    else if(ht.equals("Bu"))
     {
      Bu a=Buvo(o);
      if(s.equals("ftname")) a.setftname(argS(2));
      else if(s.equals("ftstyle")) a.setftstyle(argS(2));
      else if(s.equals("ftsize")) a.setftsize(argd());
      else if(s.equals("ftk")) a.ftk=argK();
      else if(s.equals("rec")) a.rec=argRec();
      else if(s.equals("tl")) a.settl(argdP());
      else if(s.equals("img")) a.img=argImg();
      else if(s.equals("pk")) a.rec.pk=argK();
      else if(s.equals("fk")) a.rec.fk=argK();
      else if(s.equals("type")) a.type=argS(2);
      else if(s.equals("labels")) a.setlabels(argSa());
      else if(s.equals("label")) a.setlabel(argS());
      else if(s.equals("i")) a.seti(argi());
      else if(s.equals("edpos")) LP.setedpos(argbo());
      else if(s.equals("reset")) a.reset();
     }
    else if(ht.equals("TA"))
     {
      TA lta=TAvo(o);
      if(s.equals("ftname")) lta.setftname(argS(2));
      else if(s.equals("ftstyle")) lta.setftstyle(argS(2));
      else if(s.equals("ftsize")) lta.setftsize(argd());
      else if(s.equals("fk")) lta.fk(argK());
      else if(s.equals("ck")) lta.ck(argK());
      else if(s.equals("bk")) lta.bk(argK());
      else if(s.equals("clear")) lta.clear();
      else if(s.equals("editable")) lta.setEditable(argbo());
     }
    else if(ht.equals("LC"))
     {
      //tta("Te  ht is LC");
      LC a=LCvo(o);
      if(s.equals("w")) a.setw(argd());
      else if(s.equals("h")) a.seth(argd());
      else if(s.equals("s")) a.setsize(argdP());
      else if(s.equals("rec")) a.setrec(argRec());
      else if(s.equals("clip")) a.setclip(argRec());
      //else if(s.equals("vp")) a.sdPOa(a.gvp());
      else if(s.equals("cvp")) a.scvp(argdP());
      else if(s.equals("scx")) a.tformscx(argd());
      else if(s.equals("scy")) a.tformscy(argd());
      else if(s.equals("sc")) a.tformsc(argdP());
      else if(s.equals("rsc")) a.tformrsc(argdP());
      else if(s.equals("asc")) a.tformasc(argdP());
      else if(s.equals("xy")) a.tformxy(argdP());
      else if(s.equals("rm")) a.rm=argi();
      else if(s.equals("fin")) 
       {
        //  a.dofin();
        //  hv[s]=null;
        //  ht[s]=null;
        //   LCh.remove(s);
        //   Sah.put(saname,sb);
        //   LCh.put(n,mlc);m 
       }
      else if(s.equals("fine")) 
       {
        //a.dofin();
        //  Te.LScPh.put(name,this);
        //  if(m==1) o=nLCOa((LC)LCh.get(s));
        LScP jj= ((LScP)LScPh.get(s));
        //	  jj.detach(a);
       }
      else if(s.equals("rband"))
       {
        boolean rb=argbo();
        tta("rband:"+rb);
        if(rb) 
         {
          lc.rbStart();
          tta("lc.rbStart() rb:"+rb);
         }
        else   lc.rbStop();
       }
     }
    else if(ht.equals("LP"))
     {
      LP a=LPvo(o);
      if(s.equals("tl")) a.settl(argdP());
      else if(s.equals("nextx")) a.nextx=argi();
      else if(s.equals("nexty")) a.nexty=argi();
      else if(s.equals("edpos")) LP.edpos=argbo();
      else if(s.equals("layers")) a.setkids(argSa());
      else if(s.equals("layer")) a.attach(argi());
     }
    else if(ht.equals("CC"))
     {
      CC lcc=CCvo(o);
      if(s.equals("interpret")) lcc.interpret=argbo();
      else if(s.equals("dc")) lcc.dc=argbo();
      else if(s.equals("chatcodebase"))
       {
        try { lcc.chatcodebase=new URL(argS(2)); }
        catch (MalformedURLException e) {}
       }
      else if(s.equals("port")) lcc.setport(argi());
      else if(s.equals("loopsleep")) CC.loopsleep=argd();
      else if(s.equals("bong"))
       {
        if(argbo()) CC.bong=true;
        else 
         {
          CC.bong=false;
          lcc.bongoff();
         }
       }
      else if(s.equals("deb")) lcc.deb=argbo();
     }
    else if(ht.equals("LScP"))
     {
     }
    else if(ht.equals("LSpP"))
     {
      LSpP a= LSpPvo(o);
      if(s.equals("ret")) a.ret();
      else if(s.equals("max")) a.max();
      else if(s.equals("min")) a.min();
      else if(s.equals("div"))
       {
        double ld=argd();
        a.setDiv(ld);
        o=ndOa(ld);
       }
      else if(s.equals("divpc"))
       {
        double ld=argd();
        a.setDivpc(ld);
        o=ndOa(ld);
       }
      else if(s.equals("name")) tta("coming");
      else if(s.equals("host")) tta("coming");
      else if(s.equals("hosttype")) tta("coming");
      else if(s.equals("lcnull")) a.doLCnull();
     }
    else if(ht.equals("K"))
     {
      k=Kvo(o);
      if(s.equals("h")) k.h=argf();
      else if(s.equals("s")) k.ss(argf());
      else if(s.equals("v")) k.sv(argf());
      else if(s.equals("a")) k.sa(argi());
      else if(s.equals("r")) k.sr(argi());
      else if(s.equals("g")) k.sg(argi());
      else if(s.equals("b")) k.sb(argi());
      else if(s.equals("i")) k.si(argi());
      else if(s.equals("k")) k.sk(argK());
      else if(s.equals("ih"))
       {
        if(argop())  k.ih(argdcp());
        else k.ih();
       }
      else if(s.equals("ah")) k.ih(argd());
     }
    else if(ht.equals("Rec"))
     {
      Rec a=Recvo(o);
      if(s.equals("x")) a.setx(argd());
      else if(s.equals("y")) a.sety(argd());
      else if(s.equals("w")) a.setw(argd());
      else if(s.equals("h")) a.seth(argd());
      else if(s.equals("s")) a.sets(argdP());
      else if(s.equals("p")) a.setp(argdP());
      else if(s.equals("cp")) a.setcp(argdP());
      else if(s.equals("bl")) a.setbl(argdP());
      else if(s.equals("tr")) a.settr(argdP());
      else if(s.equals("bla")) a.bla(argdP());
      else if(s.equals("bls")) a.bls(argdP());
      else if(s.equals("cblo")) a.cblo();
      else if(s.equals("ablo")) a.ablo(argdP());
      else if(s.equals("dblo")) a.dblo();
      else if(s.equals("cm")) a.m=false;
      else if(s.equals("pk")) a.setpk(argK());
      else if(s.equals("fk")) a.setfk(argK());
      else if(s.equals("snap"))
       {
        if(argop()) a.snap(argdcp());
        else a.snap(tu.snap);
       }
      else if(s.equals("d"))  lc.rRec(a,lc.offsg,false,a.pk);
      else if(s.equals("f"))  lc.rRec(a,lc.offsg,true,a.fk);
      else if(s.equals("dPd")) 
       {
        a.setp(argdP());
        lc.rRec(a,lc.offsg,false,a.pk);
       }
      else if(s.equals("gpd"))  
       {
        a.setp(new dP(tu.x,tu.y));
        lc.rRec(a,lc.offsg,false,a.pk);
       }
     }
    else if(ht.equals("dP"))
     {
      dP a=dPvo(o);
      if(s.equals("x")) a.setx(argd());
      else if(s.equals("y")) a.sety(argd());
      else if(s.equals("dp")) a.setdP(argdP());
      else if(s.equals("r")) a.setr(argd());
      else if(s.equals("t")) a.sett(argd());
      else if(s.equals("ae")) o=ndPOa(a.ae(argdP()));
      else if(s.equals("a")) o=ndPOa(dP.a(a,argdP()));
      else if(s.equals("m")) o=ndPOa(dP.m(a,argdP()));
      else if(s.equals("n")) o=ndPOa(dP.n(a));
      else if(s.equals("nx")) o=ndPOa(dP.nx(a));
      else if(s.equals("ny")) o=ndPOa(dP.ny(a));
      else if(s.equals("me")) o=ndPOa(a.me(argdP()));
      else if(s.equals("na")) o=ndPOa(dP.na(a,argdP()));
      else if(s.equals("nax")) o=ndPOa(dP.nax(a,argdP()));
      else if(s.equals("nay")) o=ndPOa(dP.nay(a,argdP()));
      else if(s.equals("nm")) o=ndPOa(dP.nm(a,argdP()));
      else if(s.equals("nmx")) o=ndPOa(dP.nmx(a,argdP()));
      else if(s.equals("nmy")) o=ndPOa(dP.nmy(a,argdP()));
      else if(s.equals("nam")) o=ndPOa(dP.nam(a,argdP()));
      else if(s.equals("nma")) o=ndPOa(dP.nma(a,argdP()));
      else if(s.equals("nxa")) o=ndPOa(dP.nxa(a,argdP()));
      else if(s.equals("nxax")) o=ndPOa(dP.nxax(a,argdP()));
      else if(s.equals("nxay")) o=ndPOa(dP.nxay(a,argdP()));
      else if(s.equals("nxm")) o=ndPOa(dP.nxm(a,argdP()));
      else if(s.equals("nxmx")) o=ndPOa(dP.nxmx(a,argdP()));
      else if(s.equals("nxmy")) o=ndPOa(dP.nxmy(a,argdP()));
      else if(s.equals("nxam")) o=ndPOa(dP.nxam(a,argdP()));
      else if(s.equals("nxma")) o=ndPOa(dP.nxma(a,argdP()));
      else if(s.equals("nya")) o=ndPOa(dP.nya(a,argdP()));
      else if(s.equals("nyax")) o=ndPOa(dP.nyax(a,argdP()));
      else if(s.equals("nyay")) o=ndPOa(dP.nyay(a,argdP()));
      else if(s.equals("nym")) o=ndPOa(dP.nym(a,argdP()));
      else if(s.equals("nymx")) o=ndPOa(dP.nymx(a,argdP()));
      else if(s.equals("nymy")) o=ndPOa(dP.nymy(a,argdP()));
      else if(s.equals("nyam")) o=ndPOa(dP.nyam(a,argdP()));
      else if(s.equals("nyma")) o=ndPOa(dP.nyma(a,argdP()));
      else if(s.equals("rand")) o=ndOa(dP.rand(a));
      else if(s.equals("ax")) o=ndPOa(dP.ax(a,argd()));
      else if(s.equals("ay")) o=ndPOa(dP.ay(a,argd()));
      else if(s.equals("am")) o=ndPOa(dP.am(a,argdP()));
      else if(s.equals("ma")) o=ndPOa(dP.ma(a,argdP()));
     }
    else if(ht.equals("dPa"))
     {
      dP[] a=dPavo(o);
      if(s.equals("ea")) a[argi()]=argdP();
      else if(s.equals("ri")) dPahp(ghn(o),dP.dPari(a,argi()));
      else if(s.equals("rdp")) dPahp(ghn(o),dP.dPardp(a,argdP()));
      else if(s.equals("ie")) dPahp(ghn(o),dP.dPaie(a,argi(),argcdP()));
      else if(s.equals("pop")) o=popdP(ghn(o),a);
      else if(s.equals("push")) o=pushdP(ghn(o),a,argdP());
      else if(s.equals("gp")) o=pushdP(ghn(o),a,tu.gp());
      else if(s.equals("shift")) o=shiftdP(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftdP(ghn(o),a,argdP());
     }
    else if(ht.equals("PCL"))
     {
      PCL a=PCLvo(o);
      if(s.equals("draw")) a.draw();
      else if(s.equals("hpw")) PCL.hpw=argd();
      else if(s.equals("va")) a.va=argdPa();
      else if(s.equals("pads")) PCL.pads=argdPa();
     }
    else if(ht.equals("PCLa"))
     {
      PCL[] a=PCLavo(o);
      if(s.equals("ea")) a[argi()]=argPCL();
      else if(s.equals("ri")) PCLahp(ghn(o),PCL.PCLari(a,argi()));
      else if(s.equals("rdp")) PCLahp(ghn(o),PCL.PCLardp(a,argdP()));
      else if(s.equals("pop")) o=popPCL(ghn(o),a);
      else if(s.equals("push")) o=pushPCL(ghn(o),a,argPCL());
      else if(s.equals("shift")) o=shiftPCL(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftPCL(ghn(o),a,argPCL());
     }
    else if(ht.equals("PCR"))
     {
      PCR a=PCRvo(o);
      if(s.equals("draw")) a.draw();
     }
    else if(ht.equals("PCRa"))
     {
      PCR[] a=PCRavo(o);
      if(s.equals("ea")) a[argi()]=argPCR();
      else if(s.equals("ri")) PCRahp(ghn(o),PCR.PCRari(a,argi()));
      else if(s.equals("rdp")) PCRahp(ghn(o),PCR.PCRardp(a,argdP()));
      else if(s.equals("pop")) o=popPCR(ghn(o),a);
      else if(s.equals("push")) o=pushPCR(ghn(o),a,argPCR());
      else if(s.equals("shift")) o=shiftPCR(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftPCR(ghn(o),a,argPCR());
     }
    else if(ht.equals("Sh"))
     {
      Sh a=Shvo(o);
      if(s.equals("x")) a.setx(argd());
      else if(s.equals("y")) a.sety(argd());
      else if(s.equals("sc")) a.sc=argd();
      else if(s.equals("dp")) a.dp=argdP();
      else if(s.equals("pk")) a.pk=argK();
      else if(s.equals("fk")) a.fk=argK();
      else if(s.equals("tu")) a.tu=argTu();
      else if(s.equals("stu")) a.stu=argbo();
      else if(s.equals("s")) a.stu();
     }
    else if(ht.equals("Img"))
     {
      Img a=Imgvo(o);
      if(s.equals("x")) a.rec.setx(argd());
      else if(s.equals("y")) a.rec.sety(argd());
      else if(s.equals("cp")) a.rec.setcp(argdP());
      else if(s.equals("bl")) a.rec.setbl(argdP());
      else if(s.equals("f"))
       {
        a.flush();
        a=null;
       }
     }
    else if(ht.equals("AC"))
     {
      AudioClip a=ACvo(o);
     }
    else if(ht.equals("Ci"))
     {
      if(s.equals("d")) lc.rEll(Civo(o),lc.offsg,1);
      else if(s.equals("f")) lc.rEll(Civo(o),lc.offsg,2);
      else if(s.equals("fd")) lc.rEll(Civo(o),lc.offsg,3);
      else if(s.equals("gpd")) lc.rEll(Civo(o),tu.gp(),lc.offsg,1);
      else if(s.equals("gpf")) lc.rEll(Civo(o),tu.gp(),lc.offsg,2);
      else if(s.equals("gpfd")) lc.rEll(Civo(o),tu.gp(),lc.offsg,3);
      else if(s.equals("dPfd"))
       {
        tta("dPfd found");
        dP b=argdP();
        tta("b:"+b);
        lc.rEll(Civo(o),b,lc.offsg,3);
       }
      else if(s.equals("dPafd"))
       {
        dP[] b=argdPa();
        for (int i=0;i< b.length;i++)
         {
          lc.rEll(Civo(o),b[i],lc.offsg,3);
         }
       }
      else
       {
        Ci a=Civo(o);
        if(s.equals("pw"))a.pw=argd();
        else if(s.equals("pk"))a.pk=argK();
        else if(s.equals("fk"))a.fk=argK();
        else
         {
          if(s.equals("cp")) a.cp=argdP();
          else if(s.equals("r"))
           {
            a.r=argd();
            a.rx=a.r;
            a.ry=a.r;
           }
          else if(s.equals("rx"))a.rx=argd();
          else if(s.equals("ry"))a.ry=argd();
          a.com();
         }
       }
     }
    else if(ht.equals("FFT"))
     {
      FFT a=FFTvo(o);
      if(s.equals("l"))    a.setlength(argi());
      else if(s.equals("listtr"))    a.listtr();
      //   else if(s.equals("cw"))    a.cw(argS());  fix for changes from machd
      else if(s.equals("uw"))    a.uw();
     }
    else if(ht.equals("Wav"))
     {
      if(s.equals("samplerate"))
       {
        //Wavvo(o).samplerate=argd();
        Wavvo(o).setBitrate(argf());
       }
      else if(s.equals("conn")) Wavvo(o).conn();
      else if(s.equals("mkl")) Wavvo(o).mkl();
      else if(s.equals("bigg")) Wavvo(o).bigg();
      else if(s.equals("play")) Wavvo(o).play();
      else if(s.equals("playwindow")) Wavvo(o).playWindow();
      else if(s.equals("rppw")) Wavvo(o).rppw();
      else if(s.equals("repplaywindow")) Wavvo(o).repplayWindow();
      else if(s.equals("blockrate")) Wavvo(o).blockrate=argf();
      else if(s.equals("blockbytes")) Wavvo(o).blockbytes=argd();
      else if(s.equals("databytes")) Wavvo(o).databytes=argd();
      else if(s.equals("announce")) Wavvo(o).announce=argbo();
      else if(s.equals("chs")) Wavvo(o).chs=argi();
      else if(s.equals("samplebits")) Wavvo(o).samplebits=argi();
      else if(s.equals("chshorts")) Wavvo(o).chshorts=argi();
      else if(s.equals("playbufsize")) Wavvo(o).playbufsize=argi();
      else if(s.equals("capbufsize")) Wavvo(o).capbufsize=argi();
      else if(s.equals("disres")) Wavvo(o).disres=argi();
      else if(s.equals("beth")) Wavvo(o).beth=argi();
      else if(s.equals("bedx")) Wavvo(o).bedx=argi();
      else if(s.equals("name")) Wavvo(o).name=argS(true);
      else if(s.equals("save")) Wavvo(o).save(argS(true));
      else if(s.equals("resave")) Wavvo(o).resave();
      else if(s.equals("repeak")) Wavvo(o).repeak();
      else if(s.equals("fn")) Wavvo(o).fn=argS(true);
      else if(s.equals("autoscale")) Wavvo(o).autoscale=argi();
      else if(s.equals("autowig")) Wavvo(o).autowig=argi();
      else if(s.equals("graph")) 
       {
        if(argop())
         {
          Wavvo(o).graph(argi(),argci()); 
          if(! argcp() ) tta("Wav.graph missing close paren");
         }
        else   Wavvo(o).graph(); 
       }
      else if(s.equals("graphpeaks")) Wavvo(o).graphpeaks=argbo();
      else if(s.equals("graphrms")) Wavvo(o).graphrms=argbo();
      else if(s.equals("graphdiff")) Wavvo(o).graphdiff=argbo();
      else if(s.equals("ave")) Wavvo(o).ave(argi(),argci(),argci());
      else if(s.equals("ed")) Wavvo(o).ed();
      else if(s.equals("lcsc")) Wavvo(o).lcsc(argdP());
      else if(s.equals("tta")) Wav.tta(argS(true));
      else if(s.equals("tta1")) Wav.tta1(argS(true));
      else if(s.equals("rf")) Wavvo(o).rf=argd();
      else if(s.equals("rc")) Wavvo(o).rc=argi();
      else if(s.equals("sm")) Wavvo(o).sm();
      else if(s.equals("synth")) Wavvo(o).synth(); // machd
      // else if(s.equals("sine")) Wavvo(o).Sine(argd(),argcd());  // freq, secs
      else if(s.equals("sine"))
    	  {
    	tta("Wav.sine depricated");
    	  }
      else if(s.equals("binaural")) Wavvo(o).Binaural(argd(),argcd(),argcd());  // freqa, freqb secs
      else if(s.equals("da2Wav"))
       {
        Wavvo(o).da2Wav(argda());//  da name
       }
      else if(s.equals("norm")) Wavvo(o).normalize();  // rbnorm below 
      else if(s.equals("ramp")) Wavvo(o).Ramp(argd());  //  secs
      else if(s.equals("rampsamp")) Wavvo(o).Rampsamp(argi());  //  samples
      else if(s.equals("list"))
       {
        if(argop())
         {
          int i=argi();
          if(argc()) 
           {
            Wavvo(o).list(i,argi());  
           }
          else Wavvo(o).list(i);
          if(!argcp()) tta("Wav list missing closeparen");
         }
        else Wavvo(o).list(); 
       }
      else if(s.equals("sweep")) Wavvo(o).Sweep(argd(),argcd(),argcd());  // beg freq, end freq, secs
      else if(s.equals("square")) Wavvo(o).square(argi());  // 1 first meth  2 second meth
      else if(s.equals("cpab"))Wavvo(o).cpab();
      else if(s.equals("cpba"))Wavvo(o).cpba();
      else if(s.equals("compab"))Wavvo(o).compab();
      else if(s.equals("compba"))Wavvo(o).compba();
      else if(s.equals("bs")) Wavvo(o).bs=argi();
      else if(s.equals("lx")) Wavvo(o).setLx(argi()); 
      else if(s.equals("w"))   Wavvo(o).setW(argi()); 
      else if(s.equals("wig"))    Wavvo(o).setWig(argi());  
      else if(s.equals("rec")) Wavvo(o).rec();
      else if(s.equals("tc")) Wavvo(o).tracecount=argi();
      else if(s.equals("mon")) Wavvo(o).mon();
      else if(s.equals("mode")) Wavvo(o).mode=argi();
      else if(s.equals("stop")) Wavvo(o).schtop();
      else if(s.equals("rmsss")) Wavvo(o).rmsss=argi();
      else if(s.equals("tcrms")) Wavvo(o).tcrms=argi();
      else if(s.equals("tymo")) Wavvo(o).tymo=argl();
      else if(s.equals("crms")) Wavvo(o).crms=argi();
      else if(s.equals("stpth")) Wavvo(o).stpth=argi();
      else if(s.equals("lvlth")) Wavvo(o).stpth=argi();
      else if(s.equals("coth")) Wavvo(o).coth=argi();
      else if(s.equals("kth")) Wavvo(o).kth=argi();
      else if(s.equals("expo"))   Wavvo(o).expo=argi(); 
      else if(s.equals("rbnorm")) Wavvo(o).rbNormalize(); 
      else if(s.equals("rbzoom"))  Wavvo(o).rbZoom();
      else if(s.equals("zoomin"))  Wavvo(o).zoomIn();
      else if(s.equals("zoomout"))  Wavvo(o).zoomOut();
      else if(s.equals("zoomfull"))  Wavvo(o).zoomFull();
      else if(s.equals("rbmute"))  Wavvo(o).rbMute();
      else if(s.equals("mute")) Wavvo(o).mute();
      else if(s.equals("rbsave"))  Wavvo(o).rbSave(argS()); // ==argS(2)
      else if(s.equals("rbcut"))   Wavvo(o).rbCut();
      else if(s.equals("rbcreate"))
       {
        String n=argS();
        Wavvo(o).rbrec=lc.rbRec();
        Wavvo(o).rbCreate(n);
       }
      else if(s.equals("cut")) Wavvo(o).cut();
      else if(s.equals("gb")) Wavvo(o).gb=argi();
      else if(s.equals("locmax")) Wavvo(o).locmax=argi();
      else if(s.equals("mutefactor")) Wavvo(o).mutefactor=argd();
      else if(s.equals("bea")) Wavvo(o).bea();
      else if(s.equals("beb")) Wavvo(o).beb();
      else if(s.equals("popkill")) Wavvo(o).popkill();
      //else if(s.equals("pfp1")) o=ndOasrf(Wavvo(o).pfp1());
      //else if(s.equals("pfp2")) o=ndOasrf(Wavvo(o).pfp2());
      else if(s.equals("popmxth")) Wavvo(o).popmxth=argd();
      else if(s.equals("popadv")) Wavvo(o).popadv=argi();
      else if(s.equals("poppost")) Wavvo(o).poppost=argi();
      else if(s.equals("popddyth")) Wavvo(o).popddyth=argd();
      else if(s.equals("popdyth")) Wavvo(o).popdyth=argd();
      else if(s.equals("popd")) Wavvo(o).popd=argd();
      else if(s.equals("popki")) Wavvo(o).popki=argi();
      else if(s.equals("popss")) Wavvo(o).popss=argl();
      else if(s.equals("d1")) Wavvo(o).d1=argd();
      else if(s.equals("e1")) Wavvo(o).e1=argd();
      else if(s.equals("d2")) Wavvo(o).d2=argd();
      else if(s.equals("e2")) Wavvo(o).e2=argd();
      else if(s.equals("d3")) Wavvo(o).d3=argd();
      else if(s.equals("e3")) Wavvo(o).e3=argd();
      else if(s.equals("d4")) Wavvo(o).d4=argd();
      else if(s.equals("e4")) Wavvo(o).e4=argd();
      else if(s.equals("d5")) Wavvo(o).d5=argd();
      else if(s.equals("e5")) Wavvo(o).e5=argd();
      else if(s.equals("gb")) Wavvo(o).gb=argi(); //mach d
     }
    else if(ht.equals("Wave"))
    {
     if(s.equals("samplerate"))
      {
      
      // Wavevo(o).setBitrate(argf());
      }
     else if(s.equals("mixer")) Wavevo(o).mixer();
     else if(s.equals("conn")) Wavevo(o).conn();
     else if(s.equals("mkl")) Wavevo(o).mkl();
     else if(s.equals("bigg")) Wavevo(o).bigg();
     else if(s.equals("play")) Wavevo(o).play();
      
     // else if(s.equals("rppw")) Wavevo(o).rppw();
      
     else if(s.equals("blockrate")) Wavevo(o).blockrate=argf();
     else if(s.equals("blockbytes")) Wavevo(o).blockbytes=argd();
     else if(s.equals("databytes")) Wavevo(o).databytes=argd();
     else if(s.equals("announce")) Wavevo(o).announce=argbo();
     else if(s.equals("chs")) Wavevo(o).chs=argi();
     else if(s.equals("samplebits")) Wavevo(o).samplebits=argi();
     else if(s.equals("chshorts")) Wavevo(o).chshorts=argi();
     else if(s.equals("pbs")) Wavevo(o).pbs=argi();
     else if(s.equals("capbufsize")) Wavevo(o).capbufsize=argi();
     else if(s.equals("disres")) Wavevo(o).disres=argi();
     else if(s.equals("beth")) Wavevo(o).beth=argi();
     else if(s.equals("bedx")) Wavevo(o).bedx=argi();
     else if(s.equals("name")) Wavevo(o).name=argS(true);
     else if(s.equals("save")) Wavevo(o).save(argS(true));
      
     else if(s.equals("fn")) Wavevo(o).fn=argS(true);
     else if(s.equals("autoscale")) Wavevo(o).autoscale=argi();
     else if(s.equals("autowig")) Wavevo(o).autowig=argi();
     else if(s.equals("graph")) 
      {
      tta("Wave.graph  rebuild");
      }
     else if(s.equals("graphpeaks")) Wavevo(o).graphpeaks=argbo();
     else if(s.equals("graphrms")) Wavevo(o).graphrms=argbo();
     else if(s.equals("graphdiff")) Wavevo(o).graphdiff=argbo();
     else if(s.equals("ave")) Wavevo(o).ave(argi(),argci(),argci());
     //else if(s.equals("ed")) Wavevo(o).ed();
    // else if(s.equals("lcsc")) Wavevo(o).lcsc(argdP());
     else if(s.equals("tta")) Wave.tta(argS(true));
     else if(s.equals("tta1")) Wave.tta1(argS(true));
     else if(s.equals("rf")) Wavevo(o).rf=argd();
     else if(s.equals("rc")) Wavevo(o).rc=argi();
     //else if(s.equals("sm")) Wavevo(o).sm();
     else if(s.equals("synth")) Wavevo(o).synth(); // machd
     // else if(s.equals("sine")) Wavevo(o).Sine(argd(),argcd());  // freq, secs
    
     else if(s.equals("sypp")) Wavevo(o).sypp();
     else if(s.equals("freq1")) Wavevo(o).freq1=argd();
     else if(s.equals("pamp")) Wavevo(o).pamp=argd();
     else if(s.equals("bufftime")) Wavevo(o).bufftime=argd();
     else if(s.equals("sine"))
    	 {
    	 double freq=argd();
    	 double secs=argcd();
    	 double amp=.5;
    	 int chs=2;
    	 if(argc())  amp=argd();
         if(argc()) chs=argi();  	 
    Wavevo(o).Sine(freq,secs,amp,chs); // freq,secs, p2p amp 1 = +- (32k -1)
    	 }
      
     else if(s.equals("binaural"))
    	 {
    	 double fa=argd();
    	 double fb=argcd(); 
    	 double secs=5;
    	 double pamp=.5;
    	 if(argc()) secs=argd();
    	 if(argc()) pamp=argd();
    	 Wavevo(o).Binaural(fa,fb,secs,pamp);  // freqa,b,c,d secs pamp
    	 }
     else if(s.equals("quad")) 
    	 {
    	 double fa=argd();
    	 double fb=argcd();
    	 double fc=argcd();
    	 double fd=argcd();
    	 double secs=5;
    	 double pamp=.5;
    	 if(argc()) secs=argd();
    	 if(argc()) pamp=argd();
    	 Wavevo(o).Quad(fa,fb,fc,fd,secs,pamp);  // freq a,b,c,d secs
    	 }
     else if(s.equals("da2Wave"))
      {
       Wavevo(o).da2Wave(argda());//  da name
      }
     //else if(s.equals("norm")) Wavevo(o).normalize();  // rbnorm below 
     else if(s.equals("ramp")) 
    	 {
    	 double secs=argd();
    	 int ramps=1;
    	 double pamp=.5;
    	 int chs=2;
    	 if(argc()) ramps=argi();
         if(argc()) pamp=argd();   
         if(argc()) chs=argi();   
    	 Wavevo(o).Ramp(secs,ramps,pamp,chs);
    		 
     
    	 }
     else if(s.equals("dubramp")) 
	 {
    	 Wavevo(o).dubRamp(argd(),argci(),argcd());  // sec ramps pamp 
	 }
     //else if(s.equals("rampsamp")) Wavevo(o).Rampsamp(argi());  //  samples
     else if(s.equals("list")) tta("rebuild"); 
     else if(s.equals("sweep"))
    	 {
    	 double fa=argd();
    	 double fb=argcd();
    	 double secs=5;
    	 double pamp=.5;
    	 int chs=2;
    	 if(argc()) secs=argd();
    	 if(argc()) pamp=argd();
    	 if(argc()) chs=argi();
    	 
    	 Wavevo(o).Sweep(fa,fb,secs,pamp,chs);  // beg freq, end freq, secs
    	 }
     else if(s.equals("square")) Wavevo(o).square(argi());  // 1 first meth  2 second meth
     else if(s.equals("cpab"))Wavevo(o).cpab();
     else if(s.equals("cpba"))Wavevo(o).cpba();
     else if(s.equals("compab"))Wavevo(o).compab();
     else if(s.equals("compba"))Wavevo(o).compba();
     else if(s.equals("bs")) Wavevo(o).bs=argi();
    
     else if(s.equals("wig"))    Wavevo(o).setWig(argi());  
     else if(s.equals("rec")) Wavevo(o).rec();
     else if(s.equals("tc")) Wavevo(o).tracecount=argi();
     else if(s.equals("mon")) Wavevo(o).mon();
     else if(s.equals("mode")) Wavevo(o).mode=argi();
     else if(s.equals("stop")) Wavevo(o).schtop();
     else if(s.equals("rmsss")) Wavevo(o).rmsss=argi();
     else if(s.equals("tcrms")) Wavevo(o).tcrms=argi();
     else if(s.equals("tymo")) Wavevo(o).tymo=argl();
     else if(s.equals("crms")) Wavevo(o).crms=argi();
     else if(s.equals("stpth")) Wavevo(o).stpth=argi();
     else if(s.equals("lvlth")) Wavevo(o).stpth=argi();
     else if(s.equals("coth")) Wavevo(o).coth=argi();
     else if(s.equals("kth")) Wavevo(o).kth=argi();
     else if(s.equals("expo"))   Wavevo(o).expo=argi(); 
     
     else if(s.equals("gb")) Wavevo(o).gb=argi();
     else if(s.equals("locmax")) Wavevo(o).locmax=argi();
     else if(s.equals("mutefactor")) Wavevo(o).mutefactor=argd();
     
     //else if(s.equals("popkill")) Wavevo(o).popkill();
     //else if(s.equals("pfp1")) o=ndOasrf(Wavevo(o).pfp1());
     //else if(s.equals("pfp2")) o=ndOasrf(Wavevo(o).pfp2());
     else if(s.equals("popmxth")) Wavevo(o).popmxth=argd();
     else if(s.equals("popadv")) Wavevo(o).popadv=argi();
     else if(s.equals("poppost")) Wavevo(o).poppost=argi();
     else if(s.equals("popddyth")) Wavvo(o).popddyth=argd();
     else if(s.equals("popdyth")) Wavvo(o).popdyth=argd();
     else if(s.equals("popd")) Wavvo(o).popd=argd();
     else if(s.equals("popki")) Wavvo(o).popki=argi();
     else if(s.equals("popss")) Wavvo(o).popss=argl();
     else if(s.equals("d1")) Wavvo(o).d1=argd();
     else if(s.equals("e1")) Wavvo(o).e1=argd();
     else if(s.equals("d2")) Wavvo(o).d2=argd();
     else if(s.equals("e2")) Wavvo(o).e2=argd();
     else if(s.equals("d3")) Wavvo(o).d3=argd();
     else if(s.equals("e3")) Wavvo(o).e3=argd();
     else if(s.equals("d4")) Wavvo(o).d4=argd();
     else if(s.equals("e4")) Wavvo(o).e4=argd();
     else if(s.equals("d5")) Wavvo(o).d5=argd();
     else if(s.equals("e5")) Wavvo(o).e5=argd();
     else if(s.equals("gb")) Wavvo(o).gb=argi(); //mach d
    }
    else if(ht.equals("Wavegraph"))
    {
     if(s.equals("samplerate"))
      {
       //Wavegraphvo(o).samplerate=argd();
       Wavegraphvo(o).setBitrate(argf());
      }
     else if(s.equals("conn")) Wavegraphvo(o).conn();
     else if(s.equals("mkl")) Wavegraphvo(o).mkl();
     else if(s.equals("bigg")) Wavegraphvo(o).bigg();
     else if(s.equals("play")) Wavegraphvo(o).play();
     else if(s.equals("playwindow")) Wavegraphvo(o).playWindow();
     else if(s.equals("rppw")) Wavegraphvo(o).rppw();
     else if(s.equals("repplaywindow")) Wavegraphvo(o).repplayWindow();
     else if(s.equals("blockrate")) Wavegraphvo(o).blockrate=argf();
     else if(s.equals("blockbytes")) Wavegraphvo(o).blockbytes=argd();
     else if(s.equals("databytes")) Wavegraphvo(o).databytes=argd();
     else if(s.equals("announce")) Wavegraphvo(o).announce=argbo();
     else if(s.equals("chs")) Wavegraphvo(o).chs=argi();
     else if(s.equals("samplebits")) Wavegraphvo(o).samplebits=argi();
     else if(s.equals("chshorts")) Wavegraphvo(o).chshorts=argi();
     else if(s.equals("pbs")) Wavegraphvo(o).playbufsize=argi();
     else if(s.equals("capbufsize")) Wavegraphvo(o).capbufsize=argi();
     else if(s.equals("disres")) Wavegraphvo(o).disres=argi();
     else if(s.equals("beth")) Wavegraphvo(o).beth=argi();
     else if(s.equals("bedx")) Wavegraphvo(o).bedx=argi();
     else if(s.equals("name")) Wavegraphvo(o).name=argS(true);
     else if(s.equals("save")) Wavegraphvo(o).save(argS(true));
     else if(s.equals("resave")) Wavegraphvo(o).resave();
     else if(s.equals("repeak")) Wavegraphvo(o).repeak();
     else if(s.equals("fn")) Wavegraphvo(o).fn=argS(true);
     else if(s.equals("autoscale")) Wavegraphvo(o).autoscale=argi();
     else if(s.equals("autowig")) Wavegraphvo(o).autowig=argi();
     else if(s.equals("graph")) 
      {
       if(argop())
        {
         Wavegraphvo(o).graph(argi(),argci()); 
         if(! argcp() ) tta("Wavegraph.graph missing close paren");
        }
       else   Wavegraphvo(o).graph(); 
      }
     else if(s.equals("graphpeaks")) Wavegraphvo(o).graphpeaks=argbo();
     else if(s.equals("graphrms")) Wavegraphvo(o).graphrms=argbo();
     else if(s.equals("graphdiff")) Wavegraphvo(o).graphdiff=argbo();
     else if(s.equals("ave")) Wavegraphvo(o).ave(argi(),argci(),argci());
     else if(s.equals("ed")) Wavegraphvo(o).ed();
     else if(s.equals("lcsc")) Wavegraphvo(o).lcsc(argdP());
     else if(s.equals("tta")) Wavegraph.tta(argS(true));
     else if(s.equals("tta1")) Wavegraph.tta1(argS(true));
     else if(s.equals("rf")) Wavegraphvo(o).rf=argd();
     else if(s.equals("rc")) Wavegraphvo(o).rc=argi();
     else if(s.equals("sm")) Wavegraphvo(o).sm();
     else if(s.equals("synth")) Wavegraphvo(o).synth(); // machd
     // else if(s.equals("sine")) Wavegraphvo(o).Sine(argd(),argcd());  // freq, secs
     else if(s.equals("sine")) Wavegraphvo(o).Sine(argd(),argcd(),argcbo());  // freq, secs, do stdCommb
     else if(s.equals("binaural")) Wavegraphvo(o).Binaural(argd(),argcd(),argcd());  // freqa, freqb secs
     else if(s.equals("da2Wavegraph"))
      {
       Wavegraphvo(o).da2Wavegraph(argda());//  da name
      }
     else if(s.equals("norm")) Wavegraphvo(o).normalize();  // rbnorm below 
     else if(s.equals("ramp")) Wavegraphvo(o).Ramp(argd());  //  secs
     else if(s.equals("rampsamp")) Wavegraphvo(o).Rampsamp(argi());  //  samples
     else if(s.equals("list"))
      {
       if(argop())
        {
         int i=argi();
         if(argc()) 
          {
           Wavegraphvo(o).list(i,argi());  
          }
         else Wavegraphvo(o).list(i);
         if(!argcp()) tta("Wavegraph list missing closeparen");
        }
       else Wavegraphvo(o).list(); 
      }
     else if(s.equals("sweep")) Wavegraphvo(o).Sweep(argd(),argcd(),argcd());  // beg freq, end freq, secs
     else if(s.equals("square")) Wavegraphvo(o).square(argi());  // 1 first meth  2 second meth
     else if(s.equals("cpab"))Wavegraphvo(o).cpab();
     else if(s.equals("cpba"))Wavegraphvo(o).cpba();
     else if(s.equals("compab"))Wavegraphvo(o).compab();
     else if(s.equals("compba"))Wavegraphvo(o).compba();
     else if(s.equals("bs")) Wavegraphvo(o).bs=argi();
     else if(s.equals("lx")) Wavegraphvo(o).setLx(argi()); 
     else if(s.equals("w"))   Wavegraphvo(o).setW(argi()); 
     else if(s.equals("wig"))    Wavegraphvo(o).setWig(argi());  
     else if(s.equals("rec")) Wavegraphvo(o).rec();
     else if(s.equals("tc")) Wavegraphvo(o).tracecount=argi();
     else if(s.equals("mon")) Wavegraphvo(o).mon();
     else if(s.equals("mode")) Wavegraphvo(o).mode=argi();
     else if(s.equals("stop")) Wavegraphvo(o).schtop();
     else if(s.equals("rmsss")) Wavegraphvo(o).rmsss=argi();
     else if(s.equals("tcrms")) Wavegraphvo(o).tcrms=argi();
     else if(s.equals("tymo")) Wavegraphvo(o).tymo=argl();
     else if(s.equals("crms")) Wavegraphvo(o).crms=argi();
     else if(s.equals("stpth")) Wavegraphvo(o).stpth=argi();
     else if(s.equals("lvlth")) Wavegraphvo(o).stpth=argi();
     else if(s.equals("coth")) Wavegraphvo(o).coth=argi();
     else if(s.equals("kth")) Wavegraphvo(o).kth=argi();
     else if(s.equals("expo"))   Wavegraphvo(o).expo=argi(); 
     else if(s.equals("rbnorm")) Wavegraphvo(o).rbNormalize(); 
     else if(s.equals("rbzoom"))  Wavegraphvo(o).rbZoom();
     else if(s.equals("zoomin"))  Wavegraphvo(o).zoomIn();
     else if(s.equals("zoomout"))  Wavegraphvo(o).zoomOut();
     else if(s.equals("zoomfull"))  Wavegraphvo(o).zoomFull();
     else if(s.equals("rbmute"))  Wavegraphvo(o).rbMute();
     else if(s.equals("mute")) Wavegraphvo(o).mute();
     else if(s.equals("rbsave"))  Wavegraphvo(o).rbSave(argS()); // ==argS(2)
     else if(s.equals("rbcut"))   Wavegraphvo(o).rbCut();
     else if(s.equals("rbcreate"))
      {
       String n=argS();
       Wavegraphvo(o).rbrec=lc.rbRec();
       Wavegraphvo(o).rbCreate(n);
      }
     else if(s.equals("cut")) Wavegraphvo(o).cut();
     else if(s.equals("gb")) Wavegraphvo(o).gb=argi();
     else if(s.equals("locmax")) Wavegraphvo(o).locmax=argi();
     else if(s.equals("mutefactor")) Wavegraphvo(o).mutefactor=argd();
     else if(s.equals("bea")) Wavegraphvo(o).bea();
     else if(s.equals("beb")) Wavegraphvo(o).beb();
     else if(s.equals("popkill")) Wavegraphvo(o).popkill();
     //else if(s.equals("pfp1")) o=ndOasrf(Wavegraphvo(o).pfp1());
     //else if(s.equals("pfp2")) o=ndOasrf(Wavegraphvo(o).pfp2());
     else if(s.equals("popmxth")) Wavegraphvo(o).popmxth=argd();
     else if(s.equals("popadv")) Wavegraphvo(o).popadv=argi();
     else if(s.equals("poppost")) Wavegraphvo(o).poppost=argi();
     else if(s.equals("popddyth")) Wavegraphvo(o).popddyth=argd();
     else if(s.equals("popdyth")) Wavegraphvo(o).popdyth=argd();
     else if(s.equals("popd")) Wavegraphvo(o).popd=argd();
     else if(s.equals("popki")) Wavegraphvo(o).popki=argi();
     else if(s.equals("popss")) Wavegraphvo(o).popss=argl();
     else if(s.equals("d1")) Wavegraphvo(o).d1=argd();
     else if(s.equals("e1")) Wavegraphvo(o).e1=argd();
     else if(s.equals("d2")) Wavegraphvo(o).d2=argd();
     else if(s.equals("e2")) Wavegraphvo(o).e2=argd();
     else if(s.equals("d3")) Wavegraphvo(o).d3=argd();
     else if(s.equals("e3")) Wavegraphvo(o).e3=argd();
     else if(s.equals("d4")) Wavegraphvo(o).d4=argd();
     else if(s.equals("e4")) Wavegraphvo(o).e4=argd();
     else if(s.equals("d5")) Wavegraphvo(o).d5=argd();
     else if(s.equals("e5")) Wavegraphvo(o).e5=argd();
     else if(s.equals("gb")) Wavegraphvo(o).gb=argi(); //mach d
    }
    else if(ht.equals("Menu"))
     {
      if(s.equals(""));
     }
    else if(ht.equals("LSort"))
     {
      if(s.equals("s")) LSortvo(o).setsize(argi());
      else if(s.equals("shuffle")) LSortvo(o).shuffle();
      else if(s.equals("render")) LSortvo(o).render();
      else if(s.equals("ss"))
       {
        LSortvo(o).setsize(argi());
        LSortvo(o).shuffle();
        LSortvo(o).render();
       }
      else if(s.equals("quick")) LSortvo(o).qs();
      else if(s.equals("bubble")) LSortvo(o).bubble();
      else if(s.equals("selection")) LSortvo(o).selection();
      else if(s.equals("insertion")) LSortvo(o).insertion();
      else if(s.equals("shell")) LSortvo(o).shell();
     }
    /*
    else if(ht.equals("Aux"))
     {
      Aux a=Auxvo(o);
      if(s.equals("r"))  a.render();
      else if(s.equals("ar")) ar(a.name);
      else if(s.equals("rr")) rr(a.name);
      else if(s.equals("addSeg")) a.addSeg(argdP());
     }
    */
    else if(ht.equals("Sc"))
     {
      Sc a=Scvo(o);
      if(s.equals("add")) a.add(argPP());
      else if(s.equals("r")) a.render();
      else if(s.equals("rL")) a.rotateLeft(argd());
      else if(s.equals("rR")) a.rotateRight(argd());
      else if(s.equals("rU")) a.rotateUp(argd());
      else if(s.equals("rD")) a.rotateDown(argd());
      else if(s.equals("tL")) a.translateLeft(argd());
      else if(s.equals("tR")) a.translateRight(argd());
      else if(s.equals("tLR")) a.translateLR(argd());
      else if(s.equals("tU")) a.translateUp(argd());
      else if(s.equals("tD")) a.translateDown(argd());
      else if(s.equals("tUD")) a.translateUD(argd());
      else if(s.equals("V")) a.adjustView(argd());
      else if(s.equals("sV")) a.setView(argd());
      //else if(s.equals("gV")) o=ndOa(td.sce.getView());
      else if(s.equals("aP")) a.adjustPort(argd());
      else if(s.equals("sP")) a.setPort(argd());
      //else if(s.equals("gP")) o=ndOa(td.sce.getPort());
     }
    else if(ht.equals("PP"))
     {
      PP a=PPvo(o);
      //    if(s.equals("rotate")) a.rotate(argd(),argd(),argd(),argd());
     }
    else if(ht.equals("XYZa"))
     {
      XYZ[] a=XYZavo(o);
      if(s.equals("ea")) a[argi()]=argXYZ();
      else if(s.equals("ri")) XYZahp(ghn(o),XYZ.XYZari(a,argi()));
      else if(s.equals("rxyz")) XYZahp(ghn(o),XYZ.XYZarxyz(a,argXYZ()));
      else if(s.equals("ie")) XYZahp(ghn(o),XYZ.XYZaie(a,argi(),argcXYZ()));
      else if(s.equals("pop")) o=popXYZ(ghn(o),a);
      else if(s.equals("push")) o=pushXYZ(ghn(o),a,argXYZ());
      else if(s.equals("gp")) o=pushXYZ(ghn(o),a,new XYZ(tu.t3p));
      else if(s.equals("shift")) o=shiftXYZ(ghn(o),a);
      else if(s.equals("unshift")) o=unshiftXYZ(ghn(o),a,argXYZ());
     }
    // insert new Obj d22
    else if(s.equals("x"))
     {
      if(ht.equals("P")) Pvo(o).x=argi();
     }
    else if(s.equals("y"))
     {
      if(ht.equals("P")) ((Point)o[1]).y=argi();
     }
   }
  // end p5
  Object[] dtvp0(String s,int m)
   {
    Object[] o=new Object[] {"",null,s};
    if(dloch.containsKey(s))
     {
      // o[0]="d";
      if(m==1) o=ndOa(dlochg(s));
      else if(m==2||m==3) 
       {
        //o[0]="S";
        o=nSOa(Svo(dlochg(s)));
       }
      else if(m==4) dloch.remove(s);
      else if(m==5) 
       {
        dloch.put(s,new Double(argd()));
        o=nSOa(Svo(dlochg(s)));
       }
      else if(m==6) dloch.put(s,new Double(rndto(d)));
     }
    else if(Sloch.containsKey(s))
     {
      if(m==1 || m==2 ) o=nSOa(Slochg(s));
      //else if(m==3) o=nSOa("aS "+s+"("+Slochg(s)+")");
      else if(m==3) o=nSOa(Slochg(s));
      else if(m==4) Sloch.remove(s);
      else if(m==5)
       {
        String ss=argS();
        Sloch.put(s,ss);
        tta("Sloch put s:"+s+" ss:"+ss);
       }
     }
    else if(dPloch.containsKey(s))
     {
      if(m==1) o=ndPOa(dPlochg(s));
      else if(m==2||m==3) o=nSOa(Svo(dPlochg(s)));
      else if(m==4) dPloch.remove(s);
      else if(m==5)
       {
        dPloch.put(s,argdP());
        o=nSOa(Svo(dPlochg(s)));
       }
      else if(m==6) dloch.put(s,new Double(rndto(d)));
     }
    else if(dh.containsKey(s))
     {
      o[0]="d";
      if(m==1) o=ndOa(dhg(s));
      if(m==2||m==3) o=nSOa(Svo(dhg(s)));
      else if(m==4) dh.remove(s);
      else if(m==5) o=dhp(s,argd());
      else if(m==6) o=dhp(s,rndto(d));
      return o;
     }
    else if(dah.containsKey(s))
     {
      double [] lda=(double[])dah.get(s);
      if(m==1) o=ndaOa(dahg(s));
      if(m==2) o=nSOa(Svo(dahg(s)));
      if(m==3) o=nSOa("ada "+s+Svo(dahg(s)));
      else if(m==4) dah.remove(s);
      else if(m==5) o=dahp(s,argda());
      return o;
     }
    else if(shah.containsKey(s))
     {
      short[] a=(short[])shah.get(s);
      if(m==1) o=nshaOa(shahg(s));
      if(m==2) o=nSOa(Svo(shahg(s)));
      if(m==3) o=nSOa("asha "+s+Svo(shahg(s)));
      else if(m==4) shah.remove(s);
      else if(m==5) o=shahp(s,argsha());
      return o;
     }
    else if(Primh.containsKey(s))
     {
      o=teToke(s);
      if(m==3) o=nSOa(Svo(o));
      return o;
     }
    else if(Meth.containsKey(s))
     {
      if(m==3) o=nSOa(Methl(s,false)+"\n");
      else if(m==4) removeMeth(s);
      return o;
     }
    else if(boh.containsKey(s))
     {
      o[0]="bo";
      if(m==1) o[1]=boh.get(s);
      else if(m==2 || m==3) 
       {
        o[0]="S";
        o[1]=Svo(((Boolean)boh.get(s)).booleanValue());
        if(m==3) o[1]="abo "+s+" "+(String)o[1];
       }
      else if(m==4) boh.remove(s);
      else if(m==5) boh.put(s,new Boolean(argbo()));
      else if(m==6) boh.put(s,new Boolean(boo));
     }
    else if(boah.containsKey(s))
     {
      o[0]="boa";
      if(m==1)
       {
        o[1]=boah.get(s);
        //o[1]=(Boolean[])boah.get(s);
       }
      else if(m==2 || m==3)
       {
        o[0]="S";
        Boolean[] Boa=(Boolean[])boah.get(s);
        boolean[] boa=new boolean[Boa.length];
        for(int i=0;i<Boa.length;i++) boa[i]=Boa[i].booleanValue();
        o[1]=Svo(boa);
        if(m==3) o[1]="abo "+s+" "+(String)o[1];
       }
      else if(m==4) boah.remove(s);
     }
    else if(Sh.containsKey(s))
     {
      if(m==1 || m==2 ) o=nSOa(Shg(s));
      else if(m==3) o=nSOa(Shg(s));
      else if(m==4) Sh.remove(s);
      else if(m==5) Sh.put(s,argS(2));
      else if(m==6) tta("s:"+s+" m==6 in p0");
     }
    else if(Sah.containsKey(s))
     {
      if(argosb())
       {
        int i=argi();
        String si=((String[])Sah.get(s))[i];
        argcsb();
        String nt=nToke();
        if(nt.indexOf(".")==0)
         {
          o=dtvwp1(si+nt,m);
         }
        else
         {
          if(nt != null) sts=nt+sts;
          if(m==1 || m==2 ) o=nSOa(si);
          else if(m==3) o=nSOa("aS "+s+"["+i+"] " +si); //[
          //else if(m==4) Sah.remove(s);
          else if(m==5) ((String[])Sah.get(s))[i]=argS();
         }
       }
      else
       {
        if(m==1 || m==2 ) o=nSaOa(s,Sah.get(s));
        else if(m==3) o=nSOa("aSa "+s+Svo((String[])Sah.get(s)));
        else if(m==4) Sah.remove(s);
        else if(m==5) Sah.put(s,argSa());
       }
     }
    else if(Ph.containsKey(s))
     {
      o[0]="P";
      if(m==1) o[1]=Ph.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo((Point)Ph.get(s));
        if(m==3) o[1]="aP "+s+(String)o[1];
       }
      else if(m==4) Ph.remove(s);
      else if(m==5) Ph.put(s,argP());
      else if(m==6) Ph.put(s,p);
     }
    else if(dPah.containsKey(s))
     {
      o[0]="dPa";
      if(m==1) o[1]=dPah.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo((dP[])dPah.get(s));
        if(m==3) o[1]="adPa "+s+(String)o[1];
       }
      else if(m==4) dPah.remove(s);
      if(m==5 || m==6) tta("m=5 or 6 not satisfied");
      //else if(m==5) dPah.put(s,argdPa());
      //else if(m==6) dPah.put(s,dpa);
     }
    else if(CuCuh.containsKey(s))
     {
      if(m==1) o=nCuCuOa(CuCuhg(s));
      else if(m==2) o=nSOa(Svo(CuCuhg(s)));
      else if(m==3) o=nSOa("aCuCu "+Svo(CuCuhg(s)));
      else if(m==4) CuCuh.remove(s);
      else if(m==5) CuCuh.put(s,argCuCu());
      else if(m==6) CuCuh.put(s,dp);
     }
    else if(QuCuh.containsKey(s))
     {
      if(m==1) o=nQuCuOa(QuCuhg(s));
      else if(m==2) o=nSOa(Svo(QuCuhg(s)));
      else if(m==3) o=nSOa("aQuCu "+Svo(QuCuhg(s)));
      else if(m==4) QuCuh.remove(s);
      else if(m==5) QuCuh.put(s,argQuCu());
      else if(m==6) QuCuh.put(s,dp);
     }
    else if(BSCuh.containsKey(s))
     {
      if(m==1) o=nBSCuOa(BSCuhg(s));
      else if(m==2) o=nSOa(Svo(BSCuhg(s)));
      else if(m==3) o=nSOa("aBSCu "+Svo(BSCuhg(s)));
      else if(m==4) BSCuh.remove(s);
      else if(m==5) BSCuh.put(s,argBSCu());
      else if(m==6) BSCuh.put(s,dp);
     }
    else if(XYZh.containsKey(s))
     {
      o[0]="XYZ";
      if(m==1) o[1]=XYZh.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo((XYZ)XYZh.get(s));
        if(m==3) o[1]="aXYZ "+s+(String)o[1];
       }
      else if(m==4) XYZh.remove(s);
      else if(m==5) XYZh.put(s,argXYZ());
      else if(m==6) XYZh.put(s,xyz);
     }
    else if(Tuh.containsKey(s))
     {
      Tu a=(Tu)Tuh.get(s);
      if(m==1) o=nTuOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3)
       {
        if(a==tu) o=nSOa("asTu "+Svo(a));
        else o=nSOa("aTu "+Svo(a));
       }
      else if(m==4) Tuh.remove(s);
      else if(m==5) Tuh.put(s,argTu());
      else if(m==6) Tuh.put(s,a);
     }
    else if(Slh.containsKey(s))
     {
      Sl a=(Sl)Slh.get(s);
      if(m==1) 
       {
        //if(a.type.equals("Sa")) o=nSOa(a.Sasv);
        //else o=ndOa(a.v);
        if(a.type.equals("K")) o=nKOa(a.k);
        else if(a.type.equals("dP")) o=ndPOa(a.dp);
        else if(a.type.equals("XYZ")) o=nXYZOa(a.xyz);
        else o=ndOa(a.v);
       }
      else if(m==2) 
       {
        if(a.type.equals("Sa")) o=nSOa(a.Sasv);
        else if(a.type.equals("K")) o=nKOa(a.k);
        else if(a.type.equals("dP")) o=ndPOa(a.dp);
        else if(a.type.equals("XYZ")) o=nXYZOa(a.xyz);
        else o=nSOa(Svo(a.v));
       }
      else if(m==3)
       {
        if(a.type.equals("K")) o=nKOa(a.k);
        else if(a.type.equals("dP")) o=ndPOa(a.dp);
        else if(a.type.equals("XYZ")) o=nXYZOa(a.xyz);
        else  o=nSOa(Svo(a.v));
       }
      else if(m==4)
       {
        LP b=(LP)LPh.get(a.host);
        a.dofin();
        Slh.remove(s);
        b.doLayout();
       }
      else if(m==5) Slh.put(s,argSl());
      else if(m==6) Slh.put(s,a);
      else if(m==7) o=nSOa("aSl "+Svo(a));
     }
    else if(dPh.containsKey(s))
     {
      o[0]="dP";
      if(m==1) o[1]=dPh.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo((dP)dPh.get(s));
        if(m==3) o[1]="adP "+s+(String)o[1];
       }
      else if(m==4) dPh.remove(s);
      else if(m==5) dPh.put(s,argdP());
      else if(m==6) dPh.put(s,dp);
     }
    else if(Imgh.containsKey(s))
     {
      Img a=(Img)Imgh.get(s);
      if(m==1) o=nImgOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aImg "+s);
      else if(m==4) Imgh.remove(s);
      else if(m==5) Imgh.put(s,argImg());
      else if(m==6) Imgh.put(s,img);
     }
    else if(LFh.containsKey(s))
     {
      o[0]="LF";
      if(m==1) o[1]=LFh.get(s);
      if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo((LF)LFh.get(s));
        if(m==3)
         {
          if(lf==(LF)LFh.get(s))  o[1]="asLF "+s+(String)o[1];
          else  o[1]="aLF "+s+(String)o[1];
         }
       }
      else if(m==4) ((LF)LFh.get(s)).dispose();
      else if(m==5) LFh.put(s,argLF(1));
      else if(m==6) LFh.put(s,lf);
     }
    else if(LPh.containsKey(s))
     {
      if(m==1) o=nLPOa((LP)LPh.get(s));
      if(m==2 || m==3)
       {
        o=nSOa(Svo((LP)LPh.get(s)));
        if(m==3)
         {
          if(lp==(LP)LPh.get(s))  o=nSOa("asLP "+s+(String)o[1]);
          else  o=nSOa("aLP "+s+(String)o[1]);
         }
       }
      else if(m==4)
       {
        LP a=(LP)LPh.get(s);
        a.dofin();
        LPh.remove(s);
       }
      //else if(m==5) LPh.put(s,argLP());
      else if(m==6) LPh.put(s,lp);
     }
    else if(Buh.containsKey(s))
     {
      Bu a=(Bu)Buh.get(s);
      if(m==1) o=nBuOa(a);
      else  if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aBu "+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Buh.remove(s);
       }
      //else if(m==5) Buh.put(s,argBu());
      else if(m==6) Buh.put(s,lbu);
     }
    else if(LCh.containsKey(s))
     {
      if(m==1) o=nLCOa((LC)LCh.get(s));
      if(m==2 || m==3)
       {
        o=nSOa(Svo((LC)LCh.get(s)));
        if(m==3)
         {
          if(lc==(LC)LCh.get(s))  o=nSOa("asLC "+s+(String)o[1]);
          else  o=nSOa("aLC "+s+(String)o[1]);
         }
       }
      else if(m==4)
       {
        LC a=(LC)LCh.get(s);
        a.dofin();
        LCh.remove(s);
       }
      //else if(m==5) LCh.put(s,argLC());
      else if(m==6) LCh.put(s,lc);
     }
    else if(CCh.containsKey(s))
     {
      CC a=(CC)CCh.get(s);
      if(m==1) o=nCCOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aCC "+s+Svo(a));
      else if(m==4)
       {
        a.whoa();
        CCh.remove(s);
       }
      //else if(m==5) CCh.put(s,argCC());
      else if(m==6) CCh.put(s,a);
     }
    else if(LSpPh.containsKey(s))
     {
      LSpP a=(LSpP)LSpPh.get(s);
      if(m==1) o=nLSpPOa(a);
      if(m==2) o=nSOa(Svo(a));
      if(m==3) o=nSOa("aLSpP "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        LSpPh.remove(s);
       }
      else if(m==5) LSpPh.put(s,argLSpP());
      //else if(m==6) LSpPh.put(s,a);
     }
    else if(PCLh.containsKey(s))
     {
      o[0]="PCL";
      if(m==1) o[1]=PCLh.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo(PCLhg(s));
        if(m==3) o[1]="aPCL "+s+(String)o[1];
       }
      else if(m==4) PCLah.remove(s);
     }
    else if(PCLah.containsKey(s))
     {
      o[0]="PCLa";
      if(m==1) o[1]=PCLah.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo(PCLahg(s));
        if(m==3) o[1]="aPCLa "+s+(String)o[1];
       }
      else if(m==4) PCLah.remove(s);
     }
    else if(PCRh.containsKey(s))
     {
      o[0]="PCR";
      if(m==1) o[1]=PCRh.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo(PCRhg(s));
        if(m==3) o[1]="aPCR "+s+(String)o[1];
       }
      else if(m==4) PCRah.remove(s);
     }
    else if(PCRah.containsKey(s))
     {
      o[0]="PCRa";
      if(m==1) o[1]=PCRah.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        o[1]=Svo(PCRahg(s));
        if(m==3) o[1]="aPCRa "+s+(String)o[1];
       }
      else if(m==4) PCRah.remove(s);
     }
    else if(TAh.containsKey(s))
     {
      TA a=(TA)TAh.get(s);
      if(m==1) o=nTAOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aTA "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        TAh.remove(s);
       }
      else if(m==5) TAh.put(s,argTA());
      else if(m==6 && ta !=null) TAh.put(s,ta);
     }
    else if(Rech.containsKey(s))
     {
      Rec a=(Rec)Rech.get(s);
      if(m==1) o=nRecOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aRec "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Rech.remove(s);
       }
      else if(m==5) Rech.put(s,argRec());
      else if(m==6 && rec !=null) Rech.put(s,rec);
     }
    else if(Shh.containsKey(s))
     {
      Sh a=(Sh)Shh.get(s);
      if(m==1) o=nShOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aSh "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Shh.remove(s);
       }
      else if(m==5) Shh.put(s,argSh());
      // else if(m==6 && rec !=null) Shh.put(s,sh);
     }
    else if(Kh.containsKey(s))
     {
      K a=(K)Kh.get(s);
      if(m==1) o=nKOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aK "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Kh.remove(s);
       }
      else if(m==5) Kh.put(s,argK());
      else if(m==6 && k !=null) Kh.put(s,k);
     }
    else if(Gmh.containsKey(s))
     {
      String a=(String)Gmh.get(s);
      if(m==1) o=nSOa(a);
      else if(m==2) o=nSOa(a);
      else if(m==3) o=nSOa("group "+s+"("+a+")");
     }
    else if(Cih.containsKey(s))
     {
      Ci a=(Ci)Cih.get(s);
      if(m==1) o=nCiOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aCi "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Cih.remove(s);
       }
      else if(m==5) Cih.put(s,argCi());
      else if(m==6 && a !=null) Cih.put(s,a);
     }
    else if(FFTh.containsKey(s))
     {
      FFT a=(FFT)FFTh.get(s);
      if(m==1) o=nFFTOa(a);
      //else if(m==2) o=nSOa(Svo(a));
      //else if(m==3) o=nSOa("aFFT "+s+Svo(a));
      else if(m==4) FFTh.remove(s);
      else if(m==5) FFTh.put(s,argFFT());
      else if(m==6 && a !=null) FFTh.put(s,a);
     }
    else if(Wavh.containsKey(s))
     {
      Wav a=(Wav)Wavh.get(s);
      if(m==1) o=nWavOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aWav "+s+Svo(a));
      else if(m==4)
       {
        a=null;
        Wavh.remove(s);
       }
      else if(m==5) Wavh.put(s,argWav());
      else if(m==6 && a !=null) Wavh.put(s,a);
     }
    else if(Waveh.containsKey(s))
    {
     Wave a=(Wave)Waveh.get(s);
     if(m==1) o=nWaveOa(a);
     else if(m==2) o=nSOa(Svo(a));
     else if(m==3) o=nSOa("aWave "+s+Svo(a));
     else if(m==4)
      {
       a=null;
       Waveh.remove(s);
      }
     else if(m==5) Waveh.put(s,argWave());
     else if(m==6 && a !=null) Waveh.put(s,a);
    }
    else if(Wavegraphh.containsKey(s))
    {
     Wavegraph a=(Wavegraph)Wavegraphh.get(s);
     if(m==1) o=nWavegraphOa(a);
     else if(m==2) o=nSOa(Svo(a));
     else if(m==3) o=nSOa("aWavegraph "+s+Svo(a));
     else if(m==4)
      {
       a=null;
       Wavegraphh.remove(s);
      }
     else if(m==5) Wavegraphh.put(s,argWavegraph());
     else if(m==6 && a !=null) Wavegraphh.put(s,a);
    }
    else if(Menuh.containsKey(s))
     {
      Menu a=(Menu)Menuh.get(s);
      if(m==1) o=nMenuOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aMenu "+s+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Menuh.remove(s);
       }
      else if(m==5) Menuh.put(s,argMenu());
      else if(m==6 && a !=null) Menuh.put(s,a);
     }
    else if(LSorth.containsKey(s))
     {
      LSort a=(LSort)LSorth.get(s);
      if(m==1) o=nLSortOa(a);
      //else if(m==2) o=nSOa(Svo(a));
      //else if(m==3) o=nSOa("aLSort "+s+Svo(a));
      else if(m==4)
       {
        //a.dofin();
        LSorth.remove(s);
       }
      else if(m==5) LSorth.put(s,argLSort());
      else if(m==6 && a !=null) LSorth.put(s,a);
     }
    /*
    else if(Auxh.containsKey(s))
     {
      Aux a=(Aux)Auxh.get(s);
      if(m==1) o=nAuxOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aAux "+Svo(a));
      else if(m==4)
       {
        a.dofin();
        Auxh.remove(s);
       }
      //  else if(m==5) Auxh.put(s,argAux());
      //  else if(m==6 && a !=null) Auxh.put(s,a);
     }
    */
    else if(Sch.containsKey(s))
     {
      Sc a=(Sc)Sch.get(s);
      if(m==1) o=nScOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aSc "+s+" "+Svo(a));
      else if(m==4) Sch.remove(s);
      else if(m==5) Sch.put(s,argSc());
      else if(m==6 && a !=null) Sch.put(s,a);
     }
    else if(PPh.containsKey(s))
     {
      PP a=(PP)PPh.get(s);
      if(m==1) o=nPPOa(a);
      else if(m==2) o=nSOa(Svo(a));
      else if(m==3) o=nSOa("aPP "+s+" "+Svo(a));
      else if(m==4) PPh.remove(s);
      else if(m==5) PPh.put(s,argPP());
      else if(m==6 && a !=null) PPh.put(s,a);
     }
    else if(XYZah.containsKey(s))
     {
      o[0]="XYZa";
      if(m==1) o[1]=XYZah.get(s);
      else if(m==2 || m==3)
       {
        o[0]="S";
        if(XYZah.isEmpty()) tta("is Empty");
        else if(XYZah.get(s) ==null) tta("is null");
        else if(XYZah.get(s) =="") 
         {
          tta("is empty");
          o[1]="{}";
         }
        else
         {
          o[1]=Svo((XYZ[])XYZah.get(s));
         }
        if(m==3) o[1]="aXYZa "+s+(String)o[1];
       }
      else if(m==4) XYZah.remove(s);
      if(m==5 || m==6) tta("m=5 or 6 not satisfied");
     }
    // insert new Obj d15
    else
     {
      if(m==55) 
       {
        double ld=argd();
        dh.put(s,new Double(ld));
        o[0]="d";
        o[1]=new Double(ld);
       }
      else
       {
        o[0]="S";
        o[1]=s; 
       }
     }
    return o;
   }
  public String nnsToke()
   {
    String sa=" ";
    while(sa.equals(" ")||sa.equals("\n")) sa=nToke();
    return sa;
   }
  public String nToke()
   {
    StringTokenizer stoka=new StringTokenizer(sts,stokadelim,true);
    if(! stoka.hasMoreTokens()) return "";
    String s=stoka.nextToken();
    int i=s.length();
    if(i!=1)
     {
      sts=sts.substring(i);
      return s;
     }
    else if(s.equals(" "))
     {
      sts=sts.substring(1);
      return s;
     }
    else if(s.equals("+")||s.equals("-")||s.equals("=")||s.equals("*")||s.equals("/")||s.equals(">")||s.equals("<")||s.equals("!")||s.equals("+")||s.equals("&")||s.equals("|"))
     {
      if(! stoka.hasMoreTokens())  return s;
      String sb=stoka.nextToken();
      if(sb.length()==1)
       {
        if(sb.equals("+")||sb.equals("-")||sb.equals("=")||sb.equals("*")||sb.equals("/")||sb.equals(">")||sb.equals("<")||sb.equals("!")||sb.equals("+")||sb.equals("&")||sb.equals("|"))
         {
          s+=sb;
          sts=sts.substring(2);
          return s;
         }
       }
     }
    sts=sts.substring(1);
    return s;
   }
  String gSu(String s)
   {
    String a="";
    String b=nToke();
    while(b !=null && ! b.equals(s))
     {
      a+=b;
      b=nToke();
     }
    return a;
   }
  public String gSb(String sb,String sc)
   {
    if(arg(sb)) return gSbaf(sb,sc);
    else return "";
   }
  public String gSbaf(String sb,String sc)
   {
    String sa=" ";
    String sd="";
    int i=1;
    while(i>0 && ! sa.equals(""))
     {
      sa=nToke();
      if(sa.equals(sc)) i--;
      else if(sa.equals(sb)) i++;
      if(i==0) return sd;
      sd+=sa;
     }
    if(sa.equals(""))
     {
      if(i>0) tta("Probably a missing "+sc);
      if(i<0) tta("Probably a missing "+sb);
     }
    return sd;
   }
  static String Svf(String s) { return s; }
  static String Svo(char[] c) { return c.toString(); }
  static String Svo(String[] r)
   {
    if(r==null) return "{}";
    String lrs="{";;
    if(r[0]==null) lrs+="\"\"";
    else lrs+="\""+r[0]+"\"";
    for(int x=1;x<r.length;x++)
     {
      if(r[x]==null) lrs+=",\"\"";
      else lrs+=",\""+r[x]+"\"";
     }
    lrs+="}";
    return lrs;
   }
  static String Svo(Object[] o) 
   {
    String ht=ght(o);
    if(ht.equals("d")) return Svo(dvo(o));
    else if(ht.equals("da")) return Svo(davo(o));
    else if(ht.equals("sha")) return Svo(shavo(o));
    else if(ht.equals("bo")) return Svo(bovo(o));
    else if(ht.equals("S")) 
     {
      //tta("Svo ht is S "+(String)o[1]);
      return (String)o[1];
     }
    else if(ht.equals("Sa")) return Svo(Savo(o));
    else if(ht.equals("CuCu")) return Svo(CuCuvo(o));
    else if(ht.equals("QuCu")) return Svo(QuCuvo(o));
    else if(ht.equals("BSCu")) return Svo(BSCuvo(o));
    else if(ht.equals("dP")) return Svo(dPvo(o));
    else if(ht.equals("dPa")) return Svo(dPavo(o));
    else if(ht.equals("PCL")) return Svo(PCLvo(o));
    else if(ht.equals("PCLa")) return Svo(PCLavo(o));
    else if(ht.equals("PCR")) return Svo(PCRvo(o));
    else if(ht.equals("PCRa")) return Svo(PCRavo(o));
    else if(ht.equals("XYZ")) return Svo(XYZvo(o));
    else if(ht.equals("Tu")) return Svo(Tuvo(o));
    else if(ht.equals("Img")) return Svo(Imgvo(o));
    else if(ht.equals("P")) return Svo(Pvo(o));
    else if(ht.equals("Rec")) return Svo(Recvo(o));
    else if(ht.equals("Sh")) return Svo(Shvo(o));
    else if(ht.equals("K")) return Svo(Kvo(o));
    else if(ht.equals("TA")) return Svo(TAvo(o));
    else if(ht.equals("Tu")) return Svo(Tuvo(o));
    else if(ht.equals("LSpP")) return Svo(LSpPvo(o));
    else if(ht.equals("LP")) return Svo(LPvo(o));
    else if(ht.equals("Bu")) return Svo(Buvo(o));
    else if(ht.equals("LC")) return Svo(LCvo(o));
    else if(ht.equals("CC")) return Svo(CCvo(o));
    else if(ht.equals("Sl")) return Svo(Slvo(o));
    else if(ht.equals("Ci")) return Svo(Civo(o));
    //else if(ht.equals("FFT")) return Svo(FFTvo(o));
    else if(ht.equals("Wav"))  return Svo(Wavvo(o));
    else if(ht.equals("Wave"))  return Svo(Wavevo(o));
    else if(ht.equals("Wavegrah"))  return Svo(Wavegraphvo(o));
     
    else if(ht.equals("Menu")) return Svo(Menuvo(o));
    //else if(ht.equals("LSort")) return Svo(LSortvo(o));
    // else if(ht.equals("Aux")) return Svo(Auxvo(o));
    else if(ht.equals("Sc")) return Svo(Scvo(o));
    else if(ht.equals("PP")) return Svo(PPvo(o));
    else if(ht.equals("XYZa")) return Svo(XYZavo(o));
    // insert new Obj d16
    return "Svo(Object) for ht:"+ht+" not done yet      ghn(o):"+ghn(o);
   }
  static String Svo(AudioClip ac) { return Svf("AudioClip"); }
  static String Svo(boolean b) { return Svf(String.valueOf(b)); }
  static String Svo(boolean[] boa)
   {
    int j=boa.length;
    if(j==0) return "";
    String ret="{"+Svo(boa[0]);
    for(int i=1;i<j;i++)  ret=ret+","+Svo(boa[i]);
    return ret+"}";
   }
  static String Svo(double ld) { return Svo(ld,nod); }
  static String Svo(double[] da) 
   {
    int j=da.length; 
    if(j==0) return "";
    String ret="{"+Svo(da[0],nod);
    for(int i=1;i<j;i++)  ret=ret+","+Svo(da[i],nod); 
    return ret+"}";
   }
  static String Svo(short[] a)
   {
    int j=a.length;
    if(j==0) return "";
    String ret="{"+Svo(a[0],nod);
    for(int i=1;i<j;i++)  ret=ret+","+Svo(a[i],nod);
    return ret+"}";
   }
  static String Svo(int[] a)
   {
    int j=a.length;
    if(j==0) return "";
    String ret="{"+String.valueOf(a[0]);
    for(int i=1;i<j;i++)  ret=ret+","+String.valueOf(a[i]);
    return ret+"}";
   }
  static String Svo(double d,int nod)
   {
    int l=0;
    d=rndto(d,nod);
    if(d>0 &&d < Math.pow(10,-nod)) d=0;
    if(d<0 &&d > -Math.pow(10,-nod)) d=0;
    String   s=String.valueOf(d);
    if(s.indexOf(".") == -1) return s;
    while(s.endsWith("0"))
     {
      l=s.length();
      s=s.substring(0,l-1);
     }
    if(s.endsWith("."))
     {
      l=s.length();
      s=s.substring(0,l-1);
     }
    if(s.startsWith("0."))s=s.substring(1);
    else if(s.startsWith("-0."))s="-"+s.substring(2);
    return s;
   }
  static String Svo(K k) 
   {
    if(k.hsv) return Svf("("+Svo(k.h)+","+Svo(k.s)+","+Svo(k.v)+","+Svo(k.a)+")");
    return Svf("("+Svo(k.r)+","+Svo(k.g)+","+Svo(k.b)+","+Svo(k.a)+")");
   }
  static String Svo(K k,int nod) 
   {
    if(k.hsv) return Svf("("+Svo(k.h,nod)+","+Svo(k.s,nod)+","+Svo(k.v,nod)+","+Svo(k.a,nod)+")");
    return Svf("("+Svo(k.r,nod)+","+Svo(k.g,nod)+","+Svo(k.b,nod)+","+Svo(k.a,nod)+")");
   }
  static String Svo(Color c) { return Svf("("+Svo(c.getRed())+","+Svo(c.getGreen())+","+Svo(c.getBlue())+","+Svo(c.getAlpha())+")"); }
  static String Svo(Point p) { return Svf("("+p.x+","+p.y+")"); } //start Svo start
  static String Svo(Font ft) 
   {
    return Svf("("+ft.getName()+","+TA.Svoftstyle(ft)+","+Svo(ft.getSize2D())+")"); 
   }
  static String Svo(CuCu a){ return Svf("("+a.name+","+Svo(a.closed)+","+Svo(a.handles)+","+Svo(a.dpa)+")"); }
  static String Svo(QuCu a){ return Svf("("+a.name+","+Svo(a.closed)+","+Svo(a.handles)+","+Svo(a.dpa)+")"); }
  static String Svo(BSCu a){ return Svf("("+a.name+","+Svo(a.closed)+","+Svo(a.handles)+","+Svo(a.dpa)+","+Svo(a.boa)+","+Svo(a.pw)+","+Svo(a.pk)+","+Svo(a.shadw)+","+Svo(a.shadk)+")"); }
  static String Svo(dP dp)
   {
    return Svf("("+Svo(dp.x)+","+Svo(dp.y)+")");
   }
  static String Svo(dP dp,int nod)
   {
    return Svf("("+Svo(dp.x,nod)+","+Svo(dp.y,nod)+")"); 
   }
  static String Svo(dP[] a)
   {
    String s="{";
    for(int i=0;i<a.length;i++)
     {
      if(i > 0) s=s+",";
      if(a[i] == null) s+="null";
      else s+=Svo(a[i]);
     }
    s=s+"}";
    return Svf(s);
   }
  static String Svo(PCL a){ return Svf("("+Svo(a.va)+")"); }
  static String Svo(PCL[] a)
   {
    String s="{";
    for(int i=0;i<a.length;i++)
     {
      if(i>0) s=s+",";
      s=s+Svo(a[i]);
     }
    s=s+"}";
    return Svf(s);
   }
  static String Svo(PCR a){ return Svf("("+Svo(a.rec)+")"); }
  static String Svo(PCR[] a)
   {
    String s="{";
    for(int i=0;i<a.length;i++)
     {
      if(i>0) s=s+",";
      s=s+Svo(a[i]);
     }
    s=s+"}";
    return Svf(s);
   }
  static String Svo(XYZ xyz){ return Svf("("+Svo(xyz.x)+","+Svo(xyz.y)+","+Svo(xyz.z)+")"); }
  static String Svo(XYZ xyz,int nod)
   {
    return Svf("("+Svo(xyz.x,nod)+","+Svo(xyz.y,nod)+","+Svo(xyz.z,nod)+")");
   }
  static String Svo(Img img){ return Svf("(img params here)"); }
  static String Svo(Rec rec){ return Svf("("+Svo(rec.x)+","+Svo(rec.y)+","+Svo(rec.w)+","+Svo(rec.h)+","+Svo(rec.pk)+","+Svo(rec.fk)+")"); }
  static String Svo(Sh sh){ return Svf("Coming soon Sh:"); }
  static String Svo(Rectangle rec){ return Svf("("+Svo(rec.x)+","+Svo(rec.y)+","+Svo(rec.width)+","+Svo(rec.height)+")"); }
  static String Svo(TA ta)
   {
    if(LSpPh.containsKey(ta.host))
     {
      return Svf("("+ta.host+","+ta.pos+","+Svo(ta.tecon)+Svo(ta.lscprec.rect)+","+Svo(ta.fk)+","+Svo(ta.bk)+","+Svo(ta.ck)+","+Svo(ta.tecon)+")");
     }
    return "Svo(TA) bad LSpP";
   }
  static String Svo(LSpP a) // zippy
   {
    if(a.hosttype.equals("LF")) return Svf("("+a.host+","+a.ori+","+Svo(a.div)+","+Svo(a.rsw)+")");
    else if(a.hosttype.equals("other")) return Svf("("+a.ori+","+Svo(a.div)+","+Svo(a.rsw)+")");
    else if(a.hosttype.equals("LSpP")) 
     {
      // boo whoo  parent.tta("hit");
      return  Svf("("+a.host+","+a.pos+","+a.ori+","+Svo(a.div)+","+Svo(a.rsw)+")");
     }
    return Svf("No Svo("+a.name+") for"+a.hosttype); 
   }
  static String Svo(Sl a) 
   {
    if(a.type.equals("Sa")) 
     {
      return Svf("("+a.name+","+a.type+","+Svo(a.v)+","+Svo(a.svals)+","+Svo(a.tl)+","+a.hostlp.name+","+Svo(a.save)+")"); 
     }
    else if(a.type.equals("K")) 
     {
      return Svf("("+a.name+","+a.type+","+Svo(a.k)+","+Svo(a.tl)+","+a.hostlp.name+","+Svo(a.k.hsv)+","+Svo(a.save)+")"); 
     }
    else if(a.type.equals("dP"))
     {
      return Svf("("+a.name+","+a.type+","+Svo(a.dp)+","+Svo(a.dpll)+","+Svo(a.dpul)+","+Svo(a.tl)+","+a.hostlp.name+","+Svo(a.boxy)+","+Svo(a.save)+")"); 
     }
    else if(a.type.equals("XYZ")) 
     {
      return Svf("("+a.name+","+a.type+","+Svo(a.xyz)+","+Svo(a.xyzll)+","+Svo(a.xyzul)+","+Svo(a.tl)+","+a.hostlp.name+","+Svo(a.save)+")"); 
     }
    return Svf("("+a.name+","+a.type+","+Svo(a.v)+","+Svo(a.ll)+","+Svo(a.ul)+","+Svo(a.tl)+","+a.hostlp.name+","+Svo(a.save)+")"); 
   }
  static String Svo(Bu a)
   {
    // return Svf("("+a.name+","+a.type+","+Svo(a.labels)+","+Svo(a.i)+","+Svo(a.lb)+","+Svo(a.tl)+")");
    return Svf("("+a.name+","+a.type+","+Svo(a.labels)+","+Svo(a.i)+","+Svo(a.lb)+","+Svo(a.tl)+","+a.hostlp.name+")");
    //lbu=new Bu(name,bulp,type,labels,i,lb,dp);
   }
  static String Svo(LP a) { return Svf("("+a.host+","+Svo(a.rec)+")"); }
  static String Svo(LC a) 
   {
    if(a.pos.equals("")) return Svf("("+a.host+","+Svo(a.rec)+")"); 
    else return Svf("("+a.host+","+a.pos+","+Svo(a.rec)+")"); 
   }
  static String Svo(CC a) { return Svf("("+Svo(a.interpret)+","+Svo(a.quite)+","+Svo(a.deb)+")"); }
  static String Svo(LF lf) { return Svf("("+Svo(lf.rec)+","+Svo(lf.visi)+","+Svo(lf.eggit)+")"); }
  static String Svo(Tu tu) { return Svf("("+tu.name+","+Svo(tu.pk)+","+Svo(tu.pw)+","+Svo(tu.gp())+","+Svo(tu.gh())+","+Svo(tu.pd)+")"); }
  static String Svo(Ci a) { return Svf("("+Svo(a.cp)+","+Svo(a.rx)+","+Svo(a.ry)+","+Svo(a.pk)+","+Svo(a.pw)+","+Svo(a.fk)+")"); }
  //static String Svo(FFT a) { return Svf("("+.name+","+Svo(a.pk)+","+Svo(tu.pw)+")"); }
  static String Svo(Wav a) 
   {  
    return Svf("(\""+a.fn+"\")");
   }
  static String Svo(Wave a) 
  {  
   return Svf("(\""+a.fn+"\")");
  }
  static String Svo(Wavegraph a) 
  {  
   return Svf("(\""+a.fn+"\")");
  }
  //static String Svo(Menu a) { return Svf("("+.name+","+Svo(a.pk)+","+Svo(tu.pw)+")"); }
  //static String Svo(LSort a) { return Svf("("+.name+","+Svo(a.pk)+","+Svo(tu.pw)+")"); }
  // static String Svo(Aux a){ return Svf("("+a.name+","+Svo(a.closed)+","+Svo(a.handles)+","+Svo(a.dpa)+")"); }
  static String Svo(Sc a) { return Sc.Svo(a); }
  static String Svo(PP a) { return PP.Svo(a); }
  static String Svo(XYZ[] a)
   {
    String s="{";
    for(int i=0;i<a.length;i++)
     {
      if(i > 0) s=s+",";
      if(a[i] == null) s+="null";
      else s+=Svo(a[i]);
     }
    s=s+"}";
    return Svf(s);
   }
  // insert new Obj d17
  static double rndto(double x) { return rndto(x,nod); }
  static boolean  nearlyequals(double x,double y) 
   {
    if(Math.abs(x-y)< 1E-12) return true;
    return false;
   }
  static double rndto(double x,int nod)
   {
    if(x==0) return 0;
    boolean isn=false;
    if(x<0) { isn=true; x= -x; }
    int ff=(int)(Math.log(x)/Math.log(10));
    if(x<1){ff--;}
    double yyy=Math.rint(x*(Math.pow(10,nod-1-ff)));
    double y=yyy/Math.pow(10,nod-1-ff);
    if(isn) { y= -y; }
    return y;
   }
  void save() { save(""); } 
  void save(String fn)
   {
    String s=lMeth(true)+lSl(8)+lBu()+lBSCu()+ldP()+lK()+ld()+lXYZ()+lXYZa()+ldPa() +lRec()+lS();
    //String s=lMeth(true)+lSl(8)+lBu()+lBSCu()+lWav()+ldP()+lK()+ld()+lXYZ()+lXYZa()+ldPa() +lRec()+lS();
    if(Sah.containsKey("ttsave"))
     {
      String[] sa=Sahg("ttsave");
      Object[] o=teS("sppr ttsave");
      s +=Svo(o)+"\n";
      for(int t=0;t<sa.length;t++)
       {
        o=teS("sppr "+sa[t]);
        s +=Svo(o)+"\n";
        //tta("t:"+t+" sa[t]:"+sa[t]+" Svo(o):"+Svo(o)+" s:"+s);
       }
     }
    fio.save(fn,s);
   }
  void load(String fn,boolean loud) { teS(fio.load(fn,true,loud)); }
  void loadandrun(String fn,boolean loud)
   {
    load(fn,loud);
    doinitdemo();
   }
  void loadSa(String name,String fn)
   {
    String[] sa=fio.loadSa(fn);
    Sahp(name,sa);
    tta("loadSa length:"+sa.length);
   }
  void loadda(String name,String fn)
   {
    String[] sa=fio.loadSa(fn);
    Sa2da(sa,name);
   }
  void doinitdemo()
   {
    if(Meth.containsKey("init")) teS("init");
    //if(Meth.containsKey("demo")) teS("demo");
   }
  double avTuh(double h1,double h2,double w)
   {
    double ld,f;
    ld=h1-h2;
    if (ld<180 && ld>-180) f=h2+w*ld;
    else
     {
      if (h1>h2)
       {
        ld=360-ld;
        f=h2-w*ld;
       }
      else
       {
        ld=360+ld;
        f=h2+w*ld;
       }
     }
    return f;
   }
  String DiDi()
   {
    Frame b=new Frame("For File Dialog");
    FileDialog a=new FileDialog(b,"ajLogo");
    if(! fidipath.equals("")) a.setDirectory(fidipath);
    a.setResizable(true);
    a.setSize(800,800);
    a.doLayout();
    a.show();
    return a.getDirectory();
   }
  String FiDi()
   {
    if(argop())
     {
      fidipath=argS();
     }
    if(fidipath.equals(""))
     {
      fidipath="/webroot/ajlogo/html/ajlogo/version3beta/";
      tta("setting fidipath to default:"+fidipath);
     }
    return FiDi(fidipath);
   }
  String FiDi(String s)
   {
    fidipath=s;
    Frame b=new Frame("For File Dialog");
    FileDialog a=new FileDialog(b,"ajLogo");
    a.setDirectory(fidipath);
    a.setResizable(true);
    a.setSize(800,800);
    a.doLayout();
    a.show();
    fidipath=a.getDirectory();
    tta("FiDi fidipath:"+fidipath);
    Shp("fidipath",fidipath);
    // use Shg to see if it's registered  
    tta("post Shp fidipath:"+fidipath);
    return fidipath+a.getFile();
   }
  void removeMeth(String s)
   {
    Meth.remove(s);
    Methbodyh.remove(s);
    Methlvh.remove(s);
    Methargh.remove(s);
    String t=(String)Methtrigh.get(s);
    if(t==null || t.equals("")) return;
    t=t.substring(1,t.length()-1);
    String[] sa=splitSiSabychar(t,',');
    for(int i=0;i<sa.length;i++)
     {
      String u=(String)Trigh.get(sa[i]);
      String[] sab=splitSiSabychar(u,',');
      String build="";
      for(int j=0;j<sab.length;j++)
       {
        if(! s.equals(sab[j]))
         {
          if(build.equals("")) build +=sab[j];
          else build +=","+sab[j];
         }
       }
      if( build.equals("")) Trigh.remove(sa[i]);
      else Trigh.put(sa[i],build);
     }
    Methtrigh.remove(s);
   }
  public void Slt(String vn,double d)
   {
    ((Sl)Slh.get(vn)).setval(d);
    runTrig(vn);
   }
  public void runSlTrig(String vn,double d)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    // tta("Te.runSlTrig  d  call newTeSTC   vn:"+vn);
    parent.newTeSTC("runtrig "+vn);
    // if(parent.cc.ta2 !=null) parent.cc.send("! Slt "+vn+" "+Svo(d));
    runSlTrigbusy=false;
   }
  public void runSlTrigteS(String vn,double d)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    parent.newTeS("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runSlTrig(String vn,K k)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    parent.newTeSTC("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runSlTrigteS(String vn,K k)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    parent.newTeS("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runSlTrig(String vn,XYZ xyz)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    parent.newTeSTC("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runSlTrigteS(String vn,XYZ xyz)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    parent.newTeS("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runSlTrig(String vn,dP dp)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    // tta("Te.runSlTrig");
    parent.newTeSTC("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runSlTrigteS(String vn,dP dp)
   {
    if(runSlTrigbusy) return;
    runSlTrigbusy=true;
    // tta("Te.runSlTrig");
    parent.newTeS("runtrig "+vn);
    runSlTrigbusy=false;
   }
  public void runMenuTrig(String vn)
   {
    if(runMenuTrigbusy) return;
    runMenuTrigbusy=true;
    parent.newTeSTC("runtrig "+vn);
    runMenuTrigbusy=false;
   }
  public void runMenuTrigteS(String vn)
   {
    if(runMenuTrigbusy) return;
    runMenuTrigbusy=true;
    parent.newTeS("runtrig "+vn);
    runMenuTrigbusy=false;
   }
  public void runBuTrig(String vn)
   {
    if(runBuTrigbusy) return;
    runBuTrigbusy=true;
    parent.newTeSTC("runtrig "+vn);
    runBuTrigbusy=false;
   }
  public void runBuTrigteS(String vn)
   {
    if(runBuTrigbusy) return;
    runBuTrigbusy=true;
    parent.newTeS("runtrig "+vn);
    runBuTrigbusy=false;
   }
  public void runLCTrig(String vn,dP dp)
   {
    if(runLCTrigbusy) return;
    dPh.put(vn,dp);
    runLCTrigbusy=true;
    if(vn.equals("lc0mm") || vn.equals("lc0md") || vn.equals("lc0men") || vn.equals("lc0mex") || vn.equals("lc0md") )
     {
     }
    //else tta("Te.runLCTrig runtrig vn:"+vn+" dp:"+Svo(dp));
    parent.newTeSTC("runtrig "+vn);
    runLCTrigbusy=false;
   }
  public void runLCTrigteS(String vn,dP dp)
   {
    if(runLCTrigbusy) return;
    dPh.put(vn,dp);
    runLCTrigbusy=true;
    if(vn.equals("lc0mm") || vn.equals("lc0md") || vn.equals("lc0men") || vn.equals("lc0mex") || vn.equals("lc0md") )
     {
     }
    //else tta("Te.runLCTrig runtrig vn:"+vn+" dp:"+Svo(dp));
    parent.newTeS("runtrig "+vn);
    runLCTrigbusy=false;
   }
  public void runTrig(String vn,dP dp)
   {
    dPh.put(vn,dp);
    runTrig(vn);
   }
  public void runTrigteS(String vn,dP dp)
   {
    dPh.put(vn,dp);
    runTrigteS(vn);
   }
  public void runTrig(String vn,Point p)
   {
    Ph.put(vn,p);
    runTrig(vn);
   }
  public void runTrigteS(String vn,Point p)
   {
    Ph.put(vn,p);
    runTrigteS(vn);
   }
  public void runSlTrig(String vn)
   {
    runTrig(vn);
    //if(tu.st) tu.drawtu();
   }
  public void runSlTrigteS(String vn)
   {
    runTrigteS(vn);
    //if(tu.st) tu.drawtu();
   }
  public void runTrig(String vn)
   {
    if(vn.equals("ndp")) 
     {
      clearmost(((Bu)Buh.get("ndp")).labels[1]);
      return;
     }
    if(! Trigh.containsKey(vn)) return;
    String mets=(String)Trigh.get(vn);
    StringTokenizer stokb=new StringTokenizer(mets,",",false);
    while (stokb.hasMoreTokens())
     {
      String met=stokb.nextToken();
      String body=(String)Methbodyh.get(met);
      teS(body);
     }
   }
  public void runTrigteS(String vn)
   {
    if(vn.equals("ndp")) 
     {
      clearmost(((Bu)Buh.get("ndp")).labels[1]);
      return;
     }
    if(! Trigh.containsKey(vn)) return;
    String mets=(String)Trigh.get(vn);
    StringTokenizer stokb=new StringTokenizer(mets,",",false);
    while (stokb.hasMoreTokens())
     {
      String met=stokb.nextToken();
      String body=(String)Methbodyh.get(met);
      teS(body);
     }
   }
  public double minmaxave(String in)
   {
    if(! argop()) 
     {
      tta("malformed minmaxave()");
      return 0;
     }
    int i=1;
    double max=argd();
    double min=max;
    double ave=max;
    while(argc())
     {
      d=argd();
      ave+=d;
      i++;
      if(d>max) max=d;
      else if(d<min)  min=d;
     }
    if(! argop())
     {
      tta("malformed minmaxave()");
      return 0;
     }
    ave=ave/i;
    tta("malformed minMaxAve()");
    if(in.equals("min")) return min;
    else if(in.equals("max")) return max;
    else if(in.equals("ave")) return ave;
    tta("malformed minmaxave()");
    return 0;
   }
  String find(String pat,String rep)
   {
    Enumeration enk =Meth.keys();
    String ret="",key="";
    String st="";
    while(enk.hasMoreElements())
     {
      key=(String)enk.nextElement();
      st=Svo(teS("sppr "+key));
      if(! rep.equals(""))
       {
        while(st.indexOf(pat) != -1) st=st.substring(0,st.indexOf(pat))+rep+st.substring(st.indexOf(pat)+pat.length());
        removeMeth(key);
        teS(st); // remakes
        ret +=st+"\n";
       }
      else
       {
        if (st.indexOf(pat) != -1) ret +=st+"\n";
       }
     }
    return ret;
   }
  String lMeth(boolean b)
   {
    Enumeration  enk=Meth.keys();
    String sd="";
    String n="";
    List<String> strList = new ArrayList<String>();
    while(enk.hasMoreElements()) 
     {
      n=(String)enk.nextElement(); 
      if(Buryh.containsKey(n))  continue;
      strList.add(n); 
     }
    Collections.sort(strList);
    for(String boz: strList)
     { 
      sd=sd+Methl(boz,b)+"\n";
     } 
    return sd;
   }
  String Methl(String n,boolean b)
   {
    String t=(String)Meth.get(n);
    String lrs=mkf+" "+n+"(";
    if(b) lrs=lrs+"\n";
    if(t.equals("trig")||t.equals("arg")|| t.equals("lv")) 
     {
      lrs=lrs+(String)Methtrigh.get(n);
      if(b) lrs=lrs+"\n";
     }
    if(t.equals("arg")|| t.equals("lv"))
     {
      lrs=lrs+(String)Methargh.get(n);
      if(b) lrs=lrs+"\n";
     }
    if(t.equals("lv")) 
     {
      lrs=lrs+(String)Methlvh.get(n);
      if(b) lrs=lrs+"\n";
     }
    lrs=lrs+(String)Methbodyh.get(n);
    if(!b)
     {
      boolean lcont=true;
      while(lcont)
       {
        int j=lrs.indexOf("\n");
        if(j> -1) { lrs=lrs.substring(0,j)+" "+lrs.substring(j+1); }
        else lcont=false;
       }
     }
    lrs=lrs+")";
    return lrs;
   }
  void ttanToke()
   {
    String s=nToke();
    tta("s:"+s);
    sts=s+sts;
   }
  void mkFta()
   {
    GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
    //String [] Fta=gEnv.getAvailableFontFamilyNames();
    Font[] fa=gEnv.getAllFonts();
    String[] Fta=new String[fa.length];
    for(int i=0;i<fa.length;i++)
     {
      //tta("font:"+fa[i].getFontName());
      Fta[i]=fa[i].getFontName();
     }
    //String [] Fta=java.awt.Toolkit.getFontList();
    Sah.put("Fta",Fta);
   }
  boolean tryparsed(String s)
   {
    try { Double.parseDouble(s); return true; }
    catch (NumberFormatException e) { return false; }
   }
  public void clearall(String s)
   {
    rmlib("CC");
    clearmost(s);
   }
  public void clearmost(String s)
   {
    tta("Te.clearmost");
    rmlib("d");
    rmlib("bo");
    rmlib("S");
    rmlib("Sa");
    rmlib("K");
    Gmrm();
    Gprm();
    Buryrm();
    //rmlib("LF");
    //rmlib("TA");
    rmlib("CuCu");
    rmlib("QuCu");
    rmlib("BSCu");
    rmlib("dP");
    //rmlib("LSpP");
    //rmlib("LScP");
    rmlib("LL");
    rmlib("Sl");
    //rmlib("CC");
    rmlib("Bu");
    //rmlib("LP");
    if(LPh.containsKey("lp1"))
     {
      ((LP)LPh.get("lp1")).clearmost();
      ((LP)LPh.get("lp1")).nexty=LP.thirty;
      //lp.nexty=lp.thirty;
     }
    //rmlib("LC");
    rmlib("XYZ");
    rmlib("Img");
    rmlib("P");
    rmlib("Rec");
    rmlib("Tu");
    rmlib("Meth");
    rmlib("Metharg");
    rmlib("Methbody");
    rmlib("Trig");
    rmlib("Ci");
    rmlib("FFT");
    rmlib("Wav");
    rmlib("Wave");
    rmlib("Wavegraph");
    rmlib("Menu");
    rmlib("LSort");
    rmlib("Aux");
    rmlib("Sc");
    rmlib("PP");
    rmlib("XYZa");
    // insert new Obj d18
    lc.init();
    if(ta != null)
     {
      ta.replaceRange("",0,ta.getText().length());
      ta.setCaretPosition(0);
     }
    cc.chatlbu.reset();
    parent.rerun(s);
   }
  String[] VectoSa(Vector vec)
   {
    int z=vec.size();
    String[] sa=new String[z];
    for(int i=0;i<z;i++) sa[i]=(String)vec.elementAt(i);
    return sa;
   }
  void bury(String s) 
   {
    if(Gmh.containsKey(s))
     {
      String members=lGroup(s);
      StringTokenizer st=new StringTokenizer(members,",",false);
      while(st.hasMoreTokens()) Buryh.put(st.nextToken(),"h");
     }
    else Buryh.put(s,"h");
   }
  void unbury(String s) 
   {
    if(Gmh.containsKey(s))
     {
      String members=lGroup(s);
      StringTokenizer st=new StringTokenizer(members,",",false);
      String r="";
      while(st.hasMoreTokens())
       {
        r=st.nextToken();
        if(Buryh.containsKey(r)) Buryh.remove(r); 
       }
     }
    if(Buryh.containsKey(s)) Buryh.remove(s);
   }
  public void plotSa(String[] sa) { plotSa(fio,sa); }
  public static void plotSa(Fio fio,String[] sa)
   {
    fio.wopen("tempfh","temppf.txt");
    for(int i=0;i<sa.length;i++) fio.writeBytes("tempfh",sa[i].trim()+"\n");
    plotfile(fio,"temppf.txt");
   }
  void plotS(String s) 
   {
    fio.plotS(s);
   }
  //public void plotS(String s) { plotS(fio,s); }
  //public static void plotS(Fio fio,String s) { fio.wopen("tempfh","temppf.txt"); fio.writeBytes("tempfh",s.trim()+"\n"); plotfile(fio,"temppf.txt"); }
  public void plotfile(String fn) { plotfile(fio,fn); }
  public static void plotfile(Fio fio,String fn)
   {
    //exec("/usr/bin/lpr -PRolandDXY-800 "+fn);
    //exec("/usr/bin/lpr -PRoland "+fn);
   }
  public  String[] exec(String com)
  //public  static String[] exec(String com)
   {
    String[] s=new String[1000];
    try
     {
      tta("start outer  tried");
      Process myp  = Runtime.getRuntime().exec(com);
      tta("got myp");
      DataInputStream res= new DataInputStream(new BufferedInputStream(myp.getInputStream()));
      int i=0;
      tta("begin inner");
      try
       {
        while ((s[i++]=res.readLine()) != null);
        res.close();
        tta("fully tried");
       }
      catch (Exception e) {}
     }
    catch (Exception e) {   tta("error:"+e);  }
    return s;
   }
  public void ar(String n)
   {
    if(Methbodyh.containsKey("render"))
     {
      String body=(String)Methbodyh.get("render");
      int i=body.indexOf(n+".r");
      if(i== -1)
       {
        body=" "+n+".r "+body;
        Methbodyh.put("render",body);
       }
     }
    else 
     {
      teS("mk render("+n+".r)");
     }
   }
  public static void rr(String n)
   {
    if(Methbodyh.containsKey("render"))
     {
      String body=(String)Methbodyh.get("render");
      int i=body.indexOf(n+".r");
      if(i >0) body=body.substring(0,i)+body.substring(i+2+n.length());
      Methbodyh.put("render",body);
     }
   }
  public void mddphh(LC lc,dP dp) // dragged
   {
    //tta("Te.mddphh mouse dragged");
    Enumeration enk=lc.hh.keys();
    while(enk.hasMoreElements())
     {
      String n=(String)enk.nextElement();
      Object[] o=dtvp0(n,1);
      String ht=(String)o[0];
      if(ht.equals("CuCu")) CuCuvo(o).mddp(dp); 
      else if(ht.equals("Wav"))  Wavvo(o).mddp(dp);
      //else if(ht.equals("Wave"))  Wavevo(o).mddp(dp);
     // else if(ht.equals("Wavegraph"))  Wavegraphvo(o).mddp(dp);
        
     }
   }
  public void mpdphh(LC lc,dP dp) // pressed
   {
    // tta("Te.mpdphh mouse pressed");
    Enumeration enk=lc.hh.keys();
    if (!enk.hasMoreElements()) tta("Te.mpdphh no keys man");
    while(enk.hasMoreElements()) 
     {
      String n=(String)enk.nextElement();
      Object[] o=dtvp0(n,1);
      String ht=(String)o[0];
      if(ht.equals("CuCu")) CuCuvo(o).mpdp(dp); 
      else if(ht.equals("Wav")) 
       {
        tta("Te.mpdphh mousePressed element ht:Wav");
        Wavvo(o).mpdp(dp);
       }
      else if(ht.equals("Wave")) 
      {
       tta("Te.mpdphh mousePressed element ht:Wave");
      // Wavevo(o).mpdp(dp);
      }
      else if(ht.equals("Wavegraph")) 
      {
       tta("Te.mpdphh mousePressed element ht:Wavegraph");
       Wavegraphvo(o).mpdp(dp);
      }
      else if(ht.equals("LC"))
       {
        tta("Te.mpdphh  Do something David");
       }
     }
   }
  public void mmdphh(LC lc,dP dp)  //LC mouseMoved hash 
   {
    //  tta("Te.mmdphh dp:"+Svo(dp));
    Enumeration enk=lc.hh.keys();
    while(enk.hasMoreElements())
     {
      String n=(String)enk.nextElement();
      Object[] o=dtvp0(n,1);
      String ht=(String)o[0];
      // tta("Te.mmdphh ht:"+ht);
      if(ht.equals("CuCu")) CuCuvo(o).mmdp(dp); 
      else if(ht.equals("Wav"))  Wavvo(o).mmdp(dp);
     // else if(ht.equals("Wave"))  Wavevo(o).mmdp(dp);
      else if(ht.equals("Wavegraph"))  Wavegraphvo(o).mmdp(dp);
       
     }
   }
  public void mrdphh(LC lc,dP dp) // mouseReleased
   {
    Enumeration enk=lc.hh.keys();
    while(enk.hasMoreElements())
     {
      String n=(String)enk.nextElement();
      Object[] o=dtvp0(n,1);
      String ht=(String)o[0];
      if(ht.equals("CuCu")) CuCuvo(o).mrdp(dp);
      //  else if(ht.equals("Aux")) Auxvo(o).mrdp(dp);
      else if(ht.equals("Wav")) Wavvo(o).mrdp(dp);
      //else if(ht.equals("Wave")) Wavevo(o).mrdp(dp);
      else if(ht.equals("Wavegraph")) Wavegraphvo(o).mrdp(dp);
     }
   }
  Double S2d(String s)
   {
    double dd=0;
    try
     {
      dd=Double.parseDouble(s);
     }
    catch (NumberFormatException e) 
     {
      tta("Te.S2d s:"+s+" error:"+e.toString());
     }
    return dd;
   }
  public double[] Sa2da(String[] sa)
   {
    double[] da=new double[sa.length];
    double oda=0;
    int totmiss=0;
    int conmiss=0;
    int conmissmax=0;
    for(int i=0;i<sa.length;i++)
     { 
      try  
       { 
        da[i]=Double.parseDouble(sa[i]); 
        oda=da[i];
        if(conmiss>0)
         {
          //tta("Te.Da2da conmiss:"+conmiss);
          if(conmiss>conmissmax) conmissmax=conmiss;
          conmiss=0;
         }
       }
      catch (NumberFormatException e) 
       {
        //tta("Te.S2d s:"+sa[i]+" error:"+e.toString());
        // tta("Improve empty element here");
        da[i]=oda;
        if(conmiss==0) totmiss++;
        conmiss++;
       }
     }
    if(totmiss>0) tta("Te.Sa2da totmiss:"+totmiss+" conmissmax:"+conmissmax);
    return da;
   }
  public void Sa2da(String[] sa,String dan)
   {
    double[] da=Sa2da(sa);
    tta("Te.Sa2da dah.put dan:"+dan); 
    dah.put(dan,da);
   }
  public void oldSa2da(String[] sa,String dan)
   {
    double[] da=new double[sa.length];
    for(int i=0;i<sa.length;i++)
     {
      da[i]=S2d(sa[i]);	  
      //tta("Te.Sa2da i:"+i+" da[i]:"+da[i]);
     }
    tta("Te.Sa2da dah.put dan:"+dan); 
    dah.put(dan,da);
   }
  public void Sa2da(String san,String dan)
   {
    String[] sa;
    if(Sah.containsKey(san))
     {
      sa=(String[])Sah.get(san);
     }
    else
     {
      tta("Sa2da Sa not found:"+san);
      return;
     }
    Sa2da(sa,dan);
   }
  public void nit()
   {
    // Sh.put("null","null");
    boh.put("true",new Boolean(true));
    boh.put("false",new Boolean(false));
    //if(parent.filescodebase != null) Sh.put("filescodebase",parent.filescodebase);
    //if(parent.chatcodebase != null) Sh.put("chatcodebase",parent.chatcodebase);
    dh.put("PI",new Double(PI));
    dh.put("pi",new Double(PI));
    dh.put("nod",new Double(5));
    Kh.put("black",new K(0.0,0.0,0.0));
    Kh.put("white",new K((double)255.0,(double)255.0,(double)255.0,(double)255));
    Kh.put("gray",new K(0.0,0.0,.31));
    Kh.put("yellow",new K((double)60,(double)1,(double)1));
    Kh.put("magenta",new K(300.0,1.0,1.0));
    Kh.put("blue",new K(240.0,1.0,1.0));
    Kh.put("cyan",new K(180.0,1.0,1.0));
    Kh.put("green",new K(120.0,1.0,1.0));
    Kh.put("brown",new K(34.0,.9,.51));
    Kh.put("gold",new K(46.0,1.0,1.0));
    Kh.put("orange",new K(35.0,1.0,1.0));
    Kh.put("red",new K(0.0,1.0,1.0));
    Kh.put("clear",new K(0,0,0,0));
    Kh.put("bwood",new K(34.7,.653,.769));
    processPrimitives();
   }
  public static void processPrimitives()
   { 
    String[] primitives={"argStest","==","+=","-=","*=","/=","++","--","+","-","*","/","!","!=","<<",">>",">>>",">",
    ">=","<","<=","isodd","iseven","&","&&","|","||","abo","aboa","dmd","fd","forward","bk","back","fdbk","fdpubk","bkfd",
    "tic","toc","atuon","atuoff","rt","rti","lt","lti","rp","repeat","pu","penup","pd","pendown","home","cs","cg","cl",
    "clearscreen","3d","nhcs","prsts","return","scvp","gvp","gcvp","resettransform","sfm","aLC","asLC","sLC","setabg",
    "jfprep","jf","yaw","syaw","roll","sroll","pitch","spitch","qcs","q3dcs","dons","doffs","dobs","ds","dS","dcS","dcvS",
    "dlS","drS","ticS","swdlS","swdS","swftsize","dpS","dSs","dcSs","dpSs","dSws","dcSws","dpSws","mv","rfd","tfd","afd",
    "srthome","rthome","st","showturtle","ht","hideturtle","dt","sh","setheading","spk","spc","setpencolor","sfk","sfc",
    "setfloodcolor","gpk","gpc","gfk","gfc","gpw","spw","setpensize","iph","ips","ipv","ipw","shtwTu","avshtwTu","mto",
    "xoron","xoroff","aaon","aaoff","sp","spmr","sphr","gp","gxp","gyp","gh","gyaw","gpitch","groll","ghtw","grttw","shtw",
    "gdto","dto","drawtw","angsub","rMod","rcMod","rocMod","rcoMod","roMod","nMod","lMod","sMod","stSMod","dPolyMod",
    "fPolyMod","fdPolyMod","dMod","for","while","if","int","ceil","floor","rndto","rint","round","snap","min","max","ave",
    "time","deltime","deldeltim","delsleep","deldelsleep","sleep","pack","rSlu","aSl","sLP","aTu","sTu","asTu","gTu","sppr",
    "pr","prta0","prta1","zzz","Welcome","exit","bye","mk","to","ct","cta","cta1","mkS","ada","asha","abo","aS","aS","aSa",
    "aeSa","charat","lenofS","Sai","SeqSai","Saieq","lenofSa","dPac","XYZac","gSbet","fw","lw","gSbef","gSbey","contS",
    "foreach","foreachSiSa","foreachchariS","repccrxfy","repsubSwS","contS","io","iofi","eqic","nenull","eqnull","ne","eq",
    "sw","ew","chompSa","chompS","trimS","concatS","split","unshift","pop","push","pushtts","shift","regex","comp","padbS",
    "padaS","Sdv","subS","runtrig","runsltrig","Slt","teS","newTeS","newTeSTC","loadImg","loadpngImg","aBu","addLPBu","dImgBu",
    "drawImg","adP","aPCL","aPCLa","aPCR","aPCRa","adPa","aXYZa","aCuCu","sCuCu","aQuCu","sQuCu","aBSCu","sBSCu","aXYZ",
    "aP","dCi","fCi","fdCi","gpdCi","gpfCi","gpfdCi","aRec","aSh","dSh","fSh","fpkSh","dfSh","dcSh","fcSh","fpkcSh","dfcSh",
    "fRecfk","fRecpk","fRec","gfRec","dRecfk","dRecpk","dRec","mRec","cRec","ReccontdP","rbRec","rboff","saveImggif",
    "saveImgpng","saveImgjpg","pgdP","psdP","psgp","pggp","pggp","pgRec","Recgif","ImgRecjpg","Recjpg","Recpng","pff","mff",
    "rbgif","rbImg","pImg","rbpng","rbjpg","aAC","loadAC","loadplayAC","playAC","loopAC","stopAC","playAu","aLF","asLF",
    "sLF","aLSpP","asLSpP","sLSpP","aCC","exec","xec","lprm","plotS","plott","plotSa","plotfile","pl","ploff","plon","plpd",
    "plpu","pltofile","mkplfile","ppw","ppr","help","edit","ed","ZZ","aTA","asTA","sTA","aK","welcome","sfilescodebase",
    "schatcodebase","gfilescodebase","gchatcodebase","load","loadSa","loadda","Sa2da","save","resavename","savepc","gurli",
    "gurl","ropen","readfile","writefile","xstw","readline","readbyte","readbe2byte","readbe2c2byte","readle2byte",
    "readle2c2byte","readbe4byte","readle4byte","readbytefile","writebytefile","readchar","writebyte","writebe2byte",
    "writebe2c2byte","writebe4byte","writele2byte","writele2c2byte","writele4byte","writechar","rmfile","pwd","wopen",
    "write","writeline","writelines","close","rclose","LCgif","LCpng","LCjpg","resave","sn","bury","unbury","lbury",
    "buried","listburied","ungroup","rungroup","unregroup","group","lgroup","groups","listgroups","lMeth","list",
    "clearmost","clearall","drm","darm","sharm","borm","Srm","Sarm","Krm","LFrm","TArm","dPrm","LSpPrm","LScPrm","LLrm",
    "Slrm","Burm","LPrm","LCrm","CCrm","XYZrm","Imgrm","Prm","Recrm","Turm","Methrm","Methargrm","Methbodyrm","Trigsrm",
    "Cirm","Clrm","CuCurm","QuCurm","BSCurm","FFTrm","Wavrm","Waverm","Wavegraph","Menurm","LSortrm","Auxrm","Scrm","PPrm","XYZarm","lFt","lall",
    "ld","lda","lsha","lbo","lboa","lK","lS","lSa","ltrigs","lTu","lCuCu","lQuCu","lBSCu","lLF","lLSpP","lLScP","lLL","lSl",
    "lBu","lLP","lLC","lCC","lTA","lP","ldP","ldPa","lPCL","lPCLa","lPCR","lPCRa","lXYZ","lImg","lRec","lSh","FiDi","DiDi",
    "fidipath","rm","lAC","lCi","lFFT","lWav","lWave","lWavegraph","lMenu","lLSort","lAux","lSc","lPP","lXYZa","lprim","rand","irand","snod",
    "mod","div","divpo","abs","radtodeg","degtorad","atan","atan2","acos","asin","cos","sin","tan","sqrt","logbt","pow",
    "sss","exp","log","find","replace","bongoff","bongon","logoff","chat","savechat","port","dgrid","gridoff","d3dgrid",
    "aCi","aFFT","aLSort",
    "sWav","aWav","loadWav","saveWav","graphWav","rbWav",
    "sWave","aWave","loadWave","saveWave","graphWave","rbWave",
    "sWavegraph","aWavegraph","aWavegraphe","loadWavegraph","saveWavegraph","graphWavegraph","rbWavegraph",
    "aMenu","aMenu","aLSort","aAux","lknobs",
    "aSc","aPP","aXYZa","sSa","shash"};
    for(int j=0;j<primitives.length;j++) { Primh.put(primitives[j],"SP"); }
   }
 }
