






import copy
import os
from typing import Union

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


SCREAMING_SNAKE_CASE__      :			Tuple							=		logging.get_logger(__name__)

SCREAMING_SNAKE_CASE__      :			int							=		{
    """BridgeTower/bridgetower-base""": """https://huggingface.co/BridgeTower/bridgetower-base/blob/main/config.json""",
    """BridgeTower/bridgetower-base-itm-mlm""": (
        """https://huggingface.co/BridgeTower/bridgetower-base-itm-mlm/blob/main/config.json"""
    ),
}
class 						lowerCamelCase_				(      lowerCamelCase ):
				a__					       =  '''bridgetower_vision_model'''







				def __init__(						self       ,					__lowerCAmelCase=7_6_8       ,					__lowerCAmelCase=1_2       ,					__lowerCAmelCase=3       ,					__lowerCAmelCase=1_6       ,					__lowerCAmelCase=2_8_8       ,					__lowerCAmelCase=1       ,					__lowerCAmelCase=1E-05       ,					__lowerCAmelCase=False       ,					__lowerCAmelCase=True       ,					__lowerCAmelCase=False       ,					**__lowerCAmelCase       ,					):
								"""simple docstring"""
								super().__init__(**__lowerCAmelCase     )
								__magic_name__		:Optional[int]        =      hidden_size
								__magic_name__		:Dict        =      num_hidden_layers
								__magic_name__		:Optional[Any]        =      num_channels
								__magic_name__		:List[Any]        =      patch_size
								__magic_name__		:str        =      image_size
								__magic_name__		:Optional[int]        =      initializer_factor
								__magic_name__		:Optional[Any]        =      layer_norm_eps
								__magic_name__		:Optional[Any]        =      stop_gradient
								__magic_name__		:List[str]        =      share_layernorm
								__magic_name__		:Tuple        =      remove_last_layer







				@classmethod
				def 			A	(						cls       ,					__lowerCAmelCase       ,					**__lowerCAmelCase     ):
								"""simple docstring"""
								__magic_name__		:Tuple        =      cls.get_config_dict(__lowerCAmelCase       ,					**__lowerCAmelCase     )

								if config_dict.get('''model_type'''     ) == "bridgetower":
												__magic_name__		:List[str]        =      config_dict['''text_config''']

								if "model_type" in config_dict and hasattr(cls       ,					'''model_type'''     ) and config_dict["model_type"] != cls.model_type:
												logger.warning(
												    F'''You are using a model of type {config_dict["model_type"]} to instantiate a model of type '''
												    F'''{cls.model_type}. This is not supported for all configurations of models and can yield errors.'''     )

								return cls.from_dict(__lowerCAmelCase       ,					**__lowerCAmelCase     )







class 						lowerCamelCase_				(      lowerCamelCase ):
				a__					       =  '''bridgetower_text_model'''







				def __init__(						self       ,					__lowerCAmelCase=5_0_2_6_5       ,					__lowerCAmelCase=7_6_8       ,					__lowerCAmelCase=1_2       ,					__lowerCAmelCase=1_2       ,					__lowerCAmelCase=1       ,					__lowerCAmelCase=3_0_7_2       ,					__lowerCAmelCase="gelu"       ,					__lowerCAmelCase=0.1       ,					__lowerCAmelCase=0.1       ,					__lowerCAmelCase=5_1_4       ,					__lowerCAmelCase=1       ,					__lowerCAmelCase=1E-05       ,					__lowerCAmelCase=1       ,					__lowerCAmelCase=0       ,					__lowerCAmelCase=2       ,					__lowerCAmelCase="absolute"       ,					__lowerCAmelCase=True       ,					**__lowerCAmelCase       ,					):
								"""simple docstring"""
								super().__init__(**__lowerCAmelCase     )

								__magic_name__		:List[Any]        =      vocab_size
								__magic_name__		:Any        =      hidden_size
								__magic_name__		:Tuple        =      num_hidden_layers
								__magic_name__		:List[Any]        =      num_attention_heads
								__magic_name__		:Dict        =      hidden_act
								__magic_name__		:Optional[int]        =      initializer_factor
								__magic_name__		:Union[str, Any]        =      intermediate_size
								__magic_name__		:List[str]        =      hidden_dropout_prob
								__magic_name__		:Optional[int]        =      attention_probs_dropout_prob
								__magic_name__		:List[Any]        =      max_position_embeddings
								__magic_name__		:str        =      type_vocab_size
								__magic_name__		:Union[str, Any]        =      layer_norm_eps
								__magic_name__		:List[Any]        =      position_embedding_type
								__magic_name__		:Dict        =      use_cache
								__magic_name__		:Tuple        =      pad_token_id
								__magic_name__		:Dict        =      bos_token_id
								__magic_name__		:Union[str, Any]        =      eos_token_id







				@classmethod
				def 			A	(						cls       ,					__lowerCAmelCase       ,					**__lowerCAmelCase     ):
								"""simple docstring"""
								__magic_name__		:Any        =      cls.get_config_dict(__lowerCAmelCase       ,					**__lowerCAmelCase     )

								if config_dict.get('''model_type'''     ) == "bridgetower":
												__magic_name__		:Dict        =      config_dict['''text_config''']

								if "model_type" in config_dict and hasattr(cls       ,					'''model_type'''     ) and config_dict["model_type"] != cls.model_type:
												logger.warning(
												    F'''You are using a model of type {config_dict["model_type"]} to instantiate a model of type '''
												    F'''{cls.model_type}. This is not supported for all configurations of models and can yield errors.'''     )

								return cls.from_dict(__lowerCAmelCase       ,					**__lowerCAmelCase     )







