..................................................................................................
 :::::::::::::::::.::..........:........:+*###**+*##%%##%#%%%%%%%%%#.....:.:::::::::::::::::::::::::
 :::::::::::::::::::...:..:.....:......:*###+====+++#*#%%#%%%%%%%@%%#+:.:..:::::::::::::::::::::::::
 ::::::::::::::::::.:...:..............###+===---=-==++*####%%#%%%%@%#::.:::::::::::::::::::::::::-:
 ::::::::::::::::::::::....:..:.......*##+==--------====++*#####%%%%%#*:::::::::::::::::::::::::::-:
 :::::::::::::::::::::......:::...:...##*+==---=---=-===++++*+**###%@%#*:::::::::::::::::::::::::--:
 ::::::::::::::::::::::.:...::.......:##*===--------======+++***####%%#*:::::::::::::::::::::::::--:
 ::::::::::::::::::::::::::.:::.:....-##===-=======--====++=++**####%%##:::::::::::::::::::::::----:
 :::::::::::::::::::::::::::::::::::.=#*-=======+++======+++++***###%%##:::::::::::::::::::--------:
 ::::::::::::::::::::::::::::::::::::=*=-===+####*++++==++********##%%#-::::::::::::::-::----------:
 ::::::::::::::::::::::::::::::::::::=+-------=++***=-=*##*+++*#####%%#::::::::::::::::------------:
 ::::::::::::::::::::::::::::::::::::-------=-==++-=-=+##%+#%#*####%%#::::::::::::::---------------:
 ::::::::::::::::::::::::::::::::::::=--------=-=---=+*##++++*#####%*::::::::::::------------------:
 :::::::::::::::::::::::::::::::::::-=-=-----=+*---===+**+++**+**###:::::::::::--------------------:
 ::::::::::::::::::::::::::::::::::::=======+*=-+====+****=++++**##:::::::::::---------------------:
 ::::::::::::::::::::::::::::::::::::===+=++==----+####%##*=++****#::::::::::----------------------:
 ::::::::::::::::::::::::::::::::::::======*#+====+++**#**+++*###*:::::::::::------------------====:
 ::::::::::::::::::::::::::::::::::::+===-=*====+*++**###*+**####:::::::::::----------------=======:
 :::::::::::::::::::::::::::::::::::%%+++==----=====++*###*######%:::::::::---------------=========:
 ::::::::::::::::::::::::::::::::::%%%%++=----==+++++*##*++####%@@%@%%@%::-:-------------==========:
 ::::::::::::::::::::::::::::::%%%%%%%@+**+=----===+*******###%@@@@@@@@@%@%%##=---------===========:
 :::::::::::::::::::::::::*%%%%%%%%%%%@++***====+=++***#####%%@@@@@@@@@@@@@@@@@@@%%=---============:
 ::::::::::::::::::::*%%%%%%%%%%%%%%%%@+++*******+***#%%%%%%%@@@@@@@@@@@@@@@@@@%@@@@@*-============:
 :::::::::::::::::%%%%%%%@%%%%%%%%%%%%@%+++**#####%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@============:
 :::::::::::::::%%%%%%%%%@%%%%%%%%%%%%@@#++***##%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@%===========:
 ::::::::::::::%%%%%%%%%%%@@@@%%%%%%@%%%@%+++**###**####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@==========:
 :::::::::::::%%%%%%%%%%%%%@%%@@@%@@%@@%@@%+++++++++++*%@@@@@@@@@@@@@@@%@@@@%@@@@%@@@@@%=========:
 ::::::::::::%%%%%%%%%%@%@%%@%@@@%@@%%@@%%@@@@%%%@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=========:
 -*************************************************************************************************.