diff --git a/Camera.c b/Camera.c index 38adf54..0c7c0c0 100644 --- a/Camera.c +++ b/Camera.c @@ -105,31 +105,17 @@ void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera) } if ( (PadButtonPressed(PAD_LEFT) == false) - && - (PadButtonPressed(PAD_RIGHT) == false) ) + && + (PadButtonPressed(PAD_RIGHT) == false) ) { - if (ptrCamera->X_Speed > 0) - { - ptrCamera->X_Speed--; - } - else if (ptrCamera->X_Speed < 0) - { - ptrCamera->X_Speed++; - } + ptrCamera->X_Speed = 0; } if ( (PadButtonPressed(PAD_UP) == false) - && - (PadButtonPressed(PAD_DOWN) == false) ) + && + (PadButtonPressed(PAD_DOWN) == false) ) { - if (ptrCamera->Y_Speed > 0) - { - ptrCamera->Y_Speed--; - } - else if (ptrCamera->Y_Speed < 0) - { - ptrCamera->Y_Speed++; - } + ptrCamera->Y_Speed = 0; } } diff --git a/Exe/POCKET.ELF b/Exe/POCKET.ELF index 1f65c06..abc8ec0 100755 Binary files a/Exe/POCKET.ELF and b/Exe/POCKET.ELF differ diff --git a/Exe/POCKET.HEX b/Exe/POCKET.HEX index e18b255..4529ad2 100644 --- a/Exe/POCKET.HEX +++ b/Exe/POCKET.HEX @@ -1,1287 +1,1316 @@ -:100000000C948D030C94B5030C94B5030C94B503B8 -:100010000C94B5030C94B5030C94B5030C94B50380 -:100020000C94B5030C94B5030C94B5030C94D72031 -:100030000C94B5030C94B5030C94B5030C94B50360 -:100040000C94BC210C94B5030C94B5030C94B5032B -:100050000C94B5030C94B5030C94B5030C94B50340 -:100060000C94B5030C94B503506F636B6574204515 +:100000000C9498030C94C0030C94C0030C94C0038C +:100010000C94C0030C94C0030C94C0030C94C00354 +:100020000C94C0030C94C0030C94C0030C94BC212A +:100030000C94C0030C94C0030C94C0030C94C00334 +:100040000C94A1220C94C0030C94C0030C94C00324 +:100050000C94C0030C94C0030C94C0030C94C00314 +:100060000C94C0030C94C003506F636B65742045FF :100070006D70697265730080007B00517569740052 :10008000526573756D65000808FC848884A2D10AE6 :100090000443616E6E6F74206275696C64206865DC -:1000A000726500506F70756C2E206C696D697400FC -:1000B000496E737566662E207265736F757263651F -:1000C000730018181F80007E0000F80000F0000088 -:1000D000F80000F80004F80004F80004FAE004FA5C -:1000E0008004FA8004FA8004FA8004FA8004FAE0BA -:1000F00004F8600CF80010FC0000FF0000FFF18025 -:10010000FFF180FFF1807FF1801F8180181803FFCD -:10011000C00C003037FFEC780016AFFFF5A80015D3 -:10012000A8FF15A88115A8FFD5AB8155AAA5D5AB09 -:100130008155AAA555AB81D5A89915A8FF15A6008C -:100140006591C3898C423183C3C140420230420C65 -:100150000C423003C3C018180000000000FEFE006F -:10016000FEFE003E3E00FEFE00FEFE001E1E001EC5 -:100170001E001E1E001E1E001E1E001E1E001E1E35 -:10018000001E1E001E1E001E1E001E1E001E1E0043 -:10019000FEFE00FEFE003E3E00FEFE00FEFE00FEF5 -:1001A0001818E700E7BD00BDE7FFE7BD00BD81FF10 -:1001B00081E700E7A500A5BDFFBDA500A5A500A599 -:1001C000A500A5A500A5A500A5A500A5A500A5A518 -:1001D00000A5E700E7BD00BDE7FFE7BD00BD81FF6B -:1001E00081811881812481FFFFFF0808E0BCC2994A -:1001F000BDFF5D4708083C4299BDFE5840400808D5 -:10020000003C4299A5661800080860BCC299A56721 -:100210001D02380227021F021A0251756974004F2D -:100220007074696F6E73004D756C7469706C617970 -:1002300065722067616D650053696E676C6520703B -:100240006C617965722067616D65000303070507BE -:100250000504050504050306030207020201020264 -:1002600003020E090E0E0D0E0E0F0E0705070503F5 -:1002700007050F050705070607010205020007022B -:100280000207000207020002070200070603060732 -:10029000070202050502010202040200050202052E -:1002A000000607050507050203020206020000001A -:1002B000000B0003000307050704070105020507FB -:1002C00007040003000007050507000500050207F5 -:1002D00002000C00020202000400040201070507EC -:1002E00005070401070405070203020704070107C5 -:1002F0000606010107070707030307000500000DB5 -:10030000000205000505050005020107030F0903AA -:100310000603060707020205050707020707050788 -:100320000301070506070207050705040403070282 -:10033000050704040703070701060705070703036A -:100340000705030703060407010107010704070364 -:10035000040307060705020501060101070400075B -:100360000501020405070002010208080800030055 -:10037000060306070702020505070502070705072A -:100380000301070506070207050705040403070222 -:10039000050704040703070701060705070703030A -:1003A0000705030703060407010107010704070304 -:1003B00004030706070502050106010107040207F9 -:1003C0000500070005070206020307050703053FAE -:1003D000213F1208120A100A0E1C0E0C1E0C141AD1 -:1003E00014161F161E131E1E1B1E1E1F1E3F213F0E -:1003F0003A2F3A173D173F213F181F02040A041FE6 -:100400000E04040E1F0A1F0A0E0E1F04110E2E25C5 -:100410002E2F2A2E262929021F02081F08150E0436 -:10042000040E150E15151B151B040604040C040000 -:1004300000000017000300031F0A1F16371A1904D3 -:10044000130A153A000300000E11110E000A040AE7 -:10045000040E040030000404040010001804031FFC -:10046000111F121F101D151711151F07041F171537 -:100470001D1F151D01011F1F151F17151F000A0045 -:10048000003200040A110A0A0A110A040115020EB8 -:1004900011171E051E1F150A0E110A1F110E1F151A -:1004A000111F05010E111D1F041F111F1108100F30 -:1004B0001F041B1F10101F061F1E040F0E110E1FFE -:1004C00009060E112E1F051A121509011F011F1012 -:1004D0001F0F180F1F0C1F1B041B031C03191513E0 -:1004E000001F11030418111F000201022020200028 -:1004F00001020C121E1F120C0C12120C121F0C1AED -:1005000014041E05242A1E1F021C141D1020201D69 -:100510001F0814111F101E041E1E021C0C120C3E7C -:100520000A040C123E1E040214160A020F120E10C8 -:100530001E0E100E1E081E120C1226281E322A260F -:10054000041E21001F00211E040102013F213F0A59 -:100550004E6F2053442063617264206F720A6E6F85 -:10056000204C4F414445522E4845580A0A153A45F9 -:10057000786974001D20466C617368696E670A2093 -:10058000206C6F616465722E2E2E0A0A444F4E272E -:1005900054205455524E204F464621000A0A153A1F -:1005A00049676E6F7265006D560A0A504C4541539B -:1005B00045205455524E204F464620004C4F572060 -:1005C00042415454455259212000175344001613F8 -:1005D0007800161314001510200015201000540A7E -:1005E00003E181867F3E186D830F0F0E01838660C5 -:1005F00033186DC3198F1803C38E6033186DE33041 -:10060000CF1803C39E603630CDE360CF3006C79E5F -:100610007E3E30CDB360CF300CC6F6603330D9B6F5 -:1006200060CF33CFCCF66061B0DB1E60CF30D86CCA -:10063000E6C061B0DB1E618F19986CC6C063B19BC8 -:100640000E330F0FB078C6FF7E1F1B061E0F05006E -:10065000893008023802497868140000F6E8DBCFD8 -:10066000C3B8AEA49B928A827B746E68625C575258 -:100670004E4945413E3A3734312E2C292725232136 -:100680001F1D1C1A1917161514131211100F0E0D19 -:100690000C0B0A0908070645006801000005006800 -:1006A00001380100000500380168010000B506B1FD -:1006B000060101FF030101F703000000070002012A -:1006C0000000030406000000000000000001020416 -:1006D00008102040800102040810200102040810C4 -:1006E00020040404040404040402020202020203BB -:1006F0000303030303000000002300260029000079 -:10070000000000250028002B000000000024002726 -:10071000002A0000C80318041C0411241FBECFEFD8 -:10072000D8E0DEBFCDBF11E0A0E0B1E0EEEBFFE42A -:1007300002C005900D92AA38B107D9F727E0AAE8C0 -:10074000B1E001C01D92A93DB207E1F713E0CCE88A -:10075000D3E004C02197FE010E942826CA38D107A1 -:10076000C9F70E94B7030C94D2270C9400000E9492 -:100770005D220E949F048AE891E00E94F41D68E6D1 -:1007800070E08AE891E00E94771D0E942611F7CF61 -:100790001092DB011092DA018FE791E09093D9017A -:1007A0008093D80108958AE192E00E94250881E0B3 -:1007B00080931A0287E890E09093190280931802C0 -:1007C00082E080931702109215021092160286E2C0 -:1007D0008093110284E1809312020E94530586E007 -:1007E00090E00E946706882349F042E067E770E0E6 -:1007F0008AE891E00E94B21A811108958AE192E09C -:100800000E94E70C0E949B0681110E9420040E9416 -:100810005B058823E1F30E9465058AE192E00E946E -:10082000230C81E192E00E9475050E943C04D7CF21 -:100830008AE192E00C94AB068AE192E00C94AC065B -:1008400080914305811117C081E080934305309169 -:10085000440520914505809146058091470580918A -:1008600048058091490580914A0580914B05832F69 -:10087000922F0C94B8270895209144053091450596 -:100880004091460550914705609148057091490592 -:1008900080914A0590914B05A1E00E941C2620936F -:1008A00044053093450540934605509347056093B2 -:1008B00048057093490580934A0590934B05089528 -:1008C0008F929F92AF92BF92CF92DF92EF92FF9260 -:1008D0004B015C0169017A010E94B327BC01990FA9 -:1008E000880B990BC818D908EA08FB08A7019601DC -:1008F0002F5F3F4F4F4F5F4F0E94D025680D791DEE -:100900008A1D9B1DFF90EF90DF90CF90BF90AF901E -:100910009F908F900895E1EEF4E013861286118681 -:10092000108610821182128213821482158216821E -:1009300017823C9685E0E134F80779F70895109224 -:1009400044051092450510924605109247051092F5 -:1009500048051092490510924A0510924B051092D5 -:1009600042050E948B04109241050895FC01DB01B1 -:10097000608171814D915C91119714962C9114971F -:10098000240F352F311D62177307E8F48481860F19 -:10099000972F911D48175907B0F462817381129601 -:1009A0004D915C91139715968C91840F952F911D05 -:1009B0006817790740F42581260F372F311D81E014 -:1009C0004217530708F080E081700895AF92BF92FC -:1009D000CF92DF92EF92FF920F931F93CF93DF930B -:1009E0007C01EA016115710561F480E0DF91CF912E -:1009F0001F910F91FF90EF90DF90CF90BF90AF903D -:100A00000895E0E057FF04C08DE2F7018083E1E044 -:100A100085E0C82ED12C20E137E240E08B01015067 -:100A200011099AE0A92EB12CCE01B9010E94A82586 -:100A3000629FC001639F900D1124C81BD90B6111E7 -:100A400002C0442361F081E08E0FEE0DFF2DF11DF9 -:100A5000605D60838017110640F6E82F41E0C90110 -:100A6000B5010E94A8259B01F1E0CF1AD108E1F65B -:100A7000EE0DFF2DF11D108281E0B8CF50E0480F40 -:100A8000511D87FD5A9557FD0CC0843554F430E054 -:100A9000260F311D67FD3A9537FD03C081E06033B5 -:100AA0000CF080E008951092DE016DEC73E088EDAB -:100AB00091E00C941D178AE891E00E94FA1991E0E8 -:100AC000811101C090E0892F089560E088ED91E0E8 -:100AD0000E941F1288ED91E00C940E12FC012381FC -:100AE0004281618180810C943E05EF920F931F93A8 -:100AF000CF93DF93EC01009701F10E946E058823EC -:100B0000E1F01091F80140E06E8188ED91E00E94E3 -:100B100070122F813885ED800C814981688188EDC4 -:100B200091E00E943616612F88ED91E0DF91CF9120 -:100B30001F910F91EF900C946C12DF91CF911F9148 -:100B40000F91EF900895FC01849108950196FC01A6 -:100B5000849108954CE3BC018AE891E00C94D2188A -:100B60000F931F93CF93DF938C01C091F601D09127 -:100B7000F70122974093E1012093E20188ED91E093 -:100B80000E941D1740E061E088ED91E00E94701224 -:100B9000B80188ED91E00E942624209749F0BE011B -:100BA00088ED91E0DF91CF911F910F910C941D176B -:100BB000DF91CF911F910F910895FF920F931F9393 -:100BC000CF93DF93D82F162FC42FF22E242F0E94FD -:100BD0003E058823C1F00091F8016F2D88ED91E06A -:100BE0000E946C122C2F412F6D2F88ED91E00E94F6 -:100BF000FD12602F88ED91E0DF91CF911F910F9151 -:100C0000FF900C946C12DF91CF911F910F91FF9088 -:100C10000895EF92FF920F931F93CF93DF93C82F06 -:100C2000D62F142FF22E0E943E058823D1F0E0909B -:100C3000F801602F88ED91E00E946C120F2D212F9A -:100C40004D2F6C2F88ED91E00E94AC126E2D88ED37 -:100C500091E0DF91CF911F910F91FF90EF900C9455 -:100C60006C12DF91CF911F910F91FF90EF9008953B -:100C7000EF92FF920F931F93CF93DF93C82FD62F3E -:100C8000142FF22E0E943E058823D1F0E090F80147 -:100C9000602F88ED91E00E946C120F2D212F4D2FB7 -:100CA0006C2F88ED91E00E94D4126E2D88ED91E0BA -:100CB000DF91CF911F910F91FF90EF900C946C12E8 -:100CC000DF91CF911F910F91FF90EF900895682FC2 -:100CD00084E991E00E947C1191E0811101C090E0D3 -:100CE000892F0895CF93C62F682F84E991E00E9441 -:100CF0009B1191E0C81708F090E0892FCF910895DB -:100D000060E00C94720681E090E00E948006811100 -:100D100010C083E090E00E94800681110AC090E03C -:100D200080E00E948006811104C082E090E00C9473 -:100D3000800681E008950E94830681110AC084E044 -:100D400090E00E948006811104C085E090E00C9440 -:100D5000800681E00895089508950F931F93CF931F -:100D6000DF93CDB7DEB728970FB6F894DEBF0FBE7E -:100D7000CDBF162F88E4898380E58A838DE38B833A -:100D800000E028E044E56BE280E00E943806412F55 -:100D900050E065E070E0CE0104960E94E6042CE28B -:100DA00044E06BE472E0CE0101960E94B005289603 -:100DB0000FB6F894DEBF0FBECDBFDF91CF911F916C -:100DC0000F910895EF92FF920F93CF93DF93CDB7DA -:100DD000DEB728970FB6F894DEBF0FBECDBF7C01FB -:100DE0008DE38A8363E088ED91E00E946C1208E055 -:100DF00024E540E060E088ED91E00E94D41287E5B0 -:100E00008983F7014189528966E070E0CE0103963B -:100E10000E94E60421E048E06BE472E0CE01019616 -:100E20000E94B00587E48983F7014389548966E00D -:100E300070E0CE0103960E94E60425E042E06BE4F8 -:100E400072E0CE0101960E94B00586E48983F70125 -:100E50004589568966E070E0CE0103960E94E6045B -:100E600021E04AE26BE472E0CE0101960E94B005F7 -:100E7000F701E954FD4F408150E063E070E0CE019E -:100E800001960E94E6048981882399F18A8188234A -:100E900091F18B81811131C082E0E1E0F0E0EC0F53 -:100EA000FD1FE80FF11D9FE290838F5F90E068E0E7 -:100EB00070E0681B790B40E250E021E030E02C0F3D -:100EC0003D1F820F931F0E94E60425E04AE26BE477 -:100ED00072E0CE0101960E94B00528960FB6F894F4 -:100EE000DEBF0FBECDBFDF91CF910F91FF90EF908E -:100EF000089580E0D2CF81E0D0CF83E0CECF6F9253 -:100F00007F928F929F92AF92BF92CF92DF92EF9299 -:100F1000FF920F931F93CF93DF93CDB7DEB72C973C -:100F20000FB6F894DEBF0FBECDBF7C016B010F83FF -:100F3000188729873A87CB010E94C40F29833A83F7 -:100F40004B835C836D837E836D807E80F701858912 -:100F500096898615970570F089809A808189928993 -:100F60008815990538F0AB80BC80838994898A15EF -:100F70009B05C0F480EB90E02C960FB6F894DEBF92 -:100F80000FBECDBFDF91CF911F910F91FF90EF90DA -:100F9000DF90CF90BF90AF909F908F907F906F9099 -:100FA0000C94AA05E954FD4F8081803208F04AC0B4 -:100FB00091E0980F90838701F5E18F9F000D111D3F -:100FC0001124F801D1A2C0A28F819885908F878BC0 -:100FD00089859A85928F818FC6010E94BF0FF80183 -:100FE000878F81E087A3F3E0CF16D1040CF480E073 -:100FF000F80185A3F7018189928988199909928B53 -:10100000818B838994898A199B09948B838B858929 -:10101000968986199709968B858B2C960FB6F8942E -:10102000DEBF0FBECDBFDF91CF911F910F91FF901B -:10103000EF90DF90CF90BF90AF909F908F907F9078 -:101040006F90089583EA90E097CFEF92FF920F930D -:101050001F93CF93DF9300D000D000D0CDB7DEB781 -:101060007C018C0109541D4FD8011C92FC01EF53E7 -:10107000FD4F8FEF8083C70188549D4F0E94090D5B -:101080000E94F20DF701779685E1DF01982F1D92FE -:101090009A95E9F77596E017F107B9F788EE93E0AE -:1010A000D70152969C938E93519754969C938E930E -:1010B000539756969C938E93559728E130E040E0E5 -:1010C00050E060E070E0CB010E9460047A836983A5 -:1010D00028E130E040E050E060E070E0CB010E94A9 -:1010E0006004262F7C836B8309811A813C814D81AA -:1010F0005E8165E070E0C7010E947F0728E330E071 -:1011000040E050E060E370E080E090E00E94600426 -:101110007A83698328E330E040E050E060E370E0E8 -:1011200080E090E00E9460047C836B8390E080E02C -:101130000E94860E8D8390E080E00E94920EF7015F -:10114000EC53FD4F10823196108232971082339704 -:10115000108209811A812B813C814D81582F70E0CA -:1011600060E0C7010E947F0726960FB6F894DEBFA5 -:101170000FBECDBFDF91CF911F910F91FF90EF90E8 -:101180000895CF93DF9300D000D000D0CDB7DEB765 -:10119000FC01E654FD4F2081318144E150E0421BC7 -:1011A000530B88549D4FFC018081918126E230E0F1 -:1011B000281B390B3A8329835C834B833A815C81FA -:1011C00068E078E080E090E026960FB6F894DEBF05 -:1011D0000FBECDBFDF91CF9108953F924F925F92A6 -:1011E0006F927F928F929F92AF92BF92CF92DF9237 -:1011F000EF92FF920F931F93CF93DF9300D000D015 -:1012000000D0CDB7DEB75C018C01912C88248A9484 -:1012100044244A94542C3201F80187A1882309F40C -:1012200046C080A5811143C0C5010E94C108298321 -:101230003A834B835C836D837E83F801C788D08CAF -:10124000E18CF28C80A191A10E94860E382EF801CB -:1012500080A191A10E94920E29813A81C21AD30ADB -:10126000232D30E035952795C20ED31E2B813C816E -:10127000E21AF30A90E095958795E80EF91ECC9C4A -:10128000C001CD9C900D900D1124EE9C9001EF9C1F -:10129000300D300D1124820F931FB0E0A0E08415B3 -:1012A0009505A605B70518F4892C2C013D010B5EA8 -:1012B0001F4F9394F0E29F12AFCFF501EF53FD4F14 -:1012C000808226960FB6F894DEBF0FBECDBFDF91A9 -:1012D000CF911F910F91FF90EF90DF90CF90BF9033 -:1012E000AF909F908F907F906F905F904F903F90C6 -:1012F0000895FC01E054FD4F2081222351F03396E4 -:101300002081211106C031968081853010F48F5FD5 -:10131000808308958F929F92BF92CF92DF92EF9237 -:10132000FF920F931F93CF93DF9300D000D000D094 -:10133000CDB7DEB77C014B016A01FB018185928547 -:101340000E94860E182FF401818592850E94920ECC -:10135000B82EF4010081812F90E09C0135952795EE -:10136000280F391F032E000C440B550B60E070E072 -:10137000CB010E946004060FF40112818B2D90E0D6 -:101380009C0135952795280F391F032E000C440B1F -:10139000550B6B2D70E090E080E00E9460041E828F -:1013A0001D82802F90E09A838983160F612F70E051 -:1013B000212F7C836B831A813C8140E05E81B601E2 -:1013C000C7010E947F0726960FB6F894DEBF0FBEB6 -:1013D000CDBFDF91CF911F910F91FF90EF90DF90E4 -:1013E000CF90BF909F908F9008958F929F92AF92D1 -:1013F000BF92CF92DF92EF92FF920F931F93CF9302 -:10140000DF93CDB7DEB72C970FB6F894DEBF0FBED3 -:10141000CDBF7C015A010E94C1082F8338874987BC -:101420005A876B877C87D12C470189E4881A8DEF16 -:10143000980A85E1C82EF4018081D81608F03FC0D3 -:101440008701CD9C000D111D1124F8018789908D15 -:101450009A838983818D928D9C838B8380A191A1B6 -:101460000E94860E8D83F80180A191A10E94920EA8 -:101470008E83F80187A1811102C0D394DCCFBE0115 -:101480006F5F7F4FCE0107960E94B6048823A9F3B1 -:1014900081E990E00E94AA052C960FB6F894DEBF71 -:1014A0000FBECDBFDF91CF911F910F91FF90EF90B5 -:1014B000DF90CF90BF90AF909F908F9008950F8155 -:1014C000188529853A854B855C85B501C7010E9441 -:1014D0007F07E2CF0F931F93CF93DF93EC01CC53A1 -:1014E000DD4F28818C010D531D4F253018F5FC016F -:1014F000EF53FD4F20812F3F81F0FC0135E12302A6 -:10150000E00DF11D112421E020A7FC01E054FD4F66 -:1015100020838B539D4FFC011082188281E09881BB -:10152000953008F480E0F8018083DF91CF911F911E -:101530000F910895F8012081222381F3FC0130E00E -:1015400020E040A5442349F145E1429FB001439F7B -:10155000700D1124695E7F4F680F791FFC01EA53FB -:10156000FD4F108231972081223079F038F443E02A -:1015700050E02111D3CF0E94F509D0CF233051F094 -:1015800045E050E02430B9F3C9CF50E040E00E947C -:101590008A09C4CF41E050E0FACF2F5F3F4F7596E4 -:1015A0002032310571F6BACFCF93DF93EC01C054EE -:1015B000DD4F28812223D9F0DC01AE53BD4F2C91A1 -:1015C0002530C0F0FC019C0120563D4F40A5411143 -:1015D00010A67596E217F307C9F71C921882FC0152 -:1015E000ED53FD4F10828C539D4FFC011082DF9113 -:1015F000CF9108952F5F2C93FACF8F929F92AF9245 -:10160000BF92CF92DF92EF92FF920F931F93CF93EF -:10161000DF9300D000D000D0CDB7DEB78C01FC0145 -:10162000E054FD4F8081882379F1C8010E94C108F0 -:1016300029833A834B835C836D837E8378015801D1 -:1016400080E6A81A8DEFB80A6801EDE3CE1AEDEF37 -:10165000DE0A4801FCE38F1AFDEF9F0AF70180A51F -:10166000882361F0F6018081811125C04B815C8166 -:1016700069817A81C70147960E94EB0FF5E1EF0E71 -:10168000F11CEA14FB0451F7F801EE53FD4F1082F0 -:1016900026960FB6F894DEBF0FBECDBFDF91CF9177 -:1016A0001F910F91FF90EF90DF90CF90BF90AF9080 -:1016B0009F908F9008951082F4011082DFCFEF92F7 -:1016C000FF920F931F93CF93DF93FC01ED53FD4FD8 -:1016D0002081222351F1EC018C0100561D4F7C0129 -:1016E0008BE3E81A8DEFF80A88A58823D1F0CE01A4 -:1016F00047960E940A11F70140819FEF940F282F0F -:1017000030E0491771F0993008F097E0B901092EDF -:1017100002C0759567950A94E2F760FF0DC0F70166 -:1017200090836596C017D107F9F6DF91CF911F918D -:101730000F91FF90EF9008959150E3CFEF92FF92B9 -:101740000F931F93CF93DF93FC01ED53FD4F208147 -:10175000222351F1EC018C0100561D4F7C018BE3DB -:10176000E81A8DEFF80A88A58823D1F0CE014796B4 -:101770000E940A11F701408191E0940F282F30E078 -:10178000491771F0983008F090E0B901092E02C0B5 -:10179000759567950A94E2F760FF0DC0F701908395 -:1017A0006596C017D107F9F6DF91CF911F910F9180 -:1017B000FF90EF9008959F5FE3CF0F931F93CF9318 -:1017C000DF93EC01FC01ED53FD4F80818823B1F1E3 -:1017D000FE0130E020E080A5882351F145E1429FE1 -:1017E000C001439F900D112447968C0F9D1F0E94AE -:1017F0000A1190E08E010B531D4FF801208102C0A9 -:10180000959587952A95E2F780FD03C0CE010E9449 -:101810009E0BF801808190E00E9412112CE248E2B8 -:101820006BE472E0DF91CF911F910F910C94B005A2 -:101830002F5F3F4F75962032310569F6DF91CF91CA -:101840001F910F9108958F929F92AF92BF92CF9266 -:10185000DF92EF92FF920F931F93CF93DF93EC01F0 -:101860008C01095E1F4FF12CE12C912C6C018FE350 -:10187000C81A8DEFD80A5E01E8E4AE1AEDEFBE0A91 -:10188000F80180898823D9F0F60180818F3F39F0F3 -:10189000082E000C990B41E08E159F0509F040E0E1 -:1018A000B501C8010E949E0EF8018188882039F098 -:1018B000911005C06085CE010E94AD06982CFFEF07 -:1018C000EF1AFF0A0B5E1F4F80E2E816F104C1F623 -:1018D0008881882339F1992099F001E023E04AE0DA -:1018E0006CE284E40E940906FE01EC53FD4F408146 -:1018F000442331F0440F23E06CE284E40E94380674 -:10190000CE010E94DD0BCE01DF91CF911F910F918F -:10191000FF90EF90DF90CF90BF90AF909F908F900F -:101920000C94E206DF91CF911F910F91FF90EF9001 -:10193000DF90CF90BF90AF909F908F900895CF93FE -:10194000DF93EC0184E090E00E948006882329F078 -:10195000CE01DF91CF910C94790984E090E00E9450 -:101960006706882329F0CE01DF91CF910C946A0A93 -:1019700085E090E00E948006882329F0CE01DF9167 -:10198000CF910C94D40A85E090E00E9467068823EA -:1019900029F0CE01DF91CF910C94FD0A90E080E018 -:1019A0000E946706882329F0CE01DF91CF910C9425 -:1019B0005F0B82E090E00E946706882329F0CE0149 -:1019C000DF91CF910C949E0BDF91CF9108950F93EF -:1019D0001F93CF93DF93EC018C0108541D4FFC0142 -:1019E000ED53FD4F6081C8010E94EF0DC8010E94B8 -:1019F000510DCE010E94ED0860E270E0CE014796E5 -:101A00000E94F30FCE01DF91CF911F910F910C94A3 -:101A10009F0CFC01118210821382128214821582A3 -:101A200083E0868317820895CF93DF93CDB7DEB727 -:101A30002C970FB6F894DEBF0FBECDBF1C861B8659 -:101A4000FC0122813381420F531F80819181680FF5 -:101A5000791F78876F835A87498786E0FE0137961A -:101A6000DE01119601900D928A95E1F729813A8164 -:101A70004B815C816D817E8180E090E02C960FB679 -:101A8000F894DEBF0FBECDBFDF91CF910895FC016A -:101A90009081490FDB014C938281280F11962C9382 -:101AA0000895CF93DF93EC018F81882319F01C8276 -:101AB0001D821BC08E818330D8F48F5F8E832C8172 -:101AC00088819981820F911D27FD9A9597FF80C08B -:101AD000998388832D818A819B81820F911D27FDA7 -:101AE0009A9597FF79C09B838A83DF91CF91089560 -:101AF0001E820E948306882369F190E080E00E94A4 -:101B00008006882329F08C8187FF47C08E5F8C83F5 -:101B100081E090E00E948006882329F08D8187FF74 -:101B200041C08E5F8D8383E090E00E948006882311 -:101B300031F08D8118160CF03AC082508D8382E00E -:101B400090E00E948006882329F08C8118169CF56D -:101B500082508C8390E080E00E94800681110BC04F -:101B600082E090E00E948006811105C08C811816E9 -:101B700034F581508C8381E090E00E9480068111D1 -:101B80009ECF83E090E00E948006811198CF8D81E6 -:101B90001816CCF481508D8392CF85300CF0B8CFDD -:101BA0008F5FB5CF85300CF0BECF8F5FBBCF8C3F42 -:101BB00034F28150C3CF8C3F6CF28150CACF88235E -:101BC000D1F28F5FD7CF882309F479CF8F5FE3CF2E -:101BD000198218821C827ECF1B821A8269CFFC0177 -:101BE00067830895FF920F931F93CF93DF930BE8C2 -:101BF00015E08EEF91E0F801908787830E94A3059E -:101C0000F80182838EEF91E00E94A605F80183839C -:101C100015821482FF24F394F68284EF91E0918B75 -:101C2000808B0E94A305F801838784EF91E00E94D6 -:101C3000A605F801848716861586F786CCE4D5E0DC -:101C400088E092E098878F830E94A3058A8388E0CA -:101C500092E00E94A6058B831D821C82FE828AEE82 -:101C600091E0998B888B0E94A3058B878AEE91E087 -:101C70000E94A6058C871E861D86FF8680EA91E05D -:101C8000F80193A382A30E94A305F801858F80EA3F -:101C900091E00E94A605F801868F10A2178EF1A28E -:101CA0008CE091E095AB84AB0E94A305F80187A777 -:101CB0008CE091E00E94A605F80180AB12AA11AA5F -:101CC000F3AA86E591E09BA38AA30E94A3058D8FCA -:101CD00086E591E00E94A6058E8F18A21F8E13E064 -:101CE00019A382EC90E09DAB8CAB0E94A3058FA75B -:101CF00082EC90E00E94A60588AB1AAA19AA1BAB39 -:101D0000DF91CF911F910F91FF90089529E0289FB7 -:101D1000F001299FF00D1124E557FA4F8781908536 -:101D20000C94A30529E0289FF001299FF00D1124B0 -:101D3000E557FA4F878190850C94A6057F928F9284 -:101D40009F92AF92BF92CF92DF92EF92FF920F934A -:101D50001F93CF93DF9300D000D000D0CDB7DEB774 -:101D60007C015B01742EDC0150968C915097882386 -:101D700009F47CC019960D911C916801DD24B9E02D -:101D80000B9F80011124F70186858111B3C08785DF -:101D9000882309F47FC0045B1A4FD80114961C9263 -:101DA000149715961C92882339F0F70184898F5F68 -:101DB000853008F072C0848BF7018385948581306B -:101DC000910509F48CC008F484C08230910509F4AF -:101DD0006AC0039709F475C0F701228133814081FD -:101DE0005181B801C5010E94470DC8010E947505C7 -:101DF000711005C0D70151968C918823B9F1F70174 -:101E00004281538160817181C5010E94140D298333 -:101E10003A834B835C83A980BA808B809C80D701F6 -:101E200051968C9101E0811101C003E0C6010E942E -:101E3000860E182FC6010E94920EF70196859923EF -:101E400009F47CC0282F26952695280F412F46950A -:101E50004695410F869586958695682D681B169543 -:101E6000169516958A2D811B0E94090626960FB697 -:101E7000F894DEBF0FBECDBFDF91CF911F910F91C0 -:101E8000FF90EF90DF90CF90BF90AF909F908F909A -:101E90007F90089505571A4F80CF148A858591E069 -:101EA0008927858789CF82E0D80115968C9315976D -:101EB000F7018585882309F48FCF83E015968C93ED -:101EC0008BCF8585882309F487CF81E0F80185834E -:101ED00083CF81E0D80114968C931497E6CF81E0EC -:101EE000D80114968C9314978585882309F474CFB0 -:101EF00082E0E4CFC801845B9A4F4C01F601EE0FFB -:101F0000FF1FE050FF4F8181D70112962D913C9128 -:101F10001397280F311D87FD3A9580814D915C9173 -:101F2000480F511D87FD5A95B401C5010E94470D08 -:101F3000C4010E94750505571A4F4ECF682F66954C -:101F4000680D792D711D812F8695202F412F8A0DC7 -:101F50009B2D911D26960FB6F894DEBF0FBECDBF08 -:101F6000DF91CF911F910F91FF90EF90DF90CF9075 -:101F7000BF90AF909F908F907F900C94DD058C5810 -:101F80009E4FFC0180810895CF93DF9300D000D055 -:101F900000D0CDB7DEB726E0289FF001299FF00DD5 -:101FA0001124E65BFE4F86E0DE01119601900D9252 -:101FB0008A95E1F729813A814B815C816D817E812F -:101FC00080E090E026960FB6F894DEBF0FBECDBF3E -:101FD000DF91CF910895FC01758364835783468315 -:101FE00081E0878708952F923F924F925F926F9280 -:101FF0007F928F929F92AF92BF92CF92DF92EF9299 -:10200000FF920F931F93CF93DF93CDB7DEB72F9738 -:102010000FB6F894DEBF0FBECDBF482E9D874B0193 -:10202000082F192FD12CC12CC814D904C9F42F960C -:102030000FB6F894DEBF0FBECDBFDF91CF911F91D9 -:102040000F91FF90EF90DF90CF90BF90AF909F9057 -:102050008F907F906F905F904F903F902F9008955A -:10206000D80150968C915097882309F451C01F963F -:102070005C901F97552009F44BC02D913C9111970E -:102080001996ED91FC911A97ED5BFE4F7080872DAC -:1020900090E014964D915C911597B901681B790BEE -:1020A00046175707D8F51C961C921E921B97672C53 -:1020B0006194712CE42CFD84B12CA12C262C062CCF -:1020C000000C3308272D072C000C330B3F872E877D -:1020D000D801A814B90409F054C01F965C921F9748 -:1020E0005520B1F08D919C911197860D911D67FC43 -:1020F0009A9511969C938E9312968D919C9113971D -:10210000870D911D77FC9A9513969C938E93129749 -:10211000BFEFCB1ADB0A0B5E1F4F86CF280F391F8C -:102120002417350738F421E030E0F801348723879D -:10213000672CBFCF12964D915C91139716962D91F7 -:102140003C911797BA01681B790B2617370748F49B -:10215000E2E0F0E01C96FC93EE931B977194612CE7 -:10216000A9CF840F951F8217930738F4E3E0F0E0BE -:102170001C96FC93EE931B97F2CF712C612C512C83 -:1021800099CF8D919C911197820D931D98878F8384 -:1021900012968D919C911397EE85FF858E0F9F1F50 -:1021A0009A87898719968D919C910E94860E8B87BC -:1021B000D80119968D919C910E94920E8C87F701FF -:1021C0008089882301F1CA14DB04E9F080819181C0 -:1021D0009A838983828193819C838B838185928575 -:1021E0000E94860E8D83D70119968D919C910E9435 -:1021F000920E8E83BE016F5F7F4FCE0107960E94C5 -:10220000B604811114CFBFEFAB1ABB0AE5E1EE0EA5 -:10221000F11C5ECFDC011996ED91FC91E45FFE4F5D -:1022200080810895880F991FFC01E75CFE4F808133 -:1022300091810895BC016F5F7F4F80E1FB01119296 -:102240008A95E9F78AE891E00C944F1E43E062E139 -:1022500072E08AE891E00E94B21A811106C08AE118 -:1022600092E00E941A110C94D3030895FC0188E0B7 -:10227000808389E0818387E0828386E0838384E0B2 -:10228000848382E0858381E186830895FF920F93A2 -:102290001F93CF93DF93EC018C01095F1F4FFF2445 -:1022A000FA9462E088810E94392388810E94A323E6 -:1022B0002F81892B81F42F5F2F8360E088810E941A -:1022C00039232196C017D10761F7DF91CF911F9174 -:1022D0000F91FF9008952223A1F32F3F11F41F8245 -:1022E000ECCFFF82EACFFC01E60FF11D81E0978180 -:1022F000913009F080E00895FC01E60FF11D81E0C6 -:1023000097819F3F09F080E00895860F911DFC01A1 -:102310008781423038F49FEF980F81E09E3F50F064 -:1023200080E008C08F3FE1F3642F0E949C2581E08C -:102330009130B1F70895860F911DFC0187818F3F81 -:1023400009F480E008958EBD0DB407FEFDCF8EB573 -:102350000895DC01643508F042C0403308F03FC006 -:1023600090968C919097E62F062E000CFF0B242F51 -:1023700025952595259594E52902E00DF11D11245B -:10238000E653FA4F2081342F37708230A1F4822F28 -:1023900090E0032E02C0959587950A94E2F7809508 -:1023A0008170882399F081E090E001C0880F3A9510 -:1023B000EAF7822B13C08330A1F71C968C91642717 -:1023C000062E000C770B682760FDEDCF81E090E0D2 -:1023D00001C0880F3A95EAF780958223808308959B -:1023E0001F93CF93DF93EC01162FF89460E08F8555 -:1023F0000E947523888918161CF460E00E947523DA -:10240000812F0E94A311888918161CF461E00E9494 -:1024100075237894DF91CF911F910895EAECF5E050 -:1024200028EF31E0DF01A9011D9241505040E1F752 -:10243000DC0119961C9219971A961C92089548EF80 -:1024400051E06FEF7FEF8AEC95E00C94C327CF92B9 -:10245000DF92EF92FF920F931F93CF93DF93EC01E4 -:102460008C858F5F8C878AECE82E85E0F82E10E053 -:10247000612F6064CE010E94F01160E8CE010E94DD -:10248000F01161E08F850E947523888918161CF46D -:1024900060E00E947523670104E5F60181916F01F8 -:1024A0000E94A3110150C9F7888918161CF461E035 -:1024B0000E9475231F5FF4E5EF0EF11C1630C1F684 -:1024C00060E4CE01DF91CF911F910F91FF90EF90CB -:1024D000DF90CF900C94F011FC0160A361A30895EC -:1024E000FC0160A341A30895EF92FF920F931F9305 -:1024F000CF93DF938C01D62FF42EE22EC0E0CE15C1 -:1025000044F44F2D4C0F6D2FC8010E94A911CF5FCD -:10251000F6CFDF91CF911F910F91FF90EF9008952B -:10252000EF92FF920F931F93CF93DF938C01F62EC0 -:10253000D42FE22EC0E0CE1544F46F2D6C0F4D2F3A -:10254000C8010E94A911CF5FF6CFDF91CF911F91F3 -:102550000F91FF90EF900895EF92FF920F931F93CA -:10256000CF93DF937C01162FD42FC22F0E9490129D -:102570004FEF400F4D0F2C2F612FC7010E9490127B -:10258000202F4D2F612FC7010E9474126FEF6C0F27 -:10259000610F202F4D2FC701DF91CF911F910F9118 -:1025A000FF90EF900C947412DF92EF92FF920F93D2 -:1025B0001F93CF93DF937C01D62FD22EC42F002EF2 -:1025C000000C110B040F111D47FD1A958C2F0C2EBA -:1025D000000C990B8017910744F42D2D4C2F6D2F73 -:1025E000C7010E949012CF5FF1CFDF91CF911F9171 -:1025F0000F91FF90EF90DF9008959F92AF92BF925E -:10260000CF92DF92EF92FF920F931F93CF93DF93BE -:102610008C01E62EF42EC22F81E0D82ED21AC22EC3 -:10262000C194CC0C422F4F0DC8010E94A9114F2D0F -:102630004C1B6E2DC8010E94A9116C2F6E0D4F2DE1 -:10264000C8010E94A9116E2D6C1B4F2DC8010E945C -:10265000A911D0E0DC170CF044C0D7FC04C0C15075 -:10266000C394C394DC0CDF5F8D2F880F8F5FD80E6F -:102670009E2C9D0EBF2CBC0E4B2D692DC8010E94B7 -:10268000A911AE2CAD1A4B2D6A2DC8010E94A911BB -:10269000BF2CBC1A4B2D692DC8010E94A9114B2DCE -:1026A0006A2DC8010E94A911BF2CBD0E4B2DAE2C66 -:1026B000AC0E6A2DC8010E94A9114B2DBE2CBC1A6C -:1026C0006B2DC8010E94A9119F2C9D1A492D6A2DBE -:1026D000C8010E94A911492D6B2DC8010E94A911A2 -:1026E000B9CFDF91CF911F910F91FF90EF90DF90C5 -:1026F000CF90BF90AF909F9008958F929F92AF928E -:10270000BF92CF92DF92EF92FF920F931F93CF93DE -:10271000DF937C01162FD42EC22F81E0C82EC21A5F -:10272000B22EB194BB0CD0E0802F8470A82E802FE5 -:102730008270982E802F8870882E0170DC170CF024 -:102740004DC0C7FC04C0C150B394B394CB0CDF5F41 -:102750008D2F880F8F5FC80EAA2071F04D2D4C0F62 -:10276000612F6D0FC7010E94A9114D2D4D0F6C2FC8 -:10277000610FC7010E94A911992071F04D2D4C1BCA -:10278000612F6D0FC7010E94A9114D2D4D1B6C2F9C -:10279000610FC7010E94A911882071F04D2D4D0FC6 -:1027A000612F6C1BC7010E94A9114D2D4C0F612F89 -:1027B0006D1BC7010E94A911002309F4BFCF4D2D45 -:1027C0004D1B612F6C1BC7010E94A9114D2D4C1B85 -:1027D000612F6D1BC7010E94A911B0CFDF91CF916E -:1027E0001F910F91FF90EF90DF90CF90BF90AF902F -:1027F0009F908F9008957F928F929F92AF92BF92F9 -:10280000CF92DF92EF92FF920F931F93CF93DF93BC -:102810005C01C62E942EC22F11E0121BD22ED19431 -:10282000DD0C83E0F82ED0E0802F8170782E882494 -:1028300083948E0C0270DC17ACF517FD04C0C150F8 -:10284000D394D3941D0DDF5F1F0D772099F02C2FAB -:10285000220F280D492D4C1B6C2D6D0FC5010E94B8 -:1028600074122E2D2F0D492D4D1B6C2F6C0DC50193 -:102870000E947412002399F02C2F220F280D492D4D -:102880004C1B6C2D6D1BC5010E9474122E2D2F0D3B -:10289000492D4D1B6C2D6C1BC5010E947412F394C5 -:1028A000F394C9CFDF91CF911F910F91FF90EF90DB -:1028B000DF90CF90BF90AF909F908F907F900895C2 -:1028C0009F92AF92BF92CF92DF92EF92FF920F93BF -:1028D0001F93CF93DF93EC01B62E142FD22EAE2C84 -:1028E000AA0C922E9A18CE2CC60E292D6C2D0E9461 -:1028F0009012FF24FA94F00EF10E292D4F2D6C2D1D -:10290000CE010E9490120A191E0D202F412F6B2D0F -:10291000CE010E947412DB0C6FEF6D0D202F412F42 -:10292000CE010E94741201E02E2D412F6C2DCE019C -:102930000E947D138E2D8095D80E02E02E2D412F02 -:102940006D2DCE010E947D13FE1804E02E2D4F2D1B -:102950006D2DCE010E947D1308E02E2D4F2D6C2D84 -:10296000CE010E947D13DF91CF911F910F91FF90B7 -:10297000EF90DF90CF90BF90AF909F900895AF926F -:10298000BF92CF92DF92EF92FF920F931F93CF935C -:10299000DF936C01C62FF42EA22ED02F1E2DEE0C2D -:1029A000B12EB60E2E196B2D0E94D412D150DE1905 -:1029B000F10E6FEF6C0F6A0D611BED2E01E0212F00 -:1029C0004F2DC6010E94FB1302E0212F4F2D6B2DCE -:1029D000C6010E94FB13DF91CF911F910F91FF90D1 -:1029E000EF90DF90CF90BF90AF9008952F923F92DD -:1029F0005F926F927F928F929F92AF92BF92CF928F -:102A0000DF92EF92FF920F931F93CF93DF93EC012E -:102A1000F901E4903196849164350CF015C10E2CC7 -:102A2000000CFF08062F062E000C110BF701E00F1B -:102A3000F11F1E161F060CF007C140330CF004C135 -:102A4000A82FC42E042E000CDD085601A80EB11CC0 -:102A500087FDBA941A141B040CF0F6C02E5F3F4F8A -:102A6000570197E0A90EB11CB7FE04C05701BEE0A4 -:102A7000AB0EB11CB3E0B594A794BA95E1F747FF4C -:102A80000AC0A42FA80FAC9CC001AD9C900D1124CE -:102A9000281B390B40E08A2F0A2E000C990B840F5B -:102AA000911D47FD9A95C19714F0A0E3A41BF8A0CF -:102AB00067FD60E0E535F10514F0E4E5F0E09E2FF8 -:102AC000CC85C427C62E062E000CDD08F601E01BBF -:102AD000F10B8F014F01F7E08F229924E0E8F0E03D -:102AE00002C0F595E7958A94E2F77E2F17FF02C0A2 -:102AF000095F1F4FF3E015950795FA95E1F7200F51 -:102B0000311F542F577081E001C0880F5A95EAF7A2 -:102B1000459545954595F601B4E54B02E00DF11D4F -:102B20001124AF0146535A4FD0E02A2EAA0F330882 -:102B3000EE24E394BB24D21513040CF085C0F901F4 -:102B40005490F1E0FF121AC06901962E8A01E72F16 -:102B5000991608F057C08E2E852021F0D8018C9050 -:102B6000882A8C92E69531F4BFEFCB1ADB0AF60186 -:102B70005490E0E893940F5F1F4FEACFF1101CC010 -:102B8000782E70946901962E8A01E72F991608F025 -:102B900039C08E2E852021F0D8018C9087208C9210 -:102BA000E69531F4BFEFCB1ADB0AF6015490E0E86A -:102BB00093940F5F1F4FEACFF3E0FF122CC0782EE3 -:102BC00070946901862E8A01972E8916D0F4E92D1A -:102BD000E52141F0D801EC916C2E682460FE0FC015 -:102BE000E82BEC93969439F4BFEFCB1ADB0AF6018D -:102BF0005490E0E89E2E83940F5F1F4FE6CFE721AD -:102C0000F0CFCE25880F19F44C5A5F4F81E0DF5F7B -:102C10002A0D3B1D90CF6901962E8A01E72F991648 -:102C200088F78E2E852021F0D8018C9088268C92F2 -:102C3000E69531F4BFEFCB1ADB0AF6015490E0E8D9 -:102C400093940F5F1F4FEBCFDF91CF911F910F91A7 -:102C5000FF90EF90DF90CF90BF90AF909F908F90BC -:102C60007F906F905F903F902F9008952F923F92AA -:102C70004F925F926F927F928F929F92AF92BF928C -:102C8000CF92DF92EF92FF920F931F93CF93DF9338 -:102C900000D000D000D01F92CDB7DEB74C01462E39 -:102CA000342E69018E2D01111DC0E1101BC0C4011D -:102CB00027960FB6F894DEBF0FBECDBFDF91CF9140 -:102CC0001F910F91FF90EF90DF90CF90BF90AF904A -:102CD0009F908F907F906F905F904F903F902F903C -:102CE0000C94F614F60154903196E490A52CB12C76 -:102CF0009501295F3F4FA90133E0559547953A95D6 -:102D0000E1F75B834A830370F12CEE2DF0E0FD8345 -:102D1000EC835A941FEF1E0D2F2D0F2C000C330B3C -:102D20002A153B050CF070C0F982F7FE03C0F7E0EE -:102D3000FF0DF983298125952595259529839F2DBB -:102D4000977897FF03C09150986F9F5F20E8622E9D -:102D5000712C02C0759467949A95E2F7212C4981F1 -:102D6000042E000C550B4E5F5F4F5F834E83222D68 -:102D7000022C000C330BEC81FD812E173F070CF069 -:102D800041C04A815B81429FF001439FF00D529FF9 -:102D9000F00D11242E813F81E20FF31FEC0DFD1D7C -:102DA000E491F0E0E621F721EF2B41F1023069F0E8 -:102DB000612F62194F2D033061F0452D4F19622D9F -:102DC000013039F0422D6F2D04C0652D6F19412F50 -:102DD00042198823A9F0382F3370398380FF03C04C -:102DE000552D561B652F81FF03C08E2D841B482F48 -:102DF000640D430DC4010E94A91189812394B7CFAA -:102E00001982F6CFF39488CF27960FB6F894DEBFD9 -:102E10000FBECDBFDF91CF911F910F91FF90EF902B -:102E2000DF90CF90BF90AF909F908F907F906F90EA -:102E30005F904F903F902F900895DC01FB018491AB -:102E40008F5F14968C9314973196E491EF5F1596EB -:102E5000EC9315976E5F7F4F5F967C936E935E97B2 -:102E60000895EF920F93CF93DF93EC014E876D8718 -:102E70002F87E98A088B81E0888788A319A28F832E -:102E80006DEC73E0CE010E941D170E94592581E070 -:102E90000E946F2585E00E947D258CE00E947825A8 -:102EA00061E08E850E94392361E08D850E9439237F -:102EB00061E08F850E943923898918161CF461E02E -:102EC0000E943923888918161CF461E00E94392376 -:102ED000898918166CF460E00E9475236AE070E03E -:102EE00080E090E00E94372261E089890E9475238A -:102EF0008D85082E000C990BFC01EF51F94FE491E0 -:102F0000F0E0EE0FFF1FE150F94F259134913D8B1A -:102F10002C8BFC01E353F94FE491EB8F8E85082E47 -:102F2000000C990BFC01EF51F94FE491F0E0EE0F2A -:102F3000FF1FE150F94F259134913B8B2A8BFC0107 -:102F4000E353F94FE491EA8F8889082E000C990B1E -:102F5000FC01EF51F94FE491F0E0EE0FFF1FE1505B -:102F6000F94F259134913F8B2E8BFC01E353F94FA0 -:102F7000E491EC8F8F85082E000C990BFC01EF512A -:102F8000F94FE491F0E0EE0FFF1FE150F94F25916A -:102F90003491398F288FFC01E353F94FE491ED8F81 -:102FA00061E2CE010E94F01164E1CE010E94F011B5 -:102FB0008B8587FF02C08FE78B876B856068CE01AA -:102FC0000E94F01160E2CE010E94F0116CE0CE018F -:102FD0000E94F011CE01DF91CF910F91EF900C94F0 -:102FE00027124F925F926F927F928F929F92AF9231 -:102FF000BF92CF92DF92EF92FF920F931F93CF93E6 -:10300000DF93EC01862EF42E102F83E586170CF447 -:1030100085C08FE284170CF481C04C814150550B60 -:10302000049FC001059F900D1124860F911D67FD1F -:103030009A95181619060CF071C03D818F2D0F2C32 -:10304000000C990B039F800D911D11241816190671 -:103050000CF064C078A0E62E912CC22ED12C292D24 -:10306000092C000C330B8C8190E0281739070CF0E9 -:1030700054C00197E0E02817390771F0C89EF001AD -:10308000C99EF00DD89EF00D11242E0F3F1FEE8D1E -:10309000FF8DE20FF31FE4915F2C612C492C480C4B -:1030A0002D81862D062C000C990B2817190691F1FD -:1030B0008CF1AE2EB12CE0FF16C0113061F4462D1C -:1030C0004F0D642DCE010E94A911F501F595E795EC -:1030D0006394510EE5CF012F212F452D6E2DCE018A -:1030E0000E94D412F2CF89A198A1891771F388A305 -:1030F000113041F4462D4F0D642DCE010E94A911CF -:1031000078A2E3CF012F212F452D6E2DCE010E94F5 -:10311000D412F6CF9394E10EA2CF78A2DF91CF9193 -:103120001F910F91FF90EF90DF90CF90BF90AF90E5 -:103130009F908F907F906F905F904F9008950F9326 -:10314000CF93DF93EC01262F6A3049F428859D81C7 -:103150008A85299F800D11248A8719861DC06D30AC -:10316000D9F008854A8569850E94F11728853C8138 -:103170008985239F800D112489879F81992361F080 -:10318000082E000C990B44E550E0239F401951098B -:10319000112448175907DCF281E090E0DF91CF91CC -:1031A0000F910895FC01EC57FF4F718360838A579C -:1031B0009F4F445FFC01408308956F927F928F92EE -:1031C0009F92AF92BF92CF92DF92EF920F93CF93E5 -:1031D000DF934C015C0186E8A80EB11CD5018C91EF -:1031E000882309F44AC0CCE0C81B8C3008F0C0E04A -:1031F000F401EA5AFF4F81E080836401BEE4CB0E04 -:10320000D11C60E0C6010E946C123401E3E56E0E31 -:10321000711CD3018C9103E0080FDDE24D2F481B98 -:103220004C0F83E0E82E24E560E0C6010E94BF1445 -:1032300061E0C6010E946C12F301808103E0080F77 -:103240004D2F481B4C0F24E560E0C6010E9460141E -:10325000F401E95AFF4F84E080833196D3018C91C9 -:10326000C81BC15DC083BC9660817181C6010E948C -:103270000324F501808181508083DF91CF910F91EC -:10328000EF90DF90CF90BF90AF909F908F907F9006 -:103290006F900895CF92DF92FF920F931F93CF9379 -:1032A000DF93EC018C8D9D8D892B01F18E01025BEA -:1032B0001F4F40E061E0C8010E947012FE01E95A10 -:1032C000FF4FDE01AE5ABF4F9C9185E5891B80837D -:1032D00031961082698D613009F46DC078F0888D67 -:1032E000653008F082C06B5F811175C0DF91CF91AE -:1032F0001F910F91FF90DF90CF900895CE0185969A -:103300000E94A42081E0FE01EA5AFF4F80836DEC09 -:1033100073E0C8010E941D171D8E1C8EFE01EC5A21 -:10332000FF4F108288EAF82E6E018AE0C80ED11C89 -:10333000CE010E94FA198823D9F36CEB75E0C8011D -:103340000E9403246A8D7B8D4AE050E0C8010E94F0 -:10335000122567EA75E0C8010E9403246F2D62956B -:103360006F7070E04AE050E0C8010E94FE246CE9F2 -:1033700075E0C8010E94032464E0C6010E94731135 -:103380008111B4CFFA94F110D3CF60E0CE010E9446 -:10339000172183B7817F846083BF83B7816083BF38 -:1033A00083B7816083BF889583B78E7F83BF83B7E0 -:1033B0008E7F83BFBDCFCF58DF4F88819981AA818F -:1033C000BB818F709927AA27BB2767E00897A105C3 -:1033D000B10508F068E7C801DF91CF911F910F9107 -:1033E000FF90DF90CF900C942E24882309F47ECF99 -:1033F0006FE2F1CF8F929F92AF92BF92CF92DF9206 -:10340000EF92FF920F931F93CF93DF93EC017C0118 -:1034100080E8E80EF11CF70180809180A280B380E3 -:103420000E940622861A970AA80AB90A6E01FFE7C7 -:10343000CF0ED11CF601808190E0B0E0A0E08E01BB -:1034400005581F4F88159905AA05BB0508F04AC005 -:10345000F80180819181A281B381892B8A2B8B2BEA -:1034600009F440C00E940622F6012081620F711DFE -:10347000811D911DF70160837183828393833F9740 -:1034800080819181A281B3810196A11DB11D8083AC -:103490009183A283B383F801108211821282138276 -:1034A0000E941222FE01E958FF4F608371838283DC -:1034B0009383CE010E941B21CE010A960E944611E1 -:1034C000CE0148960E94842181E0DF91CF911F9127 -:1034D0000F91FF90EF90DF90CF90BF90AF909F90B3 -:1034E0008F900895F80180819181A281B381892B09 -:1034F0008A2B8B2BA9F57E01F5E2EF0EF11CC7019B -:103500000E945F1FC7010E94D21FC7010E94962020 -:10351000CE010E94DD18CE010E944A197E018EE480 -:10352000E80EF11CC7010E942712FE01EC5AFF4F62 -:103530008081811103C0C7010E940E120E941222D5 -:10354000F8016083718382839383FE01EB58FF4F00 -:10355000C958DF4F28813981621B730B71836083E7 -:1035600080E0B3CF2F923F924F925F926F927F9203 -:103570008F929F92AF92BF92CF92DF92EF92FF9283 -:103580000F931F93CF93DF93CDB7DEB765970FB639 -:10359000F894DEBF0FBECDBF6C016A8B7B8B4B8373 -:1035A000FC01EC5AFF4F10822FEF2D831C821D8AE5 -:1035B00010E31C8A3C013AE0630E711C842F90E0FA -:1035C0009F838E832601E3E54E0E511C4601F5E2F2 -:1035D0008F0E911C9601295A3F4F39872887C601C3 -:1035E000885A9F4F9B878A87F601EA5AFF4FFF87C9 -:1035F000EE8722503109398B288B0A971C01C601AE -:103600000E94FA198823D9F364E0C3010E94731160 -:10361000012F110F110B882399F0F201F081F19520 -:103620002B81F29F202D112422502D8B64E0C301A9 -:103630000E947311811193C0C4010E94FF2094C0A5 -:1036400065E0C3010E9473118111E7CF66E0C301F9 -:103650000E9473118111E1CF8C81811185C044E0FA -:1036600063E0C3010E948511882331F09C899F5F2C -:103670009C8BC4010E94032144E061E0C3010E94CD -:103680008511882331F0EC89E150EC8BC4010E9454 -:103690000321FC898F2F0F2E000C990B2E813F8167 -:1036A0008217930709F46BC0F7FF03C03B813150C9 -:1036B0003C8BF2018081F4E0F80F2C89829FF01995 -:1036C0001124FD8B9D89090F111D97FD1A9517FF78 -:1036D00002C00F5F1F4FF801F595E795FA83E98364 -:1036E0000981102FE885F9851082EA85FB85008322 -:1036F00021E0EE85FF852083E889F9891082EA8838 -:10370000FB88B12CA12C2C89022E000C330B3D8799 -:103710002C878E819F818A159B0599F1EC85FD850B -:10372000EA15FB0579F423E0E885F9852083F201A9 -:103730008081F02F2C89289FF00D11248F2FEA858E -:10374000FB858083F70165917491C1010E94492432 -:10375000FFEFAF1ABF0A22E0E20EF11CDACFC4017C -:103760000E94FB203C893D83C8013D89831B910950 -:1037700037FD9395029764F181E08C83A3CF1C8A77 -:1037800098CF60E0C1010E946C12F20180814981F2 -:10379000FC89F89F400D1124415024E560E0C101EF -:1037A0000E94901261E0C1010E946C12F2018081BE -:1037B00003E0080F4981FC898F9F400D112442507E -:1037C00083E0E82E24E560E0C1010E94601417CF79 -:1037D0008D8165960FB6F894DEBF0FBECDBFDF9129 -:1037E000CF911F910F91FF90EF90DF90CF90BF90FE -:1037F000AF909F908F907F906F905F904F903F9091 -:103800002F9008950F931F93CF93DF93EC018C01BA -:10381000025B1F4FC8010E940E1264E775E0C801E9 -:103820000E940324C8010E94271283E00E947D2584 -:1038300083E891E0EEEFFFE30995FE01EC5AFF4FBC -:1038400010826FE475E0C8010E944924C8010E94FB -:1038500027122A96CE010E94461164E0CE010E94F2 -:103860007311811107C062E370E080E090E00E9474 -:103870003722F0CFDF91CF911F910F9108952F92B2 -:103880003F924F925F926F927F928F929F92AF92F0 -:10389000BF92CF92DF92EF92FF920F931F93CF933D -:1038A000DF93CDB7DEB729970FB6F894DEBF0FBE12 -:1038B000CDBF998788877B836A832A013C0180E793 -:1038C000680E711CF3018081882309F4F7C081E040 -:1038D000E885F985EA5AFF4F8083E885F985EB5A38 -:1038E000FF4F1082E885F985EC5AFF4F1082E8857A -:1038F000F985108E8F01025B1F4F61E0C8010E94A5 -:103900006C12888599858D5A9F4F9F838E83A884DA -:10391000B98497E5A90EB11CE884F984E8E5EE0EB8 -:10392000F11C88849984F2E58F0E911C8885998515 -:103930008F589F4F9D838C83288439849AE0290E69 -:10394000311CC884D984E5E2CE0ED11C88859985C6 -:103950000E94FA198823D1F3EA81FB81F491F9835B -:10396000FF2321F0EE81FF81F081F9832EED35E018 -:1039700040E060E0C8010E94F6144114510439F09F -:103980004981445F920160E0C8010E94F614F5018C -:1039900010828CE0F70180836A817B81C8010E94DC -:1039A0000324F4018081982F990F990F891B8D5A58 -:1039B000F5018083EE81FF818081982F990F990F07 -:1039C000891B835DF7018083EC81FD8180816AED35 -:1039D00075E084FD02C066ED75E0C8010E944924CF -:1039E000F4018081982F990F990F891B8D5AF50149 -:1039F0008083F70180818F5F8083E885F98582A5C8 -:103A000062ED75E0811102C06EEC75E0C8010E94A4 -:103A10004924F4018081982F990F990F891B8D5AA1 -:103A2000F5018083F70180818F5F80836AEC75E008 -:103A3000C8010E94492465E0C1010E9473118823D6 -:103A400051F0E885F98562A56F5FC6010E940721E4 -:103A5000C6010E94032164E0C1010E94731181111B -:103A60001FC0F3012081422F50E070E060E0EC8144 -:103A7000FD8180819181A281B38184179507A6077A -:103A8000B70710F02F3F61F466E0C1010E94731187 -:103A9000882309F45BCF888599850E94021C56CF44 -:103AA0008FEFF301808360E0C6010E949920C60178 -:103AB0000E94FB2081E0E885F985808F29960FB66A -:103AC000F894DEBF0FBECDBFDF91CF911F910F9154 -:103AD000FF90EF90DF90CF90BF90AF909F908F902E -:103AE0007F906F905F904F903F902F90089550E09F -:103AF00040E00C943F1CE0E8F7E72591349181E029 -:103B00002130304C09F080E00895CF93DF93EC0131 -:103B10000E947B1D9E01275A3F4FDE01A059BF4FD7 -:103B2000882309F440C0E6E9F7E78491F90180832E -:103B3000E7E9F7E7E491EC83E8E9F7E7E491ED835F -:103B4000E9E9F7E7859194919F838E83EBE9F7E7A5 -:103B50008591949199878887EDE9F7E7E491EBA740 -:103B6000EEE9F7E7E491EAA7EFE9F7E7E491EC93F0 -:103B7000E0EAF7E7859194919D8F8C8FE2EAF7E771 -:103B8000859194919F8F8E8FE4EAF7E785919491C8 -:103B900099A388A3E6EAF7E7859194919BA38AA36A -:103BA000DF91CF9108958CE3F90180831C828FEF20 -:103BB0008D8320E233E03F832E8324ED33E0398789 -:103BC000288791E09BA79AA78C938CEA9DE09D8F14 -:103BD0008C8F8EED9DE09F8F8E8F84E79EE099A362 -:103BE00088A38CE39FE0DACFCF92DF92EF920F931E -:103BF000CF93DF93EC01FC01E158FF4F82E3808318 -:103C0000349781E090E0A0E0B0E080839183A283CC -:103C1000B3833B978FEF8083CE010E94851DCE0139 -:103C20000E9413216FEFCE010E9417216E018AE0DE -:103C3000C80ED11CC6010E943611C6010E94461151 -:103C4000CE0148960E947A218EE0E82E0FE020E116 -:103C50004BE06DE0CE01825B9F4F0E943117A5962D -:103C6000CE010E94981E65E0C6010E947311882350 -:103C700051F060E0CE01DF91CF910F91EF90DF9096 -:103C8000CF900C94072140E06EE476E0CE01DF9106 -:103C9000CF910F91EF90DF90CF900C942C1FCF938A -:103CA000DF93D62FC72F0E947B1D882359F0AD2F9D -:103CB000BC2FEBE8F7E784918D933196E53987E7E0 -:103CC000F807C9F7DF91CF910895CF93DF93DC0117 -:103CD00070E0660F771F1F96ED91FC915097E60FED -:103CE000F71F2591349190963C932E935F97F9019D -:103CF0004591549114968C911497849F402D1124D2 -:103D000091964C939197F901C591D4916D2F70E0E4 -:103D10004617170629F020F0F90125913491432F19 -:103D2000849F402D112492964C93DF91CF9108955A -:103D300021E0FC01248324E020A72DEA36E0308B2B -:103D4000278760E00E94651E61E070E083E00E94CA -:103D5000B322E1EBF0E08081887F81608083F8947A -:103D600010928000E1E8F0E010821092850010923D -:103D7000840088E191E0909389008093880080819D -:103D800088608083808181608083EFE6F0E08081BD -:103D900082608083789408950F93FC01011107C01D -:103DA0006230D9F030F4662379F0613091F00F91F0 -:103DB00008956330C9F06430D1F76481649F402D69 -:103DC0001124458F268FF3CF4B3008F04AE0468B05 -:103DD000EECF642F0F910C94651E6481649F402D7B -:103DE0001124418F228FE3CF6481649F402D1124E1 -:103DF000438F248FDCCF8091CE07882329F08091D8 -:103E0000CB078093B400089580E0FBCFFC01178AB4 -:103E1000158A14A213A2108E1092CB071092CC0711 -:103E20001092CE070C94FB1E0F931F93CF93DF933A -:103E3000EC018B010E94061F1E870D871B8A1A8AC0 -:103E400081E0898389E08E8B198E1B8E1D8EDF9118 -:103E5000CF911F910F910895411102C00C94141F2E -:103E60000895CF93DF93EC01611115C088818823F9 -:103E700091F0898181110FC0E9858E2F90E0880F24 -:103E8000991FEF81F885E80FF91F859194918F3F75 -:103E9000980721F41882DF91CF9108959C87992784 -:103EA000880F991FEA85FB85E80FF91F65917491CA -:103EB000CE010E94141F89858F5F8987ECCF60E057 -:103EC0000C94311F0F93CF93DF93EC01611166C007 -:103ED0008981882309F462C08D8981115FC08D8535 -:103EE0009E85EA89FB89EE0FFF1FE80FF91F4591B8 -:103EF00054914115510541F42989213021F51B8A3E -:103F00001A8AFC0145915491BA0176956795769588 -:103F10006795862F40FF2EC0252F2695269526953E -:103F2000205186E0569547958A95E1F74F716F705D -:103F300000E0CE010E94CC1EEA89FB893196FB8B02 -:103F4000EA8BCF010AC019828881882369F060E07A -:103F5000CE010E94311F8A899B89880F991FED85A8 -:103F6000FE85E80FF91FCECFCE01DF91CF910F91E3 -:103F70000C94061F8F738C8B8C81859F802D112450 -:103F80008D8B1DA21CA21BA281E08F8B8093CE077C -:103F9000188E8A899B8901969B8B8A8BDF91CF91A2 -:103FA0000F91089560E00C94621FCF93DF93EC01B2 -:103FB0006111B3C08F89882309F4AFC08D89811145 -:103FC00005C0CE01DF91CF910C94061F81508D8BDF -:103FD0008DA1811134C02BA13CA12F5F3F4FC9019E -:103FE000880F991FEF8DF8A1E80FF91F8591949123 -:103FF000482F47704EA3492F469546954FA3AC01D5 -:1040000064E0569547956A95E1F74F739C81499F07 -:10401000402D11244DA383FB882780F98093CA0784 -:104020003CA32BA389A190E02817390740F02AA1CF -:10403000222309F475C0821B91099CA38BA38DA137 -:1040400081508DA3888D31E0380F388F4C892FA196 -:10405000240F8C85280F2A836B8D662361F070E016 -:10406000832F032E000C990B0E94BC258C8D869FFC -:10407000200D11242A838A8190E0CB966BE370E0B7 -:104080000E94BC258A832E892B83698D662371F05B -:10409000062E000C770B832F032E000C990B0E9429 -:1040A000BC258A8D869F200D11242B836D8D662360 -:1040B00089F0832F330F990B70E00E94BC25CB0150 -:1040C00062E070E00E94BC252E8D9B81289F900DA0 -:1040D00011249B834F3341F18B818A300CF089E0AE -:1040E00087FD80E08B83F894EA81F0E0E45AF94F91 -:1040F000E491E093CD078D8198A5899F802D1124AF -:104100009B81899F802D11249EA1899F802D112440 -:104110008093CC078093CB077894DF91CF9108955B -:10412000CE010E94061F8BCF1B82DDCF60E00C9476 -:10413000D51FCF93DF93EC01611103C00E94061FCE -:104140001982DF91CF910895CF93DF93EC010E9404 -:10415000061F1982DF91CF9108956091CC076623E5 -:1041600029F18091CF078F5F8093CF079091CD0782 -:104170008917E0F081E09091CE07911180E0809363 -:10418000CE071092CF078091CA07882369F08091EB -:10419000040193E4899F802D1124895B809304019D -:1041A0000E949C259093CB070C94FB1E08951F92B0 -:1041B0000F920FB60F9211242F933F934F935F935B -:1041C0006F937F938F939F93AF93BF93EF93FF93DF -:1041D0000E94AD20FF91EF91BF91AF919F918F9180 -:1041E0007F916F915F914F913F912F910F900FBEF3 -:1041F0000F901F90189565EA76E00C94141F6DE9F6 -:1042000076E00C94141F67E976E00C94141FFC010F -:10421000862F660F990B668170E06F5F7F4F0E945B -:10422000BC258583089521E0FC012083089570E07A -:1042300085E00C94B322AF92BF92CF92DF92EF92BF -:10424000FF920F931F93CF93DF93EC0189819A81A3 -:104250002FE0289F8001299F100D112485E10E94E5 -:104260009822800F911F24E0969587952A95E1F773 -:104270009A8389832881222391F1EC81AD80B12C2E -:10428000D12CC12CA885B9857D0110E000E06E819C -:104290007F819B0150E040E08617970728F0BC0122 -:1042A000A817B90708F4BD0190E080E01F921F92A3 -:1042B0001F92EF930E9418256B830F900F900F9021 -:1042C0000F9070E085E0DF91CF911F910F91FF90EB -:1042D000EF90DF90CF90BF90AF900C94B322DF911E -:1042E000CF911F910F91FF90EF90DF90CF90BF90F3 -:1042F000AF900895FC018CE39FE09383828384E078 -:10430000818381E084870895CF93DF93EC018C81D2 -:104310009D81892B21F18C858F7139F584E10E9473 -:104320009822BC01990F880B990B0E946E2626EEED -:104330003FE34EEC50E40E94FA260E943D269B018A -:104340007B836A83672BA9F084E08983FE0134961E -:1043500080E0419151912417350720F48983DF9142 -:10436000CF9108958F5F8430A1F78C858F5F8C8704 -:10437000F6CF8FEF8983F9CF1F920F920FB60F926E -:1043800011242F933F938F939F93AF93BF9380916B -:10439000D1079091D207A091D307B091D407309163 -:1043A000D00723E0230F2D3758F50196A11DB11D2D -:1043B0002093D0078093D1079093D207A093D3077F -:1043C000B093D4078091D5079091D607A091D707D5 -:1043D000B091D8070196A11DB11D8093D507909388 -:1043E000D607A093D707B093D807BF91AF919F91FD -:1043F0008F913F912F910F900FBE0F901F901895A6 -:1044000026E8230F0296A11DB11DD2CF2FB7F89435 -:104410006091D1077091D2078091D3079091D40712 -:104420002FBF08953FB7F8948091D5079091D60794 -:10443000A091D707B091D80726B5A89B05C02F3FFC -:1044400019F00196A11DB11D3FBFBA2FA92F982FBA -:104450008827BC01CD01620F711D811D911D42E0B5 -:10446000660F771F881F991F4A95D1F70895CF923D -:10447000DF92EF92FF92CF93DF936B017C010E945A -:104480001222EB01C114D104E104F10439F4DF91EB -:10449000CF91FF90EF90DF90CF9008950E9412226D -:1044A0006C1B7D0B683E734068F381E0C81AD1082D -:1044B000E108F108C851DC4FE5CF789484B58260FB -:1044C00084BD84B5816084BD85B5826085BD85B5B8 -:1044D000816085BDEEE6F0E0808181608083E1E867 -:1044E000F0E010828081826080838081816080839F -:1044F000E0E8F0E0808181608083E1EBF0E08081A2 -:1045000084608083E0EBF0E0808181608083EAE773 -:10451000F0E08081846080838081826080838081FC -:10452000816080838081806880831092C1000895BB -:104530008E3008F08E502091050190E4299F900163 -:1045400011248770822B80937C0080917A00806494 -:1045500080937A0080917A0086FDFCCF809178006C -:104560009091790008951F93CF93DF93182FEB015B -:1045700061E00E943923209739F460E0812FDF91B8 -:10458000CF911F910C947523CF3FD10511F461E0B9 -:10459000F5CFE12FF0E0E754F94FE491E33031F14A -:1045A00040F4E130B1F0E230E1F0C038D1057CF701 -:1045B000E4CFE63029F1E73059F1E430B1F78091EA -:1045C0008000806280938000D0938B00C0938A002B -:1045D00004C084B5806884BDC7BDDF91CF911F91B1 -:1045E000089584B5806284BDC8BDF7CF80918000F6 -:1045F000806880938000D0938900C0938800EDCFBD -:104600008091B00080688093B000C093B300E5CF84 -:104610008091B00080628093B000C093B400DDCF81 -:10462000833081F028F4813099F08230A9F0089528 -:104630008630A9F08730C9F08430B1F480918000D1 -:104640008F7D03C0809180008F77809380000895D4 -:1046500084B58F7784BD089584B58F7DFBCF80911D -:10466000B0008F778093B00008958091B0008F7D67 -:10467000F9CFCF93DF9390E0FC01E353F94F2491FE -:104680008F51994FFC0184918823C9F090E0880FE5 -:10469000991FFC01E75FF84FA591B491FC01E1502F -:1046A000F94FC591D49161110DC09FB7F8948C91C9 -:1046B000209582238C938881282328839FBFDF91B4 -:1046C000CF910895623051F49FB7F8943C91822FB6 -:1046D000809583238C93E8812E2BEFCF8FB7F894AE -:1046E000EC912E2B2C938FBFEACF1F93CF93DF93A8 -:1046F000162F282F30E0F901E754F94F8491F90182 -:10470000E353F94FD491F901EF51F94FC491CC2300 -:10471000A1F081110E941023EC2FF0E0EE0FFF1F9B -:10472000E150F94FA591B4918FB7F894EC91111124 -:1047300008C0D095DE23DC938FBFDF91CF911F910E -:104740000895DE2BF8CFCF93DF93282F30E0F901C7 -:10475000E754F94F8491F901E353F94FD491F901EA -:10476000EF51F94FC491CC23A1F081110E94102385 -:10477000EC2FF0E0EE0FFF1FEB50F94FA591B49135 -:10478000EC91ED2381E090E009F480E0DF91CF919E -:10479000089580E090E0FACFCF92DF92EF92FF92FF -:1047A0000F931F93CF93DF936C01EB017B01E40E1A -:1047B000F51E10E000E0CE15DF0561F06991D6012D -:1047C000ED91FC910190F081E02DC6010995080F53 -:1047D000191FF1CFC801DF91CF911F910F91FF9069 -:1047E000EF90DF90CF900895FB0101900020E9F752 -:1047F0003197AF01461B570BDC01ED91FC91028014 -:10480000F381E02D0994EF92FF920F931F93CF93C2 -:10481000DF937C018B01D0E0C0E0F80164910F5F71 -:104820001F4F662359F0D701ED91FC910190F08163 -:10483000E02DC7010995C80FD91FEFCFCE01DF9139 -:10484000CF911F910F91FF90EF9008956115710521 -:1048500011F00C94F42390E080E00895DC01ED91D8 -:10486000FC910190F081E02D09940F931F93CF9359 -:10487000DF93EC016DE00E942E248C016AE0CE01F2 -:104880000E942E24800F911FDF91CF911F910F91D5 -:1048900008950F931F93CF93DF93EC010E9403249D -:1048A0008C01CE010E943524800F911FDF91CF91A2 -:1048B0001F910F9108958F929F92AF92BF92CF92C6 -:1048C000DF92EF92FF920F931F93CF93DF93CDB7B9 -:1048D000DEB7A1970FB6F894DEBF0FBECDBF6C0157 -:1048E000142FE52FCB01022F19A2223008F40AE081 -:1048F0007E0121E2E20EF11C802E912CB12CA12C24 -:10490000612F7E2FA50194010E94D025029F1019CE -:1049100011241A303CF5105DF70112937F01122F1C -:10492000E32FCA01232B242B252B51F790E080E0A5 -:10493000E114F10421F0B701C6010E94F423A1960D -:104940000FB6F894DEBF0FBECDBFDF91CF911F91A0 -:104950000F91FF90EF90DF90CF90BF90AF909F901E -:104960008F900895195CD8CFCF92DF92EF92FF928B -:104970000F931F93CF93DF93EC016A017B01211505 -:10498000310579F4E881F9810190F081E02D642FFF -:10499000DF91CF911F910F91FF90EF90DF90CF901B -:1049A00009942A303105E9F42AE0F7FE1AC06DE2D5 -:1049B0000E942E248C0144275527BA014C195D0909 -:1049C0006E097F092AE0CE010E945B24800F911FAF -:1049D000DF91CF911F910F91FF90EF90DF90CF90DB -:1049E0000895B701A601CE01DF91CF911F910F91DC -:1049F000FF90EF90DF90CF900C945B249A01AB0175 -:104A0000770F660B770B0C94B4242115310541F414 -:104A1000DC01ED91FC910190F081E02D642F09946F -:104A20000C945B249A01AB0170E060E00C940525C6 -:104A30004F925F926F927F92AF92BF92CF92DF922E -:104A4000EF92FF920F931F93CF93DF93CDB7DEB713 -:104A500029013A019B01AC0124193509460957097E -:104A600089899A89AB89BC89BC01CD016A197B0906 -:104A70008C099D090E948C25A801970124193509EC -:104A8000460957090E94F225CA01B9016A0D7B1D2A -:104A90008C1D9D1DDF91CF911F910F91FF90EF9085 -:104AA000DF90CF90BF90AF907F906F905F904F90CE -:104AB000089561E08AE00E94752361E08AE00E9427 -:104AC00039238CB580618CBD8CB580648CBD61E070 -:104AD0008DE00E94392361E08BE00C943923811131 -:104AE00004C08CB580628CBD08958CB58F7DFBCFE2 -:104AF0009CB5937F892B8CBD08959CB59C7F282FF6 -:104B00002370922B9CBD9DB582FB222720F9892F13 -:104B10008E7F822B8DBD0895DB018F939F930E9422 -:104B20001126BF91AF91A29F800D911DA39F900D63 -:104B3000B29F900D11240895991B79E004C0991F2C -:104B4000961708F0961B881F7A95C9F780950895E7 -:104B5000AA1BBB1B51E107C0AA1FBB1FA617B707A3 -:104B600010F0A61BB70B881F991F5A95A9F78095BF -:104B70009095BC01CD01089597FB072E16F4009483 -:104B800007D077FD09D00E94A82507FC05D03EF488 -:104B9000909581959F4F0895709561957F4F0895E9 -:104BA000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F31 -:104BB000EE1FFF1FA217B307E407F50720F0A21BA3 -:104BC000B30BE40BF50B661F771F881F991F1A9410 -:104BD00069F760957095809590959B01AC01BD013A -:104BE000CF010895052E97FB1EF400940E9409261C -:104BF00057FD07D00E94D02507FC03D04EF40C943B -:104C0000092650954095309521953F4F4F4F5F4F66 -:104C1000089590958095709561957F4F8F4F9F4F28 -:104C200008950E942E26A59F900DB49F900DA49FDD -:104C3000800D911D112408950024A7FD00942A0FD2 -:104C4000301D401D501D601D701D801D901D08955C -:104C5000EE0FFF1F0590F491E02D0994A29FB00183 -:104C6000B39FC001A39F700D811D1124911DB29FA0 -:104C7000700D811D1124911D08950E94D92688F080 -:104C80009F5798F0B92F9927B751B0F0E1F0660F10 -:104C9000771F881F991F1AF0BA95C9F714C0B13051 -:104CA00091F00E94F326B1E008950C94F326672F4B -:104CB000782F8827B85F39F0B93FCCF38695779580 -:104CC0006795B395D9F73EF4909580957095619569 -:104CD0007F4F8F4F9F4F0895E89409C097FB3EF494 -:104CE00090958095709561957F4F8F4F9F4F992339 -:104CF000A9F0F92F96E9BB279395F69587957795B7 -:104D00006795B795F111F8CFFAF4BB0F11F460FF76 -:104D10001BC06F5F7F4F8F4F9F4F16C0882311F0CE -:104D200096E911C0772321F09EE8872F762F05C0E2 -:104D3000662371F096E8862F70E060E02AF09A957D -:104D4000660F771F881FDAF7880F9695879597F972 -:104D5000089597F99F6780E870E060E008959FEFFD -:104D600080EC089500240A94161617061806090602 -:104D7000089500240A9412161306140605060895D1 -:104D8000092E0394000C11F4882352F0BB0F40F459 -:104D9000BF2B11F460FF04C06F5F7F4F8F4F9F4F99 -:104DA000089557FD9058440F551F59F05F3F71F01B -:104DB0004795880F97FB991F61F09F3F79F0879582 -:104DC0000895121613061406551FF2CF4695F1DF0B -:104DD00008C0161617061806991FF1CF869571059B -:104DE000610508940895E894BB2766277727CB01CF -:104DF00097F908950E940D270C94C0260E94B226B0 -:104E000038F00E94B92620F0952311F00C94A926C1 -:104E10000C94AF2611240C94F4260E94D12670F332 -:104E2000959FC1F3950F50E0551F629FF001729F4F -:104E3000BB27F00DB11D639FAA27F00DB11DAA1F5E -:104E4000649F6627B00DA11D661F829F2227B00DAB -:104E5000A11D621F739FB00DA11D621F839FA00D36 -:104E6000611D221F749F3327A00D611D231F849F86 -:104E7000600D211D822F762F6A2F11249F575040DD -:104E80009AF0F1F088234AF0EE0FFF1FBB1F661F58 -:104E9000771F881F91505040A9F79E3F510580F021 -:104EA0000C94A9260C94F4265F3FE4F3983ED4F3C7 -:104EB000869577956795B795F795E7959F5FC1F7C5 -:104EC000FE2B880F911D9695879597F908958F92DF -:104ED0009F92AF92BF92CF92DF92EF92FF92CF93C9 -:104EE000DF93EC01688179818A819B81611571056D -:104EF0008105910521F464E279ED8BE597E02DE1E0 -:104F000033EF41E050E00E94F22549015A019B0134 -:104F1000AC01A7EAB1E40E9411266B017C01ACEE62 -:104F2000B4EFA50194010E94CD27DC01CB018C0DCB -:104F30009D1DAE1DBF1DB7FF03C00197A109B0485D -:104F400088839983AA83BB839F77DF91CF91FF905A -:104F5000EF90DF90CF90BF90AF909F908F9008958B -:104F60000E946727089580E091E00E9467270895D6 -:104F7000B0E0A0E08093000190930101A0930201B2 -:104F8000B09303010895DC0101C06D93415050407E -:104F9000E0F70895B7FF0C9411260E941126821B9A -:104FA000930B089513E0CCE8D3E004C0FE010E9407 -:0E4FB00028262196CD38D107C9F7F894FFCFF7 -:104FBE00010000000101FA000000FD0013020008CC -:104FCE00000400422E424152520041545441434B80 -:104FDE0000432E504541532E00432E534C44522E27 -:104FEE0000432E54574E432E0013011A012101295E -:104FFE00013101010100000000000000000032003C -:10500E0019000A00320000000000000064000000D9 -:10501E000000000000000000C800000000000000BA -:10502E00000000001950006400C800000000009F3E -:0A503E0018CC234C4F4144455200AA -:040000030000076E84 +:1000A000726500436F756C64206E6F7420637265B7 +:1000B00061746520756E697400506F70756C2E20C8 +:1000C0006C696D697400496E737566662E20726581 +:1000D000736F75726365730018181F80007E0000CF +:1000E000F80000F00000F80000F80004F80004F840 +:1000F0000004FAE004FA8004FA8004FA8004FA802A +:1001000004FA8004FAE004F8600CF80010FC000027 +:10011000FF0000FFF180FFF180FFF1807FF1801F81 +:100120008180181803FFC00C003037FFEC780016F0 +:10013000AFFFF5A80015A8FF15A88115A8FFD5AB3E +:100140008155AAA5D5AB8155AAA555AB81D5A8994E +:1001500015A8FF15A6006591C3898C423183C3C1E0 +:1001600040420230420C0C423003C3C01818000059 +:10017000000000FEFE00FEFE003E3E00FEFE00FE11 +:10018000FE001E1E001E1E001E1E001E1E001E1E45 +:10019000001E1E001E1E001E1E001E1E001E1E0033 +:1001A0001E1E001E1E00FEFE00FEFE003E3E00FE65 +:1001B000FE00FEFE00FE1818E700E7BD00BDE7FFE9 +:1001C000E7BD00BD81FF81E700E7A500A5BDFFBD3C +:1001D000A500A5A500A5A500A5A500A5A500A5A508 +:1001E00000A5A500A5A500A5E700E7BD00BDE7FFA8 +:1001F000E7BD00BD81FF81811881812481FFFFFF60 +:100200000808E0BCC299BDFF5D4708083C4299BDA3 +:10021000FE5840400808003C4299A56618000808AE +:1002200060BCC299A5671D024E023D023502300234 +:1002300051756974004F7074696F6E73004D756C01 +:100240007469706C617965722067616D65005369CE +:100250006E676C6520706C617965722067616D6591 +:10026000000303070507050405050405030603024B +:1002700007020201020203020E090E0E0D0E0E0FFE +:100280000E070507050307050F0507050706070104 +:10029000020502000702020700020702000207022D +:1002A0000007060306070702020505020102020411 +:1002B0000200050202050006070505070502030204 +:1002C000020602000000000B0003000307050704FC +:1002D00007010502050707040003000007050507DD +:1002E00000050005020702000C00020202000400E3 +:1002F00004020107050705070401070405070203B7 +:1003000002070407010706060101070707070303A1 +:1003100007000500000D00020500050505000502A7 +:100320000107030F09030603060707020205050775 +:100330000702070705070301070506070207050768 +:100340000504040307020507040407030707010661 +:100350000705070703030705030703060407010151 +:100360000701070407030403070607050205010642 +:10037000010107040007050102040507000201024C +:100380000808080003000603060707020205050720 +:10039000050207070507030107050607020705070A +:1003A0000504040307020507040407030707010601 +:1003B00007050707030307050307030604070101F1 +:1003C00007010704070304030706070502050106E2 +:1003D00001010704020705000700050702060203E2 +:1003E00007050703053F213F1208120A100A0E1CD9 +:1003F0000E0C1E0C141A14161F161E131E1E1B1E86 +:100400001E1F1E3F213F3A2F3A173D173F213F182D +:100410001F02040A041F0E04040E1F0A1F0A0E0EF8 +:100420001F04110E2E252E2F2A2E262929021F02E7 +:10043000081F08150E04040E150E15151B151B04B8 +:100440000604040C040000000017000300031F0A48 +:100450001F16371A1904130A153A000300000E116B +:10046000110E000A040A040E040030000404040003 +:1004700010001804031F111F121F101D151711154E +:100480001F07041F17151D1F151D01011F1F151F15 +:1004900017151F000A00003200040A110A0A0A1187 +:1004A0000A040115020E11171E051E1F150A0E1152 +:1004B0000A1F110E1F15111F05010E111D1F041F0C +:1004C000111F1108100F1F041B1F10101F061F1EE5 +:1004D000040F0E110E1F09060E112E1F051A1215FC +:1004E00009011F011F101F0F180F1F0C1F1B041BDA +:1004F000031C03191513001F11030418111F000218 +:1005000001022020200001020C121E1F120C0C12EE +:10051000120C121F0C1A14041E05242A1E1F021C82 +:10052000141D1020201D1F0814111F101E041E1E54 +:10053000021C0C120C3E0A040C123E1E040214167D +:100540000A020F120E101E0E100E1E081E120C12A2 +:1005500026281E322A26041E21001F00211E040107 +:1005600002013F213F0A4E6F2053442063617264B1 +:10057000206F720A6E6F204C4F414445522E484501 +:10058000580A0A153A45786974001D20466C617353 +:1005900068696E670A20206C6F616465722E2E2E6A +:1005A0000A0A444F4E2754205455524E204F464677 +:1005B00021000A0A153A49676E6F7265006D560A86 +:1005C0000A504C45415345205455524E204F464603 +:1005D00020004C4F5720424154544552592120008D +:1005E000175344001613780016131400151020003A +:1005F00015201000540A03E181867F3E186D830F99 +:100600000F0E0183866033186DC3198F1803C38ED4 +:100610006033186DE330CF1803C39E603630CDE3EE +:1006200060CF3006C79E7E3E30CDB360CF300CC663 +:10063000F6603330D9B660CF33CFCCF66061B0DB33 +:100640001E60CF30D86CE6C061B0DB1E618F199898 +:100650006CC6C063B19B0E330F0FB078C6FF7E1F10 +:100660001B061E0F050089300802380249786814FD +:100670000000F6E8DBCFC3B8AEA49B928A827B74FD +:100680006E68625C57524E4945413E3A3734312ECE +:100690002C29272523211F1D1C1A19171615141381 +:1006A0001211100F0E0D0C0B0A0908070645006801 +:1006B00001000005006801380100000500380168EC +:1006C000010000CB06C7060101FF030101F703008B +:1006D0000000070002010000030406000000000003 +:1006E00000000001020408102040800102040810EC +:1006F0002001020408102004040404040404040279 +:1007000002020202020303030303030000000023AA +:10071000002600290000000000250028002B000012 +:10072000000000240027002A0000D303230427042C +:1007300011241FBECFEFD8E0DEBFCDBF11E0A0E097 +:10074000B1E0E8E8F1E502C005900D92A238B107EA +:10075000D9F727E0A2E8B1E001C01D92A13DB207A0 +:10076000E1F713E0C7E9D3E004C02197FE010E943E +:100770000D27C539D107C9F70E94C2030C94B728C9 +:100780000C9400000E9442230E94AA0482E891E097 +:100790000E94D91E68E670E082E891E00E945C1E2B +:1007A0000E940B12F7CF1092D3011092D20186E76C +:1007B00091E09093D1018093D001089582E192E07D +:1007C0000E94670881E08093120287E890E090938E +:1007D00011028093100282E080930F0210920D02AA +:1007E00010920E0286E28093090284E180930A024D +:1007F0000E94720586E090E00E948606882349F0F8 +:1008000042E067E770E082E891E00E94971B811167 +:10081000089582E192E00E941A0D0E94BA068111A9 +:100820000E942B040E947A058823E1F30E9484052C +:1008300082E192E00E94560C89E092E00E949405C9 +:100840000E944704D7CF82E192E00C94CA0682E16D +:1008500092E00C94CB0680913B05811117C081E09A +:1008600080933B0530913C0520913D0580913E05EC +:1008700080913F058091400580914105809142051E +:1008800080914305832F922F0C949D2808952091E9 +:100890003C0530913D0540913E0550913F056091EA +:1008A0004005709141058091420590914305A1E07A +:1008B0000E94012720933C0530933D0540933E055F +:1008C00050933F0560934005709341058093420526 +:1008D0009093430508958F929F92AF92BF92CF92CB +:1008E000DF92EF92FF924B015C0169017A010E9455 +:1008F0009828BC01990F880B990BC818D908EA08E9 +:10090000FB08A70196012F5F3F4F4F4F5F4F0E949B +:10091000B526680D791D8A1D9B1DFF90EF90DF9015 +:10092000CF90BF90AF909F908F900895E9EDF4E045 +:10093000138612861186108610821182128213820B +:1009400014821582168217823C9685E0E933F807F7 +:1009500079F7089510923C0510923D0510923E05DE +:1009600010923F05109240051092410510924205E9 +:100970001092430510923A050E9496041092390590 +:100980000895FC01DB01608171814D915C911197AB +:1009900014962C911497240F352F311D621773076D +:1009A000E8F48481860F972F911D48175907B0F4FA +:1009B0006281738112964D915C91139715968C917B +:1009C000840F952F911D6817790740F42581260F14 +:1009D000372F311D81E04217530708F080E0817006 +:1009E0000895AF92BF92CF92DF92EF92FF920F9352 +:1009F0001F93CF93DF937C01EA016115710561F4C8 +:100A000080E0DF91CF911F910F91FF90EF90DF90E9 +:100A1000CF90BF90AF900895E0E057FF04C08DE203 +:100A2000F7018083E1E085E0C82ED12C20E137E298 +:100A300040E08B01015011099AE0A92EB12CCE01A2 +:100A4000B9010E948D26629FC001639F900D112401 +:100A5000C81BD90B611102C0442361F081E08E0FE5 +:100A6000EE0DFF2DF11D605D60838017110640F6CD +:100A7000E82F41E0C901B5010E948D269B01F1E0FC +:100A8000CF1AD108E1F6EE0DFF2DF11D108281E0A5 +:100A9000B8CF889FA001899F500D500D1124669FEB +:100AA0009001679F300D300D1124B90190E080E076 +:100AB000640F751F811D911D089550E0480F511D51 +:100AC00087FD5A9557FD0CC0843554F430E0260F4D +:100AD000311D67FD3A9537FD03C081E060330CF0AE +:100AE00080E008951092D60163EE73E080ED91E00E +:100AF0000C94021882E891E00E94DF1A91E08111C3 +:100B000001C090E0892F089560E080ED91E00E949F +:100B1000041380ED91E00C94F312FC0123814281D7 +:100B2000618180810C945D05EF920F931F93CF93A9 +:100B3000DF93EC01009701F10E948D058823E1F01D +:100B40001091F00140E06E8180ED91E00E9455131C +:100B50002F813885ED800C814981688180ED91E09D +:100B60000E941B17612F80ED91E0DF91CF911F91C3 +:100B70000F91EF900C945113DF91CF911F910F9132 +:100B8000EF900895FC01849108950196FC018491F1 +:100B900008954CE3BC0182E891E00C94B7190F93DF +:100BA0001F93CF93DF938C01C091EE01D091EF01A1 +:100BB00022974093D9012093DA0180ED91E00E94C1 +:100BC000021840E061E080ED91E00E945513B80109 +:100BD00080ED91E00E940B25209749F0BE0180ED49 +:100BE00091E0DF91CF911F910F910C940218DF914A +:100BF000CF911F910F910895FF920F931F93CF9361 +:100C0000DF93D82F162FC42FF22E242F0E945D05BC +:100C10008823C1F00091F0016F2D80ED91E00E94DA +:100C200051132C2F412F6D2F80ED91E00E94E21384 +:100C3000602F80ED91E0DF91CF911F910F91FF9098 +:100C40000C945113DF91CF911F910F91FF90089554 +:100C5000EF92FF920F931F93CF93DF93C82FD62F5E +:100C6000142FF22E0E945D058823D1F0E090F00150 +:100C7000602F80ED91E00E9451130F2D212F4D2FF9 +:100C80006C2F80ED91E00E9491136E2D80ED91E02C +:100C9000DF91CF911F910F91FF90EF900C94511322 +:100CA000DF91CF911F910F91FF90EF900895EF92F8 +:100CB000FF920F931F93CF93DF93C82FD62F142F3C +:100CC000F22E0E945D058823D1F0E090F001602FA4 +:100CD00080ED91E00E9451130F2D212F4D2F6C2F8D +:100CE00080ED91E00E94B9136E2D80ED91E0DF91CF +:100CF000CF911F910F91FF90EF900C945113DF91C2 +:100D0000CF911F910F91FF90EF900895682F8CE87D +:100D100091E00E94611291E0811101C090E0892F61 +:100D20000895CF93C62F682F8CE891E00E9480121F +:100D300091E0C81708F090E0892FCF91089560E006 +:100D40000C94910681E090E00E949F06811110C0F2 +:100D500083E090E00E949F0681110AC090E080E04D +:100D60000E949F06811104C082E090E00C949F06CF +:100D700081E008950E94A20681110AC084E090E0FB +:100D80000E949F06811104C085E090E00C949F06AC +:100D900081E00895089508950F931F93CF93DF93F3 +:100DA000CDB7DEB728970FB6F894DEBF0FBECDBF24 +:100DB000162F88E4898380E58A838DE38B8300E0A6 +:100DC00028E044E56BE280E00E945706412F50E0A6 +:100DD00065E070E0CE0104960E94F1042CE244E04C +:100DE00061E672E0CE0101960E94CF0528960FB60B +:100DF000F894DEBF0FBECDBFDF91CF911F910F9151 +:100E00000895FC01E954FD4F2081FC0190E080E051 +:100E1000291731F037A131118F5F9F5F7596F8CF99 +:100E20000895EF92FF920F93CF93DF93CDB7DEB784 +:100E300028970FB6F894DEBF0FBECDBF7C018DE3BF +:100E40008A8363E080ED91E00E94511308E024E57D +:100E500040E060E080ED91E00E94B91387E589836E +:100E6000F7014189528966E070E0CE0103960E9445 +:100E7000F10421E048E061E672E0CE0101960E94B3 +:100E8000CF0587E48983F7014389548966E070E0E0 +:100E9000CE0103960E94F10425E042E061E672E093 +:100EA000CE0101960E94CF0586E48983F70145892A +:100EB000568966E070E0CE0103960E94F10421E0BD +:100EC0004AE261E672E0CE0101960E94CF05C701B9 +:100ED0000E940107482F50E063E070E0CE010196C8 +:100EE0000E94F1048981882399F18A81882391F1F4 +:100EF0008B81811131C082E0E1E0F0E0EC0FFD1F59 +:100F0000E80FF11D9FE290838F5F90E068E070E052 +:100F1000681B790B40E250E021E030E02C0F3D1FD0 +:100F2000820F931F0E94F10425E04AE261E672E01D +:100F3000CE0101960E94CF0528960FB6F894DEBF29 +:100F40000FBECDBFDF91CF910F91FF90EF9008952D +:100F500080E0D2CF81E0D0CF83E0CECF6F927F927E +:100F60008F929F92AF92BF92CF92DF92EF92FF92B9 +:100F70000F931F93CF93DF93CDB7DEB72C970FB6A8 +:100F8000F894DEBF0FBECDBF7C016B010F831887C5 +:100F900029873A874B875C87CB010E94E40F29831E +:100FA0003A834B835C836D837E838D809E80F701C3 +:100FB000858996898815990570F069807A8081897C +:100FC00092898615970538F0AB80BC808389948917 +:100FD0008A159B05C0F486EC90E02C960FB6F89429 +:100FE000DEBF0FBECDBFDF91CF911F910F91FF905C +:100FF000EF90DF90CF90BF90AF909F908F907F90B9 +:101000006F900C94C905C7010E940107803208F057 +:101010005BC0F701C70180569D4F27A121114EC02B +:10102000F701E954FD4F808191E0980F908387018B +:10103000F5E18F9F000D111D1124F801D1A2C0A26E +:101040008F819885908F878B89859A85928F818FE4 +:10105000C6010E94DF0FF801878F81E087A3F3E0CC +:10106000CF16D1040CF480E0F80185A3F701818943 +:10107000928986199709928B818B838994898A1921 +:101080009B09948B838B8589968988199909968BFE +:10109000858B2C960FB6F894DEBF0FBECDBFDF91C7 +:1010A000CF911F910F91FF90EF90DF90CF90BF9065 +:1010B000AF909F908F907F906F9008957596E817EE +:1010C000F90709F0AACFE5CF89EB90E086CFEF9240 +:1010D000FF920F931F93CF93DF9300D000D000D0E7 +:1010E000CDB7DEB77C018C0109541D4FD8011C928D +:1010F000FC01EF53FD4F8FEF8083C70188549D4F54 +:101100000E943C0D0E94120EF701779685E1DF01E7 +:10111000982F1D929A95E9F77596E017F107B9F7A0 +:1011200088EE93E0D70152969C938E9351975496F4 +:101130009C938E93539756969C938E93559728E144 +:1011400030E040E050E060E070E0CB010E946B04D2 +:101150007A83698328E130E040E050E060E070E0AD +:10116000CB010E946B04262F7C836B8309811A813B +:101170003C814D815E8165E070E0C7010E94AE0751 +:1011800028E330E040E050E060E370E080E090E091 +:101190000E946B047A83698328E330E040E050E0EA +:1011A00060E370E080E090E00E946B047C836B83DE +:1011B00090E080E00E94A60E8D8390E080E00E9487 +:1011C000B20EF701EC53FD4F108231961082329728 +:1011D00010823397108209811A812B813C814D81C5 +:1011E000582F70E060E0C7010E94AE0726960FB648 +:1011F000F894DEBF0FBECDBFDF91CF911F910F914D +:10120000FF90EF900895CF93DF9300D000D000D0EF +:10121000CDB7DEB7FC01E654FD4F2081318144E1BA +:1012200050E0421B530B88549D4FFC0180819181FB +:1012300026E230E0281B390B3A8329835C834B83F9 +:101240003A815C8168E078E080E090E026960FB615 +:10125000F894DEBF0FBECDBFDF91CF9108953F92CE +:101260004F925F926F927F928F929F92AF92BF92B6 +:10127000CF92DF92EF92FF920F931F93CF93DF9362 +:1012800000D000D000D0CDB7DEB77C018C01A12CFE +:10129000BB24BA946FEF7FEFCB0144244A94542CC3 +:1012A0003201F80127A12223C9F120A5211136C05E +:1012B000C7010E94030929833A834B835C836D83B2 +:1012C0007E83F8018788908CC18CD28C80A191A1FB +:1012D0000E94A60E382EF80180A191A10E94B20EA4 +:1012E0002B813C81C21AD30A682F70E075956795EF +:1012F0006C0D7D1D89819A81881A990A832D90E051 +:1013000095958795880D991D0E9449056415750569 +:101310008605970518F4BA2C2B013C010B5E1F4F74 +:10132000A394F0E2AF12BDCF6039744281059105FC +:1013300010F0BB24BA94F701EF53FD4FB08226960C +:101340000FB6F894DEBF0FBECDBFDF91CF911F91D6 +:101350000F91FF90EF90DF90CF90BF90AF909F9054 +:101360008F907F906F905F904F903F900895FC0119 +:10137000E054FD4F2081222351F03396208121112A +:1013800006C031968081853010F48F5F8083089588 +:101390006F927F928F929F92AF92BF92CF92DF9285 +:1013A000EF92FF920F931F93CF93DF9300D000D063 +:1013B00000D0CDB7DEB75C017B016A0160E1762E1B +:1013C0004C0187E1880E911CF701818592850E946E +:1013D000A60E182FF701818592850E94B20E682E05 +:1013E000F7010081812F90E09C0135952795280F0A +:1013F000391F032E000C440B550B60E070E0CB014D +:101400000E946B04060FF7011281862D90E09C016B +:1014100035952795280F391F032E000C440B550BCB +:10142000662D70E090E080E00E946B04802F90E0D9 +:101430009A838983160F612F70E07C836B83C601CA +:101440000E94A60E8D83C6010E94B20E8E8350E0CC +:1014500040E0B401CE0101960E94131081111FC01B +:1014600009811A812B813C814D815E81B601C501C4 +:101470000E94AE0726960FB6F894DEBF0FBECDBF12 +:10148000DF91CF911F910F91FF90EF90DF90CF9060 +:10149000BF90AF909F908F907F906F9008957A94B7 +:1014A000711092CF83EA90E00E94C905E3CFCF92FA +:1014B000DF92EF92FF920F931F93CF93DF9300D0B1 +:1014C00000D000D0CDB7DEB77C016B010E940309CC +:1014D00029833A834B835C836D837E83C6010E949C +:1014E000A60E8D83C6010E94B20E8D83B701695E80 +:1014F0007F4F50E040E0CE0101960E941310811111 +:1015000019C009811A812B813C814D815E81B60110 +:10151000C7010E94AE0726960FB6F894DEBF0FBE35 +:10152000CDBFDF91CF911F910F91FF90EF90DF9092 +:10153000CF90089581E990E00E94C905ECCF0F9308 +:101540001F93CF93DF93EC01CC53DD4F28818C01A7 +:101550000D531D4F253018F5FC01EF53FD4F208131 +:101560002F3F81F0FC0135E12302E00DF11D112434 +:1015700021E020A7FC01E054FD4F20838B539D4FB9 +:10158000FC011082188281E09881953008F480E097 +:10159000F8018083DF91CF911F910F910895F80199 +:1015A0002081222381F3FC0130E020E040A5442388 +:1015B00039F145E1429FB001439F700D1124695EEE +:1015C0007F4F680F791FFC01EA53FD4F108231975E +:1015D0002081213041F078F0223051F0233099F60B +:1015E00065E070E00AC050E040E00E94C809CBCF3F +:1015F00041E050E0FACF63E070E00E94570AC3CFA9 +:101600002F5F3F4F75962032310581F6BCCFCF93C7 +:10161000DF93EC01C054DD4F28812223D9F0DC0197 +:10162000AE53BD4F2C912530C0F0FC019C012056DB +:101630003D4F40A5411110A67596E217F307C9F773 +:101640001C921882FC01ED53FD4F10828C539D4F6C +:10165000FC011082DF91CF9108952F5F2C93FACF78 +:101660008F929F92AF92BF92CF92DF92EF92FF92B2 +:101670000F931F93CF93DF9300D000D000D0CDB74E +:10168000DEB78C01FC01E054FD4F8081882379F1A5 +:10169000C8010E94030929833A834B835C836D83CD +:1016A0007E837801580180E6A81A8DEFB80A680198 +:1016B000EDE3CE1AEDEFDE0A4801FCE38F1AFDEFF1 +:1016C0009F0AF70180A5882361F0F60180818111CE +:1016D00025C04B815C8169817A81C70147960E9450 +:1016E0000B10F5E1EF0EF11CEA14FB0451F7F801C1 +:1016F000EE53FD4F108226960FB6F894DEBF0FBE54 +:10170000CDBFDF91CF911F910F91FF90EF90DF90B0 +:10171000CF90BF90AF909F908F9008951082F4016A +:101720001082DFCFEF92FF920F931F93CF93DF933F +:10173000FC01ED53FD4F2081222351F1EC018C017E +:1017400000561D4F7C018BE3E81A8DEFF80A88A53F +:101750008823D1F0CE0147960E94EF11F701408116 +:101760009FEF940F282F30E0491771F0993008F05F +:1017700097E0B901092E02C0759567950A94E2F7C2 +:1017800060FF0DC0F70190836596C017D107F9F689 +:10179000DF91CF911F910F91FF90EF90089591509D +:1017A000E3CFEF92FF920F931F93CF93DF93FC0150 +:1017B000ED53FD4F2081222351F1EC018C010056A5 +:1017C0001D4F7C018BE3E81A8DEFF80A88A588236A +:1017D000D1F0CE0147960E94EF11F701408191E0D0 +:1017E000940F282F30E0491771F0983008F090E0FE +:1017F000B901092E02C0759567950A94E2F760FF5A +:101800000DC0F70190836596C017D107F9F6DF91F7 +:10181000CF911F910F91FF90EF9008959F5FE3CFBD +:10182000EF92FF920F931F93CF93DF938C01FC01F4 +:10183000ED53FD4F8081882391F1E801780180E626 +:10184000E81A8DEFF80A88A5882329F1CE0147967A +:101850000E94EF118823F9F090E0E801CB53DD4FAF +:10186000288102C0959587952A95E2F780FD03C0EF +:10187000C8010E94D10B888190E00E94F7112CE2F0 +:1018800048E261E672E0DF91CF911F910F91FF90E6 +:10189000EF900C94CF056596CE15DF05A1F6DF918C +:1018A000CF911F910F91FF90EF9008958F929F928B +:1018B000AF92BF92CF92DF92EF92FF920F931F935E +:1018C000CF93DF93EC018C01095E1F4FF12CE12CCB +:1018D000912C6C018FE3C81A8DEFD80A5E01E8E401 +:1018E000AE1AEDEFBE0AF80180898823D9F0F6011F +:1018F00080818F3F39F0082E000C990B41E08E1546 +:101900009F0509F040E0B501C8010E94BE0EF80134 +:101910008188882039F0911005C06085CE010E9431 +:10192000CC06982CFFEFEF1AFF0A0B5E1F4F80E2E8 +:10193000E816F104C1F68881882339F1992099F0DD +:1019400001E023E04AE06CE284E40E942806FE0104 +:10195000EC53FD4F4081442331F0440F23E06CE20F +:1019600084E40E945706CE010E94100CCE01DF9144 +:10197000CF911F910F91FF90EF90DF90CF90BF908C +:10198000AF909F908F900C941107DF91CF911F9192 +:101990000F91FF90EF90DF90CF90BF90AF909F900E +:1019A0008F900895CF93DF93EC0184E090E00E9444 +:1019B0009F06882329F0CE01DF91CF910C94B709BF +:1019C00084E090E00E948606882329F0CE01DF9112 +:1019D000CF910C949F0A85E090E00E949F06882397 +:1019E00029F0CE01DF91CF910C94070B85E090E0B8 +:1019F0000E948606882329F0CE01DF91CF910C94B6 +:101A0000300B90E080E00E948606882329F0CE010A +:101A1000DF91CF910C94920B82E090E00E948606B9 +:101A2000882329F0CE01DF91CF910C94D10BDF9167 +:101A3000CF9108950F931F93CF93DF93EC018C0107 +:101A400008541D4FFC01ED53FD4F6081C8010E94F9 +:101A50000F0EC8010E94840DCE010E942F0960E282 +:101A600070E0CE0147960E946410CE01DF91CF91C5 +:101A70001F910F910C94D20CFC01118210821382E1 +:101A800012821482158283E0868317820895CF9391 +:101A9000DF93CDB7DEB72C970FB6F894DEBF0FBE3D +:101AA000CDBF1C861B86FC0122813381420F531F50 +:101AB00080819181680F791F78876F835A87498762 +:101AC00086E0FE013796DE01119601900D928A950F +:101AD000E1F729813A814B815C816D817E8180E0D3 +:101AE00090E02C960FB6F894DEBF0FBECDBFDF910D +:101AF000CF910895FC019081490FDB014C938281C5 +:101B0000280F11962C930895CF93DF93EC018F81CA +:101B1000882319F01C821D821BC08E818330D8F46B +:101B20008F5F8E832C8188819981820F911D27FD83 +:101B30009A9597FF6DC0998388832D818A819B81B7 +:101B4000820F911D27FD9A9597FF66C09B838A831C +:101B5000DF91CF9108951E820E94A206882361F131 +:101B600090E080E00E949F06882329F08C8187FF07 +:101B70003EC08E5F8C8381E090E00E949F068823A8 +:101B800029F08D8187FF38C08E5F8D8383E090E0E0 +:101B90000E949F06882329F08D8118168CF58250AB +:101BA0008D8382E090E00E949F06882329F08C813B +:101BB000181654F582508C8390E080E00E949F06B6 +:101BC000811107C082E090E00E949F06811101C050 +:101BD0001C8281E090E00E949F068111A3CF83E0E8 +:101BE00090E00E949F0681119DCF1D829BCF853082 +:101BF0000CF0C1CF8F5FBECF853044F68F5FC5CF6D +:101C00008C3F7CF28150CCCF8C3FB4F28150D3CF4B +:101C1000198218821C8291CF1B821A827CCFFC0110 +:101C200067830895FF920F931F93CF93DF9303E889 +:101C300015E084E192E0F801908787830E94C20555 +:101C4000F801828384E192E00E94C505F801838354 +:101C500015821482FF24F394F6828AE092E0918B3D +:101C6000808B0E94C205F80183878AE092E00E947F +:101C7000C505F801848716861586F786C4E4D5E085 +:101C80008EE192E098878F830E94C2058A838EE15D +:101C900092E00E94C5058B831D821C82FE8280E03B +:101CA00092E0998B888B0E94C2058B8780E092E03E +:101CB0000E94C5058C871E861D86FF8686EB91E0F7 +:101CC000F80193A382A30E94C205F801858F86EBD9 +:101CD00091E00E94C505F801868F10A2178EF1A22F +:101CE00082E291E095AB84AB0E94C205F80187A720 +:101CF00082E291E00E94C505F80180AB12AA11AA08 +:101D0000F3AA8CE691E09BA38AA30E94C2058D8F63 +:101D10008CE691E00E94C5058E8F18A21F8E13E0FD +:101D200019A388ED90E09DAB8CAB0E94C2058FA7F4 +:101D300088ED90E00E94C50588AB1AAA19AA1BABD2 +:101D4000DF91CF911F910F91FF90089529E0289F77 +:101D5000F001299FF00D1124ED57FA4F87819085EE +:101D60000C94C20529E0289FF001299FF00D112451 +:101D7000ED57FA4F878190850C94C5057F928F921D +:101D80009F92AF92BF92CF92DF92EF92FF920F930A +:101D90001F93CF93DF9300D000D000D0CDB7DEB734 +:101DA0007C015B01742EDC0150968C915097882346 +:101DB00009F47CC019960D911C916801DD24B9E0ED +:101DC0000B9F80011124F70186858111B3C087859F +:101DD000882309F47FC00C5B1A4FD80114961C921B +:101DE000149715961C92882339F0F70184898F5F28 +:101DF000853008F072C0848BF7018385948581302B +:101E0000910509F48CC008F484C08230910509F46E +:101E10006AC0039709F475C0F701228133814081BC +:101E20005181B801C5010E947A0DC8010E94940534 +:101E3000711005C0D70151968C918823B9F1F70133 +:101E40004281538160817181C5010E94470D2983C0 +:101E50003A834B835C83A980BA808B809C80D701B6 +:101E600051968C9101E0811101C003E0C6010E94EE +:101E7000A60E182FC6010E94B20EF701968599236F +:101E800009F47CC0282F26952695280F412F4695CA +:101E90004695410F869586958695682D681B169503 +:101EA000169516958A2D811B0E94280626960FB638 +:101EB000F894DEBF0FBECDBFDF91CF911F910F9180 +:101EC000FF90EF90DF90CF90BF90AF909F908F905A +:101ED0007F9008950D571A4F80CF148A858591E021 +:101EE0008927858789CF82E0D80115968C9315972D +:101EF000F7018585882309F48FCF83E015968C93AD +:101F00008BCF8585882309F487CF81E0F80185830D +:101F100083CF81E0D80114968C931497E6CF81E0AB +:101F2000D80114968C9314978585882309F474CF6F +:101F300082E0E4CFC8018C5B9A4F4C01F601EE0FB2 +:101F4000FF1FE050FF4F8181D70112962D913C91E8 +:101F50001397280F311D87FD3A9580814D915C9133 +:101F6000480F511D87FD5A95B401C5010E947A0D95 +:101F7000C4010E9494050D571A4F4ECF682F6695E5 +:101F8000680D792D711D812F8695202F412F8A0D87 +:101F90009B2D911D26960FB6F894DEBF0FBECDBFC8 +:101FA000DF91CF911F910F91FF90EF90DF90CF9035 +:101FB000BF90AF909F908F907F900C94FC058559B7 +:101FC0009E4FFC0180810895CF93DF9300D000D015 +:101FD00000D0CDB7DEB726E0289FF001299FF00D95 +:101FE0001124EF5BFE4F86E0DE01119601900D9209 +:101FF0008A95E1F729813A814B815C816D817E81EF +:1020000080E090E026960FB6F894DEBF0FBECDBFFD +:10201000DF91CF910895FC017583648357834683D4 +:1020200081E087870895AF92BF92CF92DF92EF92BF +:10203000FF920F931F93CF93DF9300D000D000D077 +:10204000CDB7DEB76C015A018B017B0180E6E81A3F +:102050008DEFF80AF801808191819A8389838281CA +:1020600093819C838B83818592850E94A60E8D83AC +:10207000F801818592850E94B20E8E83F8018089D5 +:10208000882359F0A016B10641F0BE016F5F7F4F63 +:10209000C6010E94C104811106C00B5E1F4F0E15C0 +:1020A0001F05C1F680E026960FB6F894DEBF0FBE7E +:1020B000CDBFDF91CF911F910F91FF90EF90DF90F7 +:1020C000CF90BF90AF9008952F923F924F925F9222 +:1020D0006F927F929F92AF92BF92CF92DF92EF92D8 +:1020E000FF920F931F93CF93DF93CDB7DEB72A975D +:1020F0000FB6F894DEBF0FBECDBF8F8398877A8767 +:1021000069878C01F12CE12CE985FA85EE16FF0632 +:10211000C1F42A960FB6F894DEBF0FBECDBFDF9193 +:10212000CF911F910F91FF90EF90DF90CF90BF90D4 +:10213000AF909F907F906F905F904F903F902F90C7 +:102140000895D80150968C915097882309F441C185 +:102150001F969C901F97992009F43BC16D917C912B +:10216000119719968D919C911A97FC01E65CFE4F90 +:102170007080272D30E01496ED91FC911597129602 +:102180004D915C91DB01A21BB30BEA17FB0708F032 +:1021900083C0F80114861386672C6194712CC62CB9 +:1021A000062C000CDD086C0D7D1D7A836983A72C3D +:1021B000072C000CBB084A0D5B1D5C834B830E94FF +:1021C000A60E8D83D80119968D919C910E94B20E16 +:1021D0008E83A8016F817885CE0101960E9413102D +:1021E000882309F4DAC0F80183859485823091054B +:1021F00008F484C0049708F0D0C06281738186819E +:102200009781681B790B77FF03C071956195710900 +:10221000D8018D919C9111978C199D0914962D913F +:102220003C91821B930B97FF03C091958195910977 +:102230000E9449051B012C01F8016281738186818E +:102240009781681B790B77FF03C0719561957109C0 +:10225000D8018D919C91119714962D913C91821BE0 +:10226000930B8C0D9D1D97FF03C09195819591094E +:102270000E944905261637064806590608F4672CB9 +:10228000619481E090E0611002C090E080E0F8018C +:1022900094878387712C81C0DB01A20FB31FAE1717 +:1022A000BF0748F4E1E0F0E0D8011C96FC93EE9300 +:1022B0001B97672C73CFD8011696ED91FC91DA012C +:1022C000A21BB30BEA17FB0740F422E030E0F80151 +:1022D000348723877194612C62CF240F351F2E170A +:1022E0003F0740F4E3E0F0E0D8011C96FC93EE9346 +:1022F0001B97F1CF712C612C912C51CF628173818E +:1023000086819781681B790B6A0D7B1D77FF03C05F +:10231000719561957109F8018081918124813581E0 +:10232000821B930B97FF03C09195819591090E94A1 +:1023300049051B012C01D80112966D917C911397D0 +:102340006A197B0916968D919C91681B790B77FF12 +:1023500003C0719561957109F80180819181248193 +:102360003581821B930B97FF03C09195819591094D +:102370000E944905261637064806590608F061945A +:1023800083E090E0611002C082E090E0D8011C96EA +:102390009C938E931B97762C612CD8011F969C9250 +:1023A0001F979920B1F08D919C911197860D911DE9 +:1023B00067FC9A9511969C938E9312968D919C91A1 +:1023C0001397870D911D77FC9A9513969C938E9386 +:1023D0001297BFEFEB1AFB0A0B5E1F4F95CEDC0185 +:1023E0001996ED91FC91E45FFE4F80810895880F6E +:1023F000991FFC01EE5CFE4F808191810895BC0124 +:102400006F5F7F4F80E1FB0111928A95E9F782E8C7 +:1024100091E00C94341F43E068E272E082E891E0BE +:102420000E94971B811106C082E192E00E94FF1179 +:102430000C94DE030895FC0188E0808389E08183A9 +:1024400087E0828386E0838384E0848382E08583DF +:1024500081E186830895FF920F931F93CF93DF93BB +:10246000EC018C01095F1F4FFF24FA9462E0888120 +:102470000E941E2488810E9488242F81892B81F448 +:102480002F5F2F8360E088810E941E242196C01751 +:10249000D10761F7DF91CF911F910F91FF900895C0 +:1024A0002223A1F32F3F11F41F82ECCFFF82EACF4A +:1024B000FC01E60FF11D81E09781913009F080E089 +:1024C0000895FC01E60FF11D81E097819F3F09F01F +:1024D00080E00895860F911DFC018781423038F419 +:1024E0009FEF980F81E09E3F50F080E008C08F3F43 +:1024F000E1F3642F0E94812681E09130B1F70895C5 +:10250000860F911DFC0187818F3F09F480E00895BB +:102510008EBD0DB407FEFDCF8EB50895DC01643588 +:1025200008F042C0403308F03FC090968C919097DD +:10253000E62F062E000CFF0B242F259525952595BB +:1025400094E52902E00DF11D1124EE53FA4F20818C +:10255000342F37708230A1F4822F90E0032E02C016 +:10256000959587950A94E2F780958170882399F074 +:1025700081E090E001C0880F3A95EAF7822B13C002 +:102580008330A1F71C968C916427062E000C770BE4 +:10259000682760FDEDCF81E090E001C0880F3A959B +:1025A000EAF780958223808308951F93CF93DF936A +:1025B000EC01162FF89460E08F850E945A248889D8 +:1025C00018161CF460E00E945A24812F0E94881281 +:1025D000888918161CF461E00E945A247894DF91CF +:1025E000CF911F910895E2ECF5E028EF31E0DF0193 +:1025F000A9011D9241505040E1F7DC0119961C924F +:1026000019971A961C92089548EF51E06FEF7FEFEB +:1026100082EC95E00C94A828CF92DF92EF92FF9283 +:102620000F931F93CF93DF93EC018C858F5F8C8783 +:1026300082ECE82E85E0F82E10E0612F6064CE0178 +:102640000E94D51260E8CE010E94D51261E08F850C +:102650000E945A24888918161CF460E00E945A24AB +:10266000670104E5F60181916F010E948812015013 +:10267000C9F7888918161CF461E00E945A241F5F6C +:10268000F4E5EF0EF11C1630C1F660E4CE01DF91E7 +:10269000CF911F910F91FF90EF90DF90CF900C940E +:1026A000D512FC0160A361A30895FC0160A341A3BE +:1026B0000895EF92FF920F931F93CF93DF938C01B6 +:1026C000D62FF42EE22EC0E0CE1544F44F2D4C0F41 +:1026D0006D2FC8010E948E12CF5FF6CFDF91CF9190 +:1026E0001F910F91FF90EF900895EF92FF920F933B +:1026F0001F93CF93DF938C01F62ED42FE22EC0E0F0 +:10270000CE1544F46F2D6C0F4D2FC8010E948E1210 +:10271000CF5FF6CFDF91CF911F910F91FF90EF9098 +:102720000895EF92FF920F931F93CF93DF937C0155 +:10273000162FD42FC22F0E9475134FEF400F4D0F4D +:102740002C2F612FC7010E947513202F4D2F612F51 +:10275000C7010E9459136FEF6C0F610F202F4D2F8F +:10276000C701DF91CF911F910F91FF90EF900C94D3 +:102770005913DF92EF92FF920F931F93CF93DF9342 +:102780007C01D62FD22EC42F002E000C110B040F6B +:10279000111D47FD1A958C2F0C2E000C990B8017DC +:1027A000910744F42D2D4C2F6D2FC7010E947513F6 +:1027B000CF5FF1CFDF91CF911F910F91FF90EF90FD +:1027C000DF9008959F92AF92BF92CF92DF92EF92E7 +:1027D000FF920F931F93CF93DF938C01E62EF42E7D +:1027E000C22F81E0D82ED21AC22EC194CC0C422F17 +:1027F0004F0DC8010E948E124F2D4C1B6E2DC8012B +:102800000E948E126C2F6E0D4F2DC8010E948E12E9 +:102810006E2D6C1B4F2DC8010E948E12D0E0DC176C +:102820000CF044C0D7FC04C0C150C394C394DC0C6A +:10283000DF5F8D2F880F8F5FD80E9E2C9D0EBF2CD3 +:10284000BC0E4B2D692DC8010E948E12AE2CAD1A04 +:102850004B2D6A2DC8010E948E12BF2CBC1A4B2D25 +:10286000692DC8010E948E124B2D6A2DC8010E944D +:102870008E12BF2CBD0E4B2DAE2CAC0E6A2DC80196 +:102880000E948E124B2DBE2CBC1A6B2DC8010E94CB +:102890008E129F2C9D1A492D6A2DC8010E948E12FE +:1028A000492D6B2DC8010E948E12B9CFDF91CF91B7 +:1028B0001F910F91FF90EF90DF90CF90BF90AF905E +:1028C0009F9008958F929F92AF92BF92CF92DF9286 +:1028D000EF92FF920F931F93CF93DF937C01162FFC +:1028E000D42EC22F81E0C82EC21AB22EB194BB0CD6 +:1028F000D0E0802F8470A82E802F8270982E802F99 +:102900008870882E0170DC170CF04DC0C7FC04C025 +:10291000C150B394B394CB0CDF5F8D2F880F8F5FC2 +:10292000C80EAA2071F04D2D4C0F612F6D0FC701FD +:102930000E948E124D2D4D0F6C2F610FC7010E940A +:102940008E12992071F04D2D4C1B612F6D0FC70118 +:102950000E948E124D2D4D1B6C2F610FC7010E94DE +:102960008E12882071F04D2D4D0F612F6C1BC70109 +:102970000E948E124D2D4C0F612F6D1BC7010E94BE +:102980008E12002309F4BFCF4D2D4D1B612F6C1B00 +:10299000C7010E948E124D2D4C1B612F6D1BC7016C +:1029A0000E948E12B0CFDF91CF911F910F91FF90B7 +:1029B000EF90DF90CF90BF90AF909F908F90089551 +:1029C0007F928F929F92AF92BF92CF92DF92EF92BF +:1029D000FF920F931F93CF93DF935C01C62E942E2B +:1029E000C22F11E0121BD22ED194DD0C83E0F82E01 +:1029F000D0E0802F8170782E882483948E0C027012 +:102A0000DC17ACF517FD04C0C150D394D3941D0D51 +:102A1000DF5F1F0D772099F02C2F220F280D492DF5 +:102A20004C1B6C2D6D0FC5010E9459132E2D2F0DBF +:102A3000492D4D1B6C2F6C0DC5010E9459130023AD +:102A400099F02C2F220F280D492D4C1B6C2D6D1B3E +:102A5000C5010E9459132E2D2F0D492D4D1B6C2D94 +:102A60006C1BC5010E945913F394F394C9CFDF91F5 +:102A7000CF911F910F91FF90EF90DF90CF90BF907B +:102A8000AF909F908F907F9008959F92AF92BF924A +:102A9000CF92DF92EF92FF920F931F93CF93DF932A +:102AA000EC01B62E142FD22EAE2CAA0C922E9A1810 +:102AB000CE2CC60E292D6C2D0E947513FF24FA947E +:102AC000F00EF10E292D4F2D6C2DCE010E947513A5 +:102AD0000A191E0D202F412F6B2DCE010E94591374 +:102AE000DB0C6FEF6D0D202F412FCE010E9459138B +:102AF00001E02E2D412F6C2DCE010E9462148E2DEF +:102B00008095D80E02E02E2D412F6D2DCE010E9412 +:102B10006214FE1804E02E2D4F2D6D2DCE010E9463 +:102B2000621408E02E2D4F2D6C2DCE010E946214F0 +:102B3000DF91CF911F910F91FF90EF90DF90CF9099 +:102B4000BF90AF909F900895AF92BF92CF92DF92C7 +:102B5000EF92FF920F931F93CF93DF936C01C62FD9 +:102B6000F42EA22ED02F1E2DEE0CB12EB60E2E1945 +:102B70006B2D0E94B913D150DE19F10E6FEF6C0F5F +:102B80006A0D611BED2E01E0212F4F2DC6010E9421 +:102B9000E01402E0212F4F2D6B2DC6010E94E0149E +:102BA000DF91CF911F910F91FF90EF90DF90CF9029 +:102BB000BF90AF9008952F923F925F926F927F9255 +:102BC0008F929F92AF92BF92CF92DF92EF92FF923D +:102BD0000F931F93CF93DF93EC01F901E4903196AB +:102BE000849164350CF015C10E2C000CFF08062FE3 +:102BF000062E000C110BF701E00FF11F1E161F0629 +:102C00000CF007C140330CF004C1A82FC42E042ED1 +:102C1000000CDD085601A80EB11C87FDBA941A14E9 +:102C20001B040CF0F6C02E5F3F4F570197E0A90E32 +:102C3000B11CB7FE04C05701BEE0AB0EB11CB3E03F +:102C4000B594A794BA95E1F747FF0AC0A42FA80F3F +:102C5000AC9CC001AD9C900D1124281B390B40E0A9 +:102C60008A2F0A2E000C990B840F911D47FD9A950F +:102C7000C19714F0A0E3A41BF8A067FD60E0E53560 +:102C8000F10514F0E4E5F0E09E2FCC85C427C62EB4 +:102C9000062E000CDD08F601E01BF10B8F014F0141 +:102CA000F7E08F229924E0E8F0E002C0F595E7957F +:102CB0008A94E2F77E2F17FF02C0095F1F4FF3E0EF +:102CC00015950795FA95E1F7200F311F542F57708E +:102CD00081E001C0880F5A95EAF7459545954595DD +:102CE000F601B4E54B02E00DF11D1124AF014E5386 +:102CF0005A4FD0E02A2EAA0F3308EE24E394BB24C7 +:102D0000D21513040CF085C0F9015490F1E0FF12C4 +:102D10001AC06901962E8A01E72F991608F057C04C +:102D20008E2E852021F0D8018C90882A8C92E695F1 +:102D300031F4BFEFCB1ADB0AF6015490E0E893942C +:102D40000F5F1F4FEACFF1101CC0782E70946901FD +:102D5000962E8A01E72F991608F039C08E2E85200D +:102D600021F0D8018C9087208C92E69531F4BFEF4A +:102D7000CB1ADB0AF6015490E0E893940F5F1F4FE3 +:102D8000EACFF3E0FF122CC0782E70946901862EF2 +:102D90008A01972E8916D0F4E92DE52141F0D8015A +:102DA000EC916C2E682460FE0FC0E82BEC93969497 +:102DB00039F4BFEFCB1ADB0AF6015490E0E89E2EFF +:102DC00083940F5F1F4FE6CFE721F0CFCE25880F0A +:102DD00019F44C5A5F4F81E0DF5F2A0D3B1D90CF05 +:102DE0006901962E8A01E72F991688F78E2E852085 +:102DF00021F0D8018C9088268C92E69531F4BFEFB3 +:102E0000CB1ADB0AF6015490E0E893940F5F1F4F52 +:102E1000EBCFDF91CF911F910F91FF90EF90DF905B +:102E2000CF90BF90AF909F908F907F906F905F906A +:102E30003F902F9008952F923F924F925F926F9202 +:102E40007F928F929F92AF92BF92CF92DF92EF923A +:102E5000FF920F931F93CF93DF9300D000D000D049 +:102E60001F92CDB7DEB74C01462E342E69018E2D50 +:102E700001111DC0E1101BC0C40127960FB6F894C4 +:102E8000DEBF0FBECDBFDF91CF911F910F91FF909D +:102E9000EF90DF90CF90BF90AF909F908F907F90FA +:102EA0006F905F904F903F902F900C94DB15F60140 +:102EB00054903196E490A52CB12C9501295F3F4F99 +:102EC000A90133E0559547953A95E1F75B834A832D +:102ED0000370F12CEE2DF0E0FD83EC835A941FEF8C +:102EE0001E0D2F2D0F2C000C330B2A153B050CF05B +:102EF00070C0F982F7FE03C0F7E0FF0DF983298166 +:102F000025952595259529839F2D977897FF03C0B3 +:102F10009150986F9F5F20E8622E712C02C07594CB +:102F200067949A95E2F7212C4981042E000C550BE9 +:102F30004E5F5F4F5F834E83222D022C000C330BBC +:102F4000EC81FD812E173F070CF041C04A815B8167 +:102F5000429FF001439FF00D529FF00D11242E81EE +:102F60003F81E20FF31FEC0DFD1DE491F0E0E6213F +:102F7000F721EF2B41F1023069F0612F62194F2DDB +:102F8000033061F0452D4F19622D013039F0422D8B +:102F90006F2D04C0652D6F19412F42198823A9F0A8 +:102FA000382F3370398380FF03C0552D561B652F92 +:102FB00081FF03C08E2D841B482F640D430DC40177 +:102FC0000E948E1289812394B7CF1982F6CFF39491 +:102FD00088CF27960FB6F894DEBF0FBECDBFDF9126 +:102FE000CF911F910F91FF90EF90DF90CF90BF9006 +:102FF000AF909F908F907F906F905F904F903F9099 +:103000002F900895DC01FB0184918F5F14968C93BF +:1030100014973196E491EF5F1596EC9315976E5FD8 +:103020007F4F5F967C936E935E970895EF920F9318 +:10303000CF93DF93EC014E876D872F87E98A088B4A +:1030400081E0888788A319A28F8363EE73E0CE01A5 +:103050000E9402180E943E2681E00E94542685E0CC +:103060000E9462268CE00E945D2661E08E850E94AF +:103070001E2461E08D850E941E2461E08F850E94E0 +:103080001E24898918161CF461E00E941E24888978 +:1030900018161CF461E00E941E24898918166CF42D +:1030A00060E00E945A246AE070E080E090E00E94B4 +:1030B0001C2361E089890E945A248D85082E000C0A +:1030C000990BFC01E950F94FE491F0E0EE0FFF1F7E +:1030D000EB5EF84F259134913D8B2C8BFC01ED512B +:1030E000F94FE491EB8F8E85082E000C990BFC01B3 +:1030F000E950F94FE491F0E0EE0FFF1FEB5EF84F5F +:10310000259134913B8B2A8BFC01ED51F94FE491D1 +:10311000EA8F8889082E000C990BFC01E950F94FC1 +:10312000E491F0E0EE0FFF1FEB5EF84F2591349134 +:103130003F8B2E8BFC01ED51F94FE491EC8F8F8585 +:10314000082E000C990BFC01E950F94FE491F0E0D6 +:10315000EE0FFF1FEB5EF84F25913491398F288FCA +:10316000FC01ED51F94FE491ED8F61E2CE010E9437 +:10317000D51264E1CE010E94D5128B8587FF02C073 +:103180008FE78B876B856068CE010E94D51260E265 +:10319000CE010E94D5126CE0CE010E94D512CE0164 +:1031A000DF91CF910F91EF900C940C134F925F929F +:1031B0006F927F928F929F92AF92BF92CF92DF9247 +:1031C000EF92FF920F931F93CF93DF93EC01862E24 +:1031D000F42E102F83E586170CF485C08FE2841738 +:1031E0000CF481C04C814150550B049FC001059FD8 +:1031F000900D1124860F911D67FD9A9518161906DA +:103200000CF071C03D818F2D0F2C000C990B039F8A +:10321000800D911D1124181619060CF064C078A0B9 +:10322000E62E912CC22ED12C292D092C000C330B0B +:103230008C8190E0281739070CF054C00197E0E02A +:103240002817390771F0C89EF001C99EF00DD89E6D +:10325000F00D11242E0F3F1FEE8DFF8DE20FF31F97 +:10326000E4915F2C612C492C480C2D81862D062C75 +:10327000000C990B2817190691F18CF1AE2EB12C88 +:10328000E0FF16C0113061F4462D4F0D642DCE01C4 +:103290000E948E12F501F595E7956394510EE5CFE6 +:1032A000012F212F452D6E2DCE010E94B913F2CF93 +:1032B00089A198A1891771F388A3113041F4462D93 +:1032C0004F0D642DCE010E948E1278A2E3CF012F04 +:1032D000212F452D6E2DCE010E94B913F6CF939468 +:1032E000E10EA2CF78A2DF91CF911F910F91FF90B5 +:1032F000EF90DF90CF90BF90AF909F908F907F9096 +:103300006F905F904F9008950F93CF93DF93EC01F0 +:10331000262F6A3049F428859D818A85299F800D52 +:1033200011248A8719861DC06D30D9F008854A8519 +:1033300069850E94D61828853C818985239F800D48 +:10334000112489879F81992361F0082E000C990B25 +:1033500044E550E0239F40195109112448175907AB +:10336000DCF281E090E0DF91CF910F910895FC01B4 +:10337000EC57FF4F718360838A579F4F445FFC0176 +:10338000408308956F927F928F929F92AF92BF92E7 +:10339000CF92DF92EF920F93CF93DF934C015C01BA +:1033A00086E8A80EB11CD5018C91882309F44AC087 +:1033B000CCE0C81B8C3008F0C0E0F401EA5AFF4FA3 +:1033C00081E080836401BEE4CB0ED11C60E0C601C5 +:1033D0000E9451133401E3E56E0E711CD3018C91F0 +:1033E00003E0080FDDE24D2F481B4C0F83E0E82E71 +:1033F00024E560E0C6010E94A41561E0C6010E94B8 +:103400005113F301808103E0080F4D2F481B4C0F2F +:1034100024E560E0C6010E944515F401E95AFF4F1A +:1034200084E080833196D3018C91C81BC15DC08339 +:10343000BC9660817181C6010E94E824F5018081FB +:1034400081508083DF91CF910F91EF90DF90CF90EB +:10345000BF90AF909F908F907F906F900895CF9284 +:10346000DF92FF920F931F93CF93DF93EC018C8D2C +:103470009D8D892B01F18E01025B1F4F40E061E0C1 +:10348000C8010E945513FE01E95AFF4FDE01AE5AF2 +:10349000BF4F9C9185E5891B808331961082698D91 +:1034A000613009F46DC078F0888D653008F082C015 +:1034B0006B5F811175C0DF91CF911F910F91FF90CC +:1034C000DF90CF900895CE0185960E94892181E0FA +:1034D000FE01EA5AFF4F808363EE73E0C8010E9449 +:1034E00002181D8E1C8EFE01EC5AFF4F108288EAD6 +:1034F000F82E6E018AE0C80ED11CCE010E94DF1AA0 +:103500008823D9F362ED75E0C8010E94E8246A8D32 +:103510007B8D4AE050E0C8010E94F7256DEB75E015 +:10352000C8010E94E8246F2D62956F7070E04AE038 +:1035300050E0C8010E94E32562EB75E0C8010E94DB +:10354000E82464E0C6010E9458128111B4CFFA94B5 +:10355000F110D3CF60E0CE010E94FC2183B7817FC0 +:10356000846083BF83B7816083BF83B7816083BF7B +:10357000889583B78E7F83BF83B78E7F83BFBDCF90 +:10358000CF58DF4F88819981AA81BB818F7099279D +:10359000AA27BB2767E00897A105B10508F068E7EF +:1035A000C801DF91CF911F910F91FF90DF90CF90D5 +:1035B0000C941325882309F47ECF6FE2F1CF8F920C +:1035C0009F92AF92BF92CF92DF92EF92FF920F93B2 +:1035D0001F93CF93DF93EC017C0180E8E80EF11C90 +:1035E000F70180809180A280B3800E94EB22861A2E +:1035F000970AA80AB90A6E01FFE7CF0ED11CF6019F +:10360000808190E0B0E0A0E08E0105581F4F881542 +:103610009905AA05BB0508F04AC0F801808191818F +:10362000A281B381892B8A2B8B2B09F440C00E9485 +:10363000EB22F6012081620F711D811D911DF701A2 +:1036400060837183828393833F9780819181A2817C +:10365000B3810196A11DB11D80839183A283B383A1 +:10366000F80110821182128213820E94F722FE0159 +:10367000E958FF4F6083718382839383CE010E9458 +:103680000022CE010A960E942B12CE0148960E947B +:10369000692281E0DF91CF911F910F91FF90EF9010 +:1036A000DF90CF90BF90AF909F908F900895F801DA +:1036B00080819181A281B381892B8A2B8B2BA9F5E3 +:1036C0007E01F5E2EF0EF11CC7010E944420C70104 +:1036D0000E94B720C7010E947B21CE010E94C2191F +:1036E000CE010E942F1A7E018EE4E80EF11CC70164 +:1036F0000E940C13FE01EC5AFF4F8081811103C020 +:10370000C7010E94F3120E94F722F80160837183BF +:1037100082839383FE01EB58FF4FC958DF4F288106 +:103720003981621B730B7183608380E0B3CF2F926A +:103730003F924F925F926F927F928F929F92AF9241 +:10374000BF92CF92DF92EF92FF920F931F93CF938E +:10375000DF93CDB7DEB765970FB6F894DEBF0FBE27 +:10376000CDBF6C016A8B7B8B4B83FC01EC5AFF4F06 +:1037700010822FEF2D831C821D8A10E31C8A3C01CE +:103780003AE0630E711C842F90E09F838E832601A4 +:10379000E3E54E0E511C4601F5E28F0E911C960199 +:1037A000295A3F4F39872887C601885A9F4F9B87E0 +:1037B0008A87F601EA5AFF4FFF87EE8722503109C8 +:1037C000398B288B0A971C01C6010E94DF1A8823B7 +:1037D000D9F364E0C3010E945812012F110F110B9D +:1037E000882399F0F201F081F1952B81F29F202D31 +:1037F000112422502D8B64E0C3010E9458128111C4 +:1038000093C0C4010E94E42194C065E0C3010E94FA +:1038100058128111E7CF66E0C3010E94581281114E +:10382000E1CF8C81811185C044E063E0C3010E9437 +:103830006A12882331F09C899F5F9C8BC4010E948F +:10384000E82144E061E0C3010E946A12882331F05C +:10385000EC89E150EC8BC4010E94E821FC898F2F98 +:103860000F2E000C990B2E813F818217930709F4CC +:103870006BC0F7FF03C03B8131503C8BF20180816C +:10388000F4E0F80F2C89829FF0191124FD8B9D899B +:10389000090F111D97FD1A9517FF02C00F5F1F4FEB +:1038A000F801F595E795FA83E9830981102FE885FA +:1038B000F9851082EA85FB85008321E0EE85FF858E +:1038C0002083E889F9891082EA88FB88B12CA12C31 +:1038D0002C89022E000C330B3D872C878E819F8113 +:1038E0008A159B0599F1EC85FD85EA15FB0579F4B0 +:1038F00023E0E885F9852083F2018081F02F2C896F +:10390000289FF00D11248F2FEA85FB858083F70116 +:1039100065917491C1010E942E25FFEFAF1ABF0A75 +:1039200022E0E20EF11CDACFC4010E94E0213C89C2 +:103930003D83C8013D89831B910937FD939502970B +:1039400064F181E08C83A3CF1C8A98CF60E0C10131 +:103950000E945113F20180814981FC89F89F400D3A +:103960001124415024E560E0C1010E94751361E01B +:10397000C1010E945113F201808103E0080F4981C7 +:10398000FC898F9F400D1124425083E0E82E24E5EE +:1039900060E0C1010E94451517CF8D8165960FB675 +:1039A000F894DEBF0FBECDBFDF91CF911F910F9175 +:1039B000FF90EF90DF90CF90BF90AF909F908F904F +:1039C0007F906F905F904F903F902F9008950F934E +:1039D0001F93CF93DF93EC018C01025B1F4FC80153 +:1039E0000E94F3126AE875E0C8010E94E824C80149 +:1039F0000E940C1383E00E9462268AE791E0EEEFBA +:103A0000FFE30995FE01EC5AFF4F108265E675E071 +:103A1000C8010E942E25C8010E940C132A96CE01CF +:103A20000E942B1264E0CE010E945812811107C03F +:103A300062E370E080E090E00E941C23F0CFDF9111 +:103A4000CF911F910F9108952F923F924F925F92C5 +:103A50006F927F928F929F92AF92BF92CF92DF929E +:103A6000EF92FF920F931F93CF93DF93CDB7DEB703 +:103A700029970FB6F894DEBF0FBECDBF9987888710 +:103A80007B836A832A013C0180E7680E711CF30185 +:103A90008081882309F4F7C081E0E885F985EA5A36 +:103AA000FF4F8083E885F985EB5AFF4F1082E88548 +:103AB000F985EC5AFF4F1082E885F985108E8F0149 +:103AC000025B1F4F61E0C8010E94511388859985F0 +:103AD0008D5A9F4F9F838E83A884B98497E5A90E42 +:103AE000B11CE884F984E8E5EE0EF11C8884998421 +:103AF000F2E58F0E911C888599858F589F4F9D8385 +:103B00008C83288439849AE0290E311CC884D98496 +:103B1000E5E2CE0ED11C888599850E94DF1A8823A4 +:103B2000D1F3EA81FB81F491F983FF2321F0EE8147 +:103B3000FF81F081F98324EF35E040E060E0C801C7 +:103B40000E94DB154114510439F04981445F920110 +:103B500060E0C8010E94DB15F50110828CE0F701DE +:103B600080836A817B81C8010E94E824F4018081FE +:103B7000982F990F990F891B8D5AF5018083EE813B +:103B8000FF818081982F990F990F891B835DF70121 +:103B90008083EC81FD81808160EF75E084FD02C04F +:103BA0006CEE75E0C8010E942E25F4018081982FEB +:103BB000990F990F891B8D5AF5018083F701808138 +:103BC0008F5F8083E885F98582A568EE75E08111B5 +:103BD00002C064EE75E0C8010E942E25F4018081C8 +:103BE000982F990F990F891B8D5AF5018083F70142 +:103BF00080818F5F808360EE75E0C8010E942E2572 +:103C000065E0C1010E945812882351F0E885F985CA +:103C100062A56F5FC6010E94EC21C6010E94E821E7 +:103C200064E0C1010E94581281111FC0F30120817C +:103C3000422F50E070E060E0EC81FD818081918155 +:103C4000A281B38184179507A607B70710F02F3F0D +:103C500061F466E0C1010E945812882309F45BCF29 +:103C6000888599850E94E71C56CF8FEFF3018083EA +:103C700060E0C6010E947E21C6010E94E02181E031 +:103C8000E885F985808F29960FB6F894DEBF0FBEC0 +:103C9000CDBFDF91CF911F910F91FF90EF90DF90FB +:103CA000CF90BF90AF909F908F907F906F905F90DC +:103CB0004F903F902F90089550E040E00C94241DC9 +:103CC000E0E8F7E72591349181E02130304C09F0AC +:103CD00080E00895CF93DF93EC010E94601E9E0167 +:103CE000275A3F4FDE01A059BF4F882309F440C037 +:103CF000E6E9F7E78491F9018083E7E9F7E7E491E2 +:103D0000EC83E8E9F7E7E491ED83E9E9F7E78591EA +:103D100094919F838E83EBE9F7E78591949199873E +:103D20008887EDE9F7E7E491EBA7EEE9F7E7E4919F +:103D3000EAA7EFE9F7E7E491EC93E0EAF7E785918A +:103D400094919D8F8C8FE2EAF7E7859194919F8FF4 +:103D50008E8FE4EAF7E78591949199A388A3E6EA28 +:103D6000F7E7859194919BA38AA3DF91CF91089562 +:103D70008CE3F90180831C828FEF8D8320E233E096 +:103D80003F832E8324ED33E03987288791E09BA77A +:103D90009AA78C938CEA9DE09D8F8C8F8EED9DE091 +:103DA0009F8F8E8F84E79EE099A388A38CE39FE08A +:103DB000DACFCF92DF92EF920F93CF93DF93EC01A4 +:103DC000FC01E158FF4F82E38083349781E090E06B +:103DD000A0E0B0E080839183A283B3833B978FEF11 +:103DE0008083CE010E946A1ECE010E94F8216FEFEF +:103DF000CE010E94FC216E018AE0C80ED11CC601D2 +:103E00000E941B12C6010E942B12CE0148960E94EE +:103E10005F228EE0E82E0FE020E14BE06DE0CE0166 +:103E2000825B9F4F0E941618A596CE010E947D1FAF +:103E300065E0C6010E945812882351F060E0CE016F +:103E4000DF91CF910F91EF90DF90CF900C94EC2108 +:103E500040E064E676E0CE01DF91CF910F91EF90E4 +:103E6000DF90CF900C941120CF93DF93D62FC72FE4 +:103E70000E94601E882359F0AD2FBC2FEBE8F7E7B6 +:103E800084918D933196E53987E7F807C9F7DF917B +:103E9000CF910895CF93DF93DC0170E0660F771F19 +:103EA0001F96ED91FC915097E60FF71F25913491E5 +:103EB00090963C932E935F97F901459154911496F7 +:103EC0008C911497849F402D112491964C93919737 +:103ED000F901C591D4916D2F70E04617170629F0AE +:103EE00020F0F90125913491432F849F402D112416 +:103EF00092964C93DF91CF91089521E0FC012483A9 +:103F000024E020A723EC36E0308B278760E00E9476 +:103F10004A1F61E070E083E00E949823E1EBF0E04B +:103F20008081887F81608083F89410928000E1E82E +:103F3000F0E01082109285001092840088E191E0F8 +:103F4000909389008093880080818860808380813D +:103F500081608083EFE6F0E08081826080837894E6 +:103F600008950F93FC01011107C06230D9F030F4BD +:103F7000662379F0613091F00F9108956330C9F0B4 +:103F80006430D1F76481649F402D1124458F268FC2 +:103F9000F3CF4B3008F04AE0468BEECF642F0F9101 +:103FA0000C944A1F6481649F402D1124418F228FFD +:103FB000E3CF6481649F402D1124438F248FDCCF95 +:103FC0008091C607882329F08091C3078093B400AD +:103FD000089580E0FBCFFC01178A158A14A213A272 +:103FE000108E1092C3071092C4071092C6070C944B +:103FF000E01F0F931F93CF93DF93EC018B010E947F +:10400000EB1F1E870D871B8A1A8A81E0898389E04E +:104010008E8B198E1B8E1D8EDF91CF911F910F916C +:104020000895411102C00C94F91F0895CF93DF93B6 +:10403000EC01611115C08881882391F0898181117B +:104040000FC0E9858E2F90E0880F991FEF81F885CA +:10405000E80FF91F859194918F3F980721F41882FA +:10406000DF91CF9108959C879927880F991FEA8542 +:10407000FB85E80FF91F65917491CE010E94F91F2D +:1040800089858F5F8987ECCF60E00C9416200F93B1 +:10409000CF93DF93EC01611166C08981882309F415 +:1040A00062C08D8981115FC08D859E85EA89FB89FB +:1040B000EE0FFF1FE80FF91F45915491411551056F +:1040C00041F42989213021F51B8A1A8AFC01459186 +:1040D0005491BA017695679576956795862F40FF3E +:1040E0002EC0252F269526952695205186E056959B +:1040F00047958A95E1F74F716F7000E0CE010E94FD +:10410000B11FEA89FB893196FB8BEA8BCF010AC08C +:1041100019828881882369F060E0CE010E94162010 +:104120008A899B89880F991FED85FE85E80FF91F05 +:10413000CECFCE01DF91CF910F910C94EB1F8F73F7 +:104140008C8B8C81859F802D11248D8B1DA21CA2B0 +:104150001BA281E08F8B8093C607188E8A899B896A +:1041600001969B8B8A8BDF91CF910F91089560E030 +:104170000C944720CF93DF93EC016111B3C08F897A +:10418000882309F4AFC08D89811105C0CE01DF916C +:10419000CF910C94EB1F81508D8B8DA1811134C078 +:1041A0002BA13CA12F5F3F4FC901880F991FEF8DB5 +:1041B000F8A1E80FF91F85919491482F47704EA3FD +:1041C000492F469546954FA3AC0164E05695479517 +:1041D0006A95E1F74F739C81499F402D11244DA3AF +:1041E00083FB882780F98093C2073CA32BA389A176 +:1041F00090E02817390740F02AA1222309F475C05E +:10420000821B91099CA38BA38DA181508DA3888DC6 +:1042100031E0380F388F4C892FA1240F8C85280F5F +:104220002A836B8D662361F070E0832F032E000CD0 +:10423000990B0E94A1268C8D869F200D11242A8324 +:104240008A8190E0CB966BE370E00E94A1268A837E +:104250002E892B83698D662371F0062E000C770B57 +:10426000832F032E000C990B0E94A1268A8D869F16 +:10427000200D11242B836D8D662389F0832F330F3E +:10428000990B70E00E94A126CB0162E070E00E94D1 +:10429000A1262E8D9B81289F900D11249B834F3347 +:1042A00041F18B818A300CF089E087FD80E08B83BF +:1042B000F894EA81F0E0EE58F94FE491E093C507F5 +:1042C0008D8198A5899F802D11249B81899F802DA8 +:1042D00011249EA1899F802D11248093C40780936F +:1042E000C3077894DF91CF910895CE010E94EB1F10 +:1042F0008BCF1B82DDCF60E00C94BA20CF93DF938D +:10430000EC01611103C00E94EB1F1982DF91CF9174 +:104310000895CF93DF93EC010E94EB1F1982DF9188 +:10432000CF9108956091C407662329F18091C70752 +:104330008F5F8093C7079091C5078917E0F081E0F0 +:104340009091C607911180E08093C6071092C7072D +:104350008091C207882369F08091040193E4899FCA +:10436000802D1124895B809304010E948126909303 +:10437000C3070C94E01F08951F920F920FB60F927F +:1043800011242F933F934F935F936F937F938F935A +:104390009F93AF93BF93EF93FF930E949221FF915E +:1043A000EF91BF91AF919F918F917F916F915F91AD +:1043B0004F913F912F910F900FBE0F901F90189526 +:1043C0006BEB76E00C94F91F63EB76E00C94F91F2D +:1043D0006DEA76E00C94F91FFC01862F660F990BAD +:1043E000668170E06F5F7F4F0E94A12685830895EC +:1043F00021E0FC012083089570E085E00C9498236F +:10440000AF92BF92CF92DF92EF92FF920F931F93E2 +:10441000CF93DF93EC0189819A812FE0289F80015F +:10442000299F100D112485E10E947D23800F911F8B +:1044300024E0969587952A95E1F79A8389832881C8 +:10444000222391F1EC81AD80B12CD12CC12CA88517 +:10445000B9857D0110E000E06E817F819B0150E015 +:1044600040E08617970728F0BC01A817B90708F4A1 +:10447000BD0190E080E01F921F921F92EF930E9477 +:10448000FD256B830F900F900F900F9070E085E0EB +:10449000DF91CF911F910F91FF90EF90DF90CF9020 +:1044A000BF90AF900C949823DF91CF911F910F9103 +:1044B000FF90EF90DF90CF90BF90AF900895FC01F8 +:1044C0008CE39FE09383828384E0818381E084870F +:1044D0000895CF93DF93EC018C819D81892B21F18D +:1044E0008C858F7139F584E10E947D23BC01990F81 +:1044F000880B990B0E94532726EE3FE34EEC50E4C5 +:104500000E94DF270E9422279B017B836A83672BFF +:10451000A9F084E08983FE01349680E041915191B5 +:104520002417350720F48983DF91CF9108958F5F99 +:104530008430A1F78C858F5F8C87F6CF8FEF8983CE +:10454000F9CF1F920F920FB60F9211242F933F9322 +:104550008F939F93AF93BF938091C9079091CA07A0 +:10456000A091CB07B091CC073091C80723E0230F6F +:104570002D3758F50196A11DB11D2093C8078093D2 +:10458000C9079093CA07A093CB07B093CC0780913B +:10459000CD079091CE07A091CF07B091D00701969B +:1045A000A11DB11D8093CD079093CE07A093CF0797 +:1045B000B093D007BF91AF919F918F913F912F9171 +:1045C0000F900FBE0F901F90189526E8230F0296AC +:1045D000A11DB11DD2CF2FB7F8946091C90770917A +:1045E000CA078091CB079091CC072FBF08953FB7A2 +:1045F000F8948091CD079091CE07A091CF07B0910C +:10460000D00726B5A89B05C02F3F19F00196A11D24 +:10461000B11D3FBFBA2FA92F982F8827BC01CD010C +:10462000620F711D811D911D42E0660F771F881F6B +:10463000991F4A95D1F70895CF92DF92EF92FF929A +:10464000CF93DF936B017C010E94F722EB01C11431 +:10465000D104E104F10439F4DF91CF91FF90EF90A0 +:10466000DF90CF9008950E94F7226C1B7D0B683E6F +:10467000734068F381E0C81AD108E108F108C85115 +:10468000DC4FE5CF789484B5826084BD84B58160C9 +:1046900084BD85B5826085BD85B5816085BDEEE64A +:1046A000F0E0808181608083E1E8F0E01082808129 +:1046B00082608083808181608083E0E8F0E0808197 +:1046C00081608083E1EBF0E0808184608083E0EBB7 +:1046D000F0E0808181608083EAE7F0E0808184609F +:1046E00080838081826080838081816080838081FB +:1046F000806880831092C10008958E3008F08E503B +:104700002091050190E4299F900111248770822B4C +:1047100080937C0080917A00806480937A008091FD +:104720007A0086FDFCCF8091780090917900089501 +:104730001F93CF93DF93182FEB0161E00E941E249B +:10474000209739F460E0812FDF91CF911F910C9475 +:104750005A24CF3FD10511F461E0F5CFE12FF0E00D +:10476000E153F94FE491E33031F140F4E130B1F03D +:10477000E230E1F0C038D1057CF7E4CFE63029F132 +:10478000E73059F1E430B1F7809180008062809386 +:104790008000D0938B00C0938A0004C084B58068E9 +:1047A00084BDC7BDDF91CF911F91089584B580620C +:1047B00084BDC8BDF7CF8091800080688093800061 +:1047C000D0938900C0938800EDCF8091B0008068BD +:1047D0008093B000C093B300E5CF8091B0008062B9 +:1047E0008093B000C093B400DDCF833081F028F413 +:1047F000813099F08230A9F008958630A9F0873091 +:10480000C9F08430B1F4809180008F7D03C0809125 +:1048100080008F7780938000089584B58F7784BD62 +:10482000089584B58F7DFBCF8091B0008F77809302 +:10483000B00008958091B0008F7DF9CFCF93DF93C2 +:1048400090E0FC01ED51F94F24918950994FFC0102 +:1048500084918823C9F090E0880F991FFC01E15EE4 +:10486000F84FA591B491FC01EB5EF84FC591D4913E +:1048700061110DC09FB7F8948C91209582238C9381 +:104880008881282328839FBFDF91CF9108956230CC +:1048900051F49FB7F8943C91822F809583238C9399 +:1048A000E8812E2BEFCF8FB7F894EC912E2B2C9321 +:1048B0008FBFEACF1F93CF93DF93162F282F30E0BF +:1048C000F901E153F94F8491F901ED51F94FD49178 +:1048D000F901E950F94FC491CC23A1F081110E9454 +:1048E000F523EC2FF0E0EE0FFF1FEB5EF84FA591E4 +:1048F000B4918FB7F894EC91111108C0D095DE23D4 +:10490000DC938FBFDF91CF911F910895DE2BF8CFFD +:10491000CF93DF93282F30E0F901E153F94F8491D1 +:10492000F901ED51F94FD491F901E950F94FC491D2 +:10493000CC23A1F081110E94F523EC2FF0E0EE0FC3 +:10494000FF1FE55FF84FA591B491EC91ED2381E055 +:1049500090E009F480E0DF91CF91089580E090E04D +:10496000FACFCF92DF92EF92FF920F931F93CF93E4 +:10497000DF936C01EB017B01E40EF51E10E000E01B +:10498000CE15DF0561F06991D601ED91FC910190A2 +:10499000F081E02DC6010995080F191FF1CFC8015C +:1049A000DF91CF911F910F91FF90EF90DF90CF900B +:1049B0000895FB0101900020E9F73197AF01461BF4 +:1049C000570BDC01ED91FC910280F381E02D0994FD +:1049D000EF92FF920F931F93CF93DF937C018B0194 +:1049E000D0E0C0E0F80164910F5F1F4F662359F0DB +:1049F000D701ED91FC910190F081E02DC70109955F +:104A0000C80FD91FEFCFCE01DF91CF911F910F912A +:104A1000FF90EF9008956115710511F00C94D92461 +:104A200090E080E00895DC01ED91FC910190F0812F +:104A3000E02D09940F931F93CF93DF93EC016DE06A +:104A40000E9413258C016AE0CE010E941325800F7D +:104A5000911FDF91CF911F910F9108950F931F9395 +:104A6000CF93DF93EC010E94E8248C01CE010E94D9 +:104A70001A25800F911FDF91CF911F910F910895FB +:104A80008F929F92AF92BF92CF92DF92EF92FF925E +:104A90000F931F93CF93DF93CDB7DEB7A1970FB6D8 +:104AA000F894DEBF0FBECDBF6C01142FE52FCB01F4 +:104AB000022F19A2223008F40AE07E0121E2E20E60 +:104AC000F11C802E912CB12CA12C612F7E2FA501E1 +:104AD00094010E94B526029F101911241A303CF54A +:104AE000105DF70112937F01122FE32FCA01232BD0 +:104AF000242B252B51F790E080E0E114F10421F004 +:104B0000B701C6010E94D924A1960FB6F894DEBF62 +:104B10000FBECDBFDF91CF911F910F91FF90EF900E +:104B2000DF90CF90BF90AF909F908F900895195CC9 +:104B3000D8CFCF92DF92EF92FF920F931F93CF9334 +:104B4000DF93EC016A017B012115310579F4E881DD +:104B5000F9810190F081E02D642FDF91CF911F91B9 +:104B60000F91FF90EF90DF90CF9009942A3031059C +:104B7000E9F42AE0F7FE1AC06DE20E9413258C01C9 +:104B800044275527BA014C195D096E097F092AE0AF +:104B9000CE010E944025800F911FDF91CF911F9180 +:104BA0000F91FF90EF90DF90CF900895B701A6018D +:104BB000CE01DF91CF911F910F91FF90EF90DF9089 +:104BC000CF900C9440259A01AB01770F660B770BC1 +:104BD0000C9499252115310541F4DC01ED91FC91EE +:104BE0000190F081E02D642F09940C9440259A01E6 +:104BF000AB0170E060E00C94EA254F925F926F92F7 +:104C00007F92AF92BF92CF92DF92EF92FF920F937B +:104C10001F93CF93DF93CDB7DEB729013A019B01F4 +:104C2000AC01241935094609570989899A89AB8944 +:104C3000BC89BC01CD016A197B098C099D090E94C0 +:104C40007126A801970124193509460957090E94C0 +:104C5000D726CA01B9016A0D7B1D8C1D9D1DDF91F0 +:104C6000CF911F910F91FF90EF90DF90CF90BF9069 +:104C7000AF907F906F905F904F90089561E08AE0D1 +:104C80000E945A2461E08AE00E941E248CB5806153 +:104C90008CBD8CB580648CBD61E08DE00E941E24CB +:104CA00061E08BE00C941E24811104C08CB58062FD +:104CB0008CBD08958CB58F7DFBCF9CB5937F892BE0 +:104CC0008CBD08959CB59C7F282F2370922B9CBD92 +:104CD0009DB582FB222720F9892F8E7F822B8DBDE7 +:104CE0000895DB018F939F930E94F626BF91AF91A9 +:104CF000A29F800D911DA39F900DB29F900D112436 +:104D00000895991B79E004C0991F961708F0961B27 +:104D1000881F7A95C9F780950895AA1BBB1B51E19E +:104D200007C0AA1FBB1FA617B70710F0A61BB70B1B +:104D3000881F991F5A95A9F780959095BC01CD01C0 +:104D4000089597FB072E16F4009407D077FD09D03D +:104D50000E948D2607FC05D03EF4909581959F4FCB +:104D60000895709561957F4F0895A1E21A2EAA1BB0 +:104D7000BB1BFD010DC0AA1FBB1FEE1FFF1FA2170B +:104D8000B307E407F50720F0A21BB30BE40BF50B08 +:104D9000661F771F881F991F1A9469F76095709591 +:104DA000809590959B01AC01BD01CF010895052E22 +:104DB00097FB1EF400940E94EE2657FD07D00E9438 +:104DC000B52607FC03D04EF40C94EE265095409582 +:104DD000309521953F4F4F4F5F4F089590958095A7 +:104DE000709561957F4F8F4F9F4F08950E941327B5 +:104DF000A59F900DB49F900DA49F800D911D11242F +:104E000008950024A7FD00942A0F301D401D501D59 +:104E1000601D701D801D901D0895EE0FFF1F0590F1 +:104E2000F491E02D0994A29FB001B39FC001A39F0C +:104E3000700D811D1124911DB29F700D811D1124D3 +:104E4000911D08950E94BE2788F09F5798F0B92FB2 +:104E50009927B751B0F0E1F0660F771F881F991FAF +:104E60001AF0BA95C9F714C0B13091F00E94D82752 +:104E7000B1E008950C94D827672F782F8827B85F62 +:104E800039F0B93FCCF3869577956795B395D9F707 +:104E90003EF490958095709561957F4F8F4F9F4F11 +:104EA0000895E89409C097FB3EF49095809570951D +:104EB00061957F4F8F4F9F4F9923A9F0F92F96E966 +:104EC000BB279395F695879577956795B795F111DB +:104ED000F8CFFAF4BB0F11F460FF1BC06F5F7F4F78 +:104EE0008F4F9F4F16C0882311F096E911C077238A +:104EF00021F09EE8872F762F05C0662371F096E893 +:104F0000862F70E060E02AF09A95660F771F881F61 +:104F1000DAF7880F9695879597F9089597F99F671F +:104F200080E870E060E008959FEF80EC0895002431 +:104F30000A941616170618060906089500240A94FE +:104F400012161306140605060895092E0394000C84 +:104F500011F4882352F0BB0F40F4BF2B11F460FF13 +:104F600004C06F5F7F4F8F4F9F4F089557FD90583C +:104F7000440F551F59F05F3F71F04795880F97FB1D +:104F8000991F61F09F3F79F08795089512161306D7 +:104F90001406551FF2CF4695F1DF08C01616170606 +:104FA0001806991FF1CF869571056105089408953B +:104FB000E894BB2766277727CB0197F908950E94CD +:104FC000F2270C94A5270E94972738F00E949E276D +:104FD00020F0952311F00C948E270C949427112423 +:104FE0000C94D9270E94B62770F3959FC1F3950FB3 +:104FF00050E0551F629FF001729FBB27F00DB11D5D +:10500000639FAA27F00DB11DAA1F649F6627B00DEC +:10501000A11D661F829F2227B00DA11D621F739FD5 +:10502000B00DA11D621F839FA00D611D221F749FE3 +:105030003327A00D611D231F849F600D211D822F2A +:10504000762F6A2F11249F5750409AF0F1F0882351 +:105050004AF0EE0FFF1FBB1F661F771F881F91507E +:105060005040A9F79E3F510580F00C948E270C9478 +:10507000D9275F3FE4F3983ED4F3869577956795FB +:10508000B795F795E7959F5FC1F7FE2B880F911DA8 +:105090009695879597F908958F929F92AF92BF92B8 +:1050A000CF92DF92EF92FF92CF93DF93EC01688172 +:1050B00079818A819B81611571058105910521F4B2 +:1050C00064E279ED8BE597E02DE133EF41E050E0CC +:1050D0000E94D72649015A019B01AC01A7EAB1E41D +:1050E0000E94F6266B017C01ACEEB4EFA5019401A1 +:1050F0000E94B228DC01CB018C0D9D1DAE1DBF1D91 +:10510000B7FF03C00197A109B04888839983AA8398 +:10511000BB839F77DF91CF91FF90EF90DF90CF908F +:10512000BF90AF909F908F9008950E944C28089553 +:1051300080E091E00E944C280895B0E0A0E08093C8 +:10514000000190930101A0930201B093030108951F +:10515000DC0101C06D9341505040E0F70895B7FF66 +:105160000C94F6260E94F626821B930B089513E0FA +:10517000C7E9D3E004C0FE010E940D272196C8397B +:08518000D107C9F7F894FFCF35 +:10518800010000000101FA000000FD000900000410 +:10519800000200422E4241525200432E50454153D4 +:1051A8002E00432E534C44522E00432E54574E4348 +:1051B8002E0013011A0122012A010101000000003A +:1051C8000000000000320019000A00320000000050 +:1051D800000000640000000000000000000000C89B +:1051E80000000000000000000000001950006400EA +:1051F800C800000000008419B1244C4F41444552B6 +:025208000000A4 +:04000003000007846E :00000001FF diff --git a/Exe/POCKET.MAP b/Exe/POCKET.MAP index 47b78b8..76faae8 100644 --- a/Exe/POCKET.MAP +++ b/Exe/POCKET.MAP @@ -1280,7 +1280,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x4fbe +.text 0x0000000000000000 0x5188 *(.vectors) .vectors 0x0000000000000000 0x68 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o 0x0000000000000000 __vectors @@ -1306,748 +1306,759 @@ END GROUP 0x0000000000000080 0x7 Obj/Gameplay.o .progmem.data._ZL12MouseSprData 0x0000000000000087 0xa Obj/Gameplay.o - .progmem.data._ZZN6Player20ActionCreateBuildingEP6t_Unit8t_unitidE3__c + .progmem.data._ZZN6Player20ActionCreateBuildingE8t_unitidE3__c 0x0000000000000091 0x12 Obj/Player.o + .progmem.data._ZZN6Player16ActionCreateUnitEP6t_Unit8t_unitidE3__c + 0x00000000000000a3 0x16 Obj/Player.o .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c_0 - 0x00000000000000a3 0xd Obj/Player.o + 0x00000000000000b9 0xd Obj/Player.o .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c - 0x00000000000000b0 0x12 Obj/Player.o + 0x00000000000000c6 0x12 Obj/Player.o .progmem.data.TownCentreShadowSprData - 0x00000000000000c2 0x4a Obj/Unit.o - 0x00000000000000c2 TownCentreShadowSprData + 0x00000000000000d8 0x4a Obj/Unit.o + 0x00000000000000d8 TownCentreShadowSprData .progmem.data.TownCentreSprData - 0x000000000000010c 0x4a Obj/Unit.o - 0x000000000000010c TownCentreSprData + 0x0000000000000122 0x4a Obj/Unit.o + 0x0000000000000122 TownCentreSprData .progmem.data.BarracksShadowSpr_Data - 0x0000000000000156 0x4a Obj/Unit.o - 0x0000000000000156 BarracksShadowSpr_Data + 0x000000000000016c 0x4a Obj/Unit.o + 0x000000000000016c BarracksShadowSpr_Data .progmem.data.BarracksSpr_Data - 0x00000000000001a0 0x4a Obj/Unit.o - 0x00000000000001a0 BarracksSpr_Data + 0x00000000000001b6 0x4a Obj/Unit.o + 0x00000000000001b6 BarracksSpr_Data .progmem.data.SoldierSprData_Walking - 0x00000000000001ea 0xa Obj/Unit.o - 0x00000000000001ea SoldierSprData_Walking + 0x0000000000000200 0xa Obj/Unit.o + 0x0000000000000200 SoldierSprData_Walking .progmem.data.SoldierSprData - 0x00000000000001f4 0xa Obj/Unit.o - 0x00000000000001f4 SoldierSprData + 0x000000000000020a 0xa Obj/Unit.o + 0x000000000000020a SoldierSprData .progmem.data.Peasant_SprData - 0x00000000000001fe 0xa Obj/Unit.o - 0x00000000000001fe Peasant_SprData + 0x0000000000000214 0xa Obj/Unit.o + 0x0000000000000214 Peasant_SprData .progmem.data.Peasant_Walking_SprData - 0x0000000000000208 0xa Obj/Unit.o - 0x0000000000000208 Peasant_Walking_SprData + 0x000000000000021e 0xa Obj/Unit.o + 0x000000000000021e Peasant_Walking_SprData .progmem.data._ZL15MainMenuOptions - 0x0000000000000212 0x8 Obj/Menu.o + 0x0000000000000228 0x8 Obj/Menu.o .progmem.data._ZL16MainMenuOption_3 - 0x000000000000021a 0x5 Obj/Menu.o + 0x0000000000000230 0x5 Obj/Menu.o .progmem.data._ZL16MainMenuOption_2 - 0x000000000000021f 0x8 Obj/Menu.o + 0x0000000000000235 0x8 Obj/Menu.o .progmem.data._ZL16MainMenuOption_1 - 0x0000000000000227 0x11 Obj/Menu.o + 0x000000000000023d 0x11 Obj/Menu.o .progmem.data._ZL16MainMenuOption_0 - 0x0000000000000238 0x13 Obj/Menu.o + 0x000000000000024e 0x13 Obj/Menu.o .progmem.data.font3x3 - 0x000000000000024b 0x182 ../lib/libgamebuino.a(font3x3.o) - 0x000000000000024b font3x3 + 0x0000000000000261 0x182 ../lib/libgamebuino.a(font3x3.o) + 0x0000000000000261 font3x3 .progmem.data.font3x5 - 0x00000000000003cd 0x182 ../lib/libgamebuino.a(font3x5.o) - 0x00000000000003cd font3x5 + 0x00000000000003e3 0x182 ../lib/libgamebuino.a(font3x5.o) + 0x00000000000003e3 font3x5 .progmem.data._ZZN9Gamebuino10changeGameEvE3__c_0 - 0x000000000000054f 0x25 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000000565 0x25 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino10changeGameEvE3__c - 0x0000000000000574 0x28 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000058a 0x28 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_1 - 0x000000000000059c 0xb ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005b2 0xb ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_0 - 0x00000000000005a7 0x15 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005bd 0x15 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c - 0x00000000000005bc 0xe ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005d2 0xe ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_3 - 0x00000000000005ca 0x4 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005e0 0x4 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_2 - 0x00000000000005ce 0x4 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005e4 0x4 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_1 - 0x00000000000005d2 0x4 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005e8 0x4 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_0 - 0x00000000000005d6 0x4 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005ec 0x4 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c - 0x00000000000005da 0x4 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005f0 0x4 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZL13gamebuinoLogo - 0x00000000000005de 0x70 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000005f4 0x70 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZL12startupSound - 0x000000000000064e 0xe ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000000664 0xe ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZL12_halfPeriods - 0x000000000000065c 0x3b ../lib/libgamebuino.a(Sound.o) + 0x0000000000000672 0x3b ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL9playTickP - 0x0000000000000697 0x6 ../lib/libgamebuino.a(Sound.o) + 0x00000000000006ad 0x6 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL17playCancelPattern - 0x000000000000069d 0x8 ../lib/libgamebuino.a(Sound.o) + 0x00000000000006b3 0x8 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL13playOKPattern - 0x00000000000006a5 0x8 ../lib/libgamebuino.a(Sound.o) + 0x00000000000006bb 0x8 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL18defaultInstruments - 0x00000000000006ad 0x4 ../lib/libgamebuino.a(Sound.o) + 0x00000000000006c3 0x4 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL15noiseInstrument - 0x00000000000006b1 0x4 ../lib/libgamebuino.a(Sound.o) + 0x00000000000006c7 0x4 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL20squareWaveInstrument - 0x00000000000006b5 0x4 ../lib/libgamebuino.a(Sound.o) + 0x00000000000006cb 0x4 ../lib/libgamebuino.a(Sound.o) .progmem.data.digital_pin_to_timer_PGM - 0x00000000000006b9 0x14 ../lib/libarduino.a(wiring_digital.o) - 0x00000000000006b9 digital_pin_to_timer_PGM + 0x00000000000006cf 0x14 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000006cf digital_pin_to_timer_PGM .progmem.data.digital_pin_to_bit_mask_PGM - 0x00000000000006cd 0x14 ../lib/libarduino.a(wiring_digital.o) - 0x00000000000006cd digital_pin_to_bit_mask_PGM + 0x00000000000006e3 0x14 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000006e3 digital_pin_to_bit_mask_PGM .progmem.data.digital_pin_to_port_PGM - 0x00000000000006e1 0x14 ../lib/libarduino.a(wiring_digital.o) - 0x00000000000006e1 digital_pin_to_port_PGM + 0x00000000000006f7 0x14 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000006f7 digital_pin_to_port_PGM .progmem.data.port_to_input_PGM - 0x00000000000006f5 0xa ../lib/libarduino.a(wiring_digital.o) - 0x00000000000006f5 port_to_input_PGM + 0x000000000000070b 0xa ../lib/libarduino.a(wiring_digital.o) + 0x000000000000070b port_to_input_PGM .progmem.data.port_to_output_PGM - 0x00000000000006ff 0xa ../lib/libarduino.a(wiring_digital.o) - 0x00000000000006ff port_to_output_PGM + 0x0000000000000715 0xa ../lib/libarduino.a(wiring_digital.o) + 0x0000000000000715 port_to_output_PGM .progmem.data.port_to_mode_PGM - 0x0000000000000709 0xa ../lib/libarduino.a(wiring_digital.o) - 0x0000000000000709 port_to_mode_PGM - 0x0000000000000714 . = ALIGN (0x2) - *fill* 0x0000000000000713 0x1 + 0x000000000000071f 0xa ../lib/libarduino.a(wiring_digital.o) + 0x000000000000071f port_to_mode_PGM + 0x000000000000072a . = ALIGN (0x2) + *fill* 0x0000000000000729 0x1 *(.lowtext) *(.lowtext*) - 0x0000000000000714 __ctors_start = . + 0x000000000000072a __ctors_start = . *(.ctors) - .ctors 0x0000000000000714 0x2 Obj/main.o - .ctors 0x0000000000000716 0x2 Obj/Gameplay.o - 0x0000000000000718 __ctors_end = . - 0x0000000000000718 __dtors_start = . + .ctors 0x000000000000072a 0x2 Obj/main.o + .ctors 0x000000000000072c 0x2 Obj/Gameplay.o + 0x000000000000072e __ctors_end = . + 0x000000000000072e __dtors_start = . *(.dtors) - .dtors 0x0000000000000718 0x2 Obj/Gameplay.o - 0x000000000000071a __dtors_end = . + .dtors 0x000000000000072e 0x2 Obj/Gameplay.o + 0x0000000000000730 __dtors_end = . SORT(*)(.ctors) SORT(*)(.dtors) *(.init0) - .init0 0x000000000000071a 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o - 0x000000000000071a __init + .init0 0x0000000000000730 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o + 0x0000000000000730 __init *(.init0) *(.init1) *(.init1) *(.init2) - .init2 0x000000000000071a 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o + .init2 0x0000000000000730 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o *(.init2) *(.init3) *(.init3) *(.init4) - .init4 0x0000000000000726 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o) - 0x0000000000000726 __do_copy_data - .init4 0x000000000000073c 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o) - 0x000000000000073c __do_clear_bss + .init4 0x000000000000073c 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o) + 0x000000000000073c __do_copy_data + .init4 0x0000000000000752 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o) + 0x0000000000000752 __do_clear_bss *(.init4) *(.init5) *(.init5) *(.init6) - .init6 0x000000000000074c 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o) - 0x000000000000074c __do_global_ctors + .init6 0x0000000000000762 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o) + 0x0000000000000762 __do_global_ctors *(.init6) *(.init7) *(.init7) *(.init8) *(.init8) *(.init9) - .init9 0x0000000000000762 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o + .init9 0x0000000000000778 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o *(.init9) *(.text) - .text 0x000000000000076a 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o - 0x000000000000076a __vector_22 - 0x000000000000076a __vector_1 - 0x000000000000076a __vector_24 - 0x000000000000076a __vector_12 - 0x000000000000076a __bad_interrupt - 0x000000000000076a __vector_6 - 0x000000000000076a __vector_3 - 0x000000000000076a __vector_23 - 0x000000000000076a __vector_25 - 0x000000000000076a __vector_13 - 0x000000000000076a __vector_17 - 0x000000000000076a __vector_19 - 0x000000000000076a __vector_7 - 0x000000000000076a __vector_5 - 0x000000000000076a __vector_4 - 0x000000000000076a __vector_9 - 0x000000000000076a __vector_2 - 0x000000000000076a __vector_21 - 0x000000000000076a __vector_15 - 0x000000000000076a __vector_8 - 0x000000000000076a __vector_14 - 0x000000000000076a __vector_10 - 0x000000000000076a __vector_18 - 0x000000000000076a __vector_20 - 0x000000000000076e . = ALIGN (0x2) + .text 0x0000000000000780 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o + 0x0000000000000780 __vector_22 + 0x0000000000000780 __vector_1 + 0x0000000000000780 __vector_24 + 0x0000000000000780 __vector_12 + 0x0000000000000780 __bad_interrupt + 0x0000000000000780 __vector_6 + 0x0000000000000780 __vector_3 + 0x0000000000000780 __vector_23 + 0x0000000000000780 __vector_25 + 0x0000000000000780 __vector_13 + 0x0000000000000780 __vector_17 + 0x0000000000000780 __vector_19 + 0x0000000000000780 __vector_7 + 0x0000000000000780 __vector_5 + 0x0000000000000780 __vector_4 + 0x0000000000000780 __vector_9 + 0x0000000000000780 __vector_2 + 0x0000000000000780 __vector_21 + 0x0000000000000780 __vector_15 + 0x0000000000000780 __vector_8 + 0x0000000000000780 __vector_14 + 0x0000000000000780 __vector_10 + 0x0000000000000780 __vector_18 + 0x0000000000000780 __vector_20 + 0x0000000000000784 . = ALIGN (0x2) *(.text.*) .text.startup.main - 0x000000000000076e 0x22 Obj/main.o - 0x000000000000076e main + 0x0000000000000784 0x22 Obj/main.o + 0x0000000000000784 main .text.startup._GLOBAL__sub_I_gb - 0x0000000000000790 0x16 Obj/main.o + 0x00000000000007a6 0x16 Obj/main.o .text._Z8GameInitv - 0x00000000000007a6 0x8a Obj/Gameplay.o - 0x00000000000007a6 _Z8GameInitv + 0x00000000000007bc 0x8a Obj/Gameplay.o + 0x00000000000007bc _Z8GameInitv .text.startup._GLOBAL__sub_I_GamePlayers - 0x0000000000000830 0x8 Obj/Gameplay.o + 0x0000000000000846 0x8 Obj/Gameplay.o .text.exit._GLOBAL__sub_D_GamePlayers - 0x0000000000000838 0x8 Obj/Gameplay.o + 0x000000000000084e 0x8 Obj/Gameplay.o .text.SystemSetRandSeed - 0x0000000000000840 0x38 Obj/System.o - 0x0000000000000840 SystemSetRandSeed + 0x0000000000000856 0x38 Obj/System.o + 0x0000000000000856 SystemSetRandSeed .text.SystemIncreaseGlobalTimer - 0x0000000000000878 0x48 Obj/System.o - 0x0000000000000878 SystemIncreaseGlobalTimer + 0x000000000000088e 0x48 Obj/System.o + 0x000000000000088e SystemIncreaseGlobalTimer .text.SystemRand - 0x00000000000008c0 0x56 Obj/System.o - 0x00000000000008c0 SystemRand + 0x00000000000008d6 0x56 Obj/System.o + 0x00000000000008d6 SystemRand .text.SystemResetTimers - 0x0000000000000916 0x28 Obj/System.o - 0x0000000000000916 SystemResetTimers + 0x000000000000092c 0x28 Obj/System.o + 0x000000000000092c SystemResetTimers .text.SystemInit - 0x000000000000093e 0x2e Obj/System.o - 0x000000000000093e SystemInit + 0x0000000000000954 0x2e Obj/System.o + 0x0000000000000954 SystemInit .text.SystemCollisionCheck - 0x000000000000096c 0x60 Obj/System.o - 0x000000000000096c SystemCollisionCheck + 0x0000000000000982 0x60 Obj/System.o + 0x0000000000000982 SystemCollisionCheck .text.Systemitoa - 0x00000000000009cc 0xb0 Obj/System.o - 0x00000000000009cc Systemitoa + 0x00000000000009e2 0xb0 Obj/System.o + 0x00000000000009e2 Systemitoa + .text.SystemGetHyp + 0x0000000000000a92 0x28 Obj/System.o + 0x0000000000000a92 SystemGetHyp .text._ZL21GfxIsInsideScreenAreaaahh - 0x0000000000000a7c 0x2a Obj/Gfx.o - .text.GfxInit 0x0000000000000aa6 0x10 Obj/Gfx.o - 0x0000000000000aa6 GfxInit + 0x0000000000000aba 0x2a Obj/Gfx.o + .text.GfxInit 0x0000000000000ae4 0x10 Obj/Gfx.o + 0x0000000000000ae4 GfxInit .text.GfxRefreshNeeded - 0x0000000000000ab6 0x14 Obj/Gfx.o - 0x0000000000000ab6 GfxRefreshNeeded + 0x0000000000000af4 0x14 Obj/Gfx.o + 0x0000000000000af4 GfxRefreshNeeded .text.GfxClearScreen - 0x0000000000000aca 0x12 Obj/Gfx.o - 0x0000000000000aca GfxClearScreen + 0x0000000000000b08 0x12 Obj/Gfx.o + 0x0000000000000b08 GfxClearScreen .text.GfxIsSpriteInsideScreenArea - 0x0000000000000adc 0xe Obj/Gfx.o - 0x0000000000000adc GfxIsSpriteInsideScreenArea + 0x0000000000000b1a 0xe Obj/Gfx.o + 0x0000000000000b1a GfxIsSpriteInsideScreenArea .text.GfxDrawSprite - 0x0000000000000aea 0x5c Obj/Gfx.o - 0x0000000000000aea GfxDrawSprite + 0x0000000000000b28 0x5c Obj/Gfx.o + 0x0000000000000b28 GfxDrawSprite .text.GfxGetWidthFromSpriteData - 0x0000000000000b46 0x6 Obj/Gfx.o - 0x0000000000000b46 GfxGetWidthFromSpriteData + 0x0000000000000b84 0x6 Obj/Gfx.o + 0x0000000000000b84 GfxGetWidthFromSpriteData .text.GfxGetHeightFromSpriteData - 0x0000000000000b4c 0x8 Obj/Gfx.o - 0x0000000000000b4c GfxGetHeightFromSpriteData + 0x0000000000000b8a 0x8 Obj/Gfx.o + 0x0000000000000b8a GfxGetHeightFromSpriteData .text.GfxPrintText_Flash - 0x0000000000000b54 0xc Obj/Gfx.o - 0x0000000000000b54 GfxPrintText_Flash + 0x0000000000000b92 0xc Obj/Gfx.o + 0x0000000000000b92 GfxPrintText_Flash .text.GfxPrintTextFont - 0x0000000000000b60 0x5a Obj/Gfx.o - 0x0000000000000b60 GfxPrintTextFont + 0x0000000000000b9e 0x5a Obj/Gfx.o + 0x0000000000000b9e GfxPrintTextFont .text.GfxDrawCircle - 0x0000000000000bba 0x58 Obj/Gfx.o - 0x0000000000000bba GfxDrawCircle + 0x0000000000000bf8 0x58 Obj/Gfx.o + 0x0000000000000bf8 GfxDrawCircle .text.GfxDrawRectangle - 0x0000000000000c12 0x5e Obj/Gfx.o - 0x0000000000000c12 GfxDrawRectangle + 0x0000000000000c50 0x5e Obj/Gfx.o + 0x0000000000000c50 GfxDrawRectangle .text.GfxFillRectangle - 0x0000000000000c70 0x5e Obj/Gfx.o - 0x0000000000000c70 GfxFillRectangle + 0x0000000000000cae 0x5e Obj/Gfx.o + 0x0000000000000cae GfxFillRectangle .text.PadButtonReleased - 0x0000000000000cce 0x16 Obj/Pad.o - 0x0000000000000cce PadButtonReleased + 0x0000000000000d0c 0x16 Obj/Pad.o + 0x0000000000000d0c PadButtonReleased .text.PadButtonPressedFrames - 0x0000000000000ce4 0x1c Obj/Pad.o - 0x0000000000000ce4 PadButtonPressedFrames + 0x0000000000000d22 0x1c Obj/Pad.o + 0x0000000000000d22 PadButtonPressedFrames .text.PadButtonPressed - 0x0000000000000d00 0x6 Obj/Pad.o - 0x0000000000000d00 PadButtonPressed + 0x0000000000000d3e 0x6 Obj/Pad.o + 0x0000000000000d3e PadButtonPressed .text.PadDirectionKeyPressed - 0x0000000000000d06 0x30 Obj/Pad.o - 0x0000000000000d06 PadDirectionKeyPressed + 0x0000000000000d44 0x30 Obj/Pad.o + 0x0000000000000d44 PadDirectionKeyPressed .text.PadAnyKeyPressed - 0x0000000000000d36 0x20 Obj/Pad.o - 0x0000000000000d36 PadAnyKeyPressed + 0x0000000000000d74 0x20 Obj/Pad.o + 0x0000000000000d74 PadAnyKeyPressed .text._ZN6PlayerC2Ev - 0x0000000000000d56 0x2 Obj/Player.o - 0x0000000000000d56 _ZN6PlayerC2Ev - 0x0000000000000d56 _ZN6PlayerC1Ev + 0x0000000000000d94 0x2 Obj/Player.o + 0x0000000000000d94 _ZN6PlayerC2Ev + 0x0000000000000d94 _ZN6PlayerC1Ev .text._ZN6PlayerD2Ev - 0x0000000000000d58 0x2 Obj/Player.o - 0x0000000000000d58 _ZN6PlayerD2Ev - 0x0000000000000d58 _ZN6PlayerD1Ev + 0x0000000000000d96 0x2 Obj/Player.o + 0x0000000000000d96 _ZN6PlayerD2Ev + 0x0000000000000d96 _ZN6PlayerD1Ev .text._ZN6Player10showHealthEh - 0x0000000000000d5a 0x6a Obj/Player.o - 0x0000000000000d5a _ZN6Player10showHealthEh + 0x0000000000000d98 0x6a Obj/Player.o + 0x0000000000000d98 _ZN6Player10showHealthEh + .text._ZN6Player13getAliveUnitsEv + 0x0000000000000e02 0x20 Obj/Player.o + 0x0000000000000e02 _ZN6Player13getAliveUnitsEv .text._ZN6Player13ShowResourcesEv - 0x0000000000000dc4 0x13a Obj/Player.o - 0x0000000000000dc4 _ZN6Player13ShowResourcesEv + 0x0000000000000e22 0x13a Obj/Player.o + 0x0000000000000e22 _ZN6Player13ShowResourcesEv .text._ZN6Player10createUnitE8t_unitid16t_CollisionBlock - 0x0000000000000efe 0x14c Obj/Player.o - 0x0000000000000efe _ZN6Player10createUnitE8t_unitid16t_CollisionBlock + 0x0000000000000f5c 0x172 Obj/Player.o + 0x0000000000000f5c _ZN6Player10createUnitE8t_unitid16t_CollisionBlock .text._ZN6Player4InitEv - 0x000000000000104a 0x138 Obj/Player.o - 0x000000000000104a _ZN6Player4InitEv + 0x00000000000010ce 0x138 Obj/Player.o + 0x00000000000010ce _ZN6Player4InitEv .text._ZN6Player12GetCursorPosEv - 0x0000000000001182 0x58 Obj/Player.o - 0x0000000000001182 _ZN6Player12GetCursorPosEv + 0x0000000000001206 0x58 Obj/Player.o + 0x0000000000001206 _ZN6Player12GetCursorPosEv .text._ZN6Player21UnitBuildingSelectionEv - 0x00000000000011da 0x118 Obj/Player.o - 0x00000000000011da _ZN6Player21UnitBuildingSelectionEv + 0x000000000000125e 0x110 Obj/Player.o + 0x000000000000125e _ZN6Player21UnitBuildingSelectionEv .text._ZN6Player14ButtonAPressedEv - 0x00000000000012f2 0x22 Obj/Player.o - 0x00000000000012f2 _ZN6Player14ButtonAPressedEv + 0x000000000000136e 0x22 Obj/Player.o + 0x000000000000136e _ZN6Player14ButtonAPressedEv .text._ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid - 0x0000000000001314 0xd6 Obj/Player.o - 0x0000000000001314 _ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid - .text._ZN6Player20ActionCreateBuildingEP6t_Unit8t_unitid - 0x00000000000013ea 0xea Obj/Player.o - 0x00000000000013ea _ZN6Player20ActionCreateBuildingEP6t_Unit8t_unitid + 0x0000000000001390 0x11e Obj/Player.o + 0x0000000000001390 _ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid + .text._ZN6Player20ActionCreateBuildingE8t_unitid + 0x00000000000014ae 0x90 Obj/Player.o + 0x00000000000014ae _ZN6Player20ActionCreateBuildingE8t_unitid .text._ZN6Player15ButtonAReleasedEv - 0x00000000000014d4 0xd4 Obj/Player.o - 0x00000000000014d4 _ZN6Player15ButtonAReleasedEv + 0x000000000000153e 0xd0 Obj/Player.o + 0x000000000000153e _ZN6Player15ButtonAReleasedEv .text._ZN6Player14ButtonBPressedEv - 0x00000000000015a8 0x52 Obj/Player.o - 0x00000000000015a8 _ZN6Player14ButtonBPressedEv + 0x000000000000160e 0x52 Obj/Player.o + 0x000000000000160e _ZN6Player14ButtonBPressedEv .text._ZN6Player15ButtonBReleasedEv - 0x00000000000015fa 0xc4 Obj/Player.o - 0x00000000000015fa _ZN6Player15ButtonBReleasedEv + 0x0000000000001660 0xc4 Obj/Player.o + 0x0000000000001660 _ZN6Player15ButtonBReleasedEv .text._ZN6Player18ButtonLeftReleasedEv - 0x00000000000016be 0x7e Obj/Player.o - 0x00000000000016be _ZN6Player18ButtonLeftReleasedEv + 0x0000000000001724 0x7e Obj/Player.o + 0x0000000000001724 _ZN6Player18ButtonLeftReleasedEv .text._ZN6Player28IncreaseShowActionsMenuIndexEv - 0x000000000000173c 0x7e Obj/Player.o - 0x000000000000173c _ZN6Player28IncreaseShowActionsMenuIndexEv + 0x00000000000017a2 0x7e Obj/Player.o + 0x00000000000017a2 _ZN6Player28IncreaseShowActionsMenuIndexEv .text._ZN6Player11ActionsMenuEv - 0x00000000000017ba 0x8c Obj/Player.o - 0x00000000000017ba _ZN6Player11ActionsMenuEv + 0x0000000000001820 0x8c Obj/Player.o + 0x0000000000001820 _ZN6Player11ActionsMenuEv .text._ZN6Player11DrawHandlerEv - 0x0000000000001846 0xf8 Obj/Player.o - 0x0000000000001846 _ZN6Player11DrawHandlerEv + 0x00000000000018ac 0xf8 Obj/Player.o + 0x00000000000018ac _ZN6Player11DrawHandlerEv .text._ZN6Player13ButtonHandlerEv - 0x000000000000193e 0x90 Obj/Player.o - 0x000000000000193e _ZN6Player13ButtonHandlerEv + 0x00000000000019a4 0x90 Obj/Player.o + 0x00000000000019a4 _ZN6Player13ButtonHandlerEv .text._ZN6Player7HandlerEv - 0x00000000000019ce 0x44 Obj/Player.o - 0x00000000000019ce _ZN6Player7HandlerEv + 0x0000000000001a34 0x44 Obj/Player.o + 0x0000000000001a34 _ZN6Player7HandlerEv .text.CameraInit - 0x0000000000001a12 0x16 Obj/Camera.o - 0x0000000000001a12 CameraInit + 0x0000000000001a78 0x16 Obj/Camera.o + 0x0000000000001a78 CameraInit .text.CameraApplyCoordinatesToCoordinates - 0x0000000000001a28 0x66 Obj/Camera.o - 0x0000000000001a28 CameraApplyCoordinatesToCoordinates + 0x0000000000001a8e 0x66 Obj/Camera.o + 0x0000000000001a8e CameraApplyCoordinatesToCoordinates .text.CameraApplyCoordinatesToSprite - 0x0000000000001a8e 0x14 Obj/Camera.o - 0x0000000000001a8e CameraApplyCoordinatesToSprite + 0x0000000000001af4 0x14 Obj/Camera.o + 0x0000000000001af4 CameraApplyCoordinatesToSprite .text.CameraHandler - 0x0000000000001aa2 0x13c Obj/Camera.o - 0x0000000000001aa2 CameraHandler + 0x0000000000001b08 0x116 Obj/Camera.o + 0x0000000000001b08 CameraHandler .text.CameraSetLock - 0x0000000000001bde 0x6 Obj/Camera.o - 0x0000000000001bde CameraSetLock + 0x0000000000001c1e 0x6 Obj/Camera.o + 0x0000000000001c1e CameraSetLock .text.UnitInit - 0x0000000000001be4 0x128 Obj/Unit.o - 0x0000000000001be4 UnitInit + 0x0000000000001c24 0x128 Obj/Unit.o + 0x0000000000001c24 UnitInit .text.UnitGetWidthFromID - 0x0000000000001d0c 0x18 Obj/Unit.o - 0x0000000000001d0c UnitGetWidthFromID + 0x0000000000001d4c 0x18 Obj/Unit.o + 0x0000000000001d4c UnitGetWidthFromID .text.UnitGetHeightFromID - 0x0000000000001d24 0x18 Obj/Unit.o - 0x0000000000001d24 UnitGetHeightFromID + 0x0000000000001d64 0x18 Obj/Unit.o + 0x0000000000001d64 UnitGetHeightFromID .text.UnitDraw - 0x0000000000001d3c 0x242 Obj/Unit.o - 0x0000000000001d3c UnitDraw + 0x0000000000001d7c 0x242 Obj/Unit.o + 0x0000000000001d7c UnitDraw .text.UnitGetHpFromID - 0x0000000000001f7e 0xa Obj/Unit.o - 0x0000000000001f7e UnitGetHpFromID + 0x0000000000001fbe 0xa Obj/Unit.o + 0x0000000000001fbe UnitGetHpFromID .text.UnitNeededResourcesFromID - 0x0000000000001f88 0x4e Obj/Unit.o - 0x0000000000001f88 UnitNeededResourcesFromID + 0x0000000000001fc8 0x4e Obj/Unit.o + 0x0000000000001fc8 UnitNeededResourcesFromID .text.UnitMoveTo - 0x0000000000001fd6 0x10 Obj/Unit.o - 0x0000000000001fd6 UnitMoveTo + 0x0000000000002016 0x10 Obj/Unit.o + 0x0000000000002016 UnitMoveTo + .text.UnitCheckCollisionAgainstOtherUnits + 0x0000000000002026 0xa2 Obj/Unit.o + 0x0000000000002026 UnitCheckCollisionAgainstOtherUnits .text.UnitHandler - 0x0000000000001fe6 0x22e Obj/Unit.o - 0x0000000000001fe6 UnitHandler + 0x00000000000020c8 0x316 Obj/Unit.o + 0x00000000000020c8 UnitHandler .text.UnitGetAvailableActions - 0x0000000000002214 0x10 Obj/Unit.o - 0x0000000000002214 UnitGetAvailableActions + 0x00000000000023de 0x10 Obj/Unit.o + 0x00000000000023de UnitGetAvailableActions .text.UnitGetActionString - 0x0000000000002224 0x10 Obj/Unit.o - 0x0000000000002224 UnitGetActionString + 0x00000000000023ee 0x10 Obj/Unit.o + 0x00000000000023ee UnitGetActionString .text._Z17MenuGetPlayerNameP6Player - 0x0000000000002234 0x18 Obj/Menu.o - 0x0000000000002234 _Z17MenuGetPlayerNameP6Player + 0x00000000000023fe 0x18 Obj/Menu.o + 0x00000000000023fe _Z17MenuGetPlayerNameP6Player .text._Z8MainMenuv - 0x000000000000224c 0x20 Obj/Menu.o - 0x000000000000224c _Z8MainMenuv + 0x0000000000002416 0x20 Obj/Menu.o + 0x0000000000002416 _Z8MainMenuv .text._ZN7Buttons5beginEv - 0x000000000000226c 0x20 ../lib/libgamebuino.a(Buttons.o) - 0x000000000000226c _ZN7Buttons5beginEv + 0x0000000000002436 0x20 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000002436 _ZN7Buttons5beginEv .text._ZN7Buttons6updateEv - 0x000000000000228c 0x5a ../lib/libgamebuino.a(Buttons.o) - 0x000000000000228c _ZN7Buttons6updateEv + 0x0000000000002456 0x5a ../lib/libgamebuino.a(Buttons.o) + 0x0000000000002456 _ZN7Buttons6updateEv .text._ZN7Buttons7pressedEh - 0x00000000000022e6 0x12 ../lib/libgamebuino.a(Buttons.o) - 0x00000000000022e6 _ZN7Buttons7pressedEh + 0x00000000000024b0 0x12 ../lib/libgamebuino.a(Buttons.o) + 0x00000000000024b0 _ZN7Buttons7pressedEh .text._ZN7Buttons8releasedEh - 0x00000000000022f8 0x12 ../lib/libgamebuino.a(Buttons.o) - 0x00000000000022f8 _ZN7Buttons8releasedEh + 0x00000000000024c2 0x12 ../lib/libgamebuino.a(Buttons.o) + 0x00000000000024c2 _ZN7Buttons8releasedEh .text._ZN7Buttons6repeatEhh - 0x000000000000230a 0x2c ../lib/libgamebuino.a(Buttons.o) - 0x000000000000230a _ZN7Buttons6repeatEhh + 0x00000000000024d4 0x2c ../lib/libgamebuino.a(Buttons.o) + 0x00000000000024d4 _ZN7Buttons6repeatEhh .text._ZN7Buttons8timeHeldEh - 0x0000000000002336 0x10 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000002336 _ZN7Buttons8timeHeldEh + 0x0000000000002500 0x10 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000002500 _ZN7Buttons8timeHeldEh .text._ZN8SPIClass8transferEh - 0x0000000000002346 0xc ../lib/libgamebuino.a(Display.o) - 0x0000000000002346 _ZN8SPIClass8transferEh + 0x0000000000002510 0xc ../lib/libgamebuino.a(Display.o) + 0x0000000000002510 _ZN8SPIClass8transferEh .text._ZN7Display9drawPixelEaa - 0x0000000000002352 0x8e ../lib/libgamebuino.a(Display.o) - 0x0000000000002352 _ZN7Display9drawPixelEaa + 0x000000000000251c 0x8e ../lib/libgamebuino.a(Display.o) + 0x000000000000251c _ZN7Display9drawPixelEaa .text._ZN7Display7commandEh - 0x00000000000023e0 0x3c ../lib/libgamebuino.a(Display.o) - 0x00000000000023e0 _ZN7Display7commandEh + 0x00000000000025aa 0x3c ../lib/libgamebuino.a(Display.o) + 0x00000000000025aa _ZN7Display7commandEh .text._ZN7Display5clearEv - 0x000000000000241c 0x22 ../lib/libgamebuino.a(Display.o) - 0x000000000000241c _ZN7Display5clearEv + 0x00000000000025e6 0x22 ../lib/libgamebuino.a(Display.o) + 0x00000000000025e6 _ZN7Display5clearEv .text._ZN7Display10fillScreenEh - 0x000000000000243e 0x10 ../lib/libgamebuino.a(Display.o) - 0x000000000000243e _ZN7Display10fillScreenEh + 0x0000000000002608 0x10 ../lib/libgamebuino.a(Display.o) + 0x0000000000002608 _ZN7Display10fillScreenEh .text._ZN7Display6updateEv - 0x000000000000244e 0x8a ../lib/libgamebuino.a(Display.o) - 0x000000000000244e _ZN7Display6updateEv + 0x0000000000002618 0x8a ../lib/libgamebuino.a(Display.o) + 0x0000000000002618 _ZN7Display6updateEv .text._ZN7Display8setColorEa - 0x00000000000024d8 0x8 ../lib/libgamebuino.a(Display.o) - 0x00000000000024d8 _ZN7Display8setColorEa + 0x00000000000026a2 0x8 ../lib/libgamebuino.a(Display.o) + 0x00000000000026a2 _ZN7Display8setColorEa .text._ZN7Display8setColorEaa - 0x00000000000024e0 0x8 ../lib/libgamebuino.a(Display.o) - 0x00000000000024e0 _ZN7Display8setColorEaa + 0x00000000000026aa 0x8 ../lib/libgamebuino.a(Display.o) + 0x00000000000026aa _ZN7Display8setColorEaa .text._ZN7Display13drawFastVLineEaaa - 0x00000000000024e8 0x38 ../lib/libgamebuino.a(Display.o) - 0x00000000000024e8 _ZN7Display13drawFastVLineEaaa + 0x00000000000026b2 0x38 ../lib/libgamebuino.a(Display.o) + 0x00000000000026b2 _ZN7Display13drawFastVLineEaaa .text._ZN7Display13drawFastHLineEaaa - 0x0000000000002520 0x38 ../lib/libgamebuino.a(Display.o) - 0x0000000000002520 _ZN7Display13drawFastHLineEaaa + 0x00000000000026ea 0x38 ../lib/libgamebuino.a(Display.o) + 0x00000000000026ea _ZN7Display13drawFastHLineEaaa .text._ZN7Display8drawRectEaaaa - 0x0000000000002558 0x50 ../lib/libgamebuino.a(Display.o) - 0x0000000000002558 _ZN7Display8drawRectEaaaa + 0x0000000000002722 0x50 ../lib/libgamebuino.a(Display.o) + 0x0000000000002722 _ZN7Display8drawRectEaaaa .text._ZN7Display8fillRectEaaaa - 0x00000000000025a8 0x52 ../lib/libgamebuino.a(Display.o) - 0x00000000000025a8 _ZN7Display8fillRectEaaaa + 0x0000000000002772 0x52 ../lib/libgamebuino.a(Display.o) + 0x0000000000002772 _ZN7Display8fillRectEaaaa .text._ZN7Display10drawCircleEaaa - 0x00000000000025fa 0x100 ../lib/libgamebuino.a(Display.o) - 0x00000000000025fa _ZN7Display10drawCircleEaaa + 0x00000000000027c4 0x100 ../lib/libgamebuino.a(Display.o) + 0x00000000000027c4 _ZN7Display10drawCircleEaaa .text._ZN7Display16drawCircleHelperEaaah - 0x00000000000026fa 0xfc ../lib/libgamebuino.a(Display.o) - 0x00000000000026fa _ZN7Display16drawCircleHelperEaaah + 0x00000000000028c4 0xfc ../lib/libgamebuino.a(Display.o) + 0x00000000000028c4 _ZN7Display16drawCircleHelperEaaah .text._ZN7Display16fillCircleHelperEaaaha - 0x00000000000027f6 0xca ../lib/libgamebuino.a(Display.o) - 0x00000000000027f6 _ZN7Display16fillCircleHelperEaaaha + 0x00000000000029c0 0xca ../lib/libgamebuino.a(Display.o) + 0x00000000000029c0 _ZN7Display16fillCircleHelperEaaaha .text._ZN7Display13drawRoundRectEaaaaa - 0x00000000000028c0 0xbe ../lib/libgamebuino.a(Display.o) - 0x00000000000028c0 _ZN7Display13drawRoundRectEaaaaa + 0x0000000000002a8a 0xbe ../lib/libgamebuino.a(Display.o) + 0x0000000000002a8a _ZN7Display13drawRoundRectEaaaaa .text._ZN7Display13fillRoundRectEaaaaa - 0x000000000000297e 0x6e ../lib/libgamebuino.a(Display.o) - 0x000000000000297e _ZN7Display13fillRoundRectEaaaaa + 0x0000000000002b48 0x6e ../lib/libgamebuino.a(Display.o) + 0x0000000000002b48 _ZN7Display13fillRoundRectEaaaaa .text._ZN7Display10drawBitmapEaaPKh - 0x00000000000029ec 0x280 ../lib/libgamebuino.a(Display.o) - 0x00000000000029ec _ZN7Display10drawBitmapEaaPKh + 0x0000000000002bb6 0x280 ../lib/libgamebuino.a(Display.o) + 0x0000000000002bb6 _ZN7Display10drawBitmapEaaPKh .text._ZN7Display10drawBitmapEaaPKhhh - 0x0000000000002c6c 0x1ce ../lib/libgamebuino.a(Display.o) - 0x0000000000002c6c _ZN7Display10drawBitmapEaaPKhhh + 0x0000000000002e36 0x1ce ../lib/libgamebuino.a(Display.o) + 0x0000000000002e36 _ZN7Display10drawBitmapEaaPKhhh .text._ZN7Display7setFontEPKh - 0x0000000000002e3a 0x28 ../lib/libgamebuino.a(Display.o) - 0x0000000000002e3a _ZN7Display7setFontEPKh + 0x0000000000003004 0x28 ../lib/libgamebuino.a(Display.o) + 0x0000000000003004 _ZN7Display7setFontEPKh .text._ZN7Display5beginEaaaaa - 0x0000000000002e62 0x180 ../lib/libgamebuino.a(Display.o) - 0x0000000000002e62 _ZN7Display5beginEaaaaa + 0x000000000000302c 0x180 ../lib/libgamebuino.a(Display.o) + 0x000000000000302c _ZN7Display5beginEaaaaa .text._ZN7Display8drawCharEaahh - 0x0000000000002fe2 0x15c ../lib/libgamebuino.a(Display.o) - 0x0000000000002fe2 _ZN7Display8drawCharEaahh + 0x00000000000031ac 0x15c ../lib/libgamebuino.a(Display.o) + 0x00000000000031ac _ZN7Display8drawCharEaahh .text._ZN7Display5writeEh - 0x000000000000313e 0x66 ../lib/libgamebuino.a(Display.o) - 0x000000000000313e _ZN7Display5writeEh + 0x0000000000003308 0x66 ../lib/libgamebuino.a(Display.o) + 0x0000000000003308 _ZN7Display5writeEh .text._ZN9Gamebuino5popupEPK19__FlashStringHelperh - 0x00000000000031a4 0x16 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000031a4 _ZN9Gamebuino5popupEPK19__FlashStringHelperh + 0x000000000000336e 0x16 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000336e _ZN9Gamebuino5popupEPK19__FlashStringHelperh .text._ZN9Gamebuino11updatePopupEv - 0x00000000000031ba 0xda ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000031ba _ZN9Gamebuino11updatePopupEv + 0x0000000000003384 0xda ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003384 _ZN9Gamebuino11updatePopupEv .text._ZN9Gamebuino14displayBatteryEv - 0x0000000000003294 0x160 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003294 _ZN9Gamebuino14displayBatteryEv + 0x000000000000345e 0x160 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000345e _ZN9Gamebuino14displayBatteryEv .text._ZN9Gamebuino6updateEv - 0x00000000000033f4 0x170 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000033f4 _ZN9Gamebuino6updateEv + 0x00000000000035be 0x170 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000035be _ZN9Gamebuino6updateEv .text._ZN9Gamebuino4menuEPKPKch - 0x0000000000003564 0x2a0 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003564 _ZN9Gamebuino4menuEPKPKch + 0x000000000000372e 0x2a0 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000372e _ZN9Gamebuino4menuEPKPKch .text._ZN9Gamebuino10changeGameEv - 0x0000000000003804 0x7a ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003804 _ZN9Gamebuino10changeGameEv + 0x00000000000039ce 0x7a ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000039ce _ZN9Gamebuino10changeGameEv .text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh - 0x000000000000387e 0x270 ../lib/libgamebuino.a(Gamebuino.o) - 0x000000000000387e _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh + 0x0000000000003a48 0x270 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003a48 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh .text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelper - 0x0000000000003aee 0x8 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003aee _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper + 0x0000000000003cb8 0x8 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003cb8 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper .text._ZN9Gamebuino17settingsAvailableEv - 0x0000000000003af6 0x14 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003af6 _ZN9Gamebuino17settingsAvailableEv + 0x0000000000003cc0 0x14 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003cc0 _ZN9Gamebuino17settingsAvailableEv .text._ZN9Gamebuino12readSettingsEv - 0x0000000000003b0a 0xde ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003b0a _ZN9Gamebuino12readSettingsEv + 0x0000000000003cd4 0xde ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003cd4 _ZN9Gamebuino12readSettingsEv .text._ZN9Gamebuino5beginEv - 0x0000000000003be8 0xb6 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003be8 _ZN9Gamebuino5beginEv + 0x0000000000003db2 0xb6 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003db2 _ZN9Gamebuino5beginEv .text._ZN9Gamebuino14getDefaultNameEPc - 0x0000000000003c9e 0x2c ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000003c9e _ZN9Gamebuino14getDefaultNameEPc + 0x0000000000003e68 0x2c ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000003e68 _ZN9Gamebuino14getDefaultNameEPc .text._ZN5Sound7commandEhhah.part.0 - 0x0000000000003cca 0x66 ../lib/libgamebuino.a(Sound.o) + 0x0000000000003e94 0x66 ../lib/libgamebuino.a(Sound.o) .text._ZN5Sound5beginEv - 0x0000000000003d30 0x68 ../lib/libgamebuino.a(Sound.o) - 0x0000000000003d30 _ZN5Sound5beginEv + 0x0000000000003efa 0x68 ../lib/libgamebuino.a(Sound.o) + 0x0000000000003efa _ZN5Sound5beginEv .text._ZN5Sound7commandEhhah - 0x0000000000003d98 0x5e ../lib/libgamebuino.a(Sound.o) - 0x0000000000003d98 _ZN5Sound7commandEhhah + 0x0000000000003f62 0x5e ../lib/libgamebuino.a(Sound.o) + 0x0000000000003f62 _ZN5Sound7commandEhhah .text._ZN5Sound12updateOutputEv - 0x0000000000003df6 0x16 ../lib/libgamebuino.a(Sound.o) - 0x0000000000003df6 _ZN5Sound12updateOutputEv + 0x0000000000003fc0 0x16 ../lib/libgamebuino.a(Sound.o) + 0x0000000000003fc0 _ZN5Sound12updateOutputEv .text._ZN5Sound8stopNoteEh.part.2 - 0x0000000000003e0c 0x1c ../lib/libgamebuino.a(Sound.o) + 0x0000000000003fd6 0x1c ../lib/libgamebuino.a(Sound.o) .text._ZN5Sound11playPatternEPKjh.part.5 - 0x0000000000003e28 0x30 ../lib/libgamebuino.a(Sound.o) + 0x0000000000003ff2 0x30 ../lib/libgamebuino.a(Sound.o) .text._ZN5Sound11playPatternEPKjh - 0x0000000000003e58 0xa ../lib/libgamebuino.a(Sound.o) - 0x0000000000003e58 _ZN5Sound11playPatternEPKjh + 0x0000000000004022 0xa ../lib/libgamebuino.a(Sound.o) + 0x0000000000004022 _ZN5Sound11playPatternEPKjh .text._ZN5Sound11updateTrackEh - 0x0000000000003e62 0x5c ../lib/libgamebuino.a(Sound.o) - 0x0000000000003e62 _ZN5Sound11updateTrackEh + 0x000000000000402c 0x5c ../lib/libgamebuino.a(Sound.o) + 0x000000000000402c _ZN5Sound11updateTrackEh .text._ZN5Sound11updateTrackEv - 0x0000000000003ebe 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000003ebe _ZN5Sound11updateTrackEv + 0x0000000000004088 0x6 ../lib/libgamebuino.a(Sound.o) + 0x0000000000004088 _ZN5Sound11updateTrackEv .text._ZN5Sound13updatePatternEh - 0x0000000000003ec4 0xe0 ../lib/libgamebuino.a(Sound.o) - 0x0000000000003ec4 _ZN5Sound13updatePatternEh + 0x000000000000408e 0xe0 ../lib/libgamebuino.a(Sound.o) + 0x000000000000408e _ZN5Sound13updatePatternEh .text._ZN5Sound13updatePatternEv - 0x0000000000003fa4 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000003fa4 _ZN5Sound13updatePatternEv + 0x000000000000416e 0x6 ../lib/libgamebuino.a(Sound.o) + 0x000000000000416e _ZN5Sound13updatePatternEv .text._ZN5Sound10updateNoteEh - 0x0000000000003faa 0x182 ../lib/libgamebuino.a(Sound.o) - 0x0000000000003faa _ZN5Sound10updateNoteEh + 0x0000000000004174 0x182 ../lib/libgamebuino.a(Sound.o) + 0x0000000000004174 _ZN5Sound10updateNoteEh .text._ZN5Sound10updateNoteEv - 0x000000000000412c 0x6 ../lib/libgamebuino.a(Sound.o) - 0x000000000000412c _ZN5Sound10updateNoteEv + 0x00000000000042f6 0x6 ../lib/libgamebuino.a(Sound.o) + 0x00000000000042f6 _ZN5Sound10updateNoteEv .text._ZN5Sound11stopPatternEh - 0x0000000000004132 0x16 ../lib/libgamebuino.a(Sound.o) - 0x0000000000004132 _ZN5Sound11stopPatternEh + 0x00000000000042fc 0x16 ../lib/libgamebuino.a(Sound.o) + 0x00000000000042fc _ZN5Sound11stopPatternEh .text._ZN5Sound11stopPatternEv - 0x0000000000004148 0x12 ../lib/libgamebuino.a(Sound.o) - 0x0000000000004148 _ZN5Sound11stopPatternEv + 0x0000000000004312 0x12 ../lib/libgamebuino.a(Sound.o) + 0x0000000000004312 _ZN5Sound11stopPatternEv .text._ZN5Sound14generateOutputEv - 0x000000000000415a 0x54 ../lib/libgamebuino.a(Sound.o) - 0x000000000000415a _ZN5Sound14generateOutputEv + 0x0000000000004324 0x54 ../lib/libgamebuino.a(Sound.o) + 0x0000000000004324 _ZN5Sound14generateOutputEv .text.__vector_11 - 0x00000000000041ae 0x48 ../lib/libgamebuino.a(Sound.o) - 0x00000000000041ae __vector_11 + 0x0000000000004378 0x48 ../lib/libgamebuino.a(Sound.o) + 0x0000000000004378 __vector_11 .text._ZN5Sound6playOKEv - 0x00000000000041f6 0x8 ../lib/libgamebuino.a(Sound.o) - 0x00000000000041f6 _ZN5Sound6playOKEv + 0x00000000000043c0 0x8 ../lib/libgamebuino.a(Sound.o) + 0x00000000000043c0 _ZN5Sound6playOKEv .text._ZN5Sound10playCancelEv - 0x00000000000041fe 0x8 ../lib/libgamebuino.a(Sound.o) - 0x00000000000041fe _ZN5Sound10playCancelEv + 0x00000000000043c8 0x8 ../lib/libgamebuino.a(Sound.o) + 0x00000000000043c8 _ZN5Sound10playCancelEv .text._ZN5Sound8playTickEv - 0x0000000000004206 0x8 ../lib/libgamebuino.a(Sound.o) - 0x0000000000004206 _ZN5Sound8playTickEv + 0x00000000000043d0 0x8 ../lib/libgamebuino.a(Sound.o) + 0x00000000000043d0 _ZN5Sound8playTickEv .text._ZN5Sound9setVolumeEa - 0x000000000000420e 0x18 ../lib/libgamebuino.a(Sound.o) - 0x000000000000420e _ZN5Sound9setVolumeEa + 0x00000000000043d8 0x18 ../lib/libgamebuino.a(Sound.o) + 0x00000000000043d8 _ZN5Sound9setVolumeEa .text._ZN9Backlight5beginEv - 0x0000000000004226 0x8 ../lib/libgamebuino.a(Backlight.o) - 0x0000000000004226 _ZN9Backlight5beginEv + 0x00000000000043f0 0x8 ../lib/libgamebuino.a(Backlight.o) + 0x00000000000043f0 _ZN9Backlight5beginEv .text._ZN9Backlight3setEh - 0x000000000000422e 0x8 ../lib/libgamebuino.a(Backlight.o) - 0x000000000000422e _ZN9Backlight3setEh + 0x00000000000043f8 0x8 ../lib/libgamebuino.a(Backlight.o) + 0x00000000000043f8 _ZN9Backlight3setEh .text._ZN9Backlight6updateEv - 0x0000000000004236 0xbe ../lib/libgamebuino.a(Backlight.o) - 0x0000000000004236 _ZN9Backlight6updateEv + 0x0000000000004400 0xbe ../lib/libgamebuino.a(Backlight.o) + 0x0000000000004400 _ZN9Backlight6updateEv .text._ZN7Battery5beginEv - 0x00000000000042f4 0x14 ../lib/libgamebuino.a(Battery.o) - 0x00000000000042f4 _ZN7Battery5beginEv + 0x00000000000044be 0x14 ../lib/libgamebuino.a(Battery.o) + 0x00000000000044be _ZN7Battery5beginEv .text._ZN7Battery6updateEv - 0x0000000000004308 0x70 ../lib/libgamebuino.a(Battery.o) - 0x0000000000004308 _ZN7Battery6updateEv + 0x00000000000044d2 0x70 ../lib/libgamebuino.a(Battery.o) + 0x00000000000044d2 _ZN7Battery6updateEv .text.__vector_16 - 0x0000000000004378 0x94 ../lib/libarduino.a(wiring.o) - 0x0000000000004378 __vector_16 - .text.millis 0x000000000000440c 0x18 ../lib/libarduino.a(wiring.o) - 0x000000000000440c millis - .text.micros 0x0000000000004424 0x4a ../lib/libarduino.a(wiring.o) - 0x0000000000004424 micros - .text.delay 0x000000000000446e 0x4c ../lib/libarduino.a(wiring.o) - 0x000000000000446e delay - .text.init 0x00000000000044ba 0x76 ../lib/libarduino.a(wiring.o) - 0x00000000000044ba init + 0x0000000000004542 0x94 ../lib/libarduino.a(wiring.o) + 0x0000000000004542 __vector_16 + .text.millis 0x00000000000045d6 0x18 ../lib/libarduino.a(wiring.o) + 0x00000000000045d6 millis + .text.micros 0x00000000000045ee 0x4a ../lib/libarduino.a(wiring.o) + 0x00000000000045ee micros + .text.delay 0x0000000000004638 0x4c ../lib/libarduino.a(wiring.o) + 0x0000000000004638 delay + .text.init 0x0000000000004684 0x76 ../lib/libarduino.a(wiring.o) + 0x0000000000004684 init .text.analogRead - 0x0000000000004530 0x36 ../lib/libarduino.a(wiring_analog.o) - 0x0000000000004530 analogRead + 0x00000000000046fa 0x36 ../lib/libarduino.a(wiring_analog.o) + 0x00000000000046fa analogRead .text.analogWrite - 0x0000000000004566 0xba ../lib/libarduino.a(wiring_analog.o) - 0x0000000000004566 analogWrite + 0x0000000000004730 0xba ../lib/libarduino.a(wiring_analog.o) + 0x0000000000004730 analogWrite .text.turnOffPWM - 0x0000000000004620 0x52 ../lib/libarduino.a(wiring_digital.o) - .text.pinMode 0x0000000000004672 0x78 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000004672 pinMode + 0x00000000000047ea 0x52 ../lib/libarduino.a(wiring_digital.o) + .text.pinMode 0x000000000000483c 0x78 ../lib/libarduino.a(wiring_digital.o) + 0x000000000000483c pinMode .text.digitalWrite - 0x00000000000046ea 0x5c ../lib/libarduino.a(wiring_digital.o) - 0x00000000000046ea digitalWrite + 0x00000000000048b4 0x5c ../lib/libarduino.a(wiring_digital.o) + 0x00000000000048b4 digitalWrite .text.digitalRead - 0x0000000000004746 0x52 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000004746 digitalRead + 0x0000000000004910 0x52 ../lib/libarduino.a(wiring_digital.o) + 0x0000000000004910 digitalRead .text._ZN5Print5writeEPKhj - 0x0000000000004798 0x50 ../lib/libarduino.a(Print.o) - 0x0000000000004798 _ZN5Print5writeEPKhj + 0x0000000000004962 0x50 ../lib/libarduino.a(Print.o) + 0x0000000000004962 _ZN5Print5writeEPKhj .text._ZN5Print5writeEPKc.part.1 - 0x00000000000047e8 0x1e ../lib/libarduino.a(Print.o) + 0x00000000000049b2 0x1e ../lib/libarduino.a(Print.o) .text._ZN5Print5printEPK19__FlashStringHelper - 0x0000000000004806 0x46 ../lib/libarduino.a(Print.o) - 0x0000000000004806 _ZN5Print5printEPK19__FlashStringHelper + 0x00000000000049d0 0x46 ../lib/libarduino.a(Print.o) + 0x00000000000049d0 _ZN5Print5printEPK19__FlashStringHelper .text._ZN5Print5printEPKc - 0x000000000000484c 0x10 ../lib/libarduino.a(Print.o) - 0x000000000000484c _ZN5Print5printEPKc + 0x0000000000004a16 0x10 ../lib/libarduino.a(Print.o) + 0x0000000000004a16 _ZN5Print5printEPKc .text._ZN5Print5printEc - 0x000000000000485c 0xe ../lib/libarduino.a(Print.o) - 0x000000000000485c _ZN5Print5printEc + 0x0000000000004a26 0xe ../lib/libarduino.a(Print.o) + 0x0000000000004a26 _ZN5Print5printEc .text._ZN5Print7printlnEv - 0x000000000000486a 0x28 ../lib/libarduino.a(Print.o) - 0x000000000000486a _ZN5Print7printlnEv + 0x0000000000004a34 0x28 ../lib/libarduino.a(Print.o) + 0x0000000000004a34 _ZN5Print7printlnEv .text._ZN5Print7printlnEPK19__FlashStringHelper - 0x0000000000004892 0x24 ../lib/libarduino.a(Print.o) - 0x0000000000004892 _ZN5Print7printlnEPK19__FlashStringHelper + 0x0000000000004a5c 0x24 ../lib/libarduino.a(Print.o) + 0x0000000000004a5c _ZN5Print7printlnEPK19__FlashStringHelper .text._ZN5Print11printNumberEmh - 0x00000000000048b6 0xb2 ../lib/libarduino.a(Print.o) - 0x00000000000048b6 _ZN5Print11printNumberEmh + 0x0000000000004a80 0xb2 ../lib/libarduino.a(Print.o) + 0x0000000000004a80 _ZN5Print11printNumberEmh .text._ZN5Print5printEli - 0x0000000000004968 0x94 ../lib/libarduino.a(Print.o) - 0x0000000000004968 _ZN5Print5printEli + 0x0000000000004b32 0x94 ../lib/libarduino.a(Print.o) + 0x0000000000004b32 _ZN5Print5printEli .text._ZN5Print5printEii - 0x00000000000049fc 0xe ../lib/libarduino.a(Print.o) - 0x00000000000049fc _ZN5Print5printEii + 0x0000000000004bc6 0xe ../lib/libarduino.a(Print.o) + 0x0000000000004bc6 _ZN5Print5printEii .text._ZN5Print5printEmi - 0x0000000000004a0a 0x1a ../lib/libarduino.a(Print.o) - 0x0000000000004a0a _ZN5Print5printEmi + 0x0000000000004bd4 0x1a ../lib/libarduino.a(Print.o) + 0x0000000000004bd4 _ZN5Print5printEmi .text._ZN5Print5printEji - 0x0000000000004a24 0xc ../lib/libarduino.a(Print.o) - 0x0000000000004a24 _ZN5Print5printEji + 0x0000000000004bee 0xc ../lib/libarduino.a(Print.o) + 0x0000000000004bee _ZN5Print5printEji .text._Z3maplllll - 0x0000000000004a30 0x82 ../lib/libarduino.a(WMath.o) - 0x0000000000004a30 _Z3maplllll + 0x0000000000004bfa 0x82 ../lib/libarduino.a(WMath.o) + 0x0000000000004bfa _Z3maplllll .text._ZN8SPIClass5beginEv - 0x0000000000004ab2 0x2c ../lib/libarduino.a(SPI.o) - 0x0000000000004ab2 _ZN8SPIClass5beginEv + 0x0000000000004c7c 0x2c ../lib/libarduino.a(SPI.o) + 0x0000000000004c7c _ZN8SPIClass5beginEv .text._ZN8SPIClass11setBitOrderEh - 0x0000000000004ade 0x12 ../lib/libarduino.a(SPI.o) - 0x0000000000004ade _ZN8SPIClass11setBitOrderEh + 0x0000000000004ca8 0x12 ../lib/libarduino.a(SPI.o) + 0x0000000000004ca8 _ZN8SPIClass11setBitOrderEh .text._ZN8SPIClass11setDataModeEh - 0x0000000000004af0 0xa ../lib/libarduino.a(SPI.o) - 0x0000000000004af0 _ZN8SPIClass11setDataModeEh + 0x0000000000004cba 0xa ../lib/libarduino.a(SPI.o) + 0x0000000000004cba _ZN8SPIClass11setDataModeEh .text._ZN8SPIClass15setClockDividerEh - 0x0000000000004afa 0x1e ../lib/libarduino.a(SPI.o) - 0x0000000000004afa _ZN8SPIClass15setClockDividerEh + 0x0000000000004cc4 0x1e ../lib/libarduino.a(SPI.o) + 0x0000000000004cc4 _ZN8SPIClass15setClockDividerEh .text.libgcc.mul - 0x0000000000004b18 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o) - 0x0000000000004b18 __mulsi3 + 0x0000000000004ce2 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000004ce2 __mulsi3 .text.libgcc.div - 0x0000000000004b38 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o) - 0x0000000000004b38 __udivmodqi4 + 0x0000000000004d02 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o) + 0x0000000000004d02 __udivmodqi4 .text.libgcc.div - 0x0000000000004b50 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o) - 0x0000000000004b50 __udivmodhi4 + 0x0000000000004d1a 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o) + 0x0000000000004d1a __udivmodhi4 .text.libgcc.div - 0x0000000000004b78 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o) - 0x0000000000004b78 __divmodhi4 - 0x0000000000004b78 _div + 0x0000000000004d42 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o) + 0x0000000000004d42 __divmodhi4 + 0x0000000000004d42 _div .text.libgcc.div - 0x0000000000004ba0 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o) - 0x0000000000004ba0 __udivmodsi4 + 0x0000000000004d6a 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o) + 0x0000000000004d6a __udivmodsi4 .text.libgcc.div - 0x0000000000004be4 0x2e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o) - 0x0000000000004be4 __divmodsi4 + 0x0000000000004dae 0x2e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o) + 0x0000000000004dae __divmodsi4 .text.libgcc.div - 0x0000000000004c12 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o) - 0x0000000000004c12 __negsi2 + 0x0000000000004ddc 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o) + 0x0000000000004ddc __negsi2 .text.libgcc.mul - 0x0000000000004c22 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o) - 0x0000000000004c22 __muluhisi3 - .text.libgcc 0x0000000000004c38 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o) - 0x0000000000004c38 __adddi3_s8 - .text.libgcc 0x0000000000004c50 0xc /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o) - 0x0000000000004c50 __tablejump2__ + 0x0000000000004dec 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o) + 0x0000000000004dec __muluhisi3 + .text.libgcc 0x0000000000004e02 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o) + 0x0000000000004e02 __adddi3_s8 + .text.libgcc 0x0000000000004e1a 0xc /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o) + 0x0000000000004e1a __tablejump2__ .text.libgcc.mul - 0x0000000000004c5c 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o) - 0x0000000000004c5c __umulhisi3 + 0x0000000000004e26 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o) + 0x0000000000004e26 __umulhisi3 .text.avr-libc.fplib - 0x0000000000004c7a 0x5e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o) - 0x0000000000004c7a __fixunssfsi + 0x0000000000004e44 0x5e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o) + 0x0000000000004e44 __fixunssfsi .text.avr-libc.fplib - 0x0000000000004cd8 0x7a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o) - 0x0000000000004cd8 __floatunsisf - 0x0000000000004cdc __floatsisf + 0x0000000000004ea2 0x7a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o) + 0x0000000000004ea2 __floatunsisf + 0x0000000000004ea6 __floatsisf .text.avr-libc.fplib - 0x0000000000004d52 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o) - 0x0000000000004d52 __fp_inf + 0x0000000000004f1c 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o) + 0x0000000000004f1c __fp_inf .text.avr-libc.fplib - 0x0000000000004d5e 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o) - 0x0000000000004d5e __fp_nan + 0x0000000000004f28 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o) + 0x0000000000004f28 __fp_nan .text.avr-libc.fplib - 0x0000000000004d64 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o) - 0x0000000000004d64 __fp_pscA + 0x0000000000004f2e 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o) + 0x0000000000004f2e __fp_pscA .text.avr-libc.fplib - 0x0000000000004d72 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o) - 0x0000000000004d72 __fp_pscB + 0x0000000000004f3c 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o) + 0x0000000000004f3c __fp_pscB .text.avr-libc.fplib - 0x0000000000004d80 0x22 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o) - 0x0000000000004d80 __fp_round + 0x0000000000004f4a 0x22 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o) + 0x0000000000004f4a __fp_round .text.avr-libc.fplib - 0x0000000000004da2 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o) - 0x0000000000004da2 __fp_split3 - 0x0000000000004db2 __fp_splitA + 0x0000000000004f6c 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o) + 0x0000000000004f6c __fp_split3 + 0x0000000000004f7c __fp_splitA .text.avr-libc.fplib - 0x0000000000004de6 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o) - 0x0000000000004de6 __fp_zero - 0x0000000000004de8 __fp_szero + 0x0000000000004fb0 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o) + 0x0000000000004fb0 __fp_zero + 0x0000000000004fb2 __fp_szero .text.avr-libc.fplib - 0x0000000000004df4 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o) - 0x0000000000004df4 __mulsf3 + 0x0000000000004fbe 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o) + 0x0000000000004fbe __mulsf3 .text.avr-libc.fplib - 0x0000000000004dfc 0xd2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o) - 0x0000000000004e1a __mulsf3x - 0x0000000000004e20 __mulsf3_pse + 0x0000000000004fc6 0xd2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o) + 0x0000000000004fe4 __mulsf3x + 0x0000000000004fea __mulsf3_pse .text.avr-libc - 0x0000000000004ece 0xb8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o) - 0x0000000000004f60 rand_r - 0x0000000000004f66 rand - 0x0000000000004f70 srand + 0x0000000000005098 0xb8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o) + 0x000000000000512a rand_r + 0x0000000000005130 rand + 0x000000000000513a srand .text.avr-libc - 0x0000000000004f86 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o) - 0x0000000000004f86 memset + 0x0000000000005150 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o) + 0x0000000000005150 memset .text.libgcc.mul - 0x0000000000004f94 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o) - 0x0000000000004f94 __mulshisi3 - 0x0000000000004f9a __mulohisi3 - 0x0000000000004fa4 . = ALIGN (0x2) + 0x000000000000515e 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o) + 0x000000000000515e __mulshisi3 + 0x0000000000005164 __mulohisi3 + 0x000000000000516e . = ALIGN (0x2) *(.fini9) - .fini9 0x0000000000004fa4 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o) - 0x0000000000004fa4 exit - 0x0000000000004fa4 _exit + .fini9 0x000000000000516e 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o) + 0x000000000000516e exit + 0x000000000000516e _exit *(.fini9) *(.fini8) *(.fini8) *(.fini7) *(.fini7) *(.fini6) - .fini6 0x0000000000004fa4 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o) - 0x0000000000004fa4 __do_global_dtors + .fini6 0x000000000000516e 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o) + 0x000000000000516e __do_global_dtors *(.fini6) *(.fini5) *(.fini5) @@ -2060,16 +2071,16 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000000000004fba 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o) + .fini0 0x0000000000005184 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o) *(.fini0) *(.hightext) *(.hightext*) - 0x0000000000004fbe . = ALIGN (0x2) + 0x0000000000005188 . = ALIGN (0x2) *(.jumptables) *(.jumptables*) - 0x0000000000004fbe _etext = . + 0x0000000000005188 _etext = . -.data 0x0000000000800100 0x8a load address 0x0000000000004fbe +.data 0x0000000000800100 0x82 load address 0x0000000000005188 0x0000000000800100 PROVIDE (__data_start, .) *(.data) .data 0x0000000000800100 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o) @@ -2087,90 +2098,91 @@ END GROUP .rodata.UnitActionsTable 0x000000000080010c 0x7 Obj/Unit.o .rodata.str1.1 - 0x0000000000800113 0x26 Obj/Unit.o + 0x0000000000800113 0x1f Obj/Unit.o .rodata.UnitActionsTable_Level - 0x0000000000800139 0xa Obj/Unit.o + 0x0000000000800132 0x8 Obj/Unit.o .rodata.UnitSpeedTable - 0x0000000000800143 0x7 Obj/Unit.o + 0x000000000080013a 0x7 Obj/Unit.o .rodata.UnitResourcesTable - 0x000000000080014a 0x2a Obj/Unit.o + 0x0000000000800141 0x2a Obj/Unit.o .rodata.UnitHPTable - 0x0000000000800174 0x7 Obj/Unit.o + 0x000000000080016b 0x7 Obj/Unit.o .rodata._ZTV7Display - 0x000000000080017b 0x8 ../lib/libgamebuino.a(Display.o) - 0x000000000080017b _ZTV7Display + 0x0000000000800172 0x8 ../lib/libgamebuino.a(Display.o) + 0x0000000000800172 _ZTV7Display .rodata._ZN9Gamebuino10changeGameEv.str1.1 - 0x0000000000800183 0x7 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000080017a 0x7 ../lib/libgamebuino.a(Gamebuino.o) *(.gnu.linkonce.r*) - 0x000000000080018a . = ALIGN (0x2) - 0x000000000080018a _edata = . - 0x000000000080018a PROVIDE (__data_end, .) + 0x0000000000800182 . = ALIGN (0x2) + *fill* 0x0000000000800181 0x1 + 0x0000000000800182 _edata = . + 0x0000000000800182 PROVIDE (__data_end, .) -.bss 0x000000000080018a 0x64f - 0x000000000080018a PROVIDE (__bss_start, .) +.bss 0x0000000000800182 0x64f + 0x0000000000800182 PROVIDE (__bss_start, .) *(.bss) *(.bss*) - .bss.gb 0x000000000080018a 0x87 Obj/main.o - 0x000000000080018a gb + .bss.gb 0x0000000000800182 0x87 Obj/main.o + 0x0000000000800182 gb .bss._ZL8MouseSpr - 0x0000000000800211 0x9 Obj/Gameplay.o + 0x0000000000800209 0x9 Obj/Gameplay.o .bss.GamePlayers - 0x000000000080021a 0x2c7 Obj/Gameplay.o - 0x000000000080021a GamePlayers + 0x0000000000800212 0x2c7 Obj/Gameplay.o + 0x0000000000800212 GamePlayers .bss.timer_array - 0x00000000008004e1 0x60 Obj/System.o + 0x00000000008004d9 0x60 Obj/System.o .bss.system_busy - 0x0000000000800541 0x1 Obj/System.o + 0x0000000000800539 0x1 Obj/System.o .bss.one_second_timer - 0x0000000000800542 0x1 Obj/System.o + 0x000000000080053a 0x1 Obj/System.o .bss.rand_seed - 0x0000000000800543 0x1 Obj/System.o + 0x000000000080053b 0x1 Obj/System.o .bss.global_timer - 0x0000000000800544 0x8 Obj/System.o + 0x000000000080053c 0x8 Obj/System.o .bss.UnitWalkingShadowSprTable - 0x000000000080054c 0x3f Obj/Unit.o + 0x0000000000800544 0x3f Obj/Unit.o .bss.UnitSprTable - 0x000000000080058b 0x3f Obj/Unit.o + 0x0000000000800583 0x3f Obj/Unit.o .bss._displayBuffer - 0x00000000008005ca 0x200 ../lib/libgamebuino.a(Display.o) - 0x00000000008005ca _displayBuffer + 0x00000000008005c2 0x200 ../lib/libgamebuino.a(Display.o) + 0x00000000008005c2 _displayBuffer .bss._chanNoise - 0x00000000008007ca 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008007ca _chanNoise + 0x00000000008007c2 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008007c2 _chanNoise .bss._chanOutput - 0x00000000008007cb 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008007cb _chanOutput + 0x00000000008007c3 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008007c3 _chanOutput .bss._chanOutputVolume - 0x00000000008007cc 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008007cc _chanOutputVolume + 0x00000000008007c4 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008007c4 _chanOutputVolume .bss._chanHalfPeriod - 0x00000000008007cd 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008007cd _chanHalfPeriod + 0x00000000008007c5 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008007c5 _chanHalfPeriod .bss._chanState - 0x00000000008007ce 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008007ce _chanState + 0x00000000008007c6 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008007c6 _chanState .bss._chanCount - 0x00000000008007cf 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008007cf _chanCount + 0x00000000008007c7 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008007c7 _chanCount .bss.timer0_fract - 0x00000000008007d0 0x1 ../lib/libarduino.a(wiring.o) + 0x00000000008007c8 0x1 ../lib/libarduino.a(wiring.o) .bss.timer0_millis - 0x00000000008007d1 0x4 ../lib/libarduino.a(wiring.o) - 0x00000000008007d1 timer0_millis + 0x00000000008007c9 0x4 ../lib/libarduino.a(wiring.o) + 0x00000000008007c9 timer0_millis .bss.timer0_overflow_count - 0x00000000008007d5 0x4 ../lib/libarduino.a(wiring.o) - 0x00000000008007d5 timer0_overflow_count + 0x00000000008007cd 0x4 ../lib/libarduino.a(wiring.o) + 0x00000000008007cd timer0_overflow_count *(COMMON) - 0x00000000008007d9 PROVIDE (__bss_end, .) - 0x0000000000004fbe __data_load_start = LOADADDR (.data) - 0x0000000000005048 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00000000008007d1 PROVIDE (__bss_end, .) + 0x0000000000005188 __data_load_start = LOADADDR (.data) + 0x000000000000520a __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00000000008007d9 0x0 +.noinit 0x00000000008007d1 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x00000000008007d9 _end = . - 0x00000000008007d9 PROVIDE (__heap_start, .) + 0x00000000008007d1 _end = . + 0x00000000008007d1 PROVIDE (__heap_start, .) .eeprom 0x0000000000810000 0x0 *(.eeprom*) diff --git a/Player.cpp b/Player.cpp index db5193d..e02277e 100644 --- a/Player.cpp +++ b/Player.cpp @@ -181,7 +181,7 @@ void Player::ShowResources(void) GfxPrintTextFont(str, font3x3, 42, 1); - Systemitoa(str, 3, unit_i); + Systemitoa(str, 3, getAliveUnits()); for (i = 0; i < 3; i++) { @@ -259,6 +259,21 @@ bool Player::checkNewBuildingPosition(TYPE_COLLISION_BLOCK * cb) return true; } +uint8_t Player::getAliveUnits(void) +{ + uint8_t ret = 0; + + for (uint8_t i = 0; i < unit_i; i++) + { + if (units[i].alive != false) + { + ret++; + } + } + + return ret; +} + void Player::createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb) { TYPE_RESOURCES res = UnitNeededResourcesFromID(id); @@ -273,20 +288,27 @@ void Player::createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb) return; } - if (unit_i < PLAYER_MAX_UNITS_BUILDINGS) + if (getAliveUnits() < PLAYER_MAX_UNITS_BUILDINGS) { - TYPE_UNIT* ptrNewUnit = &units[unit_i++]; - ptrNewUnit->id = id; - ptrNewUnit->x = cb.x; - ptrNewUnit->y = cb.y; - ptrNewUnit->hp = UnitGetHpFromID(id); - ptrNewUnit->alive = true; - ptrNewUnit->building = (id > MAX_UNIT_ID); + for (uint8_t i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++) + { + if (units[i].alive == false) + { + TYPE_UNIT* ptrNewUnit = &units[unit_i++]; + ptrNewUnit->id = id; + ptrNewUnit->x = cb.x; + ptrNewUnit->y = cb.y; + ptrNewUnit->hp = UnitGetHpFromID(id); + ptrNewUnit->alive = true; + ptrNewUnit->building = (id > MAX_UNIT_ID); - /* Substract resources from player */ - Resources.Wood -= res.Wood; - Resources.Gold -= res.Gold; - Resources.Food -= res.Food; + /* Substract resources from player */ + Resources.Wood -= res.Wood; + Resources.Gold -= res.Gold; + Resources.Food -= res.Food; + return; + } + } } else { @@ -296,21 +318,32 @@ void Player::createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb) TYPE_COLLISION_BLOCK Player::GetCursorPos(void) { + enum + { + MOUSE_W = 8, + MOUSE_H = 8 + }; + TYPE_COLLISION_BLOCK cb; cb.x = (X_SCREEN_RESOLUTION >> 1) - 4 - Camera.X_Offset; cb.y = (Y_SCREEN_RESOLUTION >> 1) - 4 - Camera.Y_Offset; - cb.w = 8; - cb.h = 8; + cb.w = MOUSE_W; + cb.h = MOUSE_H; return cb; } void Player::UnitBuildingSelection(void) { + enum + { + MAX_ALLOWED_DISTANCE = (X_SCREEN_RESOLUTION * X_SCREEN_RESOLUTION) + (Y_SCREEN_RESOLUTION) * (Y_SCREEN_RESOLUTION) + }; + uint16_t i; uint32_t nearest_unit_dist = 0xFFFFFFFF; // Set maximum value - uint32_t dist; + uint32_t dist = nearest_unit_dist; int8_t nearest_unit = NO_SELECTION; @@ -318,7 +351,7 @@ void Player::UnitBuildingSelection(void) { TYPE_UNIT* u = &units[i]; - if ( (u->alive == false) || (u->selected != false) ) + if ( (u->alive == false) || (u->selected != false) ) { continue; } @@ -329,7 +362,7 @@ void Player::UnitBuildingSelection(void) uint16_t dist_x = (u_cb.x + (u_cb.w >> 1) - cursor_cb.x); uint16_t dist_y = (u_cb.y + (u_cb.h >> 1) - cursor_cb.y); - dist = (dist_x * dist_x) + (dist_y * dist_y); + dist = SystemGetHyp(dist_x, dist_y); if (dist < nearest_unit_dist) { @@ -338,7 +371,7 @@ void Player::UnitBuildingSelection(void) } } - selectedUnitCandidate = nearest_unit; + selectedUnitCandidate = dist < (uint32_t)MAX_ALLOWED_DISTANCE? nearest_unit: NO_SELECTION; } void Player::ActionsMenu(void) @@ -353,18 +386,21 @@ void Player::ActionsMenu(void) { uint8_t availableActions = UnitGetAvailableActions(ptrUnit); - if (!(availableActions & (1 << showActionsMenu_index) ) ) + if (availableActions != 0) { - IncreaseShowActionsMenuIndex(); + if (!(availableActions & (1 << showActionsMenu_index) ) ) + { + IncreaseShowActionsMenuIndex(); + } + + UNIT_ACTION action = (UNIT_ACTION)(showActionsMenu_index); + + const char* str = UnitGetActionString(action); + + GfxPrintTextFont(str, font3x3, 40, Y_SCREEN_RESOLUTION - 4); + + break; } - - UNIT_ACTION action = (UNIT_ACTION)(showActionsMenu_index); - - const char* str = UnitGetActionString(action); - - GfxPrintTextFont(str, font3x3, 40, Y_SCREEN_RESOLUTION - 4); - - break; } } @@ -428,7 +464,6 @@ void Player::ButtonAPressed(void) } } - void Player::ButtonAReleased(void) { if (showActionsMenu_counter < ACCEPT_UNIT_BUILDING_OPTIONS_FRAMES) @@ -469,11 +504,11 @@ void Player::ButtonAReleased(void) break; case ACTION_BUILD_BARRACKS: - ActionCreateBuilding(ptrUnit, BARRACKS); + ActionCreateBuilding(BARRACKS); break; case ACTION_BUILD_TOWER_CENTER: - ActionCreateBuilding(ptrUnit, TOWN_CENTER); + ActionCreateBuilding(TOWN_CENTER); break; default: @@ -490,40 +525,51 @@ void Player::ButtonAReleased(void) void Player::ActionCreateUnit(TYPE_UNIT* ptrUnit, TYPE_UNIT_ID unit) { - uint8_t w = UnitGetWidthFromID(ptrUnit->id); - uint8_t h = UnitGetHeightFromID(ptrUnit->id); - uint8_t new_pos_x = ptrUnit->x + SystemRand(0, w + (w >> 1)); - uint8_t new_pos_y = ptrUnit->y + SystemRand(h, h + (h >> 1)); - TYPE_COLLISION_BLOCK cb = {.x = new_pos_x, .y = new_pos_y}; + enum + { + MAX_RETRIES = 16 + }; - createUnit(unit, cb); + uint8_t retries = 0; + + do + { + uint8_t w = UnitGetWidthFromID(ptrUnit->id); + uint8_t h = UnitGetHeightFromID(ptrUnit->id); + uint8_t new_pos_x = ptrUnit->x + SystemRand(0, w + (w >> 1)); + uint8_t new_pos_y = ptrUnit->y + SystemRand(h, h + (h >> 1)); + TYPE_COLLISION_BLOCK cb = { .x = new_pos_x, + .y = new_pos_y, + .w = UnitGetWidthFromID(unit), + .h = UnitGetHeightFromID(unit)}; + + if (UnitCheckCollisionAgainstOtherUnits(&cb, units, NULL) == false) + { + createUnit(unit, cb); + return; + } + + }while (++retries < MAX_RETRIES); + + /* Will only get here if we could not create the new unit */ + GfxPrintText_Flash(F("Could not create unit")); } -void Player::ActionCreateBuilding(TYPE_UNIT* ptrUnit, TYPE_UNIT_ID bldg) +void Player::ActionCreateBuilding(TYPE_UNIT_ID bldg) { TYPE_COLLISION_BLOCK cb = GetCursorPos(); - for (uint8_t i = 0; i < unit_i; i++) + cb.w = UnitGetWidthFromID(bldg); + cb.w = UnitGetHeightFromID(bldg); + + if (UnitCheckCollisionAgainstOtherUnits(&cb, units, NULL) == false) { - TYPE_UNIT* ptrOtherUnit = &units[i]; - TYPE_COLLISION_BLOCK ocb = {.x = ptrOtherUnit->x, - .y = ptrOtherUnit->y, - .w = UnitGetWidthFromID(ptrOtherUnit->id), - .h = UnitGetHeightFromID(ptrOtherUnit->id)}; - - if (ptrOtherUnit->alive == false) - { - continue; - } - - if (SystemCollisionCheck(&cb, &ocb) != false) - { - GfxPrintText_Flash(F("Cannot build here")); - return; - } + createUnit(bldg, cb); + } + else + { + GfxPrintText_Flash(F("Cannot build here")); } - - createUnit(bldg, cb); } void Player::ButtonBPressed(void) diff --git a/Player.h b/Player.h index e7c15fc..514386f 100644 --- a/Player.h +++ b/Player.h @@ -47,6 +47,7 @@ class Player void createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb); uint8_t getPopulation(void) {return (unit_i + 1);} void ShowResources(void); + uint8_t getAliveUnits(void); private: // Player definition @@ -93,7 +94,10 @@ class Player // Action callbacks void ActionCreateUnit(TYPE_UNIT* ptrUnit, TYPE_UNIT_ID unit); - void ActionCreateBuilding(TYPE_UNIT* ptrUnit, TYPE_UNIT_ID bldg); + void ActionCreateBuilding(TYPE_UNIT_ID bldg); + + // Collision detection + bool checkCollisionAgainstOtherUnits(TYPE_COLLISION_BLOCK* cb); }; #endif // __cplusplus diff --git a/System.c b/System.c index 68742d4..be3bbc7 100644 --- a/System.c +++ b/System.c @@ -326,3 +326,8 @@ bool Systemitoa(char* str, size_t sz, int16_t value) return false; } + +uint32_t SystemGetHyp(uint16_t x, uint16_t y) +{ + return (uint32_t)((uint32_t)(x * x) + (uint32_t)(y * y)); +} diff --git a/System.h b/System.h index 175a4c2..b2d5f5e 100644 --- a/System.h +++ b/System.h @@ -87,6 +87,8 @@ bool SystemArrayCompare(unsigned short * arr1, unsigned short * arr2, size_t sz) bool SystemCollisionCheck(TYPE_COLLISION_BLOCK* c1, TYPE_COLLISION_BLOCK* c2); // Transforms integer to string. Use this instead of sprintf() as much as possible. bool Systemitoa(char* str, size_t sz, int16_t value); +// Return hypothenuse of two points +uint32_t SystemGetHyp(uint16_t x, uint16_t y); /* ************************************** * Global Variables * diff --git a/Unit.c b/Unit.c index 08d9e82..dec342d 100644 --- a/Unit.c +++ b/Unit.c @@ -36,30 +36,29 @@ struct t_coordinates /* Tables */ static uint8_t const UnitHPTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = 25, - [SOLDIER] = 80, - [BARRACKS] = 100, - [TOWN_CENTER] = 200 }; + [SOLDIER] = 80, + [BARRACKS] = 100, + [TOWN_CENTER] = 200 }; static TYPE_RESOURCES const UnitResourcesTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = {.Wood = 0, .Gold = 0, .Food = 50}, - [SOLDIER] = {.Wood = 25, .Gold = 10, .Food = 50}, - [BARRACKS] = {.Wood = 100, .Gold = 0, .Food = 0}, - [TOWN_CENTER] = {.Wood = 200, .Gold = 0, .Food = 0} }; + [SOLDIER] = {.Wood = 25, .Gold = 10, .Food = 50}, + [BARRACKS] = {.Wood = 100, .Gold = 0, .Food = 0}, + [TOWN_CENTER] = {.Wood = 200, .Gold = 0, .Food = 0} }; static uint8_t const UnitSpeedTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = 1, - [SOLDIER] = 1, - [BARRACKS] = 0, - [TOWN_CENTER] = 0 }; + [SOLDIER] = 1, + [BARRACKS] = 0, + [TOWN_CENTER] = 0 }; static const char* const UnitActionsTable_Level[MAX_ACTIONS] = { [ACTION_BUILD_BARRACKS] = "B.BARR", - [ACTION_ATTACK] = "ATTACK", - [ACTION_CREATE_PEASANT] = "C.PEAS.", - [ACTION_CREATE_SOLDIER] = "C.SLDR.", - [ACTION_BUILD_TOWER_CENTER] = "C.TWNC."}; + [ACTION_CREATE_PEASANT] = "C.PEAS.", + [ACTION_CREATE_SOLDIER] = "C.SLDR.", + [ACTION_BUILD_TOWER_CENTER] = "C.TWNC."}; -static uint8_t const UnitActionsTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = ((1 << ACTION_BUILD_BARRACKS) | (1 << ACTION_BUILD_TOWER_CENTER) | (1 << ACTION_ATTACK)), - [SOLDIER] = (1 << ACTION_ATTACK), - [BARRACKS] = (1 << ACTION_CREATE_SOLDIER), - [TOWN_CENTER] = (1 << ACTION_CREATE_PEASANT) }; +static uint8_t const UnitActionsTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = ((1 << ACTION_BUILD_BARRACKS) | (1 << ACTION_BUILD_TOWER_CENTER)), + [SOLDIER] = 0, + [BARRACKS] = (1 << ACTION_CREATE_SOLDIER), + [TOWN_CENTER] = (1 << ACTION_CREATE_PEASANT) }; // ************** // Sprite tables @@ -282,6 +281,36 @@ void UnitAttackAccepted(TYPE_UNIT* ptrUnit) ptrUnit->selecting_attack = true; } +bool UnitCheckCollisionAgainstOtherUnits(TYPE_COLLISION_BLOCK* cb, TYPE_UNIT* ptrUnitArray, TYPE_UNIT* ptrCurrentUnit) +{ + for (uint8_t i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++) + { + TYPE_UNIT* ptrOtherUnit = &ptrUnitArray[i]; + TYPE_COLLISION_BLOCK ocb = {.x = ptrOtherUnit->x, + .y = ptrOtherUnit->y, + .w = UnitGetWidthFromID(ptrOtherUnit->id), + .h = UnitGetHeightFromID(ptrOtherUnit->id)}; + + if (ptrOtherUnit->alive == false) + { + continue; + } + + if (ptrOtherUnit == ptrCurrentUnit) + { + /* We are referring to the same TYPE_UNIT instance. Discard. */ + continue; + } + + if (SystemCollisionCheck(cb, &ocb) != false) + { + return true; + } + } + + return false; +} + void UnitHandler(TYPE_UNIT* unitArray, size_t sz) { size_t i; @@ -330,41 +359,41 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz) if (ptrUnit->walking != false) { - // If player is still walking, check collisions - // against all other active units. - size_t j; + TYPE_COLLISION_BLOCK cu = { .x = ptrUnit->x + x_d, + .y = ptrUnit->y + y_d, + .w = UnitGetWidthFromID(ptrUnit->id), + .h = UnitGetHeightFromID(ptrUnit->id) }; - for (j = 0; j < sz; j++) + if (UnitCheckCollisionAgainstOtherUnits(&cu, unitArray, ptrUnit) == true) { - TYPE_UNIT* ptrOtherUnit = &unitArray[j]; + uint32_t dist = 0; + uint32_t dist2 = 0; - TYPE_COLLISION_BLOCK cu = { .x = ptrUnit->x + x_d, - .y = ptrUnit->y + y_d, - .w = UnitGetWidthFromID(ptrUnit->id), - .h = UnitGetHeightFromID(ptrUnit->id) }; - TYPE_COLLISION_BLOCK ou; - - if (ptrOtherUnit->alive == false) + switch (ptrUnit->dir) { - continue; - } + case DIRECTION_LEFT: + // Fall through + case DIRECTION_RIGHT: + dist = SystemGetHyp(abs(ptrUnit->x - ptrUnit->target_x), abs((ptrUnit->y + y_d) - ptrUnit->target_y)); + dist2 = SystemGetHyp(abs(ptrUnit->x - ptrUnit->target_x), abs((ptrUnit->y - y_d) - ptrUnit->target_y)); - if (j == i) - { - // Do not compare against itself! - continue; - } + y_d = dist < dist2? x_d: -x_d; + ptrUnit->dir = y_d? DIRECTION_DOWN: DIRECTION_UP; - ou.x = ptrOtherUnit->x; - ou.y = ptrOtherUnit->y; - ou.w = UnitGetWidthFromID(ptrOtherUnit->id); - ou.h = UnitGetHeightFromID(ptrOtherUnit->id); + x_d = 0; + break; - if (SystemCollisionCheck(&cu, &ou) != false) - { - //bMoving = false; - return; + case DIRECTION_UP: + // Fall through + case DIRECTION_DOWN: + dist = SystemGetHyp(abs((ptrUnit->x - x_d) - ptrUnit->target_x), abs(ptrUnit->y - ptrUnit->target_y)); + dist2 = SystemGetHyp(abs((ptrUnit->x + x_d) - ptrUnit->target_x), abs(ptrUnit->y - ptrUnit->target_y)); + + x_d = dist < dist2? -y_d: -x_d; + ptrUnit->dir = x_d? DIRECTION_RIGHT: DIRECTION_LEFT; + y_d = 0; + break; } } } @@ -373,7 +402,7 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz) if (ptrUnit->walking != false) { - // If no collision is detected, keep moving to the new position + /* If no collision is detected, keep moving to the new position */ ptrUnit->x += x_d; ptrUnit->y += y_d; } diff --git a/Unit.h b/Unit.h index 0f554c7..dd9936f 100644 --- a/Unit.h +++ b/Unit.h @@ -79,7 +79,6 @@ typedef struct typedef enum t_availableactions { ACTION_BUILD_BARRACKS, - ACTION_ATTACK, ACTION_CREATE_PEASANT, ACTION_CREATE_SOLDIER, ACTION_BUILD_TOWER_CENTER, @@ -107,8 +106,12 @@ TYPE_RESOURCES UnitNeededResourcesFromID(TYPE_UNIT_ID id); // Rendering void UnitDraw(TYPE_UNIT* ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted); +// Movement void UnitMoveTo(TYPE_UNIT* ptrUnit, uint16_t x, uint16_t y); +// Collision cheking +bool UnitCheckCollisionAgainstOtherUnits(TYPE_COLLISION_BLOCK* cb, TYPE_UNIT* ptrUnitArray, TYPE_UNIT* ptrCurrentUnit); + // Selection index const char* UnitGetActionString(UNIT_ACTION action);