// Path: lib/aelua/jslua/java/io/ByteArrayOutputStream.java
// public class ByteArrayOutputStream extends OutputStream {
// 
// //  protected int count;
// //  protected byte[] buf;
//  
//   public ByteArrayOutputStream() {
// //    this(16);
//   }
//   
//   public ByteArrayOutputStream(int initialSize) {
// //    buf = new byte[initialSize];
//   }
//   
// //  @Override
//   public void write(int b) {
// /*    if (buf.length == count) {
//       byte[] newBuf = new byte[buf.length * 3 / 2];
//       System.arraycopy(buf, 0, newBuf, 0, count);
//       buf = newBuf;
//     }
//     
//     buf[count++] = (byte) b;
// */
//   }
//   
//   public byte[] toByteArray() {
//     byte[] result = new byte[1];
// //    System.arraycopy(buf, 0, result, 0, count);
//     return result;
//   }
// 
//   
//   public int size() {
//     return 1;
//   }
// }


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Vector;

    int n = pose - posi + 1;
    for (int i=0; i<n; ++i)
    {
      L.pushNumber(s.charAt(posi+i-1));
    }
    return n;
  }

  /** Implements string.char.  Name mangled to avoid keyword. */
  private static int charFunction(Lua L)
  {
    int n = L.getTop(); // number of arguments
    StringBuffer b = new StringBuffer();
    for (int i=1; i<=n; ++i)
    {
      int c = L.checkInt(i);
      L.argCheck((char)c == c, i, "invalid value");
      b.append((char)c);
    }
    L.push(b.toString());
    return 1;
  }

  /** Implements string.dump. */
  private static int dump(Lua L)
  {
    L.checkType(1, Lua.TFUNCTION);
    L.setTop(1);
    try
    {

// Path: lib/aelua/jslua/java/io/ByteArrayOutputStream.java
// public class ByteArrayOutputStream extends OutputStream {
// 
// //  protected int count;
// //  protected byte[] buf;
//  
//   public ByteArrayOutputStream() {
// //    this(16);
//   }
//   
//   public ByteArrayOutputStream(int initialSize) {
// //    buf = new byte[initialSize];
//   }
//   
// //  @Override
//   public void write(int b) {
// /*    if (buf.length == count) {
//       byte[] newBuf = new byte[buf.length * 3 / 2];
//       System.arraycopy(buf, 0, newBuf, 0, count);
//       buf = newBuf;
//     }
//     
//     buf[count++] = (byte) b;
// */
//   }
//   
//   public byte[] toByteArray() {
//     byte[] result = new byte[1];
// //    System.arraycopy(buf, 0, result, 0, count);
//     return result;
//   }
// 
//   
//   public int size() {
//     return 1;
//   }
// }


// Path: lib/aelua/jslua/mnj/lua/StringLib.java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Vector;

    int n = pose - posi + 1;
    for (int i=0; i<n; ++i)
    {
      L.pushNumber(s.charAt(posi+i-1));
    }
    return n;
  }

  /** Implements string.char.  Name mangled to avoid keyword. */
  private static int charFunction(Lua L)
  {
    int n = L.getTop(); // number of arguments
    StringBuffer b = new StringBuffer();
    for (int i=1; i<=n; ++i)
    {
      int c = L.checkInt(i);
      L.argCheck((char)c == c, i, "invalid value");
      b.append((char)c);
    }
    L.push(b.toString());
    return 1;
  }

  /** Implements string.dump. */
  private static int dump(Lua L)
  {
    L.checkType(1, Lua.TFUNCTION);
    L.setTop(1);
    try
    {

      ByteArrayOutputStream s = new ByteArrayOutputStream();
