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