public class sun.awt.image.MultiResolutionToolkitImage extends sun.awt.image.ToolkitImage implements java.awt.image.MultiResolutionImage
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.image.MultiResolutionToolkitImage
  super_class: sun.awt.image.ToolkitImage
{
  java.awt.Image resolutionVariant;
    descriptor: Ljava/awt/Image;
    flags: (0x0000) 

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

  public void <init>(java.awt.Image, java.awt.Image);
    descriptor: (Ljava/awt/Image;Ljava/awt/Image;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
        start local 1 // java.awt.Image lowResolutionImage
        start local 2 // java.awt.Image resolutionVariant
         0: .line 43
            aload 0 /* this */
            aload 1 /* lowResolutionImage */
            invokevirtual java.awt.Image.getSource:()Ljava/awt/image/ImageProducer;
            invokespecial sun.awt.image.ToolkitImage.<init>:(Ljava/awt/image/ImageProducer;)V
         1: .line 44
            aload 0 /* this */
            aload 2 /* resolutionVariant */
            putfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
         2: .line 45
            return
        end local 2 // java.awt.Image resolutionVariant
        end local 1 // java.awt.Image lowResolutionImage
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lsun/awt/image/MultiResolutionToolkitImage;
            0    3     1  lowResolutionImage  Ljava/awt/Image;
            0    3     2   resolutionVariant  Ljava/awt/Image;
    MethodParameters:
                    Name  Flags
      lowResolutionImage  
      resolutionVariant   

  public java.awt.Image getResolutionVariant(double, double);
    descriptor: (DD)Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
        start local 1 // double destWidth
        start local 3 // double destHeight
         0: .line 49
            dload 1 /* destWidth */
            dload 3 /* destHeight */
            invokestatic sun.awt.image.MultiResolutionToolkitImage.checkSize:(DD)V
         1: .line 50
            dload 1 /* destWidth */
            aload 0 /* this */
            invokevirtual sun.awt.image.MultiResolutionToolkitImage.getWidth:()I
            i2d
            dcmpg
            ifgt 3
            dload 3 /* destHeight */
            aload 0 /* this */
            invokevirtual sun.awt.image.MultiResolutionToolkitImage.getHeight:()I
            i2d
            dcmpg
            ifgt 3
         2: .line 51
            aload 0 /* this */
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
         4: .line 50
      StackMap locals:
      StackMap stack: java.awt.Image
            areturn
        end local 3 // double destHeight
        end local 1 // double destWidth
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lsun/awt/image/MultiResolutionToolkitImage;
            0    5     1   destWidth  D
            0    5     3  destHeight  D
    MethodParameters:
            Name  Flags
      destWidth   
      destHeight  

  public static java.awt.Image map(sun.awt.image.MultiResolutionToolkitImage, java.util.function.Function<java.awt.Image, java.awt.Image>);
    descriptor: (Lsun/awt/image/MultiResolutionToolkitImage;Ljava/util/function/Function;)Ljava/awt/Image;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.awt.image.MultiResolutionToolkitImage mrImage
        start local 1 // java.util.function.Function mapper
         0: .line 56
            aload 1 /* mapper */
            aload 0 /* mrImage */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            astore 2 /* baseImage */
        start local 2 // java.awt.Image baseImage
         1: .line 57
            aload 1 /* mapper */
            aload 0 /* mrImage */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            astore 3 /* rvImage */
        start local 3 // java.awt.Image rvImage
         2: .line 58
            new sun.awt.image.MultiResolutionToolkitImage
            dup
            aload 2 /* baseImage */
            aload 3 /* rvImage */
            invokespecial sun.awt.image.MultiResolutionToolkitImage.<init>:(Ljava/awt/Image;Ljava/awt/Image;)V
            areturn
        end local 3 // java.awt.Image rvImage
        end local 2 // java.awt.Image baseImage
        end local 1 // java.util.function.Function mapper
        end local 0 // sun.awt.image.MultiResolutionToolkitImage mrImage
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0    mrImage  Lsun/awt/image/MultiResolutionToolkitImage;
            0    3     1     mapper  Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;
            1    3     2  baseImage  Ljava/awt/Image;
            2    3     3    rvImage  Ljava/awt/Image;
    Signature: (Lsun/awt/image/MultiResolutionToolkitImage;Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;)Ljava/awt/Image;
    MethodParameters:
         Name  Flags
      mrImage  
      mapper   

  private static void checkSize(double, double);
    descriptor: (DD)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // double width
        start local 2 // double height
         0: .line 62
            dload 0 /* width */
            dconst_0
            dcmpg
            ifle 1
            dload 2 /* height */
            dconst_0
            dcmpg
            ifgt 4
         1: .line 63
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         2: .line 64
            ldc "Width (%s) or height (%s) cannot be <= 0"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            dload 0 /* width */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 2 /* height */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
         3: .line 63
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 67
      StackMap locals:
      StackMap stack:
            dload 0 /* width */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifeq 5
            dload 2 /* height */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifne 8
         5: .line 68
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         6: .line 69
            ldc "Width (%s) or height (%s) is not finite"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            dload 0 /* width */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 2 /* height */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
         7: .line 68
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 71
      StackMap locals:
      StackMap stack:
            return
        end local 2 // double height
        end local 0 // double width
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   width  D
            0    9     2  height  D
    MethodParameters:
        Name  Flags
      width   
      height  

  public java.awt.Image getResolutionVariant();
    descriptor: ()Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
         0: .line 74
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
            areturn
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/MultiResolutionToolkitImage;

  public java.util.List<java.awt.Image> getResolutionVariants();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
         0: .line 79
            iconst_2
            anewarray java.awt.Image
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/MultiResolutionToolkitImage;
    Signature: ()Ljava/util/List<Ljava/awt/Image;>;

  public static java.awt.image.ImageObserver getResolutionVariantObserver(java.awt.Image, java.awt.image.ImageObserver, int, int, int, int);
    descriptor: (Ljava/awt/Image;Ljava/awt/image/ImageObserver;IIII)Ljava/awt/image/ImageObserver;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // java.awt.Image image
        start local 1 // java.awt.image.ImageObserver observer
        start local 2 // int imgWidth
        start local 3 // int imgHeight
        start local 4 // int rvWidth
        start local 5 // int rvHeight
         0: .line 89
            aload 0 /* image */
            aload 1 /* observer */
         1: .line 90
            iload 2 /* imgWidth */
            iload 3 /* imgHeight */
            iload 4 /* rvWidth */
            iload 5 /* rvHeight */
            iconst_0
         2: .line 89
            invokestatic sun.awt.image.MultiResolutionToolkitImage.getResolutionVariantObserver:(Ljava/awt/Image;Ljava/awt/image/ImageObserver;IIIIZ)Ljava/awt/image/ImageObserver;
            areturn
        end local 5 // int rvHeight
        end local 4 // int rvWidth
        end local 3 // int imgHeight
        end local 2 // int imgWidth
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // java.awt.Image image
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0      image  Ljava/awt/Image;
            0    3     1   observer  Ljava/awt/image/ImageObserver;
            0    3     2   imgWidth  I
            0    3     3  imgHeight  I
            0    3     4    rvWidth  I
            0    3     5   rvHeight  I
    MethodParameters:
           Name  Flags
      image      final
      observer   final
      imgWidth   final
      imgHeight  final
      rvWidth    final
      rvHeight   final

  public static java.awt.image.ImageObserver getResolutionVariantObserver(java.awt.Image, java.awt.image.ImageObserver, int, int, int, int, boolean);
    descriptor: (Ljava/awt/Image;Ljava/awt/image/ImageObserver;IIIIZ)Ljava/awt/image/ImageObserver;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=7
        start local 0 // java.awt.Image image
        start local 1 // java.awt.image.ImageObserver observer
        start local 2 // int imgWidth
        start local 3 // int imgHeight
        start local 4 // int rvWidth
        start local 5 // int rvHeight
        start local 6 // boolean concatenateInfo
         0: .line 98
            aload 1 /* observer */
            ifnonnull 2
         1: .line 99
            aconst_null
            areturn
         2: .line 102
      StackMap locals:
      StackMap stack:
            getstatic sun.awt.image.MultiResolutionToolkitImage$ObserverCache.INSTANCE:Ljava/util/Map;
            dup
            astore 7
            monitorenter
         3: .line 103
            getstatic sun.awt.image.MultiResolutionToolkitImage$ObserverCache.INSTANCE:Ljava/util/Map;
            aload 1 /* observer */
         4: .line 104
            iload 6 /* concatenateInfo */
            aload 0 /* image */
            invokedynamic apply(ZLjava/awt/Image;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/awt/image/MultiResolutionToolkitImage.lambda$0(ZLjava/awt/Image;Ljava/awt/image/ImageObserver;)Ljava/awt/image/ImageObserver; (6)
                  (Ljava/awt/image/ImageObserver;)Ljava/awt/image/ImageObserver;
         5: .line 103
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.awt.image.ImageObserver
            aload 7
            monitorexit
         6: areturn
         7: .line 102
      StackMap locals: java.awt.Image java.awt.image.ImageObserver int int int int int java.util.Map
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
         8: athrow
        end local 6 // boolean concatenateInfo
        end local 5 // int rvHeight
        end local 4 // int rvWidth
        end local 3 // int imgHeight
        end local 2 // int imgWidth
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // java.awt.Image image
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0            image  Ljava/awt/Image;
            0    9     1         observer  Ljava/awt/image/ImageObserver;
            0    9     2         imgWidth  I
            0    9     3        imgHeight  I
            0    9     4          rvWidth  I
            0    9     5         rvHeight  I
            0    9     6  concatenateInfo  Z
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
    MethodParameters:
                 Name  Flags
      image            final
      observer         final
      imgWidth         final
      imgHeight        final
      rvWidth          final
      rvHeight         final
      concatenateInfo  

  private static java.awt.image.ImageObserver lambda$0(boolean, java.awt.Image, java.awt.image.ImageObserver);
    descriptor: (ZLjava/awt/Image;Ljava/awt/image/ImageObserver;)Ljava/awt/image/ImageObserver;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=3
        start local 2 // java.awt.image.ImageObserver key
         0: .line 104
            new sun.awt.image.MultiResolutionToolkitImage$ObserverCache
            dup
            aload 2 /* key */
            iload 0
            aload 1
            invokespecial sun.awt.image.MultiResolutionToolkitImage$ObserverCache.<init>:(Ljava/awt/image/ImageObserver;ZLjava/awt/Image;)V
            areturn
        end local 2 // java.awt.image.ImageObserver key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2   key  Ljava/awt/image/ImageObserver;
}
SourceFile: "MultiResolutionToolkitImage.java"
NestMembers:
  sun.awt.image.MultiResolutionToolkitImage$ObserverCache
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private final ObserverCache = sun.awt.image.MultiResolutionToolkitImage$ObserverCache of sun.awt.image.MultiResolutionToolkitImage