public abstract class org.apache.commons.compress.archivers.zip.StreamCompressor implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.commons.compress.archivers.zip.StreamCompressor
  super_class: java.lang.Object
{
  private static final int DEFLATER_BLOCK_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private final java.util.zip.Deflater def;
    descriptor: Ljava/util/zip/Deflater;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.zip.CRC32 crc;
    descriptor: Ljava/util/zip/CRC32;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long writtenToOutputStreamForLastEntry;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long sourcePayloadLength;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long totalWrittenToOutputStream;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private static final int BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  private final byte[] outputBuffer;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] readerBuf;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.util.zip.Deflater);
    descriptor: (Ljava/util/zip/Deflater;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
        start local 1 // java.util.zip.Deflater deflater
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.crc:Ljava/util/zip/CRC32;
         2: .line 55
            aload 0 /* this */
            lconst_0
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
         3: .line 56
            aload 0 /* this */
            lconst_0
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.sourcePayloadLength:J
         4: .line 57
            aload 0 /* this */
            lconst_0
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.totalWrittenToOutputStream:J
         5: .line 60
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.outputBuffer:[B
         6: .line 61
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.readerBuf:[B
         7: .line 64
            aload 0 /* this */
            aload 1 /* deflater */
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
         8: .line 65
            return
        end local 1 // java.util.zip.Deflater deflater
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            0    9     1  deflater  Ljava/util/zip/Deflater;
    MethodParameters:
          Name  Flags
      deflater  final

  static org.apache.commons.compress.archivers.zip.StreamCompressor create(java.io.OutputStream, java.util.zip.Deflater);
    descriptor: (Ljava/io/OutputStream;Ljava/util/zip/Deflater;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.OutputStream os
        start local 1 // java.util.zip.Deflater deflater
         0: .line 75
            new org.apache.commons.compress.archivers.zip.StreamCompressor$OutputStreamCompressor
            dup
            aload 1 /* deflater */
            aload 0 /* os */
            invokespecial org.apache.commons.compress.archivers.zip.StreamCompressor$OutputStreamCompressor.<init>:(Ljava/util/zip/Deflater;Ljava/io/OutputStream;)V
            areturn
        end local 1 // java.util.zip.Deflater deflater
        end local 0 // java.io.OutputStream os
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        os  Ljava/io/OutputStream;
            0    1     1  deflater  Ljava/util/zip/Deflater;
    MethodParameters:
          Name  Flags
      os        final
      deflater  final

  static org.apache.commons.compress.archivers.zip.StreamCompressor create(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.io.OutputStream os
         0: .line 85
            aload 0 /* os */
            new java.util.zip.Deflater
            dup
            iconst_m1
            iconst_1
            invokespecial java.util.zip.Deflater.<init>:(IZ)V
            invokestatic org.apache.commons.compress.archivers.zip.StreamCompressor.create:(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            areturn
        end local 0 // java.io.OutputStream os
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    os  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      os    final

  static org.apache.commons.compress.archivers.zip.StreamCompressor create(java.io.DataOutput, java.util.zip.Deflater);
    descriptor: (Ljava/io/DataOutput;Ljava/util/zip/Deflater;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.DataOutput os
        start local 1 // java.util.zip.Deflater deflater
         0: .line 96
            new org.apache.commons.compress.archivers.zip.StreamCompressor$DataOutputCompressor
            dup
            aload 1 /* deflater */
            aload 0 /* os */
            invokespecial org.apache.commons.compress.archivers.zip.StreamCompressor$DataOutputCompressor.<init>:(Ljava/util/zip/Deflater;Ljava/io/DataOutput;)V
            areturn
        end local 1 // java.util.zip.Deflater deflater
        end local 0 // java.io.DataOutput os
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        os  Ljava/io/DataOutput;
            0    1     1  deflater  Ljava/util/zip/Deflater;
    MethodParameters:
          Name  Flags
      os        final
      deflater  final

  static org.apache.commons.compress.archivers.zip.StreamCompressor create(java.nio.channels.SeekableByteChannel, java.util.zip.Deflater);
    descriptor: (Ljava/nio/channels/SeekableByteChannel;Ljava/util/zip/Deflater;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.nio.channels.SeekableByteChannel os
        start local 1 // java.util.zip.Deflater deflater
         0: .line 108
            new org.apache.commons.compress.archivers.zip.StreamCompressor$SeekableByteChannelCompressor
            dup
            aload 1 /* deflater */
            aload 0 /* os */
            invokespecial org.apache.commons.compress.archivers.zip.StreamCompressor$SeekableByteChannelCompressor.<init>:(Ljava/util/zip/Deflater;Ljava/nio/channels/SeekableByteChannel;)V
            areturn
        end local 1 // java.util.zip.Deflater deflater
        end local 0 // java.nio.channels.SeekableByteChannel os
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        os  Ljava/nio/channels/SeekableByteChannel;
            0    1     1  deflater  Ljava/util/zip/Deflater;
    MethodParameters:
          Name  Flags
      os        final
      deflater  final

  public static org.apache.commons.compress.archivers.zip.StreamCompressor create(int, org.apache.commons.compress.parallel.ScatterGatherBackingStore);
    descriptor: (ILorg/apache/commons/compress/parallel/ScatterGatherBackingStore;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // int compressionLevel
        start local 1 // org.apache.commons.compress.parallel.ScatterGatherBackingStore bs
         0: .line 119
            new java.util.zip.Deflater
            dup
            iload 0 /* compressionLevel */
            iconst_1
            invokespecial java.util.zip.Deflater.<init>:(IZ)V
            astore 2 /* deflater */
        start local 2 // java.util.zip.Deflater deflater
         1: .line 120
            new org.apache.commons.compress.archivers.zip.StreamCompressor$ScatterGatherBackingStoreCompressor
            dup
            aload 2 /* deflater */
            aload 1 /* bs */
            invokespecial org.apache.commons.compress.archivers.zip.StreamCompressor$ScatterGatherBackingStoreCompressor.<init>:(Ljava/util/zip/Deflater;Lorg/apache/commons/compress/parallel/ScatterGatherBackingStore;)V
            areturn
        end local 2 // java.util.zip.Deflater deflater
        end local 1 // org.apache.commons.compress.parallel.ScatterGatherBackingStore bs
        end local 0 // int compressionLevel
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0  compressionLevel  I
            0    2     1                bs  Lorg/apache/commons/compress/parallel/ScatterGatherBackingStore;
            1    2     2          deflater  Ljava/util/zip/Deflater;
    MethodParameters:
                  Name  Flags
      compressionLevel  final
      bs                final

  public static org.apache.commons.compress.archivers.zip.StreamCompressor create(org.apache.commons.compress.parallel.ScatterGatherBackingStore);
    descriptor: (Lorg/apache/commons/compress/parallel/ScatterGatherBackingStore;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.parallel.ScatterGatherBackingStore bs
         0: .line 130
            iconst_m1
            aload 0 /* bs */
            invokestatic org.apache.commons.compress.archivers.zip.StreamCompressor.create:(ILorg/apache/commons/compress/parallel/ScatterGatherBackingStore;)Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            areturn
        end local 0 // org.apache.commons.compress.parallel.ScatterGatherBackingStore bs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    bs  Lorg/apache/commons/compress/parallel/ScatterGatherBackingStore;
    MethodParameters:
      Name  Flags
      bs    final

  public long getCrc32();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 140
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.crc:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.getValue:()J
            lreturn
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;

  public long getBytesRead();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 149
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.sourcePayloadLength:J
            lreturn
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;

  public long getBytesWrittenForLastEntry();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 158
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
            lreturn
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;

  public long getTotalBytesWritten();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 167
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.totalWrittenToOutputStream:J
            lreturn
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;

  public void deflate(java.io.InputStream, int);
    descriptor: (Ljava/io/InputStream;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
        start local 1 // java.io.InputStream source
        start local 2 // int method
         0: .line 180
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.reset:()V
         1: .line 183
            goto 3
        start local 3 // int length
         2: .line 184
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.readerBuf:[B
            iconst_0
            iload 3 /* length */
            iload 2 /* method */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.write:([BIII)J
            pop2
        end local 3 // int length
         3: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.readerBuf:[B
            iconst_0
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.readerBuf:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 3 /* length */
        start local 3 // int length
         4: ifge 2
         5: .line 186
            iload 2 /* method */
            bipush 8
            if_icmpne 7
         6: .line 187
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.flushDeflater:()V
         7: .line 189
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // int length
        end local 2 // int method
        end local 1 // java.io.InputStream source
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            0    8     1  source  Ljava/io/InputStream;
            0    8     2  method  I
            2    3     3  length  I
            4    8     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      source  final
      method  final

  long write(byte[], int, int, int);
    descriptor: ([BIII)J
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
        start local 1 // byte[] b
        start local 2 // int offset
        start local 3 // int length
        start local 4 // int method
         0: .line 202
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
            lstore 5 /* current */
        start local 5 // long current
         1: .line 203
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.crc:Ljava/util/zip/CRC32;
            aload 1 /* b */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.util.zip.CRC32.update:([BII)V
         2: .line 204
            iload 4 /* method */
            bipush 8
            if_icmpne 5
         3: .line 205
            aload 0 /* this */
            aload 1 /* b */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.writeDeflated:([BII)V
         4: .line 206
            goto 6
         5: .line 207
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* b */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.writeCounted:([BII)V
         6: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.sourcePayloadLength:J
            iload 3 /* length */
            i2l
            ladd
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.sourcePayloadLength:J
         7: .line 210
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
            lload 5 /* current */
            lsub
            lreturn
        end local 5 // long current
        end local 4 // int method
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] b
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            0    8     1        b  [B
            0    8     2   offset  I
            0    8     3   length  I
            0    8     4   method  I
            1    8     5  current  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      b       final
      offset  final
      length  final
      method  final

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 215
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.crc:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.reset:()V
         1: .line 216
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            invokevirtual java.util.zip.Deflater.reset:()V
         2: .line 217
            aload 0 /* this */
            lconst_0
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.sourcePayloadLength:J
         3: .line 218
            aload 0 /* this */
            lconst_0
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
         4: .line 219
            return
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 223
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            invokevirtual java.util.zip.Deflater.end:()V
         1: .line 224
            return
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    Exceptions:
      throws java.io.IOException

  void flushDeflater();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 227
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            invokevirtual java.util.zip.Deflater.finish:()V
         1: .line 228
            goto 3
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.deflate:()V
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            invokevirtual java.util.zip.Deflater.finished:()Z
            ifeq 2
         4: .line 231
            return
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    Exceptions:
      throws java.io.IOException

  private void writeDeflated(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
        start local 1 // byte[] b
        start local 2 // int offset
        start local 3 // int length
         0: .line 235
            iload 3 /* length */
            ifle 18
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            invokevirtual java.util.zip.Deflater.finished:()Z
            ifne 18
         1: .line 236
            iload 3 /* length */
            sipush 8192
            if_icmpgt 5
         2: .line 237
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            aload 1 /* b */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.util.zip.Deflater.setInput:([BII)V
         3: .line 238
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.deflateUntilInputIsNeeded:()V
         4: .line 239
            goto 18
         5: .line 240
      StackMap locals:
      StackMap stack:
            iload 3 /* length */
            sipush 8192
            idiv
            istore 4 /* fullblocks */
        start local 4 // int fullblocks
         6: .line 241
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 13
         8: .line 242
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            aload 1 /* b */
            iload 2 /* offset */
            iload 5 /* i */
            sipush 8192
            imul
            iadd
         9: .line 243
            sipush 8192
        10: .line 242
            invokevirtual java.util.zip.Deflater.setInput:([BII)V
        11: .line 244
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.deflateUntilInputIsNeeded:()V
        12: .line 241
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 4 /* fullblocks */
            if_icmplt 8
        end local 5 // int i
        14: .line 246
            iload 4 /* fullblocks */
            sipush 8192
            imul
            istore 5 /* done */
        start local 5 // int done
        15: .line 247
            iload 5 /* done */
            iload 3 /* length */
            if_icmpge 18
        16: .line 248
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            aload 1 /* b */
            iload 2 /* offset */
            iload 5 /* done */
            iadd
            iload 3 /* length */
            iload 5 /* done */
            isub
            invokevirtual java.util.zip.Deflater.setInput:([BII)V
        17: .line 249
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.deflateUntilInputIsNeeded:()V
        end local 5 // int done
        end local 4 // int fullblocks
        18: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] b
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            0   19     1           b  [B
            0   19     2      offset  I
            0   19     3      length  I
            6   18     4  fullblocks  I
            7   14     5           i  I
           15   18     5        done  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      b       final
      offset  final
      length  final

  private void deflateUntilInputIsNeeded();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 256
            goto 2
         1: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.deflate:()V
         2: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            invokevirtual java.util.zip.Deflater.needsInput:()Z
            ifeq 1
         3: .line 259
            return
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
    Exceptions:
      throws java.io.IOException

  void deflate();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
         0: .line 262
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.def:Ljava/util/zip/Deflater;
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.outputBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.outputBuffer:[B
            arraylength
            invokevirtual java.util.zip.Deflater.deflate:([BII)I
            istore 1 /* len */
        start local 1 // int len
         1: .line 263
            iload 1 /* len */
            ifle 3
         2: .line 264
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.outputBuffer:[B
            iconst_0
            iload 1 /* len */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.writeCounted:([BII)V
         3: .line 266
      StackMap locals: int
      StackMap stack:
            return
        end local 1 // int len
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            1    4     1   len  I
    Exceptions:
      throws java.io.IOException

  public void writeCounted(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
        start local 1 // byte[] data
         0: .line 269
            aload 0 /* this */
            aload 1 /* data */
            iconst_0
            aload 1 /* data */
            arraylength
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.writeCounted:([BII)V
         1: .line 270
            return
        end local 1 // byte[] data
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            0    2     1  data  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  final

  public void writeCounted(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
        start local 1 // byte[] data
        start local 2 // int offset
        start local 3 // int length
         0: .line 273
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual org.apache.commons.compress.archivers.zip.StreamCompressor.writeOut:([BII)V
         1: .line 274
            aload 0 /* this */
            dup
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
            iload 3 /* length */
            i2l
            ladd
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.writtenToOutputStreamForLastEntry:J
         2: .line 275
            aload 0 /* this */
            dup
            getfield org.apache.commons.compress.archivers.zip.StreamCompressor.totalWrittenToOutputStream:J
            iload 3 /* length */
            i2l
            ladd
            putfield org.apache.commons.compress.archivers.zip.StreamCompressor.totalWrittenToOutputStream:J
         3: .line 276
            return
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] data
        end local 0 // org.apache.commons.compress.archivers.zip.StreamCompressor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/commons/compress/archivers/zip/StreamCompressor;
            0    4     1    data  [B
            0    4     2  offset  I
            0    4     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    final
      offset  final
      length  final

  protected abstract void writeOut(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      offset  
      length  
}
SourceFile: "StreamCompressor.java"
NestMembers:
  org.apache.commons.compress.archivers.zip.StreamCompressor$DataOutputCompressor  org.apache.commons.compress.archivers.zip.StreamCompressor$OutputStreamCompressor  org.apache.commons.compress.archivers.zip.StreamCompressor$ScatterGatherBackingStoreCompressor  org.apache.commons.compress.archivers.zip.StreamCompressor$SeekableByteChannelCompressor
InnerClasses:
  private final DataOutputCompressor = org.apache.commons.compress.archivers.zip.StreamCompressor$DataOutputCompressor of org.apache.commons.compress.archivers.zip.StreamCompressor
  private final OutputStreamCompressor = org.apache.commons.compress.archivers.zip.StreamCompressor$OutputStreamCompressor of org.apache.commons.compress.archivers.zip.StreamCompressor
  private final ScatterGatherBackingStoreCompressor = org.apache.commons.compress.archivers.zip.StreamCompressor$ScatterGatherBackingStoreCompressor of org.apache.commons.compress.archivers.zip.StreamCompressor
  private final SeekableByteChannelCompressor = org.apache.commons.compress.archivers.zip.StreamCompressor$SeekableByteChannelCompressor of org.apache.commons.compress.archivers.zip.StreamCompressor