

from __future__ import annotations





def a(lowercase__			, lowercase__			, lowercase__			, lowercase__	):  # noqa: E741





	'''simple docstring'''
	while r - l > 1:
		snake_case_      		= (l + r) // 2
		if v[m] >= key:
			snake_case_      		= m
		else:
			snake_case_      		= m  # noqa: E741
	return r





def a(lowercase__	):





	'''simple docstring'''
	if len(lowercase__	) == 0:
		return 0

	snake_case_      		= [0] * len(lowercase__	)
	snake_case_      		= 1

	snake_case_      		= v[0]

	for i in range(1			, len(lowercase__	)	):
		if v[i] < tail[0]:
			snake_case_      		= v[i]
		elif v[i] > tail[length - 1]:
			snake_case_      		= v[i]
			length += 1
		else:
			snake_case_      		= v[i]

	return length


if __name__ == "__main__":
		import doctest

		doctest.testmod()



from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_speech_available, is_torch_available


A											=     {
    'configuration_audio_spectrogram_transformer': [
        'AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'ASTConfig',
    ]
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A											=     [
		    'AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'ASTForAudioClassification',
		    'ASTModel',
		    'ASTPreTrainedModel',
		]

try:
		if not is_speech_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A											=     ['ASTFeatureExtractor']

if TYPE_CHECKING:
		from .configuration_audio_spectrogram_transformer import (
		    AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    ASTConfig,
		)

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_audio_spectrogram_transformer import (
				    AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
				    ASTForAudioClassification,
				    ASTModel,
				    ASTPreTrainedModel,
				)

		try:
				if not is_speech_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_audio_spectrogram_transformer import ASTFeatureExtractor


else:
		import sys

		A											=     _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
