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