public class javafx.scene.ImageCursor extends javafx.scene.Cursor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javafx.scene.ImageCursor
  super_class: javafx.scene.Cursor
{
  private javafx.scene.ImageCursor$ObjectPropertyImpl<javafx.scene.image.Image> image;
    descriptor: Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljavafx/scene/ImageCursor$ObjectPropertyImpl<Ljavafx/scene/image/Image;>;

  private javafx.scene.ImageCursor$DoublePropertyImpl hotspotX;
    descriptor: Ljavafx/scene/ImageCursor$DoublePropertyImpl;
    flags: (0x0002) ACC_PRIVATE

  private javafx.scene.ImageCursor$DoublePropertyImpl hotspotY;
    descriptor: Ljavafx/scene/ImageCursor$DoublePropertyImpl;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.javafx.cursor.CursorFrame currentCursorFrame;
    descriptor: Lcom/sun/javafx/cursor/CursorFrame;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.javafx.cursor.ImageCursorFrame firstCursorFrame;
    descriptor: Lcom/sun/javafx/cursor/ImageCursorFrame;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.Object, com.sun.javafx.cursor.ImageCursorFrame> otherCursorFrames;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Object;Lcom/sun/javafx/cursor/ImageCursorFrame;>;

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

  private javafx.beans.InvalidationListener imageListener;
    descriptor: Ljavafx/beans/InvalidationListener;
    flags: (0x0002) ACC_PRIVATE

  public final javafx.scene.image.Image getImage();
    descriptor: ()Ljavafx/scene/image/Image;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 77
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.image:Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javafx.scene.ImageCursor.image:Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            invokevirtual javafx.scene.ImageCursor$ObjectPropertyImpl.get:()Ljava/lang/Object;
            checkcast javafx.scene.image.Image
      StackMap locals:
      StackMap stack: javafx.scene.image.Image
         2: areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  public final javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.image.Image> imageProperty();
    descriptor: ()Ljavafx/beans/property/ReadOnlyObjectProperty;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 81
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.imagePropertyImpl:()Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/ImageCursor;
    Signature: ()Ljavafx/beans/property/ReadOnlyObjectProperty<Ljavafx/scene/image/Image;>;

  private javafx.scene.ImageCursor$ObjectPropertyImpl<javafx.scene.image.Image> imagePropertyImpl();
    descriptor: ()Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 85
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.image:Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            ifnonnull 2
         1: .line 86
            aload 0 /* this */
            new javafx.scene.ImageCursor$ObjectPropertyImpl
            dup
            aload 0 /* this */
            ldc "image"
            invokespecial javafx.scene.ImageCursor$ObjectPropertyImpl.<init>:(Ljavafx/scene/ImageCursor;Ljava/lang/String;)V
            putfield javafx.scene.ImageCursor.image:Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.image:Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;
    Signature: ()Ljavafx/scene/ImageCursor$ObjectPropertyImpl<Ljavafx/scene/image/Image;>;

  public final double getHotspotX();
    descriptor: ()D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 104
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotX:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            ifnonnull 1
            dconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotX:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            invokevirtual javafx.scene.ImageCursor$DoublePropertyImpl.get:()D
      StackMap locals:
      StackMap stack: double
         2: dreturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  public final javafx.beans.property.ReadOnlyDoubleProperty hotspotXProperty();
    descriptor: ()Ljavafx/beans/property/ReadOnlyDoubleProperty;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 108
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.hotspotXPropertyImpl:()Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/ImageCursor;

  private javafx.scene.ImageCursor$DoublePropertyImpl hotspotXPropertyImpl();
    descriptor: ()Ljavafx/scene/ImageCursor$DoublePropertyImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 112
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotX:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            ifnonnull 2
         1: .line 113
            aload 0 /* this */
            new javafx.scene.ImageCursor$DoublePropertyImpl
            dup
            aload 0 /* this */
            ldc "hotspotX"
            invokespecial javafx.scene.ImageCursor$DoublePropertyImpl.<init>:(Ljavafx/scene/ImageCursor;Ljava/lang/String;)V
            putfield javafx.scene.ImageCursor.hotspotX:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
         2: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotX:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  public final double getHotspotY();
    descriptor: ()D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 131
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotY:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            ifnonnull 1
            dconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotY:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            invokevirtual javafx.scene.ImageCursor$DoublePropertyImpl.get:()D
      StackMap locals:
      StackMap stack: double
         2: dreturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  public final javafx.beans.property.ReadOnlyDoubleProperty hotspotYProperty();
    descriptor: ()Ljavafx/beans/property/ReadOnlyDoubleProperty;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 135
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.hotspotYPropertyImpl:()Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/ImageCursor;

  private javafx.scene.ImageCursor$DoublePropertyImpl hotspotYPropertyImpl();
    descriptor: ()Ljavafx/scene/ImageCursor$DoublePropertyImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 139
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotY:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            ifnonnull 2
         1: .line 140
            aload 0 /* this */
            new javafx.scene.ImageCursor$DoublePropertyImpl
            dup
            aload 0 /* this */
            ldc "hotspotY"
            invokespecial javafx.scene.ImageCursor$DoublePropertyImpl.<init>:(Ljavafx/scene/ImageCursor;Ljava/lang/String;)V
            putfield javafx.scene.ImageCursor.hotspotY:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
         2: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotY:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 171
            aload 0 /* this */
            invokespecial javafx.scene.Cursor.<init>:()V
         1: .line 172
            return
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavafx/scene/ImageCursor;

  public void <init>(javafx.scene.image.Image);
    descriptor: (Ljavafx/scene/image/Image;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.scene.image.Image image
         0: .line 181
            aload 0 /* this */
            aload 1 /* image */
            dconst_0
            dconst_0
            invokespecial javafx.scene.ImageCursor.<init>:(Ljavafx/scene/image/Image;DD)V
         1: .line 182
            return
        end local 1 // javafx.scene.image.Image image
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljavafx/scene/ImageCursor;
            0    2     1  image  Ljavafx/scene/image/Image;
    RuntimeVisibleParameterAnnotations: 
      0:
        javafx.beans.NamedArg(value = "image")
    MethodParameters:
       Name  Flags
      image  final

  public void <init>(javafx.scene.image.Image, double, double);
    descriptor: (Ljavafx/scene/image/Image;DD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.scene.image.Image image
        start local 2 // double hotspotX
        start local 4 // double hotspotY
         0: .line 192
            aload 0 /* this */
            invokespecial javafx.scene.Cursor.<init>:()V
         1: .line 195
            aload 1 /* image */
            ifnull 5
            aload 1 /* image */
            invokevirtual javafx.scene.image.Image.getProgress:()D
            dconst_1
            dcmpg
            ifge 5
         2: .line 197
            aload 0 /* this */
            aload 1 /* image */
            dload 2 /* hotspotX */
            dload 4 /* hotspotY */
         3: .line 196
            invokestatic javafx.scene.ImageCursor$DelayedInitialization.applyTo:(Ljavafx/scene/ImageCursor;Ljavafx/scene/image/Image;DD)V
         4: .line 198
            goto 6
         5: .line 199
      StackMap locals: javafx.scene.ImageCursor javafx.scene.image.Image double double
      StackMap stack:
            aload 0 /* this */
            aload 1 /* image */
            dload 2 /* hotspotX */
            dload 4 /* hotspotY */
            invokevirtual javafx.scene.ImageCursor.initialize:(Ljavafx/scene/image/Image;DD)V
         6: .line 201
      StackMap locals:
      StackMap stack:
            return
        end local 4 // double hotspotY
        end local 2 // double hotspotX
        end local 1 // javafx.scene.image.Image image
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljavafx/scene/ImageCursor;
            0    7     1     image  Ljavafx/scene/image/Image;
            0    7     2  hotspotX  D
            0    7     4  hotspotY  D
    RuntimeVisibleParameterAnnotations: 
      0:
        javafx.beans.NamedArg(value = "image")
      1:
        javafx.beans.NamedArg(value = "hotspotX")
      2:
        javafx.beans.NamedArg(value = "hotspotY")
    MethodParameters:
          Name  Flags
      image     final
      hotspotX  
      hotspotY  

  public static javafx.geometry.Dimension2D getBestSize(double, double);
    descriptor: (DD)Ljavafx/geometry/Dimension2D;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // double preferredWidth
        start local 2 // double preferredHeight
         0: .line 228
            invokestatic com.sun.javafx.tk.Toolkit.getToolkit:()Lcom/sun/javafx/tk/Toolkit;
            dload 0 /* preferredWidth */
            d2i
         1: .line 229
            dload 2 /* preferredHeight */
            d2i
         2: .line 228
            invokevirtual com.sun.javafx.tk.Toolkit.getBestCursorSize:(II)Ljavafx/geometry/Dimension2D;
            areturn
        end local 2 // double preferredHeight
        end local 0 // double preferredWidth
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0   preferredWidth  D
            0    3     2  preferredHeight  D
    MethodParameters:
                 Name  Flags
      preferredWidth   
      preferredHeight  

  public static int getMaximumColors();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 253
            invokestatic com.sun.javafx.tk.Toolkit.getToolkit:()Lcom/sun/javafx/tk/Toolkit;
            invokevirtual com.sun.javafx.tk.Toolkit.getMaximumCursorColors:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static javafx.scene.ImageCursor chooseBestCursor(javafx.scene.image.Image[], double, double);
    descriptor: ([Ljavafx/scene/image/Image;DD)Ljavafx/scene/ImageCursor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // javafx.scene.image.Image[] images
        start local 1 // double hotspotX
        start local 3 // double hotspotY
         0: .line 275
            new javafx.scene.ImageCursor
            dup
            invokespecial javafx.scene.ImageCursor.<init>:()V
            astore 5 /* imageCursor */
        start local 5 // javafx.scene.ImageCursor imageCursor
         1: .line 277
            aload 0 /* images */
            invokestatic javafx.scene.ImageCursor.needsDelayedInitialization:([Ljavafx/scene/image/Image;)Z
            ifeq 5
         2: .line 279
            aload 5 /* imageCursor */
            aload 0 /* images */
            dload 1 /* hotspotX */
            dload 3 /* hotspotY */
         3: .line 278
            invokestatic javafx.scene.ImageCursor$DelayedInitialization.applyTo:(Ljavafx/scene/ImageCursor;[Ljavafx/scene/image/Image;DD)V
         4: .line 280
            goto 6
         5: .line 281
      StackMap locals: javafx.scene.ImageCursor
      StackMap stack:
            aload 5 /* imageCursor */
            aload 0 /* images */
            dload 1 /* hotspotX */
            dload 3 /* hotspotY */
            invokevirtual javafx.scene.ImageCursor.initialize:([Ljavafx/scene/image/Image;DD)V
         6: .line 284
      StackMap locals:
      StackMap stack:
            aload 5 /* imageCursor */
            areturn
        end local 5 // javafx.scene.ImageCursor imageCursor
        end local 3 // double hotspotY
        end local 1 // double hotspotX
        end local 0 // javafx.scene.image.Image[] images
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0       images  [Ljavafx/scene/image/Image;
            0    7     1     hotspotX  D
            0    7     3     hotspotY  D
            1    7     5  imageCursor  Ljavafx/scene/ImageCursor;
    MethodParameters:
          Name  Flags
      images    final
      hotspotX  final
      hotspotY  final

  com.sun.javafx.cursor.CursorFrame getCurrentFrame();
    descriptor: ()Lcom/sun/javafx/cursor/CursorFrame;
    flags: (0x0000) 
    Code:
      stack=12, locals=4, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 288
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
            ifnull 2
         1: .line 289
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
            areturn
         2: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getImage:()Ljavafx/scene/image/Image;
            astore 1 /* cursorImage */
        start local 1 // javafx.scene.image.Image cursorImage
         3: .line 294
            aload 1 /* cursorImage */
            ifnonnull 6
         4: .line 295
            aload 0 /* this */
            getstatic javafx.scene.Cursor.DEFAULT:Ljavafx/scene/Cursor;
            invokevirtual javafx.scene.Cursor.getCurrentFrame:()Lcom/sun/javafx/cursor/CursorFrame;
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
         5: .line 296
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
            areturn
         6: .line 299
      StackMap locals: javafx.scene.image.Image
      StackMap stack:
            invokestatic com.sun.javafx.tk.Toolkit.getImageAccessor:()Lcom/sun/javafx/tk/Toolkit$ImageAccessor;
            aload 1 /* cursorImage */
            invokeinterface com.sun.javafx.tk.Toolkit$ImageAccessor.getPlatformImage:(Ljavafx/scene/image/Image;)Ljava/lang/Object;
            astore 2 /* cursorPlatformImage */
        start local 2 // java.lang.Object cursorPlatformImage
         7: .line 300
            aload 2 /* cursorPlatformImage */
            ifnonnull 10
         8: .line 301
            aload 0 /* this */
            getstatic javafx.scene.Cursor.DEFAULT:Ljavafx/scene/Cursor;
            invokevirtual javafx.scene.Cursor.getCurrentFrame:()Lcom/sun/javafx/cursor/CursorFrame;
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
         9: .line 302
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
            areturn
        10: .line 305
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.firstCursorFrame:Lcom/sun/javafx/cursor/ImageCursorFrame;
            ifnonnull 21
        11: .line 306
            aload 0 /* this */
        12: .line 307
            new com.sun.javafx.cursor.ImageCursorFrame
            dup
            aload 2 /* cursorPlatformImage */
        13: .line 308
            aload 1 /* cursorImage */
            invokevirtual javafx.scene.image.Image.getWidth:()D
        14: .line 309
            aload 1 /* cursorImage */
            invokevirtual javafx.scene.image.Image.getHeight:()D
        15: .line 310
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getHotspotX:()D
        16: .line 311
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getHotspotY:()D
        17: .line 307
            invokespecial com.sun.javafx.cursor.ImageCursorFrame.<init>:(Ljava/lang/Object;DDDD)V
        18: .line 306
            putfield javafx.scene.ImageCursor.firstCursorFrame:Lcom/sun/javafx/cursor/ImageCursorFrame;
        19: .line 312
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.firstCursorFrame:Lcom/sun/javafx/cursor/ImageCursorFrame;
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
        20: .line 313
            goto 37
      StackMap locals:
      StackMap stack:
        21: aload 0 /* this */
            getfield javafx.scene.ImageCursor.firstCursorFrame:Lcom/sun/javafx/cursor/ImageCursorFrame;
            invokevirtual com.sun.javafx.cursor.ImageCursorFrame.getPlatformImage:()Ljava/lang/Object;
            aload 2 /* cursorPlatformImage */
            if_acmpne 24
        22: .line 314
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.firstCursorFrame:Lcom/sun/javafx/cursor/ImageCursorFrame;
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
        23: .line 315
            goto 37
        24: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.otherCursorFrames:Ljava/util/Map;
            ifnonnull 26
        25: .line 317
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javafx.scene.ImageCursor.otherCursorFrames:Ljava/util/Map;
        26: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.otherCursorFrames:Ljava/util/Map;
            aload 2 /* cursorPlatformImage */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.javafx.cursor.CursorFrame
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
        27: .line 321
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
            ifnonnull 37
        28: .line 324
            new com.sun.javafx.cursor.ImageCursorFrame
            dup
            aload 2 /* cursorPlatformImage */
        29: .line 325
            aload 1 /* cursorImage */
            invokevirtual javafx.scene.image.Image.getWidth:()D
        30: .line 326
            aload 1 /* cursorImage */
            invokevirtual javafx.scene.image.Image.getHeight:()D
        31: .line 327
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getHotspotX:()D
        32: .line 328
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getHotspotY:()D
        33: .line 324
            invokespecial com.sun.javafx.cursor.ImageCursorFrame.<init>:(Ljava/lang/Object;DDDD)V
        34: .line 323
            astore 3 /* newCursorFrame */
        start local 3 // com.sun.javafx.cursor.ImageCursorFrame newCursorFrame
        35: .line 330
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.otherCursorFrames:Ljava/util/Map;
            aload 2 /* cursorPlatformImage */
            aload 3 /* newCursorFrame */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 331
            aload 0 /* this */
            aload 3 /* newCursorFrame */
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
        end local 3 // com.sun.javafx.cursor.ImageCursorFrame newCursorFrame
        37: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
            areturn
        end local 2 // java.lang.Object cursorPlatformImage
        end local 1 // javafx.scene.image.Image cursorImage
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0                 this  Ljavafx/scene/ImageCursor;
            3   38     1          cursorImage  Ljavafx/scene/image/Image;
            7   38     2  cursorPlatformImage  Ljava/lang/Object;
           35   37     3       newCursorFrame  Lcom/sun/javafx/cursor/ImageCursorFrame;

  private void invalidateCurrentFrame();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 339
            aload 0 /* this */
            aconst_null
            putfield javafx.scene.ImageCursor.currentCursorFrame:Lcom/sun/javafx/cursor/CursorFrame;
         1: .line 340
            return
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavafx/scene/ImageCursor;

  void activate();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 344
            aload 0 /* this */
            dup
            getfield javafx.scene.ImageCursor.activeCounter:I
            iconst_1
            iadd
            dup_x1
            putfield javafx.scene.ImageCursor.activeCounter:I
            iconst_1
            if_icmpne 3
         1: .line 345
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getImage:()Ljavafx/scene/image/Image;
            invokevirtual javafx.scene.ImageCursor.bindImage:(Ljavafx/scene/image/Image;)V
         2: .line 346
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.invalidateCurrentFrame:()V
         3: .line 348
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/ImageCursor;

  void deactivate();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 352
            aload 0 /* this */
            dup
            getfield javafx.scene.ImageCursor.activeCounter:I
            iconst_1
            isub
            dup_x1
            putfield javafx.scene.ImageCursor.activeCounter:I
            ifne 2
         1: .line 353
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getImage:()Ljavafx/scene/image/Image;
            invokevirtual javafx.scene.ImageCursor.unbindImage:(Ljavafx/scene/image/Image;)V
         2: .line 355
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  private void initialize(javafx.scene.image.Image[], double, double);
    descriptor: ([Ljavafx/scene/image/Image;DD)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=4
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.scene.image.Image[] images
        start local 2 // double hotspotX
        start local 4 // double hotspotY
         0: .line 360
            dconst_1
            dconst_1
            invokestatic javafx.scene.ImageCursor.getBestSize:(DD)Ljavafx/geometry/Dimension2D;
            astore 6 /* dim */
        start local 6 // javafx.geometry.Dimension2D dim
         1: .line 364
            aload 1 /* images */
            arraylength
            ifeq 3
            aload 6 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getWidth:()D
            dconst_0
            dcmpl
            ifeq 3
         2: .line 365
            aload 6 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getHeight:()D
            dconst_0
            dcmpl
            ifne 4
         3: .line 366
      StackMap locals: javafx.geometry.Dimension2D
      StackMap stack:
            return
         4: .line 370
      StackMap locals:
      StackMap stack:
            aload 1 /* images */
            arraylength
            iconst_1
            if_icmpne 7
         5: .line 371
            aload 0 /* this */
            aload 1 /* images */
            iconst_0
            aaload
            dload 2 /* hotspotX */
            dload 4 /* hotspotY */
            invokevirtual javafx.scene.ImageCursor.initialize:(Ljavafx/scene/image/Image;DD)V
         6: .line 372
            return
         7: .line 375
      StackMap locals:
      StackMap stack:
            aload 1 /* images */
            invokestatic javafx.scene.ImageCursor.findBestImage:([Ljavafx/scene/image/Image;)Ljavafx/scene/image/Image;
            astore 7 /* bestImage */
        start local 7 // javafx.scene.image.Image bestImage
         8: .line 376
            aload 7 /* bestImage */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            aload 1 /* images */
            iconst_0
            aaload
            invokevirtual javafx.scene.image.Image.getWidth:()D
            ddiv
            dstore 8 /* scaleX */
        start local 8 // double scaleX
         9: .line 377
            aload 7 /* bestImage */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            aload 1 /* images */
            iconst_0
            aaload
            invokevirtual javafx.scene.image.Image.getHeight:()D
            ddiv
            dstore 10 /* scaleY */
        start local 10 // double scaleY
        10: .line 379
            aload 0 /* this */
            aload 7 /* bestImage */
            dload 2 /* hotspotX */
            dload 8 /* scaleX */
            dmul
            dload 4 /* hotspotY */
            dload 10 /* scaleY */
            dmul
            invokevirtual javafx.scene.ImageCursor.initialize:(Ljavafx/scene/image/Image;DD)V
        11: .line 380
            return
        end local 10 // double scaleY
        end local 8 // double scaleX
        end local 7 // javafx.scene.image.Image bestImage
        end local 6 // javafx.geometry.Dimension2D dim
        end local 4 // double hotspotY
        end local 2 // double hotspotX
        end local 1 // javafx.scene.image.Image[] images
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Ljavafx/scene/ImageCursor;
            0   12     1     images  [Ljavafx/scene/image/Image;
            0   12     2   hotspotX  D
            0   12     4   hotspotY  D
            1   12     6        dim  Ljavafx/geometry/Dimension2D;
            8   12     7  bestImage  Ljavafx/scene/image/Image;
            9   12     8     scaleX  D
           10   12    10     scaleY  D
    MethodParameters:
          Name  Flags
      images    final
      hotspotX  final
      hotspotY  final

  private void initialize(javafx.scene.image.Image, double, double);
    descriptor: (Ljavafx/scene/image/Image;DD)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.scene.image.Image newImage
        start local 2 // double newHotspotX
        start local 4 // double newHotspotY
         0: .line 385
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getImage:()Ljavafx/scene/image/Image;
            astore 6 /* oldImage */
        start local 6 // javafx.scene.image.Image oldImage
         1: .line 386
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getHotspotX:()D
            dstore 7 /* oldHotspotX */
        start local 7 // double oldHotspotX
         2: .line 387
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getHotspotY:()D
            dstore 9 /* oldHotspotY */
        start local 9 // double oldHotspotY
         3: .line 389
            aload 1 /* newImage */
            ifnull 5
            aload 1 /* newImage */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            dconst_1
            dcmpg
            iflt 5
         4: .line 390
            aload 1 /* newImage */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            dconst_1
            dcmpg
            ifge 8
         5: .line 392
      StackMap locals: javafx.scene.image.Image double double
      StackMap stack:
            dconst_0
            dstore 2 /* newHotspotX */
         6: .line 393
            dconst_0
            dstore 4 /* newHotspotY */
         7: .line 394
            goto 16
         8: .line 395
      StackMap locals:
      StackMap stack:
            dload 2 /* newHotspotX */
            dconst_0
            dcmpg
            ifge 10
         9: .line 396
            dconst_0
            dstore 2 /* newHotspotX */
        10: .line 398
      StackMap locals:
      StackMap stack:
            dload 2 /* newHotspotX */
            aload 1 /* newImage */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            dconst_1
            dsub
            dcmpl
            ifle 12
        11: .line 399
            aload 1 /* newImage */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            dconst_1
            dsub
            dstore 2 /* newHotspotX */
        12: .line 401
      StackMap locals:
      StackMap stack:
            dload 4 /* newHotspotY */
            dconst_0
            dcmpg
            ifge 14
        13: .line 402
            dconst_0
            dstore 4 /* newHotspotY */
        14: .line 404
      StackMap locals:
      StackMap stack:
            dload 4 /* newHotspotY */
            aload 1 /* newImage */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            dconst_1
            dsub
            dcmpl
            ifle 16
        15: .line 405
            aload 1 /* newImage */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            dconst_1
            dsub
            dstore 4 /* newHotspotY */
        16: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.imagePropertyImpl:()Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            aload 1 /* newImage */
            invokevirtual javafx.scene.ImageCursor$ObjectPropertyImpl.store:(Ljava/lang/Object;)V
        17: .line 410
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.hotspotXPropertyImpl:()Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            dload 2 /* newHotspotX */
            invokevirtual javafx.scene.ImageCursor$DoublePropertyImpl.store:(D)V
        18: .line 411
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.hotspotYPropertyImpl:()Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            dload 4 /* newHotspotY */
            invokevirtual javafx.scene.ImageCursor$DoublePropertyImpl.store:(D)V
        19: .line 413
            aload 6 /* oldImage */
            aload 1 /* newImage */
            if_acmpeq 25
        20: .line 414
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.activeCounter:I
            ifle 23
        21: .line 415
            aload 0 /* this */
            aload 6 /* oldImage */
            invokevirtual javafx.scene.ImageCursor.unbindImage:(Ljavafx/scene/image/Image;)V
        22: .line 416
            aload 0 /* this */
            aload 1 /* newImage */
            invokevirtual javafx.scene.ImageCursor.bindImage:(Ljavafx/scene/image/Image;)V
        23: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.invalidateCurrentFrame:()V
        24: .line 420
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.image:Ljavafx/scene/ImageCursor$ObjectPropertyImpl;
            invokevirtual javafx.scene.ImageCursor$ObjectPropertyImpl.fireValueChangedEvent:()V
        25: .line 423
      StackMap locals:
      StackMap stack:
            dload 7 /* oldHotspotX */
            dload 2 /* newHotspotX */
            dcmpl
            ifeq 27
        26: .line 424
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotX:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            invokevirtual javafx.scene.ImageCursor$DoublePropertyImpl.fireValueChangedEvent:()V
        27: .line 427
      StackMap locals:
      StackMap stack:
            dload 9 /* oldHotspotY */
            dload 4 /* newHotspotY */
            dcmpl
            ifeq 29
        28: .line 428
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.hotspotY:Ljavafx/scene/ImageCursor$DoublePropertyImpl;
            invokevirtual javafx.scene.ImageCursor$DoublePropertyImpl.fireValueChangedEvent:()V
        29: .line 430
      StackMap locals:
      StackMap stack:
            return
        end local 9 // double oldHotspotY
        end local 7 // double oldHotspotX
        end local 6 // javafx.scene.image.Image oldImage
        end local 4 // double newHotspotY
        end local 2 // double newHotspotX
        end local 1 // javafx.scene.image.Image newImage
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0         this  Ljavafx/scene/ImageCursor;
            0   30     1     newImage  Ljavafx/scene/image/Image;
            0   30     2  newHotspotX  D
            0   30     4  newHotspotY  D
            1   30     6     oldImage  Ljavafx/scene/image/Image;
            2   30     7  oldHotspotX  D
            3   30     9  oldHotspotY  D
    MethodParameters:
             Name  Flags
      newImage     
      newHotspotX  
      newHotspotY  

  private javafx.beans.InvalidationListener getImageListener();
    descriptor: ()Ljavafx/beans/InvalidationListener;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.ImageCursor this
         0: .line 435
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.imageListener:Ljavafx/beans/InvalidationListener;
            ifnonnull 2
         1: .line 436
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic invalidated(Ljavafx/scene/ImageCursor;)Ljavafx/beans/InvalidationListener;
              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:
                  (Ljavafx/beans/Observable;)V
                  javafx/scene/ImageCursor.lambda$0(Ljavafx/beans/Observable;)V (7)
                  (Ljavafx/beans/Observable;)V
            putfield javafx.scene.ImageCursor.imageListener:Ljavafx/beans/InvalidationListener;
         2: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.ImageCursor.imageListener:Ljavafx/beans/InvalidationListener;
            areturn
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/ImageCursor;

  private void bindImage(javafx.scene.image.Image);
    descriptor: (Ljavafx/scene/image/Image;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.scene.image.Image toImage
         0: .line 443
            aload 1 /* toImage */
            ifnonnull 2
         1: .line 444
            return
         2: .line 447
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.javafx.tk.Toolkit.getImageAccessor:()Lcom/sun/javafx/tk/Toolkit$ImageAccessor;
            aload 1 /* toImage */
            invokeinterface com.sun.javafx.tk.Toolkit$ImageAccessor.getImageProperty:(Ljavafx/scene/image/Image;)Ljavafx/beans/property/ReadOnlyObjectProperty;
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getImageListener:()Ljavafx/beans/InvalidationListener;
            invokevirtual javafx.beans.property.ReadOnlyObjectProperty.addListener:(Ljavafx/beans/InvalidationListener;)V
         3: .line 448
            return
        end local 1 // javafx.scene.image.Image toImage
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljavafx/scene/ImageCursor;
            0    4     1  toImage  Ljavafx/scene/image/Image;
    MethodParameters:
         Name  Flags
      toImage  final

  private void unbindImage(javafx.scene.image.Image);
    descriptor: (Ljavafx/scene/image/Image;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.scene.image.Image fromImage
         0: .line 451
            aload 1 /* fromImage */
            ifnonnull 2
         1: .line 452
            return
         2: .line 455
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.javafx.tk.Toolkit.getImageAccessor:()Lcom/sun/javafx/tk/Toolkit$ImageAccessor;
            aload 1 /* fromImage */
            invokeinterface com.sun.javafx.tk.Toolkit$ImageAccessor.getImageProperty:(Ljavafx/scene/image/Image;)Ljavafx/beans/property/ReadOnlyObjectProperty;
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.getImageListener:()Ljavafx/beans/InvalidationListener;
            invokevirtual javafx.beans.property.ReadOnlyObjectProperty.removeListener:(Ljavafx/beans/InvalidationListener;)V
         3: .line 456
            return
        end local 1 // javafx.scene.image.Image fromImage
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljavafx/scene/ImageCursor;
            0    4     1  fromImage  Ljavafx/scene/image/Image;
    MethodParameters:
           Name  Flags
      fromImage  final

  private static boolean needsDelayedInitialization(javafx.scene.image.Image[]);
    descriptor: ([Ljavafx/scene/image/Image;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // javafx.scene.image.Image[] images
         0: .line 459
            aload 0 /* images */
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: javafx.scene.image.Image[] top int int javafx.scene.image.Image[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* image */
        start local 1 // javafx.scene.image.Image image
         2: .line 460
            aload 1 /* image */
            invokevirtual javafx.scene.image.Image.getProgress:()D
            dconst_1
            dcmpg
            ifge 4
         3: .line 461
            iconst_1
            ireturn
        end local 1 // javafx.scene.image.Image image
         4: .line 459
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 465
            iconst_0
            ireturn
        end local 0 // javafx.scene.image.Image[] images
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  images  [Ljavafx/scene/image/Image;
            2    4     1   image  Ljavafx/scene/image/Image;
    MethodParameters:
        Name  Flags
      images  final

  private static javafx.scene.image.Image findBestImage(javafx.scene.image.Image[]);
    descriptor: ([Ljavafx/scene/image/Image;)Ljavafx/scene/image/Image;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=1
        start local 0 // javafx.scene.image.Image[] images
         0: .line 471
            aload 0 /* images */
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 9
      StackMap locals: javafx.scene.image.Image[] top int int javafx.scene.image.Image[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* image */
        start local 1 // javafx.scene.image.Image image
         2: .line 472
            aload 1 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            d2i
            i2d
         3: .line 473
            aload 1 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            d2i
            i2d
         4: .line 472
            invokestatic javafx.scene.ImageCursor.getBestSize:(DD)Ljavafx/geometry/Dimension2D;
            astore 5 /* dim */
        start local 5 // javafx.geometry.Dimension2D dim
         5: .line 474
            aload 5 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getWidth:()D
            aload 1 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            dcmpl
            ifne 8
         6: .line 475
            aload 5 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getHeight:()D
            aload 1 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            dcmpl
            ifne 8
         7: .line 476
            aload 1 /* image */
            areturn
        end local 5 // javafx.geometry.Dimension2D dim
        end local 1 // javafx.scene.image.Image image
         8: .line 471
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         9: iload 2
            iload 3
            if_icmplt 1
        10: .line 482
            aconst_null
            astore 1 /* bestImage */
        start local 1 // javafx.scene.image.Image bestImage
        11: .line 483
            ldc 1.7976931348623157E308
            dstore 2 /* bestRatio */
        start local 2 // double bestRatio
        12: .line 484
            aload 0 /* images */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 26
      StackMap locals: javafx.scene.image.Image[] javafx.scene.image.Image double top int int javafx.scene.image.Image[]
      StackMap stack:
        13: aload 7
            iload 5
            aaload
            astore 4 /* image */
        start local 4 // javafx.scene.image.Image image
        14: .line 485
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            dconst_0
            dcmpl
            ifle 25
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            dconst_0
            dcmpl
            ifle 25
        15: .line 486
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
        16: .line 487
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
        17: .line 486
            invokestatic javafx.scene.ImageCursor.getBestSize:(DD)Ljavafx/geometry/Dimension2D;
            astore 8 /* dim */
        start local 8 // javafx.geometry.Dimension2D dim
        18: .line 488
            aload 8 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getWidth:()D
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            ddiv
            dstore 9 /* ratioX */
        start local 9 // double ratioX
        19: .line 489
            aload 8 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getHeight:()D
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            ddiv
            dstore 11 /* ratioY */
        start local 11 // double ratioY
        20: .line 490
            dload 9 /* ratioX */
            dconst_1
            dcmpl
            iflt 25
            dload 11 /* ratioY */
            dconst_1
            dcmpl
            iflt 25
        21: .line 491
            dload 9 /* ratioX */
            dload 11 /* ratioY */
            invokestatic java.lang.Math.max:(DD)D
            dstore 13 /* ratio */
        start local 13 // double ratio
        22: .line 492
            dload 13 /* ratio */
            dload 2 /* bestRatio */
            dcmpg
            ifge 25
        23: .line 493
            aload 4 /* image */
            astore 1 /* bestImage */
        24: .line 494
            dload 13 /* ratio */
            dstore 2 /* bestRatio */
        end local 13 // double ratio
        end local 11 // double ratioY
        end local 9 // double ratioX
        end local 8 // javafx.geometry.Dimension2D dim
        end local 4 // javafx.scene.image.Image image
        25: .line 484
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        26: iload 5
            iload 6
            if_icmplt 13
        27: .line 499
            aload 1 /* bestImage */
            ifnull 29
        28: .line 500
            aload 1 /* bestImage */
            areturn
        29: .line 505
      StackMap locals: javafx.scene.image.Image[] javafx.scene.image.Image double
      StackMap stack:
            aload 0 /* images */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 47
      StackMap locals: javafx.scene.image.Image[] javafx.scene.image.Image double top int int javafx.scene.image.Image[]
      StackMap stack:
        30: aload 7
            iload 5
            aaload
            astore 4 /* image */
        start local 4 // javafx.scene.image.Image image
        31: .line 506
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            dconst_0
            dcmpl
            ifle 46
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            dconst_0
            dcmpl
            ifle 46
        32: .line 507
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
        33: .line 508
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
        34: .line 507
            invokestatic javafx.scene.ImageCursor.getBestSize:(DD)Ljavafx/geometry/Dimension2D;
            astore 8 /* dim */
        start local 8 // javafx.geometry.Dimension2D dim
        35: .line 509
            aload 8 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getWidth:()D
            dconst_0
            dcmpl
            ifle 46
            aload 8 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getHeight:()D
            dconst_0
            dcmpl
            ifle 46
        36: .line 510
            aload 8 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getWidth:()D
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getWidth:()D
            ddiv
            dstore 9 /* ratioX */
        start local 9 // double ratioX
        37: .line 511
            dload 9 /* ratioX */
            dconst_1
            dcmpg
            ifge 39
        38: .line 512
            dconst_1
            dload 9 /* ratioX */
            ddiv
            dstore 9 /* ratioX */
        39: .line 514
      StackMap locals: javafx.scene.image.Image[] javafx.scene.image.Image double javafx.scene.image.Image int int javafx.scene.image.Image[] javafx.geometry.Dimension2D double
      StackMap stack:
            aload 8 /* dim */
            invokevirtual javafx.geometry.Dimension2D.getHeight:()D
            aload 4 /* image */
            invokevirtual javafx.scene.image.Image.getHeight:()D
            ddiv
            dstore 11 /* ratioY */
        start local 11 // double ratioY
        40: .line 515
            dload 11 /* ratioY */
            dconst_1
            dcmpg
            ifge 42
        41: .line 516
            dconst_1
            dload 11 /* ratioY */
            ddiv
            dstore 11 /* ratioY */
        42: .line 518
      StackMap locals: double
      StackMap stack:
            dload 9 /* ratioX */
            dload 11 /* ratioY */
            invokestatic java.lang.Math.max:(DD)D
            dstore 13 /* ratio */
        start local 13 // double ratio
        43: .line 519
            dload 13 /* ratio */
            dload 2 /* bestRatio */
            dcmpg
            ifge 46
        44: .line 520
            aload 4 /* image */
            astore 1 /* bestImage */
        45: .line 521
            dload 13 /* ratio */
            dstore 2 /* bestRatio */
        end local 13 // double ratio
        end local 11 // double ratioY
        end local 9 // double ratioX
        end local 8 // javafx.geometry.Dimension2D dim
        end local 4 // javafx.scene.image.Image image
        46: .line 505
      StackMap locals: javafx.scene.image.Image[] javafx.scene.image.Image double top int int javafx.scene.image.Image[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        47: iload 5
            iload 6
            if_icmplt 30
        48: .line 526
            aload 1 /* bestImage */
            ifnull 50
        49: .line 527
            aload 1 /* bestImage */
            areturn
        50: .line 530
      StackMap locals: javafx.scene.image.Image[] javafx.scene.image.Image double
      StackMap stack:
            aload 0 /* images */
            iconst_0
            aaload
            areturn
        end local 2 // double bestRatio
        end local 1 // javafx.scene.image.Image bestImage
        end local 0 // javafx.scene.image.Image[] images
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   51     0     images  [Ljavafx/scene/image/Image;
            2    8     1      image  Ljavafx/scene/image/Image;
            5    8     5        dim  Ljavafx/geometry/Dimension2D;
           11   51     1  bestImage  Ljavafx/scene/image/Image;
           12   51     2  bestRatio  D
           14   25     4      image  Ljavafx/scene/image/Image;
           18   25     8        dim  Ljavafx/geometry/Dimension2D;
           19   25     9     ratioX  D
           20   25    11     ratioY  D
           22   25    13      ratio  D
           31   46     4      image  Ljavafx/scene/image/Image;
           35   46     8        dim  Ljavafx/geometry/Dimension2D;
           37   46     9     ratioX  D
           40   46    11     ratioY  D
           43   46    13      ratio  D
    MethodParameters:
        Name  Flags
      images  final

  private void lambda$0(javafx.beans.Observable);
    descriptor: (Ljavafx/beans/Observable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // javafx.scene.ImageCursor this
        start local 1 // javafx.beans.Observable valueModel
         0: .line 436
            aload 0 /* this */
            invokevirtual javafx.scene.ImageCursor.invalidateCurrentFrame:()V
            return
        end local 1 // javafx.beans.Observable valueModel
        end local 0 // javafx.scene.ImageCursor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljavafx/scene/ImageCursor;
            0    1     1  valueModel  Ljavafx/beans/Observable;
}
SourceFile: "ImageCursor.java"
NestMembers:
  javafx.scene.ImageCursor$DelayedInitialization  javafx.scene.ImageCursor$DoublePropertyImpl  javafx.scene.ImageCursor$ObjectPropertyImpl
InnerClasses:
  public abstract ImageAccessor = com.sun.javafx.tk.Toolkit$ImageAccessor of com.sun.javafx.tk.Toolkit
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private final DelayedInitialization = javafx.scene.ImageCursor$DelayedInitialization of javafx.scene.ImageCursor
  private final DoublePropertyImpl = javafx.scene.ImageCursor$DoublePropertyImpl of javafx.scene.ImageCursor
  private final ObjectPropertyImpl = javafx.scene.ImageCursor$ObjectPropertyImpl of javafx.scene.ImageCursor