summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Coordinates.cpp75
-rw-r--r--Coordinates.h45
-rwxr-xr-xExe/POCKET.ELFbin33516 -> 34532 bytes
-rw-r--r--Exe/POCKET.HEX1726
-rw-r--r--Exe/POCKET.MAP767
-rw-r--r--HumanPlayer.cpp8
-rw-r--r--HumanPlayer.h2
-rw-r--r--Makefile2
-rw-r--r--Menu.cpp2
-rw-r--r--PocketEmpires.geany36
-rw-r--r--Unit.cpp47
-rw-r--r--Unit.h8
12 files changed, 1487 insertions, 1231 deletions
diff --git a/Coordinates.cpp b/Coordinates.cpp
new file mode 100644
index 0000000..95fd398
--- /dev/null
+++ b/Coordinates.cpp
@@ -0,0 +1,75 @@
+/* *******************************************************************
+ * Includes
+ * ******************************************************************/
+
+#include "Coordinates.h"
+
+/* *******************************************************************
+ * Defines
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Types definition
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Global variables definition
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Local variables definition
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Local prototypes declaration
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Functions definition
+ * ******************************************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Constructor for Coordinates class.
+ *
+ *********************************************************************/
+Coordinates::Coordinates(const Coordinates::tPos x, const Coordinates::tPos y) :
+_x(x),
+_y(y)
+{
+}
+
+/*****************************************************************//**
+ *
+ * \brief Reportedly, returns X coordinate position.
+ *
+ *********************************************************************/
+Coordinates::tPos Coordinates::getX(void) const
+{
+ return _x;
+}
+
+/*****************************************************************//**
+ *
+ * \brief Reportedly, returns Y coordinate position.
+ *
+ *********************************************************************/
+Coordinates::tPos Coordinates::getY(void) const
+{
+ return _y;
+}
+
+/*****************************************************************//**
+ *
+ * \brief This function adds X/Y coordinates to a Coordinates
+ * object. Overloaded function for \ref Coordinates objects.
+ *
+ * \param
+ *
+ *********************************************************************/
+Coordinates Coordinates::operator+(const Coordinates& c) const
+{
+ const Coordinates::tPos x = c.getX() + _x;
+ const Coordinates::tPos y = c.getY() + _y;
+ return Coordinates(x, y);
+}
diff --git a/Coordinates.h b/Coordinates.h
new file mode 100644
index 0000000..8a5e05e
--- /dev/null
+++ b/Coordinates.h
@@ -0,0 +1,45 @@
+#ifndef COORDINATES_H__
+#define COORDINATES_H__
+
+/* *******************************************************************
+ * Includes
+ * ******************************************************************/
+
+#include <stdbool.h>
+#include <stdint.h>
+
+/* *******************************************************************
+ * Defines
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Global types definition
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Global variables declaration
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Global functions declaration
+ * ******************************************************************/
+
+/* *******************************************************************
+ * Class definition
+ * ******************************************************************/
+
+class Coordinates
+{
+ public:
+ typedef uint16_t tPos;
+ explicit Coordinates(const tPos x, const tPos y);
+ Coordinates operator+(const Coordinates& c) const;
+ tPos getX(void) const;
+ tPos getY(void) const;
+
+ private:
+ tPos _x;
+ tPos _y;
+};
+
+#endif /* COORDINATES_H__ */
diff --git a/Exe/POCKET.ELF b/Exe/POCKET.ELF
index 963332b..461589b 100755
--- a/Exe/POCKET.ELF
+++ b/Exe/POCKET.ELF
Binary files differ
diff --git a/Exe/POCKET.HEX b/Exe/POCKET.HEX
index 1527a20..bdb807d 100644
--- a/Exe/POCKET.HEX
+++ b/Exe/POCKET.HEX
@@ -1,8 +1,8 @@
:100000000C940B020C9433020C9433020C943302C4
:100010000C9433020C9433020C9433020C9433028C
-:100020000C9433020C9433020C9433020C947B1521
+:100020000C9433020C9433020C9433020C94A616F5
:100030000C9433020C9433020C9433020C9433026C
-:100040000C9499160C9433020C9433020C943302E2
+:100040000C94C4170C9433020C9433020C943302B6
:100050000C9433020C9433020C9433020C9433024C
:100060000C9433020C943302526573756D65005124
:100070007569740068006F000808FC848884A2D148
@@ -64,853 +64,891 @@
:1003F000030303030300000000230026002900007C
:10040000000000250028002B000000000024002729
:10041000002A00007B0211241FBECFEFD8E0DEBF10
-:10042000CDBF11E0A0E0B1E0EEE9F8E302C0059035
+:10042000CDBF11E0A0E0B1E0E4EFFAE302C0059037
:100430000D92A437B107D9F724E0A4E7B1E001C0D9
-:100440001D92AC30B207E1F712E0CBE0D2E004C07D
-:100450002197FE010E94F81ACA30D107C9F70E94FD
-:1004600035020C944D1C0C9400000E9475020E94F1
-:10047000D805FDCFEF92FF920F931F93CF93DF9399
+:100440001D92AE30B207E1F712E0CBE0D2E004C07B
+:100450002197FE010E94231CCA30D107C9F70E94D0
+:1004600035020C94781D0C9400000E9475020E94C5
+:100470007A06FDCFEF92FF920F931F93CF93DF93F6
:100480007C01C0E0D0E000E010E0F701828190E064
:100490000817190768F4808191818C0F9D1F0097C0
-:1004A00011F00E9401030F5F1F4FC15ADE4FEDCFC5
-:1004B00084E791E00E947E0E8823D1F366E08EE708
-:1004C00091E00E9460078823E1F242E064E770E077
-:1004D00084E791E00E94390F813099F6DF91CF9146
-:1004E0001F910F91FF90EF9008950E943A1784E7B3
-:1004F00091E00C947F121092C5011092C40189E61C
+:1004A00011F00E9404030F5F1F4FCE5DDD4FEDCFB3
+:1004B00084E791E00E94A90F8823D1F366E08EE7DC
+:1004C00091E00E948B088823E1F242E064E770E04B
+:1004D00084E791E00E946410813099F6DF91CF911A
+:1004E0001F910F91FF90EF9008950E94651884E787
+:1004F00091E00C94AA131092C5011092C40189E6F0
:1005000091E09093C3018093C2010895EF92FF920E
:100510000F931F93CF93DF93CDB7DEB727970FB617
-:10052000F894DEBF0FBECDBF7C010E941204F7011C
-:10053000E85AFE4F80819181019769F461E082EC75
-:1005400091E00E945F0808E024E548E260E082EC68
-:1005500091E00E949F0800E022E040E068E770E040
-:10056000CE0101960E946F0384EAE81A8EEFF80A22
-:10057000C7010E941106182FC7010E940E06412FC5
-:10058000682FCE0101960E94B103CE0101960E9410
-:100590007A0327960FB6F894DEBF0FBECDBFDF916A
+:10052000F894DEBF0FBECDBF7C010E942004F7010E
+:10053000E85EFD4F80819181019769F461E082EC72
+:1005400091E00E948A0908E024E548E260E082EC3C
+:1005500091E00E94CA0900E022E040E068E770E014
+:10056000CE0101960E94720384EEE81A8DEFF80A1C
+:10057000C7010E94B506182FC7010E94B206412F7D
+:10058000682FCE0101960E94BF03CE0101960E9402
+:100590007D0327960FB6F894DEBF0FBECDBFDF9167
:1005A000CF911F910F91FF90EF9008950F931F939C
-:1005B000CF93DF93EC018A010E94B50389E091E0BB
-:1005C00099838883FE01E85AFE4F11821082329689
-:1005D00011830083CE01845A9E4F0E94EA05FE01DA
-:1005E000E25AFE4F108220E130E040E150E061E04D
-:1005F00070E0CE014896DF91CF911F910F910C943E
-:100600000C05CF93DF93EC010E94F706CE010E9408
-:10061000FB03E881F9810190F081E02DCE01DF91AB
-:10062000CF9109949F92AF92BF92CF92DF92EF92B7
-:10063000FF920F931F93CF93DF93EC0168966C01A9
-:1006400028EAC21A2EEFD20A8C01045A1E4FCE019C
-:100650000E94EC04882389F1CE010E94EF048111ED
-:100660002CC0CE010E94F5045C01CE010E94F90469
-:100670007C01C8010E940E06982EC8010E94110636
-:1006800095012919310937FF03C0319521953109A9
-:100690002830310594F49701281B3109C90137FF2F
-:1006A00003C091958195910908973CF461E0CE01D2
-:1006B0000E94F20482E090E006C02A96CC15DD0587
-:1006C00031F680E090E0DF91CF911F910F91FF9084
-:1006D000EF90DF90CF90BF90AF909F9008950F93D1
-:1006E000FC01718360834283238304831582168215
-:1006F0000F9108951F93CF93DF93EC0140E06B813E
-:1007000082EC91E00E9463088091FB019091FC01D2
-:10071000009719F12A81222329F06D810E9431046A
-:10072000182F01C01D818A81882341F06E8180913C
-:10073000FB019091FC010E94360401C08E8128814A
-:1007400039812115310549F0482F612F82EC91E064
-:10075000DF91CF911F910C946A0ADF91CF911F9185
-:100760000895FC01658346830895AF92BF92CF92AE
-:10077000DF92EF92FF920F931F93CF93DF93EC01E1
-:100780006B018FE091E0998388837E0188E0E80E19
-:10079000F11C80E1F70111928A95E9F78E01085E5C
-:1007A0001F4F5E01F8EAAF1AFEEFBF0A60E070E08B
-:1007B000C8010E94FD04065F1F4F0A151B05B1F713
-:1007C000C114D10431F040E150E0B601C7010E94EC
-:1007D0003E1C43E050E06CE271E0CE010296DF91F6
-:1007E000CF911F910F91FF90EF90DF90CF90BF902E
-:1007F000AF900C94371C0F931F93CF93DF938C0112
-:10080000085E1F4FEC01C85ADE4FC8010E943A052E
-:10081000065F1F4F0C171D07C1F7DF91CF911F9186
-:100820000F9108950F931F93CF93DF938C01085E70
-:100830001F4FEC01C85ADE4FC8010E943C05065FFD
-:100840001F4F0C171D07C1F7DF91CF911F910F911B
-:100850000895FC0110821282118214821382158283
-:100860000895FC018181681B862F0895FC01838116
-:10087000681B862F08950F931F93CF93DF93EC018E
-:100880008B01CB010E941406811109C040E06CEF7E
-:10089000C801DF91CF911F910F910C94F0058981D0
-:1008A0009A818430910594F304979A838983DF9128
-:1008B000CF911F910F9108950F931F93CF93DF93C3
-:1008C000EC018B01CB010E941406811109C040E0AC
-:1008D00064E0C801DF91CF911F910F910C94F00556
-:1008E00089819A81811522E092078CF704969A8378
-:1008F0008983DF91CF911F910F9108950F931F93DB
-:10090000CF93DF93EC018B01CB010E941B06811179
-:1009100009C04CEF60E0C801DF91CF911F910F91AA
-:100920000C94F0058B819C811816190694F7049796
-:100930009C838B83DF91CF911F910F9108950F932B
-:100940001F93CF93DF93EC018B01CB010E941B0619
-:10095000811109C044E060E0C801DF91CF911F918F
-:100960000F910C94F0058B819C81811522E09207F8
-:100970008CF704969C838B83DF91CF911F910F910D
-:100980000895FC0180810895FC0111821082128279
-:10099000138215821482178216820895FC0181E069
-:1009A00082837583648357834683089508950F93E4
-:1009B000FC012381222371F0FB01DC01249131969B
-:1009C000049116964C91169714966C9182EC91E0D6
-:1009D0000E949F080F910895FC0182810895FC01F7
-:1009E00083810895FC0163830895FC0184819581CE
-:1009F0000895FC018681978108950F931F93CF93EB
-:100A0000DF93EC018B010E94C40419870887DF91F2
-:100A1000CF911F910F910895EF92FF920F931F9323
-:100A2000CF93DF9300D01F92CDB7DEB77C018B014F
-:100A3000BA01A9010E94CE04F701118700878091B5
-:100A4000020190910301A091040189839A83AB83F1
-:100A5000FE01E00FF11F818190E0F7019183808317
-:100A60000F900F900F90DF91CF911F910F91FF90FA
-:100A7000EF9008950C94D604CF92DF92EF92FF92FC
-:100A80000F93CF93DF93CDB7DEB72D970FB6F894C2
-:100A9000DEBF0FBECDBFFC0120853185233031057F
-:100AA00054F57C011986188682E890E09B878A8736
-:100AB0001D861C86220F331FE1E0F0E0EC0FFD1FC6
-:100AC000E20FF31FC780D08400E021E041E0B601CF
-:100AD000CE0101960E946F03F70146816481CE0129
-:100AE00001960E94B103CE0101960E947A03B601DD
-:100AF000C7010E94D7042D960FB6F894DEBF0FBE33
-:100B0000CDBFDF91CF910F91FF90EF90DF90CF900D
-:100B10000895EF92FF920F931F93CF93DF93CDB77A
-:100B2000DEB7C457D1400FB6F894DEBF0FBECDBFBD
-:100B30007E0180EAE81A8EEFF80A8AE0D7011D925A
-:100B40008A95E9F7B70184E791E00E94DA128E01F5
-:100B500006591E4FC8010E942904A801B701FE01D1
-:100B600031967F01CF010E94D602FE01E059FE4F6F
-:100B700085E0DF011D928A95E9F781E08283F182A9
-:100B8000E082148303831093FC010093FB01CF01E7
-:100B90000E943A02CC58DE4F0FB6F894DEBF0FBE6B
-:100BA000CDBFDF91CF911F910F91FF90EF900895EE
-:100BB0006EEB70E084E791E00E94021243E068EB84
-:100BC00070E084E791E00E94390F811102C00C941B
-:100BD0008905089528E2FC01208326E121830895F8
-:100BE000FC019081262F062E000C330B290F311D9E
-:100BF00097FD3A952932310510F4960F9083818143
-:100C0000242F042E000C330B280F311D87FD3A953D
-:100C10002731310510F4840F81830895FC01808110
-:100C20000895FC0181810895FC0181E09081983252
-:100C300009F080E0089521E0FC018181863109F00E
-:100C400020E0822F08950895DC01A85ABE4F2D910F
-:100C50003C911197FC01E25AFE4F2230310539F4E4
-:100C60008081853020F081E090E08D939C9310820C
-:100C70000895CF93DF93EC01C85ADE4F2881398164
-:100C80002115310521F02230310531F00DC00E94CF
-:100C900012039983888308C0FC01E25AFE4F8081C9
-:100CA0008F3F11F08F5F8083DF91CF910895DB013B
-:100CB000AA0FBB1FAA0FBB1FA75BBE4FED91FC91F4
-:100CC000119712962D913C911397A90141705527C8
-:100CD000309719F44115510589F035952795452B25
-:100CE00051F0DC01A20FB31F4D915C91E40FF51F91
-:100CF0000190F081E02D820F931F09940895EF92E7
-:100D0000FF920F931F93CF93DF938C01EB017C0134
-:100D100086EAE81A8EEFF80AD7018D919C910E941D
-:100D2000C104811135C0DE01AA0FBB1FAA0FBB1F72
-:100D3000A35DBE4FED91FC91119712968D919C9100
-:100D400013979C0121703327309719F42115310531
-:100D5000F9F095958795232B61F0E701A881B9817A
-:100D6000A80FB91F2D913C91E20FF31F0190F08164
-:100D7000E02DB801645A7E4FD7012D913C91820F2E
-:100D8000931FDF91CF911F910F91FF90EF900994E6
-:100D9000DF91CF911F910F91FF90EF900895DB01AC
-:100DA000AA0FBB1FAA0FBB1FAF5EBE4FED91FC91F8
-:100DB000119712962D913C911397A90141705527D7
-:100DC000309719F44115510589F035952795452B34
-:100DD00051F0DC01A20FB31F4D915C91E40FF51FA0
-:100DE0000190F081E02D820F931F099408950F93D5
-:100DF0001F93CF93DF938C01C0E0D0E06C2F8EE780
-:100E000091E00E948107BE01882341F0C8010E9441
-:100E10005706BE01C8010E947F0603C0C8010E9498
-:100E2000CF062196C730D10549F7DF91CF911F91A9
-:100E30000F910895FC0188E0808389E0818387E039
-:100E4000828386E0838384E0848382E0858381E1FA
-:100E500086830895FF920F931F93CF93DF93EC0146
-:100E60008C01095F1F4FFF24FA9462E088810E9481
-:100E70001A1888810E9485182F81892B19F42F5FF9
-:100E80002F8307C0222349F02F3F11F41F8201C096
-:100E9000FF8260E088810E941A182196C017D1074E
-:100EA00021F7DF91CF911F910F91FF900895FC01E1
-:100EB000E60FF11D81E09781913009F080E00895FF
-:100EC000FC01E60FF11D81E097819F3F09F080E072
-:100ED0000895262F30E0FC01E20FF31F423030F47A
-:100EE0009781915081E09E3F58F009C087818F3FE4
-:100EF00031F0642F0E94781A81E0913009F080E08F
-:100F00000895860F911DFC0187818F3F09F480E0D1
-:100F100008958EBD0DB407FEFDCF8EB50895DC019A
-:100F2000643508F057C0403308F054C090969C9147
-:100F30009097E42FE595E595E595262F062E000C74
-:100F4000330B542F57709230A1F4D90184E5E80295
-:100F5000A00DB11D1124A350BE4F8C9190E0052E21
-:100F600002C0959587950A94E2F78095982F917025
-:100F70000CC0933051F41C968C916427062E000C03
-:100F8000770B682760FF03C014C0911112C084E57D
-:100F9000E802200D311D1124F901E350FE4F81E0DC
-:100FA00090E001C0880F5A95EAF7809590818923D7
-:100FB00010C084E5E802200D311D1124F901E35031
-:100FC000FE4F81E090E001C0880F5A95EAF79081CA
-:100FD000892B808308951F93CF93DF93EC01162F05
-:100FE000F89460E08F850E945618888918161CF4C2
-:100FF00060E00E945618812F0E9489078889181680
-:101000001CF461E00E9456187894DF91CF911F91F3
-:10101000089528EF31E0EDEFF1E0DF01A9011D9225
-:1010200041505040E1F7DC0119961C9219971A962D
-:101030001C920895CF92DF92EF92FF920F931F932D
-:10104000CF93DF93EC018C858F5F8C878DEFE82E3B
-:1010500081E0F82E10E0612F6064CE010E94EB0762
-:1010600060E8CE010E94EB0761E08F850E94561870
-:10107000888918161CF460E00E945618670104E580
-:10108000F60181916F010E9489070150C9F7888993
-:1010900018161CF461E00E9456181F5FF4E5EF0E6D
-:1010A000F11C1630C1F660E4CE01DF91CF911F91A3
-:1010B0000F91FF90EF90DF90CF900C94EB07FC0125
-:1010C00060A361A30895FC0160A341A30895EF927A
-:1010D000FF920F931F93CF93DF938C01D62FF42EA3
-:1010E000E22EC0E0CE1544F44F2D4C0F6D2FC801F9
-:1010F0000E948F07CF5FF6CFDF91CF911F910F91A5
-:10110000FF90EF900895EF92FF920F931F93CF936C
-:10111000DF938C01F62ED42FE22EC0E0CE1544F4DE
-:101120006F2D6C0F4D2FC8010E948F07CF5FF6CF38
-:10113000DF91CF911F910F91FF90EF900895EF9263
-:10114000FF920F931F93CF93DF937C01C62F142F31
-:10115000D22F0E9483084FEF400F410F2D2F6C2F8D
-:10116000C7010E948308202F412F6C2FC7010E94C6
-:1011700067086FEF6D0F6C0F202F412FC701DF91B4
-:10118000CF911F910F91FF90EF900C946708DF9221
-:10119000EF92FF920F931F93CF93DF937C01D62F93
-:1011A000D22EC42F002E000C110B040F111D47FD71
-:1011B0001A958C2F0C2E000C990B8017910744F474
-:1011C0002D2D4C2F6D2FC7010E948308CF5FF1CFCB
-:1011D000DF91CF911F910F91FF90EF90DF900895D5
-:1011E0008F929F92AF92BF92CF92DF92EF92FF9237
-:1011F0000F931F93CF93DF937C01162FD42EC22F12
-:1012000081E0C82EC21AB22EB194BB0CD0E0802F60
-:101210008470A82E802F8270982E802F8870882E40
-:101220000170DC170CF04DC0C7FC04C0C150B39472
-:10123000B394CB0CDF5F8D2F880F8F5FC80EAA2071
-:1012400071F04D2D4C0F612F6D0FC7010E948F075C
-:101250004D2D4D0F6C2F610FC7010E948F079920F4
-:1012600071F04D2D4C1B612F6D0FC7010E948F0730
-:101270004D2D4D1B6C2F610FC7010E948F078820D9
-:1012800071F04D2D4D0F612F6C1BC7010E948F0710
-:101290004D2D4C0F612F6D1BC7010E948F0700233E
-:1012A00009F4BFCF4D2D4D1B612F6C1BC7010E9450
-:1012B0008F074D2D4C1B612F6D1BC7010E948F079F
-:1012C000B0CFDF91CF911F910F91FF90EF90DF9002
-:1012D000CF90BF90AF909F908F9008958F929F92E4
-:1012E000AF92BF92CF92DF92EF92FF920F931F9334
-:1012F000CF93DF936C01A62E942EC22F11E0121B08
-:10130000F22EF194FF0C83E0B82EBE0CD1E0802FBA
-:101310008170882EE39402708FEF8D0F8C17BCF5CF
-:1013200017FD04C0C150F394F3941F0D8D2F880F47
-:101330008F5F180F882091F02C2F220F2E0D492D32
-:101340004C1B6D2F6A0DC6010E9467082B2D492D7D
-:101350004D1B6C2F6A0DC6010E946708011104C065
-:10136000DF5FB394B394D8CF2C2F220F2E0D492DCD
-:101370004C1B6A2D6D1BC6010E9467082B2D492D41
-:101380004D1B6A2D6C1BC6010E946708E9CFDF91D7
-:10139000CF911F910F91FF90EF90DF90CF90BF9072
-:1013A000AF909F908F9008959F92AF92BF92CF92EF
-:1013B000DF92EF92FF920F931F93CF93DF936C0115
-:1013C000C62FD42FB22EAE2CAA0C922E9A18FE2C19
-:1013D000F60E292D6F2D0E9483081FEF100F1D0F91
-:1013E000292D412F6F2DC6010E9483080A19DE0D99
-:1013F000202F4D2F6C2FC6010E946708CB0D6FEF79
-:101400006C0F202F4D2FC6010E94670801E02E2D82
-:101410004D2F6F2DC6010E94F0088E2D8095C80FAC
-:1014200002E02E2D4D2F6C2FC6010E94F008D12F07
-:10143000DE1904E02E2D4D2F6C2FC6010E94F008FE
-:1014400008E02E2D4D2F6F2DC6010E94F008DF9170
-:10145000CF911F910F91FF90EF90DF90CF90BF90B1
-:10146000AF909F900895AF92BF92CF92DF92EF928C
-:10147000FF920F931F93CF93DF936C01B62EF42E40
-:10148000122FC02FDE2DEE0CAD2EA60E2E196A2DBA
-:101490000E94C708C150CE19FD0E6FEF6B0D610F92
-:1014A0006D1BEC2E01E02D2F4F2DC6010E946E0901
-:1014B00002E02D2F4F2D6A2DC6010E946E09DF918B
-:1014C000CF911F910F91FF90EF90DF90CF90BF9041
-:1014D000AF9008952F923F925F926F927F928F927A
-:1014E0009F92AF92BF92CF92DF92EF92FF920F93B3
-:1014F0001F93CF93DF93EC01F901E490319684912F
-:1015000064350CF019C10E2C000CFF08062F062EB6
-:10151000000C110BF701E00FF11F1E161F060CF057
-:101520000BC140330CF008C1A82FC42E042E000CB0
-:10153000DD085601A80EB11C87FDBA941A141B04CD
-:101540000CF0FAC02E5F3F4F570197E0A90EB11C77
-:10155000B7FE04C05701BEE0AB0EB11CB3E0B594BA
-:10156000A794BA95E1F747FF0AC0A42FA80FAC9C37
-:10157000C001AD9C900D1124281B390B40E08A2F2F
-:101580000A2E000C990B840F911D47FD9A95C19767
-:1015900014F0A0E3A41BF8A067FD60E0E535F105B9
-:1015A00014F0E4E5F0E09E2FCC85C427C62E062E6D
-:1015B000000CDD08F601E01BF10B8F014F01F7E095
-:1015C0008F229924E0E8F0E002C0F595E7958A942F
-:1015D000E2F77E2F17FF02C0095F1F4FF3E015955A
-:1015E0000795FA95E1F7200F311F542F577081E0CE
-:1015F00001C0880F5A95EAF7459545954595F6013E
-:10160000B4E54B02E00DF11D1124AF0143505E4FD4
-:10161000D0E02A2EAA0F3308EE24E394BB24ED2F4A
-:10162000F0E0E215F3050CF087C0F9015490F1E009
-:10163000FF121AC0962E8A01E72F6901991608F049
-:1016400072C08E2E852021F0D8018C90882A8C9231
-:10165000E69531F4BFEFCB1ADB0AF6015490E0E8CF
-:1016600093940F5F1F4FEACFF1101CC0782E709437
-:10167000962E8A01E72F6901991608F054C08E2E24
-:10168000852021F0D8018C9087208C92E69531F44A
-:10169000BFEFCB1ADB0AF6015490E0E893940F5F9A
-:1016A0001F4FEACFF3E0FF1629F0962E8A01E72FAD
-:1016B000690137C0682E6094862E8A01972E6901D1
-:1016C0008916D8F4E92DE52159F0D801EC917C2E4A
-:1016D000782470FE02C0E82B02C0E621D801EC930A
-:1016E000969439F4BFEFCB1ADB0AF6015490E0E888
-:1016F0009E2E83940F5F1F4FE3CFCE2514C08E2EF6
-:10170000852021F0D8018C9088268C92E69531F4C2
-:10171000BFEFCB1ADB0AF6015490E0E893940F5F19
-:101720001F4F991660F3880F19F44C5A5F4F81E0F0
-:10173000DF5F2A0D3B1D73CFDF91CF911F910F917A
-:10174000FF90EF90DF90CF90BF90AF909F908F90E1
-:101750007F906F905F903F902F900895DC01FB0188
-:1017600084918F5F14968C9314973196E491EF5F78
-:101770001596EC9315976E5F7F4F5F967C936E93F3
-:101780005E970895EF920F93CF93DF93EC014E870E
-:101790006D872F87E98A088B81E0888788A319A243
-:1017A0008F836DEC70E0CE010E94AE0B0E94351A63
-:1017B00081E00E944B1A85E00E94591A8CE00E9439
-:1017C000541A61E08E850E941A1861E08D850E948E
-:1017D0001A1861E08F850E941A18898918161CF45E
-:1017E00061E00E941A18888918161CF461E00E94B2
-:1017F0001A18898918166CF460E00E9456186AE07D
-:1018000070E080E090E00E94141761E089890E94F6
-:1018100056188D85082E000C990BFC01EF51FC4FDA
-:10182000E491F0E0EE0FFF1FE150FC4F2591349161
-:101830003D8B2C8BFC01E353FC4FE491EB8F8E85A9
-:10184000082E000C990BFC01EF51FC4FE491F0E0E5
-:10185000EE0FFF1FE150FC4F259134913B8B2A8BFB
-:10186000FC01E353FC4FE491EA8F8889082E000CB9
-:10187000990BFC01EF51FC4FE491F0E0EE0FFF1FDC
-:10188000E150FC4F259134913F8B2E8BFC01E353AB
-:10189000FC4FE491EC8F8F85082E000C990BFC0116
-:1018A000EF51FC4FE491F0E0EE0FFF1FE150FC4FD1
-:1018B00025913491398F288FFC01E353FC4FE4913B
-:1018C000ED8F61E2CE010E94EB0764E1CE010E9440
-:1018D000EB078B8587FF02C08FE78B876B8560687E
-:1018E000CE010E94EB0760E2CE010E94EB076CE0A4
-:1018F000CE010E94EB07CE01DF91CF910F91EF90C7
-:101900000C941A086F927F928F929F92AF92BF921F
-:10191000CF92DF92EF92FF920F931F93CF93DF93BB
-:10192000EC0164350CF084C040330CF081C0EC81D4
-:10193000F0E031970E9FC0010F9F900D1124860F8C
-:10194000911D67FD9A95181619060CF071C03D811E
-:10195000842F042E000C990B039F800D911D1124E0
-:10196000181619060CF064C0D02EB42EC62E88A00E
-:10197000A62E962EE22EF12CEA2DEC190E2E000C3E
-:10198000FF0B8C8190E0E817F9070CF050C001972D
-:10199000E817F90779F0E89E9001E99E300DF89E6E
-:1019A000300D1124E20FF31F8E8D9F8DE80FF91F6C
-:1019B000149101C010E07B2C6B2C272D2B19022ECB
-:1019C000000C330B8D8190E0281739076CF510FF60
-:1019D00011C081E0D81206C0472D6A2DCE010E94A9
-:1019E0008F071EC00D2D2D2D462D692DCE010E9475
-:1019F000C70816C089A198A1891791F088A381E032
-:101A0000D81206C0472D6A2DCE010E948F0707C04D
-:101A10000D2D2D2D462D692DCE010E94C70888A2BF
-:101A200016956D0C7394C9CF9D0CA394A5CF88A275
-:101A3000DF91CF911F910F91FF90EF90DF90CF90AA
-:101A4000BF90AF909F908F907F906F9008950F936D
-:101A5000CF93DF93EC016A3011F428851EC06D30FE
-:101A600019F1262F08854A8569850E94820C2885F0
-:101A70003C818985239F800D112489879F8199232B
-:101A800099F0082E000C990B44E550E0239F401973
-:101A900051091124481759073CF49D818A85299FD3
-:101AA000800D11248A87198681E090E0DF91CF9123
-:101AB0000F9108958F929F92AF92BF92CF92DF9233
-:101AC000EF92FF920F931F93CF93DF93EC015C0192
-:101AD00086E8A80EB11CD5019C91992309F44DC04C
-:101AE0009C3018F41CE0191B01C010E0FE01EA5AFA
-:101AF000FF4F81E080836E01BEE4CB0ED11C60E01D
-:101B0000C6010E945F084E01E3E58E0E911CD401D0
-:101B10008C9103E0080F9DE2F92E4F2D481B410FD9
-:101B200023E0E22E24E560E0C6010E94330A61E072
-:101B3000C6010E945F08F401808103E0080F4F2D69
-:101B4000481B410F24E560E0C6010E94D409FE0154
-:101B5000E95AFF4F84E080833196D4018C91181BA1
-:101B6000115D1083CC57DF4F68817981C6010E94D7
-:101B7000EB18F501808181508083DF91CF911F9117
-:101B80000F91FF90EF90DF90CF90BF90AF909F901C
-:101B90008F900895CF92DF92FF920F931F93CF9370
-:101BA000DF93FC01248D358D232B09F49FC0EC01BC
-:101BB0008C01025B1F4F40E061E0C8010E94630896
-:101BC000FE01E95AFF4FDE01AE5ABF4F9C9185E5F9
-:101BD000891B808331961082698D613009F463C05E
-:101BE00028F0888D653008F074C06FC0CE018596EE
-:101BF0000E94201481E0FE01EA5AFF4F80836DECC1
-:101C000070E0C8010E94AE0B1D8E1C8EFE01EC5AC6
-:101C1000FF4F108288EAF82E6E01FAE0CF0ED11C39
-:101C2000CE010E947E0E8823D9F36CEB72E0C801CE
-:101C30000E94EB186A8D7B8D4AE050E0C8010E943B
-:101C40009E1967EA72E0C8010E94EB186F2D629539
-:101C50006F7070E04AE050E0C8010E94EC196CE936
-:101C600072E0C8010E94EB1864E0C6010E945707A9
-:101C700081113CC0FA94F110D3CF60E0CE010E94F4
-:101C8000F31583B7817F846083BF83B7816083BF8F
-:101C900083B7816083BF889583B78E7F83BF83B707
-:101CA0008E7F83BFBDCFCF58DF4F88819981AA81B6
-:101CB000BB818F709927AA27BB270897A105B1057B
-:101CC00010F467E009C068E707C0882379F06B5F0C
-:101CD00003C0882359F06FE2C801DF91CF911F91B3
-:101CE0000F91FF90DF90CF900C940E19DF91CF9160
-:101CF0001F910F91FF90DF90CF9008958F929F9248
-:101D0000AF92BF92CF92DF92EF92FF920F931F9309
-:101D1000CF93DF93EC017C0180E8E80EF11CF70122
-:101D200080809180A280B3800E94E316861A970A71
-:101D3000A80AB90A6E01FFE7CF0ED11CF601808117
-:101D400090E0A0E0B0E08E0105581F4F881599057E
-:101D5000AA05BB0550F4F80180819181A281B3816D
-:101D6000892B8A2B8B2B09F040C0F801808191814F
-:101D7000A281B381892B8A2B8B2BA9F57E01F5E2F9
-:101D8000EF0EF11CC7010E941D14C7010E948914A7
-:101D9000C7010E944E15CE010E945A0DCE010E942D
-:101DA000CA0D7E018EE4E80EF11CC7010E941A08DC
-:101DB000FE01EC5AFF4F8081811103C0C7010E94D0
-:101DC00009080E94EF16F801608371838283938370
-:101DD000FE01EB58FF4FC958DF4F28813981621B44
-:101DE000730B7183608380E037C00E94E316F601B5
-:101DF0002081DC01CB01820F911DA11DB11DF701D6
-:101E000080839183A283B383FE01EF58FF4F8081CB
-:101E10009181A281B3810196A11DB11D808391831F
-:101E2000A283B383F80110821182128213820E946E
-:101E3000EF16FE01E958FF4F60837183828393831D
-:101E4000CE010E94F715CE010A960E942A07CE0104
-:101E500048960E94601681E0DF91CF911F910F910B
-:101E6000FF90EF90DF90CF90BF90AF909F908F90BA
-:101E700008952F923F924F925F926F927F928F922E
-:101E80009F92AF92BF92CF92DF92EF92FF920F9309
-:101E90001F93CF93DF93CDB7DEB765970FB6F89456
-:101EA000DEBF0FBECDBF6C016A8B7B8B4B83FC0109
-:101EB000EC5AFF4F10822FEF2D831C821D8A10E3F6
-:101EC0001C8A5C013AE0A30EB11C1C0183E5280EBC
-:101ED000311CBF972F01242F30E03F832E83C60192
-:101EE000895A9F4F99878887F396FB87EA879601DF
-:101EF0002A5A3F4F3F872E870297998B888B3A97B4
-:101F00003F01C6010E947E0E8823D9F364E0C5011B
-:101F10000E945707012F110F110B811144C065E07A
-:101F2000C5010E94570781113EC066E0C5010E94AD
-:101F30005707811138C02C8121114CC044E063E067
-:101F4000C5010E946907882331F03C893F5F3C8BC3
-:101F5000C2010E94CB1544E061E0C5010E946907FF
-:101F6000882331F08C8981508C8BC2010E94CB1563
-:101F7000EC898E2F0E2E000C990B2E813F8182173B
-:101F8000930731F0E7FF05C03B8131503C8B01C026
-:101F90001C8AF1018081F4E0F80F2C89829FF019EE
-:101FA0001124FD8B22C0F101F081F98364E0C501A9
-:101FB0000E945707882309F48CC0C2010E949F1514
-:101FC000FC89FD83298121953B81239F302D11249C
-:101FD00032503D8BC8013D89831B910937FD939594
-:101FE00002970CF47AC081E08C839D89090F111D42
-:101FF00097FD1A9517FF02C00F5F1F4FF801F59567
-:10200000E795FA83E9830981102FE885F985108225
-:10201000EA85FB85008381E0EE85FF858083E88982
-:10202000F9891082EA88FB88812C912C2C89022E58
-:10203000000C330B3D872C878E819F818816990673
-:1020400009F1EC85FD85E815F90579F423E0E885CB
-:10205000F9852083F1018081F02F2C89289FF00DD4
-:1020600011248F2FEA85FB858083F7016591749198
-:10207000C3010E942919FFEF8F1A9F0A22E0E20E86
-:10208000F11CDACF60E0C3010E945F08F10180819A
-:102090004981FC89F89F400D1124415024E560E0FE
-:1020A000C3010E94830861E0C3010E945F08F1013F
-:1020B000808103E0080F4981FC89F89F400D1124BD
-:1020C000425083E0E82E24E560E0C3010E94D40979
-:1020D00018CFC2010E94B51575CF8D8165960FB6D8
-:1020E000F894DEBF0FBECDBFDF91CF911F910F914E
-:1020F000FF90EF90DF90CF90BF90AF909F908F9028
-:102100007F906F905F904F903F902F9008950F9326
-:102110001F93CF93DF93EC018C01025B1F4FC8012B
-:102120000E94090864E772E0C8010E94EB18C80128
-:102130000E941A0883E00E94591A8DE691E0EEEFA2
-:10214000FFE30995FE01EC5AFF4F10826FE472E045
-:10215000C8010E942919C8010E941A082A96CE01B6
-:102160000E942A0764E0CE010E945707811107C030
-:1021700062E370E080E090E00E941417F0CFDF91FE
-:10218000CF911F910F9108952F923F924F925F929E
-:102190006F927F928F929F92AF92BF92CF92DF9277
-:1021A000EF92FF920F931F93CF93DF93CDB7DEB7DC
-:1021B00029970FB6F894DEBF0FBECDBF3C0120E7D4
-:1021C000620E711CF3012081222309F402C15A011D
-:1021D0001B01998788877A9781E08083E885F98554
-:1021E000EB5AFF4F1082E885F985EC5AFF4F1082B9
-:1021F000E885F985108E8F01025B1F4F61E0C801F1
-:102200000E945F08888599858D5A9F4F9D838C8396
-:10221000C884D98497E5C90ED11CE884F984E8E51F
-:10222000EE0EF11C888599858E5A9F4F9A8389837B
-:10223000E885F985EF58FF4FFF83EE838884998402
-:10224000FAE08F0E911C4884598425E2420E511CFD
-:10225000888599850E947E0E8823D1F3F1018491AF
-:10226000882329F0EC81FD81F081FB8301C01B8272
-:102270002EED32E040E060E0C8010E946A0AA1143D
-:10228000B10439F04B81445F950160E0C8010E94C0
-:102290006A0AF60110822CE0F7012083B101C8011F
-:1022A0000E94EB18E981FA818081982F990F890F9C
-:1022B00081958D5AF6018083EC81FD818081982F74
-:1022C000990F890F8195835DF7018083EE81FF81EE
-:1022D000808184FF03C06AED72E002C066ED72E0A7
-:1022E000C8010E942919E981FA818081982F990FEC
-:1022F000890F81958D5AF6018083F70180818F5F68
-:102300008083E885F98582A5882319F062ED72E063
-:1023100002C06EEC72E0C8010E942919E981FA81BD
-:102320008081982F990F890F81958D5AF6018083AE
-:10233000F70180818F5F80836AEC72E0C8010E94A0
-:10234000291965E0C4010E945707882351F0E885E8
-:10235000F98562A56F5FC2010E94E115C2010E946A
-:10236000CB1564E0C4010E945707811113C0F3012B
-:102370002081422F50E060E070E0EE81FF8180819B
-:102380009181A281B38184179507A607B707A8F0AA
-:102390002F3F99F08FEFF3018083088519850B5D3E
-:1023A0001F4F60E0C8010E94BE13C8010E949F1524
-:1023B00081E0E885F985808F0CC066E0C4010E9449
-:1023C0005707882309F444CF888599850E94871090
-:1023D00035CF29960FB6F894DEBF0FBECDBFDF9183
-:1023E000CF911F910F91FF90EF90DF90CF90BF9012
-:1023F000AF909F908F907F906F905F904F903F90A5
-:102400002F90089540E050E00C94C410E0E8F7E706
-:102410002591349181E02130304C09F080E008951D
-:10242000CF93DF93EC010E9406129E01275A3F4F83
-:10243000DE01A059BF4F882309F43CC0E6E9F7E765
-:102440008491F9018083E7E9F7E7E491EC83E8E917
-:10245000F7E7E491ED83E9E9F7E7859194919F83AC
-:102460008E83EBE9F7E78591949199878887EDE969
-:10247000F7E7E491EBA7EEE9F7E7E491EAA7EFE9E4
-:10248000F7E7E491EC93E0EAF7E7859194919D8F6B
-:102490008C8FE2EAF7E7859194919F8F8E8FE4EA23
-:1024A000F7E78591949199A388A3E6EAF7E78591E8
-:1024B000949120C08CE3F90180831C828FEF8D837F
-:1024C00020E233E03F832E8324ED33E039872887F1
-:1024D00091E09BA79AA78C938CEA9DE09D8F8C8FAF
-:1024E0008EED9DE09F8F8E8F84E79EE099A388A359
-:1024F0008CE39FE09BA38AA3DF91CF910895CF92B5
-:10250000DF92EF920F93CF93DF93EC01FC01E15840
-:10251000FF4F82E38083349781E090E0A0E0B0E059
-:1025200080839183A283B3833B978FEF8083CE0117
-:102530000E941012CE010E94EF156FEFCE010E9493
-:10254000F3156E018AE0C80ED11CC6010E941A075D
-:10255000C6010E942A07CE0148960E9456168EE0B8
-:10256000E82E0FE020E14BE06DE0CE01825B9F4F53
-:102570000E94C20BA596CE010E942A1365E0C601F7
-:102580000E945707882351F060E0CE01DF91CF9180
-:102590000F91EF90DF90CF900C94E11540E06EE446
-:1025A00073E0CE01DF91CF910F91EF90DF90CF904C
-:1025B0000C94C913CF93DF93D62FC72F0E94061216
-:1025C000882359F0AD2FBC2FEBE8F7E784918D936A
-:1025D0003196E53987E7F807C9F7DF91CF9108957C
-:1025E00050E0DA01AA0FBB1FA80FB91F1F963C913C
-:1025F0001F9750962C915097E32FF22FE60FF11D65
-:10260000E60FF11D2591349190963C932E935F97A0
-:10261000F90165917491FC017481769F602D1124FC
-:10262000DC01A40FB51F91966C939197F9018591E8
-:102630009491E92FF0E0862F90E0E817F90720F455
-:10264000F90185919491692F769F602D11249296BE
-:102650006C93089521E0FC01248324E020A72DEA57
-:1026600033E0308B278740E060E00E94F01261E0A9
-:1026700070E083E00E949217E1EBF0E08081887FB8
-:1026800081608083F89410928000E1E8F0E010828D
-:10269000109285001092840088E191E09093890067
-:1026A00080938800808188608083808181608083BE
-:1026B000EFE6F0E0808182608083789408950F9344
-:1026C000FC01842F01112AC06230D9F050F4662336
-:1026D00099F0613019F540E0682FCF010F910C940B
-:1026E000F0126330A9F06430C9F46481649F802DD6
-:1026F0001124858F268F12C04B3008F08AE0868B1C
-:102700000DC06481649F802D1124818F228F06C0AB
-:102710006481649F802D1124838F248F0F910895ED
-:10272000FC0121110EC0648B8481849F402D1124F3
-:10273000458B15A214A213A281E0878B809301041C
-:10274000108E089580910104882319F08091FE0372
-:1027500001C080E08093B4000895FC0161110DC0B8
-:10276000178A158A14A213A2108E1092FE031092DB
-:10277000FF03109201040C94A2130895CF93DF93EA
-:10278000611104C0EC010E94AD131982DF91CF9159
-:1027900008950F931F93CF93DF93411110C08B01C6
-:1027A000EC0160E00E94BE131E870D871B8A1A8A07
-:1027B00081E0898389E08E8B198E1B8E1D8EDF91BF
-:1027C000CF911F910F910895CF93DF93DC01611199
-:1027D00031C08C91882371F111968C9111978111E0
-:1027E00029C019968C91199717962C9117971896BE
-:1027F0009C911897E22FF92FE80FF11DE80FF11DBA
-:10280000259134912F3F8FEF380711F41C9212C09D
-:10281000ED013C873327220F331FEA85FB85E20F4A
-:10282000F31F6591749140E0CD010E94C913898521
-:102830008F5F8987DF91CF91089560E00C94E41356
-:1028400060E00C94BE130F93CF93DF93EC01611102
-:102850005CC08981882309F458C08D89811155C0D5
-:102860002D853E85EA89FB89EE0FFF1FE20FF31FDE
-:1028700085919491009701F58989813021F41B8A13
-:102880001A8AF90110C01982888160E0882371F0EA
-:10289000CE010E94E413EA89FB89EE0FFF1F8D85AC
-:1028A0009E85E80FF91F8591949106C0CE01DF91B6
-:1028B000CF910F910C94AD13BC01769567957695E9
-:1028C000679580FF17C0AC0186E0569547958A95BD
-:1028D000E1F7292F26952695269520514F716F7087
-:1028E00000E0CE010E945F13EA89FB893196FB8BE1
-:1028F000EA8BD3CF492F6F7320E0CE010E94901353
-:102900008A899B8901969B8B8A8BDF91CF910F914E
-:10291000089560E00C942314CF93DF93EC016111D0
-:10292000BAC08F89882309F4B6C09D89911105C06A
-:10293000CE01DF91CF910C94AD1391509D8B8DA161
-:10294000811139C02BA13CA12F5F3F4FC901880FD6
-:10295000991FEF8DF8A1E80FF91F65917491862FEB
-:1029600087708EA3AB0163E0569547956A95E1F7B2
-:10297000CA0196958795972F969596959FA38F73E5
-:102980009C81899F802D11248DA341704093FD036C
-:102990003CA32BA389A190E02817390760F02AA156
-:1029A000222329F0821B91099CA38BA304C060E021
-:1029B000CE010E94AD138DA181508DA3888D21E0A1
-:1029C000280F288F4C893FA1340F8C85380F3A830C
-:1029D0006B8D662361F070E0822F022E000C990B44
-:1029E0000E94981A8C8D869F300D11243A838A811B
-:1029F00090E0CB966BE370E00E94981A8A833E8940
-:102A00003B83698D662371F0062E000C770B822FB5
-:102A1000022E000C990B0E94981A8A8D869F300D09
-:102A200011243B836D8D662389F0822F220F990B31
-:102A300070E00E94981ACB0162E070E00E94981A40
-:102A40002E8D9B81289F900D11249B834F3341F045
-:102A50008B818A300CF089E087FD80E08B8301C098
-:102A60001B82F894EA81F0E0E45AFC4FE491E09391
-:102A700000048D8198A5899F802D11249B81899FB9
-:102A8000802D11249EA1899F802D11248093FF0306
-:102A90008093FE037894DF91CF91089560E00C94C9
-:102AA0008C146091FF03662329F1809102048F5FEB
-:102AB00080930204909100048917E0F081E09091E6
-:102AC0000104911180E0809301041092020480912E
-:102AD000FD03882369F08091000193E4899F802D94
-:102AE0001124895B809300010E94781A9093FE0361
-:102AF0000C94A21308951F920F920FB60F921124F7
-:102B00002F933F934F935F936F937F938F939F93F5
-:102B1000AF93BF93EF93FF930E945115FF91EF91F5
-:102B2000BF91AF919F918F917F916F915F914F91E5
-:102B30003F912F910F900FBE0F901F901895CF933C
-:102B4000DF93EC0160E00E94BE1385EA93E09E876C
-:102B50008D871B8A1A8A81E0898389E08E8B198E82
-:102B60001B8E1D8EDF91CF910895CF93DF93EC01E3
-:102B700060E00E94BE138DE993E09E878D871B8ADB
-:102B80001A8A81E0898389E08E8B198E1B8E1D8EB7
-:102B9000DF91CF910895CF93DF93EC0160E00E9425
-:102BA000BE1387E993E09E878D871B8A1A8A81E08E
-:102BB000898389E08E8B198E1B8E1D8EDF91CF91BC
-:102BC0000895FC01262F660F330B9681692F70E064
-:102BD0006F5F7F4FC9010E94981A8583089521E095
-:102BE000FC012083089570E085E00C949217AF9269
-:102BF000BF92CF92DF92EF92FF920F931F93CF93EA
-:102C0000DF93EC0189819A812FE0289F8001299F21
-:102C1000100D112485E10E947517800F911F24E08B
-:102C2000969587952A95E1F79A83898328812223AF
-:102C300091F1EC81AD80B12CC12CD12CA885B98546
-:102C40007D0100E010E06E817F819B0140E050E05B
-:102C50008617970728F0BC01A817B90708F4BD012B
-:102C600080E090E01F921F921F92EF930E94F31951
-:102C70006B830F900F900F900F9070E085E0DF91C5
-:102C8000CF911F910F91FF90EF90DF90CF90BF9069
-:102C9000AF900C949217DF91CF911F910F91FF90FD
-:102CA000EF90DF90CF90BF90AF900895FC018CE340
-:102CB0009FE09383828384E0818381E08487089509
-:102CC000CF93DF93FC0124813581232B79F1EC0133
-:102CD00084858F7141F584E10E947517BC01990FBD
-:102CE000880B990B0E943E1B26EE3FE34EEC50E40E
-:102CF0000E94CA1B0E940D1B9B017B836A83672B6A
-:102D000081F084E08983FE01349680E04191519105
-:102D10002417350710F4898309C08F5F8430B1F719
-:102D200002C08FEF89838C858F5F8C87DF91CF9175
-:102D300008951F920F920FB60F9211242F933F9375
-:102D40008F939F93AF93BF93809104049091050458
-:102D5000A0910604B09107043091030423E0230FEF
-:102D60002D3720F40196A11DB11D05C026E8230FC3
-:102D70000296A11DB11D2093030480930404909337
-:102D80000504A0930604B093070480910804909171
-:102D90000904A0910A04B0910B040196A11DB11D74
-:102DA0008093080490930904A0930A04B0930B0441
-:102DB000BF91AF919F918F913F912F910F900FBE37
-:102DC0000F901F9018952FB7F8946091040470919C
-:102DD000050480910604909107042FBF08953FB722
-:102DE000F8948091080490910904A0910A04B0918C
-:102DF0000B0426B5A89B05C02F3F19F00196A11D15
-:102E0000B11D3FBFBA2FA92F982F8827820F911D80
-:102E1000A11DB11DBC01CD0142E0660F771F881FC7
-:102E2000991F4A95D1F70895CF92DF92EF92FF92C2
-:102E3000CF93DF936B017C010E94EF16EB01C1146D
-:102E4000D104E104F10479F00E94EF166C1B7D0BB4
-:102E5000683E7340A0F381E0C81AD108E108F10888
-:102E6000C851DC4FECCFDF91CF91FF90EF90DF9016
-:102E7000CF900895789484B5826084BD84B58160D4
-:102E800084BD85B5826085BD85B5816085BDEEE672
-:102E9000F0E0808181608083E1E8F0E01082808151
-:102EA00082608083808181608083E0E8F0E08081BF
-:102EB00081608083E1EBF0E0808184608083E0EBDF
-:102EC000F0E0808181608083EAE7F0E080818460C7
-:102ED0008083808182608083808181608083808123
-:102EE000806880831092C10008958E3008F08E5063
-:102EF0002091010190E4299F900111248770822B79
-:102F000080937C0080917A00806480937A00809125
-:102F10007A0086FDFCCF809178002091790090E0C6
-:102F2000922B08951F93CF93DF93182FEB0161E04D
-:102F30000E941A18209711F460E004C0CF3FD10519
-:102F400039F461E0812FDF91CF911F910C945618D5
-:102F5000E12FF0E0E754FC4FE491E330F9F048F45E
-:102F6000E130B9F0E230A1F584B5806284BDC8BD1E
-:102F700034C0E630E9F0E73019F1E43049F58091EA
-:102F80008000806280938000D0938B00C0938A0081
-:102F900024C084B5806884BDC7BD1FC080918000F7
-:102FA000806880938000D0938900C093880015C00A
-:102FB0008091B00080688093B000C093B3000DC0D2
-:102FC0008091B00080628093B000C093B40005C0CF
-:102FD000C038D1050CF0B5CFAFCFDF91CF911F91A5
-:102FE0000895833081F028F4813099F08230A1F087
-:102FF00008958630A9F08730B9F08430D1F48091FB
-:1030000080008F7D03C0809180008F778093800047
-:10301000089584B58F7702C084B58F7D84BD0895EF
-:103020008091B0008F7703C08091B0008F7D809336
-:10303000B0000895CF93DF9390E0FC01E353FC4F81
-:103040002491FC01EF51FC4F8491882361F190E0C1
-:10305000880F991FFC01E75FFB4FC591D491FC01DC
-:10306000E150FC4FA591B491611109C09FB7F8944C
-:103070008881209582238883EC912E230BC06230B7
-:1030800061F49FB7F8948881322F30958323888329
-:10309000EC912E2B2C939FBF06C08FB7F894E8813C
-:1030A0002E2B28838FBFDF91CF9108951F93CF934D
-:1030B000DF93282F30E0F901E754FC4F8491F901A8
-:1030C000E353FC4FD491F901EF51FC4FC491CC2351
-:1030D000C1F0162F81110E94F117EC2FF0E0EE0FD6
-:1030E000FF1FE150FC4FA591B4919FB7F8941111C7
-:1030F00004C08C91D095D82302C0EC91DE2BDC93D8
-:103100009FBFDF91CF911F910895CF93DF93282F19
-:1031100030E0F901E754FC4F8491F901E353FC4F8F
-:10312000D491F901EF51FC4FC491CC2391F081115E
-:103130000E94F117EC2FF0E0EE0FFF1FEB50FC4F59
-:10314000A591B491EC91ED2381E090E021F480E031
-:1031500002C080E090E0DF91CF910895CF92DF929E
-:10316000EF92FF920F931F93CF93DF936C01EB01CC
-:103170007B01E40EF51E00E010E0CE15DF0561F0E6
-:103180006991D601ED91FC910190F081E02DC6018D
-:103190000995080F191FF1CFC801DF91CF911F9139
-:1031A0000F91FF90EF90DF90CF900895611571051A
-:1031B00079F0FB0101900020E9F73197AF01461B40
-:1031C000570BDC01ED91FC910280F381E02D099415
-:1031D00080E090E00895EF92FF920F931F93CF93BA
-:1031E000DF937C01FB0100E010E06491EF01219688
-:1031F000662361F0D701ED91FC910190F081E02D03
-:10320000C7010995080F191FFE01EFCFC801DF9113
-:10321000CF911F910F91FF90EF900895DC01ED91F8
-:10322000FC910190F081E02D09940F931F93CF93AF
-:10323000DF93EC016DE00E940E198C016AE0CE0173
-:103240000E940E19800F911FDF91CF911F910F9156
-:1032500008950F931F93CF93DF93EC010E94EB1817
-:103260008C01CE010E941519800F911FDF91CF9123
-:103270001F910F9108958F929F92AF92BF92CF921C
-:10328000DF92EF92FF920F931F93CF93DF93CDB70F
-:10329000DEB7A1970FB6F894DEBF0FBECDBF6C01AD
-:1032A000142FE52FCB01022F19A2223008F40AE0D7
-:1032B0007E0121E2E20EF11C802E912CA12CB12C7A
-:1032C000612F7E2FA50194010E94AC1A029F101954
-:1032D000112481E0E81AF1081A3014F4105D01C0DD
-:1032E000195CF7011083122FE32FCA01232B242B23
-:1032F000252B31F7B701C6010E94D618A1960FB64B
-:10330000F894DEBF0FBECDBFDF91CF911F910F911B
-:10331000FF90EF90DF90CF90BF90AF909F908F90F5
-:1033200008952115310541F4DC01ED91FC910190E6
-:10333000F081E02D642F09940C943B199A01AB01A4
-:1033400060E070E00C949119CF92DF92EF92FF92BF
-:103350000F931F93CF93DF932115310581F4DC0187
-:10336000ED91FC910190F081E02D642FDF91CF91E0
-:103370001F910F91FF90EF90DF90CF9009942A302A
-:10338000310501F577FF1DC06A017B01EC016DE29B
-:103390000E940E198C0144275527BA014C195D096A
-:1033A0006E097F092AE0CE010E943B19800F911F10
-:1033B000DF91CF911F910F91FF90EF90DF90CF9011
-:1033C00008952AE0DF91CF911F910F91FF90EF9028
-:1033D000DF90CF900C943B199A01AB01770F660BED
-:1033E000770B0C94A4194F925F926F927F92AF92D9
-:1033F000BF92CF92DF92EF92FF920F931F93CF93E2
-:10340000DF93CDB7DEB729013A019B01AC01241946
-:1034100035094609570989899A89AB89BC89BC0154
-:10342000CD016A197B098C099D090E94681AA801BF
-:10343000970124193509460957090E94CE1ACA0175
-:10344000B9016A0D7B1D8C1D9D1DDF91CF911F91D0
-:103450000F91FF90EF90DF90CF90BF90AF907F9053
-:103460006F905F904F900895089561E08AE00E9408
-:10347000561861E08AE00E941A188CB580618CBDF4
-:103480008CB580648CBD61E08DE00E941A1861E00B
-:103490008BE00C941A18811103C08CB5806202C0B5
-:1034A0008CB58F7D8CBD08959CB5937F892B8CBD89
-:1034B00008959CB59C7F282F2370922B9CBD2DB521
-:1034C00082FB992790F9822F8E7F892B8DBD0895DD
-:1034D000DB018F939F930E94ED1ABF91AF91A29F42
-:1034E000800D911DA39F900DB29F900D1124089502
-:1034F000991B79E004C0991F961708F0961B881F46
-:103500007A95C9F780950895AA1BBB1B51E107C0A6
-:10351000AA1FBB1FA617B70710F0A61BB70B881F63
-:10352000991F5A95A9F780959095BC01CD010895F2
-:1035300097FB072E16F4009407D077FD09D00E9460
-:10354000841A07FC05D03EF4909581959F4F08950D
-:10355000709561957F4F0895A1E21A2EAA1BBB1B9F
-:10356000FD010DC0AA1FBB1FEE1FFF1FA217B3074F
-:10357000E407F50720F0A21BB30BE40BF50B661F65
-:10358000771F881F991F1A9469F760957095809529
-:1035900090959B01AC01BD01CF010895052E97FBCD
-:1035A0001EF400940E94E51A57FD07D00E94AC1A41
-:1035B00007FC03D04EF40C94E51A509540953095D5
-:1035C00021953F4F4F4F5F4F08959095809570958F
-:1035D00061957F4F8F4F9F4F08950E94FE1AA59FC0
-:1035E000900DB49F900DA49F800D911D11240895FE
-:1035F000EE0FFF1F0590F491E02D0994A29FB001FA
-:10360000B39FC001A39F700D811D1124911DB29F16
-:10361000700D811D1124911D08950E94A91B88F031
-:103620009F5798F0B92F9927B751B0F0E1F0660F86
-:10363000771F881F991F1AF0BA95C9F714C0B130C7
-:1036400091F00E94C31BB1E008950C94C31B672F37
-:10365000782F8827B85F39F0B93FCCF386957795F6
-:103660006795B395D9F73EF49095809570956195DF
-:103670007F4F8F4F9F4F0895E89409C097FB3EF40A
-:1036800090958095709561957F4F8F4F9F4F9923AF
-:10369000A9F0F92F96E9BB279395F695879577952D
-:1036A0006795B795F111F8CFFAF4BB0F11F460FFED
-:1036B0001BC06F5F7F4F8F4F9F4F16C0882311F045
-:1036C00096E911C0772321F09EE8872F762F05C059
-:1036D000662371F096E8862F70E060E02AF09A95F4
-:1036E000660F771F881FDAF7880F9695879597F9E9
-:1036F000089597F99F6780E870E060E008959FEF74
-:1037000080EC089500240A94161617061806090678
-:10371000089500240A941216130614060506089547
-:10372000092E0394000C11F4882352F0BB0F40F4CF
-:10373000BF2B11F460FF04C06F5F7F4F8F4F9F4F0F
-:10374000089557FD9058440F551F59F05F3F71F091
-:103750004795880F97FB991F61F09F3F79F08795F8
-:103760000895121613061406551FF2CF4695F1DF81
-:1037700008C0161617061806991FF1CF8695710511
-:10378000610508940895E894BB2766277727CB0145
-:1037900097F908950E94DD1B0C94901B0E94821BD8
-:1037A00038F00E94891B20F0952311F00C94791BAE
-:1037B0000C947F1B11240C94C41B0E94A11B70F35A
-:1037C000959FC1F3950F50E0551F629FF001729FC6
-:1037D000BB27F00DB11D639FAA27F00DB11DAA1FD5
-:1037E000649F6627B00DA11D661F829F2227B00D22
-:1037F000A11D621F739FB00DA11D621F839FA00DAD
-:10380000611D221F749F3327A00D611D231F849FFC
-:10381000600D211D822F762F6A2F11249F57504053
-:103820009AF0F1F088234AF0EE0FFF1FBB1F661FCE
-:10383000771F881F91505040A9F79E3F510580F097
-:103840000C94791B0C94C41B5F3FE4F3983ED4F3B3
-:10385000869577956795B795F795E7959F5FC1F73B
-:10386000FE2B880F911D9695879597F90895DC0199
-:1038700001C06D9341505040E0F70895FB01DC0119
-:103880004150504048F001900D920020C9F701C00E
-:0E3890001D9241505040E0F70895F894FFCF8C
-:10389E000101001923000000008602000000003420
-:1038AE001A000000000000000000000000000000F0
-:1038BE00002406000000000000000000003B040091
-:1038CE00007E0400005C0400009F04000000000065
-:1038DE0000000000000000000000000000000000DA
-:1038EE000000000000000000003906000023060062
-:1038FE00000000000000000000270DAE184C4F41E4
-:04390E0044455200DA
+:1005B000CF93DF93EC018A010E94C30389E091E0AD
+:1005C00099838883FE01E85EFD4F11821082329686
+:1005D00011830083B801CE01845E9D4F0E948C067A
+:1005E000FE01E05EFD4F10823196108220E130E086
+:1005F00040E150E061E070E0CE014896DF91CF919C
+:100600001F910F910C946705CF93DF93EC010E942B
+:100610001A08CE010E940904E881F9810190F08155
+:10062000E02DCE01DF91CF9109949F92AF92BF92BE
+:10063000CF92DF92EF92FF920F931F93CF93DF93AE
+:10064000EC0168966C0128EEC21A2DEFD20A8C01DB
+:10065000045E1D4FCE010E944105882389F1CE0121
+:100660000E94440581112CC0CE010E944A055C0104
+:10067000CE010E944E057C01C8010E94B806982E4A
+:10068000C8010E94C00695012919310937FF03C02E
+:100690003195219531092032310594F49701281BB9
+:1006A0003109C90137FF03C0919581959109809760
+:1006B0003CF461E0CE010E94470582E090E006C074
+:1006C0006096CC15DD0531F680E090E0DF91CF91AA
+:1006D0001F910F91FF90EF90DF90CF90BF90AF9060
+:1006E0009F9008950F93FC0171836083428323835D
+:1006F0000483158216820F9108950F931F93CF9351
+:10070000DF93EC0140E06B8182EC91E00E948E0966
+:100710008091FB019091FC01009729F12A816D8164
+:10072000222329F070E00E944B048C0101C0062FA7
+:100730009A818E81992341F0682F70E08091FB01AE
+:100740009091FC010E9453042881398121153105C3
+:1007500051F0482F602F82EC91E0DF91CF911F91F3
+:100760000F910C94950BDF91CF911F910F910895EC
+:10077000FC01849108950196FC0184910895FC0187
+:10078000658346830895AF92BF92CF92DF92EF9236
+:10079000FF920F931F93CF93DF93EC016B018FE0D8
+:1007A00091E0998388837E0188E0E80EF11C80E166
+:1007B000F70111928A95E9F78E01085E1F4F5E01DD
+:1007C000F8EEAF1AFDEFBF0A60E070E0C8010E94CA
+:1007D0005205005F1F4F0A151B05B1F7C114D10464
+:1007E00031F040E150E0B601C7010E94691D43E0CD
+:1007F00050E06CE271E0CE010296DF91CF911F9143
+:100800000F91FF90EF90DF90CF90BF90AF900C943E
+:10081000621D0F931F93CF93DF938C01085E1F4FD0
+:10082000EC01C85EDD4FC8010E949F05005F1F4FAD
+:100830000C171D07C1F7DF91CF911F910F910895FC
+:100840000F931F93CF93DF938C01085E1F4FEC0132
+:10085000C85EDD4FC8010E94C905005F1F4F0C171D
+:100860001D07C1F7DF91CF911F910F910895FC01F2
+:100870001082128211821482138215820895FC0163
+:1008800081819281860F971F0895FC018381948155
+:10089000860F971F0895FC01818192819B01281B7F
+:1008A000390BC9010895FC01838194819B01281BA8
+:1008B000390BC90108950F931F93CF93DF93EC0178
+:1008C0008B01CB010E94C806811109C040E06CEF8A
+:1008D000C801DF91CF911F910F910C9494068981EB
+:1008E0009A818430910594F304979A838983DF91E8
+:1008F000CF911F910F9108950F931F93CF93DF9383
+:10090000EC018B01CB010E94C806811109C040E0B7
+:1009100064E0C801DF91CF911F910F910C94940670
+:1009200089819A81811522E092078CF704969A8337
+:100930008983DF91CF911F910F9108950F931F939A
+:10094000CF93DF93EC018B01CB010E94CF06811185
+:1009500009C04CEF60E0C801DF91CF911F910F916A
+:100960000C9494068B819C811816190694F70497B1
+:100970009C838B83DF91CF911F910F9108950F93EB
+:100980001F93CF93DF93EC018B01CB010E94CF0625
+:10099000811109C044E060E0C801DF91CF911F914F
+:1009A0000F910C9494068B819C81811522E0920713
+:1009B0008CF704969C838B83DF91CF911F910F91CD
+:1009C0000895FC0180810895FC0111821082128239
+:1009D000138215821482178216820895FC0181E029
+:1009E0008283758364835783468308950895909323
+:1009F000FE018093FD010895DF92EF92FF920F9325
+:100A00001F93CF93DF93FC012381222391F18B016C
+:100A10007C01CB010E94B803C82FC8010E94BB0310
+:100A2000082F8091FD019091FE01009711F1D0E017
+:100A3000F701648175816C1B7D0B0E944B04D82EDD
+:100A400010E0F70166817781601B710B8091FD01D9
+:100A50009091FE010E945304000F111F9E01220F6E
+:100A6000331F52E0E52E482F6D2D82EC91E00E945D
+:100A7000FF0ADF91CF911F910F91FF90EF90DF90D0
+:100A80000895FC0182810895FC0183810895FC0191
+:100A900063830895FC01848195810895FC0186811A
+:100AA000978108950F931F93CF93DF93EC018B01F0
+:100AB0000E94E404198708871B861A861D861C86F7
+:100AC0001F861E86DF91CF911F910F910895EF929F
+:100AD000FF920F931F93CF93DF9300D01F92CDB758
+:100AE000DEB77C018B01BA01A9010E94EE04F70177
+:100AF000118700878091020190910301A091040168
+:100B000089839A83AB83FE01E00FF11F818190E01E
+:100B1000F701918380830F900F900F90DF91CF9119
+:100B20001F910F91FF90EF900895FC0175876487E6
+:100B30005787468781E090E0938782870895CF9317
+:100B4000DF93EC010E94F6048A859B850197F1F4FE
+:100B50008C819D812C853D858217930710F4019629
+:100B600004C02817390718F401979D838C838E8160
+:100B70009F812E853F858217930710F4019604C04C
+:100B80002817390718F401979F838E83DF91CF913F
+:100B90000895CF92DF92EF92FF920F931F93CF931E
+:100BA000DF93CDB7DEB72D970FB6F894DEBF0FBE3B
+:100BB000CDBFFC012085318523303105BCF57C019A
+:100BC0001986188682E890E09B878A871D861C8696
+:100BD000220F331FE1E0F0E0EC0FFD1FE20FF31FE7
+:100BE000C780D08400E021E041E0B601CE0101964B
+:100BF0000E947203F7010681C6010E94BB0386951D
+:100C0000081BF7011481C6010E94B8038695612F65
+:100C1000681B402FCE0101960E94BF03CE010196B2
+:100C20000E947D03B601C7010E94FC042D960FB6F9
+:100C3000F894DEBF0FBECDBFDF91CF911F910F9112
+:100C4000FF90EF90DF90CF900895CF92DF92EF92D8
+:100C5000FF920F931F93CF93DF93CDB7DEB7C753A8
+:100C6000D2400FB6F894DEBF0FBECDBF8E010D5D32
+:100C70001D4F8AE0F80111928A95E9F7B80184E7DF
+:100C800091E00E9405147E01F3EDEF1AFDEFFF0ADB
+:100C9000C7010E943704A701B801CE0101966C017B
+:100CA0000E94D602005F1F4F85E0F80111928A95DD
+:100CB000E9F781E0F8018283D182C082F482E38285
+:100CC000F092FC01E092FB01C7010E94F704C80109
+:100CD0000E943A02C95CDD4F0FB6F894DEBF0FBE2A
+:100CE000CDBFDF91CF911F910F91FF90EF90DF90DB
+:100CF000CF9008956EEB70E084E791E00E942D1391
+:100D000043E068EB70E084E791E00E946410811199
+:100D100002C00C9425060895FC0188E2808386E1D8
+:100D20008183738362830895FC019081262F062EB0
+:100D3000000C330B290F311D97FD3A9529323105EF
+:100D400010F4960F90838181242F042E000C330B16
+:100D5000280F311D87FD3A952731310510F4840F96
+:100D600081830895FC0180810895FC0181810895AB
+:100D7000FC01608170E0828193810E943F040895AC
+:100D8000FC01618170E0828193810E944504089595
+:100D9000FC0181E09081983209F080E0089521E023
+:100DA000FC018181863109F020E0822F0895DC0169
+:100DB000A85EBD4F2D913C911197FC01E05EFD4F67
+:100DC0002230310539F48081853020F081E090E0D7
+:100DD0008D939C9310820895AF92BF92CF92DF9231
+:100DE000FF920F931F93CF93DF93EC016C0188EE7A
+:100DF000C81A8DEFD80AF60180819181029701F51A
+:100E00008E01085E1F4F5E01F4EEAF1AFDEFBF0AC0
+:100E1000C8010E944405882371F0C5010E94B806EC
+:100E2000F82EC5010E94C006482F50E06F2D70E0DB
+:100E3000C8010E949505005F1F4F0C151D0541F765
+:100E4000CF5DDD4F1882DF91CF911F910F91FF9001
+:100E5000DF90CF90BF90AF900895EF92FF920F93E5
+:100E60001F93CF93DF938C010F5D1D4FF8012081FD
+:100E70002F5F20832A30C8F07C01F8EEEF1AFDEFD7
+:100E8000FF0AF701208131812230310561F4EC0144
+:100E9000689660E0CE010E9447056096CE15DF059A
+:100EA000C1F719821882F8011082DF91CF911F914A
+:100EB0000F91FF90EF900895CF93DF93EC01C85E00
+:100EC000DD4F288139812115310521F0223031058E
+:100ED00031F00DC00E9415039983888308C0FC017E
+:100EE000E05EFD4F80818F3F11F08F5F8083DF9147
+:100EF000CF910895DB01AA0FBB1FAA0FBB1FA75BF1
+:100F0000BE4FED91FC91119712962D913C91139744
+:100F1000A90141705527309719F44115510589F001
+:100F200035952795452B51F0DC01A20FB31F4D914C
+:100F30005C91E40FF51F0190F081E02D820F931F6B
+:100F400009940895EF92FF920F931F93CF93DF932D
+:100F50008C01EB017C0186EEE81A8DEFF80AD701CF
+:100F60008D919C910E94E104811135C0DE01AA0F90
+:100F7000BB1FAA0FBB1FA35DBE4FED91FC91119744
+:100F800012968D919C9113979C0121703327309775
+:100F900019F421153105F9F095958795232B61F00A
+:100FA000E701A881B981A80FB91F2D913C91E20FEB
+:100FB000F31F0190F081E02DB801645E7D4FD701F1
+:100FC0002D913C91820F931FDF91CF911F910F9133
+:100FD000FF90EF900994DF91CF911F910F91FF90B7
+:100FE000EF900895DB01AA0FBB1FAA0FBB1FAF5ED6
+:100FF000BE4FED91FC91119712962D913C91139754
+:10100000A90141705527309719F44115510589F010
+:1010100035952795452B51F0DC01A20FB31F4D915B
+:101020005C91E40FF51F0190F081E02D820F931F7A
+:10103000099408950F931F93CF93DF938C01C0E021
+:10104000D0E06C2F8EE791E00E94AC08882349F035
+:10105000BE01C8010E947A07BE01C8010E94A20712
+:101060000BC06C2F8EE791E00E948B08882321F043
+:10107000BE01C8010E94F2072196C730D10509F7C9
+:10108000DF91CF911F910F910895FC0188E080833B
+:1010900089E0818387E0828386E0838384E08483A0
+:1010A00082E0858381E186830895FF920F931F93E9
+:1010B000CF93DF93EC018C01095F1F4FFF24FA945B
+:1010C00062E088810E94451988810E94B0192F81B1
+:1010D000892B19F42F5F2F8307C0222349F02F3F5C
+:1010E00011F41F8201C0FF8260E088810E944519CF
+:1010F0002196C017D10721F7DF91CF911F910F9152
+:10110000FF900895FC01E60FF11D81E09781913079
+:1011100009F080E00895FC01E60FF11D81E0978160
+:101120009F3F09F080E00895262F30E0FC01E20F98
+:10113000F31F423030F49781915081E09E3F58F088
+:1011400009C087818F3F31F0642F0E94A31B81E08B
+:10115000913009F080E00895860F911DFC01878190
+:101160008F3F09F480E008958EBD0DB407FEFDCFDA
+:101170008EB50895DC01643508F057C0403308F09F
+:1011800054C090969C919097E42FE595E595E59550
+:10119000262F062E000C330B542F57709230A1F4DB
+:1011A000D90184E5E802A00DB11D1124A150BE4F64
+:1011B0008C9190E0052E02C0959587950A94E2F7F0
+:1011C0008095982F91700CC0933051F41C968C919F
+:1011D0006427062E000C770B682760FF03C014C03D
+:1011E000911112C084E5E802200D311D1124F9018E
+:1011F000E150FE4F81E090E001C0880F5A95EAF778
+:1012000080959081892310C084E5E802200D311D6E
+:101210001124F901E150FE4F81E090E001C0880FF8
+:101220005A95EAF79081892B808308951F93CF9375
+:10123000DF93EC01162FF89460E08F850E948119EE
+:10124000888918161CF460E00E948119812F0E9481
+:10125000B408888918161CF461E00E9481197894FA
+:10126000DF91CF911F91089528EF31E0EFEFF1E08A
+:10127000DF01A9011D9241505040E1F7DC011996B0
+:101280001C9219971A961C920895CF92DF92EF92B2
+:10129000FF920F931F93CF93DF93EC018C858F5FA9
+:1012A0008C878FEFE82E81E0F82E10E0612F6064CC
+:1012B000CE010E94160960E8CE010E94160961E085
+:1012C0008F850E948119888918161CF460E00E949D
+:1012D0008119670104E5F60181916F010E94B4084C
+:1012E0000150C9F7888918161CF461E00E94811921
+:1012F0001F5FF4E5EF0EF11C1630C1F660E4CE017D
+:10130000DF91CF911F910F91FF90EF90DF90CF90E1
+:101310000C941609FC0160A361A30895FC0160A36D
+:1013200041A30895EF92FF920F931F93CF93DF9302
+:101330008C01D62FF42EE22EC0E0CE1544F44F2DB2
+:101340004C0F6D2FC8010E94BA08CF5FF6CFDF9116
+:10135000CF911F910F91FF90EF900895EF92FF9220
+:101360000F931F93CF93DF938C01F62ED42FE22E91
+:10137000C0E0CE1544F46F2D6C0F4D2FC8010E94B4
+:10138000BA08CF5FF6CFDF91CF911F910F91FF90F9
+:10139000EF900895EF92FF920F931F93CF93DF93F7
+:1013A0007C01C62F142FD22F0E94AE094FEF400FA1
+:1013B000410F2D2F6C2FC7010E94AE09202F412F06
+:1013C0006C2FC7010E9492096FEF6D0F6C0F202FD9
+:1013D000412FC701DF91CF911F910F91FF90EF90A7
+:1013E0000C949209DF92EF92FF920F931F93CF9389
+:1013F000DF937C01D62FD22EC42F002E000C110BB0
+:10140000040F111D47FD1A958C2F0C2E000C990B03
+:101410008017910744F42D2D4C2F6D2FC7010E948A
+:10142000AE09CF5FF1CFDF91CF911F910F91FF9068
+:10143000EF90DF9008958F929F92AF92BF92CF92DC
+:10144000DF92EF92FF920F931F93CF93DF937C0174
+:10145000162FD42EC22F81E0C82EC21AB22EB194FC
+:10146000BB0CD0E0802F8470A82E802F8270982E25
+:10147000802F8870882E0170DC170CF04DC0C7FCDF
+:1014800004C0C150B394B394CB0CDF5F8D2F880F91
+:101490008F5FC80EAA2071F04D2D4C0F612F6D0F7C
+:1014A000C7010E94BA084D2D4D0F6C2F610FC70167
+:1014B0000E94BA08992071F04D2D4C1B612F6D0FC1
+:1014C000C7010E94BA084D2D4D1B6C2F610FC7013B
+:1014D0000E94BA08882071F04D2D4D0F612F6C1BB2
+:1014E000C7010E94BA084D2D4C0F612F6D1BC7011B
+:1014F0000E94BA08002309F4BFCF4D2D4D1B612F68
+:101500006C1BC7010E94BA084D2D4C1B612F6D1B2F
+:10151000C7010E94BA08B0CFDF91CF911F910F9100
+:10152000FF90EF90DF90CF90BF90AF909F908F9003
+:1015300008958F929F92AF92BF92CF92DF92EF92D7
+:10154000FF920F931F93CF93DF936C01A62E942EDF
+:10155000C22F11E0121BF22EF194FF0C83E0B82E83
+:10156000BE0CD1E0802F8170882EE39402708FEF43
+:101570008D0F8C17BCF517FD04C0C150F394F39484
+:101580001F0D8D2F880F8F5F180F882091F02C2F43
+:10159000220F2E0D492D4C1B6D2F6A0DC6010E9486
+:1015A00092092B2D492D4D1B6C2F6A0DC6010E94EF
+:1015B0009209011104C0DF5FB394B394D8CF2C2FEC
+:1015C000220F2E0D492D4C1B6A2D6D1BC6010E944A
+:1015D00092092B2D492D4D1B6A2D6C1BC6010E94B3
+:1015E0009209E9CFDF91CF911F910F91FF90EF907A
+:1015F000DF90CF90BF90AF909F908F9008959F9273
+:10160000AF92BF92CF92DF92EF92FF920F931F9310
+:10161000CF93DF936C01C62FD42FB22EAE2CAA0C21
+:10162000922E9A18FE2CF60E292D6F2D0E94AE09CF
+:101630001FEF100F1D0F292D412F6F2DC6010E9486
+:10164000AE090A19DE0D202F4D2F6C2FC6010E9406
+:101650009209CB0D6FEF6C0F202F4D2FC6010E940A
+:10166000920901E02E2D4D2F6F2DC6010E941B0AFD
+:101670008E2D8095C80F02E02E2D4D2F6C2FC601A8
+:101680000E941B0AD12FDE1904E02E2D4D2F6C2F46
+:10169000C6010E941B0A08E02E2D4D2F6F2DC6019A
+:1016A0000E941B0ADF91CF911F910F91FF90EF9045
+:1016B000DF90CF90BF90AF909F900895AF92BF9270
+:1016C000CF92DF92EF92FF920F931F93CF93DF930E
+:1016D0006C01B62EF42E122FC02FDE2DEE0CAD2E87
+:1016E000A60E2E196A2D0E94F209C150CE19FD0EC8
+:1016F0006FEF6B0D610F6D1BEC2E01E02D2F4F2D49
+:10170000C6010E94990A02E02D2F4F2D6A2DC601B5
+:101710000E94990ADF91CF911F910F91FF90EF9056
+:10172000DF90CF90BF90AF9008952F923F925F923D
+:101730006F927F928F929F92AF92BF92CF92DF92E1
+:10174000EF92FF920F931F93CF93DF93EC01F90178
+:10175000E4903196849164350CF019C10E2C000C84
+:10176000FF08062F062E000C110BF701E00FF11FEA
+:101770001E161F060CF00BC140330CF008C1A82F39
+:10178000C42E042E000CDD085601A80EB11C87FDE6
+:10179000BA941A141B040CF0FAC02E5F3F4F570185
+:1017A00097E0A90EB11CB7FE04C05701BEE0AB0E16
+:1017B000B11CB3E0B594A794BA95E1F747FF0AC00E
+:1017C000A42FA80FAC9CC001AD9C900D1124281B28
+:1017D000390B40E08A2F0A2E000C990B840F911DC3
+:1017E00047FD9A95C19714F0A0E3A41BF8A067FDEC
+:1017F00060E0E535F10514F0E4E5F0E09E2FCC85DE
+:10180000C427C62E062E000CDD08F601E01BF10BE6
+:101810008F014F01F7E08F229924E0E8F0E002C049
+:10182000F595E7958A94E2F77E2F17FF02C0095FCE
+:101830001F4FF3E015950795FA95E1F7200F311F3B
+:10184000542F577081E001C0880F5A95EAF74595EB
+:1018500045954595F601B4E54B02E00DF11D1124C7
+:10186000AF0141505E4FD0E02A2EAA0F3308EE247C
+:10187000E394BB24ED2FF0E0E215F3050CF087C0F4
+:10188000F9015490F1E0FF121AC0962E8A01E72F59
+:101890006901991608F072C08E2E852021F0D801BA
+:1018A0008C90882A8C92E69531F4BFEFCB1ADB0A34
+:1018B000F6015490E0E893940F5F1F4FEACFF110C8
+:1018C0001CC0782E7094962E8A01E72F6901991614
+:1018D00008F054C08E2E852021F0D8018C908720EE
+:1018E0008C92E69531F4BFEFCB1ADB0AF6015490E7
+:1018F000E0E893940F5F1F4FEACFF3E0FF1629F063
+:10190000962E8A01E72F690137C0682E6094862ED3
+:101910008A01972E69018916D8F4E92DE52159F03D
+:10192000D801EC917C2E782470FE02C0E82B02C016
+:10193000E621D801EC93969439F4BFEFCB1ADB0A79
+:10194000F6015490E0E89E2E83940F5F1F4FE3CF83
+:10195000CE2514C08E2E852021F0D8018C908826AB
+:101960008C92E69531F4BFEFCB1ADB0AF601549066
+:10197000E0E893940F5F1F4F991660F3880F19F4F6
+:101980004C5A5F4F81E0DF5F2A0D3B1D73CFDF9123
+:10199000CF911F910F91FF90EF90DF90CF90BF906C
+:1019A000AF909F908F907F906F905F903F902F901F
+:1019B0000895DC01FB0184918F5F14968C9314973A
+:1019C0003196E491EF5F1596EC9315976E5F7F4F1C
+:1019D0005F967C936E935E970895EF920F93CF93EB
+:1019E000DF93EC014E876D872F87E98A088B81E0B2
+:1019F000888788A319A28F836DEC70E0CE010E94C6
+:101A0000D90C0E94601B81E00E94761B85E00E9439
+:101A1000841B8CE00E947F1B61E08E850E9445192B
+:101A200061E08D850E94451961E08F850E9445190E
+:101A3000898918161CF461E00E94451988891816D6
+:101A40001CF461E00E944519898918166CF460E065
+:101A50000E9481196AE070E080E090E00E943F18E7
+:101A600061E089890E9481198D85082E000C990BEF
+:101A7000FC01EF51FC4FE491F0E0EE0FFF1FE1504D
+:101A8000FC4F259134913D8B2C8BFC01E353FC4F93
+:101A9000E491EB8F8E85082E000C990BFC01EF5121
+:101AA000FC4FE491F0E0EE0FFF1FE150FC4F259159
+:101AB00034913B8B2A8BFC01E353FC4FE491EA8F7A
+:101AC0008889082E000C990BFC01EF51FC4FE49122
+:101AD000F0E0EE0FFF1FE150FC4F259134913F8B5A
+:101AE0002E8BFC01E353FC4FE491EC8F8F85082E85
+:101AF000000C990BFC01EF51FC4FE491F0E0EE0F6C
+:101B0000FF1FE150FC4F25913491398F288FFC0144
+:101B1000E353FC4FE491ED8F61E2CE010E94160980
+:101B200064E1CE010E9416098B8587FF02C08FE712
+:101B30008B876B856068CE010E94160960E2CE013A
+:101B40000E9416096CE0CE010E941609CE01DF91B9
+:101B5000CF910F91EF900C9445096F927F928F92E5
+:101B60009F92AF92BF92CF92DF92EF92FF920F932C
+:101B70001F93CF93DF93EC0164350CF084C04033A6
+:101B80000CF081C0EC81F0E031970E9FC0010F9FF7
+:101B9000900D1124860F911D67FD9A951816190650
+:101BA0000CF071C03D81842F042E000C990B039F13
+:101BB000800D911D1124181619060CF064C0D02E4A
+:101BC000B42EC62E88A0A62E962EE22EF12CEA2D3B
+:101BD000EC190E2E000CFF0B8C8190E0E817F90732
+:101BE0000CF050C00197E817F90779F0E89E9001D2
+:101BF000E99E300DF89E300D1124E20FF31F8E8DFB
+:101C00009F8DE80FF91F149101C010E07B2C6B2C05
+:101C1000272D2B19022E000C330B8D8190E02817F5
+:101C200039076CF510FF11C081E0D81206C0472DAE
+:101C30006A2DCE010E94BA081EC00D2D2D2D462DF5
+:101C4000692DCE010E94F20916C089A198A18917B9
+:101C500091F088A381E0D81206C0472D6A2DCE01ED
+:101C60000E94BA0807C00D2D2D2D462D692DCE01DD
+:101C70000E94F20988A216956D0C7394C9CF9D0C31
+:101C8000A394A5CF88A2DF91CF911F910F91FF90D0
+:101C9000EF90DF90CF90BF90AF909F908F907F900C
+:101CA0006F9008950F93CF93DF93EC016A3011F496
+:101CB00028851EC06D3019F1262F08854A85698553
+:101CC0000E94AD0D28853C818985239F800D1124BC
+:101CD00089879F81992399F0082E000C990B44E580
+:101CE00050E0239F401951091124481759073CF42B
+:101CF0009D818A85299F800D11248A87198681E01C
+:101D000090E0DF91CF910F9108958F929F92AF92C3
+:101D1000BF92CF92DF92EF92FF920F931F93CF93D8
+:101D2000DF93EC015C0186E8A80EB11CD5019C9103
+:101D3000992309F44DC09C3018F41CE0191B01C014
+:101D400010E0FE01EA5AFF4F81E080836E01BEE49D
+:101D5000CB0ED11C60E0C6010E948A094E01E3E56A
+:101D60008E0E911CD4018C9103E0080F9DE2F92E98
+:101D70004F2D481B410F23E0E22E24E560E0C60111
+:101D80000E945E0B61E0C6010E948A09F401808115
+:101D900003E0080F4F2D481B410F24E560E0C6010A
+:101DA0000E94FF0AFE01E95AFF4F84E080833196CA
+:101DB000D4018C91181B115D1083CC57DF4F6881C3
+:101DC0007981C6010E94161AF501808181508083B5
+:101DD000DF91CF911F910F91FF90EF90DF90CF9007
+:101DE000BF90AF909F908F900895CF92DF92FF9217
+:101DF0000F931F93CF93DF93FC01248D358D232BFD
+:101E000009F49FC0EC018C01025B1F4F40E061E0D0
+:101E1000C8010E948E09FE01E95AFF4FDE01AE5A49
+:101E2000BF4F9C9185E5891B808331961082698D17
+:101E3000613009F463C028F0888D653008F074C003
+:101E40006FC0CE0185960E944B1581E0FE01EA5AD3
+:101E5000FF4F80836DEC70E0C8010E94D90C1D8E8D
+:101E60001C8EFE01EC5AFF4F108288EAF82E6E019C
+:101E7000FAE0CF0ED11CCE010E94A90F8823D9F31E
+:101E80006CEB72E0C8010E94161A6A8D7B8D4AE0E5
+:101E900050E0C8010E94C91A67EA72E0C8010E94B6
+:101EA000161A6F2D62956F7070E04AE050E0C8011D
+:101EB0000E94171B6CE972E0C8010E94161A64E0C8
+:101EC000C6010E94820881113CC0FA94F110D3CF60
+:101ED00060E0CE010E941E1783B7817F846083BFBC
+:101EE00083B7816083BF83B7816083BF889583B7E1
+:101EF0008E7F83BF83B78E7F83BFBDCFCF58DF4F29
+:101F000088819981AA81BB818F709927AA27BB27D5
+:101F10000897A105B10510F467E009C068E707C09C
+:101F2000882379F06B5F03C0882359F06FE2C80102
+:101F3000DF91CF911F910F91FF90DF90CF900C9484
+:101F4000391ADF91CF911F910F91FF90DF90CF90C1
+:101F500008958F929F92AF92BF92CF92DF92EF92AD
+:101F6000FF920F931F93CF93DF93EC017C0180E8E6
+:101F7000E80EF11CF70180809180A280B3800E945E
+:101F80000E18861A970AA80AB90A6E01FFE7CF0E43
+:101F9000D11CF601808190E0A0E0B0E08E010558F0
+:101FA0001F4F88159905AA05BB0550F4F8018081DB
+:101FB0009181A281B381892B8A2B8B2B09F040C0A0
+:101FC000F80180819181A281B381892B8A2B8B2B8F
+:101FD000A9F57E01F5E2EF0EF11CC7010E9448153C
+:101FE000C7010E94B415C7010E947916CE010E9454
+:101FF000850ECE010E94F50E7E018EE4E80EF11CE6
+:10200000C7010E944509FE01EC5AFF4F80818111F2
+:1020100003C0C7010E9434090E941A18F8016083A6
+:10202000718382839383FE01EB58FF4FC958DF4FC2
+:1020300028813981621B730B7183608380E037C014
+:102040000E940E18F6012081DC01CB01820F911D48
+:10205000A11DB11DF70180839183A283B383FE018B
+:10206000EF58FF4F80819181A281B3810196A11D1C
+:10207000B11D80839183A283B383F8011082118202
+:10208000128213820E941A18FE01E958FF4F6083E2
+:10209000718382839383CE010E942217CE010A9618
+:1020A0000E945508CE0148960E948B1781E0DF916F
+:1020B000CF911F910F91FF90EF90DF90CF90BF9045
+:1020C000AF909F908F9008952F923F924F925F9282
+:1020D0006F927F928F929F92AF92BF92CF92DF9238
+:1020E000EF92FF920F931F93CF93DF93CDB7DEB79D
+:1020F00065970FB6F894DEBF0FBECDBF6C016A8B3B
+:102100007B8B4B83FC01EC5AFF4F10822FEF2D830A
+:102110001C821D8A10E31C8A5C013AE0A30EB11CEC
+:102120001C0183E5280E311CBF972F01242F30E0BE
+:102130003F832E83C601895A9F4F99878887F396DC
+:10214000FB87EA8796012A5A3F4F3F872E870297DF
+:10215000998B888B3A973F01C6010E94A90F88236B
+:10216000D9F364E0C5010E948208012F110F110B01
+:10217000811144C065E0C5010E94820881113EC002
+:1021800066E0C5010E948208811138C02C812111AE
+:102190004CC044E063E0C5010E949408882331F0FC
+:1021A0003C893F5F3C8BC2010E94F61644E061E02F
+:1021B000C5010E949408882331F08C8981508C8B52
+:1021C000C2010E94F616EC898E2F0E2E000C990B80
+:1021D0002E813F818217930731F0E7FF05C03B81D5
+:1021E00031503C8B01C01C8AF1018081F4E0F80F72
+:1021F0002C89829FF0191124FD8B22C0F101F081FE
+:10220000F98364E0C5010E948208882309F48CC028
+:10221000C2010E94CA16FC89FD83298121953B8158
+:10222000239F302D112432503D8BC8013D89831BE3
+:10223000910937FD939502970CF47AC081E08C8365
+:102240009D89090F111D97FD1A9517FF02C00F5F99
+:102250001F4FF801F595E795FA83E9830981102F5F
+:10226000E885F9851082EA85FB85008381E0EE85AB
+:10227000FF858083E889F9891082EA88FB88812CB0
+:10228000912C2C89022E000C330B3D872C878E81DC
+:102290009F818816990609F1EC85FD85E815F905F9
+:1022A00079F423E0E885F9852083F1018081F02F1E
+:1022B0002C89289FF00D11248F2FEA85FB858083C0
+:1022C000F70165917491C3010E94541AFFEF8F1AB0
+:1022D0009F0A22E0E20EF11CDACF60E0C3010E9407
+:1022E0008A09F10180814981FC89F89F400D112400
+:1022F000415024E560E0C3010E94AE0961E0C301E2
+:102300000E948A09F101808103E0080F4981FC895C
+:10231000F89F400D1124425083E0E82E24E560E050
+:10232000C3010E94FF0A18CFC2010E94E01675CFB8
+:102330008D8165960FB6F894DEBF0FBECDBFDF91DD
+:10234000CF911F910F91FF90EF90DF90CF90BF90B2
+:10235000AF909F908F907F906F905F904F903F9045
+:102360002F9008950F931F93CF93DF93EC018C016F
+:10237000025B1F4FC8010E94340964E772E0C80184
+:102380000E94161AC8010E94450983E00E94841B1E
+:102390008DE691E0EEEFFFE30995FE01EC5AFF4F69
+:1023A00010826FE472E0C8010E94541AC8010E94B2
+:1023B00045092A96CE010E94550864E0CE010E948C
+:1023C0008208811107C062E370E080E090E00E9423
+:1023D0003F18F0CFDF91CF911F910F9108952F9269
+:1023E0003F924F925F926F927F928F929F92AF92A5
+:1023F000BF92CF92DF92EF92FF920F931F93CF93F2
+:10240000DF93CDB7DEB729970FB6F894DEBF0FBEC6
+:10241000CDBF3C0120E7620E711CF3012081222315
+:1024200009F402C15A011B01998788877A9781E0D4
+:102430008083E885F985EB5AFF4F1082E885F9859E
+:10244000EC5AFF4F1082E885F985108E8F01025BF0
+:102450001F4F61E0C8010E948A09888599858D5ABD
+:102460009F4F9D838C83C884D98497E5C90ED11C66
+:10247000E884F984E8E5EE0EF11C888599858E5A8A
+:102480009F4F9A838983E885F985EF58FF4FFF8333
+:10249000EE8388849984FAE08F0E911C48845984D5
+:1024A00025E2420E511C888599850E94A90F882338
+:1024B000D1F3F1018491882329F0EC81FD81F08131
+:1024C000FB8301C01B822EED32E040E060E0C801DA
+:1024D0000E94950BA114B10439F04B81445F950122
+:1024E00060E0C8010E94950BF60110822CE0F70114
+:1024F0002083B101C8010E94161AE981FA81808106
+:10250000982F990F890F81958D5AF6018083EC8160
+:10251000FD818081982F990F890F8195835DF70147
+:102520008083EE81FF81808184FF03C06AED72E0C9
+:1025300002C066ED72E0C8010E94541AE981FA8176
+:102540008081982F990F890F81958D5AF60180838C
+:10255000F70180818F5F8083E885F98582A58823D4
+:1025600019F062ED72E002C06EEC72E0C8010E94E8
+:10257000541AE981FA818081982F990F890F8195EA
+:102580008D5AF6018083F70180818F5F80836AEC2A
+:1025900072E0C8010E94541A65E0C4010E948208DA
+:1025A000882351F0E885F98562A56F5FC2010E941A
+:1025B0000C17C2010E94F61664E0C4010E94820852
+:1025C000811113C0F3012081422F50E060E070E0E0
+:1025D000EE81FF8180819181A281B381841795076B
+:1025E000A607B707A8F02F3F99F08FEFF30180837C
+:1025F000088519850B5D1F4F60E0C8010E94E91432
+:10260000C8010E94CA1681E0E885F985808F0CC058
+:1026100066E0C4010E948208882309F444CF8885BB
+:1026200099850E94B21135CF29960FB6F894DEBF76
+:102630000FBECDBFDF91CF911F910F91FF90EF9013
+:10264000DF90CF90BF90AF909F908F907F906F90D2
+:102650005F904F903F902F90089540E050E00C9491
+:10266000EF11E0E8F7E72591349181E02130304C1B
+:1026700009F080E00895CF93DF93EC010E943113BD
+:102680009E01275A3F4FDE01A059BF4F882309F40E
+:102690003CC0E6E9F7E78491F9018083E7E9F7E7D1
+:1026A000E491EC83E8E9F7E7E491ED83E9E9F7E702
+:1026B000859194919F838E83EBE9F7E785919491BF
+:1026C00099878887EDE9F7E7E491EBA7EEE9F7E76B
+:1026D000E491EAA7EFE9F7E7E491EC93E0EAF7E7A2
+:1026E000859194919D8F8C8FE2EAF7E78591949183
+:1026F0009F8F8E8FE4EAF7E78591949199A388A341
+:10270000E6EAF7E78591949120C08CE3F901808394
+:102710001C828FEF8D8320E233E03F832E8324EDF4
+:1027200033E03987288791E09BA79AA78C938CEA9E
+:102730009DE09D8F8C8F8EED9DE09F8F8E8F84E727
+:102740009EE099A388A38CE39FE09BA38AA3DF91DB
+:10275000CF910895CF92DF92EF920F93CF93DF93B3
+:10276000EC01FC01E158FF4F82E38083349781E064
+:1027700090E0A0E0B0E080839183A283B3833B9795
+:102780008FEF8083CE010E943B13CE010E941A1767
+:102790006FEFCE010E941E176E018AE0C80ED11C99
+:1027A000C6010E944508C6010E945508CE01489600
+:1027B0000E9481178EE0E82E0FE020E14BE06DE0F3
+:1027C000CE01825B9F4F0E94ED0CA596CE010E9428
+:1027D000551465E0C6010E948208882351F060E02C
+:1027E000CE01DF91CF910F91EF90DF90CF900C94BD
+:1027F0000C1740E06EE473E0CE01DF91CF910F91B2
+:10280000EF90DF90CF900C94F414CF93DF93D62FFA
+:10281000C72F0E943113882359F0AD2FBC2FEBE84E
+:10282000F7E784918D933196E53987E7F807C9F783
+:10283000DF91CF91089550E0DA01AA0FBB1FA80FD6
+:10284000B91F1F963C911F9750962C915097E32FDC
+:10285000F22FE60FF11DE60FF11D259134919096B0
+:102860003C932E935F97F90165917491FC017481FB
+:10287000769F602D1124DC01A40FB51F91966C93F7
+:102880009197F90185919491E92FF0E0862F90E0DE
+:10289000E817F90720F4F90185919491692F769F43
+:1028A000602D112492966C93089521E0FC012483FD
+:1028B00024E020A72DEA33E0308B278740E060E05A
+:1028C0000E941B1461E070E083E00E94BD18E1EB00
+:1028D000F0E08081887F81608083F894109280008E
+:1028E000E1E8F0E01082109285001092840088E107
+:1028F00091E0909389008093880080818860808334
+:10290000808181608083EFE6F0E080818260808357
+:10291000789408950F93FC01842F01112AC062302E
+:10292000D9F050F4662399F0613019F540E0682F32
+:10293000CF010F910C941B146330A9F06430C9F4DB
+:102940006481649F802D1124858F268F12C04B30A7
+:1029500008F08AE0868B0DC06481649F802D11246D
+:10296000818F228F06C06481649F802D1124838F04
+:10297000248F0F910895FC0121110EC0648B848176
+:10298000849F402D1124458B15A214A213A281E02F
+:10299000878B80930304108E08958091030488230D
+:1029A00019F08091000401C080E08093B400089584
+:1029B000FC0161110DC0178A158A14A213A2108E92
+:1029C0001092000410920104109203040C94CD1490
+:1029D0000895CF93DF93611104C0EC010E94D814D5
+:1029E0001982DF91CF9108950F931F93CF93DF93B7
+:1029F000411110C08B01EC0160E00E94E9141E87B8
+:102A00000D871B8A1A8A81E0898389E08E8B198E53
+:102A10001B8E1D8EDF91CF911F910F910895CF9343
+:102A2000DF93DC01611131C08C91882371F1119623
+:102A30008C911197811129C019968C91199717962D
+:102A40002C91179718969C911897E22FF92FE80F61
+:102A5000F11DE80FF11D259134912F3F8FEF3807BD
+:102A600011F41C9212C0ED013C873327220F331F53
+:102A7000EA85FB85E20FF31F6591749140E0CD017B
+:102A80000E94F41489858F5F8987DF91CF91089523
+:102A900060E00C940F1560E00C94E9140F93CF9351
+:102AA000DF93EC0161115CC08981882309F458C06F
+:102AB0008D89811155C02D853E85EA89FB89EE0FF0
+:102AC000FF1FE20FF31F85919491009701F589890B
+:102AD000813021F41B8A1A8AF90110C01982888179
+:102AE00060E0882371F0CE010E940F15EA89FB890E
+:102AF000EE0FFF1F8D859E85E80FF91F859194913C
+:102B000006C0CE01DF91CF910F910C94D814BC0177
+:102B1000769567957695679580FF17C0AC0186E03E
+:102B2000569547958A95E1F7292F2695269526955E
+:102B300020514F716F7000E0CE010E948A14EA8923
+:102B4000FB893196FB8BEA8BD3CF492F6F7320E043
+:102B5000CE010E94BB148A899B8901969B8B8A8B2C
+:102B6000DF91CF910F91089560E00C944E15CF93B3
+:102B7000DF93EC016111BAC08F89882309F4B6C0D4
+:102B80009D89911105C0CE01DF91CF910C94D8148D
+:102B900091509D8B8DA1811139C02BA13CA12F5F3C
+:102BA0003F4FC901880F991FEF8DF8A1E80FF91F5A
+:102BB00065917491862F87708EA3AB0163E0569563
+:102BC00047956A95E1F7CA0196958795972F96954F
+:102BD00096959FA38F739C81899F802D11248DA32F
+:102BE00041704093FF033CA32BA389A190E02817D9
+:102BF000390760F02AA1222329F0821B91099CA3A6
+:102C00008BA304C060E0CE010E94D8148DA1815036
+:102C10008DA3888D21E0280F288F4C893FA1340F88
+:102C20008C85380F3A836B8D662361F070E0822FBC
+:102C3000022E000C990B0E94C31B8C8D869F300DB9
+:102C400011243A838A8190E0CB966BE370E00E9476
+:102C5000C31B8A833E893B83698D662371F0062EF0
+:102C6000000C770B822F022E000C990B0E94C31BC5
+:102C70008A8D869F300D11243B836D8D662389F0EC
+:102C8000822F220F990B70E00E94C31BCB0162E0E0
+:102C900070E00E94C31B2E8D9B81289F900D1124F4
+:102CA0009B834F3341F08B818A300CF089E087FDA4
+:102CB00080E08B8301C01B82F894EA81F0E0E45A43
+:102CC000FC4FE491E09302048D8198A5899F802DAB
+:102CD00011249B81899F802D11249EA1899F802D85
+:102CE000112480930104809300047894DF91CF91A4
+:102CF000089560E00C94B71560910104662329F1F2
+:102D0000809104048F5F80930404909102048917DA
+:102D1000E0F081E090910304911180E0809303043E
+:102D2000109204048091FF03882369F080910001D0
+:102D300093E4899F802D1124895B809300010E9478
+:102D4000A31B909300040C94CD1408951F920F922E
+:102D50000FB60F9211242F933F934F935F936F936E
+:102D60007F938F939F93AF93BF93EF93FF930E94B3
+:102D70007C16FF91EF91BF91AF919F918F917F91C1
+:102D80006F915F914F913F912F910F900FBE0F90D8
+:102D90001F901895CF93DF93EC0160E00E94E91437
+:102DA00085EA93E09E878D871B8A1A8A81E0898352
+:102DB00089E08E8B198E1B8E1D8EDF91CF91089529
+:102DC000CF93DF93EC0160E00E94E9148DE993E07A
+:102DD0009E878D871B8A1A8A81E0898389E08E8B82
+:102DE000198E1B8E1D8EDF91CF910895CF93DF93A7
+:102DF000EC0160E00E94E91487E993E09E878D87EB
+:102E00001B8A1A8A81E0898389E08E8B198E1B8E3A
+:102E10001D8EDF91CF910895FC01262F660F330B95
+:102E20009681692F70E06F5F7F4FC9010E94C31BBD
+:102E30008583089521E0FC012083089570E085E0FA
+:102E40000C94BD18AF92BF92CF92DF92EF92FF9297
+:102E50000F931F93CF93DF93EC0189819A812FE029
+:102E6000289F8001299F100D112485E10E94A01840
+:102E7000800F911F24E0969587952A95E1F79A8314
+:102E800089832881222391F1EC81AD80B12CC12C62
+:102E9000D12CA885B9857D0100E010E06E817F818D
+:102EA0009B0140E050E08617970728F0BC01A81767
+:102EB000B90708F4BD0180E090E01F921F921F92B5
+:102EC000EF930E941E1B6B830F900F900F900F903B
+:102ED00070E085E0DF91CF911F910F91FF90EF900F
+:102EE000DF90CF90BF90AF900C94BD18DF91CF9141
+:102EF0001F910F91FF90EF90DF90CF90BF90AF9018
+:102F00000895FC018CE39FE09383828384E08183B6
+:102F100081E084870895CF93DF93FC01248135817C
+:102F2000232B79F1EC0184858F7141F584E10E94B6
+:102F3000A018BC01990F880B990B0E94691C26EE02
+:102F40003FE34EEC50E40E94F51C0E94381C9B01AC
+:102F50007B836A83672B81F084E08983FE0134964A
+:102F600080E0419151912417350710F4898309C0FD
+:102F70008F5F8430B1F702C08FEF89838C858F5FBC
+:102F80008C87DF91CF9108951F920F920FB60F9209
+:102F900011242F933F938F939F93AF93BF9380916F
+:102FA000060490910704A0910804B091090430919F
+:102FB000050423E0230F2D3720F40196A11DB11D38
+:102FC00005C026E8230F0296A11DB11D209305041C
+:102FD0008093060490930704A0930804B093090417
+:102FE00080910A0490910B04A0910C04B0910D04FF
+:102FF0000196A11DB11D80930A0490930B04A09328
+:103000000C04B0930D04BF91AF919F918F913F91AC
+:103010002F910F900FBE0F901F9018952FB7F89417
+:10302000609106047091070480910804909109044E
+:103030002FBF08953FB7F89480910A0490910B0434
+:10304000A0910C04B0910D0426B5A89B05C02F3F9C
+:1030500019F00196A11DB11D3FBFBA2FA92F982FBE
+:103060008827820F911DA11DB11DBC01CD0142E039
+:10307000660F771F881F991F4A95D1F70895CF9241
+:10308000DF92EF92FF92CF93DF936B017C010E945E
+:103090001A18EB01C114D104E104F10479F00E9483
+:1030A0001A186C1B7D0B683E7340A0F381E0C81AB0
+:1030B000D108E108F108C851DC4FECCFDF91CF9186
+:1030C000FF90EF90DF90CF900895789484B5826060
+:1030D00084BD84B5816084BD85B5826085BD85B5BC
+:1030E000816085BDEEE6F0E0808181608083E1E86B
+:1030F000F0E01082808182608083808181608083A3
+:10310000E0E8F0E0808181608083E1EBF0E08081A5
+:1031100084608083E0EBF0E0808181608083EAE777
+:10312000F0E0808184608083808182608083808100
+:10313000816080838081806880831092C1000895BF
+:103140008E3008F08E502091010190E4299F90016B
+:1031500011248770822B80937C0080917A00806498
+:1031600080937A0080917A0086FDFCCF8091780070
+:103170002091790090E0922B08951F93CF93DF93D5
+:10318000182FEB0161E00E944519209711F460E0CF
+:1031900004C0CF3FD10539F461E0812FDF91CF9199
+:1031A0001F910C948119E12FF0E0E754FC4FE4915A
+:1031B000E330F9F048F4E130B9F0E230A1F584B53C
+:1031C000806284BDC8BD34C0E630E9F0E73019F153
+:1031D000E43049F580918000806280938000D09334
+:1031E0008B00C0938A0024C084B5806884BDC7BDAD
+:1031F0001FC080918000806880938000D0938900F8
+:10320000C093880015C08091B00080688093B000A2
+:10321000C093B3000DC08091B00080628093B00075
+:10322000C093B40005C0C038D1050CF0B5CFAFCF06
+:10323000DF91CF911F910895833081F028F4813080
+:1032400099F08230A1F008958630A9F08730B9F066
+:103250008430D1F4809180008F7D03C08091800004
+:103260008F7780938000089584B58F7702C084B5EE
+:103270008F7D84BD08958091B0008F7703C08091C9
+:10328000B0008F7D8093B0000895CF93DF9390E0DE
+:10329000FC01E353FC4F2491FC01EF51FC4F84915E
+:1032A000882361F190E0880F991FFC01E75FFB4FD5
+:1032B000C591D491FC01E150FC4FA591B4916111ED
+:1032C00009C09FB7F8948881209582238883EC9168
+:1032D0002E230BC0623061F49FB7F8948881322F9F
+:1032E000309583238883EC912E2B2C939FBF06C0AF
+:1032F0008FB7F894E8812E2B28838FBFDF91CF9171
+:1033000008951F93CF93DF93282F30E0F901E754FE
+:10331000FC4F8491F901E353FC4FD491F901EF5133
+:10332000FC4FC491CC23C1F0162F81110E941C19AF
+:10333000EC2FF0E0EE0FFF1FE150FC4FA591B49190
+:103340009FB7F894111104C08C91D095D82302C076
+:10335000EC91DE2BDC939FBFDF91CF911F910895FD
+:10336000CF93DF93282F30E0F901E754FC4F84918D
+:10337000F901E353FC4FD491F901EF51FC4FC49193
+:10338000CC2391F081110E941C19EC2FF0E0EE0F7C
+:10339000FF1FEB50FC4FA591B491EC91ED2381E020
+:1033A00090E021F480E002C080E090E0DF91CF91D6
+:1033B0000895CF92DF92EF92FF920F931F93CF93D6
+:1033C000DF936C01EB017B01E40EF51E00E010E0E1
+:1033D000CE15DF0561F06991D601ED91FC91019068
+:1033E000F081E02DC6010995080F191FF1CFC80122
+:1033F000DF91CF911F910F91FF90EF90DF90CF90D1
+:1034000008956115710579F0FB0101900020E9F73D
+:103410003197AF01461B570BDC01ED91FC91028007
+:10342000F381E02D099480E090E00895EF92FF92FF
+:103430000F931F93CF93DF937C01FB0100E010E01B
+:103440006491EF012196662361F0D701ED91FC9123
+:103450000190F081E02DC7010995080F191FFE01A9
+:10346000EFCFC801DF91CF911F910F91FF90EF90A7
+:103470000895DC01ED91FC910190F081E02D09941B
+:103480000F931F93CF93DF93EC016DE00E94391AE5
+:103490008C016AE0CE010E94391A800F911FDF91E2
+:1034A000CF911F910F9108950F931F93CF93DF93A7
+:1034B000EC010E94161A8C01CE010E94401A800F66
+:1034C000911FDF91CF911F910F9108958F929F923D
+:1034D000AF92BF92CF92DF92EF92FF920F931F9322
+:1034E000CF93DF93CDB7DEB7A1970FB6F894DEBFC9
+:1034F0000FBECDBF6C01142FE52FCB01022F19A2F7
+:10350000223008F40AE07E0121E2E20EF11C802E56
+:10351000912CA12CB12C612F7E2FA50194010E942A
+:10352000D71B029F1019112481E0E81AF1081A3004
+:1035300014F4105D01C0195CF7011083122FE32F02
+:10354000CA01232B242B252B31F7B701C6010E947A
+:10355000011AA1960FB6F894DEBF0FBECDBFDF9162
+:10356000CF911F910F91FF90EF90DF90CF90BF9080
+:10357000AF909F908F9008952115310541F4DC01A3
+:10358000ED91FC910190F081E02D642F09940C9451
+:10359000661A9A01AB0160E070E00C94BC1ACF92FD
+:1035A000DF92EF92FF920F931F93CF93DF9321153A
+:1035B000310581F4DC01ED91FC910190F081E02D69
+:1035C000642FDF91CF911F910F91FF90EF90DF90CB
+:1035D000CF9009942A30310501F577FF1DC06A01AB
+:1035E0007B01EC016DE20E94391A8C0144275527BA
+:1035F000BA014C195D096E097F092AE0CE010E94CB
+:10360000661A800F911FDF91CF911F910F91FF904C
+:10361000EF90DF90CF9008952AE0DF91CF911F9136
+:103620000F91FF90EF90DF90CF900C94661A9A0163
+:10363000AB01770F660B770B0C94CF1A4F925F920A
+:103640006F927F92AF92BF92CF92DF92EF92FF92F2
+:103650000F931F93CF93DF93CDB7DEB729013A01C4
+:103660009B01AC01241935094609570989899A89B2
+:10367000AB89BC89BC01CD016A197B098C099D0904
+:103680000E94931BA801970124193509460957097F
+:103690000E94F91BCA01B9016A0D7B1D8C1D9D1D7D
+:1036A000DF91CF911F910F91FF90EF90DF90CF901E
+:1036B000BF90AF907F906F905F904F900895089566
+:1036C00061E08AE00E94811961E08AE00E94451968
+:1036D0008CB580618CBD8CB580648CBD61E08DE063
+:1036E0000E94451961E08BE00C944519811103C0DB
+:1036F0008CB5806202C08CB58F7D8CBD08959CB561
+:10370000937F892B8CBD08959CB59C7F282F2370B7
+:10371000922B9CBD2DB582FB992790F9822F8E7F2D
+:10372000892B8DBD0895DB018F939F930E94181CF8
+:10373000BF91AF91A29F800D911DA39F900DB29F4D
+:10374000900D11240895991B79E004C0991F9617D4
+:1037500008F0961B881F7A95C9F780950895AA1BD3
+:10376000BB1B51E107C0AA1FBB1FA617B70710F06C
+:10377000A61BB70B881F991F5A95A9F7809590959E
+:10378000BC01CD01089597FB072E16F4009407D0D5
+:1037900077FD09D00E94AF1B07FC05D03EF4909541
+:1037A00081959F4F0895709561957F4F0895A1E28F
+:1037B0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1FAB
+:1037C000FF1FA217B307E407F50720F0A21BB30BF6
+:1037D000E40BF50B661F771F881F991F1A9469F772
+:1037E00060957095809590959B01AC01BD01CF01CE
+:1037F0000895052E97FB1EF400940E94101C57FD9F
+:1038000007D00E94D71B07FC03D04EF40C94101C69
+:1038100050954095309521953F4F4F4F5F4F0895FC
+:1038200090958095709561957F4F8F4F9F4F08952C
+:103830000E94291CA59F900DB49F900DA49F800D00
+:10384000911D11240895EE0FFF1F0590F491E02DB6
+:103850000994A29FB001B39FC001A39F700D811D69
+:103860001124911DB29F700D811D1124911D089589
+:103870000E94D41C88F09F5798F0B92F9927B75110
+:10388000B0F0E1F0660F771F881F991F1AF0BA9504
+:10389000C9F714C0B13091F00E94EE1CB1E0089558
+:1038A0000C94EE1C672F782F8827B85F39F0B93F4A
+:1038B000CCF3869577956795B395D9F73EF49095B7
+:1038C0008095709561957F4F8F4F9F4F0895E89435
+:1038D00009C097FB3EF490958095709561957F4F58
+:1038E0008F4F9F4F9923A9F0F92F96E9BB27939506
+:1038F000F695879577956795B795F111F8CFFAF416
+:10390000BB0F11F460FF1BC06F5F7F4F8F4F9F4F46
+:1039100016C0882311F096E911C0772321F09EE8A4
+:10392000872F762F05C0662371F096E8862F70E00A
+:1039300060E02AF09A95660F771F881FDAF7880FE4
+:103940009695879597F9089597F99F6780E870E0B5
+:1039500060E008959FEF80EC089500240A94161605
+:10396000170618060906089500240A94121613066D
+:10397000140605060895092E0394000C11F48823FB
+:1039800052F0BB0F40F4BF2B11F460FF04C06F5F17
+:103990007F4F8F4F9F4F089557FD9058440F551FED
+:1039A00059F05F3F71F04795880F97FB991F61F0C1
+:1039B0009F3F79F087950895121613061406551F38
+:1039C000F2CF4695F1DF08C0161617061806991FA4
+:1039D000F1CF86957105610508940895E894BB2799
+:1039E00066277727CB0197F908950E94081D0C944C
+:1039F000BB1C0E94AD1C38F00E94B41C20F0952323
+:103A000011F00C94A41C0C94AA1C11240C94EF1C0F
+:103A10000E94CC1C70F3959FC1F3950F50E0551F89
+:103A2000629FF001729FBB27F00DB11D639FAA2713
+:103A3000F00DB11DAA1F649F6627B00DA11D661F62
+:103A4000829F2227B00DA11D621F739FB00DA11D83
+:103A5000621F839FA00D611D221F749F3327A00D3D
+:103A6000611D231F849F600D211D822F762F6A2FD9
+:103A700011249F5750409AF0F1F088234AF0EE0F3E
+:103A8000FF1FBB1F661F771F881F91505040A9F76B
+:103A90009E3F510580F00C94A41C0C94EF1C5F3FDA
+:103AA000E4F3983ED4F3869577956795B795F795A7
+:103AB000E7959F5FC1F7FE2B880F911D969587951F
+:103AC00097F90895DC0101C06D9341505040E0F733
+:103AD0000895FB01DC014150504048F001900D92E7
+:103AE0000020C9F701C01D9241505040E0F70895F1
+:043AF000F894FFCF78
+:103AF4000101001923000000008602000000005F9D
+:103B04001B00000000000000000000000000000096
+:103B140000D7060000EC060000000000005B040073
+:103B2400009E0400007C040000BF040000000000AC
+:103B34000000000000000000000000000000000081
+:103B44000000000000000000005C0700002D0700DA
+:103B5400000000000000000000520ED9194C4F4133
+:043B64004445520082
:040000030000046A8B
:00000001FF
diff --git a/Exe/POCKET.MAP b/Exe/POCKET.MAP
index b3da1f5..14c0278 100644
--- a/Exe/POCKET.MAP
+++ b/Exe/POCKET.MAP
@@ -208,6 +208,18 @@ Discarded input sections
.text 0x0000000000000000 0x0 Obj/HumanPlayerBtn.o
.data 0x0000000000000000 0x0 Obj/HumanPlayerBtn.o
.bss 0x0000000000000000 0x0 Obj/HumanPlayerBtn.o
+ .text 0x0000000000000000 0x0 Obj/Coordinates.o
+ .data 0x0000000000000000 0x0 Obj/Coordinates.o
+ .bss 0x0000000000000000 0x0 Obj/Coordinates.o
+ .text._ZN11CoordinatesC2Ejj
+ 0x0000000000000000 0xc Obj/Coordinates.o
+ .text._ZNK11Coordinates4getXEv
+ 0x0000000000000000 0x8 Obj/Coordinates.o
+ .text._ZNK11Coordinates4getYEv
+ 0x0000000000000000 0x8 Obj/Coordinates.o
+ .text._ZNK11CoordinatesplERKS_
+ 0x0000000000000000 0x2c Obj/Coordinates.o
+ .comment 0x0000000000000000 0x12 Obj/Coordinates.o
.text 0x0000000000000000 0x0 ../lib/libgamebuino.a(Buttons.o)
.data 0x0000000000000000 0x0 ../lib/libgamebuino.a(Buttons.o)
.bss 0x0000000000000000 0x0 ../lib/libgamebuino.a(Buttons.o)
@@ -1038,6 +1050,7 @@ LOAD Obj/Unit.o
LOAD Obj/Menu.o
LOAD Obj/Cursor.o
LOAD Obj/HumanPlayerBtn.o
+LOAD Obj/Coordinates.o
LOAD ../lib/libgamebuino.a
LOAD ../lib/libarduino.a
LOAD /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a
@@ -1146,7 +1159,7 @@ END GROUP
.rela.plt
*(.rela.plt)
-.text 0x0000000000000000 0x389e
+.text 0x0000000000000000 0x3af4
*(.vectors)
.vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000000 __vectors
@@ -1329,490 +1342,517 @@ END GROUP
0x000000000000050c 0xa0 Obj/HumanPlayer.o
0x000000000000050c _ZN11HumanPlayer11drawHandlerEv
.text._ZN11HumanPlayerC2EPKcRK6Camera
- 0x00000000000005ac 0x56 Obj/HumanPlayer.o
+ 0x00000000000005ac 0x5c Obj/HumanPlayer.o
0x00000000000005ac _ZN11HumanPlayerC2EPKcRK6Camera
0x00000000000005ac _ZN11HumanPlayerC1EPKcRK6Camera
.text._ZN11HumanPlayer7handlerEv
- 0x0000000000000602 0x22 Obj/HumanPlayer.o
- 0x0000000000000602 _ZN11HumanPlayer7handlerEv
+ 0x0000000000000608 0x22 Obj/HumanPlayer.o
+ 0x0000000000000608 _ZN11HumanPlayer7handlerEv
.text._ZN11HumanPlayer10selectUnitEv
- 0x0000000000000624 0xba Obj/HumanPlayer.o
- 0x0000000000000624 _ZN11HumanPlayer10selectUnitEv
+ 0x000000000000062a 0xba Obj/HumanPlayer.o
+ 0x000000000000062a _ZN11HumanPlayer10selectUnitEv
.text._ZN6SpriteC2EPKhbhh
- 0x00000000000006de 0x16 Obj/Sprite.o
- 0x00000000000006de _ZN6SpriteC2EPKhbhh
- 0x00000000000006de _ZN6SpriteC1EPKhbhh
+ 0x00000000000006e4 0x16 Obj/Sprite.o
+ 0x00000000000006e4 _ZN6SpriteC2EPKhbhh
+ 0x00000000000006e4 _ZN6SpriteC1EPKhbhh
.text._ZN6Sprite4drawEv
- 0x00000000000006f4 0x6e Obj/Sprite.o
- 0x00000000000006f4 _ZN6Sprite4drawEv
+ 0x00000000000006fa 0x76 Obj/Sprite.o
+ 0x00000000000006fa _ZN6Sprite4drawEv
+ .text._ZN6Sprite8getWidthEPKh
+ 0x0000000000000770 0x6 Obj/Sprite.o
+ 0x0000000000000770 _ZN6Sprite8getWidthEPKh
+ .text._ZN6Sprite9getHeightEPKh
+ 0x0000000000000776 0x8 Obj/Sprite.o
+ 0x0000000000000776 _ZN6Sprite9getHeightEPKh
.text._ZN6Sprite6setPosEhh
- 0x0000000000000762 0x8 Obj/Sprite.o
- 0x0000000000000762 _ZN6Sprite6setPosEhh
+ 0x000000000000077e 0x8 Obj/Sprite.o
+ 0x000000000000077e _ZN6Sprite6setPosEhh
.text._ZN6PlayerC2EPKc
- 0x000000000000076a 0x8c Obj/Player.o
- 0x000000000000076a _ZN6PlayerC1EPKc
- 0x000000000000076a _ZN6PlayerC2EPKc
+ 0x0000000000000786 0x8c Obj/Player.o
+ 0x0000000000000786 _ZN6PlayerC1EPKc
+ 0x0000000000000786 _ZN6PlayerC2EPKc
.text._ZN6Player11handleUnitsEv
- 0x00000000000007f6 0x2e Obj/Player.o
- 0x00000000000007f6 _ZN6Player11handleUnitsEv
+ 0x0000000000000812 0x2e Obj/Player.o
+ 0x0000000000000812 _ZN6Player11handleUnitsEv
.text._ZN6Player9drawUnitsEv
- 0x0000000000000824 0x2e Obj/Player.o
- 0x0000000000000824 _ZN6Player9drawUnitsEv
+ 0x0000000000000840 0x2e Obj/Player.o
+ 0x0000000000000840 _ZN6Player9drawUnitsEv
.text._ZN6CameraC2Ev
- 0x0000000000000852 0x10 Obj/Camera.o
- 0x0000000000000852 _ZN6CameraC1Ev
- 0x0000000000000852 _ZN6CameraC2Ev
- .text._ZNK6Camera4getXEh
- 0x0000000000000862 0xa Obj/Camera.o
- 0x0000000000000862 _ZNK6Camera4getXEh
- .text._ZNK6Camera4getYEh
- 0x000000000000086c 0xa Obj/Camera.o
- 0x000000000000086c _ZNK6Camera4getYEh
+ 0x000000000000086e 0x10 Obj/Camera.o
+ 0x000000000000086e _ZN6CameraC1Ev
+ 0x000000000000086e _ZN6CameraC2Ev
+ .text._ZNK6Camera8getRealXEi
+ 0x000000000000087e 0xc Obj/Camera.o
+ 0x000000000000087e _ZNK6Camera8getRealXEi
+ .text._ZNK6Camera8getRealYEi
+ 0x000000000000088a 0xc Obj/Camera.o
+ 0x000000000000088a _ZNK6Camera8getRealYEi
+ .text._ZNK6Camera4getXEj
+ 0x0000000000000896 0x10 Obj/Camera.o
+ 0x0000000000000896 _ZNK6Camera4getXEj
+ .text._ZNK6Camera4getYEj
+ 0x00000000000008a6 0x10 Obj/Camera.o
+ 0x00000000000008a6 _ZNK6Camera4getYEj
.text._ZN6Camera16onLeftBtnPressedER6Cursor
- 0x0000000000000876 0x42 Obj/Camera.o
- 0x0000000000000876 _ZN6Camera16onLeftBtnPressedER6Cursor
+ 0x00000000000008b6 0x42 Obj/Camera.o
+ 0x00000000000008b6 _ZN6Camera16onLeftBtnPressedER6Cursor
.text._ZN6Camera17onRightBtnPressedER6Cursor
- 0x00000000000008b8 0x44 Obj/Camera.o
- 0x00000000000008b8 _ZN6Camera17onRightBtnPressedER6Cursor
+ 0x00000000000008f8 0x44 Obj/Camera.o
+ 0x00000000000008f8 _ZN6Camera17onRightBtnPressedER6Cursor
.text._ZN6Camera14onUpBtnPressedER6Cursor
- 0x00000000000008fc 0x42 Obj/Camera.o
- 0x00000000000008fc _ZN6Camera14onUpBtnPressedER6Cursor
+ 0x000000000000093c 0x42 Obj/Camera.o
+ 0x000000000000093c _ZN6Camera14onUpBtnPressedER6Cursor
.text._ZN6Camera16onDownBtnPressedER6Cursor
- 0x000000000000093e 0x44 Obj/Camera.o
- 0x000000000000093e _ZN6Camera16onDownBtnPressedER6Cursor
+ 0x000000000000097e 0x44 Obj/Camera.o
+ 0x000000000000097e _ZN6Camera16onDownBtnPressedER6Cursor
.text._ZNK6Camera8isLockedEv
- 0x0000000000000982 0x6 Obj/Camera.o
- 0x0000000000000982 _ZNK6Camera8isLockedEv
+ 0x00000000000009c2 0x6 Obj/Camera.o
+ 0x00000000000009c2 _ZNK6Camera8isLockedEv
.text._ZN8BaseUnitC2Ev
- 0x0000000000000988 0x14 Obj/BaseUnit.o
- 0x0000000000000988 _ZN8BaseUnitC1Ev
- 0x0000000000000988 _ZN8BaseUnitC2Ev
+ 0x00000000000009c8 0x14 Obj/BaseUnit.o
+ 0x00000000000009c8 _ZN8BaseUnitC1Ev
+ 0x00000000000009c8 _ZN8BaseUnitC2Ev
.text._ZN8BaseUnit6createEjj
- 0x000000000000099c 0x10 Obj/BaseUnit.o
- 0x000000000000099c _ZN8BaseUnit6createEjj
+ 0x00000000000009dc 0x10 Obj/BaseUnit.o
+ 0x00000000000009dc _ZN8BaseUnit6createEjj
.text._ZN8BaseUnit7handlerEv
- 0x00000000000009ac 0x2 Obj/BaseUnit.o
- 0x00000000000009ac _ZN8BaseUnit7handlerEv
+ 0x00000000000009ec 0x2 Obj/BaseUnit.o
+ 0x00000000000009ec _ZN8BaseUnit7handlerEv
+ .text._ZN8BaseUnit9setCameraEPK6Camera
+ 0x00000000000009ee 0xa Obj/BaseUnit.o
+ 0x00000000000009ee _ZN8BaseUnit9setCameraEPK6Camera
.text._ZN8BaseUnit11drawHandlerEPKh
- 0x00000000000009ae 0x2a Obj/BaseUnit.o
- 0x00000000000009ae _ZN8BaseUnit11drawHandlerEPKh
+ 0x00000000000009f8 0x8a Obj/BaseUnit.o
+ 0x00000000000009f8 _ZN8BaseUnit11drawHandlerEPKh
.text._ZN8BaseUnit7isAliveEv
- 0x00000000000009d8 0x6 Obj/BaseUnit.o
- 0x00000000000009d8 _ZN8BaseUnit7isAliveEv
+ 0x0000000000000a82 0x6 Obj/BaseUnit.o
+ 0x0000000000000a82 _ZN8BaseUnit7isAliveEv
.text._ZN8BaseUnit10isSelectedEv
- 0x00000000000009de 0x6 Obj/BaseUnit.o
- 0x00000000000009de _ZN8BaseUnit10isSelectedEv
+ 0x0000000000000a88 0x6 Obj/BaseUnit.o
+ 0x0000000000000a88 _ZN8BaseUnit10isSelectedEv
.text._ZN8BaseUnit11setSelectedEb
- 0x00000000000009e4 0x6 Obj/BaseUnit.o
- 0x00000000000009e4 _ZN8BaseUnit11setSelectedEb
+ 0x0000000000000a8e 0x6 Obj/BaseUnit.o
+ 0x0000000000000a8e _ZN8BaseUnit11setSelectedEb
.text._ZN8BaseUnit4getXEv
- 0x00000000000009ea 0x8 Obj/BaseUnit.o
- 0x00000000000009ea _ZN8BaseUnit4getXEv
+ 0x0000000000000a94 0x8 Obj/BaseUnit.o
+ 0x0000000000000a94 _ZN8BaseUnit4getXEv
.text._ZN8BaseUnit4getYEv
- 0x00000000000009f2 0x8 Obj/BaseUnit.o
- 0x00000000000009f2 _ZN8BaseUnit4getYEv
+ 0x0000000000000a9c 0x8 Obj/BaseUnit.o
+ 0x0000000000000a9c _ZN8BaseUnit4getYEv
.text._ZN4UnitC2ENS_7tUnitIDE
- 0x00000000000009fa 0x1e Obj/Unit.o
- 0x00000000000009fa _ZN4UnitC2ENS_7tUnitIDE
- 0x00000000000009fa _ZN4UnitC1ENS_7tUnitIDE
+ 0x0000000000000aa4 0x2a Obj/Unit.o
+ 0x0000000000000aa4 _ZN4UnitC2ENS_7tUnitIDE
+ 0x0000000000000aa4 _ZN4UnitC1ENS_7tUnitIDE
.text._ZN4Unit6createENS_7tUnitIDEjj
- 0x0000000000000a18 0x5c Obj/Unit.o
- 0x0000000000000a18 _ZN4Unit6createENS_7tUnitIDEjj
+ 0x0000000000000ace 0x5c Obj/Unit.o
+ 0x0000000000000ace _ZN4Unit6createENS_7tUnitIDEjj
+ .text._ZN4Unit6moveToEjj
+ 0x0000000000000b2a 0x14 Obj/Unit.o
+ 0x0000000000000b2a _ZN4Unit6moveToEjj
.text._ZN4Unit7handlerEv
- 0x0000000000000a74 0x4 Obj/Unit.o
- 0x0000000000000a74 _ZN4Unit7handlerEv
+ 0x0000000000000b3e 0x54 Obj/Unit.o
+ 0x0000000000000b3e _ZN4Unit7handlerEv
.text._ZN4Unit11drawHandlerEv
- 0x0000000000000a78 0x9a Obj/Unit.o
- 0x0000000000000a78 _ZN4Unit11drawHandlerEv
+ 0x0000000000000b92 0xb8 Obj/Unit.o
+ 0x0000000000000b92 _ZN4Unit11drawHandlerEv
.text._ZL20MainMenuSinglePlayerv
- 0x0000000000000b12 0x9e Obj/Menu.o
+ 0x0000000000000c4a 0xaa Obj/Menu.o
.text._Z8MainMenuv
- 0x0000000000000bb0 0x24 Obj/Menu.o
- 0x0000000000000bb0 _Z8MainMenuv
- .text._ZN6CursorC2Ev
- 0x0000000000000bd4 0xc Obj/Cursor.o
- 0x0000000000000bd4 _ZN6CursorC1Ev
- 0x0000000000000bd4 _ZN6CursorC2Ev
+ 0x0000000000000cf4 0x24 Obj/Menu.o
+ 0x0000000000000cf4 _Z8MainMenuv
+ .text._ZN6CursorC2ERK6Camera
+ 0x0000000000000d18 0x10 Obj/Cursor.o
+ 0x0000000000000d18 _ZN6CursorC1ERK6Camera
+ 0x0000000000000d18 _ZN6CursorC2ERK6Camera
.text._ZN6Cursor4moveEaa
- 0x0000000000000be0 0x3c Obj/Cursor.o
- 0x0000000000000be0 _ZN6Cursor4moveEaa
+ 0x0000000000000d28 0x3c Obj/Cursor.o
+ 0x0000000000000d28 _ZN6Cursor4moveEaa
+ .text._ZN6Cursor10getScreenXEv
+ 0x0000000000000d64 0x6 Obj/Cursor.o
+ 0x0000000000000d64 _ZN6Cursor10getScreenXEv
+ .text._ZN6Cursor10getScreenYEv
+ 0x0000000000000d6a 0x6 Obj/Cursor.o
+ 0x0000000000000d6a _ZN6Cursor10getScreenYEv
.text._ZN6Cursor4getXEv
- 0x0000000000000c1c 0x6 Obj/Cursor.o
- 0x0000000000000c1c _ZN6Cursor4getXEv
+ 0x0000000000000d70 0x10 Obj/Cursor.o
+ 0x0000000000000d70 _ZN6Cursor4getXEv
.text._ZN6Cursor4getYEv
- 0x0000000000000c22 0x6 Obj/Cursor.o
- 0x0000000000000c22 _ZN6Cursor4getYEv
+ 0x0000000000000d80 0x10 Obj/Cursor.o
+ 0x0000000000000d80 _ZN6Cursor4getYEv
.text._ZN6Cursor11isXCenteredEv
- 0x0000000000000c28 0xe Obj/Cursor.o
- 0x0000000000000c28 _ZN6Cursor11isXCenteredEv
+ 0x0000000000000d90 0xe Obj/Cursor.o
+ 0x0000000000000d90 _ZN6Cursor11isXCenteredEv
.text._ZN6Cursor11isYCenteredEv
- 0x0000000000000c36 0x10 Obj/Cursor.o
- 0x0000000000000c36 _ZN6Cursor11isYCenteredEv
- .text._ZN11HumanPlayer13onBBtnPressedEv
- 0x0000000000000c46 0x2 Obj/HumanPlayerBtn.o
- 0x0000000000000c46 _ZN11HumanPlayer13onBBtnPressedEv
+ 0x0000000000000d9e 0x10 Obj/Cursor.o
+ 0x0000000000000d9e _ZN6Cursor11isYCenteredEv
.text._ZN11HumanPlayer14onABtnReleasedEv
- 0x0000000000000c48 0x2a Obj/HumanPlayerBtn.o
- 0x0000000000000c48 _ZN11HumanPlayer14onABtnReleasedEv
+ 0x0000000000000dae 0x2a Obj/HumanPlayerBtn.o
+ 0x0000000000000dae _ZN11HumanPlayer14onABtnReleasedEv
+ .text._ZN11HumanPlayer14onBBtnReleasedEv
+ 0x0000000000000dd8 0x82 Obj/HumanPlayerBtn.o
+ 0x0000000000000dd8 _ZN11HumanPlayer14onBBtnReleasedEv
+ .text._ZN11HumanPlayer13onBBtnPressedEv
+ 0x0000000000000e5a 0x5e Obj/HumanPlayerBtn.o
+ 0x0000000000000e5a _ZN11HumanPlayer13onBBtnPressedEv
.text._ZN11HumanPlayer13onABtnPressedEv
- 0x0000000000000c72 0x3c Obj/HumanPlayerBtn.o
- 0x0000000000000c72 _ZN11HumanPlayer13onABtnPressedEv
+ 0x0000000000000eb8 0x3c Obj/HumanPlayerBtn.o
+ 0x0000000000000eb8 _ZN11HumanPlayer13onABtnPressedEv
.text._ZN11HumanPlayer26playerButtonPressedHandlerEj
- 0x0000000000000cae 0x50 Obj/HumanPlayerBtn.o
- 0x0000000000000cae _ZN11HumanPlayer26playerButtonPressedHandlerEj
+ 0x0000000000000ef4 0x50 Obj/HumanPlayerBtn.o
+ 0x0000000000000ef4 _ZN11HumanPlayer26playerButtonPressedHandlerEj
.text._ZN11HumanPlayer26cameraButtonPressedHandlerEj
- 0x0000000000000cfe 0xa0 Obj/HumanPlayerBtn.o
- 0x0000000000000cfe _ZN11HumanPlayer26cameraButtonPressedHandlerEj
+ 0x0000000000000f44 0xa0 Obj/HumanPlayerBtn.o
+ 0x0000000000000f44 _ZN11HumanPlayer26cameraButtonPressedHandlerEj
.text._ZN11HumanPlayer27playerButtonReleasedHandlerEj
- 0x0000000000000d9e 0x50 Obj/HumanPlayerBtn.o
- 0x0000000000000d9e _ZN11HumanPlayer27playerButtonReleasedHandlerEj
+ 0x0000000000000fe4 0x50 Obj/HumanPlayerBtn.o
+ 0x0000000000000fe4 _ZN11HumanPlayer27playerButtonReleasedHandlerEj
.text._ZN11HumanPlayer13buttonHandlerEv
- 0x0000000000000dee 0x46 Obj/HumanPlayerBtn.o
- 0x0000000000000dee _ZN11HumanPlayer13buttonHandlerEv
+ 0x0000000000001034 0x56 Obj/HumanPlayerBtn.o
+ 0x0000000000001034 _ZN11HumanPlayer13buttonHandlerEv
.text._ZN7Buttons5beginEv
- 0x0000000000000e34 0x20 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000000e34 _ZN7Buttons5beginEv
+ 0x000000000000108a 0x20 ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000108a _ZN7Buttons5beginEv
.text._ZN7Buttons6updateEv
- 0x0000000000000e54 0x5a ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000000e54 _ZN7Buttons6updateEv
+ 0x00000000000010aa 0x5a ../lib/libgamebuino.a(Buttons.o)
+ 0x00000000000010aa _ZN7Buttons6updateEv
.text._ZN7Buttons7pressedEh
- 0x0000000000000eae 0x12 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000000eae _ZN7Buttons7pressedEh
+ 0x0000000000001104 0x12 ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000001104 _ZN7Buttons7pressedEh
.text._ZN7Buttons8releasedEh
- 0x0000000000000ec0 0x12 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000000ec0 _ZN7Buttons8releasedEh
+ 0x0000000000001116 0x12 ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000001116 _ZN7Buttons8releasedEh
.text._ZN7Buttons6repeatEhh
- 0x0000000000000ed2 0x30 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000000ed2 _ZN7Buttons6repeatEhh
+ 0x0000000000001128 0x30 ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000001128 _ZN7Buttons6repeatEhh
.text._ZN7Buttons8timeHeldEh
- 0x0000000000000f02 0x10 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000000f02 _ZN7Buttons8timeHeldEh
+ 0x0000000000001158 0x10 ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000001158 _ZN7Buttons8timeHeldEh
.text._ZN8SPIClass8transferEh
- 0x0000000000000f12 0xc ../lib/libgamebuino.a(Display.o)
- 0x0000000000000f12 _ZN8SPIClass8transferEh
+ 0x0000000000001168 0xc ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001168 _ZN8SPIClass8transferEh
.text._ZN7Display9drawPixelEaa
- 0x0000000000000f1e 0xb8 ../lib/libgamebuino.a(Display.o)
- 0x0000000000000f1e _ZN7Display9drawPixelEaa
+ 0x0000000000001174 0xb8 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001174 _ZN7Display9drawPixelEaa
.text._ZN7Display7commandEh
- 0x0000000000000fd6 0x3c ../lib/libgamebuino.a(Display.o)
- 0x0000000000000fd6 _ZN7Display7commandEh
+ 0x000000000000122c 0x3c ../lib/libgamebuino.a(Display.o)
+ 0x000000000000122c _ZN7Display7commandEh
.text._ZN7Display5clearEv
- 0x0000000000001012 0x22 ../lib/libgamebuino.a(Display.o)
- 0x0000000000001012 _ZN7Display5clearEv
+ 0x0000000000001268 0x22 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001268 _ZN7Display5clearEv
.text._ZN7Display6updateEv
- 0x0000000000001034 0x8a ../lib/libgamebuino.a(Display.o)
- 0x0000000000001034 _ZN7Display6updateEv
+ 0x000000000000128a 0x8a ../lib/libgamebuino.a(Display.o)
+ 0x000000000000128a _ZN7Display6updateEv
.text._ZN7Display8setColorEa
- 0x00000000000010be 0x8 ../lib/libgamebuino.a(Display.o)
- 0x00000000000010be _ZN7Display8setColorEa
+ 0x0000000000001314 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001314 _ZN7Display8setColorEa
.text._ZN7Display8setColorEaa
- 0x00000000000010c6 0x8 ../lib/libgamebuino.a(Display.o)
- 0x00000000000010c6 _ZN7Display8setColorEaa
+ 0x000000000000131c 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000131c _ZN7Display8setColorEaa
.text._ZN7Display13drawFastVLineEaaa
- 0x00000000000010ce 0x38 ../lib/libgamebuino.a(Display.o)
- 0x00000000000010ce _ZN7Display13drawFastVLineEaaa
+ 0x0000000000001324 0x38 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001324 _ZN7Display13drawFastVLineEaaa
.text._ZN7Display13drawFastHLineEaaa
- 0x0000000000001106 0x38 ../lib/libgamebuino.a(Display.o)
- 0x0000000000001106 _ZN7Display13drawFastHLineEaaa
+ 0x000000000000135c 0x38 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000135c _ZN7Display13drawFastHLineEaaa
.text._ZN7Display8drawRectEaaaa
- 0x000000000000113e 0x50 ../lib/libgamebuino.a(Display.o)
- 0x000000000000113e _ZN7Display8drawRectEaaaa
+ 0x0000000000001394 0x50 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001394 _ZN7Display8drawRectEaaaa
.text._ZN7Display8fillRectEaaaa
- 0x000000000000118e 0x52 ../lib/libgamebuino.a(Display.o)
- 0x000000000000118e _ZN7Display8fillRectEaaaa
+ 0x00000000000013e4 0x52 ../lib/libgamebuino.a(Display.o)
+ 0x00000000000013e4 _ZN7Display8fillRectEaaaa
.text._ZN7Display16drawCircleHelperEaaah
- 0x00000000000011e0 0xfc ../lib/libgamebuino.a(Display.o)
- 0x00000000000011e0 _ZN7Display16drawCircleHelperEaaah
+ 0x0000000000001436 0xfc ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001436 _ZN7Display16drawCircleHelperEaaah
.text._ZN7Display16fillCircleHelperEaaaha
- 0x00000000000012dc 0xcc ../lib/libgamebuino.a(Display.o)
- 0x00000000000012dc _ZN7Display16fillCircleHelperEaaaha
+ 0x0000000000001532 0xcc ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001532 _ZN7Display16fillCircleHelperEaaaha
.text._ZN7Display13drawRoundRectEaaaaa
- 0x00000000000013a8 0xbe ../lib/libgamebuino.a(Display.o)
- 0x00000000000013a8 _ZN7Display13drawRoundRectEaaaaa
+ 0x00000000000015fe 0xbe ../lib/libgamebuino.a(Display.o)
+ 0x00000000000015fe _ZN7Display13drawRoundRectEaaaaa
.text._ZN7Display13fillRoundRectEaaaaa
- 0x0000000000001466 0x6e ../lib/libgamebuino.a(Display.o)
- 0x0000000000001466 _ZN7Display13fillRoundRectEaaaaa
+ 0x00000000000016bc 0x6e ../lib/libgamebuino.a(Display.o)
+ 0x00000000000016bc _ZN7Display13fillRoundRectEaaaaa
.text._ZN7Display10drawBitmapEaaPKh
- 0x00000000000014d4 0x288 ../lib/libgamebuino.a(Display.o)
- 0x00000000000014d4 _ZN7Display10drawBitmapEaaPKh
+ 0x000000000000172a 0x288 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000172a _ZN7Display10drawBitmapEaaPKh
.text._ZN7Display7setFontEPKh
- 0x000000000000175c 0x28 ../lib/libgamebuino.a(Display.o)
- 0x000000000000175c _ZN7Display7setFontEPKh
+ 0x00000000000019b2 0x28 ../lib/libgamebuino.a(Display.o)
+ 0x00000000000019b2 _ZN7Display7setFontEPKh
.text._ZN7Display5beginEaaaaa
- 0x0000000000001784 0x180 ../lib/libgamebuino.a(Display.o)
- 0x0000000000001784 _ZN7Display5beginEaaaaa
+ 0x00000000000019da 0x180 ../lib/libgamebuino.a(Display.o)
+ 0x00000000000019da _ZN7Display5beginEaaaaa
.text._ZN7Display8drawCharEaahh
- 0x0000000000001904 0x14a ../lib/libgamebuino.a(Display.o)
- 0x0000000000001904 _ZN7Display8drawCharEaahh
+ 0x0000000000001b5a 0x14a ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001b5a _ZN7Display8drawCharEaahh
.text._ZN7Display5writeEh
- 0x0000000000001a4e 0x66 ../lib/libgamebuino.a(Display.o)
- 0x0000000000001a4e _ZN7Display5writeEh
+ 0x0000000000001ca4 0x66 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001ca4 _ZN7Display5writeEh
.text._ZN9Gamebuino11updatePopupEv
- 0x0000000000001ab4 0xe0 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000001ab4 _ZN9Gamebuino11updatePopupEv
+ 0x0000000000001d0a 0xe0 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001d0a _ZN9Gamebuino11updatePopupEv
.text._ZN9Gamebuino14displayBatteryEv
- 0x0000000000001b94 0x168 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000001b94 _ZN9Gamebuino14displayBatteryEv
+ 0x0000000000001dea 0x168 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001dea _ZN9Gamebuino14displayBatteryEv
.text._ZN9Gamebuino6updateEv
- 0x0000000000001cfc 0x176 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000001cfc _ZN9Gamebuino6updateEv
+ 0x0000000000001f52 0x176 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001f52 _ZN9Gamebuino6updateEv
.text._ZN9Gamebuino4menuEPKPKch
- 0x0000000000001e72 0x29c ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000001e72 _ZN9Gamebuino4menuEPKPKch
+ 0x00000000000020c8 0x29c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000020c8 _ZN9Gamebuino4menuEPKPKch
.text._ZN9Gamebuino10changeGameEv
- 0x000000000000210e 0x7a ../lib/libgamebuino.a(Gamebuino.o)
- 0x000000000000210e _ZN9Gamebuino10changeGameEv
+ 0x0000000000002364 0x7a ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000002364 _ZN9Gamebuino10changeGameEv
.text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
- 0x0000000000002188 0x27c ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000002188 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
+ 0x00000000000023de 0x27c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000023de _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
.text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
- 0x0000000000002404 0x8 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000002404 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
+ 0x000000000000265a 0x8 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000265a _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
.text._ZN9Gamebuino17settingsAvailableEv
- 0x000000000000240c 0x14 ../lib/libgamebuino.a(Gamebuino.o)
- 0x000000000000240c _ZN9Gamebuino17settingsAvailableEv
+ 0x0000000000002662 0x14 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000002662 _ZN9Gamebuino17settingsAvailableEv
.text._ZN9Gamebuino12readSettingsEv
- 0x0000000000002420 0xde ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000002420 _ZN9Gamebuino12readSettingsEv
+ 0x0000000000002676 0xde ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000002676 _ZN9Gamebuino12readSettingsEv
.text._ZN9Gamebuino5beginEv
- 0x00000000000024fe 0xb6 ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000024fe _ZN9Gamebuino5beginEv
+ 0x0000000000002754 0xb6 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000002754 _ZN9Gamebuino5beginEv
.text._ZN9Gamebuino14getDefaultNameEPc
- 0x00000000000025b4 0x2c ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000025b4 _ZN9Gamebuino14getDefaultNameEPc
+ 0x000000000000280a 0x2c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000280a _ZN9Gamebuino14getDefaultNameEPc
.text._ZN5Sound7commandEhhah.part.0
- 0x00000000000025e0 0x74 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002836 0x74 ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound5beginEv
- 0x0000000000002654 0x6a ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002654 _ZN5Sound5beginEv
+ 0x00000000000028aa 0x6a ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000028aa _ZN5Sound5beginEv
.text._ZN5Sound7commandEhhah
- 0x00000000000026be 0x62 ../lib/libgamebuino.a(Sound.o)
- 0x00000000000026be _ZN5Sound7commandEhhah
+ 0x0000000000002914 0x62 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002914 _ZN5Sound7commandEhhah
.text._ZN5Sound8playNoteEhhh
- 0x0000000000002720 0x24 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002720 _ZN5Sound8playNoteEhhh
+ 0x0000000000002976 0x24 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002976 _ZN5Sound8playNoteEhhh
.text._ZN5Sound12updateOutputEv
- 0x0000000000002744 0x16 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002744 _ZN5Sound12updateOutputEv
+ 0x000000000000299a 0x16 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000299a _ZN5Sound12updateOutputEv
.text._ZN5Sound8stopNoteEh
- 0x000000000000275a 0x22 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000275a _ZN5Sound8stopNoteEh
+ 0x00000000000029b0 0x22 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000029b0 _ZN5Sound8stopNoteEh
.text._ZN5Sound11stopPatternEh
- 0x000000000000277c 0x16 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000277c _ZN5Sound11stopPatternEh
+ 0x00000000000029d2 0x16 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000029d2 _ZN5Sound11stopPatternEh
.text._ZN5Sound11playPatternEPKjh
- 0x0000000000002792 0x36 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002792 _ZN5Sound11playPatternEPKjh
+ 0x00000000000029e8 0x36 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000029e8 _ZN5Sound11playPatternEPKjh
.text._ZN5Sound11updateTrackEh
- 0x00000000000027c8 0x72 ../lib/libgamebuino.a(Sound.o)
- 0x00000000000027c8 _ZN5Sound11updateTrackEh
+ 0x0000000000002a1e 0x72 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002a1e _ZN5Sound11updateTrackEh
.text._ZN5Sound11updateTrackEv
- 0x000000000000283a 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000283a _ZN5Sound11updateTrackEv
+ 0x0000000000002a90 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002a90 _ZN5Sound11updateTrackEv
.text._ZN5Sound11stopPatternEv
- 0x0000000000002840 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002840 _ZN5Sound11stopPatternEv
+ 0x0000000000002a96 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002a96 _ZN5Sound11stopPatternEv
.text._ZN5Sound13updatePatternEh
- 0x0000000000002846 0xcc ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002846 _ZN5Sound13updatePatternEh
+ 0x0000000000002a9c 0xcc ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002a9c _ZN5Sound13updatePatternEh
.text._ZN5Sound13updatePatternEv
- 0x0000000000002912 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002912 _ZN5Sound13updatePatternEv
+ 0x0000000000002b68 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002b68 _ZN5Sound13updatePatternEv
.text._ZN5Sound10updateNoteEh
- 0x0000000000002918 0x184 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002918 _ZN5Sound10updateNoteEh
+ 0x0000000000002b6e 0x184 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002b6e _ZN5Sound10updateNoteEh
.text._ZN5Sound10updateNoteEv
- 0x0000000000002a9c 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002a9c _ZN5Sound10updateNoteEv
+ 0x0000000000002cf2 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002cf2 _ZN5Sound10updateNoteEv
.text._ZN5Sound14generateOutputEv
- 0x0000000000002aa2 0x54 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002aa2 _ZN5Sound14generateOutputEv
+ 0x0000000000002cf8 0x54 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002cf8 _ZN5Sound14generateOutputEv
.text.__vector_11
- 0x0000000000002af6 0x48 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002af6 __vector_11
+ 0x0000000000002d4c 0x48 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002d4c __vector_11
.text._ZN5Sound6playOKEv
- 0x0000000000002b3e 0x2c ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002b3e _ZN5Sound6playOKEv
+ 0x0000000000002d94 0x2c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002d94 _ZN5Sound6playOKEv
.text._ZN5Sound10playCancelEv
- 0x0000000000002b6a 0x2c ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002b6a _ZN5Sound10playCancelEv
+ 0x0000000000002dc0 0x2c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002dc0 _ZN5Sound10playCancelEv
.text._ZN5Sound8playTickEv
- 0x0000000000002b96 0x2c ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002b96 _ZN5Sound8playTickEv
+ 0x0000000000002dec 0x2c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002dec _ZN5Sound8playTickEv
.text._ZN5Sound9setVolumeEa
- 0x0000000000002bc2 0x1c ../lib/libgamebuino.a(Sound.o)
- 0x0000000000002bc2 _ZN5Sound9setVolumeEa
+ 0x0000000000002e18 0x1c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002e18 _ZN5Sound9setVolumeEa
.text._ZN9Backlight5beginEv
- 0x0000000000002bde 0x8 ../lib/libgamebuino.a(Backlight.o)
- 0x0000000000002bde _ZN9Backlight5beginEv
+ 0x0000000000002e34 0x8 ../lib/libgamebuino.a(Backlight.o)
+ 0x0000000000002e34 _ZN9Backlight5beginEv
.text._ZN9Backlight3setEh
- 0x0000000000002be6 0x8 ../lib/libgamebuino.a(Backlight.o)
- 0x0000000000002be6 _ZN9Backlight3setEh
+ 0x0000000000002e3c 0x8 ../lib/libgamebuino.a(Backlight.o)
+ 0x0000000000002e3c _ZN9Backlight3setEh
.text._ZN9Backlight6updateEv
- 0x0000000000002bee 0xbe ../lib/libgamebuino.a(Backlight.o)
- 0x0000000000002bee _ZN9Backlight6updateEv
+ 0x0000000000002e44 0xbe ../lib/libgamebuino.a(Backlight.o)
+ 0x0000000000002e44 _ZN9Backlight6updateEv
.text._ZN7Battery5beginEv
- 0x0000000000002cac 0x14 ../lib/libgamebuino.a(Battery.o)
- 0x0000000000002cac _ZN7Battery5beginEv
+ 0x0000000000002f02 0x14 ../lib/libgamebuino.a(Battery.o)
+ 0x0000000000002f02 _ZN7Battery5beginEv
.text._ZN7Battery6updateEv
- 0x0000000000002cc0 0x72 ../lib/libgamebuino.a(Battery.o)
- 0x0000000000002cc0 _ZN7Battery6updateEv
+ 0x0000000000002f16 0x72 ../lib/libgamebuino.a(Battery.o)
+ 0x0000000000002f16 _ZN7Battery6updateEv
.text.__vector_16
- 0x0000000000002d32 0x94 ../lib/libarduino.a(wiring.o)
- 0x0000000000002d32 __vector_16
- .text.millis 0x0000000000002dc6 0x18 ../lib/libarduino.a(wiring.o)
- 0x0000000000002dc6 millis
- .text.micros 0x0000000000002dde 0x4a ../lib/libarduino.a(wiring.o)
- 0x0000000000002dde micros
- .text.delay 0x0000000000002e28 0x4c ../lib/libarduino.a(wiring.o)
- 0x0000000000002e28 delay
- .text.init 0x0000000000002e74 0x76 ../lib/libarduino.a(wiring.o)
- 0x0000000000002e74 init
+ 0x0000000000002f88 0x94 ../lib/libarduino.a(wiring.o)
+ 0x0000000000002f88 __vector_16
+ .text.millis 0x000000000000301c 0x18 ../lib/libarduino.a(wiring.o)
+ 0x000000000000301c millis
+ .text.micros 0x0000000000003034 0x4a ../lib/libarduino.a(wiring.o)
+ 0x0000000000003034 micros
+ .text.delay 0x000000000000307e 0x4c ../lib/libarduino.a(wiring.o)
+ 0x000000000000307e delay
+ .text.init 0x00000000000030ca 0x76 ../lib/libarduino.a(wiring.o)
+ 0x00000000000030ca init
.text.analogRead
- 0x0000000000002eea 0x3a ../lib/libarduino.a(wiring_analog.o)
- 0x0000000000002eea analogRead
+ 0x0000000000003140 0x3a ../lib/libarduino.a(wiring_analog.o)
+ 0x0000000000003140 analogRead
.text.analogWrite
- 0x0000000000002f24 0xbe ../lib/libarduino.a(wiring_analog.o)
- 0x0000000000002f24 analogWrite
+ 0x000000000000317a 0xbe ../lib/libarduino.a(wiring_analog.o)
+ 0x000000000000317a analogWrite
.text.turnOffPWM
- 0x0000000000002fe2 0x52 ../lib/libarduino.a(wiring_digital.o)
- .text.pinMode 0x0000000000003034 0x78 ../lib/libarduino.a(wiring_digital.o)
- 0x0000000000003034 pinMode
+ 0x0000000000003238 0x52 ../lib/libarduino.a(wiring_digital.o)
+ .text.pinMode 0x000000000000328a 0x78 ../lib/libarduino.a(wiring_digital.o)
+ 0x000000000000328a pinMode
.text.digitalWrite
- 0x00000000000030ac 0x5e ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000030ac digitalWrite
+ 0x0000000000003302 0x5e ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000003302 digitalWrite
.text.digitalRead
- 0x000000000000310a 0x52 ../lib/libarduino.a(wiring_digital.o)
- 0x000000000000310a digitalRead
+ 0x0000000000003360 0x52 ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000003360 digitalRead
.text._ZN5Print5writeEPKhj
- 0x000000000000315c 0x50 ../lib/libarduino.a(Print.o)
- 0x000000000000315c _ZN5Print5writeEPKhj
+ 0x00000000000033b2 0x50 ../lib/libarduino.a(Print.o)
+ 0x00000000000033b2 _ZN5Print5writeEPKhj
.text._ZN5Print5writeEPKc
- 0x00000000000031ac 0x2a ../lib/libarduino.a(Print.o)
- 0x00000000000031ac _ZN5Print5writeEPKc
+ 0x0000000000003402 0x2a ../lib/libarduino.a(Print.o)
+ 0x0000000000003402 _ZN5Print5writeEPKc
.text._ZN5Print5printEPK19__FlashStringHelper
- 0x00000000000031d6 0x46 ../lib/libarduino.a(Print.o)
- 0x00000000000031d6 _ZN5Print5printEPK19__FlashStringHelper
+ 0x000000000000342c 0x46 ../lib/libarduino.a(Print.o)
+ 0x000000000000342c _ZN5Print5printEPK19__FlashStringHelper
.text._ZN5Print5printEc
- 0x000000000000321c 0xe ../lib/libarduino.a(Print.o)
- 0x000000000000321c _ZN5Print5printEc
+ 0x0000000000003472 0xe ../lib/libarduino.a(Print.o)
+ 0x0000000000003472 _ZN5Print5printEc
.text._ZN5Print7printlnEv
- 0x000000000000322a 0x28 ../lib/libarduino.a(Print.o)
- 0x000000000000322a _ZN5Print7printlnEv
+ 0x0000000000003480 0x28 ../lib/libarduino.a(Print.o)
+ 0x0000000000003480 _ZN5Print7printlnEv
.text._ZN5Print7printlnEPK19__FlashStringHelper
- 0x0000000000003252 0x24 ../lib/libarduino.a(Print.o)
- 0x0000000000003252 _ZN5Print7printlnEPK19__FlashStringHelper
+ 0x00000000000034a8 0x24 ../lib/libarduino.a(Print.o)
+ 0x00000000000034a8 _ZN5Print7printlnEPK19__FlashStringHelper
.text._ZN5Print11printNumberEmh
- 0x0000000000003276 0xac ../lib/libarduino.a(Print.o)
- 0x0000000000003276 _ZN5Print11printNumberEmh
+ 0x00000000000034cc 0xac ../lib/libarduino.a(Print.o)
+ 0x00000000000034cc _ZN5Print11printNumberEmh
.text._ZN5Print5printEmi
- 0x0000000000003322 0x1a ../lib/libarduino.a(Print.o)
- 0x0000000000003322 _ZN5Print5printEmi
+ 0x0000000000003578 0x1a ../lib/libarduino.a(Print.o)
+ 0x0000000000003578 _ZN5Print5printEmi
.text._ZN5Print5printEji
- 0x000000000000333c 0xc ../lib/libarduino.a(Print.o)
- 0x000000000000333c _ZN5Print5printEji
+ 0x0000000000003592 0xc ../lib/libarduino.a(Print.o)
+ 0x0000000000003592 _ZN5Print5printEji
.text._ZN5Print5printEli
- 0x0000000000003348 0x90 ../lib/libarduino.a(Print.o)
- 0x0000000000003348 _ZN5Print5printEli
+ 0x000000000000359e 0x90 ../lib/libarduino.a(Print.o)
+ 0x000000000000359e _ZN5Print5printEli
.text._ZN5Print5printEii
- 0x00000000000033d8 0xe ../lib/libarduino.a(Print.o)
- 0x00000000000033d8 _ZN5Print5printEii
+ 0x000000000000362e 0xe ../lib/libarduino.a(Print.o)
+ 0x000000000000362e _ZN5Print5printEii
.text._Z3maplllll
- 0x00000000000033e6 0x82 ../lib/libarduino.a(WMath.o)
- 0x00000000000033e6 _Z3maplllll
+ 0x000000000000363c 0x82 ../lib/libarduino.a(WMath.o)
+ 0x000000000000363c _Z3maplllll
.text.__cxa_pure_virtual
- 0x0000000000003468 0x2 ../lib/libarduino.a(forward.o)
- 0x0000000000003468 __cxa_pure_virtual
+ 0x00000000000036be 0x2 ../lib/libarduino.a(forward.o)
+ 0x00000000000036be __cxa_pure_virtual
.text._ZN8SPIClass5beginEv
- 0x000000000000346a 0x2c ../lib/libarduino.a(SPI.o)
- 0x000000000000346a _ZN8SPIClass5beginEv
+ 0x00000000000036c0 0x2c ../lib/libarduino.a(SPI.o)
+ 0x00000000000036c0 _ZN8SPIClass5beginEv
.text._ZN8SPIClass11setBitOrderEh
- 0x0000000000003496 0x12 ../lib/libarduino.a(SPI.o)
- 0x0000000000003496 _ZN8SPIClass11setBitOrderEh
+ 0x00000000000036ec 0x12 ../lib/libarduino.a(SPI.o)
+ 0x00000000000036ec _ZN8SPIClass11setBitOrderEh
.text._ZN8SPIClass11setDataModeEh
- 0x00000000000034a8 0xa ../lib/libarduino.a(SPI.o)
- 0x00000000000034a8 _ZN8SPIClass11setDataModeEh
+ 0x00000000000036fe 0xa ../lib/libarduino.a(SPI.o)
+ 0x00000000000036fe _ZN8SPIClass11setDataModeEh
.text._ZN8SPIClass15setClockDividerEh
- 0x00000000000034b2 0x1e ../lib/libarduino.a(SPI.o)
- 0x00000000000034b2 _ZN8SPIClass15setClockDividerEh
+ 0x0000000000003708 0x1e ../lib/libarduino.a(SPI.o)
+ 0x0000000000003708 _ZN8SPIClass15setClockDividerEh
.text.libgcc.mul
- 0x00000000000034d0 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
- 0x00000000000034d0 __mulsi3
+ 0x0000000000003726 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
+ 0x0000000000003726 __mulsi3
.text.libgcc.div
- 0x00000000000034f0 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
- 0x00000000000034f0 __udivmodqi4
+ 0x0000000000003746 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
+ 0x0000000000003746 __udivmodqi4
.text.libgcc.div
- 0x0000000000003508 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
- 0x0000000000003508 __udivmodhi4
+ 0x000000000000375e 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x000000000000375e __udivmodhi4
.text.libgcc.div
- 0x0000000000003530 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
- 0x0000000000003530 __divmodhi4
- 0x0000000000003530 _div
+ 0x0000000000003786 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000000000003786 __divmodhi4
+ 0x0000000000003786 _div
.text.libgcc.div
- 0x0000000000003558 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
- 0x0000000000003558 __udivmodsi4
+ 0x00000000000037ae 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00000000000037ae __udivmodsi4
.text.libgcc.div
- 0x000000000000359c 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
- 0x000000000000359c __divmodsi4
+ 0x00000000000037f2 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x00000000000037f2 __divmodsi4
.text.libgcc.div
- 0x00000000000035ca 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
- 0x00000000000035ca __negsi2
+ 0x0000000000003820 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000003820 __negsi2
.text.libgcc.mul
- 0x00000000000035da 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
- 0x00000000000035da __muluhisi3
- .text.libgcc 0x00000000000035f0 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
- 0x00000000000035f0 __tablejump2__
+ 0x0000000000003830 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000003830 __muluhisi3
+ .text.libgcc 0x0000000000003846 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000003846 __tablejump2__
.text.libgcc.mul
- 0x00000000000035fc 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
- 0x00000000000035fc __umulhisi3
+ 0x0000000000003852 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000003852 __umulhisi3
.text.avr-libc.fplib
- 0x000000000000361a 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
- 0x000000000000361a __fixunssfsi
+ 0x0000000000003870 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+ 0x0000000000003870 __fixunssfsi
.text.avr-libc.fplib
- 0x0000000000003678 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
- 0x0000000000003678 __floatunsisf
- 0x000000000000367c __floatsisf
+ 0x00000000000038ce 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
+ 0x00000000000038ce __floatunsisf
+ 0x00000000000038d2 __floatsisf
.text.avr-libc.fplib
- 0x00000000000036f2 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
- 0x00000000000036f2 __fp_inf
+ 0x0000000000003948 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x0000000000003948 __fp_inf
.text.avr-libc.fplib
- 0x00000000000036fe 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
- 0x00000000000036fe __fp_nan
+ 0x0000000000003954 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x0000000000003954 __fp_nan
.text.avr-libc.fplib
- 0x0000000000003704 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
- 0x0000000000003704 __fp_pscA
+ 0x000000000000395a 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x000000000000395a __fp_pscA
.text.avr-libc.fplib
- 0x0000000000003712 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
- 0x0000000000003712 __fp_pscB
+ 0x0000000000003968 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x0000000000003968 __fp_pscB
.text.avr-libc.fplib
- 0x0000000000003720 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
- 0x0000000000003720 __fp_round
+ 0x0000000000003976 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x0000000000003976 __fp_round
.text.avr-libc.fplib
- 0x0000000000003742 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
- 0x0000000000003742 __fp_split3
- 0x0000000000003752 __fp_splitA
+ 0x0000000000003998 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x0000000000003998 __fp_split3
+ 0x00000000000039a8 __fp_splitA
.text.avr-libc.fplib
- 0x0000000000003786 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
- 0x0000000000003786 __fp_zero
- 0x0000000000003788 __fp_szero
+ 0x00000000000039dc 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x00000000000039dc __fp_zero
+ 0x00000000000039de __fp_szero
.text.avr-libc.fplib
- 0x0000000000003794 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
- 0x0000000000003794 __mulsf3
+ 0x00000000000039ea 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
+ 0x00000000000039ea __mulsf3
.text.avr-libc.fplib
- 0x000000000000379c 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
- 0x00000000000037ba __mulsf3x
- 0x00000000000037c0 __mulsf3_pse
+ 0x00000000000039f2 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x0000000000003a10 __mulsf3x
+ 0x0000000000003a16 __mulsf3_pse
.text.avr-libc
- 0x000000000000386e 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
- 0x000000000000386e memset
+ 0x0000000000003ac4 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
+ 0x0000000000003ac4 memset
.text.avr-libc
- 0x000000000000387c 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
- 0x000000000000387c strncpy
- 0x000000000000389a . = ALIGN (0x2)
+ 0x0000000000003ad2 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0x0000000000003ad2 strncpy
+ 0x0000000000003af0 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x000000000000389a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
- 0x000000000000389a exit
- 0x000000000000389a _exit
+ .fini9 0x0000000000003af0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000003af0 exit
+ 0x0000000000003af0 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -1831,11 +1871,11 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x000000000000389a 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ .fini0 0x0000000000003af0 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
*(.fini0)
- 0x000000000000389e _etext = .
+ 0x0000000000003af4 _etext = .
-.data 0x0000000000800100 0x74 load address 0x000000000000389e
+.data 0x0000000000800100 0x74 load address 0x0000000000003af4
0x0000000000800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
@@ -1869,7 +1909,7 @@ END GROUP
0x0000000000800174 _edata = .
0x0000000000800174 PROVIDE (__data_end, .)
-.bss 0x0000000000800174 0x298
+.bss 0x0000000000800174 0x29a
0x0000000000800174 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
@@ -1877,46 +1917,47 @@ END GROUP
0x0000000000800174 gb
.bss._cam 0x00000000008001fb 0x2 Obj/Sprite.o
0x00000000008001fb _cam
+ .bss._ZL3cam 0x00000000008001fd 0x2 Obj/BaseUnit.o
.bss._displayBuffer
- 0x00000000008001fd 0x200 ../lib/libgamebuino.a(Display.o)
- 0x00000000008001fd _displayBuffer
+ 0x00000000008001ff 0x200 ../lib/libgamebuino.a(Display.o)
+ 0x00000000008001ff _displayBuffer
.bss._chanNoise
- 0x00000000008003fd 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008003fd _chanNoise
+ 0x00000000008003ff 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003ff _chanNoise
.bss._chanOutput
- 0x00000000008003fe 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008003fe _chanOutput
+ 0x0000000000800400 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000800400 _chanOutput
.bss._chanOutputVolume
- 0x00000000008003ff 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008003ff _chanOutputVolume
+ 0x0000000000800401 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000800401 _chanOutputVolume
.bss._chanHalfPeriod
- 0x0000000000800400 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000800400 _chanHalfPeriod
+ 0x0000000000800402 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000800402 _chanHalfPeriod
.bss._chanState
- 0x0000000000800401 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000800401 _chanState
+ 0x0000000000800403 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000800403 _chanState
.bss._chanCount
- 0x0000000000800402 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000800402 _chanCount
+ 0x0000000000800404 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000800404 _chanCount
.bss.timer0_fract
- 0x0000000000800403 0x1 ../lib/libarduino.a(wiring.o)
+ 0x0000000000800405 0x1 ../lib/libarduino.a(wiring.o)
.bss.timer0_millis
- 0x0000000000800404 0x4 ../lib/libarduino.a(wiring.o)
- 0x0000000000800404 timer0_millis
+ 0x0000000000800406 0x4 ../lib/libarduino.a(wiring.o)
+ 0x0000000000800406 timer0_millis
.bss.timer0_overflow_count
- 0x0000000000800408 0x4 ../lib/libarduino.a(wiring.o)
- 0x0000000000800408 timer0_overflow_count
+ 0x000000000080040a 0x4 ../lib/libarduino.a(wiring.o)
+ 0x000000000080040a timer0_overflow_count
*(COMMON)
- 0x000000000080040c PROVIDE (__bss_end, .)
- 0x000000000000389e __data_load_start = LOADADDR (.data)
- 0x0000000000003912 __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x000000000080040e PROVIDE (__bss_end, .)
+ 0x0000000000003af4 __data_load_start = LOADADDR (.data)
+ 0x0000000000003b68 __data_load_end = (__data_load_start + SIZEOF (.data))
-.noinit 0x000000000080040c 0x0
+.noinit 0x000000000080040e 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
- 0x000000000080040c _end = .
- 0x000000000080040c PROVIDE (__heap_start, .)
+ 0x000000000080040e _end = .
+ 0x000000000080040e PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
diff --git a/HumanPlayer.cpp b/HumanPlayer.cpp
index b432d18..6be3f37 100644
--- a/HumanPlayer.cpp
+++ b/HumanPlayer.cpp
@@ -63,7 +63,9 @@ HumanPlayer::HumanPlayer(const char* const strPlayerName, const Camera& cam) :
Player(strPlayerName),
_eState(PLAYER_STATE_IDLE),
_cam(cam),
-_ABtnFrames(0)
+_cursor(cam),
+_ABtnFrames(0),
+_BBtnFrames(0)
{
_unitsMap[0].create(Unit::UNIT_ID_PEASANT, 16, 16);
}
@@ -104,7 +106,7 @@ void HumanPlayer::drawHandler(void)
Sprite cursorSpr(au8MouseSprData, false, INVERT);
/* Transfer Cursor to Sprite coordinates. */
- cursorSpr.setPos(_cursor.getX(), _cursor.getY());
+ cursorSpr.setPos(_cursor.getScreenX(), _cursor.getScreenY());
/* Draw cursor sprite. */
cursorSpr.draw();
@@ -137,7 +139,7 @@ enum HumanPlayer::tPlayerState HumanPlayer::selectUnit(void)
/* Maximum distance, in pixels,
* between unit and cursor
* in order to select a unit. */
- MAX_SELECTION_DISTANCE = 8
+ MAX_SELECTION_DISTANCE = 32
};
/* Extract Unit object X position. */
diff --git a/HumanPlayer.h b/HumanPlayer.h
index 262dde8..071415d 100644
--- a/HumanPlayer.h
+++ b/HumanPlayer.h
@@ -50,6 +50,7 @@ class HumanPlayer : public Player
/* Released button event handlers. */
void onABtnReleased(void);
+ void onBBtnReleased(void);
/* Unit selection. */
enum tPlayerState selectUnit(void);
@@ -60,6 +61,7 @@ class HumanPlayer : public Player
/* Private variables. */
uint8_t _ABtnFrames;
+ uint8_t _BBtnFrames;
};
#endif /* HUMAN_PLAYER_H__ */
diff --git a/Makefile b/Makefile
index 97bd08d..703ab3b 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@ SRC_DIR = .
OBJECTS=$(addprefix $(OBJ_DIR)/,main.o Game.o System.o HumanPlayer.o Sprite.o \
Player.o Camera.o BaseUnit.o Unit.o Menu.o \
- Cursor.o HumanPlayerBtn.o)
+ Cursor.o HumanPlayerBtn.o Coordinates.o)
DEPS = $(OBJECTS:.o=.d)
diff --git a/Menu.cpp b/Menu.cpp
index 76c821b..5e11df2 100644
--- a/Menu.cpp
+++ b/Menu.cpp
@@ -125,6 +125,8 @@ static void MainMenuSinglePlayer(void)
/* Set global camera for sprites. */
Sprite::setCamera(&c.cam);
+ BaseUnit::setCamera(&c.cam);
+
/* Initialize game with defined configuration. */
Game(c);
}
diff --git a/PocketEmpires.geany b/PocketEmpires.geany
index a96f26d..0720f72 100644
--- a/PocketEmpires.geany
+++ b/PocketEmpires.geany
@@ -28,41 +28,41 @@ long_line_behaviour=1
long_line_column=120
[files]
-current_page=33
+current_page=30
FILE_NAME_0=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2Fmain.cpp;0;4
-FILE_NAME_1=3821;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.cpp;0;4
+FILE_NAME_1=3852;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.cpp;0;4
FILE_NAME_2=549;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.cpp;0;4
-FILE_NAME_3=136;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.h;0;4
+FILE_NAME_3=1268;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.h;0;4
FILE_NAME_4=299;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.h;0;4
FILE_NAME_5=611;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.h;0;4
FILE_NAME_6=1102;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.h;0;4
FILE_NAME_7=453;Make;0;EUTF-8;1;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMakefile;0;4
FILE_NAME_8=2168;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.cpp;0;4
-FILE_NAME_9=1115;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4
+FILE_NAME_9=1827;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4
FILE_NAME_10=1827;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.cpp;0;4
FILE_NAME_11=2960;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.cpp;0;4
FILE_NAME_12=571;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.h;0;4
-FILE_NAME_13=2317;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.cpp;0;4
-FILE_NAME_14=1249;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4
-FILE_NAME_15=1779;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4
+FILE_NAME_13=3108;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.cpp;0;4
+FILE_NAME_14=1593;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4
+FILE_NAME_15=2421;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4
FILE_NAME_16=575;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.h;0;4
-FILE_NAME_17=5880;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4
-FILE_NAME_18=7987;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.cpp;0;4
+FILE_NAME_17=6207;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4
+FILE_NAME_18=18699;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.cpp;0;4
FILE_NAME_19=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.h;0;4
FILE_NAME_20=3497;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FButtons.cpp;0;4
FILE_NAME_21=1135;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FButtons.h;0;4
FILE_NAME_22=3441;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2Fsettings.c;0;4
-FILE_NAME_23=19868;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.cpp;0;4
-FILE_NAME_24=1181;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.h;0;4
-FILE_NAME_25=1096;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.h;0;4
-FILE_NAME_26=3832;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.cpp;0;4
+FILE_NAME_23=9733;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.cpp;0;4
+FILE_NAME_24=1468;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.h;0;4
+FILE_NAME_25=1280;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.h;0;4
+FILE_NAME_26=4771;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.cpp;0;4
FILE_NAME_27=0;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FTownCentre.i;0;4
-FILE_NAME_28=2402;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.cpp;0;4
-FILE_NAME_29=1300;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.h;0;4
-FILE_NAME_30=2718;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4
-FILE_NAME_31=6501;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayerBtn.cpp;0;4
+FILE_NAME_28=3133;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.cpp;0;4
+FILE_NAME_29=1351;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.h;0;4
+FILE_NAME_30=3873;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4
+FILE_NAME_31=10225;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayerBtn.cpp;0;4
FILE_NAME_32=1485;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Finclude%2Farduino%2FArduino.h;0;4
-FILE_NAME_33=2398;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.cpp;0;4
+FILE_NAME_33=2607;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.cpp;0;4
[VTE]
last_dir=/home/xavier/PocketEmpires/src
diff --git a/Unit.cpp b/Unit.cpp
index f06fd5c..f739d36 100644
--- a/Unit.cpp
+++ b/Unit.cpp
@@ -59,7 +59,10 @@ static const PROGMEM uint8_t au8PeasantSprData[] =
*********************************************************************/
Unit::Unit(const enum Unit::tUnitID eUnitID) :
BaseUnit(),
-_eUnitID(eUnitID)
+_eUnitID(eUnitID),
+_eState(UNIT_STATE_IDLE),
+_target_x(0),
+_target_y(0)
{
}
@@ -92,6 +95,19 @@ void Unit::create(const enum Unit::tUnitID eUnitID, const uint16_t x, const uint
/*****************************************************************//**
*
+ * \brief This function sets a position target for a \ref Unit
+ * object.
+ *
+ *********************************************************************/
+void Unit::moveTo(const uint16_t x, const uint16_t y)
+{
+ _target_x = x;
+ _target_y = y;
+ _eState = UNIT_STATE_MOVING;
+}
+
+/*****************************************************************//**
+ *
* \brief Periodical handler for Unit class.
*
*********************************************************************/
@@ -99,6 +115,33 @@ void Unit::handler(void)
{
/* Execute base class handler. */
BaseUnit::handler();
+
+ switch (_eState)
+ {
+ case UNIT_STATE_MOVING:
+ if (_x < _target_x)
+ {
+ _x += 1;
+ }
+ else if (_x > _target_x)
+ {
+ _x -= 1;
+ }
+
+ if (_y < _target_y)
+ {
+ _y += 1;
+ }
+ else if (_y > _target_y)
+ {
+ _y -= 1;
+ }
+ break;
+
+ case UNIT_STATE_IDLE:
+ default:
+ break;
+ }
}
/*****************************************************************//**
@@ -125,7 +168,7 @@ void Unit::drawHandler(void)
Sprite spr(pu8UnitSpriteData);
- spr.setPos(_x, _y);
+ spr.setPos(_x - (Sprite::getWidth(pu8UnitSpriteData) >> 1), _y - (Sprite::getHeight(pu8UnitSpriteData) >> 1));
spr.draw();
diff --git a/Unit.h b/Unit.h
index e110ba7..ea5efdf 100644
--- a/Unit.h
+++ b/Unit.h
@@ -45,9 +45,17 @@ class Unit : public BaseUnit
void create(const enum Unit::tUnitID eUnitID, const uint16_t x, const uint16_t y);
void handler(void);
void drawHandler(void);
+ void moveTo(const uint16_t x, const uint16_t y);
private:
enum tUnitID _eUnitID;
+ enum tUnitState
+ {
+ UNIT_STATE_IDLE,
+ UNIT_STATE_MOVING
+ } _eState;
+ uint16_t _target_x;
+ uint16_t _target_y;
};
#endif /* UNIT_H__ */