.d888888   .8888b   888888ba   888888P  dP    dP           
d8' 88 88 " 88 `8b 88' Y8. .8P
88aaaaa88a 88aaa a88aaaa8P' 88baaa. Y8aa8P .d8888b.
88 88 88 88 `88 88 88' `88
88 88 88 88 88 88 88. .88
88 88 dP dP d88888P dP `8888P88
.88
d8888P