::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::—-::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::-..-::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::–::::::::::::-..-::::::::::::–::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::-.-:::::::::::-..-:::::::::::-.-::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::-.-::::::::::-..-::::::::::-.-:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::-..-::::::::-..-::::::::-..-::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::-..-:::::::-..-:::::::-..-:::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::-..-::::::-…::::::-..-::::::::::::::-:::::::::::::::::::::
:::::::::::::::::::::::—–:::::::::::-..-:::::.…:::::-..-:::::::::::–.–:::::::::::::::::::::
:::::::::::::::::::::::::–…–::::::::-…::::.…::::…::::::::::-…–:::::::::::::::::::::::
::::::::::::::::::::::::::::–.…-:::::::…:::.…:::…:::::::-.…–::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::-.…–::::…-:.…:-…::::–.…-::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::-.….-::-..-.…-..-::-.….-:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::–.…–.….…–.…–::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::-.… .…-::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::—–.….….….….….. .….….….….…..—–:::::::::::::::::
::::::::::::::::::::———————–.… .…———————–::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::-.….… .….….-::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::-.….-:-..-.…-..-:-.….-::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-.….-:::-..-:.…:-..-:::–.…-:::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::-.…-::::::-..-::.…::-..-::::::-.…–:::::::::::::::::::::::::::
::::::::::::::::::::::::::–…–::::::::-..-:::.…:::-..-::::::::–…–::::::::::::::::::::::::
:::::::::::::::::::::::—..-:::::::::::…-::::.…:::::..-:::::::::::–.—:::::::::::::::::::::
:::::::::::::::::::::::—:::::::::::::…::::::.…::::::…::::::::::::::–:::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::..-:::::::-…:::::::-..::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::-..-::::::::-..-::::::::-..-::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::-..-:::::::::-..-:::::::::-..-:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::-..-::::::::::-..-::::::::::-..-::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::–::::::::::::-..-::::::::::::–::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::-..-::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::—-::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::