import fnmatch


def ExcludeFiles(filters, files):
  """Filter files based on exclusions lists

  Return a list of files which do not match any of the Unix shell-style
  wildcards provided, or return all the files if no filter is provided."""
  if not filters:
    return files
  match = set()
  for file_filter in filters:
    excludes = set(fnmatch.filter(files, file_filter))
    match |= excludes
  return [name for name in files if name not in match]