public class com.sun.imageio.plugins.gif.GIFImageReader extends javax.imageio.ImageReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.gif.GIFImageReader
  super_class: javax.imageio.ImageReader
{
  javax.imageio.stream.ImageInputStream stream;
    descriptor: Ljavax/imageio/stream/ImageInputStream;
    flags: (0x0000) 

  boolean gotHeader;
    descriptor: Z
    flags: (0x0000) 

  com.sun.imageio.plugins.gif.GIFStreamMetadata streamMetadata;
    descriptor: Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
    flags: (0x0000) 

  int currIndex;
    descriptor: I
    flags: (0x0000) 

  com.sun.imageio.plugins.gif.GIFImageMetadata imageMetadata;
    descriptor: Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
    flags: (0x0000) 

  java.util.List imageStartPosition;
    descriptor: Ljava/util/List;
    flags: (0x0000) 

  int imageMetadataLength;
    descriptor: I
    flags: (0x0000) 

  int numImages;
    descriptor: I
    flags: (0x0000) 

  byte[] block;
    descriptor: [B
    flags: (0x0000) 

  int blockLength;
    descriptor: I
    flags: (0x0000) 

  int bitPos;
    descriptor: I
    flags: (0x0000) 

  int nextByte;
    descriptor: I
    flags: (0x0000) 

  int initCodeSize;
    descriptor: I
    flags: (0x0000) 

  int clearCode;
    descriptor: I
    flags: (0x0000) 

  int eofCode;
    descriptor: I
    flags: (0x0000) 

  int next32Bits;
    descriptor: I
    flags: (0x0000) 

  boolean lastBlockFound;
    descriptor: Z
    flags: (0x0000) 

  java.awt.image.BufferedImage theImage;
    descriptor: Ljava/awt/image/BufferedImage;
    flags: (0x0000) 

  java.awt.image.WritableRaster theTile;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0000) 

  int width;
    descriptor: I
    flags: (0x0000) 

  int height;
    descriptor: I
    flags: (0x0000) 

  int streamX;
    descriptor: I
    flags: (0x0000) 

  int streamY;
    descriptor: I
    flags: (0x0000) 

  int rowsDone;
    descriptor: I
    flags: (0x0000) 

  int interlacePass;
    descriptor: I
    flags: (0x0000) 

  private byte[] fallbackColorTable;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  static final int[] interlaceIncrement;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int[] interlaceOffset;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  java.awt.Rectangle sourceRegion;
    descriptor: Ljava/awt/Rectangle;
    flags: (0x0000) 

  int sourceXSubsampling;
    descriptor: I
    flags: (0x0000) 

  int sourceYSubsampling;
    descriptor: I
    flags: (0x0000) 

  int sourceMinProgressivePass;
    descriptor: I
    flags: (0x0000) 

  int sourceMaxProgressivePass;
    descriptor: I
    flags: (0x0000) 

  java.awt.Point destinationOffset;
    descriptor: Ljava/awt/Point;
    flags: (0x0000) 

  java.awt.Rectangle destinationRegion;
    descriptor: Ljava/awt/Rectangle;
    flags: (0x0000) 

  int updateMinY;
    descriptor: I
    flags: (0x0000) 

  int updateYStep;
    descriptor: I
    flags: (0x0000) 

  boolean decodeThisRow;
    descriptor: Z
    flags: (0x0000) 

  int destY;
    descriptor: I
    flags: (0x0000) 

  byte[] rowBuf;
    descriptor: [B
    flags: (0x0000) 

  private static byte[] defaultPalette;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 123
            iconst_5
            newarray 10
            dup
            iconst_0
            bipush 8
            iastore
            dup
            iconst_1
            bipush 8
            iastore
            dup
            iconst_2
            iconst_4
            iastore
            dup
            iconst_3
            iconst_2
            iastore
            dup
            iconst_4
            iconst_m1
            iastore
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceIncrement:[I
         1: .line 124
            iconst_5
            newarray 10
            dup
            iconst_1
            iconst_4
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_1
            iastore
            dup
            iconst_4
            iconst_m1
            iastore
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceOffset:[I
         2: .line 1060
            aconst_null
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.imageio.spi.ImageReaderSpi);
    descriptor: (Ljavax/imageio/spi/ImageReaderSpi;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // javax.imageio.spi.ImageReaderSpi originatingProvider
         0: .line 127
            aload 0 /* this */
            aload 1 /* originatingProvider */
            invokespecial javax.imageio.ImageReader.<init>:(Ljavax/imageio/spi/ImageReaderSpi;)V
         1: .line 56
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
         2: .line 61
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
         3: .line 64
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
         4: .line 67
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
         5: .line 70
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         6: .line 75
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
         7: .line 82
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
         8: .line 85
            aload 0 /* this */
            sipush 255
            newarray 8
            putfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
         9: .line 86
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
        10: .line 87
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
        11: .line 88
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
        12: .line 94
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
        13: .line 98
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        14: .line 101
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        15: .line 104
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
        16: .line 107
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
        17: .line 110
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        18: .line 113
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        19: .line 116
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        20: .line 118
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
        21: .line 402
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.decodeThisRow:Z
        22: .line 403
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        23: .line 128
            return
        end local 1 // javax.imageio.spi.ImageReaderSpi originatingProvider
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   24     0                 this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   24     1  originatingProvider  Ljavax/imageio/spi/ImageReaderSpi;
    MethodParameters:
                     Name  Flags
      originatingProvider  

  public void setInput(java.lang.Object, boolean, boolean);
    descriptor: (Ljava/lang/Object;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // java.lang.Object input
        start local 2 // boolean seekForwardOnly
        start local 3 // boolean ignoreMetadata
         0: .line 134
            aload 0 /* this */
            aload 1 /* input */
            iload 2 /* seekForwardOnly */
            iload 3 /* ignoreMetadata */
            invokespecial javax.imageio.ImageReader.setInput:(Ljava/lang/Object;ZZ)V
         1: .line 135
            aload 1 /* input */
            ifnull 8
         2: .line 136
            aload 1 /* input */
            instanceof javax.imageio.stream.ImageInputStream
            ifne 6
         3: .line 137
            new java.lang.IllegalArgumentException
            dup
         4: .line 138
            ldc "input not an ImageInputStream!"
         5: .line 137
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* input */
            checkcast javax.imageio.stream.ImageInputStream
            putfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
         7: .line 141
            goto 9
         8: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
         9: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.resetStreamSettings:()V
        10: .line 147
            return
        end local 3 // boolean ignoreMetadata
        end local 2 // boolean seekForwardOnly
        end local 1 // java.lang.Object input
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   11     1            input  Ljava/lang/Object;
            0   11     2  seekForwardOnly  Z
            0   11     3   ignoreMetadata  Z
    MethodParameters:
                 Name  Flags
      input            
      seekForwardOnly  
      ignoreMetadata   

  public int getNumImages(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // boolean allowSearch
         0: .line 150
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 151
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.seekForwardOnly:Z
            ifeq 6
            iload 1 /* allowSearch */
            ifeq 6
         3: .line 154
            new java.lang.IllegalStateException
            dup
         4: .line 155
            ldc "seekForwardOnly and allowSearch can't both be true!"
         5: .line 154
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
            ifle 8
         7: .line 159
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
            ireturn
         8: .line 161
      StackMap locals:
      StackMap stack:
            iload 1 /* allowSearch */
            ifeq 10
         9: .line 162
            aload 0 /* this */
            aload 0 /* this */
            ldc 2147483647
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
        10: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
            ireturn
        end local 1 // boolean allowSearch
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   11     1  allowSearch  Z
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
             Name  Flags
      allowSearch  

  private void checkIndex(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 170
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.minIndex:I
            if_icmpge 2
         1: .line 171
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "imageIndex < minIndex!"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.seekForwardOnly:Z
            ifeq 4
         3: .line 174
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.gif.GIFImageReader.minIndex:I
         4: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    5     1  imageIndex  I
    MethodParameters:
            Name  Flags
      imageIndex  

  public int getWidth(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 179
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 181
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 182
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 183
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 185
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 186
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
            ireturn
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1  imageIndex  I
            2    6     2       index  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public int getHeight(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 190
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 192
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 193
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 194
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 196
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 197
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
            ireturn
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1  imageIndex  I
            2    6     2       index  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private javax.imageio.ImageTypeSpecifier createIndexed(byte[], byte[], byte[], int);
    descriptor: ([B[B[BI)Ljavax/imageio/ImageTypeSpecifier;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=8, args_size=5
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // byte[] r
        start local 2 // byte[] g
        start local 3 // byte[] b
        start local 4 // int bits
         0: .line 205
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorFlag:Z
            ifeq 6
         1: .line 208
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorIndex:I
         2: .line 209
            aload 1 /* r */
            arraylength
            iconst_1
            isub
         3: .line 208
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* idx */
        start local 6 // int idx
         4: .line 210
            new java.awt.image.IndexColorModel
            dup
            iload 4 /* bits */
            aload 1 /* r */
            arraylength
            aload 1 /* r */
            aload 2 /* g */
            aload 3 /* b */
            iload 6 /* idx */
            invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[BI)V
            astore 5 /* colorModel */
        end local 6 // int idx
        start local 5 // java.awt.image.ColorModel colorModel
         5: .line 211
            goto 7
        end local 5 // java.awt.image.ColorModel colorModel
         6: .line 212
      StackMap locals:
      StackMap stack:
            new java.awt.image.IndexColorModel
            dup
            iload 4 /* bits */
            aload 1 /* r */
            arraylength
            aload 1 /* r */
            aload 2 /* g */
            aload 3 /* b */
            invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[B)V
            astore 5 /* colorModel */
        start local 5 // java.awt.image.ColorModel colorModel
         7: .line 216
      StackMap locals: java.awt.image.ColorModel
      StackMap stack:
            iload 4 /* bits */
            bipush 8
            if_icmpne 15
         8: .line 217
            iconst_1
            newarray 10
            astore 7 /* bandOffsets */
        start local 7 // int[] bandOffsets
         9: .line 219
            new java.awt.image.PixelInterleavedSampleModel
            dup
            iconst_0
        10: .line 220
            iconst_1
            iconst_1
            iconst_1
            iconst_1
        11: .line 221
            aload 7 /* bandOffsets */
        12: .line 219
            invokespecial java.awt.image.PixelInterleavedSampleModel.<init>:(IIIII[I)V
        13: .line 218
            astore 6 /* sampleModel */
        end local 7 // int[] bandOffsets
        start local 6 // java.awt.image.SampleModel sampleModel
        14: .line 222
            goto 19
        end local 6 // java.awt.image.SampleModel sampleModel
        15: .line 224
      StackMap locals:
      StackMap stack:
            new java.awt.image.MultiPixelPackedSampleModel
            dup
            iconst_0
        16: .line 225
            iconst_1
            iconst_1
            iload 4 /* bits */
        17: .line 224
            invokespecial java.awt.image.MultiPixelPackedSampleModel.<init>:(IIII)V
        18: .line 223
            astore 6 /* sampleModel */
        start local 6 // java.awt.image.SampleModel sampleModel
        19: .line 227
      StackMap locals: java.awt.image.SampleModel
      StackMap stack:
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* colorModel */
            aload 6 /* sampleModel */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/ColorModel;Ljava/awt/image/SampleModel;)V
            areturn
        end local 6 // java.awt.image.SampleModel sampleModel
        end local 5 // java.awt.image.ColorModel colorModel
        end local 4 // int bits
        end local 3 // byte[] b
        end local 2 // byte[] g
        end local 1 // byte[] r
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   20     1            r  [B
            0   20     2            g  [B
            0   20     3            b  [B
            0   20     4         bits  I
            5    6     5   colorModel  Ljava/awt/image/ColorModel;
            7   20     5   colorModel  Ljava/awt/image/ColorModel;
            4    5     6          idx  I
           14   15     6  sampleModel  Ljava/awt/image/SampleModel;
           19   20     6  sampleModel  Ljava/awt/image/SampleModel;
            9   14     7  bandOffsets  [I
    MethodParameters:
      Name  Flags
      r     
      g     
      b     
      bits  

  public java.util.Iterator getImageTypes(int);
    descriptor: (I)Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 231
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 233
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 234
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 235
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 237
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 239
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* l */
        start local 3 // java.util.List l
         6: .line 242
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            ifnull 10
         7: .line 243
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            astore 4 /* colorTable */
        start local 4 // byte[] colorTable
         8: .line 244
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
         9: .line 245
            goto 11
        end local 4 // byte[] colorTable
        10: .line 246
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            getfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
            astore 4 /* colorTable */
        start local 4 // byte[] colorTable
        11: .line 249
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* colorTable */
            ifnonnull 16
        12: .line 250
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
            ifnonnull 15
        13: .line 251
            aload 0 /* this */
            ldc "Use default color table."
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processWarningOccurred:(Ljava/lang/String;)V
        14: .line 254
            aload 0 /* this */
            invokestatic com.sun.imageio.plugins.gif.GIFImageReader.getDefaultPalette:()[B
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
        15: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
            astore 4 /* colorTable */
        16: .line 261
      StackMap locals:
      StackMap stack:
            aload 4 /* colorTable */
            arraylength
            iconst_3
            idiv
            istore 5 /* length */
        start local 5 // int length
        17: .line 263
            iload 5 /* length */
            iconst_2
            if_icmpne 20
        18: .line 264
            iconst_1
            istore 6 /* bits */
        start local 6 // int bits
        19: .line 265
            goto 27
        end local 6 // int bits
      StackMap locals: int
      StackMap stack:
        20: iload 5 /* length */
            iconst_4
            if_icmpne 23
        21: .line 266
            iconst_2
            istore 6 /* bits */
        start local 6 // int bits
        22: .line 267
            goto 27
        end local 6 // int bits
      StackMap locals:
      StackMap stack:
        23: iload 5 /* length */
            bipush 8
            if_icmpeq 24
            iload 5 /* length */
            bipush 16
            if_icmpne 26
        24: .line 269
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 6 /* bits */
        start local 6 // int bits
        25: .line 270
            goto 27
        end local 6 // int bits
        26: .line 272
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 6 /* bits */
        start local 6 // int bits
        27: .line 274
      StackMap locals: int
      StackMap stack:
            iconst_1
            iload 6 /* bits */
            ishl
            istore 7 /* lutLength */
        start local 7 // int lutLength
        28: .line 275
            iload 7 /* lutLength */
            newarray 8
            astore 8 /* r */
        start local 8 // byte[] r
        29: .line 276
            iload 7 /* lutLength */
            newarray 8
            astore 9 /* g */
        start local 9 // byte[] g
        30: .line 277
            iload 7 /* lutLength */
            newarray 8
            astore 10 /* b */
        start local 10 // byte[] b
        31: .line 280
            iconst_0
            istore 11 /* rgbIndex */
        start local 11 // int rgbIndex
        32: .line 281
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        33: goto 38
        34: .line 282
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int int java.util.List byte[] int int int byte[] byte[] byte[] int int
      StackMap stack:
            aload 8 /* r */
            iload 12 /* i */
            aload 4 /* colorTable */
            iload 11 /* rgbIndex */
            iinc 11 /* rgbIndex */ 1
            baload
            bastore
        35: .line 283
            aload 9 /* g */
            iload 12 /* i */
            aload 4 /* colorTable */
            iload 11 /* rgbIndex */
            iinc 11 /* rgbIndex */ 1
            baload
            bastore
        36: .line 284
            aload 10 /* b */
            iload 12 /* i */
            aload 4 /* colorTable */
            iload 11 /* rgbIndex */
            iinc 11 /* rgbIndex */ 1
            baload
            bastore
        37: .line 281
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 12 /* i */
            iload 5 /* length */
            if_icmplt 34
        end local 12 // int i
        39: .line 287
            aload 3 /* l */
            aload 0 /* this */
            aload 8 /* r */
            aload 9 /* g */
            aload 10 /* b */
            iload 6 /* bits */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.createIndexed:([B[B[BI)Ljavax/imageio/ImageTypeSpecifier;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 288
            aload 3 /* l */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        end local 11 // int rgbIndex
        end local 10 // byte[] b
        end local 9 // byte[] g
        end local 8 // byte[] r
        end local 7 // int lutLength
        end local 6 // int bits
        end local 5 // int length
        end local 4 // byte[] colorTable
        end local 3 // java.util.List l
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   41     1  imageIndex  I
            2   41     2       index  I
            6   41     3           l  Ljava/util/List;
            8   10     4  colorTable  [B
           11   41     4  colorTable  [B
           17   41     5      length  I
           19   20     6        bits  I
           22   23     6        bits  I
           25   26     6        bits  I
           27   41     6        bits  I
           28   41     7   lutLength  I
           29   41     8           r  [B
           30   41     9           g  [B
           31   41    10           b  [B
           32   41    11    rgbIndex  I
           33   39    12           i  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public javax.imageio.ImageReadParam getDefaultReadParam();
    descriptor: ()Ljavax/imageio/ImageReadParam;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 292
            new javax.imageio.ImageReadParam
            dup
            invokespecial javax.imageio.ImageReadParam.<init>:()V
            areturn
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  public javax.imageio.metadata.IIOMetadata getStreamMetadata();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 296
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readHeader:()V
         1: .line 297
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            areturn
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
    Exceptions:
      throws javax.imageio.IIOException

  public javax.imageio.metadata.IIOMetadata getImageMetadata(int);
    descriptor: (I)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 301
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 303
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 304
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 305
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "Bad image index!"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 307
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 308
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            areturn
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1  imageIndex  I
            2    6     2       index  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private void initNext32Bits();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 314
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_0
            baload
            sipush 255
            iand
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         1: .line 315
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_1
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         2: .line 316
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_2
            baload
            sipush 255
            iand
            bipush 16
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         3: .line 317
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_3
            baload
            bipush 24
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         4: .line 318
            aload 0 /* this */
            iconst_4
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
         5: .line 319
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private int getCode(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int codeSize
        start local 2 // int codeMask
         0: .line 328
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            iload 1 /* codeSize */
            iadd
            bipush 32
            if_icmple 2
         1: .line 329
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
            ireturn
         2: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            ishr
            iload 2 /* codeMask */
            iand
            istore 3 /* code */
        start local 3 // int code
         3: .line 333
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            iload 1 /* codeSize */
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
         4: .line 336
            goto 21
         5: .line 337
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            bipush 8
            iushr
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         6: .line 338
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            bipush 8
            isub
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
         7: .line 341
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            if_icmplt 20
         8: .line 343
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
         9: .line 344
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            ifne 12
        10: .line 345
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        11: .line 346
            iload 3 /* code */
            ireturn
        12: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            istore 4 /* left */
        start local 4 // int left
        13: .line 349
            iconst_0
            istore 5 /* off */
        start local 5 // int off
        14: .line 350
            goto 18
        15: .line 351
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iload 5 /* off */
            iload 4 /* left */
            invokeinterface javax.imageio.stream.ImageInputStream.read:([BII)I
            istore 6 /* nbytes */
        start local 6 // int nbytes
        16: .line 352
            iload 5 /* off */
            iload 6 /* nbytes */
            iadd
            istore 5 /* off */
        17: .line 353
            iload 4 /* left */
            iload 6 /* nbytes */
            isub
            istore 4 /* left */
        end local 6 // int nbytes
        18: .line 350
      StackMap locals:
      StackMap stack:
            iload 4 /* left */
            ifgt 15
        19: .line 355
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
        end local 5 // int off
        end local 4 // int left
        20: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
            baload
            bipush 24
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
        21: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            bipush 8
            if_icmplt 22
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
            ifeq 5
        22: .line 362
      StackMap locals:
      StackMap stack:
            iload 3 /* code */
            ireturn
        end local 3 // int code
        end local 2 // int codeMask
        end local 1 // int codeSize
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   23     1  codeSize  I
            0   23     2  codeMask  I
            3   23     3      code  I
           13   20     4      left  I
           14   20     5       off  I
           16   18     6    nbytes  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      codeSize  
      codeMask  

  public void initializeStringTable(int[], byte[], byte[], int[]);
    descriptor: ([I[B[B[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int[] prefix
        start local 2 // byte[] suffix
        start local 3 // byte[] initial
        start local 4 // int[] length
         0: .line 369
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            istore 5 /* numEntries */
        start local 5 // int numEntries
         1: .line 370
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 8
         3: .line 371
      StackMap locals: int int
      StackMap stack:
            aload 1 /* prefix */
            iload 6 /* i */
            iconst_m1
            iastore
         4: .line 372
            aload 2 /* suffix */
            iload 6 /* i */
            iload 6 /* i */
            i2b
            bastore
         5: .line 373
            aload 3 /* initial */
            iload 6 /* i */
            iload 6 /* i */
            i2b
            bastore
         6: .line 374
            aload 4 /* length */
            iload 6 /* i */
            iconst_1
            iastore
         7: .line 370
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            iload 5 /* numEntries */
            if_icmplt 3
        end local 6 // int i
         9: .line 379
            iload 5 /* numEntries */
            istore 6 /* i */
        start local 6 // int i
        10: goto 14
        11: .line 380
      StackMap locals:
      StackMap stack:
            aload 1 /* prefix */
            iload 6 /* i */
            iconst_m1
            iastore
        12: .line 381
            aload 4 /* length */
            iload 6 /* i */
            iconst_1
            iastore
        13: .line 379
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            sipush 4096
            if_icmplt 11
        end local 6 // int i
        15: .line 387
            return
        end local 5 // int numEntries
        end local 4 // int[] length
        end local 3 // byte[] initial
        end local 2 // byte[] suffix
        end local 1 // int[] prefix
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   16     1      prefix  [I
            0   16     2      suffix  [B
            0   16     3     initial  [B
            0   16     4      length  [I
            1   16     5  numEntries  I
            2    9     6           i  I
           10   15     6           i  I
    MethodParameters:
         Name  Flags
      prefix   
      suffix   
      initial  
      length   

  private void outputRow();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=4, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 409
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
         1: .line 410
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
            imul
         2: .line 409
            invokestatic java.lang.Math.min:(II)I
            istore 1 /* width */
        start local 1 // int width
         3: .line 411
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            istore 2 /* destX */
        start local 2 // int destX
         4: .line 413
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
            iconst_1
            if_icmpne 7
         5: .line 414
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
            iload 2 /* destX */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
            iload 1 /* width */
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
            invokevirtual java.awt.image.WritableRaster.setDataElements:(IIIILjava/lang/Object;)V
         6: .line 415
            goto 12
         7: .line 416
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 3 /* x */
        start local 3 // int x
         8: goto 11
         9: .line 417
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
            iload 2 /* destX */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
            iconst_0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
            iload 3 /* x */
            baload
            sipush 255
            iand
            invokevirtual java.awt.image.WritableRaster.setSample:(IIII)V
        10: .line 416
            iload 3 /* x */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
            iadd
            istore 3 /* x */
            iinc 2 /* destX */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* x */
            iload 1 /* width */
            if_icmplt 9
        end local 3 // int x
        12: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateListeners:Ljava/util/List;
            ifnull 19
        13: .line 423
            iconst_1
            newarray 10
            astore 3 /* bands */
        start local 3 // int[] bands
        14: .line 426
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        15: .line 427
            iload 2 /* destX */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        16: .line 428
            iload 1 /* width */
            iconst_1
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateYStep:I
        17: .line 429
            aload 3 /* bands */
        18: .line 426
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageUpdate:(Ljava/awt/image/BufferedImage;IIIIII[I)V
        end local 3 // int[] bands
        19: .line 431
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int destX
        end local 1 // int width
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            3   20     1  width  I
            4   20     2  destX  I
            8   12     3      x  I
           14   19     3  bands  [I

  private void computeDecodeThisRow();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 434
            aload 0 /* this */
         1: .line 435
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
            iadd
            if_icmpge 5
         2: .line 436
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            if_icmplt 5
         3: .line 437
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
            iadd
            if_icmpge 5
         4: .line 438
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            isub
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
            irem
            ifne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageReader
         5: iconst_0
         6: .line 434
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageReader int
            putfield com.sun.imageio.plugins.gif.GIFImageReader.decodeThisRow:Z
         7: .line 439
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private void outputPixels(byte[], int);
    descriptor: ([BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // byte[] string
        start local 2 // int len
         0: .line 442
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMinProgressivePass:I
            if_icmplt 2
         1: .line 443
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
            if_icmple 3
         2: .line 444
      StackMap locals:
      StackMap stack:
            return
         3: .line 447
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 31
         5: .line 448
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            if_icmplt 7
         6: .line 449
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            isub
            aload 1 /* string */
            iload 3 /* i */
            baload
            bastore
         7: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
         8: .line 454
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            if_icmpne 30
         9: .line 456
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        10: .line 457
            aload 0 /* this */
            ldc 100.0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
            i2f
            fmul
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
            i2f
            fdiv
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageProgress:(F)V
        11: .line 459
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.decodeThisRow:Z
            ifeq 13
        12: .line 460
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.outputRow:()V
        13: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
        14: .line 464
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.interlaceFlag:Z
            ifeq 25
        15: .line 465
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceIncrement:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        16: .line 466
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
            if_icmplt 26
        17: .line 468
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateListeners:Ljava/util/List;
            ifnull 19
        18: .line 469
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processPassComplete:(Ljava/awt/image/BufferedImage;)V
        19: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        20: .line 473
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
            if_icmple 22
        21: .line 474
            return
        22: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceOffset:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        23: .line 477
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.startPass:(I)V
        24: .line 479
            goto 26
        25: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        26: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
        27: .line 486
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            isub
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
            idiv
            iadd
        28: .line 485
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        29: .line 487
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.computeDecodeThisRow:()V
        30: .line 447
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 3 /* i */
            iload 2 /* len */
            if_icmplt 5
        end local 3 // int i
        32: .line 490
            return
        end local 2 // int len
        end local 1 // byte[] string
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   33     0    this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   33     1  string  [B
            0   33     2     len  I
            4   32     3       i  I
    MethodParameters:
        Name  Flags
      string  
      len     

  private void readHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 495
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
            ifeq 2
         1: .line 496
            return
         2: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 4
         3: .line 499
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.imageio.plugins.gif.GIFStreamMetadata
            dup
            invokespecial com.sun.imageio.plugins.gif.GIFStreamMetadata.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
         5: .line 506
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokeinterface javax.imageio.stream.ImageInputStream.setByteOrder:(Ljava/nio/ByteOrder;)V
         6: .line 508
            bipush 6
            newarray 8
            astore 1 /* signature */
        start local 1 // byte[] signature
         7: .line 509
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 1 /* signature */
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
         8: .line 511
            new java.lang.StringBuffer
            dup
            iconst_3
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* version */
        start local 2 // java.lang.StringBuffer version
         9: .line 512
            aload 2 /* version */
            aload 1 /* signature */
            iconst_3
            baload
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        10: .line 513
            aload 2 /* version */
            aload 1 /* signature */
            iconst_4
            baload
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        11: .line 514
            aload 2 /* version */
            aload 1 /* signature */
            iconst_5
            baload
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        12: .line 515
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 2 /* version */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.version:Ljava/lang/String;
        13: .line 517
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.logicalScreenWidth:I
        14: .line 518
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.logicalScreenHeight:I
        15: .line 520
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 3 /* packedFields */
        start local 3 // int packedFields
        16: .line 521
            iload 3 /* packedFields */
            sipush 128
            iand
            ifeq 17
            iconst_1
            goto 18
      StackMap locals: byte[] java.lang.StringBuffer int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 4 /* globalColorTableFlag */
        start local 4 // boolean globalColorTableFlag
        19: .line 522
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            iload 3 /* packedFields */
            iconst_4
            ishr
            bipush 7
            iand
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.colorResolution:I
        20: .line 523
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            iload 3 /* packedFields */
            bipush 8
            iand
            ifeq 21
            iconst_1
            goto 22
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader byte[] java.lang.StringBuffer int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFStreamMetadata
        21: iconst_0
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader byte[] java.lang.StringBuffer int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFStreamMetadata int
        22: putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.sortFlag:Z
        23: .line 524
            iconst_1
            iload 3 /* packedFields */
            bipush 7
            iand
            iconst_1
            iadd
            ishl
            istore 5 /* numGCTEntries */
        start local 5 // int numGCTEntries
        24: .line 526
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.backgroundColorIndex:I
        25: .line 527
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.pixelAspectRatio:I
        26: .line 529
            iload 4 /* globalColorTableFlag */
            ifeq 30
        27: .line 530
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            iconst_3
            iload 5 /* numGCTEntries */
            imul
            newarray 8
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
        28: .line 531
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            getfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
        29: .line 532
            goto 31
        30: .line 533
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
        31: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // int numGCTEntries
        end local 4 // boolean globalColorTableFlag
        end local 3 // int packedFields
        end local 2 // java.lang.StringBuffer version
        end local 1 // byte[] signature
        32: .line 538
            goto 35
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: java.io.IOException
        33: astore 1 /* e */
        start local 1 // java.io.IOException e
        34: .line 539
            new javax.imageio.IIOException
            dup
            ldc "I/O error reading header!"
            aload 1 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        35: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
        36: .line 543
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   37     0                  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            7   32     1             signature  [B
            9   32     2               version  Ljava/lang/StringBuffer;
           16   32     3          packedFields  I
           19   32     4  globalColorTableFlag  Z
           24   32     5         numGCTEntries  I
           34   35     1                     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    32      33  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException

  private boolean skipImage();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 1 /* blockType */
        start local 1 // int blockType
         1: .line 553
            iload 1 /* blockType */
            bipush 44
            if_icmpne 14
         2: .line 554
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            bipush 8
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
         3: .line 556
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* packedFields */
        start local 2 // int packedFields
         4: .line 557
            iload 2 /* packedFields */
            sipush 128
            iand
            ifeq 7
         5: .line 559
            iload 2 /* packedFields */
            bipush 7
            iand
            iconst_1
            iadd
            istore 3 /* bits */
        start local 3 // int bits
         6: .line 560
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iconst_3
            iconst_1
            iload 3 /* bits */
            ishl
            imul
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        end local 3 // int bits
         7: .line 563
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iconst_1
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
         8: .line 565
            iconst_0
            istore 3 /* length */
        start local 3 // int length
         9: .line 567
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 3 /* length */
        10: .line 568
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 3 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        11: .line 569
            iload 3 /* length */
        12: .line 566
            ifgt 9
        13: .line 571
            iconst_1
            ireturn
        end local 3 // int length
        end local 2 // int packedFields
        14: .line 572
      StackMap locals:
      StackMap stack:
            iload 1 /* blockType */
            bipush 59
            if_icmpne 16
        15: .line 573
            iconst_0
            ireturn
        16: .line 574
      StackMap locals:
      StackMap stack:
            iload 1 /* blockType */
            bipush 33
            if_icmpne 24
        17: .line 575
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        18: .line 577
            iconst_0
            istore 2 /* length */
        start local 2 // int length
        19: .line 579
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* length */
        20: .line 580
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 2 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        21: .line 581
            iload 2 /* length */
        22: .line 578
            ifgt 19
        end local 2 // int length
        23: .line 582
            goto 0
      StackMap locals:
      StackMap stack:
        24: iload 1 /* blockType */
            ifne 26
        25: .line 584
            iconst_0
            ireturn
        26: .line 586
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* length */
        start local 2 // int length
        27: .line 588
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* length */
        28: .line 589
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 2 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        29: .line 590
            iload 2 /* length */
        30: .line 587
            ifgt 27
        end local 2 // int length
        end local 1 // int blockType
        31: .line 550
            goto 0
        32: .line 593
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: java.io.EOFException
            pop
        33: .line 594
            iconst_0
            ireturn
        34: .line 595
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        35: .line 596
            new javax.imageio.IIOException
            dup
            ldc "I/O error locating image!"
            aload 1 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   36     0          this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            1   31     1     blockType  I
            4   14     2  packedFields  I
            6    7     3          bits  I
            9   14     3        length  I
           19   23     2        length  I
           27   31     2        length  I
           35   36     1             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    13      32  Class java.io.EOFException
          14    15      32  Class java.io.EOFException
          16    25      32  Class java.io.EOFException
          26    32      32  Class java.io.EOFException
           0    13      34  Class java.io.IOException
          14    15      34  Class java.io.IOException
          16    25      34  Class java.io.IOException
          26    32      34  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException

  private int locateImage(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 601
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readHeader:()V
         1: .line 605
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 608
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            iload 2 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 3 /* l */
        start local 3 // java.lang.Long l
         3: .line 609
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 3 /* l */
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
         4: .line 612
            goto 12
         5: .line 613
      StackMap locals: int java.lang.Long
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.skipImage:()Z
            ifne 9
         6: .line 614
            iinc 2 /* index */ -1
         7: .line 615
            iload 2 /* index */
         8: ireturn
         9: .line 618
      StackMap locals:
      StackMap stack:
            new java.lang.Long
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            invokespecial java.lang.Long.<init>:(J)V
            astore 4 /* l1 */
        start local 4 // java.lang.Long l1
        10: .line 619
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            aload 4 /* l1 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 620
            iinc 2 /* index */ 1
        end local 4 // java.lang.Long l1
        12: .line 612
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmplt 5
        end local 3 // java.lang.Long l
        end local 2 // int index
        13: .line 622
            goto 16
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int
      StackMap stack: java.io.IOException
        14: astore 2 /* e */
        start local 2 // java.io.IOException e
        15: .line 623
            new javax.imageio.IIOException
            dup
            ldc "Couldn't seek!"
            aload 2 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        16: .line 626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
            iload 1 /* imageIndex */
            if_icmpeq 18
        17: .line 627
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        18: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
        19: .line 630
            iload 1 /* imageIndex */
            ireturn
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   20     1  imageIndex  I
            2   13     2       index  I
            3   13     3           l  Ljava/lang/Long;
           10   12     4          l1  Ljava/lang/Long;
           15   16     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     8      14  Class java.io.IOException
           9    13      14  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private byte[] concatenateBlocks();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 635
            iconst_0
            newarray 8
            astore 1 /* data */
        start local 1 // byte[] data
         1: .line 637
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* length */
        start local 2 // int length
         2: .line 638
            iload 2 /* length */
            ifne 4
         3: .line 639
            goto 9
         4: .line 641
      StackMap locals: int
      StackMap stack:
            aload 1 /* data */
            arraylength
            iload 2 /* length */
            iadd
            newarray 8
            astore 3 /* newData */
        start local 3 // byte[] newData
         5: .line 642
            aload 1 /* data */
            iconst_0
            aload 3 /* newData */
            iconst_0
            aload 1 /* data */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 643
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 3 /* newData */
            aload 1 /* data */
            arraylength
            iload 2 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([BII)V
         7: .line 644
            aload 3 /* newData */
            astore 1 /* data */
        end local 3 // byte[] newData
        end local 2 // int length
         8: .line 636
            goto 1
         9: .line 647
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            areturn
        end local 1 // byte[] data
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            1   10     1     data  [B
            2    8     2   length  I
            5    8     3  newData  [B
    Exceptions:
      throws java.io.IOException

  private void readMetadata();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 652
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 653
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 658
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.imageio.plugins.gif.GIFImageMetadata
            dup
            invokespecial com.sun.imageio.plugins.gif.GIFImageMetadata.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         3: .line 660
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lstore 1 /* startPosition */
        start local 1 // long startPosition
         4: .line 662
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 3 /* blockType */
        start local 3 // int blockType
         5: .line 663
            iload 3 /* blockType */
            bipush 44
            if_icmpne 36
         6: .line 664
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         7: .line 665
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
         8: .line 664
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageLeftPosition:I
         9: .line 666
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        10: .line 667
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        11: .line 666
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageTopPosition:I
        12: .line 668
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
        13: .line 669
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
        14: .line 671
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 4 /* idPackedFields */
        start local 4 // int idPackedFields
        15: .line 673
            iload 4 /* idPackedFields */
            sipush 128
            iand
            ifeq 16
            iconst_1
            goto 17
      StackMap locals: int int
      StackMap stack:
        16: iconst_0
        17: .line 672
      StackMap locals:
      StackMap stack: int
            istore 5 /* localColorTableFlag */
        start local 5 // boolean localColorTableFlag
        18: .line 674
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            iload 4 /* idPackedFields */
            bipush 64
            iand
            ifeq 19
            iconst_1
            goto 20
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        19: iconst_0
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
        20: putfield com.sun.imageio.plugins.gif.GIFImageMetadata.interlaceFlag:Z
        21: .line 675
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            iload 4 /* idPackedFields */
            bipush 32
            iand
            ifeq 22
            iconst_1
            goto 23
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        22: iconst_0
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
        23: putfield com.sun.imageio.plugins.gif.GIFImageMetadata.sortFlag:Z
        24: .line 676
            iconst_1
            iload 4 /* idPackedFields */
            bipush 7
            iand
            iconst_1
            iadd
            ishl
            istore 6 /* numLCTEntries */
        start local 6 // int numLCTEntries
        25: .line 678
            iload 5 /* localColorTableFlag */
            ifeq 31
        26: .line 680
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        27: .line 681
            iconst_3
            iload 6 /* numLCTEntries */
            imul
            newarray 8
        28: .line 680
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
        29: .line 682
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
        30: .line 683
            goto 32
        31: .line 684
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
        32: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        33: .line 689
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lload 1 /* startPosition */
            lsub
            l2i
        34: .line 688
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadataLength:I
        35: .line 692
            return
        end local 6 // int numLCTEntries
        end local 5 // boolean localColorTableFlag
        end local 4 // int idPackedFields
        36: .line 693
      StackMap locals:
      StackMap stack:
            iload 3 /* blockType */
            bipush 33
            if_icmpne 127
        37: .line 694
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 4 /* label */
        start local 4 // int label
        38: .line 696
            iload 4 /* label */
            sipush 249
            if_icmpne 58
        39: .line 697
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        40: .line 698
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 5 /* gcePackedFields */
        start local 5 // int gcePackedFields
        41: .line 699
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        42: .line 700
            iload 5 /* gcePackedFields */
            iconst_2
            ishr
            iconst_3
            iand
        43: .line 699
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.disposalMethod:I
        44: .line 701
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        45: .line 702
            iload 5 /* gcePackedFields */
            iconst_2
            iand
            ifeq 46
            iconst_1
            goto 47
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        46: iconst_0
        47: .line 701
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.userInputFlag:Z
        48: .line 703
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        49: .line 704
            iload 5 /* gcePackedFields */
            iconst_1
            iand
            ifeq 50
            iconst_1
            goto 51
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        50: iconst_0
        51: .line 703
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorFlag:Z
        52: .line 706
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.delayTime:I
        53: .line 707
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        54: .line 708
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        55: .line 707
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorIndex:I
        56: .line 710
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        end local 5 // int gcePackedFields
        57: .line 711
            goto 4
      StackMap locals:
      StackMap stack:
        58: iload 4 /* label */
            iconst_1
            if_icmpne 87
        59: .line 712
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        60: .line 713
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.hasPlainTextExtension:Z
        61: .line 714
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        62: .line 715
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        63: .line 714
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridLeft:I
        64: .line 716
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        65: .line 717
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        66: .line 716
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridTop:I
        67: .line 718
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        68: .line 719
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        69: .line 718
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridWidth:I
        70: .line 720
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        71: .line 721
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        72: .line 720
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridHeight:I
        73: .line 722
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        74: .line 723
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        75: .line 722
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.characterCellWidth:I
        76: .line 724
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        77: .line 725
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        78: .line 724
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.characterCellHeight:I
        79: .line 726
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        80: .line 727
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        81: .line 726
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textForegroundColor:I
        82: .line 728
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        83: .line 729
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        84: .line 728
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textBackgroundColor:I
        85: .line 730
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.concatenateBlocks:()[B
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.text:[B
        86: .line 731
            goto 4
      StackMap locals:
      StackMap stack:
        87: iload 4 /* label */
            sipush 254
            if_icmpne 93
        88: .line 732
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.concatenateBlocks:()[B
            astore 5 /* comment */
        start local 5 // byte[] comment
        89: .line 733
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.comments:Ljava/util/List;
            ifnonnull 91
        90: .line 734
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.comments:Ljava/util/List;
        91: .line 736
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.comments:Ljava/util/List;
            aload 5 /* comment */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // byte[] comment
        92: .line 737
            goto 4
      StackMap locals:
      StackMap stack:
        93: iload 4 /* label */
            sipush 255
            if_icmpne 121
        94: .line 738
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 5 /* blockSize */
        start local 5 // int blockSize
        95: .line 739
            bipush 8
            newarray 8
            astore 6 /* applicationID */
        start local 6 // byte[] applicationID
        96: .line 740
            iconst_3
            newarray 8
            astore 7 /* authCode */
        start local 7 // byte[] authCode
        97: .line 743
            iload 5 /* blockSize */
            newarray 8
            astore 8 /* blockData */
        start local 8 // byte[] blockData
        98: .line 744
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 8 /* blockData */
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
        99: .line 746
            aload 0 /* this */
            aload 8 /* blockData */
            iconst_0
            aload 6 /* applicationID */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.copyData:([BI[B)I
            istore 9 /* offset */
        start local 9 // int offset
       100: .line 747
            aload 0 /* this */
            aload 8 /* blockData */
            iload 9 /* offset */
            aload 7 /* authCode */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.copyData:([BI[B)I
            istore 9 /* offset */
       101: .line 749
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.concatenateBlocks:()[B
            astore 10 /* applicationData */
        start local 10 // byte[] applicationData
       102: .line 751
            iload 9 /* offset */
            iload 5 /* blockSize */
            if_icmpge 111
       103: .line 752
            iload 5 /* blockSize */
            iload 9 /* offset */
            isub
            istore 11 /* len */
        start local 11 // int len
       104: .line 754
            iload 11 /* len */
            aload 10 /* applicationData */
            arraylength
            iadd
            newarray 8
       105: .line 753
            astore 12 /* data */
        start local 12 // byte[] data
       106: .line 756
            aload 8 /* blockData */
            iload 9 /* offset */
            aload 12 /* data */
            iconst_0
            iload 11 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       107: .line 757
            aload 10 /* applicationData */
            iconst_0
            aload 12 /* data */
            iload 11 /* len */
       108: .line 758
            aload 10 /* applicationData */
            arraylength
       109: .line 757
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       110: .line 760
            aload 12 /* data */
            astore 10 /* applicationData */
        end local 12 // byte[] data
        end local 11 // int len
       111: .line 764
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int byte[] byte[] byte[] int byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationIDs:Ljava/util/List;
            ifnonnull 117
       112: .line 765
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationIDs:Ljava/util/List;
       113: .line 766
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
       114: .line 767
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
       115: .line 766
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.authenticationCodes:Ljava/util/List;
       116: .line 768
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationData:Ljava/util/List;
       117: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationIDs:Ljava/util/List;
            aload 6 /* applicationID */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       118: .line 771
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.authenticationCodes:Ljava/util/List;
            aload 7 /* authCode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       119: .line 772
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationData:Ljava/util/List;
            aload 10 /* applicationData */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // byte[] applicationData
        end local 9 // int offset
        end local 8 // byte[] blockData
        end local 7 // byte[] authCode
        end local 6 // byte[] applicationID
        end local 5 // int blockSize
       120: .line 773
            goto 4
       121: .line 775
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int
      StackMap stack:
            iconst_0
            istore 5 /* length */
        start local 5 // int length
       122: .line 777
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 5 /* length */
       123: .line 778
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 5 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
       124: .line 779
            iload 5 /* length */
       125: .line 776
            ifgt 122
        end local 5 // int length
        end local 4 // int label
       126: .line 781
            goto 4
      StackMap locals:
      StackMap stack:
       127: iload 3 /* blockType */
            bipush 59
            if_icmpne 131
       128: .line 782
            new java.lang.IndexOutOfBoundsException
            dup
       129: .line 783
            ldc "Attempt to read past end of image sequence!"
       130: .line 782
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
       131: .line 785
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected block type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       132: .line 786
            iload 3 /* blockType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       133: .line 785
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int blockType
        end local 1 // long startPosition
       134: .line 789
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: javax.imageio.IIOException
            astore 1 /* iioe */
        start local 1 // javax.imageio.IIOException iioe
       135: .line 790
            aload 1 /* iioe */
            athrow
        end local 1 // javax.imageio.IIOException iioe
       136: .line 791
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
       137: .line 792
            new javax.imageio.IIOException
            dup
            ldc "I/O error reading image metadata!"
            aload 1 /* ioe */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException ioe
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  138     0                 this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            4  134     1        startPosition  J
            5  134     3            blockType  I
           15   36     4       idPackedFields  I
           18   36     5  localColorTableFlag  Z
           25   36     6        numLCTEntries  I
           38  126     4                label  I
           41   57     5      gcePackedFields  I
           89   92     5              comment  [B
           95  120     5            blockSize  I
           96  120     6        applicationID  [B
           97  120     7             authCode  [B
           98  120     8            blockData  [B
          100  120     9               offset  I
          102  120    10      applicationData  [B
          104  111    11                  len  I
          106  111    12                 data  [B
          122  126     5               length  I
          135  136     1                 iioe  Ljavax/imageio/IIOException;
          137  138     1                  ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    35     134  Class javax.imageio.IIOException
          36   134     134  Class javax.imageio.IIOException
           2    35     136  Class java.io.IOException
          36   134     136  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException

  private int copyData(byte[], int, byte[]);
    descriptor: ([BI[B)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // byte[] src
        start local 2 // int offset
        start local 3 // byte[] dst
         0: .line 797
            aload 3 /* dst */
            arraylength
            istore 4 /* len */
        start local 4 // int len
         1: .line 798
            aload 1 /* src */
            arraylength
            iload 2 /* offset */
            isub
            istore 5 /* rest */
        start local 5 // int rest
         2: .line 799
            iload 4 /* len */
            iload 5 /* rest */
            if_icmple 4
         3: .line 800
            iload 5 /* rest */
            istore 4 /* len */
         4: .line 802
      StackMap locals: int int
      StackMap stack:
            aload 1 /* src */
            iload 2 /* offset */
            aload 3 /* dst */
            iconst_0
            iload 4 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 803
            iload 2 /* offset */
            iload 4 /* len */
            iadd
            ireturn
        end local 5 // int rest
        end local 4 // int len
        end local 3 // byte[] dst
        end local 2 // int offset
        end local 1 // byte[] src
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1     src  [B
            0    6     2  offset  I
            0    6     3     dst  [B
            1    6     4     len  I
            2    6     5    rest  I
    MethodParameters:
        Name  Flags
      src     
      offset  
      dst     

  private void startPass(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int pass
         0: .line 807
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateListeners:Ljava/util/List;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.interlaceFlag:Z
            ifne 2
         1: .line 808
      StackMap locals:
      StackMap stack:
            return
         2: .line 811
      StackMap locals:
      StackMap stack:
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceOffset:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            istore 2 /* y */
        start local 2 // int y
         3: .line 812
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceIncrement:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            istore 3 /* yStep */
        start local 3 // int yStep
         4: .line 815
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
         5: .line 816
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationOffset:Ljava/awt/Point;
         6: .line 817
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
         7: .line 818
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
         8: .line 819
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
         9: .line 820
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
        10: .line 819
            iadd
        11: .line 820
            iconst_1
        12: .line 819
            isub
        13: .line 821
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
        14: .line 822
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
        15: .line 821
            iadd
        16: .line 822
            iconst_1
        17: .line 821
            isub
        18: .line 823
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
        19: .line 824
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
        20: .line 825
            iconst_0
        21: .line 826
            iload 2 /* y */
        22: .line 827
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
        23: .line 828
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
            iload 3 /* yStep */
            iadd
            iconst_1
            isub
            iload 3 /* yStep */
            idiv
        24: .line 829
            iconst_1
        25: .line 830
            iload 3 /* yStep */
        26: .line 815
            invokestatic com.sun.imageio.plugins.common.ReaderUtil.computeUpdatedPixels:(Ljava/awt/Rectangle;Ljava/awt/Point;IIIIIIIIIIII)[I
        27: .line 814
            astore 4 /* vals */
        start local 4 // int[] vals
        28: .line 833
            aload 0 /* this */
            aload 4 /* vals */
            iconst_1
            iaload
            putfield com.sun.imageio.plugins.gif.GIFImageReader.updateMinY:I
        29: .line 834
            aload 0 /* this */
            aload 4 /* vals */
            iconst_5
            iaload
            putfield com.sun.imageio.plugins.gif.GIFImageReader.updateYStep:I
        30: .line 837
            iconst_1
            newarray 10
            astore 5 /* bands */
        start local 5 // int[] bands
        31: .line 839
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        32: .line 840
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        33: .line 841
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMinProgressivePass:I
        34: .line 842
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
        35: .line 843
            iconst_0
        36: .line 844
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateMinY:I
        37: .line 845
            iconst_1
        38: .line 846
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateYStep:I
        39: .line 847
            aload 5 /* bands */
        40: .line 839
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processPassStarted:(Ljava/awt/image/BufferedImage;IIIIIII[I)V
        41: .line 848
            return
        end local 5 // int[] bands
        end local 4 // int[] vals
        end local 3 // int yStep
        end local 2 // int y
        end local 1 // int pass
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   42     0   this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   42     1   pass  I
            3   42     2      y  I
            4   42     3  yStep  I
           28   42     4   vals  [I
           31   42     5  bands  [I
    MethodParameters:
      Name  Flags
      pass  

  public java.awt.image.BufferedImage read(int, javax.imageio.ImageReadParam);
    descriptor: (ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=20, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
        start local 2 // javax.imageio.ImageReadParam param
         0: .line 852
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 853
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         3: .line 857
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 3 /* index */
        start local 3 // int index
         4: .line 858
            iload 3 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 6
         5: .line 859
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "imageIndex out of bounds!"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 862
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.clearAbortRequest:()V
         7: .line 863
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         8: .line 866
            aload 2 /* param */
            ifnonnull 10
         9: .line 867
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getDefaultReadParam:()Ljavax/imageio/ImageReadParam;
            astore 2 /* param */
        10: .line 871
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getImageTypes:(I)Ljava/util/Iterator;
            astore 4 /* imageTypes */
        start local 4 // java.util.Iterator imageTypes
        11: .line 872
            aload 0 /* this */
            aload 2 /* param */
        12: .line 873
            aload 4 /* imageTypes */
        13: .line 874
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
        14: .line 875
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
        15: .line 872
            invokestatic com.sun.imageio.plugins.gif.GIFImageReader.getDestination:(Ljavax/imageio/ImageReadParam;Ljava/util/Iterator;II)Ljava/awt/image/BufferedImage;
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        16: .line 876
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
            iconst_0
            iconst_0
            invokevirtual java.awt.image.BufferedImage.getWritableTile:(II)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
        17: .line 877
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
        18: .line 878
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
        19: .line 879
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
        20: .line 880
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        21: .line 881
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        22: .line 882
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        23: .line 887
            aload 0 /* this */
            new java.awt.Rectangle
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
        24: .line 888
            aload 0 /* this */
            new java.awt.Rectangle
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
        25: .line 889
            aload 2 /* param */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        26: .line 890
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
        27: .line 889
            invokestatic com.sun.imageio.plugins.gif.GIFImageReader.computeRegions:(Ljavax/imageio/ImageReadParam;IILjava/awt/image/BufferedImage;Ljava/awt/Rectangle;Ljava/awt/Rectangle;)V
        28: .line 891
            aload 0 /* this */
            new java.awt.Point
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
        29: .line 892
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            invokespecial java.awt.Point.<init>:(II)V
        30: .line 891
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destinationOffset:Ljava/awt/Point;
        31: .line 894
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceXSubsampling:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
        32: .line 895
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceYSubsampling:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
        33: .line 896
            aload 0 /* this */
        34: .line 897
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceMinProgressivePass:()I
            iconst_0
            invokestatic java.lang.Math.max:(II)I
        35: .line 896
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMinProgressivePass:I
        36: .line 898
            aload 0 /* this */
        37: .line 899
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceMaxProgressivePass:()I
            iconst_3
            invokestatic java.lang.Math.min:(II)I
        38: .line 898
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
        39: .line 901
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
        40: .line 902
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            isub
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
            idiv
            iadd
        41: .line 901
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        42: .line 903
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.computeDecodeThisRow:()V
        43: .line 906
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageStarted:(I)V
        44: .line 907
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.startPass:(I)V
        45: .line 909
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            newarray 8
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
        46: .line 913
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
        47: .line 915
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            iconst_1
            if_icmplt 48
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            bipush 8
            if_icmple 49
        48: .line 916
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.IIOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad code size:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
        50: .line 921
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            istore 5 /* left */
        start local 5 // int left
        51: .line 922
            iconst_0
            istore 6 /* off */
        start local 6 // int off
        52: .line 923
            goto 56
        53: .line 924
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iload 6 /* off */
            iload 5 /* left */
            invokeinterface javax.imageio.stream.ImageInputStream.read:([BII)I
            istore 7 /* nbytes */
        start local 7 // int nbytes
        54: .line 925
            iload 5 /* left */
            iload 7 /* nbytes */
            isub
            istore 5 /* left */
        55: .line 926
            iload 6 /* off */
            iload 7 /* nbytes */
            iadd
            istore 6 /* off */
        end local 7 // int nbytes
        56: .line 923
      StackMap locals:
      StackMap stack:
            iload 5 /* left */
            ifgt 53
        57: .line 929
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
        58: .line 930
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
        59: .line 931
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        60: .line 932
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        61: .line 935
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.initNext32Bits:()V
        62: .line 937
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            putfield com.sun.imageio.plugins.gif.GIFImageReader.clearCode:I
        63: .line 938
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.clearCode:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
        64: .line 940
            iconst_0
            istore 8 /* oldCode */
        start local 8 // int oldCode
        65: .line 942
            sipush 4096
            newarray 10
            astore 9 /* prefix */
        start local 9 // int[] prefix
        66: .line 943
            sipush 4096
            newarray 8
            astore 10 /* suffix */
        start local 10 // byte[] suffix
        67: .line 944
            sipush 4096
            newarray 8
            astore 11 /* initial */
        start local 11 // byte[] initial
        68: .line 945
            sipush 4096
            newarray 10
            astore 12 /* length */
        start local 12 // int[] length
        69: .line 946
            sipush 4096
            newarray 8
            astore 13 /* string */
        start local 13 // byte[] string
        70: .line 948
            aload 0 /* this */
            aload 9 /* prefix */
            aload 10 /* suffix */
            aload 11 /* initial */
            aload 12 /* length */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.initializeStringTable:([I[B[B[I)V
        71: .line 949
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            iconst_2
            iadd
            istore 14 /* tableIndex */
        start local 14 // int tableIndex
        72: .line 950
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            iconst_1
            iadd
            istore 15 /* codeSize */
        start local 15 // int codeSize
        73: .line 951
            iconst_1
            iload 15 /* codeSize */
            ishl
            iconst_1
            isub
            istore 16 /* codeMask */
        start local 16 // int codeMask
        74: .line 953
            goto 117
        75: .line 954
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator int int top int int[] byte[] byte[] int[] byte[] int int int
      StackMap stack:
            aload 0 /* this */
            iload 15 /* codeSize */
            iload 16 /* codeMask */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getCode:(II)I
            istore 7 /* code */
        start local 7 // int code
        76: .line 956
            iload 7 /* code */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.clearCode:I
            if_icmpne 86
        77: .line 957
            aload 0 /* this */
            aload 9 /* prefix */
            aload 10 /* suffix */
            aload 11 /* initial */
            aload 12 /* length */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.initializeStringTable:([I[B[B[I)V
        78: .line 958
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            iconst_2
            iadd
            istore 14 /* tableIndex */
        79: .line 959
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            iconst_1
            iadd
            istore 15 /* codeSize */
        80: .line 960
            iconst_1
            iload 15 /* codeSize */
            ishl
            iconst_1
            isub
            istore 16 /* codeMask */
        81: .line 962
            aload 0 /* this */
            iload 15 /* codeSize */
            iload 16 /* codeMask */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getCode:(II)I
            istore 7 /* code */
        82: .line 963
            iload 7 /* code */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
            if_icmpne 107
        83: .line 965
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageComplete:()V
        84: .line 966
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        85: areturn
        86: .line 968
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator int int int int int[] byte[] byte[] int[] byte[] int int int
      StackMap stack:
            iload 7 /* code */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
            if_icmpne 90
        87: .line 970
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageComplete:()V
        88: .line 971
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        89: areturn
        90: .line 974
      StackMap locals:
      StackMap stack:
            iload 7 /* code */
            iload 14 /* tableIndex */
            if_icmpge 93
        91: .line 975
            iload 7 /* code */
            istore 17 /* newSuffixIndex */
        start local 17 // int newSuffixIndex
        92: .line 976
            goto 96
        end local 17 // int newSuffixIndex
        93: .line 977
      StackMap locals:
      StackMap stack:
            iload 8 /* oldCode */
            istore 17 /* newSuffixIndex */
        start local 17 // int newSuffixIndex
        94: .line 978
            iload 7 /* code */
            iload 14 /* tableIndex */
            if_icmpeq 96
        95: .line 981
            aload 0 /* this */
            ldc "Out-of-sequence code!"
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processWarningOccurred:(Ljava/lang/String;)V
        96: .line 985
      StackMap locals: int
      StackMap stack:
            iload 14 /* tableIndex */
            istore 18 /* ti */
        start local 18 // int ti
        97: .line 986
            iload 8 /* oldCode */
            istore 19 /* oc */
        start local 19 // int oc
        98: .line 988
            aload 9 /* prefix */
            iload 18 /* ti */
            iload 19 /* oc */
            iastore
        99: .line 989
            aload 10 /* suffix */
            iload 18 /* ti */
            aload 11 /* initial */
            iload 17 /* newSuffixIndex */
            baload
            bastore
       100: .line 990
            aload 11 /* initial */
            iload 18 /* ti */
            aload 11 /* initial */
            iload 19 /* oc */
            baload
            bastore
       101: .line 991
            aload 12 /* length */
            iload 18 /* ti */
            aload 12 /* length */
            iload 19 /* oc */
            iaload
            iconst_1
            iadd
            iastore
       102: .line 993
            iinc 14 /* tableIndex */ 1
       103: .line 994
            iload 14 /* tableIndex */
            iconst_1
            iload 15 /* codeSize */
            ishl
            if_icmpne 107
       104: .line 995
            iload 14 /* tableIndex */
            sipush 4096
            if_icmpge 107
       105: .line 996
            iinc 15 /* codeSize */ 1
       106: .line 997
            iconst_1
            iload 15 /* codeSize */
            ishl
            iconst_1
            isub
            istore 16 /* codeMask */
        end local 19 // int oc
        end local 18 // int ti
        end local 17 // int newSuffixIndex
       107: .line 1002
      StackMap locals:
      StackMap stack:
            iload 7 /* code */
            istore 17 /* c */
        start local 17 // int c
       108: .line 1003
            aload 12 /* length */
            iload 17 /* c */
            iaload
            istore 18 /* len */
        start local 18 // int len
       109: .line 1004
            iload 18 /* len */
            iconst_1
            isub
            istore 19 /* i */
        start local 19 // int i
       110: goto 114
       111: .line 1005
      StackMap locals: int int int
      StackMap stack:
            aload 13 /* string */
            iload 19 /* i */
            aload 10 /* suffix */
            iload 17 /* c */
            baload
            bastore
       112: .line 1006
            aload 9 /* prefix */
            iload 17 /* c */
            iaload
            istore 17 /* c */
       113: .line 1004
            iinc 19 /* i */ -1
      StackMap locals:
      StackMap stack:
       114: iload 19 /* i */
            ifge 111
        end local 19 // int i
       115: .line 1009
            aload 0 /* this */
            aload 13 /* string */
            iload 18 /* len */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.outputPixels:([BI)V
       116: .line 1010
            iload 7 /* code */
            istore 8 /* oldCode */
        end local 18 // int len
        end local 17 // int c
        end local 7 // int code
       117: .line 953
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator int int top int int[] byte[] byte[] int[] byte[] int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.abortRequested:()Z
            ifeq 75
       118: .line 1013
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processReadAborted:()V
       119: .line 1014
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
       120: areturn
        end local 16 // int codeMask
        end local 15 // int codeSize
        end local 14 // int tableIndex
        end local 13 // byte[] string
        end local 12 // int[] length
        end local 11 // byte[] initial
        end local 10 // byte[] suffix
        end local 9 // int[] prefix
        end local 8 // int oldCode
        end local 6 // int off
        end local 5 // int left
       121: .line 1015
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
       122: .line 1016
            new javax.imageio.IIOException
            dup
            ldc "I/O error reading image!"
            aload 5 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException e
        end local 4 // java.util.Iterator imageTypes
        end local 3 // int index
        end local 2 // javax.imageio.ImageReadParam param
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  123     0            this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0  123     1      imageIndex  I
            0  123     2           param  Ljavax/imageio/ImageReadParam;
            4  123     3           index  I
           11  123     4      imageTypes  Ljava/util/Iterator;
           51  121     5            left  I
           52  121     6             off  I
           54   56     7          nbytes  I
           76  117     7            code  I
           65  121     8         oldCode  I
           66  121     9          prefix  [I
           67  121    10          suffix  [B
           68  121    11         initial  [B
           69  121    12          length  [I
           70  121    13          string  [B
           72  121    14      tableIndex  I
           73  121    15        codeSize  I
           74  121    16        codeMask  I
           92   93    17  newSuffixIndex  I
           94  107    17  newSuffixIndex  I
           97  107    18              ti  I
           98  107    19              oc  I
          108  117    17               c  I
          109  117    18             len  I
          110  115    19               i  I
          122  123     5               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          46    85     121  Class java.io.IOException
          86    89     121  Class java.io.IOException
          90   120     121  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  
      param       

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 1025
            aload 0 /* this */
            invokespecial javax.imageio.ImageReader.reset:()V
         1: .line 1026
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.resetStreamSettings:()V
         2: .line 1027
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private void resetStreamSettings();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 1033
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
         1: .line 1034
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
         2: .line 1035
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
         3: .line 1036
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         4: .line 1037
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
         5: .line 1038
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
         6: .line 1041
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
         7: .line 1042
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
         8: .line 1043
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
         9: .line 1045
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
        10: .line 1046
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        11: .line 1048
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        12: .line 1049
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
        13: .line 1050
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
        14: .line 1051
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
        15: .line 1052
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
        16: .line 1053
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        17: .line 1054
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        18: .line 1055
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        19: .line 1057
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
        20: .line 1058
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private static synchronized byte[] getDefaultPalette();
    descriptor: ()[B
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=7, args_size=0
         0: .line 1063
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            ifnonnull 20
         1: .line 1064
            new java.awt.image.BufferedImage
            dup
            iconst_1
            iconst_1
         2: .line 1065
            bipush 13
         3: .line 1064
            invokespecial java.awt.image.BufferedImage.<init>:(III)V
            astore 0 /* img */
        start local 0 // java.awt.image.BufferedImage img
         4: .line 1066
            aload 0 /* img */
            invokevirtual java.awt.image.BufferedImage.getColorModel:()Ljava/awt/image/ColorModel;
            checkcast java.awt.image.IndexColorModel
            astore 1 /* icm */
        start local 1 // java.awt.image.IndexColorModel icm
         5: .line 1068
            aload 1 /* icm */
            invokevirtual java.awt.image.IndexColorModel.getMapSize:()I
            istore 2 /* size */
        start local 2 // int size
         6: .line 1069
            iload 2 /* size */
            newarray 8
            astore 3 /* r */
        start local 3 // byte[] r
         7: .line 1070
            iload 2 /* size */
            newarray 8
            astore 4 /* g */
        start local 4 // byte[] g
         8: .line 1071
            iload 2 /* size */
            newarray 8
            astore 5 /* b */
        start local 5 // byte[] b
         9: .line 1072
            aload 1 /* icm */
            aload 3 /* r */
            invokevirtual java.awt.image.IndexColorModel.getReds:([B)V
        10: .line 1073
            aload 1 /* icm */
            aload 4 /* g */
            invokevirtual java.awt.image.IndexColorModel.getGreens:([B)V
        11: .line 1074
            aload 1 /* icm */
            aload 5 /* b */
            invokevirtual java.awt.image.IndexColorModel.getBlues:([B)V
        12: .line 1076
            iload 2 /* size */
            iconst_3
            imul
            newarray 8
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
        13: .line 1078
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        14: goto 19
        15: .line 1079
      StackMap locals: java.awt.image.BufferedImage java.awt.image.IndexColorModel int byte[] byte[] byte[] int
      StackMap stack:
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            iconst_3
            iload 6 /* i */
            imul
            iconst_0
            iadd
            aload 3 /* r */
            iload 6 /* i */
            baload
            bastore
        16: .line 1080
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            iconst_3
            iload 6 /* i */
            imul
            iconst_1
            iadd
            aload 4 /* g */
            iload 6 /* i */
            baload
            bastore
        17: .line 1081
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            iconst_3
            iload 6 /* i */
            imul
            iconst_2
            iadd
            aload 5 /* b */
            iload 6 /* i */
            baload
            bastore
        18: .line 1078
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 2 /* size */
            if_icmplt 15
        end local 6 // int i
        end local 5 // byte[] b
        end local 4 // byte[] g
        end local 3 // byte[] r
        end local 2 // int size
        end local 1 // java.awt.image.IndexColorModel icm
        end local 0 // java.awt.image.BufferedImage img
        20: .line 1084
      StackMap locals:
      StackMap stack:
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4   20     0   img  Ljava/awt/image/BufferedImage;
            5   20     1   icm  Ljava/awt/image/IndexColorModel;
            6   20     2  size  I
            7   20     3     r  [B
            8   20     4     g  [B
            9   20     5     b  [B
           14   20     6     i  I
}
SourceFile: "GIFImageReader.java"