


from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


a : List[str]		=				logging.get_logger(__name__)

a : str		=				{
    '''microsoft/focalnet-tiny''': '''https://huggingface.co/microsoft/focalnet-tiny/resolve/main/config.json''',
}
class 	lowerCamelCase_       (				lowerCAmelCase__     ,     lowerCAmelCase__				):



					'''simple docstring'''







					__UpperCAmelCase            =				"focalnet"






					def __init__(				self ,       snake_case_=2_2_4 ,       snake_case_=4 ,       snake_case_=3 ,       snake_case_=9_6 ,       snake_case_=False ,       snake_case_=[1_9_2, 3_8_4, 7_6_8, 7_6_8] ,       snake_case_=[2, 2, 6, 2] ,       snake_case_=[2, 2, 2, 2] ,       snake_case_=[3, 3, 3, 3] ,       snake_case_="gelu" ,       snake_case_=4.0 ,       snake_case_=0.0 ,       snake_case_=0.1 ,       snake_case_=False ,       snake_case_=1e-4 ,       snake_case_=False ,       snake_case_=False ,       snake_case_=False ,       snake_case_=0.0_2 ,       snake_case_=1e-5 ,       snake_case_=3_2 ,       snake_case_=None ,       snake_case_=None ,       **snake_case_ ,       )   ->			Dict:







								'''simple docstring'''

								super().__init__(**snake_case_						)

								__lowercase 					=   image_size
								__lowercase 					=   patch_size
								__lowercase 					=   num_channels
								__lowercase 					=   embed_dim
								__lowercase 					=   use_conv_embed
								__lowercase 					=   hidden_sizes
								__lowercase 					=   depths
								__lowercase 					=   focal_levels
								__lowercase 					=   focal_windows
								__lowercase 					=   hidden_act
								__lowercase 					=   mlp_ratio
								__lowercase 					=   hidden_dropout_prob
								__lowercase 					=   drop_path_rate
								__lowercase 					=   use_layerscale
								__lowercase 					=   layerscale_value
								__lowercase 					=   use_post_layernorm
								__lowercase 					=   use_post_layernorm_in_modulation
								__lowercase 					=   normalize_modulator
								__lowercase 					=   initializer_range
								__lowercase 					=   layer_norm_eps
								__lowercase 					=   encoder_stride
								__lowercase 					=   ['''stem'''] + [F'stage{idx}' for idx in range(1 ,       len(self.depths						) + 1						)]
								__lowercase					, __lowercase 					=   get_aligned_output_features_output_indices(
								    out_features=snake_case_ ,       out_indices=snake_case_ ,       stage_names=self.stage_names						)






from itertools import count


def 		lowercase_  (     _UpperCamelCase = 50  ):


			'''simple docstring'''







			__lowercase 					=   [1] * min_block_length

			for n in count(_UpperCamelCase  ):
						fill_count_functions.append(1  )

						for block_length in range(_UpperCamelCase       ,			n + 1  ):
									for block_start in range(n - block_length  ):
												fill_count_functions[n] += fill_count_functions[
												    n - block_start - block_length - 1
												]

									fill_count_functions[n] += 1

						if fill_count_functions[n] > 1_00_00_00:
									break

			return n


if __name__ == "__main__":
	print(f'''{solution() = }''')


