text: public override int FillFields(byte[] data, int offset, IEscherRecordFactory recordFactory){int bytesRemaining = ReadHeader(data, offset);int pos = offset + 8;int size = 0;field_1_shapeIdMax = LittleEndian.GetInt(data, pos + size); size += 4;int field_2_numIdClusters = LittleEndian.GetInt(data, pos + size); size += 4;field_3_numShapesSaved = LittleEndian.GetInt(data, pos + size); size += 4;field_4_drawingsSaved = LittleEndian.GetInt(data, pos + size); size += 4;field_5_fileIdClusters = new FileIdCluster[(bytesRemaining - size) / 8];  for (int i = 0; i < field_5_fileIdClusters.Length; i++){field_5_fileIdClusters[i] = new FileIdCluster(LittleEndian.GetInt(data, pos + size), LittleEndian.GetInt(data, pos + size + 4));maxDgId = Math.Max(maxDgId, field_5_fileIdClusters[i].DrawingGroupId);size += 8;}bytesRemaining -= size;if (bytesRemaining != 0)throw new RecordFormatException("Expecting no remaining data but got " + bytesRemaining + " byte(s).");return 8 + size + bytesRemaining;}