


"""simple docstring"""







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


__lowercase    =				{
    """configuration_wav2vec2""": ["""WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP""", """Wav2Vec2Config"""],
    """feature_extraction_wav2vec2""": ["""Wav2Vec2FeatureExtractor"""],
    """processing_wav2vec2""": ["""Wav2Vec2Processor"""],
    """tokenization_wav2vec2""": ["""Wav2Vec2CTCTokenizer""", """Wav2Vec2Tokenizer"""],
}


try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __lowercase    =				[
     """WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST""",
     """Wav2Vec2ForAudioFrameClassification""",
     """Wav2Vec2ForCTC""",
     """Wav2Vec2ForMaskedLM""",
     """Wav2Vec2ForPreTraining""",
     """Wav2Vec2ForSequenceClassification""",
     """Wav2Vec2ForXVector""",
     """Wav2Vec2Model""",
     """Wav2Vec2PreTrainedModel""",
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __lowercase    =				[
     """TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST""",
     """TFWav2Vec2ForCTC""",
     """TFWav2Vec2Model""",
     """TFWav2Vec2PreTrainedModel""",
     """TFWav2Vec2ForSequenceClassification""",
 ]

try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __lowercase    =				[
     """FlaxWav2Vec2ForCTC""",
     """FlaxWav2Vec2ForPreTraining""",
     """FlaxWav2Vec2Model""",
     """FlaxWav2Vec2PreTrainedModel""",
 ]


if TYPE_CHECKING:
 from .configuration_wavaveca import WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP, WavaVecaConfig
 from .feature_extraction_wavaveca import WavaVecaFeatureExtractor
 from .processing_wavaveca import WavaVecaProcessor
 from .tokenization_wavaveca import WavaVecaCTCTokenizer, WavaVecaTokenizer

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_wavaveca import (
      WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
      WavaVecaForAudioFrameClassification,
      WavaVecaForCTC,
      WavaVecaForMaskedLM,
      WavaVecaForPreTraining,
      WavaVecaForSequenceClassification,
      WavaVecaForXVector,
      WavaVecaModel,
      WavaVecaPreTrainedModel,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_wavaveca import (
      TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFWavaVecaForCTC,
      TFWavaVecaForSequenceClassification,
      TFWavaVecaModel,
      TFWavaVecaPreTrainedModel,
  )

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_wavaveca import (
      FlaxWavaVecaForCTC,
      FlaxWavaVecaForPreTraining,
      FlaxWavaVecaModel,
      FlaxWavaVecaPreTrainedModel,
  )


else:
 import sys

 __lowercase    =				_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)










"""simple docstring"""







from __future__ import annotations






class 						_A  :







    """simple docstring"""




    def __init__( self    :   Tuple    ,			__UpperCAmelCase    :   List[Any]=None):
      a						:		int											=      data
      a						:		Dict											=      None






    def __repr__( self    :   Dict):
      a						:		List[Any]											=      []
      a						:		str											=      self
      while temp:
        string_rep.append(f'''{temp.data}''')
        a						:		Tuple											=      temp.next
      return "->".join(__UpperCAmelCase)






def 					lowercase      (    A_	)->				Any:
  '''simple docstring'''







  if not elements_list:
    raise Exception("The Elements List is empty"	)

  a						:		Any											=      Node(elements_list[0]	)
  for i in range(1  ,       len(A_	)	):
    a						:		int											=      Node(elements_list[i]	)
    a						:		Optional[Any]											=      current.next
  return head


def 					lowercase      (    A_	)->				None:
  '''simple docstring'''







  if head_node is not None and isinstance(A_  ,       A_	):
    print_reverse(head_node.next	)
    print(head_node.data	)


def 					lowercase      (    )->				List[Any]:
  '''simple docstring'''







  from doctest import testmod

  testmod()

  a						:		Union[str, Any]											=      make_linked_list([14, 52, 14, 12, 43]	)
  print("Linked List:"	)
  print(A_	)
  print("Elements in Reverse:"	)
  print_reverse(A_	)


if __name__ == "__main__":
 main()






