text: public Row merge(Row master, Row existing) {Iterator<Character> i = master.cells.keySet().iterator();Row n = new Row();for (; i.hasNext();) {Character ch = i.next();Cell a = master.cells.get(ch);Cell b = existing.cells.get(ch);Cell s = (b == null) ? new Cell(a) : merge(a, b);if (s == null) {return null;}n.cells.put(ch, s);}i = existing.cells.keySet().iterator();for (; i.hasNext();) {Character ch = i.next();if (master.at(ch) != null) {continue;}n.cells.put(ch, existing.at(ch));}return n;}