text: public ObjRecord(RecordInputStream in1){byte[] subRecordData = in1.ReadRemainder();if (LittleEndian.GetUShort(subRecordData, 0) != CommonObjectDataSubRecord.sid){_uninterpretedData = subRecordData;subrecords = null;return;}subrecords = new List<SubRecord>();using (MemoryStream bais = new MemoryStream(subRecordData)){LittleEndianInputStream subRecStream = new LittleEndianInputStream(bais);CommonObjectDataSubRecord cmo = (CommonObjectDataSubRecord)SubRecord.CreateSubRecord(subRecStream, 0);subrecords.Add(cmo);while (true){SubRecord subRecord = SubRecord.CreateSubRecord(subRecStream, cmo.ObjectType);subrecords.Add(subRecord);if (subRecord.IsTerminating){break;}}int nRemainingBytes = subRecStream.Available();if (nRemainingBytes > 0){_isPaddedToQuadByteMultiple = subRecordData.Length % MAX_PAD_ALIGNMENT == 0;if (nRemainingBytes >= (_isPaddedToQuadByteMultiple ? MAX_PAD_ALIGNMENT : NORMAL_PAD_ALIGNMENT)){if (!CanPaddingBeDiscarded(subRecordData, nRemainingBytes)){String msg = "Leftover " + nRemainingBytes+ " bytes in subrecord data " + HexDump.ToHex(subRecordData);throw new RecordFormatException(msg);}_isPaddedToQuadByteMultiple = false;}}else{_isPaddedToQuadByteMultiple = false;}_uninterpretedData = null;}}