^^^^^^^^^###################^^^^^^^^^^^
^^^^^^^^# ####################^^^^^^^^^^
^^^^^^######^^^^^^ ^^^^^^^######^^^^^^^^
^^^^^#####^^^^^^^^^^^^^^^^^ ######^^^^^^
^^^^### #^^^^^^^^^^^^^^^^^^^^^#####^^^^^
^^^####^^^^^^^^^ ^^^^^^^^^^^^^^#####^^^^
^^####^^^^^####^^^^^^^^^# ##^^^^^###^^^^
^^###^^^^^######^^^^^^^###^^^^^^## ##^^^
^####^^^^^######^^^^^^###^^^^^^^^###^^^
^# ##^^^^^^^####^^^^^^###^^^^^^^^^####^^
^###^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^###^^
^###^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^###^^
^###^^^^##^^^^^^^^^^^^^^^^^## ^^^^^###^^
^###^^^^###^^^^^^^^^^^^^^^^##^^^^####^ ^
^####^^^^###^^^^^^^^^^^^^^###^^^^###^^^
^^###^ ^^^####^^^^^^^^^^^####^^^^####^^^
^^####^^^^##### #^^^^^######^^^^^###^^^^
^^^####^^^^############# ##^^^^#####^^^^
^^^^####^^^^^###########^^^^^#### #^^^^^
^^^^^#####^^^^^^^^^^^^^^^^^######^^^^^^
^ ^^^^^#########################^^^^^^^^
^^^^^^^^## #######