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