public class org.linkedin.util.codec.Base64Codec extends java.lang.Object implements org.linkedin.util.codec.Codec
{
public static final org.linkedin.util.codec.Base64Codec INSTANCE;
public static final int NUM_BITS_PER_DIGIT;
private char[] _radix;
private int[] _reverseRadix;
private static final int INT_RADIX_MASK;
public void <init>()
{
org.linkedin.util.codec.Base64Codec v;
char[] v;
v := @this: org.linkedin.util.codec.Base64Codec;
specialinvoke v.<java.lang.Object: void <init>()>();
v = newarray (char)[64];
v[0] = 48;
v[1] = 49;
v[2] = 50;
v[3] = 51;
v[4] = 52;
v[5] = 53;
v[6] = 54;
v[7] = 55;
v[8] = 56;
v[9] = 57;
v[10] = 97;
v[11] = 98;
v[12] = 99;
v[13] = 100;
v[14] = 101;
v[15] = 102;
v[16] = 103;
v[17] = 104;
v[18] = 105;
v[19] = 106;
v[20] = 107;
v[21] = 108;
v[22] = 109;
v[23] = 110;
v[24] = 111;
v[25] = 112;
v[26] = 113;
v[27] = 114;
v[28] = 115;
v[29] = 116;
v[30] = 117;
v[31] = 118;
v[32] = 119;
v[33] = 120;
v[34] = 121;
v[35] = 122;
v[36] = 65;
v[37] = 66;
v[38] = 67;
v[39] = 68;
v[40] = 69;
v[41] = 70;
v[42] = 71;
v[43] = 72;
v[44] = 73;
v[45] = 74;
v[46] = 75;
v[47] = 76;
v[48] = 77;
v[49] = 78;
v[50] = 79;
v[51] = 80;
v[52] = 81;
v[53] = 82;
v[54] = 83;
v[55] = 84;
v[56] = 85;
v[57] = 86;
v[58] = 87;
v[59] = 88;
v[60] = 89;
v[61] = 90;
v[62] = 45;
v[63] = 95;
v.<org.linkedin.util.codec.Base64Codec: char[] _radix> = v;
specialinvoke v.<org.linkedin.util.codec.Base64Codec: void init()>();
return;
}
public void <init>(java.util.Random)
{
org.linkedin.util.codec.Base64Codec v;
char[] v, v;
java.util.Random v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: java.util.Random;
specialinvoke v.<java.lang.Object: void <init>()>();
v = newarray (char)[64];
v[0] = 48;
v[1] = 49;
v[2] = 50;
v[3] = 51;
v[4] = 52;
v[5] = 53;
v[6] = 54;
v[7] = 55;
v[8] = 56;
v[9] = 57;
v[10] = 97;
v[11] = 98;
v[12] = 99;
v[13] = 100;
v[14] = 101;
v[15] = 102;
v[16] = 103;
v[17] = 104;
v[18] = 105;
v[19] = 106;
v[20] = 107;
v[21] = 108;
v[22] = 109;
v[23] = 110;
v[24] = 111;
v[25] = 112;
v[26] = 113;
v[27] = 114;
v[28] = 115;
v[29] = 116;
v[30] = 117;
v[31] = 118;
v[32] = 119;
v[33] = 120;
v[34] = 121;
v[35] = 122;
v[36] = 65;
v[37] = 66;
v[38] = 67;
v[39] = 68;
v[40] = 69;
v[41] = 70;
v[42] = 71;
v[43] = 72;
v[44] = 73;
v[45] = 74;
v[46] = 75;
v[47] = 76;
v[48] = 77;
v[49] = 78;
v[50] = 79;
v[51] = 80;
v[52] = 81;
v[53] = 82;
v[54] = 83;
v[55] = 84;
v[56] = 85;
v[57] = 86;
v[58] = 87;
v[59] = 88;
v[60] = 89;
v[61] = 90;
v[62] = 45;
v[63] = 95;
v.<org.linkedin.util.codec.Base64Codec: char[] _radix> = v;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
staticinvoke <org.linkedin.util.codec.Base64Codec: char[] shuffle(char[],java.util.Random)>(v, v);
specialinvoke v.<org.linkedin.util.codec.Base64Codec: void init()>();
return;
}
public void <init>(java.lang.String)
{
org.linkedin.util.codec.Base64Codec v;
java.util.Random v;
java.lang.String v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: java.lang.String;
v = staticinvoke <org.linkedin.util.codec.CodecUtils: java.util.Random createRandom(java.lang.String)>(v);
specialinvoke v.<org.linkedin.util.codec.Base64Codec: void <init>(java.util.Random)>(v);
return;
}
private void init()
{
org.linkedin.util.codec.Base64Codec v;
int[] v, v, v, v, v, v;
int v, v, v, v, v, v;
char v;
char[] v, v;
v := @this: org.linkedin.util.codec.Base64Codec;
v = newarray (int)[128];
v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix> = v;
v = 0;
label:
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = lengthof v;
if v >= v goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = (int) -1;
v[v] = v;
v = v + 1;
goto label;
label:
v = 0;
label:
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = lengthof v;
if v >= v goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v[45];
v[46] = v;
return;
}
public java.lang.String encode(byte[])
{
byte[] v;
byte v, v, v, v, v, v;
short v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
char[] v, v, v, v, v, v, v, v, v, v;
org.linkedin.util.codec.Base64Codec v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v, v, v, v, v, v, v, v, v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: byte[];
v = lengthof v;
v = v * 8;
v = v / 6;
v = v % 4;
if v == 0 goto label;
v = v + 1;
label:
v = newarray (char)[v];
v = 0;
v = lengthof v;
v = v - 1;
label:
v = lengthof v;
v = v - 3;
if v > v goto label;
v = v + 1;
v = v[v];
v = v & 255;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v & 63;
v = v[v];
v[v] = v;
v = v >>> 6;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 2;
v = v & 60;
v = v | v;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
v = v >>> 4;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 4;
v = v & 48;
v = v | v;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
v = v >>> 2;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
goto label;
label:
v = lengthof v;
v = v - 2;
if v != v goto label;
v = v + 1;
v = v[v];
v = v & 255;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v & 63;
v = v[v];
v[v] = v;
v = v >>> 6;
v = v[v];
v = v & 255;
v = v << 2;
v = v & 60;
v = v | v;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
v = v >>> 4;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
return v;
label:
v = lengthof v;
v = v - 1;
if v != v goto label;
v = v[v];
v = v & 255;
v = v - 1;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v & 63;
v = v[v];
v[v] = v;
v = v >>> 6;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v[v];
v[v] = v;
label:
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
return v;
}
public byte[] decode(java.lang.String) throws org.linkedin.util.codec.Codec$CannotDecodeException
{
byte[] v, v;
byte v;
java.lang.Exception v;
org.linkedin.util.codec.Codec$CannotDecodeException v;
java.lang.String v;
char[] v;
int[] v, v, v, v, v, v, v, v, v, v;
boolean v;
org.linkedin.util.codec.Base64Codec v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v, v, v, v, v, v, v, v, v, v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = lengthof v;
v = v - 0;
v = v * 6;
v = v / 8;
v = 0;
v = v % 3;
if v == 0 goto label;
v = v + 1;
v = 1;
label:
v = newarray (byte)[v];
v = 0;
v = lengthof v;
v = v - 1;
label:
if v < 3 goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v << 6;
v = v & 192;
v = v | v;
v = v + 1;
v[v] = v;
v = v >>> 2;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v << 4;
v = v & 240;
v = v | v;
v = v + 1;
v[v] = v;
v = v >>> 4;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v << 2;
v = v & 252;
v = v | v;
v = v + 1;
v[v] = v;
goto label;
label:
if v != 2 goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v << 6;
v = v & 192;
v = v | v;
v = v + 1;
v[v] = v;
v = v >>> 2;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v[v];
v = v[v];
v = v << 4;
v = v & 240;
v = v | v;
v[v] = v;
goto label;
label:
if v != 1 goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v - 1;
v = v[v];
v = v[v];
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v[v];
v = v[v];
v = v << 6;
v = v & 192;
v = v | v;
v = v + 1;
v[v] = v;
v = v >>> 2;
v[v] = v;
goto label;
label:
if v != 0 goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v[v];
v = v[v];
v[v] = v;
label:
if v == 0 goto label;
v = v - 1;
v = v[v];
if v != 0 goto label;
v = v - 1;
v = newarray (byte)[v];
v = v - 1;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.linkedin.util.codec.Codec$CannotDecodeException;
specialinvoke v.<org.linkedin.util.codec.Codec$CannotDecodeException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
}
public static char[] shuffle(char[], java.util.Random)
{
int v, v, v;
char[] v;
char v, v;
java.util.Random v;
v := @parameter: char[];
v := @parameter: java.util.Random;
v = lengthof v;
v = v - 1;
label:
if v <= 2 goto label;
v = virtualinvoke v.<java.util.Random: int nextInt(int)>(v);
v = v[v];
v = v[v];
v[v] = v;
v[v] = v;
v = v - 1;
goto label;
label:
return v;
}
public java.lang.String encode(long, int)
{
org.linkedin.util.codec.Base64Codec v;
char v;
long v;
byte v;
int v, v, v, v, v, v;
char[] v, v;
java.lang.String v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: long;
v := @parameter: int;
v = v + 5;
v = v / 6;
v = newarray (char)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v.<org.linkedin.util.codec.Base64Codec: char[] _radix>;
v = v & 63;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
return v;
}
public long decode(java.lang.String, int)
{
org.linkedin.util.codec.Base64Codec v;
char v;
long v;
int[] v, v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: java.lang.String;
v := @parameter: int;
if v <= 64 goto label;
v = 64;
label:
v = v + 5;
v = v / 6;
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
label:
v = 0L;
v = v - 1;
label:
if 0 > v goto label;
v = v << 6;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if 0 > v goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = lengthof v;
if v >= v goto label;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v[v];
goto label;
label:
v = (int) -1;
v = v;
label:
v = (int) -1;
if v == v goto label;
v = v | v;
label:
v = v - 1;
goto label;
label:
return v;
}
public byte decode(char)
{
org.linkedin.util.codec.Base64Codec v;
int[] v;
int v;
char v, v;
v := @this: org.linkedin.util.codec.Base64Codec;
v := @parameter: char;
v = v.<org.linkedin.util.codec.Base64Codec: int[] _reverseRadix>;
v = v & 127;
v = v[v];
return v;
}
static void <clinit>()
{
org.linkedin.util.codec.Base64Codec v;
v = new org.linkedin.util.codec.Base64Codec;
specialinvoke v.<org.linkedin.util.codec.Base64Codec: void <init>()>();
<org.linkedin.util.codec.Base64Codec: org.linkedin.util.codec.Base64Codec INSTANCE> = v;
return;
}
}