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