public final class com.google.common.base.Throwables
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.base.Throwables
  super_class: java.lang.Object
{
  private static final java.lang.String JAVA_LANG_ACCESS_CLASSNAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "sun.misc.JavaLangAccess"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()

  static final java.lang.String SHARED_SECRETS_CLASSNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "sun.misc.SharedSecrets"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
      com.google.common.annotations.VisibleForTesting()

  private static final java.lang.Object jla;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  private static final java.lang.reflect.Method getStackTraceElementMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  private static final java.lang.reflect.Method getStackTraceDepthMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 451
            invokestatic com.google.common.base.Throwables.getJLA:()Ljava/lang/Object;
            putstatic com.google.common.base.Throwables.jla:Ljava/lang/Object;
         1: .line 459
            getstatic com.google.common.base.Throwables.jla:Ljava/lang/Object;
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: invokestatic com.google.common.base.Throwables.getGetMethod:()Ljava/lang/reflect/Method;
         3: .line 458
      StackMap locals:
      StackMap stack: java.lang.reflect.Method
            putstatic com.google.common.base.Throwables.getStackTraceElementMethod:Ljava/lang/reflect/Method;
         4: .line 467
            getstatic com.google.common.base.Throwables.jla:Ljava/lang/Object;
            ifnonnull 5
            aconst_null
            goto 6
      StackMap locals:
      StackMap stack:
         5: invokestatic com.google.common.base.Throwables.getSizeMethod:()Ljava/lang/reflect/Method;
         6: .line 466
      StackMap locals:
      StackMap stack: java.lang.reflect.Method
            putstatic com.google.common.base.Throwables.getStackTraceDepthMethod:Ljava/lang/reflect/Method;
         7: .line 467
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static <X extends java.lang.Throwable> void throwIfInstanceOf(java.lang.Throwable, java.lang.Class<X>) throws X;
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Class;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Throwable throwable
        start local 1 // java.lang.Class declaredType
         0: .line 74
            aload 0 /* throwable */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 75
            aload 1 /* declaredType */
            aload 0 /* throwable */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 76
            aload 1 /* declaredType */
            aload 0 /* throwable */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
         3: .line 78
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class declaredType
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0     throwable  Ljava/lang/Throwable;
            0    4     1  declaredType  Ljava/lang/Class<TX;>;
    Exceptions:
      throws java.lang.Throwable
    Signature: <X:Ljava/lang/Throwable;>(Ljava/lang/Throwable;Ljava/lang/Class<TX;>;)V^TX;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
              Name  Flags
      throwable     
      declaredType  

  public static <X extends java.lang.Throwable> void propagateIfInstanceOf(java.lang.Throwable, java.lang.Class<X>) throws X;
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Class;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Throwable throwable
        start local 1 // java.lang.Class declaredType
         0: .line 103
            aload 0 /* throwable */
            ifnull 2
         1: .line 104
            aload 0 /* throwable */
            aload 1 /* declaredType */
            invokestatic com.google.common.base.Throwables.throwIfInstanceOf:(Ljava/lang/Throwable;Ljava/lang/Class;)V
         2: .line 106
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class declaredType
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0     throwable  Ljava/lang/Throwable;
            0    3     1  declaredType  Ljava/lang/Class<TX;>;
    Exceptions:
      throws java.lang.Throwable
    Signature: <X:Ljava/lang/Throwable;>(Ljava/lang/Throwable;Ljava/lang/Class<TX;>;)V^TX;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
              Name  Flags
      throwable     
      declaredType  

  public static void throwIfUnchecked(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 128
            aload 0 /* throwable */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 129
            aload 0 /* throwable */
            instanceof java.lang.RuntimeException
            ifeq 3
         2: .line 130
            aload 0 /* throwable */
            checkcast java.lang.RuntimeException
            athrow
         3: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* throwable */
            instanceof java.lang.Error
            ifeq 5
         4: .line 133
            aload 0 /* throwable */
            checkcast java.lang.Error
            athrow
         5: .line 135
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  throwable  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      throwable  

  public static void propagateIfPossible(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 158
            aload 0 /* throwable */
            ifnull 2
         1: .line 159
            aload 0 /* throwable */
            invokestatic com.google.common.base.Throwables.throwIfUnchecked:(Ljava/lang/Throwable;)V
         2: .line 161
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  throwable  Ljava/lang/Throwable;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
           Name  Flags
      throwable  

  public static <X extends java.lang.Throwable> void propagateIfPossible(java.lang.Throwable, java.lang.Class<X>) throws X;
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Class;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Throwable throwable
        start local 1 // java.lang.Class declaredType
         0: .line 184
            aload 0 /* throwable */
            aload 1 /* declaredType */
            invokestatic com.google.common.base.Throwables.propagateIfInstanceOf:(Ljava/lang/Throwable;Ljava/lang/Class;)V
         1: .line 185
            aload 0 /* throwable */
            invokestatic com.google.common.base.Throwables.propagateIfPossible:(Ljava/lang/Throwable;)V
         2: .line 186
            return
        end local 1 // java.lang.Class declaredType
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0     throwable  Ljava/lang/Throwable;
            0    3     1  declaredType  Ljava/lang/Class<TX;>;
    Exceptions:
      throws java.lang.Throwable
    Signature: <X:Ljava/lang/Throwable;>(Ljava/lang/Throwable;Ljava/lang/Class<TX;>;)V^TX;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
              Name  Flags
      throwable     
      declaredType  

  public static <X1 extends java.lang.Throwable, X2 extends java.lang.Throwable> void propagateIfPossible(java.lang.Throwable, java.lang.Class<X1>, java.lang.Class<X2>) throws X1, X2;
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Throwable throwable
        start local 1 // java.lang.Class declaredType1
        start local 2 // java.lang.Class declaredType2
         0: .line 203
            aload 2 /* declaredType2 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 204
            aload 0 /* throwable */
            aload 1 /* declaredType1 */
            invokestatic com.google.common.base.Throwables.propagateIfInstanceOf:(Ljava/lang/Throwable;Ljava/lang/Class;)V
         2: .line 205
            aload 0 /* throwable */
            aload 2 /* declaredType2 */
            invokestatic com.google.common.base.Throwables.propagateIfPossible:(Ljava/lang/Throwable;Ljava/lang/Class;)V
         3: .line 206
            return
        end local 2 // java.lang.Class declaredType2
        end local 1 // java.lang.Class declaredType1
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0      throwable  Ljava/lang/Throwable;
            0    4     1  declaredType1  Ljava/lang/Class<TX1;>;
            0    4     2  declaredType2  Ljava/lang/Class<TX2;>;
    Exceptions:
      throws java.lang.Throwable, java.lang.Throwable
    Signature: <X1:Ljava/lang/Throwable;X2:Ljava/lang/Throwable;>(Ljava/lang/Throwable;Ljava/lang/Class<TX1;>;Ljava/lang/Class<TX2;>;)V^TX1;^TX2;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
               Name  Flags
      throwable      
      declaredType1  
      declaredType2  

  public static java.lang.RuntimeException propagate(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 240
            aload 0 /* throwable */
            invokestatic com.google.common.base.Throwables.throwIfUnchecked:(Ljava/lang/Throwable;)V
         1: .line 241
            new java.lang.RuntimeException
            dup
            aload 0 /* throwable */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  throwable  Ljava/lang/Throwable;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
           Name  Flags
      throwable  

  public static java.lang.Throwable getRootCause(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 257
            aload 0 /* throwable */
            astore 1 /* slowPointer */
        start local 1 // java.lang.Throwable slowPointer
         1: .line 258
            iconst_0
            istore 2 /* advanceSlowPointer */
        start local 2 // boolean advanceSlowPointer
         2: .line 261
            goto 11
        start local 3 // java.lang.Throwable cause
         3: .line 262
      StackMap locals: java.lang.Throwable int java.lang.Throwable
      StackMap stack:
            aload 3 /* cause */
            astore 0 /* throwable */
         4: .line 264
            aload 0 /* throwable */
            aload 1 /* slowPointer */
            if_acmpne 6
         5: .line 265
            new java.lang.IllegalArgumentException
            dup
            ldc "Loop in causal chain detected."
            aload 0 /* throwable */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
         6: .line 267
      StackMap locals:
      StackMap stack:
            iload 2 /* advanceSlowPointer */
            ifeq 8
         7: .line 268
            aload 1 /* slowPointer */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 1 /* slowPointer */
         8: .line 270
      StackMap locals:
      StackMap stack:
            iload 2 /* advanceSlowPointer */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* advanceSlowPointer */
        end local 3 // java.lang.Throwable cause
        11: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* throwable */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            dup
            astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
        12: ifnonnull 3
        13: .line 272
            aload 0 /* throwable */
            areturn
        end local 3 // java.lang.Throwable cause
        end local 2 // boolean advanceSlowPointer
        end local 1 // java.lang.Throwable slowPointer
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0           throwable  Ljava/lang/Throwable;
            1   14     1         slowPointer  Ljava/lang/Throwable;
            2   14     2  advanceSlowPointer  Z
            3   11     3               cause  Ljava/lang/Throwable;
           12   14     3               cause  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      throwable  

  public static java.util.List<java.lang.Throwable> getCausalChain(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 293
            aload 0 /* throwable */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 294
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* causes */
        start local 1 // java.util.List causes
         2: .line 295
            aload 1 /* causes */
            aload 0 /* throwable */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 299
            aload 0 /* throwable */
            astore 2 /* slowPointer */
        start local 2 // java.lang.Throwable slowPointer
         4: .line 300
            iconst_0
            istore 3 /* advanceSlowPointer */
        start local 3 // boolean advanceSlowPointer
         5: .line 303
            goto 15
        start local 4 // java.lang.Throwable cause
         6: .line 304
      StackMap locals: java.lang.Throwable java.util.List java.lang.Throwable int java.lang.Throwable
      StackMap stack:
            aload 4 /* cause */
            astore 0 /* throwable */
         7: .line 305
            aload 1 /* causes */
            aload 0 /* throwable */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 307
            aload 0 /* throwable */
            aload 2 /* slowPointer */
            if_acmpne 10
         9: .line 308
            new java.lang.IllegalArgumentException
            dup
            ldc "Loop in causal chain detected."
            aload 0 /* throwable */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        10: .line 310
      StackMap locals:
      StackMap stack:
            iload 3 /* advanceSlowPointer */
            ifeq 12
        11: .line 311
            aload 2 /* slowPointer */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 2 /* slowPointer */
        12: .line 313
      StackMap locals:
      StackMap stack:
            iload 3 /* advanceSlowPointer */
            ifeq 13
            iconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_1
      StackMap locals:
      StackMap stack: int
        14: istore 3 /* advanceSlowPointer */
        end local 4 // java.lang.Throwable cause
        15: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* throwable */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            dup
            astore 4 /* cause */
        start local 4 // java.lang.Throwable cause
        16: ifnonnull 6
        17: .line 315
            aload 1 /* causes */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 4 // java.lang.Throwable cause
        end local 3 // boolean advanceSlowPointer
        end local 2 // java.lang.Throwable slowPointer
        end local 1 // java.util.List causes
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0           throwable  Ljava/lang/Throwable;
            2   18     1              causes  Ljava/util/List<Ljava/lang/Throwable;>;
            4   18     2         slowPointer  Ljava/lang/Throwable;
            5   18     3  advanceSlowPointer  Z
            6   15     4               cause  Ljava/lang/Throwable;
           16   18     4               cause  Ljava/lang/Throwable;
    Signature: (Ljava/lang/Throwable;)Ljava/util/List<Ljava/lang/Throwable;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
           Name  Flags
      throwable  

  public static <X extends java.lang.Throwable> X getCauseAs(java.lang.Throwable, java.lang.Class<X>);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Class;)Ljava/lang/Throwable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Throwable throwable
        start local 1 // java.lang.Class expectedCauseType
         0: .line 336
            aload 1 /* expectedCauseType */
            aload 0 /* throwable */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
         1: areturn
         2: .line 337
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            astore 2 /* e */
        start local 2 // java.lang.ClassCastException e
         3: .line 338
            aload 2 /* e */
            aload 0 /* throwable */
            invokevirtual java.lang.ClassCastException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         4: .line 339
            aload 2 /* e */
            athrow
        end local 2 // java.lang.ClassCastException e
        end local 1 // java.lang.Class expectedCauseType
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0          throwable  Ljava/lang/Throwable;
            0    5     1  expectedCauseType  Ljava/lang/Class<TX;>;
            3    5     2                  e  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
    Signature: <X:Ljava/lang/Throwable;>(Ljava/lang/Throwable;Ljava/lang/Class<TX;>;)TX;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
                   Name  Flags
      throwable          
      expectedCauseType  

  public static java.lang.String getStackTraceAsString(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 351
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 1 /* stringWriter */
        start local 1 // java.io.StringWriter stringWriter
         1: .line 352
            aload 0 /* throwable */
            new java.io.PrintWriter
            dup
            aload 1 /* stringWriter */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
         2: .line 353
            aload 1 /* stringWriter */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.io.StringWriter stringWriter
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0     throwable  Ljava/lang/Throwable;
            1    3     1  stringWriter  Ljava/io/StringWriter;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
           Name  Flags
      throwable  

  public static java.util.List<java.lang.StackTraceElement> lazyStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 388
            invokestatic com.google.common.base.Throwables.lazyStackTraceIsLazy:()Z
            ifeq 2
         1: .line 389
            aload 0 /* throwable */
            invokestatic com.google.common.base.Throwables.jlaStackTrace:(Ljava/lang/Throwable;)Ljava/util/List;
            goto 3
         2: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* throwable */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
         3: .line 388
      StackMap locals:
      StackMap stack: java.util.List
            areturn
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  throwable  Ljava/lang/Throwable;
    Signature: (Ljava/lang/Throwable;)Ljava/util/List<Ljava/lang/StackTraceElement;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
           Name  Flags
      throwable  

  public static boolean lazyStackTraceIsLazy();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 402
            getstatic com.google.common.base.Throwables.getStackTraceElementMethod:Ljava/lang/reflect/Method;
            ifnull 1
            getstatic com.google.common.base.Throwables.getStackTraceDepthMethod:Ljava/lang/reflect/Method;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()

  private static java.util.List<java.lang.StackTraceElement> jlaStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 407
            aload 0 /* t */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 414
            new com.google.common.base.Throwables$1
            dup
            aload 0 /* t */
            invokespecial com.google.common.base.Throwables$1.<init>:(Ljava/lang/Throwable;)V
            areturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  Ljava/lang/Throwable;
    Signature: (Ljava/lang/Throwable;)Ljava/util/List<Ljava/lang/StackTraceElement;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
      Name  Flags
      t     final

  private static java.lang.Object invokeAccessibleNonThrowingMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.reflect.Method method
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.Object[] params
         0: .line 432
            aload 0 /* method */
            aload 1 /* receiver */
            aload 2 /* params */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 433
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 3 /* e */
        start local 3 // java.lang.IllegalAccessException e
         3: .line 434
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.IllegalAccessException e
         4: .line 435
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
         5: .line 436
            aload 3 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            invokestatic com.google.common.base.Throwables.propagate:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.reflect.InvocationTargetException e
        end local 2 // java.lang.Object[] params
        end local 1 // java.lang.Object receiver
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0    method  Ljava/lang/reflect/Method;
            0    6     1  receiver  Ljava/lang/Object;
            0    6     2    params  [Ljava/lang/Object;
            3    4     3         e  Ljava/lang/IllegalAccessException;
            5    6     3         e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalAccessException
           0     1       4  Class java.lang.reflect.InvocationTargetException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      method    
      receiver  
      params    

  private static java.lang.Object getJLA();
    descriptor: ()Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 480
            ldc "sun.misc.SharedSecrets"
            iconst_0
            aconst_null
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 0 /* sharedSecrets */
        start local 0 // java.lang.Class sharedSecrets
         1: .line 481
            aload 0 /* sharedSecrets */
            ldc "getJavaLangAccess"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 1 /* langAccess */
        start local 1 // java.lang.reflect.Method langAccess
         2: .line 482
            aload 1 /* langAccess */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
        end local 1 // java.lang.reflect.Method langAccess
        end local 0 // java.lang.Class sharedSecrets
         4: .line 483
      StackMap locals:
      StackMap stack: java.lang.ThreadDeath
            astore 0 /* death */
        start local 0 // java.lang.ThreadDeath death
         5: .line 484
            aload 0 /* death */
            athrow
        end local 0 // java.lang.ThreadDeath death
         6: .line 485
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         7: .line 490
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1    4     0  sharedSecrets  Ljava/lang/Class<*>;
            2    4     1     langAccess  Ljava/lang/reflect/Method;
            5    6     0          death  Ljava/lang/ThreadDeath;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ThreadDeath
           0     3       6  Class java.lang.Throwable
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()

  private static java.lang.reflect.Method getGetMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 500
            ldc "getStackTraceElement"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Throwable;
            aastore
            dup
            iconst_1
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokestatic com.google.common.base.Throwables.getJlaMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()

  private static java.lang.reflect.Method getSizeMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=0
         0: .line 515
            ldc "getStackTraceDepth"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Throwable;
            aastore
            invokestatic com.google.common.base.Throwables.getJlaMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 0 /* getStackTraceDepth */
        start local 0 // java.lang.reflect.Method getStackTraceDepth
         1: .line 516
            aload 0 /* getStackTraceDepth */
            ifnonnull 3
         2: .line 517
            aconst_null
            areturn
         3: .line 519
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 0 /* getStackTraceDepth */
            invokestatic com.google.common.base.Throwables.getJLA:()Ljava/lang/Object;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new java.lang.Throwable
            dup
            invokespecial java.lang.Throwable.<init>:()V
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 520
            aload 0 /* getStackTraceDepth */
         5: areturn
        end local 0 // java.lang.reflect.Method getStackTraceDepth
         6: .line 521
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         7: .line 522
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            1    6     0  getStackTraceDepth  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           0     2       6  Class java.lang.UnsupportedOperationException
           3     5       6  Class java.lang.UnsupportedOperationException
           0     2       6  Class java.lang.IllegalAccessException
           3     5       6  Class java.lang.IllegalAccessException
           0     2       6  Class java.lang.reflect.InvocationTargetException
           3     5       6  Class java.lang.reflect.InvocationTargetException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()

  private static java.lang.reflect.Method getJlaMethod(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class[] parameterTypes
         0: .line 530
            ldc "sun.misc.JavaLangAccess"
            iconst_0
            aconst_null
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            aload 0 /* name */
            aload 1 /* parameterTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         1: areturn
         2: .line 531
      StackMap locals:
      StackMap stack: java.lang.ThreadDeath
            astore 2 /* death */
        start local 2 // java.lang.ThreadDeath death
         3: .line 532
            aload 2 /* death */
            athrow
        end local 2 // java.lang.ThreadDeath death
         4: .line 533
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         5: .line 538
            aconst_null
            areturn
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            name  Ljava/lang/String;
            0    6     1  parameterTypes  [Ljava/lang/Class;
            3    4     2           death  Ljava/lang/ThreadDeath;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ThreadDeath
           0     1       4  Class java.lang.Throwable
    Exceptions:
      throws java.lang.ThreadDeath
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  
}
SourceFile: "Throwables.java"
NestMembers:
  com.google.common.base.Throwables$1
InnerClasses:
  com.google.common.base.Throwables$1
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible(emulated = true)