public final class org.bson.internal.Base64
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.bson.internal.Base64
super_class: java.lang.Object
{
private static final int BYTES_PER_UNENCODED_BLOCK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int BYTES_PER_ENCODED_BLOCK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int SIX_BIT_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 63
private static final byte PAD;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 61
private static final byte[] ENCODE_TABLE;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] DECODE_TABLE;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: .line 46
bipush 64
newarray 8
dup
iconst_0
bipush 65
bastore
dup
iconst_1
bipush 66
bastore
dup
iconst_2
bipush 67
bastore
dup
iconst_3
bipush 68
bastore
dup
iconst_4
bipush 69
bastore
dup
iconst_5
bipush 70
bastore
dup
bipush 6
1: .line 47
bipush 71
bastore
dup
bipush 7
bipush 72
bastore
dup
bipush 8
bipush 73
bastore
dup
bipush 9
bipush 74
bastore
dup
bipush 10
bipush 75
bastore
dup
bipush 11
bipush 76
bastore
dup
bipush 12
bipush 77
bastore
dup
bipush 13
bipush 78
bastore
dup
bipush 14
bipush 79
bastore
dup
bipush 15
bipush 80
bastore
dup
bipush 16
bipush 81
bastore
dup
bipush 17
bipush 82
bastore
dup
bipush 18
bipush 83
bastore
dup
bipush 19
2: .line 48
bipush 84
bastore
dup
bipush 20
bipush 85
bastore
dup
bipush 21
bipush 86
bastore
dup
bipush 22
bipush 87
bastore
dup
bipush 23
bipush 88
bastore
dup
bipush 24
bipush 89
bastore
dup
bipush 25
bipush 90
bastore
dup
bipush 26
bipush 97
bastore
dup
bipush 27
bipush 98
bastore
dup
bipush 28
bipush 99
bastore
dup
bipush 29
bipush 100
bastore
dup
bipush 30
bipush 101
bastore
dup
bipush 31
bipush 102
bastore
dup
bipush 32
3: .line 49
bipush 103
bastore
dup
bipush 33
bipush 104
bastore
dup
bipush 34
bipush 105
bastore
dup
bipush 35
bipush 106
bastore
dup
bipush 36
bipush 107
bastore
dup
bipush 37
bipush 108
bastore
dup
bipush 38
bipush 109
bastore
dup
bipush 39
bipush 110
bastore
dup
bipush 40
bipush 111
bastore
dup
bipush 41
bipush 112
bastore
dup
bipush 42
bipush 113
bastore
dup
bipush 43
bipush 114
bastore
dup
bipush 44
bipush 115
bastore
dup
bipush 45
4: .line 50
bipush 116
bastore
dup
bipush 46
bipush 117
bastore
dup
bipush 47
bipush 118
bastore
dup
bipush 48
bipush 119
bastore
dup
bipush 49
bipush 120
bastore
dup
bipush 50
bipush 121
bastore
dup
bipush 51
bipush 122
bastore
dup
bipush 52
bipush 48
bastore
dup
bipush 53
bipush 49
bastore
dup
bipush 54
bipush 50
bastore
dup
bipush 55
bipush 51
bastore
dup
bipush 56
bipush 52
bastore
dup
bipush 57
bipush 53
bastore
dup
bipush 58
5: .line 51
bipush 54
bastore
dup
bipush 59
bipush 55
bastore
dup
bipush 60
bipush 56
bastore
dup
bipush 61
bipush 57
bastore
dup
bipush 62
bipush 43
bastore
dup
bipush 63
bipush 47
bastore
6: .line 46
putstatic org.bson.internal.Base64.ENCODE_TABLE:[B
7: .line 53
sipush 128
newarray 10
putstatic org.bson.internal.Base64.DECODE_TABLE:[I
8: .line 56
iconst_0
istore 0 /* i */
start local 0 // int i
9: goto 12
10: .line 57
StackMap locals: int
StackMap stack:
getstatic org.bson.internal.Base64.DECODE_TABLE:[I
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 0 /* i */
baload
iload 0 /* i */
iastore
11: .line 56
iinc 0 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 0 /* i */
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
arraylength
if_icmplt 10
end local 0 // int i
13: .line 59
return
LocalVariableTable:
Start End Slot Name Signature
9 13 0 i I
public static byte[] decode(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=1
start local 0 // java.lang.String s
0: .line 68
aload 0 /* s */
ldc "=="
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 1
iconst_2
goto 3
StackMap locals:
StackMap stack:
1: aload 0 /* s */
ldc "="
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 1 /* delta */
start local 1 // int delta
4: .line 69
aload 0 /* s */
invokevirtual java.lang.String.length:()I
iconst_3
imul
iconst_4
idiv
iload 1 /* delta */
isub
newarray 8
astore 2 /* buffer */
start local 2 // byte[] buffer
5: .line 70
sipush 255
istore 3 /* mask */
start local 3 // int mask
6: .line 71
iconst_0
istore 4 /* pos */
start local 4 // int pos
7: .line 72
iconst_0
istore 5 /* i */
start local 5 // int i
8: goto 21
9: .line 73
StackMap locals: java.lang.String int byte[] int int int
StackMap stack:
getstatic org.bson.internal.Base64.DECODE_TABLE:[I
aload 0 /* s */
iload 5 /* i */
invokevirtual java.lang.String.charAt:(I)C
iaload
istore 6 /* c0 */
start local 6 // int c0
10: .line 74
getstatic org.bson.internal.Base64.DECODE_TABLE:[I
aload 0 /* s */
iload 5 /* i */
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
iaload
istore 7 /* c1 */
start local 7 // int c1
11: .line 75
aload 2 /* buffer */
iload 4 /* pos */
iinc 4 /* pos */ 1
iload 6 /* c0 */
iconst_2
ishl
iload 7 /* c1 */
iconst_4
ishr
ior
iload 3 /* mask */
iand
i2b
bastore
12: .line 76
iload 4 /* pos */
aload 2 /* buffer */
arraylength
if_icmplt 14
13: .line 77
aload 2 /* buffer */
areturn
14: .line 79
StackMap locals: int int
StackMap stack:
getstatic org.bson.internal.Base64.DECODE_TABLE:[I
aload 0 /* s */
iload 5 /* i */
iconst_2
iadd
invokevirtual java.lang.String.charAt:(I)C
iaload
istore 8 /* c2 */
start local 8 // int c2
15: .line 80
aload 2 /* buffer */
iload 4 /* pos */
iinc 4 /* pos */ 1
iload 7 /* c1 */
iconst_4
ishl
iload 8 /* c2 */
iconst_2
ishr
ior
iload 3 /* mask */
iand
i2b
bastore
16: .line 81
iload 4 /* pos */
aload 2 /* buffer */
arraylength
if_icmplt 18
17: .line 82
aload 2 /* buffer */
areturn
18: .line 84
StackMap locals: int
StackMap stack:
getstatic org.bson.internal.Base64.DECODE_TABLE:[I
aload 0 /* s */
iload 5 /* i */
iconst_3
iadd
invokevirtual java.lang.String.charAt:(I)C
iaload
istore 9 /* c3 */
start local 9 // int c3
19: .line 85
aload 2 /* buffer */
iload 4 /* pos */
iinc 4 /* pos */ 1
iload 8 /* c2 */
bipush 6
ishl
iload 9 /* c3 */
ior
iload 3 /* mask */
iand
i2b
bastore
end local 9 // int c3
end local 8 // int c2
end local 7 // int c1
end local 6 // int c0
20: .line 72
iinc 5 /* i */ 4
StackMap locals:
StackMap stack:
21: iload 5 /* i */
aload 0 /* s */
invokevirtual java.lang.String.length:()I
if_icmplt 9
end local 5 // int i
22: .line 87
aload 2 /* buffer */
areturn
end local 4 // int pos
end local 3 // int mask
end local 2 // byte[] buffer
end local 1 // int delta
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 23 0 s Ljava/lang/String;
4 23 1 delta I
5 23 2 buffer [B
6 23 3 mask I
7 23 4 pos I
8 22 5 i I
10 20 6 c0 I
11 20 7 c1 I
15 20 8 c2 I
19 20 9 c3 I
MethodParameters:
Name Flags
s final
public static java.lang.String encode(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=1
start local 0 // byte[] in
0: .line 99
iconst_0
istore 1 /* modulus */
start local 1 // int modulus
1: .line 100
iconst_0
istore 2 /* bitWorkArea */
start local 2 // int bitWorkArea
2: .line 101
aload 0 /* in */
arraylength
iconst_3
idiv
iconst_4
imul
3: .line 102
aload 0 /* in */
arraylength
iconst_3
irem
ifne 4
iconst_0
goto 5
StackMap locals: byte[] int int
StackMap stack: int
4: iconst_4
5: .line 101
StackMap locals: byte[] int int
StackMap stack: int int
iadd
istore 3 /* numEncodedBytes */
start local 3 // int numEncodedBytes
6: .line 104
iload 3 /* numEncodedBytes */
newarray 8
astore 4 /* buffer */
start local 4 // byte[] buffer
7: .line 105
iconst_0
istore 5 /* pos */
start local 5 // int pos
8: .line 107
aload 0 /* in */
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 20
StackMap locals: byte[] int int int byte[] int top int int byte[]
StackMap stack:
9: aload 9
iload 7
baload
istore 6 /* b */
start local 6 // int b
10: .line 108
iload 1 /* modulus */
iconst_1
iadd
iconst_3
irem
istore 1 /* modulus */
11: .line 110
iload 6 /* b */
ifge 13
12: .line 111
iinc 6 /* b */ 256
13: .line 114
StackMap locals: byte[] int int int byte[] int int int int byte[]
StackMap stack:
iload 2 /* bitWorkArea */
bipush 8
ishl
iload 6 /* b */
iadd
istore 2 /* bitWorkArea */
14: .line 115
iload 1 /* modulus */
ifne 19
15: .line 116
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
bipush 18
ishr
bipush 63
iand
baload
bastore
16: .line 117
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
bipush 12
ishr
bipush 63
iand
baload
bastore
17: .line 118
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
bipush 6
ishr
bipush 63
iand
baload
bastore
18: .line 119
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
bipush 63
iand
baload
bastore
end local 6 // int b
19: .line 107
StackMap locals: byte[] int int int byte[] int top int int byte[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
iload 8
if_icmplt 9
21: .line 123
iload 1 /* modulus */
tableswitch { // 1 - 2
1: 22
2: 27
default: 32
}
22: .line 125
StackMap locals: byte[] int int int byte[] int
StackMap stack:
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
iconst_2
ishr
bipush 63
iand
baload
bastore
23: .line 126
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
iconst_4
ishl
bipush 63
iand
baload
bastore
24: .line 127
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
bipush 61
bastore
25: .line 128
aload 4 /* buffer */
iload 5 /* pos */
bipush 61
bastore
26: .line 129
goto 32
27: .line 132
StackMap locals:
StackMap stack:
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
bipush 10
ishr
bipush 63
iand
baload
bastore
28: .line 133
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
iconst_4
ishr
bipush 63
iand
baload
bastore
29: .line 134
aload 4 /* buffer */
iload 5 /* pos */
iinc 5 /* pos */ 1
getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
iload 2 /* bitWorkArea */
iconst_2
ishl
bipush 63
iand
baload
bastore
30: .line 135
aload 4 /* buffer */
iload 5 /* pos */
bipush 61
bastore
31: .line 136
goto 32
32: .line 141
StackMap locals:
StackMap stack:
aload 4 /* buffer */
invokestatic org.bson.internal.Base64.byteArrayToString:([B)Ljava/lang/String;
areturn
end local 5 // int pos
end local 4 // byte[] buffer
end local 3 // int numEncodedBytes
end local 2 // int bitWorkArea
end local 1 // int modulus
end local 0 // byte[] in
LocalVariableTable:
Start End Slot Name Signature
0 33 0 in [B
1 33 1 modulus I
2 33 2 bitWorkArea I
6 33 3 numEncodedBytes I
7 33 4 buffer [B
8 33 5 pos I
10 19 6 b I
MethodParameters:
Name Flags
in final
private static java.lang.String byteArrayToString(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 // byte[] buffer
0: .line 146
new java.lang.String
dup
aload 0 /* buffer */
iconst_0
iconst_0
aload 0 /* buffer */
arraylength
invokespecial java.lang.String.<init>:([BIII)V
areturn
end local 0 // byte[] buffer
LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer [B
MethodParameters:
Name Flags
buffer final
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bson.internal.Base64 this
0: .line 149
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 150
return
end local 0 // org.bson.internal.Base64 this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/internal/Base64;
}
SourceFile: "Base64.java"