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