0,]']±>Sï}WÿÍu§ðp8·d%qy)6o;]ÉA¦ösï÷ôôô”°ÂVl†3€¤È@ ðððÝÞþÿýÿþþþþýþÝÿþþþÿÿîïÝîîîýÿÿïÿÞîïýÿýïÿþîïÿðððÿÝîîîýÿÿïÿÞíïýßÿïÿþîïððððÿððððÿÿýíÿÿïðàïïÿßïðàíïïïïððÿïðïîîÿîÿððàïýîïïðßÿïýîíïþÿÿïîîîîÝýÿþþþðþÞþýÿðþþÿþÿÿàîîîîÝîîîýÿÿïþÞîïþÿýþþîïþððÿîÿðÝîîî ÿÿïÿàïïÿßïðàíïïïïððÿïðààîÿðððþîïÿýÿýïþÞíÿýÿÿïÝîîîðÿðððÿþîïÿýßÿïþîíÿýÿÿïÝîîîÝÞþýÿþþþþÞþýÿþþþÿÿîïÿÿððððððððýíÿÿïðàïïÿÝïðàßïïïïððÿïÿïîîíîîîÜÝÝÝÜÌÞÝÜîÝÞÜÞíÝîîíîÝÝÜÝÌÞÜÍíîîîÜíÝÝÜÝÌÞÜÞîÝÜÝÝíîÞîîÝÍÝÝìÍÎìîíÜííÞÜÞíîîîÜÞÞÞÜÞÞÞìÍìíÜïþýÿÿÿÿîÍíÞÝÎÞííîîîÜÞÞÞÜÞÞÞìíÍìüýíþÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿïþÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆÌˆˆˆÌŒˆˆÌ̈ˆÈ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆÈŒˆˆÌŒˆˆÌŒˆÌÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆŒˆˆˆÌˆˆˆÌŒˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆŒˆˆÈŒˆˆÌŒˆÌÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆÌˆˆˆÌŒˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆÈŒˆˆÌŒˆˆÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆˆÌŒˆˆÌ̈ˆÈ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌŒˆˆÌŒˆÌÌŒˆˆˆˆˆˆˆˆˆ("ˆˆ("""ˆ"ˆ("ˆˆ""ˆˆÈ̈ˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ˆˆ ˆˆ""ˆˆLŒˆˆˆˆˆˆˆˆˆˆ("ˆˆ("ˆˆˆ"""ˆ(ˆˆ"ˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ˆˆ ˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ("""("ˆ""ˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ˆˆ ˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(""("(""ˆ(""ˆˆÈ̈ˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ˆˆ ˆˆ""ˆˆLŒˆˆˆˆÈLˆˆÌ̈ˆÌLˆÈÌLˆˆLĈˆˆÈˆˆˆˆˆˆˆˆÌÌ„ˆÀ ̈À ĈÌÀÄŒÌÌLˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÈLˆÈÈ̈ÈÌLˆˆÌLˆˆLĈˆˆÈˆˆˆˆÌÌŒˆÌÌ„ˆÀ ŒŒÀ ÄŒÌÀĈÌÌLˆÌ̈ˆˆˆˆˆˆˆÈ̈ˆÈLˆˆÌ̈ˆÌLˆÈÌLˆˆLĈˆˆÈˆˆˆˆÌÌŒˆÌÌ„ˆÀ ̈À ĈÌÀÄŒÌÌLˆÌ̈ˆˆˆˆˆˆˆÈLˆˆÌ̈ˆÌLˆˆÌLˆÈLĈˆˆÈˆˆˆˆˆˆˆˆÌÌ„ˆÀ ̈À ĈÌÀĈÌÌLŒÌ̈ˆˆˆˆˆˆˆˆˆˆˆÈȈˆÈHˆˆÈȈˆˆÈˆˆˆÈˆˆˆÈˆˆˆÈˆˆˆˆÄŒˆˆÌŒˆˆÄŒˆˆÌˆˆˆÌˆˆˆÈˆˆˆÈˆˆˆˆˆˆˆˆˆÈ̈ˆÈȈˆÈHˆˆˆÈˆˆˆÈˆˆˆÈˆˆˆÈˆˆˆˆLŒˆˆÄŒˆˆÌŒˆˆÄˆˆˆÌˆˆˆÌˆˆˆÈˆˆˆˆˆˆˆˆˆÈ̈ˆÈȈˆÈHˆˆÈȈˆˆÈˆˆˆÈˆˆˆÈˆˆˆˆLŒˆˆÄŒˆˆÌŒˆˆÄŒˆˆÌˆˆˆÌˆˆˆÈˆˆˆˆˆˆˆˆˆÈȈˆÈHˆˆÈȈˆÈȈˆˆÈˆˆˆÈˆˆˆÈˆˆˆˆÄŒˆˆÌŒˆˆÄŒˆˆÌŒˆˆÌˆˆˆÈˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ˆˆˆˆˆ"ˆˆ"ˆ(""ˆ"""("""("""(""Ì("ÂÌ""‚ˆ ˆ ˆ"""‚"""‚Ì,"‚ÌÌ"‚ÌÄÌ‚ˆˆˆ"ˆˆ"ˆ(""ˆ"""(""""""""""Ì""ÂÌ""‚ˆ ˆ ˆ"""‚"""‚Ì,""ÌÌ""ÌÄÌ"ˆˆˆˆˆˆˆ"ˆˆ"ˆ(""ˆ"""("""("""(""̈ˆˆˆ""‚ˆ ˆ ˆ"""‚"""‚Ì,"‚ÌÌ"‚ˆˆˆ"ˆˆ(ˆˆ""ˆ(""ˆ"""("""(""Ì(""Ì""‚ˆ ˆ ˆ"""ˆ"""‚Ì,"‚ÌÌ"‚ÌÄ,‚ˆ("ˆ(""ˆ(""ˆ(""ˆ(""ˆ("‚ˆˆˆŒˆˆˆˆ ‚ˆ""‚ˆ""‚ˆ""‚ˆÄ"‚ˆH(‚ˆÈˆˆˆˆˆˆˆˆˆ"ˆ("ˆ(""ˆ"""ˆ"""ˆ"""ˆˆˆŒˆˆˆˆ ‚ˆ ‚ˆ""‚ˆ"""ˆ"""ˆH("ˆÈˆˆˆˆˆˆˆˆˆ"ˆ("ˆ(""ˆ(""ˆ(""ˆ(""ˆ("‚ˆˆˆˆ ‚ˆ ‚ˆ""‚ˆ""‚ˆ""‚ˆL"‚ˆÈ(‚ˆˆˆˆˆˆˆ"ˆ(""ˆ(""ˆ(""ˆ(""ˆ("‚ˆ("Œˆˆˆˆ ‚ˆ""‚ˆ""‚ˆ""‚ˆÄ"‚ˆH"‚ˆÈ(‚ˆˆˆˆˆˆ"Ì̈Ȍ̈ȌLˆˆŒÄˆˆˆÌˆˆˆÌˆˆˆÌˆˆˆˆÌL̈ÌÌ̈ÌÌ̈ÌÌȈˆÌˆˆˆÌˆˆˆÌˆˆˆˆˆˆ("Ì̈Ȍ̈ȌLˆˆŒÄˆˆˆÌˆˆˆÌˆˆˆÌˆˆˆˆÌL̈ÌÌ̈ÌÌ̈ÌÌȈˆÌˆˆˆÌˆˆˆÌˆˆˆˆˆˆ("Â̈"Ì̈Ȍ̈ȌLˆˆŒÄˆˆˆÌˆˆˆÌˆˆˆˆÌÄÌ‚ÌL̈ÌÌ̈ÌÌ̈ÌÌȈˆÌˆˆˆÌˆˆˆˆˆˆ("Â̈"ŒÌˆÈŒLˆÈŒÄˆˆŒÌˆˆˆÌˆˆˆÌˆˆˆˆÌLÌ‚ÌÌ̈ÌÌ̈ÌÌ̈ˆÌȈˆÌˆˆˆÌˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ("ˆˆˆ"ˆˆˆ((ˆˆ(("""ˆˆˆˆˆˆˆˆˆˆˆˆ"‚ˆˆ""ˆˆ""‚ˆ""‚(""""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆØˆˆˆ-ˆˆˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÝˆˆˆÒÝ�ˆÒ-�ˆÝ"‚ˆÝ-Òˆ�ˆˆˆÝˆˆˆÝ�ˆˆØÝˆˆˆØˆ"ˆ(ˆ(ˆ(ˆˆˆ(‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‚ˆˆˆ"‚ˆˆ""‚ˆˆ("‚ˆÈÌ̈ÌÌÌÈÌÍÌÌÌÜÌÜÌÌÌÌÍŒØÌÜŒˆÈÌ�ˆÌˆˆˆÍ̈ˆÜ̈ˆÌ̈ˆÜ͈ˆ-Òˆˆ,ˆˆˆˆˆˆÈÝÜÍÝÌÍÝÜÍÝÜÍÝÜÍÝÜØÝØÍˆ(ˆÝˆˆˆØ‚ˆˆˆˆˆŒˆˆˆŒˆˆˆŒˆˆˆÍˆˆˆ"‚ˆˆÝ݈ˆˆˆ�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆØØˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ("ˆˆ("""ˆ"ˆ("ˆˆ""ˆˆÈ̈ˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ˆˆ ˆˆ""ˆˆLŒˆˆˆˆˆ"ˆˆ"ˆ(""ˆ"""("""("""(""Ì("ÂÌ""‚ˆ ˆ ˆ"""‚"""‚Ì,"‚ÌÌ"‚ÌÄÌ‚ˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ"‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆØˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ"‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÒˆˆˆÒˆˆˆØˆˆˆØˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆØˆˆˆØˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÝˆˆˆ-ˆˆÝ-ˆˆˆ-ˆˆØˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‚ˆˆˆ‚ˆˆˆ‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈȈˆÈHˆˆÈȈˆˆÈˆˆˆÈˆˆˆÈˆˆˆÈˆˆˆˆÄŒˆˆÌŒˆˆÄŒˆˆÌˆˆˆÌˆˆˆˆŒˆˆˆˆˆˆˆˆˆˆˆ"Ì̈Ȍ̈ȌLˆˆŒÄˆˆˆÌˆˆˆÌˆˆˆÌˆˆˆˆÌL̈ÌÌ̈ÌÌ̈ÌÌ̈ˆÈŒˆˆÈŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ"ˆ"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌ̈(ˆˆ""ˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆÌ̈ˆÌÌŒˆˆˆŒˆˆˆ,ˆˆˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ŒˆÈÂ"ˆ(,ˆˆˆ"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆ"ˆˆˆÂ‚ˆˆ""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(ˆˆˆˆˆ( ˆˆˆˆˆ ˆˆˆˆˆˆˆˆˆ‚ˆ€ˆˆˆˆˆˆˆ€ˆˆˆˆˆˆ ˆˆ‚ˆ €ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ ‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ""ˆˆ""ˆˆ(‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆØˆˆÝˆˆ-Òˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ�݈ˆ,ÌÒˆ,Í"ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ"ˆˆˆ(ˆˆˆˆÒˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÜˆˆˆÍˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ €ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ("ˆ(""ˆ(""ˆ(""ˆ(""ˆ("‚ˆˆˆŒˆˆˆˆ ‚ˆ""‚ˆ""‚ˆ""‚ˆÄ"‚ˆˆ,‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‚(ˆˆ‚(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ0ˆ03ˆ033ˆ 23ˆ "2ˆˆˆˆˆˆˆˆˆˆˆˆˆ3ˆ33ˆ3ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆ€ˆˆ ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆÀˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆ€€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆ€ˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆÀŒˆˆÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆÈ ˆˆÈ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆÈÝÝŽˆÜ툈Ȏˆˆˆˆˆˆˆˆˆˆˆˆˆˆ¸‹ˆˆ+²ˆ¸""‹¸""‹ˆ+²ˆˆ¸‹ˆˆˆˆˆˆ ""ˆ ""ˆ ""ˆ ""ˆ "ˆˆ ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ €ˆˆˆˆˆˆˆˆˆˆÜˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆÀˆˆˆˆˆˆˆˆˆÍˆˆˆŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆŒˆˆˆ�ˆˆ�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆÈˆˆØˆˆØˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ ŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÀˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ¸‹ˆˆ«ºˆ¸ª™‹¸š™‹ˆ›¹ˆˆ¸‹ˆˆˆˆˆˆˆ‹ˆˆ¸²ˆˆ+²ˆ¸""‹¸ ‹ˆ+²ˆˆ¸‹ˆˆˆˆˆˆˆxˆˆ(‡ˆ!�ˆˆˆˆˆˆˆˆˆˆ¨Š¨ŠˆªªˆˆØ�ˆØÝÝ�ØÑ�ÝÑÝÑÑØÝÝ�Ñ�ˆ�ˆ2‚ˆˆ"‚ˆˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÑ�ˆˆ3ƒˆˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÑ�ˆˆ�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌ̈ÈÌ̈ÈÌ̈ÈÌ̈ÈÌ̈ˆˆˆˆˆˆˆÌ̈ˆÌÌŒˆÌÌŒˆÀ ŒˆÀ ŒˆÌÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌ̈ÈÌ̈ÈÌ̈ÈÌ̈ˆˆˆˆˆˆˆˆˆˆˆÌ̈ˆÌÌŒˆÌÌŒˆÀ ŒˆÀ ŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌ̈ÈÌ̈ÈÌ̈ÈÌ̈ˆˆˆˆˆˆˆˆˆˆˆÌ̈ˆÌÌŒˆÌÌŒˆÀ ŒˆÀ ŒˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌ̈ÈÌ̈ÈÌ̈ÈÌ̈ÈÌ̈ˆˆˆˆˆˆˆÌ̈ˆÌÌŒˆÌÌŒˆÀ ŒˆÀ ŒˆÌÌŒˆˆˆˆˆˆˆˆˆˆ(‚ˆˆ2ˆˆ"ˆˆ�ˆˆˆˆˆˆˆˆˆÐ ÝÝ8C4ƒ#"#"""""!""""�ˆ""ˆˆ!ˆˆ�ˆA�133""�ˆ!ˆˆ!ˆˆ�ˆ���ˆˆˆˆˆ�ˆ8ƒˆˆC3ˆˆ33ˆˆ8ƒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ�ˆˆˆˆˆˆ�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÌ̈ˆÌ̈ˆˆˆˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆÁÁ�ˆˆˆˆˆˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÌ̈ÈÌ̈ˆÌ̈ˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆÌÌŒˆÁÁ�ˆˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÌ̈ÈÌ̈ˆÌ̈ˆˆˆˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆÌÌŒˆÁÁ�ˆˆˆˆˆˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆÈÌ̈ˆÌ̈ˆˆˆˆˆˆˆˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆÁÁ�ˆˆˆˆˆˆˆˆˆˆˆÌ̈ˆˆˆˆˆˆˆˆˆ``````ˆˆˆˆˆˆÈ̈ˆÌˆˆˆÌ̈ÌÌŒˆŒÌ̈ŒÈŒˆŒÈ̈ˆˆˆÌÌŒˆˆˆÌˆÌÌ̈ȈÈÌÌÌÌÈȈŒÈÌ̈ȈˆˆˆˆˆˆˆˆˆÈ̈ˆÌˆˆÌÌ̈ŒÌŒˆŒÌ̈ˆÈŒˆˆˆˆˆˆˆˆÌÌŒˆˆˆÌˆÌÌÌÌȈÈÈÌÌÌÈȈŒˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌˆˆˆÌ̈ÌÌŒˆŒÌ̈ŒÈŒˆˆˆˆˆˆˆˆÌÌŒˆˆˆÌˆÌÌ̈ȈÈÌÌÌÌÈȈŒÈˆˆˆˆˆˆÈ̈ˆÌˆˆˆÌ̈ˆÌŒˆÌÌ̈ŒÈŒˆŒÈ̈ˆˆˆÌÌŒˆˆˆÌˆÌÌ̈ȈȈÌÌÌÌȈŒÈÌ̈ȈˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌˆˆˆÌ̈ÌÌŒˆŒÌȈˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆˆˆÌˆÌÌ̈ȈÈÌÌÌÌȈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ̈ˆÌˆˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆˆˆÌˆÌÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈȈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈˆˆˆŒÈˆˆÌ̈ˆˆŒˆˆÈȈˆÈˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆŒˆˆˆˆˆˆˆˆˆÈ̈ˆŒÈˆˆÌ̈ˆˆŒˆˆÈȈˆÈȈˆÈŒˆˆˆˆÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒÈ̈ˆŒÈˆˆÌ̈ˆˆŒˆˆÈ̈ˆˆÌˆˆˆÌˆˆˆˆÌ̈ȈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒÈˆˆˆŒÈˆˆÌ̈ˆˆŒˆˆÈȈˆÈȈˆÈȈˆˆˆˆˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒÈŒˆŒÈ̈ˆÌ̈ˆˆŒˆˆÈȈˆÈˆˆˆÈˆˆˆˆˆÈˆŒÈÌ̈ȈˆˆˆˆˆˆˆˆˆˆˆŒˆˆˆŒˆˆˆˆˆˆˆˆÌÌŒˆŒÌȈˆÌ̈ˆˆŒˆˆÈȈˆÈˆˆˆŒÈˆˆˆˆÈˆÈÌÌÌÌȈˆˆˆˆÈˆˆÈŒˆˆŒˆˆˆˆˆˆˆˆˆˆˆˆˆÌˆˆˆÈ̈ˆŒŒÈˆŒÈȈÌÈŒˆŒˆˆÌˆÌˆˆˆˆˆˆÌˆÌÌŒˆÈˆÈˆÌÈÌŒˆˆˆÈŒˆˆÈˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈȈˆÌˆˆˆÈ̈ˆŒŒˆˆŒÈˆˆÌȈˆˆˆˆˆˆˆÌÌŒˆˆˆÌˆÌÌŒˆÈˆÈˆÌÈ̈ˆˆˆˆˆˆˆˆ€A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A  QPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQ ! ! ! ! ! ! ! ! ! !A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@01010101010101010101QPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@AA@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@AA@A@A@  A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQQPQPQP ! ! ! ! !QPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@AA@A@A@0101010101A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@AA@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@AA@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@AA@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQP@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@ €8Ñ7±6±6¡5¡5¡4¢3£3´2µ2Ç1ø1ú2 3 5 6 5 54455556789?2   4 2À?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððððððððÀÝÝðÜíðÀððððð0505ð0US5ð0U50U5PPPPðÀÌÌÌ0U5SU5PUPUðÌÌÌÍÌ0UUUUPUPUPUPUðÀÌÍÌÜÌ0×]ÝUPUUUPUUUðÌÌÜÌÌÌ LDD ÓÄLÌÔ=PUUUPffffðÜÌÌÌÜÍ ÌÀ ÌÀ ÌDDD CÄMÜD=pUUW`ffffðÌÍÌÜ­Ú Ì Ì Ì Ì ÌLDD0UWPuUU1UQUUUPUUðÌÜÌÌ¬Ê ÌÌÌ ÌÌÌ @ÌLDD@sUUUwuQWUuPWUðÀÌÍÌÌÌ "ÌÌÌ DÀDDD @DDDDDDD0QUU1PuUWUePuUWUEðÀÌÌÌÌ "ÌÌÌ DDDDDDÌÌÌD0WUUuWfWUUuWDðÌÌÀ Ì,ÌÀ Ì@ÌÌÀ ÌÌÌÀ Ì0U`UUef@UUEDðÌÌÀ ÌÌÒÜ ÌÌÌÀ ÌÌÌÀ Ì0QUU`fff@DDDðÀÌÌÌÀÌ ÀÌÌÍÀÌ ÀÌÌÌÀÌ ÀÌÌÌÀÌ 0QUWUUuUUuUUðÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌSuUUU1UWPUWPðÁÌ̪ÊÌ̪ÁÌÌ"ÂÌÌ"SUUU5UUuPUuP𪪪ªª"""""SUUu5UUWPUWP𪪪ªª"""""SSUU75PUPUðÁªªÊ¬ªÁ""Â,"0S5S5PUPU𠪪 ª "" "S5S5PPPPð00ððððððððððððððððððððððððððð ð ""ð """"ð """"ð """"ð """"ð """""""""""""""""""""23333333333333 """"""" ""!""""""""""33333333311333 """"""" "ÁÌ!Á"!!"!""233333333333 """""" ÌÁ"ÁÌ""333333333333 """"  Ì!!ÁÁ"2333333333Ì33# """"" ÌÁÁÌÌ"3333333333333" """""""DDD "ÁÌ!ÌÁÌÌÁ2333333333333#" """""""DDD """!!!333333333333313"" """"""DDD""""""""""""233333333333333#"" """" DDDDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ """""DDDð "" """DDDDDDð " """"DDDDDD@DDDDDDDDDDDDDDDDDDDDDDDDDDD ""À""DDDDDDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿO À DDDD@ôÏÌÌÿÏüÿÿÿÿÿÌÿÿÿÿÿÿÿÿÿÿÌüÿÿO """"DDDÿôÏüÿÿÿÿÏÌüÿÌÌÿÿÿÿÿÿÿÿÿÿüÿÿÿO ""DDDDDDÿÿÿôÏÌüÿÏüÏüÏÏÿÌÿÿÿÿÿÿÿÿÿÿÌÿÿÿO "ÜÍ"DDDDDDÿÿÿôÏüÿÿÏüÏüÏÏÿÌÿÿÿÿÿÿÿÿÿÿÿüÿÿO Â,DDDDDÿÿÿôÏüÿÿÏüÏüÏÿÌÌÿÿÿÿÿÿÿÿÿÿÌÿÿÿO DDDD@ÿÿÿDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿO@DDDÿÿÿÿ@DDDDDDDDDDDDDDDDDDDDDDDDDDD@@@DDDÿÿÿÿÿÿð@@DDDDDÿÿÿÿÿð@DDDDDDÿÿÿðð@@@ÿÿÿ`fffffffffffffffffffffffffff@DDDDÿÿÿÿÿÿÿfÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿo@DD@ÿÿÿÿÿÿÿÿÿöÏüÌÿÿÿÿÿÿÿÿÌÿÿÿÿÿÿÿÿÿÿÌÿÿÿo@DDÿÿÿÿÿÿÿÿöÏÌÌÿÌüÏÌüÿÌÌÿÿÿÿÿÿÿÿÿÿÿüÿÿo@@ÿÿÿðÿÿÿÿöÏÌÌÏüÌÏüÏÏÿÌÿÿÿÿÿÿÿÿÿÿÏÿÿÿo@ÿÿÿÿÿÿöÏÏÏÏÌÿÏüÏÏÿÌÿÿÿÿÿÿÿÿÿÿÿüÿÿo`ffÿÿÿÿÿÿÿÿÿöÏÿÏÿÌüÏüÏÿÌÌÿÿÿÿÿÿÿÿÿÿÌÿÿÿo`ffffÿÿÿÿÿÿÿÿÿfÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿo```ÿÿÿÿÿÿÿ`fffffffffffffffffffffffffff``ðÿÿÿÿðð`ff` ÿÿÿð`f`fªªª ÿÿÿÿÿÿð`ffªªª ÿÿÿÿÿÿ ªªªªªªªªªªªªªªªªªªªªªªªªªªª`ffªªª ÿÿÿÿÿªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯`ªªªª ðÿÿÿÿúÏÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿ¯  ªªª ÿÿÿúÏÏÏÿÌüÿÌüÏÌüÿÿÿÿÿÿÿÿÿÿüüÿÿ¯  ªª  ªªª ÿÿÿÿÿÿúÏÌÌÏüÌÏüÌÏüÏÿÿÿÿÿÿÿÿÿÿÌüÿÿ¯  ªª ªªª ÿÿÿÿÿÿúÏÌÌÏÌÿÏÌÿÏüÏÿÿÿÿÿÿÿÿÿÿÿüÿÿ¯      ªª ÿÿÿÿÿúÏüÌÿÌüÿÌüÏÌüÿÿÿÿÿÿÿÿÿÿÿüÿÿ¯        ÿÿÿÿðªÿÿÿÿÿÿÿÿÿÏüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯ ¬ªªÊ ÿÿÿ ªªªªªªªªªªªªªªªªªªªªªªªªªªª ­Ú ÿÿÿÿÿÿð ­Ú ÿÿÿÿÿÿ𠪪 ÿÿÿÿÿð ÀÀÀ  ÿÿÿÿð À À Ì ÀÌÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Ì Ì ÀÀ ÌÿÿÿñÏüÏÿÏüÿÿÌÿÿÿÿÿÿÿÿÿÿÿÿÿÌÿÿÿ ÌÀ ÀÀ ÀÁ ÿÿÿñÏüÏÿÿÿÿÌÌÿÌüÿÿÿÿÿÿÿÿÿÿÿüÿÿÌ À À À ÀÀ ÌÌÁÌÿÿñÏÌÌÿÏüÏÿÌÏüÌÿÿÿÿÿÿÿÿÿÿÏÿÿÿÀ ÁÀðñÏüÏÿÏüÏÿÌÏÌÿÿÿÿÿÿÿÿÿÿÿüÿÿÿñÏüÏÿÏüÿÌÌÿÌüÿÿÿÿÿÿÿÿÿÿÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“-- title: michtim quest -- author: georg mir @eisenfuchs on ig -- desc: tiny roguelite about hamsterpunk heroes burning down datacenters -- site: https://grimogre.itch.io/mquest -- license: MIT License -- version: 0.1 -- script: lua -- --- TIC-80 & PICO-8 compatibility layer --- local cam_x, cam_y = 0, 0 function camera(x, y) cam_x = x or 0; cam_y = y or 0 end local B_UP, B_DN, B_LF, B_RT, B_X = 0, 1, 2, 3, 4 local TRANS_COL = 8 function add(t, v) table.insert(t, v) end function del(t, v) for i, val in ipairs(t) do if val == v then table.remove(t, i); break end end end function deli(t, i) table.remove(t, i) end function all(t) local copy = {} for i, v in ipairs(t) do copy[i] = v end local i = 0 return function() i = i + 1 return copy[i] end end function flr(x) return math.floor(x) end function rnd(x) return math.random() * (x or 1) end function abs(x) return math.abs(x) end function sgn(x) return x < 0 and -1 or (x > 0 and 1 or 0) end function sin(x) return math.sin(-(x or 0) * math.pi * 2) end function t() return time() / 1000 end function pal(c0, c1) if c0 == nil then for i = 0, 15 do poke4(0x7FE0 + i, i) end else poke4(0x7FE0 + (c0 & 15), c1 & 15) end end function p8_spr(id, x, y, w, h, flip_x) w = w or 1; h = h or 1 local flip = flip_x and 1 or 0 spr(id + 256, x - cam_x, y - cam_y, TRANS_COL, 1, flip, 0, w, h) end function p8_print(text, x, y, col) print(text, x - cam_x, y - cam_y, col, true, 1, true) end function p8_rectfill(x0, y0, x1, y1, col) rect(x0 - cam_x, y0 - cam_y, x1 - x0 + 1, y1 - y0 + 1, col) end function p8_line(x0, y0, x1, y1, col) line(x0 - cam_x, y0 - cam_y, x1 - cam_x, y1 - cam_y, col) end -- --- original code variables --- step = 0 slice = 0 step_max = 6 slice_max = 3 focusmax = 1 attackcd = 0 shake_timer = 0 combat_round = 1 player_x = 64 player_y = 64 emo_to_idx = { anger = 2, joy = 4, love = 6, grief = 10, fear = 1 } bodytype = { {"small", {0, 2}, 0, 32, 0, 1, 2}, {"wiry", {0, 2}, -4, 8, 1, 2, 0}, {"strong", {3, -1}, -6, 40, 2, 0, 1} } michtims = {} bush = {} rabids = {} party = {} colorways = {1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14} archetypes = { {"Assassin", 2, 1, 4, 2, 1, 1, 4}, {"Avenger", 10, 2, 4, 1, 1, 4, 2}, {"Caretaker", 6, 1, 1, 2, 4, 1, 4}, {"Creative", 4, 10, 1, 4, 2, 4, 1}, {"Gloomy", 1, 10, 1, 1, 2, 4, 4}, {"Goodfellow", 4, 6, 2, 4, 4, 1, 1}, {"Peacemaker",10, 6, 1, 1, 4, 4, 2}, {"Protector", 6, 2, 4, 1, 4, 2, 1}, {"Scout", 1, 4, 2, 4, 1, 1, 4}, {"Warrior", 2, 4, 4, 4, 1, 2, 1} } callings = { {"Adventurer", 64, "Lucky Actions"}, {"Artist", 66, "Illusions"}, {"Bard", 68, "Inspire Friends"}, {"Cook", 70, "Food Buffs"}, {"Courtier", 72, "Debuff Foes"}, {"Cybertooth", 74, "Free Actions"}, {"Daredevil", 96, "Revenge Actions"}, {"Frostpaw", 98, "Freeze Actions"}, {"Machinist", 100, "Drone Support"}, {"Sorcerer", 102, "Ranged Actions"}, {"Tactician", 104, "Area Actions"}, {"Witch", 106, "Hex Zones"}, {"", 366-256, ""} } robots = {} emotions = { {"Anger", 2, 2, 2, 132, "Claw", 3, 1}, {"Joy", 4, 4, 4, 134, "Find", 12, 3}, {"Love", 6, 6, 6, 136, "Mend", 5, 7}, {"Grief", 10, 10, 10, 138, "Weep", 11, 9}, {"Fear", 1, 1, 1, 140, "Hide", 2, 0}, {"-empty-", 15, 15, 15, 130, "", 0} } mood_effects = { {1, 3, 4}, {2, 5, 4}, {3, 1, 5}, {4, 1, 2}, {5, 2, 3} } attackrange = 20 focus = 1 d_left = 1 direction = {false, true} anim = 0 function BOOT() sparks = 0 effects = {} gems = {} bush = {} party = {} bocicne = 5 recruited_this_camp = false state = "fight" menu_focus = 1 gen_michtim_party(4) gen_rabids(2) fight_round = 0 setup_round() end function get_hits(pool) hits = 0 for i=1, pool do check = flr(6)+1 if check >= 5 then hits = hits + 1 end end return hits end function generate_robots(number) for i=1, number do x = flr(rnd(25))+10+player_x y = flr(rnd(50))+10+player_y add(robots, {x, y, 10, 0, 0.5, "normal", 6, 0, 2}) end end function get_action_value(michtim, action_idx) local val = michtim[action_idx + 4] if michtim.daredevil_buff then val = val + michtim.daredevil_buff end if action_idx == 1 then val = val + bodytype[michtim[3]][5] elseif action_idx == 2 or action_idx == 5 then val = val + bodytype[michtim[3]][6] elseif action_idx == 3 or action_idx == 4 then val = val + bodytype[michtim[3]][7] end if michtim.mood then local fx = mood_effects[michtim.mood] if action_idx == fx[1] then val = val + 1 end if action_idx == fx[2] then val = val - 1 end if action_idx == fx[3] then val = val - 1 end end return val end function check_crit(actor, val) local is_adv = false for c in all(actor.michtim[4]) do if c == 1 then is_adv = true end end if is_adv and rnd(100) < 50 then actor.michtim.crit_timer = 15 return val + math.max(1, flr(val * 1)) end return val end function decide_enemy_action(actor, allies, enemies) local m = actor.michtim local v_claw = get_action_value(m, 1) local v_find = get_action_value(m, 2) local v_mend = get_action_value(m, 3) local v_weep = get_action_value(m, 4) local v_hide = get_action_value(m, 5) local has_hidden = false local max_hidden = 0 local all_hidden = true for e in all(enemies) do if e.hidden_val and e.hidden_val > 0 then has_hidden = true if e.hidden_val > max_hidden then max_hidden = e.hidden_val end else all_hidden = false end end local max_missing = 0 for a in all(allies) do local missing = a[13] - a[12] if missing > max_missing then max_missing = missing end end if all_hidden then if not m.gave_up_find then if v_find >= max_hidden then return 2 end m.gave_up_find = true end if max_missing >= 3 and v_mend >= 2 then return 3 end if (m[13] - m[12]) >= 4 and v_hide > v_weep then return 5 end return 4 end if has_hidden and not m.gave_up_find then if v_find >= max_hidden then if rnd(10) < 6 then return 2 end else m.gave_up_find = true if rnd(10) < 5 then return 4 end end end if max_missing >= 4 and v_mend >= 3 then if rnd(10) < 7 then return 3 end end local front_m = nil for i = #allies, 1, -1 do if not allies[i].hidden_val or allies[i].hidden_val == 0 then front_m = allies[i] break end end if front_m == m and v_weep >= 3 then if rnd(10) < 5 then return 4 end end if v_claw >= 3 then if rnd(10) < 8 then return 1 end end if (m[13] - m[12]) >= 5 and v_hide >= 2 then return 5 end local best_val = -1 local best_act = 1 local vals = {v_claw, v_find, v_mend, v_weep, v_hide} for i=1,5 do if vals[i] > best_val then if i ~= 2 or not m.gave_up_find then best_val = vals[i] best_act = i end end end return best_act end function apply_mood(actor, action_idx, allies, enemies) local m = actor.michtim local is_bard, is_courtier = false, false for c in all(m[4]) do if c == 3 then is_bard = true end if c == 5 then is_courtier = true end end local by_enemy = not actor.is_party if is_bard then for a in all(allies) do a.mood = action_idx a.mood_by_enemy = by_enemy end end if is_courtier then local courtier_map = {5, 1, 2, 3, 4} for e in all(enemies) do e.mood = courtier_map[action_idx] e.mood_by_enemy = by_enemy end end end function apply_freeze(actor, enemies) local m = actor.michtim local is_frost, is_sorc, is_tact, is_witch = false, false, false, false for c in all(m[4]) do if c == 8 then is_frost = true end if c == 10 then is_sorc = true end if c == 11 then is_tact = true end if c == 12 then is_witch = true end end if not is_frost then return end if rnd(100) >= 50 then return end local valid_enemies = {} for e in all(enemies) do if not e.hidden_val or e.hidden_val == 0 then add(valid_enemies, e) end end if #valid_enemies == 0 then return end local t1, t2 = #valid_enemies, 0 if is_sorc and is_tact then t1 = 1; t2 = 2 elseif is_sorc then t1 = 1 elseif is_tact then t1 = #valid_enemies; t2 = #valid_enemies - 1 end local targets = {} if valid_enemies[t1] then add(targets, valid_enemies[t1]) end if t2 > 0 and valid_enemies[t2] then add(targets, valid_enemies[t2]) end local dur = is_witch and 2 or 1 local by_enemy = not actor.is_party for tgt in all(targets) do tgt.freeze_timer = dur tgt.freeze_by_enemy = by_enemy end end function _update() if shake_timer > 0 then shake_timer = shake_timer - 1 camera(flr(rnd(5)) - 2, flr(rnd(5)) - 2) else camera(0, 0) end local function update_anims(arr) for m in all(arr) do if m.dmg_anim and m.dmg_anim > 0 then m.dmg_anim = m.dmg_anim - 0.2 if m.dmg_anim <= 0 then m.dmg_anim = 0 end end if m.hit_timer and m.hit_timer > 0 then m.hit_timer = m.hit_timer - 1 end if m.heal_timer and m.heal_timer > 0 then m.heal_timer = m.heal_timer - 1 end if m.crit_timer and m.crit_timer > 0 then m.crit_timer = m.crit_timer - 1 end end end update_anims(party) update_anims(rabids) check_dead() step = step + 1 if step > step_max then step = 0 slice = slice + 1 anim = anim + 1 if slice > slice_max then slice = 0 end if anim > 10 then anim = 0 end end if state == "recruit" then focusmax = #bush if btnp(B_RT) then focus = focus + 1 if focus > focusmax then focus = focusmax end elseif btnp(B_LF) then focus = focus - 1 if focus < 1 then focus = 1 end elseif btnp(B_X) and #bush > 0 then add(party, bush[focus]) bush = {} focus = 1 menu_focus = 1 state = "camp" end elseif state == "fight" then local current_actor = initiative_queue[active_turn] if current_actor then if current_actor.michtim[12] <= 0 then next_turn() else if current_actor.is_party then local m = current_actor.michtim if m.freeze_timer and m.freeze_timer > 0 then if btnp(B_X) then m.freeze_timer = m.freeze_timer - 1 if state == "fight" then next_turn() end end else m.selected_card = m.selected_card or 1 if btnp(B_UP) then if m.selected_card > 1 then m.selected_card = m.selected_card - 1 end elseif btnp(B_DN) then if m.selected_card < 5 then m.selected_card = m.selected_card + 1 end elseif btnp(B_X) then local sel = m.selected_card if sel == 1 then execute_claw(current_actor, rabids) m.hidden_val = 0 elseif sel == 2 then execute_find(current_actor, rabids) elseif sel == 3 then execute_mend(current_actor, party) m.hidden_val = 0 elseif sel == 4 then execute_weep(current_actor, party) m.hidden_val = 0 elseif sel == 5 then execute_hide(current_actor, party) end if m.mood == sel then m.mood = nil m.mood_by_enemy = nil end apply_mood(current_actor, sel, party, rabids) apply_freeze(current_actor, rabids) m.daredevil_buff = 0 if state == "fight" then next_turn() end end end else local m = current_actor.michtim if m.freeze_timer and m.freeze_timer > 0 then m.freeze_timer = m.freeze_timer - 1 if state == "fight" then next_turn() end else local chosen_action = decide_enemy_action(current_actor, rabids, party) if chosen_action == 1 then execute_claw(current_actor, party) m.hidden_val = 0 elseif chosen_action == 2 then execute_find(current_actor, party) elseif chosen_action == 3 then execute_mend(current_actor, rabids) m.hidden_val = 0 elseif chosen_action == 4 then execute_weep(current_actor, rabids) m.hidden_val = 0 elseif chosen_action == 5 then execute_hide(current_actor, rabids) end if m.mood == chosen_action then m.mood = nil m.mood_by_enemy = nil end apply_mood(current_actor, chosen_action, rabids, party) apply_freeze(current_actor, party) m.daredevil_buff = 0 if state == "fight" then next_turn() end end end end end elseif state == "fight_won" then if btnp(B_X) then gen_rabids(2+combat_round) fight_round = 0 combat_round = combat_round + 1 setup_round() state = "fight" end elseif state == "fight_lost" then if btnp(B_X) then party = {} gen_michtim_party(4) gen_rabids(2) fight_round = 0 combat_round = 1 setup_round() state = "fight" end elseif state == "camp" then local options = {} if not recruited_this_camp and bocicne > 0 then add(options, "find friends (3b)") end add(options, "embark") mfocusmax = #options if btnp(B_DN) then menu_focus = menu_focus + 1 if menu_focus > mfocusmax then menu_focus = mfocusmax end elseif btnp(B_UP) then menu_focus = menu_focus - 1 if menu_focus < 1 then menu_focus = 1 end end if btnp(B_RT) then focus = focus + 1 if focus > #party then focus = #party end elseif btnp(B_LF) then focus = focus - 1 if focus < 1 then focus = 1 end end if btnp(B_X) then if options[menu_focus] == "embark" then elseif options[menu_focus] == "find friends (3b)" and bocicne>3 then bocicne = bocicne - 3 recruited_this_camp = true gen_michtim_bush(3) focus = 1 state = "recruit" end end end end function handle_effects() for e in all(effects) do e.t = e.t - 1 if e.t <= 0 then del(effects, e) end end end first_names = {"Pip", "Luna", "Milo", "Tara", "Baron", "Marty", "Cleo", "Finn", "Ruby", "Jasper", "Hazel", "Toby", "Stella", "Felix", "Nova", "Lilly", "Zev", "Tym", "Pes"} sur_pre = {"Moon", "Wind", "Star", "Sun", "Cloud", "Frost", "Leaf", "Moss", "Storm", "Bramble", "Feuer", "Eisen", "Wood", "Gold", "Silber", "Honig", "Funken"} sur_suf = {"whisper", "song", "walker", "paw", "tail", "heart", "weaver", "chaser", "born", "strider", "fuchs", "pfote", "flug"} function gen_name() local f = first_names[flr(rnd(#first_names)) + 1] local p = sur_pre[flr(rnd(#sur_pre)) + 1] local s = sur_suf[flr(rnd(#sur_suf)) + 1] return f.." "..p..s end function gen_personality() local stats = {1, 1, 1, 1, 1} local points = 7 while points > 0 do local i = flr(rnd(5)) + 1 if stats[i] < 4 then stats[i] = stats[i] + 1 points = points - 1 end end return stats[1], stats[2], stats[3], stats[4], stats[5] end function gen_michtim() local m_name = gen_name() local arch = flr(rnd(10)) + 1 local a = archetypes[arch][4] local j = archetypes[arch][5] local l = archetypes[arch][6] local g = archetypes[arch][7] local f = archetypes[arch][8] local col = archetypes[arch][2] local col2 = archetypes[arch][3] local bt = flr(rnd(3)) + 1 local cal = {flr(rnd(12)) + 1} add(michtims, {m_name, col, bt, cal, a, j, l, g, f, arch, col2}) end function gen_michtim_party(n) local avail_arch = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} local avail_cal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} if n > 10 then n = 10 end for i = 1, n do local m_name = gen_name() local arch_idx = flr(rnd(#avail_arch)) + 1 local arch = avail_arch[arch_idx] deli(avail_arch, arch_idx) local cal_idx = flr(rnd(#avail_cal)) + 1 local cal = avail_cal[cal_idx] deli(avail_cal, cal_idx) local a = archetypes[arch][4] local j = archetypes[arch][5] local l = archetypes[arch][6] local g = archetypes[arch][7] local f = archetypes[arch][8] local col = archetypes[arch][2] local col2 = archetypes[arch][3] local bt = flr(rnd(3)) + 1 local hp = 10 if cal == 7 then hp = hp + 5 end add(party, {m_name, col, bt, {cal}, a, j, l, g, f, arch, col2, hp, hp}) end end function gen_rabids(n) local avail_arch = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} local avail_cal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} if n > 10 then n = 10 end rabids={} for i = 1, n do local m_name = gen_name() local arch_idx = flr(rnd(#avail_arch)) + 1 local arch = avail_arch[arch_idx] deli(avail_arch, arch_idx) local cal if flr(rnd(10)) > 4 then local cal_idx = flr(rnd(#avail_cal)) + 1 cal = avail_cal[cal_idx] deli(avail_cal, cal_idx) else cal = 13 end local a = archetypes[arch][4] local j = archetypes[arch][5] local l = archetypes[arch][6] local g = archetypes[arch][7] local f = archetypes[arch][8] local col = archetypes[arch][2] local col2 = archetypes[arch][3] local bt = flr(rnd(3)) + 1 local hp = 10 if cal == 7 then hp = hp + 5 end add(rabids, {m_name, col, bt, {cal}, a, j, l, g, f, arch, col2, hp, hp}) end end function gen_michtim_bush(n) local avail_arch = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} local avail_cal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} if n > 10 then n = 10 end bush = {} for i = 1, n do local m_name = gen_name() local arch_idx = flr(rnd(#avail_arch)) + 1 local arch = avail_arch[arch_idx] deli(avail_arch, arch_idx) local cal_idx = flr(rnd(#avail_cal)) + 1 local cal = avail_cal[cal_idx] deli(avail_cal, cal_idx) local a = archetypes[arch][4] local j = archetypes[arch][5] local l = archetypes[arch][6] local g = archetypes[arch][7] local f = archetypes[arch][8] local col = archetypes[arch][2] local col2 = archetypes[arch][3] local bt = flr(rnd(3)) + 1 local hp = 10 if cal == 7 then hp = hp + 5 end add(bush, {m_name, col, bt, {cal}, a, j, l, g, f, arch, col2, hp, hp}) end end initiative_queue = {} active_turn = 1 function roll_ini(joy_stat) local sum = 0 for i=1, joy_stat do sum = sum + flr(rnd(6)) + 1 end return sum end function setup_round() initiative_queue = {} fight_round = (fight_round or 0) + 1 harm = 0 if fight_round > 11 then harm = fight_round - 10 end for i, m in ipairs(party) do if m[12] > 0 then m[12] = m[12] - harm local ini_score = roll_ini(m[6]) add(initiative_queue, {michtim = m, score = ini_score, is_party = true, ref_id = i}) for c in all(m[4]) do if c == 6 then add(initiative_queue, {michtim = m, score = ini_score, is_party = true, ref_id = i}) break end end end end for i, m in ipairs(rabids) do if m[12] > 0 then m[12] = m[12] - harm local ini_score = roll_ini(m[6]) add(initiative_queue, {michtim = m, score = ini_score, is_party = false, ref_id = i}) for c in all(m[4]) do if c == 6 then add(initiative_queue, {michtim = m, score = ini_score, is_party = false, ref_id = i}) break end end end end table.sort(initiative_queue, function(a, b) if fight_round == 1 then if a.is_party and not b.is_party then return true end if not a.is_party and b.is_party then return false end end if a.score == b.score then if a.is_party and not b.is_party then return true end if not a.is_party and b.is_party then return false end return false end return a.score > b.score end) active_turn = 1 end function next_turn() active_turn = active_turn + 1 if active_turn > #initiative_queue then setup_round() end local upcoming = initiative_queue[active_turn] if upcoming then local m = upcoming.michtim if m.weep_duration and m.weep_duration > 0 then m.weep_duration = m.weep_duration - 1 if m.weep_duration <= 0 then m.weep_def = 0 end end end end function execute_claw(actor, enemies) local m = actor.michtim local atk = check_crit(actor, get_action_value(m, 1)) local is_sorc, is_tact = false, false for c in all(m[4]) do if c == 10 then is_sorc = true end if c == 11 then is_tact = true end end local valid_enemies = {} for e in all(enemies) do if not e.hidden_val or e.hidden_val == 0 then add(valid_enemies, e) end end if #valid_enemies == 0 then return end local t1, t2 = #valid_enemies, 0 if is_sorc and is_tact then t1 = 1; t2 = 2 elseif is_sorc then t1 = 1 elseif is_tact then t1 = #valid_enemies; t2 = #valid_enemies - 1 end local targets = {} if valid_enemies[t1] then add(targets, valid_enemies[t1]) end if t2 > 0 and valid_enemies[t2] then add(targets, valid_enemies[t2]) end for tgt in all(targets) do local def = tgt.weep_def or 0 def = def + bodytype[tgt[3]][7] local dmg = atk - def if dmg > 0 then local actual_dmg = dmg if actual_dmg > tgt[12] then actual_dmg = tgt[12] end tgt.dmg_anim = (tgt.dmg_anim or 0) + actual_dmg tgt[12] = tgt[12] - dmg tgt.hit_timer = 15 sfx(0) shake_timer = 10 end for c in all(tgt[4]) do if c == 7 then tgt.daredevil_buff = (tgt.daredevil_buff or 0) + 1 end end end end function execute_mend(actor, allies) local m = actor.michtim local atk = check_crit(actor, get_action_value(m, 3)) local is_sorc, is_tact = false, false for c in all(m[4]) do if c == 10 then is_sorc = true end if c == 11 then is_tact = true end end local valid_allies = {} for a in all(allies) do if not a.hidden_val or a.hidden_val == 0 then add(valid_allies, a) end end if #valid_allies == 0 then return end local most_hurt = -1 local t1 = 1 for j, tgt in ipairs(valid_allies) do local hurt = tgt[13] - tgt[12] if hurt > most_hurt then most_hurt = hurt t1 = j end end local targets = {} if is_sorc and is_tact then for j, tgt in ipairs(valid_allies) do add(targets, tgt) end elseif is_tact then if valid_allies[t1-1] then add(targets, valid_allies[t1-1]) end add(targets, valid_allies[t1]) if valid_allies[t1+1] then add(targets, valid_allies[t1+1]) end else add(targets, valid_allies[t1]) end for tgt in all(targets) do local heal = atk + (tgt.weep_def or 0) tgt[12] = tgt[12] + heal if tgt[12] > tgt[13] then tgt[12] = tgt[13] end tgt.heal_timer = 15 if tgt.dmg_anim and tgt.dmg_anim > 0 then tgt.dmg_anim = 0 end end sfx(1, -1, 20) end function execute_weep(actor, allies) local m = actor.michtim local val = check_crit(actor, get_action_value(m, 4)) local is_witch, is_tact = false, false for c in all(m[4]) do if c == 12 then is_witch = true end if c == 11 then is_tact = true end end local targets = {m} if is_tact then local idx = 1 for j, a in ipairs(allies) do if a == m then idx = j end end if allies[idx-1] then add(targets, allies[idx-1]) end if allies[idx+1] then add(targets, allies[idx+1]) end end for tgt in all(targets) do tgt.weep_def = val tgt.weep_duration = is_witch and 3 or 1 end end function execute_find(actor, targets) local m = actor.michtim local val = check_crit(actor, get_action_value(m, 2)) for tgt in all(targets) do if tgt.hidden_val and tgt.hidden_val > 0 then if val >= tgt.hidden_val then tgt.hidden_val = 0 end end end end function execute_hide(actor, allies) local m = actor.michtim local val = check_crit(actor, get_action_value(m, 5)) local is_tact = false for c in all(m[4]) do if c == 11 then is_tact = true end end local targets = {m} if is_tact then local idx = 1 for j, a in ipairs(allies) do if a == m then idx = j end end if allies[idx-1] then add(targets, allies[idx-1]) end if allies[idx+1] then add(targets, allies[idx+1]) end end for tgt in all(targets) do tgt.hidden_val = val end end function check_dead() local function sweep(arr) for i = #arr, 1, -1 do if arr[i][12] <= 0 and (arr[i].dmg_anim or 0) <= 0 then deli(arr, i) end end end sweep(party) sweep(rabids) if state == "fight" then local all_rabids_hidden = true if #rabids > 0 then for r in all(rabids) do if not r.hidden_val or r.hidden_val == 0 then all_rabids_hidden = false end end else all_rabids_hidden = false end if #party == 0 then state = "fight_lost" elseif #rabids == 0 or all_rabids_hidden then state = "fight_won" for m in all(party) do m[12] = m[13] m.hidden_val = 0 m.weep_def = 0 m.mood = nil m.mood_by_enemy = nil m.freeze_timer = 0 m.freeze_by_enemy = nil end end end end function draw_menu_entry(idx, y, michtim) local text = emotions[idx][6] local color = emotions[idx][2] local value = 0 local sel_card = 1 if michtim then value = get_action_value(michtim, idx) sel_card = michtim.selected_card or 1 end local select_x = 5 if idx == sel_card then select_x = 0 rect(182+select_x, y+1, 60, 9, 15) end rect(180+select_x, y, 60, 9, color) rect(179+select_x, y+1, 62, 7, color) if idx ~= sel_card then rect(181+select_x, y+1, 60-select_x-2, 7, 15) rect(180+select_x, y+2, 62-select_x-3, 5, 15) else local glow = emotions[idx][7] for i = 0, 9 do line(180+i*3+5*anim, y+8, 188+i*3+5*anim, y, glow) line(181+i*3+5*anim, y+8, 189+i*3+5*anim, y, glow) line(182+i*3+5*anim, y+8, 190+i*3+5*anim, y, glow) end end local outline = emotions[idx][8] if idx == sel_card then print(text, 181+select_x, y+2, outline, true, 1, false) print(text, 182+select_x, y+1, outline, true, 1, false) print(text, 183+select_x, y+2, outline, true, 1, false) print(text, 182+select_x, y+3, outline, true, 1, false) end print(text, 182+select_x, y+2, 12, true, 1, false) if idx == sel_card then print(value, 230, y+1, outline, true, 1, true) print(value, 229, y+2, outline, true, 1, true) print(value, 231, y+2, outline, true, 1, true) print(value, 230, y+3, outline, true, 1, true) end print(value, 230, y+2, 12, true, 1, true) end function draw_menu(michtim) if michtim and michtim.freeze_timer and michtim.freeze_timer > 0 then local select_x = 0 local y = 60+3*12 rect(182+select_x, y+1, 60, 9, 15) rect(180+select_x, y, 60, 9, 11) rect(179+select_x, y+1, 62, 7, 11) print("frozen", 182+select_x, y+2, 12, true, 1, false) else for i = 1, 5 do draw_menu_entry(i, 60+i*12, michtim) end end end function draw_hp(px, py, curhp, maxhp) full = 162 empty = 164 for i = 1, maxhp do if i <= curhp then p8_spr(full, px+i*4, py) else p8_spr(empty, px+i*4, py) end end end function draw_card(emo, px, py, focus, michtim) local amp = 3 local time_val = t() local cardfill = 12 local sel_card = michtim and (michtim.selected_card or 1) or 1 local siny = py+sin(time_val-emotions[emo][7])*amp local cardcol = emotions[emo][2] if sel_card == emo then cardfill = 12 else cardfill = 14 siny = siny + 10 end rect(px, siny, 30, 40, cardcol) rect(px+1, siny-1, 28, 42, cardcol) rect(px+2, siny-2, 26, 44, cardcol) rect(px+3, siny-1, 24, 42, cardfill) rect(px+2, siny, 26, 40, cardfill) rect(px+1, siny+1, 28, 38, cardfill) pal(3, emotions[emo][2]) pal(2, emotions[emo][3]) pal(1, emotions[emo][4]) p8_spr(128, px+7, siny+4, 2, 2) p8_spr(emotions[emo][5], px+7, siny+4, 2, 2) print(emotions[emo][6], px+4, siny+24, emotions[emo][2]) end function draw_callings_info(michtim) if not michtim then return end local call_list = michtim[4] local base_x = 10 local base_y = 120 for i = #call_list, 1, -1 do local cal_idx = call_list[i] local text = callings[cal_idx][3] p8_print(text, base_x, base_y, 12) base_y = base_y - 8 end end function draw_michtim_list(arr, px, py, info, enemy) local i = 0 for m in all(arr) do if info == true and focus == i+1 then p8_rectfill(px+20*i, py+16, px+16+20*i, py+20, 5) p8_print(m[1], px, py+24, 7) p8_print(bodytype[m[3]][1].." "..archetypes[m[10]][1] , px, py+32, 6) p8_print(callings[m[4][1]][1], px, py+40, 6) p8_print("hp: ", px, py+48, 6) draw_hp(px+9, py+49, m[12], m[13]) draw_personality(m[5], m[6], m[7], m[8], m[9], 90, 60) end local is_active = false local is_targeted = false local friendly_target = false local mac = {} if state == "fight" and initiative_queue[active_turn] then local current_actor = initiative_queue[active_turn] local sel_card = current_actor.michtim.selected_card or 1 local is_frozen = current_actor.michtim.freeze_timer and current_actor.michtim.freeze_timer > 0 if current_actor.michtim == m then is_active = true draw_personality(m[5], m[6], m[7], m[8], m[9], 130, 80) end if not is_frozen then if not m.hidden_val or m.hidden_val == 0 then if current_actor.is_party == enemy and sel_card == 1 then local is_sorc, is_tact = false, false for c in all(current_actor.michtim[4]) do if c == 10 then is_sorc = true end if c == 11 then is_tact = true end end local valid_targets = {} for tgt in all(arr) do if not tgt.hidden_val or tgt.hidden_val == 0 then add(valid_targets, tgt) end end local t1, t2 = #valid_targets, 0 if is_sorc and is_tact then t1 = 1; t2 = 2 elseif is_sorc then t1 = 1 elseif is_tact then t1 = #valid_targets; t2 = #valid_targets - 1 end if valid_targets[t1] == m or (t2 > 0 and valid_targets[t2] == m) then is_targeted = true end elseif current_actor.is_party == not enemy and sel_card == 3 then local is_sorc, is_tact = false, false for c in all(current_actor.michtim[4]) do if c == 10 then is_sorc = true end if c == 11 then is_tact = true end end local valid_targets = {} for tgt in all(arr) do if not tgt.hidden_val or tgt.hidden_val == 0 then add(valid_targets, tgt) end end local most_hurt = -1 local t1 = 1 for j, tgt in ipairs(valid_targets) do local hurt = tgt[13] - tgt[12] if hurt > most_hurt then most_hurt = hurt t1 = j end end if is_sorc and is_tact then is_targeted = true elseif is_tact then if m == valid_targets[t1-1] or m == valid_targets[t1] or m == valid_targets[t1+1] then is_targeted = true end else if m == valid_targets[t1] then is_targeted = true end end end end if current_actor.is_party == not enemy and (sel_card == 4 or sel_card == 5) then local is_tact = false for c in all(current_actor.michtim[4]) do if c == 11 then is_tact = true end end local tact_idx = 0 for j, a in ipairs(arr) do if a == current_actor.michtim then tact_idx = j end end if tact_idx > 0 then local cur_i = i + 1 if is_tact then if cur_i >= tact_idx - 1 and cur_i <= tact_idx + 1 then is_targeted = true end else if cur_i == tact_idx then is_targeted = true end end end end end if is_targeted then friendly_target = (current_actor.is_party == not enemy) end end local draw_x = 0 if state == "fight" then if enemy == false then draw_x = 120 - ((#arr - i) * 20) else draw_x = 120 + 4 + ((#arr - 1 - i) * 20) end else draw_x = px + (i * 20) end draw_michtim(draw_x, py, m[2], m[3], m[4][1], m[11], enemy, is_active, is_targeted, m.hit_timer, m.heal_timer, m.weep_def, m.hidden_val, friendly_target, m.crit_timer, m.freeze_timer, m.freeze_by_enemy) local cur_hp = m[12] if cur_hp < 0 then cur_hp = 0 end if cur_hp < m[13] or (m.dmg_anim and m.dmg_anim > 0) then local bar_x = draw_x + flr((16 - m[13]) / 2) local bar_y = py + 22 p8_rectfill(bar_x, bar_y, bar_x + m[13] - 1, bar_y+1, 15) if cur_hp > 0 then p8_rectfill(bar_x, bar_y, bar_x + cur_hp - 1, bar_y+1, 12) end if m.dmg_anim and m.dmg_anim > 0 then local anim_w = flr(m.dmg_anim) if anim_w > 0 then p8_rectfill(bar_x + cur_hp, bar_y, bar_x + cur_hp + anim_w - 1, bar_y+1, 2) end end end if m.mood then local mood_col = emotions[m.mood][2] pal(2, mood_col) if m.mood_by_enemy then pal(11, 3) end p8_spr(399 - 256, draw_x + 4, py + 24) pal() end i = i + 1 end end function draw_emotion(emo, px, py, face) pal(3, emotions[emo][2]) pal(2, emotions[emo][3]) pal(1, emotions[emo][4]) p8_spr(128, px, py, 2, 2) if face == true then p8_spr(emotions[emo][5], px, py, 2, 2) end pal(3, 3) pal(2, 2) pal(1, 1) end function draw_emo_rating(emo, rating, px, py) rate1 = emo rate2 = 6 rate3 = 6 rate4 = 6 sx = 8 sy = 5 if rating == 2 then rate2 = emo elseif rating == 3 then rate2 = emo rate3 = emo elseif rating == 4 then rate2 = emo rate3 = emo rate4 = emo end draw_emotion(rate4, px+sx*3, py-sy*3, false) draw_emotion(rate3, px+sx*2, py-sy*2, false) draw_emotion(rate2, px+sx, py-sy, false) draw_emotion(rate1, px, py, true) end function draw_calling(px, py, cal, col2) if slice > 0 and slice < 3 then mod_y = 1 else mod_y = 0 end pal(2, col2) p8_spr(callings[cal][2], px, py+mod_y, 2, 2, direction[d_left]) pal(2, 2) end function draw_michtim(px, py, pcol, btype, cal, col2, rabid, is_active, is_targeted, hit_timer, heal_timer, weep_def, hidden_val, friendly_target, crit_timer, freeze_timer, freeze_by_enemy) local d_left = rabid and 2 or 1 local posx = px+bodytype[btype][2][d_left] local posy = py+bodytype[btype][3] local mod_y = (slice > 0 and slice < 3) and 1 or 0 local is_flashing = crit_timer and crit_timer > 0 if is_targeted or is_flashing then local outline_col = friendly_target and 11 or 3 if is_flashing then outline_col = 12 end for i=0, 15 do if i ~= TRANS_COL then pal(i, outline_col) end end local dx = {-1, 1, 0, 0} local dy = {0, 0, -1, 1} for o=1, 4 do p8_spr(slice*2+bodytype[btype][4], px+1+dx[o], py+4+dy[o], 2, 2, direction[d_left]) p8_spr(slice*2, posx+dx[o], posy+dy[o], 2, 2, direction[d_left]) p8_spr(callings[cal][2], posx+dx[o], posy+mod_y+dy[o], 2, 2, direction[d_left]) end pal() end if hit_timer and hit_timer > 0 then for i=0, 15 do if i ~= TRANS_COL then pal(i, 3) end end elseif heal_timer and heal_timer > 0 then for i=0, 15 do if i ~= TRANS_COL then pal(i, 11) end end else if rabid == true then pal(4, 7) pal(12, 5) else pal(4, 12) pal(12, 12) end pal(2, pcol) end p8_spr(slice*2+bodytype[btype][4], px+1, py+4, 2, 2, direction[d_left]) p8_spr(slice*2, posx, posy, 2, 2, direction[d_left]) if not ((hit_timer and hit_timer > 0) or (heal_timer and heal_timer > 0)) then pal(2, col2) end pal(12, 12) p8_spr(callings[cal][2], posx, posy+mod_y, 2, 2, direction[d_left]) local b_off = 0 if weep_def and weep_def > 0 then pal(2, 10) if rabid then pal(11, 3) else pal(11, 11) end p8_spr(415 - 256, posx - 4, posy - 4 - b_off) b_off = b_off + 8 end if hidden_val and hidden_val > 0 then pal(2, 1) if rabid then pal(11, 3) else pal(11, 11) end p8_spr(415 - 256, posx - 4, posy - 4 - b_off) b_off = b_off + 8 end if freeze_timer and freeze_timer > 0 then pal(2, 11) if freeze_by_enemy then pal(11, 3) else pal(11, 11) end p8_spr(414 - 256, posx - 4, posy - 4 - b_off) b_off = b_off + 8 end pal() if is_active then local bounce = sin(t()*2)*2 p8_spr(398 - 256, posx + 4, posy - 10 + bounce) end end function draw_robot(px, py, pcol, status, dying) pal(12, pcol) if status == "dying" then p8_spr(200+dying*2, px, py+12, 2, 2, left) p8_spr(167, px, py+dying*2, 2, 2, left) else if px > player_x then left = true else left = false end p8_spr(slice*2+192, px, py+12, 2, 2, left) p8_spr(slice*2+165, px, py, 2, 2, left) end pal(12, 12) end function draw_effects() for e in all(effects) do local offset = 10 - e.t local col = 7 if e.t < 5 then col = 8 end p8_line(e.x + 8 - offset, e.y - 8 + offset, e.x - 8 + offset, e.y + 8 - offset, col) end end function draw_personality(a,j,l,g,f, px, py) local time_val = t() local amp = 3 draw_emo_rating(5, f, px, py+40 + sin(time_val)*amp) draw_emo_rating(4, g, px, py+30 + sin(time_val - 0.02)*amp) draw_emo_rating(3, l, px, py+20 + sin(time_val - 0.04)*amp) draw_emo_rating(2, j, px, py+10 + sin(time_val - 0.06)*amp) draw_emo_rating(1, a, px, py + sin(time_val - 0.08)*amp) end function draw_all_robots() for r in all(robots) do draw_robot(r[1], r[2], r[7], r[6], r[4]) end end function draw_gems() for g in all(gems) do p8_spr(173, g.x, g.y) end end function _draw() cls(0) rectb(0, 0, 240, 136, 15) if state == "recruit" then p8_print("choose michtim (x)", 10, 5, 7) draw_michtim_list(bush, 10, 20) elseif state == "fight" then print("L" .. combat_round, 212, 10, 12, true, 1, false) print(fight_round .. "/10", 210, 18, 12, true, 1, true) draw_michtim_list(party, 10, 20, false, false) draw_michtim_list(rabids, 100, 20, false, true) local current_actor = nil if initiative_queue[active_turn] then current_actor = initiative_queue[active_turn].michtim end draw_menu(current_actor) draw_callings_info(current_actor) elseif state == "fight_won" then print("Round " .. combat_round .. " won!", 21, 31, 12, true, 3, false) print("Round " .. combat_round .. " won!", 20, 30, 11, true, 3, false) print("Survivors healed. Press button for next fight.", 35, 70, 12, true, 1, true) draw_michtim_list(party, 80, 100, false, false) elseif state == "fight_lost" then print("Game Over", 41, 31, 12, true, 3, false) print("Game Over", 40, 30, 2, true, 3, false) print("Press button to restart with a new team", 35, 70, 12, true, 1, true) elseif state == "camp" then p8_print("camp - bocicne: "..bocicne, 10, 5, 7) draw_michtim_list(party, 10, 20) local options = {} if not recruited_this_camp and bocicne > 3 then add(options, "find friends (3b)") end add(options, "embark") for i = 1, #options do local col = 6 if i == menu_focus then col = 7 end p8_print(options[i], 1, 80 + i*10, col) if i == menu_focus then p8_print(">", 5, 80 + i*10, 7) end end end end function TIC() _update() _draw() end BOOT()