__######__#######_######__########_######__##___##_######_
_##_______##______##___##____##____##___##_##___##_##___##
_##__###__#####___##___##____##____##___##_##___##_##___##
_##____##_##______######_____##____######__##___##_##___##
_##____##_##______##___##____##____##___##_##___##_##___##
__######__#######_##___##____##____##___##__#####__######_