final class com.google.common.collect.TreeMultiset$AvlNode extends java.lang.Object
{
private final java.lang.Object elem;
private int elemCount;
private int distinctElements;
private long totalCount;
private int height;
private com.google.common.collect.TreeMultiset$AvlNode left;
private com.google.common.collect.TreeMultiset$AvlNode right;
private com.google.common.collect.TreeMultiset$AvlNode pred;
private com.google.common.collect.TreeMultiset$AvlNode succ;
void <init>(java.lang.Object, int)
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v;
java.lang.Object v;
boolean v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.lang.Object;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object elem> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int height> = 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = null;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = null;
return;
}
void <init>()
{
com.google.common.collect.TreeMultiset$AvlNode v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object elem> = null;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = 1;
return;
}
private com.google.common.collect.TreeMultiset$AvlNode pred()
{
com.google.common.collect.TreeMultiset$AvlNode v, v;
java.lang.Object v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode pred>;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode succ()
{
com.google.common.collect.TreeMultiset$AvlNode v, v;
java.lang.Object v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode succ>;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
return v;
}
int count(java.util.Comparator, java.lang.Object)
{
int v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v;
java.lang.Object v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v = 0;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: int count(java.util.Comparator,java.lang.Object)>(v, v);
label:
return v;
label:
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v = 0;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: int count(java.util.Comparator,java.lang.Object)>(v, v);
label:
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode addRightChild(java.lang.Object, int)
{
long v, v;
int v, v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v;
java.lang.Object v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = new com.google.common.collect.TreeMultiset$AvlNode;
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void <init>(java.lang.Object,int)>(v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode succ()>();
staticinvoke <com.google.common.collect.TreeMultiset: void successor(com.google.common.collect.TreeMultiset$AvlNode,com.google.common.collect.TreeMultiset$AvlNode,com.google.common.collect.TreeMultiset$AvlNode)>(v, v, v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
v = staticinvoke <java.lang.Math: int max(int,int)>(2, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: int height> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode addLeftChild(java.lang.Object, int)
{
long v, v;
int v, v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v;
java.lang.Object v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = new com.google.common.collect.TreeMultiset$AvlNode;
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void <init>(java.lang.Object,int)>(v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode pred()>();
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
staticinvoke <com.google.common.collect.TreeMultiset: void successor(com.google.common.collect.TreeMultiset$AvlNode,com.google.common.collect.TreeMultiset$AvlNode,com.google.common.collect.TreeMultiset$AvlNode)>(v, v, v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
v = staticinvoke <java.lang.Math: int max(int,int)>(2, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: int height> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
return v;
}
com.google.common.collect.TreeMultiset$AvlNode add(java.util.Comparator, java.lang.Object, int, int[])
{
byte v;
int[] v;
boolean v;
long v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v := @parameter: int;
v := @parameter: int[];
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v[0] = 0;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode addLeftChild(java.lang.Object,int)>(v, v);
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode add(java.util.Comparator,java.lang.Object,int,int[])>(v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v[0];
if v != 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
if v != v goto label;
v = v;
goto label;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
label:
return v;
label:
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v[0] = 0;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode addRightChild(java.lang.Object,int)>(v, v);
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode add(java.util.Comparator,java.lang.Object,int,int[])>(v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v[0];
if v != 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
if v != v goto label;
v = v;
goto label;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
label:
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v[0] = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v + v;
v = v cmp 2147483647L;
if v > 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
return v;
}
com.google.common.collect.TreeMultiset$AvlNode remove(java.util.Comparator, java.lang.Object, int, int[])
{
int[] v;
long v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v, v;
java.lang.Object v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v := @parameter: int;
v := @parameter: int[];
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v[0] = 0;
return v;
label:
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode remove(java.util.Comparator,java.lang.Object,int,int[])>(v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v[0];
if v <= 0 goto label;
v = v[0];
if v < v goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v[0];
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
label:
v = v[0];
if v != 0 goto label;
v = v;
goto label;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
label:
return v;
label:
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v[0] = 0;
return v;
label:
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode remove(java.util.Comparator,java.lang.Object,int,int[])>(v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v[0];
if v <= 0 goto label;
v = v[0];
if v < v goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v[0];
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v[0] = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
if v < v goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode deleteMe()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
return v;
}
com.google.common.collect.TreeMultiset$AvlNode setCount(java.util.Comparator, java.lang.Object, int, int[])
{
int[] v;
long v, v, 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;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v := @parameter: int;
v := @parameter: int[];
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v[0] = 0;
if v <= 0 goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode addLeftChild(java.lang.Object,int)>(v, v);
goto label;
label:
v = v;
label:
return v;
label:
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode setCount(java.util.Comparator,java.lang.Object,int,int[])>(v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
if v != 0 goto label;
v = v[0];
if v == 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
goto label;
label:
if v <= 0 goto label;
v = v[0];
if v != 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v[0];
v = v - v;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
label:
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v[0] = 0;
if v <= 0 goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode addRightChild(java.lang.Object,int)>(v, v);
goto label;
label:
v = v;
label:
return v;
label:
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode setCount(java.util.Comparator,java.lang.Object,int,int[])>(v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
if v != 0 goto label;
v = v[0];
if v == 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
goto label;
label:
if v <= 0 goto label;
v = v[0];
if v != 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v[0];
v = v - v;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v[0] = v;
if v != 0 goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode deleteMe()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v - v;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = v;
return v;
}
com.google.common.collect.TreeMultiset$AvlNode setCount(java.util.Comparator, java.lang.Object, int, int, int[])
{
int[] v;
long v, v, 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;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int[];
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v[0] = 0;
if v != 0 goto label;
if v <= 0 goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode addLeftChild(java.lang.Object,int)>(v, v);
return v;
label:
return v;
label:
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode setCount(java.util.Comparator,java.lang.Object,int,int,int[])>(v, v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v[0];
if v != v goto label;
if v != 0 goto label;
v = v[0];
if v == 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
goto label;
label:
if v <= 0 goto label;
v = v[0];
if v != 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v[0];
v = v - v;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
label:
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v[0] = 0;
if v != 0 goto label;
if v <= 0 goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode addRightChild(java.lang.Object,int)>(v, v);
return v;
label:
return v;
label:
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode setCount(java.util.Comparator,java.lang.Object,int,int,int[])>(v, v, v, v, v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v[0];
if v != v goto label;
if v != 0 goto label;
v = v[0];
if v == 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
goto label;
label:
if v <= 0 goto label;
v = v[0];
if v != 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v + 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v[0];
v = v - v;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v[0] = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
if v != v goto label;
if v != 0 goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode deleteMe()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v - v;
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = v;
label:
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode deleteMe()
{
long v, v, v, v;
int v, v, v, v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount> = 0;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode pred()>();
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode succ()>();
staticinvoke <com.google.common.collect.TreeMultiset: void successor(com.google.common.collect.TreeMultiset$AvlNode,com.google.common.collect.TreeMultiset$AvlNode)>(v, v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
if v < v goto label;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode pred()>();
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode removeMax(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode succ()>();
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode removeMin(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode removeMin(com.google.common.collect.TreeMultiset$AvlNode)
{
long v, v;
int v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode removeMin(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode removeMax(com.google.common.collect.TreeMultiset$AvlNode)
{
long v, v;
int v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode removeMax(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v = v - 1;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v - v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rebalance()>();
return v;
}
private void recomputeMultiset()
{
long v, v, v, v;
int v, v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = staticinvoke <com.google.common.collect.TreeMultiset: int distinctElements(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = 1 + v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = staticinvoke <com.google.common.collect.TreeMultiset: int distinctElements(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = staticinvoke <com.google.common.collect.TreeMultiset$AvlNode: long totalCount(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = v + v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = staticinvoke <com.google.common.collect.TreeMultiset$AvlNode: long totalCount(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = v + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
return;
}
private void recomputeHeight()
{
int v, v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = staticinvoke <com.google.common.collect.TreeMultiset$AvlNode: int height(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = staticinvoke <com.google.common.collect.TreeMultiset$AvlNode: int height(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = 1 + v;
v.<com.google.common.collect.TreeMultiset$AvlNode: int height> = v;
return;
}
private void recompute()
{
com.google.common.collect.TreeMultiset$AvlNode v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recomputeMultiset()>();
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recomputeHeight()>();
return;
}
private com.google.common.collect.TreeMultiset$AvlNode rebalance()
{
int v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v, v, v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: int balanceFactor()>();
lookupswitch(v)
{
case -2: goto label;
case 2: goto label;
default: goto label;
};
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: int balanceFactor()>();
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rotateRight()>();
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rotateLeft()>();
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: int balanceFactor()>();
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rotateLeft()>();
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
label:
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode rotateRight()>();
return v;
label:
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recomputeHeight()>();
return v;
}
private int balanceFactor()
{
int v, v, v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = staticinvoke <com.google.common.collect.TreeMultiset$AvlNode: int height(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = staticinvoke <com.google.common.collect.TreeMultiset$AvlNode: int height(com.google.common.collect.TreeMultiset$AvlNode)>(v);
v = v - v;
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode rotateLeft()
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v;
long v;
boolean v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean)>(v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recompute()>();
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recomputeHeight()>();
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode rotateRight()
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v;
long v;
boolean v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean)>(v);
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left> = v;
v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount> = v;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements>;
v.<com.google.common.collect.TreeMultiset$AvlNode: int distinctElements> = v;
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recompute()>();
specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: void recomputeHeight()>();
return v;
}
private static long totalCount(com.google.common.collect.TreeMultiset$AvlNode)
{
com.google.common.collect.TreeMultiset$AvlNode v;
long v;
v := @parameter: com.google.common.collect.TreeMultiset$AvlNode;
if v != null goto label;
v = 0L;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: long totalCount>;
label:
return v;
}
private static int height(com.google.common.collect.TreeMultiset$AvlNode)
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v;
v := @parameter: com.google.common.collect.TreeMultiset$AvlNode;
if v != null goto label;
v = 0;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int height>;
label:
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode ceiling(java.util.Comparator, java.lang.Object)
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v;
java.lang.Object v, v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v >= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v == null goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode ceiling(java.util.Comparator,java.lang.Object)>(v, v);
v = staticinvoke <com.google.common.base.MoreObjects: java.lang.Object firstNonNull(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
label:
if v != 0 goto label;
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v != null goto label;
v = null;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode ceiling(java.util.Comparator,java.lang.Object)>(v, v);
label:
return v;
}
private com.google.common.collect.TreeMultiset$AvlNode floor(java.util.Comparator, java.lang.Object)
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v, v, v, v, v, v, v;
java.lang.Object v, v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v := @parameter: java.util.Comparator;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v <= 0 goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
if v == null goto label;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode right>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode floor(java.util.Comparator,java.lang.Object)>(v, v);
v = staticinvoke <com.google.common.base.MoreObjects: java.lang.Object firstNonNull(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
label:
if v != 0 goto label;
return v;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
if v != null goto label;
v = null;
goto label;
label:
v = v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode left>;
v = specialinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: com.google.common.collect.TreeMultiset$AvlNode floor(java.util.Comparator,java.lang.Object)>(v, v);
label:
return v;
}
java.lang.Object getElement()
{
com.google.common.collect.TreeMultiset$AvlNode v;
java.lang.Object v, v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object elem>;
v = staticinvoke <com.google.common.collect.NullnessCasts: java.lang.Object uncheckedCastNullableTToT(java.lang.Object)>(v);
return v;
}
int getCount()
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = v.<com.google.common.collect.TreeMultiset$AvlNode: int elemCount>;
return v;
}
public java.lang.String toString()
{
int v;
com.google.common.collect.TreeMultiset$AvlNode v;
java.lang.Object v;
java.lang.String v;
com.google.common.collect.Multiset$Entry v;
v := @this: com.google.common.collect.TreeMultiset$AvlNode;
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: java.lang.Object getElement()>();
v = virtualinvoke v.<com.google.common.collect.TreeMultiset$AvlNode: int getCount()>();
v = staticinvoke <com.google.common.collect.Multisets: com.google.common.collect.Multiset$Entry immutableEntry(java.lang.Object,int)>(v, v);
v = interfaceinvoke v.<com.google.common.collect.Multiset$Entry: java.lang.String toString()>();
return v;
}
}