public class org.apache.lucene.util.AttributeSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.util.AttributeSource
  super_class: java.lang.Object
{
  private final java.util.Map<java.lang.Class<? extends org.apache.lucene.util.Attribute>, org.apache.lucene.util.AttributeImpl> attributes;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;Lorg/apache/lucene/util/AttributeImpl;>;

  private final java.util.Map<java.lang.Class<? extends org.apache.lucene.util.AttributeImpl>, org.apache.lucene.util.AttributeImpl> attributeImpls;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<+Lorg/apache/lucene/util/AttributeImpl;>;Lorg/apache/lucene/util/AttributeImpl;>;

  private final org.apache.lucene.util.AttributeSource$State[] currentState;
    descriptor: [Lorg/apache/lucene/util/AttributeSource$State;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.util.AttributeFactory factory;
    descriptor: Lorg/apache/lucene/util/AttributeFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.lang.ClassValue<java.lang.Class<? extends org.apache.lucene.util.Attribute>[]> implInterfaces;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<[Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 150
            new org.apache.lucene.util.AttributeSource$1
            dup
            invokespecial org.apache.lucene.util.AttributeSource$1.<init>:()V
            putstatic org.apache.lucene.util.AttributeSource.implInterfaces:Ljava/lang/ClassValue;
         1: .line 168
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 77
            aload 0 /* this */
            getstatic org.apache.lucene.util.AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY:Lorg/apache/lucene/util/AttributeFactory;
            invokespecial org.apache.lucene.util.AttributeSource.<init>:(Lorg/apache/lucene/util/AttributeFactory;)V
         1: .line 78
            return
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/util/AttributeSource;

  public void <init>(org.apache.lucene.util.AttributeSource);
    descriptor: (Lorg/apache/lucene/util/AttributeSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // org.apache.lucene.util.AttributeSource input
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 1 /* input */
            ldc "input AttributeSource must not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 85
            aload 0 /* this */
            aload 1 /* input */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            putfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
         3: .line 86
            aload 0 /* this */
            aload 1 /* input */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            putfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
         4: .line 87
            aload 0 /* this */
            aload 1 /* input */
            getfield org.apache.lucene.util.AttributeSource.currentState:[Lorg/apache/lucene/util/AttributeSource$State;
            putfield org.apache.lucene.util.AttributeSource.currentState:[Lorg/apache/lucene/util/AttributeSource$State;
         5: .line 88
            aload 0 /* this */
            aload 1 /* input */
            getfield org.apache.lucene.util.AttributeSource.factory:Lorg/apache/lucene/util/AttributeFactory;
            putfield org.apache.lucene.util.AttributeSource.factory:Lorg/apache/lucene/util/AttributeFactory;
         6: .line 89
            return
        end local 1 // org.apache.lucene.util.AttributeSource input
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/lucene/util/AttributeSource;
            0    7     1  input  Lorg/apache/lucene/util/AttributeSource;
    MethodParameters:
       Name  Flags
      input  

  public void <init>(org.apache.lucene.util.AttributeFactory);
    descriptor: (Lorg/apache/lucene/util/AttributeFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // org.apache.lucene.util.AttributeFactory factory
         0: .line 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 95
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
         2: .line 96
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
         3: .line 97
            aload 0 /* this */
            iconst_1
            anewarray org.apache.lucene.util.AttributeSource$State
            putfield org.apache.lucene.util.AttributeSource.currentState:[Lorg/apache/lucene/util/AttributeSource$State;
         4: .line 98
            aload 0 /* this */
            aload 1 /* factory */
            ldc "AttributeFactory must not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeFactory
            putfield org.apache.lucene.util.AttributeSource.factory:Lorg/apache/lucene/util/AttributeFactory;
         5: .line 99
            return
        end local 1 // org.apache.lucene.util.AttributeFactory factory
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/lucene/util/AttributeSource;
            0    6     1  factory  Lorg/apache/lucene/util/AttributeFactory;
    MethodParameters:
         Name  Flags
      factory  

  public final org.apache.lucene.util.AttributeFactory getAttributeFactory();
    descriptor: ()Lorg/apache/lucene/util/AttributeFactory;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 105
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.factory:Lorg/apache/lucene/util/AttributeFactory;
            areturn
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/AttributeSource;

  public final java.util.Iterator<java.lang.Class<? extends org.apache.lucene.util.Attribute>> getAttributeClassesIterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 112
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/AttributeSource;
    Signature: ()Ljava/util/Iterator<Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;>;

  public final java.util.Iterator<org.apache.lucene.util.AttributeImpl> getAttributeImplsIterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 120
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* initState */
        start local 1 // org.apache.lucene.util.AttributeSource$State initState
         1: .line 121
            aload 1 /* initState */
            ifnull 3
         2: .line 122
            new org.apache.lucene.util.AttributeSource$2
            dup
            aload 0 /* this */
            aload 1 /* initState */
            invokespecial org.apache.lucene.util.AttributeSource$2.<init>:(Lorg/apache/lucene/util/AttributeSource;Lorg/apache/lucene/util/AttributeSource$State;)V
            areturn
         3: .line 145
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            areturn
        end local 1 // org.apache.lucene.util.AttributeSource$State initState
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/apache/lucene/util/AttributeSource;
            1    4     1  initState  Lorg/apache/lucene/util/AttributeSource$State;
    Signature: ()Ljava/util/Iterator<Lorg/apache/lucene/util/AttributeImpl;>;

  static java.lang.Class<? extends org.apache.lucene.util.Attribute>[] getAttributeInterfaces(java.lang.Class<? extends org.apache.lucene.util.AttributeImpl>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 171
            getstatic org.apache.lucene.util.AttributeSource.implInterfaces:Ljava/lang/ClassValue;
            aload 0 /* clazz */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Class[]
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<+Lorg/apache/lucene/util/AttributeImpl;>;
    Signature: (Ljava/lang/Class<+Lorg/apache/lucene/util/AttributeImpl;>;)[Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;
    MethodParameters:
       Name  Flags
      clazz  final

  public final void addAttributeImpl(org.apache.lucene.util.AttributeImpl);
    descriptor: (Lorg/apache/lucene/util/AttributeImpl;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // org.apache.lucene.util.AttributeImpl att
         0: .line 183
            aload 1 /* att */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         1: .line 184
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            aload 2 /* clazz */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
            return
         2: .line 187
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* clazz */
            invokestatic org.apache.lucene.util.AttributeSource.getAttributeInterfaces:(Ljava/lang/Class;)[Ljava/lang/Class;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: org.apache.lucene.util.AttributeSource org.apache.lucene.util.AttributeImpl java.lang.Class top int int java.lang.Class[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* curInterface */
        start local 3 // java.lang.Class curInterface
         4: .line 189
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            aload 3 /* curInterface */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 191
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.currentState:[Lorg/apache/lucene/util/AttributeSource$State;
            iconst_0
            aconst_null
            aastore
         6: .line 192
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            aload 3 /* curInterface */
            aload 1 /* att */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 193
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            aload 2 /* clazz */
            aload 1 /* att */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.Class curInterface
         8: .line 187
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 3
        10: .line 196
            return
        end local 2 // java.lang.Class clazz
        end local 1 // org.apache.lucene.util.AttributeImpl att
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/apache/lucene/util/AttributeSource;
            0   11     1           att  Lorg/apache/lucene/util/AttributeImpl;
            1   11     2         clazz  Ljava/lang/Class<+Lorg/apache/lucene/util/AttributeImpl;>;
            4    8     3  curInterface  Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;
    MethodParameters:
      Name  Flags
      att   final

  public final <T extends org.apache.lucene.util.Attribute> T addAttribute(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/apache/lucene/util/Attribute;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // java.lang.Class attClass
         0: .line 205
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            aload 1 /* attClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            astore 2 /* attImpl */
        start local 2 // org.apache.lucene.util.AttributeImpl attImpl
         1: .line 206
            aload 2 /* attImpl */
            ifnonnull 9
         2: .line 207
            aload 1 /* attClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 3
            ldc Lorg/apache/lucene/util/Attribute;
            aload 1 /* attClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         3: .line 208
      StackMap locals: org.apache.lucene.util.AttributeImpl
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         4: .line 209
            new java.lang.StringBuilder
            dup
            ldc "addAttribute() only accepts an interface that extends Attribute, but "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 210
            aload 1 /* attClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not fulfil this contract."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 209
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 208
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.factory:Lorg/apache/lucene/util/AttributeFactory;
            aload 1 /* attClass */
            invokevirtual org.apache.lucene.util.AttributeFactory.createAttributeInstance:(Ljava/lang/Class;)Lorg/apache/lucene/util/AttributeImpl;
            dup
            astore 2 /* attImpl */
            invokevirtual org.apache.lucene.util.AttributeSource.addAttributeImpl:(Lorg/apache/lucene/util/AttributeImpl;)V
         9: .line 215
      StackMap locals:
      StackMap stack:
            aload 1 /* attClass */
            aload 2 /* attImpl */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.Attribute
            areturn
        end local 2 // org.apache.lucene.util.AttributeImpl attImpl
        end local 1 // java.lang.Class attClass
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/lucene/util/AttributeSource;
            0   10     1  attClass  Ljava/lang/Class<TT;>;
            1   10     2   attImpl  Lorg/apache/lucene/util/AttributeImpl;
    Signature: <T::Lorg/apache/lucene/util/Attribute;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
          Name  Flags
      attClass  

  public final boolean hasAttributes();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 220
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/util/AttributeSource;

  public final boolean hasAttribute(java.lang.Class<? extends org.apache.lucene.util.Attribute>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // java.lang.Class attClass
         0: .line 228
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            aload 1 /* attClass */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class attClass
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/lucene/util/AttributeSource;
            0    1     1  attClass  Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;
    Signature: (Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;)Z
    MethodParameters:
          Name  Flags
      attClass  

  public final <T extends org.apache.lucene.util.Attribute> T getAttribute(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/apache/lucene/util/Attribute;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // java.lang.Class attClass
         0: .line 245
            aload 1 /* attClass */
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            aload 1 /* attClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.Attribute
            areturn
        end local 1 // java.lang.Class attClass
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/lucene/util/AttributeSource;
            0    1     1  attClass  Ljava/lang/Class<TT;>;
    Signature: <T::Lorg/apache/lucene/util/Attribute;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
          Name  Flags
      attClass  

  private org.apache.lucene.util.AttributeSource$State getCurrentState();
    descriptor: ()Lorg/apache/lucene/util/AttributeSource$State;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 249
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.currentState:[Lorg/apache/lucene/util/AttributeSource$State;
            iconst_0
            aaload
            astore 1 /* s */
        start local 1 // org.apache.lucene.util.AttributeSource$State s
         1: .line 250
            aload 1 /* s */
            ifnonnull 2
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.hasAttributes:()Z
            ifne 3
         2: .line 251
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 1 /* s */
            areturn
         3: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.currentState:[Lorg/apache/lucene/util/AttributeSource$State;
            iconst_0
            new org.apache.lucene.util.AttributeSource$State
            dup
            invokespecial org.apache.lucene.util.AttributeSource$State.<init>:()V
            dup_x2
            aastore
            dup
            astore 1 /* s */
            astore 2 /* c */
        start local 2 // org.apache.lucene.util.AttributeSource$State c
         4: .line 254
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
         5: .line 255
            aload 2 /* c */
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            putfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
         6: .line 256
            goto 10
         7: .line 257
      StackMap locals: org.apache.lucene.util.AttributeSource$State java.util.Iterator
      StackMap stack:
            aload 2 /* c */
            new org.apache.lucene.util.AttributeSource$State
            dup
            invokespecial org.apache.lucene.util.AttributeSource$State.<init>:()V
            putfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
         8: .line 258
            aload 2 /* c */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* c */
         9: .line 259
            aload 2 /* c */
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            putfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
        10: .line 256
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 261
            aload 1 /* s */
            areturn
        end local 3 // java.util.Iterator it
        end local 2 // org.apache.lucene.util.AttributeSource$State c
        end local 1 // org.apache.lucene.util.AttributeSource$State s
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/lucene/util/AttributeSource;
            1   12     1     s  Lorg/apache/lucene/util/AttributeSource$State;
            4   12     2     c  Lorg/apache/lucene/util/AttributeSource$State;
            5   12     3    it  Ljava/util/Iterator<Lorg/apache/lucene/util/AttributeImpl;>;

  public final void clearAttributes();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 269
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* state */
        start local 1 // org.apache.lucene.util.AttributeSource$State state
         1: goto 4
         2: .line 270
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual org.apache.lucene.util.AttributeImpl.clear:()V
         3: .line 269
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* state */
      StackMap locals:
      StackMap stack:
         4: aload 1 /* state */
            ifnonnull 2
        end local 1 // org.apache.lucene.util.AttributeSource$State state
         5: .line 272
            return
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/apache/lucene/util/AttributeSource;
            1    5     1  state  Lorg/apache/lucene/util/AttributeSource$State;

  public final void endAttributes();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 279
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* state */
        start local 1 // org.apache.lucene.util.AttributeSource$State state
         1: goto 4
         2: .line 280
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual org.apache.lucene.util.AttributeImpl.end:()V
         3: .line 279
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* state */
      StackMap locals:
      StackMap stack:
         4: aload 1 /* state */
            ifnonnull 2
        end local 1 // org.apache.lucene.util.AttributeSource$State state
         5: .line 282
            return
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/apache/lucene/util/AttributeSource;
            1    5     1  state  Lorg/apache/lucene/util/AttributeSource$State;

  public final void removeAllAttributes();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 288
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 289
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 290
            return
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/util/AttributeSource;

  public final org.apache.lucene.util.AttributeSource$State captureState();
    descriptor: ()Lorg/apache/lucene/util/AttributeSource$State;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 297
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* state */
        start local 1 // org.apache.lucene.util.AttributeSource$State state
         1: .line 298
            aload 1 /* state */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
         2: aload 1 /* state */
            invokevirtual org.apache.lucene.util.AttributeSource$State.clone:()Lorg/apache/lucene/util/AttributeSource$State;
      StackMap locals:
      StackMap stack: org.apache.lucene.util.AttributeSource$State
         3: areturn
        end local 1 // org.apache.lucene.util.AttributeSource$State state
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/apache/lucene/util/AttributeSource;
            1    4     1  state  Lorg/apache/lucene/util/AttributeSource$State;

  public final void restoreState(org.apache.lucene.util.AttributeSource$State);
    descriptor: (Lorg/apache/lucene/util/AttributeSource$State;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // org.apache.lucene.util.AttributeSource$State state
         0: .line 317
            aload 1 /* state */
            ifnonnull 1
            return
         1: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            astore 2 /* targetImpl */
        start local 2 // org.apache.lucene.util.AttributeImpl targetImpl
         2: .line 321
            aload 2 /* targetImpl */
            ifnonnull 6
         3: .line 322
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "State contains AttributeImpl of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 323
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " that is not in in this AttributeSource"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 322
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 325
      StackMap locals: org.apache.lucene.util.AttributeImpl
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            aload 2 /* targetImpl */
            invokevirtual org.apache.lucene.util.AttributeImpl.copyTo:(Lorg/apache/lucene/util/AttributeImpl;)V
         7: .line 326
            aload 1 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 1 /* state */
        end local 2 // org.apache.lucene.util.AttributeImpl targetImpl
         8: .line 327
            aload 1 /* state */
            ifnonnull 1
         9: .line 328
            return
        end local 1 // org.apache.lucene.util.AttributeSource$State state
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/apache/lucene/util/AttributeSource;
            0   10     1       state  Lorg/apache/lucene/util/AttributeSource$State;
            2    8     2  targetImpl  Lorg/apache/lucene/util/AttributeImpl;
    MethodParameters:
       Name  Flags
      state  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 332
            iconst_0
            istore 1 /* code */
        start local 1 // int code
         1: .line 333
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
        start local 2 // org.apache.lucene.util.AttributeSource$State state
         2: goto 5
         3: .line 334
      StackMap locals: int org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            iload 1 /* code */
            bipush 31
            imul
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            istore 1 /* code */
         4: .line 333
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
      StackMap locals:
      StackMap stack:
         5: aload 2 /* state */
            ifnonnull 3
        end local 2 // org.apache.lucene.util.AttributeSource$State state
         6: .line 336
            iload 1 /* code */
            ireturn
        end local 1 // int code
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/lucene/util/AttributeSource;
            1    7     1   code  I
            2    6     2  state  Lorg/apache/lucene/util/AttributeSource$State;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // java.lang.Object obj
         0: .line 341
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 342
            iconst_1
            ireturn
         2: .line 345
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.apache.lucene.util.AttributeSource
            ifeq 21
         3: .line 346
            aload 1 /* obj */
            checkcast org.apache.lucene.util.AttributeSource
            astore 2 /* other */
        start local 2 // org.apache.lucene.util.AttributeSource other
         4: .line 348
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.hasAttributes:()Z
            ifeq 18
         5: .line 349
            aload 2 /* other */
            invokevirtual org.apache.lucene.util.AttributeSource.hasAttributes:()Z
            ifne 7
         6: .line 350
            iconst_0
            ireturn
         7: .line 353
      StackMap locals: org.apache.lucene.util.AttributeSource
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            aload 2 /* other */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            if_icmpeq 9
         8: .line 354
            iconst_0
            ireturn
         9: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 3 /* thisState */
        start local 3 // org.apache.lucene.util.AttributeSource$State thisState
        10: .line 359
            aload 2 /* other */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 4 /* otherState */
        start local 4 // org.apache.lucene.util.AttributeSource$State otherState
        11: .line 360
            goto 16
        12: .line 361
      StackMap locals: org.apache.lucene.util.AttributeSource$State org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 4 /* otherState */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* thisState */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 13
            aload 4 /* otherState */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            aload 3 /* thisState */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 14
        13: .line 362
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        14: .line 364
      StackMap locals:
      StackMap stack:
            aload 3 /* thisState */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 3 /* thisState */
        15: .line 365
            aload 4 /* otherState */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 4 /* otherState */
        16: .line 360
      StackMap locals:
      StackMap stack:
            aload 3 /* thisState */
            ifnull 17
            aload 4 /* otherState */
            ifnonnull 12
        17: .line 367
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // org.apache.lucene.util.AttributeSource$State otherState
        end local 3 // org.apache.lucene.util.AttributeSource$State thisState
        18: .line 369
      StackMap locals:
      StackMap stack:
            aload 2 /* other */
            invokevirtual org.apache.lucene.util.AttributeSource.hasAttributes:()Z
            ifeq 19
            iconst_0
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: ireturn
        end local 2 // org.apache.lucene.util.AttributeSource other
        21: .line 372
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lorg/apache/lucene/util/AttributeSource;
            0   22     1         obj  Ljava/lang/Object;
            4   21     2       other  Lorg/apache/lucene/util/AttributeSource;
           10   18     3   thisState  Lorg/apache/lucene/util/AttributeSource$State;
           11   18     4  otherState  Lorg/apache/lucene/util/AttributeSource$State;
    MethodParameters:
      Name  Flags
      obj   

  public final java.lang.String reflectAsString(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // boolean prependAttClass
         0: .line 387
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         1: .line 388
            aload 0 /* this */
            new org.apache.lucene.util.AttributeSource$3
            dup
            aload 0 /* this */
            aload 2 /* buffer */
            iload 1 /* prependAttClass */
            invokespecial org.apache.lucene.util.AttributeSource$3.<init>:(Lorg/apache/lucene/util/AttributeSource;Ljava/lang/StringBuilder;Z)V
            invokevirtual org.apache.lucene.util.AttributeSource.reflectWith:(Lorg/apache/lucene/util/AttributeReflector;)V
         2: .line 400
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // boolean prependAttClass
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/apache/lucene/util/AttributeSource;
            0    3     1  prependAttClass  Z
            1    3     2           buffer  Ljava/lang/StringBuilder;
    MethodParameters:
                 Name  Flags
      prependAttClass  final

  public final void reflectWith(org.apache.lucene.util.AttributeReflector);
    descriptor: (Lorg/apache/lucene/util/AttributeReflector;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // org.apache.lucene.util.AttributeReflector reflector
         0: .line 413
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
        start local 2 // org.apache.lucene.util.AttributeSource$State state
         1: goto 4
         2: .line 414
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            aload 1 /* reflector */
            invokevirtual org.apache.lucene.util.AttributeImpl.reflectWith:(Lorg/apache/lucene/util/AttributeReflector;)V
         3: .line 413
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
      StackMap locals:
      StackMap stack:
         4: aload 2 /* state */
            ifnonnull 2
        end local 2 // org.apache.lucene.util.AttributeSource$State state
         5: .line 416
            return
        end local 1 // org.apache.lucene.util.AttributeReflector reflector
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/lucene/util/AttributeSource;
            0    6     1  reflector  Lorg/apache/lucene/util/AttributeReflector;
            1    5     2      state  Lorg/apache/lucene/util/AttributeSource$State;
    MethodParameters:
           Name  Flags
      reflector  

  public final org.apache.lucene.util.AttributeSource cloneAttributes();
    descriptor: ()Lorg/apache/lucene/util/AttributeSource;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 426
            new org.apache.lucene.util.AttributeSource
            dup
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.factory:Lorg/apache/lucene/util/AttributeFactory;
            invokespecial org.apache.lucene.util.AttributeSource.<init>:(Lorg/apache/lucene/util/AttributeFactory;)V
            astore 1 /* clone */
        start local 1 // org.apache.lucene.util.AttributeSource clone
         1: .line 428
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.hasAttributes:()Z
            ifeq 11
         2: .line 430
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
        start local 2 // org.apache.lucene.util.AttributeSource$State state
         3: goto 6
         4: .line 431
      StackMap locals: org.apache.lucene.util.AttributeSource org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 1 /* clone */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual org.apache.lucene.util.AttributeImpl.clone:()Lorg/apache/lucene/util/AttributeImpl;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 430
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
      StackMap locals:
      StackMap stack:
         6: aload 2 /* state */
            ifnonnull 4
        end local 2 // org.apache.lucene.util.AttributeSource$State state
         7: .line 435
            aload 0 /* this */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: org.apache.lucene.util.AttributeSource org.apache.lucene.util.AttributeSource top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         9: .line 436
            aload 1 /* clone */
            getfield org.apache.lucene.util.AttributeSource.attributes:Ljava/util/Map;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            aload 1 /* clone */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
        10: .line 435
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 440
      StackMap locals: org.apache.lucene.util.AttributeSource org.apache.lucene.util.AttributeSource
      StackMap stack:
            aload 1 /* clone */
            areturn
        end local 1 // org.apache.lucene.util.AttributeSource clone
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/apache/lucene/util/AttributeSource;
            1   12     1  clone  Lorg/apache/lucene/util/AttributeSource;
            3    7     2  state  Lorg/apache/lucene/util/AttributeSource$State;
            9   10     2  entry  Ljava/util/Map$Entry<Ljava/lang/Class<+Lorg/apache/lucene/util/Attribute;>;Lorg/apache/lucene/util/AttributeImpl;>;

  public final void copyTo(org.apache.lucene.util.AttributeSource);
    descriptor: (Lorg/apache/lucene/util/AttributeSource;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.apache.lucene.util.AttributeSource this
        start local 1 // org.apache.lucene.util.AttributeSource target
         0: .line 452
            aload 0 /* this */
            invokevirtual org.apache.lucene.util.AttributeSource.getCurrentState:()Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
        start local 2 // org.apache.lucene.util.AttributeSource$State state
         1: goto 9
         2: .line 453
      StackMap locals: org.apache.lucene.util.AttributeSource$State
      StackMap stack:
            aload 1 /* target */
            getfield org.apache.lucene.util.AttributeSource.attributeImpls:Ljava/util/Map;
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.util.AttributeImpl
            astore 3 /* targetImpl */
        start local 3 // org.apache.lucene.util.AttributeImpl targetImpl
         3: .line 454
            aload 3 /* targetImpl */
            ifnonnull 7
         4: .line 455
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "This AttributeSource contains AttributeImpl of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 456
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " that is not in the target"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 455
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 458
      StackMap locals: org.apache.lucene.util.AttributeImpl
      StackMap stack:
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.attribute:Lorg/apache/lucene/util/AttributeImpl;
            aload 3 /* targetImpl */
            invokevirtual org.apache.lucene.util.AttributeImpl.copyTo:(Lorg/apache/lucene/util/AttributeImpl;)V
        end local 3 // org.apache.lucene.util.AttributeImpl targetImpl
         8: .line 452
            aload 2 /* state */
            getfield org.apache.lucene.util.AttributeSource$State.next:Lorg/apache/lucene/util/AttributeSource$State;
            astore 2 /* state */
      StackMap locals:
      StackMap stack:
         9: aload 2 /* state */
            ifnonnull 2
        end local 2 // org.apache.lucene.util.AttributeSource$State state
        10: .line 460
            return
        end local 1 // org.apache.lucene.util.AttributeSource target
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/apache/lucene/util/AttributeSource;
            0   11     1      target  Lorg/apache/lucene/util/AttributeSource;
            1   10     2       state  Lorg/apache/lucene/util/AttributeSource$State;
            3    8     3  targetImpl  Lorg/apache/lucene/util/AttributeImpl;
    MethodParameters:
        Name  Flags
      target  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.AttributeSource this
         0: .line 469
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 64
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.lucene.util.AttributeSource.reflectAsString:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.lucene.util.AttributeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/AttributeSource;
}
SourceFile: "AttributeSource.java"
NestMembers:
  org.apache.lucene.util.AttributeSource$1  org.apache.lucene.util.AttributeSource$2  org.apache.lucene.util.AttributeSource$3  org.apache.lucene.util.AttributeSource$State
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.apache.lucene.util.AttributeSource$1
  org.apache.lucene.util.AttributeSource$2
  org.apache.lucene.util.AttributeSource$3
  public final State = org.apache.lucene.util.AttributeSource$State of org.apache.lucene.util.AttributeSource