##     ##  ######   ######   ######      ######     ###    ########  ######## ######## ########     ########    ###    #### ########     ########  ######## ##     ##    ######## ########    ###    ##     ## 
      ##     ## ##    ## ##    ## ##    ##    ##    ##   ## ##   ##     ## ##       ##       ##     ##    ##         ## ##    ##  ##     ##    ##     ## ##       ##     ##       ##    ##         ## ##   ###   ### 
      ##     ## ##       ##       ##          ##        ##   ##  ##     ## ##       ##       ##     ##    ##        ##   ##   ##  ##     ##    ##     ## ##       ##     ##       ##    ##        ##   ##  #### #### 
      ##     ## ##        ######  ##          ##       ##     ## ########  ######   ######   ########     ######   ##     ##  ##  ########     ##     ## ######   ##     ##       ##    ######   ##     ## ## ### ## 
      ##     ## ##             ## ##          ##       ######### ##   ##   ##       ##       ##   ##      ##       #########  ##  ##   ##      ##     ## ##        ##   ##        ##    ##       ######### ##     ## 
      ##     ## ##    ## ##    ## ##    ##    ##    ## ##     ## ##    ##  ##       ##       ##    ##     ##       ##     ##  ##  ##    ##     ##     ## ##         ## ##         ##    ##       ##     ## ##     ## 
      #######   ######   ######   ######      ######  ##     ## ##     ## ######## ######## ##     ##    ##       ##     ## #### ##     ##    ########  ########    ###          ##    ######## ##     ## ##     ##