oooooooooooo ooooo ooo oooo d'""""""d888' `888b. `8' `888 .888P 8 `88b. 8 oooo d8b oo.ooooo. oooo ooo 888 oooo d888' 8 `88b. 8 `888""8P 888' `88b `88. .8' 888 .8P' .888P 8 `88b.8 888 888 888 `88..8' 888888. d888' .P 8 `888 888 888 888 `888' 888 `88b. .8888888888P o8o `8 d888b 888bod8P' .8' o888o o888o 888 .o..P' o888o `Y8P'