,ad8888ba,                                       88                              88  
 d8"'    `"8b                                      88                              88  
d8'                                                88                              88  
88             8b,dPPYba,  ,adPPYYba,   ,adPPYba,  88   ,d8    ,adPPYba,   ,adPPYb,88  
88             88P'   "Y8  ""     `Y8  a8"     ""  88 ,a8"    a8P_____88  a8"    `Y88  
Y8,            88          ,adPPPPP88  8b          8888[      8PP"""""""  8b       88  
 Y8a.    .a8P  88          88,    ,88  "8a,   ,aa  88`"Yba,   "8b,   ,aa  "8a,   ,d88  
  `"Y8888Y"'   88          `"8bbdP"Y8   `"Ybbd8"'  88   `Y8a   `"Ybbd8"'   `"8bbdP"Y8