code: def FromBinary(cls, record_data, record_count=1):
          
  
          if len(record_data) < ReflashControllerRecord.RecordHeaderLength:
              raise ArgumentError("Record was too short to contain a full reflash record header",
                                  length=len(record_data), header_length=ReflashControllerRecord.RecordHeaderLength)
  
          offset, data_length = struct.unpack_from("<LL", record_data)
  
          bindata = record_data[ReflashControllerRecord.RecordHeaderLength:]
          if len(bindata) != data_length:
              raise ArgumentError("Embedded firmware length did not agree with actual length of embeded data",
                                  length=len(bindata), embedded_length=data_length)
  
          return ReflashControllerRecord(bindata, offset)
docs: Create an UpdateRecord subclass from binary record data.
  
          This should be called with a binary record blob (NOT including the
          record type header) and it will decode it into a ReflashControllerRecord.
  
          Args:
              record_data (bytearray): The raw record data that we wish to parse
                  into an UpdateRecord subclass NOT including its 8 byte record header.
              record_count (int): The number of records included in record_data.
  
          Raises:
              ArgumentError: If the record_data is malformed and cannot be parsed.
  
          Returns:
              ReflashControllerRecord: The decoded reflash tile record.