




"""simple docstring"""







from typing import TYPE_CHECKING

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


__A   :  Optional[int]					=      {
    'configuration_electra': ['ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP', 'ElectraConfig', 'ElectraOnnxConfig'],
    'tokenization_electra': ['ElectraTokenizer'],
}

try:
						if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A   :  List[Any]					=      ['ElectraTokenizerFast']

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A   :  List[str]					=      [
						    'ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'ElectraForCausalLM',
						    'ElectraForMaskedLM',
						    'ElectraForMultipleChoice',
						    'ElectraForPreTraining',
						    'ElectraForQuestionAnswering',
						    'ElectraForSequenceClassification',
						    'ElectraForTokenClassification',
						    'ElectraModel',
						    'ElectraPreTrainedModel',
						    'load_tf_weights_in_electra',
						]

try:
						if not is_tf_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A   :  Optional[int]					=      [
						    'TF_ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'TFElectraForMaskedLM',
						    'TFElectraForMultipleChoice',
						    'TFElectraForPreTraining',
						    'TFElectraForQuestionAnswering',
						    'TFElectraForSequenceClassification',
						    'TFElectraForTokenClassification',
						    'TFElectraModel',
						    'TFElectraPreTrainedModel',
						]

try:
						if not is_flax_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A   :  Optional[Any]					=      [
						    'FlaxElectraForCausalLM',
						    'FlaxElectraForMaskedLM',
						    'FlaxElectraForMultipleChoice',
						    'FlaxElectraForPreTraining',
						    'FlaxElectraForQuestionAnswering',
						    'FlaxElectraForSequenceClassification',
						    'FlaxElectraForTokenClassification',
						    'FlaxElectraModel',
						    'FlaxElectraPreTrainedModel',
						]


if TYPE_CHECKING:
						from .configuration_electra import ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP, ElectraConfig, ElectraOnnxConfig
						from .tokenization_electra import ElectraTokenizer

						try:
												if not is_tokenizers_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_electra_fast import ElectraTokenizerFast

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_electra import (
												    ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST,
												    ElectraForCausalLM,
												    ElectraForMaskedLM,
												    ElectraForMultipleChoice,
												    ElectraForPreTraining,
												    ElectraForQuestionAnswering,
												    ElectraForSequenceClassification,
												    ElectraForTokenClassification,
												    ElectraModel,
												    ElectraPreTrainedModel,
												    load_tf_weights_in_electra,
												)

						try:
												if not is_tf_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_tf_electra import (
												    TF_ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST,
												    TFElectraForMaskedLM,
												    TFElectraForMultipleChoice,
												    TFElectraForPreTraining,
												    TFElectraForQuestionAnswering,
												    TFElectraForSequenceClassification,
												    TFElectraForTokenClassification,
												    TFElectraModel,
												    TFElectraPreTrainedModel,
												)

						try:
												if not is_flax_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_flax_electra import (
												    FlaxElectraForCausalLM,
												    FlaxElectraForMaskedLM,
												    FlaxElectraForMultipleChoice,
												    FlaxElectraForPreTraining,
												    FlaxElectraForQuestionAnswering,
												    FlaxElectraForSequenceClassification,
												    FlaxElectraForTokenClassification,
												    FlaxElectraModel,
												    FlaxElectraPreTrainedModel,
												)

else:
						import sys

						__A   :  Tuple					=      _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)






"""simple docstring"""







def 						snake_case__       (					_lowerCamelCase,  _lowerCamelCase				)			->int:






		"""simple docstring"""


		return abs(_lowerCamelCase				) if a == 0 else greatest_common_divisor(b % a,  _lowerCamelCase				)

def 						snake_case__       (					_lowerCamelCase,  _lowerCamelCase				)			->int:






		"""simple docstring"""


		while y:  # --> when y=0 then loop will terminate and return x as final GCD.
				__lowercase						,__lowercase				:		Any												=				y, x % y
		return abs(_lowerCamelCase				)

def 						snake_case__       (					)			->Optional[int]:






		"""simple docstring"""


		try:
				__lowercase				:		Optional[int]												=				input("Enter two integers separated by comma (,): "				).split(","				)
				__lowercase				:		Optional[Any]												=				int(nums[0]				)
				__lowercase				:		str												=				int(nums[1]				)
				print(
				    F'greatest_common_divisor({num_a}, {num_a}) = '
				    F'{greatest_common_divisor(_lowerCamelCase,  _lowerCamelCase				)}'				)
				print(F'By iterative gcd({num_a}, {num_a}) = {gcd_by_iterative(_lowerCamelCase,  _lowerCamelCase				)}'				)
		except (IndexError, UnboundLocalError, ValueError):
				print("Wrong input"				)


if __name__ == "__main__":
						main()
