::::::,:::::::::::::::::::::::::::::,::,,,,,::::::::::;:::::;;;;;;:::::::::;;;::;;;;;;;::;;;;;;;;;:::;;;:;;:;::;;;;;;;;;;:;;;:::::::::::::,,,,,,,,,,,,,,,,:,,,,,,:,,,,,,,,,:,:
:,:,,::::::::::::::::::::::::::,:::::,,:::,,::,,::,::::::;;;;;;:;:;:;;::::::::::;;;;;;;::;;;;::;:::::;:;;;::;::;;:;;:;;;;;;;;;;:,::::::::::,,,,,,.,,,,,,,,,,,,:,,,,,,,,,,,,,::
:::,:,:::::::::::::::::::::::::::::,,:::::,:,:,:,,::::::::::;;;;::::::::;:::::::;::;;;;;;;:::;;;;;;;::::;;;;;::;;::;;;;;;;;;;;;:::::::::;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::
:::::::::::::::::::::::::::::::::::::::::::,,,:,,:,,:,,:,::::::::;:;;:;;;;;:;:::;:::::;:;:::;:;;;;::::;;;:;::;;;;;:;;;;:;;;;;;::;;;;;;:::::;:::::,,,,,,,,,,.,,,,,,,,,,,,,,,,::
::::::::::::::::::::::::,:::::::::::::::::,::::,:,:,:,:,,,,:,:,::::::;::;;';''';;:::::::;:;;;;;;;;;;;;;:;:::;;;;;;::;:;:;;;;:;;:;;::;;;;:;;::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,
::::::::::::::::::::::::::::::::::::::::::::::::,:::,:::,,,,::,,,,::::;;;';;;;;''';::::::::;;;;;;;;;;;;;:;;;;;;;;;::;:;;;;;:;;;:;;;:;:;::::::::::::::::::,,:,,,,,,,,,,,,,,,,,,
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:,,,:,,:::;;;;;'''+++'';::::;:;;;''''';;;;;::;;;;;;;;;;;;;;;;;:;;;;::;:;;:;;;;:;::::::::::::,,,,,,,,,,,,,,,,,,,,,
:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::,::::;;;'';'';;''+++';;;;;;;;;;'''';;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;::;;:;:;::;:;::::::::::::::,,,,,,,.,,.,,
:::,::::::::,:::::,::::::::::::::::::::::::::::::::::::::::::,:::::::;;';';;;;;'++++##++'''';;;;';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;:::;::;:;;:::::::::::::::,,,,,,,....
::,::::::::::::,::::::::::::::::::::::::;:::::::::::::::,::::::::,:;:;'';;'''++++########+++++##+++++''';;;;';;;;;;;;;;;:;;;;;;;;;;:::;;;::::::;:;:;::::::::::::::::,:,,,,,...
::::::::::,:::::::::::::::::::::::::::::::::::;:::::::::::::::::::;;;'''''++++######################+'''';;;;;;'''';;:;;:;;;;:;;;;;;;:;;;:::;:::::::;:::::::::::::::::::,,,,..
::::::::::,:::::::::::::::::::::::::;;;;;::::::;:,::::;;;:;;;;;;;;;''++#######++++#######@###########+++''''';;';''+';;;;;;;;;;;;;;;;;;;:;:;:;;:::::;::::;:;:::::::::,:::::,,,
:::::::::::::::::::::::::::::::;;;';';;;;;;;;;;:;::::;''++++'+'';''++'+###+#+'''++#######################+'''''+++'''';;;;;;:;;;;;;;;;;:::::::::::::::::::::::::::::::::::::,:
:::::::::::,:::::::::::::::::;;;;;;''';;;''+'';;;::;''++++#####+''''++++++++++++#######################@#######+#+++''';;;';;;;;;;;;;;;;;::::::::::::::::::::::::;::::::::::::
:::::::::::::::::,::::::::::;;;;:;;';;';';'+++'';';;'+########++'+'++++++##++++#########################@@###########++';''+'++;;;:;;;;:;:;:::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::;;;''';;'++++++++''''+''+#######+#+++++++++###+++############################@@#############+'''''';;;;;;;;;;:::;;::::::::::::::;::::::::::::::::
::::::::::::::::::::::::::::;'''''+++#########++++++++###++#+++++++++##++++#+########################@##@#################+++++':;;;;;;;::::;;;::::::;:::;:::::::;::::::::::::
:::::::::::::::::::::::::::;;'++++++#########+#+++##++++++++++++''+#####+++++++#+####++++++##+##############################++#++';;;;::;;::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::;;'####++++#+######++#++++++++++++++++++'+####+++++++++####++++++++++#################################+++'';:,::::::;;;:::;::::::::::::::::::::::::::
:::::::::;:::::::::::::::;'#####+#++++##########++++++'+++++++'+'###+++++++++++#++++++++'+++###################################+++++';;,:,,:::;;:::;;:::::::;:::::::::::::::::
::::::::::::::::::::;:::;;+++''''++#++######+++++++++++++++++++++##+#+'+++++++#++''+++++++++########+########################+#+++++';;::,,,::::::::;::;:::::;::::::::::::::::
:::::::::::::::::::::::;;'++';''''+++++#######+++++##+++'+'+++++++#++++++++##+#++'++++++++++#######+++######################++#++++++';:::,:,,,,,::::::::::::::;::::::::::::::
::;::;::::::::::::::::;;;;';;''''++++++####++#+++++#+++++++++++++++++++++###++'+++++++++++#########+###########################++++++++';::,,,:,,,,,,,::::::;:::::::::::::::::
:::::::::::::;;::::::;;:;;';'''++'+++++#+++++++++++++++++++++++++++++++++###++'''++++++++#########+##############################++++++''';:::,,,,,,,,,,:::::::;::::::::::::::
::::::::::::;::;:;::;;;;'''';'''''++++'++++++++++'+++++''+++++++++++++++##+++'''+###+#+++##########################################+++++''';;:,,,,,,,,,,,,,,,,,:::::::::::::::
:::::::::::::;;;;:::;;;''+++++''+'++++'+++++++++'+++++++'++++++++++++++##+#+''''#++++++++######+#####################################++++'';;::,,,,,.,,,,,,,,,,:,:::::::::::::
::::::::::::::;:;;;;;;;'++++'''''''+++++++++#+#+++++++++++++++++++++++++++++'+'+++++++++##############++##############################++++++;;':,,,,,,,,:,,,,,,,,,,,,,::;:::;:
::::::::::,:::::;;;''''''''++'';;'''++++++'++###+#+++++++++++'+'++'++++++++++'+++++++++++#+++#######++++###################################++'';':,,,,,,,,,,,,,,,,,,,,,,::::::
,:,:::::::::::::;;;''''''''';;;;;;;''''+++''''+++++++++++'''+++'++++'++++++'''++++++++++++++++++++++'+#+##############++++++##################+';';:,,,,,,,,,,,,,,,,,.,,,,,,::
:::::::,:::::::::;;;''';';''''';;'''''''''''''''+++++++'''''+++'''+++'''''''''''';'++'++'++++++++''+++++++#######++++++++''++###################+';;:,,.,,,,,,,,,,,,,,,,.,,,,,
::::,,,:::::::::;;;'''';;;'';;;;;;'''''''''''''''+'''''''''''''''''''''''';;;;;;';''''''''''''''''+'++++++++#++++++++++''+++++++##################';'::,,,.,.,..,,,,,,,,,,,,,,
:::,::,:::::::;;;''''''';;;;;;;;;;;'''''+'''''''''';''''''''''''''''''';;;;;;;;;;;;;';''''''''''''''''''''+++++''''++''''+++++++++#+###############+'';:,,,,,,....,..,,,,.....
:::,,,::::::::;;;;';'''+'';;;;;;''''++++++''''''''''';;;;;;'''''''';;;;;;;;:;;;;;;;;;;'''''';';'';;;;;;;''''';'''''''''''''+++++++###+##############+'';:,,,:,,,..............
:::,:,,,:::,::::::;;;;;;''';;;;''+''''++'''''';;;;;;;;;;;;;'';;;;;;;;;:::::::;;;;;;;;;;;;;'';;;;;;;;;';;;;;;;;;';;'''''+++############################++;::,,,,,,,,.,.........
:::::::,:::,,:::;:::::;;;;;;;;;;'''''''''''';';;;;;:;;:;;;;;;;;;;;;;;:::,:::::;;;;;;;;;;;;;;;';;;';;;;;;;;;;';'''''+++################################+++';:,,,,,,,,,,,....```
::::::,,::,,,,::::::,::;;;'''';''''''''';;;;::::::::::::::::;:::::::::::::::::;;;;:;:::;;;;;;;;''';''';'''''''''++++##################+#################++'::::,:,,,,,,,......
:::::,:,,,,..,::;;:;:::;;;;;';;;';'';';;;:::::::::::,,::,:,::::::::::::::::::;;;;;;;;::;;;;;;;;;;'''''''';;;;''''++#++############+##+############@#####+#+;:::::,,,,,,,,,....
::::::,,,,...,,::;'''';;;;;;;;;:;;;;;;;;;;;::::,:::,,,,,,:::::::;::::::;;;;:;;;;;;;;;;;::;;;;;;;;''''''''';;;;''''''''++++########++#######################+'::;::,:::,,,,,,.,
::::::,,:,,,,,,,:;''''+'';;:;:::;;;;;;;;::::,,,,,,,,,,,:,,,:::::::::::::;:::;;;;;;;;;;;;;;;;;;;';;''''''''';'';''''''''+'''''''++#####++###############@####+;;;:::::::,,,,,,,
,::::,,::,,:,,:::;;;'''+''';';;;;;;;;;;::,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''''''';;;'';;';;;''''+++++######################+'';::::::::,,,,,,
:::::,:::::::,:::;;::;;;'''''''';';;;:::,,,,,,,,,,,,,,,:::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''''''''''''';:::;;;;;;;;''''''++++#####################';:::::;:::::,,,,
,::::::::::::::;:;;;';''''''''';;;:::::,,,,,,,,,,,,,,,,,::,:::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;'';';''''''''''''''';:;;;::;;;;;''''++++++################+';::::::::::,,,,,
::::::::::::::;;;;;''''''++''';;:::::,,,,,,,,,,,,,,,:,::::::::::::;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;''';;;';''''''''''''''''''''''';;;''''+++++###########++###+;:,,:::::,:,,,,,
:::::::::::::;;;;''''''''++';;;::,,:,:,,,,,,,,,,,,,,:,:,::,::::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;''''''';;;;'''''''''''+++++++'''''''''''+++++###########++##++;:,,:,,,,:,,,,,
:::::::::::;:;;;''''''''''';::::,:,,,,,,,,,,,,,,,,,:,,::,:::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;'''''''''';'''';';'''''''+++++'''';;;''++'+++++###########+####':,,,:,,,,,,,,,
;::::::::::;;;;;;;''''''';;::,,,:,,:::,,,,,,,,:,,,,,:,:,,,:::::::::::;::::::;;;;;;;;';;';;;;;;;;;'''''''';''';';';''''''''''++#+++'''';''+'+++++###########+###+;::,:::,,,..,.
;;;:;:::::;;;;:''''''''';;:,,::::,,:::,::,:,:,,,,,,,,:,:,:::::::::::::::::::;;;;;;;;;';;;;;;;;;'''''''''';';;;';;;;'''''';;;;;';';;;';''';;'++++################+':::,,::,,,,,
;;;;;;;''''';;''';';';'':::,::,:::::::,:,,,,,,,,,,,,:,::::::::::::::::::::::;;;;;;;;;;;;;'';'';''''''''';;;;;;;;;;;;;;';';;::,,,:::;;;;''''''+++++#+#############+;:::::::,,,,
;';;;;'';;;'''';';;;'';:::,:::::::::,:,,:,,,,,,:,,,:,:::::::,,,,,:::,:::::;;;;;;;;;;;;;';';;'''''''''''''''';;;;;;;;;;;;''';;;:,,,,,:;'''''''++##+###############++';::::::,,,
'''';';';''''';;;;''';;:::::::::::::::::,,,,,,,,,,,,,,,,,::,,,,,,,::,,,,::::;;;;;;;;;;;;;;;'''''''''''''''';;;;;;;;;;;;;;;'';;;;;;::,::;'''++++#+#+++############+;'';;:::::,:
''''';;';'''';;;;;;'';:::::::::::::::::,,,,,,,,,,,,,,,,,:,,,,,,,,,,:::::,::::;:;;;;;;;;;;;;';''''''''''';'';;;;;;;;;;;;;;:::,:,.,,::::;;;;;'++++##+++#+###########';''':::::::
'''';:;;;;;';;;;';'';::::::::::::::::,,,,,,,,,,,..,,,,::,,,,,,,:,,,,:,:::::::;;;;;;;;;;;;;;;;''''''''''';';;;;;;;;;;;;;;;;;:::,,...,,:;;;;;''++++#++++############+';;''::;:::
''';:;;;;;;;;;;;'';;;:::::::::::::::,,,.,,,,,,,,,,,,,,,,,,,,,,,,:::::,::::::;;;;;;;;;;;;;;;;;'''''''''''''';;;;;;;;;;;;;';;;:::,:,,,,,,::;;''''+++##+#############';'';'::::::
'';;;::::;;;;;;'';;;::::::::::::::,,,,..,,,,,,,,,,,,,,:,,,,,,:,,,::::::::::;;;;;;;;;;;;;;;;;;;'''''''';'''';;';;;;;;;;'';;;;;;;;;;';;;:::;;;'''++++++++##########++;;;''::::::
''';;::;;;;;;;''';;::::::::::::,:,,,,,,:,,,,,,:,,,,,,,,,,,,,::,,,:::::::::;:;;;;;;;;;;;;;;;;;;;''''''';;''';;;;;;;;;;;'''''''''''''''''';;;;;;'''+++++++####@####+';;;';::::::
''';;;;;;';''''+';;::::::::,::,::::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;;;;;;;;;;;;;;';''''''''';;;;;;;;;;;;;'''''''''''''''''';';;;''''+++++#####@@@###+;;';,,,::::
''';;;;;;'''++'';::::,::::::,,,,:,,,,:,,,,,,,,,..,,,,,,,::,,,:::::::::::;;;;;;;;;;;;:;;;;;;;;;;;''''''''';';;;;;;;;;;;;;;'''''''''''';;;;+'+'''''+++++++####@@#@@#+'';,,,,,..,
''';;;;;;''+++';;:::::::::::,,,::::,,:,,,,,,,,,...,,,,,,:::,,:,:::::::::;;;;;;;;;;;;;;;;;;;;;;'';''';'';';;;;;;;;;;;;'::;;;;''''++''''';;;''++'''''++++++###@@@@###'::,,......
';';'''''+++';;::,::::,,::,,,,:,:::,,,,,,,,,,.,,,,:,:,,,,:,,,,,,::::::;;;;;;;;;;:;;;;;;;;;;;;;;;;;''''''';;;';;;;;;;;;;:;;;';;''''+++++''';'+++'+'''++++#+###@@####+;:,.......
'''''++'''';;:;::.:::::,:,,:,::::::,,,......,,,,,,,:,,,,,,,,,,,,::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''''';;;;;;;;;;;;;;:;;;;;;;''''''++++++''+++++''++++++##@######+':...,....
'';;++;;''';;;:::,::::,,,:,:,:,,:,,,,,,,,:::::,,,::,,,,,,,,,,,,,,,:,::;;;;;;:;;;;;;;;;;;;'';;;;;;;;'''''';;';;;;;;;;:;;;;::::;;;;;;;''+++++++''++++''+++#####@@####+':..,,,...
''';;;;;;';;;;:,:,:::::,:::::,,,,:,,,,:,,:::::::::,:,,,,,,,.,,,,,,,::;;;;;;;;;;;;;;;;;';;;';';;;;;;'';';;;;;;;;;:;;;;;:;:::::::;;;;:;'+++++#+++'+++++'+#######@####+':,,,::,..
;';;;;;;;;;;;::::,,:,::::::::::,,,,,,,:,::,::::,,,,,,,,,...,,,,::,:::;;:;::;:;;;;;;;;;;;;;;;;;;'';;'''';;;;;;;;;:::;;;;;::::::::;;;;;;''+++##+++++++++++#####@@###+++:,:,:;;,.
';;;;;:::;;;;;:::,,::,::::::,,,,,:,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;;;;''''''';''''''';;;;;;;;;;;;;';;;:::,::;;;;'''''+++####++++++++######@####+'';;:;';:,
';;;;;:::;;;;:::,,,::::::::,,,,,,,,,,,,,,,,,,,:::::,,,,,,,,,,,,,,,,:::::::::;;;;;;;;;;;;;;'''''''';'''''';;;;;;;;;;;;;;;''';;;:,::;;'''++++++++##++++#++############';'';'+';:
';;;;;;::;:;:::::,,:::::::::,,,,,,,,,,,,,,,,::::::,,,,,.,,,,,,,,,,::::::::,:::::;;;;;;;;;''';''''';;'''''';;;;;;;;;;;;;;;''';;;;::;;''''++++##+###+++#+++##########++'+'''+';;
';';;:;;;;::::::,,,:::::,,,,,,,,,,,,,,,,,,,,:,::,,,,,,,,,,,,,,,,,,,::::::::::::::;;;;;;;;;''''''''''''''''';;;;;;:;;;;;;:;;;'';;;;;;;'''++++++####++++#++##########++++'''''''
;;;;;;;'';;:,:,,,,,::::,,:,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,::::,::::::::::;;;;;;;;;'''';'''''''''''';';;;;;;;;;;;;;;;'''';'''';''+++++++####++++#+##########+'++++++'''
;;';;;;;'';:,,,,.,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;;;;;;;''''''''';'''''''';';;;;;;;;;;;;;'''''''''''''+++++++####++++++#########++++++'+++'
';';;;;;;;;;:,,.,,::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,::::::::::;;;;;'''''''''''''''';''';;;;;;'''';''';'''+'+++++++++########++###########+++++++++++'
''';;;;;;;:;;,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,:,:::,:::::::::::;;;;''''''''''''''''';'''''''''''''''++++'++++++++++++########++##########++'+'+++++++
';;;;;;;;;,:;,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,::,:,,::::::::::;;;:;;;''+'''''''''''''''''''''''''''++++++++++++++++++#######+++#########+++'+'++++''
;;;;;;';;;;,:....,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,:::::::::::::::;;;;'++'''''++''''''''''++''''''''+++++++++++++++++########++#########++'++++++'''
;;;;;;;;;;:,.,,.,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,::::,,,,,,,,,,,:::::::::,::::::::::::::::::::::;'++';;'+++'''''''''''+'''''''+''++++###++++#####+#######++###+#####++++++++'';;
;;;;;;;;;:::,,,.,,,,,,,,,,,,,,,,,,,,,,::,,,,,,::::::,,,,,,,,:::::;:;;::::::::;:::::;:::::::::;'''''''++++''''''''''''+++'''++'++++######################++##+#####++++++''';;;
::;;;;;;;:,,....,,,,,,,,,,,,..,,,,,,,,:,,,,,:::::::::::,:::;;;;;;;;;;;;;;;;:::;;:::::;::::::;;'';;''++++''''''+'''''''+++''++++++++####+#################+########+#+++++';;;'
::::::;::,.,....,,,,,,,,,,,..,,,,,,,,::,,,::::::::::::::;;;;;;;''''';;;;;:::::;;::::;;;::::;;';;;;'+++'''''++++'''''+++++++++++++++++##+############################+++'';''''
:::::;::,,.....,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,::::::::::;;;''''''';;;;::::::::;;;;:;;;;;::,:;';;;'++'''''''++++''''''+''++++++++++++#+#+#++#########################++''''''++'
,,::::::,.,...,,,,,,,,,,,,,,,,,,,:::::::,,,,,,,::::;;;;;'''+'+''';;;::::::::;;;;;';;;::,::;'';'';;;;''''+++++'''''''''''+++++++++++++####+#############+##+######++''''''+++''
,,::,,,,,.,...,,,,,,:::::::::::::::::::,,,,,,,::::::;;;''''+++';;;;;;;;;;;;;;:;;;;;:::,:;''';;:::;'''++++++'''+''+'''''''+++++++++#+++###########################+++'+++++'+''
,,:,,,,,,....,,,,,::::::;;;;;;;;;;;::;::,,,,,,:::::;;;;''+++'';;;;;;;;;;;;;;;;;;;;;:::;;'+;;;;:;;''++''''''''+'+''''''''''+++######+##++##########################+++++++++'';
,,,:,,,,,,...,,,:::::;;;;';'''''''''';::,,,,,::::;;'''''++++';;;'''+'+++++++++++''';;;+++''';;''++'''''''''+++++++'''''';'++########+#############################+++++++++';;
,,,,,,,,,,...,,:::;;;;;;;''';''''''''';:::,,::::;;;''''+++'';;''++++++##++#+##+++';;''++++++++'''+'''''+''++++++++'''''''''+####################################++#+++##+'';::
,,,,,,,,,,...,,::;;;;;;;;;;;;;;;'''''';::::::::;;;;'''';''''''+++++++'''''''''';;:;;;''''''''';:;;;;';;''''''''''''''';;;;;''###########################+#########+###+'''';;:
,,,,,,,,,,...,::;:::;::::::::::;;;;;;;;::::::;;;;;;''':;''+'+++++''';;;;;;;;:::;;';;;;;;';;;:;;;;:;;;'''''''''''''''''';;';;'++#######################################+;;';;;:
....,..,,..`.,:::::;::::::;;;;;;;;;;;;::::::::;;;;;''';;;'''''''';;;;;:;;:::;;;;;;;;;;;;;;;:::;;;;;;;;'''++'''''''+''''';'';;'++##################################+##++;;'';;;
```````......,::::::::;;;'''+''+'''';;;::::;:;;;;''''''';;;;;';;;;;;;;;;;;;;''';;;;;;;:::::;;:;;;;;;;;''''''+++'+''''''''';;''+++################################++##+'''''';'
``````````...,:::::;;:;''''+++++++++';;;;:;::;;;;';;';';;;;;;;';;;;;;;;;;;''';::::::::::::::;;;;;''';;'''''''++++++''''''''''++++++#################################++''''''''
``````````...,,,:::;;;''++++;++++++';;;;;;;;;;;;;;;;'''''';:::;;;;;';;;;;;;::::::::::::::::::::;;;;;';'''''''++''++++++++'''++++++#+#################################+''''''''
``````````...,:::;;;'''++#+#+##+++';::;;::;;;;;;;;;;'''';;;:::::;:::::::::::::::::::::::::,,::::;:;;''''''''''++++''''++'+''+++++'+++#+##############################++''''+'+
``````````..,::::;;'+++++++++';;;;;::::::::;;;;;;;;;'';;;;;;;:::::::::::,:::::::::::;::::::::::::;;;;''''''++'+++++++++++++++++++++++################################+++''''''
```````.```..,::;;'++++'';;;:::;;;;:::::::;;;;;;;;;;;;;;;;;;;;::::::::::::,:::,::::::::::::::::;::;;;;;''''++++++++'++++++++++#++++++#################################++''''''
``....`````.,,::;''''';;;:::;;;;;;::::::::;;;;;;;;;;;;;;;';;;;:::::::::::,,,,,,,:::::::::;;;:::::::;;;;;''''+++++++'++++++++#++##+##############+##################@###+''''+'
...````````.,,:;;;::;;;::::;:;;;;;::::::::;;;;;;;;;;;;;;;';;;:::::::::::,,,,,,,,,,:::::::::;;::::::;;;;;'''''+++'++++++++++#++###################################@@@###+''''''
```````````.:;;;:::::::::::::;'';:::,:::;;;;;;;;;;';;;;;;'';;;:::::::::::,,,,,,,,,,::::::::;;:::::;:;;;;;'''+++++'''++++++++++##+##################################@###+''''''
```````````.:;::,::::::::::;''';:::::::;;;;;;;;;;'''';;;''';;;::::::::::,,,.....,,,::::::::;:;;:;;;;;;;;''''+'++++'+++++++++++++###################+#++################'''''''
```````````.,::,,:::::;;;;''';:::::::::::;:;;;;;''''''';''';;;::::::::::,,,,....,,:::::::::::;;;;;;;;;;;'''''+++++++'+++++++++++####+##############+#++++#############+'''''''
```````````.,:,,,,:::::::;::::::::::::::::;;;;;;'''''''';;';;;::::::::,,,,,,,,,,,,::::::::::::;;;;;;:;:;;''''+'+++++++++++++++++++#++###############+++++#############+'+'''''
```````````.,,,,,,::::::::::::::::::::::;;;;;;;'''''';;;;'';;;;;:::::::,,,,,,,,,,,,::::::::::::;;;;;;;;;;''''+'''++++++++++++++++++++++##++##########++++#############''''''''
```````````.,,,,,,::::,:::::::,,:::::::::;;;;;;'''';;;;;;;;;;;::;;;;:::::,,,,,,,,,::::::;;::::;;;;;;;;;;;;'''++''++'+'''+++++++++++++++##+++#########++++#############+'''''''
```````````.,,,,,,:::::,::::::,,::::,::::;;;;;'''';;;;;;;;;;;;;;:;:;;:::::,,,,,,,,:::::::::::;;;;;;;;;;;;''''++'''+++++'+++++++++++#+++++++++##########+++#######++++++'''''''
````````````,,,,,,::::,,,,::,:::::::::::;;;;;''''';;;;;;;;;;;;;;;::;;;;::::,:::,:::::::::;;;:;;;;;;;';;;;;'''''''++++++'++++++++++++++++#+++++########++++#######+++''+'''''''
````````````,.,,,:,::,,:,,::::::::,,,,,:;:;;;;''';;;;;;;;;;;;''';::::;;;;::::::,:::::::::;;;;;;;;;;;';;:;;;';'++'+++++++'''''+'''++++++++#++'+##++##+#++'+#+++###+''''''''''''
````````````,.,,,,,,,,,,,::::::::,,:,,,::;;;';;;;;;;;;;;;;;;'''';;::::;;;;:::::,::::::::::;;;;;;;;;;';;:;;;;;''''+++++'++'''''''+++++++++#+++++++#++#++''+++''+##+''''''''''''
````````````,,,,,,,,,,,:,:::::,,:,,,,,:::;;;;;;;;;;;;;;;;;;;;''';::::::;;;;:::::::::::::::;;;;';';;;;'';;;;;;;'''++'+++''''''''''+++++++#++'+++++++++';;'++';'+#+++++'''''''''
```````````.,,,.,,,,,,,::::;:.,:::,::::::;;;;;';;;;;;;;;;;;'''+';:::::::;;;;;;:::::::::::;;;;;;';';;;;';;;;;;;'''+''''''''''''''+'+++++++++++##+''''';;;+++';'+##++++++'''''''
```````,,:,,....,,,,,,:::::;,.,::::::::::;;;'''';;;'''++'''+++'';;:::::::;;;';:;:::::::::;;;;;;;;'';;;'';;;;;;'''+''''''''''''''+'+++++++++++#+';'''''''++';;'+#####+++';;''''
````.,::;;:,...,,,,,,:::::;;,.::::::::::;;;''''''++++++++++++'';;;;:;::;:;;;;'';;;;:::::::;;;;;;;;';;;;'';;;;;'''''+''''''''''''''++++++++#+++';;''''+'+++';;'+++###++'';;;'''
`.,:::;;;;;,...,,,,,::::;;;;,,,:;::;:;;;''''''++++++++'+''''''';;;;;;;:;;:;;;;;;;;;;:;;;;:;;;;;;;;';;;;''';;;;;''''+''''''''''''''++++++++++++';;''''+++';;;;+++++++++'';;;;;;
::;;;;;;''':``.,,,,,::::;;';::::::;;;;;;''''+++''+''''+'+'''';;;;;;;;;;;;;;;;;;''';;;;;;;:;;;;;;;;''';;''';;;;;;';''++'''''''''''''++++++#+++'''''';'+#';;;;''+'''''++';;;;;;;
;:;;''''''';.`.,,,,::::;;;'';:;;;;;;;';'''++''''''''''+''';;;;;;;;;;;;;;;;;;;;;'''';;;;;;;;;;;;;;;''';;;''';;;;;;''''''''+'''''''''++++++++++'+''''''++';;;''';;;;;;++';::;;;;
;'''''''''';.`.,,::::;:;;''';;;;;'';;''''''''''++''''''';;;;;;';;;;;;;;;;;;;;;';;'''';;;;;;;;;;;';;;'';;''';;;;;;'''''''''''''''''''+++++##+''+''''''+';;;''+'::::';+';:...,,:
'''''''''';;.`.,:,::::;;;'';;;;;;''';''''''''+'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;'''';;;;;;;;;;;;;''';;;'';:;;;;';''''+'++'''''''''++++##++';'+''''''';;;'+++';;:'''';:.`````
''''';;;;;;;,`.:::::::;;''';;;;;;'''''''''''+'+''''';;;:;;;:;;;;;;;;;;;;;;;;;;;;''''''';;;;;;;;;;;;;;';;;'';;;;;;;'''++++++''''''''''+++#+++';'+'''''';;'''++++'+++'''':.`````
'';;;;:::::::,,:::::;;;;'';;;;;;;;;'''';''''''''''';;::::::;;:;;;;;;;;;;'';;;;;'';';;'';;;;;;;;;;;;;;';;;;';;;;;;;;''''+''+''''''''''+++#+++';''''''';;;'''+###+++';::;:.`````
;::::::::,,,,,,:::::;;'''';;;;;;;;;;;;'''''''''''';;:::::::::::::;;;;;;;';;;;;;;;''';''';;;;;;;;;;';;';;;;;';::;;;;;''''+''''''''''''+++++++';;;''''';:;''++####++':,,::,`````
:::::,,,,,,:::::::::;;''+';;;;;;;;;;:;;;;''''';'';::,::::::::::;:;;;;;;;;;;;;;;;;'''''''';;;;;;;;';';;';;;;;;;::;;;'''''+'++''''''''++++++++';;;;''''';;'++###+++'',.,;;,`````
,,,,,,,:::::;;:::::;;;''';;;;;;;;;;:::;;;;;;;;;;::,:,:::::::;:;;;;;;;';;;';;;;;'''''''''';;;;;;;;;;;;''';;;'';::;;;;''''''++''''''''+++++++++;;;;;'''''''+######+';::,:;;:`  `
,,,,::;;:;;;'';::::;;'''''';;;;;;;;::::::::;;:::::::::;;;;;;;;'''''''''''''';;''''''''+';;:;;;;;;;;;''';;;;;';;:;;;;''''++++''';;''''++++++++';;;;'''+''+#######+''''''''',   
:::::;';;''''';:::;;;;'+';'';;;;;::::::::::::::::;;:;;'''''''''''''''''++++''''''''''''';;;;;;;;;;;;;;;;;;;;;';:;;;;'''''++''';'''''++++++++++';';''''++#########++'+';,,.``  
::;;''''+''';;;:;:;;;;'''''';;;;;:;::;;;;;:;;;;;;;;;;'''';''';;;''''''+++++++'+'''''+''';;;::;;;;;;;;;;;;:;;'';;;;;'''''''+'';;;''''+++++++++++''''''++###########++';';:.``` 
;''''+'''';;;;;;;;;;;'''''';;';;;;;;;;;;;;;;;;;'''''''':,,:;:..,;'';;''+++++++++++++++''';;;:;;;;;;;;;;;;;;;'';:;'''''''''+'';;'''+++'''++++++#+'''+#########++++++++'+';:::.`
'''++'';;;;;;:;::;:;;;'''''''';;;';;;;;;;;';;;;''';::;:..,,;,`..:;;:,:'';'++''++#+++++'';;;;;;;;;;;;;;;;;;;;'';:;''''''''''';;;;''+''''+++++++##+############+++''''''''''';``
''';;;;;;;::::::::;;;;;'''''''';'''''';;;;;::::;':,,,,....:,...,,::.,:':::'';;'++#+++++';;;;:;;;;;;;;;;';;;;'';:;;;''+'''''';;;'''+'''+++++++#+###############++''''''''';,,` 
;;;;;;:::::::::::;;:;;;'''''''''''++',:,,,,,,,,::,..,.``,,,,,..,,::,,:;,,:;;;;;'+++++'';;;;;:;;;;;;;;;;'';;;'':;;;'''''';'+;;;;'''''''++++++++#+#######+#++++#++';'''''''';,` 
;;:;:;:::::::::::::;;;;''''''''''+++:.....,,..,..,.,,..,:::;:,,,:::,,:::,:;;:;;''+++';;;;;:::;;;;;;;;;;;;;;;'';;;;''''';;'';;;'++''''++++++++++#+####++'+'+++#+++':';;';'';,.`
;:::::::,:::::::::;:;;;;''';'''''++':..``.:,.,..,,,,,,:'+'+#'';;;';::;;;:;'';';'+++';;;;;;:::;;;;;;;;;;;;;;;''::;;;''';;;'';;;'++''''++++++++++++#+#++';::';'++++'';;,,''';`..
::::::::::::;::::::;;;;;;'';;''''+++:,.,,;;,,,,:;;'''++######++####++#++++#+++++##+;;;;;;;:::;;;;;;::;;';;;;';::;;;''';;;';;;''+'''++++'+++++++++#++++;:''''+++++'';;,,:';:...
::::::::::;;;::::::::::::;;;;;;'''++;:,:''';;'++++###############################+;;:;;;;:;::;;;;;::;;;;;;;'';::;;'''';;;;;;'''''''''''''+++++++++++''''++'''''''+';;;::;:..``
:::::;::::::::;::::;;;::;:;;;;;;;''+';:;''''++++#######+#####++#+##+###########+';::::;:;::::;;;;;:::;;;;;;'';:;;;''';:;;;;;'''''''''';'++++++++++';;;;;'';:::';,,;;''';;,````
:::::::::::::::;::::;;;::::;;;;;;;;+''''+++++##+++++++++++++''+++++++++++####+';;:;::::;;::::;;;';:::;;;:;;';:::;'''';;:;;;'+'''''''''+++++++++++';::::;;'';;::;;,.:;';;,.````
:;;:::::::::::::::::::;;:::;;;;;;:;''''+++++#++'+''''''';;;;;'''''''++++++++'';;::::;:;;;::::;;';:::;;;;:;'';::;;'';';::;;'''''''''''''++++'+++';:,,,:,:;;';;,,;,....:::,`````
;;;;;;;::;::::::::::::;:::;;;;;;;;;;'''++++++'''';;;::;;;,::;;;;;''''++'+'';;;;:;:;:::;;::::;;;';:::;;';:;'';:;;;';;;;::;''''''''''''''++'''+'';.`.,,,.,:;;;;:::`.`.```.,.````
;;;;;;;;;;;;;:::::::::;:::::;;;;;::;;'''++++';;;;;::,::,:,::,,:;;''''''';;;;::;::;:::::;::::;;';;::;;;;;;;';::;';;;;;:::;''''';;;;''''++''+''',```.,,...,::::;:,..````````````
;'';';';;;;;;;;;;;;;;:;:::::::;;;;;;;;'+++++':::::;,,,:,.,::.`,:;''';;;;;;;;;::::::::;;:::::;'';;:;;;;;;;'';::;'';;;:::;''';;;;;;;''''+''''';.```.,,,..`,,....`...````````````
`..,:;;;;;;;;;;;;;;;;;::::::::;;;;;;:;;'++++',.,,,,:,::,,,::,::;;;;;;;;;:;;;:::::::::;;:::::;;';:;;;;;;;;';::;;';;::::;;'';;;;;;'''''+'''';:`````.,..``...`    `.`````````````
`````````.,,::;;;;;;;;;::::::::;;:;;:;;;'+++:,,:,,::::;::;;::::::;;;;;;;:;::::::::::;;;:::::;'';:::;;;::;':::;;;;:::::;''';;::;;;''+'';'';,`  ``,,..`.`..``    `..````````    
````````````````.,,::;;;:::::::;;::;::;;;;;:::::::;::::::::::::::::::;;;:;::;:;::;:;;::::::;;';::::;;;:;';;:;;';:,::;;'';;;::;;;;'''';;';.   ``,,...``.``     `..,```         
```````````````````````.:::::::;;:;::::;::::::::::::::::::,,:::::::::::::::::;:::;;;:::::::;'';::::;;:;;';:;;;;:::::;'';;::::;;'''';;;;:`    `.,..``````     ``...``     `````
````````````````````````,:::,,::;;:::::::::::::::::::::::,,:::::::::::::::;;;;:;:;;;::::::;;''::::;;;;;';::;';:::::;'';;::::;;;''';;;:.    ``...`` `         `..,```````````..
`````````````````````````::::,,:;::::::,::::::::::,,,,,,,,,:,,:::::::::::::::;:;;;;;;:::::;'';::::;;;:;';;;;;;:::;;;';;::::;;;'';;;:,     ``...`    `     ```.,.```.``````...,
``````````````````````````::::,::::::::`,,:::::::,,,,,,,,,,::::::::::::;::::::::;;;;:::::;;'';::,:;;:;;';;;;;::::;;'';:::::;'';::,.     ```..`            ``...````..````.....
``````````````````````````.:::,::;:::;,`,,,:::::,:::::,:,,::::::::::::::::;:;::;;;;:::::;;;';:::::;::;;;;;;::,::;;'';:::::;;;;::`       ``..`           ```....```.,:,......,.
.``````````````````````````::,,,:::;::..,,,::::::::::::::::::::::::::::::::::;;;;;::::::;;'';:,,:;;:;;;:;;::,,::;'';:::::;;;:,`      `` `````          ```...`.``.:,,.........
......`````````````````````.,,,,::;:::..,::::::::::::::::::::::::::::::::::;:;;';::::::::;';::,::;::;;;:;::,,::;'';:::::;;;:.       ``````            ``........,,,.,.,.......
....,....```````````````````,,,,,:;:::..,:::::::::::::::,:::::::::::::;::::;:;;;::::::::;;':,,,::::;;':;;:,,:::;';::::::;:,           ``             ``...,,.:,,..............
::,,.,..````````````````````.,,,::::::,::::::::::::::::,:::,,:::::;:;:::;:;;;;;:;::::::;:';:,,,,::;;;;:::,,::;;';:,,,:;;,`        `   `          ````..,,,,,,,.`..............
::::::::,,,,..`````````````.`,.,,::::,,,:::::::::::::::::::::::::::;;::::::;;;;::::::::;;;:,,,:::::;;;;:,,,::;'::,,::;:`                       ````...,:,:,,,,`...,.......,...
::::;;;;;;;;;;:::,........`..,,:,::::,,:::::::::::::::::::,,,::::;:;::;:;;;;;;::::::::;;':,,,:::::;;;;:,,,::;;:,:::::.                        ```...,:::,,,..`.....,.,........
;;;;;'';'''';''';;;;;:::;::,.,,,,::::::::::::::::::::::::::::::::::;;::::;;;;;:::::::;;';,,,,,::::;;;;,,,,::;:,,,::.                        ```...,:,,,,,...`.................
;;;;;;''';';;;;'';;;;;;;;;;::;:,,:::,::,:::::;;;;:::::::,:::;;;:;;;;;;;;;;;:;::,:::::;;;,,,,,:::::;;;,,,::;;:,,,:.                          `...,::,,,,....`..................
::::;;;;;;;;;;;;;;;;;;;;;;;;;';,,,:,:::::::::;:::;:::::::::::;;;;;;;::;;;;::::::::::;;':,,,,::::::;:,,,,:;;:,,,.                         ``...,:,,,,,.....`.`.................
,,,:;;;;;;;;;;;;;;;;;;;;;;;''';,,,,:,::::;::;;:::::::::::::;;;;;:;;:::;;;:::;::::::;;;;:,,,,,::::::,,,,::;,,,.                         ```..,,,,,....``.....................``
,,,:;;;:;;;;;;;;;;;;;;;;;;''+'':,,:::::,:::::::::::::::,:::::::::;;:;:;::::::::;::;;;;:,,,,,,:::;:,,,,::;:,,`                          `.,,,,,...,...```...,.....`....,..`....
::;''';;;;;;;;;;;;;;;';''''++++;,,,,,::::::::::::::::::,,,,,::,:::;:::;::::::::::;;;;,,,,,:,,:::;,,,,::;,`                         ````.,,,,........````................`.....
++++++''';;;;;;;;;;;;'''''''+++':,,,,::,::::::::::,,,:::,,,,,:,:::::::::::::::::;;;':,,,,,,:::::,,,,:::`                          ```.,,,..........````..,...........``.......
+#####+++'';;;;;;;;;;';';;'++++'::,..:::::::::::::::,,,,,,,,,::::::;:::::::::::;;;':,,,,,,,::::,,,,:.                          ````..,...........................`...`........
+++++##++++'';;;;;;;;;:;:;'+++++',``.:::::::::::::::,::,,,,,::::::::::::::::::;;'':,,,,,,,::;:,,,,.                         `````.,.................`.........................
++#+####+++++'';;;;;;;;;;;'++++++:`..::::::::::::::::,,,,:::::::::::::::::::;;;;':,,,.,,::;;;,,,`                       ``````...,................``.........................`
#+++++##+#++++';;;;;;;:;;;'++++++'..,::::::::::::::::,,:::::::::::::::::;:;;::';:,,,,,:,::;:,,`                        ````...........,..,,.......`..........,.....,......```.
+#++++++##+'+++';;;;:::;;''+++++++:,,::::::::::::::,,::::::::::::::;;::::;;;;';,,,,,,,,:;;:,`                        ``..............,,,.....`..``.....`.`.....`.........``...
+++++++#++'''''';:;;;:;:;;'+++++++'::::::::::::::::::::::::::;::;::;::::;;;;;:,,,,,,,,::;:`                        ```...............,,.....```.``............`........```....
++++++++++'';;;;;::;:::::;''+++++++;:::;::::::;:,:,::::::::::;;::;;;;:::;'';:,,,,,,,,:;;`                        ``................,......``.```....`........`.`....,..`......
''+++++++'';;:,.::::,:::::;'+'+++++'::::::::::::::::::::::::::;;;;;;;;;;';:,,,,,,,,,,:,               ```       ```................,....````..`....`...............,..........
;''+++++';;;;:,......,.,,:;'++++++++;::::;;:;:::::;::::::::;:;;;;;;;;;'';:,,,,,.,,,::`                ``       ```......................````.`........`...,...................
;;;'''+';;;;;;;,`.........,'+++++++++;::;;;;::::::;;::::;::;;;;;;;;;';;:,,,,,,,.,,:.                ```      ``.....................`````````...`...```.......................
;;;;;'';;:;;;';,....`..`.`.'+++++++++'::;;;;:;;;;;;:;:;:;;;;;;;;;;'';:,,,,,,,,,,,.                 ```` ``````...................````````````........``...``.,................
;;;;;';;;;;;;';,..```.````.'+'++++++++;::;;;;;;;;;;;;;;;;;;;;'''';;::,,,,,,,,,,,`                ``````````......................```````````.............``....,..............
;;;;;;';:;:;;;:..`.``.`````;'''''''+'+';::;;;;;;;''';;;;'''''';;;;::,,,::,,,,,.                 ``````````.....................```.`.``````...`.....`........,................
;;;;;;;;;;:;;;:........`` `:;;;;''''+'';::;;;;''''';'''''''';;;::::,,,,,::::,`                 `````````......................``````.`..```...`.....`....`....................
::::::::;::;:;;:,,....``` `.,,,::;;;;;;;:::;:;;;;;;;;';;;;;;:::,,::::,:::::,`                 ````````......................``````````.``................`...,,...............
::::::::::;;;;::::,,:::,.  `````...,::;;:::::::::;;::;;:::::::::::::::,::,`  `              ````````........................````````````...........``..`.`.,,.................
::::::::::::;;:::,,,,,,:,  ```````..,,:::::::::::::::::::::::::::::::::,`  `````         ` ```````..........................```````````.``..`...`.......`..,..........`.......
:::::::::::;;,`.`..,,:,,,  ``````.....,,:::;.:::::::::::::::::::::::::.` ````````      ````````.............................``.``.```.`...`......`.`..........................
::::::::::;;:`````````..````````.......,:::``.::::::;::::;:;::::::::,` ````````.``    ```````...................................`.```.````.`...`.....`.`......................
;;:;:;:::;;:,,,,:..```      `````......,,,````.,::;:;::;::;::::::::.  ````....,,,``  `````........................................```.``.``...```..`.```......................
:;;;;:::;::,,,,,,...``     ````````..,...  ```.`,:::;;:;::::;:::::.  ```.`.,:,.``````````........................................```..``.`...```...```````....................
,::;;::::::,,......``     ```````.`.....   `````,:::::;;::::::::;. ````````..```````````...............................`....```````....```..``..````.``.......................
,:::::::::,,,,...```      ``````.````.`  ``  ``.,,,::::::::::::::``````````````   `````..,,.,.........................`.....````````..`.````..`...```.`.......................
.,,,,,,:,:,,.,..``        ````.```````  ```  `.....,::::;:::::::,`````````````     ```..,.,,,...............................````````````.```````..``..........................
,..,,,,:,,,.````          ```````````   ````````.,,,,:::::::::::,````````````       ``...................................``````````````..``````..```......,...................
,,,,,::,::,,.`            ``````````       `` ``.:,,,:::::::::::,`````````` `   ``````................................```````````````..`..```..`..`......,,...................
.,,,,,,::,,,``                 `````        ````.,::,,:::::::::::`````````````````````................................```````````````...````.....``......,....................
``..,.,,:,,``                    ``   ```    ` ``.:::,,::::;:;;;:````````````..```....................................````````````````.`````....``.`..........................
` ```..,,,`              `           ``.``     ``.,::::,,,:::::::,````````...........................`...............`````````````````````......`..``...,.....................
   ```....`               ``          ````````  ```.,::,,:::,,:,:,,,```..``.`.......................``..............```````````````.``.```....`.``.`...,......................
