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