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