::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-:::::::::::::::..:::::::::::::::-:::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-.-:::::::::::::..:::::::::::::-.-:::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::..-::::::::::::–::::::::::::-..::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::.–::::::::::—-::::::::::–.:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::.:–::::::::-::.::::::::–:.::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.:–:::::::.//.:::::::–:.:::::::::::::::::::::::::::::::::::
:::::::::::::::::::::-::::::::::::::::.::-::::::.//.::::::-::.::::::::::::::::-:::::::::::::::::::
:::::::::::::::::::::-..–:::::::::::::.//–::::.//.::::–:/.:::::::::::::–..-:::::::::::::::::::
::::::::::::::::::::::::-.—-::::::::::.//–:::.//.:::–//-::::::::::—-.-::::::::::::::::::::::
::::::::::::::::::::::::::—:—-:::::::-//:-::-//-::-://-:::::::—-:—::::::::::::::::::::::::
:::::::::::::::::::::::::::::—:::—::::.//:—//—://–:::—:::—:::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::—://:—-.///.-//-.///.—-::/:—::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::—://::-.:/:.–.-/:.-:://:—:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::—://:.—..-.-.://:—::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::—————-.-.–..` `..–.-.—————-:::::::::::::::::::::::
::::::::::::::::-.……—::://////////////-..` `..-//////////////:::—.……-::::::::::::::
::::::::::::::::::::::::::::————-.-.–..““..–.-.————-::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::–:///:.-.-..-.-.:///:–::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::–:///:–.:/:.::.-/:..-:///:–:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::–://::—–///.-//-.///——://:–::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::—:::—:::–//:.–//–.://–:::—::::–:::::::::::::::::::::::::::
::::::::::::::::::::::::::——-:::::::–//:-::.//-::-://–:::::::——-::::::::::::::::::::::::
:::::::::::::::::::::::–.—::::::::::–//–:::.//.:::–//–::::::::::—.–:::::::::::::::::::::
:::::::::::::::::::::-..-::::::::::::::-/:–::::.//.:::::-:/–:::::::::::::-..-:::::::::::::::::::
::::::::::::::::::::::::::::::::::::::./:-::::::.//.::::::-:/.::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.:–:::::::.//.:::::::–:.:::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::.:-:::::::::-::.:::::::::-:.::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::.–::::::::::—-::::::::::–.:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::..-::::::::::::.-::::::::::::-..::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-.::::::::::::::..::::::::::::::..:::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-:::::::::::::::..:::::::::::::::-:::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::