``````..``                ``      ``      `````     `,:,,,,:::,:,:,.``````..........................................``````````````..```.``.`...````....,......................
``````..`                        ` `        `````     `,,,,,,,,,,,,.`````........................`...........``.....``````````````.````````....````...,,.................`````
``````.`                          ``````     ```````    .,,,,,,,,,,.````...................................`````.`````````````````.`..````....````...,,,.....................`
````````                      `````````````  ````..``````.::,,,,,,,,````..................................````````````````````````.````````...```....,,....................`.`
 ``````                       ```````````````````..,....``::,,,,,,,,....................................``````````````````````````````.``````.```....,,....``..........`````.`
``````    `                 ``````````````````````.,,,,,.``.,,,,,,,............................`````.`...`.`````````````````````````.```````..``.....,,...``............``.`.`
``..``                   ``````````````````````````````..`````.,,,...`.....................`````.```````...``````````````````````````````````````...,,...............`````.`..
....`                   ```````````````````````````````````````.,``..``.....................````````````````````````````````````````````````````....,,...............`````.`..
....`    `               ```````````````````````````````.....```..``.......................``.````...``.````.`````````````````````````````````......,,...............`````.``.
`````    `              ```````````````````````````......................................````````````````````````````````````````..```````````......,................````..`.`
```````            `    ```````````````````````````................`.....................```..`.``````````.````````````````````....``.````````.....,....`.........`````````...
``````        `    `` ````````````````````````````````.````...`..........`.............``````````.````````````````````````````....``````````.......,...`..........````...`....
````.`        `   ``````````````````````````````````````````.`````............``......``````.```````````````````````````````````.````````````...................``````...`.`.`
````.`       ````````````````````````````````````````````````.`......................``````.`````````````````````````````````````````````````..................```.`....``.`.`