fr.translate(fpt.x,fpt.y);
fr.translate(-fpt.x, -fpt.y);
	public static Box newGetLeftFloatX(Box box, List left_floats, BlockFormattingContext bfc) {		//Uu.p("in new bfc.getLeftFloatX( " + box + " ) ");        // count backwards through the floats        //int x = 0;        for (int i = left_floats.size() - 1; i >= 0; i--) {            Box floater = (Box) left_floats.get(i);            //Uu.p("box = " + box);			//Uu.p("content = " + box.element);            //Uu.p("testing against float = " + floater + " " + floater.hashCode());			//Uu.p("content = " + floater.element);			Rectangle fr = new Rectangle(floater.x,floater.y,floater.width,floater.height);			//Uu.p("float rect: " + fr);			// get the point where the float was added            Point fpt = bfc.getOffset(floater);			// get the origin of this BFC			//Uu.p("fpt = " + fpt);// + " lpt = " + lpt);			// convert to abs coords			fr.translate(fpt.x,fpt.y);			//Uu.p("float rect: " + fr);            //x = floater.x + floater.width;			// skip if the box and the floater have the same element. this means they are really the same box			// this is a hack to account for when the same float is run through twice. i don't know			// why this is happening. hopefully we can fix it in the future.			if(floater.element == box.element) {				continue;			}            if (fr.y + fr.height > box.y) {                //Uu.p("float["+i+"] blocks the box vertically");                return floater;            } else {                //Uu.p("float["+i+"] doesn't block. moving to next");            }        }		//Uu.p("returning null");        return null;    }