.o oooo .o. .oooooo. ooooooooo. ooooo ooo
o888 `888 .888. d8P' `Y8b `888 `Y88. `888b. `8'
888 888 oooo .8"888. 888 888 .d88' 8 `88b. 8
888 888 .8P' .8' `888. 888 888ooo88P' 8 `88b. 8
888 888888. .88ooo8888. 888 ooooo 888`88b. 8 `88b.8
888 888 `88b. .8' `888. `88. .88' 888 `88b. 8 `888
o888o o888o o888o o88o o8888o `Y8bood8P' o888o o888o o8o `8