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