public class org.eclipse.core.internal.preferences.Base64
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.core.internal.preferences.Base64
  super_class: java.lang.Object
{
  private static final byte equalSign;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 61

  static char[] digits;
    descriptor: [C
    flags: (0x0008) ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 20
            bipush 64
            newarray 5
            dup
            iconst_0
            bipush 65
            castore
            dup
            iconst_1
            bipush 66
            castore
            dup
            iconst_2
            bipush 67
            castore
            dup
            iconst_3
            bipush 68
            castore
            dup
            iconst_4
            bipush 69
            castore
            dup
            iconst_5
            bipush 70
            castore
            dup
            bipush 6
            bipush 71
            castore
            dup
            bipush 7
            bipush 72
            castore
            dup
            bipush 8
            bipush 73
            castore
            dup
            bipush 9
            bipush 74
            castore
            dup
            bipush 10
            bipush 75
            castore
            dup
            bipush 11
            bipush 76
            castore
            dup
            bipush 12
            bipush 77
            castore
            dup
            bipush 13
            bipush 78
            castore
            dup
            bipush 14
            bipush 79
            castore
            dup
            bipush 15
            bipush 80
            castore
            dup
            bipush 16
         1: .line 21
            bipush 81
            castore
            dup
            bipush 17
            bipush 82
            castore
            dup
            bipush 18
            bipush 83
            castore
            dup
            bipush 19
            bipush 84
            castore
            dup
            bipush 20
            bipush 85
            castore
            dup
            bipush 21
            bipush 86
            castore
            dup
            bipush 22
            bipush 87
            castore
            dup
            bipush 23
            bipush 88
            castore
            dup
            bipush 24
            bipush 89
            castore
            dup
            bipush 25
            bipush 90
            castore
            dup
            bipush 26
            bipush 97
            castore
            dup
            bipush 27
            bipush 98
            castore
            dup
            bipush 28
            bipush 99
            castore
            dup
            bipush 29
            bipush 100
            castore
            dup
            bipush 30
            bipush 101
            castore
            dup
            bipush 31
            bipush 102
            castore
            dup
            bipush 32
         2: .line 22
            bipush 103
            castore
            dup
            bipush 33
            bipush 104
            castore
            dup
            bipush 34
            bipush 105
            castore
            dup
            bipush 35
            bipush 106
            castore
            dup
            bipush 36
            bipush 107
            castore
            dup
            bipush 37
            bipush 108
            castore
            dup
            bipush 38
            bipush 109
            castore
            dup
            bipush 39
            bipush 110
            castore
            dup
            bipush 40
            bipush 111
            castore
            dup
            bipush 41
            bipush 112
            castore
            dup
            bipush 42
            bipush 113
            castore
            dup
            bipush 43
            bipush 114
            castore
            dup
            bipush 44
            bipush 115
            castore
            dup
            bipush 45
            bipush 116
            castore
            dup
            bipush 46
            bipush 117
            castore
            dup
            bipush 47
            bipush 118
            castore
            dup
            bipush 48
         3: .line 23
            bipush 119
            castore
            dup
            bipush 49
            bipush 120
            castore
            dup
            bipush 50
            bipush 121
            castore
            dup
            bipush 51
            bipush 122
            castore
            dup
            bipush 52
            bipush 48
            castore
            dup
            bipush 53
            bipush 49
            castore
            dup
            bipush 54
            bipush 50
            castore
            dup
            bipush 55
            bipush 51
            castore
            dup
            bipush 56
            bipush 52
            castore
            dup
            bipush 57
            bipush 53
            castore
            dup
            bipush 58
            bipush 54
            castore
            dup
            bipush 59
            bipush 55
            castore
            dup
            bipush 60
            bipush 56
            castore
            dup
            bipush 61
            bipush 57
            castore
            dup
            bipush 62
            bipush 43
            castore
            dup
            bipush 63
            bipush 47
            castore
         4: .line 20
            putstatic org.eclipse.core.internal.preferences.Base64.digits:[C
         5: .line 23
            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.eclipse.core.internal.preferences.Base64 this
         0: .line 16
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.core.internal.preferences.Base64 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/core/internal/preferences/Base64;

  public static byte[] decode(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // byte[] data
         0: .line 34
            aload 0 /* data */
            arraylength
            ifne 2
         1: .line 35
            aload 0 /* data */
            areturn
         2: .line 36
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            arraylength
            iconst_1
            isub
            istore 1 /* lastRealDataIndex */
        start local 1 // int lastRealDataIndex
         3: .line 37
            goto 5
         4: .line 38
      StackMap locals: int
      StackMap stack:
            iinc 1 /* lastRealDataIndex */ -1
         5: .line 37
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            iload 1 /* lastRealDataIndex */
            baload
            bipush 61
            if_icmpeq 4
         6: .line 40
            aload 0 /* data */
            arraylength
            iconst_1
            isub
            iload 1 /* lastRealDataIndex */
            isub
            istore 2 /* padBytes */
        start local 2 // int padBytes
         7: .line 41
            aload 0 /* data */
            arraylength
            bipush 6
            imul
            bipush 8
            idiv
            iload 2 /* padBytes */
            isub
            istore 3 /* byteLength */
        start local 3 // int byteLength
         8: .line 42
            iload 3 /* byteLength */
            newarray 8
            astore 4 /* result */
        start local 4 // byte[] result
         9: .line 44
            iconst_0
            istore 5 /* dataIndex */
        start local 5 // int dataIndex
        10: .line 45
            iconst_0
            istore 6 /* resultIndex */
        start local 6 // int resultIndex
        11: .line 46
            iconst_0
            istore 7 /* allBits */
        start local 7 // int allBits
        12: .line 48
            iload 1 /* lastRealDataIndex */
            iconst_1
            iadd
            iconst_4
            idiv
            istore 8 /* resultChunks */
        start local 8 // int resultChunks
        13: .line 49
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        14: goto 29
        15: .line 50
      StackMap locals: byte[] int int int byte[] int int int int int
      StackMap stack:
            iconst_0
            istore 7 /* allBits */
        16: .line 52
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        17: goto 20
        18: .line 53
      StackMap locals: int
      StackMap stack:
            iload 7 /* allBits */
            bipush 6
            ishl
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            invokestatic org.eclipse.core.internal.preferences.Base64.decodeDigit:(B)I
            ior
            istore 7 /* allBits */
        19: .line 52
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        20: iload 10 /* j */
            iconst_4
            if_icmplt 18
        end local 10 // int j
        21: .line 55
            iload 6 /* resultIndex */
            iconst_2
            iadd
            istore 10 /* j */
        start local 10 // int j
        22: goto 26
        23: .line 56
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            iload 10 /* j */
            iload 7 /* allBits */
            sipush 255
            iand
            i2b
            bastore
        24: .line 57
            iload 7 /* allBits */
            bipush 8
            iushr
            istore 7 /* allBits */
        25: .line 55
            iinc 10 /* j */ -1
      StackMap locals:
      StackMap stack:
        26: iload 10 /* j */
            iload 6 /* resultIndex */
            if_icmpge 23
        end local 10 // int j
        27: .line 59
            iinc 6 /* resultIndex */ 3
        28: .line 49
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 9 /* i */
            iload 8 /* resultChunks */
            if_icmplt 15
        end local 9 // int i
        30: .line 63
            iload 2 /* padBytes */
            tableswitch { // 1 - 2
                    1: 31
                    2: 46
              default: 57
          }
        31: .line 68
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* allBits */
        32: .line 70
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        33: goto 36
        34: .line 71
      StackMap locals: int
      StackMap stack:
            iload 7 /* allBits */
            bipush 6
            ishl
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            invokestatic org.eclipse.core.internal.preferences.Base64.decodeDigit:(B)I
            ior
            istore 7 /* allBits */
        35: .line 70
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        36: iload 9 /* j */
            iconst_3
            if_icmplt 34
        end local 9 // int j
        37: .line 76
            iload 7 /* allBits */
            bipush 6
            ishl
            istore 7 /* allBits */
        38: .line 78
            iload 7 /* allBits */
            bipush 8
            iushr
            istore 7 /* allBits */
        39: .line 80
            iload 6 /* resultIndex */
            iconst_1
            iadd
            istore 9 /* j */
        start local 9 // int j
        40: goto 44
        41: .line 81
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            iload 9 /* j */
            iload 7 /* allBits */
            sipush 255
            iand
            i2b
            bastore
        42: .line 83
            iload 7 /* allBits */
            bipush 8
            iushr
            istore 7 /* allBits */
        43: .line 80
            iinc 9 /* j */ -1
      StackMap locals:
      StackMap stack:
        44: iload 9 /* j */
            iload 6 /* resultIndex */
            if_icmpge 41
        end local 9 // int j
        45: .line 85
            goto 57
        46: .line 90
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* allBits */
        47: .line 92
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        48: goto 51
        49: .line 93
      StackMap locals: int
      StackMap stack:
            iload 7 /* allBits */
            bipush 6
            ishl
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            invokestatic org.eclipse.core.internal.preferences.Base64.decodeDigit:(B)I
            ior
            istore 7 /* allBits */
        50: .line 92
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        51: iload 9 /* j */
            iconst_2
            if_icmplt 49
        end local 9 // int j
        52: .line 98
            iload 7 /* allBits */
            bipush 6
            ishl
            istore 7 /* allBits */
        53: .line 99
            iload 7 /* allBits */
            bipush 6
            ishl
            istore 7 /* allBits */
        54: .line 101
            iload 7 /* allBits */
            bipush 8
            iushr
            istore 7 /* allBits */
        55: .line 102
            iload 7 /* allBits */
            bipush 8
            iushr
            istore 7 /* allBits */
        56: .line 103
            aload 4 /* result */
            iload 6 /* resultIndex */
            iload 7 /* allBits */
            sipush 255
            iand
            i2b
            bastore
        57: .line 108
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 8 // int resultChunks
        end local 7 // int allBits
        end local 6 // int resultIndex
        end local 5 // int dataIndex
        end local 4 // byte[] result
        end local 3 // int byteLength
        end local 2 // int padBytes
        end local 1 // int lastRealDataIndex
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   58     0               data  [B
            3   58     1  lastRealDataIndex  I
            7   58     2           padBytes  I
            8   58     3         byteLength  I
            9   58     4             result  [B
           10   58     5          dataIndex  I
           11   58     6        resultIndex  I
           12   58     7            allBits  I
           13   58     8       resultChunks  I
           14   30     9                  i  I
           17   21    10                  j  I
           22   27    10                  j  I
           33   37     9                  j  I
           40   45     9                  j  I
           48   52     9                  j  I
    MethodParameters:
      Name  Flags
      data  

  static int decodeDigit(byte);
    descriptor: (B)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // byte data
         0: .line 118
            iload 0 /* data */
            i2c
            istore 1 /* charData */
        start local 1 // char charData
         1: .line 119
            iload 1 /* charData */
            bipush 90
            if_icmpgt 3
            iload 1 /* charData */
            bipush 65
            if_icmplt 3
         2: .line 120
            iload 1 /* charData */
            bipush 65
            isub
            ireturn
         3: .line 121
      StackMap locals: int
      StackMap stack:
            iload 1 /* charData */
            bipush 122
            if_icmpgt 5
            iload 1 /* charData */
            bipush 97
            if_icmplt 5
         4: .line 122
            iload 1 /* charData */
            bipush 97
            isub
            bipush 26
            iadd
            ireturn
         5: .line 123
      StackMap locals:
      StackMap stack:
            iload 1 /* charData */
            bipush 57
            if_icmpgt 7
            iload 1 /* charData */
            bipush 48
            if_icmplt 7
         6: .line 124
            iload 1 /* charData */
            bipush 48
            isub
            bipush 52
            iadd
            ireturn
         7: .line 125
      StackMap locals:
      StackMap stack:
            iload 1 /* charData */
            tableswitch { // 43 - 47
                   43: 8
                   44: 10
                   45: 10
                   46: 10
                   47: 9
              default: 10
          }
         8: .line 127
      StackMap locals:
      StackMap stack:
            bipush 62
            ireturn
         9: .line 129
      StackMap locals:
      StackMap stack:
            bipush 63
            ireturn
        10: .line 131
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid char to decode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* data */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // char charData
        end local 0 // byte data
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      data  B
            1   11     1  charData  C
    MethodParameters:
      Name  Flags
      data  

  public static byte[] encode(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // byte[] data
         0: .line 143
            aload 0 /* data */
            arraylength
            iconst_3
            idiv
            istore 1 /* sourceChunks */
        start local 1 // int sourceChunks
         1: .line 144
            aload 0 /* data */
            arraylength
            iconst_2
            iadd
            iconst_3
            idiv
            iconst_4
            imul
            istore 2 /* len */
        start local 2 // int len
         2: .line 145
            iload 2 /* len */
            newarray 8
            astore 3 /* result */
        start local 3 // byte[] result
         3: .line 146
            aload 0 /* data */
            arraylength
            iload 1 /* sourceChunks */
            iconst_3
            imul
            isub
            istore 4 /* extraBytes */
        start local 4 // int extraBytes
         4: .line 148
            iconst_0
            istore 5 /* dataIndex */
        start local 5 // int dataIndex
         5: .line 149
            iconst_0
            istore 6 /* resultIndex */
        start local 6 // int resultIndex
         6: .line 150
            iconst_0
            istore 7 /* allBits */
        start local 7 // int allBits
         7: .line 151
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 23
         9: .line 152
      StackMap locals: byte[] int int byte[] int int int int int
      StackMap stack:
            iconst_0
            istore 7 /* allBits */
        10: .line 154
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        11: goto 14
        12: .line 155
      StackMap locals: int
      StackMap stack:
            iload 7 /* allBits */
            bipush 8
            ishl
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            sipush 255
            iand
            ior
            istore 7 /* allBits */
        13: .line 154
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        14: iload 9 /* j */
            iconst_3
            if_icmplt 12
        end local 9 // int j
        15: .line 157
            iload 6 /* resultIndex */
            iconst_3
            iadd
            istore 9 /* j */
        start local 9 // int j
        16: goto 20
        17: .line 158
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            iload 9 /* j */
            getstatic org.eclipse.core.internal.preferences.Base64.digits:[C
            iload 7 /* allBits */
            bipush 63
            iand
            caload
            i2b
            bastore
        18: .line 161
            iload 7 /* allBits */
            bipush 6
            iushr
            istore 7 /* allBits */
        19: .line 157
            iinc 9 /* j */ -1
      StackMap locals:
      StackMap stack:
        20: iload 9 /* j */
            iload 6 /* resultIndex */
            if_icmpge 17
        end local 9 // int j
        21: .line 163
            iinc 6 /* resultIndex */ 4
        22: .line 151
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            iload 1 /* sourceChunks */
            if_icmplt 9
        end local 8 // int i
        24: .line 167
            iload 4 /* extraBytes */
            tableswitch { // 1 - 2
                    1: 25
                    2: 37
              default: 47
          }
        25: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            istore 7 /* allBits */
        26: .line 170
            iload 7 /* allBits */
            bipush 8
            ishl
            istore 7 /* allBits */
        27: .line 171
            iload 7 /* allBits */
            bipush 8
            ishl
            istore 7 /* allBits */
        28: .line 173
            iload 6 /* resultIndex */
            iconst_3
            iadd
            istore 8 /* j */
        start local 8 // int j
        29: goto 33
        30: .line 174
      StackMap locals: int
      StackMap stack:
            aload 3 /* result */
            iload 8 /* j */
            getstatic org.eclipse.core.internal.preferences.Base64.digits:[C
            iload 7 /* allBits */
            bipush 63
            iand
            caload
            i2b
            bastore
        31: .line 177
            iload 7 /* allBits */
            bipush 6
            iushr
            istore 7 /* allBits */
        32: .line 173
            iinc 8 /* j */ -1
      StackMap locals:
      StackMap stack:
        33: iload 8 /* j */
            iload 6 /* resultIndex */
            if_icmpge 30
        end local 8 // int j
        34: .line 180
            aload 3 /* result */
            aload 3 /* result */
            arraylength
            iconst_1
            isub
            bipush 61
            bastore
        35: .line 181
            aload 3 /* result */
            aload 3 /* result */
            arraylength
            iconst_2
            isub
            bipush 61
            bastore
        36: .line 182
            goto 47
        37: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            istore 7 /* allBits */
        38: .line 185
            iload 7 /* allBits */
            bipush 8
            ishl
            aload 0 /* data */
            iload 5 /* dataIndex */
            iinc 5 /* dataIndex */ 1
            baload
            sipush 255
            iand
            ior
            istore 7 /* allBits */
        39: .line 187
            iload 7 /* allBits */
            bipush 8
            ishl
            istore 7 /* allBits */
        40: .line 189
            iload 6 /* resultIndex */
            iconst_3
            iadd
            istore 8 /* j */
        start local 8 // int j
        41: goto 45
        42: .line 190
      StackMap locals: int
      StackMap stack:
            aload 3 /* result */
            iload 8 /* j */
            getstatic org.eclipse.core.internal.preferences.Base64.digits:[C
            iload 7 /* allBits */
            bipush 63
            iand
            caload
            i2b
            bastore
        43: .line 193
            iload 7 /* allBits */
            bipush 6
            iushr
            istore 7 /* allBits */
        44: .line 189
            iinc 8 /* j */ -1
      StackMap locals:
      StackMap stack:
        45: iload 8 /* j */
            iload 6 /* resultIndex */
            if_icmpge 42
        end local 8 // int j
        46: .line 196
            aload 3 /* result */
            aload 3 /* result */
            arraylength
            iconst_1
            isub
            bipush 61
            bastore
        47: .line 199
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 7 // int allBits
        end local 6 // int resultIndex
        end local 5 // int dataIndex
        end local 4 // int extraBytes
        end local 3 // byte[] result
        end local 2 // int len
        end local 1 // int sourceChunks
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   48     0          data  [B
            1   48     1  sourceChunks  I
            2   48     2           len  I
            3   48     3        result  [B
            4   48     4    extraBytes  I
            5   48     5     dataIndex  I
            6   48     6   resultIndex  I
            7   48     7       allBits  I
            8   24     8             i  I
           11   15     9             j  I
           16   21     9             j  I
           29   34     8             j  I
           41   46     8             j  I
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "Base64.java"