public class java.security.CodeSource implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.security.CodeSource
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4977541819976013951

  private final java.net.URL location;
    descriptor: Ljava/net/URL;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private transient java.security.CodeSigner[] signers;
    descriptor: [Ljava/security/CodeSigner;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.security.cert.Certificate[] certs;
    descriptor: [Ljava/security/cert/Certificate;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.net.SocketPermission sp;
    descriptor: Ljava/net/SocketPermission;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.security.cert.CertificateFactory factory;
    descriptor: Ljava/security/cert/CertificateFactory;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String locationNoFragString;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  public void <init>(java.net.URL, java.security.cert.Certificate[]);
    descriptor: (Ljava/net/URL;[Ljava/security/cert/Certificate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.security.CodeSource this
        start local 1 // java.net.URL url
        start local 2 // java.security.cert.Certificate[] certs
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         2: .line 71
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
         3: .line 77
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
         4: .line 97
            aload 0 /* this */
            aload 1 /* url */
            putfield java.security.CodeSource.location:Ljava/net/URL;
         5: .line 98
            aload 1 /* url */
            ifnull 7
         6: .line 99
            aload 0 /* this */
            aload 1 /* url */
            invokestatic sun.net.util.URLUtil.urlNoFragString:(Ljava/net/URL;)Ljava/lang/String;
            putfield java.security.CodeSource.locationNoFragString:Ljava/lang/String;
         7: .line 103
      StackMap locals: java.security.CodeSource java.net.URL java.security.cert.Certificate[]
      StackMap stack:
            aload 2 /* certs */
            ifnull 9
         8: .line 104
            aload 0 /* this */
            aload 2 /* certs */
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
         9: .line 106
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.security.cert.Certificate[] certs
        end local 1 // java.net.URL url
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Ljava/security/CodeSource;
            0   10     1    url  Ljava/net/URL;
            0   10     2  certs  [Ljava/security/cert/Certificate;
    MethodParameters:
       Name  Flags
      url    
      certs  

  public void <init>(java.net.URL, java.security.CodeSigner[]);
    descriptor: (Ljava/net/URL;[Ljava/security/CodeSigner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.security.CodeSource this
        start local 1 // java.net.URL url
        start local 2 // java.security.CodeSigner[] signers
         0: .line 118
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         2: .line 71
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
         3: .line 77
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
         4: .line 119
            aload 0 /* this */
            aload 1 /* url */
            putfield java.security.CodeSource.location:Ljava/net/URL;
         5: .line 120
            aload 1 /* url */
            ifnull 7
         6: .line 121
            aload 0 /* this */
            aload 1 /* url */
            invokestatic sun.net.util.URLUtil.urlNoFragString:(Ljava/net/URL;)Ljava/lang/String;
            putfield java.security.CodeSource.locationNoFragString:Ljava/lang/String;
         7: .line 125
      StackMap locals: java.security.CodeSource java.net.URL java.security.CodeSigner[]
      StackMap stack:
            aload 2 /* signers */
            ifnull 9
         8: .line 126
            aload 0 /* this */
            aload 2 /* signers */
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         9: .line 128
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.security.CodeSigner[] signers
        end local 1 // java.net.URL url
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Ljava/security/CodeSource;
            0   10     1      url  Ljava/net/URL;
            0   10     2  signers  [Ljava/security/CodeSigner;
    MethodParameters:
         Name  Flags
      url      
      signers  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 137
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnull 2
         1: .line 138
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.hashCode:()I
            ireturn
         2: .line 140
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/CodeSource;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.lang.Object obj
         0: .line 156
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 157
            iconst_1
            ireturn
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.security.CodeSource
            ifne 4
         3: .line 161
            iconst_0
            ireturn
         4: .line 163
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.security.CodeSource
            astore 2 /* cs */
        start local 2 // java.security.CodeSource cs
         5: .line 166
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnonnull 7
         6: .line 168
            aload 2 /* cs */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnull 8
            iconst_0
            ireturn
         7: .line 171
      StackMap locals: java.security.CodeSource
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            aload 2 /* cs */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ifne 8
            iconst_0
            ireturn
         8: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* cs */
            iconst_1
            invokevirtual java.security.CodeSource.matchCerts:(Ljava/security/CodeSource;Z)Z
            ireturn
        end local 2 // java.security.CodeSource cs
        end local 1 // java.lang.Object obj
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/security/CodeSource;
            0    9     1   obj  Ljava/lang/Object;
            5    9     2    cs  Ljava/security/CodeSource;
    MethodParameters:
      Name  Flags
      obj   

  public final java.net.URL getLocation();
    descriptor: ()Ljava/net/URL;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 187
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/CodeSource;

  java.lang.String getLocationNoFragString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 194
            aload 0 /* this */
            getfield java.security.CodeSource.locationNoFragString:Ljava/lang/String;
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/CodeSource;

  public final java.security.cert.Certificate[] getCertificates();
    descriptor: ()[Ljava/security/cert/Certificate;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 213
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 2
         1: .line 214
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            areturn
         2: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 16
         3: .line 219
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
         4: .line 218
            astore 1 /* certChains */
        start local 1 // java.util.ArrayList certChains
         5: .line 220
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 11
         7: .line 221
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 1 /* certChains */
         8: .line 222
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 2 /* i */
            aaload
            invokevirtual java.security.CodeSigner.getSignerCertPath:()Ljava/security/cert/CertPath;
            invokevirtual java.security.cert.CertPath.getCertificates:()Ljava/util/List;
         9: .line 221
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 220
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 7
        end local 2 // int i
        12: .line 224
            aload 0 /* this */
            aload 1 /* certChains */
        13: .line 225
            aload 1 /* certChains */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.security.cert.Certificate
        14: .line 224
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
        15: .line 226
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            areturn
        end local 1 // java.util.ArrayList certChains
        16: .line 229
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Ljava/security/CodeSource;
            5   16     1  certChains  Ljava/util/ArrayList<Ljava/security/cert/Certificate;>;
            6   12     2           i  I

  public final java.security.CodeSigner[] getCodeSigners();
    descriptor: ()[Ljava/security/CodeSigner;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 248
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 2
         1: .line 249
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            areturn
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 5
         3: .line 253
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            invokevirtual java.security.CodeSource.convertCertArrayToSignerArray:([Ljava/security/cert/Certificate;)[Ljava/security/CodeSigner;
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         4: .line 254
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            areturn
         5: .line 257
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/security/CodeSource;

  public boolean implies(java.security.CodeSource);
    descriptor: (Ljava/security/CodeSource;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.CodeSource codesource
         0: .line 332
            aload 1 /* codesource */
            ifnonnull 2
         1: .line 333
            iconst_0
            ireturn
         2: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* codesource */
            iconst_0
            invokevirtual java.security.CodeSource.matchCerts:(Ljava/security/CodeSource;Z)Z
            ifeq 3
            aload 0 /* this */
            aload 1 /* codesource */
            invokevirtual java.security.CodeSource.matchLocation:(Ljava/security/CodeSource;)Z
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.security.CodeSource codesource
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljava/security/CodeSource;
            0    4     1  codesource  Ljava/security/CodeSource;
    MethodParameters:
            Name  Flags
      codesource  

  boolean matchCerts(java.security.CodeSource, boolean);
    descriptor: (Ljava/security/CodeSource;Z)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.CodeSource that
        start local 2 // boolean strict
         0: .line 351
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnonnull 5
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnonnull 5
         1: .line 352
            iload 2 /* strict */
            ifeq 4
         2: .line 353
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnonnull 3
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnonnull 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 355
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         5: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 22
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 22
         6: .line 359
            iload 2 /* strict */
            ifeq 8
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmpeq 8
         7: .line 360
            iconst_0
            ireturn
         8: .line 362
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 20
        10: .line 363
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
            iconst_0
            istore 3 /* match */
        start local 3 // boolean match
        11: .line 364
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        12: goto 17
        13: .line 365
      StackMap locals: java.security.CodeSource java.security.CodeSource int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 4 /* i */
            aaload
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 5 /* j */
            aaload
            invokevirtual java.security.CodeSigner.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 366
            iconst_1
            istore 3 /* match */
        15: .line 367
            goto 18
        16: .line 364
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        17: iload 5 /* j */
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 13
        end local 5 // int j
        18: .line 370
      StackMap locals:
      StackMap stack:
            iload 3 /* match */
            ifne 19
            iconst_0
            ireturn
        19: .line 362
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        end local 3 // boolean match
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 10
        end local 4 // int i
        21: .line 372
            iconst_1
            ireturn
        22: .line 375
      StackMap locals: java.security.CodeSource java.security.CodeSource int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 39
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 39
        23: .line 376
            iload 2 /* strict */
            ifeq 25
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmpeq 25
        24: .line 377
            iconst_0
            ireturn
        25: .line 379
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        26: goto 37
        27: .line 380
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
            iconst_0
            istore 3 /* match */
        start local 3 // boolean match
        28: .line 381
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        29: goto 34
        30: .line 382
      StackMap locals: java.security.CodeSource java.security.CodeSource int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 4 /* i */
            aaload
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 5 /* j */
            aaload
            invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 33
        31: .line 383
            iconst_1
            istore 3 /* match */
        32: .line 384
            goto 35
        33: .line 381
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 5 /* j */
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 30
        end local 5 // int j
        35: .line 387
      StackMap locals:
      StackMap stack:
            iload 3 /* match */
            ifne 36
            iconst_0
            ireturn
        36: .line 379
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        end local 3 // boolean match
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
        37: iload 4 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 27
        end local 4 // int i
        38: .line 389
            iconst_1
            ireturn
        39: .line 392
      StackMap locals: java.security.CodeSource java.security.CodeSource int
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean strict
        end local 1 // java.security.CodeSource that
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   40     0    this  Ljava/security/CodeSource;
            0   40     1    that  Ljava/security/CodeSource;
            0   40     2  strict  Z
           11   20     3   match  Z
           28   37     3   match  Z
            9   21     4       i  I
           12   18     5       j  I
           26   38     4       i  I
           29   35     5       j  I
    MethodParameters:
        Name  Flags
      that    
      strict  

  private boolean matchLocation(java.security.CodeSource);
    descriptor: (Ljava/security/CodeSource;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.CodeSource that
         0: .line 402
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnonnull 2
         1: .line 403
            iconst_1
            ireturn
         2: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            ifnull 3
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnonnull 4
         3: .line 406
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 409
            iconst_1
            ireturn
         6: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 8
         7: .line 412
            iconst_0
            ireturn
         8: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            istore 2 /* thisPort */
        start local 2 // int thisPort
         9: .line 415
            iload 2 /* thisPort */
            iconst_m1
            if_icmpeq 16
        10: .line 416
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            istore 3 /* thatPort */
        start local 3 // int thatPort
        11: .line 417
            iload 3 /* thatPort */
            iconst_m1
            if_icmpeq 12
            iload 3 /* thatPort */
            goto 13
        12: .line 418
      StackMap locals: int int
      StackMap stack:
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getDefaultPort:()I
        13: .line 417
      StackMap locals:
      StackMap stack: int
            istore 4 /* port */
        start local 4 // int port
        14: .line 419
            iload 2 /* thisPort */
            iload 4 /* port */
            if_icmpeq 16
        15: .line 420
            iconst_0
            ireturn
        end local 4 // int port
        end local 3 // int thatPort
        16: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            ldc "/-"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 22
        17: .line 428
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            iconst_0
        18: .line 429
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
        19: .line 428
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* thisPath */
        start local 3 // java.lang.String thisPath
        20: .line 430
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            aload 3 /* thisPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 35
        21: .line 431
            iconst_0
            ireturn
        end local 3 // java.lang.String thisPath
        22: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            ldc "/*"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 32
        23: .line 437
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* last */
        start local 3 // int last
        24: .line 438
            iload 3 /* last */
            iconst_m1
            if_icmpne 26
        25: .line 439
            iconst_0
            ireturn
        26: .line 440
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            iconst_0
        27: .line 441
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
        28: .line 440
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* thisPath */
        start local 4 // java.lang.String thisPath
        29: .line 442
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            iconst_0
            iload 3 /* last */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* thatPath */
        start local 5 // java.lang.String thatPath
        30: .line 443
            aload 5 /* thatPath */
            aload 4 /* thisPath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
        31: .line 444
            iconst_0
            ireturn
        end local 5 // java.lang.String thatPath
        end local 4 // java.lang.String thisPath
        end local 3 // int last
        32: .line 448
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
        33: .line 449
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
        34: .line 450
            iconst_0
            ireturn
        35: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            ifnull 38
        36: .line 455
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
        37: .line 456
            iconst_0
            ireturn
        38: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 3 /* thisHost */
        start local 3 // java.lang.String thisHost
        39: .line 460
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 4 /* thatHost */
        start local 4 // java.lang.String thatHost
        40: .line 461
            aload 3 /* thisHost */
            ifnull 52
        41: .line 462
            ldc ""
            aload 3 /* thisHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 42
            ldc "localhost"
            aload 3 /* thisHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        42: .line 463
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc ""
            aload 4 /* thatHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            ldc "localhost"
            aload 4 /* thatHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
        43: .line 465
      StackMap locals:
      StackMap stack:
            aload 3 /* thisHost */
            aload 4 /* thatHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
        44: .line 466
            aload 4 /* thatHost */
            ifnonnull 46
        45: .line 467
            iconst_0
            ireturn
        46: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            ifnonnull 48
        47: .line 470
            aload 0 /* this */
            new java.net.SocketPermission
            dup
            aload 3 /* thisHost */
            ldc "resolve"
            invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
        48: .line 472
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            ifnonnull 50
        49: .line 473
            aload 1 /* that */
            new java.net.SocketPermission
            dup
            aload 4 /* thatHost */
            ldc "resolve"
            invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
        50: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            aload 1 /* that */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            invokevirtual java.net.SocketPermission.implies:(Ljava/security/Permission;)Z
            ifne 52
        51: .line 476
            iconst_0
            ireturn
        52: .line 481
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.String thatHost
        end local 3 // java.lang.String thisHost
        end local 2 // int thisPort
        end local 1 // java.security.CodeSource that
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   53     0      this  Ljava/security/CodeSource;
            0   53     1      that  Ljava/security/CodeSource;
            9   53     2  thisPort  I
           11   16     3  thatPort  I
           14   16     4      port  I
           20   22     3  thisPath  Ljava/lang/String;
           24   32     3      last  I
           29   32     4  thisPath  Ljava/lang/String;
           30   32     5  thatPath  Ljava/lang/String;
           39   53     3  thisHost  Ljava/lang/String;
           40   53     4  thatHost  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      that  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 492
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 493
            aload 1 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 494
            aload 1 /* sb */
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 496
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 10
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            ifle 10
         4: .line 497
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 8
         6: .line 498
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 497
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 6
        end local 2 // int i
         9: .line 501
            goto 18
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 17
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            ifle 17
        11: .line 502
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        12: goto 15
        13: .line 503
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 502
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 13
        end local 2 // int i
        16: .line 505
            goto 18
        17: .line 506
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc " <no signer certificates>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 508
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 509
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Ljava/security/CodeSource;
            1   20     1    sb  Ljava/lang/StringBuilder;
            5    9     2     i  I
           12   16     2     i  I

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.io.ObjectOutputStream oos
         0: .line 530
            aload 1 /* oos */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 533
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 2
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            ifne 4
         2: .line 534
      StackMap locals:
      StackMap stack:
            aload 1 /* oos */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
         3: .line 535
            goto 17
         4: .line 537
      StackMap locals:
      StackMap stack:
            aload 1 /* oos */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
         5: .line 539
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 16
         7: .line 540
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 2 /* i */
            aaload
            astore 3 /* cert */
        start local 3 // java.security.cert.Certificate cert
         8: .line 542
            aload 1 /* oos */
            aload 3 /* cert */
            invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
            invokevirtual java.io.ObjectOutputStream.writeUTF:(Ljava/lang/String;)V
         9: .line 543
            aload 3 /* cert */
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            astore 4 /* encoded */
        start local 4 // byte[] encoded
        10: .line 544
            aload 1 /* oos */
            aload 4 /* encoded */
            arraylength
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
        11: .line 545
            aload 1 /* oos */
            aload 4 /* encoded */
            invokevirtual java.io.ObjectOutputStream.write:([B)V
        end local 4 // byte[] encoded
        12: .line 546
            goto 15
      StackMap locals: java.security.CodeSource java.io.ObjectOutputStream int java.security.cert.Certificate
      StackMap stack: java.security.cert.CertificateEncodingException
        13: astore 4 /* cee */
        start local 4 // java.security.cert.CertificateEncodingException cee
        14: .line 547
            new java.io.IOException
            dup
            aload 4 /* cee */
            invokevirtual java.security.cert.CertificateEncodingException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.security.cert.CertificateEncodingException cee
        end local 3 // java.security.cert.Certificate cert
        15: .line 539
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 7
        end local 2 // int i
        17: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 19
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            ifle 19
        18: .line 554
            aload 1 /* oos */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
        19: .line 556
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectOutputStream oos
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Ljava/security/CodeSource;
            0   20     1      oos  Ljava/io/ObjectOutputStream;
            6   17     2        i  I
            8   15     3     cert  Ljava/security/cert/Certificate;
           10   12     4  encoded  [B
           14   15     4      cee  Ljava/security/cert/CertificateEncodingException;
      Exception table:
        from    to  target  type
           8    12      13  Class java.security.cert.CertificateEncodingException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oos   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 566
            aconst_null
            astore 3 /* cfs */
        start local 3 // java.util.Hashtable cfs
         1: .line 567
            aconst_null
            astore 4 /* certList */
        start local 4 // java.util.List certList
         2: .line 569
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         3: .line 572
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readInt:()I
            istore 5 /* size */
        start local 5 // int size
         4: .line 573
            iload 5 /* size */
            ifle 10
         5: .line 576
            new java.util.Hashtable
            dup
            iconst_3
            invokespecial java.util.Hashtable.<init>:(I)V
            astore 3 /* cfs */
         6: .line 577
            new java.util.ArrayList
            dup
            iload 5 /* size */
            bipush 20
            if_icmple 7
            bipush 20
            goto 8
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream top java.util.Hashtable java.util.List int
      StackMap stack: new 6 new 6
         7: iload 5 /* size */
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream top java.util.Hashtable java.util.List int
      StackMap stack: new 6 new 6 int
         8: invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* certList */
         9: .line 578
            goto 12
      StackMap locals:
      StackMap stack:
        10: iload 5 /* size */
            ifge 12
        11: .line 579
            new java.io.IOException
            dup
            ldc "size cannot be negative"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 582
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 33
        14: .line 585
      StackMap locals: int
      StackMap stack:
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readUTF:()Ljava/lang/String;
            astore 7 /* certType */
        start local 7 // java.lang.String certType
        15: .line 586
            aload 3 /* cfs */
            aload 7 /* certType */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 588
            aload 3 /* cfs */
            aload 7 /* certType */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.CertificateFactory
            astore 2 /* cf */
        start local 2 // java.security.cert.CertificateFactory cf
        17: .line 589
            goto 25
        end local 2 // java.security.cert.CertificateFactory cf
        18: .line 592
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* certType */
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 2 /* cf */
        start local 2 // java.security.cert.CertificateFactory cf
        19: .line 593
            goto 24
        end local 2 // java.security.cert.CertificateFactory cf
      StackMap locals:
      StackMap stack: java.security.cert.CertificateException
        20: pop
        21: .line 594
            new java.lang.ClassNotFoundException
            dup
        22: .line 595
            new java.lang.StringBuilder
            dup
            ldc "Certificate factory for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* certType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 594
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.security.cert.CertificateFactory cf
        24: .line 598
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream java.security.cert.CertificateFactory java.util.Hashtable java.util.List int int java.lang.String
      StackMap stack:
            aload 3 /* cfs */
            aload 7 /* certType */
            aload 2 /* cf */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 601
      StackMap locals:
      StackMap stack:
            aload 1 /* ois */
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readInt:()I
            invokestatic sun.security.util.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
            astore 8 /* encoded */
        start local 8 // byte[] encoded
        26: .line 602
            new java.io.ByteArrayInputStream
            dup
            aload 8 /* encoded */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 9 /* bais */
        start local 9 // java.io.ByteArrayInputStream bais
        27: .line 604
            aload 4 /* certList */
            aload 2 /* cf */
            aload 9 /* bais */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 605
            goto 31
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream java.security.cert.CertificateFactory java.util.Hashtable java.util.List int int java.lang.String byte[] java.io.ByteArrayInputStream
      StackMap stack: java.security.cert.CertificateException
        29: astore 10 /* ce */
        start local 10 // java.security.cert.CertificateException ce
        30: .line 606
            new java.io.IOException
            dup
            aload 10 /* ce */
            invokevirtual java.security.cert.CertificateException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.security.cert.CertificateException ce
        31: .line 608
      StackMap locals:
      StackMap stack:
            aload 9 /* bais */
            invokevirtual java.io.ByteArrayInputStream.close:()V
        end local 9 // java.io.ByteArrayInputStream bais
        end local 8 // byte[] encoded
        end local 7 // java.lang.String certType
        32: .line 582
            iinc 6 /* i */ 1
        end local 2 // java.security.cert.CertificateFactory cf
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream top java.util.Hashtable java.util.List int int
      StackMap stack:
        33: iload 6 /* i */
            iload 5 /* size */
            if_icmplt 14
        end local 6 // int i
        34: .line 611
            aload 4 /* certList */
            ifnull 38
        35: .line 612
            aload 0 /* this */
            aload 4 /* certList */
        36: .line 613
            iload 5 /* size */
            anewarray java.security.cert.Certificate
        37: .line 612
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
        38: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
        39: .line 618
            goto 41
      StackMap locals:
      StackMap stack: java.io.IOException
        40: pop
        41: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnull 43
        42: .line 623
            aload 0 /* this */
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokestatic sun.net.util.URLUtil.urlNoFragString:(Ljava/net/URL;)Ljava/lang/String;
            putfield java.security.CodeSource.locationNoFragString:Ljava/lang/String;
        43: .line 625
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int size
        end local 4 // java.util.List certList
        end local 3 // java.util.Hashtable cfs
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   44     0      this  Ljava/security/CodeSource;
            0   44     1       ois  Ljava/io/ObjectInputStream;
           17   18     2        cf  Ljava/security/cert/CertificateFactory;
           19   20     2        cf  Ljava/security/cert/CertificateFactory;
           24   33     2        cf  Ljava/security/cert/CertificateFactory;
            1   44     3       cfs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
            2   44     4  certList  Ljava/util/List<Ljava/security/cert/Certificate;>;
            4   44     5      size  I
           13   34     6         i  I
           15   32     7  certType  Ljava/lang/String;
           26   32     8   encoded  [B
           27   32     9      bais  Ljava/io/ByteArrayInputStream;
           30   31    10        ce  Ljava/security/cert/CertificateException;
      Exception table:
        from    to  target  type
          18    19      20  Class java.security.cert.CertificateException
          27    28      29  Class java.security.cert.CertificateException
          38    39      40  Class java.io.IOException
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      ois   

  private java.security.CodeSigner[] convertCertArrayToSignerArray(java.security.cert.Certificate[]);
    descriptor: ([Ljava/security/cert/Certificate;)[Ljava/security/CodeSigner;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.cert.Certificate[] certs
         0: .line 637
            aload 1 /* certs */
            ifnonnull 2
         1: .line 638
            aconst_null
            areturn
         2: .line 643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
            ifnonnull 4
         3: .line 644
            aload 0 /* this */
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            putfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
         4: .line 648
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: .line 649
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* signers */
        start local 3 // java.util.List signers
         6: .line 650
            goto 20
         7: .line 652
      StackMap locals: int java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
         8: .line 651
            astore 4 /* certChain */
        start local 4 // java.util.List certChain
         9: .line 653
            aload 4 /* certChain */
            aload 1 /* certs */
            iload 2 /* i */
            iinc 2 /* i */ 1
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 654
            iload 2 /* i */
            istore 5 /* j */
        start local 5 // int j
        11: .line 658
            goto 14
        12: .line 661
      StackMap locals: java.util.List int
      StackMap stack:
            aload 4 /* certChain */
            aload 1 /* certs */
            iload 5 /* j */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 662
            iinc 5 /* j */ 1
        14: .line 658
      StackMap locals:
      StackMap stack:
            iload 5 /* j */
            aload 1 /* certs */
            arraylength
            if_icmpge 17
        15: .line 659
            aload 1 /* certs */
            iload 5 /* j */
            aaload
            instanceof java.security.cert.X509Certificate
            ifeq 17
        16: .line 660
            aload 1 /* certs */
            iload 5 /* j */
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
            iconst_m1
            if_icmpne 12
        17: .line 664
      StackMap locals:
      StackMap stack:
            iload 5 /* j */
            istore 2 /* i */
        18: .line 665
            aload 0 /* this */
            getfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
            aload 4 /* certChain */
            invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
            astore 6 /* certPath */
        start local 6 // java.security.cert.CertPath certPath
        19: .line 666
            aload 3 /* signers */
            new java.security.CodeSigner
            dup
            aload 6 /* certPath */
            aconst_null
            invokespecial java.security.CodeSigner.<init>:(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.security.cert.CertPath certPath
        end local 5 // int j
        end local 4 // java.util.List certChain
        20: .line 650
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 1 /* certs */
            arraylength
            if_icmplt 7
        21: .line 669
            aload 3 /* signers */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 23
        22: .line 670
            aconst_null
            areturn
        23: .line 672
      StackMap locals:
      StackMap stack:
            aload 3 /* signers */
            aload 3 /* signers */
            invokeinterface java.util.List.size:()I
            anewarray java.security.CodeSigner
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
        24: areturn
        end local 3 // java.util.List signers
        end local 2 // int i
        25: .line 675
      StackMap locals: java.security.CodeSource java.security.cert.Certificate[]
      StackMap stack: java.security.cert.CertificateException
            pop
        26: .line 676
            aconst_null
            areturn
        end local 1 // java.security.cert.Certificate[] certs
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Ljava/security/CodeSource;
            0   27     1      certs  [Ljava/security/cert/Certificate;
            5   25     2          i  I
            6   25     3    signers  Ljava/util/List<Ljava/security/CodeSigner;>;
            9   20     4  certChain  Ljava/util/List<Ljava/security/cert/Certificate;>;
           11   20     5          j  I
           19   20     6   certPath  Ljava/security/cert/CertPath;
      Exception table:
        from    to  target  type
           2    22      25  Class java.security.cert.CertificateException
          23    24      25  Class java.security.cert.CertificateException
    MethodParameters:
       Name  Flags
      certs  
}
SourceFile: "CodeSource.java"