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