oooooooooooo ooooo ooo ooo ooooo oooo oooo d'""""""d888' `888b. `8' `88. .888' `888 .8P' .888P 8 `88b. 8 888b d'888 888 d8' d888' 8 `88b. 8 8 Y88. .P 888 88888[ .888P 8 `88b.8 8 `888' 888 888`88b. d888' .P 8 `888 8 Y 888 888 `88b. .8888888888P o8o `8 o8o o888o o888o o888o