code: def FromBinary(cls, record_data, record_count=1):
          
  
          if len(record_data) < ReflashTileRecord.RecordHeaderLength:
              raise ArgumentError("Record was too short to contain a full reflash record header",
                                  length=len(record_data), header_length=ReflashTileRecord.RecordHeaderLength)
  
          offset, data_length, raw_target, hardware_type = struct.unpack_from("<LL8sB3x", record_data)
  
          bindata = record_data[ReflashTileRecord.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)
  
          target = _parse_target(raw_target)
          if target['controller']:
              raise ArgumentError("Invalid targetting information, you "
                                  "cannot reflash a controller with a ReflashTileRecord", target=target)
  
          return ReflashTileRecord(target['slot'], bindata, offset, hardware_type)
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 ReflashTileRecord.
  
          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:
              ReflashTileRecord: The decoded reflash tile record.