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