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