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