public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {int bytesRemaining = readHeader( data, offset );int pos = offset + 8;field_1_blipTypeWin32 = data[pos];field_2_blipTypeMacOS = data[pos + 1];System.arraycopy( data, pos + 2, field_3_uid, 0, 16 );field_4_tag = LittleEndian.getShort( data, pos + 18 );field_5_size = LittleEndian.getInt( data, pos + 20 );field_6_ref = LittleEndian.getInt( data, pos + 24 );field_7_offset = LittleEndian.getInt( data, pos + 28 );field_8_usage = data[pos + 32];field_9_name = data[pos + 33];field_10_unused2 = data[pos + 34];field_11_unused3 = data[pos + 35];bytesRemaining -= 36;int bytesRead = 0;if (bytesRemaining > 0) {field_12_blipRecord = (EscherBlipRecord) recordFactory.createRecord( data, pos + 36 );bytesRead = field_12_blipRecord.fillFields( data, pos + 36, recordFactory );}pos += 36 + bytesRead;bytesRemaining -= bytesRead;_remainingData = IOUtils.safelyAllocate(bytesRemaining, MAX_RECORD_LENGTH);System.arraycopy( data, pos, _remainingData, 0, bytesRemaining );return bytesRemaining + 8 + 36 + (field_12_blipRecord == null ? 0 : field_12_blipRecord.getRecordSize()) ;}

public override int FillFields(byte[] data, int offset,IEscherRecordFactory recordFactory){int bytesRemaining = ReadHeader(data, offset);int pos = offset + 8;field_1_blipTypeWin32 = data[pos];field_2_blipTypeMacOS = data[pos + 1];field_3_uid = new byte[16];Array.Copy(data, pos + 2, field_3_uid, 0, 16);field_4_tag = LittleEndian.GetShort(data, pos + 18);field_5_size = LittleEndian.GetInt(data, pos + 20);field_6_ref = LittleEndian.GetInt(data, pos + 24);field_7_offset = LittleEndian.GetInt(data, pos + 28);field_8_usage = data[pos + 32];field_9_name = data[pos + 33];field_10_unused2 = data[pos + 34];field_11_unused3 = data[pos + 35];bytesRemaining -= 36;int bytesRead = 0;if (bytesRemaining > 0){field_12_blipRecord = (EscherBlipRecord)recordFactory.CreateRecord(data, pos + 36);bytesRead = field_12_blipRecord.FillFields(data, pos + 36, recordFactory);}pos += 36 + bytesRead;bytesRemaining -= bytesRead;_remainingData = new byte[bytesRemaining];Array.Copy(data, pos, _remainingData, 0, bytesRemaining);return bytesRemaining + 8 + 36 + (field_12_blipRecord == null ? 0 : field_12_blipRecord.RecordSize);}
