public final class javax.imageio.ImageIO
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: javax.imageio.ImageIO
  super_class: java.lang.Object
{
  private static final javax.imageio.spi.IIORegistry theRegistry;
    descriptor: Ljavax/imageio/spi/IIORegistry;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.reflect.Method readerFormatNamesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method readerFileSuffixesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method readerMIMETypesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method writerFormatNamesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method writerFileSuffixesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method writerMIMETypesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 66
            invokestatic javax.imageio.spi.IIORegistry.getDefaultInstance:()Ljavax/imageio/spi/IIORegistry;
         1: .line 65
            putstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
         2: .line 666
            ldc Ljavax/imageio/spi/ImageReaderSpi;
            ldc "getFormatNames"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         3: .line 665
            putstatic javax.imageio.ImageIO.readerFormatNamesMethod:Ljava/lang/reflect/Method;
         4: .line 668
            ldc Ljavax/imageio/spi/ImageReaderSpi;
            ldc "getFileSuffixes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         5: .line 667
            putstatic javax.imageio.ImageIO.readerFileSuffixesMethod:Ljava/lang/reflect/Method;
         6: .line 670
            ldc Ljavax/imageio/spi/ImageReaderSpi;
            ldc "getMIMETypes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         7: .line 669
            putstatic javax.imageio.ImageIO.readerMIMETypesMethod:Ljava/lang/reflect/Method;
         8: .line 673
            ldc Ljavax/imageio/spi/ImageWriterSpi;
            ldc "getFormatNames"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         9: .line 672
            putstatic javax.imageio.ImageIO.writerFormatNamesMethod:Ljava/lang/reflect/Method;
        10: .line 675
            ldc Ljavax/imageio/spi/ImageWriterSpi;
            ldc "getFileSuffixes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        11: .line 674
            putstatic javax.imageio.ImageIO.writerFileSuffixesMethod:Ljava/lang/reflect/Method;
        12: .line 677
            ldc Ljavax/imageio/spi/ImageWriterSpi;
            ldc "getMIMETypes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        13: .line 676
            putstatic javax.imageio.ImageIO.writerMIMETypesMethod:Ljava/lang/reflect/Method;
        14: .line 678
            goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        15: astore 0 /* e */
        start local 0 // java.lang.NoSuchMethodException e
        16: .line 679
            aload 0 /* e */
            invokevirtual java.lang.NoSuchMethodException.printStackTrace:()V
        end local 0 // java.lang.NoSuchMethodException e
        17: .line 681
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           16   17     0     e  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           2    14      15  Class java.lang.NoSuchMethodException

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.ImageIO this
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javax.imageio.ImageIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/ImageIO;

  public static void scanForPlugins();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 110
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            invokevirtual javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis:()V
         1: .line 111
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static synchronized javax.imageio.ImageIO$CacheInfo getCacheInfo();
    descriptor: ()Ljavax/imageio/ImageIO$CacheInfo;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=0
         0: .line 157
            invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
            astore 0 /* context */
        start local 0 // sun.awt.AppContext context
         1: .line 158
            aload 0 /* context */
            ldc Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.ImageIO$CacheInfo
            astore 1 /* info */
        start local 1 // javax.imageio.ImageIO$CacheInfo info
         2: .line 159
            aload 1 /* info */
            ifnonnull 5
         3: .line 160
            new javax.imageio.ImageIO$CacheInfo
            dup
            invokespecial javax.imageio.ImageIO$CacheInfo.<init>:()V
            astore 1 /* info */
         4: .line 161
            aload 0 /* context */
            ldc Ljavax/imageio/ImageIO$CacheInfo;
            aload 1 /* info */
            invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 163
      StackMap locals: sun.awt.AppContext javax.imageio.ImageIO$CacheInfo
      StackMap stack:
            aload 1 /* info */
            areturn
        end local 1 // javax.imageio.ImageIO$CacheInfo info
        end local 0 // sun.awt.AppContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    6     0  context  Lsun/awt/AppContext;
            2    6     1     info  Ljavax/imageio/ImageIO$CacheInfo;

  private static java.lang.String getTempDir();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 171
            new sun.security.action.GetPropertyAction
            dup
            ldc "java.io.tmpdir"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
            astore 0 /* a */
        start local 0 // sun.security.action.GetPropertyAction a
         1: .line 172
            aload 0 /* a */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // sun.security.action.GetPropertyAction a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0     a  Lsun/security/action/GetPropertyAction;

  private static boolean hasCachePermission();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=0
         0: .line 183
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual javax.imageio.ImageIO$CacheInfo.getHasPermission:()Ljava/lang/Boolean;
            astore 0 /* hasPermission */
        start local 0 // java.lang.Boolean hasPermission
         1: .line 185
            aload 0 /* hasPermission */
            ifnull 3
         2: .line 186
            aload 0 /* hasPermission */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         3: .line 189
      StackMap locals: java.lang.Boolean
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* security */
        start local 1 // java.lang.SecurityManager security
         4: .line 190
            aload 1 /* security */
            ifnull 22
         5: .line 191
            invokestatic javax.imageio.ImageIO.getCacheDirectory:()Ljava/io/File;
            astore 2 /* cachedir */
        start local 2 // java.io.File cachedir
         6: .line 194
            aload 2 /* cachedir */
            ifnull 9
         7: .line 195
            aload 2 /* cachedir */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 3 /* cachepath */
        start local 3 // java.lang.String cachepath
         8: .line 196
            goto 13
        end local 3 // java.lang.String cachepath
         9: .line 197
      StackMap locals: java.lang.SecurityManager java.io.File
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getTempDir:()Ljava/lang/String;
            astore 3 /* cachepath */
        start local 3 // java.lang.String cachepath
        10: .line 199
            aload 3 /* cachepath */
            ifnull 11
            aload 3 /* cachepath */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        11: .line 200
      StackMap locals: java.lang.String
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
        12: .line 201
            iconst_0
            ireturn
        13: .line 208
      StackMap locals:
      StackMap stack:
            aload 3 /* cachepath */
            astore 4 /* filepath */
        start local 4 // java.lang.String filepath
        14: .line 209
            aload 4 /* filepath */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 16
        15: .line 210
            new java.lang.StringBuilder
            dup
            aload 4 /* filepath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* filepath */
        16: .line 212
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* filepath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* filepath */
        17: .line 214
            aload 1 /* security */
            new java.io.FilePermission
            dup
            aload 4 /* filepath */
            ldc "read, write, delete"
            invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 4 // java.lang.String filepath
        end local 3 // java.lang.String cachepath
        end local 2 // java.io.File cachedir
        end local 1 // java.lang.SecurityManager security
        18: .line 216
            goto 22
      StackMap locals: java.lang.Boolean
      StackMap stack: java.lang.SecurityException
        19: pop
        20: .line 217
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
        21: .line 218
            iconst_0
            ireturn
        22: .line 221
      StackMap locals:
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
        23: .line 222
            iconst_1
            ireturn
        end local 0 // java.lang.Boolean hasPermission
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1   24     0  hasPermission  Ljava/lang/Boolean;
            4   18     1       security  Ljava/lang/SecurityManager;
            6   18     2       cachedir  Ljava/io/File;
            8    9     3      cachepath  Ljava/lang/String;
           10   18     3      cachepath  Ljava/lang/String;
           14   18     4       filepath  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3    12      19  Class java.lang.SecurityException
          13    18      19  Class java.lang.SecurityException

  public static void setUseCache(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // boolean useCache
         0: .line 253
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            iload 0 /* useCache */
            invokevirtual javax.imageio.ImageIO$CacheInfo.setUseCache:(Z)V
         1: .line 254
            return
        end local 0 // boolean useCache
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  useCache  Z
    MethodParameters:
          Name  Flags
      useCache  

  public static boolean getUseCache();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 267
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual javax.imageio.ImageIO$CacheInfo.getUseCache:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setCacheDirectory(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.File cacheDirectory
         0: .line 288
            aload 0 /* cacheDirectory */
            ifnull 2
            aload 0 /* cacheDirectory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 2
         1: .line 289
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a directory!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 291
      StackMap locals:
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            aload 0 /* cacheDirectory */
            invokevirtual javax.imageio.ImageIO$CacheInfo.setCacheDirectory:(Ljava/io/File;)V
         3: .line 292
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            aconst_null
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
         4: .line 293
            return
        end local 0 // java.io.File cacheDirectory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  cacheDirectory  Ljava/io/File;
    MethodParameters:
                Name  Flags
      cacheDirectory  

  public static java.io.File getCacheDirectory();
    descriptor: ()Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 307
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual javax.imageio.ImageIO$CacheInfo.getCacheDirectory:()Ljava/io/File;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static javax.imageio.stream.ImageInputStream createImageInputStream(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Object input
         0: .line 338
            aload 0 /* input */
            ifnonnull 2
         1: .line 339
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 345
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageInputStreamSpi;
         3: .line 346
            iconst_1
         4: .line 345
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         5: .line 347
            goto 8
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         6: pop
         7: .line 348
            aconst_null
            areturn
        start local 1 // java.util.Iterator iter
         8: .line 351
      StackMap locals: java.util.Iterator
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getUseCache:()Z
            ifeq 9
            invokestatic javax.imageio.ImageIO.hasCachePermission:()Z
            ifeq 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* usecache */
        start local 2 // boolean usecache
        11: .line 353
            goto 21
        12: .line 354
      StackMap locals: int
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageInputStreamSpi
            astore 3 /* spi */
        start local 3 // javax.imageio.spi.ImageInputStreamSpi spi
        13: .line 355
            aload 3 /* spi */
            invokevirtual javax.imageio.spi.ImageInputStreamSpi.getInputClass:()Ljava/lang/Class;
            aload 0 /* input */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 21
        14: .line 357
            aload 3 /* spi */
            aload 0 /* input */
        15: .line 358
            iload 2 /* usecache */
        16: .line 359
            invokestatic javax.imageio.ImageIO.getCacheDirectory:()Ljava/io/File;
        17: .line 357
            invokevirtual javax.imageio.spi.ImageInputStreamSpi.createInputStreamInstance:(Ljava/lang/Object;ZLjava/io/File;)Ljavax/imageio/stream/ImageInputStream;
        18: areturn
        19: .line 360
      StackMap locals: java.lang.Object java.util.Iterator int javax.imageio.spi.ImageInputStreamSpi
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        20: .line 361
            new javax.imageio.IIOException
            dup
            ldc "Can't create cache file!"
            aload 4 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // javax.imageio.spi.ImageInputStreamSpi spi
        21: .line 353
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        22: .line 366
            aconst_null
            areturn
        end local 2 // boolean usecache
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.Object input
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0     input  Ljava/lang/Object;
            5    6     1      iter  Ljava/util/Iterator;
            8   23     1      iter  Ljava/util/Iterator;
           11   23     2  usecache  Z
           13   21     3       spi  Ljavax/imageio/spi/ImageInputStreamSpi;
           20   21     4         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.IllegalArgumentException
          14    18      19  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static javax.imageio.stream.ImageOutputStream createImageOutputStream(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/imageio/stream/ImageOutputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Object output
         0: .line 400
            aload 0 /* output */
            ifnonnull 2
         1: .line 401
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 407
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageOutputStreamSpi;
         3: .line 408
            iconst_1
         4: .line 407
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         5: .line 409
            goto 8
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         6: pop
         7: .line 410
            aconst_null
            areturn
        start local 1 // java.util.Iterator iter
         8: .line 413
      StackMap locals: java.util.Iterator
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getUseCache:()Z
            ifeq 9
            invokestatic javax.imageio.ImageIO.hasCachePermission:()Z
            ifeq 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* usecache */
        start local 2 // boolean usecache
        11: .line 415
            goto 21
        12: .line 416
      StackMap locals: int
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageOutputStreamSpi
            astore 3 /* spi */
        start local 3 // javax.imageio.spi.ImageOutputStreamSpi spi
        13: .line 417
            aload 3 /* spi */
            invokevirtual javax.imageio.spi.ImageOutputStreamSpi.getOutputClass:()Ljava/lang/Class;
            aload 0 /* output */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 21
        14: .line 419
            aload 3 /* spi */
            aload 0 /* output */
        15: .line 420
            iload 2 /* usecache */
        16: .line 421
            invokestatic javax.imageio.ImageIO.getCacheDirectory:()Ljava/io/File;
        17: .line 419
            invokevirtual javax.imageio.spi.ImageOutputStreamSpi.createOutputStreamInstance:(Ljava/lang/Object;ZLjava/io/File;)Ljavax/imageio/stream/ImageOutputStream;
        18: areturn
        19: .line 422
      StackMap locals: java.lang.Object java.util.Iterator int javax.imageio.spi.ImageOutputStreamSpi
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        20: .line 423
            new javax.imageio.IIOException
            dup
            ldc "Can't create cache file!"
            aload 4 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // javax.imageio.spi.ImageOutputStreamSpi spi
        21: .line 415
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        22: .line 428
            aconst_null
            areturn
        end local 2 // boolean usecache
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.Object output
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0    output  Ljava/lang/Object;
            5    6     1      iter  Ljava/util/Iterator;
            8   23     1      iter  Ljava/util/Iterator;
           11   23     2  usecache  Z
           13   21     3       spi  Ljavax/imageio/spi/ImageOutputStreamSpi;
           20   21     4         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.IllegalArgumentException
          14    18      19  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      output  

  private static <S extends javax.imageio.spi.ImageReaderWriterSpi> java.lang.String[] getReaderWriterInfo(java.lang.Class<S>, javax.imageio.ImageIO$SpiInfo);
    descriptor: (Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.Class spiClass
        start local 1 // javax.imageio.ImageIO$SpiInfo spiInfo
         0: .line 460
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 0 /* spiClass */
            iconst_1
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         1: .line 461
            goto 4
        end local 2 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         2: pop
         3: .line 462
            iconst_0
            anewarray java.lang.String
            areturn
        start local 2 // java.util.Iterator iter
         4: .line 465
      StackMap locals: java.util.Iterator
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* s */
        start local 3 // java.util.HashSet s
         5: .line 466
            goto 8
         6: .line 467
      StackMap locals: java.util.HashSet
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageReaderWriterSpi
            astore 4 /* spi */
        start local 4 // javax.imageio.spi.ImageReaderWriterSpi spi
         7: .line 468
            aload 3 /* s */
            aload 1 /* spiInfo */
            aload 4 /* spi */
            invokevirtual javax.imageio.ImageIO$SpiInfo.info:(Ljavax/imageio/spi/ImageReaderWriterSpi;)[Ljava/lang/String;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
        end local 4 // javax.imageio.spi.ImageReaderWriterSpi spi
         8: .line 466
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 471
            aload 3 /* s */
            aload 3 /* s */
            invokevirtual java.util.HashSet.size:()I
            anewarray java.lang.String
            invokevirtual java.util.HashSet.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 3 // java.util.HashSet s
        end local 2 // java.util.Iterator iter
        end local 1 // javax.imageio.ImageIO$SpiInfo spiInfo
        end local 0 // java.lang.Class spiClass
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0  spiClass  Ljava/lang/Class<TS;>;
            0   10     1   spiInfo  Ljavax/imageio/ImageIO$SpiInfo;
            1    2     2      iter  Ljava/util/Iterator<TS;>;
            4   10     2      iter  Ljava/util/Iterator<TS;>;
            5   10     3         s  Ljava/util/HashSet<Ljava/lang/String;>;
            7    8     4       spi  Ljavax/imageio/spi/ImageReaderWriterSpi;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    Signature: <S:Ljavax/imageio/spi/ImageReaderWriterSpi;>(Ljava/lang/Class<TS;>;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
    MethodParameters:
          Name  Flags
      spiClass  
      spiInfo   

  public static java.lang.String[] getReaderFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 484
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         1: .line 485
            getstatic javax.imageio.ImageIO$SpiInfo.FORMAT_NAMES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 484
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getReaderMIMETypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 496
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         1: .line 497
            getstatic javax.imageio.ImageIO$SpiInfo.MIME_TYPES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 496
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getReaderFileSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 509
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         1: .line 510
            getstatic javax.imageio.ImageIO$SpiInfo.FILE_SUFFIXES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 509
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReaders();
    descriptor: (Ljava/lang/Object;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Object input
         0: .line 640
            aload 0 /* input */
            ifnonnull 2
         1: .line 641
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 646
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 647
            new javax.imageio.ImageIO$CanDecodeInputFilter
            dup
            aload 0 /* input */
            invokespecial javax.imageio.ImageIO$CanDecodeInputFilter.<init>:(Ljava/lang/Object;)V
         4: .line 648
            iconst_1
         5: .line 646
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         6: .line 649
            goto 9
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         7: pop
         8: .line 650
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
         9: .line 653
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.Object input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  input  Ljava/lang/Object;
            6    7     1   iter  Ljava/util/Iterator;
            9   10     1   iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Object;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
       Name  Flags
      input  

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReadersByFormatName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String formatName
         0: .line 702
            aload 0 /* formatName */
            ifnonnull 2
         1: .line 703
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 708
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 709
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.readerFormatNamesMethod:Ljava/lang/reflect/Method;
         4: .line 710
            aload 0 /* formatName */
         5: .line 709
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 711
            iconst_1
         7: .line 708
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 712
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 713
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 715
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String formatName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  formatName  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
            Name  Flags
      formatName  

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReadersBySuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String fileSuffix
         0: .line 737
            aload 0 /* fileSuffix */
            ifnonnull 2
         1: .line 738
            new java.lang.IllegalArgumentException
            dup
            ldc "fileSuffix == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 743
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 744
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.readerFileSuffixesMethod:Ljava/lang/reflect/Method;
         4: .line 745
            aload 0 /* fileSuffix */
         5: .line 744
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 746
            iconst_1
         7: .line 743
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 747
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 748
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 750
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String fileSuffix
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  fileSuffix  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
            Name  Flags
      fileSuffix  

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReadersByMIMEType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String MIMEType
         0: .line 772
            aload 0 /* MIMEType */
            ifnonnull 2
         1: .line 773
            new java.lang.IllegalArgumentException
            dup
            ldc "MIMEType == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 778
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 779
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.readerMIMETypesMethod:Ljava/lang/reflect/Method;
         4: .line 780
            aload 0 /* MIMEType */
         5: .line 779
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 781
            iconst_1
         7: .line 778
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 782
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 783
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 785
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String MIMEType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0  MIMEType  Ljava/lang/String;
            8    9     1      iter  Ljava/util/Iterator;
           11   12     1      iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
          Name  Flags
      MIMEType  

  public static java.lang.String[] getWriterFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 798
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         1: .line 799
            getstatic javax.imageio.ImageIO$SpiInfo.FORMAT_NAMES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 798
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getWriterMIMETypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 810
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         1: .line 811
            getstatic javax.imageio.ImageIO$SpiInfo.MIME_TYPES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 810
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getWriterFileSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 823
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         1: .line 824
            getstatic javax.imageio.ImageIO$SpiInfo.FILE_SUFFIXES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 823
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean contains(java.lang.String[], java.lang.String);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String[] names
        start local 1 // java.lang.String name
         0: .line 857
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 858
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            aload 0 /* names */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 859
            iconst_1
            ireturn
         4: .line 857
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* names */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 863
            iconst_0
            ireturn
        end local 1 // java.lang.String name
        end local 0 // java.lang.String[] names
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  names  [Ljava/lang/String;
            0    7     1   name  Ljava/lang/String;
            1    6     2      i  I
    MethodParameters:
       Name  Flags
      names  
      name   

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWritersByFormatName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String formatName
         0: .line 885
            aload 0 /* formatName */
            ifnonnull 2
         1: .line 886
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 891
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         3: .line 892
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.writerFormatNamesMethod:Ljava/lang/reflect/Method;
         4: .line 893
            aload 0 /* formatName */
         5: .line 892
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 894
            iconst_1
         7: .line 891
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 895
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 896
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 898
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String formatName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  formatName  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      formatName  

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWritersBySuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String fileSuffix
         0: .line 919
            aload 0 /* fileSuffix */
            ifnonnull 2
         1: .line 920
            new java.lang.IllegalArgumentException
            dup
            ldc "fileSuffix == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 925
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         3: .line 926
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.writerFileSuffixesMethod:Ljava/lang/reflect/Method;
         4: .line 927
            aload 0 /* fileSuffix */
         5: .line 926
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 928
            iconst_1
         7: .line 925
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 929
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 930
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 932
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String fileSuffix
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  fileSuffix  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      fileSuffix  

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWritersByMIMEType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String MIMEType
         0: .line 953
            aload 0 /* MIMEType */
            ifnonnull 2
         1: .line 954
            new java.lang.IllegalArgumentException
            dup
            ldc "MIMEType == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 959
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         3: .line 960
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.writerMIMETypesMethod:Ljava/lang/reflect/Method;
         4: .line 961
            aload 0 /* MIMEType */
         5: .line 960
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 962
            iconst_1
         7: .line 959
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 963
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 964
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 966
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String MIMEType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0  MIMEType  Ljava/lang/String;
            8    9     1      iter  Ljava/util/Iterator;
           11   12     1      iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
          Name  Flags
      MIMEType  

  public static javax.imageio.ImageWriter getImageWriter(javax.imageio.ImageReader);
    descriptor: (Ljavax/imageio/ImageReader;)Ljavax/imageio/ImageWriter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // javax.imageio.ImageReader reader
         0: .line 999
            aload 0 /* reader */
            ifnonnull 2
         1: .line 1000
            new java.lang.IllegalArgumentException
            dup
            ldc "reader == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1003
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            invokevirtual javax.imageio.ImageReader.getOriginatingProvider:()Ljavax/imageio/spi/ImageReaderSpi;
            astore 1 /* readerSpi */
        start local 1 // javax.imageio.spi.ImageReaderSpi readerSpi
         3: .line 1004
            aload 1 /* readerSpi */
            ifnonnull 18
         4: .line 1009
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         5: .line 1010
            iconst_0
         6: .line 1009
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
         7: .line 1008
            astore 2 /* readerSpiIter */
        start local 2 // java.util.Iterator readerSpiIter
         8: .line 1011
            goto 15
        end local 2 // java.util.Iterator readerSpiIter
      StackMap locals: javax.imageio.ImageReader javax.imageio.spi.ImageReaderSpi
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 1012
            aconst_null
            areturn
        start local 2 // java.util.Iterator readerSpiIter
        11: .line 1016
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* readerSpiIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageReaderSpi
            astore 3 /* temp */
        start local 3 // javax.imageio.spi.ImageReaderSpi temp
        12: .line 1017
            aload 3 /* temp */
            aload 0 /* reader */
            invokevirtual javax.imageio.spi.ImageReaderSpi.isOwnReader:(Ljavax/imageio/ImageReader;)Z
            ifeq 15
        13: .line 1018
            aload 3 /* temp */
            astore 1 /* readerSpi */
        14: .line 1019
            goto 16
        end local 3 // javax.imageio.spi.ImageReaderSpi temp
        15: .line 1015
      StackMap locals:
      StackMap stack:
            aload 2 /* readerSpiIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 1022
      StackMap locals:
      StackMap stack:
            aload 1 /* readerSpi */
            ifnonnull 18
        17: .line 1023
            aconst_null
            areturn
        end local 2 // java.util.Iterator readerSpiIter
        18: .line 1027
      StackMap locals:
      StackMap stack:
            aload 1 /* readerSpi */
            invokevirtual javax.imageio.spi.ImageReaderSpi.getImageWriterSpiNames:()[Ljava/lang/String;
            astore 2 /* writerNames */
        start local 2 // java.lang.String[] writerNames
        19: .line 1028
            aload 2 /* writerNames */
            ifnonnull 21
        20: .line 1029
            aconst_null
            areturn
        21: .line 1032
      StackMap locals: java.lang.String[]
      StackMap stack:
            aconst_null
            astore 3 /* writerSpiClass */
        start local 3 // java.lang.Class writerSpiClass
        22: .line 1034
            aload 2 /* writerNames */
            iconst_0
            aaload
            iconst_1
        23: .line 1035
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
        24: .line 1034
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* writerSpiClass */
        25: .line 1036
            goto 28
      StackMap locals: javax.imageio.ImageReader javax.imageio.spi.ImageReaderSpi java.lang.String[] java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
        26: pop
        27: .line 1037
            aconst_null
            areturn
        28: .line 1041
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 3 /* writerSpiClass */
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviderByClass:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageWriterSpi
        29: .line 1040
            astore 4 /* writerSpi */
        start local 4 // javax.imageio.spi.ImageWriterSpi writerSpi
        30: .line 1042
            aload 4 /* writerSpi */
            ifnonnull 32
        31: .line 1043
            aconst_null
            areturn
        32: .line 1047
      StackMap locals: javax.imageio.spi.ImageWriterSpi
      StackMap stack:
            aload 4 /* writerSpi */
            invokevirtual javax.imageio.spi.ImageWriterSpi.createWriterInstance:()Ljavax/imageio/ImageWriter;
        33: areturn
        34: .line 1048
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        35: .line 1050
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 4 /* writerSpi */
        36: .line 1051
            ldc Ljavax/imageio/spi/ImageWriterSpi;
        37: .line 1050
            invokevirtual javax.imageio.spi.IIORegistry.deregisterServiceProvider:(Ljava/lang/Object;Ljava/lang/Class;)Z
            pop
        38: .line 1052
            aconst_null
            areturn
        end local 4 // javax.imageio.spi.ImageWriterSpi writerSpi
        end local 3 // java.lang.Class writerSpiClass
        end local 2 // java.lang.String[] writerNames
        end local 1 // javax.imageio.spi.ImageReaderSpi readerSpi
        end local 0 // javax.imageio.ImageReader reader
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0          reader  Ljavax/imageio/ImageReader;
            3   39     1       readerSpi  Ljavax/imageio/spi/ImageReaderSpi;
            8    9     2   readerSpiIter  Ljava/util/Iterator;
           11   18     2   readerSpiIter  Ljava/util/Iterator;
           12   15     3            temp  Ljavax/imageio/spi/ImageReaderSpi;
           19   39     2     writerNames  [Ljava/lang/String;
           22   39     3  writerSpiClass  Ljava/lang/Class;
           30   39     4       writerSpi  Ljavax/imageio/spi/ImageWriterSpi;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.IllegalArgumentException
          22    25      26  Class java.lang.ClassNotFoundException
          32    33      34  Class java.io.IOException
    MethodParameters:
        Name  Flags
      reader  

  public static javax.imageio.ImageReader getImageReader(javax.imageio.ImageWriter);
    descriptor: (Ljavax/imageio/ImageWriter;)Ljavax/imageio/ImageReader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // javax.imageio.ImageWriter writer
         0: .line 1079
            aload 0 /* writer */
            ifnonnull 2
         1: .line 1080
            new java.lang.IllegalArgumentException
            dup
            ldc "writer == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* writer */
            invokevirtual javax.imageio.ImageWriter.getOriginatingProvider:()Ljavax/imageio/spi/ImageWriterSpi;
            astore 1 /* writerSpi */
        start local 1 // javax.imageio.spi.ImageWriterSpi writerSpi
         3: .line 1084
            aload 1 /* writerSpi */
            ifnonnull 18
         4: .line 1089
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         5: .line 1090
            iconst_0
         6: .line 1089
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
         7: .line 1088
            astore 2 /* writerSpiIter */
        start local 2 // java.util.Iterator writerSpiIter
         8: .line 1091
            goto 15
        end local 2 // java.util.Iterator writerSpiIter
      StackMap locals: javax.imageio.ImageWriter javax.imageio.spi.ImageWriterSpi
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 1092
            aconst_null
            areturn
        start local 2 // java.util.Iterator writerSpiIter
        11: .line 1096
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* writerSpiIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageWriterSpi
            astore 3 /* temp */
        start local 3 // javax.imageio.spi.ImageWriterSpi temp
        12: .line 1097
            aload 3 /* temp */
            aload 0 /* writer */
            invokevirtual javax.imageio.spi.ImageWriterSpi.isOwnWriter:(Ljavax/imageio/ImageWriter;)Z
            ifeq 15
        13: .line 1098
            aload 3 /* temp */
            astore 1 /* writerSpi */
        14: .line 1099
            goto 16
        end local 3 // javax.imageio.spi.ImageWriterSpi temp
        15: .line 1095
      StackMap locals:
      StackMap stack:
            aload 2 /* writerSpiIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 1102
      StackMap locals:
      StackMap stack:
            aload 1 /* writerSpi */
            ifnonnull 18
        17: .line 1103
            aconst_null
            areturn
        end local 2 // java.util.Iterator writerSpiIter
        18: .line 1107
      StackMap locals:
      StackMap stack:
            aload 1 /* writerSpi */
            invokevirtual javax.imageio.spi.ImageWriterSpi.getImageReaderSpiNames:()[Ljava/lang/String;
            astore 2 /* readerNames */
        start local 2 // java.lang.String[] readerNames
        19: .line 1108
            aload 2 /* readerNames */
            ifnonnull 21
        20: .line 1109
            aconst_null
            areturn
        21: .line 1112
      StackMap locals: java.lang.String[]
      StackMap stack:
            aconst_null
            astore 3 /* readerSpiClass */
        start local 3 // java.lang.Class readerSpiClass
        22: .line 1114
            aload 2 /* readerNames */
            iconst_0
            aaload
            iconst_1
        23: .line 1115
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
        24: .line 1114
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* readerSpiClass */
        25: .line 1116
            goto 28
      StackMap locals: javax.imageio.ImageWriter javax.imageio.spi.ImageWriterSpi java.lang.String[] java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
        26: pop
        27: .line 1117
            aconst_null
            areturn
        28: .line 1121
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 3 /* readerSpiClass */
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviderByClass:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageReaderSpi
        29: .line 1120
            astore 4 /* readerSpi */
        start local 4 // javax.imageio.spi.ImageReaderSpi readerSpi
        30: .line 1122
            aload 4 /* readerSpi */
            ifnonnull 32
        31: .line 1123
            aconst_null
            areturn
        32: .line 1127
      StackMap locals: javax.imageio.spi.ImageReaderSpi
      StackMap stack:
            aload 4 /* readerSpi */
            invokevirtual javax.imageio.spi.ImageReaderSpi.createReaderInstance:()Ljavax/imageio/ImageReader;
        33: areturn
        34: .line 1128
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        35: .line 1130
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 4 /* readerSpi */
        36: .line 1131
            ldc Ljavax/imageio/spi/ImageReaderSpi;
        37: .line 1130
            invokevirtual javax.imageio.spi.IIORegistry.deregisterServiceProvider:(Ljava/lang/Object;Ljava/lang/Class;)Z
            pop
        38: .line 1132
            aconst_null
            areturn
        end local 4 // javax.imageio.spi.ImageReaderSpi readerSpi
        end local 3 // java.lang.Class readerSpiClass
        end local 2 // java.lang.String[] readerNames
        end local 1 // javax.imageio.spi.ImageWriterSpi writerSpi
        end local 0 // javax.imageio.ImageWriter writer
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0          writer  Ljavax/imageio/ImageWriter;
            3   39     1       writerSpi  Ljavax/imageio/spi/ImageWriterSpi;
            8    9     2   writerSpiIter  Ljava/util/Iterator;
           11   18     2   writerSpiIter  Ljava/util/Iterator;
           12   15     3            temp  Ljavax/imageio/spi/ImageWriterSpi;
           19   39     2     readerNames  [Ljava/lang/String;
           22   39     3  readerSpiClass  Ljava/lang/Class;
           30   39     4       readerSpi  Ljavax/imageio/spi/ImageReaderSpi;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.IllegalArgumentException
          22    25      26  Class java.lang.ClassNotFoundException
          32    33      34  Class java.io.IOException
    MethodParameters:
        Name  Flags
      writer  

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWriters(javax.imageio.ImageTypeSpecifier, java.lang.String);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // javax.imageio.ImageTypeSpecifier type
        start local 1 // java.lang.String formatName
         0: .line 1156
            aload 0 /* type */
            ifnonnull 2
         1: .line 1157
            new java.lang.IllegalArgumentException
            dup
            ldc "type == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1159
      StackMap locals:
      StackMap stack:
            aload 1 /* formatName */
            ifnonnull 4
         3: .line 1160
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1166
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         5: .line 1167
            new javax.imageio.ImageIO$CanEncodeImageAndFormatFilter
            dup
            aload 0 /* type */
         6: .line 1168
            aload 1 /* formatName */
         7: .line 1167
            invokespecial javax.imageio.ImageIO$CanEncodeImageAndFormatFilter.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)V
         8: .line 1169
            iconst_1
         9: .line 1166
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
        10: .line 1170
            goto 13
        end local 2 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        11: pop
        12: .line 1171
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 2 // java.util.Iterator iter
        13: .line 1174
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 2 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 2 // java.util.Iterator iter
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.ImageTypeSpecifier type
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        type  Ljavax/imageio/ImageTypeSpecifier;
            0   14     1  formatName  Ljava/lang/String;
           10   11     2        iter  Ljava/util/Iterator;
           13   14     2        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           4    10      11  Class java.lang.IllegalArgumentException
    Signature: (Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      type        
      formatName  

  public static java.util.Iterator<javax.imageio.ImageTranscoder> getImageTranscoders(javax.imageio.ImageReader, javax.imageio.ImageWriter);
    descriptor: (Ljavax/imageio/ImageReader;Ljavax/imageio/ImageWriter;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // javax.imageio.ImageReader reader
        start local 1 // javax.imageio.ImageWriter writer
         0: .line 1241
            aload 0 /* reader */
            ifnonnull 2
         1: .line 1242
            new java.lang.IllegalArgumentException
            dup
            ldc "reader == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1244
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            ifnonnull 4
         3: .line 1245
            new java.lang.IllegalArgumentException
            dup
            ldc "writer == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1247
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            invokevirtual javax.imageio.ImageReader.getOriginatingProvider:()Ljavax/imageio/spi/ImageReaderSpi;
            astore 2 /* readerSpi */
        start local 2 // javax.imageio.spi.ImageReaderSpi readerSpi
         5: .line 1248
            aload 1 /* writer */
            invokevirtual javax.imageio.ImageWriter.getOriginatingProvider:()Ljavax/imageio/spi/ImageWriterSpi;
            astore 3 /* writerSpi */
        start local 3 // javax.imageio.spi.ImageWriterSpi writerSpi
         6: .line 1250
            new javax.imageio.ImageIO$TranscoderFilter
            dup
            aload 2 /* readerSpi */
            aload 3 /* writerSpi */
            invokespecial javax.imageio.ImageIO$TranscoderFilter.<init>:(Ljavax/imageio/spi/ImageReaderSpi;Ljavax/imageio/spi/ImageWriterSpi;)V
         7: .line 1249
            astore 4 /* filter */
        start local 4 // javax.imageio.spi.ServiceRegistry$Filter filter
         8: .line 1255
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageTranscoderSpi;
         9: .line 1256
            aload 4 /* filter */
            iconst_1
        10: .line 1255
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
        11: .line 1257
            goto 14
        end local 5 // java.util.Iterator iter
      StackMap locals: javax.imageio.ImageReader javax.imageio.ImageWriter javax.imageio.spi.ImageReaderSpi javax.imageio.spi.ImageWriterSpi javax.imageio.spi.ServiceRegistry$Filter
      StackMap stack: java.lang.IllegalArgumentException
        12: pop
        13: .line 1258
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
            areturn
        start local 5 // java.util.Iterator iter
        14: .line 1260
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageTranscoderIterator
            dup
            aload 5 /* iter */
            invokespecial javax.imageio.ImageIO$ImageTranscoderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 5 // java.util.Iterator iter
        end local 4 // javax.imageio.spi.ServiceRegistry$Filter filter
        end local 3 // javax.imageio.spi.ImageWriterSpi writerSpi
        end local 2 // javax.imageio.spi.ImageReaderSpi readerSpi
        end local 1 // javax.imageio.ImageWriter writer
        end local 0 // javax.imageio.ImageReader reader
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0     reader  Ljavax/imageio/ImageReader;
            0   15     1     writer  Ljavax/imageio/ImageWriter;
            5   15     2  readerSpi  Ljavax/imageio/spi/ImageReaderSpi;
            6   15     3  writerSpi  Ljavax/imageio/spi/ImageWriterSpi;
            8   15     4     filter  Ljavax/imageio/spi/ServiceRegistry$Filter;
           11   12     5       iter  Ljava/util/Iterator;
           14   15     5       iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.IllegalArgumentException
    Signature: (Ljavax/imageio/ImageReader;Ljavax/imageio/ImageWriter;)Ljava/util/Iterator<Ljavax/imageio/ImageTranscoder;>;
    MethodParameters:
        Name  Flags
      reader  
      writer  

  public static java.awt.image.BufferedImage read(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.io.File input
         0: .line 1298
            aload 0 /* input */
            ifnonnull 2
         1: .line 1299
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1301
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokevirtual java.io.File.canRead:()Z
            ifne 4
         3: .line 1302
            new javax.imageio.IIOException
            dup
            ldc "Can't read input file!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1305
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 1 /* stream */
        start local 1 // javax.imageio.stream.ImageInputStream stream
         5: .line 1306
            aload 1 /* stream */
            ifnonnull 7
         6: .line 1307
            new javax.imageio.IIOException
            dup
            ldc "Can't create an ImageInputStream!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1309
      StackMap locals: javax.imageio.stream.ImageInputStream
      StackMap stack:
            aload 1 /* stream */
            invokestatic javax.imageio.ImageIO.read:(Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
            astore 2 /* bi */
        start local 2 // java.awt.image.BufferedImage bi
         8: .line 1310
            aload 2 /* bi */
            ifnonnull 10
         9: .line 1311
            aload 1 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        10: .line 1313
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 2 /* bi */
            areturn
        end local 2 // java.awt.image.BufferedImage bi
        end local 1 // javax.imageio.stream.ImageInputStream stream
        end local 0 // java.io.File input
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0   input  Ljava/io/File;
            5   11     1  stream  Ljavax/imageio/stream/ImageInputStream;
            8   11     2      bi  Ljava/awt/image/BufferedImage;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static java.awt.image.BufferedImage read(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.io.InputStream input
         0: .line 1349
            aload 0 /* input */
            ifnonnull 2
         1: .line 1350
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1353
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 1 /* stream */
        start local 1 // javax.imageio.stream.ImageInputStream stream
         3: .line 1354
            aload 1 /* stream */
            ifnonnull 5
         4: .line 1355
            new javax.imageio.IIOException
            dup
            ldc "Can't create an ImageInputStream!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1357
      StackMap locals: javax.imageio.stream.ImageInputStream
      StackMap stack:
            aload 1 /* stream */
            invokestatic javax.imageio.ImageIO.read:(Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
            astore 2 /* bi */
        start local 2 // java.awt.image.BufferedImage bi
         6: .line 1358
            aload 2 /* bi */
            ifnonnull 8
         7: .line 1359
            aload 1 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
         8: .line 1361
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 2 /* bi */
            areturn
        end local 2 // java.awt.image.BufferedImage bi
        end local 1 // javax.imageio.stream.ImageInputStream stream
        end local 0 // java.io.InputStream input
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   input  Ljava/io/InputStream;
            3    9     1  stream  Ljavax/imageio/stream/ImageInputStream;
            6    9     2      bi  Ljava/awt/image/BufferedImage;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static java.awt.image.BufferedImage read(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.net.URL input
         0: .line 1393
            aload 0 /* input */
            ifnonnull 2
         1: .line 1394
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1397
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* istream */
        start local 1 // java.io.InputStream istream
         3: .line 1399
            aload 0 /* input */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 1 /* istream */
         4: .line 1400
            goto 7
      StackMap locals: java.net.URL java.io.InputStream
      StackMap stack: java.io.IOException
         5: astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 1401
            new javax.imageio.IIOException
            dup
            ldc "Can't get input stream from URL!"
            aload 2 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
         7: .line 1403
      StackMap locals:
      StackMap stack:
            aload 1 /* istream */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 2 /* stream */
        start local 2 // javax.imageio.stream.ImageInputStream stream
         8: .line 1404
            aload 2 /* stream */
            ifnonnull 11
         9: .line 1409
            aload 1 /* istream */
            invokevirtual java.io.InputStream.close:()V
        10: .line 1410
            new javax.imageio.IIOException
            dup
            ldc "Can't create an ImageInputStream!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1414
      StackMap locals: javax.imageio.stream.ImageInputStream
      StackMap stack:
            aload 2 /* stream */
            invokestatic javax.imageio.ImageIO.read:(Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
            astore 3 /* bi */
        start local 3 // java.awt.image.BufferedImage bi
        12: .line 1415
            aload 3 /* bi */
            ifnonnull 18
        13: .line 1416
            aload 2 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        14: .line 1418
            goto 18
        end local 3 // java.awt.image.BufferedImage bi
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 4
        16: .line 1419
            aload 1 /* istream */
            invokevirtual java.io.InputStream.close:()V
        17: .line 1420
            aload 4
            athrow
        start local 3 // java.awt.image.BufferedImage bi
        18: .line 1419
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 1 /* istream */
            invokevirtual java.io.InputStream.close:()V
        19: .line 1421
            aload 3 /* bi */
            areturn
        end local 3 // java.awt.image.BufferedImage bi
        end local 2 // javax.imageio.stream.ImageInputStream stream
        end local 1 // java.io.InputStream istream
        end local 0 // java.net.URL input
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0    input  Ljava/net/URL;
            3   20     1  istream  Ljava/io/InputStream;
            6    7     2        e  Ljava/io/IOException;
            8   20     2   stream  Ljavax/imageio/stream/ImageInputStream;
           12   15     3       bi  Ljava/awt/image/BufferedImage;
           18   20     3       bi  Ljava/awt/image/BufferedImage;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
          11    15      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static java.awt.image.BufferedImage read(javax.imageio.stream.ImageInputStream);
    descriptor: (Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // javax.imageio.stream.ImageInputStream stream
         0: .line 1448
            aload 0 /* stream */
            ifnonnull 2
         1: .line 1449
            new java.lang.IllegalArgumentException
            dup
            ldc "stream == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1452
      StackMap locals:
      StackMap stack:
            aload 0 /* stream */
            invokestatic javax.imageio.ImageIO.getImageReaders:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         3: .line 1453
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         4: .line 1454
            aconst_null
            areturn
         5: .line 1457
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.ImageReader
            astore 2 /* reader */
        start local 2 // javax.imageio.ImageReader reader
         6: .line 1458
            aload 2 /* reader */
            invokevirtual javax.imageio.ImageReader.getDefaultReadParam:()Ljavax/imageio/ImageReadParam;
            astore 3 /* param */
        start local 3 // javax.imageio.ImageReadParam param
         7: .line 1459
            aload 2 /* reader */
            aload 0 /* stream */
            iconst_1
            iconst_1
            invokevirtual javax.imageio.ImageReader.setInput:(Ljava/lang/Object;ZZ)V
         8: .line 1462
            aload 2 /* reader */
            iconst_0
            aload 3 /* param */
            invokevirtual javax.imageio.ImageReader.read:(ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
            astore 4 /* bi */
        start local 4 // java.awt.image.BufferedImage bi
         9: .line 1463
            goto 14
        end local 4 // java.awt.image.BufferedImage bi
      StackMap locals: javax.imageio.stream.ImageInputStream java.util.Iterator javax.imageio.ImageReader javax.imageio.ImageReadParam
      StackMap stack: java.lang.Throwable
        10: astore 5
        11: .line 1464
            aload 2 /* reader */
            invokevirtual javax.imageio.ImageReader.dispose:()V
        12: .line 1465
            aload 0 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        13: .line 1466
            aload 5
            athrow
        start local 4 // java.awt.image.BufferedImage bi
        14: .line 1464
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 2 /* reader */
            invokevirtual javax.imageio.ImageReader.dispose:()V
        15: .line 1465
            aload 0 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        16: .line 1467
            aload 4 /* bi */
            areturn
        end local 4 // java.awt.image.BufferedImage bi
        end local 3 // javax.imageio.ImageReadParam param
        end local 2 // javax.imageio.ImageReader reader
        end local 1 // java.util.Iterator iter
        end local 0 // javax.imageio.stream.ImageInputStream stream
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0  stream  Ljavax/imageio/stream/ImageInputStream;
            3   17     1    iter  Ljava/util/Iterator;
            6   17     2  reader  Ljavax/imageio/ImageReader;
            7   17     3   param  Ljavax/imageio/ImageReadParam;
            9   10     4      bi  Ljava/awt/image/BufferedImage;
           14   17     4      bi  Ljava/awt/image/BufferedImage;
      Exception table:
        from    to  target  type
           8    10      10  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public static boolean write(java.awt.image.RenderedImage, java.lang.String, javax.imageio.stream.ImageOutputStream);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljavax/imageio/stream/ImageOutputStream;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
        start local 2 // javax.imageio.stream.ImageOutputStream output
         0: .line 1496
            aload 0 /* im */
            ifnonnull 2
         1: .line 1497
            new java.lang.IllegalArgumentException
            dup
            ldc "im == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1499
      StackMap locals:
      StackMap stack:
            aload 1 /* formatName */
            ifnonnull 4
         3: .line 1500
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1502
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            ifnonnull 6
         5: .line 1503
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1506
      StackMap locals:
      StackMap stack:
            aload 0 /* im */
            aload 0 /* im */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getWriter:(Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
            aload 2 /* output */
            invokestatic javax.imageio.ImageIO.doWrite:(Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
            ireturn
        end local 2 // javax.imageio.stream.ImageOutputStream output
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0          im  Ljava/awt/image/RenderedImage;
            0    7     1  formatName  Ljava/lang/String;
            0    7     2      output  Ljavax/imageio/stream/ImageOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      im          
      formatName  
      output      

  public static boolean write(java.awt.image.RenderedImage, java.lang.String, java.io.File);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
        start local 2 // java.io.File output
         0: .line 1530
            aload 2 /* output */
            ifnonnull 2
         1: .line 1531
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1534
      StackMap locals:
      StackMap stack:
            aload 0 /* im */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getWriter:(Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
            astore 3 /* writer */
        start local 3 // javax.imageio.ImageWriter writer
         3: .line 1535
            aload 3 /* writer */
            ifnonnull 5
         4: .line 1539
            iconst_0
            ireturn
         5: .line 1542
      StackMap locals: javax.imageio.ImageWriter
      StackMap stack:
            aload 2 /* output */
            invokevirtual java.io.File.delete:()Z
            pop
         6: .line 1543
            aload 2 /* output */
            invokestatic javax.imageio.ImageIO.createImageOutputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageOutputStream;
            astore 4 /* stream */
        start local 4 // javax.imageio.stream.ImageOutputStream stream
         7: .line 1544
            aload 4 /* stream */
            ifnonnull 9
         8: .line 1545
            new javax.imageio.IIOException
            dup
            ldc "Can't create an ImageOutputStream!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1548
      StackMap locals: javax.imageio.stream.ImageOutputStream
      StackMap stack:
            aload 0 /* im */
            aload 3 /* writer */
            aload 4 /* stream */
            invokestatic javax.imageio.ImageIO.doWrite:(Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
            istore 6
        10: .line 1550
            aload 4 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
        11: .line 1548
            iload 6
            ireturn
        12: .line 1549
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        13: .line 1550
            aload 4 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
        14: .line 1551
            aload 5
            athrow
        end local 4 // javax.imageio.stream.ImageOutputStream stream
        end local 3 // javax.imageio.ImageWriter writer
        end local 2 // java.io.File output
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0          im  Ljava/awt/image/RenderedImage;
            0   15     1  formatName  Ljava/lang/String;
            0   15     2      output  Ljava/io/File;
            3   15     3      writer  Ljavax/imageio/ImageWriter;
            7   15     4      stream  Ljavax/imageio/stream/ImageOutputStream;
      Exception table:
        from    to  target  type
           9    10      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      im          
      formatName  
      output      

  public static boolean write(java.awt.image.RenderedImage, java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/OutputStream;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
        start local 2 // java.io.OutputStream output
         0: .line 1580
            aload 2 /* output */
            ifnonnull 2
         1: .line 1581
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1583
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            invokestatic javax.imageio.ImageIO.createImageOutputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageOutputStream;
            astore 3 /* stream */
        start local 3 // javax.imageio.stream.ImageOutputStream stream
         3: .line 1584
            aload 3 /* stream */
            ifnonnull 5
         4: .line 1585
            new javax.imageio.IIOException
            dup
            ldc "Can't create an ImageOutputStream!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1588
      StackMap locals: javax.imageio.stream.ImageOutputStream
      StackMap stack:
            aload 0 /* im */
            aload 0 /* im */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getWriter:(Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
            aload 3 /* stream */
            invokestatic javax.imageio.ImageIO.doWrite:(Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
            istore 5
         6: .line 1590
            aload 3 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
         7: .line 1588
            iload 5
            ireturn
         8: .line 1589
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         9: .line 1590
            aload 3 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
        10: .line 1591
            aload 4
            athrow
        end local 3 // javax.imageio.stream.ImageOutputStream stream
        end local 2 // java.io.OutputStream output
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0          im  Ljava/awt/image/RenderedImage;
            0   11     1  formatName  Ljava/lang/String;
            0   11     2      output  Ljava/io/OutputStream;
            3   11     3      stream  Ljavax/imageio/stream/ImageOutputStream;
      Exception table:
        from    to  target  type
           5     6       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      im          
      formatName  
      output      

  private static javax.imageio.ImageWriter getWriter(java.awt.image.RenderedImage, java.lang.String);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
         0: .line 1602
            aload 0 /* im */
            invokestatic javax.imageio.ImageTypeSpecifier.createFromRenderedImage:(Ljava/awt/image/RenderedImage;)Ljavax/imageio/ImageTypeSpecifier;
         1: .line 1601
            astore 2 /* type */
        start local 2 // javax.imageio.ImageTypeSpecifier type
         2: .line 1603
            aload 2 /* type */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getImageWriters:(Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 1605
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 5
         4: .line 1606
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.ImageWriter
            areturn
         5: .line 1608
      StackMap locals: javax.imageio.ImageTypeSpecifier java.util.Iterator
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.Iterator iter
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0          im  Ljava/awt/image/RenderedImage;
            0    6     1  formatName  Ljava/lang/String;
            2    6     2        type  Ljavax/imageio/ImageTypeSpecifier;
            3    6     3        iter  Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      im          
      formatName  

  private static boolean doWrite(java.awt.image.RenderedImage, javax.imageio.ImageWriter, javax.imageio.stream.ImageOutputStream);
    descriptor: (Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // javax.imageio.ImageWriter writer
        start local 2 // javax.imageio.stream.ImageOutputStream output
         0: .line 1617
            aload 1 /* writer */
            ifnonnull 2
         1: .line 1618
            iconst_0
            ireturn
         2: .line 1620
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            aload 2 /* output */
            invokevirtual javax.imageio.ImageWriter.setOutput:(Ljava/lang/Object;)V
         3: .line 1622
            aload 1 /* writer */
            aload 0 /* im */
            invokevirtual javax.imageio.ImageWriter.write:(Ljava/awt/image/RenderedImage;)V
         4: .line 1623
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 1624
            aload 1 /* writer */
            invokevirtual javax.imageio.ImageWriter.dispose:()V
         7: .line 1625
            aload 2 /* output */
            invokeinterface javax.imageio.stream.ImageOutputStream.flush:()V
         8: .line 1626
            aload 3
            athrow
         9: .line 1624
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            invokevirtual javax.imageio.ImageWriter.dispose:()V
        10: .line 1625
            aload 2 /* output */
            invokeinterface javax.imageio.stream.ImageOutputStream.flush:()V
        11: .line 1627
            iconst_1
            ireturn
        end local 2 // javax.imageio.stream.ImageOutputStream output
        end local 1 // javax.imageio.ImageWriter writer
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0      im  Ljava/awt/image/RenderedImage;
            0   12     1  writer  Ljavax/imageio/ImageWriter;
            0   12     2  output  Ljavax/imageio/stream/ImageOutputStream;
      Exception table:
        from    to  target  type
           3     5       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      im      
      writer  
      output  
}
SourceFile: "ImageIO.java"
NestMembers:
  javax.imageio.ImageIO$CacheInfo  javax.imageio.ImageIO$CanDecodeInputFilter  javax.imageio.ImageIO$CanEncodeImageAndFormatFilter  javax.imageio.ImageIO$ContainsFilter  javax.imageio.ImageIO$ImageReaderIterator  javax.imageio.ImageIO$ImageTranscoderIterator  javax.imageio.ImageIO$ImageWriterIterator  javax.imageio.ImageIO$SpiInfo  javax.imageio.ImageIO$SpiInfo$1  javax.imageio.ImageIO$SpiInfo$2  javax.imageio.ImageIO$SpiInfo$3  javax.imageio.ImageIO$TranscoderFilter
InnerClasses:
  CacheInfo = javax.imageio.ImageIO$CacheInfo of javax.imageio.ImageIO
  CanDecodeInputFilter = javax.imageio.ImageIO$CanDecodeInputFilter of javax.imageio.ImageIO
  CanEncodeImageAndFormatFilter = javax.imageio.ImageIO$CanEncodeImageAndFormatFilter of javax.imageio.ImageIO
  ContainsFilter = javax.imageio.ImageIO$ContainsFilter of javax.imageio.ImageIO
  ImageReaderIterator = javax.imageio.ImageIO$ImageReaderIterator of javax.imageio.ImageIO
  ImageTranscoderIterator = javax.imageio.ImageIO$ImageTranscoderIterator of javax.imageio.ImageIO
  ImageWriterIterator = javax.imageio.ImageIO$ImageWriterIterator of javax.imageio.ImageIO
  private abstract SpiInfo = javax.imageio.ImageIO$SpiInfo of javax.imageio.ImageIO
  TranscoderFilter = javax.imageio.ImageIO$TranscoderFilter of javax.imageio.ImageIO
  public abstract Filter = javax.imageio.spi.ServiceRegistry$Filter of javax.imageio.spi.ServiceRegistry