int bdd_load(BufferedReader ifile) throws IOException {
int bdd_load(BufferedReader ifile, int[] translate) throws IOException {
    int bdd_load(BufferedReader ifile) throws IOException {        int n, vnum, tmproot;        int root;        lh_nodenum = Integer.parseInt(readNext(ifile));        vnum = Integer.parseInt(readNext(ifile));        // Check for constant true / false        if (lh_nodenum == 0 && vnum == 0) {            root = Integer.parseInt(readNext(ifile));            return root;        }        // Not actually used.        loadvar2level = new int[vnum];        for (n = 0; n < vnum; n++) {            loadvar2level[n] = Integer.parseInt(readNext(ifile));        }        if (vnum > bddvarnum)            bdd_setvarnum(vnum);        lh_table = new LoadHash[lh_nodenum];        for (n = 0; n < lh_nodenum; n++) {            lh_table[n] = new LoadHash();            lh_table[n].first = -1;            lh_table[n].next = n + 1;        }        lh_table[lh_nodenum - 1].next = -1;        lh_freepos = 0;        tmproot = bdd_loaddata(ifile);        for (n = 0; n < lh_nodenum; n++)            bdd_delref(lh_table[n].data);        lh_table = null;        loadvar2level = null;        root = tmproot;        return root;    }