public class com.sun.imageio.plugins.jpeg.JPEGImageWriter extends javax.imageio.ImageWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.jpeg.JPEGImageWriter
  super_class: javax.imageio.ImageWriter
{
  private boolean debug;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private javax.imageio.stream.ImageOutputStream ios;
    descriptor: Ljavax/imageio/stream/ImageOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.Raster srcRas;
    descriptor: Ljava/awt/image/Raster;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.WritableRaster raster;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0002) ACC_PRIVATE

  private boolean indexed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.IndexColorModel indexCM;
    descriptor: Ljava/awt/image/IndexColorModel;
    flags: (0x0002) ACC_PRIVATE

  private boolean convertTosRGB;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.WritableRaster converted;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0002) ACC_PRIVATE

  private boolean isAlphaPremultiplied;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.ColorModel srcCM;
    descriptor: Ljava/awt/image/ColorModel;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<? extends java.awt.image.BufferedImage> thumbnails;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<+Ljava/awt/image/BufferedImage;>;

  private java.awt.color.ICC_Profile iccProfile;
    descriptor: Ljava/awt/color/ICC_Profile;
    flags: (0x0002) ACC_PRIVATE

  private int sourceXOffset;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int sourceYOffset;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int sourceWidth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int[] srcBands;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int sourceHeight;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int currentImage;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.ColorConvertOp convertOp;
    descriptor: Ljava/awt/image/ColorConvertOp;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGQTable[] streamQTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGQTable;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] streamDCHuffmanTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] streamACHuffmanTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE

  private boolean ignoreJFIF;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean forceJFIF;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean ignoreAdobe;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int newAdobeTransform;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean writeDefaultJFIF;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean writeAdobe;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private com.sun.imageio.plugins.jpeg.JPEGMetadata metadata;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    flags: (0x0002) ACC_PRIVATE

  private boolean sequencePrepared;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int numScans;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object disposerReferent;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private sun.java2d.DisposerRecord disposerRecord;
    descriptor: Lsun/java2d/DisposerRecord;
    flags: (0x0002) ACC_PRIVATE

  protected static final int WARNING_DEST_IGNORED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  protected static final int WARNING_STREAM_METADATA_IGNORED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  protected static final int WARNING_DEST_METADATA_COMP_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  protected static final int WARNING_DEST_METADATA_JFIF_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  protected static final int WARNING_DEST_METADATA_ADOBE_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  protected static final int WARNING_IMAGE_METADATA_JFIF_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  protected static final int WARNING_IMAGE_METADATA_ADOBE_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  protected static final int WARNING_METADATA_NOT_JPEG_FOR_RASTER;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  protected static final int WARNING_NO_BANDS_ON_INDEXED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  protected static final int WARNING_ILLEGAL_THUMBNAIL;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  protected static final int WARNING_IGNORING_THUMBS;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  protected static final int WARNING_FORCING_JFIF;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  protected static final int WARNING_THUMB_CLIPPED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  protected static final int WARNING_METADATA_ADJUSTED_FOR_THUMB;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  protected static final int WARNING_NO_RGB_THUMB_AS_INDEXED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  protected static final int WARNING_NO_GRAY_THUMB_AS_INDEXED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

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

  static final java.awt.Dimension[] preferredThumbSizes;
    descriptor: [Ljava/awt/Dimension;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private java.lang.Thread theThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private int theLockCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock cbLock;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 178
            new com.sun.imageio.plugins.jpeg.JPEGImageWriter$1
            dup
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageWriter$1.<init>:()V
         1: .line 177
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         2: .line 184
            ldc Ljavax/imageio/plugins/jpeg/JPEGQTable;
         3: .line 185
            ldc Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
         4: .line 184
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.initWriterIDs:(Ljava/lang/Class;Ljava/lang/Class;)V
         5: .line 312
            iconst_2
            anewarray java.awt.Dimension
            dup
            iconst_0
            new java.awt.Dimension
            dup
            iconst_1
            iconst_1
            invokespecial java.awt.Dimension.<init>:(II)V
            aastore
            dup
            iconst_1
         6: .line 313
            new java.awt.Dimension
            dup
            sipush 255
            sipush 255
            invokespecial java.awt.Dimension.<init>:(II)V
            aastore
         7: .line 312
            putstatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.preferredThumbSizes:[Ljava/awt/Dimension;
         8: .line 313
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.imageio.spi.ImageWriterSpi);
    descriptor: (Ljavax/imageio/spi/ImageWriterSpi;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.spi.ImageWriterSpi originator
         0: .line 191
            aload 0 /* this */
            aload 1 /* originator */
            invokespecial javax.imageio.ImageWriter.<init>:(Ljavax/imageio/spi/ImageWriterSpi;)V
         1: .line 72
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
         2: .line 80
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
         3: .line 84
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         4: .line 87
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
         5: .line 90
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
         6: .line 96
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
         7: .line 97
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
         8: .line 99
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
         9: .line 100
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
        10: .line 102
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        11: .line 103
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        12: .line 108
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
        13: .line 113
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
        14: .line 115
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
        15: .line 116
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
        16: .line 117
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
        17: .line 118
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        18: .line 119
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
        19: .line 122
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
        20: .line 124
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertOp:Ljava/awt/image/ColorConvertOp;
        21: .line 126
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        22: .line 127
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        23: .line 128
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        24: .line 131
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
        25: .line 132
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
        26: .line 133
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
        27: .line 134
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        28: .line 135
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
        29: .line 136
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
        30: .line 137
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        31: .line 139
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
        32: .line 141
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        33: .line 144
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerReferent:Ljava/lang/Object;
        34: .line 1876
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
        35: .line 1877
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
        36: .line 1911
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock
            dup
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
        37: .line 192
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.initJPEGImageWriter:()J
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
        38: .line 193
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord.<init>:(J)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
        39: .line 194
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerReferent:Ljava/lang/Object;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
            invokestatic sun.java2d.Disposer.addRecord:(Ljava/lang/Object;Lsun/java2d/DisposerRecord;)V
        40: .line 195
            return
        end local 1 // javax.imageio.spi.ImageWriterSpi originator
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   41     1  originator  Ljavax/imageio/spi/ImageWriterSpi;
    MethodParameters:
            Name  Flags
      originator  

  public void setOutput(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.lang.Object output
         0: .line 198
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 200
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 202
            aload 0 /* this */
            aload 1 /* output */
            invokespecial javax.imageio.ImageWriter.setOutput:(Ljava/lang/Object;)V
         3: .line 203
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetInternalState:()V
         4: .line 204
            aload 0 /* this */
            aload 1 /* output */
            checkcast javax.imageio.stream.ImageOutputStream
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         5: .line 206
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setDest:(J)V
         6: .line 207
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 208
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         9: .line 209
            aload 2
            athrow
        10: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        11: .line 210
            return
        end local 1 // java.lang.Object output
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   12     1  output  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
        Name  Flags
      output  

  public javax.imageio.ImageWriteParam getDefaultWriteParam();
    descriptor: ()Ljavax/imageio/ImageWriteParam;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 213
            new javax.imageio.plugins.jpeg.JPEGImageWriteParam
            dup
            aconst_null
            invokespecial javax.imageio.plugins.jpeg.JPEGImageWriteParam.<init>:(Ljava/util/Locale;)V
            areturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata(javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageWriteParam param
         0: .line 217
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 219
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 1 /* param */
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            astore 3
         2: .line 221
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 219
            aload 3
            areturn
         4: .line 220
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 221
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 222
            aload 2
            athrow
        end local 1 // javax.imageio.ImageWriteParam param
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    7     1  param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
       Name  Flags
      param  

  public javax.imageio.metadata.IIOMetadata getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 228
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 230
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 1 /* imageType */
            aload 2 /* param */
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            astore 4
         2: .line 232
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 230
            aload 4
            areturn
         4: .line 231
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 232
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 233
            aload 3
            athrow
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    7     1  imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    7     2      param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
           Name  Flags
      imageType  
      param      

  public javax.imageio.metadata.IIOMetadata convertStreamMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 242
            aload 1 /* inData */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 4
         1: .line 243
            aload 1 /* inData */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 3 /* jpegData */
        start local 3 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         2: .line 244
            aload 3 /* jpegData */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifeq 4
         3: .line 245
            aload 1 /* inData */
            areturn
        end local 3 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         4: .line 248
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    5     1    inData  Ljavax/imageio/metadata/IIOMetadata;
            0    5     2     param  Ljavax/imageio/ImageWriteParam;
            2    4     3  jpegData  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    MethodParameters:
        Name  Flags
      inData  
      param   

  public javax.imageio.metadata.IIOMetadata convertImageMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageTypeSpecifier imageType
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 255
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 257
            aload 0 /* this */
            aload 1 /* inData */
            aload 2 /* imageType */
            aload 3 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertImageMetadataOnThread:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
            astore 5
         2: .line 259
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 257
            aload 5
            areturn
         4: .line 258
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         5: .line 259
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 260
            aload 4
            athrow
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.ImageTypeSpecifier imageType
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    7     1     inData  Ljavax/imageio/metadata/IIOMetadata;
            0    7     2  imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    7     3      param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
           Name  Flags
      inData     
      imageType  
      param      

  private javax.imageio.metadata.IIOMetadata convertImageMetadataOnThread(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageTypeSpecifier imageType
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 268
            aload 1 /* inData */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 5
         1: .line 269
            aload 1 /* inData */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 4 /* jpegData */
        start local 4 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         2: .line 270
            aload 4 /* jpegData */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifne 4
         3: .line 271
            aload 1 /* inData */
            areturn
         4: .line 275
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aconst_null
            areturn
        end local 4 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         5: .line 280
      StackMap locals:
      StackMap stack:
            aload 1 /* inData */
            invokevirtual javax.imageio.metadata.IIOMetadata.isStandardMetadataFormatSupported:()Z
            ifeq 19
         6: .line 282
            ldc "javax_imageio_1.0"
         7: .line 281
            astore 4 /* formatName */
        start local 4 // java.lang.String formatName
         8: .line 283
            aload 1 /* inData */
            aload 4 /* formatName */
            invokevirtual javax.imageio.metadata.IIOMetadata.getAsTree:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            astore 5 /* tree */
        start local 5 // org.w3c.dom.Node tree
         9: .line 284
            aload 5 /* tree */
            ifnull 19
        10: .line 285
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 2 /* imageType */
        11: .line 286
            aload 3 /* param */
        12: .line 287
            aload 0 /* this */
        13: .line 285
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            astore 6 /* jpegData */
        start local 6 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
        14: .line 289
            aload 6 /* jpegData */
            aload 4 /* formatName */
            aload 5 /* tree */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.setFromTree:(Ljava/lang/String;Lorg/w3c/dom/Node;)V
        15: .line 290
            goto 18
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.ImageTypeSpecifier javax.imageio.ImageWriteParam java.lang.String org.w3c.dom.Node com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack: javax.imageio.metadata.IIOInvalidTreeException
        16: pop
        17: .line 293
            aconst_null
            areturn
        18: .line 296
      StackMap locals:
      StackMap stack:
            aload 6 /* jpegData */
            areturn
        end local 6 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
        end local 5 // org.w3c.dom.Node tree
        end local 4 // java.lang.String formatName
        19: .line 299
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.ImageTypeSpecifier imageType
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   20     1      inData  Ljavax/imageio/metadata/IIOMetadata;
            0   20     2   imageType  Ljavax/imageio/ImageTypeSpecifier;
            0   20     3       param  Ljavax/imageio/ImageWriteParam;
            2    5     4    jpegData  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            8   19     4  formatName  Ljava/lang/String;
            9   19     5        tree  Lorg/w3c/dom/Node;
           14   19     6    jpegData  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
      Exception table:
        from    to  target  type
          14    15      16  Class javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
           Name  Flags
      inData     
      imageType  
      param      

  public int getNumThumbnailsSupported(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam, javax.imageio.metadata.IIOMetadata, javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
        start local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
         0: .line 306
            aload 0 /* this */
            aload 1 /* imageType */
            aload 2 /* param */
            aload 3 /* streamMetadata */
            aload 4 /* imageMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.jfifOK:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)Z
            ifeq 2
         1: .line 307
            ldc 2147483647
            ireturn
         2: .line 309
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
        end local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    3     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    3     2           param  Ljavax/imageio/ImageWriteParam;
            0    3     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    3     4   imageMetadata  Ljavax/imageio/metadata/IIOMetadata;
    MethodParameters:
                Name  Flags
      imageType       
      param           
      streamMetadata  
      imageMetadata   

  public java.awt.Dimension[] getPreferredThumbnailSizes(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam, javax.imageio.metadata.IIOMetadata, javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)[Ljava/awt/Dimension;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
        start local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
         0: .line 319
            aload 0 /* this */
            aload 1 /* imageType */
            aload 2 /* param */
            aload 3 /* streamMetadata */
            aload 4 /* imageMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.jfifOK:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)Z
            ifeq 2
         1: .line 320
            getstatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.preferredThumbSizes:[Ljava/awt/Dimension;
            invokevirtual java.awt.Dimension[].clone:()Ljava/lang/Object;
            checkcast java.awt.Dimension[]
            areturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
        end local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    3     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    3     2           param  Ljavax/imageio/ImageWriteParam;
            0    3     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    3     4   imageMetadata  Ljavax/imageio/metadata/IIOMetadata;
    MethodParameters:
                Name  Flags
      imageType       
      param           
      streamMetadata  
      imageMetadata   

  private boolean jfifOK(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam, javax.imageio.metadata.IIOMetadata, javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
        start local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
         0: .line 330
            aload 1 /* imageType */
            ifnull 3
         1: .line 331
            aload 1 /* imageType */
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifne 3
         2: .line 332
            iconst_0
            ireturn
         3: .line 334
      StackMap locals:
      StackMap stack:
            aload 4 /* imageMetadata */
            ifnull 16
         4: .line 335
            aconst_null
            astore 5 /* metadata */
        start local 5 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
         5: .line 336
            aload 4 /* imageMetadata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 8
         6: .line 337
            aload 4 /* imageMetadata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 5 /* metadata */
         7: .line 338
            goto 12
         8: .line 339
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aload 0 /* this */
            aload 4 /* imageMetadata */
         9: .line 340
            aload 1 /* imageType */
        10: .line 341
            aload 2 /* param */
        11: .line 339
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertImageMetadata:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 5 /* metadata */
        12: .line 344
      StackMap locals:
      StackMap stack:
            aload 5 /* metadata */
        13: .line 345
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
        14: .line 344
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            ifnonnull 16
        15: .line 346
            iconst_0
            ireturn
        end local 5 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        16: .line 349
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
        end local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   17     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0   17     2           param  Ljavax/imageio/ImageWriteParam;
            0   17     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0   17     4   imageMetadata  Ljavax/imageio/metadata/IIOMetadata;
            5   16     5        metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    MethodParameters:
                Name  Flags
      imageType       
      param           
      streamMetadata  
      imageMetadata   

  public boolean canWriteRasters();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 353
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public void write(javax.imageio.metadata.IIOMetadata, javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 2 // javax.imageio.IIOImage image
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 359
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 361
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 363
            aload 0 /* this */
            aload 1 /* streamMetadata */
            aload 2 /* image */
            aload 3 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
         3: .line 364
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 4
         5: .line 365
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 366
            aload 4
            athrow
         7: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 367
            return
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.IIOImage image
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    9     1  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    9     2           image  Ljavax/imageio/IIOImage;
            0    9     3           param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  
      image           
      param           

  private void writeOnThread(javax.imageio.metadata.IIOMetadata, javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=28, locals=52, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 2 // javax.imageio.IIOImage image
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 373
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 374
            new java.lang.IllegalStateException
            dup
            ldc "Output has not been set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 377
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            ifnonnull 4
         3: .line 378
            new java.lang.IllegalArgumentException
            dup
            ldc "image is null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 382
      StackMap locals:
      StackMap stack:
            aload 1 /* streamMetadata */
            ifnull 6
         5: .line 383
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         6: .line 387
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.hasRaster:()Z
            istore 4 /* rasterOnly */
        start local 4 // boolean rasterOnly
         7: .line 389
            aconst_null
            astore 5 /* rimage */
        start local 5 // java.awt.image.RenderedImage rimage
         8: .line 390
            iload 4 /* rasterOnly */
            ifeq 11
         9: .line 391
            aload 0 /* this */
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getRaster:()Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        10: .line 392
            goto 32
        11: .line 393
      StackMap locals: int java.awt.image.RenderedImage
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getRenderedImage:()Ljava/awt/image/RenderedImage;
            astore 5 /* rimage */
        12: .line 394
            aload 5 /* rimage */
            instanceof java.awt.image.BufferedImage
            ifeq 15
        13: .line 396
            aload 0 /* this */
            aload 5 /* rimage */
            checkcast java.awt.image.BufferedImage
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        14: .line 397
            goto 32
      StackMap locals:
      StackMap stack:
        15: aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getNumXTiles:()I
            iconst_1
            if_icmpne 31
        16: .line 398
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getNumYTiles:()I
            iconst_1
            if_icmpne 31
        17: .line 401
            aload 0 /* this */
            aload 5 /* rimage */
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getMinTileX:()I
        18: .line 402
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getMinTileY:()I
        19: .line 401
            invokeinterface java.awt.image.RenderedImage.getTile:(II)Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        20: .line 406
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getWidth:()I
            if_icmpne 22
        21: .line 407
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getHeight:()I
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getHeight:()I
            if_icmpeq 32
        22: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
        23: .line 410
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
        24: .line 411
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getWidth:()I
        25: .line 412
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getHeight:()I
        26: .line 413
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
        27: .line 414
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
        28: .line 415
            aconst_null
        29: .line 409
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        30: .line 417
            goto 32
        31: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getData:()Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        32: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getNumBands:()I
            istore 6 /* numSrcBands */
        start local 6 // int numSrcBands
        33: .line 427
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
        34: .line 428
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
        35: .line 429
            aconst_null
            astore 7 /* cm */
        start local 7 // java.awt.image.ColorModel cm
        36: .line 430
            aconst_null
            astore 8 /* cs */
        start local 8 // java.awt.color.ColorSpace cs
        37: .line 431
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        38: .line 432
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        39: .line 433
            iload 4 /* rasterOnly */
            ifne 50
        40: .line 434
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            astore 7 /* cm */
        41: .line 435
            aload 7 /* cm */
            ifnull 50
        42: .line 436
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
        43: .line 437
            aload 7 /* cm */
            instanceof java.awt.image.IndexColorModel
            ifeq 47
        44: .line 438
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
        45: .line 439
            aload 0 /* this */
            aload 7 /* cm */
            checkcast java.awt.image.IndexColorModel
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
        46: .line 440
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            istore 6 /* numSrcBands */
        47: .line 442
      StackMap locals: int java.awt.image.ColorModel java.awt.color.ColorSpace
      StackMap stack:
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.isAlphaPremultiplied:()Z
            ifeq 50
        48: .line 443
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        49: .line 444
            aload 0 /* this */
            aload 7 /* cm */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        50: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            iload 6 /* numSrcBands */
            iconst_1
            isub
            aaload
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        51: .line 450
            iload 6 /* numSrcBands */
            istore 9 /* numBandsUsed */
        start local 9 // int numBandsUsed
        52: .line 453
            aload 3 /* param */
            ifnull 64
        53: .line 454
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceBands:()[I
            astore 10 /* sBands */
        start local 10 // int[] sBands
        54: .line 455
            aload 10 /* sBands */
            ifnull 64
        55: .line 456
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 58
        56: .line 457
            aload 0 /* this */
            bipush 8
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
        57: .line 458
            goto 64
        58: .line 459
      StackMap locals: int int[]
      StackMap stack:
            aload 0 /* this */
            aload 10 /* sBands */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        59: .line 460
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
            arraylength
            istore 9 /* numBandsUsed */
        60: .line 461
            iload 9 /* numBandsUsed */
            iload 6 /* numSrcBands */
            if_icmple 64
        61: .line 462
            new javax.imageio.IIOException
            dup
        62: .line 463
            ldc "ImageWriteParam specifies too many source bands"
        63: .line 462
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // int[] sBands
        64: .line 469
      StackMap locals:
      StackMap stack:
            iload 9 /* numBandsUsed */
            iload 6 /* numSrcBands */
            if_icmpeq 65
            iconst_1
            goto 66
      StackMap locals:
      StackMap stack:
        65: iconst_0
      StackMap locals:
      StackMap stack: int
        66: istore 10 /* usingBandSubset */
        start local 10 // boolean usingBandSubset
        67: .line 470
            iload 4 /* rasterOnly */
            ifne 68
            iload 10 /* usingBandSubset */
            ifne 68
            iconst_1
            goto 69
      StackMap locals: int
      StackMap stack:
        68: iconst_0
      StackMap locals:
      StackMap stack: int
        69: istore 11 /* fullImage */
        start local 11 // boolean fullImage
        70: .line 472
            aconst_null
            astore 12 /* bandSizes */
        start local 12 // int[] bandSizes
        71: .line 473
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifne 82
        72: .line 474
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.awt.image.SampleModel.getSampleSize:()[I
            astore 12 /* bandSizes */
        73: .line 476
            iload 10 /* usingBandSubset */
            ifeq 89
        74: .line 477
            iload 9 /* numBandsUsed */
            newarray 10
            astore 13 /* temp */
        start local 13 // int[] temp
        75: .line 478
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        76: goto 79
        77: .line 479
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] int[] int
      StackMap stack:
            aload 13 /* temp */
            iload 14 /* i */
            aload 12 /* bandSizes */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
            iload 14 /* i */
            iaload
            iaload
            iastore
        78: .line 478
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        79: iload 14 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 77
        end local 14 // int i
        80: .line 481
            aload 13 /* temp */
            astore 12 /* bandSizes */
        end local 13 // int[] temp
        81: .line 483
            goto 89
        82: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.awt.image.SampleModel.getSampleSize:()[I
            astore 13 /* tempSize */
        start local 13 // int[] tempSize
        83: .line 485
            iload 6 /* numSrcBands */
            newarray 10
            astore 12 /* bandSizes */
        84: .line 486
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        85: goto 88
        86: .line 487
      StackMap locals: int[] int
      StackMap stack:
            aload 12 /* bandSizes */
            iload 14 /* i */
            aload 13 /* tempSize */
            iconst_0
            iaload
            iastore
        87: .line 486
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        88: iload 14 /* i */
            iload 6 /* numSrcBands */
            if_icmplt 86
        end local 14 // int i
        end local 13 // int[] tempSize
        89: .line 491
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        90: goto 96
        91: .line 496
      StackMap locals: int
      StackMap stack:
            aload 12 /* bandSizes */
            iload 13 /* i */
            iaload
            ifle 92
            aload 12 /* bandSizes */
            iload 13 /* i */
            iaload
            bipush 8
            if_icmple 93
        92: .line 497
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Illegal band size: should be 0 < size <= 8"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        93: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 95
        94: .line 505
            aload 12 /* bandSizes */
            iload 13 /* i */
            bipush 8
            iastore
        95: .line 491
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        96: iload 13 /* i */
            aload 12 /* bandSizes */
            arraylength
            if_icmplt 91
        end local 13 // int i
        97: .line 509
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 109
        98: .line 510
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "numSrcBands is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* numSrcBands */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        99: .line 511
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "numBandsUsed is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* numBandsUsed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       100: .line 512
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "usingBandSubset is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* usingBandSubset */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       101: .line 513
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "fullImage is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* fullImage */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       102: .line 514
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Band sizes:"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       103: .line 515
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       104: goto 107
       105: .line 516
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* bandSizes */
            iload 13 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       106: .line 515
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       107: iload 13 /* i */
            aload 12 /* bandSizes */
            arraylength
            if_icmplt 105
        end local 13 // int i
       108: .line 518
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
       109: .line 522
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13 /* destType */
        start local 13 // javax.imageio.ImageTypeSpecifier destType
       110: .line 523
            aload 3 /* param */
            ifnull 115
       111: .line 524
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getDestinationType:()Ljavax/imageio/ImageTypeSpecifier;
            astore 13 /* destType */
       112: .line 526
            iload 11 /* fullImage */
            ifeq 115
            aload 13 /* destType */
            ifnull 115
       113: .line 527
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       114: .line 528
            aconst_null
            astore 13 /* destType */
       115: .line 534
      StackMap locals: javax.imageio.ImageTypeSpecifier
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       116: .line 535
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       117: .line 536
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getWidth:()I
            istore 14 /* imageWidth */
        start local 14 // int imageWidth
       118: .line 537
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getHeight:()I
            istore 15 /* imageHeight */
        start local 15 // int imageHeight
       119: .line 538
            aload 0 /* this */
            iload 14 /* imageWidth */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       120: .line 539
            aload 0 /* this */
            iload 15 /* imageHeight */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       121: .line 540
            iconst_1
            istore 16 /* periodX */
        start local 16 // int periodX
       122: .line 541
            iconst_1
            istore 17 /* periodY */
        start local 17 // int periodY
       123: .line 542
            iconst_0
            istore 18 /* gridX */
        start local 18 // int gridX
       124: .line 543
            iconst_0
            istore 19 /* gridY */
        start local 19 // int gridY
       125: .line 544
            aconst_null
            astore 20 /* qTables */
        start local 20 // javax.imageio.plugins.jpeg.JPEGQTable[] qTables
       126: .line 545
            aconst_null
            astore 21 /* DCHuffmanTables */
        start local 21 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] DCHuffmanTables
       127: .line 546
            aconst_null
            astore 22 /* ACHuffmanTables */
        start local 22 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] ACHuffmanTables
       128: .line 547
            iconst_0
            istore 23 /* optimizeHuffman */
        start local 23 // boolean optimizeHuffman
       129: .line 548
            aconst_null
            astore 24 /* jparam */
        start local 24 // javax.imageio.plugins.jpeg.JPEGImageWriteParam jparam
       130: .line 549
            iconst_0
            istore 25 /* progressiveMode */
        start local 25 // int progressiveMode
       131: .line 551
            aload 3 /* param */
            ifnull 171
       132: .line 553
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceRegion:()Ljava/awt/Rectangle;
            astore 26 /* sourceRegion */
        start local 26 // java.awt.Rectangle sourceRegion
       133: .line 554
            aload 26 /* sourceRegion */
            ifnull 144
       134: .line 555
            new java.awt.Rectangle
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       135: .line 556
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       136: .line 557
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       137: .line 558
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       138: .line 555
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            astore 27 /* imageBounds */
        start local 27 // java.awt.Rectangle imageBounds
       139: .line 559
            aload 26 /* sourceRegion */
            aload 27 /* imageBounds */
            invokevirtual java.awt.Rectangle.intersection:(Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
            astore 26 /* sourceRegion */
       140: .line 560
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.x:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       141: .line 561
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.y:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       142: .line 562
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.width:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       143: .line 563
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.height:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
        end local 27 // java.awt.Rectangle imageBounds
       144: .line 566
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int java.awt.Rectangle
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
            iadd
            iload 14 /* imageWidth */
            if_icmple 146
       145: .line 567
            aload 0 /* this */
            iload 14 /* imageWidth */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       146: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iadd
            iload 15 /* imageHeight */
            if_icmple 148
       147: .line 570
            aload 0 /* this */
            iload 15 /* imageHeight */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       148: .line 573
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceXSubsampling:()I
            istore 16 /* periodX */
       149: .line 574
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceYSubsampling:()I
            istore 17 /* periodY */
       150: .line 575
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingXOffset:()I
            istore 18 /* gridX */
       151: .line 576
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingYOffset:()I
            istore 19 /* gridY */
       152: .line 578
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getCompressionMode:()I
            tableswitch { // 0 - 2
                    0: 153
                    1: 164
                    2: 154
              default: 167
          }
       153: .line 580
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "JPEG compression cannot be disabled"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
       154: .line 582
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getCompressionQuality:()F
            fstore 27 /* quality */
        start local 27 // float quality
       155: .line 583
            fload 27 /* quality */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.convertToLinearQuality:(F)F
            fstore 27 /* quality */
       156: .line 584
            iconst_2
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 20 /* qTables */
       157: .line 585
            aload 20 /* qTables */
            iconst_0
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K1Luminance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
       158: .line 586
            fload 27 /* quality */
            iconst_1
       159: .line 585
            invokevirtual javax.imageio.plugins.jpeg.JPEGQTable.getScaledInstance:(FZ)Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       160: .line 587
            aload 20 /* qTables */
            iconst_1
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K2Chrominance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
       161: .line 588
            fload 27 /* quality */
            iconst_1
       162: .line 587
            invokevirtual javax.imageio.plugins.jpeg.JPEGQTable.getScaledInstance:(FZ)Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       163: .line 589
            goto 167
        end local 27 // float quality
       164: .line 591
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 20 /* qTables */
       165: .line 592
            aload 20 /* qTables */
            iconst_0
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K1Div2Luminance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       166: .line 593
            aload 20 /* qTables */
            iconst_1
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K2Div2Chrominance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       167: .line 598
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getProgressiveMode:()I
            istore 25 /* progressiveMode */
       168: .line 600
            aload 3 /* param */
            instanceof javax.imageio.plugins.jpeg.JPEGImageWriteParam
            ifeq 171
       169: .line 601
            aload 3 /* param */
            checkcast javax.imageio.plugins.jpeg.JPEGImageWriteParam
            astore 24 /* jparam */
       170: .line 602
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getOptimizeHuffmanTables:()Z
            istore 23 /* optimizeHuffman */
        end local 26 // java.awt.Rectangle sourceRegion
       171: .line 607
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getMetadata:()Ljavax/imageio/metadata/IIOMetadata;
            astore 26 /* mdata */
        start local 26 // javax.imageio.metadata.IIOMetadata mdata
       172: .line 608
            aload 26 /* mdata */
            ifnull 190
       173: .line 609
            aload 26 /* mdata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 180
       174: .line 610
            aload 0 /* this */
            aload 26 /* mdata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       175: .line 611
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 190
       176: .line 612
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       177: .line 613
            ldc "We have metadata, and it's JPEG metadata"
       178: .line 612
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       179: .line 615
            goto 190
       180: .line 616
      StackMap locals: javax.imageio.metadata.IIOMetadata
      StackMap stack:
            iload 4 /* rasterOnly */
            ifne 189
       181: .line 617
            aload 13 /* destType */
            astore 27 /* type */
        start local 27 // javax.imageio.ImageTypeSpecifier type
       182: .line 618
            aload 27 /* type */
            ifnonnull 184
       183: .line 619
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
            astore 27 /* type */
       184: .line 621
      StackMap locals: javax.imageio.ImageTypeSpecifier
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 26 /* mdata */
       185: .line 622
            aload 27 /* type */
       186: .line 623
            aload 3 /* param */
       187: .line 621
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertImageMetadata:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        end local 27 // javax.imageio.ImageTypeSpecifier type
       188: .line 624
            goto 190
       189: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 7
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       190: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       191: .line 633
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
       192: .line 634
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       193: .line 635
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
       194: .line 636
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
       195: .line 639
            iconst_0
            istore 27 /* inCsType */
        start local 27 // int inCsType
       196: .line 640
            iconst_0
            istore 28 /* outCsType */
        start local 28 // int outCsType
       197: .line 642
            aconst_null
            astore 29 /* jfif */
        start local 29 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
       198: .line 643
            aconst_null
            astore 30 /* adobe */
        start local 30 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
       199: .line 644
            aconst_null
            astore 31 /* sof */
        start local 31 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
       200: .line 646
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 210
       201: .line 647
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       202: .line 648
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       203: .line 647
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
            astore 29 /* jfif */
       204: .line 649
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       205: .line 650
            ldc Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
            iconst_1
       206: .line 649
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.AdobeMarkerSegment
            astore 30 /* adobe */
       207: .line 651
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       208: .line 652
            ldc Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            iconst_1
       209: .line 651
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.SOFMarkerSegment
            astore 31 /* sof */
       210: .line 655
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       211: .line 656
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
       212: .line 657
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
       213: .line 659
            aload 13 /* destType */
            ifnull 240
       214: .line 660
            iload 9 /* numBandsUsed */
            aload 13 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getNumBands:()I
            if_icmpeq 218
       215: .line 661
            new javax.imageio.IIOException
            dup
       216: .line 662
            ldc "Number of source bands != number of destination bands"
       217: .line 661
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
       218: .line 664
      StackMap locals:
      StackMap stack:
            aload 13 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
       219: .line 666
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 227
       220: .line 667
            aload 0 /* this */
            aload 31 /* sof */
            iload 9 /* numBandsUsed */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkSOFBands:(Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;I)V
       221: .line 669
            aload 0 /* this */
            aload 29 /* jfif */
            aload 13 /* destType */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkJFIF:(Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
       222: .line 671
            aload 29 /* jfif */
            ifnull 225
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
            ifne 225
       223: .line 672
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 225
       224: .line 673
            aload 0 /* this */
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       225: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 30 /* adobe */
            aload 13 /* destType */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkAdobe:(Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
       226: .line 678
            goto 237
       227: .line 680
      StackMap locals:
      StackMap stack:
            aload 13 /* destType */
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifeq 232
       228: .line 681
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
       229: .line 683
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 236
       230: .line 684
            aload 0 /* this */
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       231: .line 686
            goto 236
       232: .line 687
      StackMap locals:
      StackMap stack:
            aload 13 /* destType */
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.transformForType:(Ljavax/imageio/ImageTypeSpecifier;Z)I
            istore 32 /* transform */
        start local 32 // int transform
       233: .line 688
            iload 32 /* transform */
            iconst_m1
            if_icmpeq 236
       234: .line 689
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
       235: .line 690
            aload 0 /* this */
            iload 32 /* transform */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        end local 32 // int transform
       236: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 13 /* destType */
            aconst_null
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       237: .line 696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* destType */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljavax/imageio/ImageTypeSpecifier;)I
            istore 27 /* inCsType */
       238: .line 697
            aload 0 /* this */
            aload 13 /* destType */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljavax/imageio/ImageTypeSpecifier;)I
            istore 28 /* outCsType */
       239: .line 698
            goto 372
       240: .line 699
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 254
       241: .line 700
            iload 11 /* fullImage */
            ifeq 372
       242: .line 702
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
       243: .line 703
            aload 3 /* param */
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
       244: .line 702
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       245: .line 704
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       246: .line 705
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       247: .line 704
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            ifnull 251
       248: .line 706
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
       249: .line 707
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 251
       250: .line 708
            aload 0 /* this */
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       251: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/RenderedImage;)I
            istore 27 /* inCsType */
       252: .line 713
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/RenderedImage;)I
            istore 28 /* outCsType */
       253: .line 717
            goto 372
       254: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 31 /* sof */
            iload 9 /* numBandsUsed */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkSOFBands:(Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;I)V
       255: .line 719
            iload 11 /* fullImage */
            ifeq 372
       256: .line 723
            new javax.imageio.ImageTypeSpecifier
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
       257: .line 725
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/RenderedImage;)I
            istore 27 /* inCsType */
       258: .line 727
            aload 7 /* cm */
            ifnull 372
       259: .line 728
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            istore 32 /* alpha */
        start local 32 // boolean alpha
       260: .line 729
            aload 8 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            lookupswitch { // 3
                    5: 276
                    6: 261
                   13: 333
              default: 372
          }
       261: .line 731
      StackMap locals: int
      StackMap stack:
            iload 32 /* alpha */
            ifne 264
       262: .line 732
            iconst_1
            istore 28 /* outCsType */
       263: .line 733
            goto 269
       264: .line 734
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 269
       265: .line 735
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       266: .line 736
            aload 0 /* this */
       267: .line 737
            iconst_5
       268: .line 736
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       269: .line 741
      StackMap locals:
      StackMap stack:
            aload 30 /* adobe */
            ifnull 372
       270: .line 742
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            ifeq 372
       271: .line 743
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       272: .line 744
            aload 0 /* this */
       273: .line 745
            bipush 6
       274: .line 744
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       275: .line 747
            goto 372
       276: .line 749
      StackMap locals:
      StackMap stack:
            iload 32 /* alpha */
            ifne 309
       277: .line 750
            aload 29 /* jfif */
            ifnull 286
       278: .line 751
            iconst_3
            istore 28 /* outCsType */
       279: .line 752
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifne 282
       280: .line 753
            aload 8 /* cs */
            instanceof java.awt.color.ICC_ColorSpace
            ifeq 372
       281: .line 754
            aload 29 /* jfif */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.iccSegment:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$ICCMarkerSegment;
            ifnull 372
       282: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       283: .line 756
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
       284: .line 755
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       285: .line 758
            goto 372
      StackMap locals:
      StackMap stack:
       286: aload 30 /* adobe */
            ifnull 298
       287: .line 759
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            tableswitch { // 0 - 1
                    0: 288
                    1: 290
              default: 292
          }
       288: .line 761
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 28 /* outCsType */
       289: .line 762
            goto 372
       290: .line 764
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 28 /* outCsType */
       291: .line 765
            goto 372
       292: .line 767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       293: .line 768
            bipush 6
       294: .line 767
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       295: .line 769
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       296: .line 770
            iconst_2
            istore 28 /* outCsType */
       297: .line 773
            goto 372
       298: .line 775
      StackMap locals:
      StackMap stack:
            aload 31 /* sof */
            invokevirtual com.sun.imageio.plugins.jpeg.SOFMarkerSegment.getIDencodedCSType:()I
            istore 33 /* outCS */
        start local 33 // int outCS
       299: .line 778
            iload 33 /* outCS */
            ifeq 302
       300: .line 779
            iload 33 /* outCS */
            istore 28 /* outCsType */
       301: .line 780
            goto 372
       302: .line 782
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.isSubsampled:([Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;)Z
       303: .line 781
            istore 34 /* subsampled */
        start local 34 // boolean subsampled
       304: .line 783
            iload 34 /* subsampled */
            ifeq 307
       305: .line 784
            iconst_3
            istore 28 /* outCsType */
       306: .line 785
            goto 372
       307: .line 786
      StackMap locals: int
      StackMap stack:
            iconst_2
            istore 28 /* outCsType */
        end local 34 // boolean subsampled
        end local 33 // int outCS
       308: .line 790
            goto 372
       309: .line 791
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 314
       310: .line 792
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       311: .line 793
            aload 0 /* this */
       312: .line 794
            iconst_5
       313: .line 793
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       314: .line 796
      StackMap locals:
      StackMap stack:
            aload 30 /* adobe */
            ifnull 322
       315: .line 797
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            ifeq 320
       316: .line 799
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       317: .line 800
            aload 0 /* this */
       318: .line 801
            bipush 6
       319: .line 800
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       320: .line 803
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 28 /* outCsType */
       321: .line 804
            goto 372
       322: .line 806
      StackMap locals:
      StackMap stack:
            aload 31 /* sof */
            invokevirtual com.sun.imageio.plugins.jpeg.SOFMarkerSegment.getIDencodedCSType:()I
            istore 33 /* outCS */
        start local 33 // int outCS
       323: .line 809
            iload 33 /* outCS */
            ifeq 326
       324: .line 810
            iload 33 /* outCS */
            istore 28 /* outCsType */
       325: .line 811
            goto 372
       326: .line 813
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.isSubsampled:([Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;)Z
       327: .line 812
            istore 34 /* subsampled */
        start local 34 // boolean subsampled
       328: .line 814
            iload 34 /* subsampled */
            ifeq 330
       329: .line 815
            bipush 7
            goto 331
      StackMap locals: int
      StackMap stack:
       330: bipush 6
       331: .line 814
      StackMap locals:
      StackMap stack: int
            istore 28 /* outCsType */
        end local 34 // boolean subsampled
        end local 33 // int outCS
       332: .line 819
            goto 372
       333: .line 821
      StackMap locals:
      StackMap stack:
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG$JCS.getYCC:()Ljava/awt/color/ColorSpace;
            if_acmpne 372
       334: .line 822
            iload 32 /* alpha */
            ifne 357
       335: .line 823
            aload 29 /* jfif */
            ifnull 345
       336: .line 824
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
       337: .line 825
            aload 0 /* this */
       338: .line 826
            new java.awt.image.ColorConvertOp
            dup
            aload 8 /* cs */
       339: .line 827
            getstatic com.sun.imageio.plugins.jpeg.JPEG$JCS.sRGB:Ljava/awt/color/ColorSpace;
       340: .line 828
            aconst_null
       341: .line 826
            invokespecial java.awt.image.ColorConvertOp.<init>:(Ljava/awt/color/ColorSpace;Ljava/awt/color/ColorSpace;Ljava/awt/RenderingHints;)V
       342: .line 825
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertOp:Ljava/awt/image/ColorConvertOp;
       343: .line 829
            iconst_3
            istore 28 /* outCsType */
       344: .line 830
            goto 372
      StackMap locals:
      StackMap stack:
       345: aload 30 /* adobe */
            ifnull 355
       346: .line 831
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
       347: .line 832
            iconst_1
       348: .line 831
            if_icmpeq 353
       349: .line 833
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       350: .line 834
            aload 0 /* this */
       351: .line 835
            bipush 6
       352: .line 834
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       353: .line 837
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 28 /* outCsType */
       354: .line 838
            goto 372
       355: .line 839
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 28 /* outCsType */
       356: .line 841
            goto 372
       357: .line 842
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 363
       358: .line 843
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       359: .line 844
            aload 0 /* this */
       360: .line 845
            iconst_5
       361: .line 844
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       362: .line 846
            goto 371
      StackMap locals:
      StackMap stack:
       363: aload 30 /* adobe */
            ifnull 371
       364: .line 847
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            ifeq 371
       365: .line 849
            aload 0 /* this */
       366: .line 850
            iconst_0
       367: .line 849
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       368: .line 851
            aload 0 /* this */
       369: .line 852
            bipush 6
       370: .line 851
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       371: .line 855
      StackMap locals:
      StackMap stack:
            bipush 10
            istore 28 /* outCsType */
        end local 32 // boolean alpha
       372: .line 864
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 32 /* metadataProgressive */
        start local 32 // boolean metadataProgressive
       373: .line 865
            aconst_null
            astore 33 /* scans */
        start local 33 // int[] scans
       374: .line 867
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 389
       375: .line 868
            aload 31 /* sof */
            ifnonnull 379
       376: .line 869
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       377: .line 870
            ldc Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            iconst_1
       378: .line 869
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.SOFMarkerSegment
            astore 31 /* sof */
       379: .line 872
      StackMap locals: int int[]
      StackMap stack:
            aload 31 /* sof */
            ifnull 385
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.tag:I
            sipush 194
            if_icmpne 385
       380: .line 873
            iconst_1
            istore 32 /* metadataProgressive */
       381: .line 874
            iload 25 /* progressiveMode */
            iconst_3
            if_icmpne 384
       382: .line 875
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            aload 31 /* sof */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectScans:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;)[I
            astore 33 /* scans */
       383: .line 876
            goto 385
       384: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
       385: .line 880
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnonnull 389
       386: .line 881
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       387: .line 882
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       388: .line 881
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
            astore 29 /* jfif */
       389: .line 886
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getThumbnails:()Ljava/util/List;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       390: .line 887
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getNumThumbnails:()I
            istore 34 /* numThumbs */
        start local 34 // int numThumbs
       391: .line 888
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
       392: .line 892
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifne 414
       393: .line 894
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 398
       394: .line 895
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       395: .line 896
            iload 34 /* numThumbs */
            ifeq 414
       396: .line 897
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       397: .line 899
            goto 414
       398: .line 903
      StackMap locals: int
      StackMap stack:
            iload 11 /* fullImage */
            ifne 404
       399: .line 904
            aload 29 /* jfif */
            ifnonnull 414
       400: .line 905
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       401: .line 906
            iload 34 /* numThumbs */
            ifeq 414
       402: .line 907
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       403: .line 910
            goto 414
       404: .line 911
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnonnull 414
       405: .line 913
            iload 28 /* outCsType */
            iconst_1
            if_icmpeq 407
       406: .line 914
            iload 28 /* outCsType */
            iconst_3
            if_icmpne 411
       407: .line 915
      StackMap locals:
      StackMap stack:
            iload 34 /* numThumbs */
            ifeq 414
       408: .line 916
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
       409: .line 917
            aload 0 /* this */
            bipush 11
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       410: .line 919
            goto 414
       411: .line 920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       412: .line 921
            iload 34 /* numThumbs */
            ifeq 414
       413: .line 922
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       414: .line 933
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 416
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifne 416
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
            ifne 416
       415: .line 932
            iconst_0
            goto 417
      StackMap locals:
      StackMap stack:
       416: iconst_1
      StackMap locals:
      StackMap stack: int
       417: istore 35 /* haveMetadata */
        start local 35 // boolean haveMetadata
       418: .line 938
            iconst_1
            istore 36 /* writeDQT */
        start local 36 // boolean writeDQT
       419: .line 939
            iconst_1
            istore 37 /* writeDHT */
        start local 37 // boolean writeDHT
       420: .line 942
            aconst_null
            astore 38 /* dqt */
        start local 38 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
       421: .line 943
            aconst_null
            astore 39 /* dht */
        start local 39 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
       422: .line 945
            iconst_0
            istore 40 /* restartInterval */
        start local 40 // int restartInterval
       423: .line 947
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 440
       424: .line 948
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       425: .line 949
            ldc Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
            iconst_1
       426: .line 948
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment
            astore 38 /* dqt */
       427: .line 950
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       428: .line 951
            ldc Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
            iconst_1
       429: .line 950
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            astore 39 /* dht */
       430: .line 953
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       431: .line 954
            ldc Lcom/sun/imageio/plugins/jpeg/DRIMarkerSegment;
            iconst_1
       432: .line 953
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.DRIMarkerSegment
       433: .line 952
            astore 41 /* dri */
        start local 41 // com.sun.imageio.plugins.jpeg.DRIMarkerSegment dri
       434: .line 955
            aload 41 /* dri */
            ifnull 436
       435: .line 956
            aload 41 /* dri */
            getfield com.sun.imageio.plugins.jpeg.DRIMarkerSegment.restartInterval:I
            istore 40 /* restartInterval */
       436: .line 959
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DRIMarkerSegment
      StackMap stack:
            aload 38 /* dqt */
            ifnonnull 438
       437: .line 960
            iconst_0
            istore 36 /* writeDQT */
       438: .line 962
      StackMap locals:
      StackMap stack:
            aload 39 /* dht */
            ifnonnull 440
       439: .line 963
            iconst_0
            istore 37 /* writeDHT */
        end local 41 // com.sun.imageio.plugins.jpeg.DRIMarkerSegment dri
       440: .line 969
      StackMap locals:
      StackMap stack:
            aload 20 /* qTables */
            ifnonnull 451
       441: .line 970
            aload 38 /* dqt */
            ifnull 444
       442: .line 971
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectQTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;)[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       443: .line 972
            goto 451
      StackMap locals:
      StackMap stack:
       444: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            ifnull 447
       445: .line 973
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       446: .line 974
            goto 451
      StackMap locals:
      StackMap stack:
       447: aload 24 /* jparam */
            ifnull 450
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.areTablesSet:()Z
            ifeq 450
       448: .line 975
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       449: .line 976
            goto 451
       450: .line 977
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       451: .line 983
      StackMap locals:
      StackMap stack:
            iload 23 /* optimizeHuffman */
            ifne 466
       452: .line 985
            aload 39 /* dht */
            ifnull 456
            iload 32 /* metadataProgressive */
            ifne 456
       453: .line 986
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       454: .line 987
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       455: .line 988
            goto 466
      StackMap locals:
      StackMap stack:
       456: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnull 460
       457: .line 989
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       458: .line 990
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       459: .line 991
            goto 466
      StackMap locals:
      StackMap stack:
       460: aload 24 /* jparam */
            ifnull 464
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.areTablesSet:()Z
            ifeq 464
       461: .line 992
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getDCHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       462: .line 993
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getACHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       463: .line 994
            goto 466
       464: .line 995
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       465: .line 996
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       466: .line 1001
      StackMap locals:
      StackMap stack:
            iload 9 /* numBandsUsed */
            newarray 10
            astore 41 /* componentIds */
        start local 41 // int[] componentIds
       467: .line 1002
            iload 9 /* numBandsUsed */
            newarray 10
            astore 42 /* HsamplingFactors */
        start local 42 // int[] HsamplingFactors
       468: .line 1003
            iload 9 /* numBandsUsed */
            newarray 10
            astore 43 /* VsamplingFactors */
        start local 43 // int[] VsamplingFactors
       469: .line 1004
            iload 9 /* numBandsUsed */
            newarray 10
            astore 44 /* QtableSelectors */
        start local 44 // int[] QtableSelectors
       470: .line 1005
            iconst_0
            istore 45 /* i */
        start local 45 // int i
       471: goto 477
       472: .line 1006
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int
      StackMap stack:
            aload 41 /* componentIds */
            iload 45 /* i */
            iload 45 /* i */
            iconst_1
            iadd
            iastore
       473: .line 1007
            aload 42 /* HsamplingFactors */
            iload 45 /* i */
            iconst_1
            iastore
       474: .line 1008
            aload 43 /* VsamplingFactors */
            iload 45 /* i */
            iconst_1
            iastore
       475: .line 1009
            aload 44 /* QtableSelectors */
            iload 45 /* i */
            iconst_0
            iastore
       476: .line 1005
            iinc 45 /* i */ 1
      StackMap locals:
      StackMap stack:
       477: iload 45 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 472
        end local 45 // int i
       478: .line 1013
            aload 31 /* sof */
            ifnull 488
       479: .line 1014
            iconst_0
            istore 45 /* i */
        start local 45 // int i
       480: goto 487
       481: .line 1015
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
            ifne 483
       482: .line 1016
            aload 41 /* componentIds */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.componentId:I
            iastore
       483: .line 1018
      StackMap locals:
      StackMap stack:
            aload 42 /* HsamplingFactors */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.HsamplingFactor:I
            iastore
       484: .line 1019
            aload 43 /* VsamplingFactors */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.VsamplingFactor:I
            iastore
       485: .line 1020
            aload 44 /* QtableSelectors */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.QtableSelector:I
            iastore
       486: .line 1014
            iinc 45 /* i */ 1
      StackMap locals:
      StackMap stack:
       487: iload 45 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 481
        end local 45 // int i
       488: .line 1024
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
            iload 18 /* gridX */
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       489: .line 1025
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 18 /* gridX */
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       490: .line 1026
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 19 /* gridY */
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       491: .line 1027
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            iload 19 /* gridY */
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       492: .line 1029
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 16 /* periodX */
            iadd
            iconst_1
            isub
            iload 16 /* periodX */
            idiv
            istore 45 /* destWidth */
        start local 45 // int destWidth
       493: .line 1030
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            iload 17 /* periodY */
            iadd
            iconst_1
            isub
            iload 17 /* periodY */
            idiv
            istore 46 /* destHeight */
        start local 46 // int destHeight
       494: .line 1033
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 9 /* numBandsUsed */
            imul
            istore 47 /* lineSize */
        start local 47 // int lineSize
       495: .line 1035
            new java.awt.image.DataBufferByte
            dup
            iload 47 /* lineSize */
            invokespecial java.awt.image.DataBufferByte.<init>:(I)V
            astore 48 /* buffer */
        start local 48 // java.awt.image.DataBufferByte buffer
       496: .line 1038
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            iload 9 /* numBandsUsed */
            iconst_1
            isub
            aaload
            astore 49 /* bandOffs */
        start local 49 // int[] bandOffs
       497: .line 1040
            aload 0 /* this */
            aload 48 /* buffer */
       498: .line 1041
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
       499: .line 1042
            iload 47 /* lineSize */
       500: .line 1043
            iload 9 /* numBandsUsed */
       501: .line 1044
            aload 49 /* bandOffs */
       502: .line 1045
            aconst_null
       503: .line 1040
            invokestatic java.awt.image.Raster.createInterleavedRaster:(Ljava/awt/image/DataBuffer;IIII[ILjava/awt/Point;)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
       504: .line 1049
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearAbortRequest:()V
       505: .line 1050
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
       506: .line 1052
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageStarted:(I)V
       507: .line 1053
            goto 511
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int int int java.awt.image.DataBufferByte int[]
      StackMap stack: java.lang.Throwable
       508: astore 50
       509: .line 1054
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       510: .line 1055
            aload 50
            athrow
       511: .line 1054
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       512: .line 1057
            iconst_0
            istore 50 /* aborted */
        start local 50 // boolean aborted
       513: .line 1059
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 516
       514: .line 1060
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "inCsType: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 27 /* inCsType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       515: .line 1061
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "outCsType: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 28 /* outCsType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       516: .line 1067
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
       517: .line 1068
            aload 48 /* buffer */
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
       518: .line 1069
            iload 27 /* inCsType */
            iload 28 /* outCsType */
       519: .line 1070
            iload 9 /* numBandsUsed */
       520: .line 1071
            aload 12 /* bandSizes */
       521: .line 1072
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       522: .line 1073
            iload 45 /* destWidth */
            iload 46 /* destHeight */
       523: .line 1074
            iload 16 /* periodX */
            iload 17 /* periodY */
       524: .line 1075
            aload 20 /* qTables */
       525: .line 1076
            iload 36 /* writeDQT */
       526: .line 1077
            aload 21 /* DCHuffmanTables */
       527: .line 1078
            aload 22 /* ACHuffmanTables */
       528: .line 1079
            iload 37 /* writeDHT */
       529: .line 1080
            iload 23 /* optimizeHuffman */
       530: .line 1081
            iload 25 /* progressiveMode */
            ifeq 531
            iconst_1
            goto 532
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int int int java.awt.image.DataBufferByte int[] int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter long byte[] int int int int[] int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] int javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int int
       531: iconst_0
       532: .line 1083
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int int int java.awt.image.DataBufferByte int[] int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter long byte[] int int int int[] int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] int javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int int int
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
       533: .line 1084
            aload 33 /* scans */
       534: .line 1085
            aload 41 /* componentIds */
       535: .line 1086
            aload 42 /* HsamplingFactors */
       536: .line 1087
            aload 43 /* VsamplingFactors */
       537: .line 1088
            aload 44 /* QtableSelectors */
       538: .line 1089
            iload 35 /* haveMetadata */
       539: .line 1090
            iload 40 /* restartInterval */
       540: .line 1067
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage:(J[BIII[IIIIII[Ljavax/imageio/plugins/jpeg/JPEGQTable;Z[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;ZZZI[I[I[I[I[IZI)Z
            istore 50 /* aborted */
       541: .line 1092
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
       542: .line 1094
            iload 50 /* aborted */
            ifeq 545
       543: .line 1095
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWriteAborted:()V
       544: .line 1096
            goto 546
       545: .line 1097
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageComplete:()V
       546: .line 1100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            invokeinterface javax.imageio.stream.ImageOutputStream.flush:()V
       547: .line 1101
            goto 551
      StackMap locals:
      StackMap stack: java.lang.Throwable
       548: astore 51
       549: .line 1102
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       550: .line 1103
            aload 51
            athrow
       551: .line 1102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       552: .line 1104
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
       553: .line 1105
            return
        end local 50 // boolean aborted
        end local 49 // int[] bandOffs
        end local 48 // java.awt.image.DataBufferByte buffer
        end local 47 // int lineSize
        end local 46 // int destHeight
        end local 45 // int destWidth
        end local 44 // int[] QtableSelectors
        end local 43 // int[] VsamplingFactors
        end local 42 // int[] HsamplingFactors
        end local 41 // int[] componentIds
        end local 40 // int restartInterval
        end local 39 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
        end local 38 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
        end local 37 // boolean writeDHT
        end local 36 // boolean writeDQT
        end local 35 // boolean haveMetadata
        end local 34 // int numThumbs
        end local 33 // int[] scans
        end local 32 // boolean metadataProgressive
        end local 31 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        end local 30 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
        end local 29 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        end local 28 // int outCsType
        end local 27 // int inCsType
        end local 26 // javax.imageio.metadata.IIOMetadata mdata
        end local 25 // int progressiveMode
        end local 24 // javax.imageio.plugins.jpeg.JPEGImageWriteParam jparam
        end local 23 // boolean optimizeHuffman
        end local 22 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] ACHuffmanTables
        end local 21 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] DCHuffmanTables
        end local 20 // javax.imageio.plugins.jpeg.JPEGQTable[] qTables
        end local 19 // int gridY
        end local 18 // int gridX
        end local 17 // int periodY
        end local 16 // int periodX
        end local 15 // int imageHeight
        end local 14 // int imageWidth
        end local 13 // javax.imageio.ImageTypeSpecifier destType
        end local 12 // int[] bandSizes
        end local 11 // boolean fullImage
        end local 10 // boolean usingBandSubset
        end local 9 // int numBandsUsed
        end local 8 // java.awt.color.ColorSpace cs
        end local 7 // java.awt.image.ColorModel cm
        end local 6 // int numSrcBands
        end local 5 // java.awt.image.RenderedImage rimage
        end local 4 // boolean rasterOnly
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.IIOImage image
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  554     0                 this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0  554     1       streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0  554     2                image  Ljavax/imageio/IIOImage;
            0  554     3                param  Ljavax/imageio/ImageWriteParam;
            7  554     4           rasterOnly  Z
            8  554     5               rimage  Ljava/awt/image/RenderedImage;
           33  554     6          numSrcBands  I
           36  554     7                   cm  Ljava/awt/image/ColorModel;
           37  554     8                   cs  Ljava/awt/color/ColorSpace;
           52  554     9         numBandsUsed  I
           54   64    10               sBands  [I
           67  554    10      usingBandSubset  Z
           70  554    11            fullImage  Z
           71  554    12            bandSizes  [I
           75   81    13                 temp  [I
           76   80    14                    i  I
           83   89    13             tempSize  [I
           85   89    14                    i  I
           90   97    13                    i  I
          104  108    13                    i  I
          110  554    13             destType  Ljavax/imageio/ImageTypeSpecifier;
          118  554    14           imageWidth  I
          119  554    15          imageHeight  I
          122  554    16              periodX  I
          123  554    17              periodY  I
          124  554    18                gridX  I
          125  554    19                gridY  I
          126  554    20              qTables  [Ljavax/imageio/plugins/jpeg/JPEGQTable;
          127  554    21      DCHuffmanTables  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
          128  554    22      ACHuffmanTables  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
          129  554    23      optimizeHuffman  Z
          130  554    24               jparam  Ljavax/imageio/plugins/jpeg/JPEGImageWriteParam;
          131  554    25      progressiveMode  I
          133  171    26         sourceRegion  Ljava/awt/Rectangle;
          139  144    27          imageBounds  Ljava/awt/Rectangle;
          155  164    27              quality  F
          172  554    26                mdata  Ljavax/imageio/metadata/IIOMetadata;
          182  188    27                 type  Ljavax/imageio/ImageTypeSpecifier;
          196  554    27             inCsType  I
          197  554    28            outCsType  I
          198  554    29                 jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
          199  554    30                adobe  Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
          200  554    31                  sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
          233  236    32            transform  I
          260  372    32                alpha  Z
          299  308    33                outCS  I
          304  308    34           subsampled  Z
          323  332    33                outCS  I
          328  332    34           subsampled  Z
          373  554    32  metadataProgressive  Z
          374  554    33                scans  [I
          391  554    34            numThumbs  I
          418  554    35         haveMetadata  Z
          419  554    36             writeDQT  Z
          420  554    37             writeDHT  Z
          421  554    38                  dqt  Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
          422  554    39                  dht  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
          423  554    40      restartInterval  I
          434  440    41                  dri  Lcom/sun/imageio/plugins/jpeg/DRIMarkerSegment;
          467  554    41         componentIds  [I
          468  554    42     HsamplingFactors  [I
          469  554    43     VsamplingFactors  [I
          470  554    44      QtableSelectors  [I
          471  478    45                    i  I
          480  488    45                    i  I
          493  554    45            destWidth  I
          494  554    46           destHeight  I
          495  554    47             lineSize  I
          496  554    48               buffer  Ljava/awt/image/DataBufferByte;
          497  554    49             bandOffs  [I
          513  554    50              aborted  Z
      Exception table:
        from    to  target  type
         506   508     508  any
         542   548     548  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  
      image           
      param           

  public boolean canWriteSequence();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1109
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public void prepareWriteSequence(javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
         0: .line 1114
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1116
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1118
            aload 0 /* this */
            aload 1 /* streamMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.prepareWriteSequenceOnThread:(Ljavax/imageio/metadata/IIOMetadata;)V
         3: .line 1119
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 1120
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1121
            aload 2
            athrow
         7: .line 1120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1122
            return
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    9     1  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
      Exception table:
        from    to  target  type
           1     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  

  private void prepareWriteSequenceOnThread(javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
         0: .line 1126
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 1127
            new java.lang.IllegalStateException
            dup
            ldc "Output has not been set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1139
      StackMap locals:
      StackMap stack:
            aload 1 /* streamMetadata */
            ifnull 39
         3: .line 1140
            aload 1 /* streamMetadata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 38
         4: .line 1143
            aload 1 /* streamMetadata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 2 /* jmeta */
        start local 2 // com.sun.imageio.plugins.jpeg.JPEGMetadata jmeta
         5: .line 1144
            aload 2 /* jmeta */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifne 9
         6: .line 1145
            new java.lang.IllegalArgumentException
            dup
         7: .line 1146
            ldc "Invalid stream metadata object."
         8: .line 1145
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1151
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            ifeq 13
        10: .line 1152
            new javax.imageio.IIOException
            dup
        11: .line 1153
            ldc "JPEG Stream metadata must precede all images"
        12: .line 1152
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifeq 15
        14: .line 1156
            new javax.imageio.IIOException
            dup
            ldc "Stream metadata already written!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* jmeta */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectQTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;)[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        16: .line 1162
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 20
        17: .line 1163
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "after collecting from stream metadata, streamQTables.length is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 1165
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1163
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 1167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            ifnonnull 22
        21: .line 1168
            aload 0 /* this */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        22: .line 1170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        23: .line 1171
            aload 0 /* this */
            aload 2 /* jmeta */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        24: .line 1170
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        25: .line 1172
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnonnull 27
        26: .line 1173
            aload 0 /* this */
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        27: .line 1175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        28: .line 1176
            aload 0 /* this */
            aload 2 /* jmeta */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        29: .line 1175
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        30: .line 1177
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnonnull 32
        31: .line 1178
            aload 0 /* this */
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        32: .line 1182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
        33: .line 1183
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        34: .line 1184
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        35: .line 1185
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        36: .line 1182
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeTables:(J[Ljavax/imageio/plugins/jpeg/JPEGQTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;)V
        end local 2 // com.sun.imageio.plugins.jpeg.JPEGMetadata jmeta
        37: .line 1186
            goto 39
        38: .line 1187
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Stream metadata must be JPEG metadata"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 1190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
        40: .line 1191
            return
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   41     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   41     1  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            5   37     2           jmeta  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  

  public void writeToSequence(javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.IIOImage image
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 1195
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1197
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1199
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifne 4
         3: .line 1200
            new java.lang.IllegalStateException
            dup
            ldc "sequencePrepared not called!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* image */
            aload 2 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.write:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
         5: .line 1204
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 1205
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1206
            aload 3
            athrow
         9: .line 1205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1207
            return
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.IIOImage image
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   11     1  image  Ljavax/imageio/IIOImage;
            0   11     2  param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      image  
      param  

  public void endWriteSequence();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1210
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1212
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1214
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifne 4
         3: .line 1215
            new java.lang.IllegalStateException
            dup
            ldc "sequencePrepared not called!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
         5: .line 1218
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1219
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1220
            aload 1
            athrow
         9: .line 1219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1221
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     6       6  any
    Exceptions:
      throws java.io.IOException

  public synchronized void abort();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1224
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1230
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.abort:()V
         2: .line 1231
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.abortWrite:(J)V
         3: .line 1232
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1233
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1234
            aload 1
            athrow
         7: .line 1233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1235
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     4       4  any

  protected synchronized void clearAbortRequest();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1239
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1241
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1242
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.abortRequested:()Z
            ifeq 10
         3: .line 1243
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.clearAbortRequest:()V
         4: .line 1245
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetWriter:(J)V
         5: .line 1247
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setDest:(J)V
         6: .line 1249
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 1
         8: .line 1250
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         9: .line 1251
            aload 1
            athrow
        10: .line 1250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        11: .line 1252
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     7       7  any

  private void resetInternalState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1256
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetWriter:(J)V
         1: .line 1259
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
         2: .line 1260
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
         3: .line 1261
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
         4: .line 1262
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
         5: .line 1263
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
         6: .line 1264
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         7: .line 1265
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1268
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1270
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1272
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.reset:()V
         3: .line 1273
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1274
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1275
            aload 1
            athrow
         7: .line 1274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1276
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     4       4  any

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1279
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1281
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1283
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            lconst_0
            lcmp
            ifeq 9
         3: .line 1284
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
            invokeinterface sun.java2d.DisposerRecord.dispose:()V
         4: .line 1285
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
         5: .line 1287
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1288
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1289
            aload 1
            athrow
         9: .line 1288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1290
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     6       6  any

  void warningOccurred(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // int code
         0: .line 1302
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1304
            iload 1 /* code */
            iflt 2
            iload 1 /* code */
            bipush 15
            if_icmple 3
         2: .line 1305
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            ldc "Invalid warning index"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 1308
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
         5: .line 1309
            ldc "com.sun.imageio.plugins.jpeg.JPEGImageWriterResources"
         6: .line 1310
            iload 1 /* code */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
         7: .line 1307
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWarningOccurred:(ILjava/lang/String;Ljava/lang/String;)V
         8: .line 1311
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 1312
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        11: .line 1313
            aload 2
            athrow
        12: .line 1312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        13: .line 1314
            return
        end local 1 // int code
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   14     1  code  I
      Exception table:
        from    to  target  type
           1     9       9  any
    MethodParameters:
      Name  Flags
      code  

  void warningWithMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.lang.String msg
         0: .line 1330
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1332
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            aload 1 /* msg */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWarningOccurred:(ILjava/lang/String;)V
         2: .line 1333
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1334
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1335
            aload 2
            athrow
         6: .line 1334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1336
            return
        end local 1 // java.lang.String msg
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1   msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      msg   

  void thumbnailStarted(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // int thumbnailIndex
         0: .line 1339
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1341
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            iload 1 /* thumbnailIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailStarted:(II)V
         2: .line 1342
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1343
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1344
            aload 2
            athrow
         6: .line 1343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1345
            return
        end local 1 // int thumbnailIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1  thumbnailIndex  I
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
                Name  Flags
      thumbnailIndex  

  void thumbnailProgress(float);
    descriptor: (F)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // float percentageDone
         0: .line 1349
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1351
            aload 0 /* this */
            fload 1 /* percentageDone */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailProgress:(F)V
         2: .line 1352
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1353
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1354
            aload 2
            athrow
         6: .line 1353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1355
            return
        end local 1 // float percentageDone
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1  percentageDone  F
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
                Name  Flags
      percentageDone  

  void thumbnailComplete();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1359
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1361
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailComplete:()V
         2: .line 1362
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 1363
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1364
            aload 1
            athrow
         6: .line 1363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1365
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     3       3  any

  private void checkSOFBands(com.sun.imageio.plugins.jpeg.SOFMarkerSegment, int);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        start local 2 // int numBandsUsed
         0: .line 1376
            aload 1 /* sof */
            ifnull 5
         1: .line 1377
            aload 1 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            arraylength
            iload 2 /* numBandsUsed */
            if_icmpeq 5
         2: .line 1378
            new javax.imageio.IIOException
            dup
         3: .line 1379
            ldc "Metadata components != number of destination bands"
         4: .line 1378
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1382
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numBandsUsed
        end local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    6     1           sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            0    6     2  numBandsUsed  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
              Name  Flags
      sof           
      numBandsUsed  

  private void checkJFIF(com.sun.imageio.plugins.jpeg.JFIFMarkerSegment, javax.imageio.ImageTypeSpecifier, boolean);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        start local 2 // javax.imageio.ImageTypeSpecifier type
        start local 3 // boolean input
         0: .line 1387
            aload 1 /* jfif */
            ifnull 7
         1: .line 1388
            aload 2 /* type */
            iload 3 /* input */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifne 7
         2: .line 1389
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
         3: .line 1390
            aload 0 /* this */
            iload 3 /* input */
            ifeq 5
         4: .line 1391
            iconst_5
            goto 6
         5: .line 1392
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter
            iconst_3
         6: .line 1390
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JFIFMarkerSegment javax.imageio.ImageTypeSpecifier int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter int
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         7: .line 1395
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean input
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1   jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            0    8     2   type  Ljavax/imageio/ImageTypeSpecifier;
            0    8     3  input  Z
    MethodParameters:
       Name  Flags
      jfif   
      type   
      input  

  private void checkAdobe(com.sun.imageio.plugins.jpeg.AdobeMarkerSegment, javax.imageio.ImageTypeSpecifier, boolean);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
        start local 2 // javax.imageio.ImageTypeSpecifier type
        start local 3 // boolean input
         0: .line 1400
            aload 1 /* adobe */
            ifnull 11
         1: .line 1401
            aload 2 /* type */
            iload 3 /* input */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.transformForType:(Ljavax/imageio/ImageTypeSpecifier;Z)I
            istore 4 /* rightTransform */
        start local 4 // int rightTransform
         2: .line 1402
            aload 1 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            iload 4 /* rightTransform */
            if_icmpeq 11
         3: .line 1403
            aload 0 /* this */
            iload 3 /* input */
            ifeq 5
         4: .line 1404
            bipush 6
            goto 6
         5: .line 1405
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.AdobeMarkerSegment javax.imageio.ImageTypeSpecifier int int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter
            iconst_4
         6: .line 1403
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.AdobeMarkerSegment javax.imageio.ImageTypeSpecifier int int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter int
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         7: .line 1406
            iload 4 /* rightTransform */
            iconst_m1
            if_icmpne 10
         8: .line 1407
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
         9: .line 1408
            goto 11
        10: .line 1409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* rightTransform */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        end local 4 // int rightTransform
        11: .line 1413
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean input
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   12     1           adobe  Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
            0   12     2            type  Ljavax/imageio/ImageTypeSpecifier;
            0   12     3           input  Z
            2   11     4  rightTransform  I
    MethodParameters:
       Name  Flags
      adobe  
      type   
      input  

  private int[] collectScans(com.sun.imageio.plugins.jpeg.JPEGMetadata, com.sun.imageio.plugins.jpeg.SOFMarkerSegment);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=13, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        start local 2 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
         0: .line 1423
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* segments */
        start local 3 // java.util.List segments
         1: .line 1424
            bipush 9
            istore 4 /* SCAN_SIZE */
        start local 4 // int SCAN_SIZE
         2: .line 1425
            iconst_4
            istore 5 /* MAX_COMPS_PER_SCAN */
        start local 5 // int MAX_COMPS_PER_SCAN
         3: .line 1426
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        start local 6 // java.util.Iterator iter
         4: .line 1427
            goto 8
         5: .line 1428
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata com.sun.imageio.plugins.jpeg.SOFMarkerSegment java.util.List int int java.util.Iterator
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 7 /* seg */
        start local 7 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         6: .line 1429
            aload 7 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            ifeq 8
         7: .line 1430
            aload 3 /* segments */
            aload 7 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         8: .line 1427
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 6 // java.util.Iterator iter
         9: .line 1433
            aconst_null
            astore 6 /* retval */
        start local 6 // int[] retval
        10: .line 1434
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        11: .line 1435
            aload 3 /* segments */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 40
        12: .line 1436
            aload 0 /* this */
            aload 3 /* segments */
            invokeinterface java.util.List.size:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        13: .line 1437
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
            iload 4 /* SCAN_SIZE */
            imul
            newarray 10
            astore 6 /* retval */
        14: .line 1438
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        15: .line 1439
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        16: goto 39
        17: .line 1440
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata com.sun.imageio.plugins.jpeg.SOFMarkerSegment java.util.List int int int[] int int
      StackMap stack:
            aload 3 /* segments */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            astore 9 /* sos */
        start local 9 // com.sun.imageio.plugins.jpeg.SOSMarkerSegment sos
        18: .line 1441
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment$ScanComponentSpec;
            arraylength
            iastore
        19: .line 1442
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        20: goto 33
        21: .line 1443
      StackMap locals: com.sun.imageio.plugins.jpeg.SOSMarkerSegment int
      StackMap stack:
            iload 10 /* j */
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment$ScanComponentSpec;
            arraylength
            if_icmpge 31
        22: .line 1444
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment$ScanComponentSpec;
            iload 10 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment$ScanComponentSpec.componentSelector:I
            istore 11 /* compSel */
        start local 11 // int compSel
        23: .line 1445
            iconst_0
            istore 12 /* k */
        start local 12 // int k
        24: goto 29
        25: .line 1446
      StackMap locals: int int
      StackMap stack:
            iload 11 /* compSel */
            aload 2 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 12 /* k */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.componentId:I
            if_icmpne 28
        26: .line 1447
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            iload 12 /* k */
            iastore
        27: .line 1448
            goto 32
        28: .line 1445
      StackMap locals:
      StackMap stack:
            iinc 12 /* k */ 1
      StackMap locals:
      StackMap stack:
        29: iload 12 /* k */
            aload 2 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            arraylength
            if_icmplt 25
        end local 12 // int k
        end local 11 // int compSel
        30: .line 1451
            goto 32
        31: .line 1452
      StackMap locals:
      StackMap stack:
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            iconst_0
            iastore
        32: .line 1442
      StackMap locals:
      StackMap stack:
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        33: iload 10 /* j */
            iload 5 /* MAX_COMPS_PER_SCAN */
            if_icmplt 21
        end local 10 // int j
        34: .line 1455
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.startSpectralSelection:I
            iastore
        35: .line 1456
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.endSpectralSelection:I
            iastore
        36: .line 1457
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.approxHigh:I
            iastore
        37: .line 1458
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.approxLow:I
            iastore
        end local 9 // com.sun.imageio.plugins.jpeg.SOSMarkerSegment sos
        38: .line 1439
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 8 /* i */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
            if_icmplt 17
        end local 8 // int i
        end local 7 // int index
        40: .line 1461
      StackMap locals:
      StackMap stack:
            aload 6 /* retval */
            areturn
        end local 6 // int[] retval
        end local 5 // int MAX_COMPS_PER_SCAN
        end local 4 // int SCAN_SIZE
        end local 3 // java.util.List segments
        end local 2 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        end local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   41     0                this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   41     1            metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            0   41     2                 sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            1   41     3            segments  Ljava/util/List<Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment;>;
            2   41     4           SCAN_SIZE  I
            3   41     5  MAX_COMPS_PER_SCAN  I
            4    9     6                iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
            6    8     7                 seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
           10   41     6              retval  [I
           15   40     7               index  I
           16   40     8                   i  I
           18   38     9                 sos  Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment;
           20   34    10                   j  I
           23   30    11             compSel  I
           24   30    12                   k  I
    MethodParameters:
          Name  Flags
      metadata  
      sof       

  private javax.imageio.plugins.jpeg.JPEGQTable[] collectQTablesFromMetadata(com.sun.imageio.plugins.jpeg.JPEGMetadata);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;)[Ljavax/imageio/plugins/jpeg/JPEGQTable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
         0: .line 1470
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* tables */
        start local 2 // java.util.ArrayList tables
         1: .line 1471
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         2: .line 1472
            goto 8
         3: .line 1473
      StackMap locals: java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 4 /* seg */
        start local 4 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         4: .line 1474
            aload 4 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.DQTMarkerSegment
            ifeq 8
         5: .line 1476
            aload 4 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment
         6: .line 1475
            astore 5 /* dqt */
        start local 5 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
         7: .line 1477
            aload 2 /* tables */
            aload 5 /* dqt */
            getfield com.sun.imageio.plugins.jpeg.DQTMarkerSegment.tables:Ljava/util/List;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        end local 5 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
        end local 4 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         8: .line 1472
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 1480
            aconst_null
            astore 4 /* retval */
        start local 4 // javax.imageio.plugins.jpeg.JPEGQTable[] retval
        10: .line 1481
            aload 2 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 19
        11: .line 1482
            aload 2 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 4 /* retval */
        12: .line 1483
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 18
        14: .line 1484
      StackMap locals: javax.imageio.plugins.jpeg.JPEGQTable[] int
      StackMap stack:
            aload 4 /* retval */
            iload 5 /* i */
        15: .line 1485
            new javax.imageio.plugins.jpeg.JPEGQTable
            dup
            aload 2 /* tables */
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment$Qtable
            getfield com.sun.imageio.plugins.jpeg.DQTMarkerSegment$Qtable.data:[I
            invokespecial javax.imageio.plugins.jpeg.JPEGQTable.<init>:([I)V
        16: .line 1484
            aastore
        17: .line 1483
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 4 /* retval */
            arraylength
            if_icmplt 14
        end local 5 // int i
        19: .line 1488
      StackMap locals:
      StackMap stack:
            aload 4 /* retval */
            areturn
        end local 4 // javax.imageio.plugins.jpeg.JPEGQTable[] retval
        end local 3 // java.util.Iterator iter
        end local 2 // java.util.ArrayList tables
        end local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   20     1  metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            1   20     2    tables  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment$Qtable;>;
            2   20     3      iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
            4    8     4       seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            7    8     5       dqt  Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
           10   20     4    retval  [Ljavax/imageio/plugins/jpeg/JPEGQTable;
           13   19     5         i  I
    MethodParameters:
          Name  Flags
      metadata  

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] collectHTablesFromMetadata(com.sun.imageio.plugins.jpeg.JPEGMetadata, boolean);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        start local 2 // boolean wantDC
         0: .line 1500
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* tables */
        start local 3 // java.util.ArrayList tables
         1: .line 1501
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         2: .line 1502
            goto 15
         3: .line 1503
      StackMap locals: java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 5 /* seg */
        start local 5 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         4: .line 1504
            aload 5 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            ifeq 15
         5: .line 1505
            aload 5 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            astore 6 /* dht */
        start local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
         6: .line 1506
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 14
         8: .line 1507
      StackMap locals: com.sun.imageio.plugins.jpeg.MarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int
      StackMap stack:
            aload 6 /* dht */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment.tables:Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
            astore 8 /* htable */
        start local 8 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable htable
         9: .line 1508
            aload 8 /* htable */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.tableClass:I
            iload 2 /* wantDC */
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList java.util.Iterator com.sun.imageio.plugins.jpeg.MarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
      StackMap stack: int
        10: iconst_1
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList java.util.Iterator com.sun.imageio.plugins.jpeg.MarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
      StackMap stack: int int
        11: if_icmpne 13
        12: .line 1509
            aload 3 /* tables */
            aload 8 /* htable */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable htable
        13: .line 1506
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            aload 6 /* dht */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment.tables:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 7 // int i
        end local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
        end local 5 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
        15: .line 1502
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        16: .line 1514
            aconst_null
            astore 5 /* retval */
        start local 5 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] retval
        17: .line 1515
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 37
        18: .line 1517
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
        19: .line 1516
            astore 6 /* htables */
        start local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] htables
        20: .line 1518
            aload 3 /* tables */
            aload 6 /* htables */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        21: .line 1519
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray javax.imageio.plugins.jpeg.JPEGHuffmanTable
            astore 5 /* retval */
        22: .line 1520
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        23: goto 36
        24: .line 1521
      StackMap locals: javax.imageio.plugins.jpeg.JPEGHuffmanTable[] com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] int
      StackMap stack:
            aload 5 /* retval */
            iload 7 /* i */
            aconst_null
            aastore
        25: .line 1522
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        26: goto 34
        27: .line 1523
      StackMap locals: int
      StackMap stack:
            aload 6 /* htables */
            iload 8 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.tableID:I
            iload 7 /* i */
            if_icmpne 33
        28: .line 1524
            aload 5 /* retval */
            iload 7 /* i */
            aaload
            ifnull 30
        29: .line 1525
            new javax.imageio.IIOException
            dup
            ldc "Metadata has duplicate Htables!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 1527
      StackMap locals:
      StackMap stack:
            aload 5 /* retval */
            iload 7 /* i */
            new javax.imageio.plugins.jpeg.JPEGHuffmanTable
            dup
            aload 6 /* htables */
            iload 8 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.numCodes:[S
        31: .line 1528
            aload 6 /* htables */
            iload 8 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.values:[S
            invokespecial javax.imageio.plugins.jpeg.JPEGHuffmanTable.<init>:([S[S)V
        32: .line 1527
            aastore
        33: .line 1522
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 8 /* j */
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 27
        end local 8 // int j
        35: .line 1520
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 7 /* i */
            aload 5 /* retval */
            arraylength
            if_icmplt 24
        end local 7 // int i
        end local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] htables
        37: .line 1534
      StackMap locals:
      StackMap stack:
            aload 5 /* retval */
            areturn
        end local 5 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] retval
        end local 4 // java.util.Iterator iter
        end local 3 // java.util.ArrayList tables
        end local 2 // boolean wantDC
        end local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   38     1  metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            0   38     2    wantDC  Z
            1   38     3    tables  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;>;
            2   38     4      iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
            4   15     5       seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            6   15     6       dht  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
            7   15     7         i  I
            9   13     8    htable  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;
           17   38     5    retval  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
           20   37     6   htables  [Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;
           23   37     7         i  I
           26   35     8         j  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
          Name  Flags
      metadata  
      wantDC    

  private int getSrcCSType(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier type
         0: .line 1542
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // javax.imageio.ImageTypeSpecifier type
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  type  Ljavax/imageio/ImageTypeSpecifier;
    MethodParameters:
      Name  Flags
      type  

  private int getSrcCSType(java.awt.image.RenderedImage);
    descriptor: (Ljava/awt/image/RenderedImage;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.RenderedImage rimage
         0: .line 1546
            aload 0 /* this */
            aload 1 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // java.awt.image.RenderedImage rimage
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  rimage  Ljava/awt/image/RenderedImage;
    MethodParameters:
        Name  Flags
      rimage  

  private int getSrcCSType(java.awt.image.ColorModel);
    descriptor: (Ljava/awt/image/ColorModel;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.ColorModel cm
         0: .line 1550
            iconst_0
            istore 2 /* retval */
        start local 2 // int retval
         1: .line 1551
            aload 1 /* cm */
            ifnull 24
         2: .line 1552
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            istore 3 /* alpha */
        start local 3 // boolean alpha
         3: .line 1553
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 4 /* cs */
        start local 4 // java.awt.color.ColorSpace cs
         4: .line 1554
            aload 4 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 13
                    3: 12
                    4: 24
                    5: 7
                    6: 5
                    7: 24
                    8: 24
                    9: 23
                   10: 24
                   11: 24
                   12: 24
                   13: 17
              default: 24
          }
         5: .line 1556
      StackMap locals: int int java.awt.color.ColorSpace
      StackMap stack:
            iconst_1
            istore 2 /* retval */
         6: .line 1557
            goto 24
         7: .line 1559
      StackMap locals:
      StackMap stack:
            iload 3 /* alpha */
            ifeq 10
         8: .line 1560
            bipush 6
            istore 2 /* retval */
         9: .line 1561
            goto 24
        10: .line 1562
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 2 /* retval */
        11: .line 1564
            goto 24
        12: .line 1566
      StackMap locals:
      StackMap stack:
            iload 3 /* alpha */
            ifeq 15
        13: .line 1567
            bipush 7
            istore 2 /* retval */
        14: .line 1568
            goto 24
        15: .line 1569
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        16: .line 1571
            goto 24
        17: .line 1573
      StackMap locals:
      StackMap stack:
            aload 4 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG$JCS.getYCC:()Ljava/awt/color/ColorSpace;
            if_acmpne 24
        18: .line 1574
            iload 3 /* alpha */
            ifeq 21
        19: .line 1575
            bipush 10
            istore 2 /* retval */
        20: .line 1576
            goto 24
        21: .line 1577
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 2 /* retval */
        22: .line 1580
            goto 24
        23: .line 1582
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 2 /* retval */
        end local 4 // java.awt.color.ColorSpace cs
        end local 3 // boolean alpha
        24: .line 1586
      StackMap locals:
      StackMap stack:
            iload 2 /* retval */
            ireturn
        end local 2 // int retval
        end local 1 // java.awt.image.ColorModel cm
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   25     1      cm  Ljava/awt/image/ColorModel;
            1   25     2  retval  I
            3   24     3   alpha  Z
            4   24     4      cs  Ljava/awt/color/ColorSpace;
    MethodParameters:
      Name  Flags
      cm    

  private int getDestCSType(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier destType
         0: .line 1590
            aload 1 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            astore 2 /* cm */
        start local 2 // java.awt.image.ColorModel cm
         1: .line 1591
            aload 2 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            istore 3 /* alpha */
        start local 3 // boolean alpha
         2: .line 1592
            aload 2 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 4 /* cs */
        start local 4 // java.awt.color.ColorSpace cs
         3: .line 1593
            iconst_0
            istore 5 /* retval */
        start local 5 // int retval
         4: .line 1594
            aload 4 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 13
                    3: 12
                    4: 24
                    5: 7
                    6: 5
                    7: 24
                    8: 24
                    9: 23
                   10: 24
                   11: 24
                   12: 24
                   13: 17
              default: 24
          }
         5: .line 1596
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.ImageTypeSpecifier java.awt.image.ColorModel int java.awt.color.ColorSpace int
      StackMap stack:
            iconst_1
            istore 5 /* retval */
         6: .line 1597
            goto 24
         7: .line 1599
      StackMap locals:
      StackMap stack:
            iload 3 /* alpha */
            ifeq 10
         8: .line 1600
            bipush 6
            istore 5 /* retval */
         9: .line 1601
            goto 24
        10: .line 1602
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 5 /* retval */
        11: .line 1604
            goto 24
        12: .line 1606
      StackMap locals:
      StackMap stack:
            iload 3 /* alpha */
            ifeq 15
        13: .line 1607
            bipush 7
            istore 5 /* retval */
        14: .line 1608
            goto 24
        15: .line 1609
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 5 /* retval */
        16: .line 1611
            goto 24
        17: .line 1613
      StackMap locals:
      StackMap stack:
            aload 4 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG$JCS.getYCC:()Ljava/awt/color/ColorSpace;
            if_acmpne 24
        18: .line 1614
            iload 3 /* alpha */
            ifeq 21
        19: .line 1615
            bipush 10
            istore 5 /* retval */
        20: .line 1616
            goto 24
        21: .line 1617
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 5 /* retval */
        22: .line 1620
            goto 24
        23: .line 1622
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 5 /* retval */
        24: .line 1625
      StackMap locals:
      StackMap stack:
            iload 5 /* retval */
            ireturn
        end local 5 // int retval
        end local 4 // java.awt.color.ColorSpace cs
        end local 3 // boolean alpha
        end local 2 // java.awt.image.ColorModel cm
        end local 1 // javax.imageio.ImageTypeSpecifier destType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   25     1  destType  Ljavax/imageio/ImageTypeSpecifier;
            1   25     2        cm  Ljava/awt/image/ColorModel;
            2   25     3     alpha  Z
            3   25     4        cs  Ljava/awt/color/ColorSpace;
            4   25     5    retval  I
    MethodParameters:
          Name  Flags
      destType  

  private int getDefaultDestCSType(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier type
         0: .line 1629
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // javax.imageio.ImageTypeSpecifier type
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  type  Ljavax/imageio/ImageTypeSpecifier;
    MethodParameters:
      Name  Flags
      type  

  private int getDefaultDestCSType(java.awt.image.RenderedImage);
    descriptor: (Ljava/awt/image/RenderedImage;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.RenderedImage rimage
         0: .line 1633
            aload 0 /* this */
            aload 1 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // java.awt.image.RenderedImage rimage
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  rimage  Ljava/awt/image/RenderedImage;
    MethodParameters:
        Name  Flags
      rimage  

  private int getDefaultDestCSType(java.awt.image.ColorModel);
    descriptor: (Ljava/awt/image/ColorModel;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.ColorModel cm
         0: .line 1637
            iconst_0
            istore 2 /* retval */
        start local 2 // int retval
         1: .line 1638
            aload 1 /* cm */
            ifnull 24
         2: .line 1639
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            istore 3 /* alpha */
        start local 3 // boolean alpha
         3: .line 1640
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 4 /* cs */
        start local 4 // java.awt.color.ColorSpace cs
         4: .line 1641
            aload 4 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 13
                    3: 12
                    4: 24
                    5: 7
                    6: 5
                    7: 24
                    8: 24
                    9: 23
                   10: 24
                   11: 24
                   12: 24
                   13: 17
              default: 24
          }
         5: .line 1643
      StackMap locals: int int java.awt.color.ColorSpace
      StackMap stack:
            iconst_1
            istore 2 /* retval */
         6: .line 1644
            goto 24
         7: .line 1646
      StackMap locals:
      StackMap stack:
            iload 3 /* alpha */
            ifeq 10
         8: .line 1647
            bipush 7
            istore 2 /* retval */
         9: .line 1648
            goto 24
        10: .line 1649
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        11: .line 1651
            goto 24
        12: .line 1653
      StackMap locals:
      StackMap stack:
            iload 3 /* alpha */
            ifeq 15
        13: .line 1654
            bipush 7
            istore 2 /* retval */
        14: .line 1655
            goto 24
        15: .line 1656
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        16: .line 1658
            goto 24
        17: .line 1660
      StackMap locals:
      StackMap stack:
            aload 4 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG$JCS.getYCC:()Ljava/awt/color/ColorSpace;
            if_acmpne 24
        18: .line 1661
            iload 3 /* alpha */
            ifeq 21
        19: .line 1662
            bipush 10
            istore 2 /* retval */
        20: .line 1663
            goto 24
        21: .line 1664
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 2 /* retval */
        22: .line 1667
            goto 24
        23: .line 1669
      StackMap locals:
      StackMap stack:
            bipush 11
            istore 2 /* retval */
        end local 4 // java.awt.color.ColorSpace cs
        end local 3 // boolean alpha
        24: .line 1673
      StackMap locals:
      StackMap stack:
            iload 2 /* retval */
            ireturn
        end local 2 // int retval
        end local 1 // java.awt.image.ColorModel cm
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   25     1      cm  Ljava/awt/image/ColorModel;
            1   25     2  retval  I
            3   24     3   alpha  Z
            4   24     4      cs  Ljava/awt/color/ColorSpace;
    MethodParameters:
      Name  Flags
      cm    

  private boolean isSubsampled(com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec[]);
    descriptor: ([Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec[] specs
         0: .line 1677
            aload 1 /* specs */
            iconst_0
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.HsamplingFactor:I
            istore 2 /* hsamp0 */
        start local 2 // int hsamp0
         1: .line 1678
            aload 1 /* specs */
            iconst_0
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.VsamplingFactor:I
            istore 3 /* vsamp0 */
        start local 3 // int vsamp0
         2: .line 1679
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 1680
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* specs */
            iload 4 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.HsamplingFactor:I
            iload 2 /* hsamp0 */
            if_icmpne 6
         5: .line 1681
            aload 1 /* specs */
            iload 4 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.VsamplingFactor:I
            iload 3 /* vsamp0 */
            if_icmpeq 7
         6: .line 1682
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1679
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 1 /* specs */
            arraylength
            if_icmplt 4
        end local 4 // int i
         9: .line 1684
            iconst_0
            ireturn
        end local 3 // int vsamp0
        end local 2 // int hsamp0
        end local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec[] specs
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   10     1   specs  [Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            1   10     2  hsamp0  I
            2   10     3  vsamp0  I
            3    9     4       i  I
    MethodParameters:
       Name  Flags
      specs  

  private static native void initWriterIDs(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      qTableClass  
      huffClass    

  private native long initJPEGImageWriter();
    descriptor: ()J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native void setDest(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private native boolean writeImage(long, byte[], int, int, int, int[], int, int, int, int, int, javax.imageio.plugins.jpeg.JPEGQTable[], boolean, javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], boolean, boolean, boolean, int, int[], int[], int[], int[], int[], boolean, int);
    descriptor: (J[BIII[IIIIII[Ljavax/imageio/plugins/jpeg/JPEGQTable;Z[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;ZZZI[I[I[I[I[IZI)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                  Name  Flags
      structPointer     
      data              
      inCsType          
      outCsType         
      numBands          
      bandSizes         
      srcWidth          
      destWidth         
      destHeight        
      stepX             
      stepY             
      qtables           
      writeDQT          
      DCHuffmanTables   
      ACHuffmanTables   
      writeDHT          
      optimizeHuffman   
      progressive       
      numScans          
      scans             
      componentIds      
      HsamplingFactors  
      VsamplingFactors  
      QtableSelectors   
      haveMetadata      
      restartInterval   

  private void writeMetadata();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1736
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 10
         1: .line 1737
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifeq 7
         2: .line 1738
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         3: .line 1739
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
         4: .line 1740
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
         5: .line 1741
            aload 0 /* this */
         6: .line 1738
            invokestatic com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.writeDefaultJFIF:(Ljavax/imageio/stream/ImageOutputStream;Ljava/util/List;Ljava/awt/color/ICC_Profile;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
         7: .line 1743
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
            ifeq 19
         8: .line 1744
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
            invokestatic com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.writeAdobeSegment:(Ljavax/imageio/stream/ImageOutputStream;I)V
         9: .line 1746
            goto 19
        10: .line 1747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
        11: .line 1748
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
        12: .line 1749
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
        13: .line 1750
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
        14: .line 1751
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
        15: .line 1752
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
        16: .line 1753
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        17: .line 1754
            aload 0 /* this */
        18: .line 1747
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.writeToStream:(Ljavax/imageio/stream/ImageOutputStream;ZZLjava/util/List;Ljava/awt/color/ICC_Profile;ZILcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
        19: .line 1756
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
    Exceptions:
      throws java.io.IOException

  private native void writeTables(long, javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[]);
    descriptor: (J[Ljavax/imageio/plugins/jpeg/JPEGQTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      structPointer    
      qtables          
      DCHuffmanTables  
      ACHuffmanTables  

  private void grabPixels(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // int y
         0: .line 1775
            aconst_null
            astore 2 /* sourceLine */
        start local 2 // java.awt.image.Raster sourceLine
         1: .line 1776
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 16
         2: .line 1777
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
         3: .line 1778
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 1 /* y */
            iadd
         4: .line 1779
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
         5: .line 1780
            iconst_0
            iconst_0
         6: .line 1781
            iconst_1
            newarray 10
         7: .line 1777
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
         8: .line 1786
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
            invokevirtual java.awt.image.IndexColorModel.getTransparency:()I
            iconst_1
            if_icmpeq 9
            iconst_1
            goto 10
      StackMap locals: java.awt.image.Raster
      StackMap stack:
         9: iconst_0
        10: .line 1785
      StackMap locals:
      StackMap stack: int
            istore 3 /* forceARGB */
        start local 3 // boolean forceARGB
        11: .line 1787
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
            aload 2 /* sourceLine */
        12: .line 1788
            iload 3 /* forceARGB */
        13: .line 1787
            invokevirtual java.awt.image.IndexColorModel.convertToIntDiscrete:(Ljava/awt/image/Raster;Z)Ljava/awt/image/BufferedImage;
            astore 4 /* temp */
        start local 4 // java.awt.image.BufferedImage temp
        14: .line 1789
            aload 4 /* temp */
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            astore 2 /* sourceLine */
        end local 4 // java.awt.image.BufferedImage temp
        end local 3 // boolean forceARGB
        15: .line 1790
            goto 22
        16: .line 1791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
        17: .line 1792
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 1 /* y */
            iadd
        18: .line 1793
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
        19: .line 1794
            iconst_0
            iconst_0
        20: .line 1795
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        21: .line 1791
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
        22: .line 1797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
            ifeq 27
        23: .line 1798
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 25
        24: .line 1799
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Converting to sRGB"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1804
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertOp:Ljava/awt/image/ColorConvertOp;
            aload 2 /* sourceLine */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.ColorConvertOp.filter:(Ljava/awt/image/Raster;Ljava/awt/image/WritableRaster;)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
        26: .line 1805
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
            astore 2 /* sourceLine */
        27: .line 1807
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
            ifeq 44
        28: .line 1808
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.createCompatibleWritableRaster:()Ljava/awt/image/WritableRaster;
            astore 3 /* wr */
        start local 3 // java.awt.image.WritableRaster wr
        29: .line 1809
            aconst_null
            astore 4 /* data */
        start local 4 // int[] data
        30: .line 1810
            aload 2 /* sourceLine */
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinX:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinY:()I
        31: .line 1811
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getHeight:()I
        32: .line 1812
            aload 4 /* data */
        33: .line 1810
            invokevirtual java.awt.image.Raster.getPixels:(IIII[I)[I
            astore 4 /* data */
        34: .line 1813
            aload 3 /* wr */
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinX:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinY:()I
        35: .line 1814
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getHeight:()I
        36: .line 1815
            aload 4 /* data */
        37: .line 1813
            invokevirtual java.awt.image.WritableRaster.setPixels:(IIII[I)V
        38: .line 1816
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
            aload 3 /* wr */
            iconst_0
            invokevirtual java.awt.image.ColorModel.coerceData:(Ljava/awt/image/WritableRaster;Z)Ljava/awt/image/ColorModel;
            pop
        39: .line 1817
            aload 3 /* wr */
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getMinX:()I
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getMinY:()I
        40: .line 1818
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getWidth:()I
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getHeight:()I
        41: .line 1819
            iconst_0
            iconst_0
        42: .line 1820
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        43: .line 1817
            invokevirtual java.awt.image.WritableRaster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
        end local 4 // int[] data
        end local 3 // java.awt.image.WritableRaster wr
        44: .line 1822
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.WritableRaster.setRect:(Ljava/awt/image/Raster;)V
        45: .line 1823
            iload 1 /* y */
            bipush 7
            if_icmple 53
            iload 1 /* y */
            bipush 8
            irem
            ifne 53
        46: .line 1824
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
        47: .line 1826
            aload 0 /* this */
            iload 1 /* y */
            i2f
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            i2f
            fdiv
            ldc 100.0
            fmul
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageProgress:(F)V
        48: .line 1827
            goto 52
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 3
        50: .line 1828
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        51: .line 1829
            aload 3
            athrow
        52: .line 1828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        53: .line 1831
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.awt.image.Raster sourceLine
        end local 1 // int y
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   54     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   54     1           y  I
            1   54     2  sourceLine  Ljava/awt/image/Raster;
           11   15     3   forceARGB  Z
           14   15     4        temp  Ljava/awt/image/BufferedImage;
           29   44     3          wr  Ljava/awt/image/WritableRaster;
           30   44     4        data  [I
      Exception table:
        from    to  target  type
          47    49      49  any
    MethodParameters:
      Name  Flags
      y     

  private native void abortWrite(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private native void resetWriter(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private static native void disposeWriter(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private void writeOutputData(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // byte[] data
        start local 2 // int offset
        start local 3 // int len
         0: .line 1868
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1870
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            aload 1 /* data */
            iload 2 /* offset */
            iload 3 /* len */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
         2: .line 1871
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 1872
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1873
            aload 4
            athrow
         6: .line 1872
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1874
            return
        end local 3 // int len
        end local 2 // int offset
        end local 1 // byte[] data
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1    data  [B
            0    8     2  offset  I
            0    8     3     len  I
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      offset  
      len     

  private synchronized void setThreadLock();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1880
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1881
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            ifnull 10
         2: .line 1882
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 8
         3: .line 1885
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to use instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 1886
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " locked on thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1887
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " from thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1888
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1885
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1890
      StackMap locals: java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
         9: .line 1892
            goto 12
        10: .line 1893
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currThread */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
        11: .line 1894
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
        12: .line 1896
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread currThread
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            1   13     1  currThread  Ljava/lang/Thread;

  private synchronized void clearThreadLock();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1899
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1900
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            ifnull 2
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 6
         2: .line 1901
      StackMap locals: java.lang.Thread
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to clear thread lock form wrong thread. Locked thread: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 1902
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 1903
            ldc "; current thread: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1901
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1905
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            iconst_1
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
         7: .line 1906
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            ifne 9
         8: .line 1907
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
         9: .line 1909
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread currThread
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            1   10     1  currThread  Ljava/lang/Thread;
}
SourceFile: "JPEGImageWriter.java"
NestMembers:
  com.sun.imageio.plugins.jpeg.JPEGImageWriter$1  com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock  com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock$State  com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord
InnerClasses:
  Htable = com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable of com.sun.imageio.plugins.jpeg.DHTMarkerSegment
  Qtable = com.sun.imageio.plugins.jpeg.DQTMarkerSegment$Qtable of com.sun.imageio.plugins.jpeg.DQTMarkerSegment
  public JCS = com.sun.imageio.plugins.jpeg.JPEG$JCS of com.sun.imageio.plugins.jpeg.JPEG
  com.sun.imageio.plugins.jpeg.JPEGImageWriter$1
  private CallBackLock = com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock of com.sun.imageio.plugins.jpeg.JPEGImageWriter
  private JPEGWriterDisposerRecord = com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord of com.sun.imageio.plugins.jpeg.JPEGImageWriter
  ComponentSpec = com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec of com.sun.imageio.plugins.jpeg.SOFMarkerSegment
  ScanComponentSpec = com.sun.imageio.plugins.jpeg.SOSMarkerSegment$ScanComponentSpec of com.sun.imageio.plugins.jpeg.SOSMarkerSegment