

import importlib
import os
import sys


# This is required to make the module import works (when the python process is running from the root of the repo)
sys.path.append('.')

def 		UpperCamelCase   (lowercase_:					str   )	-> List[Any]:
	A__				:       Union[str, Any]	  =						test_file.split(os.path.sep   )
	if components[0:2] != ["tests", "models"]:
		raise ValueError(
		    """`test_file` should start with `tests/models/` (with `/` being the OS specific path separator). Got """
		    f"""{test_file} instead."""   )
	A__				:       Optional[Any]	  =						components[-1]
	if not test_fn.endswith("""py"""   ):
		raise ValueError(f"""`test_file` should be a python file. Got {test_fn} instead."""   )
	if not test_fn.startswith("""test_modeling_"""   ):
		raise ValueError(
		    f"""`test_file` should point to a file name of the form `test_modeling_*.py`. Got {test_fn} instead."""   )

	A__				:       List[Any]	  =						components[:-1] + [test_fn.replace(""".py"""       , """"""   )]
	A__				:       Tuple	  =						""".""".join(lowercase_   )

	return test_module_path

def 		UpperCamelCase   (lowercase_:					List[str]   )	-> Optional[int]:
	A__				:       List[Any]	  =						get_module_path(lowercase_   )
	A__				:       List[Any]	  =						importlib.import_module(lowercase_   )

	return test_module

def 		UpperCamelCase   (lowercase_:					Union[str, Any]   )	-> Tuple:
	A__				:       str	  =						[]
	A__				:       List[str]	  =						get_test_module(lowercase_   )
	for attr in dir(lowercase_   ):
		if attr.endswith("""ModelTester"""   ):
			tester_classes.append(getattr(lowercase_       , lowercase_   )   )

    # sort with class names
	return sorted(lowercase_       , key=lambda lowercase_   : x.__name__   )

def 		UpperCamelCase   (lowercase_:					str   )	-> Dict:
	A__				:       str	  =						[]
	A__				:       List[Any]	  =						get_test_module(lowercase_   )
	for attr in dir(lowercase_   ):
		A__				:       Optional[Any]	  =						getattr(lowercase_       , lowercase_   )
		# (TF/Flax)ModelTesterMixin is also an attribute in specific model test module. Let's exclude them by checking
		# `all_model_classes` is not empty (which also excludes other special classes).
		A__				:       List[Any]	  =						getattr(lowercase_       , """all_model_classes"""       , []   )
		if len(lowercase_   ) > 0:
			test_classes.append(lowercase_   )

    # sort with class names
	return sorted(lowercase_       , key=lambda lowercase_   : x.__name__   )

def 		UpperCamelCase   (lowercase_:					Optional[int]   )	-> int:
	A__				:       Any	  =						get_test_classes(lowercase_   )
	A__				:       int	  =						set()
	for test_class in test_classes:
		model_classes.update(test_class.all_model_classes   )

	# sort with class names
	return sorted(lowercase_       , key=lambda lowercase_   : x.__name__   )

def 		UpperCamelCase   (lowercase_:					Optional[int]   )	-> Tuple:
	A__				:       Any	  =						test_class()
	if hasattr(lowercase_       , """setUp"""   ):
		test.setUp()

	A__				:       List[Any]	  =						None
	if hasattr(lowercase_       , """model_tester"""   ):
		# `(TF/Flax)ModelTesterMixin` has this attribute default to `None`. Let's skip this case.
		if test.model_tester is not None:
			A__				:       Optional[int]	  =						test.model_tester.__class__

	return model_tester

def 		UpperCamelCase   (lowercase_:					str       , lowercase_:					Union[str, Any]   )	-> str:
	A__				:       str	  =						get_test_classes(lowercase_   )

	A__				:       str	  =						[]
	for test_class in test_classes:
		if model_class in test_class.all_model_classes:
			target_test_classes.append(lowercase_   )

    # sort with class names
	return sorted(lowercase_       , key=lambda lowercase_   : x.__name__   )

def 		UpperCamelCase   (lowercase_:					Dict       , lowercase_:					int   )	-> Tuple:
	A__				:       int	  =						get_test_classes_for_model(lowercase_       , lowercase_   )

	A__				:       List[str]	  =						[]
	for test_class in test_classes:
		A__				:       str	  =						get_model_tester_from_test_class(lowercase_   )
		if tester_class is not None:
			tester_classes.append(lowercase_   )

    # sort with class names
	return sorted(lowercase_       , key=lambda lowercase_   : x.__name__   )

def 		UpperCamelCase   (lowercase_:					Tuple   )	-> Optional[int]:
	A__				:       Tuple	  =						get_test_classes(lowercase_   )
	A__				:       Dict	  =						{test_class: get_model_tester_from_test_class(lowercase_   ) for test_class in test_classes}
	return test_tester_mapping

def 		UpperCamelCase   (lowercase_:					Dict   )	-> Any:
	A__				:       int	  =						get_model_classes(lowercase_   )
	A__				:       Dict	  =						{
	    model_class: get_test_classes_for_model(lowercase_       , lowercase_   ) for model_class in model_classes
	}
	return model_test_mapping

def 		UpperCamelCase   (lowercase_:					Optional[int]   )	-> Optional[int]:
	A__				:       Dict	  =						get_model_classes(lowercase_   )
	A__				:       Any	  =						{
	    model_class: get_tester_classes_for_model(lowercase_       , lowercase_   ) for model_class in model_classes
	}
	return model_to_tester_mapping


def 		UpperCamelCase   (lowercase_:					Dict   )	-> List[Any]:
	if isinstance(lowercase_       , lowercase_   ):
		return o
	elif isinstance(lowercase_       , lowercase_   ):
		return o.__name__
	elif isinstance(lowercase_       , (list, tuple)   ):
		return [to_json(lowercase_   ) for x in o]
	elif isinstance(lowercase_       , lowercase_   ):
		return {to_json(lowercase_   ): to_json(lowercase_   ) for k, v in o.items()}
	else:
		return o






def 		UpperCamelCase   (lowercase_:					list   )	-> list:
	A__				:       Union[str, Any]	  =						False
	while is_sorted is False:  # Until all the indices are traversed keep looping
		A__				:       Dict	  =						True
		for i in range(0       , len(lowercase_   ) - 1       , 2   ):  # iterating over all even indices
			if input_list[i] > input_list[i + 1]:
				A__  ,  A__				:       Dict	  =						input_list[i + 1], input_list[i]
				# swapping if elements not in order
				A__				:       Optional[Any]	  =						False

		for i in range(1       , len(lowercase_   ) - 1       , 2   ):  # iterating over all odd indices
			if input_list[i] > input_list[i + 1]:
				A__  ,  A__				:       Dict	  =						input_list[i + 1], input_list[i]
				# swapping if elements not in order
				A__				:       Optional[Any]	  =						False
	return input_list


if __name__ == "__main__":
	print('Enter list to be sorted')
	A_			:					Optional[int]    			=     [int(x) for x in input().split()]
	# inputing elements of the list in one line
	A_			:					Optional[int]    			=     odd_even_sort(input_list)
	print('The sorted list is')
	print(sorted_list)



