*******************************************************+*******************************+*********************************************************************************************+*******************************************************************+***************************************************************************+***************************************************************************+***************************************************************************+*******++****************/*********************************+***************************************************************************+***+****************************************************************+***********************************************************************************+**********+********+**+*******+*******************+************+**********+************+***********************************************************************************************/**********************+*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************+***+*****************+**********+***********************+******************************************************************+***+****+******+***+********+***************+******************+*******************************************************+****+******+***+********+***************+******************+***************************************************+****+******+***+********+***************+******************+***+***++****************/******************************************************************************************************+*******************+******************************************************+***+***++***********************/***************************************************************************+***********************************************************************************************************+*******************************************+**********+********+**+*******+*******************+************+**********+**********************************************************************************************************+***+*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************+******************+************************+***********+**************************************+************************************+*******************************************************+**************************************************************************/**********************+*****************+***************************************************************+*************************************+***+***************************************************************************************+***+****+***************************************************************************************************/**************************************************************************************************************/***********************************************************************************************/*******************/********************************************************************************************+***********+***********************************************************************************+*******************************************************************+*******+*********************************************************+*+*+********************************/***/*******************************************************************/****************************************************+***********+**************************************************/******************************+***+*****************************************************************************************************************************************************+*****************************************************************************************************************************+*******++****************************************+*******************************+*******************************************+*******************************************************************+***********************+***********+*********************************************************************************************/************************************************************************+**************************************************************************************************************************+**************+**************************+***+********+***************************/***********************************************************+***************+**********************+****************+*************************************+*************************************************************************************************+*************+***************************************+*************************+*************************************************************+**************+**********************************************************************************************************************************+***+*********************************************************************************************************************************+***************************+***********************+***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************+***********************************************+*******************************************+**************************************************************************************************************************************************************************************************+**************************************************************************************************************************************************************************************************************************************************+***+*******+****************+***************+**********+*************************+***********************************=