public class org.sonatype.plexus.components.cipher.Base64
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.sonatype.plexus.components.cipher.Base64
  super_class: java.lang.Object
{
  static final int CHUNK_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 76

  static final byte[] CHUNK_SEPARATOR;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

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

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

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

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

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

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

  static final byte PAD;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 61

  private static byte[] base64Alphabet;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static byte[] lookUpBase64Alphabet;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 63
            ldc "\r\n"
            invokevirtual java.lang.String.getBytes:()[B
            putstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
         1: .line 99
            sipush 255
            newarray 8
            putstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
         2: .line 114
            bipush 64
            newarray 8
            putstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
         3: .line 118
            iconst_0
            istore 0 /* i */
        start local 0 // int i
         4: goto 7
         5: .line 119
      StackMap locals: int
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 0 /* i */
            iconst_m1
            bastore
         6: .line 118
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 0 /* i */
            sipush 255
            if_icmplt 5
        end local 0 // int i
         8: .line 121
            bipush 90
            istore 0 /* i */
        start local 0 // int i
         9: goto 12
        10: .line 122
      StackMap locals:
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 0 /* i */
            iload 0 /* i */
            bipush 65
            isub
            i2b
            bastore
        11: .line 121
            iinc 0 /* i */ -1
      StackMap locals:
      StackMap stack:
        12: iload 0 /* i */
            bipush 65
            if_icmpge 10
        end local 0 // int i
        13: .line 124
            bipush 122
            istore 0 /* i */
        start local 0 // int i
        14: goto 17
        15: .line 125
      StackMap locals:
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 0 /* i */
            iload 0 /* i */
            bipush 97
            isub
            bipush 26
            iadd
            i2b
            bastore
        16: .line 124
            iinc 0 /* i */ -1
      StackMap locals:
      StackMap stack:
        17: iload 0 /* i */
            bipush 97
            if_icmpge 15
        end local 0 // int i
        18: .line 127
            bipush 57
            istore 0 /* i */
        start local 0 // int i
        19: goto 22
        20: .line 128
      StackMap locals:
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 0 /* i */
            iload 0 /* i */
            bipush 48
            isub
            bipush 52
            iadd
            i2b
            bastore
        21: .line 127
            iinc 0 /* i */ -1
      StackMap locals:
      StackMap stack:
        22: iload 0 /* i */
            bipush 48
            if_icmpge 20
        end local 0 // int i
        23: .line 131
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            bipush 43
            bipush 62
            bastore
        24: .line 132
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            bipush 47
            bipush 63
            bastore
        25: .line 134
            iconst_0
            istore 0 /* i */
        start local 0 // int i
        26: goto 29
        27: .line 135
      StackMap locals:
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 0 /* i */
            bipush 65
            iload 0 /* i */
            iadd
            i2b
            bastore
        28: .line 134
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 0 /* i */
            bipush 25
            if_icmple 27
        end local 0 // int i
        30: .line 138
            bipush 26
            istore 0 /* i */
        start local 0 // int i
        31: iconst_0
            istore 1 /* j */
        start local 1 // int j
        32: goto 35
        33: .line 139
      StackMap locals: int
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 0 /* i */
            bipush 97
            iload 1 /* j */
            iadd
            i2b
            bastore
        34: .line 138
            iinc 0 /* i */ 1
            iinc 1 /* j */ 1
      StackMap locals:
      StackMap stack:
        35: iload 0 /* i */
            bipush 51
            if_icmple 33
        end local 1 // int j
        end local 0 // int i
        36: .line 142
            bipush 52
            istore 0 /* i */
        start local 0 // int i
        37: iconst_0
            istore 1 /* j */
        start local 1 // int j
        38: goto 41
        39: .line 143
      StackMap locals:
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 0 /* i */
            bipush 48
            iload 1 /* j */
            iadd
            i2b
            bastore
        40: .line 142
            iinc 0 /* i */ 1
            iinc 1 /* j */ 1
      StackMap locals:
      StackMap stack:
        41: iload 0 /* i */
            bipush 61
            if_icmple 39
        end local 1 // int j
        end local 0 // int i
        42: .line 146
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            bipush 62
            bipush 43
            bastore
        43: .line 147
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            bipush 63
            bipush 47
            bastore
        44: .line 148
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    8     0     i  I
            9   13     0     i  I
           14   18     0     i  I
           19   23     0     i  I
           26   30     0     i  I
           31   36     0     i  I
           32   36     1     j  I
           37   42     0     i  I
           38   42     1     j  I

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.sonatype.plexus.components.cipher.Base64 this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.sonatype.plexus.components.cipher.Base64 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/sonatype/plexus/components/cipher/Base64;

  public static boolean isBase64(byte);
    descriptor: (B)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte b
         0: .line 157
            iload 0 /* b */
            bipush 61
            if_icmpeq 2
            iload 0 /* b */
            iflt 1
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 0 /* b */
            baload
            ifge 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 0 // byte b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     b  B
    MethodParameters:
      Name  Flags
      b     

  public static boolean isArrayByteBase64(byte[]);
    descriptor: ([B)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // byte[] arrayOctect
         0: .line 170
            aload 0 /* arrayOctect */
            invokestatic org.sonatype.plexus.components.cipher.Base64.discardWhitespace:([B)[B
            astore 0 /* arrayOctect */
         1: .line 172
            aload 0 /* arrayOctect */
            arraylength
            istore 1 /* length */
        start local 1 // int length
         2: .line 173
            iload 1 /* length */
            ifne 4
         3: .line 176
            iconst_1
            ireturn
         4: .line 178
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 9
         6: .line 179
      StackMap locals: int
      StackMap stack:
            aload 0 /* arrayOctect */
            iload 2 /* i */
            baload
            invokestatic org.sonatype.plexus.components.cipher.Base64.isBase64:(B)Z
            ifne 8
         7: .line 180
            iconst_0
            ireturn
         8: .line 178
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            iload 1 /* length */
            if_icmplt 6
        end local 2 // int i
        10: .line 183
            iconst_1
            ireturn
        end local 1 // int length
        end local 0 // byte[] arrayOctect
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0  arrayOctect  [B
            2   11     1       length  I
            5   10     2            i  I
    MethodParameters:
             Name  Flags
      arrayOctect  

  public static byte[] encodeBase64(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] binaryData
         0: .line 194
            aload 0 /* binaryData */
            iconst_0
            invokestatic org.sonatype.plexus.components.cipher.Base64.encodeBase64:([BZ)[B
            areturn
        end local 0 // byte[] binaryData
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  binaryData  [B
    MethodParameters:
            Name  Flags
      binaryData  

  public static byte[] encodeBase64Chunked(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] binaryData
         0: .line 205
            aload 0 /* binaryData */
            iconst_1
            invokestatic org.sonatype.plexus.components.cipher.Base64.encodeBase64:([BZ)[B
            areturn
        end local 0 // byte[] binaryData
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  binaryData  [B
    MethodParameters:
            Name  Flags
      binaryData  

  public java.lang.Object decode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.sonatype.plexus.components.cipher.Base64 this
        start local 1 // java.lang.Object pObject
         0: .line 222
            aload 1 /* pObject */
            instanceof byte[]
            ifne 2
         1: .line 223
            new java.lang.IllegalArgumentException
            dup
            ldc "Parameter supplied to Base64 decode is not a byte[]"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pObject */
            checkcast byte[]
            invokevirtual org.sonatype.plexus.components.cipher.Base64.decode:([B)[B
            areturn
        end local 1 // java.lang.Object pObject
        end local 0 // org.sonatype.plexus.components.cipher.Base64 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/sonatype/plexus/components/cipher/Base64;
            0    3     1  pObject  Ljava/lang/Object;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      pObject  

  public byte[] decode(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.sonatype.plexus.components.cipher.Base64 this
        start local 1 // byte[] pArray
         0: .line 236
            aload 1 /* pArray */
            invokestatic org.sonatype.plexus.components.cipher.Base64.decodeBase64:([B)[B
            areturn
        end local 1 // byte[] pArray
        end local 0 // org.sonatype.plexus.components.cipher.Base64 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/sonatype/plexus/components/cipher/Base64;
            0    1     1  pArray  [B
    MethodParameters:
        Name  Flags
      pArray  

  public static byte[] encodeBase64(byte[], boolean);
    descriptor: ([BZ)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=21, args_size=2
        start local 0 // byte[] binaryData
        start local 1 // boolean isChunked
         0: .line 249
            aload 0 /* binaryData */
            arraylength
            bipush 8
            imul
            istore 2 /* lengthDataBits */
        start local 2 // int lengthDataBits
         1: .line 250
            iload 2 /* lengthDataBits */
            bipush 24
            irem
            istore 3 /* fewerThan24bits */
        start local 3 // int fewerThan24bits
         2: .line 251
            iload 2 /* lengthDataBits */
            bipush 24
            idiv
            istore 4 /* numberTriplets */
        start local 4 // int numberTriplets
         3: .line 254
            iconst_0
            istore 7 /* nbrChunks */
        start local 7 // int nbrChunks
         4: .line 256
            iload 3 /* fewerThan24bits */
            ifeq 7
         5: .line 258
            iload 4 /* numberTriplets */
            iconst_1
            iadd
            iconst_4
            imul
            istore 6 /* encodedDataLength */
        start local 6 // int encodedDataLength
         6: .line 259
            goto 8
        end local 6 // int encodedDataLength
         7: .line 261
      StackMap locals: byte[] int int int int top top int
      StackMap stack:
            iload 4 /* numberTriplets */
            iconst_4
            imul
            istore 6 /* encodedDataLength */
        start local 6 // int encodedDataLength
         8: .line 267
      StackMap locals: byte[] int int int int top int int
      StackMap stack:
            iload 1 /* isChunked */
            ifeq 13
         9: .line 270
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
            ifne 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iload 6 /* encodedDataLength */
            i2f
            ldc 76.0
            fdiv
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2i
        11: .line 269
      StackMap locals:
      StackMap stack: int
            istore 7 /* nbrChunks */
        12: .line 271
            iload 6 /* encodedDataLength */
            iload 7 /* nbrChunks */
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
            imul
            iadd
            istore 6 /* encodedDataLength */
        13: .line 274
      StackMap locals:
      StackMap stack:
            iload 6 /* encodedDataLength */
            newarray 8
            astore 5 /* encodedData */
        start local 5 // byte[] encodedData
        14: .line 279
            iconst_0
            istore 15 /* encodedIndex */
        start local 15 // int encodedIndex
        15: .line 280
            bipush 76
            istore 16 /* nextSeparatorIndex */
        start local 16 // int nextSeparatorIndex
        16: .line 281
            iconst_0
            istore 17 /* chunksSoFar */
        start local 17 // int chunksSoFar
        17: .line 284
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        18: goto 58
        19: .line 285
      StackMap locals: byte[] int int int int byte[] int int top top top top top top int int int int
      StackMap stack:
            iload 14 /* i */
            iconst_3
            imul
            istore 13 /* dataIndex */
        start local 13 // int dataIndex
        20: .line 286
            aload 0 /* binaryData */
            iload 13 /* dataIndex */
            baload
            istore 10 /* b1 */
        start local 10 // byte b1
        21: .line 287
            aload 0 /* binaryData */
            iload 13 /* dataIndex */
            iconst_1
            iadd
            baload
            istore 11 /* b2 */
        start local 11 // byte b2
        22: .line 288
            aload 0 /* binaryData */
            iload 13 /* dataIndex */
            iconst_2
            iadd
            baload
            istore 12 /* b3 */
        start local 12 // byte b3
        23: .line 292
            iload 11 /* b2 */
            bipush 15
            iand
            i2b
            istore 9 /* l */
        start local 9 // byte l
        24: .line 293
            iload 10 /* b1 */
            iconst_3
            iand
            i2b
            istore 8 /* k */
        start local 8 // byte k
        25: .line 296
            iload 10 /* b1 */
            bipush -128
            iand
            ifne 26
            iload 10 /* b1 */
            iconst_2
            ishr
            i2b
            goto 27
      StackMap locals: byte[] int int int int byte[] int int int int int int int int int int int int
      StackMap stack:
        26: iload 10 /* b1 */
            iconst_2
            ishr
            sipush 192
            ixor
            i2b
        27: .line 295
      StackMap locals:
      StackMap stack: int
            istore 18 /* val1 */
        start local 18 // byte val1
        28: .line 298
            iload 11 /* b2 */
            bipush -128
            iand
            ifne 29
            iload 11 /* b2 */
            iconst_4
            ishr
            i2b
            goto 30
      StackMap locals: int
      StackMap stack:
        29: iload 11 /* b2 */
            iconst_4
            ishr
            sipush 240
            ixor
            i2b
        30: .line 297
      StackMap locals:
      StackMap stack: int
            istore 19 /* val2 */
        start local 19 // byte val2
        31: .line 300
            iload 12 /* b3 */
            bipush -128
            iand
            ifne 32
            iload 12 /* b3 */
            bipush 6
            ishr
            i2b
            goto 33
      StackMap locals: int
      StackMap stack:
        32: iload 12 /* b3 */
            bipush 6
            ishr
            sipush 252
            ixor
            i2b
        33: .line 299
      StackMap locals:
      StackMap stack: int
            istore 20 /* val3 */
        start local 20 // byte val3
        34: .line 302
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 18 /* val1 */
            baload
            bastore
        35: .line 306
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_1
            iadd
        36: .line 307
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 19 /* val2 */
            iload 8 /* k */
            iconst_4
            ishl
            ior
            baload
        37: .line 306
            bastore
        38: .line 308
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_2
            iadd
        39: .line 309
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 9 /* l */
            iconst_2
            ishl
            iload 20 /* val3 */
            ior
            baload
        40: .line 308
            bastore
        41: .line 310
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_3
            iadd
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 12 /* b3 */
            bipush 63
            iand
            baload
            bastore
        42: .line 312
            iinc 15 /* encodedIndex */ 4
        43: .line 315
            iload 1 /* isChunked */
            ifeq 57
        44: .line 317
            iload 15 /* encodedIndex */
            iload 16 /* nextSeparatorIndex */
            if_icmpne 57
        45: .line 318
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
        46: .line 319
            iconst_0
        47: .line 320
            aload 5 /* encodedData */
        48: .line 321
            iload 15 /* encodedIndex */
        49: .line 322
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
        50: .line 318
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        51: .line 323
            iinc 17 /* chunksSoFar */ 1
        52: .line 325
            bipush 76
            iload 17 /* chunksSoFar */
            iconst_1
            iadd
            imul
        53: .line 326
            iload 17 /* chunksSoFar */
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
            imul
        54: .line 325
            iadd
        55: .line 324
            istore 16 /* nextSeparatorIndex */
        56: .line 327
            iload 15 /* encodedIndex */
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
            iadd
            istore 15 /* encodedIndex */
        end local 20 // byte val3
        end local 19 // byte val2
        end local 18 // byte val1
        57: .line 284
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
        end local 13 // int dataIndex
        end local 12 // byte b3
        end local 11 // byte b2
        end local 10 // byte b1
        end local 9 // byte l
        end local 8 // byte k
      StackMap locals: byte[] int int int int byte[] int int top top top top top top int int int int
      StackMap stack:
        58: iload 14 /* i */
            iload 4 /* numberTriplets */
            if_icmplt 19
        59: .line 333
            iload 14 /* i */
            iconst_3
            imul
            istore 13 /* dataIndex */
        start local 13 // int dataIndex
        60: .line 335
            iload 3 /* fewerThan24bits */
            bipush 8
            if_icmpne 71
        61: .line 336
            aload 0 /* binaryData */
            iload 13 /* dataIndex */
            baload
            istore 10 /* b1 */
        start local 10 // byte b1
        62: .line 337
            iload 10 /* b1 */
            iconst_3
            iand
            i2b
            istore 8 /* k */
        start local 8 // byte k
        63: .line 341
            iload 10 /* b1 */
            bipush -128
            iand
            ifne 64
            iload 10 /* b1 */
            iconst_2
            ishr
            i2b
            goto 65
      StackMap locals: byte[] int int int int byte[] int int int top int top top int int int int int
      StackMap stack:
        64: iload 10 /* b1 */
            iconst_2
            ishr
            sipush 192
            ixor
            i2b
        65: .line 340
      StackMap locals:
      StackMap stack: int
            istore 18 /* val1 */
        start local 18 // byte val1
        66: .line 342
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 18 /* val1 */
            baload
            bastore
        67: .line 343
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_1
            iadd
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 8 /* k */
            iconst_4
            ishl
            baload
            bastore
        68: .line 344
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_2
            iadd
            bipush 61
            bastore
        69: .line 345
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_3
            iadd
            bipush 61
            bastore
        end local 18 // byte val1
        70: .line 346
            goto 88
        end local 10 // byte b1
        end local 8 // byte k
      StackMap locals: byte[] int int int int byte[] int int top top top top top int int int int int
      StackMap stack:
        71: iload 3 /* fewerThan24bits */
            bipush 16
            if_icmpne 88
        72: .line 348
            aload 0 /* binaryData */
            iload 13 /* dataIndex */
            baload
            istore 10 /* b1 */
        start local 10 // byte b1
        73: .line 349
            aload 0 /* binaryData */
            iload 13 /* dataIndex */
            iconst_1
            iadd
            baload
            istore 11 /* b2 */
        start local 11 // byte b2
        74: .line 350
            iload 11 /* b2 */
            bipush 15
            iand
            i2b
            istore 9 /* l */
        start local 9 // byte l
        75: .line 351
            iload 10 /* b1 */
            iconst_3
            iand
            i2b
            istore 8 /* k */
        start local 8 // byte k
        76: .line 354
            iload 10 /* b1 */
            bipush -128
            iand
            ifne 77
            iload 10 /* b1 */
            iconst_2
            ishr
            i2b
            goto 78
      StackMap locals: byte[] int int int int byte[] int int int int int int top int int int int int
      StackMap stack:
        77: iload 10 /* b1 */
            iconst_2
            ishr
            sipush 192
            ixor
            i2b
        78: .line 353
      StackMap locals:
      StackMap stack: int
            istore 18 /* val1 */
        start local 18 // byte val1
        79: .line 356
            iload 11 /* b2 */
            bipush -128
            iand
            ifne 80
            iload 11 /* b2 */
            iconst_4
            ishr
            i2b
            goto 81
      StackMap locals: int
      StackMap stack:
        80: iload 11 /* b2 */
            iconst_4
            ishr
            sipush 240
            ixor
            i2b
        81: .line 355
      StackMap locals:
      StackMap stack: int
            istore 19 /* val2 */
        start local 19 // byte val2
        82: .line 358
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 18 /* val1 */
            baload
            bastore
        83: .line 359
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_1
            iadd
        84: .line 360
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 19 /* val2 */
            iload 8 /* k */
            iconst_4
            ishl
            ior
            baload
        85: .line 359
            bastore
        86: .line 361
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_2
            iadd
            getstatic org.sonatype.plexus.components.cipher.Base64.lookUpBase64Alphabet:[B
            iload 9 /* l */
            iconst_2
            ishl
            baload
            bastore
        87: .line 362
            aload 5 /* encodedData */
            iload 15 /* encodedIndex */
            iconst_3
            iadd
            bipush 61
            bastore
        end local 19 // byte val2
        end local 18 // byte val1
        end local 11 // byte b2
        end local 10 // byte b1
        end local 9 // byte l
        end local 8 // byte k
        88: .line 365
      StackMap locals: byte[] int int int int byte[] int int top top top top top int int int int int
      StackMap stack:
            iload 1 /* isChunked */
            ifeq 96
        89: .line 367
            iload 17 /* chunksSoFar */
            iload 7 /* nbrChunks */
            if_icmpge 96
        90: .line 368
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
        91: .line 369
            iconst_0
        92: .line 370
            aload 5 /* encodedData */
        93: .line 371
            iload 6 /* encodedDataLength */
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
            isub
        94: .line 372
            getstatic org.sonatype.plexus.components.cipher.Base64.CHUNK_SEPARATOR:[B
            arraylength
        95: .line 368
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        96: .line 376
      StackMap locals:
      StackMap stack:
            aload 5 /* encodedData */
            areturn
        end local 17 // int chunksSoFar
        end local 16 // int nextSeparatorIndex
        end local 15 // int encodedIndex
        end local 14 // int i
        end local 13 // int dataIndex
        end local 7 // int nbrChunks
        end local 6 // int encodedDataLength
        end local 5 // byte[] encodedData
        end local 4 // int numberTriplets
        end local 3 // int fewerThan24bits
        end local 2 // int lengthDataBits
        end local 1 // boolean isChunked
        end local 0 // byte[] binaryData
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   97     0          binaryData  [B
            0   97     1           isChunked  Z
            1   97     2      lengthDataBits  I
            2   97     3     fewerThan24bits  I
            3   97     4      numberTriplets  I
           14   97     5         encodedData  [B
            6    7     6   encodedDataLength  I
            8   97     6   encodedDataLength  I
            4   97     7           nbrChunks  I
           25   58     8                   k  B
           63   71     8                   k  B
           76   88     8                   k  B
           24   58     9                   l  B
           75   88     9                   l  B
           21   58    10                  b1  B
           62   71    10                  b1  B
           73   88    10                  b1  B
           22   58    11                  b2  B
           74   88    11                  b2  B
           23   58    12                  b3  B
           20   58    13           dataIndex  I
           60   97    13           dataIndex  I
           18   97    14                   i  I
           15   97    15        encodedIndex  I
           16   97    16  nextSeparatorIndex  I
           17   97    17         chunksSoFar  I
           28   57    18                val1  B
           31   57    19                val2  B
           34   57    20                val3  B
           66   70    18                val1  B
           79   88    18                val1  B
           82   88    19                val2  B
    MethodParameters:
            Name  Flags
      binaryData  
      isChunked   

  public static byte[] decodeBase64(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=1
        start local 0 // byte[] base64Data
         0: .line 387
            aload 0 /* base64Data */
            invokestatic org.sonatype.plexus.components.cipher.Base64.discardNonBase64:([B)[B
            astore 0 /* base64Data */
         1: .line 390
            aload 0 /* base64Data */
            arraylength
            ifne 3
         2: .line 391
            iconst_0
            newarray 8
            areturn
         3: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* base64Data */
            arraylength
            iconst_4
            idiv
            istore 1 /* numberQuadruple */
        start local 1 // int numberQuadruple
         4: .line 400
            iconst_0
            istore 10 /* encodedIndex */
        start local 10 // int encodedIndex
         5: .line 403
            aload 0 /* base64Data */
            arraylength
            istore 11 /* lastData */
        start local 11 // int lastData
         6: .line 405
            goto 9
         7: .line 406
      StackMap locals: byte[] int top top top top top top top top int int
      StackMap stack:
            iinc 11 /* lastData */ -1
            iload 11 /* lastData */
            ifne 9
         8: .line 407
            iconst_0
            newarray 8
            areturn
         9: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* base64Data */
            iload 11 /* lastData */
            iconst_1
            isub
            baload
            bipush 61
            if_icmpeq 7
        10: .line 410
            iload 11 /* lastData */
            iload 1 /* numberQuadruple */
            isub
            newarray 8
            astore 2 /* decodedData */
        end local 11 // int lastData
        start local 2 // byte[] decodedData
        11: .line 413
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        12: goto 37
        13: .line 414
      StackMap locals: byte[] int byte[] top top top top top top top int int
      StackMap stack:
            iload 11 /* i */
            iconst_4
            imul
            istore 9 /* dataIndex */
        start local 9 // int dataIndex
        14: .line 415
            aload 0 /* base64Data */
            iload 9 /* dataIndex */
            iconst_2
            iadd
            baload
            istore 7 /* marker0 */
        start local 7 // byte marker0
        15: .line 416
            aload 0 /* base64Data */
            iload 9 /* dataIndex */
            iconst_3
            iadd
            baload
            istore 8 /* marker1 */
        start local 8 // byte marker1
        16: .line 418
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            aload 0 /* base64Data */
            iload 9 /* dataIndex */
            baload
            baload
            istore 3 /* b1 */
        start local 3 // byte b1
        17: .line 419
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            aload 0 /* base64Data */
            iload 9 /* dataIndex */
            iconst_1
            iadd
            baload
            baload
            istore 4 /* b2 */
        start local 4 // byte b2
        18: .line 421
            iload 7 /* marker0 */
            bipush 61
            if_icmpeq 27
            iload 8 /* marker1 */
            bipush 61
            if_icmpeq 27
        19: .line 423
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 7 /* marker0 */
            baload
            istore 5 /* b3 */
        start local 5 // byte b3
        20: .line 424
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 8 /* marker1 */
            baload
            istore 6 /* b4 */
        start local 6 // byte b4
        21: .line 426
            aload 2 /* decodedData */
            iload 10 /* encodedIndex */
            iload 3 /* b1 */
            iconst_2
            ishl
            iload 4 /* b2 */
            iconst_4
            ishr
            ior
            i2b
            bastore
        22: .line 427
            aload 2 /* decodedData */
            iload 10 /* encodedIndex */
            iconst_1
            iadd
        23: .line 428
            iload 4 /* b2 */
            bipush 15
            iand
            iconst_4
            ishl
            iload 5 /* b3 */
            iconst_2
            ishr
            bipush 15
            iand
            ior
            i2b
        24: .line 427
            bastore
        25: .line 429
            aload 2 /* decodedData */
            iload 10 /* encodedIndex */
            iconst_2
            iadd
            iload 5 /* b3 */
            bipush 6
            ishl
            iload 6 /* b4 */
            ior
            i2b
            bastore
        26: .line 430
            goto 35
        end local 6 // byte b4
        end local 5 // byte b3
      StackMap locals: byte[] int byte[] int int top top int int int int int
      StackMap stack:
        27: iload 7 /* marker0 */
            bipush 61
            if_icmpne 30
        28: .line 432
            aload 2 /* decodedData */
            iload 10 /* encodedIndex */
            iload 3 /* b1 */
            iconst_2
            ishl
            iload 4 /* b2 */
            iconst_4
            ishr
            ior
            i2b
            bastore
        29: .line 433
            goto 35
        30: .line 436
      StackMap locals:
      StackMap stack:
            getstatic org.sonatype.plexus.components.cipher.Base64.base64Alphabet:[B
            iload 7 /* marker0 */
            baload
            istore 5 /* b3 */
        start local 5 // byte b3
        31: .line 438
            aload 2 /* decodedData */
            iload 10 /* encodedIndex */
            iload 3 /* b1 */
            iconst_2
            ishl
            iload 4 /* b2 */
            iconst_4
            ishr
            ior
            i2b
            bastore
        32: .line 439
            aload 2 /* decodedData */
            iload 10 /* encodedIndex */
            iconst_1
            iadd
        33: .line 440
            iload 4 /* b2 */
            bipush 15
            iand
            iconst_4
            ishl
            iload 5 /* b3 */
            iconst_2
            ishr
            bipush 15
            iand
            ior
            i2b
        34: .line 439
            bastore
        end local 5 // byte b3
        35: .line 442
      StackMap locals:
      StackMap stack:
            iinc 10 /* encodedIndex */ 3
        36: .line 413
            iinc 11 /* i */ 1
        end local 9 // int dataIndex
        end local 8 // byte marker1
        end local 7 // byte marker0
        end local 4 // byte b2
        end local 3 // byte b1
      StackMap locals: byte[] int byte[] top top top top top top top int int
      StackMap stack:
        37: iload 11 /* i */
            iload 1 /* numberQuadruple */
            if_icmplt 13
        end local 11 // int i
        38: .line 444
            aload 2 /* decodedData */
            areturn
        end local 10 // int encodedIndex
        end local 2 // byte[] decodedData
        end local 1 // int numberQuadruple
        end local 0 // byte[] base64Data
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0       base64Data  [B
            4   39     1  numberQuadruple  I
           11   39     2      decodedData  [B
           17   37     3               b1  B
           18   37     4               b2  B
           20   27     5               b3  B
           31   35     5               b3  B
           21   27     6               b4  B
           15   37     7          marker0  B
           16   37     8          marker1  B
           14   37     9        dataIndex  I
            5   39    10     encodedIndex  I
            6   11    11         lastData  I
           12   38    11                i  I
    MethodParameters:
            Name  Flags
      base64Data  

  static byte[] discardWhitespace(byte[]);
    descriptor: ([B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // byte[] data
         0: .line 455
            aload 0 /* data */
            arraylength
            newarray 8
            astore 1 /* groomedData */
        start local 1 // byte[] groomedData
         1: .line 456
            iconst_0
            istore 2 /* bytesCopied */
        start local 2 // int bytesCopied
         2: .line 458
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 459
      StackMap locals: byte[] int int
      StackMap stack:
            aload 0 /* data */
            iload 3 /* i */
            baload
            lookupswitch { // 4
                    9: 5
                   10: 5
                   13: 5
                   32: 5
              default: 6
          }
         5: .line 464
      StackMap locals:
      StackMap stack:
            goto 7
         6: .line 466
      StackMap locals:
      StackMap stack:
            aload 1 /* groomedData */
            iload 2 /* bytesCopied */
            iinc 2 /* bytesCopied */ 1
            aload 0 /* data */
            iload 3 /* i */
            baload
            bastore
         7: .line 458
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* data */
            arraylength
            if_icmplt 4
        end local 3 // int i
         9: .line 470
            iload 2 /* bytesCopied */
            newarray 8
            astore 3 /* packedData */
        start local 3 // byte[] packedData
        10: .line 472
            aload 1 /* groomedData */
            iconst_0
            aload 3 /* packedData */
            iconst_0
            iload 2 /* bytesCopied */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 474
            aload 3 /* packedData */
            areturn
        end local 3 // byte[] packedData
        end local 2 // int bytesCopied
        end local 1 // byte[] groomedData
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         data  [B
            1   12     1  groomedData  [B
            2   12     2  bytesCopied  I
            3    9     3            i  I
           10   12     3   packedData  [B
    MethodParameters:
      Name  Flags
      data  

  static byte[] discardNonBase64(byte[]);
    descriptor: ([B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // byte[] data
         0: .line 487
            aload 0 /* data */
            arraylength
            newarray 8
            astore 1 /* groomedData */
        start local 1 // byte[] groomedData
         1: .line 488
            iconst_0
            istore 2 /* bytesCopied */
        start local 2 // int bytesCopied
         2: .line 490
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 491
      StackMap locals: byte[] int int
      StackMap stack:
            aload 0 /* data */
            iload 3 /* i */
            baload
            invokestatic org.sonatype.plexus.components.cipher.Base64.isBase64:(B)Z
            ifeq 6
         5: .line 492
            aload 1 /* groomedData */
            iload 2 /* bytesCopied */
            iinc 2 /* bytesCopied */ 1
            aload 0 /* data */
            iload 3 /* i */
            baload
            bastore
         6: .line 490
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* data */
            arraylength
            if_icmplt 4
        end local 3 // int i
         8: .line 496
            iload 2 /* bytesCopied */
            newarray 8
            astore 3 /* packedData */
        start local 3 // byte[] packedData
         9: .line 498
            aload 1 /* groomedData */
            iconst_0
            aload 3 /* packedData */
            iconst_0
            iload 2 /* bytesCopied */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 500
            aload 3 /* packedData */
            areturn
        end local 3 // byte[] packedData
        end local 2 // int bytesCopied
        end local 1 // byte[] groomedData
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         data  [B
            1   11     1  groomedData  [B
            2   11     2  bytesCopied  I
            3    8     3            i  I
            9   11     3   packedData  [B
    MethodParameters:
      Name  Flags
      data  

  public java.lang.Object encode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.sonatype.plexus.components.cipher.Base64 this
        start local 1 // java.lang.Object pObject
         0: .line 518
            aload 1 /* pObject */
            instanceof byte[]
            ifne 2
         1: .line 519
            new java.lang.IllegalArgumentException
            dup
            ldc "Parameter supplied to Base64 encode is not a byte[]"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pObject */
            checkcast byte[]
            invokevirtual org.sonatype.plexus.components.cipher.Base64.encode:([B)[B
            areturn
        end local 1 // java.lang.Object pObject
        end local 0 // org.sonatype.plexus.components.cipher.Base64 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/sonatype/plexus/components/cipher/Base64;
            0    3     1  pObject  Ljava/lang/Object;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      pObject  

  public byte[] encode(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.sonatype.plexus.components.cipher.Base64 this
        start local 1 // byte[] pArray
         0: .line 532
            aload 1 /* pArray */
            iconst_0
            invokestatic org.sonatype.plexus.components.cipher.Base64.encodeBase64:([BZ)[B
            areturn
        end local 1 // byte[] pArray
        end local 0 // org.sonatype.plexus.components.cipher.Base64 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/sonatype/plexus/components/cipher/Base64;
            0    1     1  pArray  [B
    MethodParameters:
        Name  Flags
      pArray  
}
SourceFile: "Base64.java"