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