public final class org.springframework.security.crypto.codec.Hex
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.springframework.security.crypto.codec.Hex
  super_class: java.lang.Object
{
  private static final char[] HEX;
    descriptor: [C
    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 29
            bipush 16
            newarray 5
            dup
            iconst_0
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
         1: .line 30
            bipush 97
            castore
            dup
            bipush 11
            bipush 98
            castore
            dup
            bipush 12
            bipush 99
            castore
            dup
            bipush 13
            bipush 100
            castore
            dup
            bipush 14
            bipush 101
            castore
            dup
            bipush 15
            bipush 102
            castore
         2: .line 29
            putstatic org.springframework.security.crypto.codec.Hex.HEX:[C
         3: .line 30
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.security.crypto.codec.Hex this
         0: .line 27
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.security.crypto.codec.Hex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/security/crypto/codec/Hex;

  public static char[] encode(byte[]);
    descriptor: ([B)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // byte[] bytes
         0: .line 33
            aload 0 /* bytes */
            arraylength
            istore 1 /* nBytes */
        start local 1 // int nBytes
         1: .line 34
            iconst_2
            iload 1 /* nBytes */
            imul
            newarray 5
            astore 2 /* result */
        start local 2 // char[] result
         2: .line 36
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         3: .line 37
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 8
         5: .line 39
      StackMap locals: byte[] int char[] int int
      StackMap stack:
            aload 2 /* result */
            iload 3 /* j */
            iinc 3 /* j */ 1
            getstatic org.springframework.security.crypto.codec.Hex.HEX:[C
            sipush 240
            aload 0 /* bytes */
            iload 4 /* i */
            baload
            iand
            iconst_4
            iushr
            caload
            castore
         6: .line 41
            aload 2 /* result */
            iload 3 /* j */
            iinc 3 /* j */ 1
            getstatic org.springframework.security.crypto.codec.Hex.HEX:[C
            bipush 15
            aload 0 /* bytes */
            iload 4 /* i */
            baload
            iand
            caload
            castore
         7: .line 37
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* nBytes */
            if_icmplt 5
        end local 4 // int i
         9: .line 44
            aload 2 /* result */
            areturn
        end local 3 // int j
        end local 2 // char[] result
        end local 1 // int nBytes
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0   bytes  [B
            1   10     1  nBytes  I
            2   10     2  result  [C
            3   10     3       j  I
            4    9     4       i  I
    MethodParameters:
       Name  Flags
      bytes  

  public static byte[] decode(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.lang.CharSequence s
         0: .line 48
            aload 0 /* s */
            invokeinterface java.lang.CharSequence.length:()I
            istore 1 /* nChars */
        start local 1 // int nChars
         1: .line 50
            iload 1 /* nChars */
            iconst_2
            irem
            ifeq 5
         2: .line 51
            new java.lang.IllegalArgumentException
            dup
         3: .line 52
            ldc "Hex-encoded string must have an even number of characters"
         4: .line 51
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 55
      StackMap locals: int
      StackMap stack:
            iload 1 /* nChars */
            iconst_2
            idiv
            newarray 8
            astore 2 /* result */
        start local 2 // byte[] result
         6: .line 57
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 16
         8: .line 58
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* s */
            iload 3 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 16
            invokestatic java.lang.Character.digit:(CI)I
            istore 4 /* msb */
        start local 4 // int msb
         9: .line 59
            aload 0 /* s */
            iload 3 /* i */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 16
            invokestatic java.lang.Character.digit:(CI)I
            istore 5 /* lsb */
        start local 5 // int lsb
        10: .line 61
            iload 4 /* msb */
            iflt 11
            iload 5 /* lsb */
            ifge 14
        11: .line 62
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        12: .line 63
            new java.lang.StringBuilder
            dup
            ldc "Detected a Non-hex character at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " or "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* i */
            iconst_2
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " position"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 62
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 65
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            iload 3 /* i */
            iconst_2
            idiv
            iload 4 /* msb */
            iconst_4
            ishl
            iload 5 /* lsb */
            ior
            i2b
            bastore
        end local 5 // int lsb
        end local 4 // int msb
        15: .line 57
            iinc 3 /* i */ 2
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            iload 1 /* nChars */
            if_icmplt 8
        end local 3 // int i
        17: .line 67
            aload 2 /* result */
            areturn
        end local 2 // byte[] result
        end local 1 // int nChars
        end local 0 // java.lang.CharSequence s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0       s  Ljava/lang/CharSequence;
            1   18     1  nChars  I
            6   18     2  result  [B
            7   17     3       i  I
            9   15     4     msb  I
           10   15     5     lsb  I
    MethodParameters:
      Name  Flags
      s     
}
SourceFile: "Hex.java"