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