public final class org.joou.ULong extends org.joou.UNumber implements java.lang.Comparable<org.joou.ULong>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.joou.ULong
  super_class: org.joou.UNumber
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -6821055240959745390

  public static final java.math.BigInteger MIN_VALUE;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigInteger MAX_VALUE;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigInteger MAX_VALUE_LONG;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.joou.ULong MIN;
    descriptor: Lorg/joou/ULong;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.joou.ULong MAX;
    descriptor: Lorg/joou/ULong;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final long value;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 38
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            putstatic org.joou.ULong.MIN_VALUE:Ljava/math/BigInteger;
         1: .line 44
            new java.math.BigInteger
            dup
            ldc "18446744073709551615"
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
            putstatic org.joou.ULong.MAX_VALUE:Ljava/math/BigInteger;
         2: .line 50
            new java.math.BigInteger
            dup
            ldc "9223372036854775808"
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
            putstatic org.joou.ULong.MAX_VALUE_LONG:Ljava/math/BigInteger;
         3: .line 56
            getstatic org.joou.ULong.MIN_VALUE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            invokestatic org.joou.ULong.valueOf:(J)Lorg/joou/ULong;
            putstatic org.joou.ULong.MIN:Lorg/joou/ULong;
         4: .line 62
            getstatic org.joou.ULong.MAX_VALUE:Ljava/math/BigInteger;
            invokestatic org.joou.ULong.valueOf:(Ljava/math/BigInteger;)Lorg/joou/ULong;
            putstatic org.joou.ULong.MAX:Lorg/joou/ULong;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.joou.ULong valueOf(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/joou/ULong;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String value
         0: .line 76
            new org.joou.ULong
            dup
            aload 0 /* value */
            invokespecial org.joou.ULong.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Ljava/lang/String;
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      value  

  public static org.joou.ULong valueOf(long);
    descriptor: (J)Lorg/joou/ULong;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long value
         0: .line 85
            new org.joou.ULong
            dup
            lload 0 /* value */
            invokespecial org.joou.ULong.<init>:(J)V
            areturn
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  J
    MethodParameters:
       Name  Flags
      value  

  public static org.joou.ULong valueOf(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Lorg/joou/ULong;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigInteger value
         0: .line 95
            new org.joou.ULong
            dup
            aload 0 /* value */
            invokespecial org.joou.ULong.<init>:(Ljava/math/BigInteger;)V
            areturn
        end local 0 // java.math.BigInteger value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Ljava/math/BigInteger;
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      value  

  public static int compare(long, long);
    descriptor: (JJ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 99
            lload 0 /* x */
            ldc -9223372036854775808
            ladd
            lstore 0 /* x */
         1: .line 100
            lload 2 /* y */
            ldc -9223372036854775808
            ladd
            lstore 2 /* y */
         2: .line 101
            lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifge 3
            iconst_m1
            goto 5
      StackMap locals:
      StackMap stack:
         3: lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifne 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  J
            0    6     2     y  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private void <init>(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // java.math.BigInteger value
         0: .line 110
            aload 0 /* this */
            invokespecial org.joou.UNumber.<init>:()V
         1: .line 111
            aload 1 /* value */
            getstatic org.joou.ULong.MIN_VALUE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 2
            aload 1 /* value */
            getstatic org.joou.ULong.MAX_VALUE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifle 3
         2: .line 112
      StackMap locals: org.joou.ULong java.math.BigInteger
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         3: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual java.math.BigInteger.longValue:()J
            putfield org.joou.ULong.value:J
         4: .line 115
            return
        end local 1 // java.math.BigInteger value
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/joou/ULong;
            0    5     1  value  Ljava/math/BigInteger;
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      value  

  private void <init>(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // long value
         0: .line 122
            aload 0 /* this */
            invokespecial org.joou.UNumber.<init>:()V
         1: .line 123
            aload 0 /* this */
            lload 1 /* value */
            putfield org.joou.ULong.value:J
         2: .line 124
            return
        end local 1 // long value
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/joou/ULong;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  private void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // java.lang.String value
         0: .line 132
            aload 0 /* this */
            invokespecial org.joou.UNumber.<init>:()V
         1: .line 133
            aload 1 /* value */
            ifnonnull 3
         2: .line 134
            new java.lang.NumberFormatException
            dup
            ldc "null"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 136
      StackMap locals: org.joou.ULong java.lang.String
      StackMap stack:
            aload 1 /* value */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         4: .line 138
            iload 2 /* length */
            ifne 6
         5: .line 139
            new java.lang.NumberFormatException
            dup
            ldc "Empty input string"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 141
      StackMap locals: int
      StackMap stack:
            aload 1 /* value */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 45
            if_icmpne 10
         7: .line 142
            new java.lang.NumberFormatException
            dup
         8: .line 143
            ldc "Illegal leading minus sign on unsigned string %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* value */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         9: .line 142
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 145
      StackMap locals:
      StackMap stack:
            iload 2 /* length */
            bipush 18
            if_icmpgt 13
        11: .line 146
            aload 0 /* this */
            aload 1 /* value */
            bipush 10
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;I)J
            putfield org.joou.ULong.value:J
        12: .line 147
            return
        13: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            iconst_0
            iload 2 /* length */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            bipush 10
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;I)J
            lstore 3 /* first */
        start local 3 // long first
        14: .line 151
            aload 1 /* value */
            iload 2 /* length */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 5 /* second */
        start local 5 // int second
        15: .line 152
            iload 5 /* second */
            ifge 17
        16: .line 153
            new java.lang.NumberFormatException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad digit at end of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 155
      StackMap locals: long int
      StackMap stack:
            lload 3 /* first */
            ldc 10
            lmul
            iload 5 /* second */
            i2l
            ladd
            lstore 6 /* result */
        start local 6 // long result
        18: .line 156
            lload 6 /* result */
            lload 3 /* first */
            invokestatic org.joou.ULong.compare:(JJ)I
            ifge 22
        19: .line 157
            new java.lang.NumberFormatException
            dup
        20: .line 158
            ldc "String value %s exceeds range of unsigned long"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* value */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        21: .line 157
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 160
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 6 /* result */
            putfield org.joou.ULong.value:J
        23: .line 161
            return
        end local 6 // long result
        end local 5 // int second
        end local 3 // long first
        end local 2 // int length
        end local 1 // java.lang.String value
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   24     0    this  Lorg/joou/ULong;
            0   24     1   value  Ljava/lang/String;
            4   24     2  length  I
           14   24     3   first  J
           15   24     5  second  I
           18   24     6  result  J
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      value  

  public int intValue();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joou.ULong this
         0: .line 165
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            l2i
            ireturn
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joou/ULong;

  public long longValue();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joou.ULong this
         0: .line 170
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lreturn
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joou/ULong;

  public float floatValue();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.joou.ULong this
         0: .line 175
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 2
         1: .line 176
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            ldc 9223372036854775807
            land
            l2f
            ldc 9.223372E18
            fadd
            freturn
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            l2f
            freturn
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joou/ULong;

  public double doubleValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.joou.ULong this
         0: .line 183
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 2
         1: .line 184
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            ldc 9223372036854775807
            land
            l2d
            ldc 9.223372036854776E18
            dadd
            dreturn
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            l2d
            dreturn
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joou/ULong;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joou.ULong this
         0: .line 191
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.lang.Long.hashCode:()I
            ireturn
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joou/ULong;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // java.lang.Object obj
         0: .line 196
            aload 1 /* obj */
            instanceof org.joou.ULong
            ifeq 3
         1: .line 197
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            aload 1 /* obj */
            checkcast org.joou.ULong
            getfield org.joou.ULong.value:J
            lcmp
            ifne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 199
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/joou/ULong;
            0    4     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.joou.ULong this
         0: .line 204
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            iflt 2
         1: .line 205
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            areturn
         2: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            ldc 9223372036854775807
            land
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            getstatic org.joou.ULong.MAX_VALUE_LONG:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joou/ULong;

  public int compareTo(org.joou.ULong);
    descriptor: (Lorg/joou/ULong;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // org.joou.ULong o
         0: .line 212
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            aload 1 /* o */
            getfield org.joou.ULong.value:J
            invokestatic org.joou.ULong.compare:(JJ)I
            ireturn
        end local 1 // org.joou.ULong o
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joou/ULong;
            0    1     1     o  Lorg/joou/ULong;
    MethodParameters:
      Name  Flags
      o     

  public org.joou.ULong add(org.joou.ULong);
    descriptor: (Lorg/joou/ULong;)Lorg/joou/ULong;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // org.joou.ULong val
         0: .line 216
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 2
            aload 1 /* val */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 2
         1: .line 217
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         2: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            aload 1 /* val */
            getfield org.joou.ULong.value:J
            ladd
            lstore 2 /* result */
        start local 2 // long result
         3: .line 220
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            iflt 4
            aload 1 /* val */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 6
      StackMap locals: long
      StackMap stack:
         4: lload 2 /* result */
            lconst_0
            lcmp
            iflt 6
         5: .line 221
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         6: .line 223
      StackMap locals:
      StackMap stack:
            lload 2 /* result */
            invokestatic org.joou.ULong.valueOf:(J)Lorg/joou/ULong;
            areturn
        end local 2 // long result
        end local 1 // org.joou.ULong val
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/joou/ULong;
            0    7     1     val  Lorg/joou/ULong;
            3    7     2  result  J
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      val   

  public org.joou.ULong add(int);
    descriptor: (I)Lorg/joou/ULong;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // int val
         0: .line 227
            aload 0 /* this */
            iload 1 /* val */
            i2l
            invokevirtual org.joou.ULong.add:(J)Lorg/joou/ULong;
            areturn
        end local 1 // int val
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joou/ULong;
            0    1     1   val  I
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      val   

  public org.joou.ULong add(long);
    descriptor: (J)Lorg/joou/ULong;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // long val
         0: .line 231
            lload 1 /* val */
            lconst_0
            lcmp
            ifge 2
         1: .line 232
            aload 0 /* this */
            lload 1 /* val */
            invokestatic java.lang.Math.abs:(J)J
            invokevirtual org.joou.ULong.subtract:(J)Lorg/joou/ULong;
            areturn
         2: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lload 1 /* val */
            ladd
            lstore 3 /* result */
        start local 3 // long result
         3: .line 235
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 5
            lload 3 /* result */
            lconst_0
            lcmp
            iflt 5
         4: .line 236
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         5: .line 238
      StackMap locals: long
      StackMap stack:
            lload 3 /* result */
            invokestatic org.joou.ULong.valueOf:(J)Lorg/joou/ULong;
            areturn
        end local 3 // long result
        end local 1 // long val
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/joou/ULong;
            0    6     1     val  J
            3    6     3  result  J
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      val   

  public org.joou.ULong subtract(org.joou.ULong);
    descriptor: (Lorg/joou/ULong;)Lorg/joou/ULong;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // org.joou.ULong val
         0: .line 242
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual org.joou.ULong.compareTo:(Lorg/joou/ULong;)I
            ifge 2
         1: .line 243
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            aload 1 /* val */
            getfield org.joou.ULong.value:J
            lsub
            lstore 2 /* result */
        start local 2 // long result
         3: .line 246
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 5
            lload 2 /* result */
            lconst_0
            lcmp
            iflt 5
         4: .line 247
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         5: .line 249
      StackMap locals: long
      StackMap stack:
            lload 2 /* result */
            invokestatic org.joou.ULong.valueOf:(J)Lorg/joou/ULong;
            areturn
        end local 2 // long result
        end local 1 // org.joou.ULong val
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/joou/ULong;
            0    6     1     val  Lorg/joou/ULong;
            3    6     2  result  J
    MethodParameters:
      Name  Flags
      val   final

  public org.joou.ULong subtract(int);
    descriptor: (I)Lorg/joou/ULong;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // int val
         0: .line 253
            aload 0 /* this */
            iload 1 /* val */
            i2l
            invokevirtual org.joou.ULong.subtract:(J)Lorg/joou/ULong;
            areturn
        end local 1 // int val
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joou/ULong;
            0    1     1   val  I
    MethodParameters:
      Name  Flags
      val   final

  public org.joou.ULong subtract(long);
    descriptor: (J)Lorg/joou/ULong;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.joou.ULong this
        start local 1 // long val
         0: .line 257
            lload 1 /* val */
            lconst_0
            lcmp
            ifge 2
         1: .line 258
            aload 0 /* this */
            lload 1 /* val */
            lneg
            invokevirtual org.joou.ULong.add:(J)Lorg/joou/ULong;
            areturn
         2: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lload 1 /* val */
            invokestatic org.joou.ULong.compare:(JJ)I
            ifge 4
         3: .line 261
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         4: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lload 1 /* val */
            lsub
            lstore 3 /* result */
        start local 3 // long result
         5: .line 264
            aload 0 /* this */
            getfield org.joou.ULong.value:J
            lconst_0
            lcmp
            ifge 7
            lload 3 /* result */
            lconst_0
            lcmp
            iflt 7
         6: .line 265
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
         7: .line 267
      StackMap locals: long
      StackMap stack:
            lload 3 /* result */
            invokestatic org.joou.ULong.valueOf:(J)Lorg/joou/ULong;
            areturn
        end local 3 // long result
        end local 1 // long val
        end local 0 // org.joou.ULong this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/joou/ULong;
            0    8     1     val  J
            5    8     3  result  J
    MethodParameters:
      Name  Flags
      val   final

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.joou.ULong
            invokevirtual org.joou.ULong.compareTo:(Lorg/joou/ULong;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/joou/UNumber;Ljava/lang/Comparable<Lorg/joou/ULong;>;
SourceFile: "ULong.java"