:::::::::::::::::;;;;;;;:::::::::::::::: ::::::::::::::::;;;;;;;;;::::::::::::::: :::::::::::::::;;;;;;;;;;;:::::::::::::: ::::::::::::::;;;;;cc;;;;;;::::::::::::: :::::::::::::;;;;cccc:;,,;:::::::::::::: ::::::::::;',coooooooolll;..';:::::::::: ::::::::::::o0K0Okkkkkkkko;..,:::::::::: :::::::::'.lO00OkkkkkkkkkOd..,:::::::::: :::::::::. .;;;:;:;'..,;;;;'...;:::::::: :::::::::. :l;:cclx; :l;:cc, .;:::::::: :::::::;'..dx::::ckd,:kk::::' .;:::::::: :::::::' .ckkc:::::okxl::::c;',::::::::: :::::::' ,xkdlcccccdOd'.:l:..,:::::::::: :::::::;,.'okkkkkkkkOkddkOd..,:::::::::: :::::::::..lOkkxoccccccccdd'.;:::::::::: :::::::::..lOkOxc,,,,,,. .;. .:::::::::: :::::::::..lOkkkkkkkkkOd::;. .:::::::::: :::::::::..lOkkkxddddxxxxl'..;:::::::::: :::::::::..lOkOx,.''...''',,,;:::::::::: :::::::::..lOkOd..ll,,;;;;::::::::::::::