public final class com.google.gson.internal.Excluder implements com.google.gson.TypeAdapterFactory, java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.gson.internal.Excluder
  super_class: java.lang.Object
{
  private static final double IGNORE_VERSIONS;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1.0

  public static final com.google.gson.internal.Excluder DEFAULT;
    descriptor: Lcom/google/gson/internal/Excluder;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private double version;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private java.util.List<com.google.gson.ExclusionStrategy> serializationStrategies;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/google/gson/ExclusionStrategy;>;

  private java.util.List<com.google.gson.ExclusionStrategy> deserializationStrategies;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/google/gson/ExclusionStrategy;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 52
            new com.google.gson.internal.Excluder
            dup
            invokespecial com.google.gson.internal.Excluder.<init>:()V
            putstatic com.google.gson.internal.Excluder.DEFAULT:Lcom/google/gson/internal/Excluder;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.gson.internal.Excluder this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            ldc -1.0
            putfield com.google.gson.internal.Excluder.version:D
         2: .line 55
            aload 0 /* this */
            sipush 136
            putfield com.google.gson.internal.Excluder.modifiers:I
         3: .line 56
            aload 0 /* this */
            iconst_1
            putfield com.google.gson.internal.Excluder.serializeInnerClasses:Z
         4: .line 58
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield com.google.gson.internal.Excluder.serializationStrategies:Ljava/util/List;
         5: .line 59
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield com.google.gson.internal.Excluder.deserializationStrategies:Ljava/util/List;
         6: .line 50
            return
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/google/gson/internal/Excluder;

  protected com.google.gson.internal.Excluder clone();
    descriptor: ()Lcom/google/gson/internal/Excluder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.google.gson.internal.Excluder this
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast com.google.gson.internal.Excluder
         1: areturn
         2: .line 64
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 65
            new java.lang.AssertionError
            dup
            aload 1 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/google/gson/internal/Excluder;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  public com.google.gson.internal.Excluder withVersion(double);
    descriptor: (D)Lcom/google/gson/internal/Excluder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // double ignoreVersionsAfter
         0: .line 70
            aload 0 /* this */
            invokevirtual com.google.gson.internal.Excluder.clone:()Lcom/google/gson/internal/Excluder;
            astore 3 /* result */
        start local 3 // com.google.gson.internal.Excluder result
         1: .line 71
            aload 3 /* result */
            dload 1 /* ignoreVersionsAfter */
            putfield com.google.gson.internal.Excluder.version:D
         2: .line 72
            aload 3 /* result */
            areturn
        end local 3 // com.google.gson.internal.Excluder result
        end local 1 // double ignoreVersionsAfter
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/google/gson/internal/Excluder;
            0    3     1  ignoreVersionsAfter  D
            1    3     3               result  Lcom/google/gson/internal/Excluder;
    MethodParameters:
                     Name  Flags
      ignoreVersionsAfter  

  public com.google.gson.internal.Excluder withModifiers(int[]);
    descriptor: ([I)Lcom/google/gson/internal/Excluder;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // int[] modifiers
         0: .line 76
            aload 0 /* this */
            invokevirtual com.google.gson.internal.Excluder.clone:()Lcom/google/gson/internal/Excluder;
            astore 2 /* result */
        start local 2 // com.google.gson.internal.Excluder result
         1: .line 77
            aload 2 /* result */
            iconst_0
            putfield com.google.gson.internal.Excluder.modifiers:I
         2: .line 78
            aload 1 /* modifiers */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.google.gson.internal.Excluder int[] com.google.gson.internal.Excluder top int int int[]
      StackMap stack:
         3: aload 6
            iload 4
            iaload
            istore 3 /* modifier */
        start local 3 // int modifier
         4: .line 79
            aload 2 /* result */
            dup
            getfield com.google.gson.internal.Excluder.modifiers:I
            iload 3 /* modifier */
            ior
            putfield com.google.gson.internal.Excluder.modifiers:I
        end local 3 // int modifier
         5: .line 78
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 3
         7: .line 81
            aload 2 /* result */
            areturn
        end local 2 // com.google.gson.internal.Excluder result
        end local 1 // int[] modifiers
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/google/gson/internal/Excluder;
            0    8     1  modifiers  [I
            1    8     2     result  Lcom/google/gson/internal/Excluder;
            4    5     3   modifier  I
    MethodParameters:
           Name  Flags
      modifiers  

  public com.google.gson.internal.Excluder disableInnerClassSerialization();
    descriptor: ()Lcom/google/gson/internal/Excluder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.google.gson.internal.Excluder this
         0: .line 85
            aload 0 /* this */
            invokevirtual com.google.gson.internal.Excluder.clone:()Lcom/google/gson/internal/Excluder;
            astore 1 /* result */
        start local 1 // com.google.gson.internal.Excluder result
         1: .line 86
            aload 1 /* result */
            iconst_0
            putfield com.google.gson.internal.Excluder.serializeInnerClasses:Z
         2: .line 87
            aload 1 /* result */
            areturn
        end local 1 // com.google.gson.internal.Excluder result
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/google/gson/internal/Excluder;
            1    3     1  result  Lcom/google/gson/internal/Excluder;

  public com.google.gson.internal.Excluder excludeFieldsWithoutExposeAnnotation();
    descriptor: ()Lcom/google/gson/internal/Excluder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.google.gson.internal.Excluder this
         0: .line 91
            aload 0 /* this */
            invokevirtual com.google.gson.internal.Excluder.clone:()Lcom/google/gson/internal/Excluder;
            astore 1 /* result */
        start local 1 // com.google.gson.internal.Excluder result
         1: .line 92
            aload 1 /* result */
            iconst_1
            putfield com.google.gson.internal.Excluder.requireExpose:Z
         2: .line 93
            aload 1 /* result */
            areturn
        end local 1 // com.google.gson.internal.Excluder result
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/google/gson/internal/Excluder;
            1    3     1  result  Lcom/google/gson/internal/Excluder;

  public com.google.gson.internal.Excluder withExclusionStrategy(com.google.gson.ExclusionStrategy, boolean, boolean);
    descriptor: (Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // com.google.gson.ExclusionStrategy exclusionStrategy
        start local 2 // boolean serialization
        start local 3 // boolean deserialization
         0: .line 98
            aload 0 /* this */
            invokevirtual com.google.gson.internal.Excluder.clone:()Lcom/google/gson/internal/Excluder;
            astore 4 /* result */
        start local 4 // com.google.gson.internal.Excluder result
         1: .line 99
            iload 2 /* serialization */
            ifeq 4
         2: .line 100
            aload 4 /* result */
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.serializationStrategies:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield com.google.gson.internal.Excluder.serializationStrategies:Ljava/util/List;
         3: .line 101
            aload 4 /* result */
            getfield com.google.gson.internal.Excluder.serializationStrategies:Ljava/util/List;
            aload 1 /* exclusionStrategy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 103
      StackMap locals: com.google.gson.internal.Excluder
      StackMap stack:
            iload 3 /* deserialization */
            ifeq 9
         5: .line 104
            aload 4 /* result */
         6: .line 105
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.deserializationStrategies:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
         7: .line 104
            putfield com.google.gson.internal.Excluder.deserializationStrategies:Ljava/util/List;
         8: .line 106
            aload 4 /* result */
            getfield com.google.gson.internal.Excluder.deserializationStrategies:Ljava/util/List;
            aload 1 /* exclusionStrategy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 108
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // com.google.gson.internal.Excluder result
        end local 3 // boolean deserialization
        end local 2 // boolean serialization
        end local 1 // com.google.gson.ExclusionStrategy exclusionStrategy
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lcom/google/gson/internal/Excluder;
            0   10     1  exclusionStrategy  Lcom/google/gson/ExclusionStrategy;
            0   10     2      serialization  Z
            0   10     3    deserialization  Z
            1   10     4             result  Lcom/google/gson/internal/Excluder;
    MethodParameters:
                   Name  Flags
      exclusionStrategy  
      serialization      
      deserialization    

  public <T> com.google.gson.TypeAdapter<T> create(com.google.gson.Gson, com.google.gson.reflect.TypeToken<T>);
    descriptor: (Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // com.google.gson.Gson gson
        start local 2 // com.google.gson.reflect.TypeToken type
         0: .line 112
            aload 2 /* type */
            invokevirtual com.google.gson.reflect.TypeToken.getRawType:()Ljava/lang/Class;
            astore 3 /* rawType */
        start local 3 // java.lang.Class rawType
         1: .line 113
            aload 0 /* this */
            aload 3 /* rawType */
            invokevirtual com.google.gson.internal.Excluder.excludeClassChecks:(Ljava/lang/Class;)Z
            istore 4 /* excludeClass */
        start local 4 // boolean excludeClass
         2: .line 115
            iload 4 /* excludeClass */
            ifne 3
            aload 0 /* this */
            aload 3 /* rawType */
            iconst_1
            invokevirtual com.google.gson.internal.Excluder.excludeClassInStrategy:(Ljava/lang/Class;Z)Z
            ifne 3
            iconst_0
            goto 4
      StackMap locals: java.lang.Class int
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* skipSerialize */
        start local 5 // boolean skipSerialize
         5: .line 116
            iload 4 /* excludeClass */
            ifne 6
            aload 0 /* this */
            aload 3 /* rawType */
            iconst_0
            invokevirtual com.google.gson.internal.Excluder.excludeClassInStrategy:(Ljava/lang/Class;Z)Z
            ifne 6
            iconst_0
            goto 7
      StackMap locals: int
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* skipDeserialize */
        start local 6 // boolean skipDeserialize
         8: .line 118
            iload 5 /* skipSerialize */
            ifne 10
            iload 6 /* skipDeserialize */
            ifne 10
         9: .line 119
            aconst_null
            areturn
        10: .line 122
      StackMap locals: int
      StackMap stack:
            new com.google.gson.internal.Excluder$1
            dup
            aload 0 /* this */
            iload 6 /* skipDeserialize */
            iload 5 /* skipSerialize */
            aload 1 /* gson */
            aload 2 /* type */
            invokespecial com.google.gson.internal.Excluder$1.<init>:(Lcom/google/gson/internal/Excluder;ZZLcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)V
            areturn
        end local 6 // boolean skipDeserialize
        end local 5 // boolean skipSerialize
        end local 4 // boolean excludeClass
        end local 3 // java.lang.Class rawType
        end local 2 // com.google.gson.reflect.TypeToken type
        end local 1 // com.google.gson.Gson gson
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/google/gson/internal/Excluder;
            0   11     1             gson  Lcom/google/gson/Gson;
            0   11     2             type  Lcom/google/gson/reflect/TypeToken<TT;>;
            1   11     3          rawType  Ljava/lang/Class<*>;
            2   11     4     excludeClass  Z
            5   11     5    skipSerialize  Z
            8   11     6  skipDeserialize  Z
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken<TT;>;)Lcom/google/gson/TypeAdapter<TT;>;
    MethodParameters:
      Name  Flags
      gson  final
      type  final

  public boolean excludeField(java.lang.reflect.Field, boolean);
    descriptor: (Ljava/lang/reflect/Field;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.reflect.Field field
        start local 2 // boolean serialize
         0: .line 152
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.modifiers:I
            aload 1 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            iand
            ifeq 2
         1: .line 153
            iconst_1
            ireturn
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.version:D
            ldc -1.0
            dcmpl
            ifeq 5
         3: .line 157
            aload 0 /* this */
            aload 1 /* field */
            ldc Lcom/google/gson/annotations/Since;
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.google.gson.annotations.Since
            aload 1 /* field */
            ldc Lcom/google/gson/annotations/Until;
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.google.gson.annotations.Until
            invokevirtual com.google.gson.internal.Excluder.isValidVersion:(Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z
            ifne 5
         4: .line 158
            iconst_1
            ireturn
         5: .line 161
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokevirtual java.lang.reflect.Field.isSynthetic:()Z
            ifeq 7
         6: .line 162
            iconst_1
            ireturn
         7: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.requireExpose:Z
            ifeq 12
         8: .line 166
            aload 1 /* field */
            ldc Lcom/google/gson/annotations/Expose;
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.google.gson.annotations.Expose
            astore 3 /* annotation */
        start local 3 // com.google.gson.annotations.Expose annotation
         9: .line 167
            aload 3 /* annotation */
            ifnull 11
            iload 2 /* serialize */
            ifeq 10
            aload 3 /* annotation */
            invokeinterface com.google.gson.annotations.Expose.serialize:()Z
            ifne 12
            goto 11
      StackMap locals: com.google.gson.annotations.Expose
      StackMap stack:
        10: aload 3 /* annotation */
            invokeinterface com.google.gson.annotations.Expose.deserialize:()Z
            ifne 12
        11: .line 168
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // com.google.gson.annotations.Expose annotation
        12: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.serializeInnerClasses:Z
            ifne 14
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual com.google.gson.internal.Excluder.isInnerClass:(Ljava/lang/Class;)Z
            ifeq 14
        13: .line 173
            iconst_1
            ireturn
        14: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual com.google.gson.internal.Excluder.isAnonymousOrLocal:(Ljava/lang/Class;)Z
            ifeq 16
        15: .line 177
            iconst_1
            ireturn
        16: .line 180
      StackMap locals:
      StackMap stack:
            iload 2 /* serialize */
            ifeq 17
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.serializationStrategies:Ljava/util/List;
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            getfield com.google.gson.internal.Excluder.deserializationStrategies:Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.List
        18: astore 3 /* list */
        start local 3 // java.util.List list
        19: .line 181
            aload 3 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 26
        20: .line 182
            new com.google.gson.FieldAttributes
            dup
            aload 1 /* field */
            invokespecial com.google.gson.FieldAttributes.<init>:(Ljava/lang/reflect/Field;)V
            astore 4 /* fieldAttributes */
        start local 4 // com.google.gson.FieldAttributes fieldAttributes
        21: .line 183
            aload 3 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 25
      StackMap locals: com.google.gson.internal.Excluder java.lang.reflect.Field int java.util.List com.google.gson.FieldAttributes top java.util.Iterator
      StackMap stack:
        22: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.gson.ExclusionStrategy
            astore 5 /* exclusionStrategy */
        start local 5 // com.google.gson.ExclusionStrategy exclusionStrategy
        23: .line 184
            aload 5 /* exclusionStrategy */
            aload 4 /* fieldAttributes */
            invokeinterface com.google.gson.ExclusionStrategy.shouldSkipField:(Lcom/google/gson/FieldAttributes;)Z
            ifeq 25
        24: .line 185
            iconst_1
            ireturn
        end local 5 // com.google.gson.ExclusionStrategy exclusionStrategy
        25: .line 183
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 4 // com.google.gson.FieldAttributes fieldAttributes
        26: .line 190
      StackMap locals: com.google.gson.internal.Excluder java.lang.reflect.Field int java.util.List
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.util.List list
        end local 2 // boolean serialize
        end local 1 // java.lang.reflect.Field field
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/google/gson/internal/Excluder;
            0   27     1              field  Ljava/lang/reflect/Field;
            0   27     2          serialize  Z
            9   12     3         annotation  Lcom/google/gson/annotations/Expose;
           19   27     3               list  Ljava/util/List<Lcom/google/gson/ExclusionStrategy;>;
           21   26     4    fieldAttributes  Lcom/google/gson/FieldAttributes;
           23   25     5  exclusionStrategy  Lcom/google/gson/ExclusionStrategy;
    MethodParameters:
           Name  Flags
      field      
      serialize  

  private boolean excludeClassChecks(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.Class clazz
         0: .line 194
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.version:D
            ldc -1.0
            dcmpl
            ifeq 2
            aload 0 /* this */
            aload 1 /* clazz */
            ldc Lcom/google/gson/annotations/Since;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.google.gson.annotations.Since
            aload 1 /* clazz */
            ldc Lcom/google/gson/annotations/Until;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.google.gson.annotations.Until
            invokevirtual com.google.gson.internal.Excluder.isValidVersion:(Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z
            ifne 2
         1: .line 195
            iconst_1
            ireturn
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.serializeInnerClasses:Z
            ifne 4
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual com.google.gson.internal.Excluder.isInnerClass:(Ljava/lang/Class;)Z
            ifeq 4
         3: .line 199
            iconst_1
            ireturn
         4: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual com.google.gson.internal.Excluder.isAnonymousOrLocal:(Ljava/lang/Class;)Z
            ifeq 6
         5: .line 203
            iconst_1
            ireturn
         6: .line 206
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/google/gson/internal/Excluder;
            0    7     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public boolean excludeClass(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.Class clazz
        start local 2 // boolean serialize
         0: .line 210
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual com.google.gson.internal.Excluder.excludeClassChecks:(Ljava/lang/Class;)Z
            ifne 3
         1: .line 211
            aload 0 /* this */
            aload 1 /* clazz */
            iload 2 /* serialize */
            invokevirtual com.google.gson.internal.Excluder.excludeClassInStrategy:(Ljava/lang/Class;Z)Z
            ifne 3
         2: .line 210
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // boolean serialize
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/google/gson/internal/Excluder;
            0    4     1      clazz  Ljava/lang/Class<*>;
            0    4     2  serialize  Z
    Signature: (Ljava/lang/Class<*>;Z)Z
    MethodParameters:
           Name  Flags
      clazz      
      serialize  

  private boolean excludeClassInStrategy(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.Class clazz
        start local 2 // boolean serialize
         0: .line 215
            iload 2 /* serialize */
            ifeq 1
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.serializationStrategies:Ljava/util/List;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.google.gson.internal.Excluder.deserializationStrategies:Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.List
         2: astore 3 /* list */
        start local 3 // java.util.List list
         3: .line 216
            aload 3 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: com.google.gson.internal.Excluder java.lang.Class int java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.gson.ExclusionStrategy
            astore 4 /* exclusionStrategy */
        start local 4 // com.google.gson.ExclusionStrategy exclusionStrategy
         5: .line 217
            aload 4 /* exclusionStrategy */
            aload 1 /* clazz */
            invokeinterface com.google.gson.ExclusionStrategy.shouldSkipClass:(Ljava/lang/Class;)Z
            ifeq 7
         6: .line 218
            iconst_1
            ireturn
        end local 4 // com.google.gson.ExclusionStrategy exclusionStrategy
         7: .line 216
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 221
            iconst_0
            ireturn
        end local 3 // java.util.List list
        end local 2 // boolean serialize
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lcom/google/gson/internal/Excluder;
            0    9     1              clazz  Ljava/lang/Class<*>;
            0    9     2          serialize  Z
            3    9     3               list  Ljava/util/List<Lcom/google/gson/ExclusionStrategy;>;
            5    7     4  exclusionStrategy  Lcom/google/gson/ExclusionStrategy;
    Signature: (Ljava/lang/Class<*>;Z)Z
    MethodParameters:
           Name  Flags
      clazz      
      serialize  

  private boolean isAnonymousOrLocal(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.Class clazz
         0: .line 225
            ldc Ljava/lang/Enum;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 3
         1: .line 226
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAnonymousClass:()Z
            ifne 2
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isLocalClass:()Z
            ifeq 3
         2: .line 225
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/google/gson/internal/Excluder;
            0    4     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  private boolean isInnerClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.Class clazz
         0: .line 230
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isMemberClass:()Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual com.google.gson.internal.Excluder.isStatic:(Ljava/lang/Class;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/google/gson/internal/Excluder;
            0    2     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  private boolean isStatic(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // java.lang.Class clazz
         0: .line 234
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            bipush 8
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/google/gson/internal/Excluder;
            0    2     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  private boolean isValidVersion(com.google.gson.annotations.Since, com.google.gson.annotations.Until);
    descriptor: (Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // com.google.gson.annotations.Since since
        start local 2 // com.google.gson.annotations.Until until
         0: .line 238
            aload 0 /* this */
            aload 1 /* since */
            invokevirtual com.google.gson.internal.Excluder.isValidSince:(Lcom/google/gson/annotations/Since;)Z
            ifeq 1
            aload 0 /* this */
            aload 2 /* until */
            invokevirtual com.google.gson.internal.Excluder.isValidUntil:(Lcom/google/gson/annotations/Until;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // com.google.gson.annotations.Until until
        end local 1 // com.google.gson.annotations.Since since
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/google/gson/internal/Excluder;
            0    2     1  since  Lcom/google/gson/annotations/Since;
            0    2     2  until  Lcom/google/gson/annotations/Until;
    MethodParameters:
       Name  Flags
      since  
      until  

  private boolean isValidSince(com.google.gson.annotations.Since);
    descriptor: (Lcom/google/gson/annotations/Since;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // com.google.gson.annotations.Since annotation
         0: .line 242
            aload 1 /* annotation */
            ifnull 4
         1: .line 243
            aload 1 /* annotation */
            invokeinterface com.google.gson.annotations.Since.value:()D
            dstore 2 /* annotationVersion */
        start local 2 // double annotationVersion
         2: .line 244
            dload 2 /* annotationVersion */
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.version:D
            dcmpl
            ifle 4
         3: .line 245
            iconst_0
            ireturn
        end local 2 // double annotationVersion
         4: .line 248
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.google.gson.annotations.Since annotation
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/google/gson/internal/Excluder;
            0    5     1         annotation  Lcom/google/gson/annotations/Since;
            2    4     2  annotationVersion  D
    MethodParameters:
            Name  Flags
      annotation  

  private boolean isValidUntil(com.google.gson.annotations.Until);
    descriptor: (Lcom/google/gson/annotations/Until;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.gson.internal.Excluder this
        start local 1 // com.google.gson.annotations.Until annotation
         0: .line 252
            aload 1 /* annotation */
            ifnull 4
         1: .line 253
            aload 1 /* annotation */
            invokeinterface com.google.gson.annotations.Until.value:()D
            dstore 2 /* annotationVersion */
        start local 2 // double annotationVersion
         2: .line 254
            dload 2 /* annotationVersion */
            aload 0 /* this */
            getfield com.google.gson.internal.Excluder.version:D
            dcmpg
            ifgt 4
         3: .line 255
            iconst_0
            ireturn
        end local 2 // double annotationVersion
         4: .line 258
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.google.gson.annotations.Until annotation
        end local 0 // com.google.gson.internal.Excluder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/google/gson/internal/Excluder;
            0    5     1         annotation  Lcom/google/gson/annotations/Until;
            2    4     2  annotationVersion  D
    MethodParameters:
            Name  Flags
      annotation  

  protected java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.google.gson.internal.Excluder.clone:()Lcom/google/gson/internal/Excluder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
SourceFile: "Excluder.java"
NestMembers:
  com.google.gson.internal.Excluder$1
InnerClasses:
  com.google.gson.internal.Excluder$1