____________________________,d888888888b,
___________________________d8888888888888b_________________________, ad8ba8
__________________________d888888888888888)_____________________, d888888888b,
__________________________I8888888888888888____________________, 8888888888888b
__________________________`Y88888888888888P" """"""""""baaa, ___,888888888888888888b
____________,xadP"""""""""""9888888888P""^_________________^""Y8888888888888888888b
_________,xa8"^___________,d888P"8888P^__________________________^"Y88888888888P'
_______,xa8^____________,d8888'_____________________________________^Y88888888P'
______a88'___________, d8888P'________________________________________I8 8P"^8
____,8d88'___________d88888P'__________________________________________"b,
___,8d88'___________d888888'____________________________________________`'b,
__,8d88'___________d888888I______________________________________________''b,
__d88I___________,88888888'_______________________________________________`'b,
_,8888'___________88888888__________, d88888b, _____________________________'b,
_d888___________,88888888I_________d88888888b, ___________, d8888b, _________'b
,88888___________I8888888I________d8888888888I______ ____, 88888888b__________8,
I8888___________88888888b_______d88888888888' __________8888888888b__________8I
d8886___________888888888_______Y888888888P'_ __________Y8888888888, ________8b
88888b__________I88888888b______`Y8888888^____ _________`Y888888888I________d8
Y88888b_________8888888888b, ______`""""^________________`Y8888888P'______ _d888I
`888888b________888888888888b, ___________________________`Y8888P^________d888888
_Y888888b_______,8888888888888ba,__________________________`""^________,d888888
_I8888888b, ____,8888888888888888888ba,______d88888888b_______________,ad8888888I
_`888888888b, __I8888888888888888888888b,____^"Y888P"^__________.,ad88888888888I
__88888888888b, `888888888888888888888888b,_____""______ad888888888888888888888'
__8888888888888698888888888888888888888888b_, ad88ba,_,d88888888888888888888888
__88888888888888888888888888888888888888888b, `"""^_d8888888888888888888888888I
__8888888888888888888888888888888888888888888b8aaad888888888888888888888888888'
__Y88888888888888888888888888888888888888888888888888888888888888888888888888P
__I8888888888888888888888888888888888888888888888P^__^Y8888888888888888888888'
__`Y88888888888888888P888888888888888888888888888'_____^88888888888888888888I
___`Y8888888888888888_`88888888888888888888888888_______8888888888888888888P'
____`Y888888888888888__`8888888888888888888888888,_____,888888888888888888P'
_____`Y88888888888888b__`888888888888888888888888I_____I888888888888888888'
_______"Y8888888888888b__`88888888888888888888888I_____I88888888888888888'
_________"Y88888888888P___`8888888888888888888888b_____d8888888888888888'
____________^""""""""^______`Y888888888888888888888,____888888888888888P'
_____________________________"88888888888888888888b,___Y888888888888P^
______________________________`Y8888888888888888888b___`Y8888888P"^
________________________________"Y88888888888888888P_____`""""^
__________________________________`"YY888888888888P'