.........................................................................................
.........................................................................................
.........................................................................................
................................................::--==---=...............................
...............................................+===++++**-...............................
.................................................===+++*.................................
.................................................=..::--.................................
........................................:++:.................-*=.........................
.................................=..............................:::::::+.................
...*+==---::::=................-..........:::::::::::::::::::::----------+...............
.......*+++===---=............+.....:::::::::::::::::::::-----------------+::.+=.........
..........+=====--*..........*......:::::::::::::::::::::------------------**+++=-.......
............=====-=*........-......::::::::::::::::::::::-------------------+--====......
.............------=-.............::::::::::::::::::::::::-------------------=:::-=......
..............------=...........::::::::::::::::::::::-:::-------------------=.::-+......
..............+-------....-....:::::::::::::::::::::::------------------------=:-+.......
...............---------.-..::::::::::::::::::::::::::-----------------------==#+........
...............=---------:::::::::::::::::::::::::::::---------------------=====.........
................=----------:::::::::::::::::::::::------------------------======*........
.................---====------+:::::::::::::::----------------------------======+........
..................=-===========::::::::::::::--------------------------==========........
....................=======++=+::::::::::--------------------------=============+......::
........-::...........*=++++++---::::--------------------------==============+++.........
..........................=-=------------------------------===============+++++:.........
............................*====-===----==========================++++++++++*...........
......:.......................:============================+++++++++++++++*+.............
.....................:..........--===+=++=====++++++++++++++++++++++++**#................
...................................*=-=+++++++++++++++++++++++++++**++