...............................................................................................................................................................
...............................................................................................................................................................
............................................................:::::::::::|||||||||||||||::::::::::::.............................................................
..................................................:::||||||||||||||||||||||||||||||||||||||||||||||||||::::::..................................................
...........................................::|||||||||||||||||||||||||||||||::::::|||||||||||||||||||||||||||||||||||||:::::...................................
........................................:||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:::...........................
.......................................|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:........................
.....................................:|||||||||||||||||:::::................................::::::::::|||||||||||||||||||||||||||||||||||:::...................
.....................................:||||||||||||::..........................................................::::||||||||||||||||||||||||||||:................
.......................................|||||||||||:.....................................................:::::.....::::||||||||||||||||||||||||||...............
....................................::||||||||||||::::::::::|||||||||||||||||:.........:||||||||||||||||||||||||||||:::|||||||||||||||||||||||||:..............
..........................::::::||||||||||||||||::..::::|||||:::::::..:::::::.........:||||::::::::|||||||||||||||||||||||||||||||||||||||||||::...............
....................::::|||||||||||||||||||||||:.....................................:::::::...........::::::::::::::|||||||||||||||||||||||::.................
....................::::::|||||||||||||||||||||.......................................::::::..................::::::::||||||||||||||||||||||||:::::............
........................:||||||||||||||||||||||:::.......................:::::::::::::|||||::::............:::::::|||||||||||||||||||||||||||||||||||::::......
........................:||||||||||||||||||||||||::..........................:.......::|::::............::::::||||||||||||||||||||||||||||||||||||||:..........
..............::.......::|||||||||||||||||||||||||::::.............:..:....::.......:::||||||||||:::::::::::::|||||||||||||||||||||||||||||||||||||||..........
..................::::::::....::|||||||||||||||||||:::::......:::::..:::::::::::.::::::::||||||||:|||||||||||||||||||||||||||||||||||||||||||||||||||..........
.....................|||::...:::|||||||||||||||||||||||::::....:...........::::::::::::||||||||||::|||||||||||||||||||||||||||||||||||||||||||||||::...........
.....................:::||||||||||||||||||||||||||||||||||:..::::............................:::::|||||||||||||||||||||||||||||||||||||||||||:||:..............
......................::|||||||||||||||||||||||||||||||||||||||||||::::..............:::::::::|||||||||||||||||||||||||||||||||||||||||||||||:|:...............
.............................::::::|::|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||::................
......................................:|||||||||||||||||||||||:|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||::::::|||::..................
........................:::::::::::::::||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:.................................
..............:::::::::::::::::::::::::::::::|||||||||||||||:::::||::::::::|||||||::|||||::||||||||::||||||||||||||||||||||||:.................................
.......:::::::::::::::::::::::::::::::::::::::::::::::::::::|||::::||:::::::::::::::.::|::::||||||:||||||||||||||||||||||||||||::..............................
::::::......:::::::::::||||||||||:::::::::::::::::::::::::::::::::||||||||||||||||::::::::::|||||||||||||||||||||||||||||||:::::::::...........................
:::::::::::::::::::::::::::::|:||||:::::::.::::::::::||||:::::::::::::||||||||||||||||||||||:::|:::|||||||||||||||||||||||:::::::.....:::::::::::..............
|::::::::::::::::::::::::::::::::::::::::::::::::::::::|||||::::::::::::::||||||||||||||||||::::||||||||||||||||||:||:::::::::::::::::::::::::::::.............
|||:::::::::::::::::::::::....::::::::::::::::::::::::::::||||||:::::::::::||||||||||||||||||::::||||||::::::::::::::::::::::::::::::::::::::::::::::..........
||||:::::::::::::::::.............................:::::.:::::||||||:::::::::::::::::::::|||||:::::||:||:::::::::::::::::::::::::::::::::::::::::::::::....::...
|||||:::::::::::::.........................................:::::::||:::::::::::::::::::::::::::::::|:|||::::::::::::::::::::::::::::::::::::::::::::::::::::...
||||||:.::........................................................:::::::::::::::::::::::::::::::::|::||::::::::::::::::::::::::::::::::::::::::::::::::::.....