public final class com.sun.jndi.ldap.LdapClient implements com.sun.jndi.ldap.pool.PooledConnection
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.LdapClient
  super_class: java.lang.Object
{
  private static final int debug;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean caseIgnore;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.util.Hashtable defaultBinaryAttrs;
    descriptor: Ljava/util/Hashtable;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String DISCONNECT_OID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.4.1.1466.20036"

  boolean isLdapv3;
    descriptor: Z
    flags: (0x0000) 

  int referenceCount;
    descriptor: I
    flags: (0x0000) 

  com.sun.jndi.ldap.Connection conn;
    descriptor: Lcom/sun/jndi/ldap/Connection;
    flags: (0x0000) 

  private final com.sun.jndi.ldap.pool.PoolCallback pcb;
    descriptor: Lcom/sun/jndi/ldap/pool/PoolCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean pooled;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean authenticateCalled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static final int SCOPE_BASE_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int SCOPE_ONE_LEVEL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int SCOPE_SUBTREE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int ADD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int DELETE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int REPLACE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_VERSION3_VERSION2;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  static final int LDAP_VERSION2;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_VERSION3;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_VERSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_REF_FOLLOW;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LDAP_REF_THROW;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_REF_IGNORE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_REF_FOLLOW_SCHEME;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final java.lang.String LDAP_URL;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ldap://"

  static final java.lang.String LDAPS_URL;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ldaps://"

  static final int LBER_BOOLEAN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LBER_INTEGER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LBER_BITSTRING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LBER_OCTETSTRING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int LBER_NULL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int LBER_ENUMERATED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final int LBER_SEQUENCE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 48

  static final int LBER_SET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 49

  static final int LDAP_SUPERIOR_DN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  static final int LDAP_REQ_BIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 96

  static final int LDAP_REQ_UNBIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  static final int LDAP_REQ_SEARCH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 99

  static final int LDAP_REQ_MODIFY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 102

  static final int LDAP_REQ_ADD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 104

  static final int LDAP_REQ_DELETE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 74

  static final int LDAP_REQ_MODRDN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 108

  static final int LDAP_REQ_COMPARE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 110

  static final int LDAP_REQ_ABANDON;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 80

  static final int LDAP_REQ_EXTENSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 119

  static final int LDAP_REP_BIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 97

  static final int LDAP_REP_SEARCH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  static final int LDAP_REP_SEARCH_REF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 115

  static final int LDAP_REP_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 101

  static final int LDAP_REP_MODIFY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 103

  static final int LDAP_REP_ADD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 105

  static final int LDAP_REP_DELETE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 107

  static final int LDAP_REP_MODRDN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 109

  static final int LDAP_REP_COMPARE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 111

  static final int LDAP_REP_EXTENSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 120

  static final int LDAP_REP_REFERRAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 163

  static final int LDAP_REP_EXT_OID;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 138

  static final int LDAP_REP_EXT_VAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 139

  static final int LDAP_CONTROLS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 160

  static final java.lang.String LDAP_CONTROL_MANAGE_DSA_IT;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "2.16.840.1.113730.3.4.2"

  static final java.lang.String LDAP_CONTROL_PREFERRED_LANG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.4.1.1466.20035"

  static final java.lang.String LDAP_CONTROL_PAGED_RESULTS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113556.1.4.319"

  static final java.lang.String LDAP_CONTROL_SERVER_SORT_REQ;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113556.1.4.473"

  static final java.lang.String LDAP_CONTROL_SERVER_SORT_RES;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113556.1.4.474"

  static final int LDAP_SUCCESS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int LDAP_OPERATIONS_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LDAP_PROTOCOL_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_TIME_LIMIT_EXCEEDED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_SIZE_LIMIT_EXCEEDED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int LDAP_COMPARE_FALSE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int LDAP_COMPARE_TRUE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final int LDAP_AUTH_METHOD_NOT_SUPPORTED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final int LDAP_STRONG_AUTH_REQUIRED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int LDAP_PARTIAL_RESULTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  static final int LDAP_REFERRAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final int LDAP_ADMIN_LIMIT_EXCEEDED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  static final int LDAP_UNAVAILABLE_CRITICAL_EXTENSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  static final int LDAP_CONFIDENTIALITY_REQUIRED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  static final int LDAP_SASL_BIND_IN_PROGRESS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  static final int LDAP_NO_SUCH_ATTRIBUTE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  static final int LDAP_UNDEFINED_ATTRIBUTE_TYPE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 17

  static final int LDAP_INAPPROPRIATE_MATCHING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  static final int LDAP_CONSTRAINT_VIOLATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 19

  static final int LDAP_ATTRIBUTE_OR_VALUE_EXISTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  static final int LDAP_INVALID_ATTRIBUTE_SYNTAX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 21

  static final int LDAP_NO_SUCH_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  static final int LDAP_ALIAS_PROBLEM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  static final int LDAP_INVALID_DN_SYNTAX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  static final int LDAP_IS_LEAF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  static final int LDAP_ALIAS_DEREFERENCING_PROBLEM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 36

  static final int LDAP_INAPPROPRIATE_AUTHENTICATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 48

  static final int LDAP_INVALID_CREDENTIALS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 49

  static final int LDAP_INSUFFICIENT_ACCESS_RIGHTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 50

  static final int LDAP_BUSY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 51

  static final int LDAP_UNAVAILABLE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 52

  static final int LDAP_UNWILLING_TO_PERFORM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 53

  static final int LDAP_LOOP_DETECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 54

  static final int LDAP_NAMING_VIOLATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  static final int LDAP_OBJECT_CLASS_VIOLATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65

  static final int LDAP_NOT_ALLOWED_ON_NON_LEAF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  static final int LDAP_NOT_ALLOWED_ON_RDN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 67

  static final int LDAP_ENTRY_ALREADY_EXISTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 68

  static final int LDAP_OBJECT_CLASS_MODS_PROHIBITED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 69

  static final int LDAP_AFFECTS_MULTIPLE_DSAS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 71

  static final int LDAP_OTHER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 80

  static final java.lang.String[] ldap_error_message;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private java.util.Vector unsolicited;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 84
            new java.util.Hashtable
            dup
            bipush 23
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
         1: .line 86
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "userpassword"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 87
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "javaserializeddata"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 89
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "javaserializedobject"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 91
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "jpegphoto"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 93
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "audio"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 94
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "thumbnailphoto"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 96
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "thumbnaillogo"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 98
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "usercertificate"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 99
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "cacertificate"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 100
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "certificaterevocationlist"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 102
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "authorityrevocationlist"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 103
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "crosscertificatepair"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 104
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "photo"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 105
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "personalsignature"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 107
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "x500uniqueidentifier"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 1322
            bipush 91
            anewarray java.lang.String
            dup
            iconst_0
        17: .line 1323
            ldc "Success"
            aastore
            dup
            iconst_1
        18: .line 1324
            ldc "Operations Error"
            aastore
            dup
            iconst_2
        19: .line 1325
            ldc "Protocol Error"
            aastore
            dup
            iconst_3
        20: .line 1326
            ldc "Timelimit Exceeded"
            aastore
            dup
            iconst_4
        21: .line 1327
            ldc "Sizelimit Exceeded"
            aastore
            dup
            iconst_5
        22: .line 1328
            ldc "Compare False"
            aastore
            dup
            bipush 6
        23: .line 1329
            ldc "Compare True"
            aastore
            dup
            bipush 7
        24: .line 1330
            ldc "Authentication Method Not Supported"
            aastore
            dup
            bipush 8
        25: .line 1331
            ldc "Strong Authentication Required"
            aastore
            dup
            bipush 10
        26: .line 1333
            ldc "Referral"
            aastore
            dup
            bipush 11
        27: .line 1334
            ldc "Administrative Limit Exceeded"
            aastore
            dup
            bipush 12
        28: .line 1335
            ldc "Unavailable Critical Extension"
            aastore
            dup
            bipush 13
        29: .line 1336
            ldc "Confidentiality Required"
            aastore
            dup
            bipush 14
        30: .line 1337
            ldc "SASL Bind In Progress"
            aastore
            dup
            bipush 16
        31: .line 1339
            ldc "No Such Attribute"
            aastore
            dup
            bipush 17
        32: .line 1340
            ldc "Undefined Attribute Type"
            aastore
            dup
            bipush 18
        33: .line 1341
            ldc "Inappropriate Matching"
            aastore
            dup
            bipush 19
        34: .line 1342
            ldc "Constraint Violation"
            aastore
            dup
            bipush 20
        35: .line 1343
            ldc "Attribute Or Value Exists"
            aastore
            dup
            bipush 21
        36: .line 1344
            ldc "Invalid Attribute Syntax"
            aastore
            dup
            bipush 32
        37: .line 1355
            ldc "No Such Object"
            aastore
            dup
            bipush 33
        38: .line 1356
            ldc "Alias Problem"
            aastore
            dup
            bipush 34
        39: .line 1357
            ldc "Invalid DN Syntax"
            aastore
            dup
            bipush 36
        40: .line 1359
            ldc "Alias Dereferencing Problem"
            aastore
            dup
            bipush 48
        41: .line 1371
            ldc "Inappropriate Authentication"
            aastore
            dup
            bipush 49
        42: .line 1372
            ldc "Invalid Credentials"
            aastore
            dup
            bipush 50
        43: .line 1373
            ldc "Insufficient Access Rights"
            aastore
            dup
            bipush 51
        44: .line 1374
            ldc "Busy"
            aastore
            dup
            bipush 52
        45: .line 1375
            ldc "Unavailable"
            aastore
            dup
            bipush 53
        46: .line 1376
            ldc "Unwilling To Perform"
            aastore
            dup
            bipush 54
        47: .line 1377
            ldc "Loop Detect"
            aastore
            dup
            bipush 64
        48: .line 1387
            ldc "Naming Violation"
            aastore
            dup
            bipush 65
        49: .line 1388
            ldc "Object Class Violation"
            aastore
            dup
            bipush 66
        50: .line 1389
            ldc "Not Allowed On Non-leaf"
            aastore
            dup
            bipush 67
        51: .line 1390
            ldc "Not Allowed On RDN"
            aastore
            dup
            bipush 68
        52: .line 1391
            ldc "Entry Already Exists"
            aastore
            dup
            bipush 69
        53: .line 1392
            ldc "Object Class Modifications Prohibited"
            aastore
            dup
            bipush 71
        54: .line 1394
            ldc "Affects Multiple DSAs"
            aastore
            dup
            bipush 80
        55: .line 1403
            ldc "Other"
            aastore
        56: .line 1322
            putstatic com.sun.jndi.ldap.LdapClient.ldap_error_message:[Ljava/lang/String;
        57: .line 1414
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String, int, java.lang.String, int, int, java.io.OutputStream, com.sun.jndi.ldap.pool.PoolCallback);
    descriptor: (Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;Lcom/sun/jndi/ldap/pool/PoolCallback;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=8, args_size=8
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String host
        start local 2 // int port
        start local 3 // java.lang.String socketFactory
        start local 4 // int connectTimeout
        start local 5 // int readTimeout
        start local 6 // java.io.OutputStream trace
        start local 7 // com.sun.jndi.ldap.pool.PoolCallback pcb
         0: .line 130
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 115
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         2: .line 122
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.authenticateCalled:Z
         3: .line 1476
            aload 0 /* this */
            new java.util.Vector
            dup
            iconst_3
            invokespecial java.util.Vector.<init>:(I)V
            putfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
         4: .line 136
            aload 0 /* this */
            new com.sun.jndi.ldap.Connection
            dup
            aload 0 /* this */
            aload 1 /* host */
            iload 2 /* port */
            aload 3 /* socketFactory */
            iload 4 /* connectTimeout */
            iload 5 /* readTimeout */
         5: .line 137
            aload 6 /* trace */
            invokespecial com.sun.jndi.ldap.Connection.<init>:(Lcom/sun/jndi/ldap/LdapClient;Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;)V
         6: .line 136
            putfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
         7: .line 139
            aload 0 /* this */
            aload 7 /* pcb */
            putfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
         8: .line 140
            aload 0 /* this */
            aload 7 /* pcb */
            ifnull 9
            iconst_1
            goto 10
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int java.lang.String int int java.io.OutputStream com.sun.jndi.ldap.pool.PoolCallback
      StackMap stack: com.sun.jndi.ldap.LdapClient
         9: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int java.lang.String int int java.io.OutputStream com.sun.jndi.ldap.pool.PoolCallback
      StackMap stack: com.sun.jndi.ldap.LdapClient int
        10: putfield com.sun.jndi.ldap.LdapClient.pooled:Z
        11: .line 141
            return
        end local 7 // com.sun.jndi.ldap.pool.PoolCallback pcb
        end local 6 // java.io.OutputStream trace
        end local 5 // int readTimeout
        end local 4 // int connectTimeout
        end local 3 // java.lang.String socketFactory
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/sun/jndi/ldap/LdapClient;
            0   12     1            host  Ljava/lang/String;
            0   12     2            port  I
            0   12     3   socketFactory  Ljava/lang/String;
            0   12     4  connectTimeout  I
            0   12     5     readTimeout  I
            0   12     6           trace  Ljava/io/OutputStream;
            0   12     7             pcb  Lcom/sun/jndi/ldap/pool/PoolCallback;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                Name  Flags
      host            
      port            
      socketFactory   
      connectTimeout  
      readTimeout     
      trace           
      pcb             

  synchronized boolean authenticateCalled();
    descriptor: ()Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 144
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.authenticateCalled:Z
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapClient;

  synchronized com.sun.jndi.ldap.LdapResult authenticate(boolean, java.lang.String, java.lang.Object, int, java.lang.String, javax.naming.ldap.Control[], java.util.Hashtable);
    descriptor: (ZLjava/lang/String;Ljava/lang/Object;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=8, locals=14, args_size=8
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // boolean initial
        start local 2 // java.lang.String name
        start local 3 // java.lang.Object pw
        start local 4 // int version
        start local 5 // java.lang.String authMechanism
        start local 6 // javax.naming.ldap.Control[] ctls
        start local 7 // java.util.Hashtable env
         0: .line 152
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.authenticateCalled:Z
         1: .line 155
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         2: .line 156
            goto 7
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 8 /* e */
        start local 8 // java.io.IOException e
         4: .line 157
            new javax.naming.CommunicationException
            dup
            invokespecial javax.naming.CommunicationException.<init>:()V
            astore 9 /* ne */
        start local 9 // javax.naming.NamingException ne
         5: .line 158
            aload 9 /* ne */
            aload 8 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
         6: .line 159
            aload 9 /* ne */
            athrow
        end local 9 // javax.naming.NamingException ne
        end local 8 // java.io.IOException e
         7: .line 162
      StackMap locals:
      StackMap stack:
            iload 4 /* version */
            lookupswitch { // 3
                    2: 10
                    3: 8
                   32: 8
              default: 12
          }
         8: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
         9: .line 166
            goto 15
        10: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        11: .line 169
            goto 15
        12: .line 171
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Protocol version "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        13: .line 172
            ldc " not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 171
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 175
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* res */
        start local 8 // com.sun.jndi.ldap.LdapResult res
        16: .line 177
            aload 5 /* authMechanism */
            ldc "none"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 18
        17: .line 178
            aload 5 /* authMechanism */
            ldc "anonymous"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 38
        18: .line 182
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            iload 1 /* initial */
            ifeq 22
        19: .line 183
            iload 4 /* version */
            iconst_2
            if_icmpeq 22
        20: .line 184
            iload 4 /* version */
            bipush 32
            if_icmpeq 22
        21: .line 185
            aload 6 /* ctls */
            ifnull 35
            aload 6 /* ctls */
            arraylength
            ifle 35
        22: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            dup
            astore 2 /* name */
            aconst_null
            dup
            astore 3 /* pw */
            checkcast byte[]
            aload 6 /* ctls */
            aconst_null
        23: .line 189
            iconst_0
        24: .line 188
            invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* res */
        25: .line 190
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 82
        26: .line 191
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        27: .line 193
            goto 82
      StackMap locals:
      StackMap stack: java.io.IOException
        28: astore 9 /* e */
        start local 9 // java.io.IOException e
        29: .line 195
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "anonymous bind failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 196
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 195
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        32: .line 194
            astore 10 /* ne */
        start local 10 // javax.naming.NamingException ne
        33: .line 197
            aload 10 /* ne */
            aload 9 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        34: .line 198
            aload 10 /* ne */
            athrow
        end local 10 // javax.naming.NamingException ne
        end local 9 // java.io.IOException e
        35: .line 202
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 8 /* res */
        36: .line 203
            aload 8 /* res */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        37: .line 205
            goto 82
      StackMap locals:
      StackMap stack:
        38: aload 5 /* authMechanism */
            ldc "simple"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 67
        39: .line 207
            aconst_null
            astore 9 /* encodedPw */
        start local 9 // byte[] encodedPw
        40: .line 209
            aload 3 /* pw */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.encodePassword:(Ljava/lang/Object;Z)[B
            astore 9 /* encodedPw */
        41: .line 210
            aload 0 /* this */
            aload 2 /* name */
            aload 9 /* encodedPw */
            aload 6 /* ctls */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* res */
        42: .line 211
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 60
        43: .line 212
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        44: .line 214
            goto 60
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack: java.io.IOException
        45: astore 10 /* e */
        start local 10 // java.io.IOException e
        46: .line 216
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "simple bind failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        47: .line 217
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        48: .line 216
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        49: .line 215
            astore 11 /* ne */
        start local 11 // javax.naming.NamingException ne
        50: .line 218
            aload 11 /* ne */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        51: .line 219
            aload 11 /* ne */
            athrow
        end local 11 // javax.naming.NamingException ne
        end local 10 // java.io.IOException e
        52: .line 220
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
        53: .line 223
            aload 9 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 59
            aload 9 /* encodedPw */
            ifnull 59
        54: .line 224
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        55: goto 58
        56: .line 225
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[] top top java.lang.Throwable int
      StackMap stack:
            aload 9 /* encodedPw */
            iload 13 /* i */
            iconst_0
            bastore
        57: .line 224
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        58: iload 13 /* i */
            aload 9 /* encodedPw */
            arraylength
            if_icmplt 56
        end local 13 // int i
        59: .line 228
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        60: .line 223
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack:
            aload 9 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 82
            aload 9 /* encodedPw */
            ifnull 82
        61: .line 224
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        62: goto 65
        63: .line 225
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[] top top top int
      StackMap stack:
            aload 9 /* encodedPw */
            iload 13 /* i */
            iconst_0
            bastore
        64: .line 224
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        65: iload 13 /* i */
            aload 9 /* encodedPw */
            arraylength
            if_icmplt 63
        end local 13 // int i
        end local 9 // byte[] encodedPw
        66: .line 229
            goto 82
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult
      StackMap stack:
        67: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 81
        68: .line 232
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            aload 2 /* name */
            aload 3 /* pw */
        69: .line 233
            aload 5 /* authMechanism */
            aload 7 /* env */
            aload 6 /* ctls */
        70: .line 232
            invokestatic com.sun.jndi.ldap.sasl.LdapSasl.saslBind:(Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* res */
        71: .line 234
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 82
        72: .line 235
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        73: .line 237
            goto 82
      StackMap locals:
      StackMap stack: java.io.IOException
        74: astore 9 /* e */
        start local 9 // java.io.IOException e
        75: .line 239
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "SASL bind failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        76: .line 240
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        77: .line 239
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        78: .line 238
            astore 10 /* ne */
        start local 10 // javax.naming.NamingException ne
        79: .line 241
            aload 10 /* ne */
            aload 9 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        80: .line 242
            aload 10 /* ne */
            athrow
        end local 10 // javax.naming.NamingException ne
        end local 9 // java.io.IOException e
        81: .line 245
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationNotSupportedException
            dup
            aload 5 /* authMechanism */
            invokespecial javax.naming.AuthenticationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        82: .line 251
      StackMap locals:
      StackMap stack:
            iload 1 /* initial */
            ifeq 116
        83: .line 252
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            iconst_2
            if_icmpne 116
        84: .line 253
            iload 4 /* version */
            bipush 32
            if_icmpne 116
        85: .line 254
            aload 5 /* authMechanism */
            ldc "none"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 88
        86: .line 255
            aload 5 /* authMechanism */
            ldc "anonymous"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 88
        87: .line 256
            aload 5 /* authMechanism */
            ldc "simple"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 116
        88: .line 258
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* encodedPw */
        start local 9 // byte[] encodedPw
        89: .line 260
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        90: .line 261
            aload 3 /* pw */
            iconst_0
            invokestatic com.sun.jndi.ldap.LdapClient.encodePassword:(Ljava/lang/Object;Z)[B
            astore 9 /* encodedPw */
        91: .line 262
            aload 0 /* this */
            aload 2 /* name */
            aload 9 /* encodedPw */
            aload 6 /* ctls */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* res */
        92: .line 263
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 110
        93: .line 264
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        94: .line 266
            goto 110
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack: java.io.IOException
        95: astore 10 /* e */
        start local 10 // java.io.IOException e
        96: .line 268
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            aload 5 /* authMechanism */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        97: .line 269
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        98: .line 268
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        99: .line 267
            astore 11 /* ne */
        start local 11 // javax.naming.NamingException ne
       100: .line 270
            aload 11 /* ne */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       101: .line 271
            aload 11 /* ne */
            athrow
        end local 11 // javax.naming.NamingException ne
        end local 10 // java.io.IOException e
       102: .line 272
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
       103: .line 275
            aload 9 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 109
            aload 9 /* encodedPw */
            ifnull 109
       104: .line 276
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       105: goto 108
       106: .line 277
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[] top top java.lang.Throwable int
      StackMap stack:
            aload 9 /* encodedPw */
            iload 13 /* i */
            iconst_0
            bastore
       107: .line 276
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       108: iload 13 /* i */
            aload 9 /* encodedPw */
            arraylength
            if_icmplt 106
        end local 13 // int i
       109: .line 280
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
       110: .line 275
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack:
            aload 9 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 116
            aload 9 /* encodedPw */
            ifnull 116
       111: .line 276
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       112: goto 115
       113: .line 277
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult byte[] top top top int
      StackMap stack:
            aload 9 /* encodedPw */
            iload 13 /* i */
            iconst_0
            bastore
       114: .line 276
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       115: iload 13 /* i */
            aload 9 /* encodedPw */
            arraylength
            if_icmplt 113
        end local 13 // int i
        end local 9 // byte[] encodedPw
       116: .line 280
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 8 /* res */
       117: .line 289
            getfield com.sun.jndi.ldap.LdapResult.status:I
            bipush 32
            if_icmpne 121
       118: .line 290
            new javax.naming.AuthenticationException
            dup
       119: .line 291
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 8 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
       120: .line 290
            invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
            athrow
       121: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.Connection.setV3:(Z)V
       122: .line 294
            aload 8 /* res */
            areturn
        end local 8 // com.sun.jndi.ldap.LdapResult res
        end local 7 // java.util.Hashtable env
        end local 6 // javax.naming.ldap.Control[] ctls
        end local 5 // java.lang.String authMechanism
        end local 4 // int version
        end local 3 // java.lang.Object pw
        end local 2 // java.lang.String name
        end local 1 // boolean initial
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  123     0           this  Lcom/sun/jndi/ldap/LdapClient;
            0  123     1        initial  Z
            0  123     2           name  Ljava/lang/String;
            0  123     3             pw  Ljava/lang/Object;
            0  123     4        version  I
            0  123     5  authMechanism  Ljava/lang/String;
            0  123     6           ctls  [Ljavax/naming/ldap/Control;
            0  123     7            env  Ljava/util/Hashtable;
            4    7     8              e  Ljava/io/IOException;
            5    7     9             ne  Ljavax/naming/NamingException;
           16  123     8            res  Lcom/sun/jndi/ldap/LdapResult;
           29   35     9              e  Ljava/io/IOException;
           33   35    10             ne  Ljavax/naming/NamingException;
           40   66     9      encodedPw  [B
           46   52    10              e  Ljava/io/IOException;
           50   52    11             ne  Ljavax/naming/NamingException;
           55   59    13              i  I
           62   66    13              i  I
           75   81     9              e  Ljava/io/IOException;
           79   81    10             ne  Ljavax/naming/NamingException;
           89  116     9      encodedPw  [B
           96  102    10              e  Ljava/io/IOException;
          100  102    11             ne  Ljavax/naming/NamingException;
          105  109    13              i  I
          112  116    13              i  I
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
          22    27      28  Class java.io.IOException
          40    44      45  Class java.io.IOException
          40    52      52  any
          68    73      74  Class java.io.IOException
          89    94      95  Class java.io.IOException
          89   102     102  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
               Name  Flags
      initial        
      name           
      pw             
      version        
      authMechanism  
      ctls           
      env            

  public synchronized com.sun.jndi.ldap.LdapResult ldapBind(java.lang.String, byte[], javax.naming.ldap.Control[], java.lang.String, boolean);
    descriptor: (Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=11, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String dn
        start local 2 // byte[] toServer
        start local 3 // javax.naming.ldap.Control[] bindCtls
        start local 4 // java.lang.String auth
        start local 5 // boolean pauseAfterReceipt
         0: .line 309
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 312
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aconst_null
            invokevirtual com.sun.jndi.ldap.Connection.abandonOutstandingReqs:([Ljavax/naming/ldap/Control;)V
         2: .line 314
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         3: .line 315
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         4: .line 316
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 8 /* res */
        start local 8 // com.sun.jndi.ldap.LdapResult res
         5: .line 317
            aload 8 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         6: .line 322
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         7: .line 323
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         8: .line 324
            aload 6 /* ber */
            bipush 96
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         9: .line 325
            aload 6 /* ber */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 10
            iconst_3
            goto 11
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String byte[] javax.naming.ldap.Control[] java.lang.String int com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.LdapResult
      StackMap stack: com.sun.jndi.ldap.BerEncoder
        10: iconst_2
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String byte[] javax.naming.ldap.Control[] java.lang.String int com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.LdapResult
      StackMap stack: com.sun.jndi.ldap.BerEncoder int
        11: invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        12: .line 326
            aload 6 /* ber */
            aload 1 /* dn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        13: .line 329
            aload 4 /* auth */
            ifnull 22
        14: .line 330
            aload 6 /* ber */
            sipush 163
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        15: .line 331
            aload 6 /* ber */
            aload 4 /* auth */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        16: .line 332
            aload 2 /* toServer */
            ifnull 20
        17: .line 333
            aload 6 /* ber */
            aload 2 /* toServer */
        18: .line 334
            iconst_4
        19: .line 333
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        20: .line 336
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        21: .line 337
            goto 26
        22: .line 338
      StackMap locals:
      StackMap stack:
            aload 2 /* toServer */
            ifnull 25
        23: .line 339
            aload 6 /* ber */
            aload 2 /* toServer */
            sipush 128
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        24: .line 340
            goto 26
        25: .line 341
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            aconst_null
            sipush 128
            iconst_0
            iconst_0
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        26: .line 344
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        27: .line 347
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 29
        28: .line 348
            aload 6 /* ber */
            aload 3 /* bindCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        29: .line 350
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        30: .line 352
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            iload 5 /* pauseAfterReceipt */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZ)Lcom/sun/jndi/ldap/LdapRequest;
            astore 9 /* req */
        start local 9 // com.sun.jndi.ldap.LdapRequest req
        31: .line 353
            aload 2 /* toServer */
            ifnull 33
        32: .line 354
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.reset:()V
        33: .line 358
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 9 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 10 /* rber */
        start local 10 // com.sun.jndi.ldap.BerDecoder rber
        34: .line 360
            aload 10 /* rber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        35: .line 361
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
        36: .line 362
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            bipush 97
            if_icmpeq 38
        37: .line 363
            aload 8 /* res */
            areturn
        38: .line 366
      StackMap locals: com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
        39: .line 367
            aload 10 /* rber */
            aload 8 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
        40: .line 370
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 44
        41: .line 371
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 44
        42: .line 372
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 135
            if_icmpne 44
        43: .line 373
            aload 8 /* res */
            aload 10 /* rber */
            sipush 135
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
            putfield com.sun.jndi.ldap.LdapResult.serverCreds:[B
        44: .line 376
      StackMap locals:
      StackMap stack:
            aload 8 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 45
            aload 10 /* rber */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 46
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
        45: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String byte[] javax.naming.ldap.Control[] java.lang.String int com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
        46: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        47: .line 378
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 9 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        48: .line 379
            aload 8 /* res */
            areturn
        end local 10 // com.sun.jndi.ldap.BerDecoder rber
        end local 9 // com.sun.jndi.ldap.LdapRequest req
        end local 8 // com.sun.jndi.ldap.LdapResult res
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // boolean pauseAfterReceipt
        end local 4 // java.lang.String auth
        end local 3 // javax.naming.ldap.Control[] bindCtls
        end local 2 // byte[] toServer
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   49     0               this  Lcom/sun/jndi/ldap/LdapClient;
            0   49     1                 dn  Ljava/lang/String;
            0   49     2           toServer  [B
            0   49     3           bindCtls  [Ljavax/naming/ldap/Control;
            0   49     4               auth  Ljava/lang/String;
            0   49     5  pauseAfterReceipt  Z
            3   49     6                ber  Lcom/sun/jndi/ldap/BerEncoder;
            4   49     7           curMsgId  I
            5   49     8                res  Lcom/sun/jndi/ldap/LdapResult;
           31   49     9                req  Lcom/sun/jndi/ldap/LdapRequest;
           34   49    10               rber  Lcom/sun/jndi/ldap/BerDecoder;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      dn                 
      toServer           
      bindCtls           
      auth               
      pauseAfterReceipt  

  boolean usingSaslStreams();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 389
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
            instanceof com.sun.jndi.ldap.sasl.SaslInputStream
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapClient;

  synchronized void incRefCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 393
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            iconst_1
            iadd
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         1: .line 398
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;

  private static byte[] encodePassword(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object pw
        start local 1 // boolean v3
         0: .line 405
            aload 0 /* pw */
            instanceof char[]
            ifeq 2
         1: .line 406
            new java.lang.String
            dup
            aload 0 /* pw */
            checkcast char[]
            invokespecial java.lang.String.<init>:([C)V
            astore 0 /* pw */
         2: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* pw */
            instanceof java.lang.String
            ifeq 6
         3: .line 410
            iload 1 /* v3 */
            ifeq 5
         4: .line 411
            aload 0 /* pw */
            checkcast java.lang.String
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            areturn
         5: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* pw */
            checkcast java.lang.String
            ldc "8859_1"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            areturn
         6: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* pw */
            checkcast byte[]
            areturn
        end local 1 // boolean v3
        end local 0 // java.lang.Object pw
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    pw  Ljava/lang/Object;
            0    7     1    v3  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      pw    
      v3    

  synchronized void close(javax.naming.ldap.Control[], boolean);
    descriptor: ([Ljavax/naming/ldap/Control;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // javax.naming.ldap.Control[] reqCtls
        start local 2 // boolean hardClose
         0: .line 421
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            iconst_1
            isub
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         1: .line 429
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            ifgt 12
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 12
         2: .line 431
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            ifne 6
         3: .line 433
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* reqCtls */
            iconst_0
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
         4: .line 434
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
         5: .line 435
            goto 12
         6: .line 439
      StackMap locals:
      StackMap stack:
            iload 2 /* hardClose */
            ifeq 11
         7: .line 440
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* reqCtls */
            iconst_0
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
         8: .line 441
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
         9: .line 442
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.removePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
        10: .line 443
            goto 12
        11: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.releasePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
        12: .line 448
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean hardClose
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lcom/sun/jndi/ldap/LdapClient;
            0   13     1    reqCtls  [Ljavax/naming/ldap/Control;
            0   13     2  hardClose  Z
    MethodParameters:
           Name  Flags
      reqCtls    
      hardClose  

  private void forceClose(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // boolean cleanPool
         0: .line 452
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         1: .line 458
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 6
         2: .line 461
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
         3: .line 462
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
         4: .line 464
            iload 1 /* cleanPool */
            ifeq 6
         5: .line 465
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.removePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
         6: .line 468
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean cleanPool
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/sun/jndi/ldap/LdapClient;
            0    7     1  cleanPool  Z
    MethodParameters:
           Name  Flags
      cleanPool  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 472
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            invokevirtual com.sun.jndi.ldap.LdapClient.forceClose:(Z)V
         1: .line 473
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;

  public synchronized void closeConnection();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 479
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapClient.forceClose:(Z)V
         1: .line 480
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;

  void processConnectionClosure();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 490
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 6
         1: .line 492
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 4
         2: .line 493
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " connection closed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         3: .line 494
            goto 5
        end local 1 // java.lang.String msg
         4: .line 495
      StackMap locals:
      StackMap stack:
            ldc "Connection closed"
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         5: .line 497
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new javax.naming.CommunicationException
            dup
            aload 1 /* msg */
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 1 // java.lang.String msg
         6: .line 501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            ifeq 8
         7: .line 502
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.removePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
         8: .line 504
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapClient;
            3    4     1   msg  Ljava/lang/String;
            5    6     1   msg  Ljava/lang/String;

  com.sun.jndi.ldap.LdapResult search(java.lang.String, int, int, int, int, boolean, java.lang.String[], java.lang.String, int, javax.naming.ldap.Control[], java.util.Hashtable, boolean);
    descriptor: (Ljava/lang/String;IIIIZ[Ljava/lang/String;Ljava/lang/String;I[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=17, args_size=13
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String dn
        start local 2 // int scope
        start local 3 // int deref
        start local 4 // int sizeLimit
        start local 5 // int timeLimit
        start local 6 // boolean attrsOnly
        start local 7 // java.lang.String[] attrs
        start local 8 // java.lang.String filter
        start local 9 // int batchSize
        start local 10 // javax.naming.ldap.Control[] reqCtls
        start local 11 // java.util.Hashtable binaryAttrs
        start local 12 // boolean waitFirstReply
         0: .line 522
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 524
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 13 /* res */
        start local 13 // com.sun.jndi.ldap.LdapResult res
         2: .line 526
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 14 /* ber */
        start local 14 // com.sun.jndi.ldap.BerEncoder ber
         3: .line 527
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 15 /* curMsgId */
        start local 15 // int curMsgId
         4: .line 529
            aload 14 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         5: .line 530
            aload 14 /* ber */
            iload 15 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         6: .line 531
            aload 14 /* ber */
            bipush 99
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         7: .line 532
            aload 14 /* ber */
            aload 1 /* dn */
            ifnonnull 8
            ldc ""
            goto 9
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int java.lang.String[] java.lang.String int javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int
      StackMap stack: com.sun.jndi.ldap.BerEncoder
         8: aload 1 /* dn */
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int java.lang.String[] java.lang.String int javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int
      StackMap stack: com.sun.jndi.ldap.BerEncoder java.lang.String
         9: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        10: .line 533
            aload 14 /* ber */
            iload 2 /* scope */
            bipush 10
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
        11: .line 534
            aload 14 /* ber */
            iload 3 /* deref */
            bipush 10
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
        12: .line 535
            aload 14 /* ber */
            iload 4 /* sizeLimit */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        13: .line 536
            aload 14 /* ber */
            iload 5 /* timeLimit */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        14: .line 537
            aload 14 /* ber */
            iload 6 /* attrsOnly */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(Z)V
        15: .line 538
            aload 14 /* ber */
            aload 8 /* filter */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.Filter.encodeFilterString:(Lcom/sun/jndi/ldap/BerEncoder;Ljava/lang/String;Z)V
        16: .line 539
            aload 14 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        17: .line 540
            aload 14 /* ber */
            aload 7 /* attrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeStringArray:([Ljava/lang/String;Z)V
        18: .line 541
            aload 14 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        19: .line 542
            aload 14 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        20: .line 543
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 21
            aload 14 /* ber */
            aload 10 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        21: .line 544
      StackMap locals:
      StackMap stack:
            aload 14 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 546
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 14 /* ber */
            iload 15 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 16 /* req */
        start local 16 // com.sun.jndi.ldap.LdapRequest req
        23: .line 548
            aload 13 /* res */
            iload 15 /* curMsgId */
            putfield com.sun.jndi.ldap.LdapResult.msgId:I
        24: .line 549
            aload 13 /* res */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        25: .line 550
            iload 12 /* waitFirstReply */
            ifeq 27
        26: .line 552
            aload 0 /* this */
            aload 16 /* req */
            iload 9 /* batchSize */
            aload 13 /* res */
            aload 11 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            astore 13 /* res */
        27: .line 554
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 13 /* res */
            areturn
        end local 16 // com.sun.jndi.ldap.LdapRequest req
        end local 15 // int curMsgId
        end local 14 // com.sun.jndi.ldap.BerEncoder ber
        end local 13 // com.sun.jndi.ldap.LdapResult res
        end local 12 // boolean waitFirstReply
        end local 11 // java.util.Hashtable binaryAttrs
        end local 10 // javax.naming.ldap.Control[] reqCtls
        end local 9 // int batchSize
        end local 8 // java.lang.String filter
        end local 7 // java.lang.String[] attrs
        end local 6 // boolean attrsOnly
        end local 5 // int timeLimit
        end local 4 // int sizeLimit
        end local 3 // int deref
        end local 2 // int scope
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lcom/sun/jndi/ldap/LdapClient;
            0   28     1              dn  Ljava/lang/String;
            0   28     2           scope  I
            0   28     3           deref  I
            0   28     4       sizeLimit  I
            0   28     5       timeLimit  I
            0   28     6       attrsOnly  Z
            0   28     7           attrs  [Ljava/lang/String;
            0   28     8          filter  Ljava/lang/String;
            0   28     9       batchSize  I
            0   28    10         reqCtls  [Ljavax/naming/ldap/Control;
            0   28    11     binaryAttrs  Ljava/util/Hashtable;
            0   28    12  waitFirstReply  Z
            2   28    13             res  Lcom/sun/jndi/ldap/LdapResult;
            3   28    14             ber  Lcom/sun/jndi/ldap/BerEncoder;
            4   28    15        curMsgId  I
           23   28    16             req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
                Name  Flags
      dn              
      scope           
      deref           
      sizeLimit       
      timeLimit       
      attrsOnly       
      attrs           
      filter          
      batchSize       
      reqCtls         
      binaryAttrs     
      waitFirstReply  

  void clearSearchReply(com.sun.jndi.ldap.LdapResult, javax.naming.ldap.Control[]);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;[Ljavax/naming/ldap/Control;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // javax.naming.ldap.Control[] ctls
         0: .line 561
            aload 1 /* res */
            ifnull 8
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 8
         1: .line 565
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.msgId:I
            invokevirtual com.sun.jndi.ldap.Connection.findRequest:(I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 3 /* req */
        start local 3 // com.sun.jndi.ldap.LdapRequest req
         2: .line 566
            aload 3 /* req */
            ifnonnull 4
         3: .line 567
            return
         4: .line 575
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 3 /* req */
            invokevirtual com.sun.jndi.ldap.LdapRequest.hasSearchCompleted:()Z
            ifeq 7
         5: .line 576
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 3 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
         6: .line 577
            goto 8
         7: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 3 /* req */
            aload 2 /* ctls */
            invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
        end local 3 // com.sun.jndi.ldap.LdapRequest req
         8: .line 581
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.naming.ldap.Control[] ctls
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0    9     1   res  Lcom/sun/jndi/ldap/LdapResult;
            0    9     2  ctls  [Ljavax/naming/ldap/Control;
            2    8     3   req  Lcom/sun/jndi/ldap/LdapRequest;
    MethodParameters:
      Name  Flags
      res   
      ctls  

  com.sun.jndi.ldap.LdapResult getSearchReply(int, com.sun.jndi.ldap.LdapResult, java.util.Hashtable);
    descriptor: (ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // int batchSize
        start local 2 // com.sun.jndi.ldap.LdapResult res
        start local 3 // java.util.Hashtable binaryAttrs
         0: .line 589
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 593
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.msgId:I
            invokevirtual com.sun.jndi.ldap.Connection.findRequest:(I)Lcom/sun/jndi/ldap/LdapRequest;
            dup
            astore 4 /* req */
        start local 4 // com.sun.jndi.ldap.LdapRequest req
         2: ifnonnull 4
         3: .line 594
            aconst_null
            areturn
         4: .line 597
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 0 /* this */
            aload 4 /* req */
            iload 1 /* batchSize */
            aload 2 /* res */
            aload 3 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 4 // com.sun.jndi.ldap.LdapRequest req
        end local 3 // java.util.Hashtable binaryAttrs
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // int batchSize
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/sun/jndi/ldap/LdapClient;
            0    5     1    batchSize  I
            0    5     2          res  Lcom/sun/jndi/ldap/LdapResult;
            0    5     3  binaryAttrs  Ljava/util/Hashtable;
            2    5     4          req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
             Name  Flags
      batchSize    
      res          
      binaryAttrs  

  private com.sun.jndi.ldap.LdapResult getSearchReply(com.sun.jndi.ldap.LdapRequest, int, com.sun.jndi.ldap.LdapResult, java.util.Hashtable);
    descriptor: (Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapRequest req
        start local 2 // int batchSize
        start local 3 // com.sun.jndi.ldap.LdapResult res
        start local 4 // java.util.Hashtable binaryAttrs
         0: .line 604
            iload 2 /* batchSize */
            ifne 2
         1: .line 605
            ldc 2147483647
            istore 2 /* batchSize */
         2: .line 607
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 5
         3: .line 608
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.setSize:(I)V
         4: .line 609
            goto 10
         5: .line 610
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
         6: .line 611
            new java.util.Vector
            dup
            iload 2 /* batchSize */
            ldc 2147483647
            if_icmpne 7
            bipush 32
            goto 8
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable
      StackMap stack: com.sun.jndi.ldap.LdapResult new 6 new 6
         7: iload 2 /* batchSize */
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable
      StackMap stack: com.sun.jndi.ldap.LdapResult new 6 new 6 int
         8: invokespecial java.util.Vector.<init>:(I)V
         9: .line 610
            putfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
        10: .line 614
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 12
        11: .line 615
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.setSize:(I)V
        12: .line 628
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        13: goto 64
        14: .line 629
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable top top top top top top top top int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 5 /* replyBer */
        start local 5 // com.sun.jndi.ldap.BerDecoder replyBer
        15: .line 634
            aload 5 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        16: .line 635
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
        17: .line 636
            aload 5 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            istore 6 /* seq */
        start local 6 // int seq
        18: .line 638
            iload 6 /* seq */
            bipush 100
            if_icmpne 37
        19: .line 641
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 7 /* lattrs */
        start local 7 // javax.naming.directory.Attributes lattrs
        20: .line 642
            aload 5 /* replyBer */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            astore 9 /* DN */
        start local 9 // java.lang.String DN
        21: .line 643
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 9 /* DN */
            aload 7 /* lattrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 10 /* le */
        start local 10 // com.sun.jndi.ldap.LdapEntry le
        22: .line 644
            iconst_1
            newarray 10
            astore 11 /* seqlen */
        start local 11 // int[] seqlen
        23: .line 646
            aload 5 /* replyBer */
            aload 11 /* seqlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        24: .line 647
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            aload 11 /* seqlen */
            iconst_0
            iaload
            iadd
            istore 12 /* endseq */
        start local 12 // int endseq
        25: .line 648
            goto 28
        26: .line 650
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int javax.naming.directory.Attributes top java.lang.String com.sun.jndi.ldap.LdapEntry int[] int int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* replyBer */
            aload 4 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseAttribute:(Lcom/sun/jndi/ldap/BerDecoder;Ljava/util/Hashtable;)Ljavax/naming/directory/Attribute;
            astore 8 /* la */
        start local 8 // javax.naming.directory.Attribute la
        27: .line 651
            aload 7 /* lattrs */
            aload 8 /* la */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 8 // javax.naming.directory.Attribute la
        28: .line 648
      StackMap locals:
      StackMap stack:
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            iload 12 /* endseq */
            if_icmpge 31
        29: .line 649
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
        30: .line 648
            ifgt 26
        31: .line 653
      StackMap locals:
      StackMap stack:
            aload 10 /* le */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 32
            aload 5 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 33
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapEntry
        32: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int javax.naming.directory.Attributes top java.lang.String com.sun.jndi.ldap.LdapEntry int[] int int
      StackMap stack: com.sun.jndi.ldap.LdapEntry java.util.Vector
        33: putfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
        34: .line 655
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            aload 10 /* le */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        35: .line 656
            iinc 13 /* i */ 1
        36: .line 658
            goto 64
        end local 12 // int endseq
        end local 11 // int[] seqlen
        end local 10 // com.sun.jndi.ldap.LdapEntry le
        end local 9 // java.lang.String DN
        end local 7 // javax.naming.directory.Attributes lattrs
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int top top top top top top int
      StackMap stack:
        37: iload 6 /* seq */
            bipush 115
            if_icmpne 54
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 54
        38: .line 661
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            astore 14 /* URLs */
        start local 14 // java.util.Vector URLs
        39: .line 665
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
        40: .line 666
            bipush 48
        41: .line 665
            if_icmpne 45
        42: .line 667
            aload 5 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        43: .line 670
            goto 45
        44: .line 673
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 14 /* URLs */
            aload 5 /* replyBer */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        45: .line 670
      StackMap locals:
      StackMap stack:
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 47
        46: .line 671
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            iconst_4
            if_icmpeq 44
        47: .line 676
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 49
        48: .line 677
            aload 3 /* res */
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        49: .line 679
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            aload 14 /* URLs */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        50: .line 680
            aload 3 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 51
            aload 5 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 52
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
        51: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int top top top top top top int java.util.Vector
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
        52: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        end local 14 // java.util.Vector URLs
        53: .line 684
            goto 64
      StackMap locals:
      StackMap stack:
        54: iload 6 /* seq */
            bipush 120
            if_icmpne 57
        55: .line 686
            aload 0 /* this */
            aload 5 /* replyBer */
            aload 3 /* res */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseExtResponse:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
        56: .line 688
            goto 64
      StackMap locals:
      StackMap stack:
        57: iload 6 /* seq */
            bipush 101
            if_icmpne 64
        58: .line 690
            aload 5 /* replyBer */
            aload 3 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
        59: .line 691
            aload 3 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 60
            aload 5 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 61
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
        60: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int top top top top top top int
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
        61: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        62: .line 693
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        63: .line 694
            aload 3 /* res */
            areturn
        end local 6 // int seq
        end local 5 // com.sun.jndi.ldap.BerDecoder replyBer
        64: .line 628
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable top top top top top top top top int
      StackMap stack:
            iload 13 /* i */
            iload 2 /* batchSize */
            if_icmplt 14
        end local 13 // int i
        65: .line 698
            aload 3 /* res */
            areturn
        end local 4 // java.util.Hashtable binaryAttrs
        end local 3 // com.sun.jndi.ldap.LdapResult res
        end local 2 // int batchSize
        end local 1 // com.sun.jndi.ldap.LdapRequest req
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   66     0         this  Lcom/sun/jndi/ldap/LdapClient;
            0   66     1          req  Lcom/sun/jndi/ldap/LdapRequest;
            0   66     2    batchSize  I
            0   66     3          res  Lcom/sun/jndi/ldap/LdapResult;
            0   66     4  binaryAttrs  Ljava/util/Hashtable;
           15   64     5     replyBer  Lcom/sun/jndi/ldap/BerDecoder;
           18   64     6          seq  I
           20   37     7       lattrs  Ljavax/naming/directory/Attributes;
           27   28     8           la  Ljavax/naming/directory/Attribute;
           21   37     9           DN  Ljava/lang/String;
           22   37    10           le  Lcom/sun/jndi/ldap/LdapEntry;
           23   37    11       seqlen  [I
           25   37    12       endseq  I
           13   65    13            i  I
           39   53    14         URLs  Ljava/util/Vector;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
             Name  Flags
      req          
      batchSize    
      res          
      binaryAttrs  

  private javax.naming.directory.Attribute parseAttribute(com.sun.jndi.ldap.BerDecoder, java.util.Hashtable);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Ljava/util/Hashtable;)Ljavax/naming/directory/Attribute;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder ber
        start local 2 // java.util.Hashtable binaryAttrs
         0: .line 704
            iconst_1
            newarray 10
            astore 3 /* len */
        start local 3 // int[] len
         1: .line 705
            aload 1 /* ber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         2: .line 706
            aload 1 /* ber */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            astore 4 /* attrid */
        start local 4 // java.lang.String attrid
         3: .line 707
            aload 0 /* this */
            aload 4 /* attrid */
            aload 2 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.isBinaryValued:(Ljava/lang/String;Ljava/util/Hashtable;)Z
            istore 5 /* hasBinaryValues */
        start local 5 // boolean hasBinaryValues
         4: .line 708
            new com.sun.jndi.ldap.LdapAttribute
            dup
            aload 4 /* attrid */
            invokespecial com.sun.jndi.ldap.LdapAttribute.<init>:(Ljava/lang/String;)V
            astore 6 /* la */
        start local 6 // javax.naming.directory.Attribute la
         5: .line 710
            aload 1 /* ber */
            aload 3 /* len */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            bipush 49
            if_icmpne 15
         6: .line 711
            aload 3 /* len */
            iconst_0
            iaload
            istore 7 /* attrlen */
        start local 7 // int attrlen
         7: .line 712
            goto 13
         8: .line 714
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder java.util.Hashtable int[] java.lang.String int javax.naming.directory.Attribute int
      StackMap stack:
            iload 7 /* attrlen */
            aload 0 /* this */
            aload 1 /* ber */
            aload 6 /* la */
            iload 5 /* hasBinaryValues */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseAttributeValue:(Lcom/sun/jndi/ldap/BerDecoder;Ljavax/naming/directory/Attribute;Z)I
            isub
            istore 7 /* attrlen */
         9: .line 715
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        10: pop
        11: .line 716
            aload 1 /* ber */
            iload 7 /* attrlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.seek:(I)V
        12: .line 717
            goto 16
        13: .line 712
      StackMap locals:
      StackMap stack:
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 16
            iload 7 /* attrlen */
            ifgt 8
        end local 7 // int attrlen
        14: .line 720
            goto 16
        15: .line 722
      StackMap locals:
      StackMap stack:
            aload 1 /* ber */
            aload 3 /* len */
            iconst_0
            iaload
            invokevirtual com.sun.jndi.ldap.BerDecoder.seek:(I)V
        16: .line 724
      StackMap locals:
      StackMap stack:
            aload 6 /* la */
            areturn
        end local 6 // javax.naming.directory.Attribute la
        end local 5 // boolean hasBinaryValues
        end local 4 // java.lang.String attrid
        end local 3 // int[] len
        end local 2 // java.util.Hashtable binaryAttrs
        end local 1 // com.sun.jndi.ldap.BerDecoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/sun/jndi/ldap/LdapClient;
            0   17     1              ber  Lcom/sun/jndi/ldap/BerDecoder;
            0   17     2      binaryAttrs  Ljava/util/Hashtable;
            1   17     3              len  [I
            3   17     4           attrid  Ljava/lang/String;
            4   17     5  hasBinaryValues  Z
            5   17     6               la  Ljavax/naming/directory/Attribute;
            7   14     7          attrlen  I
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      ber          
      binaryAttrs  

  private int parseAttributeValue(com.sun.jndi.ldap.BerDecoder, javax.naming.directory.Attribute, boolean);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Ljavax/naming/directory/Attribute;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder ber
        start local 2 // javax.naming.directory.Attribute la
        start local 3 // boolean hasBinaryValues
         0: .line 733
            iconst_1
            newarray 10
            astore 4 /* len */
        start local 4 // int[] len
         1: .line 735
            iload 3 /* hasBinaryValues */
            ifeq 4
         2: .line 736
            aload 2 /* la */
            aload 1 /* ber */
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            aload 4 /* len */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         3: .line 737
            goto 5
         4: .line 738
      StackMap locals: int[]
      StackMap stack:
            aload 2 /* la */
            aload 1 /* ber */
            iconst_4
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            aload 4 /* len */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseStringWithTag:(IZ[I)Ljava/lang/String;
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         5: .line 740
      StackMap locals:
      StackMap stack:
            aload 4 /* len */
            iconst_0
            iaload
            ireturn
        end local 4 // int[] len
        end local 3 // boolean hasBinaryValues
        end local 2 // javax.naming.directory.Attribute la
        end local 1 // com.sun.jndi.ldap.BerDecoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/sun/jndi/ldap/LdapClient;
            0    6     1              ber  Lcom/sun/jndi/ldap/BerDecoder;
            0    6     2               la  Ljavax/naming/directory/Attribute;
            0    6     3  hasBinaryValues  Z
            1    6     4              len  [I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      ber              
      la               
      hasBinaryValues  

  private boolean isBinaryValued(java.lang.String, java.util.Hashtable);
    descriptor: (Ljava/lang/String;Ljava/util/Hashtable;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String attrid
        start local 2 // java.util.Hashtable binaryAttrs
         0: .line 744
            aload 1 /* attrid */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 3 /* id */
        start local 3 // java.lang.String id
         1: .line 746
            aload 3 /* id */
            ldc ";binary"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpne 5
         2: .line 747
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            aload 3 /* id */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 748
            aload 2 /* binaryAttrs */
            ifnull 4
            aload 2 /* binaryAttrs */
            aload 3 /* id */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 746
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
        end local 3 // java.lang.String id
        end local 2 // java.util.Hashtable binaryAttrs
        end local 1 // java.lang.String attrid
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/sun/jndi/ldap/LdapClient;
            0    6     1       attrid  Ljava/lang/String;
            0    6     2  binaryAttrs  Ljava/util/Hashtable;
            1    6     3           id  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      attrid       
      binaryAttrs  

  static void parseResult(com.sun.jndi.ldap.BerDecoder, com.sun.jndi.ldap.LdapResult, boolean);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.jndi.ldap.BerDecoder replyBer
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // boolean isLdapv3
         0: .line 755
            aload 1 /* res */
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseEnumeration:()I
            putfield com.sun.jndi.ldap.LdapResult.status:I
         1: .line 756
            aload 1 /* res */
            aload 0 /* replyBer */
            iload 2 /* isLdapv3 */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
         2: .line 757
            aload 1 /* res */
            aload 0 /* replyBer */
            iload 2 /* isLdapv3 */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
         3: .line 760
            iload 2 /* isLdapv3 */
            ifeq 18
         4: .line 761
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 18
         5: .line 762
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 163
            if_icmpne 18
         6: .line 764
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            astore 3 /* URLs */
        start local 3 // java.util.Vector URLs
         7: .line 765
            iconst_1
            newarray 10
            astore 4 /* seqlen */
        start local 4 // int[] seqlen
         8: .line 767
            aload 0 /* replyBer */
            aload 4 /* seqlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         9: .line 768
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            aload 4 /* seqlen */
            iconst_0
            iaload
            iadd
            istore 5 /* endseq */
        start local 5 // int endseq
        10: .line 769
            goto 12
        11: .line 772
      StackMap locals: java.util.Vector int[] int
      StackMap stack:
            aload 3 /* URLs */
            aload 0 /* replyBer */
            iload 2 /* isLdapv3 */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        12: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            iload 5 /* endseq */
            if_icmpge 15
        13: .line 770
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
        14: .line 769
            ifgt 11
        15: .line 775
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 17
        16: .line 776
            aload 1 /* res */
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        17: .line 778
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            aload 3 /* URLs */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 5 // int endseq
        end local 4 // int[] seqlen
        end local 3 // java.util.Vector URLs
        18: .line 780
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean isLdapv3
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.BerDecoder replyBer
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0  replyBer  Lcom/sun/jndi/ldap/BerDecoder;
            0   19     1       res  Lcom/sun/jndi/ldap/LdapResult;
            0   19     2  isLdapv3  Z
            7   18     3      URLs  Ljava/util/Vector;
            8   18     4    seqlen  [I
           10   18     5    endseq  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      replyBer  
      res       
      isLdapv3  

  static java.util.Vector parseControls(com.sun.jndi.ldap.BerDecoder);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.sun.jndi.ldap.BerDecoder replyBer
         0: .line 786
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 25
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 160
            if_icmpne 25
         1: .line 787
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            astore 1 /* ctls */
        start local 1 // java.util.Vector ctls
         2: .line 789
            iconst_0
            istore 3 /* criticality */
        start local 3 // boolean criticality
         3: .line 790
            aconst_null
            astore 4 /* controlValue */
        start local 4 // byte[] controlValue
         4: .line 791
            iconst_1
            newarray 10
            astore 5 /* seqlen */
        start local 5 // int[] seqlen
         5: .line 793
            aload 0 /* replyBer */
            aload 5 /* seqlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         6: .line 794
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            aload 5 /* seqlen */
            iconst_0
            iaload
            iadd
            istore 6 /* endseq */
        start local 6 // int endseq
         7: .line 795
            goto 21
         8: .line 798
      StackMap locals: com.sun.jndi.ldap.BerDecoder java.util.Vector top int byte[] int[] int
      StackMap stack:
            aload 0 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         9: .line 799
            aload 0 /* replyBer */
            iconst_1
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            astore 2 /* controlOID */
        start local 2 // java.lang.String controlOID
        10: .line 801
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 13
        11: .line 802
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            iconst_1
            if_icmpne 13
        12: .line 803
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseBoolean:()Z
            istore 3 /* criticality */
        13: .line 805
      StackMap locals: com.sun.jndi.ldap.BerDecoder java.util.Vector java.lang.String int byte[] int[] int
      StackMap stack:
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 17
        14: .line 806
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            iconst_4
            if_icmpne 17
        15: .line 808
            aload 0 /* replyBer */
            iconst_4
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
        16: .line 807
            astore 4 /* controlValue */
        17: .line 810
      StackMap locals:
      StackMap stack:
            aload 2 /* controlOID */
            ifnull 21
        18: .line 811
            aload 1 /* ctls */
        19: .line 812
            new com.sun.jndi.ldap.BasicControl
            dup
            aload 2 /* controlOID */
            iload 3 /* criticality */
            aload 4 /* controlValue */
            invokespecial com.sun.jndi.ldap.BasicControl.<init>:(Ljava/lang/String;Z[B)V
        20: .line 811
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 2 // java.lang.String controlOID
        21: .line 795
      StackMap locals: com.sun.jndi.ldap.BerDecoder java.util.Vector top int byte[] int[] int
      StackMap stack:
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            iload 6 /* endseq */
            if_icmpge 24
        22: .line 796
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
        23: .line 795
            ifgt 8
        24: .line 815
      StackMap locals:
      StackMap stack:
            aload 1 /* ctls */
            areturn
        end local 6 // int endseq
        end local 5 // int[] seqlen
        end local 4 // byte[] controlValue
        end local 3 // boolean criticality
        end local 1 // java.util.Vector ctls
        25: .line 817
      StackMap locals: com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.sun.jndi.ldap.BerDecoder replyBer
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0      replyBer  Lcom/sun/jndi/ldap/BerDecoder;
            2   25     1          ctls  Ljava/util/Vector;
           10   21     2    controlOID  Ljava/lang/String;
            3   25     3   criticality  Z
            4   25     4  controlValue  [B
            5   25     5        seqlen  [I
            7   25     6        endseq  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      replyBer  

  private void parseExtResponse(com.sun.jndi.ldap.BerDecoder, com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder replyBer
        start local 2 // com.sun.jndi.ldap.LdapResult res
         0: .line 824
            aload 1 /* replyBer */
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
         1: .line 826
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 6
         2: .line 827
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 138
            if_icmpne 6
         3: .line 828
            aload 2 /* res */
         4: .line 829
            aload 1 /* replyBer */
            sipush 138
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseStringWithTag:(IZ[I)Ljava/lang/String;
         5: .line 828
            putfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
         6: .line 831
      StackMap locals:
      StackMap stack:
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 11
         7: .line 832
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 139
            if_icmpne 11
         8: .line 833
            aload 2 /* res */
         9: .line 834
            aload 1 /* replyBer */
            sipush 139
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
        10: .line 833
            putfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
        11: .line 837
      StackMap locals:
      StackMap stack:
            aload 2 /* res */
            aload 1 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        12: .line 838
            return
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.BerDecoder replyBer
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   13     1  replyBer  Lcom/sun/jndi/ldap/BerDecoder;
            0   13     2       res  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      replyBer  
      res       

  static void encodeControls(com.sun.jndi.ldap.BerEncoder, javax.naming.ldap.Control[]);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 846
            aload 1 /* reqCtls */
            ifnull 1
            aload 1 /* reqCtls */
            arraylength
            ifne 2
         1: .line 847
      StackMap locals:
      StackMap stack:
            return
         2: .line 852
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            sipush 160
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         3: .line 854
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 14
         5: .line 855
      StackMap locals: com.sun.jndi.ldap.BerEncoder javax.naming.ldap.Control[] top int
      StackMap stack:
            aload 0 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         6: .line 856
            aload 0 /* ber */
            aload 1 /* reqCtls */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.ldap.Control.getID:()Ljava/lang/String;
            iconst_1
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
         7: .line 857
            aload 1 /* reqCtls */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.ldap.Control.isCritical:()Z
            ifeq 9
         8: .line 858
            aload 0 /* ber */
            iconst_1
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(Z)V
         9: .line 860
      StackMap locals:
      StackMap stack:
            aload 1 /* reqCtls */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.ldap.Control.getEncodedValue:()[B
            dup
            astore 2 /* controlVal */
        start local 2 // byte[] controlVal
        10: ifnull 12
        11: .line 861
            aload 0 /* ber */
            aload 2 /* controlVal */
            iconst_4
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        12: .line 863
      StackMap locals: com.sun.jndi.ldap.BerEncoder javax.naming.ldap.Control[] byte[] int
      StackMap stack:
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        13: .line 854
            iinc 3 /* i */ 1
        end local 2 // byte[] controlVal
      StackMap locals: com.sun.jndi.ldap.BerEncoder javax.naming.ldap.Control[] top int
      StackMap stack:
        14: iload 3 /* i */
            aload 1 /* reqCtls */
            arraylength
            if_icmplt 5
        end local 3 // int i
        15: .line 865
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        16: .line 866
            return
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   17     1     reqCtls  [Ljavax/naming/ldap/Control;
           10   14     2  controlVal  [B
            4   15     3           i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      ber      
      reqCtls  

  private com.sun.jndi.ldap.LdapResult processReply(com.sun.jndi.ldap.LdapRequest, com.sun.jndi.ldap.LdapResult, int);
    descriptor: (Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapRequest req
        start local 2 // com.sun.jndi.ldap.LdapResult res
        start local 3 // int responseType
         0: .line 875
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 4 /* rber */
        start local 4 // com.sun.jndi.ldap.BerDecoder rber
         1: .line 877
            aload 4 /* rber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         2: .line 878
            aload 4 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
         3: .line 879
            aload 4 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            iload 3 /* responseType */
            if_icmpeq 5
         4: .line 880
            aload 2 /* res */
            areturn
         5: .line 883
      StackMap locals: com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aload 4 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
         6: .line 884
            aload 4 /* rber */
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
         7: .line 885
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 8
            aload 4 /* rber */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 9
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
         8: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.LdapResult int com.sun.jndi.ldap.BerDecoder
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
         9: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        10: .line 887
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        11: .line 889
            aload 2 /* res */
            areturn
        end local 4 // com.sun.jndi.ldap.BerDecoder rber
        end local 3 // int responseType
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.LdapRequest req
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lcom/sun/jndi/ldap/LdapClient;
            0   12     1           req  Lcom/sun/jndi/ldap/LdapRequest;
            0   12     2           res  Lcom/sun/jndi/ldap/LdapResult;
            0   12     3  responseType  I
            1   12     4          rber  Lcom/sun/jndi/ldap/BerDecoder;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
              Name  Flags
      req           
      res           
      responseType  

  com.sun.jndi.ldap.LdapResult modify(java.lang.String, int[], javax.naming.directory.Attribute[], javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String dn
        start local 2 // int[] operations
        start local 3 // javax.naming.directory.Attribute[] attrs
        start local 4 // javax.naming.ldap.Control[] reqCtls
         0: .line 913
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 915
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 5 /* res */
        start local 5 // com.sun.jndi.ldap.LdapResult res
         2: .line 916
            aload 5 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 918
            aload 1 /* dn */
            ifnull 4
            aload 2 /* operations */
            arraylength
            aload 3 /* attrs */
            arraylength
            if_icmpeq 5
         4: .line 919
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* res */
            areturn
         5: .line 921
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 922
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         7: .line 924
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 925
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 926
            aload 6 /* ber */
            bipush 102
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 927
            aload 6 /* ber */
            aload 1 /* dn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        11: .line 928
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        12: .line 929
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 23
        14: .line 930
      StackMap locals: com.sun.jndi.ldap.BerEncoder int int
      StackMap stack:
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        15: .line 931
            aload 6 /* ber */
            aload 2 /* operations */
            iload 8 /* i */
            iaload
            bipush 10
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
        16: .line 934
            aload 2 /* operations */
            iload 8 /* i */
            iaload
            ifne 20
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            invokestatic com.sun.jndi.ldap.LdapClient.hasNoValue:(Ljavax/naming/directory/Attribute;)Z
            ifeq 20
        17: .line 935
            new javax.naming.directory.InvalidAttributeValueException
            dup
        18: .line 936
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' has no values."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 935
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 938
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* ber */
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            invokevirtual com.sun.jndi.ldap.LdapClient.encodeAttribute:(Lcom/sun/jndi/ldap/BerEncoder;Ljavax/naming/directory/Attribute;)V
        21: .line 940
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 929
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            aload 2 /* operations */
            arraylength
            if_icmplt 14
        end local 8 // int i
        24: .line 942
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        25: .line 943
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        26: .line 944
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 27
            aload 6 /* ber */
            aload 4 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        27: .line 945
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        28: .line 947
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 8 /* req */
        start local 8 // com.sun.jndi.ldap.LdapRequest req
        29: .line 949
            aload 0 /* this */
            aload 8 /* req */
            aload 5 /* res */
            bipush 103
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 8 // com.sun.jndi.ldap.LdapRequest req
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // com.sun.jndi.ldap.LdapResult res
        end local 4 // javax.naming.ldap.Control[] reqCtls
        end local 3 // javax.naming.directory.Attribute[] attrs
        end local 2 // int[] operations
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Lcom/sun/jndi/ldap/LdapClient;
            0   30     1          dn  Ljava/lang/String;
            0   30     2  operations  [I
            0   30     3       attrs  [Ljavax/naming/directory/Attribute;
            0   30     4     reqCtls  [Ljavax/naming/ldap/Control;
            2   30     5         res  Lcom/sun/jndi/ldap/LdapResult;
            6   30     6         ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   30     7    curMsgId  I
           13   24     8           i  I
           29   30     8         req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
            Name  Flags
      dn          
      operations  
      attrs       
      reqCtls     

  private void encodeAttribute(com.sun.jndi.ldap.BerEncoder, javax.naming.directory.Attribute);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;Ljavax/naming/directory/Attribute;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerEncoder ber
        start local 2 // javax.naming.directory.Attribute attr
         0: .line 955
            aload 1 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         1: .line 956
            aload 1 /* ber */
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
         2: .line 957
            aload 1 /* ber */
            bipush 49
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         3: .line 958
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 3 /* enum_ */
        start local 3 // javax.naming.NamingEnumeration enum_
         4: .line 960
            goto 16
         5: .line 961
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            astore 4 /* val */
        start local 4 // java.lang.Object val
         6: .line 962
            aload 4 /* val */
            instanceof java.lang.String
            ifeq 9
         7: .line 963
            aload 1 /* ber */
            aload 4 /* val */
            checkcast java.lang.String
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
         8: .line 964
            goto 16
      StackMap locals: java.lang.Object
      StackMap stack:
         9: aload 4 /* val */
            instanceof byte[]
            ifeq 12
        10: .line 965
            aload 1 /* ber */
            aload 4 /* val */
            checkcast byte[]
            iconst_4
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        11: .line 966
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 4 /* val */
            ifnull 16
        13: .line 969
            new javax.naming.directory.InvalidAttributeValueException
            dup
        14: .line 970
            new java.lang.StringBuilder
            dup
            ldc "Malformed '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' attribute value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 969
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Object val
        16: .line 960
      StackMap locals:
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 5
        17: .line 973
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        18: .line 974
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        19: .line 975
            return
        end local 3 // javax.naming.NamingEnumeration enum_
        end local 2 // javax.naming.directory.Attribute attr
        end local 1 // com.sun.jndi.ldap.BerEncoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lcom/sun/jndi/ldap/LdapClient;
            0   20     1    ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   20     2   attr  Ljavax/naming/directory/Attribute;
            4   20     3  enum_  Ljavax/naming/NamingEnumeration;
            6   16     4    val  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
      Name  Flags
      ber   
      attr  

  private static boolean hasNoValue(javax.naming.directory.Attribute);
    descriptor: (Ljavax/naming/directory/Attribute;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.naming.directory.Attribute attr
         0: .line 978
            aload 0 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifeq 2
            aload 0 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            iconst_1
            if_icmpne 1
            aload 0 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            ifnull 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 0 // javax.naming.directory.Attribute attr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  attr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      attr  

  com.sun.jndi.ldap.LdapResult add(com.sun.jndi.ldap.LdapEntry, javax.naming.ldap.Control[]);
    descriptor: (Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapEntry entry
        start local 2 // javax.naming.ldap.Control[] reqCtls
         0: .line 991
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 993
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 3 /* res */
        start local 3 // com.sun.jndi.ldap.LdapResult res
         2: .line 994
            aload 3 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 996
            aload 1 /* entry */
            ifnull 4
            aload 1 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.DN:Ljava/lang/String;
            ifnonnull 5
         4: .line 997
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 3 /* res */
            areturn
         5: .line 999
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 4 /* ber */
        start local 4 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1000
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 5 /* curMsgId */
        start local 5 // int curMsgId
         7: .line 1003
            aload 4 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1004
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1005
            aload 4 /* ber */
            bipush 104
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 1006
            aload 4 /* ber */
            aload 1 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.DN:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        11: .line 1007
            aload 4 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        12: .line 1008
            aload 1 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 7 /* enum_ */
        start local 7 // javax.naming.NamingEnumeration enum_
        13: .line 1009
            goto 20
        14: .line 1010
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapEntry javax.naming.ldap.Control[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int top javax.naming.NamingEnumeration
      StackMap stack:
            aload 7 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 6 /* attr */
        start local 6 // javax.naming.directory.Attribute attr
        15: .line 1013
            aload 6 /* attr */
            invokestatic com.sun.jndi.ldap.LdapClient.hasNoValue:(Ljavax/naming/directory/Attribute;)Z
            ifeq 19
        16: .line 1014
            new javax.naming.directory.InvalidAttributeValueException
            dup
        17: .line 1015
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' has no values."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 1014
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 1017
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapEntry javax.naming.ldap.Control[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int javax.naming.directory.Attribute javax.naming.NamingEnumeration
      StackMap stack:
            aload 0 /* this */
            aload 4 /* ber */
            aload 6 /* attr */
            invokevirtual com.sun.jndi.ldap.LdapClient.encodeAttribute:(Lcom/sun/jndi/ldap/BerEncoder;Ljavax/naming/directory/Attribute;)V
        end local 6 // javax.naming.directory.Attribute attr
        20: .line 1009
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapEntry javax.naming.ldap.Control[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int top javax.naming.NamingEnumeration
      StackMap stack:
            aload 7 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 14
        21: .line 1020
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 1021
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        23: .line 1022
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 24
            aload 4 /* ber */
            aload 2 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        24: .line 1023
      StackMap locals:
      StackMap stack:
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        25: .line 1025
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 8 /* req */
        start local 8 // com.sun.jndi.ldap.LdapRequest req
        26: .line 1026
            aload 0 /* this */
            aload 8 /* req */
            aload 3 /* res */
            bipush 105
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 8 // com.sun.jndi.ldap.LdapRequest req
        end local 7 // javax.naming.NamingEnumeration enum_
        end local 5 // int curMsgId
        end local 4 // com.sun.jndi.ldap.BerEncoder ber
        end local 3 // com.sun.jndi.ldap.LdapResult res
        end local 2 // javax.naming.ldap.Control[] reqCtls
        end local 1 // com.sun.jndi.ldap.LdapEntry entry
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   27     1     entry  Lcom/sun/jndi/ldap/LdapEntry;
            0   27     2   reqCtls  [Ljavax/naming/ldap/Control;
            2   27     3       res  Lcom/sun/jndi/ldap/LdapResult;
            6   27     4       ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   27     5  curMsgId  I
           15   20     6      attr  Ljavax/naming/directory/Attribute;
           13   27     7     enum_  Ljavax/naming/NamingEnumeration;
           26   27     8       req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
         Name  Flags
      entry    
      reqCtls  

  com.sun.jndi.ldap.LdapResult delete(java.lang.String, javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String DN
        start local 2 // javax.naming.ldap.Control[] reqCtls
         0: .line 1039
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1041
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 3 /* res */
        start local 3 // com.sun.jndi.ldap.LdapResult res
         2: .line 1042
            aload 3 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1044
            aload 1 /* DN */
            ifnonnull 5
         4: .line 1045
            aload 3 /* res */
            areturn
         5: .line 1047
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 4 /* ber */
        start local 4 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1048
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 5 /* curMsgId */
        start local 5 // int curMsgId
         7: .line 1050
            aload 4 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1051
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1052
            aload 4 /* ber */
            aload 1 /* DN */
            bipush 74
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;IZ)V
        10: .line 1053
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 11
            aload 4 /* ber */
            aload 2 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        11: .line 1054
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        12: .line 1056
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 6 /* req */
        start local 6 // com.sun.jndi.ldap.LdapRequest req
        13: .line 1058
            aload 0 /* this */
            aload 6 /* req */
            aload 3 /* res */
            bipush 107
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 6 // com.sun.jndi.ldap.LdapRequest req
        end local 5 // int curMsgId
        end local 4 // com.sun.jndi.ldap.BerEncoder ber
        end local 3 // com.sun.jndi.ldap.LdapResult res
        end local 2 // javax.naming.ldap.Control[] reqCtls
        end local 1 // java.lang.String DN
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   14     1        DN  Ljava/lang/String;
            0   14     2   reqCtls  [Ljavax/naming/ldap/Control;
            2   14     3       res  Lcom/sun/jndi/ldap/LdapResult;
            6   14     4       ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   14     5  curMsgId  I
           13   14     6       req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
         Name  Flags
      DN       
      reqCtls  

  com.sun.jndi.ldap.LdapResult moddn(java.lang.String, java.lang.String, boolean, java.lang.String, javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String DN
        start local 2 // java.lang.String newrdn
        start local 3 // boolean deleteOldRdn
        start local 4 // java.lang.String newSuperior
        start local 5 // javax.naming.ldap.Control[] reqCtls
         0: .line 1078
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1080
            aload 4 /* newSuperior */
            ifnull 4
         2: .line 1081
            aload 4 /* newSuperior */
            invokevirtual java.lang.String.length:()I
         3: .line 1080
            ifle 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* changeSuperior */
        start local 6 // boolean changeSuperior
         6: .line 1083
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapResult res
         7: .line 1084
            aload 7 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         8: .line 1086
            aload 1 /* DN */
            ifnull 9
            aload 2 /* newrdn */
            ifnonnull 10
         9: .line 1087
      StackMap locals: int com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 7 /* res */
            areturn
        10: .line 1089
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 8 /* ber */
        start local 8 // com.sun.jndi.ldap.BerEncoder ber
        11: .line 1090
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 9 /* curMsgId */
        start local 9 // int curMsgId
        12: .line 1092
            aload 8 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        13: .line 1093
            aload 8 /* ber */
            iload 9 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        14: .line 1094
            aload 8 /* ber */
            bipush 108
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        15: .line 1095
            aload 8 /* ber */
            aload 1 /* DN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        16: .line 1096
            aload 8 /* ber */
            aload 2 /* newrdn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        17: .line 1097
            aload 8 /* ber */
            iload 3 /* deleteOldRdn */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(Z)V
        18: .line 1098
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 20
            iload 6 /* changeSuperior */
            ifeq 20
        19: .line 1100
            aload 8 /* ber */
            aload 4 /* newSuperior */
            sipush 128
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;IZ)V
        20: .line 1102
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 8 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        21: .line 1103
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 22
            aload 8 /* ber */
            aload 5 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        22: .line 1104
      StackMap locals:
      StackMap stack:
            aload 8 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        23: .line 1107
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 8 /* ber */
            iload 9 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 10 /* req */
        start local 10 // com.sun.jndi.ldap.LdapRequest req
        24: .line 1109
            aload 0 /* this */
            aload 10 /* req */
            aload 7 /* res */
            bipush 109
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 10 // com.sun.jndi.ldap.LdapRequest req
        end local 9 // int curMsgId
        end local 8 // com.sun.jndi.ldap.BerEncoder ber
        end local 7 // com.sun.jndi.ldap.LdapResult res
        end local 6 // boolean changeSuperior
        end local 5 // javax.naming.ldap.Control[] reqCtls
        end local 4 // java.lang.String newSuperior
        end local 3 // boolean deleteOldRdn
        end local 2 // java.lang.String newrdn
        end local 1 // java.lang.String DN
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            this  Lcom/sun/jndi/ldap/LdapClient;
            0   25     1              DN  Ljava/lang/String;
            0   25     2          newrdn  Ljava/lang/String;
            0   25     3    deleteOldRdn  Z
            0   25     4     newSuperior  Ljava/lang/String;
            0   25     5         reqCtls  [Ljavax/naming/ldap/Control;
            6   25     6  changeSuperior  Z
            7   25     7             res  Lcom/sun/jndi/ldap/LdapResult;
           11   25     8             ber  Lcom/sun/jndi/ldap/BerEncoder;
           12   25     9        curMsgId  I
           24   25    10             req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
              Name  Flags
      DN            
      newrdn        
      deleteOldRdn  
      newSuperior   
      reqCtls       

  com.sun.jndi.ldap.LdapResult compare(java.lang.String, java.lang.String, java.lang.String, javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String DN
        start local 2 // java.lang.String type
        start local 3 // java.lang.String value
        start local 4 // javax.naming.ldap.Control[] reqCtls
         0: .line 1122
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1124
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 5 /* res */
        start local 5 // com.sun.jndi.ldap.LdapResult res
         2: .line 1125
            aload 5 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1127
            aload 1 /* DN */
            ifnull 4
            aload 2 /* type */
            ifnull 4
            aload 3 /* value */
            ifnonnull 5
         4: .line 1128
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* res */
            areturn
         5: .line 1130
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1131
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         7: .line 1133
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1134
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1135
            aload 6 /* ber */
            bipush 110
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 1136
            aload 6 /* ber */
            aload 1 /* DN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        11: .line 1137
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        12: .line 1138
            aload 6 /* ber */
            aload 2 /* type */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        13: .line 1141
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 15
        14: .line 1142
            aload 3 /* value */
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            goto 16
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
        15: aload 3 /* value */
            ldc "8859_1"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
        16: .line 1141
      StackMap locals:
      StackMap stack: byte[]
            astore 8 /* val */
        start local 8 // byte[] val
        17: .line 1143
            aload 6 /* ber */
        18: .line 1144
            aload 8 /* val */
            iconst_0
            aload 8 /* val */
            arraylength
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        19: .line 1145
            iconst_4
        20: .line 1143
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        21: .line 1147
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 1148
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        23: .line 1149
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 24
            aload 6 /* ber */
            aload 4 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        24: .line 1150
      StackMap locals: byte[]
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        25: .line 1152
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 9 /* req */
        start local 9 // com.sun.jndi.ldap.LdapRequest req
        26: .line 1154
            aload 0 /* this */
            aload 9 /* req */
            aload 5 /* res */
            bipush 111
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 9 // com.sun.jndi.ldap.LdapRequest req
        end local 8 // byte[] val
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // com.sun.jndi.ldap.LdapResult res
        end local 4 // javax.naming.ldap.Control[] reqCtls
        end local 3 // java.lang.String value
        end local 2 // java.lang.String type
        end local 1 // java.lang.String DN
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   27     1        DN  Ljava/lang/String;
            0   27     2      type  Ljava/lang/String;
            0   27     3     value  Ljava/lang/String;
            0   27     4   reqCtls  [Ljavax/naming/ldap/Control;
            2   27     5       res  Lcom/sun/jndi/ldap/LdapResult;
            6   27     6       ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   27     7  curMsgId  I
           17   27     8       val  [B
           26   27     9       req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
         Name  Flags
      DN       
      type     
      value    
      reqCtls  

  com.sun.jndi.ldap.LdapResult extendedOp(java.lang.String, byte[], javax.naming.ldap.Control[], boolean);
    descriptor: (Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String id
        start local 2 // byte[] request
        start local 3 // javax.naming.ldap.Control[] reqCtls
        start local 4 // boolean pauseAfterReceipt
         0: .line 1166
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1168
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 5 /* res */
        start local 5 // com.sun.jndi.ldap.LdapResult res
         2: .line 1169
            aload 5 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1171
            aload 1 /* id */
            ifnonnull 5
         4: .line 1172
            aload 5 /* res */
            areturn
         5: .line 1174
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1175
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         7: .line 1177
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1178
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1179
            aload 6 /* ber */
            bipush 119
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 1180
            aload 6 /* ber */
            aload 1 /* id */
        11: .line 1181
            sipush 128
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        12: .line 1180
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;IZ)V
        13: .line 1182
            aload 2 /* request */
            ifnull 17
        14: .line 1183
            aload 6 /* ber */
            aload 2 /* request */
        15: .line 1184
            sipush 129
        16: .line 1183
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        17: .line 1186
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        18: .line 1187
            aload 6 /* ber */
            aload 3 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        19: .line 1188
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        20: .line 1190
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            iload 4 /* pauseAfterReceipt */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZ)Lcom/sun/jndi/ldap/LdapRequest;
            astore 8 /* req */
        start local 8 // com.sun.jndi.ldap.LdapRequest req
        21: .line 1192
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 8 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 9 /* rber */
        start local 9 // com.sun.jndi.ldap.BerDecoder rber
        22: .line 1194
            aload 9 /* rber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        23: .line 1195
            aload 9 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
        24: .line 1196
            aload 9 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            bipush 120
            if_icmpeq 26
        25: .line 1197
            aload 5 /* res */
            areturn
        26: .line 1200
      StackMap locals: com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aload 9 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
        27: .line 1201
            aload 0 /* this */
            aload 9 /* rber */
            aload 5 /* res */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseExtResponse:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
        28: .line 1202
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 8 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        29: .line 1204
            aload 5 /* res */
            areturn
        end local 9 // com.sun.jndi.ldap.BerDecoder rber
        end local 8 // com.sun.jndi.ldap.LdapRequest req
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // com.sun.jndi.ldap.LdapResult res
        end local 4 // boolean pauseAfterReceipt
        end local 3 // javax.naming.ldap.Control[] reqCtls
        end local 2 // byte[] request
        end local 1 // java.lang.String id
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   30     0               this  Lcom/sun/jndi/ldap/LdapClient;
            0   30     1                 id  Ljava/lang/String;
            0   30     2            request  [B
            0   30     3            reqCtls  [Ljavax/naming/ldap/Control;
            0   30     4  pauseAfterReceipt  Z
            2   30     5                res  Lcom/sun/jndi/ldap/LdapResult;
            6   30     6                ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   30     7           curMsgId  I
           21   30     8                req  Lcom/sun/jndi/ldap/LdapRequest;
           22   30     9               rber  Lcom/sun/jndi/ldap/BerDecoder;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      id                 
      request            
      reqCtls            
      pauseAfterReceipt  

  static java.lang.String getErrorMessage(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // int errorCode
        start local 1 // java.lang.String errorMessage
         0: .line 1429
            new java.lang.StringBuilder
            dup
            ldc "[LDAP: error code "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* errorCode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         1: .line 1431
            aload 1 /* errorMessage */
            ifnull 4
            aload 1 /* errorMessage */
            invokevirtual java.lang.String.length:()I
            ifeq 4
         2: .line 1434
            new java.lang.StringBuilder
            dup
            aload 2 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* errorMessage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
         3: .line 1436
            goto 11
         4: .line 1440
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapClient.ldap_error_message:[Ljava/lang/String;
            iload 0 /* errorCode */
            aaload
            ifnull 11
         5: .line 1441
            new java.lang.StringBuilder
            dup
            aload 2 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.sun.jndi.ldap.LdapClient.ldap_error_message:[Ljava/lang/String;
            iload 0 /* errorCode */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1442
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1441
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
         8: .line 1444
            goto 11
      StackMap locals:
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
         9: pop
        10: .line 1445
            new java.lang.StringBuilder
            dup
            aload 2 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
        11: .line 1448
      StackMap locals:
      StackMap stack:
            aload 2 /* message */
            areturn
        end local 2 // java.lang.String message
        end local 1 // java.lang.String errorMessage
        end local 0 // int errorCode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0     errorCode  I
            0   12     1  errorMessage  Ljava/lang/String;
            1   12     2       message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
              Name  Flags
      errorCode     
      errorMessage  

  void addUnsolicited(com.sun.jndi.ldap.LdapCtx);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapCtx ctx
         0: .line 1481
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            aload 1 /* ctx */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         1: .line 1482
            return
        end local 1 // com.sun.jndi.ldap.LdapCtx ctx
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0    2     1   ctx  Lcom/sun/jndi/ldap/LdapCtx;
    MethodParameters:
      Name  Flags
      ctx   

  void removeUnsolicited(com.sun.jndi.ldap.LdapCtx);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapCtx ctx
         0: .line 1488
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            dup
            astore 2
            monitorenter
         1: .line 1489
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 4
         2: .line 1490
            aload 2
            monitorexit
         3: return
         4: .line 1492
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            aload 1 /* ctx */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
         5: .line 1488
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 1494
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.jndi.ldap.LdapCtx ctx
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0   10     1   ctx  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      ctx   

  void processUnsolicited(com.sun.jndi.ldap.BerDecoder);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=5, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder ber
         0: .line 1502
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            dup
            astore 2
            monitorenter
         1: .line 1505
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 3 /* res */
        start local 3 // com.sun.jndi.ldap.LdapResult res
         2: .line 1507
            aload 1 /* ber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         3: .line 1508
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
         4: .line 1509
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            bipush 120
            if_icmpeq 8
         5: .line 1510
            new java.io.IOException
            dup
         6: .line 1511
            ldc "Unsolicited Notification must be an Extended Response"
         7: .line 1510
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1513
      StackMap locals: java.util.Vector com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
         9: .line 1514
            aload 0 /* this */
            aload 1 /* ber */
            aload 3 /* res */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseExtResponse:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
        10: .line 1516
            ldc "1.3.6.1.4.1.1466.20036"
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1518
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            invokevirtual com.sun.jndi.ldap.LdapClient.forceClose:(Z)V
        12: .line 1521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 42
        13: .line 1525
            new com.sun.jndi.ldap.UnsolicitedResponseImpl
            dup
        14: .line 1526
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
        15: .line 1527
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
        16: .line 1528
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        17: .line 1529
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
        18: .line 1530
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
        19: .line 1531
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
        20: .line 1532
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 22
        21: .line 1533
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapCtx
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.LdapCtx.convertControls:(Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
            goto 23
        22: .line 1534
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder java.util.Vector com.sun.jndi.ldap.LdapResult
      StackMap stack: new 13 new 13 java.lang.String byte[] java.util.Vector int java.lang.String java.lang.String
            aconst_null
        23: .line 1525
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder java.util.Vector com.sun.jndi.ldap.LdapResult
      StackMap stack: new 13 new 13 java.lang.String byte[] java.util.Vector int java.lang.String java.lang.String javax.naming.ldap.Control[]
            invokespecial com.sun.jndi.ldap.UnsolicitedResponseImpl.<init>:(Ljava/lang/String;[BLjava/util/Vector;ILjava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)V
            astore 4 /* notice */
        start local 4 // javax.naming.ldap.UnsolicitedNotification notice
        24: .line 1537
            aload 0 /* this */
            aload 4 /* notice */
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        25: .line 1541
            ldc "1.3.6.1.4.1.1466.20036"
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        26: .line 1542
            aload 0 /* this */
        27: .line 1543
            new javax.naming.CommunicationException
            dup
            ldc "Connection closed"
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        28: .line 1542
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 4 // javax.naming.ldap.UnsolicitedNotification notice
        end local 3 // com.sun.jndi.ldap.LdapResult res
        29: .line 1546
            goto 42
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder java.util.Vector
      StackMap stack: java.io.IOException
        30: astore 3 /* e */
        start local 3 // java.io.IOException e
        31: .line 1547
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 34
        32: .line 1548
            aload 2
            monitorexit
        33: return
        34: .line 1550
      StackMap locals: java.io.IOException
      StackMap stack:
            new javax.naming.CommunicationException
            dup
        35: .line 1551
            ldc "Problem parsing unsolicited notification"
        36: .line 1550
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* ne */
        start local 4 // javax.naming.NamingException ne
        37: .line 1552
            aload 4 /* ne */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        38: .line 1554
            aload 0 /* this */
            aload 4 /* ne */
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 4 // javax.naming.NamingException ne
        end local 3 // java.io.IOException e
        39: goto 42
        40: .line 1556
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder java.util.Vector
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        41: .line 1557
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 3 // javax.naming.NamingException e
        42: .line 1502
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        43: goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: aload 2
            monitorexit
        45: athrow
        46: .line 1560
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.jndi.ldap.BerDecoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   47     0    this  Lcom/sun/jndi/ldap/LdapClient;
            0   47     1     ber  Lcom/sun/jndi/ldap/BerDecoder;
            2   29     3     res  Lcom/sun/jndi/ldap/LdapResult;
           24   29     4  notice  Ljavax/naming/ldap/UnsolicitedNotification;
           31   39     3       e  Ljava/io/IOException;
           37   39     4      ne  Ljavax/naming/NamingException;
           41   42     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1    29      30  Class java.io.IOException
           1    29      40  Class javax.naming.NamingException
           1    33      44  any
          34    43      44  any
          44    45      44  any
    MethodParameters:
      Name  Flags
      ber   

  private void notifyUnsolicited(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.Object e
         0: .line 1564
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 1565
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapCtx
            aload 1 /* e */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fireUnsolicited:(Ljava/lang/Object;)V
         3: .line 1564
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 2
        end local 2 // int i
         5: .line 1567
            aload 1 /* e */
            instanceof javax.naming.NamingException
            ifeq 7
         6: .line 1568
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.setSize:(I)V
         7: .line 1570
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object e
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0    8     1     e  Ljava/lang/Object;
            1    5     2     i  I
    MethodParameters:
      Name  Flags
      e     

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 1573
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.useable:Z
            ifne 4
         1: .line 1574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 3
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
            ifnull 3
         2: .line 1575
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
            athrow
         3: .line 1577
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "connection closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1580
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapClient;
    Exceptions:
      throws java.io.IOException

  static com.sun.jndi.ldap.LdapClient getInstance(boolean, java.lang.String, int, java.lang.String, int, int, java.io.OutputStream, int, java.lang.String, javax.naming.ldap.Control[], java.lang.String, java.lang.String, java.lang.Object, java.util.Hashtable);
    descriptor: (ZLjava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapClient;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=13, locals=15, args_size=14
        start local 0 // boolean usePool
        start local 1 // java.lang.String hostname
        start local 2 // int port
        start local 3 // java.lang.String factory
        start local 4 // int connectTimeout
        start local 5 // int readTimeout
        start local 6 // java.io.OutputStream trace
        start local 7 // int version
        start local 8 // java.lang.String authMechanism
        start local 9 // javax.naming.ldap.Control[] ctls
        start local 10 // java.lang.String protocol
        start local 11 // java.lang.String user
        start local 12 // java.lang.Object passwd
        start local 13 // java.util.Hashtable env
         0: .line 1588
            iload 0 /* usePool */
            ifeq 11
         1: .line 1589
            aload 3 /* factory */
            aload 6 /* trace */
         2: .line 1590
            aload 8 /* authMechanism */
            aload 10 /* protocol */
            aload 13 /* env */
         3: .line 1589
            invokestatic com.sun.jndi.ldap.LdapPoolManager.isPoolingAllowed:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/util/Hashtable;)Z
         4: .line 1590
            ifeq 11
         5: .line 1592
            aload 1 /* hostname */
            iload 2 /* port */
            aload 3 /* factory */
            iload 4 /* connectTimeout */
            iload 5 /* readTimeout */
         6: .line 1593
            aload 6 /* trace */
            iload 7 /* version */
            aload 8 /* authMechanism */
            aload 9 /* ctls */
            aload 10 /* protocol */
            aload 11 /* user */
         7: .line 1594
            aload 12 /* passwd */
            aload 13 /* env */
         8: .line 1591
            invokestatic com.sun.jndi.ldap.LdapPoolManager.getLdapClient:(Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapClient;
            astore 14 /* answer */
        start local 14 // com.sun.jndi.ldap.LdapClient answer
         9: .line 1595
            aload 14 /* answer */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
        10: .line 1596
            aload 14 /* answer */
            areturn
        end local 14 // com.sun.jndi.ldap.LdapClient answer
        11: .line 1599
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapClient
            dup
            aload 1 /* hostname */
            iload 2 /* port */
            aload 3 /* factory */
            iload 4 /* connectTimeout */
        12: .line 1600
            iload 5 /* readTimeout */
            aload 6 /* trace */
            aconst_null
        13: .line 1599
            invokespecial com.sun.jndi.ldap.LdapClient.<init>:(Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;Lcom/sun/jndi/ldap/pool/PoolCallback;)V
            areturn
        end local 13 // java.util.Hashtable env
        end local 12 // java.lang.Object passwd
        end local 11 // java.lang.String user
        end local 10 // java.lang.String protocol
        end local 9 // javax.naming.ldap.Control[] ctls
        end local 8 // java.lang.String authMechanism
        end local 7 // int version
        end local 6 // java.io.OutputStream trace
        end local 5 // int readTimeout
        end local 4 // int connectTimeout
        end local 3 // java.lang.String factory
        end local 2 // int port
        end local 1 // java.lang.String hostname
        end local 0 // boolean usePool
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0         usePool  Z
            0   14     1        hostname  Ljava/lang/String;
            0   14     2            port  I
            0   14     3         factory  Ljava/lang/String;
            0   14     4  connectTimeout  I
            0   14     5     readTimeout  I
            0   14     6           trace  Ljava/io/OutputStream;
            0   14     7         version  I
            0   14     8   authMechanism  Ljava/lang/String;
            0   14     9            ctls  [Ljavax/naming/ldap/Control;
            0   14    10        protocol  Ljava/lang/String;
            0   14    11            user  Ljava/lang/String;
            0   14    12          passwd  Ljava/lang/Object;
            0   14    13             env  Ljava/util/Hashtable;
            9   11    14          answer  Lcom/sun/jndi/ldap/LdapClient;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                Name  Flags
      usePool         
      hostname        
      port            
      factory         
      connectTimeout  
      readTimeout     
      trace           
      version         
      authMechanism   
      ctls            
      protocol        
      user            
      passwd          
      env             
}
SourceFile: "LdapClient.java"