<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find(self, path=None, name=None):
 """ Returns most recent version of the matching file. If there are multiple files of the same name and version, a random one is used. """

        if path is None and name is None:
            # TODO: Correct error type
            raise ValueError("Path or name is required.")
            # Entries are sorted by version number, so the last will be the most recent
        # TODO: Reduce redundancy with RAFArchive
        if path:
            return self.entries_full[path.lower()][-1]
        else:
            return self.entries_name[name.lower()][-1][-1]