public int serialize(int offset, byte[] data, EscherSerializationListener listener) {listener.beforeRecordSerialize( offset, getRecordId(), this );if (remainingData == null) {remainingData = EMPTY;}LittleEndian.putShort( data, offset, getOptions() );LittleEndian.putShort( data, offset + 2, getRecordId() );LittleEndian.putInt( data, offset + 4, remainingData.length );System.arraycopy( remainingData, 0, data, offset + 8, remainingData.length );int pos = offset + 8 + remainingData.length;listener.afterRecordSerialize( pos, getRecordId(), pos - offset, this );return pos - offset;}

public override int Serialize(int offset, byte[] data, EscherSerializationListener listener){listener.BeforeRecordSerialize(offset, RecordId, this);if (remainingData == null) remainingData = new byte[0];LittleEndian.PutShort(data, offset, Options);LittleEndian.PutShort(data, offset + 2, RecordId);LittleEndian.PutInt(data, offset + 4, remainingData.Length);Array.Copy(remainingData, 0, data, offset + 8, remainingData.Length);int pos = offset + 8 + remainingData.Length;listener.AfterRecordSerialize(pos, RecordId, pos - offset, this);return pos - offset;}
