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