public class com.sun.javafx.scene.paint.GradientUtils$Parser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.javafx.scene.paint.GradientUtils$Parser
  super_class: java.lang.Object
{
  private int index;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] tokens;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.String[] splitString(java.lang.String, com.sun.javafx.scene.paint.GradientUtils$Parser$Delimiter, boolean);
    descriptor: (Ljava/lang/String;Lcom/sun/javafx/scene/paint/GradientUtils$Parser$Delimiter;Z)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
        start local 1 // java.lang.String string
        start local 2 // com.sun.javafx.scene.paint.GradientUtils$Parser$Delimiter delimiter
        start local 3 // boolean canRepeat
         0: .line 76
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* tokenList */
        start local 4 // java.util.List tokenList
         1: .line 77
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* token */
        start local 5 // java.lang.StringBuilder token
         2: .line 78
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: .line 79
            aload 1 /* string */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 7 /* input */
        start local 7 // char[] input
         4: .line 80
            goto 21
         5: .line 81
      StackMap locals: com.sun.javafx.scene.paint.GradientUtils$Parser java.lang.String com.sun.javafx.scene.paint.GradientUtils$Parser$Delimiter int java.util.List java.lang.StringBuilder int char[]
      StackMap stack:
            aload 7 /* input */
            iload 6 /* i */
            caload
            istore 8 /* currentChar */
        start local 8 // char currentChar
         6: .line 83
            aload 2 /* delimiter */
            iload 8 /* currentChar */
            invokeinterface com.sun.javafx.scene.paint.GradientUtils$Parser$Delimiter.isDelimiter:(C)Z
            ifeq 11
         7: .line 84
            iload 3 /* canRepeat */
            ifeq 8
            aload 5 /* token */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 9
         8: .line 85
      StackMap locals: int
      StackMap stack:
            aload 4 /* tokenList */
            aload 5 /* token */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 87
      StackMap locals:
      StackMap stack:
            aload 5 /* token */
            iconst_0
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        10: .line 88
            goto 20
      StackMap locals:
      StackMap stack:
        11: iload 8 /* currentChar */
            bipush 40
            if_icmpne 19
        12: .line 89
            goto 17
        13: .line 90
      StackMap locals:
      StackMap stack:
            aload 5 /* token */
            aload 7 /* input */
            iload 6 /* i */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 91
            aload 7 /* input */
            iload 6 /* i */
            caload
            bipush 41
            if_icmpne 16
        15: .line 92
            goto 20
        16: .line 94
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        17: .line 89
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            aload 7 /* input */
            arraylength
            if_icmplt 13
        18: .line 96
            goto 20
        19: .line 97
      StackMap locals:
      StackMap stack:
            aload 5 /* token */
            aload 7 /* input */
            iload 6 /* i */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 99
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        end local 8 // char currentChar
        21: .line 80
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            aload 7 /* input */
            arraylength
            if_icmplt 5
        22: .line 101
            iload 3 /* canRepeat */
            ifeq 23
            aload 5 /* token */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 24
        23: .line 102
      StackMap locals:
      StackMap stack:
            aload 4 /* tokenList */
            aload 5 /* token */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 105
      StackMap locals:
      StackMap stack:
            aload 4 /* tokenList */
            aload 4 /* tokenList */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 7 // char[] input
        end local 6 // int i
        end local 5 // java.lang.StringBuilder token
        end local 4 // java.util.List tokenList
        end local 3 // boolean canRepeat
        end local 2 // com.sun.javafx.scene.paint.GradientUtils$Parser$Delimiter delimiter
        end local 1 // java.lang.String string
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;
            0   25     1       string  Ljava/lang/String;
            0   25     2    delimiter  Lcom/sun/javafx/scene/paint/GradientUtils$Parser$Delimiter;
            0   25     3    canRepeat  Z
            1   25     4    tokenList  Ljava/util/List<Ljava/lang/String;>;
            2   25     5        token  Ljava/lang/StringBuilder;
            3   25     6            i  I
            4   25     7        input  [C
            6   21     8  currentChar  C
    MethodParameters:
           Name  Flags
      string     
      delimiter  
      canRepeat  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
        start local 1 // java.lang.String content
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 69
            aload 0 /* this */
            iconst_0
            putfield com.sun.javafx.scene.paint.GradientUtils$Parser.proportionalSet:Z
         2: .line 109
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* content */
            invokedynamic isDelimiter()Lcom/sun/javafx/scene/paint/GradientUtils$Parser$Delimiter;
              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:
                  (C)Z
                  com/sun/javafx/scene/paint/GradientUtils$Parser.lambda$0(C)Z (6)
                  (C)Z
            iconst_0
            invokevirtual com.sun.javafx.scene.paint.GradientUtils$Parser.splitString:(Ljava/lang/String;Lcom/sun/javafx/scene/paint/GradientUtils$Parser$Delimiter;Z)[Ljava/lang/String;
            putfield com.sun.javafx.scene.paint.GradientUtils$Parser.tokens:[Ljava/lang/String;
         3: .line 111
            aload 0 /* this */
            iconst_0
            putfield com.sun.javafx.scene.paint.GradientUtils$Parser.index:I
         4: .line 112
            return
        end local 1 // java.lang.String content
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;
            0    5     1  content  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      content  

  public int getSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
         0: .line 115
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.tokens:[Ljava/lang/String;
            arraylength
            ireturn
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;

  public void shift();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
         0: .line 119
            aload 0 /* this */
            dup
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.index:I
            iconst_1
            iadd
            putfield com.sun.javafx.scene.paint.GradientUtils$Parser.index:I
         1: .line 120
            return
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;

  public java.lang.String getCurrentToken();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
         0: .line 123
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.tokens:[Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.index:I
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* currentToken */
        start local 1 // java.lang.String currentToken
         1: .line 124
            aload 1 /* currentToken */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
         2: .line 125
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid gradient specification: found empty token."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 128
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* currentToken */
            areturn
        end local 1 // java.lang.String currentToken
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;
            1    4     1  currentToken  Ljava/lang/String;

  public java.lang.String[] splitCurrentToken();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
         0: .line 132
            aload 0 /* this */
            invokevirtual com.sun.javafx.scene.paint.GradientUtils$Parser.getCurrentToken:()Ljava/lang/String;
            ldc "\\s"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;

  public static void checkNumberOfArguments(java.lang.String[], int);
    descriptor: ([Ljava/lang/String;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.String[] tokens
        start local 1 // int count
         0: .line 136
            aload 0 /* tokens */
            arraylength
            iload 1 /* count */
            iconst_1
            iadd
            if_icmpge 4
         1: .line 137
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid gradient specification: parameter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 138
            aload 0 /* tokens */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' needs "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " argument(s)."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 137
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int count
        end local 0 // java.lang.String[] tokens
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  tokens  [Ljava/lang/String;
            0    5     1   count  I
    MethodParameters:
        Name  Flags
      tokens  
      count   

  public static double parseAngle(java.lang.String);
    descriptor: (Ljava/lang/String;)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String value
         0: .line 143
            dconst_0
            dstore 1 /* angle */
        start local 1 // double angle
         1: .line 144
            aload 0 /* value */
            ldc "deg"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 145
            aload 0 /* value */
            iconst_0
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* value */
         3: .line 146
            aload 0 /* value */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dstore 1 /* angle */
         4: .line 147
            goto 21
      StackMap locals: double
      StackMap stack:
         5: aload 0 /* value */
            ldc "grad"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 10
         6: .line 148
            aload 0 /* value */
            iconst_0
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_4
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* value */
         7: .line 149
            aload 0 /* value */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dstore 1 /* angle */
         8: .line 150
            dload 1 /* angle */
            ldc 9.0
            dmul
            ldc 10.0
            ddiv
            dstore 1 /* angle */
         9: .line 151
            goto 21
      StackMap locals:
      StackMap stack:
        10: aload 0 /* value */
            ldc "rad"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        11: .line 152
            aload 0 /* value */
            iconst_0
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* value */
        12: .line 153
            aload 0 /* value */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dstore 1 /* angle */
        13: .line 154
            dload 1 /* angle */
            ldc 180.0
            dmul
            ldc 3.141592653589793
            ddiv
            dstore 1 /* angle */
        14: .line 155
            goto 21
      StackMap locals:
      StackMap stack:
        15: aload 0 /* value */
            ldc "turn"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 20
        16: .line 156
            aload 0 /* value */
            iconst_0
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_4
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* value */
        17: .line 157
            aload 0 /* value */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dstore 1 /* angle */
        18: .line 158
            dload 1 /* angle */
            ldc 360.0
            dmul
            dstore 1 /* angle */
        19: .line 159
            goto 21
        20: .line 160
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid gradient specification:angle must end in deg, rad, grad, or turn"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 164
      StackMap locals:
      StackMap stack:
            dload 1 /* angle */
            dreturn
        end local 1 // double angle
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0  value  Ljava/lang/String;
            1   22     1  angle  D
    MethodParameters:
       Name  Flags
      value  

  public static double parsePercentage(java.lang.String);
    descriptor: (Ljava/lang/String;)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String value
         0: .line 169
            aload 0 /* value */
            ldc "%"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 170
            aload 0 /* value */
            iconst_0
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* value */
         2: .line 171
            aload 0 /* value */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            ldc 100.0
            ddiv
            dstore 1 /* percentage */
        start local 1 // double percentage
         3: .line 172
            goto 5
        end local 1 // double percentage
         4: .line 173
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid gradient specification: focus-distance must be specified as percentage"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // double percentage
         5: .line 176
      StackMap locals: double
      StackMap stack:
            dload 1 /* percentage */
            dreturn
        end local 1 // double percentage
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0       value  Ljava/lang/String;
            3    4     1  percentage  D
            5    6     1  percentage  D
    MethodParameters:
       Name  Flags
      value  

  public com.sun.javafx.scene.paint.GradientUtils$Point parsePoint(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/sun/javafx/scene/paint/GradientUtils$Point;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
        start local 1 // java.lang.String value
         0: .line 180
            new com.sun.javafx.scene.paint.GradientUtils$Point
            dup
            invokespecial com.sun.javafx.scene.paint.GradientUtils$Point.<init>:()V
            astore 2 /* p */
        start local 2 // com.sun.javafx.scene.paint.GradientUtils$Point p
         1: .line 181
            aload 1 /* value */
            ldc "%"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 182
            aload 2 /* p */
            iconst_1
            putfield com.sun.javafx.scene.paint.GradientUtils$Point.proportional:Z
         3: .line 183
            aload 1 /* value */
            iconst_0
            aload 1 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* value */
         4: .line 184
            goto 7
      StackMap locals: com.sun.javafx.scene.paint.GradientUtils$Point
      StackMap stack:
         5: aload 1 /* value */
            ldc "px"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 185
            aload 1 /* value */
            iconst_0
            aload 1 /* value */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* value */
         7: .line 187
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            aload 1 /* value */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            putfield com.sun.javafx.scene.paint.GradientUtils$Point.value:D
         8: .line 188
            aload 2 /* p */
            getfield com.sun.javafx.scene.paint.GradientUtils$Point.proportional:Z
            ifeq 10
         9: .line 189
            aload 2 /* p */
            dup
            getfield com.sun.javafx.scene.paint.GradientUtils$Point.value:D
            ldc 100.0
            ddiv
            putfield com.sun.javafx.scene.paint.GradientUtils$Point.value:D
        10: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.proportionalSet:Z
            ifeq 12
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.proportional:Z
            aload 2 /* p */
            getfield com.sun.javafx.scene.paint.GradientUtils$Point.proportional:Z
            if_icmpeq 12
        11: .line 193
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid gradient specification:cannot mix proportional and non-proportional values"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.javafx.scene.paint.GradientUtils$Parser.proportionalSet:Z
        13: .line 198
            aload 0 /* this */
            aload 2 /* p */
            getfield com.sun.javafx.scene.paint.GradientUtils$Point.proportional:Z
            putfield com.sun.javafx.scene.paint.GradientUtils$Parser.proportional:Z
        14: .line 200
            aload 2 /* p */
            areturn
        end local 2 // com.sun.javafx.scene.paint.GradientUtils$Point p
        end local 1 // java.lang.String value
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;
            0   15     1  value  Ljava/lang/String;
            1   15     2      p  Lcom/sun/javafx/scene/paint/GradientUtils$Point;
    MethodParameters:
       Name  Flags
      value  

  public javafx.scene.paint.Stop[] parseStops(boolean, double);
    descriptor: (ZD)[Ljavafx/scene/paint/Stop;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=18, args_size=3
        start local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
        start local 1 // boolean proportional
        start local 2 // double length
         0: .line 206
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.tokens:[Ljava/lang/String;
            arraylength
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.index:I
            isub
            istore 4 /* stopsCount */
        start local 4 // int stopsCount
         1: .line 207
            iload 4 /* stopsCount */
            anewarray javafx.scene.paint.Color
            astore 5 /* colors */
        start local 5 // javafx.scene.paint.Color[] colors
         2: .line 208
            iload 4 /* stopsCount */
            newarray 7
            astore 6 /* offsets */
        start local 6 // double[] offsets
         3: .line 209
            iload 4 /* stopsCount */
            anewarray javafx.scene.paint.Stop
            astore 7 /* stops */
        start local 7 // javafx.scene.paint.Stop[] stops
         4: .line 211
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 34
         6: .line 212
      StackMap locals: com.sun.javafx.scene.paint.GradientUtils$Parser int double int javafx.scene.paint.Color[] double[] javafx.scene.paint.Stop[] int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.tokens:[Ljava/lang/String;
            iload 8 /* i */
            aload 0 /* this */
            getfield com.sun.javafx.scene.paint.GradientUtils$Parser.index:I
            iadd
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 9 /* stopString */
        start local 9 // java.lang.String stopString
         7: .line 213
            aload 0 /* this */
            aload 9 /* stopString */
            invokedynamic isDelimiter()Lcom/sun/javafx/scene/paint/GradientUtils$Parser$Delimiter;
              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:
                  (C)Z
                  com/sun/javafx/scene/paint/GradientUtils$Parser.lambda$1(C)Z (6)
                  (C)Z
            iconst_1
            invokevirtual com.sun.javafx.scene.paint.GradientUtils$Parser.splitString:(Ljava/lang/String;Lcom/sun/javafx/scene/paint/GradientUtils$Parser$Delimiter;Z)[Ljava/lang/String;
            astore 10 /* stopTokens */
        start local 10 // java.lang.String[] stopTokens
         8: .line 215
            aload 10 /* stopTokens */
            arraylength
            ifne 10
         9: .line 216
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid gradient specification, empty stop found"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 220
      StackMap locals: java.lang.String java.lang.String[]
      StackMap stack:
            aload 10 /* stopTokens */
            iconst_0
            aaload
            astore 11 /* currentToken */
        start local 11 // java.lang.String currentToken
        11: .line 221
            ldc -1.0
            dstore 12 /* offset */
        start local 12 // double offset
        12: .line 223
            aload 11 /* currentToken */
            invokestatic javafx.scene.paint.Color.web:(Ljava/lang/String;)Ljavafx/scene/paint/Color;
            astore 14 /* c */
        start local 14 // javafx.scene.paint.Color c
        13: .line 224
            aload 10 /* stopTokens */
            arraylength
            iconst_2
            if_icmpne 27
        14: .line 226
            aload 10 /* stopTokens */
            iconst_1
            aaload
            astore 15 /* o */
        start local 15 // java.lang.String o
        15: .line 227
            aload 15 /* o */
            ldc "%"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 19
        16: .line 228
            aload 15 /* o */
            iconst_0
            aload 15 /* o */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 15 /* o */
        17: .line 229
            aload 15 /* o */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            ldc 100.0
            ddiv
            dstore 12 /* offset */
        18: .line 230
            goto 31
      StackMap locals: com.sun.javafx.scene.paint.GradientUtils$Parser int double int javafx.scene.paint.Color[] double[] javafx.scene.paint.Stop[] int java.lang.String java.lang.String[] java.lang.String double javafx.scene.paint.Color java.lang.String
      StackMap stack:
        19: iload 1 /* proportional */
            ifne 24
        20: .line 231
            aload 15 /* o */
            ldc "px"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 22
        21: .line 232
            aload 15 /* o */
            iconst_0
            aload 15 /* o */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 15 /* o */
        22: .line 234
      StackMap locals:
      StackMap stack:
            aload 15 /* o */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dload 2 /* length */
            ddiv
            dstore 12 /* offset */
        23: .line 235
            goto 31
        24: .line 236
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid gradient specification, non-proportional stops not permited in proportional gradient: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 237
            aload 15 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 236
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 15 // java.lang.String o
        27: .line 239
      StackMap locals:
      StackMap stack:
            aload 10 /* stopTokens */
            arraylength
            iconst_2
            if_icmple 31
        28: .line 240
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid gradient specification, unexpected content in stop specification: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 241
            aload 10 /* stopTokens */
            iconst_2
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 240
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 244
      StackMap locals:
      StackMap stack:
            aload 5 /* colors */
            iload 8 /* i */
            aload 14 /* c */
            aastore
        32: .line 245
            aload 6 /* offsets */
            iload 8 /* i */
            dload 12 /* offset */
            dastore
        end local 14 // javafx.scene.paint.Color c
        end local 12 // double offset
        end local 11 // java.lang.String currentToken
        end local 10 // java.lang.String[] stopTokens
        end local 9 // java.lang.String stopString
        33: .line 211
            iinc 8 /* i */ 1
      StackMap locals: com.sun.javafx.scene.paint.GradientUtils$Parser int double int javafx.scene.paint.Color[] double[] javafx.scene.paint.Stop[] int
      StackMap stack:
        34: iload 8 /* i */
            iload 4 /* stopsCount */
            if_icmplt 6
        end local 8 // int i
        35: .line 251
            aload 6 /* offsets */
            iconst_0
            daload
            dconst_0
            dcmpg
            ifge 37
        36: .line 252
            aload 6 /* offsets */
            iconst_0
            dconst_0
            dastore
        37: .line 254
      StackMap locals:
      StackMap stack:
            aload 6 /* offsets */
            aload 6 /* offsets */
            arraylength
            iconst_1
            isub
            daload
            dconst_0
            dcmpg
            ifge 39
        38: .line 255
            aload 6 /* offsets */
            aload 6 /* offsets */
            arraylength
            iconst_1
            isub
            dconst_1
            dastore
        39: .line 261
      StackMap locals:
      StackMap stack:
            aload 6 /* offsets */
            iconst_0
            daload
            dstore 8 /* max */
        start local 8 // double max
        40: .line 262
            iconst_1
            istore 10 /* i */
        start local 10 // int i
        41: goto 47
        42: .line 263
      StackMap locals: double int
      StackMap stack:
            aload 6 /* offsets */
            iload 10 /* i */
            daload
            dload 8 /* max */
            dcmpg
            ifge 45
            aload 6 /* offsets */
            iload 10 /* i */
            daload
            dconst_0
            dcmpl
            ifle 45
        43: .line 264
            aload 6 /* offsets */
            iload 10 /* i */
            dload 8 /* max */
            dastore
        44: .line 265
            goto 46
        45: .line 266
      StackMap locals:
      StackMap stack:
            aload 6 /* offsets */
            iload 10 /* i */
            daload
            dstore 8 /* max */
        46: .line 262
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 10 /* i */
            aload 6 /* offsets */
            arraylength
            if_icmplt 42
        end local 10 // int i
        48: .line 274
            iconst_m1
            istore 10 /* firstIndex */
        start local 10 // int firstIndex
        49: .line 275
            iconst_1
            istore 11 /* i */
        start local 11 // int i
        50: goto 64
        51: .line 276
      StackMap locals: int
      StackMap stack:
            aload 6 /* offsets */
            iload 11 /* i */
            daload
            dstore 12 /* offset */
        start local 12 // double offset
        52: .line 277
            dload 12 /* offset */
            dconst_0
            dcmpg
            ifge 55
            iload 10 /* firstIndex */
            ifge 55
        53: .line 278
            iload 11 /* i */
            istore 10 /* firstIndex */
        54: .line 279
            goto 63
      StackMap locals: double
      StackMap stack:
        55: dload 12 /* offset */
            dconst_0
            dcmpl
            iflt 63
            iload 10 /* firstIndex */
            ifle 63
        56: .line 280
            iload 11 /* i */
            iload 10 /* firstIndex */
            isub
            iconst_1
            iadd
            istore 14 /* n */
        start local 14 // int n
        57: .line 281
            aload 6 /* offsets */
            iload 11 /* i */
            daload
            aload 6 /* offsets */
            iload 10 /* firstIndex */
            iconst_1
            isub
            daload
            dsub
            iload 14 /* n */
            i2d
            ddiv
            dstore 15 /* part */
        start local 15 // double part
        58: .line 282
            iconst_0
            istore 17 /* j */
        start local 17 // int j
        59: goto 62
        60: .line 283
      StackMap locals: int double int
      StackMap stack:
            aload 6 /* offsets */
            iload 10 /* firstIndex */
            iload 17 /* j */
            iadd
            aload 6 /* offsets */
            iload 10 /* firstIndex */
            iconst_1
            isub
            daload
            dload 15 /* part */
            iload 17 /* j */
            iconst_1
            iadd
            i2d
            dmul
            dadd
            dastore
        61: .line 282
            iinc 17 /* j */ 1
      StackMap locals:
      StackMap stack:
        62: iload 17 /* j */
            iload 14 /* n */
            iconst_1
            isub
            if_icmplt 60
        end local 17 // int j
        end local 15 // double part
        end local 14 // int n
        end local 12 // double offset
        63: .line 275
      StackMap locals: com.sun.javafx.scene.paint.GradientUtils$Parser int double int javafx.scene.paint.Color[] double[] javafx.scene.paint.Stop[] double int int
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 11 /* i */
            aload 6 /* offsets */
            arraylength
            if_icmplt 51
        end local 11 // int i
        65: .line 288
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        66: goto 70
        67: .line 289
      StackMap locals:
      StackMap stack:
            new javafx.scene.paint.Stop
            dup
            aload 6 /* offsets */
            iload 11 /* i */
            daload
            aload 5 /* colors */
            iload 11 /* i */
            aaload
            invokespecial javafx.scene.paint.Stop.<init>:(DLjavafx/scene/paint/Color;)V
            astore 12 /* stop */
        start local 12 // javafx.scene.paint.Stop stop
        68: .line 290
            aload 7 /* stops */
            iload 11 /* i */
            aload 12 /* stop */
            aastore
        end local 12 // javafx.scene.paint.Stop stop
        69: .line 288
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 11 /* i */
            aload 7 /* stops */
            arraylength
            if_icmplt 67
        end local 11 // int i
        71: .line 293
            aload 7 /* stops */
            areturn
        end local 10 // int firstIndex
        end local 8 // double max
        end local 7 // javafx.scene.paint.Stop[] stops
        end local 6 // double[] offsets
        end local 5 // javafx.scene.paint.Color[] colors
        end local 4 // int stopsCount
        end local 2 // double length
        end local 1 // boolean proportional
        end local 0 // com.sun.javafx.scene.paint.GradientUtils$Parser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   72     0          this  Lcom/sun/javafx/scene/paint/GradientUtils$Parser;
            0   72     1  proportional  Z
            0   72     2        length  D
            1   72     4    stopsCount  I
            2   72     5        colors  [Ljavafx/scene/paint/Color;
            3   72     6       offsets  [D
            4   72     7         stops  [Ljavafx/scene/paint/Stop;
            5   35     8             i  I
            7   33     9    stopString  Ljava/lang/String;
            8   33    10    stopTokens  [Ljava/lang/String;
           11   33    11  currentToken  Ljava/lang/String;
           12   33    12        offset  D
           13   33    14             c  Ljavafx/scene/paint/Color;
           15   27    15             o  Ljava/lang/String;
           40   72     8           max  D
           41   48    10             i  I
           49   72    10    firstIndex  I
           50   65    11             i  I
           52   63    12        offset  D
           57   63    14             n  I
           58   63    15          part  D
           59   63    17             j  I
           66   71    11             i  I
           68   69    12          stop  Ljavafx/scene/paint/Stop;
    MethodParameters:
              Name  Flags
      proportional  
      length        

  private static boolean lambda$0(char);
    descriptor: (C)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char value
         0: .line 109
            iload 0 /* value */
            bipush 44
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // char value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  C

  private static boolean lambda$1(char);
    descriptor: (C)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // char value
         0: .line 213
            iload 0 /* value */
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ireturn
        end local 0 // char value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  C
}
SourceFile: "GradientUtils.java"
NestHost: com.sun.javafx.scene.paint.GradientUtils
InnerClasses:
  public Parser = com.sun.javafx.scene.paint.GradientUtils$Parser of com.sun.javafx.scene.paint.GradientUtils
  private abstract Delimiter = com.sun.javafx.scene.paint.GradientUtils$Parser$Delimiter of com.sun.javafx.scene.paint.GradientUtils$Parser
  public Point = com.sun.javafx.scene.paint.GradientUtils$Point of com.sun.javafx.scene.paint.GradientUtils
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles