
from typing import TYPE_CHECKING

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


__lowerCAmelCase     :	Optional[Any]       			=  {
    'configuration_whisper': ['WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP', 'WhisperConfig', 'WhisperOnnxConfig'],
    'feature_extraction_whisper': ['WhisperFeatureExtractor'],
    'processing_whisper': ['WhisperProcessor'],
    'tokenization_whisper': ['WhisperTokenizer'],
}

try:
    if not is_tokenizers_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    __lowerCAmelCase     :	Dict       			=  ['WhisperTokenizerFast']

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    __lowerCAmelCase     :	Dict       			=  [
        'WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST',
        'WhisperForConditionalGeneration',
        'WhisperModel',
        'WhisperPreTrainedModel',
        'WhisperForAudioClassification',
    ]

try:
    if not is_tf_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    __lowerCAmelCase     :	Union[str, Any]       			=  [
        'TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST',
        'TFWhisperForConditionalGeneration',
        'TFWhisperModel',
        'TFWhisperPreTrainedModel',
    ]

try:
    if not is_flax_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    __lowerCAmelCase     :	Optional[Any]       			=  [
        'FlaxWhisperForConditionalGeneration',
        'FlaxWhisperModel',
        'FlaxWhisperPreTrainedModel',
        'FlaxWhisperForAudioClassification',
    ]


if TYPE_CHECKING:
    from .configuration_whisper import WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP, WhisperConfig, WhisperOnnxConfig
    from .feature_extraction_whisper import WhisperFeatureExtractor
    from .processing_whisper import WhisperProcessor
    from .tokenization_whisper import WhisperTokenizer

    try:
        if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .tokenization_whisper_fast import WhisperTokenizerFast

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_whisper import (
            WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
            WhisperForAudioClassification,
            WhisperForConditionalGeneration,
            WhisperModel,
            WhisperPreTrainedModel,
        )

    try:
        if not is_tf_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_tf_whisper import (
            TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
            TFWhisperForConditionalGeneration,
            TFWhisperModel,
            TFWhisperPreTrainedModel,
        )

    try:
        if not is_flax_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_flax_whisper import (
            FlaxWhisperForAudioClassification,
            FlaxWhisperForConditionalGeneration,
            FlaxWhisperModel,
            FlaxWhisperPreTrainedModel,
        )

else:
    import sys

    __lowerCAmelCase     :	Optional[int]       			=  _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)



def a__       (			A_   ):






  '''simple docstring'''





  if len(A_   ) < 2:
    return collection

  def circle_sort_util(A_,	A_,	A_   ) -> bool:
    __magic_name__								=			False

    if low == high:
      return swapped

    __magic_name__								=			low
    __magic_name__								=			high

    while left < right:
      if collection[left] > collection[right]:
        __magic_name__	,       __magic_name__								=			(
            collection[right],
            collection[left],
        )
        __magic_name__								=			True

      left += 1
      right -= 1

    if left == right and collection[left] > collection[right + 1]:
      __magic_name__	,       __magic_name__								=			(
          collection[right + 1],
          collection[left],
      )

      __magic_name__								=			True

    __magic_name__								=			low + int((high - low) / 2   )
    __magic_name__								=			circle_sort_util(A_,	A_,	A_   )
    __magic_name__								=			circle_sort_util(A_,	mid + 1,	A_   )

    return swapped or left_swap or right_swap

  __magic_name__								=			True

  while is_not_sorted is True:
    __magic_name__								=			circle_sort_util(A_,	0,	len(A_   ) - 1   )

  return collection


if __name__ == "__main__":
    __lowerCAmelCase     :	Union[str, Any]       			=  input('Enter numbers separated by a comma:\n').strip()
    __lowerCAmelCase     :	Tuple       			=  [int(item) for item in user_input.split(',')]
    print(circle_sort(unsorted))

