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