,o888888o.         ,o888888o.     8 888888888o.      8 8888         8 8888888888   8 8888888888   8 8888      88 8888888888',8888' 8888888888',8888' 
 . 8888     `88.    . 8888     `88.   8 8888    `^888.   8 8888         8 8888         8 8888         8 8888      88        ,8',8888'         ,8',8888'  
,8 8888       `8b  ,8 8888       `8b  8 8888        `88. 8 8888         8 8888         8 8888         8 8888      88       ,8',8888'         ,8',8888'   
88 8888        `8b 88 8888        `8b 8 8888         `88 8 8888         8 8888         8 8888         8 8888      88      ,8',8888'         ,8',8888'    
88 8888         88 88 8888         88 8 8888          88 8 8888         8 888888888888 8 888888888888 8 8888      88     ,8',8888'         ,8',8888'     
88 8888         88 88 8888         88 8 8888          88 8 8888         8 8888         8 8888         8 8888      88    ,8',8888'         ,8',8888'      
88 8888        ,8P 88 8888        ,8P 8 8888         ,88 8 8888         8 8888         8 8888         8 8888      88   ,8',8888'         ,8',8888'       
`8 8888       ,8P  `8 8888       ,8P  8 8888        ,88' 8 8888         8 8888         8 8888         ` 8888     ,8P  ,8',8888'         ,8',8888'        
 ` 8888     ,88'    ` 8888     ,88'   8 8888    ,o88P'   8 8888         8 8888         8 8888           8888   ,d8P  ,8',8888'         ,8',8888'         
    `8888888P'         `8888888P'     8 888888888P'      8 888888888888 8 888888888888 8 8888            `Y88888P'  ,8',8888888888888 ,8',8888888888888
 
 .d88888b.                888 888           .d888                            
d88P" "Y88b               888 888          d88P"                             
888     888               888 888          888                               
888     888  .d88b.   .d88888 888  .d88b.  888888 888  888 88888888 88888888 
888     888 d88""88b d88" 888 888 d8P  Y8b 888    888  888    d88P     d88P  
888     888 888  888 888  888 888 88888888 888    888  888   d88P     d88P   
Y88b. .d88P Y88..88P Y88b 888 888 Y8b.     888    Y88b 888  d88P     d88P    
 "Y88888P"   "Y88P"   "Y88888 888  "Y8888  888     "Y88888 88888888 88888888 
                              ,,    ,,             ,...                          
  .g8""8q.                  `7MM  `7MM           .d' ""                          
.dP'    `YM.                  MM    MM           dM`                             
dM'      `MM  ,pW"Wq.    ,M""bMM    MM  .gP"Ya  mMMmm`7MM  `7MM  M"""MMV M"""MMV 
MM        MM 6W'   `Wb ,AP    MM    MM ,M'   Yb  MM    MM    MM  '  AMV  '  AMV  
MM.      ,MP 8M     M8 8MI    MM    MM 8M""""""  MM    MM    MM    AMV     AMV   
`Mb.    ,dP' YA.   ,A9 `Mb    MM    MM YM.    ,  MM    MM    MM   AMV  ,  AMV  , 
  `"bmmd"'    `Ybmd9'   `Wbmd"MML..JMML.`Mbmmd'.JMML.  `Mbod"YML.AMMmmmM AMMmmmM 
 _____               __   ___              ___                           
/\  __`\            /\ \ /\_ \           /'___\                          
\ \ \/\ \    ___    \_\ \\//\ \      __ /\ \__/  __  __  ____    ____    
 \ \ \ \ \  / __`\  /'_` \ \ \ \   /'__`\ \ ,__\/\ \/\ \/\_ ,`\ /\_ ,`\  
  \ \ \_\ \/\ \L\ \/\ \L\ \ \_\ \_/\  __/\ \ \_/\ \ \_\ \/_/  /_\/_/  /_ 
   \ \_____\ \____/\ \___,_\/\____\ \____\\ \_\  \ \____/ /\____\ /\____\
    \/_____/\/___/  \/__,_ /\/____/\/____/ \/_/   \/___/  \/____/ \/____/
  .oooooo.                   .o8  oooo             .o88o.                                   
 d8P'  `Y8b                 "888  `888             888 `"                                   
888      888  .ooooo.   .oooo888   888   .ooooo.  o888oo  oooo  oooo    oooooooo   oooooooo 
888      888 d88' `88b d88' `888   888  d88' `88b  888    `888  `888   d'""7d8P   d'""7d8P  
888      888 888   888 888   888   888  888ooo888  888     888   888     .d8P'      .d8P'   
`88b    d88' 888   888 888   888   888  888    .o  888     888   888   .d8P'  .P  .d8P'  .P 
 `Y8bood8P'  `Y8bod8P' `Y8bod88P" o888o `Y8bod8P' o888o    `V88V"V8P' d8888888P  d8888888P