public class org.apache.dubbo.common.io.Bytes extends java.lang.Object
{
private static final java.lang.String C64;
private static final char[] BASE16;
private static final char[] BASE64;
private static final int MASK4;
private static final int MASK6;
private static final int MASK8;
private static final java.util.Map DECODE_TABLE_MAP;
private static java.lang.ThreadLocal MD;
private void <init>()
{
org.apache.dubbo.common.io.Bytes v;
v := @this: org.apache.dubbo.common.io.Bytes;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static byte[] copyOf(byte[], int)
{
byte[] v, v;
int v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = newarray (byte)[v];
v = lengthof v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
return v;
}
public static byte[] short2bytes(short)
{
byte[] v;
short v;
v := @parameter: short;
v = newarray (byte)[2];
v[0] = 0;
v[1] = 0;
staticinvoke <org.apache.dubbo.common.io.Bytes: void short2bytes(short,byte[])>(v, v);
return v;
}
public static void short2bytes(short, byte[])
{
byte[] v;
short v;
v := @parameter: short;
v := @parameter: byte[];
staticinvoke <org.apache.dubbo.common.io.Bytes: void short2bytes(short,byte[],int)>(v, v, 0);
return;
}
public static void short2bytes(short, byte[], int)
{
byte[] v;
short v;
int v, v, v, v;
v := @parameter: short;
v := @parameter: byte[];
v := @parameter: int;
v = v + 1;
v[v] = v;
v = v + 0;
v = v >>> 8;
v[v] = v;
return;
}
public static byte[] int2bytes(int)
{
int v;
byte[] v;
v := @parameter: int;
v = newarray (byte)[4];
v[0] = 0;
v[1] = 0;
v[2] = 0;
v[3] = 0;
staticinvoke <org.apache.dubbo.common.io.Bytes: void int2bytes(int,byte[])>(v, v);
return v;
}
public static void int2bytes(int, byte[])
{
int v;
byte[] v;
v := @parameter: int;
v := @parameter: byte[];
staticinvoke <org.apache.dubbo.common.io.Bytes: void int2bytes(int,byte[],int)>(v, v, 0);
return;
}
public static void int2bytes(int, byte[], int)
{
byte[] v;
int v, v, v, v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v = v + 3;
v[v] = v;
v = v + 2;
v = v >>> 8;
v[v] = v;
v = v + 1;
v = v >>> 16;
v[v] = v;
v = v + 0;
v = v >>> 24;
v[v] = v;
return;
}
public static byte[] float2bytes(float)
{
byte[] v;
float v;
v := @parameter: float;
v = newarray (byte)[4];
v[0] = 0;
v[1] = 0;
v[2] = 0;
v[3] = 0;
staticinvoke <org.apache.dubbo.common.io.Bytes: void float2bytes(float,byte[])>(v, v);
return v;
}
public static void float2bytes(float, byte[])
{
byte[] v;
float v;
v := @parameter: float;
v := @parameter: byte[];
staticinvoke <org.apache.dubbo.common.io.Bytes: void float2bytes(float,byte[],int)>(v, v, 0);
return;
}
public static void float2bytes(float, byte[], int)
{
byte[] v;
int v, v, v, v, v, v, v, v, v;
float v;
v := @parameter: float;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <java.lang.Float: int floatToIntBits(float)>(v);
v = v + 3;
v[v] = v;
v = v + 2;
v = v >>> 8;
v[v] = v;
v = v + 1;
v = v >>> 16;
v[v] = v;
v = v + 0;
v = v >>> 24;
v[v] = v;
return;
}
public static byte[] long2bytes(long)
{
byte[] v;
long v;
v := @parameter: long;
v = newarray (byte)[8];
v[0] = 0;
v[1] = 0;
v[2] = 0;
v[3] = 0;
v[4] = 0;
v[5] = 0;
v[6] = 0;
v[7] = 0;
staticinvoke <org.apache.dubbo.common.io.Bytes: void long2bytes(long,byte[])>(v, v);
return v;
}
public static void long2bytes(long, byte[])
{
byte[] v;
long v;
v := @parameter: long;
v := @parameter: byte[];
staticinvoke <org.apache.dubbo.common.io.Bytes: void long2bytes(long,byte[],int)>(v, v, 0);
return;
}
public static void long2bytes(long, byte[], int)
{
byte[] v;
long v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: long;
v := @parameter: byte[];
v := @parameter: int;
v = v + 7;
v[v] = v;
v = v + 6;
v[v] = v;
v = v + 5;
v[v] = v;
v = v + 4;
v[v] = v;
v = v + 3;
v[v] = v;
v = v + 2;
v[v] = v;
v = v + 1;
v[v] = v;
v = v + 0;
v[v] = v;
return;
}
public static byte[] double2bytes(double)
{
byte[] v;
double v;
v := @parameter: double;
v = newarray (byte)[8];
v[0] = 0;
v[1] = 0;
v[2] = 0;
v[3] = 0;
v[4] = 0;
v[5] = 0;
v[6] = 0;
v[7] = 0;
staticinvoke <org.apache.dubbo.common.io.Bytes: void double2bytes(double,byte[])>(v, v);
return v;
}
public static void double2bytes(double, byte[])
{
byte[] v;
double v;
v := @parameter: double;
v := @parameter: byte[];
staticinvoke <org.apache.dubbo.common.io.Bytes: void double2bytes(double,byte[],int)>(v, v, 0);
return;
}
public static void double2bytes(double, byte[], int)
{
byte[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double v;
v := @parameter: double;
v := @parameter: byte[];
v := @parameter: int;
staticinvoke <java.lang.Double: long doubleToLongBits(double)>(v);
v = v + 7;
v[v] = v;
v = v + 6;
v[v] = v;
v = v + 5;
v[v] = v;
v = v + 4;
v[v] = v;
v = v + 3;
v[v] = v;
v = v + 2;
v[v] = v;
v = v + 1;
v[v] = v;
v = v + 0;
v[v] = v;
return;
}
public static short bytes2short(byte[])
{
byte[] v;
short v;
v := @parameter: byte[];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: short bytes2short(byte[],int)>(v, 0);
return v;
}
public static short bytes2short(byte[], int)
{
byte[] v;
short v;
byte v, v;
int v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 0;
v = v + 0;
v = v[v];
v = v << 8;
v = v + v;
return v;
}
public static int bytes2int(byte[])
{
int v;
byte[] v;
v := @parameter: byte[];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int bytes2int(byte[],int)>(v, 0);
return v;
}
public static int bytes2int(byte[], int)
{
byte[] v;
short v, v, v;
byte v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = v + 3;
v = v[v];
v = v & 255;
v = v << 0;
v = v + 2;
v = v[v];
v = v & 255;
v = v << 8;
v = v + v;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 16;
v = v + v;
v = v + 0;
v = v[v];
v = v << 24;
v = v + v;
return v;
}
public static float bytes2float(byte[])
{
byte[] v;
float v;
v := @parameter: byte[];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: float bytes2float(byte[],int)>(v, 0);
return v;
}
public static float bytes2float(byte[], int)
{
byte[] v;
short v, v, v;
byte v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
float v;
v := @parameter: byte[];
v := @parameter: int;
v = v + 3;
v = v[v];
v = v & 255;
v = v << 0;
v = v + 2;
v = v[v];
v = v & 255;
v = v << 8;
v = v + v;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 16;
v = v + v;
v = v + 0;
v = v[v];
v = v << 24;
v = v + v;
v = staticinvoke <java.lang.Float: float intBitsToFloat(int)>(v);
return v;
}
public static long bytes2long(byte[])
{
byte[] v;
long v;
v := @parameter: byte[];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: long bytes2long(byte[],int)>(v, 0);
return v;
}
public static long bytes2long(byte[], int)
{
byte[] v;
byte v, v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = v + 7;
v = v[v];
v = v & 255L;
v = v << 0;
v = v + 6;
v = v[v];
v = v & 255L;
v = v << 8;
v = v + v;
v = v + 5;
v = v[v];
v = v & 255L;
v = v << 16;
v = v + v;
v = v + 4;
v = v[v];
v = v & 255L;
v = v << 24;
v = v + v;
v = v + 3;
v = v[v];
v = v & 255L;
v = v << 32;
v = v + v;
v = v + 2;
v = v[v];
v = v & 255L;
v = v << 40;
v = v + v;
v = v + 1;
v = v[v];
v = v & 255L;
v = v << 48;
v = v + v;
v = v + 0;
v = v[v];
v = v << 56;
v = v + v;
return v;
}
public static double bytes2double(byte[])
{
byte[] v;
double v;
v := @parameter: byte[];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: double bytes2double(byte[],int)>(v, 0);
return v;
}
public static double bytes2double(byte[], int)
{
byte[] v;
byte v, v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v;
double v;
v := @parameter: byte[];
v := @parameter: int;
v = v + 7;
v = v[v];
v = v & 255L;
v = v << 0;
v = v + 6;
v = v[v];
v = v & 255L;
v = v << 8;
v = v + v;
v = v + 5;
v = v[v];
v = v & 255L;
v = v << 16;
v = v + v;
v = v + 4;
v = v[v];
v = v & 255L;
v = v << 24;
v = v + v;
v = v + 3;
v = v[v];
v = v & 255L;
v = v << 32;
v = v + v;
v = v + 2;
v = v[v];
v = v & 255L;
v = v << 40;
v = v + v;
v = v + 1;
v = v[v];
v = v & 255L;
v = v << 48;
v = v + v;
v = v + 0;
v = v[v];
v = v << 56;
v = v + v;
v = staticinvoke <java.lang.Double: double longBitsToDouble(long)>(v);
return v;
}
public static java.lang.String bytes2hex(byte[])
{
int v;
byte[] v;
java.lang.String v;
v := @parameter: byte[];
v = lengthof v;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.lang.String bytes2hex(byte[],int,int)>(v, 0, v);
return v;
}
public static java.lang.String bytes2hex(byte[], int, int)
{
byte[] v;
java.lang.IndexOutOfBoundsException v, v, v;
byte v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
char v, v;
char[] v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("bytes2hex: offset < 0, offset is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("bytes2hex: length < 0, length is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + v;
v = lengthof v;
if v <= v goto label;
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>("bytes2hex: offset + length > array length.");
throw v;
label:
v = v;
v = 0;
v = v * 2;
v = newarray (char)[v];
v = 0;
label:
if v >= v goto label;
v = v;
v = v + 1;
v = v[v];
v = v + 1;
v = <org.apache.dubbo.common.io.Bytes: char[] BASE16>;
v = v >> 4;
v = v & 15;
v = v[v];
v[v] = v;
v = v + 1;
v = <org.apache.dubbo.common.io.Bytes: char[] BASE16>;
v = v & 15;
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 static byte[] hex2bytes(java.lang.String)
{
int v;
byte[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] hex2bytes(java.lang.String,int,int)>(v, 0, v);
return v;
}
public static byte[] hex2bytes(java.lang.String, int, int)
{
byte[] v;
java.lang.IndexOutOfBoundsException v, v, v;
byte v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
char v, v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v = v & 1;
if v != 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("hex2bytes: ( len & 1 ) == 1.");
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("hex2bytes: offset < 0, offset is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("hex2bytes: length < 0, length is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + v;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= v goto label;
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>("hex2bytes: offset + length > array length.");
throw v;
label:
v = v / 2;
v = v;
v = 0;
v = newarray (byte)[v];
v = 0;
label:
if v >= v goto label;
v = v;
v = v + 1;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte hex(char)>(v);
v = v << 4;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte hex(char)>(v);
v = v | v;
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public static java.lang.String bytes2base64(byte[])
{
byte[] v;
int v;
char[] v;
java.lang.String v;
v := @parameter: byte[];
v = lengthof v;
v = <org.apache.dubbo.common.io.Bytes: char[] BASE64>;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.lang.String bytes2base64(byte[],int,int,char[])>(v, 0, v, v);
return v;
}
public static java.lang.String bytes2base64(byte[], int, int)
{
byte[] v;
int v, v;
char[] v;
java.lang.String v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = <org.apache.dubbo.common.io.Bytes: char[] BASE64>;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.lang.String bytes2base64(byte[],int,int,char[])>(v, v, v, v);
return v;
}
public static java.lang.String bytes2base64(byte[], java.lang.String)
{
byte[] v;
int v;
java.lang.String v, v;
v := @parameter: byte[];
v := @parameter: java.lang.String;
v = lengthof v;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.lang.String bytes2base64(byte[],int,int,java.lang.String)>(v, 0, v, v);
return v;
}
public static java.lang.String bytes2base64(byte[], int, int, java.lang.String)
{
byte[] v;
java.lang.IllegalArgumentException v;
int v, v, v;
char[] v;
java.lang.String v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= 64 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Base code length < 64.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.lang.String bytes2base64(byte[],int,int,char[])>(v, v, v, v);
return v;
}
public static java.lang.String bytes2base64(byte[], char[])
{
byte[] v;
int v;
char[] v;
java.lang.String v;
v := @parameter: byte[];
v := @parameter: char[];
v = lengthof v;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.lang.String bytes2base64(byte[],int,int,char[])>(v, 0, v, v);
return v;
}
public static java.lang.String bytes2base64(byte[], int, int, char[])
{
byte[] v;
java.lang.IndexOutOfBoundsException v, v, v;
byte v, v, v, v, v, v;
short v, v, v, v, v, v, v;
java.lang.String v, v, v;
char[] v, v;
boolean v, 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;
char v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: char[];
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("bytes2base64: offset < 0, offset is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("bytes2base64: length < 0, length is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + v;
v = lengthof v;
if v <= v goto label;
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>("bytes2base64: offset + length > array length.");
throw v;
label:
v = lengthof v;
if v >= 64 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Base code length < 64.");
throw v;
label:
v = lengthof v;
if v <= 64 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v / 3;
v = v % 3;
v = v;
v = 0;
v = v * 4;
if v != 0 goto label;
v = 0;
goto label;
label:
if v == 0 goto label;
v = 4;
goto label;
label:
v = v + 1;
label:
v = v + v;
v = newarray (char)[v];
v = 0;
label:
if v >= v goto label;
v = v + 1;
v = v[v];
v = v & 255;
v = v + 1;
v = v[v];
v = v & 255;
v = v + 1;
v = v[v];
v = v & 255;
v = v + 1;
v = v >> 2;
v = v[v];
v[v] = v;
v = v + 1;
v = v << 4;
v = v & 63;
v = v >> 4;
v = v | v;
v = v[v];
v[v] = v;
v = v + 1;
v = v << 2;
v = v & 63;
v = v >> 6;
v = v | v;
v = v[v];
v[v] = v;
v = v + 1;
v = v & 63;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
if v != 1 goto label;
v = v[v];
v = v & 255;
v = v + 1;
v = v >> 2;
v = v[v];
v[v] = v;
v = v + 1;
v = v << 4;
v = v & 63;
v = v[v];
v[v] = v;
if v == 0 goto label;
v = v + 1;
v = v[64];
v[v] = v;
v = v[64];
v[v] = v;
goto label;
label:
if v != 2 goto label;
v = v + 1;
v = v[v];
v = v & 255;
v = v[v];
v = v & 255;
v = v + 1;
v = v >> 2;
v = v[v];
v[v] = v;
v = v + 1;
v = v << 4;
v = v & 63;
v = v >> 4;
v = v | v;
v = v[v];
v[v] = v;
v = v + 1;
v = v << 2;
v = v & 63;
v = v[v];
v[v] = v;
if v == 0 goto label;
v = v[64];
v[v] = v;
label:
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
return v;
}
public static byte[] base642bytes(java.lang.String)
{
int v;
byte[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] base642bytes(java.lang.String,int,int)>(v, 0, v);
return v;
}
public static byte[] base642bytes(java.lang.String, int, int)
{
byte[] v;
int v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] base642bytes(java.lang.String,int,int,java.lang.String)>(v, v, v, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/=");
return v;
}
public static byte[] base642bytes(java.lang.String, java.lang.String)
{
byte[] v;
int v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] base642bytes(java.lang.String,int,int,java.lang.String)>(v, 0, v, v);
return v;
}
public static byte[] base642bytes(java.lang.String, int, int, java.lang.String)
{
byte[] v, v, v;
java.lang.IndexOutOfBoundsException v, v, v;
byte v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, 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;
char v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v, v;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("base642bytes: offset < 0, offset is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("base642bytes: length < 0, length is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v != 0 goto label;
v = newarray (byte)[0];
return v;
label:
v = v + v;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= v goto label;
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>("base642bytes: offset + length > string length.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= 64 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Base code length < 64.");
throw v;
label:
v = v % 4;
if v != 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("base642bytes: base string length % 4 == 1.");
throw v;
label:
v = v / 4;
v = v * 3;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 64 goto label;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("base642bytes: base string length error.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(64);
v = v + v;
v = v - 2;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != v goto label;
v = v - 2;
v = v - 1;
v = 2;
goto label;
label:
v = v + v;
v = v - 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != v goto label;
v = v - 1;
v = v - 1;
v = 3;
goto label;
label:
if v != 2 goto label;
v = v + 1;
goto label;
label:
if v != 3 goto label;
v = v + 2;
label:
v = v;
v = 0;
v = newarray (byte)[v];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] decodeTable(java.lang.String)>(v);
v = 0;
label:
if v >= v goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v + 1;
v = v << 2;
v = v >> 4;
v = v | v;
v[v] = v;
v = v + 1;
v = v << 4;
v = v >> 2;
v = v | v;
v[v] = v;
v = v + 1;
v = v << 6;
v = v | v;
v[v] = v;
v = v + 1;
goto label;
label:
if v != 2 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v << 2;
v = v >> 4;
v = v | v;
v[v] = v;
goto label;
label:
if v != 3 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v[v];
v = v + 1;
v = v << 2;
v = v >> 4;
v = v | v;
v[v] = v;
v = v << 4;
v = v >> 2;
v = v | v;
v[v] = v;
label:
return v;
}
public static byte[] base642bytes(java.lang.String, char[])
{
byte[] v;
int v;
char[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: char[];
v = virtualinvoke v.<java.lang.String: int length()>();
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] base642bytes(java.lang.String,int,int,char[])>(v, 0, v, v);
return v;
}
public static byte[] base642bytes(java.lang.String, int, int, char[])
{
byte[] v, v;
java.lang.IndexOutOfBoundsException v, v, v;
java.lang.String v, v, v;
char[] 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;
char v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v, v;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: char[];
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("base642bytes: offset < 0, offset is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IndexOutOfBoundsException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("base642bytes: length < 0, length is \u0001");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
if v != 0 goto label;
v = newarray (byte)[0];
return v;
label:
v = v + v;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= v goto label;
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>("base642bytes: offset + length > string length.");
throw v;
label:
v = lengthof v;
if v >= 64 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Base code length < 64.");
throw v;
label:
v = v % 4;
if v != 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("base642bytes: base string length % 4 == 1.");
throw v;
label:
v = v / 4;
v = v * 3;
v = lengthof v;
if v <= 64 goto label;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("base642bytes: base string length error.");
throw v;
label:
v = v[64];
v = v + v;
v = v - 2;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != v goto label;
v = v - 2;
v = v - 1;
v = 2;
goto label;
label:
v = v + v;
v = v - 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != v goto label;
v = v - 1;
v = v - 1;
v = 3;
goto label;
label:
if v != 2 goto label;
v = v + 1;
goto label;
label:
if v != 3 goto label;
v = v + 2;
label:
v = v;
v = 0;
v = newarray (byte)[v];
v = 0;
label:
if v >= v goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v + 1;
v = v << 2;
v = v >> 4;
v = v | v;
v[v] = v;
v = v + 1;
v = v << 4;
v = v >> 2;
v = v | v;
v[v] = v;
v = v + 1;
v = v << 6;
v = v | v;
v[v] = v;
v = v + 1;
goto label;
label:
if v != 2 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v << 2;
v = v >> 4;
v = v | v;
v[v] = v;
goto label;
label:
if v != 3 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.dubbo.common.io.Bytes: int indexOf(char[],char)>(v, v);
v = v + 1;
v = v << 2;
v = v >> 4;
v = v | v;
v[v] = v;
v = v << 4;
v = v >> 2;
v = v | v;
v[v] = v;
label:
return v;
}
public static byte[] zip(byte[]) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v, v;
java.util.zip.DeflaterOutputStream v;
org.apache.dubbo.common.io.UnsafeByteArrayOutputStream v;
v := @parameter: byte[];
v = new org.apache.dubbo.common.io.UnsafeByteArrayOutputStream;
specialinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void <init>()>();
v = new java.util.zip.DeflaterOutputStream;
specialinvoke v.<java.util.zip.DeflaterOutputStream: void <init>(java.io.OutputStream)>(v);
label:
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
label:
virtualinvoke v.<java.io.OutputStream: void close()>();
virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.io.OutputStream: void close()>();
virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void close()>();
throw v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: byte[] toByteArray()>();
return v;
catch java.lang.Throwable from label to label with label;
}
public static byte[] unzip(byte[]) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v, v;
java.util.zip.InflaterInputStream v;
org.apache.dubbo.common.io.UnsafeByteArrayInputStream v;
org.apache.dubbo.common.io.UnsafeByteArrayOutputStream v;
v := @parameter: byte[];
v = new org.apache.dubbo.common.io.UnsafeByteArrayInputStream;
specialinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayInputStream: void <init>(byte[])>(v);
v = new org.apache.dubbo.common.io.UnsafeByteArrayOutputStream;
specialinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void <init>()>();
v = new java.util.zip.InflaterInputStream;
specialinvoke v.<java.util.zip.InflaterInputStream: void <init>(java.io.InputStream)>(v);
label:
staticinvoke <org.apache.dubbo.common.utils.IOUtils: long write(java.io.InputStream,java.io.OutputStream)>(v, v);
v = virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: byte[] toByteArray()>();
label:
virtualinvoke v.<java.io.InputStream: void close()>();
virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayInputStream: void close()>();
virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void close()>();
return v;
label:
v := @caughtexception;
virtualinvoke v.<java.io.InputStream: void close()>();
virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayInputStream: void close()>();
virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void close()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public static byte[] getMD5(java.lang.String)
{
byte[] v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] getMD5(byte[])>(v);
return v;
}
public static byte[] getMD5(byte[])
{
byte[] v, v;
java.security.MessageDigest v;
v := @parameter: byte[];
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.security.MessageDigest getMessageDigest()>();
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest(byte[])>(v);
return v;
}
public static byte[] getMD5(java.io.File) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.io.FileInputStream v;
java.io.File v;
v := @parameter: java.io.File;
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
label:
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] getMD5(java.io.InputStream)>(v);
label:
virtualinvoke v.<java.io.InputStream: void close()>();
return v;
label:
v := @caughtexception;
virtualinvoke v.<java.io.InputStream: void close()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public static byte[] getMD5(java.io.InputStream) throws java.io.IOException
{
byte[] v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: byte[] getMD5(java.io.InputStream,int)>(v, 8192);
return v;
}
private static byte hex(char)
{
char v;
java.lang.IllegalArgumentException v;
int v, v, v, v, v;
java.lang.String v;
v := @parameter: char;
if v > 57 goto label;
v = v - 48;
return v;
label:
if v < 97 goto label;
if v > 102 goto label;
v = v - 97;
v = v + 10;
return v;
label:
if v < 65 goto label;
if v > 70 goto label;
v = v - 65;
v = v + 10;
return v;
label:
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("hex string format error [\u].");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
private static int indexOf(char[], char)
{
int v, v, v;
char[] v;
char v, v;
v := @parameter: char[];
v := @parameter: char;
v = 0;
v = lengthof v;
label:
if v >= v goto label;
v = v[v];
if v != v goto label;
return v;
label:
v = v + 1;
goto label;
label:
v = (int) -1;
return v;
}
private static byte[] decodeTable(java.lang.String)
{
char v;
java.lang.IllegalArgumentException v;
java.lang.Integer v, v;
java.util.Map v, v;
int v, v, v, v;
java.lang.Object v;
java.lang.String v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
v = <org.apache.dubbo.common.io.Bytes: java.util.Map DECODE_TABLE_MAP>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= 64 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Base code length < 64.");
throw v;
label:
v = newarray (byte)[128];
v = 0;
label:
if v >= 128 goto label;
v[v] = -1;
v = v + 1;
goto label;
label:
v = 0;
label:
if v >= 64 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
v = <org.apache.dubbo.common.io.Bytes: java.util.Map DECODE_TABLE_MAP>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
}
private static byte[] getMD5(java.io.InputStream, int) throws java.io.IOException
{
byte[] v, v;
java.security.MessageDigest v;
int v, v, v, v, v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v := @parameter: int;
v = staticinvoke <org.apache.dubbo.common.io.Bytes: java.security.MessageDigest getMessageDigest()>();
v = newarray (byte)[v];
label:
v = virtualinvoke v.<java.io.InputStream: int available()>();
if v <= 0 goto label;
v = 0;
label:
v = v - v;
v = virtualinvoke v.<java.io.InputStream: int read(byte[],int,int)>(v, v, v);
if v <= 0 goto label;
v = v + v;
if v < v goto label;
label:
virtualinvoke v.<java.security.MessageDigest: void update(byte[])>(v);
goto label;
label:
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest()>();
return v;
}
private static java.security.MessageDigest getMessageDigest()
{
java.lang.ThreadLocal v, v;
java.security.NoSuchAlgorithmException v;
java.lang.Object v;
java.lang.RuntimeException v;
v = <org.apache.dubbo.common.io.Bytes: java.lang.ThreadLocal MD>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v != null goto label;
label:
v = staticinvoke <java.security.MessageDigest: java.security.MessageDigest getInstance(java.lang.String)>("MD5");
v = <org.apache.dubbo.common.io.Bytes: java.lang.ThreadLocal MD>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return v;
catch java.security.NoSuchAlgorithmException from label to label with label;
}
static void <clinit>()
{
java.lang.ThreadLocal v;
java.util.concurrent.ConcurrentHashMap v;
char[] v, v;
java.lang.String v;
v = newarray (char)[16];
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;
<org.apache.dubbo.common.io.Bytes: char[] BASE16> = v;
v = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/=";
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
<org.apache.dubbo.common.io.Bytes: char[] BASE64> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<org.apache.dubbo.common.io.Bytes: java.util.Map DECODE_TABLE_MAP> = v;
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
<org.apache.dubbo.common.io.Bytes: java.lang.ThreadLocal MD> = v;
return;
}
}