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 185
            ldc Ljavax/imageio/plugins/jpeg/JPEGQTable;
         3: .line 186
            ldc Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
         4: .line 185
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.initWriterIDs:(Ljava/lang/Class;Ljava/lang/Class;)V
         5: .line 328
            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 329
            new java.awt.Dimension
            dup
            sipush 255
            sipush 255
            invokespecial java.awt.Dimension.<init>:(II)V
            aastore
         7: .line 328
            putstatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.preferredThumbSizes:[Ljava/awt/Dimension;
         8: .line 329
            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 192
            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 1778
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
        35: .line 1779
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
        36: .line 1813
            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 193
            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 194
            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 195
            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 196
            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 200
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 202
            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 204
            aload 0 /* this */
            aload 1 /* output */
            invokespecial javax.imageio.ImageWriter.setOutput:(Ljava/lang/Object;)V
         3: .line 205
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetInternalState:()V
         4: .line 206
            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 208
            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 209
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 210
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         9: .line 211
            aload 2
            athrow
        10: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        11: .line 212
            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 216
            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 221
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 223
            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 225
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 223
            aload 3
            areturn
         4: .line 224
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 225
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 226
            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 233
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 235
            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 237
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 235
            aload 4
            areturn
         4: .line 236
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 237
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 238
            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 248
            aload 1 /* inData */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 4
         1: .line 249
            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 250
            aload 3 /* jpegData */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifeq 4
         3: .line 251
            aload 1 /* inData */
            areturn
        end local 3 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         4: .line 254
      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 262
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 264
            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 266
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 264
            aload 5
            areturn
         4: .line 265
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         5: .line 266
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 267
            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 275
            aload 1 /* inData */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 5
         1: .line 276
            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 277
            aload 4 /* jpegData */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifne 4
         3: .line 278
            aload 1 /* inData */
            areturn
         4: .line 282
      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 287
      StackMap locals:
      StackMap stack:
            aload 1 /* inData */
            invokevirtual javax.imageio.metadata.IIOMetadata.isStandardMetadataFormatSupported:()Z
            ifeq 19
         6: .line 289
            ldc "javax_imageio_1.0"
         7: .line 288
            astore 4 /* formatName */
        start local 4 // java.lang.String formatName
         8: .line 290
            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 291
            aload 5 /* tree */
            ifnull 19
        10: .line 292
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 2 /* imageType */
        11: .line 293
            aload 3 /* param */
        12: .line 294
            aload 0 /* this */
        13: .line 292
            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 296
            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 297
            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 300
            aconst_null
            areturn
        18: .line 303
      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 306
      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 315
            aload 1 /* imageType */
            ifnonnull 2
            aload 4 /* imageMetadata */
            ifnonnull 2
         1: .line 318
            iconst_m1
            ireturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            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 4
         3: .line 323
            ldc 2147483647
            ireturn
         4: .line 325
      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    5     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    5     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    5     2           param  Ljavax/imageio/ImageWriteParam;
            0    5     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    5     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 335
            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 336
            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 338
      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 346
            aload 1 /* imageType */
            ifnull 3
         1: .line 347
            aload 1 /* imageType */
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifne 3
         2: .line 348
            iconst_0
            ireturn
         3: .line 350
      StackMap locals:
      StackMap stack:
            aload 4 /* imageMetadata */
            ifnull 16
         4: .line 351
            aconst_null
            astore 5 /* metadata */
        start local 5 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
         5: .line 352
            aload 4 /* imageMetadata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 8
         6: .line 353
            aload 4 /* imageMetadata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 5 /* metadata */
         7: .line 354
            goto 12
         8: .line 355
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aload 0 /* this */
            aload 4 /* imageMetadata */
         9: .line 356
            aload 1 /* imageType */
        10: .line 357
            aload 2 /* param */
        11: .line 355
            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 360
      StackMap locals:
      StackMap stack:
            aload 5 /* metadata */
        13: .line 361
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
        14: .line 360
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            ifnonnull 16
        15: .line 362
            iconst_0
            ireturn
        end local 5 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        16: .line 365
      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 370
            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 377
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 379
            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 381
            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 382
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 4
         5: .line 383
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 384
            aload 4
            athrow
         7: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 385
            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 391
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 392
            new java.lang.IllegalStateException
            dup
            ldc "Output has not been set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 395
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            ifnonnull 4
         3: .line 396
            new java.lang.IllegalArgumentException
            dup
            ldc "image is null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 400
      StackMap locals:
      StackMap stack:
            aload 1 /* streamMetadata */
            ifnull 6
         5: .line 401
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         6: .line 405
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.hasRaster:()Z
            istore 4 /* rasterOnly */
        start local 4 // boolean rasterOnly
         7: .line 407
            aconst_null
            astore 5 /* rimage */
        start local 5 // java.awt.image.RenderedImage rimage
         8: .line 408
            iload 4 /* rasterOnly */
            ifeq 11
         9: .line 409
            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 410
            goto 32
        11: .line 411
      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 412
            aload 5 /* rimage */
            instanceof java.awt.image.BufferedImage
            ifeq 15
        13: .line 414
            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 415
            goto 32
      StackMap locals:
      StackMap stack:
        15: aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getNumXTiles:()I
            iconst_1
            if_icmpne 31
        16: .line 416
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getNumYTiles:()I
            iconst_1
            if_icmpne 31
        17: .line 419
            aload 0 /* this */
            aload 5 /* rimage */
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getMinTileX:()I
        18: .line 420
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getMinTileY:()I
        19: .line 419
            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 424
            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 425
            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 427
      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 428
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
        24: .line 429
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getWidth:()I
        25: .line 430
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getHeight:()I
        26: .line 431
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
        27: .line 432
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
        28: .line 433
            aconst_null
        29: .line 427
            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 435
            goto 32
        31: .line 437
      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 444
      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 445
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
        34: .line 446
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
        35: .line 447
            aconst_null
            astore 7 /* cm */
        start local 7 // java.awt.image.ColorModel cm
        36: .line 448
            aconst_null
            astore 8 /* cs */
        start local 8 // java.awt.color.ColorSpace cs
        37: .line 449
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        38: .line 450
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        39: .line 451
            iload 4 /* rasterOnly */
            ifne 50
        40: .line 452
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            astore 7 /* cm */
        41: .line 453
            aload 7 /* cm */
            ifnull 50
        42: .line 454
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
        43: .line 455
            aload 7 /* cm */
            instanceof java.awt.image.IndexColorModel
            ifeq 47
        44: .line 456
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
        45: .line 457
            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 458
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            istore 6 /* numSrcBands */
        47: .line 460
      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 461
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        49: .line 462
            aload 0 /* this */
            aload 7 /* cm */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        50: .line 467
      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 468
            iload 6 /* numSrcBands */
            istore 9 /* numBandsUsed */
        start local 9 // int numBandsUsed
        52: .line 471
            aload 3 /* param */
            ifnull 64
        53: .line 472
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceBands:()[I
            astore 10 /* sBands */
        start local 10 // int[] sBands
        54: .line 473
            aload 10 /* sBands */
            ifnull 64
        55: .line 474
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 58
        56: .line 475
            aload 0 /* this */
            bipush 8
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
        57: .line 476
            goto 64
        58: .line 477
      StackMap locals: int int[]
      StackMap stack:
            aload 0 /* this */
            aload 10 /* sBands */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        59: .line 478
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
            arraylength
            istore 9 /* numBandsUsed */
        60: .line 479
            iload 9 /* numBandsUsed */
            iload 6 /* numSrcBands */
            if_icmple 64
        61: .line 480
            new javax.imageio.IIOException
            dup
        62: .line 481
            ldc "ImageWriteParam specifies too many source bands"
        63: .line 480
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // int[] sBands
        64: .line 487
      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 488
            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 490
            aconst_null
            astore 12 /* bandSizes */
        start local 12 // int[] bandSizes
        71: .line 491
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifne 82
        72: .line 492
            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 494
            iload 10 /* usingBandSubset */
            ifeq 89
        74: .line 495
            iload 9 /* numBandsUsed */
            newarray 10
            astore 13 /* temp */
        start local 13 // int[] temp
        75: .line 496
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        76: goto 79
        77: .line 497
      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 496
            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 499
            aload 13 /* temp */
            astore 12 /* bandSizes */
        end local 13 // int[] temp
        81: .line 501
            goto 89
        82: .line 502
      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 503
            iload 6 /* numSrcBands */
            newarray 10
            astore 12 /* bandSizes */
        84: .line 504
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        85: goto 88
        86: .line 505
      StackMap locals: int[] int
      StackMap stack:
            aload 12 /* bandSizes */
            iload 14 /* i */
            aload 13 /* tempSize */
            iconst_0
            iaload
            iastore
        87: .line 504
            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 509
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        90: goto 96
        91: .line 514
      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 515
      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 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 95
        94: .line 523
            aload 12 /* bandSizes */
            iload 13 /* i */
            bipush 8
            iastore
        95: .line 509
      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 527
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 109
        98: .line 528
            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 529
            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 530
            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 531
            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 532
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Band sizes:"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       103: .line 533
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       104: goto 107
       105: .line 534
      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 533
            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 536
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
       109: .line 540
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13 /* destType */
        start local 13 // javax.imageio.ImageTypeSpecifier destType
       110: .line 541
            aload 3 /* param */
            ifnull 115
       111: .line 542
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getDestinationType:()Ljavax/imageio/ImageTypeSpecifier;
            astore 13 /* destType */
       112: .line 544
            iload 11 /* fullImage */
            ifeq 115
            aload 13 /* destType */
            ifnull 115
       113: .line 545
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       114: .line 546
            aconst_null
            astore 13 /* destType */
       115: .line 552
      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 553
            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 554
            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 555
            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 556
            aload 0 /* this */
            iload 14 /* imageWidth */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       120: .line 557
            aload 0 /* this */
            iload 15 /* imageHeight */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       121: .line 558
            iconst_1
            istore 16 /* periodX */
        start local 16 // int periodX
       122: .line 559
            iconst_1
            istore 17 /* periodY */
        start local 17 // int periodY
       123: .line 560
            iconst_0
            istore 18 /* gridX */
        start local 18 // int gridX
       124: .line 561
            iconst_0
            istore 19 /* gridY */
        start local 19 // int gridY
       125: .line 562
            aconst_null
            astore 20 /* qTables */
        start local 20 // javax.imageio.plugins.jpeg.JPEGQTable[] qTables
       126: .line 563
            aconst_null
            astore 21 /* DCHuffmanTables */
        start local 21 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] DCHuffmanTables
       127: .line 564
            aconst_null
            astore 22 /* ACHuffmanTables */
        start local 22 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] ACHuffmanTables
       128: .line 565
            iconst_0
            istore 23 /* optimizeHuffman */
        start local 23 // boolean optimizeHuffman
       129: .line 566
            aconst_null
            astore 24 /* jparam */
        start local 24 // javax.imageio.plugins.jpeg.JPEGImageWriteParam jparam
       130: .line 567
            iconst_0
            istore 25 /* progressiveMode */
        start local 25 // int progressiveMode
       131: .line 569
            aload 3 /* param */
            ifnull 171
       132: .line 571
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceRegion:()Ljava/awt/Rectangle;
            astore 26 /* sourceRegion */
        start local 26 // java.awt.Rectangle sourceRegion
       133: .line 572
            aload 26 /* sourceRegion */
            ifnull 144
       134: .line 573
            new java.awt.Rectangle
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       135: .line 574
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       136: .line 575
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       137: .line 576
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       138: .line 573
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            astore 27 /* imageBounds */
        start local 27 // java.awt.Rectangle imageBounds
       139: .line 577
            aload 26 /* sourceRegion */
            aload 27 /* imageBounds */
            invokevirtual java.awt.Rectangle.intersection:(Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
            astore 26 /* sourceRegion */
       140: .line 578
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.x:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       141: .line 579
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.y:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       142: .line 580
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.width:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       143: .line 581
            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 584
      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 585
            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 587
      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 588
            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 591
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceXSubsampling:()I
            istore 16 /* periodX */
       149: .line 592
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceYSubsampling:()I
            istore 17 /* periodY */
       150: .line 593
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingXOffset:()I
            istore 18 /* gridX */
       151: .line 594
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingYOffset:()I
            istore 19 /* gridY */
       152: .line 596
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getCompressionMode:()I
            tableswitch { // 0 - 2
                    0: 153
                    1: 164
                    2: 154
              default: 167
          }
       153: .line 598
      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 600
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getCompressionQuality:()F
            fstore 27 /* quality */
        start local 27 // float quality
       155: .line 601
            fload 27 /* quality */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.convertToLinearQuality:(F)F
            fstore 27 /* quality */
       156: .line 602
            iconst_2
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 20 /* qTables */
       157: .line 603
            aload 20 /* qTables */
            iconst_0
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K1Luminance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
       158: .line 604
            fload 27 /* quality */
            iconst_1
       159: .line 603
            invokevirtual javax.imageio.plugins.jpeg.JPEGQTable.getScaledInstance:(FZ)Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       160: .line 605
            aload 20 /* qTables */
            iconst_1
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K2Chrominance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
       161: .line 606
            fload 27 /* quality */
            iconst_1
       162: .line 605
            invokevirtual javax.imageio.plugins.jpeg.JPEGQTable.getScaledInstance:(FZ)Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       163: .line 607
            goto 167
        end local 27 // float quality
       164: .line 609
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 20 /* qTables */
       165: .line 610
            aload 20 /* qTables */
            iconst_0
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K1Div2Luminance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       166: .line 611
            aload 20 /* qTables */
            iconst_1
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K2Div2Chrominance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       167: .line 616
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getProgressiveMode:()I
            istore 25 /* progressiveMode */
       168: .line 618
            aload 3 /* param */
            instanceof javax.imageio.plugins.jpeg.JPEGImageWriteParam
            ifeq 171
       169: .line 619
            aload 3 /* param */
            checkcast javax.imageio.plugins.jpeg.JPEGImageWriteParam
            astore 24 /* jparam */
       170: .line 620
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getOptimizeHuffmanTables:()Z
            istore 23 /* optimizeHuffman */
        end local 26 // java.awt.Rectangle sourceRegion
       171: .line 625
      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 626
            aload 26 /* mdata */
            ifnull 190
       173: .line 627
            aload 26 /* mdata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 180
       174: .line 628
            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 629
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 190
       176: .line 630
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       177: .line 631
            ldc "We have metadata, and it's JPEG metadata"
       178: .line 630
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       179: .line 633
            goto 190
       180: .line 634
      StackMap locals: javax.imageio.metadata.IIOMetadata
      StackMap stack:
            iload 4 /* rasterOnly */
            ifne 189
       181: .line 635
            aload 13 /* destType */
            astore 27 /* type */
        start local 27 // javax.imageio.ImageTypeSpecifier type
       182: .line 636
            aload 27 /* type */
            ifnonnull 184
       183: .line 637
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
            astore 27 /* type */
       184: .line 639
      StackMap locals: javax.imageio.ImageTypeSpecifier
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 26 /* mdata */
       185: .line 640
            aload 27 /* type */
       186: .line 641
            aload 3 /* param */
       187: .line 639
            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 642
            goto 190
       189: .line 643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 7
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       190: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       191: .line 651
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
       192: .line 652
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       193: .line 653
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
       194: .line 654
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
       195: .line 657
            iconst_0
            istore 27 /* inCsType */
        start local 27 // int inCsType
       196: .line 658
            iconst_0
            istore 28 /* outCsType */
        start local 28 // int outCsType
       197: .line 660
            aconst_null
            astore 29 /* jfif */
        start local 29 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
       198: .line 661
            aconst_null
            astore 30 /* adobe */
        start local 30 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
       199: .line 662
            aconst_null
            astore 31 /* sof */
        start local 31 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
       200: .line 664
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 210
       201: .line 665
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       202: .line 666
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       203: .line 665
            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 667
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       205: .line 668
            ldc Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
            iconst_1
       206: .line 667
            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 669
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       208: .line 670
            ldc Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            iconst_1
       209: .line 669
            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 673
      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 674
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
       212: .line 675
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
       213: .line 677
            aload 13 /* destType */
            ifnull 240
       214: .line 678
            iload 9 /* numBandsUsed */
            aload 13 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getNumBands:()I
            if_icmpeq 218
       215: .line 679
            new javax.imageio.IIOException
            dup
       216: .line 680
            ldc "Number of source bands != number of destination bands"
       217: .line 679
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
       218: .line 682
      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 684
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 227
       220: .line 685
            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 687
            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 689
            aload 29 /* jfif */
            ifnull 225
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
            ifne 225
       223: .line 690
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 225
       224: .line 691
            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 694
      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 696
            goto 237
       227: .line 698
      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 699
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
       229: .line 701
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 236
       230: .line 702
            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 704
            goto 236
       232: .line 705
      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 706
            iload 32 /* transform */
            iconst_m1
            if_icmpeq 236
       234: .line 707
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
       235: .line 708
            aload 0 /* this */
            iload 32 /* transform */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        end local 32 // int transform
       236: .line 712
      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 714
      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 715
            aload 0 /* this */
            aload 13 /* destType */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljavax/imageio/ImageTypeSpecifier;)I
            istore 28 /* outCsType */
       239: .line 716
            goto 307
       240: .line 717
      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 718
            iload 11 /* fullImage */
            ifeq 307
       242: .line 720
            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 721
            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 720
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       245: .line 722
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       246: .line 723
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       247: .line 722
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            ifnull 251
       248: .line 724
            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 725
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 251
       250: .line 726
            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 730
      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 731
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/RenderedImage;)I
            istore 28 /* outCsType */
       253: .line 735
            goto 307
       254: .line 736
      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 737
            iload 11 /* fullImage */
            ifeq 307
       256: .line 741
            new javax.imageio.ImageTypeSpecifier
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
       257: .line 743
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/RenderedImage;)I
            istore 27 /* inCsType */
       258: .line 745
            aload 7 /* cm */
            ifnull 307
       259: .line 746
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            istore 32 /* alpha */
        start local 32 // boolean alpha
       260: .line 747
            aload 8 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 5 - 6
                    5: 276
                    6: 261
              default: 307
          }
       261: .line 749
      StackMap locals: int
      StackMap stack:
            iload 32 /* alpha */
            ifne 264
       262: .line 750
            iconst_1
            istore 28 /* outCsType */
       263: .line 751
            goto 269
       264: .line 752
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 269
       265: .line 753
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       266: .line 754
            aload 0 /* this */
       267: .line 755
            iconst_5
       268: .line 754
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       269: .line 759
      StackMap locals:
      StackMap stack:
            aload 30 /* adobe */
            ifnull 307
       270: .line 760
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            ifeq 307
       271: .line 761
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       272: .line 762
            aload 0 /* this */
       273: .line 763
            bipush 6
       274: .line 762
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       275: .line 765
            goto 307
       276: .line 767
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 285
       277: .line 768
            iconst_3
            istore 28 /* outCsType */
       278: .line 769
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifne 281
       279: .line 770
            aload 8 /* cs */
            instanceof java.awt.color.ICC_ColorSpace
            ifeq 307
       280: .line 771
            aload 29 /* jfif */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.iccSegment:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$ICCMarkerSegment;
            ifnull 307
       281: .line 772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       282: .line 773
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
       283: .line 772
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       284: .line 775
            goto 307
      StackMap locals:
      StackMap stack:
       285: aload 30 /* adobe */
            ifnull 297
       286: .line 776
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            tableswitch { // 0 - 1
                    0: 287
                    1: 289
              default: 291
          }
       287: .line 778
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 28 /* outCsType */
       288: .line 779
            goto 307
       289: .line 781
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 28 /* outCsType */
       290: .line 782
            goto 307
       291: .line 784
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       292: .line 785
            bipush 6
       293: .line 784
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       294: .line 786
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       295: .line 787
            iconst_2
            istore 28 /* outCsType */
       296: .line 790
            goto 307
       297: .line 792
      StackMap locals:
      StackMap stack:
            aload 31 /* sof */
            invokevirtual com.sun.imageio.plugins.jpeg.SOFMarkerSegment.getIDencodedCSType:()I
            istore 33 /* outCS */
        start local 33 // int outCS
       298: .line 795
            iload 33 /* outCS */
            ifeq 301
       299: .line 796
            iload 33 /* outCS */
            istore 28 /* outCsType */
       300: .line 797
            goto 307
       301: .line 799
      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
       302: .line 798
            istore 34 /* subsampled */
        start local 34 // boolean subsampled
       303: .line 800
            iload 34 /* subsampled */
            ifeq 306
       304: .line 801
            iconst_3
            istore 28 /* outCsType */
       305: .line 802
            goto 307
       306: .line 803
      StackMap locals: int
      StackMap stack:
            iconst_2
            istore 28 /* outCsType */
        end local 34 // boolean subsampled
        end local 33 // int outCS
        end local 32 // boolean alpha
       307: .line 814
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 32 /* metadataProgressive */
        start local 32 // boolean metadataProgressive
       308: .line 815
            aconst_null
            astore 33 /* scans */
        start local 33 // int[] scans
       309: .line 817
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 324
       310: .line 818
            aload 31 /* sof */
            ifnonnull 314
       311: .line 819
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       312: .line 820
            ldc Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            iconst_1
       313: .line 819
            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 */
       314: .line 822
      StackMap locals: int int[]
      StackMap stack:
            aload 31 /* sof */
            ifnull 320
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.tag:I
            sipush 194
            if_icmpne 320
       315: .line 823
            iconst_1
            istore 32 /* metadataProgressive */
       316: .line 824
            iload 25 /* progressiveMode */
            iconst_3
            if_icmpne 319
       317: .line 825
            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 */
       318: .line 826
            goto 320
       319: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
       320: .line 830
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnonnull 324
       321: .line 831
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       322: .line 832
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       323: .line 831
            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 */
       324: .line 836
      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;
       325: .line 837
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getNumThumbnails:()I
            istore 34 /* numThumbs */
        start local 34 // int numThumbs
       326: .line 838
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
       327: .line 842
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifne 349
       328: .line 844
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 333
       329: .line 845
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       330: .line 846
            iload 34 /* numThumbs */
            ifeq 349
       331: .line 847
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       332: .line 849
            goto 349
       333: .line 853
      StackMap locals: int
      StackMap stack:
            iload 11 /* fullImage */
            ifne 339
       334: .line 854
            aload 29 /* jfif */
            ifnonnull 349
       335: .line 855
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       336: .line 856
            iload 34 /* numThumbs */
            ifeq 349
       337: .line 857
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       338: .line 860
            goto 349
       339: .line 861
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnonnull 349
       340: .line 863
            iload 28 /* outCsType */
            iconst_1
            if_icmpeq 342
       341: .line 864
            iload 28 /* outCsType */
            iconst_3
            if_icmpne 346
       342: .line 865
      StackMap locals:
      StackMap stack:
            iload 34 /* numThumbs */
            ifeq 349
       343: .line 866
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
       344: .line 867
            aload 0 /* this */
            bipush 11
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       345: .line 869
            goto 349
       346: .line 870
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       347: .line 871
            iload 34 /* numThumbs */
            ifeq 349
       348: .line 872
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       349: .line 883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 351
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifne 351
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
            ifne 351
       350: .line 882
            iconst_0
            goto 352
      StackMap locals:
      StackMap stack:
       351: iconst_1
      StackMap locals:
      StackMap stack: int
       352: istore 35 /* haveMetadata */
        start local 35 // boolean haveMetadata
       353: .line 888
            iconst_1
            istore 36 /* writeDQT */
        start local 36 // boolean writeDQT
       354: .line 889
            iconst_1
            istore 37 /* writeDHT */
        start local 37 // boolean writeDHT
       355: .line 892
            aconst_null
            astore 38 /* dqt */
        start local 38 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
       356: .line 893
            aconst_null
            astore 39 /* dht */
        start local 39 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
       357: .line 895
            iconst_0
            istore 40 /* restartInterval */
        start local 40 // int restartInterval
       358: .line 897
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 375
       359: .line 898
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       360: .line 899
            ldc Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
            iconst_1
       361: .line 898
            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 */
       362: .line 900
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       363: .line 901
            ldc Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
            iconst_1
       364: .line 900
            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 */
       365: .line 903
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       366: .line 904
            ldc Lcom/sun/imageio/plugins/jpeg/DRIMarkerSegment;
            iconst_1
       367: .line 903
            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
       368: .line 902
            astore 41 /* dri */
        start local 41 // com.sun.imageio.plugins.jpeg.DRIMarkerSegment dri
       369: .line 905
            aload 41 /* dri */
            ifnull 371
       370: .line 906
            aload 41 /* dri */
            getfield com.sun.imageio.plugins.jpeg.DRIMarkerSegment.restartInterval:I
            istore 40 /* restartInterval */
       371: .line 909
      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 373
       372: .line 910
            iconst_0
            istore 36 /* writeDQT */
       373: .line 912
      StackMap locals:
      StackMap stack:
            aload 39 /* dht */
            ifnonnull 375
       374: .line 913
            iconst_0
            istore 37 /* writeDHT */
        end local 41 // com.sun.imageio.plugins.jpeg.DRIMarkerSegment dri
       375: .line 919
      StackMap locals:
      StackMap stack:
            aload 20 /* qTables */
            ifnonnull 386
       376: .line 920
            aload 38 /* dqt */
            ifnull 379
       377: .line 921
            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 */
       378: .line 922
            goto 386
      StackMap locals:
      StackMap stack:
       379: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            ifnull 382
       380: .line 923
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       381: .line 924
            goto 386
      StackMap locals:
      StackMap stack:
       382: aload 24 /* jparam */
            ifnull 385
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.areTablesSet:()Z
            ifeq 385
       383: .line 925
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       384: .line 926
            goto 386
       385: .line 927
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       386: .line 933
      StackMap locals:
      StackMap stack:
            iload 23 /* optimizeHuffman */
            ifne 401
       387: .line 935
            aload 39 /* dht */
            ifnull 391
            iload 32 /* metadataProgressive */
            ifne 391
       388: .line 936
            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 */
       389: .line 937
            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 */
       390: .line 938
            goto 401
      StackMap locals:
      StackMap stack:
       391: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnull 395
       392: .line 939
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       393: .line 940
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       394: .line 941
            goto 401
      StackMap locals:
      StackMap stack:
       395: aload 24 /* jparam */
            ifnull 399
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.areTablesSet:()Z
            ifeq 399
       396: .line 942
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getDCHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       397: .line 943
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getACHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       398: .line 944
            goto 401
       399: .line 945
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       400: .line 946
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       401: .line 951
      StackMap locals:
      StackMap stack:
            iload 9 /* numBandsUsed */
            newarray 10
            astore 41 /* componentIds */
        start local 41 // int[] componentIds
       402: .line 952
            iload 9 /* numBandsUsed */
            newarray 10
            astore 42 /* HsamplingFactors */
        start local 42 // int[] HsamplingFactors
       403: .line 953
            iload 9 /* numBandsUsed */
            newarray 10
            astore 43 /* VsamplingFactors */
        start local 43 // int[] VsamplingFactors
       404: .line 954
            iload 9 /* numBandsUsed */
            newarray 10
            astore 44 /* QtableSelectors */
        start local 44 // int[] QtableSelectors
       405: .line 955
            iconst_0
            istore 45 /* i */
        start local 45 // int i
       406: goto 412
       407: .line 956
      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
       408: .line 957
            aload 42 /* HsamplingFactors */
            iload 45 /* i */
            iconst_1
            iastore
       409: .line 958
            aload 43 /* VsamplingFactors */
            iload 45 /* i */
            iconst_1
            iastore
       410: .line 959
            aload 44 /* QtableSelectors */
            iload 45 /* i */
            iconst_0
            iastore
       411: .line 955
            iinc 45 /* i */ 1
      StackMap locals:
      StackMap stack:
       412: iload 45 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 407
        end local 45 // int i
       413: .line 963
            aload 31 /* sof */
            ifnull 423
       414: .line 964
            iconst_0
            istore 45 /* i */
        start local 45 // int i
       415: goto 422
       416: .line 965
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
            ifne 418
       417: .line 966
            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
       418: .line 968
      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
       419: .line 969
            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
       420: .line 970
            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
       421: .line 964
            iinc 45 /* i */ 1
      StackMap locals:
      StackMap stack:
       422: iload 45 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 416
        end local 45 // int i
       423: .line 974
      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
       424: .line 975
            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
       425: .line 976
            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
       426: .line 977
            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
       427: .line 979
            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
       428: .line 980
            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
       429: .line 983
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 9 /* numBandsUsed */
            imul
            istore 47 /* lineSize */
        start local 47 // int lineSize
       430: .line 985
            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
       431: .line 988
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            iload 9 /* numBandsUsed */
            iconst_1
            isub
            aaload
            astore 49 /* bandOffs */
        start local 49 // int[] bandOffs
       432: .line 990
            aload 0 /* this */
            aload 48 /* buffer */
       433: .line 991
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
       434: .line 992
            iload 47 /* lineSize */
       435: .line 993
            iload 9 /* numBandsUsed */
       436: .line 994
            aload 49 /* bandOffs */
       437: .line 995
            aconst_null
       438: .line 990
            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;
       439: .line 999
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearAbortRequest:()V
       440: .line 1000
            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
       441: .line 1002
            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
       442: .line 1003
            goto 446
      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
       443: astore 50
       444: .line 1004
            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
       445: .line 1005
            aload 50
            athrow
       446: .line 1004
      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
       447: .line 1007
            iconst_0
            istore 50 /* aborted */
        start local 50 // boolean aborted
       448: .line 1009
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 451
       449: .line 1010
            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
       450: .line 1011
            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
       451: .line 1017
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
       452: .line 1018
            aload 48 /* buffer */
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
       453: .line 1019
            iload 27 /* inCsType */
            iload 28 /* outCsType */
       454: .line 1020
            iload 9 /* numBandsUsed */
       455: .line 1021
            aload 12 /* bandSizes */
       456: .line 1022
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       457: .line 1023
            iload 45 /* destWidth */
            iload 46 /* destHeight */
       458: .line 1024
            iload 16 /* periodX */
            iload 17 /* periodY */
       459: .line 1025
            aload 20 /* qTables */
       460: .line 1026
            iload 36 /* writeDQT */
       461: .line 1027
            aload 21 /* DCHuffmanTables */
       462: .line 1028
            aload 22 /* ACHuffmanTables */
       463: .line 1029
            iload 37 /* writeDHT */
       464: .line 1030
            iload 23 /* optimizeHuffman */
       465: .line 1031
            iload 25 /* progressiveMode */
            ifeq 466
            iconst_1
            goto 467
      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
       466: iconst_0
       467: .line 1033
      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
       468: .line 1034
            aload 33 /* scans */
       469: .line 1035
            aload 41 /* componentIds */
       470: .line 1036
            aload 42 /* HsamplingFactors */
       471: .line 1037
            aload 43 /* VsamplingFactors */
       472: .line 1038
            aload 44 /* QtableSelectors */
       473: .line 1039
            iload 35 /* haveMetadata */
       474: .line 1040
            iload 40 /* restartInterval */
       475: .line 1017
            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 */
       476: .line 1042
            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
       477: .line 1044
            iload 50 /* aborted */
            ifeq 480
       478: .line 1045
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWriteAborted:()V
       479: .line 1046
            goto 481
       480: .line 1047
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageComplete:()V
       481: .line 1050
      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
       482: .line 1051
            goto 486
      StackMap locals:
      StackMap stack: java.lang.Throwable
       483: astore 51
       484: .line 1052
            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
       485: .line 1053
            aload 51
            athrow
       486: .line 1052
      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
       487: .line 1054
            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
       488: .line 1055
            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  489     0                 this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0  489     1       streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0  489     2                image  Ljavax/imageio/IIOImage;
            0  489     3                param  Ljavax/imageio/ImageWriteParam;
            7  489     4           rasterOnly  Z
            8  489     5               rimage  Ljava/awt/image/RenderedImage;
           33  489     6          numSrcBands  I
           36  489     7                   cm  Ljava/awt/image/ColorModel;
           37  489     8                   cs  Ljava/awt/color/ColorSpace;
           52  489     9         numBandsUsed  I
           54   64    10               sBands  [I
           67  489    10      usingBandSubset  Z
           70  489    11            fullImage  Z
           71  489    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  489    13             destType  Ljavax/imageio/ImageTypeSpecifier;
          118  489    14           imageWidth  I
          119  489    15          imageHeight  I
          122  489    16              periodX  I
          123  489    17              periodY  I
          124  489    18                gridX  I
          125  489    19                gridY  I
          126  489    20              qTables  [Ljavax/imageio/plugins/jpeg/JPEGQTable;
          127  489    21      DCHuffmanTables  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
          128  489    22      ACHuffmanTables  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
          129  489    23      optimizeHuffman  Z
          130  489    24               jparam  Ljavax/imageio/plugins/jpeg/JPEGImageWriteParam;
          131  489    25      progressiveMode  I
          133  171    26         sourceRegion  Ljava/awt/Rectangle;
          139  144    27          imageBounds  Ljava/awt/Rectangle;
          155  164    27              quality  F
          172  489    26                mdata  Ljavax/imageio/metadata/IIOMetadata;
          182  188    27                 type  Ljavax/imageio/ImageTypeSpecifier;
          196  489    27             inCsType  I
          197  489    28            outCsType  I
          198  489    29                 jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
          199  489    30                adobe  Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
          200  489    31                  sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
          233  236    32            transform  I
          260  307    32                alpha  Z
          298  307    33                outCS  I
          303  307    34           subsampled  Z
          308  489    32  metadataProgressive  Z
          309  489    33                scans  [I
          326  489    34            numThumbs  I
          353  489    35         haveMetadata  Z
          354  489    36             writeDQT  Z
          355  489    37             writeDHT  Z
          356  489    38                  dqt  Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
          357  489    39                  dht  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
          358  489    40      restartInterval  I
          369  375    41                  dri  Lcom/sun/imageio/plugins/jpeg/DRIMarkerSegment;
          402  489    41         componentIds  [I
          403  489    42     HsamplingFactors  [I
          404  489    43     VsamplingFactors  [I
          405  489    44      QtableSelectors  [I
          406  413    45                    i  I
          415  423    45                    i  I
          428  489    45            destWidth  I
          429  489    46           destHeight  I
          430  489    47             lineSize  I
          431  489    48               buffer  Ljava/awt/image/DataBufferByte;
          432  489    49             bandOffs  [I
          448  489    50              aborted  Z
      Exception table:
        from    to  target  type
         441   443     443  any
         477   483     483  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 1059
            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 1065
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1067
            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 1069
            aload 0 /* this */
            aload 1 /* streamMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.prepareWriteSequenceOnThread:(Ljavax/imageio/metadata/IIOMetadata;)V
         3: .line 1070
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 1071
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1072
            aload 2
            athrow
         7: .line 1071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1073
            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 1077
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 1078
            new java.lang.IllegalStateException
            dup
            ldc "Output has not been set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1090
      StackMap locals:
      StackMap stack:
            aload 1 /* streamMetadata */
            ifnull 39
         3: .line 1091
            aload 1 /* streamMetadata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 38
         4: .line 1094
            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 1095
            aload 2 /* jmeta */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifne 9
         6: .line 1096
            new java.lang.IllegalArgumentException
            dup
         7: .line 1097
            ldc "Invalid stream metadata object."
         8: .line 1096
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1102
      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 1103
            new javax.imageio.IIOException
            dup
        11: .line 1104
            ldc "JPEG Stream metadata must precede all images"
        12: .line 1103
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifeq 15
        14: .line 1107
            new javax.imageio.IIOException
            dup
            ldc "Stream metadata already written!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1112
      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 1113
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 20
        17: .line 1114
            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 1116
            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 1114
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 1118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            ifnonnull 22
        21: .line 1119
            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 1121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        23: .line 1122
            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 1121
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        25: .line 1123
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnonnull 27
        26: .line 1124
            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 1126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        28: .line 1127
            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 1126
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        30: .line 1128
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnonnull 32
        31: .line 1129
            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 1133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
        33: .line 1134
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        34: .line 1135
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        35: .line 1136
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        36: .line 1133
            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 1137
            goto 39
        38: .line 1138
      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 1141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
        40: .line 1142
            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 1147
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1149
            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 1151
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifne 4
         3: .line 1152
            new java.lang.IllegalStateException
            dup
            ldc "sequencePrepared not called!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1155
      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 1156
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 1157
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1158
            aload 3
            athrow
         9: .line 1157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1159
            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 1163
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1165
            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 1167
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifne 4
         3: .line 1168
            new java.lang.IllegalStateException
            dup
            ldc "sequencePrepared not called!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
         5: .line 1171
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1172
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1173
            aload 1
            athrow
         9: .line 1172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1174
            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 1178
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1184
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.abort:()V
         2: .line 1185
            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 1186
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1187
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1188
            aload 1
            athrow
         7: .line 1187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1189
            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 1193
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1195
            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 1196
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.abortRequested:()Z
            ifeq 10
         3: .line 1197
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.clearAbortRequest:()V
         4: .line 1199
            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 1201
            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 1203
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 1
         8: .line 1204
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         9: .line 1205
            aload 1
            athrow
        10: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        11: .line 1206
            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 1210
            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 1213
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
         2: .line 1214
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
         3: .line 1215
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
         4: .line 1216
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
         5: .line 1217
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
         6: .line 1218
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         7: .line 1219
            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 1223
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1225
            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 1227
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.reset:()V
         3: .line 1228
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1229
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1230
            aload 1
            athrow
         7: .line 1229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1231
            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 1235
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1237
            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 1239
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            lconst_0
            lcmp
            ifeq 9
         3: .line 1240
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
            invokeinterface sun.java2d.DisposerRecord.dispose:()V
         4: .line 1241
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
         5: .line 1243
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1244
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1245
            aload 1
            athrow
         9: .line 1244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1246
            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 1258
            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 1260
            iload 1 /* code */
            iflt 2
            iload 1 /* code */
            bipush 15
            if_icmple 3
         2: .line 1261
      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 1263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 1264
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
         5: .line 1265
            ldc "com.sun.imageio.plugins.jpeg.JPEGImageWriterResources"
         6: .line 1266
            iload 1 /* code */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
         7: .line 1263
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWarningOccurred:(ILjava/lang/String;Ljava/lang/String;)V
         8: .line 1267
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 1268
            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 1269
            aload 2
            athrow
        12: .line 1268
      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 1270
            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 1286
            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 1288
            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 1289
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1290
            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 1291
            aload 2
            athrow
         6: .line 1290
      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 1292
            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 1295
            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 1297
            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 1298
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1299
            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 1300
            aload 2
            athrow
         6: .line 1299
      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 1301
            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 1305
            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 1307
            aload 0 /* this */
            fload 1 /* percentageDone */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailProgress:(F)V
         2: .line 1308
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1309
            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 1310
            aload 2
            athrow
         6: .line 1309
      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 1311
            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 1315
            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 1317
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailComplete:()V
         2: .line 1318
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 1319
            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 1320
            aload 1
            athrow
         6: .line 1319
      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 1321
            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 1332
            aload 1 /* sof */
            ifnull 5
         1: .line 1333
            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 1334
            new javax.imageio.IIOException
            dup
         3: .line 1335
            ldc "Metadata components != number of destination bands"
         4: .line 1334
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1338
      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 1343
            aload 1 /* jfif */
            ifnull 7
         1: .line 1344
            aload 2 /* type */
            iload 3 /* input */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifne 7
         2: .line 1345
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
         3: .line 1346
            aload 0 /* this */
            iload 3 /* input */
            ifeq 5
         4: .line 1347
            iconst_5
            goto 6
         5: .line 1348
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter
            iconst_3
         6: .line 1346
      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 1351
      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 1356
            aload 1 /* adobe */
            ifnull 11
         1: .line 1357
            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 1358
            aload 1 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            iload 4 /* rightTransform */
            if_icmpeq 11
         3: .line 1359
            aload 0 /* this */
            iload 3 /* input */
            ifeq 5
         4: .line 1360
            bipush 6
            goto 6
         5: .line 1361
      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 1359
      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 1362
            iload 4 /* rightTransform */
            iconst_m1
            if_icmpne 10
         8: .line 1363
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
         9: .line 1364
            goto 11
        10: .line 1365
      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 1369
      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 1379
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* segments */
        start local 3 // java.util.List segments
         1: .line 1380
            bipush 9
            istore 4 /* SCAN_SIZE */
        start local 4 // int SCAN_SIZE
         2: .line 1381
            iconst_4
            istore 5 /* MAX_COMPS_PER_SCAN */
        start local 5 // int MAX_COMPS_PER_SCAN
         3: .line 1382
            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 1383
            goto 8
         5: .line 1384
      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 1385
            aload 7 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            ifeq 8
         7: .line 1386
            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 1383
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 6 // java.util.Iterator iter
         9: .line 1389
            aconst_null
            astore 6 /* retval */
        start local 6 // int[] retval
        10: .line 1390
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        11: .line 1391
            aload 3 /* segments */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 40
        12: .line 1392
            aload 0 /* this */
            aload 3 /* segments */
            invokeinterface java.util.List.size:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        13: .line 1393
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
            iload 4 /* SCAN_SIZE */
            imul
            newarray 10
            astore 6 /* retval */
        14: .line 1394
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        15: .line 1395
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        16: goto 39
        17: .line 1396
      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 1397
            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 1398
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        20: goto 33
        21: .line 1399
      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 1400
            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 1401
            iconst_0
            istore 12 /* k */
        start local 12 // int k
        24: goto 29
        25: .line 1402
      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 1403
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            iload 12 /* k */
            iastore
        27: .line 1404
            goto 32
        28: .line 1401
      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 1407
            goto 32
        31: .line 1408
      StackMap locals:
      StackMap stack:
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            iconst_0
            iastore
        32: .line 1398
      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 1411
            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 1412
            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 1413
            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 1414
            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 1395
            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 1417
      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 1426
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* tables */
        start local 2 // java.util.ArrayList tables
         1: .line 1427
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 3 /* seg */
        start local 3 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         3: .line 1428
            aload 3 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.DQTMarkerSegment
            ifeq 7
         4: .line 1430
            aload 3 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment
         5: .line 1429
            astore 5 /* dqt */
        start local 5 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
         6: .line 1431
            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 3 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         7: .line 1427
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 1434
            aconst_null
            astore 3 /* retval */
        start local 3 // javax.imageio.plugins.jpeg.JPEGQTable[] retval
         9: .line 1435
            aload 2 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 18
        10: .line 1436
            aload 2 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 3 /* retval */
        11: .line 1437
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 17
        13: .line 1438
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata java.util.ArrayList javax.imageio.plugins.jpeg.JPEGQTable[] int
      StackMap stack:
            aload 3 /* retval */
            iload 4 /* i */
        14: .line 1439
            new javax.imageio.plugins.jpeg.JPEGQTable
            dup
            aload 2 /* tables */
            iload 4 /* 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
        15: .line 1438
            aastore
        16: .line 1437
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            aload 3 /* retval */
            arraylength
            if_icmplt 13
        end local 4 // int i
        18: .line 1442
      StackMap locals:
      StackMap stack:
            aload 3 /* retval */
            areturn
        end local 3 // javax.imageio.plugins.jpeg.JPEGQTable[] retval
        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   19     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   19     1  metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            1   19     2    tables  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment$Qtable;>;
            3    7     3       seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            6    7     5       dqt  Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
            9   19     3    retval  [Ljavax/imageio/plugins/jpeg/JPEGQTable;
           12   18     4         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 1454
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* tables */
        start local 3 // java.util.ArrayList tables
         1: .line 1455
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 5
            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
         3: .line 1456
            aload 4 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            ifeq 14
         4: .line 1457
            aload 4 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            astore 6 /* dht */
        start local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
         5: .line 1458
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 13
         7: .line 1459
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList com.sun.imageio.plugins.jpeg.MarkerSegment java.util.Iterator 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
         8: .line 1460
            aload 8 /* htable */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.tableClass:I
            iload 2 /* wantDC */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList com.sun.imageio.plugins.jpeg.MarkerSegment java.util.Iterator com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
      StackMap stack: int
         9: iconst_1
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList com.sun.imageio.plugins.jpeg.MarkerSegment java.util.Iterator com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
      StackMap stack: int int
        10: if_icmpne 12
        11: .line 1461
            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
        12: .line 1458
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: 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 7
        end local 7 // int i
        end local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
        end local 4 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
        14: .line 1455
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        15: .line 1466
            aconst_null
            astore 4 /* retval */
        start local 4 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] retval
        16: .line 1467
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 36
        17: .line 1469
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
        18: .line 1468
            astore 5 /* htables */
        start local 5 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] htables
        19: .line 1470
            aload 3 /* tables */
            aload 5 /* htables */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        20: .line 1471
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray javax.imageio.plugins.jpeg.JPEGHuffmanTable
            astore 4 /* retval */
        21: .line 1472
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        22: goto 35
        23: .line 1473
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList javax.imageio.plugins.jpeg.JPEGHuffmanTable[] com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] int
      StackMap stack:
            aload 4 /* retval */
            iload 6 /* i */
            aconst_null
            aastore
        24: .line 1474
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        25: goto 33
        26: .line 1475
      StackMap locals: int
      StackMap stack:
            aload 5 /* htables */
            iload 7 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.tableID:I
            iload 6 /* i */
            if_icmpne 32
        27: .line 1476
            aload 4 /* retval */
            iload 6 /* i */
            aaload
            ifnull 29
        28: .line 1477
            new javax.imageio.IIOException
            dup
            ldc "Metadata has duplicate Htables!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 1479
      StackMap locals:
      StackMap stack:
            aload 4 /* retval */
            iload 6 /* i */
            new javax.imageio.plugins.jpeg.JPEGHuffmanTable
            dup
            aload 5 /* htables */
            iload 7 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.numCodes:[S
        30: .line 1480
            aload 5 /* htables */
            iload 7 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.values:[S
            invokespecial javax.imageio.plugins.jpeg.JPEGHuffmanTable.<init>:([S[S)V
        31: .line 1479
            aastore
        32: .line 1474
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        33: iload 7 /* j */
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 26
        end local 7 // int j
        34: .line 1472
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 6 /* i */
            aload 4 /* retval */
            arraylength
            if_icmplt 23
        end local 6 // int i
        end local 5 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] htables
        36: .line 1486
      StackMap locals:
      StackMap stack:
            aload 4 /* retval */
            areturn
        end local 4 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] retval
        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   37     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   37     1  metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            0   37     2    wantDC  Z
            1   37     3    tables  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;>;
            3   14     4       seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            5   14     6       dht  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
            6   14     7         i  I
            8   12     8    htable  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;
           16   37     4    retval  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
           19   36     5   htables  [Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;
           22   36     6         i  I
           25   34     7         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 1494
            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 1498
            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=1, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.ColorModel cm
         0: .line 1502
            iconst_0
            istore 2 /* retval */
        start local 2 // int retval
         1: .line 1503
            aload 1 /* cm */
            ifnull 12
         2: .line 1504
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            pop
         3: .line 1505
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 3 /* cs */
        start local 3 // java.awt.color.ColorSpace cs
         4: .line 1506
            aload 3 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 9
                    3: 9
                    4: 12
                    5: 7
                    6: 5
                    7: 12
                    8: 12
                    9: 11
              default: 12
          }
         5: .line 1508
      StackMap locals: int java.awt.color.ColorSpace
      StackMap stack:
            iconst_1
            istore 2 /* retval */
         6: .line 1509
            goto 12
         7: .line 1511
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 2 /* retval */
         8: .line 1512
            goto 12
         9: .line 1514
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        10: .line 1515
            goto 12
        11: .line 1517
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 2 /* retval */
        end local 3 // java.awt.color.ColorSpace cs
        12: .line 1521
      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   13     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   13     1      cm  Ljava/awt/image/ColorModel;
            1   13     2  retval  I
            4   12     3      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=1, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier destType
         0: .line 1525
            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 1526
            aload 2 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            pop
         2: .line 1527
            aload 2 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 3 /* cs */
        start local 3 // java.awt.color.ColorSpace cs
         3: .line 1528
            iconst_0
            istore 4 /* retval */
        start local 4 // int retval
         4: .line 1529
            aload 3 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 9
                    3: 9
                    4: 12
                    5: 7
                    6: 5
                    7: 12
                    8: 12
                    9: 11
              default: 12
          }
         5: .line 1531
      StackMap locals: java.awt.image.ColorModel java.awt.color.ColorSpace int
      StackMap stack:
            iconst_1
            istore 4 /* retval */
         6: .line 1532
            goto 12
         7: .line 1534
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 4 /* retval */
         8: .line 1535
            goto 12
         9: .line 1537
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 4 /* retval */
        10: .line 1538
            goto 12
        11: .line 1540
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 4 /* retval */
        12: .line 1543
      StackMap locals:
      StackMap stack:
            iload 4 /* retval */
            ireturn
        end local 4 // int retval
        end local 3 // java.awt.color.ColorSpace cs
        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   13     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   13     1  destType  Ljavax/imageio/ImageTypeSpecifier;
            1   13     2        cm  Ljava/awt/image/ColorModel;
            3   13     3        cs  Ljava/awt/color/ColorSpace;
            4   13     4    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 1547
            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 1551
            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=1, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.ColorModel cm
         0: .line 1555
            iconst_0
            istore 2 /* retval */
        start local 2 // int retval
         1: .line 1556
            aload 1 /* cm */
            ifnull 12
         2: .line 1557
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            pop
         3: .line 1558
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 3 /* cs */
        start local 3 // java.awt.color.ColorSpace cs
         4: .line 1559
            aload 3 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 9
                    3: 9
                    4: 12
                    5: 7
                    6: 5
                    7: 12
                    8: 12
                    9: 11
              default: 12
          }
         5: .line 1561
      StackMap locals: int java.awt.color.ColorSpace
      StackMap stack:
            iconst_1
            istore 2 /* retval */
         6: .line 1562
            goto 12
         7: .line 1564
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
         8: .line 1565
            goto 12
         9: .line 1567
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        10: .line 1568
            goto 12
        11: .line 1570
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 2 /* retval */
        end local 3 // java.awt.color.ColorSpace cs
        12: .line 1574
      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   13     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   13     1      cm  Ljava/awt/image/ColorModel;
            1   13     2  retval  I
            4   12     3      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 1578
            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 1579
            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 1580
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 1581
      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 1582
            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 1583
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1580
      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 1585
            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 1637
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 10
         1: .line 1638
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifeq 7
         2: .line 1639
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         3: .line 1640
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
         4: .line 1641
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
         5: .line 1642
            aload 0 /* this */
         6: .line 1639
            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 1644
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
            ifeq 19
         8: .line 1645
            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 1647
            goto 19
        10: .line 1648
      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 1649
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
        12: .line 1650
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
        13: .line 1651
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
        14: .line 1652
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
        15: .line 1653
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
        16: .line 1654
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        17: .line 1655
            aload 0 /* this */
        18: .line 1648
            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 1657
      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 1676
            aconst_null
            astore 2 /* sourceLine */
        start local 2 // java.awt.image.Raster sourceLine
         1: .line 1677
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 16
         2: .line 1678
            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 1679
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 1 /* y */
            iadd
         4: .line 1680
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
         5: .line 1681
            iconst_0
            iconst_0
         6: .line 1682
            iconst_1
            newarray 10
         7: .line 1678
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
         8: .line 1687
            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 1686
      StackMap locals:
      StackMap stack: int
            istore 3 /* forceARGB */
        start local 3 // boolean forceARGB
        11: .line 1688
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
            aload 2 /* sourceLine */
        12: .line 1689
            iload 3 /* forceARGB */
        13: .line 1688
            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 1690
            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 1691
            goto 22
        16: .line 1692
      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 1693
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 1 /* y */
            iadd
        18: .line 1694
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
        19: .line 1695
            iconst_0
            iconst_0
        20: .line 1696
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        21: .line 1692
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
        22: .line 1698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
            ifeq 27
        23: .line 1699
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 25
        24: .line 1700
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Converting to sRGB"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1705
      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 1706
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
            astore 2 /* sourceLine */
        27: .line 1708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
            ifeq 44
        28: .line 1709
            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 1710
            aconst_null
            astore 4 /* data */
        start local 4 // int[] data
        30: .line 1711
            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 1712
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getHeight:()I
        32: .line 1713
            aload 4 /* data */
        33: .line 1711
            invokevirtual java.awt.image.Raster.getPixels:(IIII[I)[I
            astore 4 /* data */
        34: .line 1714
            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 1715
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getHeight:()I
        36: .line 1716
            aload 4 /* data */
        37: .line 1714
            invokevirtual java.awt.image.WritableRaster.setPixels:(IIII[I)V
        38: .line 1717
            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 1718
            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 1719
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getWidth:()I
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getHeight:()I
        41: .line 1720
            iconst_0
            iconst_0
        42: .line 1721
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        43: .line 1718
            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 1723
      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 1724
            iload 1 /* y */
            bipush 7
            if_icmple 53
            iload 1 /* y */
            bipush 8
            irem
            ifne 53
        46: .line 1725
            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 1727
            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 1728
            goto 52
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 3
        50: .line 1729
            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 1730
            aload 3
            athrow
        52: .line 1729
      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 1732
      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 1770
            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 1772
            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 1773
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 1774
            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 1775
            aload 4
            athrow
         6: .line 1774
      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 1776
            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 1782
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1783
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            ifnull 10
         2: .line 1784
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 8
         3: .line 1787
            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 1788
            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 1789
            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 1790
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1787
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1792
      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 1794
            goto 12
        10: .line 1795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currThread */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
        11: .line 1796
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
        12: .line 1798
      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 1801
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1802
            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 1803
      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 1804
            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 1805
            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 1803
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1807
      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 1808
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            ifne 9
         8: .line 1809
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
         9: .line 1811
      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
  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