UDAggregate |   | 66% |   | 46% | 46 | 81 | 34 | 116 | 5 | 27 | 0 | 1 |
UDFContextImpl |   | 22% |   | 16% | 19 | 21 | 28 | 37 | 14 | 15 | 0 | 1 |
UDFunction |   | 87% |   | 67% | 31 | 87 | 32 | 196 | 1 | 34 | 0 | 1 |
JavaBasedUDFunction |   | 87% |   | 86% | 8 | 48 | 20 | 196 | 0 | 10 | 0 | 1 |
UDFDataType |   | 66% |   | 61% | 14 | 37 | 15 | 53 | 4 | 20 | 0 | 1 |
FunctionCall.Raw |   | 70% |   | 73% | 6 | 21 | 12 | 49 | 0 | 8 | 0 | 1 |
TokenFct.new FunctionFactory() {...} |   | 34% |   | 50% | 4 | 6 | 4 | 10 | 1 | 3 | 0 | 1 |
PreComputedScalarFunction |   | 41% |   | 25% | 5 | 7 | 7 | 15 | 3 | 5 | 0 | 1 |
FunctionCall |   | 85% |   | 90% | 2 | 19 | 4 | 40 | 0 | 8 | 0 | 1 |
UDFByteCodeVerifier.new ClassVisitor() {...} |   | 83% |   | 69% | 8 | 18 | 5 | 30 | 0 | 5 | 0 | 1 |
UDFunction.UDFClassLoader |   | 52% |   | 50% | 5 | 10 | 6 | 14 | 3 | 7 | 0 | 1 |
JavaBasedUDFunction.EcjCompilationUnit |   | 92% |   | 83% | 10 | 38 | 9 | 79 | 3 | 17 | 0 | 1 |
CollectionFcts |   | 91% |   | 80% | 6 | 32 | 6 | 55 | 1 | 12 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |   | 42% |   | 66% | 3 | 6 | 3 | 8 | 1 | 3 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |   | 30% |   | 50% | 3 | 5 | 3 | 6 | 1 | 3 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 23% |   | 50% | 2 | 4 | 3 | 6 | 1 | 3 | 0 | 1 |
FromJsonFct |   | 82% |   | 75% | 2 | 9 | 1 | 26 | 0 | 5 | 0 | 1 |
ToJsonFct |   | 85% |   | 83% | 2 | 13 | 1 | 22 | 0 | 7 | 0 | 1 |
JavaUDF |   | 64% | | n/a | 3 | 8 | 3 | 11 | 3 | 8 | 0 | 1 |
UDFExecutorService |   | 51% | | n/a | 4 | 6 | 6 | 10 | 4 | 6 | 0 | 1 |
UDFByteCodeVerifier.ConstructorVisitor |   | 79% |   | 80% | 3 | 9 | 3 | 14 | 1 | 4 | 0 | 1 |
FunctionName |   | 94% |   | 84% | 4 | 24 | 1 | 34 | 0 | 11 | 0 | 1 |
UDAggregate.new AggregateFunction.Aggregate() {...} |   | 93% |   | 83% | 2 | 11 | 2 | 30 | 0 | 5 | 0 | 1 |
OperationFcts.OPERATION |   | 92% |   | 87% | 3 | 10 | 3 | 20 | 2 | 6 | 0 | 1 |
AbstractFunction |  | 96% |   | 83% | 6 | 32 | 4 | 56 | 2 | 20 | 0 | 1 |
CastFcts.CassandraFunctionWrapper |  | 86% |   | 50% | 3 | 8 | 0 | 9 | 0 | 5 | 0 | 1 |
FunctionResolver |  | 98% |   | 92% | 4 | 41 | 4 | 92 | 0 | 12 | 0 | 1 |
PartiallyAppliedScalarFunction |  | 95% |   | 91% | 2 | 15 | 2 | 27 | 1 | 9 | 0 | 1 |
JavaBasedUDFunction.EcjTargetClassLoader |  | 84% |   | 50% | 2 | 6 | 2 | 11 | 1 | 5 | 0 | 1 |
OperationFcts |  | 98% |   | 95% | 2 | 33 | 0 | 49 | 0 | 11 | 0 | 1 |
TimeFcts.FloorFunction |  | 94% |   | 77% | 4 | 15 | 1 | 21 | 0 | 6 | 0 | 1 |
CastFcts.JavaFunctionWrapper |  | 89% |  | 100% | 1 | 6 | 1 | 9 | 1 | 5 | 0 | 1 |
AggregateFcts.5.new AggregateFunction.Aggregate() {...} |  | 86% |   | 50% | 2 | 5 | 3 | 10 | 1 | 4 | 0 | 1 |
CastFcts.JavaCounterFunctionWrapper |  | 82% | | n/a | 1 | 4 | 1 | 5 | 1 | 4 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 82% | | n/a | 1 | 5 | 1 | 6 | 1 | 5 | 0 | 1 |
NativeScalarFunction | | 61% | | n/a | 2 | 4 | 2 | 5 | 2 | 4 | 0 | 1 |
CastFcts |  | 98% |  | 100% | 1 | 21 | 0 | 50 | 1 | 14 | 0 | 1 |
FunctionParameter |  | 94% |   | 50% | 3 | 16 | 0 | 14 | 0 | 13 | 0 | 1 |
ScalarFunction |  | 94% |   | 91% | 2 | 8 | 2 | 15 | 1 | 2 | 0 | 1 |
Function | | 50% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
AggregateFcts |  | 99% | | n/a | 1 | 6 | 1 | 48 | 1 | 6 | 0 | 1 |
TimeFcts |  | 98% | | n/a | 1 | 6 | 1 | 23 | 1 | 6 | 0 | 1 |
CastFcts.CastAsTextFunction |  | 95% |   | 62% | 2 | 10 | 0 | 12 | 0 | 6 | 0 | 1 |
VectorFcts |  | 95% | | n/a | 1 | 4 | 1 | 9 | 1 | 4 | 0 | 1 |
TimeFcts.new NativeScalarFunction() {...} |  | 93% |   | 50% | 3 | 6 | 1 | 8 | 0 | 3 | 0 | 1 |
UDFunction.new UDFunction() {...} |  | 92% | | n/a | 1 | 5 | 1 | 6 | 1 | 5 | 0 | 1 |
BytesConversionFcts |  | 91% |  | 100% | 1 | 4 | 1 | 7 | 1 | 2 | 0 | 1 |
UuidFcts |  | 81% | | n/a | 1 | 3 | 1 | 4 | 1 | 3 | 0 | 1 |
TokenFct |  | 98% |   | 83% | 1 | 8 | 1 | 20 | 0 | 5 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 96% |  | 100% | 1 | 7 | 1 | 13 | 1 | 3 | 0 | 1 |
AggregateFcts.21.new AggregateFunction.Aggregate() {...} |  | 95% |   | 62% | 3 | 8 | 1 | 11 | 0 | 4 | 0 | 1 |
OperationFcts.NumericNegationFunction |  | 95% |   | 50% | 1 | 4 | 1 | 7 | 0 | 3 | 0 | 1 |
TimeFcts.NowFunction |  | 94% |  | 100% | 1 | 5 | 1 | 7 | 1 | 4 | 0 | 1 |
TimeFcts.ToDateFunction |  | 93% |  | 100% | 1 | 5 | 1 | 6 | 1 | 4 | 0 | 1 |
TimeFcts.ToUnixTimestampFunction |  | 93% |  | 100% | 1 | 5 | 1 | 6 | 1 | 4 | 0 | 1 |
MathFcts.new NativeScalarFunction() {...} |  | 93% |   | 50% | 1 | 3 | 1 | 5 | 0 | 2 | 0 | 1 |
JavaBasedUDFunction.new URLStreamHandler() {...} | | 60% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
AggregateFcts.FloatAvgAggregate |  | 99% |   | 93% | 1 | 12 | 1 | 36 | 0 | 4 | 0 | 1 |
AggregateFcts.AvgAggregate |  | 99% |   | 90% | 1 | 9 | 1 | 24 | 0 | 4 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 98% |   | 83% | 2 | 10 | 1 | 17 | 0 | 4 | 0 | 1 |
AggregateFcts.FloatSumAggregate |  | 98% |   | 83% | 1 | 6 | 1 | 18 | 0 | 3 | 0 | 1 |
AggregateFcts.6.new AggregateFunction.Aggregate() {...} |  | 98% |   | 75% | 1 | 6 | 1 | 14 | 0 | 4 | 0 | 1 |
AggregateFcts.4.new AggregateFunction.Aggregate() {...} |  | 98% |   | 50% | 1 | 5 | 1 | 12 | 0 | 4 | 0 | 1 |
AggregateFcts.22.new AggregateFunction.Aggregate() {...} |  | 97% |   | 75% | 2 | 8 | 1 | 11 | 0 | 4 | 0 | 1 |
AggregateFcts.7.new AggregateFunction.Aggregate() {...} |  | 97% |   | 50% | 1 | 5 | 1 | 9 | 0 | 4 | 0 | 1 |
AggregateFcts.3.new AggregateFunction.Aggregate() {...} |  | 97% |   | 50% | 1 | 5 | 1 | 10 | 0 | 4 | 0 | 1 |
AggregateFcts.9.new AggregateFunction.Aggregate() {...} |  | 97% |   | 50% | 1 | 5 | 1 | 9 | 0 | 4 | 0 | 1 |
AggregateFcts.11.new AggregateFunction.Aggregate() {...} |  | 97% |   | 50% | 1 | 5 | 1 | 9 | 0 | 4 | 0 | 1 |
AggregateFcts.LongSumAggregate |  | 96% |   | 50% | 1 | 4 | 1 | 8 | 0 | 3 | 0 | 1 |
FunctionFactory |  | 100% |  | 100% | 0 | 12 | 0 | 27 | 0 | 6 | 0 | 1 |
FunctionArguments |  | 100% |  | 100% | 0 | 18 | 0 | 35 | 0 | 11 | 0 | 1 |
VectorFcts.new NativeScalarFunction() {...} |  | 100% |  | 100% | 0 | 12 | 0 | 16 | 0 | 6 | 0 | 1 |
UDFByteCodeVerifier |  | 100% | | n/a | 0 | 6 | 0 | 24 | 0 | 6 | 0 | 1 |
UDFByteCodeVerifier.ExecuteImplVisitor |  | 100% |   | 85% | 2 | 11 | 0 | 22 | 0 | 4 | 0 | 1 |
NativeFunctions |  | 100% |  | 100% | 0 | 12 | 0 | 19 | 0 | 10 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 100% |  | 100% | 0 | 9 | 0 | 10 | 0 | 5 | 0 | 1 |
MathFcts |  | 100% | | n/a | 0 | 8 | 0 | 16 | 0 | 8 | 0 | 1 |
BytesConversionFcts.FromBlobFunction |  | 100% |  | 100% | 0 | 6 | 0 | 15 | 0 | 4 | 0 | 1 |
OperationFcts.OperationFunction |  | 100% |  | 100% | 0 | 5 | 0 | 10 | 0 | 4 | 0 | 1 |
PartiallyAppliedScalarFunction.PartialFunctionArguments |  | 100% |  | 100% | 0 | 8 | 0 | 16 | 0 | 6 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 100% |  | 100% | 0 | 9 | 0 | 9 | 0 | 4 | 0 | 1 |
TimeFcts.FloorDateFunction |  | 100% |  | 100% | 0 | 6 | 0 | 9 | 0 | 5 | 0 | 1 |
CollectionFcts.CollectionAggregationFunction |  | 100% |  | 100% | 0 | 5 | 0 | 14 | 0 | 4 | 0 | 1 |
VectorFcts.new FunctionFactory() {...} |  | 100% |  | 100% | 0 | 5 | 0 | 6 | 0 | 3 | 0 | 1 |
TimeFcts.FloorTimeUuidFunction |  | 100% | | n/a | 0 | 4 | 0 | 5 | 0 | 4 | 0 | 1 |
TimeFcts.FloorTimestampFunction |  | 100% | | n/a | 0 | 4 | 0 | 5 | 0 | 4 | 0 | 1 |
Arguments |  | 100% | | n/a | 0 | 7 | 0 | 7 | 0 | 7 | 0 | 1 |
CastFcts.CastFunction |  | 100% | | n/a | 0 | 4 | 0 | 5 | 0 | 4 | 0 | 1 |
BytesConversionFcts.ToBlobFunction |  | 100% |  | 100% | 0 | 5 | 0 | 8 | 0 | 4 | 0 | 1 |
FromJsonFct.Factory |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 2 | 0 | 1 |
AggregateFcts.23.new AggregateFunction.Aggregate() {...} |  | 100% |  | 100% | 0 | 7 | 0 | 10 | 0 | 4 | 0 | 1 |
AggregateFcts.24.new AggregateFunction.Aggregate() {...} |  | 100% |  | 100% | 0 | 7 | 0 | 10 | 0 | 4 | 0 | 1 |
AggregateFcts.25.new AggregateFunction.Aggregate() {...} |  | 100% |  | 100% | 0 | 5 | 0 | 8 | 0 | 4 | 0 | 1 |
TimeFcts.ToTimestampFunction |  | 100% |  | 100% | 0 | 5 | 0 | 6 | 0 | 4 | 0 | 1 |
CollectionFcts.new NativeScalarFunction() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 6 | 0 | 3 | 0 | 1 |
NativeFunctions.new NativeFunctions() {...} |  | 100% | | n/a | 0 | 1 | 0 | 15 | 0 | 1 | 0 | 1 |
CollectionFcts.new NativeScalarFunction() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 2 | 0 | 1 |
CollectionFcts.new NativeScalarFunction() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 2 | 0 | 1 |
TimeFcts.MaxTimeuuidFunction |  | 100% |  | 100% | 0 | 4 | 0 | 4 | 0 | 3 | 0 | 1 |
TimeFcts.MinTimeuuidFunction |  | 100% |  | 100% | 0 | 4 | 0 | 4 | 0 | 3 | 0 | 1 |
AggregateFcts.CountRowsFunction |  | 100% |  | 100% | 0 | 5 | 0 | 5 | 0 | 4 | 0 | 1 |
AggregateFcts.CountRowsFunction.new AggregateFunction.Aggregate() {...} |  | 100% | | n/a | 0 | 4 | 0 | 6 | 0 | 4 | 0 | 1 |
FunctionParameter.new FunctionParameter() {...} |  | 100% |   | 75% | 1 | 6 | 0 | 5 | 0 | 4 | 0 | 1 |
OperationFcts.OPERATION.new OperationFcts.OPERATION() {...} |  | 100% | | n/a | 0 | 4 | 0 | 4 | 0 | 4 | 0 | 1 |
TimeFcts.TemporalConversionFunction |  | 100% |  | 100% | 0 | 4 | 0 | 7 | 0 | 3 | 0 | 1 |
UDFunction.ThreadIdAndCpuTime |  | 100% | | n/a | 0 | 2 | 0 | 7 | 0 | 2 | 0 | 1 |
OperationFcts.StringOperationFunction |  | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
OperationFcts.NumericOperationFunction |  | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
OperationFcts.TemporalOperationFunction |  | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
NativeFunction |  | 100% | | n/a | 0 | 5 | 0 | 6 | 0 | 5 | 0 | 1 |
AggregateFcts.new FunctionFactory() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 2 | 0 | 1 |
AggregateFcts.new FunctionFactory() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 2 | 0 | 1 |
ToJsonFct.Factory |  | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 1 |
OperationFcts.OPERATION.new OperationFcts.OPERATION() {...} |  | 100% | | n/a | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 1 |
AggregateFcts.8.new AggregateFcts.AvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
CollectionFcts.new FunctionFactory() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.10.new AggregateFcts.AvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.12.new AggregateFcts.AvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.15.new AggregateFcts.FloatSumAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.16.new AggregateFcts.FloatAvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.14.new AggregateFcts.AvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.20.new AggregateFcts.AvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
OperationFcts.OPERATION.new OperationFcts.OPERATION() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
OperationFcts.OPERATION.new OperationFcts.OPERATION() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
OperationFcts.OPERATION.new OperationFcts.OPERATION() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.17.new AggregateFcts.FloatSumAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.18.new AggregateFcts.FloatAvgAggregate() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
UuidFcts.new NativeScalarFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
AggregateFcts.new NativeAggregateFunction() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
BytesConversionFcts.BytesConversionFct |  | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 1 |
NativeAggregateFunction | | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 1 |
UserFunction | | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 1 |
ArgumentDeserializer | | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |