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