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