@Override
  public Object internalRead(final BInputJson bin) throws BException {
    final BJsonObject js1 = bin.currentObject;

    int n1 = 0, n0 = 0;
    n1 = js1 != null ? js1.size() : 0;
    if (n1 != 0) {
      final BJsonObject js0 = js1.getJsonObject(0);
      n0 = js0 != null ? js0.size() : 0;
    }

    final byps.test.api.prim.PrimitiveTypes[][] arr = new byps.test.api.prim.PrimitiveTypes[n1][n0];
    bin.onObjectCreated(arr);

    // read
    final byps.test.api.prim.PrimitiveTypes[][] a1 = arr;
    for (int i1 = 0; i1 < n1; i1++) {
      final byps.test.api.prim.PrimitiveTypes[] a0 = a1[i1];
      bin.currentObject = js1.getJsonObject(i1);
      for (int i0 = 0; i0 < n0; i0++) {
        a0[i0] = (byps.test.api.prim.PrimitiveTypes) bin.readObj(i0, false, null);
      }
    }
    return arr;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BResult_766441794 obj =
        (BResult_766441794) (obj1 != null ? obj1 : bin.onObjectCreated(new BResult_766441794()));

    final BJsonObject js = bin.currentObject;
    obj.result =
        (float[]) bin.readObj("result", false, byps.test.api.JSerializer_766441794.instance);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BResult_2053507648 obj =
        (BResult_2053507648) (obj1 != null ? obj1 : bin.onObjectCreated(new BResult_2053507648()));

    final BJsonObject js = bin.currentObject;
    obj.result =
        (byps.test.api.prim.PrimitiveTypes[])
            bin.readObj("result", false, byps.test.api.JSerializer_2053507648.instance);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BResult_1661807911 obj =
        (BResult_1661807911) (obj1 != null ? obj1 : bin.onObjectCreated(new BResult_1661807911()));

    final BJsonObject js = bin.currentObject;
    obj.result =
        (java.util.List<java.lang.Character>)
            bin.readObj("result", false, byps.test.api.JSerializer_1661807911.instance);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BResult_1799280818 obj =
        (BResult_1799280818) (obj1 != null ? obj1 : bin.onObjectCreated(new BResult_1799280818()));

    final BJsonObject js = bin.currentObject;
    obj.result =
        (java.util.Map<java.lang.Integer, byte[]>)
            bin.readObj("result", false, byps.test.api.JSerializer_1799280818.instance);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_RemoteWithAuthentication_expire obj =
        (BRequest_RemoteWithAuthentication_expire)
            (obj1 != null
                ? obj1
                : bin.onObjectCreated(new BRequest_RemoteWithAuthentication_expire()));

    final BJsonObject js = bin.currentObject;
    obj.sess = (byps.test.api.auth.SessionInfo) bin.readObj("sess", false, null);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_RemoteSetTypes_setInt1 obj =
        (BRequest_RemoteSetTypes_setInt1)
            (obj1 != null ? obj1 : bin.onObjectCreated(new BRequest_RemoteSetTypes_setInt1()));

    final BJsonObject js = bin.currentObject;
    obj.int1 =
        (java.util.Set<java.lang.Integer>)
            bin.readObj("int1", false, byps.test.api.JSerializer_1493282670.instance);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_RemoteSetTypes_setByte2 obj =
        (BRequest_RemoteSetTypes_setByte2)
            (obj1 != null ? obj1 : bin.onObjectCreated(new BRequest_RemoteSetTypes_setByte2()));

    final BJsonObject js = bin.currentObject;
    obj.byte2 =
        (java.util.Set<byte[]>)
            bin.readObj("byte2", false, byps.test.api.JSerializer_2052431866.instance);

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_RemoteMapTypes_setObj1 obj =
        (BRequest_RemoteMapTypes_setObj1)
            (obj1 != null ? obj1 : bin.onObjectCreated(new BRequest_RemoteMapTypes_setObj1()));

    final BJsonObject js = bin.currentObject;
    obj.obj1 =
        (java.util.Map<java.lang.String, java.lang.Object>)
            bin.readObj("obj1", false, byps.test.api.JSerializer_1488550492.instance);

    return obj;
  }
 public Object read(final Object obj1, final BInput bin1, final long version) throws BException {
   final BInputJson bin = (BInputJson) bin1;
   final BJsonObject js = bin.currentObject;
   final Set<String> keys = js.keys();
   final HashMap<java.lang.Double, java.lang.Byte> map =
       new HashMap<java.lang.Double, java.lang.Byte>(keys.size());
   bin.onObjectCreated(map);
   for (String keyName : keys) {
     java.lang.Double key =
         keyName != null && keyName.length() != 0 ? Double.parseDouble(keyName) : 0.0;
     final java.lang.Byte value = js.getByte(keyName);
     map.put(key, value);
   }
   return map;
 }
 public Object read(final Object obj1, final BInput bin1, final long version) throws BException {
   final BInputJson bin = (BInputJson) bin1;
   final BJsonObject js = bin.currentObject;
   final Set<String> keys = js.keys();
   final TreeMap<java.lang.Float, java.lang.Character> map =
       new TreeMap<java.lang.Float, java.lang.Character>();
   bin.onObjectCreated(map);
   for (String keyName : keys) {
     java.lang.Float key =
         keyName != null && keyName.length() != 0 ? Float.parseFloat(keyName) : 0.0f;
     final java.lang.Character value = js.getChar(keyName);
     map.put(key, value);
   }
   return map;
 }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final FindOptions obj =
        (FindOptions) (obj1 != null ? obj1 : bin.onObjectCreated(new FindOptions()));

    final BJsonObject js = bin.currentObject;
    obj.reserved = js.getString("reserved");

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_RemoteInlineInstance_getPoint2DList obj =
        (BRequest_RemoteInlineInstance_getPoint2DList)
            (obj1 != null
                ? obj1
                : bin.onObjectCreated(new BRequest_RemoteInlineInstance_getPoint2DList()));

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_RemotePrimitiveTypes_setByte obj =
        (BRequest_RemotePrimitiveTypes_setByte)
            (obj1 != null
                ? obj1
                : bin.onObjectCreated(new BRequest_RemotePrimitiveTypes_setByte()));

    final BJsonObject js = bin.currentObject;
    obj.v = js.getByte("v");

    return obj;
  }
  @Override
  public Object internalRead(final Object obj1, final BInputJson bin) throws BException {
    final BRequest_FileSystemService_readAllText obj =
        (BRequest_FileSystemService_readAllText)
            (obj1 != null
                ? obj1
                : bin.onObjectCreated(new BRequest_FileSystemService_readAllText()));

    final BJsonObject js = bin.currentObject;
    obj.path = js.getString("path");

    return obj;
  }