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