,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,
,, ,,,, ,, , ,,,,,,,, :/*/, ,,, ,,,,,,,,,, ,
,,,,,,,,,,,,,,, //, ,,,,,,,,,,:*yeeeee* ,,,,,,,:,,,,,,,,,,
,,, ,,,,,,,,,,,,,,,,,,,/>eeee> ,,,,,,, /eee444eey,,,,,,,,,,::,,::,:
,,, ,, ,, ,,,,,,,,,,,,,,,,,,, /eey>yeee, ,,,,,, ,/**>>*: ,,::,:::::,::::::
,,, ,, , ,,,,,,,,,,,,,,,,,,,,, //*:>4y,,,,,,,, ,:/, y> ,::::::,,::::,:
,,,, ,,,,,,,,,,,,,,,,,,,,,,, : :>* ,,, ,>e4yee4yee4y>,,::::,::::::,:
,,, ,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, /y>*yey::/::, :yee4y4>eeeeeeee/ ,,::::::::::,
,,,,, ,,,,,, ,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, /ye4/*eeeeeeee: *eeee4y4ey>4ee4eee/ ,:::::::,,,,,
,, ,, ,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,:/yeeeey4e/yeee*::yeeeeeee4y4yy4eeeeee ,:::::,,::::::
, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,:*>*/eeeeee4e44>, :yee*yeeee4yy4yyy4e4eee ,:::::::::::::
, , , , ,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,/>>*: eeeeeee>: ,>eeeee yeeeeee44444ee/ ,:,:,,,::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,/>>*:,,,, :*:// /4eeeeeee ee44444444444e> ,, ,,, ,
, ,,, ,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,,,,,,,, ,:>y>:, ,,:,:, ,/4eeeeee44ee ,ee44444444444e4 ,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,::: ,,,,,,, ,,,,,,,,, , ,,,,,,,,,,,,,,,,,:,,,,::,,, :>y>/, ,,,,:, ,/y>/eeeeee4444ee, ee4444444444yee, ,, ,,,
,,, ,,, ,,,, ,, ,,,,,, ,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,/////, ,,,, ,, ,,,,,,,,,, ,,, ,,,,,, ,,,,,,,, :*yy*:, , ,, :>y*, eeeee44444ee, 4e444444444444e> ,,,,,,
,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,::,,://///**, ,,,, ,, ,,,,,, ,,,:,,, ,,,,,:,,,,,, :/yy*: ::,,,, ,*4y*, 4ee444444eey :, >eeeeee4eeeeeeey ,,,
,,::::,:::::::::::, , ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::/::////::/:::::::/:,,,:,,, ,,::,,, ::,::,,,:::::::,,/y4>/, ,:,,::::,,/y4>/,::::, yeeeee444ee4 , >ee44444444444 ,:,,:,,, ,:::
::///:::/::::///:::,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,:, ,,,,,,, ,:*/,//::://///::>/,:///::,,,:,,,,,,:::::::::::::,,:>4y*:,,::////:,,,*yy*::::,:::/:yeee44444eee, , >e4444444444e4,,:::/>/:::,:/*
:::::://:///////////////:///////:::::::::::,,,::,,,,,,,,,,,, ,::,//,,/:,:/,, ://////::*:,,,::/::::::::::::, ,*yy*:,,,,:::::, :>y>:,,:*//:/**/:yee4eee44eee ,:, >ee4eeee4444e4 ,://*>*/::,://
/::::::://:::,,,:::/**//://::,::/:::::::::::://///:::::::://///:/*: , :: ,, ,//:*://////:://*/:,,,/y4>/::::::///:, ,*yy>/::///*///////,>ee4eeeee4ee:,::,>ee4eey>ee4yee*,////****//*//
/:://::::::,,,,,,,,,::::,,,,,,,:::::::::////::::::::://///***/:/>>, ,::,,,, ,::::: ,/>**>*******////:,,/>4y*:,:/:://::, /y4y*/:///*********//,/eeeey:eeeeey,::,:eeeeey,ee4y4e4,////*********
:,:::::::::::////::::::::::::::::::::::::::::::::::::::::::::,,:**:::**///:,,,::/*/*////::::/::////, :>yy/, ,,,,::/, ,*yy/:,,,,:::::/::::::::,,eeeey ,eeee4 ,, >eeee4 /ee44ee::////////////
::::::::::::::::::::::::::::::::::::::::::::::::::/:::::::::::::::://:://///////:::::::::::///::, ,/y4>/:::////**/ :y4y/::::///:/::::::::::::, *eee4 *eeee:,:: :eeeee 4e44ee:,:/:::::::/::
:::::::::::::::::::::::::::::::::::::::::::::://////////////////::/:///:/:///////////////***/:,,/y4y*/:///****/: :*yy>/:/**///////////////////: >eeey 4eeey,::,:eeeey >ee44e/,:////://////
:::::::::::::::::::::::::::::::://///::///////////////////////////////////////////////////: :>44>////*//***: /y44>//::/*////::///////://::/:: >eeey ,,/eeee:,:,,eeee> :ee44ey,:://////////
:::::::::::::::::::::::::::::::::///::://///////:::://////////::::,:::::::::///::,,, ,,, :*yy>:,,:::://:: :>4y*:,:::::::::::::::::::::::::::, /eee> , eeee* , ,eeee> 4eey44,,,,:::::::,:
::::::::::::::::,:::,,:::::::,,::::::::::::::::::,,,:::::::::,, ,, ,,,,,,,,,,, ,/**: ,*y4>/,,,,,:::,, ,*y4y:,,::::::::,::::::::::::::::::::, >eee* , 4eeey , ,eeee> , *ee4ee/ ::::::::/::
:::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::,,, /4ee/ ,:::::::, ,yeeeee/>>/:,,::::::, :>44*,,:::/::///:::::///::,,:::::/:::::,,eeee: ,, >eee4 , :eeeey , ,eeeee> ,::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::/::::,,>eee4/ ,,::, /e4444ee,,, ,:::,, :>44*:,,,::::::,:::::::,::,::::::::::,,::, >eeee, ,, :eeee, :eeeey ,, 4eeee4,:::::::/:::
::::::::::::::::::::::::::,::::::::::::,,:::::::://::::::::,,:y>y>**>/, :eyyy44y::>>/: :>44y/,,,::,,,,::,,,:::,::::/*//:/:::,://://*y4yyy>:::::/4y>>:::yeeeey,:: *eeee4//::::/:*/::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:>ee44e4y>>*/:/,:yyyyy*/>4yyyy*:::/y444*: :::///::/::/**////*:///>///:////////////: , ,:////**:,,/****:/*:////::/>:,::/*:::::://
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:/>4eeeeeee4ee4/,/>44eee444444eeeee>:,,,:,:///*////////////*////::///:://::::://:,,::/::::,,, ,:::::, ::::::,,,,,:::///////:/
::::::::::::::::,,,:::,,::::::,::::::::::::::::::::::::::::::,, :/**44y*:,,,, />4eeeeeeeeey*/:,:::/**//////:://::::*/::::::::////*/:::/*/////://::::::::///:///:::/::::::::::/:/://::::/://
::::::::,::::::::::::::::::::,,,,,:,,::,,,:,:::,,:,::::::::::,,,, , , ,,::, >>>>/:, ,,,,,::,::::,::::,,,,:,//,:::,:::://::/::::**/://:///:://::::::,//::/::::,,,,,:,,::,,:,,:::,,::