public final class com.sun.jmx.remote.security.HashedPasswordManager
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.jmx.remote.security.HashedPasswordManager
  super_class: java.lang.Object
{
  private static final java.lang.String DefaultHashAlgorithm;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SHA3-512"

  private static final int DefaultSaltLength;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  private final java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials> userCredentialsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/sun/jmx/remote/security/HashedPasswordManager$UserCredentials;>;

  private final java.lang.String passwordFile;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private static final com.sun.jmx.remote.util.ClassLogger logger;
    descriptor: Lcom/sun/jmx/remote/util/ClassLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 120
            new com.sun.jmx.remote.util.ClassLogger
            dup
            ldc "javax.management.remote.misc"
         1: .line 121
            ldc "HashedPasswordManager"
         2: .line 120
            invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 119
            putstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
         4: .line 121
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
        start local 1 // java.lang.String filename
        start local 2 // boolean shouldHashPasswords
         0: .line 129
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 113
            aload 0 /* this */
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            putfield com.sun.jmx.remote.security.HashedPasswordManager.random:Ljava/security/SecureRandom;
         2: .line 114
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
         3: .line 117
            aload 0 /* this */
            iconst_0
            putfield com.sun.jmx.remote.security.HashedPasswordManager.isLogged:Z
         4: .line 130
            aload 0 /* this */
            aload 1 /* filename */
            putfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
         5: .line 131
            aload 0 /* this */
            iload 2 /* shouldHashPasswords */
            putfield com.sun.jmx.remote.security.HashedPasswordManager.shouldHashPasswords:Z
         6: .line 132
            return
        end local 2 // boolean shouldHashPasswords
        end local 1 // java.lang.String filename
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            0    7     1             filename  Ljava/lang/String;
            0    7     2  shouldHashPasswords  Z
    MethodParameters:
                     Name  Flags
      filename             
      shouldHashPasswords  

  private java.lang.String[] getHash(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
        start local 1 // java.lang.String algorithm
        start local 2 // java.lang.String password
         0: .line 136
            bipush 64
            newarray 8
            astore 3 /* salt */
        start local 3 // byte[] salt
         1: .line 137
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.random:Ljava/security/SecureRandom;
            aload 3 /* salt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         2: .line 139
            aload 1 /* algorithm */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 4 /* digest */
        start local 4 // java.security.MessageDigest digest
         3: .line 140
            aload 4 /* digest */
            invokevirtual java.security.MessageDigest.reset:()V
         4: .line 141
            aload 4 /* digest */
            aload 3 /* salt */
            invokevirtual java.security.MessageDigest.update:([B)V
         5: .line 142
            aload 4 /* digest */
            aload 2 /* password */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 5 /* hash */
        start local 5 // byte[] hash
         6: .line 143
            invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
            aload 3 /* salt */
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            astore 6 /* saltStr */
        start local 6 // java.lang.String saltStr
         7: .line 144
            invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
            aload 5 /* hash */
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            astore 7 /* hashStr */
        start local 7 // java.lang.String hashStr
         8: .line 146
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 6 /* saltStr */
            aastore
            dup
            iconst_1
            aload 7 /* hashStr */
            aastore
         9: areturn
        end local 7 // java.lang.String hashStr
        end local 6 // java.lang.String saltStr
        end local 5 // byte[] hash
        end local 4 // java.security.MessageDigest digest
        end local 3 // byte[] salt
        10: .line 147
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            pop
        11: .line 148
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 13
        12: .line 149
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "getHash"
            new java.lang.StringBuilder
            dup
            ldc "Invalid algorithm : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        13: .line 153
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc ""
            aastore
            dup
            iconst_1
            ldc ""
            aastore
            areturn
        end local 2 // java.lang.String password
        end local 1 // java.lang.String algorithm
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            0   14     1  algorithm  Ljava/lang/String;
            0   14     2   password  Ljava/lang/String;
            1   10     3       salt  [B
            3   10     4     digest  Ljava/security/MessageDigest;
            6   10     5       hash  [B
            7   10     6    saltStr  Ljava/lang/String;
            8   10     7    hashStr  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     9      10  Class java.security.NoSuchAlgorithmException
    MethodParameters:
           Name  Flags
      algorithm  
      password   

  private java.lang.String[] readPasswordFile();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
         0: .line 158
            ldc Lcom/sun/jmx/remote/security/HashedPasswordManager;
            dup
            astore 1
            monitorenter
         1: .line 160
            new java.io.File
            dup
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* f */
        start local 3 // java.io.File f
         2: .line 161
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: new java.io.FileInputStream
            dup
            aload 3 /* f */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 6 /* fin */
        start local 6 // java.io.FileInputStream fin
         4: .line 162
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.getChannel:()Ljava/nio/channels/FileChannel;
            lconst_0
            ldc 9223372036854775807
            iconst_1
            invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
            astore 7 /* lock */
        start local 7 // java.nio.channels.FileLock lock
         5: .line 163
            aload 3 /* f */
            invokevirtual java.io.File.length:()J
            l2i
            newarray 8
            astore 2 /* data */
        start local 2 // byte[] data
         6: .line 164
            aload 6 /* fin */
            aload 2 /* data */
            invokevirtual java.io.FileInputStream.read:([B)I
            istore 8 /* read */
        start local 8 // int read
         7: .line 165
            iload 8 /* read */
            aload 2 /* data */
            arraylength
            if_icmpeq 9
         8: .line 166
            new java.io.IOException
            dup
            ldc "Failed to read data from the password file"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 168
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.Class byte[] java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream java.nio.channels.FileLock int
      StackMap stack:
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        end local 8 // int read
        10: .line 169
            aload 7 /* lock */
            ifnull 13
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
            goto 13
        end local 2 // byte[] data
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.Class top java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream java.nio.channels.FileLock
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 7 /* lock */
            ifnull 12
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
        end local 7 // java.nio.channels.FileLock lock
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
        start local 2 // byte[] data
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.Class byte[] java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack:
        13: aload 6 /* fin */
            ifnull 21
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
            goto 21
        end local 2 // byte[] data
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.Class top java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 6 /* fin */
            ifnull 17
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream fin
      StackMap locals:
      StackMap stack:
        17: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 5
            aload 4
            ifnonnull 19
            aload 5
            astore 4
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 4
            aload 5
            if_acmpeq 20
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 4
            athrow
        start local 2 // byte[] data
        21: .line 170
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.Class byte[] java.io.File
      StackMap stack:
            new java.lang.String
            dup
            aload 2 /* data */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            astore 4 /* str */
        start local 4 // java.lang.String str
        22: .line 171
            aload 4 /* str */
            ldc "\\r?\\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            aload 1
            monitorexit
        23: areturn
        end local 4 // java.lang.String str
        end local 3 // java.io.File f
        end local 2 // byte[] data
        24: .line 158
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.Class
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        25: athrow
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            6   11     2  data  [B
           13   14     2  data  [B
           21   24     2  data  [B
            2   24     3     f  Ljava/io/File;
            4   17     6   fin  Ljava/io/FileInputStream;
            5   12     7  lock  Ljava/nio/channels/FileLock;
            7   10     8  read  I
           22   24     4   str  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5    10      11  any
           4    13      14  any
           3    18      18  any
           1    23      24  any
          24    25      24  any
    Exceptions:
      throws java.io.IOException

  private void writePasswordFile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
        start local 1 // java.lang.String input
         0: .line 176
            ldc Lcom/sun/jmx/remote/security/HashedPasswordManager;
            dup
            astore 2
            monitorenter
         1: .line 177
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.FileOutputStream
            dup
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 5 /* fout */
        start local 5 // java.io.FileOutputStream fout
         3: .line 178
            new java.io.OutputStreamWriter
            dup
            aload 5 /* fout */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
            astore 6 /* out */
        start local 6 // java.io.OutputStreamWriter out
         4: .line 179
            aload 5 /* fout */
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.lock:()Ljava/nio/channels/FileLock;
            astore 7 /* lock */
        start local 7 // java.nio.channels.FileLock lock
         5: .line 180
            aload 6 /* out */
            aload 1 /* input */
            invokevirtual java.io.OutputStreamWriter.write:(Ljava/lang/String;)V
         6: .line 181
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
         7: .line 182
            aload 7 /* lock */
            ifnull 10
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
            goto 10
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.String java.lang.Class java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.OutputStreamWriter java.nio.channels.FileLock
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 7 /* lock */
            ifnull 9
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
        end local 7 // java.nio.channels.FileLock lock
      StackMap locals:
      StackMap stack:
         9: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        10: aload 6 /* out */
            ifnull 15
            aload 6 /* out */
            invokevirtual java.io.OutputStreamWriter.close:()V
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 3
            ifnonnull 12
            aload 4
            astore 3
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 3
            aload 4
            if_acmpeq 13
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 6 /* out */
            ifnull 14
            aload 6 /* out */
            invokevirtual java.io.OutputStreamWriter.close:()V
        end local 6 // java.io.OutputStreamWriter out
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        15: aload 5 /* fout */
            ifnull 23
            aload 5 /* fout */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 4
            aload 3
            ifnonnull 17
            aload 4
            astore 3
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 3
            aload 4
            if_acmpeq 18
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 5 /* fout */
            ifnull 19
            aload 5 /* fout */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 5 // java.io.FileOutputStream fout
      StackMap locals:
      StackMap stack:
        19: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 4
            aload 3
            ifnonnull 21
            aload 4
            astore 3
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 3
            aload 4
            if_acmpeq 22
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 3
            athrow
        23: .line 176
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 2
            monitorexit
        26: athrow
        27: .line 184
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String input
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   28     0   this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            0   28     1  input  Ljava/lang/String;
            3   19     5   fout  Ljava/io/FileOutputStream;
            4   14     6    out  Ljava/io/OutputStreamWriter;
            5    9     7   lock  Ljava/nio/channels/FileLock;
      Exception table:
        from    to  target  type
           5     7       8  any
           4    10      11  any
           3    15      16  any
           2    20      20  any
           1    24      25  any
          25    26      25  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public synchronized boolean authenticate(java.lang.String, char[]);
    descriptor: (Ljava/lang/String;[C)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
        start local 1 // java.lang.String userName
        start local 2 // char[] inputPassword
         0: .line 194
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 1 /* userName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 20
         1: .line 196
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 1 /* userName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
            astore 3 /* us */
        start local 3 // com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials us
         2: .line 197
            invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
            aload 3 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.b64Salt:Ljava/lang/String;
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
            astore 4 /* salt */
        start local 4 // byte[] salt
         3: .line 198
            invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
            aload 3 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.b64Hash:Ljava/lang/String;
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
            astore 5 /* targetHash */
        start local 5 // byte[] targetHash
         4: .line 199
            aload 3 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.hashAlgorithm:Ljava/lang/String;
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 6 /* digest */
        start local 6 // java.security.MessageDigest digest
         5: .line 200
            aload 6 /* digest */
            invokevirtual java.security.MessageDigest.reset:()V
         6: .line 201
            aload 6 /* digest */
            aload 4 /* salt */
            invokevirtual java.security.MessageDigest.update:([B)V
         7: .line 202
            ldc "UTF-8"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            aload 2 /* inputPassword */
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
            invokevirtual java.nio.charset.Charset.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;
            astore 7 /* byteBuffer */
        start local 7 // java.nio.ByteBuffer byteBuffer
         8: .line 203
            aload 7 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            newarray 8
            astore 8 /* passwordBytes */
        start local 8 // byte[] passwordBytes
         9: .line 204
            aload 7 /* byteBuffer */
            aload 8 /* passwordBytes */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        10: .line 205
            aload 6 /* digest */
            aload 8 /* passwordBytes */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 9 /* hash */
        start local 9 // byte[] hash
        11: .line 206
            aload 9 /* hash */
            aload 5 /* targetHash */
            invokestatic java.util.Arrays.equals:([B[B)Z
        12: ireturn
        end local 9 // byte[] hash
        end local 8 // byte[] passwordBytes
        end local 7 // java.nio.ByteBuffer byteBuffer
        end local 6 // java.security.MessageDigest digest
        end local 5 // byte[] targetHash
        end local 4 // byte[] salt
        end local 3 // com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials us
        13: .line 207
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            pop
        14: .line 208
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 19
        15: .line 209
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "authenticate"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized hash algorithm : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 210
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 1 /* userName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.hashAlgorithm:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 211
            ldc " - for user : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* userName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 209
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 213
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        20: .line 216
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 22
        21: .line 217
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "authenticate"
            new java.lang.StringBuilder
            dup
            ldc "Unknown user : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* userName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        22: .line 219
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // char[] inputPassword
        end local 1 // java.lang.String userName
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            0   23     1       userName  Ljava/lang/String;
            0   23     2  inputPassword  [C
            2   13     3             us  Lcom/sun/jmx/remote/security/HashedPasswordManager$UserCredentials;
            3   13     4           salt  [B
            4   13     5     targetHash  [B
            5   13     6         digest  Ljava/security/MessageDigest;
            8   13     7     byteBuffer  Ljava/nio/ByteBuffer;
            9   13     8  passwordBytes  [B
           11   13     9           hash  [B
      Exception table:
        from    to  target  type
           1    12      13  Class java.security.NoSuchAlgorithmException
    MethodParameters:
               Name  Flags
      userName       
      inputPassword  

  public synchronized void loadPasswords();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
         0: .line 240
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* security */
        start local 1 // java.lang.SecurityManager security
         1: .line 241
            aload 1 /* security */
            ifnull 3
         2: .line 242
            aload 1 /* security */
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokevirtual java.lang.SecurityManager.checkRead:(Ljava/lang/String;)V
         3: .line 245
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 2 /* hasClearPasswords */
        start local 2 // java.util.concurrent.atomic.AtomicBoolean hasClearPasswords
         4: .line 246
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sbuf */
        start local 3 // java.lang.StringBuilder sbuf
         5: .line 254
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         6: .line 255
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.security.HashedPasswordManager.readPasswordFile:()[Ljava/lang/String;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 3 /* sbuf */
            aload 2 /* hasClearPasswords */
            invokedynamic accept(Lcom/sun/jmx/remote/security/HashedPasswordManager;Ljava/lang/StringBuilder;Ljava/util/concurrent/atomic/AtomicBoolean;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/sun/jmx/remote/security/HashedPasswordManager.lambda$0(Ljava/lang/StringBuilder;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         7: .line 302
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.shouldHashPasswords:Z
            ifne 14
            aload 2 /* hasClearPasswords */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 14
         8: .line 303
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 14
         9: .line 304
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "loadPasswords"
        10: .line 305
            new java.lang.StringBuilder
            dup
            ldc "Passwords in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " are in clear but are requested "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 306
            ldc "not to be hashed !!!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 305
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 304
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        14: .line 311
      StackMap locals: java.util.concurrent.atomic.AtomicBoolean java.lang.StringBuilder
      StackMap stack:
            aload 3 /* sbuf */
            ldc "# The passwords in this file are hashed"
            invokevirtual java.lang.StringBuilder.indexOf:(Ljava/lang/String;)I
            ifeq 16
        15: .line 312
            aload 3 /* sbuf */
            iconst_0
            ldc "# The passwords in this file are hashed.\n# In order to change the password for a role, replace the hashed password entry\n# with a clear text password or a new hashed password. If the new password is in clear,\n# it will be replaced with its hash when a new login attempt is made.\n\n"
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.shouldHashPasswords:Z
            ifeq 31
            aload 2 /* hasClearPasswords */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 31
        17: .line 319
            new java.io.File
            dup
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.canWrite:()Z
            ifeq 24
        18: .line 320
            aload 0 /* this */
            aload 3 /* sbuf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.security.HashedPasswordManager.writePasswordFile:(Ljava/lang/String;)V
        19: .line 321
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 31
        20: .line 322
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "loadPasswords"
        21: .line 323
            new java.lang.StringBuilder
            dup
            ldc "Wrote hashed passwords to file : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 322
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        23: .line 325
            goto 31
      StackMap locals:
      StackMap stack:
        24: getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 31
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.isLogged:Z
            ifne 31
        25: .line 326
            aload 0 /* this */
            iconst_1
            putfield com.sun.jmx.remote.security.HashedPasswordManager.isLogged:Z
        26: .line 327
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "loadPasswords"
        27: .line 328
            new java.lang.StringBuilder
            dup
            ldc "Passwords in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.passwordFile:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " are in clear and password file is read-only. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 329
            ldc "Passwords cannot be hashed !!!!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 328
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 327
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        31: .line 332
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.StringBuilder sbuf
        end local 2 // java.util.concurrent.atomic.AtomicBoolean hasClearPasswords
        end local 1 // java.lang.SecurityManager security
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0               this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            1   32     1           security  Ljava/lang/SecurityManager;
            4   32     2  hasClearPasswords  Ljava/util/concurrent/atomic/AtomicBoolean;
            5   32     3               sbuf  Ljava/lang/StringBuilder;
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException

  private void lambda$0(java.lang.StringBuilder, java.util.concurrent.atomic.AtomicBoolean, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
        start local 3 // java.lang.String line
         0: .line 256
            aload 3 /* line */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 257
            aload 1
            aload 3 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 258
            return
         3: .line 260
      StackMap locals:
      StackMap stack:
            aload 3 /* line */
            ldc "\\s+"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* tokens */
        start local 4 // java.lang.String[] tokens
         4: .line 261
            aload 4 /* tokens */
            arraylength
            tableswitch { // 2 - 4
                    2: 5
                    3: 20
                    4: 20
              default: 30
          }
         5: .line 264
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            ldc "SHA3-512"
            aload 4 /* tokens */
            iconst_1
            aaload
            invokevirtual com.sun.jmx.remote.security.HashedPasswordManager.getHash:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* b64str */
        start local 5 // java.lang.String[] b64str
         6: .line 265
            new com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
            dup
            aload 4 /* tokens */
            iconst_0
            aaload
            ldc "SHA3-512"
            aload 5 /* b64str */
            iconst_0
            aaload
            aload 5 /* b64str */
            iconst_1
            aaload
            invokespecial com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 6 /* us */
        start local 6 // com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials us
         7: .line 266
            aload 1
            aload 6 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.userName: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 6 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.b64Salt:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 267
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.b64Hash: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;
         9: .line 268
            aload 6 /* us */
            getfield com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.hashAlgorithm:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 269
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 4 /* tokens */
            iconst_0
            aaload
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 13
        11: .line 270
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 13
        12: .line 271
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "loadPasswords"
            new java.lang.StringBuilder
            dup
            ldc "Ignoring entry for role : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tokens */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        13: .line 274
      StackMap locals: java.lang.String[] com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 4 /* tokens */
            iconst_0
            aaload
            aload 6 /* us */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 275
            aload 2
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        15: .line 276
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 31
        16: .line 277
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "loadPasswords"
        17: .line 278
            ldc "Found atleast one clear password"
        18: .line 277
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 280
            goto 31
        end local 6 // com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials us
        end local 5 // java.lang.String[] b64str
        20: .line 285
      StackMap locals:
      StackMap stack:
            new com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
            dup
            aload 4 /* tokens */
            iconst_0
            aaload
            aload 4 /* tokens */
            arraylength
            iconst_4
            if_icmpne 21
            aload 4 /* tokens */
            iconst_3
            aaload
            goto 22
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.StringBuilder java.util.concurrent.atomic.AtomicBoolean java.lang.String java.lang.String[]
      StackMap stack: new 20 new 20 java.lang.String
        21: ldc "SHA3-512"
        22: .line 286
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager java.lang.StringBuilder java.util.concurrent.atomic.AtomicBoolean java.lang.String java.lang.String[]
      StackMap stack: new 20 new 20 java.lang.String java.lang.String
            aload 4 /* tokens */
            iconst_1
            aaload
            aload 4 /* tokens */
            iconst_2
            aaload
        23: .line 285
            invokespecial com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* us */
        start local 5 // com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials us
        24: .line 287
            aload 1
            aload 3 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 288
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 4 /* tokens */
            iconst_0
            aaload
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 28
        26: .line 289
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 28
        27: .line 290
            getstatic com.sun.jmx.remote.security.HashedPasswordManager.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "loadPasswords"
            new java.lang.StringBuilder
            dup
            ldc "Ignoring entry for role : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tokens */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        28: .line 293
      StackMap locals: com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.security.HashedPasswordManager.userCredentialsMap:Ljava/util/Map;
            aload 4 /* tokens */
            iconst_0
            aaload
            aload 5 /* us */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 294
            goto 31
        end local 5 // com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials us
        30: .line 297
      StackMap locals:
      StackMap stack:
            aload 1
            aload 3 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.String[] tokens
        31: .line 300
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String line
        end local 0 // com.sun.jmx.remote.security.HashedPasswordManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   32     0    this  Lcom/sun/jmx/remote/security/HashedPasswordManager;
            0   32     3    line  Ljava/lang/String;
            4   31     4  tokens  [Ljava/lang/String;
            6   20     5  b64str  [Ljava/lang/String;
            7   20     6      us  Lcom/sun/jmx/remote/security/HashedPasswordManager$UserCredentials;
           24   30     5      us  Lcom/sun/jmx/remote/security/HashedPasswordManager$UserCredentials;
}
SourceFile: "HashedPasswordManager.java"
NestMembers:
  com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials
InnerClasses:
  private final UserCredentials = com.sun.jmx.remote.security.HashedPasswordManager$UserCredentials of com.sun.jmx.remote.security.HashedPasswordManager
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Decoder = java.util.Base64$Decoder of java.util.Base64
  public Encoder = java.util.Base64$Encoder of java.util.Base64