text: from abc import ABC
  from abc import abstractmethod
  from typing import Optional
  from typing import Tuple
  
  import torch
  
  
  class AbsDecoder(torch.nn.Module, ABC):
      @abstractmethod
      def output_size(self) -> int:
          raise NotImplementedError
  
      @abstractmethod
      def forward(
          self,
          xs_pad: torch.Tensor,
          ilens: torch.Tensor,
          prev_states: torch.Tensor = None,
      ) -> Tuple[torch.Tensor, torch.Tensor, Optional[torch.Tensor]]:
          raise NotImplementedError
  