// Path: ohmdb-utils/src/main/java/com/ohmdb/util/Check.java
// public class Check {
// 
// 	public static void state(boolean expectedCondition) {
// 		if (!expectedCondition) {
// 			throw new IllegalStateException();
// 		}
// 	}
// 
// 	public static void state(boolean expectedCondition, String message, Object... args) {
// 		if (!expectedCondition) {
// 			throw new IllegalStateException(String.format(message, args));
// 		}
// 	}
// 
// 	public static void notNulls(Object[] objs) {
// 		for (Object value : objs) {
// 			if (value == null) {
// 				throw new IllegalStateException(String.format("The argument must NOT be null!"));
// 			}
// 		}
// 	}
// 
// 	public static void notNulls2(Object... objs) {
// 		for (Object value : objs) {
// 			if (value == null) {
// 				throw new IllegalStateException(String.format("The argument must NOT be null!"));
// 			}
// 		}
// 	}
// 
// 	public static void notNull(Object value, String desc) {
// 		if (value == null) {
// 			throw new IllegalStateException(String.format("The %s must NOT be null!", desc));
// 		}
// 	}
// 
// 	public static void arg(boolean expectedCondition, String message, Object... args) {
// 		if (!expectedCondition) {
// 			throw new IllegalArgumentException(String.format(message, args));
// 		}
// 	}
// 
// }


import com.ohmdb.util.Errors;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import com.ohmdb.abstracts.Numbers;
import com.ohmdb.util.Check;
		} else if (array instanceof long[]) {
			return from((long[]) array);
		} else if (array instanceof Object[]) {
			return from((Object[]) array);
		} else if (array == null) {
			return none();
		} else {
			throw Errors.rte("Wrong array type: " + array);
		}
	}

	public static int rnd(int n) {
		return (int) (Math.random() * n);
	}

	public static int rnd(int min, int max) {
		return min + rnd(max - min + 1);
	}

	private static boolean contains(int[] nums, int count, int val) {
		for (int i = 0; i < count; i++) {
			if (nums[i] == val) {
				return true;
			}
		}
		return false;
	}

	public static Numbers random(int minCount, int maxCount, int minVal, int maxVal) {
		int possible = maxVal - minVal + 1;
// Path: ohmdb-utils/src/main/java/com/ohmdb/util/Check.java
// public class Check {
// 
// 	public static void state(boolean expectedCondition) {
// 		if (!expectedCondition) {
// 			throw new IllegalStateException();
// 		}
// 	}
// 
// 	public static void state(boolean expectedCondition, String message, Object... args) {
// 		if (!expectedCondition) {
// 			throw new IllegalStateException(String.format(message, args));
// 		}
// 	}
// 
// 	public static void notNulls(Object[] objs) {
// 		for (Object value : objs) {
// 			if (value == null) {
// 				throw new IllegalStateException(String.format("The argument must NOT be null!"));
// 			}
// 		}
// 	}
// 
// 	public static void notNulls2(Object... objs) {
// 		for (Object value : objs) {
// 			if (value == null) {
// 				throw new IllegalStateException(String.format("The argument must NOT be null!"));
// 			}
// 		}
// 	}
// 
// 	public static void notNull(Object value, String desc) {
// 		if (value == null) {
// 			throw new IllegalStateException(String.format("The %s must NOT be null!", desc));
// 		}
// 	}
// 
// 	public static void arg(boolean expectedCondition, String message, Object... args) {
// 		if (!expectedCondition) {
// 			throw new IllegalArgumentException(String.format(message, args));
// 		}
// 	}
// 
// }


// Path: ohmdb-utils/src/main/java/com/ohmdb/numbers/Nums.java
import com.ohmdb.util.Errors;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import com.ohmdb.abstracts.Numbers;
import com.ohmdb.util.Check;

		} else if (array instanceof long[]) {
			return from((long[]) array);
		} else if (array instanceof Object[]) {
			return from((Object[]) array);
		} else if (array == null) {
			return none();
		} else {
			throw Errors.rte("Wrong array type: " + array);
		}
	}

	public static int rnd(int n) {
		return (int) (Math.random() * n);
	}

	public static int rnd(int min, int max) {
		return min + rnd(max - min + 1);
	}

	private static boolean contains(int[] nums, int count, int val) {
		for (int i = 0; i < count; i++) {
			if (nums[i] == val) {
				return true;
			}
		}
		return false;
	}

	public static Numbers random(int minCount, int maxCount, int minVal, int maxVal) {
		int possible = maxVal - minVal + 1;
		Check.state(maxCount <= possible);