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