::'########:'########:'##::::'##:'########:'########::'########:'########::'######::'##::::'##::
:: ##.....::... ##..:: ##:::: ##: ##.....:: ##.... ##:... ##..:: ##.....::'##... ##: ##:::: ##::
:: ##:::::::::: ##:::: ##:::: ##: ##::::::: ##:::: ##:::: ##:::: ##::::::: ##:::..:: ##:::: ##::
:: ######:::::: ##:::: #########: ######::: ########::::: ##:::: ######::: ##::::::: #########::
:: ##...::::::: ##:::: ##.... ##: ##...:::: ##.. ##:::::: ##:::: ##...:::: ##::::::: ##.... ##::
:: ##:::::::::: ##:::: ##:::: ##: ##::::::: ##::. ##::::: ##:::: ##::::::: ##::: ##: ##:::: ##::
:: ########:::: ##:::: ##:::: ##: ########: ##:::. ##:::: ##:::: ########:. ######:: ##:::: ##::
::........:::::..:::::..:::::..::........::..:::::..:::::..:::::........:::......:::..:::::..:::
::::::::::::::::::'######:::'##::::::::'#######::'########:::::'###::::'##::::::::::::::::::::::
:::::::::::::::::'##... ##:: ##:::::::'##.... ##: ##.... ##:::'## ##::: ##::::::::::::::::::::::
::::::::::::::::: ##:::..::: ##::::::: ##:::: ##: ##:::: ##::'##:. ##:: ##::::::::::::::::::::::
::::::::::::::::: ##::'####: ##::::::: ##:::: ##: ########::'##:::. ##: ##::::::::::::::::::::::
::::::::::::::::: ##::: ##:: ##::::::: ##:::: ##: ##.... ##: #########: ##::::::::::::::::::::::
::::::::::::::::: ##::: ##:: ##::::::: ##:::: ##: ##:::: ##: ##.... ##: ##::::::::::::::::::::::
:::::::::::::::::. ######::: ########:. #######:: ########:: ##:::: ##: ########::::::::::::::::
::::::::::::::::::......::::........:::.......:::........:::..:::::..::........:::::::::::::::::
:'####:'##::: ##:'########::'##::::'##::'######::'########:'########::'####:'########::'######::
:. ##:: ###:: ##: ##.... ##: ##:::: ##:'##... ##:... ##..:: ##.... ##:. ##:: ##.....::'##... ##:
:: ##:: ####: ##: ##:::: ##: ##:::: ##: ##:::..::::: ##:::: ##:::: ##:: ##:: ##::::::: ##:::..::
:: ##:: ## ## ##: ##:::: ##: ##:::: ##:. ######::::: ##:::: ########::: ##:: ######:::. ######::
:: ##:: ##. ####: ##:::: ##: ##:::: ##::..... ##:::: ##:::: ##.. ##:::: ##:: ##...:::::..... ##:
:: ##:: ##:. ###: ##:::: ##: ##:::: ##:'##::: ##:::: ##:::: ##::. ##::: ##:: ##:::::::'##::: ##:
:'####: ##::. ##: ########::. #######::. ######::::: ##:::: ##:::. ##:'####: ########:. ######::
:....::..::::..::........::::.......::::......::::::..:::::..:::::..::....::........:::......:::
__ __ _ _ _ _ _
\ \ / /__ __ __ _(_) | | _ _ _____ _____ _ _ __| (_)___
\ \/\/ / -_) \ V V / | | | | ' \/ -_) V / -_) '_| / _` | / -_)_
\_/\_/\___| \_/\_/|_|_|_| |_||_\___|\_/\___|_| \__,_|_\___(_)