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