code: private static List<Term> expandDontCares(int ord, List<Term> in) {
  		Set<Integer> termInts = new HashSet<Integer>();
  		for (Term term : in) {
  			addExpandTerm(0, ord, 0, term, termInts);
  		}
  		// Now convert the termInts to Terms
  		List<Term> result = new ArrayList<Term>(termInts.size());
  		for (Integer termInt : termInts) {
  			byte[] varVals = new byte[ord];
  			for (int i = 0; i < ord; i++) {
  				varVals[i] = (byte)(((termInt & (1 << i)) == 0) ? 0 : 1);
  			}
  			result.add(new Term(varVals));
  		}
  		return result;
  	}
docs: Expands out an array of terms containing don't cares into a new array
  which doesn't contain any don't cares. Don't cares are eliminated by
  expanding the array to include all values represented by the don't cares.
  For example, the array [1, 1, X], [0, X, 0] with don't cares represented
  by X is expanded out to the new array [1, 1, 0], [1, 1, 1], [0, 1 0], [0,
  0, 0]. Redundant terms are eliminated in the expansion
  
  @param ord
  The term size
  @param in
  The input list of terms containing don't cares
  @return A new term list with don't cares expanded.