  
          mask_diameter = np.sqrt(np.sum(self._mask))
          radius = round(max(1., mask_diameter * kernel / 100.))
          kernel_size = int(radius * 2 + 1)
          logger.trace("kernel_size: %s", kernel_size)
          return kernel_size
  
      @staticmethod
      def _get_kernel_tuple(kernel_size):
          """ Make sure kernel_size is odd and return it as a tuple.
 
</s> remove             return kernel
 </s> add             return int(kernel) </s> remove     def _get_kernel_tuple(kernel_size):
 </s> add     def _get_kernel_tuple(kernel_size: int) -> Tuple[int, int]: </s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore </s> remove             y_center = (face.top + face.bottom) / 2.0 - face.h * 0.12
            scale = (face.w + face.h) * self.reference_scale
 </s> add             y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
            scale = (face.width + face.height) * self.reference_scale </s> remove         logger.trace("Initialized %s", self.__class__.__name__)
 </s> add         logger.trace("Initialized %s", self.__class__.__name__)  # type: ignore
        logger.trace("kernel_size: %s", kernel_size)  # type: ignore
  
          mask_diameter = np.sqrt(np.sum(self._mask))
          radius = round(max(1., mask_diameter * kernel / 100.))
          kernel_size = int(radius * 2 + 1)
        logger.trace("kernel_size: %s", kernel_size)  # type: ignore
          return kernel_size
  
      @staticmethod
      def _get_kernel_tuple(kernel_size):
          """ Make sure kernel_size is odd and return it as a tuple.
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