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