public class org.aspectj.asm.internal.AspectJElementHierarchy implements org.aspectj.asm.IHierarchy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.asm.internal.AspectJElementHierarchy
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6462734311117048620

  private transient org.aspectj.asm.AsmManager asm;
    descriptor: Lorg/aspectj/asm/AsmManager;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  protected org.aspectj.asm.IProgramElement root;
    descriptor: Lorg/aspectj/asm/IProgramElement;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String configFile;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  private java.util.Map<java.lang.String, org.aspectj.asm.IProgramElement> fileMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;

  private java.util.Map<java.lang.String, org.aspectj.asm.IProgramElement> handleMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;

  private java.util.Map<java.lang.String, org.aspectj.asm.IProgramElement> typeMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;

  public void <init>(org.aspectj.asm.AsmManager);
    descriptor: (Lorg/aspectj/asm/AsmManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.AsmManager asm
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            aload 0 /* this */
            aconst_null
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
         2: .line 41
            aload 0 /* this */
            aconst_null
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.configFile:Ljava/lang/String;
         3: .line 45
            aload 0 /* this */
            aconst_null
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
         4: .line 46
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
         5: .line 47
            aload 0 /* this */
            aconst_null
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
         6: .line 50
            aload 0 /* this */
            aload 1 /* asm */
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
         7: .line 51
            return
        end local 1 // org.aspectj.asm.AsmManager asm
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    8     1   asm  Lorg/aspectj/asm/AsmManager;
    MethodParameters:
      Name  Flags
      asm   

  public org.aspectj.asm.IProgramElement getElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String handle
         0: .line 54
            aload 0 /* this */
            aload 1 /* handle */
            iconst_0
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForHandleOrCreate:(Ljava/lang/String;Z)Lorg/aspectj/asm/IProgramElement;
            areturn
        end local 1 // java.lang.String handle
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    1     1  handle  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      handle  

  public void setAsmManager(org.aspectj.asm.AsmManager);
    descriptor: (Lorg/aspectj/asm/AsmManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.AsmManager asm
         0: .line 58
            aload 0 /* this */
            aload 1 /* asm */
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
         1: .line 59
            return
        end local 1 // org.aspectj.asm.AsmManager asm
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    2     1   asm  Lorg/aspectj/asm/AsmManager;
    MethodParameters:
      Name  Flags
      asm   

  public org.aspectj.asm.IProgramElement getRoot();
    descriptor: ()Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 62
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            areturn
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;

  public java.lang.String toSummaryString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 66
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* s */
        start local 1 // java.lang.StringBuilder s
         1: .line 67
            aload 1 /* s */
            new java.lang.StringBuilder
            dup
            ldc "FileMap has "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 68
            aload 1 /* s */
            new java.lang.StringBuilder
            dup
            ldc "HandleMap has "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 69
            aload 1 /* s */
            new java.lang.StringBuilder
            dup
            ldc "TypeMap has "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 70
            aload 1 /* s */
            ldc "FileMap:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 71
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* fileMapEntry */
        start local 2 // java.util.Map$Entry fileMapEntry
         7: .line 72
            aload 1 /* s */
            aload 2 /* fileMapEntry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.util.Map$Entry fileMapEntry
         8: .line 71
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 74
            aload 1 /* s */
            ldc "TypeMap:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 75
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* typeMapEntry */
        start local 2 // java.util.Map$Entry typeMapEntry
        12: .line 76
            aload 1 /* s */
            aload 2 /* typeMapEntry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.util.Map$Entry typeMapEntry
        13: .line 75
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 78
            aload 1 /* s */
            ldc "HandleMap:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 79
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 18
      StackMap locals:
      StackMap stack:
        16: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* handleMapEntry */
        start local 2 // java.util.Map$Entry handleMapEntry
        17: .line 80
            aload 1 /* s */
            aload 2 /* handleMapEntry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.util.Map$Entry handleMapEntry
        18: .line 79
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 82
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder s
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            1   20     1               s  Ljava/lang/StringBuilder;
            7    8     2    fileMapEntry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;
           12   13     2    typeMapEntry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;
           17   18     2  handleMapEntry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;

  public void setRoot(org.aspectj.asm.IProgramElement);
    descriptor: (Lorg/aspectj/asm/IProgramElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement root
         0: .line 86
            aload 0 /* this */
            aload 1 /* root */
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
         1: .line 87
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
         2: .line 88
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
         3: .line 89
            return
        end local 1 // org.aspectj.asm.IProgramElement root
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    4     1  root  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
      Name  Flags
      root  

  public void addToFileMap(java.lang.String, org.aspectj.asm.IProgramElement);
    descriptor: (Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String key
        start local 2 // org.aspectj.asm.IProgramElement value
         0: .line 92
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 93
            return
        end local 2 // org.aspectj.asm.IProgramElement value
        end local 1 // java.lang.String key
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    2     1    key  Ljava/lang/String;
            0    2     2  value  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
       Name  Flags
      key    
      value  

  public boolean removeFromFileMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String canonicalFilePath
         0: .line 96
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            aload 1 /* canonicalFilePath */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String canonicalFilePath
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    2     1  canonicalFilePath  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      canonicalFilePath  

  public void setFileMap(java.util.HashMap<java.lang.String, org.aspectj.asm.IProgramElement>);
    descriptor: (Ljava/util/HashMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.util.HashMap fileMap
         0: .line 100
            aload 0 /* this */
            aload 1 /* fileMap */
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
         1: .line 101
            return
        end local 1 // java.util.HashMap fileMap
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    2     1  fileMap  Ljava/util/HashMap<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;
    Signature: (Ljava/util/HashMap<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;)V
    MethodParameters:
         Name  Flags
      fileMap  

  public java.lang.Object findInFileMap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.Object key
         0: .line 104
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public java.util.Set<java.util.Map$Entry<java.lang.String, org.aspectj.asm.IProgramElement>> getFileMapEntrySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 108
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            areturn
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
    Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;>;

  public boolean isValid();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 112
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            ifnull 1
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;

  public org.aspectj.asm.IProgramElement findElementForSignature(org.aspectj.asm.IProgramElement, org.aspectj.asm.IProgramElement$Kind, java.lang.String);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Lorg/aspectj/asm/IProgramElement$Kind;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement parent
        start local 2 // org.aspectj.asm.IProgramElement$Kind kind
        start local 3 // java.lang.String signature
         0: .line 123
            aload 1 /* parent */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement$Kind java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 4 /* node */
        start local 4 // org.aspectj.asm.IProgramElement node
         2: .line 124
            aload 4 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            aload 2 /* kind */
            if_acmpne 4
            aload 3 /* signature */
            aload 4 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.toSignatureString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 125
            aload 4 /* node */
            areturn
         4: .line 127
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement$Kind java.lang.String org.aspectj.asm.IProgramElement java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 4 /* node */
            aload 2 /* kind */
            aload 3 /* signature */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForSignature:(Lorg/aspectj/asm/IProgramElement;Lorg/aspectj/asm/IProgramElement$Kind;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 6 /* childSearch */
        start local 6 // org.aspectj.asm.IProgramElement childSearch
         5: .line 128
            aload 6 /* childSearch */
            ifnull 7
         6: .line 129
            aload 6 /* childSearch */
            areturn
        end local 6 // org.aspectj.asm.IProgramElement childSearch
        end local 4 // org.aspectj.asm.IProgramElement node
         7: .line 123
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement$Kind java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 133
            aconst_null
            areturn
        end local 3 // java.lang.String signature
        end local 2 // org.aspectj.asm.IProgramElement$Kind kind
        end local 1 // org.aspectj.asm.IProgramElement parent
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    9     1       parent  Lorg/aspectj/asm/IProgramElement;
            0    9     2         kind  Lorg/aspectj/asm/IProgramElement$Kind;
            0    9     3    signature  Ljava/lang/String;
            2    7     4         node  Lorg/aspectj/asm/IProgramElement;
            5    7     6  childSearch  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
           Name  Flags
      parent     
      kind       
      signature  

  public org.aspectj.asm.IProgramElement findElementForLabel(org.aspectj.asm.IProgramElement, org.aspectj.asm.IProgramElement$Kind, java.lang.String);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Lorg/aspectj/asm/IProgramElement$Kind;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement parent
        start local 2 // org.aspectj.asm.IProgramElement$Kind kind
        start local 3 // java.lang.String label
         0: .line 137
            aload 1 /* parent */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement$Kind java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 4 /* node */
        start local 4 // org.aspectj.asm.IProgramElement node
         2: .line 138
            aload 4 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            aload 2 /* kind */
            if_acmpne 4
            aload 3 /* label */
            aload 4 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.toLabelString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 139
            aload 4 /* node */
            areturn
         4: .line 141
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement$Kind java.lang.String org.aspectj.asm.IProgramElement java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 4 /* node */
            aload 2 /* kind */
            aload 3 /* label */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForLabel:(Lorg/aspectj/asm/IProgramElement;Lorg/aspectj/asm/IProgramElement$Kind;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 6 /* childSearch */
        start local 6 // org.aspectj.asm.IProgramElement childSearch
         5: .line 142
            aload 6 /* childSearch */
            ifnull 7
         6: .line 143
            aload 6 /* childSearch */
            areturn
        end local 6 // org.aspectj.asm.IProgramElement childSearch
        end local 4 // org.aspectj.asm.IProgramElement node
         7: .line 137
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement$Kind java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 147
            aconst_null
            areturn
        end local 3 // java.lang.String label
        end local 2 // org.aspectj.asm.IProgramElement$Kind kind
        end local 1 // org.aspectj.asm.IProgramElement parent
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    9     1       parent  Lorg/aspectj/asm/IProgramElement;
            0    9     2         kind  Lorg/aspectj/asm/IProgramElement$Kind;
            0    9     3        label  Ljava/lang/String;
            2    7     4         node  Lorg/aspectj/asm/IProgramElement;
            5    7     6  childSearch  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
        Name  Flags
      parent  
      kind    
      label   

  public org.aspectj.asm.IProgramElement findElementForType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String typeName
         0: .line 159
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 161
            aload 1 /* packageName */
            ifnonnull 2
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            goto 3
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy
      StackMap stack:
         2: new java.lang.StringBuilder
            dup
            aload 1 /* packageName */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: astore 4 /* keyb */
        start local 4 // java.lang.StringBuilder keyb
         4: .line 162
            aload 4 /* keyb */
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 163
            aload 4 /* keyb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* key */
        start local 5 // java.lang.String key
         6: .line 164
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            aload 5 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 6 /* cachedValue */
        start local 6 // org.aspectj.asm.IProgramElement cachedValue
         7: .line 165
            aload 6 /* cachedValue */
            ifnull 10
         8: .line 166
            aload 6 /* cachedValue */
            aload 3
            monitorexit
         9: areturn
        10: .line 169
      StackMap locals: java.lang.StringBuilder java.lang.String org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 0 /* this */
            aload 1 /* packageName */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findMatchingPackages:(Ljava/lang/String;)Ljava/util/List;
            astore 7 /* packageNodes */
        start local 7 // java.util.List packageNodes
        11: .line 171
            aload 7 /* packageNodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 21
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.lang.String org.aspectj.asm.internal.AspectJElementHierarchy java.lang.StringBuilder java.lang.String org.aspectj.asm.IProgramElement java.util.List top java.util.Iterator
      StackMap stack:
        12: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 8 /* pkg */
        start local 8 // org.aspectj.asm.IProgramElement pkg
        13: .line 173
            aload 8 /* pkg */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 20
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.lang.String org.aspectj.asm.internal.AspectJElementHierarchy java.lang.StringBuilder java.lang.String org.aspectj.asm.IProgramElement java.util.List org.aspectj.asm.IProgramElement java.util.Iterator top java.util.Iterator
      StackMap stack:
        14: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 10 /* fileNode */
        start local 10 // org.aspectj.asm.IProgramElement fileNode
        15: .line 174
            aload 0 /* this */
            aload 10 /* fileNode */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            aload 2 /* typeName */
            aload 2 /* typeName */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findClassInNodes:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 12 /* cNode */
        start local 12 // org.aspectj.asm.IProgramElement cNode
        16: .line 175
            aload 12 /* cNode */
            ifnull 20
        17: .line 176
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            aload 5 /* key */
            aload 12 /* cNode */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 177
            aload 12 /* cNode */
            aload 3
            monitorexit
        19: areturn
        end local 12 // org.aspectj.asm.IProgramElement cNode
        end local 10 // org.aspectj.asm.IProgramElement fileNode
        20: .line 173
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 8 // org.aspectj.asm.IProgramElement pkg
        21: .line 171
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.lang.String org.aspectj.asm.internal.AspectJElementHierarchy java.lang.StringBuilder java.lang.String org.aspectj.asm.IProgramElement java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 7 // java.util.List packageNodes
        end local 6 // org.aspectj.asm.IProgramElement cachedValue
        end local 5 // java.lang.String key
        end local 4 // java.lang.StringBuilder keyb
        22: .line 159
            aload 3
            monitorexit
        23: goto 26
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.lang.String org.aspectj.asm.internal.AspectJElementHierarchy
      StackMap stack: java.lang.Throwable
        24: aload 3
            monitorexit
        25: athrow
        26: .line 182
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String typeName
        end local 1 // java.lang.String packageName
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0          this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   27     1   packageName  Ljava/lang/String;
            0   27     2      typeName  Ljava/lang/String;
            4   22     4          keyb  Ljava/lang/StringBuilder;
            6   22     5           key  Ljava/lang/String;
            7   22     6   cachedValue  Lorg/aspectj/asm/IProgramElement;
           11   22     7  packageNodes  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
           13   21     8           pkg  Lorg/aspectj/asm/IProgramElement;
           15   20    10      fileNode  Lorg/aspectj/asm/IProgramElement;
           16   20    12         cNode  Lorg/aspectj/asm/IProgramElement;
      Exception table:
        from    to  target  type
           1     9      24  any
          10    19      24  any
          20    23      24  any
          24    25      24  any
    MethodParameters:
             Name  Flags
      packageName  
      typeName     

  public java.util.List<org.aspectj.asm.IProgramElement> findMatchingPackages(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=10, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String packagename
         0: .line 225
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            astore 2 /* children */
        start local 2 // java.util.List children
         1: .line 227
            aload 2 /* children */
            invokeinterface java.util.List.size:()I
            ifne 3
         2: .line 228
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 230
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* children */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            getstatic org.aspectj.asm.IProgramElement$Kind.SOURCE_FOLDER:Lorg/aspectj/asm/IProgramElement$Kind;
            if_acmpne 19
         4: .line 231
            aload 1 /* packagename */
            ifnonnull 5
            ldc ""
            goto 6
      StackMap locals:
      StackMap stack:
         5: aload 1 /* packagename */
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 3 /* searchPackageName */
        start local 3 // java.lang.String searchPackageName
         7: .line 233
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* matchingPackageNodes */
        start local 4 // java.util.List matchingPackageNodes
         8: .line 234
            aload 2 /* children */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 17
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 5 /* sourceFolder */
        start local 5 // org.aspectj.asm.IProgramElement sourceFolder
        10: .line 235
            aload 5 /* sourceFolder */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            astore 7 /* possiblePackageNodes */
        start local 7 // java.util.List possiblePackageNodes
        11: .line 236
            aload 7 /* possiblePackageNodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 16
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.lang.String java.util.List org.aspectj.asm.IProgramElement java.util.Iterator java.util.List top java.util.Iterator
      StackMap stack:
        12: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 8 /* possiblePackageNode */
        start local 8 // org.aspectj.asm.IProgramElement possiblePackageNode
        13: .line 237
            aload 8 /* possiblePackageNode */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            getstatic org.aspectj.asm.IProgramElement$Kind.PACKAGE:Lorg/aspectj/asm/IProgramElement$Kind;
            if_acmpne 16
        14: .line 238
            aload 8 /* possiblePackageNode */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            aload 3 /* searchPackageName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 239
            aload 4 /* matchingPackageNodes */
            aload 8 /* possiblePackageNode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.aspectj.asm.IProgramElement possiblePackageNode
        16: .line 236
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 7 // java.util.List possiblePackageNodes
        end local 5 // org.aspectj.asm.IProgramElement sourceFolder
        17: .line 234
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        18: .line 245
            aload 4 /* matchingPackageNodes */
            areturn
        end local 4 // java.util.List matchingPackageNodes
        end local 3 // java.lang.String searchPackageName
        19: .line 249
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List
      StackMap stack:
            aload 1 /* packagename */
            ifnonnull 23
        20: .line 251
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.List result
        21: .line 252
            aload 3 /* result */
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 253
            aload 3 /* result */
            areturn
        end local 3 // java.util.List result
        23: .line 255
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.List result
        24: .line 256
            aload 2 /* children */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 37
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        25: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 4 /* possiblePackage */
        start local 4 // org.aspectj.asm.IProgramElement possiblePackage
        26: .line 257
            aload 4 /* possiblePackage */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            getstatic org.aspectj.asm.IProgramElement$Kind.PACKAGE:Lorg/aspectj/asm/IProgramElement$Kind;
            if_acmpne 28
            aload 4 /* possiblePackage */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            aload 1 /* packagename */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 258
            aload 3 /* result */
            aload 4 /* possiblePackage */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 260
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.util.List org.aspectj.asm.IProgramElement java.util.Iterator
      StackMap stack:
            aload 4 /* possiblePackage */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            getstatic org.aspectj.asm.IProgramElement$Kind.SOURCE_FOLDER:Lorg/aspectj/asm/IProgramElement$Kind;
            if_acmpne 37
        29: .line 261
            aload 4 /* possiblePackage */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            ldc "binaries"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        30: .line 262
            aload 4 /* possiblePackage */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 36
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.util.List org.aspectj.asm.IProgramElement java.util.Iterator top java.util.Iterator
      StackMap stack:
        31: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 6 /* possiblePackage2 */
        start local 6 // org.aspectj.asm.IProgramElement possiblePackage2
        32: .line 263
            aload 6 /* possiblePackage2 */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            getstatic org.aspectj.asm.IProgramElement$Kind.PACKAGE:Lorg/aspectj/asm/IProgramElement$Kind;
            if_acmpne 36
        33: .line 264
            aload 6 /* possiblePackage2 */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            aload 1 /* packagename */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        34: .line 265
            aload 3 /* result */
            aload 6 /* possiblePackage2 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        35: .line 266
            goto 37
        end local 6 // org.aspectj.asm.IProgramElement possiblePackage2
        36: .line 262
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        end local 4 // org.aspectj.asm.IProgramElement possiblePackage
        37: .line 256
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        38: .line 272
            aload 3 /* result */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 40
        39: .line 273
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        40: .line 275
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.List java.util.List
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.util.List result
        end local 2 // java.util.List children
        end local 1 // java.lang.String packagename
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   41     0                  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   41     1           packagename  Ljava/lang/String;
            1   41     2              children  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
            7   19     3     searchPackageName  Ljava/lang/String;
            8   19     4  matchingPackageNodes  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
           10   17     5          sourceFolder  Lorg/aspectj/asm/IProgramElement;
           11   17     7  possiblePackageNodes  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
           13   16     8   possiblePackageNode  Lorg/aspectj/asm/IProgramElement;
           21   23     3                result  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
           24   41     3                result  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
           26   37     4       possiblePackage  Lorg/aspectj/asm/IProgramElement;
           32   36     6      possiblePackage2  Lorg/aspectj/asm/IProgramElement;
    Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
    MethodParameters:
             Name  Flags
      packagename  

  private org.aspectj.asm.IProgramElement findClassInNodes(java.util.Collection<org.aspectj.asm.IProgramElement>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.util.Collection nodes
        start local 2 // java.lang.String name
        start local 3 // java.lang.String typeName
         0: .line 283
            aload 2 /* name */
            bipush 36
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* dollar */
        start local 6 // int dollar
         1: .line 284
            iload 6 /* dollar */
            iconst_m1
            if_icmpne 5
         2: .line 285
            aload 2 /* name */
            astore 4 /* baseName */
        start local 4 // java.lang.String baseName
         3: .line 286
            aconst_null
            astore 5 /* innerName */
        start local 5 // java.lang.String innerName
         4: .line 287
            goto 7
        end local 5 // java.lang.String innerName
        end local 4 // java.lang.String baseName
         5: .line 288
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Collection java.lang.String java.lang.String top top int
      StackMap stack:
            aload 2 /* name */
            iconst_0
            iload 6 /* dollar */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* baseName */
        start local 4 // java.lang.String baseName
         6: .line 289
            aload 2 /* name */
            iload 6 /* dollar */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* innerName */
        start local 5 // java.lang.String innerName
         7: .line 292
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Collection java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* nodes */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 27
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Collection java.lang.String java.lang.String java.lang.String java.lang.String int top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 7 /* classNode */
        start local 7 // org.aspectj.asm.IProgramElement classNode
         9: .line 293
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            invokevirtual org.aspectj.asm.IProgramElement$Kind.isType:()Z
            ifne 15
        10: .line 294
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            astore 9 /* kids */
        start local 9 // java.util.List kids
        11: .line 295
            aload 9 /* kids */
            ifnull 27
            aload 9 /* kids */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 27
        12: .line 296
            aload 0 /* this */
            aload 9 /* kids */
            aload 2 /* name */
            aload 3 /* typeName */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findClassInNodes:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 10 /* node */
        start local 10 // org.aspectj.asm.IProgramElement node
        13: .line 297
            aload 10 /* node */
            ifnull 27
        14: .line 298
            aload 10 /* node */
            areturn
        end local 10 // org.aspectj.asm.IProgramElement node
        end local 9 // java.util.List kids
        15: .line 302
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Collection java.lang.String java.lang.String java.lang.String java.lang.String int org.aspectj.asm.IProgramElement java.util.Iterator
      StackMap stack:
            aload 4 /* baseName */
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        16: .line 303
            aload 5 /* innerName */
            ifnonnull 18
        17: .line 304
            aload 7 /* classNode */
            areturn
        18: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            aload 5 /* innerName */
            aload 3 /* typeName */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findClassInNodes:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            areturn
        19: .line 308
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 309
            aload 7 /* classNode */
            areturn
        21: .line 310
      StackMap locals:
      StackMap stack:
            aload 3 /* typeName */
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getBytecodeSignature:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 311
            aload 7 /* classNode */
            areturn
        23: .line 312
      StackMap locals:
      StackMap stack:
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            ifnull 27
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 27
        24: .line 313
            aload 0 /* this */
            aload 7 /* classNode */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            aload 2 /* name */
            aload 3 /* typeName */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findClassInNodes:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 9 /* node */
        start local 9 // org.aspectj.asm.IProgramElement node
        25: .line 314
            aload 9 /* node */
            ifnull 27
        26: .line 315
            aload 9 /* node */
            areturn
        end local 9 // org.aspectj.asm.IProgramElement node
        end local 7 // org.aspectj.asm.IProgramElement classNode
        27: .line 292
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Collection java.lang.String java.lang.String java.lang.String java.lang.String int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        28: .line 320
            aconst_null
            areturn
        end local 6 // int dollar
        end local 5 // java.lang.String innerName
        end local 4 // java.lang.String baseName
        end local 3 // java.lang.String typeName
        end local 2 // java.lang.String name
        end local 1 // java.util.Collection nodes
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0       this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   29     1      nodes  Ljava/util/Collection<Lorg/aspectj/asm/IProgramElement;>;
            0   29     2       name  Ljava/lang/String;
            0   29     3   typeName  Ljava/lang/String;
            3    5     4   baseName  Ljava/lang/String;
            6   29     4   baseName  Ljava/lang/String;
            4    5     5  innerName  Ljava/lang/String;
            7   29     5  innerName  Ljava/lang/String;
            1   29     6     dollar  I
            9   27     7  classNode  Lorg/aspectj/asm/IProgramElement;
           11   15     9       kids  Ljava/util/List<Lorg/aspectj/asm/IProgramElement;>;
           13   15    10       node  Lorg/aspectj/asm/IProgramElement;
           25   27     9       node  Lorg/aspectj/asm/IProgramElement;
    Signature: (Ljava/util/Collection<Lorg/aspectj/asm/IProgramElement;>;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
          Name  Flags
      nodes     
      name      
      typeName  

  public org.aspectj.asm.IProgramElement findElementForSourceFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String sourceFile
         0: .line 329
            aload 0 /* this */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.isValid:()Z
            ifeq 1
            aload 1 /* sourceFile */
            ifnonnull 3
         1: .line 330
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.asm.IHierarchy.NO_STRUCTURE:Lorg/aspectj/asm/IProgramElement;
         2: areturn
         3: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            new java.io.File
            dup
            aload 1 /* sourceFile */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual org.aspectj.asm.AsmManager.getCanonicalFilePath:(Ljava/io/File;)Ljava/lang/String;
            astore 2 /* correctedPath */
        start local 2 // java.lang.String correctedPath
         4: .line 334
            aload 0 /* this */
            aload 2 /* correctedPath */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findInFileMap:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 3 /* node */
        start local 3 // org.aspectj.asm.IProgramElement node
         5: .line 335
            aload 3 /* node */
            ifnull 8
         6: .line 336
            aload 3 /* node */
         7: areturn
         8: .line 338
      StackMap locals: java.lang.String org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 0 /* this */
            aload 2 /* correctedPath */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.createFileStructureNode:(Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
         9: areturn
        end local 3 // org.aspectj.asm.IProgramElement node
        end local 2 // java.lang.String correctedPath
        10: .line 341
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String
      StackMap stack: java.lang.Exception
            pop
        11: .line 342
            getstatic org.aspectj.asm.IHierarchy.NO_STRUCTURE:Lorg/aspectj/asm/IProgramElement;
            areturn
        end local 1 // java.lang.String sourceFile
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   12     1     sourceFile  Ljava/lang/String;
            4   10     2  correctedPath  Ljava/lang/String;
            5   10     3           node  Lorg/aspectj/asm/IProgramElement;
      Exception table:
        from    to  target  type
           0     2      10  Class java.lang.Exception
           3     7      10  Class java.lang.Exception
           8     9      10  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      sourceFile  

  public org.aspectj.asm.IProgramElement findElementForSourceLine(org.aspectj.bridge.ISourceLocation);
    descriptor: (Lorg/aspectj/bridge/ISourceLocation;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.bridge.ISourceLocation location
         0: .line 351
            aload 0 /* this */
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            aload 1 /* location */
            invokeinterface org.aspectj.bridge.ISourceLocation.getSourceFile:()Ljava/io/File;
            invokevirtual org.aspectj.asm.AsmManager.getCanonicalFilePath:(Ljava/io/File;)Ljava/lang/String;
            aload 1 /* location */
            invokeinterface org.aspectj.bridge.ISourceLocation.getLine:()I
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForSourceLine:(Ljava/lang/String;I)Lorg/aspectj/asm/IProgramElement;
         1: areturn
         2: .line 352
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         3: .line 353
            aconst_null
            areturn
        end local 1 // org.aspectj.bridge.ISourceLocation location
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    4     1  location  Lorg/aspectj/bridge/ISourceLocation;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      location  

  public org.aspectj.asm.IProgramElement findElementForSourceLine(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String sourceFilePath
        start local 2 // int lineNumber
         0: .line 365
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            new java.io.File
            dup
            aload 1 /* sourceFilePath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual org.aspectj.asm.AsmManager.getCanonicalFilePath:(Ljava/io/File;)Ljava/lang/String;
            astore 3 /* canonicalSFP */
        start local 3 // java.lang.String canonicalSFP
         1: .line 370
            aload 0 /* this */
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            aload 3 /* canonicalSFP */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findNodeForSourceFile:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 4 /* node */
        start local 4 // org.aspectj.asm.IProgramElement node
         2: .line 371
            aload 4 /* node */
            ifnonnull 4
         3: .line 372
            aload 0 /* this */
            aload 1 /* sourceFilePath */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.createFileStructureNode:(Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            areturn
         4: .line 376
      StackMap locals: java.lang.String org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 0 /* this */
            aload 4 /* node */
            iload 2 /* lineNumber */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findCloserMatchForLineNumber:(Lorg/aspectj/asm/IProgramElement;I)Lorg/aspectj/asm/IProgramElement;
            astore 5 /* closernode */
        start local 5 // org.aspectj.asm.IProgramElement closernode
         5: .line 377
            aload 5 /* closernode */
            ifnonnull 7
         6: .line 378
            aload 4 /* node */
            areturn
         7: .line 380
      StackMap locals: org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 5 /* closernode */
            areturn
        end local 5 // org.aspectj.asm.IProgramElement closernode
        end local 4 // org.aspectj.asm.IProgramElement node
        end local 3 // java.lang.String canonicalSFP
        end local 2 // int lineNumber
        end local 1 // java.lang.String sourceFilePath
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    8     1  sourceFilePath  Ljava/lang/String;
            0    8     2      lineNumber  I
            1    8     3    canonicalSFP  Ljava/lang/String;
            2    8     4            node  Lorg/aspectj/asm/IProgramElement;
            5    8     5      closernode  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                Name  Flags
      sourceFilePath  
      lineNumber      

  public org.aspectj.asm.IProgramElement findNodeForSourceFile(org.aspectj.asm.IProgramElement, java.lang.String);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement node
        start local 2 // java.lang.String sourcefilePath
         0: .line 394
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            invokevirtual org.aspectj.asm.IProgramElement$Kind.isSourceFile:()Z
            ifeq 1
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getName:()Ljava/lang/String;
            ldc "<root>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            invokevirtual org.aspectj.asm.IProgramElement$Kind.isFile:()Z
            ifeq 6
         2: .line 395
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getSourceLocation:()Lorg/aspectj/bridge/ISourceLocation;
            astore 3 /* nodeLoc */
        start local 3 // org.aspectj.bridge.ISourceLocation nodeLoc
         3: .line 396
            aload 3 /* nodeLoc */
            ifnull 5
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            aload 3 /* nodeLoc */
            invokeinterface org.aspectj.bridge.ISourceLocation.getSourceFile:()Ljava/io/File;
            invokevirtual org.aspectj.asm.AsmManager.getCanonicalFilePath:(Ljava/io/File;)Ljava/lang/String;
            aload 2 /* sourcefilePath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 397
            aload 1 /* node */
            areturn
         5: .line 399
      StackMap locals: org.aspectj.bridge.ISourceLocation
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.aspectj.bridge.ISourceLocation nodeLoc
         6: .line 402
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 3 /* child */
        start local 3 // org.aspectj.asm.IProgramElement child
         8: .line 403
            aload 0 /* this */
            aload 3 /* child */
            aload 2 /* sourcefilePath */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findNodeForSourceFile:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 5 /* foundit */
        start local 5 // org.aspectj.asm.IProgramElement foundit
         9: .line 404
            aload 5 /* foundit */
            ifnull 11
        10: .line 405
            aload 5 /* foundit */
            areturn
        end local 5 // org.aspectj.asm.IProgramElement foundit
        end local 3 // org.aspectj.asm.IProgramElement child
        11: .line 402
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 408
            aconst_null
            areturn
        end local 2 // java.lang.String sourcefilePath
        end local 1 // org.aspectj.asm.IProgramElement node
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   13     1            node  Lorg/aspectj/asm/IProgramElement;
            0   13     2  sourcefilePath  Ljava/lang/String;
            3    6     3         nodeLoc  Lorg/aspectj/bridge/ISourceLocation;
            8   11     3           child  Lorg/aspectj/asm/IProgramElement;
            9   11     5         foundit  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                Name  Flags
      node            
      sourcefilePath  

  public org.aspectj.asm.IProgramElement findElementForOffSet(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String sourceFilePath
        start local 2 // int lineNumber
        start local 3 // int offSet
         0: .line 413
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            new java.io.File
            dup
            aload 1 /* sourceFilePath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual org.aspectj.asm.AsmManager.getCanonicalFilePath:(Ljava/io/File;)Ljava/lang/String;
            astore 4 /* canonicalSFP */
        start local 4 // java.lang.String canonicalSFP
         1: .line 414
            aload 0 /* this */
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            aload 4 /* canonicalSFP */
            iload 2 /* lineNumber */
            iload 3 /* offSet */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findNodeForSourceLineHelper:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Lorg/aspectj/asm/IProgramElement;
            astore 5 /* node */
        start local 5 // org.aspectj.asm.IProgramElement node
         2: .line 415
            aload 5 /* node */
            ifnull 4
         3: .line 416
            aload 5 /* node */
            areturn
         4: .line 418
      StackMap locals: java.lang.String org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sourceFilePath */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.createFileStructureNode:(Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            areturn
        end local 5 // org.aspectj.asm.IProgramElement node
        end local 4 // java.lang.String canonicalSFP
        end local 3 // int offSet
        end local 2 // int lineNumber
        end local 1 // java.lang.String sourceFilePath
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    5     1  sourceFilePath  Ljava/lang/String;
            0    5     2      lineNumber  I
            0    5     3          offSet  I
            1    5     4    canonicalSFP  Ljava/lang/String;
            2    5     5            node  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                Name  Flags
      sourceFilePath  
      lineNumber      
      offSet          

  private org.aspectj.asm.IProgramElement createFileStructureNode(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String sourceFilePath
         0: .line 424
            aload 1 /* sourceFilePath */
            bipush 92
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* lastSlash */
        start local 2 // int lastSlash
         1: .line 425
            iload 2 /* lastSlash */
            iconst_m1
            if_icmpne 3
         2: .line 426
            aload 1 /* sourceFilePath */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* lastSlash */
         3: .line 429
      StackMap locals: int
      StackMap stack:
            aload 1 /* sourceFilePath */
            bipush 33
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* i */
        start local 3 // int i
         4: .line 430
            aload 1 /* sourceFilePath */
            ldc ".class"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* j */
        start local 4 // int j
         5: .line 431
            iload 3 /* i */
            iload 2 /* lastSlash */
            if_icmple 7
            iload 3 /* i */
            iconst_m1
            if_icmpeq 7
            iload 4 /* j */
            iconst_m1
            if_icmpeq 7
         6: .line 433
            iload 3 /* i */
            istore 2 /* lastSlash */
         7: .line 435
      StackMap locals: int int
      StackMap stack:
            aload 1 /* sourceFilePath */
            iload 2 /* lastSlash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* fileName */
        start local 5 // java.lang.String fileName
         8: .line 436
            new org.aspectj.asm.internal.ProgramElement
            dup
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            aload 5 /* fileName */
            getstatic org.aspectj.asm.IProgramElement$Kind.FILE_JAVA:Lorg/aspectj/asm/IProgramElement$Kind;
            new org.aspectj.bridge.SourceLocation
            dup
            new java.io.File
            dup
         9: .line 437
            aload 1 /* sourceFilePath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            iconst_1
            iconst_1
            invokespecial org.aspectj.bridge.SourceLocation.<init>:(Ljava/io/File;II)V
            iconst_0
            aconst_null
            aconst_null
        10: .line 436
            invokespecial org.aspectj.asm.internal.ProgramElement.<init>:(Lorg/aspectj/asm/AsmManager;Ljava/lang/String;Lorg/aspectj/asm/IProgramElement$Kind;Lorg/aspectj/bridge/ISourceLocation;ILjava/lang/String;Ljava/util/List;)V
            astore 6 /* fileNode */
        start local 6 // org.aspectj.asm.IProgramElement fileNode
        11: .line 439
            aload 6 /* fileNode */
            getstatic org.aspectj.asm.internal.AspectJElementHierarchy.NO_STRUCTURE:Lorg/aspectj/asm/IProgramElement;
            invokeinterface org.aspectj.asm.IProgramElement.addChild:(Lorg/aspectj/asm/IProgramElement;)V
        12: .line 440
            aload 6 /* fileNode */
            areturn
        end local 6 // org.aspectj.asm.IProgramElement fileNode
        end local 5 // java.lang.String fileName
        end local 4 // int j
        end local 3 // int i
        end local 2 // int lastSlash
        end local 1 // java.lang.String sourceFilePath
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   13     1  sourceFilePath  Ljava/lang/String;
            1   13     2       lastSlash  I
            4   13     3               i  I
            5   13     4               j  I
            8   13     5        fileName  Ljava/lang/String;
           11   13     6        fileNode  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                Name  Flags
      sourceFilePath  

  public org.aspectj.asm.IProgramElement findCloserMatchForLineNumber(org.aspectj.asm.IProgramElement, int);
    descriptor: (Lorg/aspectj/asm/IProgramElement;I)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement node
        start local 2 // int lineno
         0: .line 451
            aload 1 /* node */
            ifnull 1
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            ifnonnull 2
         1: .line 452
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 454
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 3 /* child */
        start local 3 // org.aspectj.asm.IProgramElement child
         4: .line 455
            aload 3 /* child */
            invokeinterface org.aspectj.asm.IProgramElement.getSourceLocation:()Lorg/aspectj/bridge/ISourceLocation;
            astore 5 /* childLoc */
        start local 5 // org.aspectj.bridge.ISourceLocation childLoc
         5: .line 456
            aload 5 /* childLoc */
            ifnull 15
         6: .line 457
            aload 5 /* childLoc */
            invokeinterface org.aspectj.bridge.ISourceLocation.getLine:()I
            iload 2 /* lineno */
            if_icmpgt 11
            aload 5 /* childLoc */
            invokeinterface org.aspectj.bridge.ISourceLocation.getEndLine:()I
            iload 2 /* lineno */
            if_icmplt 11
         7: .line 459
            aload 0 /* this */
            aload 3 /* child */
            iload 2 /* lineno */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findCloserMatchForLineNumber:(Lorg/aspectj/asm/IProgramElement;I)Lorg/aspectj/asm/IProgramElement;
            astore 6 /* evenCloserMatch */
        start local 6 // org.aspectj.asm.IProgramElement evenCloserMatch
         8: .line 460
            aload 6 /* evenCloserMatch */
            ifnonnull 10
         9: .line 461
            aload 3 /* child */
            areturn
        10: .line 463
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement int org.aspectj.asm.IProgramElement java.util.Iterator org.aspectj.bridge.ISourceLocation org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 6 /* evenCloserMatch */
            areturn
        end local 6 // org.aspectj.asm.IProgramElement evenCloserMatch
        11: .line 465
      StackMap locals:
      StackMap stack:
            aload 3 /* child */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            invokevirtual org.aspectj.asm.IProgramElement$Kind.isType:()Z
            ifeq 15
        12: .line 467
            aload 0 /* this */
            aload 3 /* child */
            iload 2 /* lineno */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findCloserMatchForLineNumber:(Lorg/aspectj/asm/IProgramElement;I)Lorg/aspectj/asm/IProgramElement;
            astore 6 /* evenCloserMatch */
        start local 6 // org.aspectj.asm.IProgramElement evenCloserMatch
        13: .line 468
            aload 6 /* evenCloserMatch */
            ifnull 15
        14: .line 469
            aload 6 /* evenCloserMatch */
            areturn
        end local 6 // org.aspectj.asm.IProgramElement evenCloserMatch
        end local 5 // org.aspectj.bridge.ISourceLocation childLoc
        end local 3 // org.aspectj.asm.IProgramElement child
        15: .line 454
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        16: .line 474
            aconst_null
            areturn
        end local 2 // int lineno
        end local 1 // org.aspectj.asm.IProgramElement node
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   17     1             node  Lorg/aspectj/asm/IProgramElement;
            0   17     2           lineno  I
            4   15     3            child  Lorg/aspectj/asm/IProgramElement;
            5   15     5         childLoc  Lorg/aspectj/bridge/ISourceLocation;
            8   11     6  evenCloserMatch  Lorg/aspectj/asm/IProgramElement;
           13   15     6  evenCloserMatch  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
        Name  Flags
      node    
      lineno  

  private org.aspectj.asm.IProgramElement findNodeForSourceLineHelper(org.aspectj.asm.IProgramElement, java.lang.String, int, int);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement node
        start local 2 // java.lang.String sourceFilePath
        start local 3 // int lineno
        start local 4 // int offset
         0: .line 478
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* sourceFilePath */
            iload 3 /* lineno */
            iload 4 /* offset */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.matches:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Z
            ifeq 2
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* sourceFilePath */
            iload 3 /* lineno */
            iload 4 /* offset */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.hasMoreSpecificChild:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Z
            ifne 2
         1: .line 479
            aload 1 /* node */
            areturn
         2: .line 482
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            ifnull 9
         3: .line 483
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String int int top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 5 /* child */
        start local 5 // org.aspectj.asm.IProgramElement child
         5: .line 484
            aload 0 /* this */
            aload 5 /* child */
            aload 2 /* sourceFilePath */
            iload 3 /* lineno */
            iload 4 /* offset */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findNodeForSourceLineHelper:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Lorg/aspectj/asm/IProgramElement;
            astore 7 /* foundNode */
        start local 7 // org.aspectj.asm.IProgramElement foundNode
         6: .line 485
            aload 7 /* foundNode */
            ifnull 8
         7: .line 486
            aload 7 /* foundNode */
            areturn
        end local 7 // org.aspectj.asm.IProgramElement foundNode
        end local 5 // org.aspectj.asm.IProgramElement child
         8: .line 483
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 491
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String int int
      StackMap stack:
            aconst_null
            areturn
        end local 4 // int offset
        end local 3 // int lineno
        end local 2 // java.lang.String sourceFilePath
        end local 1 // org.aspectj.asm.IProgramElement node
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   10     1            node  Lorg/aspectj/asm/IProgramElement;
            0   10     2  sourceFilePath  Ljava/lang/String;
            0   10     3          lineno  I
            0   10     4          offset  I
            5    8     5           child  Lorg/aspectj/asm/IProgramElement;
            6    8     7       foundNode  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                Name  Flags
      node            
      sourceFilePath  
      lineno          
      offset          

  private boolean matches(org.aspectj.asm.IProgramElement, java.lang.String, int, int);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=5
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement node
        start local 2 // java.lang.String sourceFilePath
        start local 3 // int lineNumber
        start local 4 // int offSet
         0: .line 501
            aload 1 /* node */
            ifnull 1
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getSourceLocation:()Lorg/aspectj/bridge/ISourceLocation;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: org.aspectj.bridge.ISourceLocation
         2: astore 5 /* nodeSourceLocation */
        start local 5 // org.aspectj.bridge.ISourceLocation nodeSourceLocation
         3: .line 502
            aload 1 /* node */
            ifnull 12
         4: .line 503
            aload 5 /* nodeSourceLocation */
            ifnull 12
         5: .line 504
            aload 5 /* nodeSourceLocation */
            invokeinterface org.aspectj.bridge.ISourceLocation.getSourceFile:()Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aload 2 /* sourceFilePath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         6: .line 505
            iload 4 /* offSet */
            iconst_m1
            if_icmpeq 7
            aload 5 /* nodeSourceLocation */
            invokeinterface org.aspectj.bridge.ISourceLocation.getOffset:()I
            iload 4 /* offSet */
            if_icmpeq 8
      StackMap locals: org.aspectj.bridge.ISourceLocation
      StackMap stack:
         7: iload 4 /* offSet */
            iconst_m1
            if_icmpne 12
         8: .line 506
      StackMap locals:
      StackMap stack:
            aload 5 /* nodeSourceLocation */
            invokeinterface org.aspectj.bridge.ISourceLocation.getLine:()I
            iload 3 /* lineNumber */
            if_icmpgt 9
            aload 5 /* nodeSourceLocation */
            invokeinterface org.aspectj.bridge.ISourceLocation.getEndLine:()I
            iload 3 /* lineNumber */
            if_icmpge 11
      StackMap locals:
      StackMap stack:
         9: iload 3 /* lineNumber */
            iconst_1
            if_icmpgt 12
            aload 1 /* node */
        10: .line 507
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            invokevirtual org.aspectj.asm.IProgramElement$Kind.isSourceFile:()Z
            ifeq 12
        11: .line 502
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        12: iconst_0
            ireturn
        end local 5 // org.aspectj.bridge.ISourceLocation nodeSourceLocation
        end local 4 // int offSet
        end local 3 // int lineNumber
        end local 2 // java.lang.String sourceFilePath
        end local 1 // org.aspectj.asm.IProgramElement node
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   13     1                node  Lorg/aspectj/asm/IProgramElement;
            0   13     2      sourceFilePath  Ljava/lang/String;
            0   13     3          lineNumber  I
            0   13     4              offSet  I
            3   13     5  nodeSourceLocation  Lorg/aspectj/bridge/ISourceLocation;
    MethodParameters:
                Name  Flags
      node            
      sourceFilePath  
      lineNumber      
      offSet          

  private boolean hasMoreSpecificChild(org.aspectj.asm.IProgramElement, java.lang.String, int, int);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement node
        start local 2 // java.lang.String sourceFilePath
        start local 3 // int lineNumber
        start local 4 // int offSet
         0: .line 514
            aload 1 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 4
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String int int top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 5 /* child */
        start local 5 // org.aspectj.asm.IProgramElement child
         2: .line 515
            aload 0 /* this */
            aload 5 /* child */
            aload 2 /* sourceFilePath */
            iload 3 /* lineNumber */
            iload 4 /* offSet */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.matches:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;II)Z
            ifeq 4
         3: .line 516
            iconst_1
            ireturn
        end local 5 // org.aspectj.asm.IProgramElement child
         4: .line 514
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 519
            iconst_0
            ireturn
        end local 4 // int offSet
        end local 3 // int lineNumber
        end local 2 // java.lang.String sourceFilePath
        end local 1 // org.aspectj.asm.IProgramElement node
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    6     1            node  Lorg/aspectj/asm/IProgramElement;
            0    6     2  sourceFilePath  Ljava/lang/String;
            0    6     3      lineNumber  I
            0    6     4          offSet  I
            2    4     5           child  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                Name  Flags
      node            
      sourceFilePath  
      lineNumber      
      offSet          

  public java.lang.String getConfigFile();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 523
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.configFile:Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;

  public void setConfigFile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String configFile
         0: .line 527
            aload 0 /* this */
            aload 1 /* configFile */
            putfield org.aspectj.asm.internal.AspectJElementHierarchy.configFile:Ljava/lang/String;
         1: .line 528
            return
        end local 1 // java.lang.String configFile
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    2     1  configFile  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      configFile  

  public org.aspectj.asm.IProgramElement findElementForHandle(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String handle
         0: .line 531
            aload 0 /* this */
            aload 1 /* handle */
            iconst_1
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForHandleOrCreate:(Ljava/lang/String;Z)Lorg/aspectj/asm/IProgramElement;
            areturn
        end local 1 // java.lang.String handle
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    1     1  handle  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      handle  

  public org.aspectj.asm.IProgramElement findElementForHandleOrCreate(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String handle
        start local 2 // boolean create
         0: .line 539
            aconst_null
            astore 3 /* ipe */
        start local 3 // org.aspectj.asm.IProgramElement ipe
         1: .line 540
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 541
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            aload 1 /* handle */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 3 /* ipe */
         3: .line 542
            aload 3 /* ipe */
            ifnull 6
         4: .line 543
            aload 3 /* ipe */
            aload 4
            monitorexit
         5: areturn
         6: .line 545
      StackMap locals: org.aspectj.asm.IProgramElement org.aspectj.asm.internal.AspectJElementHierarchy
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.root:Lorg/aspectj/asm/IProgramElement;
            aload 1 /* handle */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForHandle:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 3 /* ipe */
         7: .line 546
            aload 3 /* ipe */
            ifnonnull 9
            iload 2 /* create */
            ifeq 9
         8: .line 547
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* handle */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.getFilename:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.createFileStructureNode:(Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 3 /* ipe */
         9: .line 549
      StackMap locals:
      StackMap stack:
            aload 3 /* ipe */
            ifnull 11
        10: .line 550
            aload 0 /* this */
            aload 1 /* handle */
            aload 3 /* ipe */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.cache:(Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;)V
        11: .line 540
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        15: .line 553
      StackMap locals:
      StackMap stack:
            aload 3 /* ipe */
            areturn
        end local 3 // org.aspectj.asm.IProgramElement ipe
        end local 2 // boolean create
        end local 1 // java.lang.String handle
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   16     1  handle  Ljava/lang/String;
            0   16     2  create  Z
            1   16     3     ipe  Lorg/aspectj/asm/IProgramElement;
      Exception table:
        from    to  target  type
           2     5      13  any
           6    12      13  any
          13    14      13  any
    MethodParameters:
        Name  Flags
      handle  
      create  

  private org.aspectj.asm.IProgramElement findElementForHandle(org.aspectj.asm.IProgramElement, java.lang.String);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement parent
        start local 2 // java.lang.String handle
         0: .line 557
            aload 1 /* parent */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 3 /* node */
        start local 3 // org.aspectj.asm.IProgramElement node
         2: .line 558
            aload 3 /* node */
            invokeinterface org.aspectj.asm.IProgramElement.getHandleIdentifier:()Ljava/lang/String;
            astore 5 /* nodeHid */
        start local 5 // java.lang.String nodeHid
         3: .line 559
            aload 2 /* handle */
            aload 5 /* nodeHid */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 560
            aload 3 /* node */
            areturn
         5: .line 562
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String org.aspectj.asm.IProgramElement java.util.Iterator java.lang.String
      StackMap stack:
            aload 2 /* handle */
            aload 5 /* nodeHid */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         6: .line 564
            aload 0 /* this */
            aload 3 /* node */
            aload 2 /* handle */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.findElementForHandle:(Lorg/aspectj/asm/IProgramElement;Ljava/lang/String;)Lorg/aspectj/asm/IProgramElement;
            astore 6 /* childSearch */
        start local 6 // org.aspectj.asm.IProgramElement childSearch
         7: .line 565
            aload 6 /* childSearch */
            ifnull 9
         8: .line 566
            aload 6 /* childSearch */
            areturn
        end local 6 // org.aspectj.asm.IProgramElement childSearch
        end local 5 // java.lang.String nodeHid
        end local 3 // org.aspectj.asm.IProgramElement node
         9: .line 557
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement java.lang.String top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 571
            aconst_null
            areturn
        end local 2 // java.lang.String handle
        end local 1 // org.aspectj.asm.IProgramElement parent
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   11     1       parent  Lorg/aspectj/asm/IProgramElement;
            0   11     2       handle  Ljava/lang/String;
            2    9     3         node  Lorg/aspectj/asm/IProgramElement;
            3    9     5      nodeHid  Ljava/lang/String;
            7    9     6  childSearch  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
        Name  Flags
      parent  
      handle  

  protected void cache(java.lang.String, org.aspectj.asm.IProgramElement);
    descriptor: (Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String handle
        start local 2 // org.aspectj.asm.IProgramElement pe
         0: .line 595
            invokestatic org.aspectj.asm.AsmManager.isCompletingTypeBindings:()Z
            ifne 2
         1: .line 596
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            aload 1 /* handle */
            aload 2 /* pe */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 598
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.aspectj.asm.IProgramElement pe
        end local 1 // java.lang.String handle
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    3     1  handle  Ljava/lang/String;
            0    3     2      pe  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
        Name  Flags
      handle  
      pe      

  public void flushTypeMap();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 601
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 603
            return
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;

  public void flushHandleMap();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 606
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 607
            return
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;

  public void flushFileMap();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
         0: .line 610
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 611
            return
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;

  public void forget(org.aspectj.asm.IProgramElement, org.aspectj.asm.IProgramElement);
    descriptor: (Lorg/aspectj/asm/IProgramElement;Lorg/aspectj/asm/IProgramElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement compilationUnitNode
        start local 2 // org.aspectj.asm.IProgramElement typeNode
         0: .line 614
            aconst_null
            astore 3 /* k */
        start local 3 // java.lang.String k
         1: .line 615
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 618
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement java.lang.String org.aspectj.asm.internal.AspectJElementHierarchy top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* typeMapEntry */
        start local 5 // java.util.Map$Entry typeMapEntry
         4: .line 619
            aload 5 /* typeMapEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 2 /* typeNode */
            if_acmpne 7
         5: .line 620
            aload 5 /* typeMapEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* k */
         6: .line 621
            goto 8
        end local 5 // java.util.Map$Entry typeMapEntry
         7: .line 618
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 624
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement java.lang.String org.aspectj.asm.internal.AspectJElementHierarchy
      StackMap stack:
            aload 3 /* k */
            ifnull 10
         9: .line 625
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            aload 3 /* k */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 615
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 4
            monitorexit
        13: athrow
        14: .line 629
      StackMap locals:
      StackMap stack:
            aload 1 /* compilationUnitNode */
            ifnull 24
        15: .line 630
            aconst_null
            astore 3 /* k */
        16: .line 631
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 21
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement java.lang.String top java.util.Iterator
      StackMap stack:
        17: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        18: .line 632
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 1 /* compilationUnitNode */
            if_acmpne 21
        19: .line 633
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* k */
        20: .line 634
            goto 22
        end local 4 // java.util.Map$Entry entry
        21: .line 631
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        22: .line 637
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy org.aspectj.asm.IProgramElement org.aspectj.asm.IProgramElement java.lang.String
      StackMap stack:
            aload 3 /* k */
            ifnull 24
        23: .line 638
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            aload 3 /* k */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 641
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String k
        end local 2 // org.aspectj.asm.IProgramElement typeNode
        end local 1 // org.aspectj.asm.IProgramElement compilationUnitNode
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   25     0                 this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   25     1  compilationUnitNode  Lorg/aspectj/asm/IProgramElement;
            0   25     2             typeNode  Lorg/aspectj/asm/IProgramElement;
            1   25     3                    k  Ljava/lang/String;
            4    7     5         typeMapEntry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;
           18   21     4                entry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;
      Exception table:
        from    to  target  type
           2    11      12  any
          12    13      12  any
    MethodParameters:
                     Name  Flags
      compilationUnitNode  
      typeNode             

  public void updateHandleMap(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.util.Set deletedFiles
         0: .line 646
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* forRemoval */
        start local 2 // java.util.List forRemoval
         1: .line 647
            aconst_null
            astore 3 /* k */
        start local 3 // java.util.Set k
         2: .line 648
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 649
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 3 /* k */
         4: .line 650
            aload 3 /* k */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Set java.util.List java.util.Set org.aspectj.asm.internal.AspectJElementHierarchy top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* handle */
        start local 5 // java.lang.String handle
         6: .line 651
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            aload 5 /* handle */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 7 /* ipe */
        start local 7 // org.aspectj.asm.IProgramElement ipe
         7: .line 652
            aload 7 /* ipe */
            ifnonnull 9
         8: .line 653
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "handleMap expectation not met, where is the IPE for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* handle */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 655
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Set java.util.List java.util.Set org.aspectj.asm.internal.AspectJElementHierarchy java.lang.String java.util.Iterator org.aspectj.asm.IProgramElement
      StackMap stack:
            aload 7 /* ipe */
            ifnull 10
            aload 1 /* deletedFiles */
            aload 0 /* this */
            aload 7 /* ipe */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.getCanonicalFilePath:(Lorg/aspectj/asm/IProgramElement;)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 656
      StackMap locals:
      StackMap stack:
            aload 2 /* forRemoval */
            aload 5 /* handle */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.aspectj.asm.IProgramElement ipe
        end local 5 // java.lang.String handle
        11: .line 650
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Set java.util.List java.util.Set org.aspectj.asm.internal.AspectJElementHierarchy top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 659
            aload 2 /* forRemoval */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals:
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* handle */
        start local 5 // java.lang.String handle
        14: .line 660
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.handleMap:Ljava/util/Map;
            aload 5 /* handle */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String handle
        15: .line 659
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 662
            aload 2 /* forRemoval */
            invokeinterface java.util.List.clear:()V
        17: .line 663
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 3 /* k */
        18: .line 664
            aload 3 /* k */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 23
      StackMap locals:
      StackMap stack:
        19: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* typeName */
        start local 5 // java.lang.String typeName
        20: .line 665
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            aload 5 /* typeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 7 /* ipe */
        start local 7 // org.aspectj.asm.IProgramElement ipe
        21: .line 666
            aload 1 /* deletedFiles */
            aload 0 /* this */
            aload 7 /* ipe */
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.getCanonicalFilePath:(Lorg/aspectj/asm/IProgramElement;)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 667
            aload 2 /* forRemoval */
            aload 5 /* typeName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.aspectj.asm.IProgramElement ipe
        end local 5 // java.lang.String typeName
        23: .line 664
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        24: .line 670
            aload 2 /* forRemoval */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* typeName */
        start local 5 // java.lang.String typeName
        26: .line 671
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.typeMap:Ljava/util/Map;
            aload 5 /* typeName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String typeName
        27: .line 670
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        28: .line 673
            aload 2 /* forRemoval */
            invokeinterface java.util.List.clear:()V
        29: .line 648
            aload 4
            monitorexit
        30: goto 33
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Set java.util.List java.util.Set org.aspectj.asm.internal.AspectJElementHierarchy
      StackMap stack: java.lang.Throwable
        31: aload 4
            monitorexit
        32: athrow
        33: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 38
      StackMap locals: org.aspectj.asm.internal.AspectJElementHierarchy java.util.Set java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
        34: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        35: .line 676
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* filePath */
        start local 6 // java.lang.String filePath
        36: .line 677
            aload 1 /* deletedFiles */
            aload 0 /* this */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            invokevirtual org.aspectj.asm.internal.AspectJElementHierarchy.getCanonicalFilePath:(Lorg/aspectj/asm/IProgramElement;)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 38
        37: .line 678
            aload 2 /* forRemoval */
            aload 6 /* filePath */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String filePath
        end local 4 // java.util.Map$Entry entry
        38: .line 675
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        39: .line 681
            aload 2 /* forRemoval */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 42
      StackMap locals:
      StackMap stack:
        40: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* filePath */
        start local 4 // java.lang.String filePath
        41: .line 682
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.fileMap:Ljava/util/Map;
            aload 4 /* filePath */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String filePath
        42: .line 681
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        43: .line 684
            return
        end local 3 // java.util.Set k
        end local 2 // java.util.List forRemoval
        end local 1 // java.util.Set deletedFiles
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   44     0          this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0   44     1  deletedFiles  Ljava/util/Set<Ljava/lang/String;>;
            1   44     2    forRemoval  Ljava/util/List<Ljava/lang/String;>;
            2   44     3             k  Ljava/util/Set<Ljava/lang/String;>;
            6   11     5        handle  Ljava/lang/String;
            7   11     7           ipe  Lorg/aspectj/asm/IProgramElement;
           14   15     5        handle  Ljava/lang/String;
           20   23     5      typeName  Ljava/lang/String;
           21   23     7           ipe  Lorg/aspectj/asm/IProgramElement;
           26   27     5      typeName  Ljava/lang/String;
           35   38     4         entry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/aspectj/asm/IProgramElement;>;
           36   38     6      filePath  Ljava/lang/String;
           41   42     4      filePath  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3    30      31  any
          31    32      31  any
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
              Name  Flags
      deletedFiles  

  private java.lang.String getFilename(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // java.lang.String hid
         0: .line 687
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            invokevirtual org.aspectj.asm.AsmManager.getHandleProvider:()Lorg/aspectj/asm/IElementHandleProvider;
            aload 1 /* hid */
            invokeinterface org.aspectj.asm.IElementHandleProvider.getFileForHandle:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String hid
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    1     1   hid  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      hid   

  private java.lang.String getCanonicalFilePath(org.aspectj.asm.IProgramElement);
    descriptor: (Lorg/aspectj/asm/IProgramElement;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
        start local 1 // org.aspectj.asm.IProgramElement ipe
         0: .line 691
            aload 1 /* ipe */
            invokeinterface org.aspectj.asm.IProgramElement.getSourceLocation:()Lorg/aspectj/bridge/ISourceLocation;
            ifnull 2
         1: .line 692
            aload 0 /* this */
            getfield org.aspectj.asm.internal.AspectJElementHierarchy.asm:Lorg/aspectj/asm/AsmManager;
            aload 1 /* ipe */
            invokeinterface org.aspectj.asm.IProgramElement.getSourceLocation:()Lorg/aspectj/bridge/ISourceLocation;
            invokeinterface org.aspectj.bridge.ISourceLocation.getSourceFile:()Ljava/io/File;
            invokevirtual org.aspectj.asm.AsmManager.getCanonicalFilePath:(Ljava/io/File;)Ljava/lang/String;
            areturn
         2: .line 694
      StackMap locals:
      StackMap stack:
            ldc ""
            areturn
        end local 1 // org.aspectj.asm.IProgramElement ipe
        end local 0 // org.aspectj.asm.internal.AspectJElementHierarchy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/aspectj/asm/internal/AspectJElementHierarchy;
            0    3     1   ipe  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
      Name  Flags
      ipe   
}
SourceFile: "AspectJElementHierarchy.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Kind = org.aspectj.asm.IProgramElement$Kind of org.aspectj.asm.IProgramElement