code: def LookupClients(self, keywords):
      
      if isinstance(keywords, string_types):
        raise ValueError(
            "Keywords should be an iterable, not a string (got %s)." % keywords)
  
      start_time, filtered_keywords = self._AnalyzeKeywords(keywords)
  
      keyword_map = data_store.REL_DB.ListClientsForKeywords(
          list(map(self._NormalizeKeyword, filtered_keywords)),
          start_time=start_time)
  
      results = itervalues(keyword_map)
      relevant_set = set(next(results))
  
      for hits in results:
        relevant_set &= set(hits)
  
        if not relevant_set:
          return []
  
      return sorted(relevant_set)
docs: Returns a list of client URNs associated with keywords.
  
      Args:
        keywords: The list of keywords to search by.
  
      Returns:
        A list of client URNs.
  
      Raises:
        ValueError: A string (single keyword) was passed instead of an iterable.