_____  _    ____                  _                 _                 _      
 |  __ \(_)  / __ \                | |               | |               (_)     
 | |  | |_  | |  | |_   _  __ _  __| |_ __ __ _ _ __ | |__   ___  _ __  _  ___ 
 | |  | | | | |  | | | | |/ _` |/ _` | '__/ _` | '_ \| '_ \ / _ \| '_ \| |/ __|
 | |__| | | | |__| | |_| | (_| | (_| | | | (_| | |_) | | | | (_) | | | | | (__ 
 |_____/| |  \___\_\\__,_|\__,_|\__,_|_|  \__,_| .__/|_| |_|\___/|_| |_|_|\___|
       _/ |                                    | |                             
      |__/                                     |_|                             


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


  dP'    dP"Yb  dP""Yb      dP"Yb    dP88  88888       dP88    dP88  88888 
.d8'    dP   Yb Ybood8     dP   Yb  dP 88    .dP      dP 88   dP 88    .dP 
8P"""Yb Yb   dP   .8P'     Yb   dP d888888 o `Yb     d888888 d888888 o `Yb 
`YboodP  YbodP   .dP'       YbodP      88  YbodP         88      88  YbodP