public class javassist.Loader extends java.lang.ClassLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javassist.Loader
  super_class: java.lang.ClassLoader
{
  private java.util.HashMap<java.lang.String, java.lang.ClassLoader> notDefinedHere;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/ClassLoader;>;

  private java.util.Vector<java.lang.String> notDefinedPackages;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Ljava/lang/String;>;

  private javassist.ClassPool source;
    descriptor: Ljavassist/ClassPool;
    flags: (0x0002) ACC_PRIVATE

  private javassist.Translator translator;
    descriptor: Ljavassist/Translator;
    flags: (0x0002) ACC_PRIVATE

  private java.security.ProtectionDomain domain;
    descriptor: Ljava/security/ProtectionDomain;
    flags: (0x0002) ACC_PRIVATE

  public boolean doDelegation;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javassist.Loader this
         0: .line 206
            aload 0 /* this */
            aconst_null
            invokespecial javassist.Loader.<init>:(Ljavassist/ClassPool;)V
         1: .line 207
            return
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/Loader;

  public void <init>(javassist.ClassPool);
    descriptor: (Ljavassist/ClassPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // javassist.ClassPool cp
         0: .line 214
            aload 0 /* this */
            invokespecial java.lang.ClassLoader.<init>:()V
         1: .line 200
            aload 0 /* this */
            iconst_1
            putfield javassist.Loader.doDelegation:Z
         2: .line 215
            aload 0 /* this */
            aload 1 /* cp */
            invokevirtual javassist.Loader.init:(Ljavassist/ClassPool;)V
         3: .line 216
            return
        end local 1 // javassist.ClassPool cp
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavassist/Loader;
            0    4     1    cp  Ljavassist/ClassPool;
    MethodParameters:
      Name  Flags
      cp    

  public void <init>(java.lang.ClassLoader, javassist.ClassPool);
    descriptor: (Ljava/lang/ClassLoader;Ljavassist/ClassPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javassist.Loader this
        start local 1 // java.lang.ClassLoader parent
        start local 2 // javassist.ClassPool cp
         0: .line 226
            aload 0 /* this */
            aload 1 /* parent */
            invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/ClassLoader;)V
         1: .line 200
            aload 0 /* this */
            iconst_1
            putfield javassist.Loader.doDelegation:Z
         2: .line 227
            aload 0 /* this */
            aload 2 /* cp */
            invokevirtual javassist.Loader.init:(Ljavassist/ClassPool;)V
         3: .line 228
            return
        end local 2 // javassist.ClassPool cp
        end local 1 // java.lang.ClassLoader parent
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljavassist/Loader;
            0    4     1  parent  Ljava/lang/ClassLoader;
            0    4     2      cp  Ljavassist/ClassPool;
    MethodParameters:
        Name  Flags
      parent  
      cp      

  private void init(javassist.ClassPool);
    descriptor: (Ljavassist/ClassPool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // javassist.ClassPool cp
         0: .line 231
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javassist.Loader.notDefinedHere:Ljava/util/HashMap;
         1: .line 232
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield javassist.Loader.notDefinedPackages:Ljava/util/Vector;
         2: .line 233
            aload 0 /* this */
            aload 1 /* cp */
            putfield javassist.Loader.source:Ljavassist/ClassPool;
         3: .line 234
            aload 0 /* this */
            aconst_null
            putfield javassist.Loader.translator:Ljavassist/Translator;
         4: .line 235
            aload 0 /* this */
            aconst_null
            putfield javassist.Loader.domain:Ljava/security/ProtectionDomain;
         5: .line 236
            aload 0 /* this */
            ldc "javassist.Loader"
            invokevirtual javassist.Loader.delegateLoadingOf:(Ljava/lang/String;)V
         6: .line 237
            return
        end local 1 // javassist.ClassPool cp
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavassist/Loader;
            0    7     1    cp  Ljavassist/ClassPool;
    MethodParameters:
      Name  Flags
      cp    

  public void delegateLoadingOf(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String classname
         0: .line 248
            aload 1 /* classname */
            ldc "."
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 249
            aload 0 /* this */
            getfield javassist.Loader.notDefinedPackages:Ljava/util/Vector;
            aload 1 /* classname */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
            goto 3
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.Loader.notDefinedHere:Ljava/util/HashMap;
            aload 1 /* classname */
            aload 0 /* this */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 252
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String classname
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljavassist/Loader;
            0    4     1  classname  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      classname  

  public void setDomain(java.security.ProtectionDomain);
    descriptor: (Ljava/security/ProtectionDomain;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.security.ProtectionDomain d
         0: .line 261
            aload 0 /* this */
            aload 1 /* d */
            putfield javassist.Loader.domain:Ljava/security/ProtectionDomain;
         1: .line 262
            return
        end local 1 // java.security.ProtectionDomain d
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/Loader;
            0    2     1     d  Ljava/security/ProtectionDomain;
    MethodParameters:
      Name  Flags
      d     

  public void setClassPool(javassist.ClassPool);
    descriptor: (Ljavassist/ClassPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // javassist.ClassPool cp
         0: .line 268
            aload 0 /* this */
            aload 1 /* cp */
            putfield javassist.Loader.source:Ljavassist/ClassPool;
         1: .line 269
            return
        end local 1 // javassist.ClassPool cp
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/Loader;
            0    2     1    cp  Ljavassist/ClassPool;
    MethodParameters:
      Name  Flags
      cp    

  public void addTranslator(javassist.ClassPool, javassist.Translator);
    descriptor: (Ljavassist/ClassPool;Ljavassist/Translator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javassist.Loader this
        start local 1 // javassist.ClassPool cp
        start local 2 // javassist.Translator t
         0: .line 282
            aload 0 /* this */
            aload 1 /* cp */
            putfield javassist.Loader.source:Ljavassist/ClassPool;
         1: .line 283
            aload 0 /* this */
            aload 2 /* t */
            putfield javassist.Loader.translator:Ljavassist/Translator;
         2: .line 284
            aload 2 /* t */
            aload 1 /* cp */
            invokeinterface javassist.Translator.start:(Ljavassist/ClassPool;)V
         3: .line 285
            return
        end local 2 // javassist.Translator t
        end local 1 // javassist.ClassPool cp
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavassist/Loader;
            0    4     1    cp  Ljavassist/ClassPool;
            0    4     2     t  Ljavassist/Translator;
    Exceptions:
      throws javassist.NotFoundException, javassist.CannotCompileException
    MethodParameters:
      Name  Flags
      cp    
      t     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 301
            new javassist.Loader
            dup
            invokespecial javassist.Loader.<init>:()V
            astore 1 /* cl */
        start local 1 // javassist.Loader cl
         1: .line 302
            aload 1 /* cl */
            aload 0 /* args */
            invokevirtual javassist.Loader.run:([Ljava/lang/String;)V
         2: .line 303
            return
        end local 1 // javassist.Loader cl
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/String;
            1    3     1    cl  Ljavassist/Loader;
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
      Name  Flags
      args  

  public void run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String[] args
         0: .line 315
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmplt 2
         1: .line 316
            aload 0 /* this */
            aload 1 /* args */
            iconst_0
            aaload
            aload 1 /* args */
            iconst_1
            aload 1 /* args */
            arraylength
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokevirtual javassist.Loader.run:(Ljava/lang/String;[Ljava/lang/String;)V
         2: .line 317
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] args
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavassist/Loader;
            0    3     1  args  [Ljava/lang/String;
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
      Name  Flags
      args  

  public void run(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String classname
        start local 2 // java.lang.String[] args
         0: .line 326
            aload 0 /* this */
            aload 1 /* classname */
            invokevirtual javassist.Loader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* c */
        start local 3 // java.lang.Class c
         1: .line 328
            aload 3 /* c */
            ldc "main"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         2: .line 329
            aconst_null
         3: .line 330
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* args */
            aastore
         4: .line 328
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 331
            goto 8
         6: .line 332
      StackMap locals: javassist.Loader java.lang.String java.lang.String[] java.lang.Class
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 4 /* e */
        start local 4 // java.lang.reflect.InvocationTargetException e
         7: .line 333
            aload 4 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            athrow
        end local 4 // java.lang.reflect.InvocationTargetException e
         8: .line 335
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Class c
        end local 2 // java.lang.String[] args
        end local 1 // java.lang.String classname
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Ljavassist/Loader;
            0    9     1  classname  Ljava/lang/String;
            0    9     2       args  [Ljava/lang/String;
            1    9     3          c  Ljava/lang/Class<*>;
            7    8     4          e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
           Name  Flags
      classname  
      args       

  protected java.lang.Class<?> loadClass(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String name
        start local 2 // boolean resolve
         0: .line 343
            aload 1 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            astore 1 /* name */
         1: .line 344
            aload 1 /* name */
            dup
            astore 3
            monitorenter
         2: .line 345
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual javassist.Loader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* c */
        start local 4 // java.lang.Class c
         3: .line 346
            aload 4 /* c */
            ifnonnull 5
         4: .line 347
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual javassist.Loader.loadClassByDelegation:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* c */
         5: .line 349
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 4 /* c */
            ifnonnull 7
         6: .line 350
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual javassist.Loader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* c */
         7: .line 352
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            ifnonnull 9
         8: .line 353
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual javassist.Loader.delegateToParent:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* c */
         9: .line 355
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 11
        10: .line 356
            aload 0 /* this */
            aload 4 /* c */
            invokevirtual javassist.Loader.resolveClass:(Ljava/lang/Class;)V
        11: .line 358
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            aload 3
            monitorexit
        12: areturn
        end local 4 // java.lang.Class c
        13: .line 344
      StackMap locals: javassist.Loader java.lang.String int java.lang.String
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        14: athrow
        end local 2 // boolean resolve
        end local 1 // java.lang.String name
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Ljavassist/Loader;
            0   15     1     name  Ljava/lang/String;
            0   15     2  resolve  Z
            3   13     4        c  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           2    12      13  any
          13    14      13  any
    Exceptions:
      throws java.lang.ClassFormatError, java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      name     
      resolve  

  protected java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=5, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String name
         0: .line 378
            aload 0 /* this */
            getfield javassist.Loader.source:Ljavassist/ClassPool;
            ifnull 7
         1: .line 379
            aload 0 /* this */
            getfield javassist.Loader.translator:Ljavassist/Translator;
            ifnull 3
         2: .line 380
            aload 0 /* this */
            getfield javassist.Loader.translator:Ljavassist/Translator;
            aload 0 /* this */
            getfield javassist.Loader.source:Ljavassist/ClassPool;
            aload 1 /* name */
            invokeinterface javassist.Translator.onLoad:(Ljavassist/ClassPool;Ljava/lang/String;)V
         3: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.Loader.source:Ljavassist/ClassPool;
            aload 1 /* name */
            invokevirtual javassist.ClassPool.get:(Ljava/lang/String;)Ljavassist/CtClass;
            invokevirtual javassist.CtClass.toBytecode:()[B
            astore 2 /* classfile */
        start local 2 // byte[] classfile
         4: .line 384
            goto 20
        end local 2 // byte[] classfile
         5: .line 385
      StackMap locals:
      StackMap stack: javassist.NotFoundException
            pop
         6: .line 386
            aconst_null
            areturn
         7: .line 390
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* jarname */
        start local 3 // java.lang.String jarname
         8: .line 391
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* jarname */
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 4 /* in */
        start local 4 // java.io.InputStream in
         9: .line 392
            aload 4 /* in */
            ifnonnull 11
        10: .line 393
            aconst_null
            areturn
        11: .line 395
      StackMap locals: javassist.Loader java.lang.String top java.lang.String java.io.InputStream
      StackMap stack:
            aload 4 /* in */
            invokestatic javassist.ClassPoolTail.readStream:(Ljava/io/InputStream;)[B
            astore 2 /* classfile */
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String jarname
        start local 2 // byte[] classfile
        12: .line 397
            goto 20
        end local 2 // byte[] classfile
        13: .line 398
      StackMap locals: javassist.Loader java.lang.String
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        14: .line 399
            new java.lang.ClassNotFoundException
            dup
        15: .line 400
            new java.lang.StringBuilder
            dup
            ldc "caught an exception while obtaining a class file for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 401
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 400
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 401
            aload 3 /* e */
        19: .line 399
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        start local 2 // byte[] classfile
        20: .line 404
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* i */
        start local 3 // int i
        21: .line 405
            iload 3 /* i */
            iconst_m1
            if_icmpeq 29
        22: .line 406
            aload 1 /* name */
            iconst_0
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* pname */
        start local 4 // java.lang.String pname
        23: .line 407
            aload 0 /* this */
            aload 4 /* pname */
            invokevirtual javassist.Loader.isDefinedPackage:(Ljava/lang/String;)Z
            ifeq 29
        24: .line 409
            aload 0 /* this */
        25: .line 410
            aload 4 /* pname */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
        26: .line 409
            invokevirtual javassist.Loader.definePackage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;
            pop
        27: .line 411
            goto 29
        28: .line 412
      StackMap locals: javassist.Loader java.lang.String byte[] int java.lang.String
      StackMap stack: java.lang.IllegalArgumentException
            pop
        end local 4 // java.lang.String pname
        29: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.Loader.domain:Ljava/security/ProtectionDomain;
            ifnonnull 31
        30: .line 419
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* classfile */
            iconst_0
            aload 2 /* classfile */
            arraylength
            invokevirtual javassist.Loader.defineClass:(Ljava/lang/String;[BII)Ljava/lang/Class;
            areturn
        31: .line 420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* classfile */
            iconst_0
            aload 2 /* classfile */
            arraylength
            aload 0 /* this */
            getfield javassist.Loader.domain:Ljava/security/ProtectionDomain;
            invokevirtual javassist.Loader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
            areturn
        end local 3 // int i
        end local 2 // byte[] classfile
        end local 1 // java.lang.String name
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Ljavassist/Loader;
            0   32     1       name  Ljava/lang/String;
            4    5     2  classfile  [B
           12   13     2  classfile  [B
           20   32     2  classfile  [B
            8   12     3    jarname  Ljava/lang/String;
            9   12     4         in  Ljava/io/InputStream;
           14   20     3          e  Ljava/lang/Exception;
           21   32     3          i  I
           23   29     4      pname  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class javassist.NotFoundException
           0     6      13  Class java.lang.Exception
           7    10      13  Class java.lang.Exception
          11    12      13  Class java.lang.Exception
          24    27      28  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  

  private boolean isDefinedPackage(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javassist.Loader this
         0: .line 425
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method getDefinedPackage(String) is undefined for the type Loader\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavassist/Loader;
    MethodParameters:
      Name  Flags
      name  

  protected java.lang.Class<?> loadClassByDelegation(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String name
         0: .line 443
            aconst_null
            astore 2 /* c */
        start local 2 // java.lang.Class c
         1: .line 444
            aload 0 /* this */
            getfield javassist.Loader.doDelegation:Z
            ifeq 10
         2: .line 445
            aload 1 /* name */
            ldc "java."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         3: .line 446
            aload 1 /* name */
            ldc "javax."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         4: .line 447
            aload 1 /* name */
            ldc "sun."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         5: .line 448
            aload 1 /* name */
            ldc "com.sun."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         6: .line 449
            aload 1 /* name */
            ldc "org.w3c."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         7: .line 450
            aload 1 /* name */
            ldc "org.xml."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         8: .line 451
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual javassist.Loader.notDelegated:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 452
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual javassist.Loader.delegateToParent:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* c */
        10: .line 454
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            areturn
        end local 2 // java.lang.Class c
        end local 1 // java.lang.String name
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljavassist/Loader;
            0   11     1  name  Ljava/lang/String;
            1   11     2     c  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  

  private boolean notDelegated(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String name
         0: .line 458
            aload 0 /* this */
            getfield javassist.Loader.notDefinedHere:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 459
            iconst_1
            ireturn
         2: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.Loader.notDefinedPackages:Ljava/util/Vector;
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: javassist.Loader java.lang.String top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* pack */
        start local 2 // java.lang.String pack
         4: .line 462
            aload 1 /* name */
            aload 2 /* pack */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 463
            iconst_1
            ireturn
        end local 2 // java.lang.String pack
         6: .line 461
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 465
            iconst_0
            ireturn
        end local 1 // java.lang.String name
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljavassist/Loader;
            0    8     1  name  Ljava/lang/String;
            4    6     2  pack  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  protected java.lang.Class<?> delegateToParent(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javassist.Loader this
        start local 1 // java.lang.String classname
         0: .line 471
            aload 0 /* this */
            invokevirtual javassist.Loader.getParent:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         1: .line 472
            aload 2 /* cl */
            ifnull 3
         2: .line 473
            aload 2 /* cl */
            aload 1 /* classname */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
         3: .line 474
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classname */
            invokevirtual javassist.Loader.findSystemClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.lang.String classname
        end local 0 // javassist.Loader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljavassist/Loader;
            0    4     1  classname  Ljava/lang/String;
            1    4     2         cl  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      classname  
}
SourceFile: "Loader.java"
NestMembers:
  javassist.Loader$Simple
InnerClasses:
  public Simple = javassist.Loader$Simple of javassist.Loader