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