+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+---++---------+++---------------+++++--++++++++++++++++++++++++---+---++---------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---++---------+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++---------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++--------+++---------------+++++--++++++++++++++++++++++++-------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++--+-+++++++-+-++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--+-+++++++-+-++--++++-+++++++--------------------------+++++++++--+-+++++++-+-++--++++-+++++++--------------------------++++++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------++++++--+-+++++++-+-++--++++-+++++++---------------------------------------------------------------------------------------++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++-+-++--++++-+++++++--------------------------+-+++++++-+-++--++++-+++++++-------------------------------------------------------------------------------+++++++-+-++--++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--+-+++++++-+-++--++++-+++++++--------------------------+++++++++--+-+++++++-+-++--++++-+++++++--------------------------++++++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------++++++--+-+++++++-+-++--++++-+++++++---------------------------------------------------------------------------------------++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++-+-++--++++-+++++++--------------------------+-+++++++-+-++--++++-+++++++-------------------------------------------------------------------------------+++++++-+-++--++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---++---------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---++---------+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++---------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++--------+++---------------+++++--++++++++++++++++++++++++-------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+---------+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++---------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++--------+++---------------+++++--++++++++++++++++++++++++-------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+++++++-+-++--++++-+++++++--------------------------++++++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------++++++--+-+++++++-+-++--++++-+++++++---------------------------------------------------------------------------------------++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++-+-++--++++-+++++++--------------------------+-+++++++-+-++--++++-+++++++-------------------------------------------------------------------------------+++++++-+-++--++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------++++++--+-+++++++-+-++--++++-+++++++---------------------------------------------------------------------------------------++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++-+-++--++++-+++++++--------------------------+-+++++++-+-++--++++-+++++++-------------------------------------------------------------------------------+++++++-+-++--++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++--+-+++++++-+-++--++++-+++++++---------------------------------------------------------------------------------------++++--+-+++++++-+-++--++++-+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++-++--++++-+++++++--------------------------+++++++++++-++--++++-+++++++-------------------------------------------------------------------------------+++++++++-++--++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++--------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++---------+++---------------+++++--++++++++++++++++++++++++--------+++---------------+++++--++++++++++++++++++++++++-------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------++++--+--++++++-+-++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++--++++-+++++++--------------------------++++++++++++++--++++-+++++++-------------------------------------------------------------------------------++++++++++++--++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------++---------------+++++--++++++++++++++++++++++++----------++---------------+++++--++++++++++++++++++++++++--------+++---------------+++++--++++++++++++++++++++++++-------+++---------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++-++++-+++++++--------------------------+++++++++++++++-++++-+++++++-------------------------------------------------------------------------------+++++++++++++-++++-+++++++--------------------------++++++-+-++--++++-+++++++--------------------------+++++-+-++--++++-+++++++--------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++---------------+++++--++++++++++++++++++++++++---+----+++--+------------+++++--++++++++++++++++++++++++--+----+++--+------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++--+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+----++++-+------------+++++--++++++++++++++++++++++++--+----++++-+------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----++++-+------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++--+------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------+++--++++++++++++++++++++++++------------------+++--++++++++++++++++++++++++-----------------+++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++--++++++++++++++++++++++++-------------------++--++++++++++++++++++++++++------------------++--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++--++++-+++++++-------------------------------------------------------------------------------+++++++++-++--++++-+++++++--------------------------+-++++-+-++---+++-+++++++---------------------------++++-+-++---+++-+++++++--------------------------++++-+-++---+++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++-+-++--++++-+++++++--------------------------+-++++-+-++----++-+++++++---------------------------++++-+-++----++-+++++++--------------------------++++-+-++----++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++-+++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------+--++++++++++++++++++++++++--------------------+--++++++++++++++++++++++++-------------------+--++++++++++++++++++++++++-+------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--++++++++++++++++++++++++---------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++-+-++----+--+++++++---------------------------++++-+-++----+--+++++++--------------------------++++-+-++----+--+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++-+++++++---------------------------------------------------------------------++--++++-+++++++------------------------------------------------------------------------------------------------------------++++-+++++++--------------------------++++++++++++--------------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++---------------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++-+-++----+--+++++++--------------------------++++-+-++---+++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--++++++++++++++++-----------------------------------------------------------------++--++++++++++++++++--------------------------------------------------------------------------------------------------------++++++++++++++++----------------------++++++++++++++++----------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++++++-----------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------++----------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++-+-++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++--++++++++++++++++-----------------------------------------------------------------++--++++++++++++++++--------------------------------------------------------------------------------------------------------++++++++++++++++----------------------++++++++++++++++----------------------+++-+++++++--------------------------++-+++++++----------------------------+++++++---------------------------+++++++--------------------------+++++++++++-----------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------++----------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++----------------------------------------------------------------++-++++++++++++++++++------------------------------------------------------------------------------------------------------++++++++++++++++++---------------------+++++++++++++++++---------------------+++-+++++++--------------------------++-+++++++----------------------------+-+++++---------------------------+++++++--------------------------++++++++++++----------------------+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------++----------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++++++++++++++++++++++-----------------+++--++++++++++++++++++++++++-+-----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+++++--++++++++++++++++++++++++-+----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------++--+----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++---+++++++++++++++++++-++--+----+++++++++++++++++++++--+----++++++++++++++++++++--+----+++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------++--++++++++++++++++--------------------------------------------------------------------------------------------------------++++++++++++++++----------------------++++++++++++++++----------------------+++-++++-----------------------------++-+-++---------------------------------++------------------------------+-++-----------------------------+++++++++++-----------------------++-----------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++-----++-+++++++++++++++++++++++++++++++++----++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++---+++++++++++++++++++-++--+----+++++++++++++++++++++--+----++++++++++++++++++++--+----+++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------++++++++++++++++++---------------------+++++++++++++++++---------------------+++-++++-----------------------------+--+-++---------------------------------++------------------------------+-++-----------------------------+++++++++++-----------------------++-----------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++-++---------+++++++++++++++++-++---------+++++++++++++++++++---------++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++--++---------+++++++++++++++++-++---------+++++++++++++++++++---------++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------+++----------------------------------+--------------------------------------------------------------------------------------------------------++++++++-+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-----------------------------------+--------------------------------------------------------------------------------------------------------+++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-----+++--------------+++---++++--------------------------------------------------------------++++--------------++++++---------------++++--------------++++--------------+++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++-----------------------------+++++++++++++++++++++++++++++++++-++-----------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-----+++--------------+++-+-++++--------------------------------------------------------------++++--------------++++++---------------++++--------------++++--------------+++-------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++--------------------------+++++-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------+++-++++++++------------+++-++++++++----------------------------------------------------------++++++++------------++++++++------------+++++++------------++++++------------+++++---------------------------------------------------------+------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++-+------------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--++++++++------------+++-++++++++----------------------------------------------------------++++++++------------++++++++------------+++++++------------++++++------------+++++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++--+------++-----++++++++++-----------------------------------------------------------+--------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++------++-----++++++++++-----++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++-----++++++++++----+++++++++++--++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------+--------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++------++-----++++++++++-----++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++-----++++++++++----+++++++++++--++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++---------+++++++++++++++++++---------++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----+++++++++++++++++++----------+++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------+--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++----------------------------------------------------------++++++++------------++++++++------------+++++++------------++++++------------+++++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------++++--------------++++++++-------------++++--------------++++--------------+++-------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++-----++++++++++-+--+++++++++++--++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++------+++++++++----+++++++++++--++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------++++++------------++++++------------+++-----------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++------------++------------------------------------------------------------+------------------------++---------+------------------------------------------------------+--------------------------------------------------------------------------------------++++-------+++-------------------------------------------------------------------------------------------------+------------------------++++-------+++----------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++--++++++++++++++++++++++++++++++++--++++++--++++++-+++++++++++++++++++++++++++------------+++++++++++++++++++++-----++++----++++---+++++++++++++++++++++++++++++++++++++++++++++++---+++++---+++++--+++++++++++++++++++++++++++------------------------------------------------------------------------------+-----------------------+++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++---------------+---------------+++-