                       self.__class__.__name__, storage_size, storage_centering)
          self.stored_size = storage_size
          self.stored_centering = storage_centering
  
          self._mask = None
          self._affine_matrix = None
          self._interpolator = None
  
          self._blur = dict()
          self._blur_kernel = 0
          self._threshold = 0.0
          self._sub_crop_size = 0
 
</s> remove         self._blur = dict()
        self._blur_kernel = 0
 </s> add         self._blur_type: Optional[Literal["gaussian", "normalized"]] = None
        self._blur_passes: int = 0
        self._blur_kernel: Union[float, int] = 0 </s> remove     def __init__(self, storage_size=128, storage_centering="face"):
        logger.trace("Initializing: %s (storage_size: %s, storage_centering: %s)",
 </s> add     def __init__(self,
                 storage_size: int = 128,
                 storage_centering: "CenteringType" = "face") -> None:
        logger.trace("Initializing: %s (storage_size: %s, storage_centering: %s)",  # type: ignore </s> remove         logger.trace("Initialized: %s", self.__class__.__name__)
 </s> add         logger.trace("Initialized: %s", self.__class__.__name__)  # type: ignore </s> remove             self._blur["kernel"] = blur_kernel
            self._blur["type"] = blur_type
            self._blur["passes"] = blur_passes
 </s> add             self._blur_kernel = blur_kernel
            self._blur_type = blur_type
            self._blur_passes = blur_passes </s> remove         if self._blur["kernel"] != 0:
            mask = BlurMask(self._blur["type"],
 </s> add         if self._blur_kernel != 0 and self._blur_type is not None:
            mask = BlurMask(self._blur_type,
        self._mask: Optional[bytes] = None
        self._affine_matrix: Optional[np.ndarray] = None
        self._interpolator: Optional[int] = None
                       self.__class__.__name__, storage_size, storage_centering)
          self.stored_size = storage_size
          self.stored_centering = storage_centering
  
        self._mask: Optional[bytes] = None
        self._affine_matrix: Optional[np.ndarray] = None
        self._interpolator: Optional[int] = None
        self._mask: Optional[bytes] = None
        self._affine_matrix: Optional[np.ndarray] = None
        self._interpolator: Optional[int] = None
        self._mask: Optional[bytes] = None
        self._affine_matrix: Optional[np.ndarray] = None
        self._interpolator: Optional[int] = None
  
          self._blur = dict()
          self._blur_kernel = 0
          self._threshold = 0.0
          self._sub_crop_size = 0
keep keep keep keep replace replace 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