






from ....configuration_utils import PretrainedConfig
from ....utils import logging


a						:			Union[str, Any]     	=					logging.get_logger(__name__)

a						:			Any     	=					{
    "Visual-Attention-Network/van-base": (
        "https://huggingface.co/Visual-Attention-Network/van-base/blob/main/config.json"
    ),
}
class        a       (					lowercase__  ):



      """simple docstring"""


      a    :					Optional[Any]							=      'van'
      def __init__( self   :     Union[str, Any]						, __lowercase   :     int=224						, __lowercase   :     List[Any]=3						, __lowercase   :     List[str]=[7, 3, 3, 3]						, __lowercase   :     Tuple=[4, 2, 2, 2]						, __lowercase   :     Any=[64, 128, 320, 512]						, __lowercase   :     str=[3, 3, 12, 3]						, __lowercase   :     Tuple=[8, 8, 4, 4]						, __lowercase   :     Union[str, Any]="gelu"						, __lowercase   :     Optional[int]=0.02						, __lowercase   :     Union[str, Any]=1e-6						, __lowercase   :     Tuple=1e-2						, __lowercase   :     int=0.0						, __lowercase   :     Any=0.0						, **__lowercase   :     Any						, )				-> List[str]:
        super().__init__(**__lowercase   )
        __UpperCAmelCase				:      Dict	 =    image_size
        __UpperCAmelCase				:      Dict	 =    num_channels
        __UpperCAmelCase				:      List[str]	 =    patch_sizes
        __UpperCAmelCase				:      Tuple	 =    strides
        __UpperCAmelCase				:      List[Any]	 =    hidden_sizes
        __UpperCAmelCase				:      Tuple	 =    depths
        __UpperCAmelCase				:      Optional[int]	 =    mlp_ratios
        __UpperCAmelCase				:      List[Any]	 =    hidden_act
        __UpperCAmelCase				:      Union[str, Any]	 =    initializer_range
        __UpperCAmelCase				:      Dict	 =    layer_norm_eps
        __UpperCAmelCase				:      Union[str, Any]	 =    layer_scale_init_value
        __UpperCAmelCase				:      Optional[int]	 =    drop_path_rate
        __UpperCAmelCase				:      Optional[int]	 =    dropout_rate




'''simple docstring'''
def 		A_(     A						:		list[int]):
							UpperCamelCase   			=     []
							if len(A) == 1:
														return [nums.copy()]
							for _ in range(len(A)):
														UpperCamelCase   			=     nums.pop(0)
														UpperCamelCase   			=     permute(A)
														for perm in permutations:
																					perm.append(A)
														result.extend(A)
														nums.append(A)
							return result







def 		A_(     A						:		str):

							def backtrack(A						:		str):
														if start == len(A) - 1:
																					output.append(nums[:])
														else:
																					for i in range(A		,     len(A)):
																												UpperCamelCase			,	UpperCamelCase   			=     nums[i], nums[start]
																												backtrack(start + 1)
																												UpperCamelCase			,	UpperCamelCase   			=     nums[i], nums[start]  # backtrack

							UpperCamelCase   			=     []
							backtrack(0)
							return output


if __name__ == "__main__":
						import doctest

						# use res to print the data in permute2 function
						lowerCAmelCase					:    Dict           = permutea([1, 2, 3])
						print(res)
						doctest.testmod()




