******* ****** *** ********* ***** ****** ** ****** ** ****** ** ******** ***** ** ****** ** ****** ** ******
*** ********* ** ** **** ****** *** ******** ******* ** ****** ****** ******* ********* *** ******* **** ** ** ****** ********
*********** ** ********* ******* **** *** ************* ** *************