


def 							UpperCamelCase_(					_A :list[list[int]]					,  _A :int					,  _A :int					,  _A :set	)->		int:
			UpperCamelCase__,   UpperCamelCase__       =							len(_A	), len(grid[0]	)
			if (
			    min(_A					,  _A	) < 0
			    or row == row_length
			    or col == col_length
			    or (row, col) in visit
			    or grid[row][col] == 1
			):
						return 0
			if row == row_length - 1 and col == col_length - 1:
						return 1

			visit.add((row, col)	)

			UpperCamelCase__       =							0
			count += depth_first_search(_A					,  row + 1					,  _A					,  _A	)
			count += depth_first_search(_A					,  row - 1					,  _A					,  _A	)
			count += depth_first_search(_A					,  _A					,  col + 1					,  _A	)
			count += depth_first_search(_A					,  _A					,  col - 1					,  _A	)

			visit.remove((row, col)	)
			return count


if __name__ == "__main__":
						import doctest

						doctest.testmod()






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


__UpperCamelCase     		=							logging.get_logger(__name__)

__UpperCamelCase     		=							{
    'microsoft/trocr-base-handwritten': (
        'https://huggingface.co/microsoft/trocr-base-handwritten/resolve/main/config.json'
    ),
    # See all TrOCR models at https://huggingface.co/models?filter=trocr
}







class 							lowerCamelCase__						(				UpperCAmelCase   ):






			"""simple docstring"""






			_UpperCamelCase		:       Dict 			=		'trocr'
			_UpperCamelCase		:       Union[str, Any] 			=		['past_key_values']
			_UpperCamelCase		:       Union[str, Any] 			=		{
			    'num_attention_heads': 'decoder_attention_heads',
			    'hidden_size': 'd_model',
			    'num_hidden_layers': 'decoder_layers',
			}




			def __init__(				self   ,    snake_case=50265   ,    snake_case=1024   ,    snake_case=12   ,    snake_case=16   ,    snake_case=4096   ,    snake_case="gelu"   ,    snake_case=512   ,    snake_case=0.1   ,    snake_case=0.0   ,    snake_case=0.0   ,    snake_case=2   ,    snake_case=0.02   ,    snake_case=0.0   ,    snake_case=True   ,    snake_case=False   ,    snake_case=True   ,    snake_case=True   ,    snake_case=1   ,    snake_case=0   ,    snake_case=2   ,    **snake_case   ,    ):

						'''simple docstring'''


						UpperCamelCase__       =							vocab_size
						UpperCamelCase__       =							d_model
						UpperCamelCase__       =							decoder_layers
						UpperCamelCase__       =							decoder_attention_heads
						UpperCamelCase__       =							decoder_ffn_dim
						UpperCamelCase__       =							activation_function
						UpperCamelCase__       =							max_position_embeddings
						UpperCamelCase__       =							dropout
						UpperCamelCase__       =							attention_dropout
						UpperCamelCase__       =							activation_dropout
						UpperCamelCase__       =							init_std
						UpperCamelCase__       =							decoder_layerdrop
						UpperCamelCase__       =							use_cache
						UpperCamelCase__       =							scale_embedding
						UpperCamelCase__       =							use_learned_position_embeddings
						UpperCamelCase__       =							layernorm_embedding

						super().__init__(
						    pad_token_id=snake_case   ,    bos_token_id=snake_case   ,    eos_token_id=snake_case   ,    decoder_start_token_id=snake_case   ,    **snake_case   ,    )


