      # Track hashes for multiple files with the same hash. Not the most robust but should be
      # effective enough
      folder = os.path.dirname(filename)
      if folder not in _HASHES_SEEN:
          _HASHES_SEEN[folder] = dict()
      hashes_seen = _HASHES_SEEN[folder]
  
      in_image = read_image(filename, raise_error=True)
      in_hash = sha1(in_image).hexdigest()
      hashes_seen[in_hash] = hashes_seen.get(in_hash, -1) + 1
 
</s> remove                 filename = "{}_{}".format(vid, filename)
 </s> add                 filename = f"{vid}_{filename}" </s> remove         masks = dict()
 </s> add         masks = {} </s> remove _HASHES_SEEN = dict()
 </s> add _HASHES_SEEN: Dict[str, Dict[str, int]] = {} </s> remove         logger.trace("Returning blurred mask. Shape: %s", blurred.shape)
 </s> add         logger.trace("Returning blurred mask. Shape: %s", blurred.shape)  # type: ignore </s> remove         retval = dict()
 </s> add         retval = {}
        _HASHES_SEEN[folder] = {}
      # Track hashes for multiple files with the same hash. Not the most robust but should be
      # effective enough
      folder = os.path.dirname(filename)
      if folder not in _HASHES_SEEN:
        _HASHES_SEEN[folder] = {}
      hashes_seen = _HASHES_SEEN[folder]
  
      in_image = read_image(filename, raise_error=True)
      in_hash = sha1(in_image).hexdigest()
      hashes_seen[in_hash] = hashes_seen.get(in_hash, -1) + 1
keep keep keep keep replace keep keep keep keep keep
 lib.align updates:
  - alignments.py
    - Add typed dicts for imported alignments
    - Explicitly check for presence of thumb value in alignments dict
    - linting
  - detected_face.py
    - Typing
    - Linting
    - Legacy support for pre-aligned face
    - Update dependencies to new property names 
lib/align/detected_face.py