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