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