






'''simple docstring'''





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


_UpperCamelCase						:						int  =					logging.get_logger(__name__)

_UpperCamelCase						:						str  =					{
    'Visual-Attention-Network/van-base': (
        'https://huggingface.co/Visual-Attention-Network/van-base/blob/main/config.json'
    ),
}


class  snake_case__      (					UpperCamelCase):
					a_        =					"van"




					def __init__(  self  :		Union[str, Any]				, _A  :		List[str]=2_24				, _A  :		Any=3				, _A  :		Any=[7, 3, 3, 3]				, _A  :		Union[str, Any]=[4, 2, 2, 2]				, _A  :		Any=[64, 1_28, 3_20, 5_12]				, _A  :		List[Any]=[3, 3, 12, 3]				, _A  :		int=[8, 8, 4, 4]				, _A  :		Optional[Any]="gelu"				, _A  :		Any=0.02				, _A  :		List[Any]=1e-6				, _A  :		Union[str, Any]=1e-2				, _A  :		List[Any]=0.0				, _A  :		Optional[Any]=0.0				, **_A  :		Tuple				, )    ->							List[str]:
								super().__init__(**_A      )
								UpperCAmelCase_      :       Optional[Any]          =       image_size
								UpperCAmelCase_      :       Optional[Any]          =       num_channels
								UpperCAmelCase_      :       Optional[Any]          =       patch_sizes
								UpperCAmelCase_      :       Tuple          =       strides
								UpperCAmelCase_      :       Optional[Any]          =       hidden_sizes
								UpperCAmelCase_      :       Tuple          =       depths
								UpperCAmelCase_      :       Tuple          =       mlp_ratios
								UpperCAmelCase_      :       Any          =       hidden_act
								UpperCAmelCase_      :       Optional[int]          =       initializer_range
								UpperCAmelCase_      :       Optional[int]          =       layer_norm_eps
								UpperCAmelCase_      :       Tuple          =       layer_scale_init_value
								UpperCAmelCase_      :       Union[str, Any]          =       drop_path_rate
								UpperCAmelCase_      :       List[str]          =       dropout_rate










'''simple docstring'''





_UpperCamelCase						:						List[str]  =					[sum(int(c, 10) ** 2 for c in i.__str__()) for i in range(100_000)]
def __UpperCAmelCase   (					A					:			int		)    ->   int:
			UpperCAmelCase_      :       str          =       0
			while number:
						# Increased Speed Slightly by checking every 5 digits together.
						sum_of_digits_squared += DIGITS_SQUARED[number % 1_0_0_0_0_0]
						number //= 1_0_0_0_0_0

			return sum_of_digits_squared


# There are 2 Chains made,
# One ends with 89 with the chain member 58 being the one which when declared first,
# there will be the least number of iterations for all the members to be checked.

# The other one ends with 1 and has only one element 1.

# So 58 and 1 are chosen to be declared at the starting.

# Changed dictionary to an array to quicken the solution
_UpperCamelCase						:						list[bool | None]  =					[None] * 10_000_000
_UpperCamelCase						:						List[str]  =					True
_UpperCamelCase						:						Tuple  =					False
def __UpperCAmelCase   (					A					:			int		)    ->   bool:

			if CHAINS[number - 1] is not None:
						return CHAINS[number - 1]  # type: ignore

			UpperCAmelCase_      :       Dict          =       chain(next_number(A		)		)
			UpperCAmelCase_      :       int          =       number_chain

			while number < 1_0_0_0_0_0_0_0:
						UpperCAmelCase_      :       Optional[Any]          =       number_chain
						number *= 1_0

			return number_chain
def __UpperCAmelCase   (					A					:			int = 1_0_0_0_0_0_0_0		)    ->   int:
			for i in range(1			,       A		):
						if CHAINS[i] is None:
									chain(i + 1		)

			return CHAINS[:number].count(A		)


if __name__ == "__main__":
						import doctest

						doctest.testmod()
						print(f'''{solution() = }''')


