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