final class sun.security.ssl.SSLKeyExchange implements sun.security.ssl.SSLKeyAgreementGenerator, sun.security.ssl.SSLHandshakeBinding
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLKeyExchange
  super_class: java.lang.Object
{
  private final sun.security.ssl.SSLAuthentication authentication;
    descriptor: Lsun/security/ssl/SSLAuthentication;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.ssl.SSLKeyAgreement keyAgreement;
    descriptor: Lsun/security/ssl/SSLKeyAgreement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(sun.security.ssl.X509Authentication, sun.security.ssl.SSLKeyAgreement);
    descriptor: (Lsun/security/ssl/X509Authentication;Lsun/security/ssl/SSLKeyAgreement;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLKeyExchange this
        start local 1 // sun.security.ssl.X509Authentication authentication
        start local 2 // sun.security.ssl.SSLKeyAgreement keyAgreement
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 1 /* authentication */
            putfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
         2: .line 48
            aload 0 /* this */
            aload 2 /* keyAgreement */
            putfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
         3: .line 49
            return
        end local 2 // sun.security.ssl.SSLKeyAgreement keyAgreement
        end local 1 // sun.security.ssl.X509Authentication authentication
        end local 0 // sun.security.ssl.SSLKeyExchange this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lsun/security/ssl/SSLKeyExchange;
            0    4     1  authentication  Lsun/security/ssl/X509Authentication;
            0    4     2    keyAgreement  Lsun/security/ssl/SSLKeyAgreement;
    MethodParameters:
                Name  Flags
      authentication  
      keyAgreement    

  sun.security.ssl.SSLPossession[] createPossessions(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLPossession;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLKeyExchange this
        start local 1 // sun.security.ssl.HandshakeContext context
         0: .line 53
            aconst_null
            astore 2 /* authPossession */
        start local 2 // sun.security.ssl.SSLPossession authPossession
         1: .line 54
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 8
         2: .line 55
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            aload 1 /* context */
            invokeinterface sun.security.ssl.SSLAuthentication.createPossession:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
            astore 2 /* authPossession */
         3: .line 56
            aload 2 /* authPossession */
            ifnonnull 5
         4: .line 57
            iconst_0
            anewarray sun.security.ssl.SSLPossession
            areturn
         5: .line 58
      StackMap locals: sun.security.ssl.SSLPossession
      StackMap stack:
            aload 1 /* context */
            instanceof sun.security.ssl.ServerHandshakeContext
            ifeq 8
         6: .line 61
            aload 1 /* context */
            checkcast sun.security.ssl.ServerHandshakeContext
            astore 3 /* shc */
        start local 3 // sun.security.ssl.ServerHandshakeContext shc
         7: .line 62
            aload 3 /* shc */
            aload 2 /* authPossession */
            putfield sun.security.ssl.ServerHandshakeContext.interimAuthn:Lsun/security/ssl/SSLPossession;
        end local 3 // sun.security.ssl.ServerHandshakeContext shc
         8: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            getstatic sun.security.ssl.SSLKeyExchange$T12KeyAgreement.RSA_EXPORT:Lsun/security/ssl/SSLKeyExchange$T12KeyAgreement;
            if_acmpne 24
         9: .line 70
            aload 2 /* authPossession */
            checkcast sun.security.ssl.X509Authentication$X509Possession
            astore 4 /* x509Possession */
        start local 4 // sun.security.ssl.X509Authentication$X509Possession x509Possession
        10: .line 72
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popCerts:[Ljava/security/cert/X509Certificate;
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
        11: .line 71
            invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
        12: .line 72
            sipush 512
            if_icmple 20
        13: .line 73
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            aload 1 /* context */
            invokeinterface sun.security.ssl.SSLKeyAgreement.createPossession:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
            astore 3 /* kaPossession */
        start local 3 // sun.security.ssl.SSLPossession kaPossession
        14: .line 75
            aload 3 /* kaPossession */
            ifnonnull 16
        15: .line 76
            iconst_0
            anewarray sun.security.ssl.SSLPossession
            areturn
        16: .line 78
      StackMap locals: sun.security.ssl.SSLPossession sun.security.ssl.X509Authentication$X509Possession
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 18
        17: .line 79
            iconst_2
            anewarray sun.security.ssl.SSLPossession
            dup
            iconst_0
            aload 2 /* authPossession */
            aastore
            dup
            iconst_1
            aload 3 /* kaPossession */
            aastore
            goto 19
        18: .line 80
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray sun.security.ssl.SSLPossession
            dup
            iconst_0
            aload 3 /* kaPossession */
            aastore
        19: .line 78
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLPossession[]
            areturn
        end local 3 // sun.security.ssl.SSLPossession kaPossession
        20: .line 83
      StackMap locals: sun.security.ssl.SSLKeyExchange sun.security.ssl.HandshakeContext sun.security.ssl.SSLPossession top sun.security.ssl.X509Authentication$X509Possession
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 22
        21: .line 84
            iconst_1
            anewarray sun.security.ssl.SSLPossession
            dup
            iconst_0
            aload 2 /* authPossession */
            aastore
            goto 23
        22: .line 85
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray sun.security.ssl.SSLPossession
        23: .line 83
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLPossession[]
            areturn
        end local 4 // sun.security.ssl.X509Authentication$X509Possession x509Possession
        24: .line 88
      StackMap locals: sun.security.ssl.SSLKeyExchange sun.security.ssl.HandshakeContext sun.security.ssl.SSLPossession
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            aload 1 /* context */
            invokeinterface sun.security.ssl.SSLKeyAgreement.createPossession:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
            astore 3 /* kaPossession */
        start local 3 // sun.security.ssl.SSLPossession kaPossession
        25: .line 89
            aload 3 /* kaPossession */
            ifnonnull 33
        26: .line 91
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            getstatic sun.security.ssl.SSLKeyExchange$T12KeyAgreement.RSA:Lsun/security/ssl/SSLKeyExchange$T12KeyAgreement;
            if_acmpeq 28
        27: .line 92
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            getstatic sun.security.ssl.SSLKeyExchange$T12KeyAgreement.ECDH:Lsun/security/ssl/SSLKeyExchange$T12KeyAgreement;
            if_acmpne 32
        28: .line 93
      StackMap locals: sun.security.ssl.SSLPossession
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 30
        29: .line 94
            iconst_1
            anewarray sun.security.ssl.SSLPossession
            dup
            iconst_0
            aload 2 /* authPossession */
            aastore
            goto 31
        30: .line 95
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray sun.security.ssl.SSLPossession
        31: .line 93
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLPossession[]
            areturn
        32: .line 97
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray sun.security.ssl.SSLPossession
            areturn
        33: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 35
        34: .line 101
            iconst_2
            anewarray sun.security.ssl.SSLPossession
            dup
            iconst_0
            aload 2 /* authPossession */
            aastore
            dup
            iconst_1
            aload 3 /* kaPossession */
            aastore
            goto 36
        35: .line 102
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray sun.security.ssl.SSLPossession
            dup
            iconst_0
            aload 3 /* kaPossession */
            aastore
        36: .line 100
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLPossession[]
            areturn
        end local 3 // sun.security.ssl.SSLPossession kaPossession
        end local 2 // sun.security.ssl.SSLPossession authPossession
        end local 1 // sun.security.ssl.HandshakeContext context
        end local 0 // sun.security.ssl.SSLKeyExchange this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Lsun/security/ssl/SSLKeyExchange;
            0   37     1         context  Lsun/security/ssl/HandshakeContext;
            1   37     2  authPossession  Lsun/security/ssl/SSLPossession;
            7    8     3             shc  Lsun/security/ssl/ServerHandshakeContext;
           14   20     3    kaPossession  Lsun/security/ssl/SSLPossession;
           25   37     3    kaPossession  Lsun/security/ssl/SSLPossession;
           10   24     4  x509Possession  Lsun/security/ssl/X509Authentication$X509Possession;
    MethodParameters:
         Name  Flags
      context  

  public sun.security.ssl.SSLKeyDerivation createKeyDerivation(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLKeyDerivation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLKeyExchange this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
         0: .line 110
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLKeyAgreement.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLKeyDerivation;
            areturn
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.SSLKeyExchange this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lsun/security/ssl/SSLKeyExchange;
            0    1     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      handshakeContext  

  public sun.security.ssl.SSLHandshake[] getRelatedHandshakers(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLHandshake;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLKeyExchange this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
         0: .line 117
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 4
         1: .line 119
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLAuthentication.getRelatedHandshakers:(Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLHandshake;
         2: .line 118
            astore 2 /* auHandshakes */
        start local 2 // sun.security.ssl.SSLHandshake[] auHandshakes
         3: .line 120
            goto 5
        end local 2 // sun.security.ssl.SSLHandshake[] auHandshakes
         4: .line 121
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* auHandshakes */
        start local 2 // sun.security.ssl.SSLHandshake[] auHandshakes
         5: .line 125
      StackMap locals: sun.security.ssl.SSLHandshake[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLKeyAgreement.getRelatedHandshakers:(Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLHandshake;
         6: .line 124
            astore 3 /* kaHandshakes */
        start local 3 // sun.security.ssl.SSLHandshake[] kaHandshakes
         7: .line 127
            aload 2 /* auHandshakes */
            ifnull 8
            aload 2 /* auHandshakes */
            arraylength
            ifne 9
         8: .line 128
      StackMap locals: sun.security.ssl.SSLHandshake[]
      StackMap stack:
            aload 3 /* kaHandshakes */
            areturn
         9: .line 129
      StackMap locals:
      StackMap stack:
            aload 3 /* kaHandshakes */
            ifnull 10
            aload 3 /* kaHandshakes */
            arraylength
            ifne 11
        10: .line 130
      StackMap locals:
      StackMap stack:
            aload 2 /* auHandshakes */
            areturn
        11: .line 133
      StackMap locals:
      StackMap stack:
            aload 2 /* auHandshakes */
            aload 2 /* auHandshakes */
            arraylength
            aload 3 /* kaHandshakes */
            arraylength
            iadd
        12: .line 132
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast sun.security.ssl.SSLHandshake[]
            astore 4 /* producers */
        start local 4 // sun.security.ssl.SSLHandshake[] producers
        13: .line 134
            aload 3 /* kaHandshakes */
            iconst_0
        14: .line 135
            aload 4 /* producers */
            aload 2 /* auHandshakes */
            arraylength
            aload 3 /* kaHandshakes */
            arraylength
        15: .line 134
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 136
            aload 4 /* producers */
            areturn
        end local 4 // sun.security.ssl.SSLHandshake[] producers
        end local 3 // sun.security.ssl.SSLHandshake[] kaHandshakes
        end local 2 // sun.security.ssl.SSLHandshake[] auHandshakes
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.SSLKeyExchange this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lsun/security/ssl/SSLKeyExchange;
            0   17     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            3    4     2      auHandshakes  [Lsun/security/ssl/SSLHandshake;
            5   17     2      auHandshakes  [Lsun/security/ssl/SSLHandshake;
            7   17     3      kaHandshakes  [Lsun/security/ssl/SSLHandshake;
           13   17     4         producers  [Lsun/security/ssl/SSLHandshake;
    MethodParameters:
                  Name  Flags
      handshakeContext  

  public java.util.Map$Entry<java.lang.Byte, sun.security.ssl.HandshakeProducer>[] getHandshakeProducers(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLKeyExchange this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
         0: .line 144
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 4
         1: .line 146
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLAuthentication.getHandshakeProducers:(Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
         2: .line 145
            astore 2 /* auProducers */
        start local 2 // java.util.Map$Entry[] auProducers
         3: .line 147
            goto 5
        end local 2 // java.util.Map$Entry[] auProducers
         4: .line 148
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* auProducers */
        start local 2 // java.util.Map$Entry[] auProducers
         5: .line 152
      StackMap locals: java.util.Map$Entry[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLKeyAgreement.getHandshakeProducers:(Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
         6: .line 151
            astore 3 /* kaProducers */
        start local 3 // java.util.Map$Entry[] kaProducers
         7: .line 154
            aload 2 /* auProducers */
            ifnull 8
            aload 2 /* auProducers */
            arraylength
            ifne 9
         8: .line 155
      StackMap locals: java.util.Map$Entry[]
      StackMap stack:
            aload 3 /* kaProducers */
            areturn
         9: .line 156
      StackMap locals:
      StackMap stack:
            aload 3 /* kaProducers */
            ifnull 10
            aload 3 /* kaProducers */
            arraylength
            ifne 11
        10: .line 157
      StackMap locals:
      StackMap stack:
            aload 2 /* auProducers */
            areturn
        11: .line 160
      StackMap locals:
      StackMap stack:
            aload 2 /* auProducers */
            aload 2 /* auProducers */
            arraylength
            aload 3 /* kaProducers */
            arraylength
            iadd
        12: .line 159
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.util.Map$Entry[]
            astore 4 /* producers */
        start local 4 // java.util.Map$Entry[] producers
        13: .line 161
            aload 3 /* kaProducers */
            iconst_0
        14: .line 162
            aload 4 /* producers */
            aload 2 /* auProducers */
            arraylength
            aload 3 /* kaProducers */
            arraylength
        15: .line 161
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 163
            aload 4 /* producers */
            areturn
        end local 4 // java.util.Map$Entry[] producers
        end local 3 // java.util.Map$Entry[] kaProducers
        end local 2 // java.util.Map$Entry[] auProducers
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.SSLKeyExchange this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lsun/security/ssl/SSLKeyExchange;
            0   17     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            3    4     2       auProducers  [Ljava/util/Map$Entry;
            5   17     2       auProducers  [Ljava/util/Map$Entry;
            7   17     3       kaProducers  [Ljava/util/Map$Entry;
           13   17     4         producers  [Ljava/util/Map$Entry;
    Signature: (Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry<Ljava/lang/Byte;Lsun/security/ssl/HandshakeProducer;>;
    MethodParameters:
                  Name  Flags
      handshakeContext  

  public java.util.Map$Entry<java.lang.Byte, sun.security.ssl.SSLConsumer>[] getHandshakeConsumers(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLKeyExchange this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
         0: .line 171
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            ifnull 4
         1: .line 173
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.authentication:Lsun/security/ssl/SSLAuthentication;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLAuthentication.getHandshakeConsumers:(Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
         2: .line 172
            astore 2 /* auConsumers */
        start local 2 // java.util.Map$Entry[] auConsumers
         3: .line 174
            goto 5
        end local 2 // java.util.Map$Entry[] auConsumers
         4: .line 175
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* auConsumers */
        start local 2 // java.util.Map$Entry[] auConsumers
         5: .line 179
      StackMap locals: java.util.Map$Entry[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLKeyExchange.keyAgreement:Lsun/security/ssl/SSLKeyAgreement;
            aload 1 /* handshakeContext */
            invokeinterface sun.security.ssl.SSLKeyAgreement.getHandshakeConsumers:(Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
         6: .line 178
            astore 3 /* kaConsumers */
        start local 3 // java.util.Map$Entry[] kaConsumers
         7: .line 181
            aload 2 /* auConsumers */
            ifnull 8
            aload 2 /* auConsumers */
            arraylength
            ifne 9
         8: .line 182
      StackMap locals: java.util.Map$Entry[]
      StackMap stack:
            aload 3 /* kaConsumers */
            areturn
         9: .line 183
      StackMap locals:
      StackMap stack:
            aload 3 /* kaConsumers */
            ifnull 10
            aload 3 /* kaConsumers */
            arraylength
            ifne 11
        10: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* auConsumers */
            areturn
        11: .line 187
      StackMap locals:
      StackMap stack:
            aload 2 /* auConsumers */
            aload 2 /* auConsumers */
            arraylength
            aload 3 /* kaConsumers */
            arraylength
            iadd
        12: .line 186
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.util.Map$Entry[]
            astore 4 /* producers */
        start local 4 // java.util.Map$Entry[] producers
        13: .line 188
            aload 3 /* kaConsumers */
            iconst_0
        14: .line 189
            aload 4 /* producers */
            aload 2 /* auConsumers */
            arraylength
            aload 3 /* kaConsumers */
            arraylength
        15: .line 188
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 190
            aload 4 /* producers */
            areturn
        end local 4 // java.util.Map$Entry[] producers
        end local 3 // java.util.Map$Entry[] kaConsumers
        end local 2 // java.util.Map$Entry[] auConsumers
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.SSLKeyExchange this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lsun/security/ssl/SSLKeyExchange;
            0   17     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            3    4     2       auConsumers  [Ljava/util/Map$Entry;
            5   17     2       auConsumers  [Ljava/util/Map$Entry;
            7   17     3       kaConsumers  [Ljava/util/Map$Entry;
           13   17     4         producers  [Ljava/util/Map$Entry;
    Signature: (Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry<Ljava/lang/Byte;Lsun/security/ssl/SSLConsumer;>;
    MethodParameters:
                  Name  Flags
      handshakeContext  

  static sun.security.ssl.SSLKeyExchange valueOf(sun.security.ssl.CipherSuite$KeyExchange, sun.security.ssl.ProtocolVersion);
    descriptor: (Lsun/security/ssl/CipherSuite$KeyExchange;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SSLKeyExchange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
        start local 1 // sun.security.ssl.ProtocolVersion protocolVersion
         0: .line 198
            aload 0 /* keyExchange */
            ifnull 1
            aload 1 /* protocolVersion */
            ifnonnull 2
         1: .line 199
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 202
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.SSLKeyExchange.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 0 /* keyExchange */
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 16
                    2: 3
                    3: 4
                    4: 20
                    5: 20
                    6: 5
                    7: 6
                    8: 7
                    9: 10
                   10: 11
                   11: 12
                   12: 13
                   13: 14
                   14: 15
                   15: 16
                   16: 19
              default: 20
          }
         3: .line 204
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExRSA.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
         4: .line 206
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExRSAExport.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
         5: .line 208
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHEDSS.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
         6: .line 210
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHEDSSExport.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
         7: .line 212
      StackMap locals:
      StackMap stack:
            aload 1 /* protocolVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 9
         8: .line 213
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSAOrPSS.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
         9: .line 215
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSA.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        10: .line 218
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSAExport.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        11: .line 220
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHANON.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        12: .line 222
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExDHANONExport.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        13: .line 224
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExECDHECDSA.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        14: .line 226
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExECDHRSA.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        15: .line 228
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExECDHEECDSA.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        16: .line 230
      StackMap locals:
      StackMap stack:
            aload 1 /* protocolVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 18
        17: .line 231
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExECDHERSAOrPSS.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        18: .line 233
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExECDHERSA.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        19: .line 236
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLKeyExchange$SSLKeyExECDHANON.KE:Lsun/security/ssl/SSLKeyExchange;
            areturn
        20: .line 239
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 0 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0      keyExchange  Lsun/security/ssl/CipherSuite$KeyExchange;
            0   21     1  protocolVersion  Lsun/security/ssl/ProtocolVersion;
    MethodParameters:
                 Name  Flags
      keyExchange      
      protocolVersion  

  static sun.security.ssl.SSLKeyExchange valueOf(sun.security.ssl.SupportedGroupsExtension$NamedGroup);
    descriptor: (Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)Lsun/security/ssl/SSLKeyExchange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup
         0: .line 244
            aload 0 /* namedGroup */
            invokestatic sun.security.ssl.SSLKeyExchange$T13KeyAgreement.valueOf:(Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)Lsun/security/ssl/SSLKeyExchange$T13KeyAgreement;
            astore 1 /* ka */
        start local 1 // sun.security.ssl.SSLKeyAgreement ka
         1: .line 245
            aload 1 /* ka */
            ifnull 5
         2: .line 246
            new sun.security.ssl.SSLKeyExchange
            dup
         3: .line 247
            aconst_null
            aload 0 /* namedGroup */
            invokestatic sun.security.ssl.SSLKeyExchange$T13KeyAgreement.valueOf:(Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)Lsun/security/ssl/SSLKeyExchange$T13KeyAgreement;
         4: .line 246
            invokespecial sun.security.ssl.SSLKeyExchange.<init>:(Lsun/security/ssl/X509Authentication;Lsun/security/ssl/SSLKeyAgreement;)V
            areturn
         5: .line 250
      StackMap locals: sun.security.ssl.SSLKeyAgreement
      StackMap stack:
            aconst_null
            areturn
        end local 1 // sun.security.ssl.SSLKeyAgreement ka
        end local 0 // sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0  namedGroup  Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            1    6     1          ka  Lsun/security/ssl/SSLKeyAgreement;
    MethodParameters:
            Name  Flags
      namedGroup  

  static int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 40
            getstatic sun.security.ssl.SSLKeyExchange.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic sun.security.ssl.CipherSuite$KeyExchange.values:()[Lsun/security/ssl/CipherSuite$KeyExchange;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_DSS_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 7
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 9
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 10
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 11
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_4
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 14
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 15
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 16
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 12
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 13
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_NULL:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_1
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_2
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_3
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_SCSV:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 17
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            dup
            putstatic sun.security.ssl.SSLKeyExchange.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
}
SourceFile: "SSLKeyExchange.java"
NestMembers:
  sun.security.ssl.SSLKeyExchange$SSLKeyExDHANON  sun.security.ssl.SSLKeyExchange$SSLKeyExDHANONExport  sun.security.ssl.SSLKeyExchange$SSLKeyExDHEDSS  sun.security.ssl.SSLKeyExchange$SSLKeyExDHEDSSExport  sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSA  sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSAExport  sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSAOrPSS  sun.security.ssl.SSLKeyExchange$SSLKeyExECDHANON  sun.security.ssl.SSLKeyExchange$SSLKeyExECDHECDSA  sun.security.ssl.SSLKeyExchange$SSLKeyExECDHEECDSA  sun.security.ssl.SSLKeyExchange$SSLKeyExECDHERSA  sun.security.ssl.SSLKeyExchange$SSLKeyExECDHERSAOrPSS  sun.security.ssl.SSLKeyExchange$SSLKeyExECDHRSA  sun.security.ssl.SSLKeyExchange$SSLKeyExRSA  sun.security.ssl.SSLKeyExchange$SSLKeyExRSAExport  sun.security.ssl.SSLKeyExchange$T12KeyAgreement  sun.security.ssl.SSLKeyExchange$T13KeyAgreement
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
  private SSLKeyExDHANON = sun.security.ssl.SSLKeyExchange$SSLKeyExDHANON of sun.security.ssl.SSLKeyExchange
  private SSLKeyExDHANONExport = sun.security.ssl.SSLKeyExchange$SSLKeyExDHANONExport of sun.security.ssl.SSLKeyExchange
  private SSLKeyExDHEDSS = sun.security.ssl.SSLKeyExchange$SSLKeyExDHEDSS of sun.security.ssl.SSLKeyExchange
  private SSLKeyExDHEDSSExport = sun.security.ssl.SSLKeyExchange$SSLKeyExDHEDSSExport of sun.security.ssl.SSLKeyExchange
  private SSLKeyExDHERSA = sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSA of sun.security.ssl.SSLKeyExchange
  private SSLKeyExDHERSAExport = sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSAExport of sun.security.ssl.SSLKeyExchange
  private SSLKeyExDHERSAOrPSS = sun.security.ssl.SSLKeyExchange$SSLKeyExDHERSAOrPSS of sun.security.ssl.SSLKeyExchange
  private SSLKeyExECDHANON = sun.security.ssl.SSLKeyExchange$SSLKeyExECDHANON of sun.security.ssl.SSLKeyExchange
  private SSLKeyExECDHECDSA = sun.security.ssl.SSLKeyExchange$SSLKeyExECDHECDSA of sun.security.ssl.SSLKeyExchange
  private SSLKeyExECDHEECDSA = sun.security.ssl.SSLKeyExchange$SSLKeyExECDHEECDSA of sun.security.ssl.SSLKeyExchange
  private SSLKeyExECDHERSA = sun.security.ssl.SSLKeyExchange$SSLKeyExECDHERSA of sun.security.ssl.SSLKeyExchange
  private SSLKeyExECDHERSAOrPSS = sun.security.ssl.SSLKeyExchange$SSLKeyExECDHERSAOrPSS of sun.security.ssl.SSLKeyExchange
  private SSLKeyExECDHRSA = sun.security.ssl.SSLKeyExchange$SSLKeyExECDHRSA of sun.security.ssl.SSLKeyExchange
  private SSLKeyExRSA = sun.security.ssl.SSLKeyExchange$SSLKeyExRSA of sun.security.ssl.SSLKeyExchange
  private SSLKeyExRSAExport = sun.security.ssl.SSLKeyExchange$SSLKeyExRSAExport of sun.security.ssl.SSLKeyExchange
  private final T12KeyAgreement = sun.security.ssl.SSLKeyExchange$T12KeyAgreement of sun.security.ssl.SSLKeyExchange
  private final T13KeyAgreement = sun.security.ssl.SSLKeyExchange$T13KeyAgreement of sun.security.ssl.SSLKeyExchange
  final NamedGroup = sun.security.ssl.SupportedGroupsExtension$NamedGroup of sun.security.ssl.SupportedGroupsExtension
  final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication