wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwUwUfUfUfUfUff3333333333wwWUeWeUeUeVWUVeWeWUgUvUWUvwWewwC44>>CD3NN4N>N>333##7r#$7r#$7r##7r##7r##7r#43D##www#www#www#www#www#www#www#wwwwUTwWU4wU5TeU6TUfU4UwUdUw6tww7twwwwwwwwwwGwwwGDwwDDtG43tG#"s7""swwwwwGwwwGwwwDDwG4DtG#3tG#"s7""swwwwwwwwwwtwwDtwGDDwG3Ct7"2t7""swwwwwwtwwwtwwDDwGDCtG32t7"2t7""swwwwwwwwwrsww"sww"swwWwwwWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww̙̪wwww||ɜɜwwwwww̙̙wwww||ɜɩ""""""""""""43D$#7r$#7r##7r##7r##7r##7r#333##www#www#www#www#www#www#www#wwwwwwwwwww""""!"""3333#"""#wwwwwwww""!33DD"""2www2!!!!"!!!!!!!!!!!!!!"!!!!!!!!!!!!!!wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww̪̪̪̪ʬʬʬ̪̪̪ʬʬʬʪ"""!" "!""!"""wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww""3"3"3333333333333333wwww||,,#2#23333333333333333wwwwww"""3"33333333333333333wwww||,,2#2#3333333333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww333333333333333333333333333333333333<<<<3333333333333333333333333333333333333333333333333333<<<<3333333333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww`Uf`3f33 ""`UfU`3f3333 """fUfUf3f3333333333333fUff3f333"""`Uf`3f3333333333333333333333333333333333 ""3333S33333333333333`UfU`3f333333333333fUff3f333333333333333333333 """3333333333"""VeVe6c6c?333""""33633633333333333333333?333?333""""33333333333333333333      wwwwwwwwwwwwwwwwwwwwwwwwwwwwJwJw3w3Dw3DwwwwpwwpwwpwwDwwDwwDwwpwwwwwOww3w3Dw3DwpwwwwDww ww wwAwwDwwpwwwwwwwww@w3w3w3DwwwpwDpwDDpwJ wwJ wwwwpwwppww ",p ""p"ww pwwwwwwwwwppwwppwwpwwwwwwwwwppww //p/pwwpwwwwwwwwwppwwppwwpwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwppwwwwwwwppwwwwwwwwwwwppwwpppwwwwpwppwwppwpwwwwPpw`pw`Vpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwppppwpwwwwwwwww0Dw0Dw0DwwwwwwwpwDpwDpwDpwwwpwwpwwpwwww0DwCwCwwwwwwpwDpwwwwwpwwpwwwwwwww0DCCwwwwwwwpwDpwCwCwpwpwwwwwwwwwpww ww0Cpw3ww0ww@pwwwwwwwwpww wwpw wwwwpwwwwwww733s32#332#33#"333#33#23233#'""r'""r"!""!""!""!""!"!""qWUUuUeVUUVeUUffUUVeUUVeUVUUegffvzywppww "p "p"ww pwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwp  wpwpw wwwpwpww pw wp w pwpwwwwwwwww"w"wbwlwDwBw`U"pww"ww"wwd wwd wwAwwDwwUUpwwwww/ww/ww/wwwBw`U"ww""pw""pwDDpwFwwFwwwwUUpwww/"w/FwFwwDwBw`U"www"pwwpwwpwwDwwDwwDwwUUpw4333LDDDLDDDLDDDLDDDLDDDLDDDLDDD33wwD4wwD4wwD4wwD4wwD4wwD4wwD4wwwwwwwwwL|CDDCDD33Csww7wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwpw w wwpwwwwwwwwww`URw0Dfw0DUw0DUw"ww"ww"wwUUpwfDpwUDpwUDpw"ww"pww"pwwpwww`URw0DfwCTwCTww"ww"w/wUUpwfDpwUwwUww"pww"pww wwwww`URw0DfCdUCdUw"ww"ww/wwUUpwfDpwUCwUCw"pw"pwwwwwwwwLDDDLDDDLDDDwwwwwwwwwwwwwwwwD4wwD4wwD4wwLwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnfwnUw^Uw`Pw`Vw`VUwUwwwfpwwepwwUpwwpwwUpwwUwZUpwwwfUwffwffwfUwfUwfUwwpwwU wwewwewwVwwUwwUwwpwwwwwfUwfwfwfUwfwfww`UpwwUwwwwwwPwwwwwwUpww pwp.-p"pppwwwwwwwwwpwwwpwwwwww0pww ww0w=pwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwUwwwwwwwZUp w www wwwwwwwwwpwwpwwwUwwwwwwwwwZUp w www wwwwwwwwwpwwwpwwwww`Uww`Uww`Uww`Uww`UwVwVwfUpwwUpwwUpwwUpwwUpwwVwwVwwfwwww`Uww`Uww`Uww`Uww`UwwVwwVwwfUpwwUpwwUpwwUpwwUpwwwwwwwwwwwL wpwp DD 0p w0pwwwwwwwwwpwwwpwwwL wpwp wpwpDD|0p w0pwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwww wwwwwwp pwwwwp પ pwwww32p02##3 pwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwpwwwpwwwpwwwpwwwpwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwp DD DALD pwwww@DD@LL@DD@@DDwwwwp DD DALD pwwwwwwwwpwpwpwpwpwpwpwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwpwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwD 2@w wwpwwwwwwwwwwwwwD w2@w wwpwwwwwwwwwwwww@D 2wwwwwwwwwwwwwwww@wD w2pwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwpwwpwwpwwpwwpwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww733w3sww3sww3swsswsw7wwwwwwww3wwwwswwwswwswwswwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww333w34CwwC4ww33ww33wwwwwwwwwwww3www3wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwNww2tw'Cww2tww'Cwww2w|wwMww2tw'Cww2tww'Cwww2w|wGDwCDwwC2twC'Cw7w2tww'Cwww2w|wwJww2tw'Cww2tww'Cwww2wwwwwwDwwGLtwtGLLtGtwDDwwwwwwwwwww3ww7?sws7??s7sw33wwwwwwwwwwwwwwwww|}}w}wwwwwwwwwwwwwwwwwwwwD33|D33sDswswwwwwwwwwwwwwwwwwwww|{{w{wwwwwwwwCwww2tww'Cwww2tww'Cwww2tww'Cwww2wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwwww}7wCww?tww#Cw7r2www|wwwww|7wCww>tww#Cw7r2wwwC|ww7wwwC|7w7Cww3tww#Cw7r2www|wwwww|7wCww>tww#Cw7r2w3sww|7ww|wsw|wsw|wsw|wsw|7ww3sww|w4G|7s=}3}3s}3w}wwwwwwwwwwwwwwwwwwwwwwww3333343wC3ww34wwC3wwwwwwwwwwwww̻˼wwwwwwwwwwwwwww7twwG|ww'sww'sww'sww'sww'sww'swwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}|||ww~wwwwwwwwwwwwwwGDtGDD|7D|7|wwswwwwwwwwwww|www|ʬ||wwwwwwwwwwwww~ww~~wwwwww|ww|wwwww|wwwwwwwww}w|wwwwt|wtGwwtGwwtGwwtGwwtGwwwwwww|wwwww|wwwwww|wwwwwwwwwwwtwwGww'Bw'"w""w""wwrwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww @@@ @@@@@@ @@@@ >5? 𰻻 񰻻 𰻻 𰻻 񰻻 𰻻 !!!! !!𰻻 !!񰻻 !!𰻻 !!𰻻 񰻻 !!!!𰻻  !!!! !!𰻻 !!񰻻 !!𰻻 !!𰻻 񰻻 !!!!𰻻  !!!! ۻ !!𰻻 ۻ !!񰻻 ݻ !!𰻻 ۻ !!𰻻 ۻ 񰻻 !!!!𰻻   Jʰ ?D Jʰ  3D ?D 3DD ?DD 3DD ?33  0DD @@@ """""""""""""""""""""""" 0DD ,,@@@ """""""""""""""""""""""" 0DD #2#2 DD DD DD  3333@4D@4D@4D 3333@#3@#3@#3 """""""""""""""""""""""" 3333@#"@#"@#" """""""""""""""""""""""" 33330""0""0"" DDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU DDDDDDDDfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUODDODDODDfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUɜɜɜɜɜɜɜɜɜɜD3D3D3D3fUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfU?DD?DD?DDfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfUfU3D3D3D3Dffffffffffffffffffff?33C?33C?33CffffffffffffffffffffDDDDDDDD3333333333333333333333333333333333333333DDDDDDDD3333333333333333333333333333333333333333DODDODDOD3333333333333333333333333333333333333333D3D3D3D333333333333333333333D?DD?DD?D333333333333333333333D3D3D3D333333333333333333333C?33C?33C?333333333333333333333DDDDDDDD333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333DDDDDDDD333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333ʬʬʬʬʬʬʬD3D3D3D3333333333333333333333333333333333333333333333333ʬʬʬʬʬʬʬʬ3D3D3D3D33333333333333333333333333333333333333333333333333333CDDDDDDDD333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDDDDĪDDDDDDDD333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDDDDĪD3D3D3D3333333333333333333333333333333333333333333333333CDDDDĪ3D3D3D3D333333333333333333333333333333333333333333333333CDDDD333333333333333333333333333333333333333333333333CDDDD333333333333333333333333333333333333333333333333CDDDD333333333333333333333333DDD333333333333333333333333@DD333333333333333333333333333333333333333333333333@@DD333333333333333333333333333333333333333333333333D@DD3333333333333333333333333333333333333333333333337-- title: tic-craft -- author: 5eburek -- desc: Mine and Build! -- site: website link -- license: MIT License (change this to your license of choice) -- version: 0.1 -- script: lua del = table.remove abs = math.abs flr = math.floor rnd = math.random outl = {} LDM=false t=0 --tags={"Grass","Foliage","Crafting Table","Dirt","Log"} inv={} for i=1,72 do inv[i]=0 end sel=1 insel=1 gm=2 --1-game-0-inv im=0 crafts={ {5,0,0,0,9,4}, {9,9,9,9,3,1}} crftb={ {16,16,16,16,0,16,16,16,16,7,1}, {0,0,0,0,9,0,0,9,0,457,4}, {457,0,457,457,457,457,457,0,457,10,4}} craft_mode=1 _spr=spr _map=map c={x=0,y=0} block_col={7,6,3,3,3,4,13,13,4,4,12,15,15,4,11, 14,0,13,4,10,3,3,12,5,3,3,3,3,11,11,11,11,10, 10,10,10,10,2,3,3,3,3,1,1,1,1,11,11,11, 10,10,10,10,2,11,11,11,11,11,11,11,11,11,11,11, 3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11, 3,3,3,3} mobs={} anim = { [25] = 4, [41] = 4, [32] = 4, [48] = 4, [64] = 4, [80] = 4 } grav=0.2 p={x=500, y=0, dx=0, dy=0, dir=0, hd=1, st=0, mhp=8, hp=8, nhp=8} cur={x=0, y=0, ang=0} frames=0 fps=0 last=0 function TIC() update() draw() end function update() t=t+1 if btnp(7) then gm=1-gm end if gm==2 then gen_world() gm=1 end if gm==1 then p_move() cur_move() mine() if t%5 == 0 then tiles_upd() end if t%3600 == 5 then spawn() end mobs_upd() c.x=p.x-113 c.y=p.y-71 elseif gm==0 then craft_mode = 1 if mget(cur.x//8, cur.y//8) == 3 then craft_mode = 2 end inv_menu() end get_fps() end function p_move() p.lx = p.x p.ly = p.y if t%10==1 then p.hp=p.nhp end p.st = 0 if btn(3) then p.x = p.x + 1 p.dir = 0 p.st = 1 end if btn(2) then p.x = p.x - 1 p.dir = 1 p.st = 1 end if mget((p.x+8)//8,(p.y+17)//8)==10 then if btn(0)then p.y=p.y-1 end if btn(1)then p.y=p.y+1 end else p.dy=mid(-4,3,p.dy) p.dy = p.dy + grav p.y = p.y + p.dy end if solid(p.x+11,p.y+1) or solid(p.x+4,p.y+1) or solid(p.x+11,p.y+14) or solid(p.x+4,p.y+14) then p.x=p.lx end if solid(p.x+11, p.y+15) or solid(p.x+4, p.y+15) or solid(p.x+4, p.y) or solid(p.x+11, p.y) then p.y = p.ly p.dy = 0 p.on_ground = true else p.on_ground = false end if p.on_ground and btnp(4) then p.dy = -3 end end function cur_move() if btn(0) then cur.ang = cur.ang - 0.05 end if btn(1) then cur.ang = cur.ang + 0.05 end cur.ang = mid(-math.pi/2, math.pi/2, cur.ang) local dir = (p.dir==0 and 1 or -1) local r = 16 cur.x = p.x+8+math.cos(cur.ang) * r * dir cur.y = p.y+4+math.sin(cur.ang) * r p.hd = flr(range(cur.ang, -math.pi/2, math.pi/2, 0, 2)) end function draw() if gm==1 then cls(11) map(0,0,240,136,0,0,7,1,remap) if not LDM then border() end mobs_draw() pl_draw() ui_draw() elseif gm==0 then inv_draw() end --print("FPS: "..fps, 0, 0) --print("LDM: "..tostring(LDM),0,8) end function tiles_upd() for y=135,0,-1 do for x=0,239 do local t = mget(x,y) local d = mget(x,y+1) local u = mget(x,y-1) local is_liquid = (t==32 or t==48 or t==64 or t==80) if is_liquid then if d==0 then mset(x,y,0) mset(x,y+1,t) else if u~=0 then if t==32 then mset(x,y,48) elseif t==64 then mset(x,y,80) end else if t==48 then mset(x,y,32) elseif t==80 then mset(x,y,64) end end end end if (t==32 or t==48) and (d==64 or d==80) then mset(x,y,0) mset(x,y+1,12) end end end end function ui_draw() _spr(295,12,110,7,1,0,0,2,2) _spr(inv[sel*2-1],14,112,7) print(inv[sel*2],12,117,0) _spr(281,2,126,7) print("-inv",11,128,2) print("-inv",11,127,3) _spr(283,62,126,7) print("-jump",71,128,6) print("-jump",71,127,5) _spr(284,122,126,7) print("-mine",131,128,9) print("-mine",131,127,10) _spr(282,182,126,7) print("-place",191,128,1) print("-place",191,127,2) print(inv[sel*2-1],10,10) for i=1,p.mhp do _spr(264,i*7,1,7) end for i=1,p.hp do _spr(263,i*7,1,7) end if p.hp>flr(p.hp) then _spr(285,p.hp*7+4,1,7) end --local tx=flr(c.x/8) --local ty=flr(c.y/8) --rect(0,0,53,23,0) --for x=0,49 do -- for y=0,19 do -- local t=mget(tx+x,ty+y) -- local col=block_col[t] -- if t==0 then col=11 end -- if col then -- pix(x+2,y+2,col) -- end -- end --end --pix(16,11,10) --pix(16,12,8) end function inv_draw() cls(4) c.x=p.x-113 c.y=p.y-71 local tx=flr(c.x/8) local ty=flr(c.y/8) ty=ty-10 local ox=116 local oy=80 rect(ox+1,oy+1,52,22,3) for x=0,114 do for y=0,39 do local t=mget(tx+x,ty+y) local col=block_col[t] if t==0 then col=11 end if col then pix(x+2+ox,y+2+oy,col) end end end pix(16+ox,21+oy,10) pix(16+ox,22+oy,8) c.x=1 c.y=1 if craft_mode==1 then for x=1,2 do for y=1,2 do ix=x*12-4 iy=y*12+8 id=(x+(y-1)*2)*2-1 spr(295,ix,iy,7,1,0,0,2,2) if im==1 and crafts[insel] then if not cont(inv,crafts[insel][x+y-1]) then rect(ix+1,iy+1,10,10,2) end spr(crafts[insel][x+y-1],ix+2,iy+2,7) end end end spr(297,34,28,7) spr(295,44,26,7,1,0,0,2,2) if im==1 and crafts[insel] then if crafts[insel-1] then spr(crafts[insel-1][5],46,40,7) end spr(crafts[insel][5],46,28,7) if crafts[insel+1] then spr(crafts[insel+1][5],46,16,7) end end elseif craft_mode==2 then for x=1,3 do for y=1,3 do ix=x*12-4 iy=y*12+8 id=(x+(y-1)*2)*2-1 spr(295,ix,iy,7,1,0,0,2,2) if im==1 and crftb[insel] then if not cont(inv,crftb[insel][(y-1)*3+x]) then rect(ix+1,iy+1,10,10,2) end spr(crftb[insel][(y-1)*3+x],ix+2,iy+2,7) end end end spr(297,46,34,7) spr(295,56,32,7,1,0,0,2,2) if im==1 and crftb[insel] then if crftb[insel-1] then spr(crftb[insel-1][10],58,46,7) end spr(crftb[insel][10],58,34,7) if crftb[insel+1] then spr(crftb[insel+1][10],58,22,7) end end end for x=1,9 do for y=1,4 do ix=x*12-4 iy=y*12+68 id=(x+(y-1)*9)*2-1 spr(295,ix,iy,7,1,0,0,2,2) if id==insel*2-1 then if im==0 then spr(362,ix,iy,7,1,0,0,2,2) end end if id==sel*2-1 then spr(360,ix,iy,7,1,0,0,2,2) end spr(inv[id],ix+2,iy+2,7) if inv[id+1]>0 then print(inv[id+1],ix+1,iy+7,15) print(inv[id+1],ix,iy+7,14) end end end spr(281,2,126,7) print("-back",11,128,2) print("-back",11,127,3) spr(283,62,126,7) print("-select",71,128,6) print("-select",71,127,5) spr(284,122,126,7) print("-",131,128,9) print("-",131,127,10) spr(282,182,126,7) print("-craft",191,128,1) print("-craft",191,127,2) end function spawn() for i=0,10 do local x=rnd(1980) local y=rnd(320) if not solid(x,y) then --mobs[#mobs+1]={1,x,y,0,0,1} mobs[#mobs+1]={2,x,y,0.5,0,2} end end end function mobs_upd() for i=#mobs,1,-1 do local e=mobs[i] if e then local x,y,dx,dy,hp=e[2],e[3],e[4],e[5],e[6] local lx,ly=x,y --slime if e[1]==1 then dy = dy + grav dy = mid(-4,3,dy) y = y + dy if solid(x+7,y+7) then y = ly x = lx dy = 0 dx = 0 if t%60==1 then dy = -3 dx = rnd(3)-2 end end if solid(x+3,y+4) then x = lx+1 end if solid(x+11,y+4) then x = lx-1 end x = x + dx if abs(x-p.x)<8 and abs(y-p.y)<8 then p.dx = -4 p.dy = -3 p.nhp = p.hp - 0.5 end if btn(5) then if abs(x-cur.x+12)<12 and abs(y-cur.y+8)<12 then hp = hp - 1 end end if hp < 1 then del(mobs,i) else e[2],e[3],e[4],e[5],e[6] = x,y,dx,dy,hp end --zombie elseif e[1]==2 then dy = dy + grav dy = mid(-4,3,dy) y = y + dy if solid(x+7,y+15) or solid(x+7,y) then y = ly x = lx dy = 0 end if solid(x+1,y+4) then dx=0.5 end if solid(x+2,y+12) then if solid(x+1,y+4) then dx=0.5 else dy=-1.5 end x = lx+2 end if solid(x+11,y+4) then dx=-0.5 end if solid(x+10,y+12) then if solid(x+11,y+4) then dx=-0.5 else dy=-1.5 end x = lx-2 end x = x + dx if abs(x-p.x)<8 and abs(y-p.y)<8 then p.dx = -4 p.dy = -3 p.nhp = p.hp - 1 end if btn(5) then if abs(x-cur.x+12)<12 and abs(y-cur.y+8)<12 then hp = hp - 1 end end if hp < 1 then del(mobs,i) else e[2],e[3],e[4],e[5],e[6] = x,y,dx,dy,hp end end end end end function mobs_draw() for i=1,#mobs do local e=mobs[i] if e and e[1]==1 then spr(322,e[2],e[3],7,1,0,0,2,1) elseif e and e[1]==2 then spr(320,e[2],e[3],7,1,0,0,2,1) spr(336+((t//10)%2)*2,e[2],e[3]+8,7,1,0,0,2,1) end end end function pl_draw() spr(257+p.hd*2,p.x,p.y,7,1,p.dir,0,2,1) if p.st==0 then spr(273,p.x,p.y+8,7,1,p.dir,0,2,1) elseif p.st==1 then spr(275+((t//10)%2)*2,p.x,p.y+8,7,1,p.dir,0,2,1) end spr(256,cur.x,cur.y,7) spr(271,cur.x//8*8,cur.y//8*8,7) end function inv_menu() if im==0 then if btnp(3) then insel=insel+1 end if btnp(2) then insel=insel-1 end if btnp(1) then insel=insel+9 end if btnp(0) then insel=insel-9 end if btnp(5) then sel=insel end insel=mid(1,36,insel) else if btnp(1) then insel=insel-1 end if btnp(0) then insel=insel+1 end if craft_mode==1 then insel=mid(1,#crafts,insel) elseif craft_mode==2 then insel=mid(1,#crftb,insel) end if btnp(5) then craft(insel) end end if btnp(4) then im=1-im insel=1 end end function craft(i) local r local size local res local amount if craft_mode==2 then r = crftb[i] size = 9 res = r[10] amount = r[11] or 1 else r = crafts[i] size = 4 res = r[5] amount = r[6] or 1 end if not r then return end for j=1,size do local id = r[j] if id~=0 then local p = cont(inv,id) if p==nil or inv[p+1]<1 then return end end end for j=1,size do local id = r[j] if id~=0 then local p = cont(inv,id) inv[p+1] = inv[p+1] - 1 if inv[p+1]<=0 then inv[p]=0 inv[p+1]=0 end end end for k=1,amount do local p = cont(inv,res) if p then inv[p+1] = inv[p+1] + 1 else local s = cont(inv,0) if s then inv[s] = res inv[s+1] = 1 end end end end struc={} function scan() for x=0,239 do for y=0,135 do if mget(x,y)==206 then sx=0 sy=0 -- ширина (между 206 и 207) for i=0,239-x do if mget(x+i,y)==207 then break end sx=i end -- высота (между верхом и 223) for j=0,135-y do if mget(x,y+j)==223 then break end sy=j end if sx>0 and sy>0 then scan={} scan[1]=sx scan[2]=sy -- ВАЖНО: внутри начинается с +1,+1 for mx=1,sx do for my=1,sy do scan[(my-1)*sx + mx + 2] = mget(x+mx, y+my) end end struc[#struc+1]=scan end end end end end function gen_world() scan() free=0 local gh=43 for x=0,239 do free=free-1 gh=gh+(flr(rnd(19))-10)/10 h=flr(gh) for y=0,135 do if mget(x,y)==0 then if y0 then mset(tx,ty,id) inv[i+1] = count - 1 if inv[i+1] <= 0 then inv[i] = 0 inv[i+1] = 0 end end end end end function remap(tile) local frames = anim[tile] if frames then local base = tile local frame = (t//10)%frames return base + frame end return tile end function border() for x=0,239 do outl[x] = {} for y=0,135 do outl[x][y] = 0 end end for x=0,239 do for y=0,135 do if pix(x,y)==11 then local l = (x>0) and pget(x-1,y) or 0 local r = (x<239) and pget(x+1,y) or 0 local u = (y>0) and pget(x,y-1) or 0 local d = (y<135) and pget(x,y+1) or 0 if l~=11 or r~=11 or u~=11 or d~=11 then outl[x][y]=1 end end end end for y=0,135 do for x=0,239 do if outl[x][y] == 1 then pix(x,y,0) end end end end function mid(a,b,x) if xb then return b end return x end function range(x, in_min, in_max, out_min, out_max) return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min end function get_fps() frames = frames + 1 if time() - last >= 1000 then fps = frames frames = 0 last = time() end if time()>1500 then if fps<30 then LDM = true end end end function pget(x,y) if x<0 or x>239 or y<0 or y>135 then return 11 end return pix(x,y) end function solid(x,y) local tx = x/8 local ty = y/8 return fget(mget(tx,ty),0) end function cont(t, v) for i=1,#t,2 do if t[i] == v then return i end end return nil end function count_item(id) local c = 0 for i=1,#inv,2 do if inv[i] == id then c = c + inv[i+1] end end return c end function spr(id,x,y,ck,sc,f,r,w,h) x=flr(x)+1 y=flr(y)+1 sc=sc or 1 f=f or 0 r=r or 0 w=w or 1 h=h or 1 _spr(id,x-c.x,y-c.y,ck,sc,f,r,w,h) end function map(x,y,w,h,sx,sy,ck,sc,r) _map(x,y,w,h,sx-c.x,sy-c.y,ck,sc,r) end