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