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