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