




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_speech_available,
    is_torch_available,
)


SCREAMING_SNAKE_CASE_    :       Tuple       =							{
    '''configuration_speech_to_text_2''': ['''SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''Speech2Text2Config'''],
    '''processing_speech_to_text_2''': ['''Speech2Text2Processor'''],
    '''tokenization_speech_to_text_2''': ['''Speech2Text2Tokenizer'''],
}


try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE_    :       List[str]       =							[
     '''SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''Speech2Text2ForCausalLM''',
     '''Speech2Text2PreTrainedModel''',
 ]


if TYPE_CHECKING:
 from .configuration_speech_to_text_a import SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP, SpeechaTextaConfig
 from .processing_speech_to_text_a import SpeechaTextaProcessor
 from .tokenization_speech_to_text_a import SpeechaTextaTokenizer

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_speech_to_text_a import (
      SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST,
      SpeechaTextaForCausalLM,
      SpeechaTextaPreTrainedModel,
  )

else:
 import sys

 SCREAMING_SNAKE_CASE_    :       Dict       =							_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)












from __future__ import annotations

import sys
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    if n < 0:
        raise ValueError("""Negative arguments are not supported"""		)
    return _fib(UpperCAmelCase_		)[0]
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    if n == 0:  # (F(0), F(1))
        return (0, 1)

    # F(2n) = F(n)[2F(n+1) − F(n)]
    # F(2n+1) = F(n+1)^2+F(n)^2
    a__			,		a__  			=							_fib(n // 2		)
    a__  			=							a * (b * 2 - a)
    a__  			=							a * a + b * b
    return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
 SCREAMING_SNAKE_CASE_    :       Dict       =							int(sys.argv[1])
 print(F"fibonacci({n}) is {fibonacci(n)}")






