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