>Р?џџџџџџџџџџџџџџџџџџџџџџѕџџџџЯЛЛЫџџџџџџџџџџџџџџџџџџџџџџ_џџџџџџџџџџџofџџџџџџџџџџџџџЬќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯЬџџџџџџџџџџџџџџџџџџџџџџџџџЯЛЛЫџџџџџџџџџџџџџџџџџџџџџџUѕџџџџџџџџџџџіџџџџџџџџџџџџЯfЦџџџЬќџџџџџџџџџџџџџџŸџџџџџіџџџџџџџџџџџџМЛќџџџџџџџџџџџџџџџџџџџџџџџџџМЛЬЬџџџџџџџџџџџџџџџџџџџџџ_џџџџџџџџџџџџџџџџџџџџџџџџџlffќџЯUХџџџџџџџџџџџџџџ™љџџџofџџџџџџџџџџџџЛЛЫџџџџџџџџџџџџџџџџџџџџџџџџџЯЬ\Uќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџlffќџ\UUќџџџџџџџџџџџџџŸџџџџџіџџџџџџџџџџџџЛЛЫџџџџџџџџџџџџџџџџџџџџџџџџџџЯUUХџџџџџџџџџџџџџџџџџџџџџџџџџџіџџџџџџOџџџџџџџџџџџџlffќЬ\UUќџџџџџџџџѕџџџџџџџџџџџ?џџџџџџџџџџџЛЛЫџџџџџџџѓџџџєџџџЯЬџџџџџџџџџЯUUХџџџџџџџџџџџџџџџџџџџџџЏџџџofџџџџџџDєџџџџџџџџџџџЯЬЦЯL\UUЬџџџџџџџ_Uџџџџџџџџџџџ3ѓџџџџџџџџџџМЛќџџџџџџ?3ЏџODџџџ\UќџџџџџџџџЯUUХџџџџџџџџџџџЬќџџџџџџџџЊњџџџіџџџџџџOoџџџџџџџџџџџ|wќLDФUХЊќџџџџџџџѕџџџџџџџџџџџ?џџџџџџџџџџџЯЬџџџџџџџџѓЊњџєџџЯUUХџџџџџџџџџ\UќџџџџџџџџџџЯDФџЯЬџџџџџЏџџџџџџџџџџџџfіџџџџџџџџџЯwwЧLDDЬЌЊЪџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЏџџџџџЯUUХџџџџџџџџџЯЬџџџџџ_џџџџѕLDDќМЛќџЯЬџџџџџџџџџџџџџooџџџџџџџџџџЯwwЧDDDФЊЊЪїџџџєџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯUUХЏџџџџџџџџџџџџџџџUѕџџ_ULDDЬЛЛЫџМЛќџџџџџџџџџџџџfіџџџџџџџџџџЯwwЧDDDФЊЊЪџџєDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ\UќЊњџџџџџџџџџџџџџџ_џџџџѕLDDЬЛЛЫЯЛЛЫџџџџџџџџџџџџoџџџџџџџџџџџџ|wЬDDDDЌЊќџODwїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯЬџЏџџџџџџџџџџџџџџџџџџџ?џЯDФЯЛЛЫЯЛЛЫџџџџџџџџџџџџџџџџџџџџџџџџџЯЬЯLDDDЬЬџџџєџџџџџџџџџџЬЬќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџџџџџџџ3ѓџЬќџМЛќЯЛЛЫџџџџџџџџ_џџџџџџџџџџџџџњџџџџћLDDDœџџџџџџџџџџџџџџџЯœ™ЬџџєџџѕџџџџџŸџџџџџџџoџџџџџџџџџџџџџџџџџџџџџџџџџџ3ѓџџџџџŸџ?џџџџџЯЬџџМЛќџџџџџџџџUѕџџџџџџџoџџџЏЊџџџПЬЬLDЬџџџџџџџџџџџџџџџџœ™™™ќODџ_Uџџџџџ™љџџћџџџfіџџџџџџџџџџџџџџџџџџџџџџџџџ?џџџџџџ™љЬќџџџџџџџџЯЬїŸџџџџџџџ_џџџџџіџџfіџџџњџџџЯLDЬЬќџџџџџџџџџџџџџџџЯœ™™™ЬџєџєѕџћџџџŸџџПЛџџџoџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџŸЯЊЪџџџџџџџџџw™љџџџџџџџџџџџofџЯЬџџџџџєџџLDDDќџџџџџџЯЬџџџџџџџџЯ™™™™ЩџџODџП›џЯЬџџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЌЊЊќџџџџџџџџџїŸџџџџџџџџџџџџџі?<3ќџџџODџЯLDDDЬљџџџџџœ™ќџџџџџџџЯ™™™™Щџџџєџџ™љЌЊќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЌЊЊќџџџџџџџџџџџџџџџџџџџџџџџџ_У33УџџџџєџЯDDDDФ™џџџџЯЬ™ЩџџџџџџџЯ™™™™ЩџџџџџџŸЯЊЊЪџџџџџџџџџіџ_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЌЊЊќџџџџџџџџџџџџџџџџџџџџџџџџUХ33УџџџџџџЯDDDDФљџџџџ|wœЩџџџџџџџЯœ™™™ЬџџџџџџџЯЊЊЪџџџџџџџџofџUѕџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџЯЊЪџџџџџџџџџџџџџџџџџџџџѓџџџџ_Я33УєџџџџџЯDDDDФoџџџЯwwЧЩџџџџџџџџœ™™™ќџџџџџџџЪЊЊЪџџџџџџџџџіџ_џџџџџџџџџѕџ_џџџџџџџєџџџџЯЬџ3ѓџџЬќџџџџџџџџџџєџџџџџџџњ?3џџџџџџ<3LџџџџџџЯLDDDЬlVџџЯwwЧќџџџџџџџџЯœ™ЬџџџњџџџЏЊЌЊќџџџџџџџџџџџџџџџџџџџџ_UџUѕџџџџџODџџџџlfЬ<џџџџџџџџњџџџџџODџпнннннннѓџѕџџџџЯЬџџџџџџџџLDDD|lUѕџЯwwЧџџџџџџџџџџЬЬќџџЏЊџџџџњЯЬџџџџџџџџџџџџџџџџџџџџџџѕџ_џџџџџџџєџџџЯffЦЬџџџљџџџЏЊџџџџћџнн§џџџџџњџнн]џџџџџџџџџџџџџџЬLDЬwќ_џџџ|wќџџџŸџџџџЯЬЬџџџџџњџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџџџџџџџЬќџџџЯffЦ™ќџŸ™џџџџКџџџПлнџџџџџџџџџџџџенџџџџџџџџџџџњџ|ЬЬ|wќџџџџЯЬџџџџ™љџџџЬ3УќџџџџџwїџџџџџџџџџЏЊџџџџџџџџџџџџџџџџџџџџџџџџЯfЦџџџЯffЦ™ЬџџљЬќџџЛћџџн§џџџџџџџџџџџџџџŸн§џџџџџџџџЏЊџЬwwwЧќџџџџџџџџџџŸџџџЯ333УЯЬЬџџvџџџџџџ?џџџџњџџџџџџџџџџџџџ?џџџџџџџџџџlffќџџЯlfœ™ЩџџЯDФџџПџпнџџџџџџџџџџџџџџџџ™љпнџџџџџџџџњџЯwwwЧџџџџџџџџџџџџџџџЬ333УЬ™Щќofџџџџџџ3ѓџџџџЬЬЬЬџџџџџџџџџ3ѓџџџџџџџџџlffќџџЯЩЬ™™ЩџЯLDDќџџп§џџџџџџџџџџџџџџџџџŸџџџнџџџџџџџџџџЬwЧќџџџџџџџџџџџџџџџ<3333œ™™Щџіџџџџџџ?џџџџЯœ™Ьfќџџџџџџџџ?џџџџџџџџџџlffќџџЯ™™™™ЩџЬLDDќџп§џџџџџџџџџџџџџџџџџџџџџџџнџџѓџџџџџџЯЬЬџџџџџџџџџџџџџџџџ<3333œ™™Щќџџџџџџџџџџџџœ™™™lЦџџџџџџџџџџџџџџџџџџџЯfЦџ?џЯœ™™™ЬЯwLDDќџ§џњџџџџџџџџџџџџџџџџџџџџЬќџ§?3џџџџџџџџџџџџџџџџџџџџџџџџџ<3333œ™™™ќџџџџџџџџџџџЯœ™™™ЬЦџџџџџџџџџџџџџџџџџџџџЬ\џ3ѓџœ™™™ќЬwЧDФќнџЏЊџџџџџџџџџџџџџџџџЯЬџЯ™Щџп§ѓџџџџџџџџџџџџџџџџџїџџџџџџџЬ333УЬ™™™ќєЬќџџџџџџџџЯ™™™™ЩЦџџџџџџџџџџџџџџџџџџџџџUѕ?џџЯœ™Ьџ|wwЬ|мџџџњџџџџџџџџџџџџџџџџ<3ќœ™™ќџпџџџџџџџџџџџџџџџџџwѓџџџџџџЯ333УЊœ™™LФUХџџџџџџіџЯ™™™™ЩќџџџџџџџџџџџџџџџџџџџПџ_џџџџџЬЬќџ|wwwз§џџџџџџџџџџџџџџџџџџџЯ33Уœ™™ќџџнџџџџџџџџџџџџџџџџџ73џџџџџџџЬ3УЌЊœ™Щќ\UХЬџџџџofџЯ™™™™ЩџџџџџџџџџџџџџџџџџџџџЛћџџџџџџџџџџ|wwЧЭќџџџџџџџџџџџџџџџџџџџЯ33Уœ™™ќџџџ§џџџџџџџџџџџџџџџџџѓџџџџџџџЬЬЬЊЊœ™Щџ\UМЛќџџџџіџЯœ™™™ЬџџџџџџџџџџoџџџџџџџџџПџџџ?џџџџџџџЬwwмwќџџџџџџџџџџџџџџџџџџџЯ33УЯ™ЩџџџџпџџџџџџџџџџџџџџџџџџџџџџџџЯffЦЊЪ™Щќџ\ХЛЛЫџџџџџџџœ™™™ќџџџџџџіџџџfіџџіџџџџџџџџџ3ѓџџџџŸџЯwЧ}wЧџџџџџџџџџЯЬЬџџџџџџџџ<3ќџЬќџџџџџ§џџџџџџџџџџџџџџџџџџџџџџџЯffЦЬЬЬЬџџЯХЛЛЫџџџџџџџЯœ™Ьџџџџџofџџџoџџofџџџџџџџџџ?џџџџџ™љџЬнwwЧџџџџџџџџЬ™ЩќџџљџџџџЯЬџџ™џџџџџџп§џџџџџџџџџџџџџџџџџџџџџџЯffЦџџџџџџџЬЛЛЫџџџџџџџџЬЬќџџџowїџіџџџџџџџіџџџџџџџџџџџџџџџŸџџпЬwwЧџџџџџџџџЧ™™™ЩџŸ™џџџџџџџŸ™љџџџџџџпџџџџџџџџџџџџџџџџџџџџѓџџlfќџџџџџџџџМЛќџџџџџџџџџџџџџџfvџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џ|wќџџџџџџџџЬ™™™Щќџљџџџџџџџџ™џџџџџџџџ§џџџџџџџџџџџџџџџџ?3џџЬЬџџџџџџџџЧЬџџџџџџџџџџџџџџџoџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џЯЬџџџџџџџџџœ™™™™ќџџџџџџџџџџџџіџџџџџџ§џџџџџџџџџwїџџџџџџwїѓџЯ3УџџџџџџџџџїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЬЬмџџџџџџџџџџџџџœ™™™™ќџџџџџџџџџџџofџџџџџџпџџџџџџџћџџџџ_љџџџџџ<33ќџџџџџЬќџџџџџџџџџЬќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯ<3Эџџџџџџџџџџџџџœ™™™™ќџџџџџџџџџџџџіџџџџџџџ§џџџџџПЛџџџџџU•џџџџџџ<33ќџџџџЯЊЪџџџџџїџњџЊЪџџџџџџџџџџџџџџџџџџџџћџџџџџџџџџџџџџ<3г3ќџџџџџџџџџџЬЬЬ™™™Щќџџџџџџџџџџџџџџџџџџџџпџџџџџџћџџџџџ_љџџџџџџ<33ќџџџџЌЊЊќџџџwЏЊџЊЊќџџџџџџџџџџџѕџџџџџџПЛџџџџџџџџџџџџЯ<3=3ЬџџџџџЬќџџЯ|wЬ™™™Щџџџџџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџЯ3УџџџџџЌЊЊќџџџџїџњџЊЊќџџџџџџџџџџ_UџџџџџџџћџџџџџџџџџџџџЯ33=3УџџџЯЬЊЪџџ|wwwЬ™Щќџџџџџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџєџџџџџЬќџџџџџЌЊЊќџџџџџџџџЊЊќџџџџџџџџџџџѕџџџџџџџџџџџџџџџџџџџџЯ3г33УџџџЬЌЊЊќЯ|wwwЬЬЬџџџџџџџџџџџџџџџџЯЬЬџџџџпџџџџџџџџџџџџџODџџџџџџџџџџџџЯЊЪџџџџџџџџџЊЪџџџџџџџџџџџџџџџџџџџџџџџџЯЬЬџџџџџџЯ3=33УџџЯwЌЊЊќЯwwwwЧџџћџџџџџџџџџџџџџџџЬ3Уќџџџџ§џџџџџџџџџџџџџєџџџџџџџџџџџџџЬќџџџџџџџџџЬќџџџџџџџџџџџџџџџџџџџџџџџџЬDФќџџџџџЯ<=33ЬџџЬwЌЊЊќЯwwwwЧџПЛџџџџџџџџџџџџџOЯ333Уџџџџ§џџџџџџџџџџџџџџџџџџџџЯЬЬџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯDDDФџџџџџџм333ќџџ|wЧЊЪќЯwwwwЧџџћџџџџџџџџџџџџџDЬ333УќџџџпџџџџџџџџџџџџџџџџџџџџЬ3УќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЬDDDФќџџџџџЭ<3Ьџџџ|wwЬ|ќЯ|wwwЬџџџџџџџџџџџџџџџџO<3333ќџџџџ§џџџџџџџџџџџџџџџџџџЯ333УџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџLDDDDќљџџџџ§ЬЬќџџџ|wwwwќџ|wwwќџџџџџџџџџџџџџџџџЯЬ3333|џџџџ§џџџџџџџџџџџџџџџџџџЬ333УќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџѓџџLDDDDœ™џџџпџџџџџџџЬwwwЧќџЯ|wЬџџџџџЯЬџџџџџџџџџџ\U<333|їџџџпџџџџџџџџџџџЯЬЬџџџџ<3333ќџџџџџџџџџџџџџџџџџџџџџџџџџЬќџџџџџџџ?3џџLDDDDќљџџџпџџџџџџџЯwwwЧѓџџЬЬќџџџџџlfќџџџџџџџџЯUUХ33У|џџџџпџџџџџџџџџџџЬwЧќЯЬџ<3333ќџџџџџџџџџџџџџџџџџџџџџџџџЯЊЪџџџџџџџџѓџџЬDDDФќџџџџ§џџџџџџџџЬwЧ<џџџєџџџџџџЯffЦџџџџџџџџЯUUХ33Уџџџ?џџ§џџџџџџџџџЯwwwЧ\Uќ<3333ќџџџџџџџџџџџџџџџџџџџџџџџџЌЊЊќџџџџџџџџџџЯDDDФџџџџџ§џџџџџџџџЯЬЬџџџODџџџџџџЯffЦџџџџџџЯЬЯUUХ3Уќџџџ3ѓџЭЬџџџџџџџџЬwwwЧUUХЬ333Уќџџџџџ“џњџџџџџџџџџџџџџџџџЌЊЊќџџџџџџџџџџџЬDФќџџџџџ§џџџџџџџџџџџџџџџєџџџџџџЯffЦџџџџџџМЛќ\UЬЬЬџџџџ?џџ]UќџЬќџџџџ|wwwЧUUХЯ333Уєџџџџ?™ЉЊџџџџџџџџџџџџџџџџЌЊЊќџџџџџџџџџџџЯЬЬџџџџџпџџџџџЯЬџџџџџЬќџџџџџџџџџџlfќџџџџџЯЛЛЫЯЬџџџџџџЯЬџЯеUХЯUХџџџџ|wwwЧUUХџЬ3УLDџѕџџџ“џVѕџџџџџџџџџџџџџџџЯЊЪџџЬќџџџџџџџџџѕџџџџџџпџџџџџМЛќџЯЬЯ3УџџџџџџџџџџЯЬџџџџџџЯЛЛЫџџџџџџџџlfќЯеUХ\UUќџџџ|wwww\UќџЯЬЬџє_UџџџџofџџџџџџџџџџџџџџџџџЬќџЯfЦџџџџџџџџ_UџџџџџџпџџџџЯЛЛЫџœ™<33ќџџџџџџџџџџџџџџџџџЯЛЛЫџџџџџџџЯffЦЯеUХ\UUќџџџЬwwwЧЬЬџџџџЯЬЬџѕџџџџџіџџџџџџџџџџџџџџЬЬќџџџlffќџџџџџџџџѕџџџџџџ§џџџџЯЛЛЫЯ™™<33ќџџџџџџџџџџџџџџџџџџМЛќџџџџџџџЯffЦџ\]ќ\UUќџџџЯwwwЧџџџџџџЬ™ЩќџџџџџџџџЯЬџџџџџџџџџџЯ|wЬѕџџlffќџџџџџњџџџџџџџџџ§џџџџЬЛЛЫЯ™™<33ќџџџџџџџџџџџџџџџџџџЯЬџџЬЬќџџџЯffЦџЯЭџЯUХџџџџџЬwЧќџџџџџЯ™™™ЩџџџџџџџџМЛќџџџџџџџџџ|www\џџlffќџџџџЏЊџџџџџџџџџ§џџџЯwМЛќЯ™™Щ3УџџџџџџџџџџџџџџџџџџџџџџЯ|wЬџџџџlfќџџ§џџЬќџџџџџЯЬЬџџџџџџЬ™™™ЩќџџџџџџЯЛЛЫџџџџџџџџЯ|wwwЬџџЯfЦџџџџџџњџџџџџџџџпџџџџЯwЧЬџџœ™ќЬќџџџџџџџџџџџџџџџџџџџџџџ|wwwќџљџЯЬџџџпџџofџџџџџџџџџџџџџџœ™™™™ќџџџџџџЯЛЛЫџџџџџџџџЯwwwwЧџџџЬќџџџџџџџџџџџџџџџпџџџџЯwwЧџџЯЬџџџџџџџџџџџџџџџџџџџџџџџџЯ|wwwЬŸ™џџџџџџжџџџіџџџџџџџџџџџџџџœ™™™™ќџџџџџџЯЛЛЫџџџџџџџџЯwwwwЧџџџџџџћџџџџџџџџџџџџџпџџЏџџ|wќџџџџџџџџџџџџџџџџЯЬџџџџџџџџџџЯwwwwЧџљџџџџџoжџџџџџџџџџџџџџџџџџџœ™™™™ќџџџџџџџМЛќџџџџџџџџЯwwwwЧџџџџџПЛџџџџџџџџџџџџџпџџЊњџЯЬџџџџџџџџџџџџџџџџџМЛќџџџџџџџџџЯwwwwЧџџџџџџџџжџџџџџџџџџџџџџџџџџџЬ™™™ЩќџџџџџџџЯЬџџџџџџџџџЯ|wwwЬџџџџџћџџџџџџџџџџџџџпџџЏџџџџџџџџџџџџџџџџџџџџЯЛЛЫџџџџџџџџџЯwwwwЧџџџџџџџџпџџџџџџџџџџџџџџџџџџЯ™™™Щџџџџџџџџџџџџџџџџџџџџ|wwwќџџџџџwїџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџџџџџЯЛЛЫџџџџџџџџџЯ|wwwЬџџџџџџџџџ§џџџџџџЬќџџџџџџџџџџЬ™ЩќџџџџџџџџџџџџџџџџџџџџЯ|wЬџџџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџџџџџЯЛЛЫџџџџџџџџџџ|wwwќџџџџџџџџџ§џџџџџЯЊЪџџџџџџџџџџЯЬЬџџЬќЬќџџџџџџџџџЬЬЬќ_џџЬЬќџџџџџџџџџџџџџџџџїџџџџ§џџџџџџџџџџџџЯЬЬџџџџџџџџџМЛќџџџџџџџџЏџЯ|wЬџџџџџџџџџџ§џџџџџЌЊЊќџџџџџџџџџџџџџЯfЦUХџџџџџџџџЯ<УЊЪUХЬџџџџџџџџџџџџџџџџџџwџџџџЭќџџџџџџџџџЬЬЬ3УќџџџџџџџџЯЬџџџџџџџџџЊњџЬЬќџџџџџџџџџџ§ѓџџџџЌЊЊќџџџџџџџџџџџџџlff\Uќџџџџ_џџ<3ЌЊЊ\œ™ќџџџџџџџџџџџџџџџџџџїџџџЯНЫџџџџџџџџЯ<3Ь33УџџЯЬЬџџџџџџџџџџџџџџЏџџџџџџџџџџџџџџџ=3џџџџЌЊЊќџџџџџџџџџџџџџlff\UќџџџџUѕЯ<3ЌЊЊЬ™™ЩџџџџџџџџџџџџџџџџѓџџџџџМНЛќџџџџџџџ<333<3УќџЬDФќџџџџџџџџџџћџџџџџџџџџџџџџџџџџџ§ѓџџoџЯЊЪџџџџџџџџџџџџџџlff\Ulџџџџ_џЯ33ЌЊЊЬ™™Щџџџџџџџџџџџџџџџ?3џџџџџМНЛќџџџџџџЯ<333Ь33ќЯDDDФџџџџџџџџџПЛџџџџџџџџџџџџџџџџџџ§џџџfіџЬЌњџџџџџџџџџџџџџЯfЦUХіџџџџџџЯ33УЊЪЯ™™ЩџџџџџџџџџџџџџџџџѓџџџџџМНЛќџіџџџџЯ3333У33ќЬDDDФќџџџџџџŸџџћџџџџџџџџџџџџџџџџџџ§џџџoџџџЏџџџџџџџљџџџџџџџЬќЬќџџџџџџџЯ333ЬЬџœ™ќџџџџџџџџџџџџџџџџџџџџџЬЬНЫџofџџџџЯ3333У33ќLDDDDќџџџџџџ™љџџџџЯЬџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџŸ™џџџџџџџџџџџџџџџџџџЯ<333ЬџЬЬџџџџџџџџџџџџџџџџџџџџџЯfЦЭќџџіЬќџџЯ3333У3УќLDDDDќџџџџџџŸџџџџџlfќџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџ<333ќЯDФџџџџџџџџџ_џџџџџџџџџџџlff§џџџЯUХџџЯ<333Ь3УџLDDDDќџџџџџџџџџџџЯffЦџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџѕџџџџџЯЬЬџџџџџџџџџЯ<3ЬџLDDќџџџџџџџџUѕџџџџŸџџџџџlff§џџџ\UUќџџ<333<УќџЬDDDЬќџџџџџџџџџЯЬЬffЦџџџџџџџџџџџџџ§џџџџџЯЬџџџџџџџџџ_UџџџџџЬDФќџџџџџџџџџЬЬќџLDDќџџџџџџџџ_љџџџџ™љџџџџlff§џџџ\UUќџџЯ<3ЬЬЬџџЯDDФfЦџџџџџџoџџЬ™ЩffЦџџџџџџџџџџџџџ§џџџџџМЛќџџџџџџџџџѕџџџџЯDDDФџџѕџџџџџџџџџџLDDќџџџџџџџџŸ™џџџџŸџџџџџЯfЦ§џџџ\UUќџџџЬЬќџџџџџЬDlffќџџџџџfіЯ™™™lfЌњџџџџџџџџџџџџ§џџџџЯЛЛЫџџџџџџџџџџџџџџЬDDDФќ_UџџџџџџџџџџЯDФџџџџџџџџџџљџџџџџџџџџџџЬќ§џџЬЬUХџџџџџџџџџџџџЯЬlffќџџџџџoџЬ™™™ЩЬЌџџџџџ?џџџџџџџ§џџџџЯЛЛЫџџџџџџџџџџџџџџLDDDDќџѕџџџџџџџџџџџЬќџџџџџџџџџџџџџџћџџџџџџџЯЬпџЯfЦЬќџџџџџџџџџџџџџџlffќџџџџџџџœ™™™™Ьџџџџџџ3ѓџџџџџпџџџџџЯЛЛЫџџџџџџџџџџџџџџLDDDDќџџџџџџџџџџџџџџџџџџџџџџџџџџџџПЛџљџџџџџ<3мџlffќџџџџџџџџџџџџџџџЯfЦџџџџџџџџœ™™™™ќџџџџџџ?џџџџџџпџџџџџџМЛќџџџџџџџџџџџџџџLDDDDќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћŸ™џџџџЯ33гџlffќџџџЬЬќџџџџџџџџџџЬќџџџџџџџџœ™™™™ќџџџџџџџџџџџџџпџџџџџџЯЬџџџџџџџџџџџџ_џџЬDDDФќџџџџџџџџџџџџџџџџџџџџѕџџџџџџџџџџљџџџџЯ33гџlffќџџЯ|wЬџџџџџџџџџџџџџџџџџџџџЬ™™™ЩќџћџџџџџџџџџџџпџџџџџџџџџџџџџџџџџџџџUѕџЯDDDФџџџџџџџџџџџџћџџџџџџџ_UџџџџџџџџџџџџџџџЯ33гџЯfЦџџџ|wwwќџџџџџџџџџџџџџџџџџџџЯ™™™ЩџПЛџџџџџџџџџџџпџџџџџџџџџџџџџџџџџџџџ_џџџЬDФќџџџџџџџџџџџПЛџџџџџџџџѕџџџџџџџџџџџџџџџџ<3ќ§њЬќџџЯ|wwЬЬќџџџџџџџџџџџџџџџџџџџЬ™ЩќџџЫЬџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџџџџџџЯЬЬџџџџџџџџџџџџџћџџџџџџџџџџџџџџџџџџџџџџџџџЯЬџ­ЊџџџџЯwwЧ|wЬџџџџџџџџџџџџџџџџџџџЬЬЬќџџ\Uќџџџїџџџџџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯЬџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§њџџџџЯЬw|wwwќџџџџџџџџџџџџџџџџџџЌЊЊќџЯUUХџџwџџџџџ§џџџџџџџџџџџџџџџџЬќџџЏџџџџџџџџџџџЏЌЊџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџoжЯЬЬџџМЛЬ|wwwЬџџџџџџџџџџџџџџџџџџЌЊЊќџЯUUХџџџїџџџџпџџџџџџџџџџџѕџџџџЯUХџџЊњџџџџџџџџџџЪЊЊџџџџџџџџџџџџџЏЊџџџџџџџџџџџџџџџџџџџжМЌЊќЯЛЛЫwwwwЧџџџџџџџџџџџџџџџџџџЯЊЪџџЯUUХџџџџџџџџмЬЬџџџџoџџє_Uџџџџ\UUќџЏіџџџџџџџџџџЯЊЊџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџпЫЊЊЪЯЛЛЫwwwwЧџџџџџџџџџџџџџџџџџџџЬќџџџ\UќџџџџџџџЯмDЬќџџџfіDDџѕџџџџ\UUќџofџџџџџџџџџЯЊЊџџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯЭЊЊЪЯЛЛЫwwwwЧџџџџџџџџџџџџџџџџџџџЯЬџџџЯЬџџџџџџџџLMDDЬџџџoFDєџџџџџџ\UUќџџіwїџџџџџџџџџЌЊџЏЊџЬЬќџџџџџџџџџџџџџџџџџџџџџџџџџџџЯЭЊЊЪџМЛЬ|wwwЬџџџџџџџџџџџџџџџџџџџ\UќџџЬќџџџџџџџЯLMDDЬќџџofєџџџџџџџЯUХџџџџџџџџџџџџџЯЬџџњЯ<3ЬџџџџџџџџџџџџџџџџџџџџџџџџџџџџНЌЊЬџЯЬџ|wwwќџџџџџџџџЬќџџџџџџџџЯUUХџЯЊЪџџџџџџџЯDMDDФќџџџіџџџіџџџџџЬќџџџџџџџџџџџwїџџџџџџџ<333ќџџџџџџџџџџџџџџџџџџџџџџџџџџџпЬЬЊќџџџЯ|wЬџџџџџџџџЯDФџџџџџџџџЯUUХџЌЊЊќџџџџџџЯдDЬLФќЬќџџџџofџџџџџџџџџџџџџџџџџџџџџџџџџЯ<333ЬџџџџџџџџџџџџџџџџџџџџџџџџџџџпЌЊЊќџџџЯЬЬќџџїџџџџџLDDќџџџџџџџЯUUХџЌЊЊќџџџџџџЯдФDФФЬwЧџџџџџіџџџџџџџџЬќџџџџџџџџџџџџџџџЯЬЬ333Уџџџџџџџџџџџџџџџџџџџџџџџџџџџџ­ЊЊќџџџЬDФќџwџџџџџLDD<џџџџџџџџ\UќџЌЊЬќџџџџџџЯMLDDЬ|wwќџџџџџџњџџџџџЯ™ЩџџџџџџџџџџџџџџџЬ3У<33УџџџџџџџџџџџџџџџџџџџџџџџџџџџџЭЊЪџџџЯDDDФџџїџџџџLDD<ѓџџџџџџџЯЬџџЯЪЊЪџџџџџџџMLDDЬ|wwќџџџџџЏЊџџџџџœ™™ќџџџџџџџџџџџџџЯ333У33УџџџџџџџџџџџџџџџџџџџџџџџџџџџџпЬќџџџЬDDDФќџџџџџџџЬDФ?џџџџџџџџџџџџџЌЊЊќџџџџџпЯLDDќ|wwќџџџџџџњџџџџџœ™™ќџџџџџџџџџџџџџЬ333У<3ЬџџџџџџџџџџџџџџџџџџџџџџџџџљџџЬmџџџџLDDDDќџџџџџџЯ3ЬЬџџџџџџџџџџџџџџЌЊЊќџџџџџ§џЬDФџЯwЧџџџџџџџџџџџџџœ™™ќџџџџџџџџџџџџџ<3333Ь3ќџџџџџџџџџџџџџџџџџџџџџџџџŸ™џЯЛЭџџџџLDDDDќџџџџџџЯ33УџџџџџџџџџџџџџџЌЊЊќџџџџџ§џџЬќџџЬlіџџџџџџџџџџџџЯ™Щџџџџџџџџџџџџџџ<333УЬЬџџџџџџџџџџџџџџџџџџџџџџџџџџљџМЛлќџџџLDDDDќџџџџџџЯ33ЬќџџџџЬќџџџџџџџЯЊЪџџџџџпџџџџЬќџџoџџџџџџџџџџџџџџЬќџџџџџџџOџџџџџџ<333Ь™ЩќџџџџџџџџџџџџџџџџџџџџџџџџџџџМЛЛ§џџџЬDDDФќџџџџџџџ<УUХџџџЯЊЪџџџџџџџЬЬќџџџЯЬЭџџџЯDФџџџџџџџџџџџџџџџџџџџџџџџџџџDєџџџџџЬ33У™™™ЩџџџџџџџџџџџџџџџџџџџџџџџџџџџМЛЛ§џџџЯDDDФџџЯЬџџџџЯ\UUќџЬЌЊЊќџџџџџЯLDЬџџџЬDЭќџџLDDќџџџџџџџџџџџџџџџџџџџџџџџџџOџџџџџџЯ33Ь™™™ЩќџџџџџџџџџџџџџџџџџџџџџџџџџЯЛЫпџџџџЬDФќџџ<3ќџџOџ\UUќЯ™ЩЊЊќџџџџџLDDDќџЯDдDФџџLDDќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЬ3œ™™™™ќџџџџџџџџџџџџџџџџџwїџџџџџџџџЬќџ§џџџЯЬЬџџЯ33УџџDє\UUќœ™™ЌЊќџџџџЯLDDDЬџЬDЭЬЬќџLDDќџџџџџџџџџџџџџџџџ?џџџџџџџџџџџџџџџџЬЬœ™™™™ЬџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпџџџџџџџџЯ33УџџOЯЬUХџœ™™ЌЪџџџџџЯDDDDФџLдЬ™ЩќџЯDФUџџџџџџџџџџџџџџџџ3ѓџџџџџџџџџџіџџџЯ™œ™™™™Ьќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џџџџџџџЯ33Уџџџœ™Ьќџœ™™ЬќџџџџџЯDDDDФџLЭ™™™ЩџџЬќѕџџџџџџџџџџџЯЬџџџ?џџџџwїџџџџџofџџџџЬЬ™™™Щ<ќџџџџџџџџџџџџџџџџџџЏџџџџџПџџџџџ§џџџџџџџџ<3ќџџЯ™™ЩџџЯЩЬЬџџџџџџЯDDDDФџLЭ™™™ЩќџџџџџџџџџџџџџџџМЛќџџџџџџџџџOџџџџіџџџџџЯ™™™Щ3ќџџџџџџџџџџџџџџџџџџЊњŸџџџЛћџџџџпџџџџџџџЯУЬџџџЯ™™ЩџџџЬwЧќџџџџџЯLDDDЬџмœ™™™™ќџџџџџџџџџoЯЬџЯЛЛЫџџџћџџџџџџDєџџџџџѕџџџ?Ь™Щ<3lџџџџџџџџџџџџџџџџџџЏџ™љџџПџџџџџџнџџџџџџ<33ќџџЯ™™ЩџџЯwwwЧџџџџџџLDDDќпЭœ™™™™ќџѓџџџџџџwїfLDќЯЛЛЫџџПЛџџџџџџOџџџџџ_Uџџџ3ЬЬЬ3УlіџџџџџџџџїџџџџџџџџџџŸџџџџџџџџџџ§ЯЬЬџџ<33ќџџџœ™ќџџЬwwwЧќџџџџџЯLDЬџ§џœ™™™™ќ?3џџџџџџџЯDDФЯЛЛЫџџџћџџџѓџџџџџџџџџѕџџџ?Я333УoџџџџџџџџwЬќџџџџџџџџџџwїџџџџџџџџпЬDФќџ<33ќџџџЯЬџџџ|wwwwќџџџџџЯЬЬЬпџџЬ™™™ЩќџSџџџџџџџџЯDDФџМЛќџџџџџџ?3џџџџџџџџџџџџџџџЬ3УќџџџџџџџџџџЧUХџџџџџџџџџџџџџџџџџџџЯMDDФџЯ3Уџџџџџџџџџ|wwwwќџџџџџЯffЦ§џџЯ™ЬœЩџџUѕџџџџџџџЯDDФџЯЬџџџџџџџџѓєџџџџџџџџџџџџџџЯЬЬџџџџџџџџџџџ\UUќџџџџџџџџџџџџџџџџџџџЬдMDФќџЬќџџџџџџџЬќ|wwwwќџџџіџџlfнџџџџЬUХќџџ_џџџџџџџџџLDќџџџЬќџџџџџџODџџџџџџџџџџџџџџџџџіџџџџџџїџџџ\UUќџџџЏџџџџџџџџџџџџџџoLDдDDќџџџџџџџџџЯfЦЬwwwЧќџџofџџЯмџџџџџ\UUќџџџџџџџџџџџџЯЬџџџЯЛЫџџџџџџџєџџџџџџџџџџџџџџџџofџŸџџџwџџџ\UUќџџџЊњџџџџџџєџџЬќџџџLDDнDќџџџџџџџџЬlffЬwwwЧџџџџіџџп§џџџџџ\UUќџџџџџџџџџџџџџџџџџМЛЛќџџџџџџџџџџџџџџџџџЯЬџџџџџіџ™љЯЬџїџџџЯUХџџџџЏџџџџџџODџЯЊЪџџџLDDDMќџџџџџџџЯ= self.radius then forceR = 0 end end self.color = self.palette[self.state] end self.render = function() --render force circb( self.pos.x, self.pos.y, forceR, self.color ) --render field border circb( self.pos.x, self.pos.y, self.radius, self.color ) end return self end ----Particle function---- --[[ Creates a particle. Particles are the "balls" and the "dust" that you interact to. They react to the force field and the screen edges. ]]-- function Particle(settings) local self = {} self.life = settings.life self.pos = settings.pos or Vector() self.radius = settings.radius or 4 self.mass = settings.mass or 4 self.maxSpeed = settings.maxSpeed or 2 self.color = settings.color or 12 self.borderColor = settings.borderColor or 12 self.forceField = settings.forceField self.vel = Vector() self.acc = Vector() local fieldF = Vector() local friction = Vector() local frictionC = 0.02 local applyForces = function(...) local fList = {} for index, force in ipairs{...} do fList[index] = divVector(force, self.mass) end self.acc = sumVectors(table.unpack(fList)) end local interactToField = function() local attVector = subVectors(self.forceField.pos, self.pos) local dist = attVector.getMag() attVector.setMag(self.forceField.forceMag) if dist <= self.forceField.radius + self.radius then if self.forceField.state == "none" then fieldF.setMag(0) elseif self.forceField.state == "attraction" then fieldF = multVector(attVector, 1) else--repulsion fieldF = multVector(attVector, -1) end end end local interactToEdges = function() local minX, minY = self.radius, self.radius local maxX, maxY = WIDTH - self.radius, HEIGHT - self.radius local impactLoss = self.mass * frictionC if self.pos.x < minX or self.pos.x > maxX then self.pos.x = math.min(maxX, math.max(minX, self.pos.x)) self.vel.x = -self.vel.x fieldF.x = -fieldF.x self.vel.mult(1-impactLoss) fieldF.mult(1-impactLoss) end if self.pos.y < minY or self.pos.y > maxY then self.pos.y = math.min(maxY, math.max(minY, self.pos.y)) self.vel.y = -self.vel.y fieldF.y = -fieldF.y self.vel.mult(1-impactLoss) fieldF.mult(1-impactLoss) end end self.update = function() if self.life then self.life = self.life-1 end interactToField() interactToEdges() friction = multVector(self.vel, -1*frictionC*self.mass) applyForces(fieldF, friction) self.vel.add(self.acc) self.vel.limit(self.maxSpeed) self.pos.add(self.vel) end self.render = function() circ( self.pos.x, self.pos.y, self.radius+1, self.borderColor ) circ( self.pos.x, self.pos.y, self.radius, self.color ) end return self end ----system Table---- --[[ This table holds all the balls (the big particles). ]]-- system = {} ----subSystem Table---- --[[ This table holds all the dust particles (the small ones). ]]-- subSystem = {} ----Particle System Functions---- --[[ These functions manage the update and render of all the particles. ]]-- function newSystem(settings) local system = {} local width = settings.width or 2 local height = settings.height or 2 local palette = settings.palette local maxSpeed = settings.maxSpeed local borderColor = settings.borderColor local firstColor = math.random(0,3) for i=1, width do for j=1, height do local x = i*(WIDTH/(width+1)) local y = j*(HEIGHT/(height+1)) local colorIndex = ((i+j+firstColor)%(#palette))+1 local color = palette[colorIndex] local mass = math.random(2, 4) local radius = 2*(((i*j)%2)+1) local p = Particle({ pos = Vector(x, y), radius = radius, mass = mass, maxSpeed = maxSpeed, color = color, borderColor = colorBorder, forceField = mouseField }) table.insert(system, p) end end return system end function updateSystem(system, subSystem, subSystemLimit) --Update system table for _, p in pairs(system) do insertSubParticle(subSystem, subSystemLimit, p) p.update() end --Update subSystem table for _, subP in pairs(subSystem) do subP.update() end cleanSubSystem(subSystem) end function renderSystem(system, subSystem) for _, subP in pairs(subSystem) do subP.render() end for _, p in pairs(system) do p.render() end end --subSystem functions function insertSubParticle(subSystem, subSystemLimit, p) local vel = p.vel.getMag() if #subSystem < subSystemLimit and vel > 0 and time()%(3000/vel) < 10 then local life = math.random(180, 360) local subP = Particle({ pos = multVector(p.pos, 1), radius = 0, mass = 0.1, maxSpeed = p.maxSpeed*2, borderColor = p.color, forceField = mouseField, life = life }) table.insert(subSystem, subP) end end function cleanSubSystem(subSystem) for index, subP in pairs(subSystem) do if subP.life < 0 then table.remove(subSystem, index) end end end ----Initializations---- --forceField initialization mouseForceMag = 0.2 maxForceMag = 1 minForceMag = 0.1 mouseField = forceField(20, mouseForceMag) --system variables systemW = 17 systemH = 9 palette = {3, 5, 9, 6, 4, 10, 7, 11} --system initialization system = newSystem({ width = systemW, height = systemH, palette = palette, maxSpeed = 4, borderColor = 12 }) function TIC() --Check reset if btnp(Z, 0, 30) then system = newSystem({ width = systemW, height = systemH, palette = palette, maxSpeed = 4, borderColor = 12 }) subSystem = {} end --Update force magnitude if btnp(UP, 0, 10) then mouseForceMag = math.min(maxForceMag, mouseForceMag+0.1) end if btnp(DOWN, 0, 10) then mouseForceMag = math.max(minForceMag, mouseForceMag-0.1) end mouseField.forceMag = mouseForceMag mouseField.update() updateSystem(system, subSystem, subSystemLimit) cls(background) renderSystem(system, subSystem) mouseField.render() end