package jp.adlantis.android.utils;
public class Base64Coder
{
private static char[] map1;
private static byte[] map2;
private static final String systemLineSeparator;
static
{
int i = 0;
systemLineSeparator = System.getProperty("line.separator");
map1 = new char[64];
int j = 65;
int i5;
for (int k = 0; j <= 90; k = i5)
{
char[] arrayOfChar5 = map1;
i5 = k + 1;
arrayOfChar5[k] = j;
j = (char)(j + 1);
}
int m = 97;
while (m <= 122)
{
char[] arrayOfChar4 = map1;
int i4 = k + 1;
arrayOfChar4[k] = m;
m = (char)(m + 1);
k = i4;
}
int n = 48;
while (n <= 57)
{
char[] arrayOfChar3 = map1;
int i3 = k + 1;
arrayOfChar3[k] = n;
n = (char)(n + 1);
k = i3;
}
char[] arrayOfChar1 = map1;
int i1 = k + 1;
arrayOfChar1[k] = '+';
char[] arrayOfChar2 = map1;
(i1 + 1);
arrayOfChar2[i1] = '/';
map2 = new byte[''];
for (int i2 = 0; i2 < map2.length; i2++) {
map2[i2] = -1;
}
while (i < 64)
{
map2[map1[i]] = ((byte)i);
i++;
}
}
public static byte[] decode(String paramString)
{
return decode(paramString.toCharArray());
}
public static byte[] decode(char[] paramArrayOfChar)
{
return decode(paramArrayOfChar, 0, paramArrayOfChar.length);
}
public static byte[] decode(char[] paramArrayOfChar, int paramInt1, int paramInt2)
{
if (paramInt2 % 4 != 0) {
throw new IllegalArgumentException("Length of Base64 encoded input string is not a multiple of 4.");
}
while ((paramInt2 > 0) && (paramArrayOfChar[(-1 + (paramInt1 + paramInt2))] == '=')) {
paramInt2--;
}
int i = paramInt2 * 3 / 4;
byte[] arrayOfByte = new byte[i];
int j = paramInt1 + paramInt2;
int k = 0;
int i4;
label177:
label188:
int i12;
int i13;
int i14;
if (paramInt1 < j)
{
int m = paramInt1 + 1;
int n = paramArrayOfChar[paramInt1];
int i1 = m + 1;
int i2 = paramArrayOfChar[m];
int i3;
int i5;
if (i1 < j)
{
int i17 = i1 + 1;
i3 = paramArrayOfChar[i1];
i1 = i17;
if (i1 >= j) {
break label177;
}
int i16 = i1 + 1;
i5 = paramArrayOfChar[i1];
i4 = i16;
}
for (;;)
{
if ((n <= 127) && (i2 <= 127) && (i3 <= 127) && (i5 <= 127)) {
break label188;
}
throw new IllegalArgumentException("Illegal character in Base64 encoded data.");
i3 = 65;
break;
i4 = i1;
i5 = 65;
}
int i6 = map2[n];
int i7 = map2[i2];
int i8 = map2[i3];
int i9 = map2[i5];
if ((i6 < 0) || (i7 < 0) || (i8 < 0) || (i9 < 0)) {
throw new IllegalArgumentException("Illegal character in Base64 encoded data.");
}
int i10 = i6 << 2 | i7 >>> 4;
int i11 = (i7 & 0xF) << 4 | i8 >>> 2;
i12 = i9 | (i8 & 0x3) << 6;
i13 = k + 1;
arrayOfByte[k] = ((byte)i10);
if (i13 >= i) {
break label361;
}
i14 = i13 + 1;
arrayOfByte[i13] = ((byte)i11);
}
for (;;)
{
int i15;
if (i14 < i)
{
i15 = i14 + 1;
arrayOfByte[i14] = ((byte)i12);
}
for (;;)
{
k = i15;
paramInt1 = i4;
break;
return arrayOfByte;
i15 = i14;
}
label361:
i14 = i13;
}
}
public static byte[] decodeLines(String paramString)
{
char[] arrayOfChar = new char[paramString.length()];
int i = 0;
int j = 0;
while (i < paramString.length())
{
int k = paramString.charAt(i);
if ((k != 32) && (k != 13) && (k != 10) && (k != 9))
{
int m = j + 1;
arrayOfChar[j] = k;
j = m;
}
i++;
}
return decode(arrayOfChar, 0, j);
}
public static String decodeString(String paramString)
{
return new String(decode(paramString));
}
public static char[] encode(byte[] paramArrayOfByte)
{
return encode(paramArrayOfByte, 0, paramArrayOfByte.length);
}
public static char[] encode(byte[] paramArrayOfByte, int paramInt)
{
return encode(paramArrayOfByte, 0, paramInt);
}
public static char[] encode(byte[] paramArrayOfByte, int paramInt1, int paramInt2)
{
int i = (2 + paramInt2 * 4) / 3;
char[] arrayOfChar = new char[4 * ((paramInt2 + 2) / 3)];
int j = paramInt1 + paramInt2;
int k = 0;
if (paramInt1 < j)
{
int m = paramInt1 + 1;
int n = 0xFF & paramArrayOfByte[paramInt1];
int i1;
label74:
int i2;
int i3;
label97:
int i7;
int i10;
label186:
int i11;
if (m < j)
{
int i13 = m + 1;
i1 = 0xFF & paramArrayOfByte[m];
m = i13;
if (m >= j) {
break label238;
}
i2 = m + 1;
i3 = 0xFF & paramArrayOfByte[m];
int i4 = n >>> 2;
int i5 = (n & 0x3) << 4 | i1 >>> 4;
int i6 = (i1 & 0xF) << 2 | i3 >>> 6;
i7 = i3 & 0x3F;
int i8 = k + 1;
arrayOfChar[k] = map1[i4];
int i9 = i8 + 1;
arrayOfChar[i8] = map1[i5];
if (i9 >= i) {
break label248;
}
i10 = map1[i6];
arrayOfChar[i9] = i10;
i11 = i9 + 1;
if (i11 >= i) {
break label255;
}
}
label238:
label248:
label255:
for (int i12 = map1[i7];; i12 = 61)
{
arrayOfChar[i11] = i12;
k = i11 + 1;
paramInt1 = i2;
break;
i1 = 0;
break label74;
i2 = m;
i3 = 0;
break label97;
i10 = 61;
break label186;
}
}
return arrayOfChar;
}
public static String encodeLines(byte[] paramArrayOfByte)
{
return encodeLines(paramArrayOfByte, 0, paramArrayOfByte.length, 76, systemLineSeparator);
}
public static String encodeLines(byte[] paramArrayOfByte, int paramInt1, int paramInt2, int paramInt3, String paramString)
{
int i = paramInt3 * 3 / 4;
if (i <= 0) {
throw new IllegalArgumentException();
}
int j = (-1 + (paramInt2 + i)) / i;
StringBuilder localStringBuilder = new StringBuilder(4 * ((paramInt2 + 2) / 3) + j * paramString.length());
int k = 0;
while (k < paramInt2)
{
int m = Math.min(paramInt2 - k, i);
localStringBuilder.append(encode(paramArrayOfByte, paramInt1 + k, m));
localStringBuilder.append(paramString);
k += m;
}
return localStringBuilder.toString();
}
public static String encodeString(String paramString)
{
return new String(encode(paramString.getBytes()));
}
}
/* Location: F:\neembuu\Research\android_apps\output_jar.jar
* Qualified Name: jp.adlantis.android.utils.Base64Coder
* JD-Core Version: 0.7.0.1
*/