8888888888 8888888b. 888b 888 888b 888 888 888
888 888 Y88b 8888b 888 8888b 888 888 888
888 888 888 88888b 888 88888b 888 888 888
8888888 888 d88P 888Y88b 888 888Y88b 888 888 888
888 8888888P" 888 Y88b888 888 Y88b888 888 888
888 888 888 Y88888 888 Y88888 888 888
888 888 888 Y8888 888 Y8888 Y88b. .d88P
8888888888 888 888 Y888 888 Y888 "Y88888P"