text: public void visitContainedRecords(RecordVisitor rv) {PositionTrackingVisitor stv = new PositionTrackingVisitor(rv, 0);final int blockCount = getRowBlockCount();for (int blockIndex = 0; blockIndex < blockCount; blockIndex++) {int pos=0;final int rowBlockSize = visitRowRecordsForBlock(blockIndex, rv);pos += rowBlockSize;final int startRowNumber = getStartRowNumberForBlock(blockIndex);final int endRowNumber = getEndRowNumberForBlock(blockIndex);final List<Short> cellOffsets = new ArrayList<>();int cellRefOffset = (rowBlockSize - RowRecord.ENCODED_SIZE);for (int row = startRowNumber; row <= endRowNumber; row++) {if (_valuesAgg.rowHasCells(row)) {stv.setPosition(0);_valuesAgg.visitCellsForRow(row, stv);int rowCellSize = stv.getPosition();pos += rowCellSize;cellOffsets.add((short)cellRefOffset);cellRefOffset = rowCellSize;}}rv.visitRecord(new DBCellRecord(pos, shortListToArray(cellOffsets)));}_unknownRecords.forEach(rv::visitRecord);}