'Issue the find request.'

@flow.StateHandler()
def Start(self):

    super(FileFinder, self).Start()
    if (not self.args.paths):
        return
    self.state.files_found = 0
    self.state.sorted_conditions = sorted(self.args.conditions, key=self._ConditionWeight)
    if self.args.HasField('action'):
        action = self.args.action.Copy()
    else:
        action = rdf_file_finder.FileFinderAction()
    if (action.action_type == rdf_file_finder.FileFinderAction.Action.HASH):
        self.state.file_size = action.hash.max_size
    elif (action.action_type == rdf_file_finder.FileFinderAction.Action.DOWNLOAD):
        self.state.file_size = action.download.max_size
    if (self.args.pathtype in (rdf_paths.PathSpec.PathType.MEMORY, rdf_paths.PathSpec.PathType.REGISTRY)):
        self.args.process_non_regular_files = True
    if (self.args.pathtype == rdf_paths.PathSpec.PathType.MEMORY):
        for path in self.args.paths:
            pathspec = rdf_paths.PathSpec(path=utils.SmartUnicode(path), pathtype=rdf_paths.PathSpec.PathType.MEMORY)
            stat_entry = rdf_client.StatEntry(pathspec=pathspec)
            self.ApplyCondition(rdf_file_finder.FileFinderResult(stat_entry=stat_entry), condition_index=0)
    else:
        self.GlobForPaths(self.args.paths, pathtype=self.args.pathtype, process_non_regular_files=self.args.process_non_regular_files)
