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