

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


SCREAMING_SNAKE_CASE_            = logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_            = {
    'microsoft/focalnet-tiny': 'https://huggingface.co/microsoft/focalnet-tiny/resolve/main/config.json',
}

class 			a					(		UpperCAmelCase							,	UpperCAmelCase			):
						_lowercase        =     "focalnet"


						def __init__(    self  ,   A_=224  ,   A_=4  ,   A_=3  ,   A_=96  ,   A_=False  ,   A_=[192, 384, 768, 768]  ,   A_=[2, 2, 6, 2]  ,   A_=[2, 2, 2, 2]  ,   A_=[3, 3, 3, 3]  ,   A_="gelu"  ,   A_=4.0  ,   A_=0.0  ,   A_=0.1  ,   A_=False  ,   A_=1e-4  ,   A_=False  ,   A_=False  ,   A_=False  ,   A_=0.02  ,   A_=1e-5  ,   A_=32  ,   A_=None  ,   A_=None  ,   **A_  ,   ):







										'''simple docstring'''


										super().__init__(**A_		)

										_UpperCAmelCase    :						Dict							=      image_size
										_UpperCAmelCase    :						List[str]							=      patch_size
										_UpperCAmelCase    :						Union[str, Any]							=      num_channels
										_UpperCAmelCase    :						int							=      embed_dim
										_UpperCAmelCase    :						Any							=      use_conv_embed
										_UpperCAmelCase    :						Union[str, Any]							=      hidden_sizes
										_UpperCAmelCase    :						Any							=      depths
										_UpperCAmelCase    :						Tuple							=      focal_levels
										_UpperCAmelCase    :						Optional[int]							=      focal_windows
										_UpperCAmelCase    :						Tuple							=      hidden_act
										_UpperCAmelCase    :						Optional[Any]							=      mlp_ratio
										_UpperCAmelCase    :						Any							=      hidden_dropout_prob
										_UpperCAmelCase    :						Dict							=      drop_path_rate
										_UpperCAmelCase    :						Optional[int]							=      use_layerscale
										_UpperCAmelCase    :						Tuple							=      layerscale_value
										_UpperCAmelCase    :						List[str]							=      use_post_layernorm
										_UpperCAmelCase    :						int							=      use_post_layernorm_in_modulation
										_UpperCAmelCase    :						int							=      normalize_modulator
										_UpperCAmelCase    :						List[Any]							=      initializer_range
										_UpperCAmelCase    :						List[str]							=      layer_norm_eps
										_UpperCAmelCase    :						Dict							=      encoder_stride
										_UpperCAmelCase    :						Dict							=      ["stem"] + [f'stage{idx}' for idx in range(1  ,   len(self.depths		) + 1		)]
										_UpperCAmelCase						,							_UpperCAmelCase    :						Optional[Any]							=      get_aligned_output_features_output_indices(
										    out_features=A_  ,   out_indices=A_  ,   stage_names=self.stage_names		)





from typing import Any

class 			a					:


						def __init__(    self  ,   A_		):







										'''simple docstring'''


										_UpperCAmelCase    :						List[Any]							=      data
										_UpperCAmelCase    :						Any							=      None







class 			a					:


						def __init__(    self		):







										'''simple docstring'''


										_UpperCAmelCase    :						Union[str, Any]							=      None


						def     _UpperCAmelCase			(    self		):







										'''simple docstring'''


										_UpperCAmelCase    :						str							=      self.head
										while temp is not None:
														print(temp.data  ,   end=" "		)
														_UpperCAmelCase    :						str							=      temp.next
										print()


						def     _UpperCAmelCase			(    self  ,   A_		):







										'''simple docstring'''


										_UpperCAmelCase    :						Optional[int]							=      Node(A_		)
										_UpperCAmelCase    :						Tuple							=      self.head
										_UpperCAmelCase    :						Tuple							=      new_node





						def     _UpperCAmelCase			(    self  ,   A_  ,   A_		):







										'''simple docstring'''


										if node_data_a == node_data_a:
														return
										else:
														_UpperCAmelCase    :						int							=      self.head
														while node_a is not None and node_a.data != node_data_a:
																		_UpperCAmelCase    :						Tuple							=      node_a.next

														_UpperCAmelCase    :						Dict							=      self.head
														while node_a is not None and node_a.data != node_data_a:
																		_UpperCAmelCase    :						List[Any]							=      node_a.next

														if node_a is None or node_a is None:
																		return

														_UpperCAmelCase						,							_UpperCAmelCase    :						Optional[int]							=      node_a.data, node_a.data


if __name__ == "__main__":
					SCREAMING_SNAKE_CASE_            = LinkedList()
					for i in range(5, 0, -1):
										ll.push(i)

					ll.print_list()

					ll.swap_nodes(1, 4)
					print('After swapping')
					ll.print_list()


