class sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator implements java.util.Comparator<java.security.cert.X509Certificate>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator
  super_class: java.lang.Object
{
  static final java.lang.String METHOD_NME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "PKIXCertComparator.compare()"

  private final java.util.Set<javax.security.auth.x500.X500Principal> trustedSubjectDNs;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/security/auth/x500/X500Principal;>;

  private final java.security.cert.X509CertSelector certSkidSelector;
    descriptor: Ljava/security/cert/X509CertSelector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.util.Set<javax.security.auth.x500.X500Principal>, sun.security.x509.X509CertImpl);
    descriptor: (Ljava/util/Set;Lsun/security/x509/X509CertImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator this
        start local 1 // java.util.Set trustedSubjectDNs
        start local 2 // sun.security.x509.X509CertImpl previousCert
         0: .line 437
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 439
            aload 0 /* this */
            aload 1 /* trustedSubjectDNs */
            putfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.trustedSubjectDNs:Ljava/util/Set;
         2: .line 440
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* previousCert */
            invokevirtual sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.getSelector:(Lsun/security/x509/X509CertImpl;)Ljava/security/cert/X509CertSelector;
            putfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.certSkidSelector:Ljava/security/cert/X509CertSelector;
         3: .line 441
            return
        end local 2 // sun.security.x509.X509CertImpl previousCert
        end local 1 // java.util.Set trustedSubjectDNs
        end local 0 // sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;
            0    4     1  trustedSubjectDNs  Ljava/util/Set<Ljavax/security/auth/x500/X500Principal;>;
            0    4     2       previousCert  Lsun/security/x509/X509CertImpl;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Set<Ljavax/security/auth/x500/X500Principal;>;Lsun/security/x509/X509CertImpl;)V
    MethodParameters:
                   Name  Flags
      trustedSubjectDNs  
      previousCert       

  private java.security.cert.X509CertSelector getSelector(sun.security.x509.X509CertImpl);
    descriptor: (Lsun/security/x509/X509CertImpl;)Ljava/security/cert/X509CertSelector;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator this
        start local 1 // sun.security.x509.X509CertImpl previousCert
         0: .line 449
            aload 1 /* previousCert */
            ifnull 9
         1: .line 451
            aload 1 /* previousCert */
            invokevirtual sun.security.x509.X509CertImpl.getAuthorityKeyIdentifierExtension:()Lsun/security/x509/AuthorityKeyIdentifierExtension;
         2: .line 450
            astore 2 /* akidExt */
        start local 2 // sun.security.x509.AuthorityKeyIdentifierExtension akidExt
         3: .line 452
            aload 2 /* akidExt */
            ifnull 9
         4: .line 453
            aload 2 /* akidExt */
            invokevirtual sun.security.x509.AuthorityKeyIdentifierExtension.getEncodedKeyIdentifier:()[B
            astore 3 /* skid */
        start local 3 // byte[] skid
         5: .line 454
            aload 3 /* skid */
            ifnull 9
         6: .line 455
            new java.security.cert.X509CertSelector
            dup
            invokespecial java.security.cert.X509CertSelector.<init>:()V
            astore 4 /* selector */
        start local 4 // java.security.cert.X509CertSelector selector
         7: .line 456
            aload 4 /* selector */
            aload 3 /* skid */
            invokevirtual java.security.cert.X509CertSelector.setSubjectKeyIdentifier:([B)V
         8: .line 457
            aload 4 /* selector */
            areturn
        end local 4 // java.security.cert.X509CertSelector selector
        end local 3 // byte[] skid
        end local 2 // sun.security.x509.AuthorityKeyIdentifierExtension akidExt
         9: .line 461
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // sun.security.x509.X509CertImpl previousCert
        end local 0 // sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;
            0   10     1  previousCert  Lsun/security/x509/X509CertImpl;
            3    9     2       akidExt  Lsun/security/x509/AuthorityKeyIdentifierExtension;
            5    9     3          skid  [B
            7    9     4      selector  Ljava/security/cert/X509CertSelector;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      previousCert  

  public int compare(java.security.cert.X509Certificate, java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=16, args_size=3
        start local 0 // sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator this
        start local 1 // java.security.cert.X509Certificate oCert1
        start local 2 // java.security.cert.X509Certificate oCert2
         0: .line 483
            aload 1 /* oCert1 */
            aload 2 /* oCert2 */
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.certSkidSelector:Ljava/security/cert/X509CertSelector;
            ifnull 6
         2: .line 487
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.certSkidSelector:Ljava/security/cert/X509CertSelector;
            aload 1 /* oCert1 */
            invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
            ifeq 4
         3: .line 488
            iconst_m1
            ireturn
         4: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.certSkidSelector:Ljava/security/cert/X509CertSelector;
            aload 2 /* oCert2 */
            invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
            ifeq 6
         5: .line 491
            iconst_1
            ireturn
         6: .line 495
      StackMap locals:
      StackMap stack:
            aload 1 /* oCert1 */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 3 /* cIssuer1 */
        start local 3 // javax.security.auth.x500.X500Principal cIssuer1
         7: .line 496
            aload 2 /* oCert2 */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 4 /* cIssuer2 */
        start local 4 // javax.security.auth.x500.X500Principal cIssuer2
         8: .line 497
            aload 3 /* cIssuer1 */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 5 /* cIssuer1Name */
        start local 5 // sun.security.x509.X500Name cIssuer1Name
         9: .line 498
            aload 4 /* cIssuer2 */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 6 /* cIssuer2Name */
        start local 6 // sun.security.x509.X500Name cIssuer2Name
        10: .line 500
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 13
        11: .line 501
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() o1 Issuer:  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* cIssuer1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        12: .line 502
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() o2 Issuer:  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* cIssuer2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        13: .line 508
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 15
        14: .line 509
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "PKIXCertComparator.compare() MATCH TRUSTED SUBJECT TEST..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        15: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.trustedSubjectDNs:Ljava/util/Set;
            aload 3 /* cIssuer1 */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 7 /* m1 */
        start local 7 // boolean m1
        16: .line 513
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.trustedSubjectDNs:Ljava/util/Set;
            aload 4 /* cIssuer2 */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 8 /* m2 */
        start local 8 // boolean m2
        17: .line 514
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 20
        18: .line 515
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() m1: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* m1 */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        19: .line 516
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() m2: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* m2 */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        20: .line 518
      StackMap locals: int int
      StackMap stack:
            iload 7 /* m1 */
            ifeq 22
            iload 8 /* m2 */
            ifeq 22
        21: .line 519
            iconst_m1
            ireturn
        22: .line 520
      StackMap locals:
      StackMap stack:
            iload 7 /* m1 */
            ifeq 24
        23: .line 521
            iconst_m1
            ireturn
        24: .line 522
      StackMap locals:
      StackMap stack:
            iload 8 /* m2 */
            ifeq 26
        25: .line 523
            iconst_1
            ireturn
        26: .line 529
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 28
        27: .line 530
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "PKIXCertComparator.compare() NAMING DESCENDANT TEST..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        28: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.trustedSubjectDNs:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 48
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int top java.util.Iterator
      StackMap stack:
        29: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.security.auth.x500.X500Principal
            astore 9 /* tSubject */
        start local 9 // javax.security.auth.x500.X500Principal tSubject
        30: .line 533
            aload 9 /* tSubject */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 11 /* tSubjectName */
        start local 11 // sun.security.x509.X500Name tSubjectName
        31: .line 535
            aload 11 /* tSubjectName */
            aload 5 /* cIssuer1Name */
            iconst_m1
            invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
        32: .line 534
            istore 12 /* distanceTto1 */
        start local 12 // int distanceTto1
        33: .line 537
            aload 11 /* tSubjectName */
            aload 6 /* cIssuer2Name */
            iconst_m1
            invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
        34: .line 536
            istore 13 /* distanceTto2 */
        start local 13 // int distanceTto2
        35: .line 538
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 38
        36: .line 539
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() distanceTto1: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 12 /* distanceTto1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        37: .line 540
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() distanceTto2: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 13 /* distanceTto2 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        38: .line 542
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int javax.security.auth.x500.X500Principal java.util.Iterator sun.security.x509.X500Name int int
      StackMap stack:
            iload 12 /* distanceTto1 */
            ifgt 39
            iload 13 /* distanceTto2 */
            ifle 48
        39: .line 543
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            iload 13 /* distanceTto2 */
            if_icmpne 41
        40: .line 544
            iconst_m1
            ireturn
        41: .line 545
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            ifle 43
            iload 13 /* distanceTto2 */
            ifgt 43
        42: .line 546
            iconst_m1
            ireturn
        43: .line 547
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            ifgt 45
            iload 13 /* distanceTto2 */
            ifle 45
        44: .line 548
            iconst_1
            ireturn
        45: .line 549
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            iload 13 /* distanceTto2 */
            if_icmpge 47
        46: .line 550
            iconst_m1
            ireturn
        47: .line 552
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 13 // int distanceTto2
        end local 12 // int distanceTto1
        end local 11 // sun.security.x509.X500Name tSubjectName
        end local 9 // javax.security.auth.x500.X500Principal tSubject
        48: .line 532
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        49: .line 560
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 51
        50: .line 561
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "PKIXCertComparator.compare() NAMING ANCESTOR TEST..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        51: .line 563
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.trustedSubjectDNs:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 71
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int top java.util.Iterator
      StackMap stack:
        52: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.security.auth.x500.X500Principal
            astore 9 /* tSubject */
        start local 9 // javax.security.auth.x500.X500Principal tSubject
        53: .line 564
            aload 9 /* tSubject */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 11 /* tSubjectName */
        start local 11 // sun.security.x509.X500Name tSubjectName
        54: .line 567
            aload 11 /* tSubjectName */
            aload 5 /* cIssuer1Name */
            ldc 2147483647
        55: .line 566
            invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
            istore 12 /* distanceTto1 */
        start local 12 // int distanceTto1
        56: .line 569
            aload 11 /* tSubjectName */
            aload 6 /* cIssuer2Name */
            ldc 2147483647
        57: .line 568
            invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
            istore 13 /* distanceTto2 */
        start local 13 // int distanceTto2
        58: .line 570
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 61
        59: .line 571
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() distanceTto1: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 12 /* distanceTto1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        60: .line 572
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() distanceTto2: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 13 /* distanceTto2 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        61: .line 574
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int javax.security.auth.x500.X500Principal java.util.Iterator sun.security.x509.X500Name int int
      StackMap stack:
            iload 12 /* distanceTto1 */
            iflt 62
            iload 13 /* distanceTto2 */
            ifge 71
        62: .line 575
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            iload 13 /* distanceTto2 */
            if_icmpne 64
        63: .line 576
            iconst_m1
            ireturn
        64: .line 577
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            ifge 66
            iload 13 /* distanceTto2 */
            iflt 66
        65: .line 578
            iconst_m1
            ireturn
        66: .line 579
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            iflt 68
            iload 13 /* distanceTto2 */
            ifge 68
        67: .line 580
            iconst_1
            ireturn
        68: .line 581
      StackMap locals:
      StackMap stack:
            iload 12 /* distanceTto1 */
            iload 13 /* distanceTto2 */
            if_icmple 70
        69: .line 582
            iconst_m1
            ireturn
        70: .line 584
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 13 // int distanceTto2
        end local 12 // int distanceTto1
        end local 11 // sun.security.x509.X500Name tSubjectName
        end local 9 // javax.security.auth.x500.X500Principal tSubject
        71: .line 563
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        72: .line 593
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 74
        73: .line 594
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "PKIXCertComparator.compare() SAME NAMESPACE AS TRUSTED TEST..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        74: .line 596
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.trustedSubjectDNs:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 98
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int top java.util.Iterator
      StackMap stack:
        75: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.security.auth.x500.X500Principal
            astore 9 /* tSubject */
        start local 9 // javax.security.auth.x500.X500Principal tSubject
        76: .line 597
            aload 9 /* tSubject */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 11 /* tSubjectName */
        start local 11 // sun.security.x509.X500Name tSubjectName
        77: .line 598
            aload 11 /* tSubjectName */
            aload 5 /* cIssuer1Name */
            invokevirtual sun.security.x509.X500Name.commonAncestor:(Lsun/security/x509/X500Name;)Lsun/security/x509/X500Name;
            astore 12 /* tAo1 */
        start local 12 // sun.security.x509.X500Name tAo1
        78: .line 599
            aload 11 /* tSubjectName */
            aload 6 /* cIssuer2Name */
            invokevirtual sun.security.x509.X500Name.commonAncestor:(Lsun/security/x509/X500Name;)Lsun/security/x509/X500Name;
            astore 13 /* tAo2 */
        start local 13 // sun.security.x509.X500Name tAo2
        79: .line 600
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 82
        80: .line 601
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() tAo1: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* tAo1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        81: .line 602
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() tAo2: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* tAo2 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        82: .line 604
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int javax.security.auth.x500.X500Principal java.util.Iterator sun.security.x509.X500Name sun.security.x509.X500Name sun.security.x509.X500Name
      StackMap stack:
            aload 12 /* tAo1 */
            ifnonnull 83
            aload 13 /* tAo2 */
            ifnull 98
        83: .line 605
      StackMap locals:
      StackMap stack:
            aload 12 /* tAo1 */
            ifnull 95
            aload 13 /* tAo2 */
            ifnull 95
        84: .line 607
            aload 11 /* tSubjectName */
            aload 5 /* cIssuer1Name */
            ldc 2147483647
        85: .line 606
            invokestatic sun.security.provider.certpath.Builder.hops:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
            istore 14 /* hopsTto1 */
        start local 14 // int hopsTto1
        86: .line 609
            aload 11 /* tSubjectName */
            aload 6 /* cIssuer2Name */
            ldc 2147483647
        87: .line 608
            invokestatic sun.security.provider.certpath.Builder.hops:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
            istore 15 /* hopsTto2 */
        start local 15 // int hopsTto2
        88: .line 610
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 91
        89: .line 611
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() hopsTto1: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 14 /* hopsTto1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        90: .line 612
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() hopsTto2: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 15 /* hopsTto2 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        91: .line 614
      StackMap locals: int int
      StackMap stack:
            iload 14 /* hopsTto1 */
            iload 15 /* hopsTto2 */
            if_icmpeq 98
        92: .line 615
            iload 14 /* hopsTto1 */
            iload 15 /* hopsTto2 */
            if_icmple 94
        93: .line 616
            iconst_1
            ireturn
        94: .line 618
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 15 // int hopsTto2
        end local 14 // int hopsTto1
        95: .line 620
      StackMap locals:
      StackMap stack:
            aload 12 /* tAo1 */
            ifnonnull 97
        96: .line 621
            iconst_1
            ireturn
        97: .line 623
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 13 // sun.security.x509.X500Name tAo2
        end local 12 // sun.security.x509.X500Name tAo1
        end local 11 // sun.security.x509.X500Name tSubjectName
        end local 9 // javax.security.auth.x500.X500Principal tSubject
        98: .line 596
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 75
        99: .line 632
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 101
       100: .line 633
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "PKIXCertComparator.compare() CERT ISSUER/SUBJECT COMPARISON TEST..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       101: .line 635
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int
      StackMap stack:
            aload 1 /* oCert1 */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 9 /* cSubject1 */
        start local 9 // javax.security.auth.x500.X500Principal cSubject1
       102: .line 636
            aload 2 /* oCert2 */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 10 /* cSubject2 */
        start local 10 // javax.security.auth.x500.X500Principal cSubject2
       103: .line 637
            aload 9 /* cSubject1 */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 11 /* cSubject1Name */
        start local 11 // sun.security.x509.X500Name cSubject1Name
       104: .line 638
            aload 10 /* cSubject2 */
            invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
            astore 12 /* cSubject2Name */
        start local 12 // sun.security.x509.X500Name cSubject2Name
       105: .line 640
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 108
       106: .line 641
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() o1 Subject: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* cSubject1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       107: .line 642
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() o2 Subject: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* cSubject2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       108: .line 645
      StackMap locals: sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name int int javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal sun.security.x509.X500Name sun.security.x509.X500Name
      StackMap stack:
            aload 11 /* cSubject1Name */
            aload 5 /* cIssuer1Name */
            ldc 2147483647
       109: .line 644
            invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
            istore 13 /* distanceStoI1 */
        start local 13 // int distanceStoI1
       110: .line 647
            aload 12 /* cSubject2Name */
            aload 6 /* cIssuer2Name */
            ldc 2147483647
       111: .line 646
            invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
            istore 14 /* distanceStoI2 */
        start local 14 // int distanceStoI2
       112: .line 648
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 115
       113: .line 649
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() distanceStoI1: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 13 /* distanceStoI1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       114: .line 650
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "PKIXCertComparator.compare() distanceStoI2: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 14 /* distanceStoI2 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       115: .line 652
      StackMap locals: int int
      StackMap stack:
            iload 14 /* distanceStoI2 */
            iload 13 /* distanceStoI1 */
            if_icmple 117
       116: .line 653
            iconst_m1
            ireturn
       117: .line 654
      StackMap locals:
      StackMap stack:
            iload 14 /* distanceStoI2 */
            iload 13 /* distanceStoI1 */
            if_icmpge 119
       118: .line 655
            iconst_1
            ireturn
       119: .line 660
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 121
       120: .line 661
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "PKIXCertComparator.compare() no tests matched; RETURN 0"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       121: .line 663
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 14 // int distanceStoI2
        end local 13 // int distanceStoI1
        end local 12 // sun.security.x509.X500Name cSubject2Name
        end local 11 // sun.security.x509.X500Name cSubject1Name
        end local 10 // javax.security.auth.x500.X500Principal cSubject2
        end local 9 // javax.security.auth.x500.X500Principal cSubject1
        end local 8 // boolean m2
        end local 7 // boolean m1
        end local 6 // sun.security.x509.X500Name cIssuer2Name
        end local 5 // sun.security.x509.X500Name cIssuer1Name
        end local 4 // javax.security.auth.x500.X500Principal cIssuer2
        end local 3 // javax.security.auth.x500.X500Principal cIssuer1
        end local 2 // java.security.cert.X509Certificate oCert2
        end local 1 // java.security.cert.X509Certificate oCert1
        end local 0 // sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  122     0           this  Lsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;
            0  122     1         oCert1  Ljava/security/cert/X509Certificate;
            0  122     2         oCert2  Ljava/security/cert/X509Certificate;
            7  122     3       cIssuer1  Ljavax/security/auth/x500/X500Principal;
            8  122     4       cIssuer2  Ljavax/security/auth/x500/X500Principal;
            9  122     5   cIssuer1Name  Lsun/security/x509/X500Name;
           10  122     6   cIssuer2Name  Lsun/security/x509/X500Name;
           16  122     7             m1  Z
           17  122     8             m2  Z
           30   48     9       tSubject  Ljavax/security/auth/x500/X500Principal;
           31   48    11   tSubjectName  Lsun/security/x509/X500Name;
           33   48    12   distanceTto1  I
           35   48    13   distanceTto2  I
           53   71     9       tSubject  Ljavax/security/auth/x500/X500Principal;
           54   71    11   tSubjectName  Lsun/security/x509/X500Name;
           56   71    12   distanceTto1  I
           58   71    13   distanceTto2  I
           76   98     9       tSubject  Ljavax/security/auth/x500/X500Principal;
           77   98    11   tSubjectName  Lsun/security/x509/X500Name;
           78   98    12           tAo1  Lsun/security/x509/X500Name;
           79   98    13           tAo2  Lsun/security/x509/X500Name;
           86   95    14       hopsTto1  I
           88   95    15       hopsTto2  I
          102  122     9      cSubject1  Ljavax/security/auth/x500/X500Principal;
          103  122    10      cSubject2  Ljavax/security/auth/x500/X500Principal;
          104  122    11  cSubject1Name  Lsun/security/x509/X500Name;
          105  122    12  cSubject2Name  Lsun/security/x509/X500Name;
          110  122    13  distanceStoI1  I
          112  122    14  distanceStoI2  I
    MethodParameters:
        Name  Flags
      oCert1  
      oCert2  

  public int compare(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast java.security.cert.X509Certificate
            aload 2
            checkcast java.security.cert.X509Certificate
            invokevirtual sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.compare:(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/util/Comparator<Ljava/security/cert/X509Certificate;>;
SourceFile: "ForwardBuilder.java"
NestHost: sun.security.provider.certpath.ForwardBuilder
InnerClasses:
  PKIXCertComparator = sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator of sun.security.provider.certpath.ForwardBuilder