oooooooo .ooooo. dP""""""" d88' `8. oooo ooo .oooo. d88888b. Y88.. .8' `88. .8' `P )88b `Y88b `88888b. `88..8' .oP"888 ]88 .8' ``88b `888' d8( 888 o. .88P `8. .88P .8' `Y888""8o `8bd88P' `boood8' .o..P' `Y8P'