/ / / // / / // / / / / // / / // / / / / // / / // /

 

/ / / // / / // / / / / // / / // /

/ / / // / / // /

 

/ / / // / / // / / / / // / / // / / / / // / / // / / / / // / / // /

/ / / // / / // /

/ / / // / / // / / / / // / / // /

/ / / // / / // / / / / // / / // / / / / // / / // / / / / // / / // / / / / // / / // / / / / // / / // /

 

//// // // / // ///

//// // // / // /////// // // / // ///

//// // // / // /////// // // / // /////// // // / // /////// // // / // ///

//// // // / // ///

 

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

http://www.thomadaneau.com/barre/http://www.thomadaneau.com/barre/http://www.thomadaneau.com/barre/