byte[] buf = new byte[8]; readFully(buf); return (buf[7] << 56 & 0xFF) | (buf[6] << 48 & 0xFF) | (buf[5] << 40 & 0xFF) | (buf[4] << 32 & 0xFF) | (buf[3] << 24 & 0xFF) | (buf[2] << 16 & 0xFF) | (buf[1] <<  8 & 0xFF) | (buf[0] & 0xFF); }
byte[] buf = new byte[8]; read(buf); return (buf[7] & 0xFF) << 56 | (buf[6] & 0xFF) << 48 | (buf[5] & 0xFF) << 40 | (buf[4] & 0xFF) << 32 | (buf[3] & 0xFF) << 24 | (buf[2] & 0xFF) << 16 | (buf[1] & 0xFF) <<  8 | (buf[0] & 0xFF); }
   public long readLong() throws IOException {      int ret = readInt();      if (ret != 0xffffffff) {         return ret;      }      byte[] buf = new byte[8];      readFully(buf);      return (buf[7] << 56 & 0xFF) | (buf[6] << 48 & 0xFF)           | (buf[5] << 40 & 0xFF) | (buf[4] << 32 & 0xFF)            | (buf[3] << 24 & 0xFF) | (buf[2] << 16 & 0xFF)           | (buf[1] <<  8 & 0xFF) | (buf[0] & 0xFF);   }