.................
 :............:                :........
    .:       ___                       :......
___  ::  ____/ __\_________  ___________      :
\  \_::_/      \_   \      \/_     \    \___  :......
\          _   /   /___   __/     /_      /        :
 \__\:__\__/   \__   _/  /       __/      \        :.-------.--:
    ::    /______/__/___/\_____:___________\        .:-------------
    ::                         :                   .------.:----
     :..........   ___ ___     ::              ....:
        ___  ::  _/ _//_  \     :             :
       /  //__:_/__ / /   /     :::...........:                  .
       \__       _   /   /      ..:                            .d8
         /       /      /      :                             .d888
        /____\______/  /       :                     ___...d888888
             :/__/ /__/        :               _..nd88888888888888
             ::                :           _.-" .  `88888888888888b.
              :.......| |......:.        .d.  .'  `. `88`8888`888888.
                      |.|              .d8' .  d88b `.`8b `88.`888888b.
                      |.|            .d888.  . `8888. .`8b 888.`8888888b.
                      :||           d888888.  . `888P ' 88.`888.`+8888888b.
                      .|:         .d888 d888  : .88'  .d88P 8888. `88888888b.
                       |         .88888 8888  :'  _.d88888.d88888b.`+888888'.b
          ______________________.88888' 888'  _.d888888888888888888b._""88'.8'
      _.-"    .---.    _..._  .d88888  d8888888888888888+" .88888"+88888888+'
    .'   .   `.__.-' : `.__.'  "+8888b 88888888888888+' .d88888+'
  .d'  .':         .' .           `+8888888888888+"'_.d888888+'
.d8'.d88 '   db._.'    `     8n. `. :8P"`-.._   _.nd88888888'
88888888. `.__.   .               ; :  .n. `P""""8888888888'
8888888888b..__.d8 :  `8n   ':...-' .' d888   .n.  `"  `888'
888888888888888888. ._   _.' :`...-' . `+8P..d888b.d88b `8'
8888888888888888888.  """  _.' .bn..d8b._  , `+8+' `+8P .'
88888888888888888888b...-'"   "88888888888888b...nd._  .8
888888888888888888888'  .d888bn `888888888888888888888888
888888888888888888888   `88P""' d888888888888888888888888
888888888888888888888P   `8bn.   `88888888888888888888888
8888888888888888888888.__d8888b__d88888888888888888888888
888888888888                                 `88888888888
88888888888'                                  88888888888
88888888888                                   `8888888888
8888888888'                                    8888888888
8888888888                                     `888888888
888888888'                                      888888888
888888888                                       `88888888
`8888888'                                        88888888
8888888                                         `8888888
`888888                                          8888888
 888888                                          `888888