######################################################################################################################################################################################################
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^////^^^^^^^^^^^^^^^^^^^^^^^^//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTT^^^TTTTTTT^^^^^^^^^^^^^^^^^^TTTTTTTTTT^^^^^^^^^^^#
#^^^^^^^//////^^^^^^^^^^^^^^^^^////////////^^^^^^^^^^^^^/////////^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTT//TTTTTTTTTTTTTTTTTTT^^TTTTTTTTTTTTTTTTTTT^^^#^^^#
#^^^//////////////////////////////////////////////////////////////////////////^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTT///TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT###^^#
#^^^/WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT#^^^#
#^^^/WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW/^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//>^^#
#^^^/WW####################################################################WW/^^^^^^^^^^^^^^^^^^^^^///////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///#^^^#
#^^^/WW#..................................................................#WW/^^^^^^^^^^^^^^^TTTTTTTTTTTTT/////////TTTTTTTTTTTTTTTTTTTTT////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///T###T^#
#^^^/WW#................................###................###............#WW/T^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTT///////////////T/////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///TTTT#TT^#
#^^^/WW#.....########...................######################............#WW/TT^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//TTTTTTTTT^#
#^^^/WW#.....########...................######################............#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTT^#
#^^^/WW#.....########.....................##################..............#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTT^#
#^^^/WW#.....########.....................##################..............#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//TTTTTTTTT^^#
#^^^/WW#.....########.....................##################..............#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTT^^#
#^^^/WW#..................................##################..............#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTT^^#
#^^^/WW#................................######################............#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/////TTTTTTTTTT^^#
#^^^/WW#................................######################...........###W/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT////TTTTTTTTTTTTTT^^#
#^^^/WW#................................###................###..........#####/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//////TTTTTTTTTTTTTTTTTT^#
#^^^/WW#................................................................#####/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//////////////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTT^#
#^^^/WW#...................................................................../////////////////////////////////////////////TTTTTTTTTTTT///////////////////////////////////////TTTTTTTTTTTTTTTTTTTTTTT^#
#^^^/WW#................................................................#####/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^#
#^^^/WW#................................................................#####/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^#
#^^^/WW#.................................................................###W/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^#
#^^^/WW#.......##########.................................................#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^#
#^^^/WW#.......##########......................######...........######....#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^^#
#^^^/WW#.......##########......................######...........######....#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^^^#
#^^^/WW#.......##########......................######...........######....#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^^^#
#^^^/WW#.......##########......................######...........######....#WW/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^^^^#
#^^^/WW#.......##########.................................................#WW/TTTTTTTT//////////////////////////////////////////////////////////////////////////////////////////////////////////^^^^^#
#^^^/WW#..................................................................#WW/TTTTTTTT/WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW^^^^^^#
#^^^/WW#..................................................................#WW/TTTTTTTT/WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW^^^^^^^#
#^^^/WW#..................................................................#WW/TTTTTTTT/WW#################################################P###########################################################
#^^^/WW####################################################################WW/TTTTTTTT/WW#################################################.###########################################################
#^^^/WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW/TTTTTTTT/WW##..............................................///........................................................##
#^^^/WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW/TTTTTTTT/WW##..............................................///........................................................##
#^^^//////////////////////////////////////////////////////////////////////////TTTTTTTT/WW##..............................................//////////////////////.....................................##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##....######....................................///................../.#########...#########...#########...##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##...########.....##########...##########.......///........#########./.#########...#########...#########...##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..##########....##########...##########.......///........#########./.#########...#########...#########...##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..###########...####mm####...##########.......///........#########./.####4####...####3####...####2####...##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..##########c...................#######.......///........########../...../.........../.........../.......##
#^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..##########c...................h######.......///........#######7/////////////////////////////////.......##
#^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTo//////WW##..##########c...................#######.......///........########../...../.........../.........../.......##
#^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..###########...####ll####...##########.......///........#########./.####5####...####6####...####1####...##
#^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..##########....##########...##########.......///........#########./.#########...#########...#########...##
#^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##...########.....##########...##########.......///........#########./.#########...#########...#########...##
#^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##....######....................................///................../.#########...#########...####e####...##
#^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##................////////////////////////////////////////////////////.....................................##
#^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//////////////////////.......................///..............................................................##
#^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##..................###...................///..............................................................##
#^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##................#######........####.....///.....####...............#####......##########.................##
#^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##...............#########.......#########bbb#########...............#####......##########.................##
#^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/WW##.....#####......#######........#####################...............##8##......##########........###9###..##
#^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/////////////////////////WW##....#######.......#i#............#################.................../..........##aa##..........#######..##
#^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/////////////TTTTTTTTTTTTTTTTTTTTTTTT/WW##...#########......./.............#################.................../////.///....//............#######..##
#^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///WW##...########j/////////////////////f###############g////////////////..///VVV///T////////TT////////d#####k..##
#^^^^^TTTTTTTTTTTTTTTTTTTTTTTTT////////////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT/////WW##...#########......./.............#################...............////VVVWVVVVVVVTVVVV////TT.....#######..##
#^^^^^^^TTTTTTTT///////////////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//////WW##....#######.......#n#............#################.............../VVVVWWWWWVVVWVVVWWVVVV/.......#######..##
#^^^^^^^^^T/////TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT//////WW##.....#####......#######........#####################............//VWWVWWWWVVVWWVVVWWWV//........#######..##
#^^^^^^^///TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///////WW##...............#########.......#####################............./VVVVVWWVVVVVVVTVVVVVV//T...............##
#^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT///////WW##................#######........####............#####.............////VVVVV//////////////.................##
#^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT^^^^^^TTTTTTTTTTTTTTTTTTTTTT/////WW##..................###...............................................///////.....T..TTT...................##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTTTT^^^^^^^^^^^^^^^^^^^^TTTTTTTTTTTTTTTT////WW##.........................................................................................................##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TTTT///WW#############################################################################################################
######################################################################################################################################################################################################
