888                               d8888 8888888                                                                        
     888                              d88888   888                                                                          
     888                             d88P888   888                                                                          
 .d88888  .d88b.  88888b.d88b.      d88P 888   888   888  888 888d888  .d88b.   .d88b.       .d8888b  .d88b.  88888b.d88b.  
d88" 888 d8P  Y8b 888 "888 "88b    d88P  888   888   888  888 888P"   d88P"88b d88""88b     d88P"    d88""88b 888 "888 "88b 
888  888 88888888 888  888  888   d88P   888   888   888  888 888     888  888 888  888     888      888  888 888  888  888 
Y88b 888 Y8b.     888  888  888  d8888888888   888   Y88b 888 888     Y88b 888 Y88..88P d8b Y88b.    Y88..88P 888  888  888 
 "Y88888  "Y8888  888  888  888 d88P     888 8888888  "Y88888 888      "Y88888  "Y88P"  Y8P  "Y8888P  "Y88P"  888  888  888 
                                                                           888                                              
                                                                      Y8b d88P                                              
                                                                       "Y88P"