 _________  _______      ___    ___ _________        _______   ________ ________ _______   ________ _________  ________      
|\___   ___\\  ___ \    |\  \  /  /|\___   ___\     |\  ___ \ |\  _____\\  _____\\  ___ \ |\   ____\\___   ___\\   ____\     
\|___ \  \_\ \   __/|   \ \  \/  / ||___ \  \_|     \ \   __/|\ \  \__/\ \  \__/\ \   __/|\ \  \___\|___ \  \_\ \  \___|_    
     \ \  \ \ \  \_|/__  \ \    / /     \ \  \       \ \  \_|/_\ \   __\\ \   __\\ \  \_|/_\ \  \       \ \  \ \ \_____  \   
      \ \  \ \ \  \_|\ \  /     \/       \ \  \       \ \  \_|\ \ \  \_| \ \  \_| \ \  \_|\ \ \  \____   \ \  \ \|____|\  \  
       \ \__\ \ \_______\/  /\   \        \ \__\       \ \_______\ \__\   \ \__\   \ \_______\ \_______\  \ \__\  ____\_\  \ 
        \|__|  \|_______/__/ /\ __\        \|__|        \|_______|\|__|    \|__|    \|_______|\|_______|   \|__| |\_________\
                        |__|/ \|__|                                                                              \|_________|

 ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄       ▄  ▄▄▄▄▄▄▄▄▄▄▄       ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄ 
▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌     ▐░▌▐░░░░░░░░░░░▌     ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
 ▀▀▀▀█░█▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀  ▐░▌   ▐░▌  ▀▀▀▀█░█▀▀▀▀      ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀  ▀▀▀▀█░█▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ 
     ▐░▌     ▐░▌            ▐░▌ ▐░▌       ▐░▌          ▐░▌          ▐░▌          ▐░▌          ▐░▌          ▐░▌               ▐░▌     ▐░▌          
     ▐░▌     ▐░█▄▄▄▄▄▄▄▄▄    ▐░▐░▌        ▐░▌          ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌               ▐░▌     ▐░█▄▄▄▄▄▄▄▄▄ 
     ▐░▌     ▐░░░░░░░░░░░▌    ▐░▌         ▐░▌          ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌               ▐░▌     ▐░░░░░░░░░░░▌
     ▐░▌     ▐░█▀▀▀▀▀▀▀▀▀    ▐░▌░▌        ▐░▌          ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░▌               ▐░▌      ▀▀▀▀▀▀▀▀▀█░▌
     ▐░▌     ▐░▌            ▐░▌ ▐░▌       ▐░▌          ▐░▌          ▐░▌          ▐░▌          ▐░▌          ▐░▌               ▐░▌               ▐░▌
     ▐░▌     ▐░█▄▄▄▄▄▄▄▄▄  ▐░▌   ▐░▌      ▐░▌          ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌          ▐░▌          ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄      ▐░▌      ▄▄▄▄▄▄▄▄▄█░▌
     ▐░▌     ▐░░░░░░░░░░░▌▐░▌     ▐░▌     ▐░▌          ▐░░░░░░░░░░░▌▐░▌          ▐░▌          ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌     ▐░▌     ▐░░░░░░░░░░░▌
      ▀       ▀▀▀▀▀▀▀▀▀▀▀  ▀       ▀       ▀            ▀▀▀▀▀▀▀▀▀▀▀  ▀            ▀            ▀▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀▀▀▀       ▀       ▀▀▀▀▀▀▀▀▀▀▀ 
      
  ::::::::::: :::::::::: :::    ::: :::::::::::          :::::::::: :::::::::: :::::::::: :::::::::: :::::::: ::::::::::: :::::::: 
     :+:     :+:        :+:    :+:     :+:              :+:        :+:        :+:        :+:       :+:    :+:    :+:    :+:    :+: 
    +:+     +:+         +:+  +:+      +:+              +:+        +:+        +:+        +:+       +:+           +:+    +:+         
   +#+     +#++:++#     +#++:+       +#+              +#++:++#   :#::+::#   :#::+::#   +#++:++#  +#+           +#+    +#++:++#++   
  +#+     +#+         +#+  +#+      +#+              +#+        +#+        +#+        +#+       +#+           +#+           +#+    
 #+#     #+#        #+#    #+#     #+#              #+#        #+#        #+#        #+#       #+#    #+#    #+#    #+#    #+#     
###     ########## ###    ###     ###              ########## ###        ###        ########## ########     ###     ########       