:::::::: ::: ::: :::::::: ::::::::::: :::::::::: ::: ::: ::::::::: :::::::::: :::::::::: :::::::::: :::: ::: :::::::: ::::::::::
:+: :+: :+: :+: :+: :+: :+: :+: :+:+: :+:+: :+: :+: :+: :+: :+: :+:+: :+: :+: :+: :+:
+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+:+ +:+ +:+ +:+ +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+
+#++:++#++ +#++: +#++:++#++ +#+ +#++:++# +#+ +:+ +#+ +#+ +:+ +#++:++# :#::+::# +#++:++# +#+ +:+ +#+ +#++:++#++ +#++:++#
+#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+
#+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#+# #+# #+# #+#
######## ### ######## ### ########## ### ### ######### ########## ### ########## ### #### ######## ##########