class 						lowerCamelCase_				(      lowerCamelCase ):
				a__					       =  '''bridgetower'''







				def __init__(						self       ,					__lowerCAmelCase=True       ,					__lowerCAmelCase="gelu"       ,					__lowerCAmelCase=7_6_8       ,					__lowerCAmelCase=1       ,					__lowerCAmelCase=1E-05       ,					__lowerCAmelCase=False       ,					__lowerCAmelCase="add"       ,					__lowerCAmelCase=1_2       ,					__lowerCAmelCase=6       ,					__lowerCAmelCase=False       ,					__lowerCAmelCase=False       ,					__lowerCAmelCase=None       ,					__lowerCAmelCase=None       ,					**__lowerCAmelCase       ,					):
								"""simple docstring"""
								__magic_name__		:Optional[int]        =      kwargs.pop('''text_config_dict'''       ,					__lowerCAmelCase     )
								__magic_name__		:Any        =      kwargs.pop('''vision_config_dict'''       ,					__lowerCAmelCase     )

								super().__init__(**__lowerCAmelCase     )
								__magic_name__		:Optional[Any]        =      share_cross_modal_transformer_layers
								__magic_name__		:Dict        =      hidden_act
								__magic_name__		:str        =      hidden_size
								__magic_name__		:Tuple        =      initializer_factor
								__magic_name__		:str        =      layer_norm_eps
								__magic_name__		:int        =      share_link_tower_layers
								__magic_name__		:Any        =      link_tower_type
								__magic_name__		:Tuple        =      num_attention_heads
								__magic_name__		:Any        =      num_hidden_layers
								__magic_name__		:Union[str, Any]        =      tie_word_embeddings
								__magic_name__		:Optional[int]        =      init_layernorm_from_vision_encoder

								if text_config is None:
												__magic_name__		:str        =      {}
												logger.info('''`text_config` is `None`. Initializing the `BridgeTowerTextConfig` with default values.'''     )

								if vision_config is None:
												__magic_name__		:Optional[Any]        =      {}
												logger.info('''`vision_config` is `None`. Initializing the `BridgeTowerVisionConfig` with default values.'''     )

								__magic_name__		:Any        =      BridgeTowerTextConfig(**__lowerCAmelCase     )
								__magic_name__		:List[Any]        =      BridgeTowerVisionConfig(**__lowerCAmelCase     )







				@classmethod
				def 			A	(						cls       ,					__lowerCAmelCase       ,					__lowerCAmelCase       ,					**__lowerCAmelCase     ):
								"""simple docstring"""
								return cls(text_config=text_config.to_dict()       ,					vision_config=vision_config.to_dict()       ,					**__lowerCAmelCase     )







				def 			A	(						self     ):
								"""simple docstring"""
								__magic_name__		:Optional[Any]        =      copy.deepcopy(self.__dict__     )
								__magic_name__		:List[str]        =      self.text_config.to_dict()
								__magic_name__		:Optional[int]        =      self.vision_config.to_dict()
								__magic_name__		:Optional[int]        =      self.__class__.model_type
								return output














from __future__ import annotations

def      __lowercase					( snake_case,  snake_case ):







				"""simple docstring"""






				__magic_name__		:Tuple        =      0
				__magic_name__		:Tuple        =      len(snake_case ) - 1

				while i < j:
								if nums[i] + nums[j] == target:
												return [i, j]
								elif nums[i] + nums[j] < target:
												__magic_name__		:str        =      i + 1
								else:
												__magic_name__		:List[Any]        =      j - 1

				return []


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					print(f"{two_pointer([2, 7, 11, 15], 9) = }")






