:.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.:.::.:::.::::
::.:::.::::.:::.::::.:::.::::.:::.::::.:::.::::.:::.::::.:::.::::.:::.::::.:::.::::.:::.::::.:::.:::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::;:::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::;
:;::;::;::;::;::;::;:::::;ttttttttttttttttttttt:::;:::::tttttttttttttttttttt%;:::;:;::;::;::;::;:;:;
;;;:;:;:;::;:;:;:;:;:;:;:8%S%S%S%S%S%S%S%S%S%S%8:::;:;.@S%S%S%S%S%S%S%S%S%SS%@t::;;:;::;:;:;:;:;:;:;
;:;;;;:;;;;;;:;;;:;;;::.8%SSSSSSSSSSSSSSSSSSXSSSS::;;:%SXSSSSSSSSSSSSSSSSXSXXS8:;;::;;;;;:;;;:;;:;;;
;;;;;;;;;:;;;;;:;;;:;;:XSXSXXXXXXXXXXXXXXXXSXSXS@t:::t@SSXXXXXXXXXXXXXXXSSXSSXS8::;;;;;:;;;:;;;;;;;;
t;;;;;;;;;;;;;;;;;;;;:@XXXXXXSXXSXXXSXXSXXXXXXXXS@%.%XXXXXXSXXXSXXSXXXSXXXXXXXXS8;;;;;;;;;;;;;;;;;;t
t;;t;;;;;;;;;;;;;;;;:XSXXXXXXXXX@XXXXXX@XXXXXXXXXX8;@XXXXXXXXXXXXX@XXXXXXXXXXXXXSX:;;;;;;;;;;;;;;;;t
t;t;t;t;tt;t;tt;tt;;S@XXXXXXXXXXXXXXXXXXXXXXXXXXXXX@XXXXXXX@XXXXXXXXXXX@XXXXXXXXX@%;;tt;tt;tt;tt;ttt
tttttt;t;t;tttttt;;XXXXX@@X@@@@X@X@@@@X@@X@@@@X@@X@@@X@X@@X@X@@@X@@X@@X@X@@@X@@@XX@S;;tt;tttttt;tt%%
%tttttttttttttttt;%X@@@XX@X@XX@X@X@XX@XX@X@XX@X@X@XX@X@X@X@X@XX@X@X@X@X@X@X@X@XX@@X@t;ttttttttttS%S%
%t%ttttttttttttt;%@@X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XX@X8;tttttt%%SSSSSS
%%t%%t%%t%%t%%ttS8X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8ttt%SSSXXSXSXS
S%%%%%%%%%%%%%t%@X@X@@@X@@@X@@@X@@@@@X@@@@X@@X@@X@@@X@@X@@X@@@X@@@@@X@@X@@X@@X@@@@@@@X8tSSXX@XXXXXXX
S%S%%%%%%%%%%%t8@@X@@X@X@X@X@XX@XXX88XX@X@X@X@X@X@XX@X@X@X@XX@X@XX8@XX@X@X@X@X@XX@XXXt;8%XXXXXXXXXXX
XSSSSSSSSSSS%S8XXXXXXXXXXXXXXXXXXX8%%8SXXXXXXXXXXXXXXXXXXXXXXXXXX8t@XXXXXXXXXXXXS%;;::::8SX@@@@@@@@@
XSXSSXSSXSSS%8SXXSXXXXXXXXXXXXSXX@%S%%8SXXXXXXXXXXXXXXXXXXXXXXSS8%%%@SXXXSXXXX%;::::;:;::8X@@@8@@@@8
@XXXXXXXXXX%8SSSSSSSSSSSSSSSSSSSXXSXXSS8SSSSSSSSSSSSSSSSSSSSSSS8XSSX%8SSSS%t;:::::;::::::;8@@8888888
8@@@@@@@@XX8888888888888888888@8@XX@X@XS88888888888888888888888XX@X@XX8XXXXXXXXXXXXXXXXXSXX@88888888
888@@8@8@8X888888888888888888888SX@88@@SX8888888888888888888888SS@8888X8888888888888888888X8@8888888
8888888888@ @ 8 8 @ 8 8 8 8 8 @ 8XX@8X%8.8 8 8 8 8 8 8 8 8 8.@8888888%;;:;:;:;:;:;:;:;:8. 888888888
88888888888SS.X X88888888888888 8 888X @88888888888 @ @ @ 8 8 88888X8888888888888888888;:88@8@88888
888888888888% @ 8 8 8 8 8 8 888 8 @@%88 8 8 8 8 8 8 88 @ 8 @ @ 88888.8 8 8 8 8 8 8 8 8. 88X8S888888
88888888888888 88 88 8 8 8 8 8 8 8;8 8 @ @ 8 8 8 8 8 88 @ 8 @ 8 8@ 8 8.8 8.8 8 8 8 8.888S8S8S88888
@@@@@@@@@@X@@88t;88;88:888X8:888%8:8 ;:8 ;:8 %;; 8 t:t 8 :8 ;.; 8:8.8t8:8%8:88%8;8;8t8t8%S@X@@@@8@
X@@X@@X@X@XXXSX8St;%;%Xt;;;S@%tt%S@S88@%@8@X8@88S%@888XS8XS@88888%%XS@%SSX%SSXtt%%X%X:8%8t8%XX@@X@X@
XXXXXXXXXXXXXXSX@8X%ttt%t%tttttttt.t:%.%;%:t.t.%%St%:t;%:%:%.%:%%%SS:S%%%t%%t%%t%t%.S88@%XSXXXXXXXXX
XXXXXXXXXXXXX@@@8@Xt%%%%%%%%%%%%%%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXSS%%%%%%%%%%%%%S%S8@8XXXXXXXXXXXX
@@8@@8@8@@8@@8@@888St%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%t@8@@8@8@@8X@8@@8@
88888888888888888888%t%tt%tt%tt%t%tt%tt%tt%tttttt%tttt%tt%tt%tt%t%tt%t%tt%tttt%ttt8S8888888@@8@88888
8888888888888888888888888888888888888888888888@8888888888888888888888888888888888X888888888888888888
8888888888888888888888X X88@888888888888888@88888@8S:8;8S S88@888888888888888888@8888888888888888888
88888888888888888@888X @8S.%St:%St:SSt:SSt:SSt:SSS8S %t8S888888888888888888888888888888888@888888888
@@@@@@@@@@@@@X@@@@X@@X%88;8;8t8;8t8:8t8:8;8:8;8.8:%@%X.8::S8t8t8t8t8t8t8t8t8t8@SX@@@8@8@@X@@@@@@@@@X
XXXSXXXSXXXXXXXXXXXXSXX:88. X88: S8.88: S88: X8.S%SXS%X8:.:S8::X8::X8::X8::S8:8tSXSXXXXXXXSXXXXXXXXX
S%SSS%SSS%SS%SS%S%SSSS%S.S;888@@88 8@8.888@88X88SS%SSS:S.8t88@8@8@8888888@888t;X%SSSSSSSS%S%SSSS%SS%
%t%t%t%t%%t%t%t%t%t%%t%%%t;;:t;;t; :t:.t ;t%StSX%%%t%t%@.; %%%%t%;tS; :t%;%XSt%%%%tt%tt%t%t%ttt%%t%t
ttttttttttttttttttttttttt%%ttttttttttttt;tt;tttttttttttStttttttttt%tttttttt;%tt;tttttttttttttttttttt
;;;;;;;;;;;;;;;;;;;;;;;;;;t;;;t;;;;;t;;;;;;;;;t;;;;;;ttt;;;t;;;t;;;;;;;;;;;;t;;;;;;;;;;;;;;;;;;;;;;;
:;:;:;:;::;::;:;:;:::;::;:;;:::;:;:;::;:;:;:;::;;:;:;::;:;::;:::;:;:;:;:;:;:;;:;:;:;:;:;:;:;:;::;::;
::.::.::::.::::.::::::::.::::::.:::.::::.::.::::::::.:::::::.:::::.::.::::::.::::::.:::.:::.:.::.::.
.......................................................:.....................:...............:.....:
............................................................................................. .....
.. .. . .. . .. . . . .. .. ... .. .. . .. .. ... .. .. .. .. . . .. .. . . . . . .. .. .. .... ....
... .... .... ........ .. ... .. .. .... ... .. ..... ..... ...... ... ........... .. ... .. . .. .