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