oooooooooooo oooo .oooooo..o .oooooo.
d'""""""d888' `888 d8P' `Y8 d8P' `Y8b
oooo ooo .888P 888 Y88bo. 888 .oooo.
`88b..8P' d888' 888 `"Y8888o. 888 `P )88b
Y888' .888P 888 `"Y88b 888 ooooo .oP"888
.o8"'88b d888' .P 888 oo .d8P `88. .88' d8( 888
o88' 888o .8888888888P .o. 88P 8""88888P' `Y8bood8P' `Y888""8o
`Y888P