88888888ba,                                                            
88      `"8b                                                           
88        `8b                                                          
88         88   ,adPPYba,       8b       d8   ,adPPYba,   88       88  
88         88  a8"     "8a      `8b     d8'  a8"     "8a  88       88  
88         8P  8b       d8       `8b   d8'   8b       d8  88       88  
88      .a8P   "8a,   ,a8"        `8b,d8'    "8a,   ,a8"  "8a,   ,a88  
88888888Y"'     `"YbbdP"'           Y88'      `"YbbdP"'    `"YbbdP'Y8  
                                    d8'                                
                                   d8'                                 
                                                                                                                
88  88  88                                    88           88           88  88                      ad88888ba   
88  ""  88                                    ""           88           88  88                     d8"     "8b  
88      88                                                 88           88  88                     ""      a8P  
88  88  88   ,d8   ,adPPYba,      8b,dPPYba,  88   ,adPPYb,88   ,adPPYb,88  88   ,adPPYba,  ,adPPYba,   ,a8P"   
88  88  88 ,a8"   a8P_____88      88P'   "Y8  88  a8"    `Y88  a8"    `Y88  88  a8P_____88  I8[    ""  d8"      
88  88  8888[     8PP"""""""      88          88  8b       88  8b       88  88  8PP"""""""   `"Y8ba,   ""       
88  88  88`"Yba,  "8b,   ,aa      88          88  "8a,   ,d88  "8a,   ,d88  88  "8b,   ,aa  aa    ]8I  aa       
88  88  88   `Y8a  `"Ybbd8"'      88          88   `"8bbdP"Y8   `"8bbdP"Y8  88   `"Ybbd8"'  `"YbbdP"'  88