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