in util/base/src/main/java/jetbrains/jetpad/base/base64/Base64Coder.java [77:105]
private void encode(byte[] bytes) {
int blocksLen = bytes.length / 3;
for (int i = 0; i < blocksLen; i++) {
int base = i * 3;
int b1 = bytes[base] & 0xFF;
int b2 = bytes[base + 1] & 0xFF;
int b3 = bytes[base + 2] & 0xFF;
appendTableValue(b1 >> 2);
appendTableValue(((b1 & 0x3) << 4) + (b2 >> 4));
appendTableValue(((b2 & 0xF) << 2) + (b3 >> 6));
appendTableValue(b3 & 0x3F);
}
int lastBlock = blocksLen * 3 - 1;
if (bytes.length % 3 == 1) {
int b = bytes[lastBlock + 1] & 0xFF;
appendTableValue(b >> 2);
appendTableValue((b & 0x3) << 4);
appendString("==");
} else if (bytes.length % 3 == 2) {
int b1 = bytes[lastBlock + 1] & 0xFF;
int b2 = bytes[lastBlock + 2] & 0xFF;
appendTableValue(b1 >> 2);
appendTableValue(((b1 & 0x3) << 4) + (b2 >> 4));
appendTableValue((b2 & 0xF) << 2);
appendString("=");
}
}