public final class com.google.common.math.LongMath
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.math.LongMath
  super_class: java.lang.Object
{
  static final long MAX_SIGNED_POWER_OF_TWO;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4611686018427387904
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  static final long MAX_POWER_OF_SQRT2_UNSIGNED;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -5402926248376769404
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  static final byte[] maxLog10ForLeadingZeros;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  static final long[] powersOf10;
    descriptor: [J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
      com.google.common.annotations.VisibleForTesting()

  static final long[] halfPowersOf10;
    descriptor: [J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
      com.google.common.annotations.VisibleForTesting()

  static final long FLOOR_SQRT_MAX_LONG;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3037000499
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  static final long[] factorials;
    descriptor: [J
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int[] biggestBinomials;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int[] biggestSimpleBinomials;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  private static final int SIEVE_30;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -545925251

  private static final long[][] millerRabinBaseSets;
    descriptor: [[J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$java$math$RoundingMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 205
            bipush 64
            newarray 8
            dup
            iconst_0
         1: .line 206
            bipush 19
            bastore
            dup
            iconst_1
            bipush 18
            bastore
            dup
            iconst_2
            bipush 18
            bastore
            dup
            iconst_3
            bipush 18
            bastore
            dup
            iconst_4
            bipush 18
            bastore
            dup
            iconst_5
            bipush 17
            bastore
            dup
            bipush 6
            bipush 17
            bastore
            dup
            bipush 7
            bipush 17
            bastore
            dup
            bipush 8
            bipush 16
            bastore
            dup
            bipush 9
            bipush 16
            bastore
            dup
            bipush 10
            bipush 16
            bastore
            dup
            bipush 11
            bipush 15
            bastore
            dup
            bipush 12
            bipush 15
            bastore
            dup
            bipush 13
            bipush 15
            bastore
            dup
            bipush 14
            bipush 15
            bastore
            dup
            bipush 15
            bipush 14
            bastore
            dup
            bipush 16
            bipush 14
            bastore
            dup
            bipush 17
            bipush 14
            bastore
            dup
            bipush 18
            bipush 13
            bastore
            dup
            bipush 19
            bipush 13
            bastore
            dup
            bipush 20
            bipush 13
            bastore
            dup
            bipush 21
            bipush 12
            bastore
            dup
            bipush 22
            bipush 12
            bastore
            dup
            bipush 23
            bipush 12
            bastore
            dup
            bipush 24
         2: .line 207
            bipush 12
            bastore
            dup
            bipush 25
            bipush 11
            bastore
            dup
            bipush 26
            bipush 11
            bastore
            dup
            bipush 27
            bipush 11
            bastore
            dup
            bipush 28
            bipush 10
            bastore
            dup
            bipush 29
            bipush 10
            bastore
            dup
            bipush 30
            bipush 10
            bastore
            dup
            bipush 31
            bipush 9
            bastore
            dup
            bipush 32
            bipush 9
            bastore
            dup
            bipush 33
            bipush 9
            bastore
            dup
            bipush 34
            bipush 9
            bastore
            dup
            bipush 35
            bipush 8
            bastore
            dup
            bipush 36
            bipush 8
            bastore
            dup
            bipush 37
            bipush 8
            bastore
            dup
            bipush 38
            bipush 7
            bastore
            dup
            bipush 39
            bipush 7
            bastore
            dup
            bipush 40
            bipush 7
            bastore
            dup
            bipush 41
            bipush 6
            bastore
            dup
            bipush 42
            bipush 6
            bastore
            dup
            bipush 43
            bipush 6
            bastore
            dup
            bipush 44
            bipush 6
            bastore
            dup
            bipush 45
            iconst_5
            bastore
            dup
            bipush 46
            iconst_5
            bastore
            dup
            bipush 47
            iconst_5
            bastore
            dup
            bipush 48
            iconst_4
            bastore
            dup
            bipush 49
            iconst_4
            bastore
            dup
            bipush 50
            iconst_4
            bastore
            dup
            bipush 51
            iconst_3
            bastore
            dup
            bipush 52
            iconst_3
            bastore
            dup
            bipush 53
            iconst_3
            bastore
            dup
            bipush 54
         3: .line 208
            iconst_3
            bastore
            dup
            bipush 55
            iconst_2
            bastore
            dup
            bipush 56
            iconst_2
            bastore
            dup
            bipush 57
            iconst_2
            bastore
            dup
            bipush 58
            iconst_1
            bastore
            dup
            bipush 59
            iconst_1
            bastore
            dup
            bipush 60
            iconst_1
            bastore
         4: .line 205
            putstatic com.google.common.math.LongMath.maxLog10ForLeadingZeros:[B
         5: .line 213
            bipush 19
            newarray 11
            dup
            iconst_0
         6: .line 214
            lconst_1
            lastore
            dup
            iconst_1
         7: .line 215
            ldc 10
            lastore
            dup
            iconst_2
         8: .line 216
            ldc 100
            lastore
            dup
            iconst_3
         9: .line 217
            ldc 1000
            lastore
            dup
            iconst_4
        10: .line 218
            ldc 10000
            lastore
            dup
            iconst_5
        11: .line 219
            ldc 100000
            lastore
            dup
            bipush 6
        12: .line 220
            ldc 1000000
            lastore
            dup
            bipush 7
        13: .line 221
            ldc 10000000
            lastore
            dup
            bipush 8
        14: .line 222
            ldc 100000000
            lastore
            dup
            bipush 9
        15: .line 223
            ldc 1000000000
            lastore
            dup
            bipush 10
        16: .line 224
            ldc 10000000000
            lastore
            dup
            bipush 11
        17: .line 225
            ldc 100000000000
            lastore
            dup
            bipush 12
        18: .line 226
            ldc 1000000000000
            lastore
            dup
            bipush 13
        19: .line 227
            ldc 10000000000000
            lastore
            dup
            bipush 14
        20: .line 228
            ldc 100000000000000
            lastore
            dup
            bipush 15
        21: .line 229
            ldc 1000000000000000
            lastore
            dup
            bipush 16
        22: .line 230
            ldc 10000000000000000
            lastore
            dup
            bipush 17
        23: .line 231
            ldc 100000000000000000
            lastore
            dup
            bipush 18
        24: .line 232
            ldc 1000000000000000000
            lastore
        25: .line 213
            putstatic com.google.common.math.LongMath.powersOf10:[J
        26: .line 238
            bipush 19
            newarray 11
            dup
            iconst_0
        27: .line 239
            ldc 3
            lastore
            dup
            iconst_1
        28: .line 240
            ldc 31
            lastore
            dup
            iconst_2
        29: .line 241
            ldc 316
            lastore
            dup
            iconst_3
        30: .line 242
            ldc 3162
            lastore
            dup
            iconst_4
        31: .line 243
            ldc 31622
            lastore
            dup
            iconst_5
        32: .line 244
            ldc 316227
            lastore
            dup
            bipush 6
        33: .line 245
            ldc 3162277
            lastore
            dup
            bipush 7
        34: .line 246
            ldc 31622776
            lastore
            dup
            bipush 8
        35: .line 247
            ldc 316227766
            lastore
            dup
            bipush 9
        36: .line 248
            ldc 3162277660
            lastore
            dup
            bipush 10
        37: .line 249
            ldc 31622776601
            lastore
            dup
            bipush 11
        38: .line 250
            ldc 316227766016
            lastore
            dup
            bipush 12
        39: .line 251
            ldc 3162277660168
            lastore
            dup
            bipush 13
        40: .line 252
            ldc 31622776601683
            lastore
            dup
            bipush 14
        41: .line 253
            ldc 316227766016837
            lastore
            dup
            bipush 15
        42: .line 254
            ldc 3162277660168379
            lastore
            dup
            bipush 16
        43: .line 255
            ldc 31622776601683793
            lastore
            dup
            bipush 17
        44: .line 256
            ldc 316227766016837933
            lastore
            dup
            bipush 18
        45: .line 257
            ldc 3162277660168379331
            lastore
        46: .line 238
            putstatic com.google.common.math.LongMath.halfPowersOf10:[J
        47: .line 778
            bipush 21
            newarray 11
            dup
            iconst_0
        48: .line 779
            lconst_1
            lastore
            dup
            iconst_1
        49: .line 780
            lconst_1
            lastore
            dup
            iconst_2
        50: .line 781
            ldc 2
            lastore
            dup
            iconst_3
        51: .line 782
            ldc 6
            lastore
            dup
            iconst_4
        52: .line 783
            ldc 24
            lastore
            dup
            iconst_5
        53: .line 784
            ldc 120
            lastore
            dup
            bipush 6
        54: .line 785
            ldc 720
            lastore
            dup
            bipush 7
        55: .line 786
            ldc 5040
            lastore
            dup
            bipush 8
        56: .line 787
            ldc 40320
            lastore
            dup
            bipush 9
        57: .line 788
            ldc 362880
            lastore
            dup
            bipush 10
        58: .line 789
            ldc 3628800
            lastore
            dup
            bipush 11
        59: .line 790
            ldc 39916800
            lastore
            dup
            bipush 12
        60: .line 791
            ldc 479001600
            lastore
            dup
            bipush 13
        61: .line 792
            ldc 6227020800
            lastore
            dup
            bipush 14
        62: .line 793
            ldc 87178291200
            lastore
            dup
            bipush 15
        63: .line 794
            ldc 1307674368000
            lastore
            dup
            bipush 16
        64: .line 795
            ldc 20922789888000
            lastore
            dup
            bipush 17
        65: .line 796
            ldc 355687428096000
            lastore
            dup
            bipush 18
        66: .line 797
            ldc 6402373705728000
            lastore
            dup
            bipush 19
        67: .line 798
            ldc 121645100408832000
            lastore
            dup
            bipush 20
        68: .line 799
            ldc 2432902008176640000
            lastore
        69: .line 778
            putstatic com.google.common.math.LongMath.factorials:[J
        70: .line 884
            bipush 34
            newarray 10
            dup
            iconst_0
        71: .line 885
            ldc 2147483647
            iastore
            dup
            iconst_1
        72: .line 886
            ldc 2147483647
            iastore
            dup
            iconst_2
        73: .line 887
            ldc 2147483647
            iastore
            dup
            iconst_3
        74: .line 888
            ldc 3810779
            iastore
            dup
            iconst_4
        75: .line 889
            ldc 121977
            iastore
            dup
            iconst_5
        76: .line 890
            sipush 16175
            iastore
            dup
            bipush 6
        77: .line 891
            sipush 4337
            iastore
            dup
            bipush 7
        78: .line 892
            sipush 1733
            iastore
            dup
            bipush 8
        79: .line 893
            sipush 887
            iastore
            dup
            bipush 9
        80: .line 894
            sipush 534
            iastore
            dup
            bipush 10
        81: .line 895
            sipush 361
            iastore
            dup
            bipush 11
        82: .line 896
            sipush 265
            iastore
            dup
            bipush 12
        83: .line 897
            sipush 206
            iastore
            dup
            bipush 13
        84: .line 898
            sipush 169
            iastore
            dup
            bipush 14
        85: .line 899
            sipush 143
            iastore
            dup
            bipush 15
        86: .line 900
            bipush 125
            iastore
            dup
            bipush 16
        87: .line 901
            bipush 111
            iastore
            dup
            bipush 17
        88: .line 902
            bipush 101
            iastore
            dup
            bipush 18
        89: .line 903
            bipush 94
            iastore
            dup
            bipush 19
        90: .line 904
            bipush 88
            iastore
            dup
            bipush 20
        91: .line 905
            bipush 83
            iastore
            dup
            bipush 21
        92: .line 906
            bipush 79
            iastore
            dup
            bipush 22
        93: .line 907
            bipush 76
            iastore
            dup
            bipush 23
        94: .line 908
            bipush 74
            iastore
            dup
            bipush 24
        95: .line 909
            bipush 72
            iastore
            dup
            bipush 25
        96: .line 910
            bipush 70
            iastore
            dup
            bipush 26
        97: .line 911
            bipush 69
            iastore
            dup
            bipush 27
        98: .line 912
            bipush 68
            iastore
            dup
            bipush 28
        99: .line 913
            bipush 67
            iastore
            dup
            bipush 29
       100: .line 914
            bipush 67
            iastore
            dup
            bipush 30
       101: .line 915
            bipush 66
            iastore
            dup
            bipush 31
       102: .line 916
            bipush 66
            iastore
            dup
            bipush 32
       103: .line 917
            bipush 66
            iastore
            dup
            bipush 33
       104: .line 918
            bipush 66
            iastore
       105: .line 884
            putstatic com.google.common.math.LongMath.biggestBinomials:[I
       106: .line 926
            bipush 31
            newarray 10
            dup
            iconst_0
       107: .line 927
            ldc 2147483647
            iastore
            dup
            iconst_1
       108: .line 928
            ldc 2147483647
            iastore
            dup
            iconst_2
       109: .line 929
            ldc 2147483647
            iastore
            dup
            iconst_3
       110: .line 930
            ldc 2642246
            iastore
            dup
            iconst_4
       111: .line 931
            ldc 86251
            iastore
            dup
            iconst_5
       112: .line 932
            sipush 11724
            iastore
            dup
            bipush 6
       113: .line 933
            sipush 3218
            iastore
            dup
            bipush 7
       114: .line 934
            sipush 1313
            iastore
            dup
            bipush 8
       115: .line 935
            sipush 684
            iastore
            dup
            bipush 9
       116: .line 936
            sipush 419
            iastore
            dup
            bipush 10
       117: .line 937
            sipush 287
            iastore
            dup
            bipush 11
       118: .line 938
            sipush 214
            iastore
            dup
            bipush 12
       119: .line 939
            sipush 169
            iastore
            dup
            bipush 13
       120: .line 940
            sipush 139
            iastore
            dup
            bipush 14
       121: .line 941
            bipush 119
            iastore
            dup
            bipush 15
       122: .line 942
            bipush 105
            iastore
            dup
            bipush 16
       123: .line 943
            bipush 95
            iastore
            dup
            bipush 17
       124: .line 944
            bipush 87
            iastore
            dup
            bipush 18
       125: .line 945
            bipush 81
            iastore
            dup
            bipush 19
       126: .line 946
            bipush 76
            iastore
            dup
            bipush 20
       127: .line 947
            bipush 73
            iastore
            dup
            bipush 21
       128: .line 948
            bipush 70
            iastore
            dup
            bipush 22
       129: .line 949
            bipush 68
            iastore
            dup
            bipush 23
       130: .line 950
            bipush 66
            iastore
            dup
            bipush 24
       131: .line 951
            bipush 64
            iastore
            dup
            bipush 25
       132: .line 952
            bipush 63
            iastore
            dup
            bipush 26
       133: .line 953
            bipush 62
            iastore
            dup
            bipush 27
       134: .line 954
            bipush 62
            iastore
            dup
            bipush 28
       135: .line 955
            bipush 61
            iastore
            dup
            bipush 29
       136: .line 956
            bipush 61
            iastore
            dup
            bipush 30
       137: .line 957
            bipush 61
            iastore
       138: .line 926
            putstatic com.google.common.math.LongMath.biggestSimpleBinomials:[I
       139: .line 1041
            bipush 7
            anewarray long[]
            dup
            iconst_0
       140: .line 1042
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 291830
            lastore
            dup
            iconst_1
            ldc 126401071349994536
            lastore
            aastore
            dup
            iconst_1
       141: .line 1043
            iconst_3
            newarray 11
            dup
            iconst_0
            ldc 885594168
            lastore
            dup
            iconst_1
            ldc 725270293939359937
            lastore
            dup
            iconst_2
            ldc 3569819667048198375
            lastore
            aastore
            dup
            iconst_2
       142: .line 1044
            iconst_4
            newarray 11
            dup
            iconst_0
            ldc 273919523040
            lastore
            dup
            iconst_1
            ldc 15
            lastore
            dup
            iconst_2
            ldc 7363882082
            lastore
            dup
            iconst_3
            ldc 992620450144556
            lastore
            aastore
            dup
            iconst_3
       143: .line 1045
            iconst_5
            newarray 11
            dup
            iconst_0
            ldc 47636622961200
            lastore
            dup
            iconst_1
            ldc 2
            lastore
            dup
            iconst_2
            ldc 2570940
            lastore
            dup
            iconst_3
            ldc 211991001
            lastore
            dup
            iconst_4
            ldc 3749873356
            lastore
            aastore
            dup
            iconst_4
       144: .line 1046
            bipush 6
            newarray 11
            dup
            iconst_0
       145: .line 1047
            ldc 7999252175582850
            lastore
            dup
            iconst_1
       146: .line 1048
            ldc 2
            lastore
            dup
            iconst_2
       147: .line 1049
            ldc 4130806001517
            lastore
            dup
            iconst_3
       148: .line 1050
            ldc 149795463772692060
            lastore
            dup
            iconst_4
       149: .line 1051
            ldc 186635894390467037
            lastore
            dup
            iconst_5
       150: .line 1052
            ldc 3967304179347715805
            lastore
            aastore
            dup
            iconst_5
       151: .line 1054
            bipush 7
            newarray 11
            dup
            iconst_0
       152: .line 1055
            ldc 585226005592931976
            lastore
            dup
            iconst_1
       153: .line 1056
            ldc 2
            lastore
            dup
            iconst_2
       154: .line 1057
            ldc 123635709730000
            lastore
            dup
            iconst_3
       155: .line 1058
            ldc 9233062284813009
            lastore
            dup
            iconst_4
       156: .line 1059
            ldc 43835965440333360
            lastore
            dup
            iconst_5
       157: .line 1060
            ldc 761179012939631437
            lastore
            dup
            bipush 6
       158: .line 1061
            ldc 1263739024124850375
            lastore
            aastore
            dup
            bipush 6
       159: .line 1063
            bipush 8
            newarray 11
            dup
            iconst_0
            ldc 9223372036854775807
            lastore
            dup
            iconst_1
            ldc 2
            lastore
            dup
            iconst_2
            ldc 325
            lastore
            dup
            iconst_3
            ldc 9375
            lastore
            dup
            iconst_4
            ldc 28178
            lastore
            dup
            iconst_5
            ldc 450775
            lastore
            dup
            bipush 6
            ldc 9780504
            lastore
            dup
            bipush 7
            ldc 1795265022
            lastore
            aastore
       160: .line 1041
            putstatic com.google.common.math.LongMath.millerRabinBaseSets:[[J
       161: .line 1064
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static long ceilingPowerOfTwo(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long x
         0: .line 67
            ldc "x"
            lload 0 /* x */
            invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;J)J
            pop2
         1: .line 68
            lload 0 /* x */
            ldc 4611686018427387904
            lcmp
            ifle 3
         2: .line 69
            new java.lang.ArithmeticException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ceilingPowerOfTwo("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* x */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ") is not representable as a long"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 71
      StackMap locals:
      StackMap stack:
            lconst_1
            lload 0 /* x */
            lconst_1
            lsub
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            ineg
            lshl
            lreturn
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     x  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      x     

  public static long floorPowerOfTwo(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long x
         0: .line 83
            ldc "x"
            lload 0 /* x */
            invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;J)J
            pop2
         1: .line 87
            lconst_1
            bipush 63
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            lshl
            lreturn
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      x     

  public static boolean isPowerOfTwo(long);
    descriptor: (J)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // long x
         0: .line 97
            lload 0 /* x */
            lconst_0
            lcmp
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: lload 0 /* x */
            lload 0 /* x */
            lconst_1
            lsub
            land
            lconst_0
            lcmp
            ifne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_0
      StackMap locals: long
      StackMap stack: int int
         4: iand
            ireturn
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     x  J
    MethodParameters:
      Name  Flags
      x     

  static int lessThanBranchFree(long, long);
    descriptor: (JJ)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 108
            lload 0 /* x */
            lload 2 /* y */
            lsub
            ldc -1
            lxor
            ldc -1
            lxor
            bipush 63
            lushr
            l2i
            ireturn
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  J
            0    1     2     y  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
      Name  Flags
      x     
      y     

  public static int log2(long, java.math.RoundingMode);
    descriptor: (JLjava/math/RoundingMode;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // long x
        start local 2 // java.math.RoundingMode mode
         0: .line 121
            ldc "x"
            lload 0 /* x */
            invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;J)J
            pop2
         1: .line 122
            invokestatic com.google.common.math.LongMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 2 /* mode */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 4
                    2: 3
                    3: 4
                    4: 3
                    5: 5
                    6: 5
                    7: 5
                    8: 2
              default: 9
          }
         2: .line 124
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.isPowerOfTwo:(J)Z
            invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
         3: .line 128
      StackMap locals:
      StackMap stack:
            bipush 63
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            ireturn
         4: .line 132
      StackMap locals:
      StackMap stack:
            bipush 64
            lload 0 /* x */
            lconst_1
            lsub
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            ireturn
         5: .line 138
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            istore 3 /* leadingZeros */
        start local 3 // int leadingZeros
         6: .line 139
            ldc -5402926248376769404
            iload 3 /* leadingZeros */
            lushr
            lstore 4 /* cmp */
        start local 4 // long cmp
         7: .line 141
            bipush 63
            iload 3 /* leadingZeros */
            isub
            istore 6 /* logFloor */
        start local 6 // int logFloor
         8: .line 142
            iload 6 /* logFloor */
            lload 4 /* cmp */
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.lessThanBranchFree:(JJ)I
            iadd
            ireturn
        end local 6 // int logFloor
        end local 4 // long cmp
        end local 3 // int leadingZeros
         9: .line 145
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "impossible"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // java.math.RoundingMode mode
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0             x  J
            0   10     2          mode  Ljava/math/RoundingMode;
            6    9     3  leadingZeros  I
            7    9     4           cmp  J
            8    9     6      logFloor  I
    MethodParameters:
      Name  Flags
      x     
      mode  

  public static int log10(long, java.math.RoundingMode);
    descriptor: (JLjava/math/RoundingMode;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // long x
        start local 2 // java.math.RoundingMode mode
         0: .line 163
            ldc "x"
            lload 0 /* x */
            invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;J)J
            pop2
         1: .line 164
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.log10Floor:(J)I
            istore 3 /* logFloor */
        start local 3 // int logFloor
         2: .line 165
            getstatic com.google.common.math.LongMath.powersOf10:[J
            iload 3 /* logFloor */
            laload
            lstore 4 /* floorPow */
        start local 4 // long floorPow
         3: .line 166
            invokestatic com.google.common.math.LongMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 2 /* mode */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 8
                    2: 7
                    3: 8
                    4: 7
                    5: 9
                    6: 9
                    7: 9
                    8: 4
              default: 10
          }
         4: .line 168
      StackMap locals: int long
      StackMap stack:
            lload 0 /* x */
            lload 4 /* floorPow */
            lcmp
            ifne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
         7: .line 172
      StackMap locals:
      StackMap stack:
            iload 3 /* logFloor */
            ireturn
         8: .line 175
      StackMap locals:
      StackMap stack:
            iload 3 /* logFloor */
            lload 4 /* floorPow */
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.lessThanBranchFree:(JJ)I
            iadd
            ireturn
         9: .line 180
      StackMap locals:
      StackMap stack:
            iload 3 /* logFloor */
            getstatic com.google.common.math.LongMath.halfPowersOf10:[J
            iload 3 /* logFloor */
            laload
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.lessThanBranchFree:(JJ)I
            iadd
            ireturn
        10: .line 182
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // long floorPow
        end local 3 // int logFloor
        end local 2 // java.math.RoundingMode mode
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0         x  J
            0   11     2      mode  Ljava/math/RoundingMode;
            2   11     3  logFloor  I
            3   11     4  floorPow  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      x     
      mode  

  static int log10Floor(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // long x
         0: .line 195
            getstatic com.google.common.math.LongMath.maxLog10ForLeadingZeros:[B
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            baload
            istore 2 /* y */
        start local 2 // int y
         1: .line 200
            iload 2 /* y */
            lload 0 /* x */
            getstatic com.google.common.math.LongMath.powersOf10:[J
            iload 2 /* y */
            laload
            invokestatic com.google.common.math.LongMath.lessThanBranchFree:(JJ)I
            isub
            ireturn
        end local 2 // int y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  J
            1    2     2     y  I
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      x     

  public static long pow(long, int);
    descriptor: (JI)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long b
        start local 2 // int k
         0: .line 269
            ldc "exponent"
            iload 2 /* k */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
            pop
         1: .line 270
            ldc -2
            lload 0 /* b */
            lcmp
            ifgt 19
            lload 0 /* b */
            ldc 2
            lcmp
            ifgt 19
         2: .line 271
            lload 0 /* b */
            l2i
            tableswitch { // -2 - 2
                   -2: 13
                   -1: 7
                    0: 3
                    1: 6
                    2: 10
              default: 18
          }
         3: .line 273
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            ifne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: i2l
            lreturn
         6: .line 275
      StackMap locals:
      StackMap stack:
            lconst_1
            lreturn
         7: .line 277
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            iand
            ifne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_m1
      StackMap locals:
      StackMap stack: int
         9: i2l
            lreturn
        10: .line 279
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            bipush 64
            if_icmpge 11
            lconst_1
            iload 2 /* k */
            lshl
            goto 12
      StackMap locals:
      StackMap stack:
        11: lconst_0
      StackMap locals:
      StackMap stack: long
        12: lreturn
        13: .line 281
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            bipush 64
            if_icmpge 17
        14: .line 282
            iload 2 /* k */
            iconst_1
            iand
            ifne 15
            lconst_1
            iload 2 /* k */
            lshl
            goto 16
      StackMap locals:
      StackMap stack:
        15: lconst_1
            iload 2 /* k */
            lshl
            lneg
      StackMap locals:
      StackMap stack: long
        16: lreturn
        17: .line 284
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
        18: .line 287
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 290
      StackMap locals:
      StackMap stack:
            lconst_1
            lstore 3 /* accum */
        start local 3 // long accum
        20: .line 291
      StackMap locals: long
      StackMap stack:
            iload 2 /* k */
            tableswitch { // 0 - 1
                    0: 21
                    1: 22
              default: 23
          }
        21: .line 293
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            lreturn
        22: .line 295
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            lload 0 /* b */
            lmul
            lreturn
        23: .line 297
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            iload 2 /* k */
            iconst_1
            iand
            ifne 24
            lconst_1
            goto 25
      StackMap locals:
      StackMap stack: long
        24: lload 0 /* b */
      StackMap locals: long int long
      StackMap stack: long long
        25: lmul
            lstore 3 /* accum */
        26: .line 298
            lload 0 /* b */
            lload 0 /* b */
            lmul
            lstore 0 /* b */
        27: .line 290
            iload 2 /* k */
            iconst_1
            ishr
            istore 2 /* k */
            goto 20
        end local 3 // long accum
        end local 2 // int k
        end local 0 // long b
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   28     0      b  J
            0   28     2      k  I
           20   28     3  accum  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      b     
      k     

  public static long sqrt(long, java.math.RoundingMode);
    descriptor: (JLjava/math/RoundingMode;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // long x
        start local 2 // java.math.RoundingMode mode
         0: .line 313
            ldc "x"
            lload 0 /* x */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;J)J
            pop2
         1: .line 314
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.fitsInInt:(J)Z
            ifeq 3
         2: .line 315
            lload 0 /* x */
            l2i
            aload 2 /* mode */
            invokestatic com.google.common.math.IntMath.sqrt:(ILjava/math/RoundingMode;)I
            i2l
            lreturn
         3: .line 332
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            l2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2l
            lstore 3 /* guess */
        start local 3 // long guess
         4: .line 334
            lload 3 /* guess */
            lload 3 /* guess */
            lmul
            lstore 5 /* guessSquared */
        start local 5 // long guessSquared
         5: .line 337
            invokestatic com.google.common.math.LongMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 2 /* mode */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 13
                    2: 10
                    3: 13
                    4: 10
                    5: 16
                    6: 16
                    7: 16
                    8: 6
              default: 21
          }
         6: .line 339
      StackMap locals: long long
      StackMap stack:
            lload 5 /* guessSquared */
            lload 0 /* x */
            lcmp
            ifne 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
         9: .line 340
            lload 3 /* guess */
            lreturn
        10: .line 343
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 5 /* guessSquared */
            lcmp
            ifge 12
        11: .line 344
            lload 3 /* guess */
            lconst_1
            lsub
            lreturn
        12: .line 346
      StackMap locals:
      StackMap stack:
            lload 3 /* guess */
            lreturn
        13: .line 349
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 5 /* guessSquared */
            lcmp
            ifle 15
        14: .line 350
            lload 3 /* guess */
            lconst_1
            ladd
            lreturn
        15: .line 352
      StackMap locals:
      StackMap stack:
            lload 3 /* guess */
            lreturn
        16: .line 356
      StackMap locals:
      StackMap stack:
            lload 3 /* guess */
            lload 0 /* x */
            lload 5 /* guessSquared */
            lcmp
            ifge 17
            iconst_1
            goto 18
      StackMap locals:
      StackMap stack: long
        17: iconst_0
      StackMap locals: long java.math.RoundingMode long long
      StackMap stack: long int
        18: i2l
            lsub
            lstore 7 /* sqrtFloor */
        start local 7 // long sqrtFloor
        19: .line 357
            lload 7 /* sqrtFloor */
            lload 7 /* sqrtFloor */
            lmul
            lload 7 /* sqrtFloor */
            ladd
            lstore 9 /* halfSquare */
        start local 9 // long halfSquare
        20: .line 369
            lload 7 /* sqrtFloor */
            lload 9 /* halfSquare */
            lload 0 /* x */
            invokestatic com.google.common.math.LongMath.lessThanBranchFree:(JJ)I
            i2l
            ladd
            lreturn
        end local 9 // long halfSquare
        end local 7 // long sqrtFloor
        21: .line 371
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // long guessSquared
        end local 3 // long guess
        end local 2 // java.math.RoundingMode mode
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0             x  J
            0   22     2          mode  Ljava/math/RoundingMode;
            4   22     3         guess  J
            5   22     5  guessSquared  J
           19   21     7     sqrtFloor  J
           20   21     9    halfSquare  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      x     
      mode  

  public static long divide(long, long, java.math.RoundingMode);
    descriptor: (JJLjava/math/RoundingMode;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // long p
        start local 2 // long q
        start local 4 // java.math.RoundingMode mode
         0: .line 385
            aload 4 /* mode */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 386
            lload 0 /* p */
            lload 2 /* q */
            ldiv
            lstore 5 /* div */
        start local 5 // long div
         2: .line 387
            lload 0 /* p */
            lload 2 /* q */
            lload 5 /* div */
            lmul
            lsub
            lstore 7 /* rem */
        start local 7 // long rem
         3: .line 389
            lload 7 /* rem */
            lconst_0
            lcmp
            ifne 5
         4: .line 390
            lload 5 /* div */
            lreturn
         5: .line 400
      StackMap locals: long long
      StackMap stack:
            iconst_1
            lload 0 /* p */
            lload 2 /* q */
            lxor
            bipush 63
            lshr
            l2i
            ior
            istore 9 /* signum */
        start local 9 // int signum
         6: .line 402
            invokestatic com.google.common.math.LongMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 4 /* mode */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 12
                    2: 10
                    3: 14
                    4: 18
                    5: 22
                    6: 22
                    7: 22
                    8: 7
              default: 37
          }
         7: .line 404
      StackMap locals: int
      StackMap stack:
            lload 7 /* rem */
            lconst_0
            lcmp
            ifne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
        10: .line 407
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* increment */
        start local 10 // boolean increment
        11: .line 408
            goto 38
        end local 10 // boolean increment
        12: .line 410
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* increment */
        start local 10 // boolean increment
        13: .line 411
            goto 38
        end local 10 // boolean increment
        14: .line 413
      StackMap locals:
      StackMap stack:
            iload 9 /* signum */
            ifle 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 10 /* increment */
        start local 10 // boolean increment
        17: .line 414
            goto 38
        end local 10 // boolean increment
        18: .line 416
      StackMap locals:
      StackMap stack:
            iload 9 /* signum */
            ifge 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 10 /* increment */
        start local 10 // boolean increment
        21: .line 417
            goto 38
        end local 10 // boolean increment
        22: .line 421
      StackMap locals:
      StackMap stack:
            lload 7 /* rem */
            invokestatic java.lang.Math.abs:(J)J
            lstore 11 /* absRem */
        start local 11 // long absRem
        23: .line 422
            lload 11 /* absRem */
            lload 2 /* q */
            invokestatic java.lang.Math.abs:(J)J
            lload 11 /* absRem */
            lsub
            lsub
            lstore 13 /* cmpRemToHalfDivisor */
        start local 13 // long cmpRemToHalfDivisor
        24: .line 425
            lload 13 /* cmpRemToHalfDivisor */
            lconst_0
            lcmp
            ifne 33
        25: .line 426
            aload 4 /* mode */
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            if_acmpne 26
            iconst_1
            goto 27
      StackMap locals: long long java.math.RoundingMode long long int top long long
      StackMap stack:
        26: iconst_0
      StackMap locals:
      StackMap stack: int
        27: aload 4 /* mode */
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            if_acmpne 28
            iconst_1
            goto 29
      StackMap locals:
      StackMap stack: int
        28: iconst_0
      StackMap locals: long long java.math.RoundingMode long long int top long long
      StackMap stack: int int
        29: lload 5 /* div */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 30
            iconst_1
            goto 31
      StackMap locals: long long java.math.RoundingMode long long int top long long
      StackMap stack: int int
        30: iconst_0
      StackMap locals: long long java.math.RoundingMode long long int top long long
      StackMap stack: int int int
        31: iand
            ior
            istore 10 /* increment */
        start local 10 // boolean increment
        32: .line 427
            goto 38
        end local 10 // boolean increment
        33: .line 428
      StackMap locals:
      StackMap stack:
            lload 13 /* cmpRemToHalfDivisor */
            lconst_0
            lcmp
            ifle 34
            iconst_1
            goto 35
      StackMap locals:
      StackMap stack:
        34: iconst_0
      StackMap locals:
      StackMap stack: int
        35: istore 10 /* increment */
        start local 10 // boolean increment
        36: .line 430
            goto 38
        end local 13 // long cmpRemToHalfDivisor
        end local 11 // long absRem
        end local 10 // boolean increment
        37: .line 432
      StackMap locals: long long java.math.RoundingMode long long int
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        start local 10 // boolean increment
        38: .line 434
      StackMap locals: int
      StackMap stack:
            iload 10 /* increment */
            ifeq 39
            lload 5 /* div */
            iload 9 /* signum */
            i2l
            ladd
            goto 40
      StackMap locals:
      StackMap stack:
        39: lload 5 /* div */
      StackMap locals:
      StackMap stack: long
        40: lreturn
        end local 10 // boolean increment
        end local 9 // int signum
        end local 7 // long rem
        end local 5 // long div
        end local 4 // java.math.RoundingMode mode
        end local 2 // long q
        end local 0 // long p
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   41     0                    p  J
            0   41     2                    q  J
            0   41     4                 mode  Ljava/math/RoundingMode;
            2   41     5                  div  J
            3   41     7                  rem  J
            6   41     9               signum  I
           11   12    10            increment  Z
           13   14    10            increment  Z
           17   18    10            increment  Z
           21   22    10            increment  Z
           32   33    10            increment  Z
           36   37    10            increment  Z
           38   41    10            increment  Z
           23   37    11               absRem  J
           24   37    13  cmpRemToHalfDivisor  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      p     
      q     
      mode  

  public static int mod(long, int);
    descriptor: (JI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long x
        start local 2 // int m
         0: .line 458
            lload 0 /* x */
            iload 2 /* m */
            i2l
            invokestatic com.google.common.math.LongMath.mod:(JJ)J
            l2i
            ireturn
        end local 2 // int m
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  J
            0    1     2     m  I
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      x     
      m     

  public static long mod(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // long x
        start local 2 // long m
         0: .line 481
            lload 2 /* m */
            lconst_0
            lcmp
            ifgt 2
         1: .line 482
            new java.lang.ArithmeticException
            dup
            ldc "Modulus must be positive"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 484
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 2 /* m */
            lrem
            lstore 4 /* result */
        start local 4 // long result
         3: .line 485
            lload 4 /* result */
            lconst_0
            lcmp
            iflt 4
            lload 4 /* result */
            goto 5
      StackMap locals: long
      StackMap stack:
         4: lload 4 /* result */
            lload 2 /* m */
            ladd
      StackMap locals:
      StackMap stack: long
         5: lreturn
        end local 4 // long result
        end local 2 // long m
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0       x  J
            0    6     2       m  J
            3    6     4  result  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      x     
      m     

  public static long gcd(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 500
            ldc "a"
            lload 0 /* a */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;J)J
            pop2
         1: .line 501
            ldc "b"
            lload 2 /* b */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;J)J
            pop2
         2: .line 502
            lload 0 /* a */
            lconst_0
            lcmp
            ifne 4
         3: .line 505
            lload 2 /* b */
            lreturn
         4: .line 506
      StackMap locals:
      StackMap stack:
            lload 2 /* b */
            lconst_0
            lcmp
            ifne 6
         5: .line 507
            lload 0 /* a */
            lreturn
         6: .line 513
      StackMap locals:
      StackMap stack:
            lload 0 /* a */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            istore 4 /* aTwos */
        start local 4 // int aTwos
         7: .line 514
            lload 0 /* a */
            iload 4 /* aTwos */
            lshr
            lstore 0 /* a */
         8: .line 515
            lload 2 /* b */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            istore 5 /* bTwos */
        start local 5 // int bTwos
         9: .line 516
            lload 2 /* b */
            iload 5 /* bTwos */
            lshr
            lstore 2 /* b */
        10: .line 517
            goto 16
        11: .line 525
      StackMap locals: int int
      StackMap stack:
            lload 0 /* a */
            lload 2 /* b */
            lsub
            lstore 6 /* delta */
        start local 6 // long delta
        12: .line 527
            lload 6 /* delta */
            lload 6 /* delta */
            bipush 63
            lshr
            land
            lstore 8 /* minDeltaOrZero */
        start local 8 // long minDeltaOrZero
        13: .line 530
            lload 6 /* delta */
            lload 8 /* minDeltaOrZero */
            lsub
            lload 8 /* minDeltaOrZero */
            lsub
            lstore 0 /* a */
        14: .line 533
            lload 2 /* b */
            lload 8 /* minDeltaOrZero */
            ladd
            lstore 2 /* b */
        15: .line 534
            lload 0 /* a */
            lload 0 /* a */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            lshr
            lstore 0 /* a */
        end local 8 // long minDeltaOrZero
        end local 6 // long delta
        16: .line 517
      StackMap locals:
      StackMap stack:
            lload 0 /* a */
            lload 2 /* b */
            lcmp
            ifne 11
        17: .line 536
            lload 0 /* a */
            iload 4 /* aTwos */
            iload 5 /* bTwos */
            invokestatic java.lang.Math.min:(II)I
            lshl
            lreturn
        end local 5 // int bTwos
        end local 4 // int aTwos
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0               a  J
            0   18     2               b  J
            7   18     4           aTwos  I
            9   18     5           bTwos  I
           12   16     6           delta  J
           13   16     8  minDeltaOrZero  J
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long checkedAdd(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 546
            lload 0 /* a */
            lload 2 /* b */
            ladd
            lstore 4 /* result */
        start local 4 // long result
         1: .line 547
            lload 0 /* a */
            lload 2 /* b */
            lxor
            lconst_0
            lcmp
            ifge 2
            iconst_1
            goto 3
      StackMap locals: long
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: lload 0 /* a */
            lload 4 /* result */
            lxor
            lconst_0
            lcmp
            iflt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: long long long
      StackMap stack: int int
         5: ior
            ldc "checkedAdd"
            lload 0 /* a */
            lload 2 /* b */
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
         6: .line 548
            lload 4 /* result */
            lreturn
        end local 4 // long result
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0       a  J
            0    7     2       b  J
            1    7     4  result  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long checkedSubtract(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 558
            lload 0 /* a */
            lload 2 /* b */
            lsub
            lstore 4 /* result */
        start local 4 // long result
         1: .line 559
            lload 0 /* a */
            lload 2 /* b */
            lxor
            lconst_0
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals: long
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: lload 0 /* a */
            lload 4 /* result */
            lxor
            lconst_0
            lcmp
            iflt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: long long long
      StackMap stack: int int
         5: ior
            ldc "checkedSubtract"
            lload 0 /* a */
            lload 2 /* b */
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
         6: .line 560
            lload 4 /* result */
            lreturn
        end local 4 // long result
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0       a  J
            0    7     2       b  J
            1    7     4  result  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long checkedMultiply(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 571
            lload 0 /* a */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         1: .line 572
            lload 0 /* a */
            ldc -1
            lxor
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         2: .line 571
            iadd
         3: .line 573
            lload 2 /* b */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         4: .line 571
            iadd
         5: .line 574
            lload 2 /* b */
            ldc -1
            lxor
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         6: .line 571
            iadd
         7: .line 570
            istore 4 /* leadingZeros */
        start local 4 // int leadingZeros
         8: .line 585
            iload 4 /* leadingZeros */
            bipush 65
            if_icmple 10
         9: .line 586
            lload 0 /* a */
            lload 2 /* b */
            lmul
            lreturn
        10: .line 588
      StackMap locals: int
      StackMap stack:
            iload 4 /* leadingZeros */
            bipush 64
            if_icmplt 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: ldc "checkedMultiply"
            lload 0 /* a */
            lload 2 /* b */
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
        13: .line 589
            lload 0 /* a */
            lconst_0
            lcmp
            iflt 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: lload 2 /* b */
            ldc -9223372036854775808
            lcmp
            ifeq 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack: int
        16: iconst_0
      StackMap locals: long long int
      StackMap stack: int int
        17: ior
            ldc "checkedMultiply"
            lload 0 /* a */
            lload 2 /* b */
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
        18: .line 590
            lload 0 /* a */
            lload 2 /* b */
            lmul
            lstore 5 /* result */
        start local 5 // long result
        19: .line 591
            lload 0 /* a */
            lconst_0
            lcmp
            ifeq 20
            lload 5 /* result */
            lload 0 /* a */
            ldiv
            lload 2 /* b */
            lcmp
            ifeq 20
            iconst_0
            goto 21
      StackMap locals: long
      StackMap stack:
        20: iconst_1
      StackMap locals:
      StackMap stack: int
        21: ldc "checkedMultiply"
            lload 0 /* a */
            lload 2 /* b */
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
        22: .line 592
            lload 5 /* result */
            lreturn
        end local 5 // long result
        end local 4 // int leadingZeros
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0             a  J
            0   23     2             b  J
            8   23     4  leadingZeros  I
           19   23     5        result  J
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long checkedPow(long, int);
    descriptor: (JI)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // long b
        start local 2 // int k
         0: .line 603
            ldc "exponent"
            iload 2 /* k */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
            pop
         1: .line 604
            lload 0 /* b */
            ldc -2
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: lload 0 /* b */
            ldc 2
            lcmp
            ifgt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: long int
      StackMap stack: int int
         5: iand
            ifeq 25
         6: .line 605
            lload 0 /* b */
            l2i
            tableswitch { // -2 - 2
                   -2: 18
                   -1: 11
                    0: 7
                    1: 10
                    2: 14
              default: 24
          }
         7: .line 607
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            ifne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: i2l
            lreturn
        10: .line 609
      StackMap locals:
      StackMap stack:
            lconst_1
            lreturn
        11: .line 611
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            iand
            ifne 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: i2l
            lreturn
        14: .line 613
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            bipush 63
            if_icmpge 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: ldc "checkedPow"
            lload 0 /* b */
            iload 2 /* k */
            i2l
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
        17: .line 614
            lconst_1
            iload 2 /* k */
            lshl
            lreturn
        18: .line 616
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            bipush 64
            if_icmpge 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: ldc "checkedPow"
            lload 0 /* b */
            iload 2 /* k */
            i2l
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
        21: .line 617
            iload 2 /* k */
            iconst_1
            iand
            ifne 22
            lconst_1
            iload 2 /* k */
            lshl
            goto 23
      StackMap locals:
      StackMap stack:
        22: ldc -1
            iload 2 /* k */
            lshl
      StackMap locals:
      StackMap stack: long
        23: lreturn
        24: .line 619
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        25: .line 622
      StackMap locals:
      StackMap stack:
            lconst_1
            lstore 3 /* accum */
        start local 3 // long accum
        26: .line 624
      StackMap locals: long
      StackMap stack:
            iload 2 /* k */
            tableswitch { // 0 - 1
                    0: 27
                    1: 28
              default: 29
          }
        27: .line 626
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            lreturn
        28: .line 628
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            lload 0 /* b */
            invokestatic com.google.common.math.LongMath.checkedMultiply:(JJ)J
            lreturn
        29: .line 630
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            iand
            ifeq 31
        30: .line 631
            lload 3 /* accum */
            lload 0 /* b */
            invokestatic com.google.common.math.LongMath.checkedMultiply:(JJ)J
            lstore 3 /* accum */
        31: .line 633
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            ishr
            istore 2 /* k */
        32: .line 634
            iload 2 /* k */
            ifle 26
        33: .line 636
            ldc -3037000499
            lload 0 /* b */
            lcmp
            ifgt 34
            lload 0 /* b */
            ldc 3037000499
            lcmp
            ifgt 34
            iconst_1
            goto 35
      StackMap locals:
      StackMap stack:
        34: iconst_0
      StackMap locals:
      StackMap stack: int
        35: ldc "checkedPow"
            lload 0 /* b */
            iload 2 /* k */
            i2l
        36: .line 635
            invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;JJ)V
        37: .line 637
            lload 0 /* b */
            lload 0 /* b */
            lmul
            lstore 0 /* b */
        38: .line 623
            goto 26
        end local 3 // long accum
        end local 2 // int k
        end local 0 // long b
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   39     0      b  J
            0   39     2      k  I
           26   39     3  accum  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      b     
      k     

  public static long saturatedAdd(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 651
            lload 0 /* a */
            lload 2 /* b */
            ladd
            lstore 4 /* naiveSum */
        start local 4 // long naiveSum
         1: .line 652
            lload 0 /* a */
            lload 2 /* b */
            lxor
            lconst_0
            lcmp
            ifge 2
            iconst_1
            goto 3
      StackMap locals: long
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: lload 0 /* a */
            lload 4 /* naiveSum */
            lxor
            lconst_0
            lcmp
            iflt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: long long long
      StackMap stack: int int
         5: ior
            ifeq 7
         6: .line 655
            lload 4 /* naiveSum */
            lreturn
         7: .line 658
      StackMap locals:
      StackMap stack:
            ldc 9223372036854775807
            lload 4 /* naiveSum */
            bipush 63
            lushr
            lconst_1
            lxor
            ladd
            lreturn
        end local 4 // long naiveSum
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0         a  J
            0    8     2         b  J
            1    8     4  naiveSum  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long saturatedSubtract(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 669
            lload 0 /* a */
            lload 2 /* b */
            lsub
            lstore 4 /* naiveDifference */
        start local 4 // long naiveDifference
         1: .line 670
            lload 0 /* a */
            lload 2 /* b */
            lxor
            lconst_0
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals: long
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: lload 0 /* a */
            lload 4 /* naiveDifference */
            lxor
            lconst_0
            lcmp
            iflt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: long long long
      StackMap stack: int int
         5: ior
            ifeq 7
         6: .line 673
            lload 4 /* naiveDifference */
            lreturn
         7: .line 676
      StackMap locals:
      StackMap stack:
            ldc 9223372036854775807
            lload 4 /* naiveDifference */
            bipush 63
            lushr
            lconst_1
            lxor
            ladd
            lreturn
        end local 4 // long naiveDifference
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0                a  J
            0    8     2                b  J
            1    8     4  naiveDifference  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long saturatedMultiply(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 689
            lload 0 /* a */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         1: .line 690
            lload 0 /* a */
            ldc -1
            lxor
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         2: .line 689
            iadd
         3: .line 691
            lload 2 /* b */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         4: .line 689
            iadd
         5: .line 692
            lload 2 /* b */
            ldc -1
            lxor
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         6: .line 689
            iadd
         7: .line 688
            istore 4 /* leadingZeros */
        start local 4 // int leadingZeros
         8: .line 693
            iload 4 /* leadingZeros */
            bipush 65
            if_icmple 10
         9: .line 694
            lload 0 /* a */
            lload 2 /* b */
            lmul
            lreturn
        10: .line 697
      StackMap locals: int
      StackMap stack:
            ldc 9223372036854775807
            lload 0 /* a */
            lload 2 /* b */
            lxor
            bipush 63
            lushr
            ladd
            lstore 5 /* limit */
        start local 5 // long limit
        11: .line 698
            iload 4 /* leadingZeros */
            bipush 64
            if_icmpge 12
            iconst_1
            goto 13
      StackMap locals: long
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: lload 0 /* a */
            lconst_0
            lcmp
            ifge 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack: int
        14: iconst_0
      StackMap locals: long long int long
      StackMap stack: int int
        15: lload 2 /* b */
            ldc -9223372036854775808
            lcmp
            ifne 16
            iconst_1
            goto 17
      StackMap locals: long long int long
      StackMap stack: int int
        16: iconst_0
      StackMap locals: long long int long
      StackMap stack: int int int
        17: iand
            ior
            ifeq 19
        18: .line 700
            lload 5 /* limit */
            lreturn
        19: .line 702
      StackMap locals:
      StackMap stack:
            lload 0 /* a */
            lload 2 /* b */
            lmul
            lstore 7 /* result */
        start local 7 // long result
        20: .line 703
            lload 0 /* a */
            lconst_0
            lcmp
            ifeq 21
            lload 7 /* result */
            lload 0 /* a */
            ldiv
            lload 2 /* b */
            lcmp
            ifne 22
        21: .line 704
      StackMap locals: long
      StackMap stack:
            lload 7 /* result */
            lreturn
        22: .line 706
      StackMap locals:
      StackMap stack:
            lload 5 /* limit */
            lreturn
        end local 7 // long result
        end local 5 // long limit
        end local 4 // int leadingZeros
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0             a  J
            0   23     2             b  J
            8   23     4  leadingZeros  I
           11   23     5         limit  J
           20   23     7        result  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      a     
      b     

  public static long saturatedPow(long, int);
    descriptor: (JI)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // long b
        start local 2 // int k
         0: .line 717
            ldc "exponent"
            iload 2 /* k */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
            pop
         1: .line 718
            lload 0 /* b */
            ldc -2
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: lload 0 /* b */
            ldc 2
            lcmp
            ifgt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: long int
      StackMap stack: int int
         5: iand
            ifeq 23
         6: .line 719
            lload 0 /* b */
            l2i
            tableswitch { // -2 - 2
                   -2: 17
                   -1: 11
                    0: 7
                    1: 10
                    2: 14
              default: 22
          }
         7: .line 721
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            ifne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: i2l
            lreturn
        10: .line 723
      StackMap locals:
      StackMap stack:
            lconst_1
            lreturn
        11: .line 725
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            iand
            ifne 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: i2l
            lreturn
        14: .line 727
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            bipush 63
            if_icmplt 16
        15: .line 728
            ldc 9223372036854775807
            lreturn
        16: .line 730
      StackMap locals:
      StackMap stack:
            lconst_1
            iload 2 /* k */
            lshl
            lreturn
        17: .line 732
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            bipush 64
            if_icmplt 19
        18: .line 733
            ldc 9223372036854775807
            iload 2 /* k */
            iconst_1
            iand
            i2l
            ladd
            lreturn
        19: .line 735
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            iand
            ifne 20
            lconst_1
            iload 2 /* k */
            lshl
            goto 21
      StackMap locals:
      StackMap stack:
        20: ldc -1
            iload 2 /* k */
            lshl
      StackMap locals:
      StackMap stack: long
        21: lreturn
        22: .line 737
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 740
      StackMap locals:
      StackMap stack:
            lconst_1
            lstore 3 /* accum */
        start local 3 // long accum
        24: .line 742
            ldc 9223372036854775807
            lload 0 /* b */
            bipush 63
            lushr
            iload 2 /* k */
            iconst_1
            iand
            i2l
            land
            ladd
            lstore 5 /* limit */
        start local 5 // long limit
        25: .line 744
      StackMap locals: long long
      StackMap stack:
            iload 2 /* k */
            tableswitch { // 0 - 1
                    0: 26
                    1: 27
              default: 28
          }
        26: .line 746
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            lreturn
        27: .line 748
      StackMap locals:
      StackMap stack:
            lload 3 /* accum */
            lload 0 /* b */
            invokestatic com.google.common.math.LongMath.saturatedMultiply:(JJ)J
            lreturn
        28: .line 750
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            iand
            ifeq 30
        29: .line 751
            lload 3 /* accum */
            lload 0 /* b */
            invokestatic com.google.common.math.LongMath.saturatedMultiply:(JJ)J
            lstore 3 /* accum */
        30: .line 753
      StackMap locals:
      StackMap stack:
            iload 2 /* k */
            iconst_1
            ishr
            istore 2 /* k */
        31: .line 754
            iload 2 /* k */
            ifle 25
        32: .line 755
            ldc -3037000499
            lload 0 /* b */
            lcmp
            ifle 33
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: lload 0 /* b */
            ldc 3037000499
            lcmp
            ifle 35
            iconst_1
            goto 36
      StackMap locals:
      StackMap stack: int
        35: iconst_0
      StackMap locals: long int long long
      StackMap stack: int int
        36: ior
            ifeq 38
        37: .line 756
            lload 5 /* limit */
            lreturn
        38: .line 758
      StackMap locals:
      StackMap stack:
            lload 0 /* b */
            lload 0 /* b */
            lmul
            lstore 0 /* b */
        39: .line 743
            goto 25
        end local 5 // long limit
        end local 3 // long accum
        end local 2 // int k
        end local 0 // long b
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   40     0      b  J
            0   40     2      k  I
           24   40     3  accum  J
           25   40     5  limit  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      b     
      k     

  public static long factorial(int);
    descriptor: (I)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int n
         0: .line 774
            ldc "n"
            iload 0 /* n */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
            pop
         1: .line 775
            iload 0 /* n */
            getstatic com.google.common.math.LongMath.factorials:[J
            arraylength
            if_icmpge 2
            getstatic com.google.common.math.LongMath.factorials:[J
            iload 0 /* n */
            laload
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc 9223372036854775807
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     n  I
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      n     

  public static long binomial(int, int);
    descriptor: (II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // int n
        start local 1 // int k
         0: .line 809
            ldc "n"
            iload 0 /* n */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
            pop
         1: .line 810
            ldc "k"
            iload 1 /* k */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
            pop
         2: .line 811
            iload 1 /* k */
            iload 0 /* n */
            if_icmpgt 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ldc "k (%s) > n (%s)"
            iload 1 /* k */
            iload 0 /* n */
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;II)V
         5: .line 812
            iload 1 /* k */
            iload 0 /* n */
            iconst_1
            ishr
            if_icmple 7
         6: .line 813
            iload 0 /* n */
            iload 1 /* k */
            isub
            istore 1 /* k */
         7: .line 815
      StackMap locals:
      StackMap stack:
            iload 1 /* k */
            tableswitch { // 0 - 1
                    0: 8
                    1: 9
              default: 10
          }
         8: .line 817
      StackMap locals:
      StackMap stack:
            lconst_1
            lreturn
         9: .line 819
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            i2l
            lreturn
        10: .line 821
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            getstatic com.google.common.math.LongMath.factorials:[J
            arraylength
            if_icmpge 12
        11: .line 822
            getstatic com.google.common.math.LongMath.factorials:[J
            iload 0 /* n */
            laload
            getstatic com.google.common.math.LongMath.factorials:[J
            iload 1 /* k */
            laload
            getstatic com.google.common.math.LongMath.factorials:[J
            iload 0 /* n */
            iload 1 /* k */
            isub
            laload
            lmul
            ldiv
            lreturn
        12: .line 823
      StackMap locals:
      StackMap stack:
            iload 1 /* k */
            getstatic com.google.common.math.LongMath.biggestBinomials:[I
            arraylength
            if_icmpge 13
            iload 0 /* n */
            getstatic com.google.common.math.LongMath.biggestBinomials:[I
            iload 1 /* k */
            iaload
            if_icmple 14
        13: .line 824
      StackMap locals:
      StackMap stack:
            ldc 9223372036854775807
            lreturn
        14: .line 825
      StackMap locals:
      StackMap stack:
            iload 1 /* k */
            getstatic com.google.common.math.LongMath.biggestSimpleBinomials:[I
            arraylength
            if_icmpge 23
            iload 0 /* n */
            getstatic com.google.common.math.LongMath.biggestSimpleBinomials:[I
            iload 1 /* k */
            iaload
            if_icmpgt 23
        15: .line 827
            iload 0 /* n */
            iinc 0 /* n */ -1
            i2l
            lstore 2 /* result */
        start local 2 // long result
        16: .line 828
            iconst_2
            istore 4 /* i */
        start local 4 // int i
        17: goto 21
        18: .line 829
      StackMap locals: long int
      StackMap stack:
            lload 2 /* result */
            iload 0 /* n */
            i2l
            lmul
            lstore 2 /* result */
        19: .line 830
            lload 2 /* result */
            iload 4 /* i */
            i2l
            ldiv
            lstore 2 /* result */
        20: .line 828
            iinc 0 /* n */ -1
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            iload 1 /* k */
            if_icmple 18
        end local 4 // int i
        22: .line 832
            lload 2 /* result */
            lreturn
        end local 2 // long result
        23: .line 834
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            i2l
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            invokestatic com.google.common.math.LongMath.log2:(JLjava/math/RoundingMode;)I
            istore 2 /* nBits */
        start local 2 // int nBits
        24: .line 836
            lconst_1
            lstore 3 /* result */
        start local 3 // long result
        25: .line 837
            iload 0 /* n */
            iinc 0 /* n */ -1
            i2l
            lstore 5 /* numerator */
        start local 5 // long numerator
        26: .line 838
            lconst_1
            lstore 7 /* denominator */
        start local 7 // long denominator
        27: .line 840
            iload 2 /* nBits */
            istore 9 /* numeratorBits */
        start local 9 // int numeratorBits
        28: .line 848
            iconst_2
            istore 10 /* i */
        start local 10 // int i
        29: goto 40
        30: .line 849
      StackMap locals: int int int long long long int int
      StackMap stack:
            iload 9 /* numeratorBits */
            iload 2 /* nBits */
            iadd
            bipush 63
            if_icmpge 35
        31: .line 851
            lload 5 /* numerator */
            iload 0 /* n */
            i2l
            lmul
            lstore 5 /* numerator */
        32: .line 852
            lload 7 /* denominator */
            iload 10 /* i */
            i2l
            lmul
            lstore 7 /* denominator */
        33: .line 853
            iload 9 /* numeratorBits */
            iload 2 /* nBits */
            iadd
            istore 9 /* numeratorBits */
        34: .line 854
            goto 39
        35: .line 857
      StackMap locals:
      StackMap stack:
            lload 3 /* result */
            lload 5 /* numerator */
            lload 7 /* denominator */
            invokestatic com.google.common.math.LongMath.multiplyFraction:(JJJ)J
            lstore 3 /* result */
        36: .line 858
            iload 0 /* n */
            i2l
            lstore 5 /* numerator */
        37: .line 859
            iload 10 /* i */
            i2l
            lstore 7 /* denominator */
        38: .line 860
            iload 2 /* nBits */
            istore 9 /* numeratorBits */
        39: .line 848
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
            iinc 0 /* n */ -1
      StackMap locals:
      StackMap stack:
        40: iload 10 /* i */
            iload 1 /* k */
            if_icmple 30
        end local 10 // int i
        41: .line 863
            lload 3 /* result */
            lload 5 /* numerator */
            lload 7 /* denominator */
            invokestatic com.google.common.math.LongMath.multiplyFraction:(JJJ)J
            lreturn
        end local 9 // int numeratorBits
        end local 7 // long denominator
        end local 5 // long numerator
        end local 3 // long result
        end local 2 // int nBits
        end local 1 // int k
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   42     0              n  I
            0   42     1              k  I
           16   23     2         result  J
           17   22     4              i  I
           24   42     2          nBits  I
           25   42     3         result  J
           26   42     5      numerator  J
           27   42     7    denominator  J
           28   42     9  numeratorBits  I
           29   41    10              i  I
    MethodParameters:
      Name  Flags
      n     
      k     

  static long multiplyFraction(long, long, long);
    descriptor: (JJJ)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // long x
        start local 2 // long numerator
        start local 4 // long denominator
         0: .line 870
            lload 0 /* x */
            lconst_1
            lcmp
            ifne 2
         1: .line 871
            lload 2 /* numerator */
            lload 4 /* denominator */
            ldiv
            lreturn
         2: .line 873
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 4 /* denominator */
            invokestatic com.google.common.math.LongMath.gcd:(JJ)J
            lstore 6 /* commonDivisor */
        start local 6 // long commonDivisor
         3: .line 874
            lload 0 /* x */
            lload 6 /* commonDivisor */
            ldiv
            lstore 0 /* x */
         4: .line 875
            lload 4 /* denominator */
            lload 6 /* commonDivisor */
            ldiv
            lstore 4 /* denominator */
         5: .line 878
            lload 0 /* x */
            lload 2 /* numerator */
            lload 4 /* denominator */
            ldiv
            lmul
            lreturn
        end local 6 // long commonDivisor
        end local 4 // long denominator
        end local 2 // long numerator
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0              x  J
            0    6     2      numerator  J
            0    6     4    denominator  J
            3    6     6  commonDivisor  J
    MethodParameters:
             Name  Flags
      x            
      numerator    
      denominator  

  static boolean fitsInInt(long);
    descriptor: (J)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long x
         0: .line 963
            lload 0 /* x */
            l2i
            i2l
            lload 0 /* x */
            lcmp
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  J
    MethodParameters:
      Name  Flags
      x     

  public static long mean(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 976
            lload 0 /* x */
            lload 2 /* y */
            land
            lload 0 /* x */
            lload 2 /* y */
            lxor
            iconst_1
            lshr
            ladd
            lreturn
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  J
            0    1     2     y  J
    MethodParameters:
      Name  Flags
      x     
      y     

  public static boolean isPrime(long);
    descriptor: (J)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // long n
         0: .line 1003
            lload 0 /* n */
            ldc 2
            lcmp
            ifge 3
         1: .line 1004
            ldc "n"
            lload 0 /* n */
            invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;J)J
            pop2
         2: .line 1005
            iconst_0
            ireturn
         3: .line 1007
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            ldc 2
            lcmp
            ifeq 4
            lload 0 /* n */
            ldc 3
            lcmp
            ifeq 4
            lload 0 /* n */
            ldc 5
            lcmp
            ifeq 4
            lload 0 /* n */
            ldc 7
            lcmp
            ifeq 4
            lload 0 /* n */
            ldc 11
            lcmp
            ifeq 4
            lload 0 /* n */
            ldc 13
            lcmp
            ifne 5
         4: .line 1008
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         5: .line 1011
      StackMap locals:
      StackMap stack:
            ldc -545925251
            iconst_1
            lload 0 /* n */
            ldc 30
            lrem
            l2i
            ishl
            iand
            ifeq 7
         6: .line 1012
            iconst_0
            ireturn
         7: .line 1014
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            ldc 7
            lrem
            lconst_0
            lcmp
            ifeq 8
            lload 0 /* n */
            ldc 11
            lrem
            lconst_0
            lcmp
            ifeq 8
            lload 0 /* n */
            ldc 13
            lrem
            lconst_0
            lcmp
            ifne 9
         8: .line 1015
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 1017
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            ldc 289
            lcmp
            ifge 11
        10: .line 1018
            iconst_1
            ireturn
        11: .line 1021
      StackMap locals:
      StackMap stack:
            getstatic com.google.common.math.LongMath.millerRabinBaseSets:[[J
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 22
      StackMap locals: long top int int long[][]
      StackMap stack:
        12: aload 5
            iload 3
            aaload
            astore 2 /* baseSet */
        start local 2 // long[] baseSet
        13: .line 1022
            lload 0 /* n */
            aload 2 /* baseSet */
            iconst_0
            laload
            lcmp
            ifgt 21
        14: .line 1023
            iconst_1
            istore 6 /* i */
        start local 6 // int i
        15: goto 19
        16: .line 1024
      StackMap locals: long long[] int int long[][] int
      StackMap stack:
            aload 2 /* baseSet */
            iload 6 /* i */
            laload
            lload 0 /* n */
            invokestatic com.google.common.math.LongMath$MillerRabinTester.test:(JJ)Z
            ifne 18
        17: .line 1025
            iconst_0
            ireturn
        18: .line 1023
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            aload 2 /* baseSet */
            arraylength
            if_icmplt 16
        end local 6 // int i
        20: .line 1028
            iconst_1
            ireturn
        end local 2 // long[] baseSet
        21: .line 1021
      StackMap locals: long top int int long[][]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        22: iload 3
            iload 4
            if_icmplt 12
        23: .line 1031
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0        n  J
           13   21     2  baseSet  [J
           15   20     6        i  I
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
      com.google.common.annotations.Beta()
    MethodParameters:
      Name  Flags
      n     

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.math.LongMath this
         0: .line 1206
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.math.LongMath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/math/LongMath;

  static int[] $SWITCH_TABLE$java$math$RoundingMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 51
            getstatic com.google.common.math.LongMath.$SWITCH_TABLE$java$math$RoundingMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.math.RoundingMode.values:()[Ljava/math/RoundingMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 8
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic java.math.RoundingMode.UP:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_1
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            dup
            putstatic com.google.common.math.LongMath.$SWITCH_TABLE$java$math$RoundingMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
}
SourceFile: "LongMath.java"
NestMembers:
  com.google.common.math.LongMath$MillerRabinTester  com.google.common.math.LongMath$MillerRabinTester$1  com.google.common.math.LongMath$MillerRabinTester$2
InnerClasses:
  private abstract MillerRabinTester = com.google.common.math.LongMath$MillerRabinTester of com.google.common.math.LongMath
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible(emulated = true)