return gzcompress(data, level);
TempBuffer tb = TempBuffer.allocate(); byte[] buffer = tb.getBuffer();  TempStream ts = new TempStream(); StreamImplOutputStream siout = new StreamImplOutputStream(ts);  try { GZIPOutputStream gzout = new GZIPOutputStream(siout, level,Deflater.DEFAULT_STRATEGY,encodingMode);  int sublen = is.read(buffer, 0, buffer.length); while (sublen > 0) { gzout.write(buffer, 0, sublen); sublen = is.read(buffer, 0, buffer.length); }  gzout.finish(); TempBuffer.free(tb);   return new TempBufferStringValue(ts.getHead()); } catch(IOException e) { throw QuercusModuleException.create(e); }
  public Value gzencode(InputStream data,                        @Optional("-1") int level,                        @Optional int encodingMode)  {    return gzcompress(data, level);  }