diff --git a/Out/8837_EVB_250113_1656.bin b/Out/8837_EVB_250113_1656.bin deleted file mode 100644 index 55a8dcc..0000000 Binary files a/Out/8837_EVB_250113_1656.bin and /dev/null differ diff --git a/Out/8837_EVB_250113_1656.hex b/Out/8837_EVB_250113_1656.hex deleted file mode 100644 index 1b4dc04..0000000 --- a/Out/8837_EVB_250113_1656.hex +++ /dev/null @@ -1,830 +0,0 @@ -:030000000226CA0B -:1026CA00758E3075D20078FFE4F6D8FD9000007F51 -:1026DA00007E01E4F0A3DFFCDEFA7581880227257B -:0F2EFF0053797374656D20496E69742E0D0A0046 -:102EAC00122A507BFF7A2E79FF121412D2AED2BEA8 -:082EBC00122862122CCD80F4F3 -:10217F00010D0001140001130001120001110001F3 -:10218F0010004100BC00020E00004200B6000042E9 -:10219F0000BA00004200AF00004200B10000420050 -:1021AF00B800004200B400004100B3004100BD0080 -:0221BF00C14617 -:102B490075FE0F43FF8075FE2975FFB575A52175C3 -:102B5900FE1E43FF01E5A3540F24F8780DF6E5A303 -:102B6900C4540F7814F6E5AD540F24F875F00AA48F -:102B79007810F67812A6ABE5ADC4540F24F875F0B9 -:0B2B89000AA418F67813A6ACD2BD22F7 -:1019BD00900085EFF0204603021BD79000B6E0FEA5 -:1019CD00A3E07803CEC313CE13D8F9F0EE9000B692 -:1019DD00F09000B3E024FD6048147003021AA214C5 -:1019ED007003021B1624FE7003021B862405600380 -:1019FD00021BD4780DE6FF3395E0FEC39000B7E0EF -:101A0D009FFF9000B6E09EFE9000BAF0A3EFF0C3EA -:101A1D00EE648094804003021BD4E49000BA021B54 -:101A2D00D19000B6E0FEA3E0FF7C097DC4120B054A -:101A3D00780A120A8F9000B6EEF0A3EFF07810E658 -:101A4D00FD3395E0FCC3EF9DFFEE9CFE3395E0FD6D -:101A5D00FCE47B64FAF9F8120A2FC006C00778126D -:101A6D00E675F002A424F4FFE5F03401AB07FA3378 -:101A7D0095E0F9F8D007D006122BD89000AFEEF014 -:101A8D00A3EFF0C3EE648094804003021BD4E49076 -:101A9D0000AF021BD19000B6E0FEA3E0FF7C097DF4 -:101AAD00C4120B05780A120A8F9000B6EEF0A3EF60 -:101ABD00F07811E6FD3395E0FCC3EF9DFFEE9CFE43 -:101ACD003395E0FDFCE47B64FAF9F8120A2FC006A9 -:101ADD00C0077813E675F002A424F4FFE5F0340195 -:101AED00AB07FA3395E0F9F8D007D006122BD89052 -:101AFD0000B1EEF0A3EFF0C3EE64809480400302DA -:101B0D001BD4E49000B1021BD19000B6E0FEA3E01F -:101B1D00FF7C097DC4120B05780A120A8F9000B65E -:101B2D00EEF0A3EFF0E025E0FE9000B6E03390007C -:101B3D00B8F0A3CEF09000B8E0FEA3E07802C33376 -:101B4D00CE33CED8F9FDAC067814E6FF3395E0FE22 -:101B5D00EF24F8FFEE34FFFE12094D7C037DE812F1 -:101B6D00095F9000B8EE8FF0120995C39000B8E0B0 -:101B7D00648094805051E4804B780DE6FF3395E0FE -:101B8D00FEC39000B7E09FFF9000B6E09EFEE4FC20 -:101B9D00FD7BC47A09F9F8120A2F780A120AA2906D -:101BAD0000B6EEF0A3EFF0E025E0FF9000B6E033D5 -:101BBD00FE9000B4F0A3EFF0C3EE64809480500764 -:101BCD00E49000B4F0A3F0C24622900085E09000AE -:101BDD00B3F0C454F04401F5A5E49000B6F0A3F0C1 -:051BED009000BDF02294 -:03006B000228CB9D -:1028CB00C0E0C0F0C083C082C0D075D000C000C0D3 -:1028DB0006C007E5F330E038AFA1780E760008A606 -:1028EB0007E5A254031846F608E6F69000BDE0C3D0 -:1028FB009408501718E6FE08E6FF9000B6EE8FF02E -:10290B001209959000BDE004F08005D24653A5FE58 -:10291B0075F301D007D006D000D0D0D082D083D0B1 -:04292B00F0D0E032D6 -:0521C100C1230115031C -:102CFF0075FE8743FF2075FE7043FF1853B3F143F2 -:102D0F00B302E47817F67819F67815E67818F6789E -:102D1F001A76017917E718461846F5B175B20122F0 -:10232B00E4FE9000BAE0FCA3E0FDC394D8EC940368 -:10233B0040037F0022EF7003022444D3ED940FEC93 -:10234B0094034003022422ED94CBEC94005003023F -:10235B002422D3ED94AAEC94024022D2217815E6E4 -:10236B00FF137818F6302211D3ED94BFEC94024092 -:10237B0004C22280047818A607E4FE8070D3ED9483 -:10238B00AAEC94025043ED9437EC9401403BD222DB -:10239B007815E6FF7818F6302113D3ED9493EC946F -:1023AB00025004C2218006EFC3137818F6781A7610 -:1023BB0001301C11D3ED9451EC94015004C21C80DC -:1023CB0004E4781AF6E4FE8024D3ED9437EC940100 -:1023DB00501BD21CE4781AF6302210ED9426EC94A4 -:1023EB00015004C2228004781A7601E4FE301F11DA -:1023FB00C3ED94F3EC94025006C21FE4FE80027E00 -:10240B000130202FD3ED94DDEC94004006C220E484 -:10241B00FE80207E01801CD3ED940FEC94034006CC -:10242B00D21F7E01800DD3ED94CBEC94005004D2DF -:10243B00207E01C21DC21E8058C21FC220D3ED9444 -:10244B009FEC94035031ED9471EC94004029301DB6 -:10245B0010ED9484EC94035006C21DE4FE80027EC2 -:10246B0001301E2DD3ED9482EC94004006C21EE485 -:10247B00FE801E7E01801AD3ED949FEC94034004E2 -:10248B00D21D800BC3ED9471EC94005002D21E7ED2 -:08249B0001781AE6F5B2AF0664 -:0124A3002216 -:1024A400E4FBFAE5E65480FFE4FCFDFEEF7007531D -:1024B400B3FE7816F62278167601E5E830E5057560 -:1024C400E820800FE5E530E1028008E5F230E50719 -:1024D40075F22053B3FE22E5F2540C601353B3FE9D -:1024E400E5F354C0700302257F75F20C75F3C02226 -:1024F40075F3C07F0112232BEF600653B3FED22382 -:1025040022C223E5F230E432781AE6B401067A10E6 -:102514007B6880047A0F7BA0EB246AFFEA34FFFE19 -:10252400C39000B9E09F9000B8E09E500575F2108A -:10253400800353B3FE78167603227917E778194699 -:102544001846F5B1781AE6F5B243B311781CE6FFE4 -:10255400D394014002C23DEFD394034002C239EF49 -:10256400D394074002C23BEFD3940C4002C23AEF2B -:0B257400D394114002C23C781676029E -:01257F002239 -:0621C600C13EC13FC14013 -:10000E00303F10EFB4010475B5C02253B5BFED44B7 -:04001E0080F5B52292 -:102EEE00E5B55480FFEF6008303F05E4F5B5C23F0D -:012EFE0022B1 -:1029F200C23FE5E520E156E5E230E703D24022E5B9 -:102A0200E830E00D30254675E8017D3FE4FF020025 -:102A12000EE4FF12232BEF6006122EEED23E22C2EC -:102A22003E303D03022EEED23F3040217816E6B40E -:102A3200021BC39000B9E094109000B8E064809447 -:0E2A42008E4005D23FC24022122EEEC23F222D -:0821CC00C144C1454100D4FFEC -:102D2F00E5E25408FF9000D4E06F6021E5E230E364 -:102D3F00089000D37401F08005E49000D3F0D244E2 -:0D2D4F00C210D245D2389000D4EFF0D24827 -:012D5C002254 -:1021D400C132C131C130011D004100CE004100D2E5 -:0E21E400004100CD004200CF00004100D100BC -:101FC400E5E25402FFE4FCFDFEEF70319000CF75B2 -:101FD400F0011209959000CFE0FEA3E0FFC394172F -:101FE400EE94024004D230800EC3EF9487EE940046 -:101FF4004005202F02D22FD22CC22D8040302C3607 -:10200400D248E4781DF6C22CD22D9000D1F0900075 -:10201400CFE0FEA3E0FFD3941EEE94005008D2322A -:10202400D22ED238800EC3EF944FEE940150053077 -:102034002F02D231C22FE49000CFF0A3F0302D62F2 -:10204400303F5F30312720100280287F03122AA7F7 -:102054009000D1E0D39423500302216BC231781D48 -:102064007602E49000CEF090002BF0A3F0303029FB -:1020740020100A7D3FE4FF12000ED210227F0312CB -:102084002AA79000D1E0D39423500302216BC230DD -:10209400E49000D2F0781D7603302E02C22EC22DB9 -:1020A400C2109000D3E06401600302217E781DE633 -:1020B400640260030221409000CEE0C394015010FA -:1020C4007D017F01121DEEE490002BF0A3F08054FB -:1020D4009000CDE0D394054003E4803990002CE0D7 -:1020E400B4010FE4FD7F02121DEE90002C7402F087 -:1020F400803290002CE06402702A90002BE0601D76 -:102104007D017F02121DEEE490002BF0A3F09000FD -:10211400CEF09000CDF0781DF6D2118058E4FD7F0A -:1021240001121DEE9000CEE0D39414400A9000CD2D -:10213400E004F0E4A3F0229000CE802B781DE66446 -:102144000370379000D2E0FFC394B4501EEF540FD5 -:1021540070047D0180099000D2E054077006FD7F71 -:1021640003121DEE9000D2E004F022E4781DF6D2B2 -:0A217400119000D2F07F04122AA798 -:01217E00223E -:1021F20041003100410030004100320041002F0017 -:102DDA0075FE0675FF3C75FE0E53FF0F75FE0F5309 -:102DEA00FFF075FE0375FFFFC282C283C285C284EB -:012DFA0022B6 -:102E7800EF14600D14600D14600D2403700BD282E2 -:0A2E880022D28322D28422D28522B6 -:052E3B00900085E0FF9E -:102E4000EF14600D14600D14600D2403700BC2822A -:0A2E500022C28322C28422C285221E -:10299200E4FF74332FF582E43400F583E4F07437F6 -:1029A2002FF582E43400F583E4F0EF25E0243BF5D3 -:1029B20082E43400F583E4F0A3F0EF25E02443F54C -:1029C20082E43400F583E4F0A3F0EF25E0244BF534 -:1029D20082E43400F583E4F0A3F0EF25E02453F51C -:0F29E20082E43400F583E4F0A3F00FEFB404A314 -:0129F10022C3 -:10292F00AC0774332CF582E43400F583EDF0EAC381 -:10293F0013FEEB13FFEC25E0243BF582E43400F5A6 -:10294F0083EEF0A3EFF0AF03EC25E02443F582E430 -:10295F003400F583EAF0A3EFF090008AE0FEA3E0E5 -:10296F00FFEC25E0244BF582E43400F583EEF0A371 -:10297F00EFF0EC25E02453F582E43400F583E4F026 -:03298F00A3F02290 -:102C5F0074332FF582E43400F583EDF074372FF5DC -:102C6F0082E43400F583EBF0EF25E0243BF582E4BA -:102C7F003400F583E4F0A37469F0EF25E02453F5F5 -:0B2C8F0082E43400F583E4F0A3F0229F -:10103A00E4900085F0F0900085E0FFC3940440033B -:10104A0002137C74332FF582E43400F583E06022C6 -:10105A0024FE60241470030211441470030211BBAD -:10106A0024036003021318900085E0FF122E780211 -:10107A001318122E3B021318900085E0FF25E02476 -:10108A003BF582E43400F583E0FCA3E0FDEF25E0C4 -:10109A002453F582E43400F583E0FEA3E0C39DEE19 -:1010AA009C5005122E788003122E3B900085E0FF9B -:1010BA0025E02443F582E43400F583E0FCA3E0FD57 -:1010CA00EF25E02453F582E43400F583E0FEA3E043 -:1010DA00C39DEE9C5003021318900085E025E0247E -:1010EA0053F582E43400F583E4F0A3F0EF25E0241D -:1010FA004BF582E43400F583E0FEA3E0D39400EEDE -:10110A0094004016900085E025E0244BF582E434F3 -:10111A0000F58374FFF5F0120995900085E0FF252C -:10112A00E0244BF582E43400F583E0FCA3E04C6054 -:10113A000302131874332F0211D7900085E0FF259C -:10114A00E0243BF582E43400F583E0FCA3E0FDEF04 -:10115A0025E02453F582E43400F583E0FEA3E0D3CE -:10116A009DEE9C5005122E788003122E3B9000852E -:10117A00E0FF25E02443F582E43400F583E0FCA394 -:10118A00E0FDEF25E02453F582E43400F583E0FE28 -:10119A00A3E0C39DEE9C5003021318900085E0253E -:1011AA00E02453F582E43400F583E4F0A3F002135B -:1011BA0018900085E0FF2437F582E43400F583E0D7 -:1011CA007017122B94C247900085E02433F582E40D -:1011DA003400F583E4F0021318900085E0FF243709 -:1011EA00F582E43400F583E0FE6402704B20471474 -:1011FA00D247EF25E0243BF582E43400F583E4F09E -:10120A00A37469F0900085E0FF25E0243BF582E4B1 -:10121A003400F583E475F001120995EF25E0243BCB -:10122A00F582E43400F583E0FCA3E0C394FEEC9479 -:10123A00005003021302804EEE6401705A204717D1 -:10124A00D247900085E025E0243BF582E43400F59E -:10125A0083E4F0A374FEF0900085E0FF25E0243BD0 -:10126A00F582E43400F58374FFF5F0120995EF2551 -:10127A00E0243BF582E43400F583E0FEA3E0D39456 -:10128A0069EE94005072900085E02437F582E434C8 -:10129A0000F583E4F08061900085E0FF2437F58251 -:1012AA00E43400F583E06403704EEF25E0243BF557 -:1012BA0082E43400F583E0FEA3E0FFC394FEEE94DB -:1012CA00004004D247800BD3EF946AEE9400500298 -:1012DA00C247900085E025E0243B30470DF582E4C3 -:1012EA003400F58374FFF5F0800BF582E43400F5E1 -:1012FA0083E475F001120995900085E0FF25E0244A -:10130A003BF582E43400F583A3E0FD122AF890004D -:10131A0085E0FF701174332FF582E43400F583E021 -:10132A00900031F08043900085E0B401102433F539 -:10133A0082E43400F583E0900030F0802C90008540 -:10134A00E0B402102433F582E43400F583E090001F -:10135A0032F08015900085E0B4030E2433F582E460 -:10136A003400F583E090002FF0900085E004F0024D -:10137A001040E4900085F0900085E0FFC39404508B -:10138A001BEF25E02453F582E43400F583E475F07D -:0C139A0001120995900085E004F080DB52 -:0113A6002224 -:062202004100D70FC148A6 -:102D8B0075FE1E43FF0275FE2143FF0875D4867541 -:102D9B00FE2143FF0475FE2143FF02300F0775FE32 -:0C2DAB002453FFC32275FE2443FF3C228A -:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E -:0400660043FFB02282 -:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923 -:04007E0053FF4F22BB -:092F440012006E438702020056E0 -:102EDA00E5E25401FFEF7006201203304804C248AD -:042EEA00C322D3220A -:102A500075FE01E4F5FF122E92122F37122F1CE49F -:102A6000F58675B7C375FE6A75FF0475FE6C43FF86 -:102A70000B122B4975FE8043FF0275FE0E53FFFCBF -:102A800043FF0175FE1775FF3CD2A8D2AF122CFF91 -:102A90007D697F03122EC4122DDA122992122D8B1A -:072AA0009000C27401F02256 -:03000300020006F2 -:03000600D24832AB -:03004B00022F552C -:062F550075EB3CD248328E -:03005300022F5B1E -:062F5B0075F302D24832BA -:10220800202069000000000000000000000000001D -:1022180000000000000000000000000000000000B6 -:0F222800000000C143C1424100D5004100D60073 -:0E2F0E009000AEEFF0122F4D9000AEE0FF22CB -:082F4D002041FDD2418F9922C1 -:102E920075FE0E53FFF343FF04D2DF43878075BAFA -:0A2EA2000375AAFD759852D2AC2208 -:03002300022F2A7F -:0D2F2A00309904C299C241309802C2983219 -:0D2F370075BB03759DDC759B92439A0122CA -:062C9A009000A9120AD609 -:102CA000E49000ACF0F09000ACE0C39FE49E501CB8 -:102CB0002042FDD2429000A9E475F001120ABF1231 -:0C2CC00008B2F59C9000ACE004F080DA53 -:012CCC0022E5 -:03008300022580D3 -:10258000C0E0C083C082C0D075D000C000C005C00C -:1025900006C007E59B30E105539BFDC242E59B3039 -:1025A000E076539BFED2489000D5E0146019146089 -:1025B0003424027063E59C9000D5B455087401F092 -:1025C000A3E4F0800E8018E59C9000D5B4AA1074A6 -:1025D00002F0A3E0FF04F074692FF8A69C8039E4B0 -:1025E000F0A3F080339000D6E0FF04F074692FF878 -:1025F000A69C786BE62404FFE433FEE0FDC39FEE67 -:102600006480F87480985005ED9420400B9000D6BB -:10261000E4F09000D5F0D243D007D006D005D0002A -:09262000D0D0D082D083D0E0328A -:10262900536C65657020537461746520286C696EFC -:10263900653A2564290D0A004348475F5354413AD6 -:1026490025642C53545F564F583A307825782C53CB -:102659005441303A307825782C535441313A307806 -:1026690025782C535441323A307825782C535441EB -:10267900333A307825782C535441343A30782578D8 -:102689002E4465635F536C6565703A25640D0A00D5 -:102699004465636E745F536C65657044656C6179FC -:1026A9002052656C6F61642E0D0A00456E74657267 -:1026B900205374616E646279204D6F6465210D0A3F -:0126C9000010 -:102237004300C20402024100BF004100C000C13890 -:0E224700C1374100C1004100C5004100BE008A -:10002600E4FB7D04FF122C5FE4FB7D047F01122CB0 -:100036005FE4FB7D047F02122C5FE4FB7D047F03FB -:03004600022C5F2A -:100C6700303859C238E49000C0F0781BF690008AFB -:100C7700F0A3F0FBFAFDFF12292FE490008AF0A3FE -:100C8700F0FBFAFD7F0112292FE490008AF0A3F010 -:100C9700FBFAFD7F0212292FE490008AF0A3F0FBF4 -:100CA700FAFD7F0312292F9000317402F090003073 -:100CB700F0900032F090002FF0D2482220230F202E -:100CC7003E0C200D03020D7C300F03020D7C2033F8 -:100CD70005D233D23822900031E06402601A9000C6 -:100CE7008AE4F0A3740AF07B147A007D02E4FF1211 -:100CF700292F9000317403F0900030E06402601AED -:100D070090008AE4F0A3740AF07B147A007D027FD6 -:100D17000112292F9000307403F0900032E0640232 -:100D2700601A90008AE4F0A3740AF07B147A007DBD -:100D3700027F0212292F9000327403F090002FE0F7 -:100D47006402601A90008AE4F0A3740AF07B147AB4 -:100D5700007D027F0312292F90002F7403F0200DCE -:100D6700030210399000C0E0C394285003020EB765 -:100D7700D20FD2382230330CC233C235C234C24507 -:100D8700C20ED2377816E6FF7003020E9164037025 -:100D97005E203507D235C234020026E490008AF07F -:100DA700A3F0FBFA7D01FF12292FE490008AF0A33C -:100DB700F0FBFA7D017F0112292FE490008AF0A34E -:100DC700F0FBFA7D017F0212292FE490008AF0A33D -:100DD700F0FBFA7D017F0312292F9000317401F097 -:100DE700900030F0900032F090002FF0020E882033 -:100DF700340ED234C235D238E49000C5F0020E88E2 -:100E07009000C0E0C394015057E004F09000C5E0A3 -:100E170014601A146027146034240370649000313E -:100E2700E06404605C7B017D04E4FF802E90003069 -:100E3700E06404604C7B017D047F01801E900032DA -:100E4700E06404603C7B017D047F02800E90002FEC -:100E5700E06404602C7B017D047F03122C5F8021FA -:100E67009000C0E0C3940F5005E004F08013E490B5 -:100E770000C0F09000C5E004F0E0C394044002E431 -:100E8700F0C245C20EC232D2362230340AC2341200 -:100E97000026D238D2372220450C203609200E06EC -:100EA7002032030210399000C0E0FFC394015004C0 -:100EB700E004F022EFC394644003020FE49000C003 -:100EC700E004F0303B37900031E064037003021018 -:100ED70039E490008AF0A3F07B64FA7D03FF1229BE -:100EE7002F9000317404F0E490008AF0A3F0FBFA2D -:100EF700FD7F0112292F9000307402802D303A4176 -:100F0700E490008AF0A3F0FBFA7D01FF12292F90ED -:100F170000317401F0E490008AF0A3F0FBFA7D0140 -:100F27007F0112292F9000307401F0E490008AF0BD -:100F3700A3F0FBFAFD7F0212292F90003274028082 -:100F470043E490008A303C53F0A3F0FBFA7D01FFA5 -:100F570012292F9000317401F0E490008AF0A3F079 -:100F6700FBFA7D017F0112292F9000307401F0E414 -:100F770090008AF0A3F0FBFA7D017F0212292F90DF -:100F870000327401F0E490008AF0A3F0FBFAFD7FD1 -:100F97000312292F90002F7402F022F0A3F0FBFA1E -:100FA7007D01FF12292FE490008AF0A3F0FBFA7D60 -:100FB700017F0112292FE490008AF0A3F0FBFA7D4C -:100FC700017F0212292FE490008AF0A3F0FBFA7D3B -:100FD700017F0312292F90003174018048C245C256 -:100FE70036C20EC232E490008AF0A3F0FBFAFDFF8E -:100FF70012292FE490008AF0A3F0FBFAFD7F01127B -:10100700292FE490008AF0A3F0FBFAFD7F02122952 -:101017002FE490008AF0A3F0FBFAFD7F0312292F3B -:101027009000317402F0900030F0900032F09000A0 -:021037002FF098 -:011039002294 -:102DFB009000BCE0FF04F01219BD9000BCE0B406DB -:102E0B000204F09000BCE0C3940840037402F0226B -:102E5A00122D2F121FC4122D5D302411C2241224E8 -:0E2E6A00A41229F212276A120C6712170C220A -:101BF200E4900085F09000C2E0FFA3E0FE6F606C0D -:101C0200A3EEF09000C2E0A3F024FE60351460421F -:101C120014604624036003021DED90008AE4F0A3E1 -:101C22007403F07B647A007D02E4FF12292F900096 -:101C32008AE4F0A37403F07B647A007D027F0102E0 -:101C4200292F200F03021DEDD24475E80CC20DC2EC -:101C52000F229000D7740FF0227BFF7A2679299009 -:101C620000897402F0A3741FF0021D749000C3E097 -:101C720024FE6035146076147003021D872403600D -:101C820003021DED9000BEE004F0E0C3940850038F -:101C9200021DED9000C27402F0E49000BEF0781CC8 -:101CA200E66003021DED021D80E5F6700CE5F8709A -:101CB20008E5FA7004E5E1602D9000C27403F0E5D6 -:101CC200F6540FFFE4FCFDFE7B08FAF9F8C3120A92 -:101CD2007E70069000C27404F075E11F75F60F75F0 -:101CE200F8FC75FABC229000C27403F0222028038B -:101CF200021DEDC22875FE6E900085E5FFF07BFFA8 -:101D02007A2679417816E6FF900089E4F0A3EFF095 -:101D1200900085E0FF90008BE4F0A3EFF0AFE2A328 -:101D2200E4F0A3EFF0AFE3A3E4F0A3EFF0AFE4A39A -:101D3200E4F0A3EFF0AFE5A3E4F0A3EFF0AFE6A386 -:101D4200E4F0A3EFF09000D7E0FF900097E4F0A357 -:101D5200EFF01214129000D7E0D394004017E01471 -:101D6200F0204803021DEDC248740FF07BFF7A2673 -:101D720079990214127BFF7A2679B4121412900018 -:101D8200C27404F022122EDA505B122D8B7F0412E1 -:101D92002AA7122EEEE490008AF0A3F0FBFAFDFFD0 -:101DA20012292FE490008AF0A3F0FBFAFD7F0112C2 -:101DB200292FE490008AF0A3F0FBFAFD7F0212299A -:101DC2002FE490008AF0A3F0FBFAFD7F0312292F83 -:101DD2009000317402F0900030F0900032F09000E8 -:0B1DE2002FF0022F449000C27402F0AA -:011DED0022D3 -:102CCD00302726C2279000BFE0FF04F0EF14600C00 -:102CDD0014600E24027012122DFB800D122E5A80DC -:102CED0008121BF2E49000BFF0302905C229121022 -:022CFD003A2279 -:102E1B0000000000000000000000000000000000A7 -:102E2B000000000000000000000000000000000097 -:10225500C112C10EC11041002DFFC10D4200070082 -:1022650000420005000042002B000041002A00C189 -:102275000FC1111A2A000000000000000000000034 -:102285000000000000000000000000000000002029 -:1022950024440000000000000000000000000000D1 -:1022A5000000000000000000000000000000000029 -:0E22B500000000000000420028000001680048 -:102AA700EF24FE601E14602814602F24FE60352476 -:102AB70005703D43BD8853BDBB75FE6F53FFF243A1 -:102AC700FF092243BDCC75FE6F53FFFE43FF0C2267 -:102AD70053BD7753B7CF43B7302253B7CF43B7036D -:102AE70053BD772253B7CC53BD7775FE6A43FF308A -:012AF70022BC -:10170C00203F0302198430445920100A7D3FE4FF26 -:10171C0012000ED210227F03122AA7E4900003F0CD -:10172C00900001F0A3F0C200C201D20B9000D3E0F4 -:10173C007020C20ED202D203C205C208C204C20972 -:10174C00C20AD212C237900026F0A3F090002EF0FD -:10175C008008C202C203D205C206C210C20DC20F5B -:10176C00C244900001E0C394055003021924300BCD -:10177C0005C20B0218F820002ED200E5E354A0603D -:10178C0021E5E354A0FFE4FCFDFE7BA0FAF9F8C3CD -:10179C00120A7E90002A70057402F0800A7401F01F -:1017AC008005E490002AF020050302183C9000020A -:1017BC00E0C3940550077F06122AA7802620013A21 -:1017CC00900003E0FFD39414501EEF54037003FDFC -:1017DC008009900003E020E0077D017F06121DEEDA -:1017EC00900003E004F080487F04122AA7E49000E4 -:1017FC0003F0D201D211C2128036781DE67031305E -:10180C001104C2118022E5E354A0FBE4FAF9F8902C -:10181C000000E0FFE4FCFDFEC3120A7E6012E5E36B -:10182C0054A06004D20ED238E5E354A0900000F02E -:10183C0020020302198130373F2010237D3FE4FF43 -:10184C0012000ED210D212E4900026F0A3F09000F9 -:10185C002EF0900001F0C208D20BC200D204227FFD -:10186C0003122AA7C210D203900001E0D3940350B4 -:10187C0003021924C237804D20044A900002E0FF75 -:10188C00D39414501BEF54037003FD800990000295 -:10189C00E020E0077D017F81121DEE900002807830 -:1018AC00900003E0FFD39414501BEF54037003FD1E -:1018BC008009900003E020E0077D017F07121DEEF8 -:1018CC009000038053E5E8540C6026200F1E900016 -:1018DC0003E004F0E0C3940550030219BCE4F07576 -:1018EC00E80C7F03122AA7D20DC212227F04022A0F -:1018FC00A7C20DC20F3003097F03122AA7C20380AF -:10190C007420083DE5E354AC64AC6003303921909D -:10191C000001E0D394285004E004F022D208E490B3 -:10192C000004F0900001F0C2097F04122AA7804540 -:10193C00900027E0703F7B017A00790912008680C5 -:10194C0034900004E0FFD39414501EEF5403700342 -:10195C00FD8009900004E020E0077D017F80121DCE -:10196C00EE900004E004F0800C200909D2097F04F9 -:10197C00122AA7C212C2072220070BD2077F041219 -:10198C002AA7C2128022E5E354A0FBE4FAF9F890EE -:10199C000000E0FFE4FCFDFEC3120A7E6012E5E3EA -:1019AC0054A06004D20ED238E5E354A0900000F0AD -:0119BC002208 -:06008600900085120AD66D -:10008C0090002EE01470030201631470030202420C -:10009C001470030202B314700302041F24046003DF -:1000AC0002059F900085120AB690001E1208CB60C4 -:1000BC000302059F7868E6D3940A50260690001A2E -:1000CC00743F12092B300C0302059F900085120A15 -:1000DC00B690001A1208CBFDE4FF12000ED20C02EF -:1000EC00059FE47868F6C20C900085120AB6900061 -:1000FC0016E412092B900015E412092B900013E45E -:10010C0012092B900012E412092B900011E4120931 -:10011C002B900010E412092B900018E412092B907C -:10012C000017E412092B90000EE4F5F0120A02906D -:10013C00000CE4F5F0120A02900019E412092B905D -:10014C00001B743F12092B90002E7401F0E49000F8 -:10015C0007F0A3F002059FE5E35408FFE4FCEF6011 -:10016C001CE5E354046016900085120AB690001E3C -:10017C00740112092BE490002EF002059FE5E35464 -:10018C0008FFE4FCEF704A9000B1E0FEA3E0FF90A2 -:10019C000085120AB6900002EE8FF0120A027D055D -:1001AC0012095FEF7802C333CE33CED8F9FF90003B -:1001BC0085120AB6900006EE8FF0120A029000B279 -:1001CC00E025E0FF9000B1E03390000A8FF0120AB6 -:1001DC0002E5E35404FFE4FCEF704F9000AFE0FE47 -:1001EC00A3E0FF900085120AB6EE8FF01209E3909F -:1001FC0000AFE0FEA3E0FF7D0512095FEF7802C3BC -:10020C0033CE33CED8F9FF900085120AB690000495 -:10021C00EE8FF0120A029000B0E025E0FF9000AFE4 -:10022C00E0339000088FF0120A02900085120AB693 -:10023C0090001D020594D3900008E09405900007EF -:10024C00E094005002806FE4900007F0A3F0E5E327 -:10025C005408FFEF701F9000B1E0FEA3E0FF900088 -:10026C0085120AB690000EEE8FF0120A029000185A -:10027C00740112092BE5E35404FFE4FCEF701F90AA -:10028C0000AFE0FEA3E0FF900085120AB690000CD0 -:10029C00EE8FF0120A02900017740112092B9000D5 -:1002AC002E7403F002059FD3900008E09402900096 -:1002BC0007E09400500AE475F00112099502059FBD -:1002CC00E4900007F0A3F0900085120AB690000AA3 -:1002DC001209ABFFAEF090000E1209ABD39FE5F004 -:1002EC009E501C900085120AB69000081209ABFFB4 -:1002FC00AEF090000C1209ABD39FE5F09E4011E4D8 -:10030C0090002EF0900085120AB690001D0203E1B9 -:10031C00900085120AB69000181208CB6401706D1B -:10032C0090000E1209ABFFAEF0D39414EE94005073 -:10033C0031E5E330E31F900016740112092B900095 -:10034C001A1208CBC3943F4044900085120AB69011 -:10035C000018E48035900085120AB69000137401E1 -:10036C008028900085120AB69000061209ABFDD3C6 -:10037C00EF9DEE95F09000854008120AB6900013A0 -:10038C008006120AB6900016740112092B90008593 -:10039C00120AB69000171208CB6401600302059F85 -:1003AC0090000C1209ABFFAEF0D39414EE940050F5 -:1003BC0034E5E330E222900015740112092B900011 -:1003CC001A1208CBC3943F500302059F900085126C -:1003DC000AB6900017E48035900085120AB690009A -:1003EC001274018028900085120AB690000412093C -:1003FC00ABFDD3EF9DEE95F09000854008120AB648 -:10040C009000128006120AB6900015740112092B86 -:10041C0002059FD3900008E09414900007E094002C -:10042C005031E475F0011209959000B1E0FEA3E0A3 -:10043C00FF900085120AB690000EEE8FF0120A02A1 -:10044C009000AFE0FFA3E090000CCF8FF0120A02F7 -:10045C0002059FE4900007F0A3F0900085120AB605 -:10046C009000181208CB640160030204FD90001781 -:10047C001208CB6401707A9000061209ABFFAEF043 -:10048C0090000E1209ABFDACF0C39FEC9E4018908F -:10049C000085120AB690000A1209ABFFD3ED9FEC4F -:1004AC0095F0500302059F900085120AB690000447 -:1004BC001209ABFFAEF090000C1209ABFDACF0C30F -:1004CC009FEC9E4018900085120AB6900008120905 -:1004DC00ABFFD3ED9FEC95F0500302059F90008588 -:1004EC00120AB6900016740112092B900015020521 -:1004FC0094900085120AB69000181208CB64017013 -:10050C00419000061209ABFFAEF090000E1209AB41 -:10051C00FDACF0C39FEC9E4015900085120AB6907E -:10052C00000A1209ABFFD3ED9FEC95F0401490003C -:10053C0085120AB6900016740112092B90002E74C5 -:10054C0002F0900085120AB69000171208CB6401D5 -:10055C0070419000081209ABFFAEF090000C12092C -:10056C00ABFDACF0D39FEC9E5015900085120AB6F3 -:10057C009000041209ABFFC3ED9FEC95F050149062 -:10058C000085120AB6900015740112092B90002EEA -:10059C007402F0900085120AB69000181208CBFF76 -:1005AC006401600D9000171208CB64016003020710 -:1005BC00A29000131208CBFE6401600D9000121281 -:1005CC0008CB6401600302071CEFB4011E900017F6 -:1005DC001208CBB40115EEB401119000131208CB24 -:1005EC00B40108900014740112092B900018120821 -:1005FC00CBFFB401189000171208CB7010900013A9 -:10060C001208CB6401702390001404801AEF701A46 -:10061C009000171208CBB401119000121208CBB441 -:10062C000108900014740112092B900013E41209B4 -:10063C002B900012E412092B9000141208CB6401C9 -:10064C0060030207BB900085120AB690001A1208CC -:10065C00CBD39400400890001A74FE1208F8900056 -:10066C00191208CBFF90001A1208CBD39F4021908F -:10067C0000B9E024C8FF9000B8E03400FEC390003D -:10068C00B5E09FEE6480F89000B4E0648098504828 -:10069C00900085120AB69000191208CBFF90001A30 -:1006AC001208CBD39F9000855013120AB690001AF3 -:1006BC00EF12092B90001CE412092B8013120AB6BE -:1006CC0090001C740112092B90001A74021208F885 -:1006DC0090002E7404F0801390002E7402F09000A1 -:1006EC0085120AB690001CE412092BE4900007F066 -:1006FC00A3F0900085120AB6900014E412092B9016 -:10070C00001C1208CBFF90001A1208CBFD02079FA9 -:10071C00900085120AB69000161208CB6401600D89 -:10072C009000151208CB640160030207BB90001601 -:10073C00E412092B900015E412092B90001A1208F0 -:10074C00CBC3943F500E900085120AB690001A74D9 -:10075C00021208F890002E7404F0900085120AB66C -:10076C0090001B1208CBFF90001A1208CBC39F40BD -:10077C0013900085120AB690001AEF12092B900004 -:10078C002E7401F0900085120AB690001A1208CB54 -:10079C00FDE4FF02000E90002EE0D394024010E422 -:0F07AC00F0900085120AB690001E740112092BFE -:0107BB00221B -:0B2C1C009000A9120AD69000ACEDF069 -:102C2700E4FE9000ACE0FD14F0ED60299000A9E40B -:102C370075F001120ABF1208B26EFEE4FFEFC394EB -:102C47000850DFEE30E007C313648CFE8004EEC348 -:072C570013FE0F80E8AF0639 -:012C5E002253 -:081DEE00900085EFF0A3EDF079 -:101DF600E4A3F0A3F078897C007D017BFF7A2E793D -:101E06001BFE7F2012088CE4900089F0A37455F025 -:101E1600A374AAF0900085E0FE90008DF0900086F5 -:101E2600E0FD90002DF0EE120ADF1E49011E780239 -:101E36001EC7031ED4061ED4071F1D801F25810042 -:101E4600001F3390008C7402F0ED700E90008E74BB -:101E560002F0E490002BF0021F33900086E064014C -:101E66006003021F3390008E04F0E490002CF00211 -:101E76001F3390008C7420F07F05900086E075F08B -:101E860012A424442FF8E6FE74892FF582E4340068 -:101E9600F583EEF00FEFB412E17F17EFC3940D4018 -:101EA60003021F33900086E075F00DA4242A2FF854 -:101EB600E6FE74892FF582E43400F583EEF00F8098 -:101EC600DA90008C7402F090008E04F0805F90002F -:101ED6008C7405F090008E7401F0781CE675F005A0 -:101EE600A4A3F0A37420F0900086E0FF700D90008C -:101EF60028E07002800F9000298015EFB4012E9023 -:101F06000029E0700890009174FFF080209000286E -:101F1600E0900091F0801690008C7401F0800E9095 -:101F2600008C7402F090002AE090008EF090008CF5 -:101F3600E02404FFE433900087F0A3EFF07B017AFE -:101F4600007989FD122C1C900087E0FCA3E024890F -:101F5600F58274003CF583EFF07F01122AA790000A -:101F660086E0FF700843BD0253BDFE8016EFB40144 -:101F76000843BD2053BDEF800AEFB4FF0643BD22E0 -:101F860053BDEE900088E02402FF900087E0340005 -:101F9600FE7B017A007989122C9A900086E0FF7008 -:101FA6000753BDFD43BD0122EFB4010753BDDF4317 -:0D1FB600BD1022EFB4FF0653BDDF43BD1187 -:011FC30022FB -:1027EC00EF24FA605014604D24067069E4FE746D99 -:1027FC002EF8E6FF90002DE075F012A424442EF87C -:10280C00A6070EEEB412E7E4FE747F2EF8E6FF90F6 -:10281C00002DE075F00DA4242A2EF8A6070EEEB4B8 -:10282C0008E790002DE0700690002B04F022900039 -:10283C002C7401F022786DE6B4E30D900005740160 -:10284C00F008E6900028F0229000067401F0786EF3 -:05285C00E6900029F0E8 -:012861002254 -:102D5D00E4FFFE900085F0304323C243FB7A0079F7 -:102D6D0069786BE62403FD122C1C7E00786BE6243B -:0D2D7D006CF8E6B50707786CE6FF1227EC4E -:012D8A002226 -:1022C300011C00C139C13DC13BC13AC13C011B697D -:1022D300602A005B0BB80BEA0C1C0C800CB20CE4FC -:1022E3000D160D480D7A0DAC0E100E420E740EA68F -:0E22F3000ED80F0A0F3C0F870FD2101D106877 -:10276A00E4FFEF25E0245BF582E43400F583E0FC26 -:10277A00A3E0FDC39000B9E09D9000B8E09C40053D -:10278A000FEFB415DD781CE6FEEFD39E4004180661 -:10279A008003781B16E5E16007E4F5E1781CA607DB -:1027AA00781BE6FED394C85006EEC3940A50077805 -:1027BA001CA607187669781CE6FFD394005002D24B -:1027CA003DEFD394015002D239EFD394055002D28F -:1027DA003BEFD3940A5002D23AEFD3940F5002D26D -:0127EA003CB2 -:0127EB0022CB -:102301004100C9004100CC004100C8004200C600A4 -:10231100004100CA00C126C127C129C125C124C16C -:09232100284100CB00C12AC12BA8 -:102862009000CBE06062E4F0D2269000C9E004F070 -:10287200E0C394054004E4F0D2279000CCE004F0D9 -:10288200E0C3940A4004E4F0D2299000C6E475F053 -:1028920001120995C39000C7E094649000C6E094C9 -:1028A200004006E4F0A3F0D2249000C8E004F0E077 -:1028B200C394FA4013E4F0D2259000CAE004F0E099 -:0928C20094044004E4F0D2282241 -:03000B00022DB70C -:102DB700C0E0C083C082C0D074FC258CF58C7466DB -:102DC700258AF58A9000CB7401F0D0D0D082D083C9 -:032DD700D0E03217 -:0E2F1C00758901758CFC758A66D2A9D28C224B -:102B9400EFD39401501675FE0EEF25E02404FE7465 -:102BA40003A806088002C333D8FC801475FE0FEF17 -:102BB40024FE25E0FE7403A806088002C333D8FC73 -:102BC400F452FFEFB4040C75FE0F53FFF075FE0EC4 -:042BD40053FF0F227A -:102EC40075FE54EF5407F5FF75FE56AF058FFF7579 -:062ED400FE5375FF012210 -:102AF800EFD39401501875FE0EEF25E02404FE7400 -:102B080003A806088002C333D8FC42FF801675FE6E -:102B18000FEF24FE25E0FE7403A806088002C333E5 -:102B2800D8FC42FFEF70038DCE22EFB401038DCFA6 -:102B380022EFB402038DDE22EFB40304AF058FDF6A -:012B4800226A -:032FFD00010102CD -:1026EA00022EACE493A3F8E493A34003F68001F22C -:1026FA0008DFF48029E493A3F85407240CC8C333F1 -:10270A00C4540F4420C8834004F456800146F6DFBF -:10271A00E4800B010204081020408090217FE47EAF -:10272A00019360BCA3FF543F30E509541FFEE493B4 -:10273A00A360010ECF54C025E060A840B8E493A37B -:10274A00FAE493A3F8E493A3C8C582C8CAC583CAA6 -:10275A00F0A3C8C582C8CAC583CADFE9DEE780BE5E -:01232A0000B2 -:1007BC00E709F608DFFA8046E709F208DFFA803E1F -:1007CC0088828C83E709F0A3DFFA8032E309F6080C -:1007DC00DFFA8078E309F208DFFA807088828C8374 -:1007EC00E309F0A3DFFA806489828A83E0A3F60828 -:1007FC00DFFA805889828A83E0A3F208DFFA804C02 -:10080C0080D280FA80C680D4806980F280338010D8 -:10081C0080A680EA809A80A880DA80E280CA803341 -:10082C0089828A83ECFAE493A3C8C582C8CCC583B9 -:10083C00CCF0A3C8C582C8CCC583CCDFE9DEE78089 -:10084C000D89828A83E493A3F608DFF9ECFAA9F008 -:10085C00EDFB2289828A83ECFAE0A3C8C582C8CC5E -:10086C00C583CCF0A3C8C582C8CCC583CCDFEADE77 -:10087C00E880DB89828A83E493A3F208DFF980CCD9 -:10088C0088F0EF60010E4E60C388F0ED2402B404D2 -:10089C000050B9F582EB2402B4040050AF23234579 -:0608AC00822390080C738A -:1008B200BB010689828A83E0225002E722BBFE0244 -:0908C200E32289828A83E4932277 -:1008CB00BB010CE58229F582E5833AF583E02250E2 -:1008DB0006E92582F8E622BBFE06E92582F8E2222C -:0D08EB00E58229F582E5833AF583E4932246 -:1008F800BB010FF8E58229F582E5833AF583E02804 -:10090800F0225009C58229F8E58226F622BBFE09A5 -:10091800C58229F8E22582F222F8EA2583F583E9DF -:03092800932822EF -:10092B00F8BB010DE58229F582E5833AF583E8F002 -:10093B00225006E92582C8F622BBFE05E92582C8AE -:02094B00F22296 -:10094D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42EBE -:02095D00FE2278 -:10095F00C2D5EC30E709B2D5E4C39DFDE49CFCEEB3 -:10096F0030E715B2D5E4C39FFFE49EFE120B44C3DC -:10097F00E49DFDE49CFC8003120B4430D507C3E4D7 -:06098F009FFFE49EFE2222 -:10099500C5F0F8A3E028F0C5F0F8E58215827002ED -:0609A5001583E038F0228A -:1009AB00BB0110E58229F582E5833AF583E0F5F08A -:1009BB00A3E0225009E92582F886F008E622BBFE67 -:1009CB000AE92582F8E2F5F008E222E5832AF583AD -:0809DB00E993F5F0A3E9932272 -:1009E300BB010A89828A83F0E5F0A3F0225006F75F -:0F09F30009A7F01922BBFE06F3E5F009F319225C -:100A0200F8BB0111E58229F582E5833AF583E8F026 -:100A1200E5F0A3F0225009E92582C8F608A6F022E3 -:0D0A2200BBFE09E92582C8F2E5F008F222CA -:100A2F00E88FF0A4CC8BF0A42CFCE98EF0A42CFC66 -:100A3F008AF0EDA42CFCEA8EF0A4CDA8F08BF0A4E4 -:100A4F002DCC3825F0FDE98FF0A42CCD35F0FCEB43 -:100A5F008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3908 -:0F0A6F00FEE43CFCEAA42DCE35F0FDE43CFC2275 -:102BD800C2D5E830E70FB2D5E4C39BFBE49AFAE428 -:102BE80099F9E498F8EC30E717B2D5122C0E120BCD -:102BF800D5E4C39BFBE49AFAE499F9E498F88003D6 -:102C0800120BD530D50DE4C39FFFE49EFEE49DFD75 -:042C1800E49CFC221A -:100A7E00EB9FF5F0EA9E42F0E99D42F0E89C45F0CE -:010A8E002245 -:100A8F00E8600FECC313FCED13FDEE13FEEF13FF45 -:030A9F00D8F12269 -:100AA200E86010ECA2E713FCED13FDEE13FEEF136A -:040AB200FFD8F02257 -:090AB600E0FBA3E0FAA3E0F92241 -:100ABF00F8E0FBA3A3E0F925F0F0E58215827002C0 -:070ACF001583E0FA38F02264 -:090AD600EBF0A3EAF0A3E9F02221 -:100ADF00D083D082F8E4937012740193700DA3A3A6 -:100AEF0093F8740193F5828883E4737402936860BA -:060AFF00EFA3A3A380DFBA -:100B0500EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D7D -:100B1500FDE43CFCE8A42EC8C5F03DFDE43CFCEF3B -:0D0B2500A4FFE5F028FEE43DFDE43CFC22C9 -:1013A700E5082489F582E43400F583E005082290F6 -:1013B7000086301A03900089E475F001120ABF0213 -:1013C70008B22013E97F2ED2138018EF540F249010 -:1013D700D43440D4FF30170BEF24BFB41A005003A6 -:1013E7002461FFE50960021509050CE50C7002058B -:1013F7000B301A0E900086E475F001120ABFEF0257 -:101407000B32022F0E7403D21A8003E4C21AF508B6 -:10141700900086120AD6E4F509F50BF50CE509608C -:10142700077F201213EA80F5750AFFC214C213C2A0 -:1014370015C216C218C219C21B1213B6FF700D309F -:101447001A057F001213FBAF0CAE0B22B4255FC247 -:10145700D5C2171213B6FF24D0B40A00501A75F07C -:101467000A780930D50508B6FF0106C6A426F62076 -:10147700D5047002D21680D924CFB41A00EF5004D5 -:10148700C2E5D2170215FCD21480C6D21380C0D28F -:101497001580BCD2D580BAD21880B47F201213EA47 -:1014A7002015077401B5090040F11213A7FF1213A5 -:1014B700EA021424D21BD21980951213A7FB121328 -:1014C700A7FA1213A7F94A4B700679CD7A167BFF54 -:1014D70020152EE509602A7E008E8275830012088A -:1014E700CB60060EEE650A70F0C2D5EBC0E0EAC02D -:1014F700E0E9C0E0EE121643D0E0F9D0E0FAD0E020 -:10150700FB1208B2FF60AAEBC0E0EAC0E0E9C0E066 -:101517001213EAD0E02401F9D0E03400FAD0E0FB5E -:10152700E50A0460DCD50AD980877BFF7A16793F04 -:10153700D215809C791080027908C219C21B8008D5 -:10154700D2D5790A8004790AC2D5E50A047002F572 -:101557000AE4FAFDFEFF1213A7FC7B0820141312FE -:1015670013A7FD7B1030130A1213A7FE1213A7FF50 -:101577007B20EC3382D592D55013C3E43013069FFA -:10158700FFE49EFEE42014039DFDE49CFCE4CBF8FD -:10159700C214EC700CCFCECDCCE824F8F870F380F1 -:1015A70017C3EF33FFEE33FEED33FDEC33FCEB33C4 -:1015B700FB994002FB0FD8E9EB301405F8D0E0C4E3 -:1015C70048B214C0E00AEC4D4E4F78207B0070C241 -:1015D700EAB50A0040BCC0E0121645D0F0D0E020C2 -:1015E7001404C4C0E0C4B214C0F01213D3D0F0D5B1 -:1015F700F0EB021424120ADF14C153153B5814925E -:101607004C148E42153F4F15474415474914A743BD -:08161700154D55153146153142 -:10161F004515314716ED5014962D149A2E14BD2BE7 -:10162F00149E2314BB2016D62A145648000014B556 -:10163F003F3F3F00790AA2D5201614301809B91080 -:10164F00020404B9080104A2D52019025001042094 -:10165F0015689215B509005034C0E07F2030161977 -:10166F007F30A21572197218500F12169CC215C234 -:10167F0019C218C21B7F30800F301803E9C0E01267 -:10168F0013EA301803D0E0F9D0E0B509CC301817C1 -:10169F007F30B9100C1213EA7F583017077F78800C -:1016AF0003B908031213EA3015057F2D0213EA7FE1 -:1016BF0020201BF87F2B2019F322921580CF286E44 -:1016CF00756C6C2900D2141213A73014F8C2147859 -:1016DF000930D50108F60214562D504349581213FC -:1016EF00A72403B405004001E49016E8931213DB1E -:0D16FF00743A1213DBD21675090402153B74 -:100B3200BB010689828A83F0225002F722BBFE01A2 -:020B4200F3229C -:100B4400BC000BBE0029EF8DF084FFADF022E4CC95 -:100B5400F875F008EF2FFFEE33FEEC33FCEE9DEC5E -:100B6400984005FCEE9DFE0FD5F0E9E4CEFD22EDA4 -:100B7400F8F5F0EE8420D21CFEADF075F008EF2FEE -:100B8400FFED33FD4007985006D5F0F222C398FDDF -:050B94000FD5F0EA227C -:100B990075F008758200EF2FFFEE33FECD33CDCC13 -:100BA90033CCC58233C5829BED9AEC99E582984096 -:100BB9000CF582EE9BFEED9AFDEC99FC0FD5F0D673 -:100BC900E4CEFBE4CDFAE4CCF9A88222B800C1B99D -:100BD9000059BA002DEC8BF084CFCECDFCE5F0CBDB -:100BE900F97818EF2FFFEE33FEED33FDEC33FCEB14 -:100BF90033FB10D703994004EB99FB0FD8E5E4F9CF -:100C0900FA227818EF2FFFEE33FEED33FDEC33FCBB -:100C1900C933C910D7059BE99A4007EC9BFCE99AAF -:100C2900F90FD8E0E4C9FAE4CCFB2275F010EF2FF4 -:100C3900FFEE33FEED33FDCC33CCC833C810D707F4 -:100C49009BEC9AE899400AED9BFDEC9AFCE899F82F -:0E0C59000FD5F0DAE4CDFBE4CCFAE4C8F922C2 -:00000001FF diff --git a/Out/8837_EVB_250113_1656_F537_010102.bin b/Out/8837_EVB_250113_1656_F537_010102.bin deleted file mode 100644 index a8ea326..0000000 Binary files a/Out/8837_EVB_250113_1656_F537_010102.bin and /dev/null differ diff --git a/Out/8837_EVB_250121_1409.bin b/Out/8837_EVB_250121_1409.bin new file mode 100644 index 0000000..f7ba548 Binary files /dev/null and b/Out/8837_EVB_250121_1409.bin differ diff --git a/Out/8837_EVB_250121_1409.hex b/Out/8837_EVB_250121_1409.hex new file mode 100644 index 0000000..b348a8e --- /dev/null +++ b/Out/8837_EVB_250121_1409.hex @@ -0,0 +1,809 @@ +:03000000022517BF +:10251700758E3075D20078FFE4F6D8FD9000007F05 +:10252700007E01E4F0A3DFFCDEFA758188022572E4 +:102D4B0053797374656D20496E69742E5665723AAA +:0C2D5B002532782532782532780D0A00E8 +:102C7E0012289D7BFF7A2D794B900089E4F0A304F6 +:102C8E00F0A3E4F0A304F0A3E4F0A37402F0121492 +:0D2C9E000DD2AED2BE1226AF122BF080F484 +:1029960075FE0F43FF8075FE2975FFB575A5217578 +:1029A600FE1E43FF01E5A3540F24F8780DF6E5A3B8 +:1029B600C4540F7814F6E5AD540F24F875F00AA444 +:1029C6007810F67812A6ABE5ADC4540F24F875F06E +:0B29D6000AA418F67813A6ACD2BD22AC +:1019B800900085EFF0204403021BD29000B6E0FEB1 +:1019C800A3E07803CEC313CE13D8F9F0EE9000B697 +:1019D800F09000B3E024FD6048147003021A9D14CF +:1019E8007003021B1124FE7003021B81240560038F +:1019F800021BCF780DE6FF3395E0FEC39000B7E0F9 +:101A08009FFF9000B6E09EFE9000BAF0A3EFF0C3EF +:101A1800EE648094804003021BCFE49000BA021B5E +:101A2800CC9000B6E0FEA3E0FF7C097DC4120B0554 +:101A3800780A120A8F9000B6EEF0A3EFF07810E65D +:101A4800FD3395E0FCC3EF9DFFEE9CFE3395E0FD72 +:101A5800FCE47B64FAF9F8120A2FC006C007781272 +:101A6800E675F002A424F4FFE5F03401AB07FA337D +:101A780095E0F9F8D007D006122A259000AFEEF0CD +:101A8800A3EFF0C3EE648094804003021BCFE49080 +:101A980000AF021BCC9000B6E0FEA3E0FF7C097DFE +:101AA800C4120B05780A120A8F9000B6EEF0A3EF65 +:101AB800F07811E6FD3395E0FCC3EF9DFFEE9CFE48 +:101AC8003395E0FDFCE47B64FAF9F8120A2FC006AE +:101AD800C0077813E675F002A424F4FFE5F034019A +:101AE800AB07FA3395E0F9F8D007D006122A25900B +:101AF80000B1EEF0A3EFF0C3EE64809480400302DF +:101B08001BCFE49000B1021BCC9000B6E0FEA3E02E +:101B1800FF7C097DC4120B05780A120A8F9000B663 +:101B2800EEF0A3EFF0E025E0FE9000B6E033900081 +:101B3800B8F0A3CEF09000B8E0FEA3E07802C3337B +:101B4800CE33CED8F9FDAC067814E6FF3395E0FE27 +:101B5800EF24F8FFEE34FFFE12094D7C037DE812F6 +:101B6800095F9000B8EE8FF0120995C39000B8E0B5 +:101B7800648094805051E4804B780DE6FF3395E003 +:101B8800FEC39000B7E09FFF9000B6E09EFEE4FC25 +:101B9800FD7BC47A09F9F8120A2F780A120AA29072 +:101BA80000B6EEF0A3EFF0E025E0FF9000B6E033DA +:101BB800FE9000B4F0A3EFF0C3EE64809480500769 +:101BC800E49000B4F0A3F0C24422900085E09000B5 +:101BD800B3F0C454F04401F5A5E49000B6F0A3F0C6 +:051BE8009000BDF02299 +:03006B0002271851 +:10271800C0E0C0F0C083C082C0D075D000C000C087 +:1027280006C007E5F330E038AFA1780E760008A6BA +:1027380007E5A254031846F608E6F69000BDE0C384 +:102748009408501718E6FE08E6FF9000B6EE8FF0E2 +:102758001209959000BDE004F08005D24453A5FE0F +:1027680075F301D007D006D000D0D0D082D083D066 +:04277800F0D0E0328B +:102B240075FE8743FF207815760375FE7043FF1802 +:102B340053B3F143B302E47817F67819F67815E63F +:102B44007818F6781A76017917E718461846F5B119 +:042B540075B2012233 +:10217900E4FE9000BAE0FCA3E0FDC394E8EC94030C +:1021890040037F0022EF7003022292D3ED940FECFB +:1021990094034003022270ED94CBEC9400500302A7 +:1021A9002270D3ED94AAEC94024022D2207815E64D +:1021B900FF137818F6302111D3ED94BFEC94024047 +:1021C90004C22180047818A607E4FE8070D3ED9438 +:1021D900AAEC94025043ED9437EC9401403BD22190 +:1021E9007815E6FF7818F6302013D3ED9493EC9424 +:1021F900025004C2208006EFC3137818F6781A76C5 +:1022090001301B11D3ED9451EC94015004C21B8091 +:1022190004E4781AF6E4FE8024D3ED9437EC9401B3 +:10222900501BD21BE4781AF6302110ED9426EC9459 +:10223900015004C2218004781A7601E4FE301E118F +:10224900C3ED94F3EC94025006C21EE4FE80027EB4 +:1022590001301F2FD3ED94DDEC94004006C21FE43A +:10226900FE80207E01801CD3ED940FEC9403400680 +:10227900D21E7E01800DD3ED94CBEC94005004D294 +:102289001F7E01C21CC21D8058C21EC21FD3ED94FD +:102299009FEC94035031ED9471EC94004029301C6B +:1022A90010ED9484EC94035006C21CE4FE80027E77 +:1022B90001301D2DD3ED9482EC94004006C21DE43B +:1022C900FE801E7E01801AD3ED949FEC9403400496 +:1022D900D21C800BC3ED9471EC94005002D21D7E88 +:0822E90001781AE6F5B2AF0618 +:0122F10022CA +:1022F200E4FBFAE5E65480FFE4FCFDFEEF700753D1 +:10230200B3FE7816F62278167601E5E830E5057513 +:10231200E8208005E5E530E10453B3FE22E5F23022 +:10232200E50475F22022E5F2540C601353B3FEE586 +:10233200F354C070030223CC75F20C75F3C02275FE +:10234200F3C07F01122179EF600653B3FED222223D +:10235200C222E5F230E432781AE6B401067A107B42 +:102362006880047A0F7BA0EB246AFFEA34FFFEC385 +:102372009000B9E09F9000B8E09E500575F2108081 +:102382000353B3FE78167603227917E778194618B5 +:1023920046F5B1781AE6F5B243B311781CE6FFD3DD +:1023A20094014002C23DEFD394034002C239EFD3FD +:1023B20094074002C23BEFD3940C4002C23AEFD3DF +:0A23C20094114002C23C7816760226 +:0123CC0022EE +:10000E00303F10EFB4010475B5C02253B5BFED44B7 +:04001E0080F5B52292 +:102DC500E5B55480FFEF6008303F05E4F5B5C23F37 +:012DD50022DB +:10283F00C23FE5E520E156E5E230E703D24022E56D +:10284F00E830E00D30244675E8017D3FE4FF0200DB +:10285F000EE4FF122179EF6006122DC5D23E22C27F +:10286F003E303D03022DC5D23F3040217816E6B4ED +:10287F00021BC39000B9E094109000B8E0648094FC +:0E288F008E4005D23FC24022122DC5C23F220C +:102C2200E5E25408FF9000D1E06F6021E5E230E375 +:102C3200089000D07401F08005E49000D0F0D245F5 +:0D2C4200C20FD22FD2319000D1EFF0D24757 +:012C4F002262 +:101FBE00E5E25402FFE4FCFDFEEF70319000C775C0 +:101FCE00F0011209959000C7E0FEA3E0FFC394173D +:101FDE00EE94024004D237800EC3EF9487EE940045 +:101FEE004005203602D236D233C2348040303336EA +:101FFE00D247E4781DF6C233D2349000C9F0900077 +:10200E00C7E0FEA3E0FFD3941EEE94005008D23238 +:10201E00D235D231800EC3EF944FEE94015005307D +:10202E003602D238C236E49000C7F0A3F0303462E4 +:10203E00303F5F303827200F0280287F031228F4AC +:10204E009000C9E0D394235003022165C238781D55 +:10205E007602E49000C6F090002BF0A3F030372902 +:10206E00200F0A7D3FE4FF12000ED20F227F0312D3 +:10207E0028F49000C9E0D394235003022165C2379F +:10208E00E49000CAF0781D7603303502C235C234B2 +:10209E00C20F9000D0E064016003022178781DE643 +:1020AE006402600302213A9000C6E0C3940150100E +:1020BE00E4FD7F01121DE8E490002BF0A3F08054A4 +:1020CE009000C5E0D394054003E4803990002CE0E5 +:1020DE00B4010FE4FD7F02121DE890002C7402F093 +:1020EE00803290002CE06402702A90002BE0601D7C +:1020FE007D017F02121DE8E490002BF0A3F090000A +:10210E00C6F09000C5F0781DF6D2108058E4FD7F21 +:10211E0001121DE89000C6E0D39414400A9000C549 +:10212E00E004F0E4A3F0229000C6802B781DE66454 +:10213E000370379000CAE0FFC394B4501EEF540FE3 +:10214E0070047D0180099000CAE054077006FD7F7F +:10215E0003121DE89000CAE004F022E4781DF6D2C6 +:0A216E00109000CAF07F041228F45C +:012178002244 +:102BBE0075FE0675FF3C75FE0E53FF0F75FE0F5327 +:102BCE00FFF075FE0375FFAAE4900031F09000301F +:102BDE00F0900032F090002FF0C282C283C285C204 +:022BEE0084223F +:102D6700EF14600D14600D14600D2403700BD282F4 +:0A2D770022D28322D28422D28522C8 +:052D0E00900085E0FFCC +:102D1300EF14600D14600D14600D2403700BC28258 +:0A2D230022C28322C28422C285224C +:1027DF00E4FF74332FF582E43400F583E4F07437AB +:1027EF002FF582E43400F583E4F0EF25E0243BF588 +:1027FF0082E43400F583E4F0A3F0EF25E02443F501 +:10280F0082E43400F583E4F0A3F0EF25E0244BF5E8 +:10281F0082E43400F583E4F0A3F0EF25E02453F5D0 +:0F282F0082E43400F583E4F0A3F00FEFB404A3C8 +:01283E002277 +:10277C00AC0774332CF582E43400F583EDF0EAC336 +:10278C0013FEEB13FFEC25E0243BF582E43400F55B +:10279C0083EEF0A3EFF0AF03EC25E02443F582E4E5 +:1027AC003400F583EAF0A3EFF090008AE0FEA3E09A +:1027BC00FFEC25E0244BF582E43400F583EEF0A326 +:1027CC00EFF0EC25E02453F582E43400F583E4F0DB +:0327DC00A3F02245 +:102AE90074332FF582E43400F583EDF074372FF554 +:102AF90082E43400F583EBF0EF25E0243BF582E432 +:102B09003400F583E4F0A37469F0EF25E02453F56C +:0B2B190082E43400F583E4F0A3F02216 +:10103500E4900085F0F0900085E0FFC39404400340 +:1010450002137774332FF582E43400F583E06022D0 +:1010550024FE602414700302113F1470030211B6BC +:1010650024036003021313900085E0FF122D67022D +:101075001313122D0E021313900085E0FF25E024B3 +:101085003BF582E43400F583E0FCA3E0FDEF25E0C9 +:101095002453F582E43400F583E0FEA3E0C39DEE1E +:1010A5009C5005122D678003122D0E900085E0FFE0 +:1010B50025E02443F582E43400F583E0FCA3E0FD5C +:1010C500EF25E02453F582E43400F583E0FEA3E048 +:1010D500C39DEE9C5003021313900085E025E02488 +:1010E50053F582E43400F583E4F0A3F0EF25E02422 +:1010F5004BF582E43400F583E0FEA3E0D39400EEE3 +:1011050094004016900085E025E0244BF582E434F8 +:1011150000F58374FFF5F0120995900085E0FF2531 +:10112500E0244BF582E43400F583E0FCA3E04C6059 +:101135000302131374332F0211D2900085E0FF25AB +:10114500E0243BF582E43400F583E0FCA3E0FDEF09 +:1011550025E02453F582E43400F583E0FEA3E0D3D3 +:101165009DEE9C5005122D678003122D0E90008573 +:10117500E0FF25E02443F582E43400F583E0FCA399 +:10118500E0FDEF25E02453F582E43400F583E0FE2D +:10119500A3E0C39DEE9C5003021313900085E02548 +:1011A500E02453F582E43400F583E4F0A3F0021360 +:1011B50013900085E0FF2437F582E43400F583E0E1 +:1011C50070171229E1C246900085E02433F582E4C8 +:1011D5003400F583E4F0021313900085E0FF243713 +:1011E500F582E43400F583E0FE6402704B2046147A +:1011F500D246EF25E0243BF582E43400F583E4F0A4 +:10120500A37469F0900085E0FF25E0243BF582E4B6 +:101215003400F583E475F001120995EF25E0243BD0 +:10122500F582E43400F583E0FCA3E0C394FEEC947E +:101235000050030212FD804EEE6401705A204617DD +:10124500D246900085E025E0243BF582E43400F5A4 +:1012550083E4F0A374FEF0900085E0FF25E0243BD5 +:10126500F582E43400F58374FFF5F0120995EF2556 +:10127500E0243BF582E43400F583E0FEA3E0D3945B +:1012850069EE94005072900085E02437F582E434CD +:1012950000F583E4F08061900085E0FF2437F58256 +:1012A500E43400F583E06403704EEF25E0243BF55C +:1012B50082E43400F583E0FEA3E0FFC394FEEE94E0 +:1012C500004004D246800BD3EF946AEE940050029E +:1012D500C246900085E025E0243B30460DF582E4CA +:1012E5003400F58374FFF5F0800BF582E43400F5E6 +:1012F50083E475F001120995900085E0FF25E0244F +:101305003BF582E43400F583A3E0FD122945900006 +:1013150085E0FF701174332FF582E43400F583E026 +:10132500900031F08043900085E0B401102433F53E +:1013350082E43400F583E0900030F0802C90008545 +:10134500E0B402102433F582E43400F583E0900024 +:1013550032F08015900085E0B4030E2433F582E465 +:101365003400F583E090002FF0900085E004F00252 +:10137500103BE4900085F0900085E0FFC394045095 +:101385001BEF25E02453F582E43400F583E475F082 +:0C13950001120995900085E004F080DB57 +:0113A1002229 +:102B580075FE1E43FF0275FE2143FF0875D4867576 +:102B6800FE2143FF0475FE2143FF02300E0875FE67 +:102B78002453FFC3800675FE2443FF3C9000D6749F +:032B88000FF02229 +:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E +:0400660043FFB02282 +:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923 +:04007E0053FF4F22BB +:092E0C0012006E43870202005619 +:102DB100E5E25401FFEF7006201103304704C247DA +:042DC100C322D32234 +:10289D0075FE01E4F5FF122D81122DFF122DE4E4DA +:1028AD00F58675B7C375FE6A75FF0475FE6C43FF3B +:1028BD000B12299675FE8043FF0275FE0E53FFFC29 +:1028CD0043FF0175FE1775FF3CD2A8D2AF122B2422 +:1028DD007D697F03122D9B122BBE1227DF122B5801 +:0728ED009000CD7401F02200 +:03000300020006F2 +:03000600D24732AC +:03004B00022E1D65 +:062E1D0075EB3CD24732C8 +:03005300022E2357 +:062E230075F302D24732F4 +:0E2DD6009000AEEFF0122E159000AEE0FF223E +:082E15002041FDD2418F9922FA +:102D810075FE0E53FFF343FF04D2DF43878075BA0C +:0A2D91000375AAFD759852D2AC221A +:03002300022DF2B9 +:0D2DF200309904C299C241309802C2983253 +:0D2DFF0075BB03759DDC759B92439A012204 +:062B8B009000A9120AD619 +:102B9100E49000ACF0F09000ACE0C39FE49E501CC8 +:102BA1002042FDD2429000A9E475F001120ABF1241 +:0C2BB10008B2F59C9000ACE004F080DA63 +:012BBD0022F5 +:030083000223CD88 +:1023CD00C0E0C083C082C0D075D000C000C005C0C1 +:1023DD0006C007E59B30E105539BFDC242E59B30EE +:1023ED00E076539BFED2479000D2E0146019146042 +:1023FD003424027063E59C9000D2B455087401F04A +:10240D00A3E4F0800E8018E59C9000D2B4AA10745D +:10241D0002F0A3E0FF04F074692FF8A69C8039E464 +:10242D00F0A3F080339000D3E0FF04F074692FF82F +:10243D00A69C786BE62404FFE433FEE0FDC39FEE1B +:10244D006480F87480985005ED9420400B9000D373 +:10245D00E4F09000D2F0D243D007D006D005D000E2 +:09246D00D0D0D082D083D0E0323F +:10247600536C65657020537461746520286C696EB1 +:10248600653A2564290D0A004348475F5354413A8B +:1024960025642C53545F564F583A307825782C5380 +:1024A6005441303A307825782C535441313A3078BB +:1024B60025782C535441323A307825782C535441A0 +:1024C600333A307825782C535441343A307825788D +:1024D6002E4465635F536C6565703A25640D0A008A +:1024E6004465636E745F536C65657044656C6179B1 +:1024F6002052656C6F61642E0D0A00456E7465721C +:10250600205374616E646279204D6F6465210D0AF3 +:0125160000C4 +:062AAC004300CD0402020C +:102CCE009000BCE0FF04F01219B89000BCE0B4060E +:102CDE000204F09000BCE0C3940840037402F0229A +:102D2D00122C22121FBE122C50302311C22312223C +:0E2D3D00F212283F1225B7120C671217072258 +:101BED00E4900085F09000CDE0FFA3E0FE6F606B08 +:101BFD00A3EEF09000CDE0A3F024FE60351460421A +:101C0D0014604624036003021DE790008AE4F0A3EC +:101C1D007403F07B647A007D02E4FF12277C900050 +:101C2D008AE4F0A37403F07B647A007D027F0102E5 +:101C3D00277C200E03021DE7D24575E80CC20DC2AC +:101C4D000E229000D6740FF0227BFF7A24797690C5 +:101C5D000089E4F0A374D9F0021D6E9000CEE0244B +:101C6D00FE6035146076147003021D812403600339 +:101C7D00021DE79000CBE004F0E0C394085003028E +:101C8D001DE79000CD7402F0E49000CBF0781CE6D7 +:101C9D006003021DE7021D7AE5F6700CE5F8700889 +:101CAD00E5FA7004E5E1602D9000CD7403F0E5F6E2 +:101CBD00540FFFE4FCFDFE7B08FAF9F8C3120A7E0F +:101CCD0070069000CD7404F075E11F75F60F75F870 +:101CDD00FC75FABC229000CD7403F022202703027C +:101CED001DE7C22775FE6E900085E5FFF07BFF7A3C +:101CFD0024798E7816E6FF900089E4F0A3EFF0903A +:101D0D000085E0FF90008BE4F0A3EFF0AFE2A3E4D9 +:101D1D00F0A3EFF0AFE3A3E4F0A3EFF0AFE4A3E49F +:101D2D00F0A3EFF0AFE5A3E4F0A3EFF0AFE6A3E48B +:101D3D00F0A3EFF09000D6E0FF900097E4F0A3EF52 +:101D4D00F012140D9000D6E0D394004017E014F07B +:101D5D00204703021DE7C247740FF07BFF7A2479F9 +:101D6D00E602140D7BFF7A25790112140D9000CD3A +:101D7D007404F022122DB1505B122B587F041228DF +:101D8D00F4122DC5E490008AF0A3F0FBFAFDFF12CA +:101D9D00277CE490008AF0A3F0FBFAFD7F01122767 +:101DAD007CE490008AF0A3F0FBFAFD7F0212277C01 +:101DBD00E490008AF0A3F0FBFAFD7F0312277C90DC +:101DCD0000317402F0900030F0900032F090002F4E +:0A1DDD00F0022E0C9000CD7402F00D +:011DE70022D9 +:102BF000302626C2269000CCE0FF04F0EF14600CD3 +:102C000014600E24027012122CCE800D122D2D8015 +:102C100008121BEDE49000CCF0302805C2281210F9 +:022C200035225B +:102CEE0000000000000000000000000000000000D6 +:102CFE0000000000000000000000000000000000C6 +:032AB200016800B8 +:1028F400EF24FE601E14602814602F24FE6035242B +:1029040005703D43BD8853BDBB75FE6F53FFF24355 +:10291400FF092243BDCC75FE6F53FFFE43FF0C221B +:1029240053BD7753B7CF43B7302253B7CF43B70321 +:1029340053BD772253B7CC53BD7775FE6A43FF303E +:012944002270 +:10170700203F0302197F304559200F0A7D3FE4FF30 +:1017170012000ED20F227F031228F4E4900003F088 +:10172700900001F0A3F0C200C201D20B9000D0E0FC +:101737007020C230D202D203C205C208C204C20955 +:10174700C20AD211C248900026F0A3F090002EF0F2 +:101757008008C202C203D205C206C20FC20DC20E62 +:10176700C245900001E0C39405500302191F300BD6 +:1017770005C20B0218F320002ED200E5E354A06047 +:1017870021E5E354A0FFE4FCFDFE7BA0FAF9F8C3D2 +:10179700120A7E90002A70057402F0800A7401F024 +:1017A7008005E490002AF020050302183790000214 +:1017B700E0C3940550077F061228F4802620013ADB +:1017C700900003E0FFD39414501EEF54037003FD01 +:1017D7008009900003E020E0077D017F06121DE8E5 +:1017E700900003E004F080487F041228F4E490009E +:1017F70003F0D201D210C2118036781DE670313065 +:101807001004C2108022E5E354A0FBE4FAF9F89033 +:101817000000E0FFE4FCFDFEC3120A7E6012E5E370 +:1018270054A06004D230D231E5E354A0900000F018 +:1018370020020302197C30483F200F237D3FE4FF3D +:1018470012000ED20FD211E4900026F0A3F0900000 +:101857002EF0900001F0C208D20BC200D204227F02 +:10186700031228F4C20FD203900001E0D39403506F +:101877000302191FC248804D20044A900002E0FF6E +:10188700D39414501BEF54037003FD80099000029A +:10189700E020E0077D017F81121DE890000280783B +:1018A700900003E0FFD39414501BEF54037003FD23 +:1018B7008009900003E020E0077D017F07121DE803 +:1018C7009000038053E5E8540C6026200E1E90001C +:1018D70003E004F0E0C3940550030219B7E4F07580 +:1018E700E80C7F031228F4D20DC211227F040228CC +:1018F700F4C20DC20E3003097F031228F4C203801D +:101907007420083DE5E354AC64AC600330392190A2 +:101917000001E0D394285004E004F022D208E490B8 +:101927000004F0900001F0C2097F041228F48045FA +:10193700900027E0703F7B017A00790912008680CA +:1019470034900004E0FFD39414501EEF5403700347 +:10195700FD8009900004E020E0077D017F80121DD3 +:10196700E8900004E004F0800C200909D2097F0404 +:101977001228F4C211C2072220070BD2077F0412D4 +:1019870028F4C2118022E5E354A0FBE4FAF9F890A9 +:101997000000E0FFE4FCFDFEC3120A7E6012E5E3EF +:1019A70054A06004D230D231E5E354A0900000F097 +:0119B700220D +:06008600900085120AD66D +:10008C0090002EE01470030201631470030202420C +:10009C001470030202B314700302041F24046003DF +:1000AC0002059F900085120AB690001E1208CB60C4 +:1000BC000302059F7868E6D3940A50260690001A2E +:1000CC00743F12092B300C0302059F900085120A15 +:1000DC00B690001A1208CBFDE4FF12000ED20C02EF +:1000EC00059FE47868F6C20C900085120AB6900061 +:1000FC0016E412092B900015E412092B900013E45E +:10010C0012092B900012E412092B900011E4120931 +:10011C002B900010E412092B900018E412092B907C +:10012C000017E412092B90000EE4F5F0120A02906D +:10013C00000CE4F5F0120A02900019E412092B905D +:10014C00001B743F12092B90002E7401F0E49000F8 +:10015C0007F0A3F002059FE5E35408FFE4FCEF6011 +:10016C001CE5E354046016900085120AB690001E3C +:10017C00740112092BE490002EF002059FE5E35464 +:10018C0008FFE4FCEF704A9000B1E0FEA3E0FF90A2 +:10019C000085120AB6900002EE8FF0120A027D055D +:1001AC0012095FEF7802C333CE33CED8F9FF90003B +:1001BC0085120AB6900006EE8FF0120A029000B279 +:1001CC00E025E0FF9000B1E03390000A8FF0120AB6 +:1001DC0002E5E35404FFE4FCEF704F9000AFE0FE47 +:1001EC00A3E0FF900085120AB6EE8FF01209E3909F +:1001FC0000AFE0FEA3E0FF7D0512095FEF7802C3BC +:10020C0033CE33CED8F9FF900085120AB690000495 +:10021C00EE8FF0120A029000B0E025E0FF9000AFE4 +:10022C00E0339000088FF0120A02900085120AB693 +:10023C0090001D020594D3900008E09405900007EF +:10024C00E094005002806FE4900007F0A3F0E5E327 +:10025C005408FFEF701F9000B1E0FEA3E0FF900088 +:10026C0085120AB690000EEE8FF0120A029000185A +:10027C00740112092BE5E35404FFE4FCEF701F90AA +:10028C0000AFE0FEA3E0FF900085120AB690000CD0 +:10029C00EE8FF0120A02900017740112092B9000D5 +:1002AC002E7403F002059FD3900008E09402900096 +:1002BC0007E09400500AE475F00112099502059FBD +:1002CC00E4900007F0A3F0900085120AB690000AA3 +:1002DC001209ABFFAEF090000E1209ABD39FE5F004 +:1002EC009E501C900085120AB69000081209ABFFB4 +:1002FC00AEF090000C1209ABD39FE5F09E4011E4D8 +:10030C0090002EF0900085120AB690001D0203E1B9 +:10031C00900085120AB69000181208CB6401706D1B +:10032C0090000E1209ABFFAEF0D39414EE94005073 +:10033C0031E5E330E31F900016740112092B900095 +:10034C001A1208CBC3943F4044900085120AB69011 +:10035C000018E48035900085120AB69000137401E1 +:10036C008028900085120AB69000061209ABFDD3C6 +:10037C00EF9DEE95F09000854008120AB6900013A0 +:10038C008006120AB6900016740112092B90008593 +:10039C00120AB69000171208CB6401600302059F85 +:1003AC0090000C1209ABFFAEF0D39414EE940050F5 +:1003BC0034E5E330E222900015740112092B900011 +:1003CC001A1208CBC3943F500302059F900085126C +:1003DC000AB6900017E48035900085120AB690009A +:1003EC001274018028900085120AB690000412093C +:1003FC00ABFDD3EF9DEE95F09000854008120AB648 +:10040C009000128006120AB6900015740112092B86 +:10041C0002059FD3900008E09414900007E094002C +:10042C005031E475F0011209959000B1E0FEA3E0A3 +:10043C00FF900085120AB690000EEE8FF0120A02A1 +:10044C009000AFE0FFA3E090000CCF8FF0120A02F7 +:10045C0002059FE4900007F0A3F0900085120AB605 +:10046C009000181208CB640160030204FD90001781 +:10047C001208CB6401707A9000061209ABFFAEF043 +:10048C0090000E1209ABFDACF0C39FEC9E4018908F +:10049C000085120AB690000A1209ABFFD3ED9FEC4F +:1004AC0095F0500302059F900085120AB690000447 +:1004BC001209ABFFAEF090000C1209ABFDACF0C30F +:1004CC009FEC9E4018900085120AB6900008120905 +:1004DC00ABFFD3ED9FEC95F0500302059F90008588 +:1004EC00120AB6900016740112092B900015020521 +:1004FC0094900085120AB69000181208CB64017013 +:10050C00419000061209ABFFAEF090000E1209AB41 +:10051C00FDACF0C39FEC9E4015900085120AB6907E +:10052C00000A1209ABFFD3ED9FEC95F0401490003C +:10053C0085120AB6900016740112092B90002E74C5 +:10054C0002F0900085120AB69000171208CB6401D5 +:10055C0070419000081209ABFFAEF090000C12092C +:10056C00ABFDACF0D39FEC9E5015900085120AB6F3 +:10057C009000041209ABFFC3ED9FEC95F050149062 +:10058C000085120AB6900015740112092B90002EEA +:10059C007402F0900085120AB69000181208CBFF76 +:1005AC006401600D9000171208CB64016003020710 +:1005BC00A29000131208CBFE6401600D9000121281 +:1005CC0008CB6401600302071CEFB4011E900017F6 +:1005DC001208CBB40115EEB401119000131208CB24 +:1005EC00B40108900014740112092B900018120821 +:1005FC00CBFFB401189000171208CB7010900013A9 +:10060C001208CB6401702390001404801AEF701A46 +:10061C009000171208CBB401119000121208CBB441 +:10062C000108900014740112092B900013E41209B4 +:10063C002B900012E412092B9000141208CB6401C9 +:10064C0060030207BB900085120AB690001A1208CC +:10065C00CBD39400400890001A74FE1208F8900056 +:10066C00191208CBFF90001A1208CBD39F4021908F +:10067C0000B9E024C8FF9000B8E03400FEC390003D +:10068C00B5E09FEE6480F89000B4E0648098504828 +:10069C00900085120AB69000191208CBFF90001A30 +:1006AC001208CBD39F9000855013120AB690001AF3 +:1006BC00EF12092B90001CE412092B8013120AB6BE +:1006CC0090001C740112092B90001A74021208F885 +:1006DC0090002E7404F0801390002E7402F09000A1 +:1006EC0085120AB690001CE412092BE4900007F066 +:1006FC00A3F0900085120AB6900014E412092B9016 +:10070C00001C1208CBFF90001A1208CBFD02079FA9 +:10071C00900085120AB69000161208CB6401600D89 +:10072C009000151208CB640160030207BB90001601 +:10073C00E412092B900015E412092B90001A1208F0 +:10074C00CBC3943F500E900085120AB690001A74D9 +:10075C00021208F890002E7404F0900085120AB66C +:10076C0090001B1208CBFF90001A1208CBC39F40BD +:10077C0013900085120AB690001AEF12092B900004 +:10078C002E7401F0900085120AB690001A1208CB54 +:10079C00FDE4FF02000E90002EE0D394024010E422 +:0F07AC00F0900085120AB690001E740112092BFE +:0107BB00221B +:0B2A69009000A9120AD69000ACEDF01E +:102A7400E4FE9000ACE0FD14F0ED60299000A9E4C0 +:102A840075F001120ABF1208B26EFEE4FFEFC394A0 +:102A94000850DFEE30E007C313648CFE8004EEC3FD +:072AA40013FE0F80E8AF06EE +:012AAB002208 +:081DE800900085EFF0A3EDF07F +:101DF000E4A3F0A3F078897C007D017BFF7A2C7945 +:101E0000EEFE7F2012088CE4900089F0A37455F058 +:101E1000A374AAF0900085E0FE90008DF0900086FB +:101E2000E0FD90002DF0EE120ADF1E43011E72024B +:101E30001EC1031ECE061ECE071F17801F1F810066 +:101E4000001F2D90008C7402F0ED700E90008E74C7 +:101E500002F0E490002BF0021F2D900086E0640158 +:101E60006003021F2D90008E04F0E490002CF0021D +:101E70001F2D90008C7420F07F05900086E075F097 +:101E800012A424442FF8E6FE74892FF582E434006E +:101E9000F583EEF00FEFB412E17F17EFC3940D401E +:101EA00003021F2D900086E075F00DA4242A2FF860 +:101EB000E6FE74892FF582E43400F583EEF00F809E +:101EC000DA90008C7402F090008E04F0805F900035 +:101ED0008C7405F090008E7401F0781CE675F005A6 +:101EE000A4A3F0A37420F0900086E0FF700D900092 +:101EF00028E07002800F9000298015EFB4012E9029 +:101F00000029E0700890009174FFF0802090002874 +:101F1000E0900091F0801690008C7401F0800E909B +:101F2000008C7402F090002AE090008EF090008CFB +:101F3000E02404FFE433900087F0A3EFF07B017A04 +:101F4000007989FD122A69900087E0FCA3E02489CA +:101F5000F58274003CF583EFF07F011228F49000C5 +:101F600086E0FF700843BD0253BDFE8016EFB4014A +:101F70000843BD2053BDEF800AEFB4FF0643BD22E6 +:101F800053BDEE900088E02402FF900087E034000B +:101F9000FE7B017A007989122B8B900086E0FF701E +:101FA0000753BDFD43BD0122EFB4010753BDDF431D +:0D1FB000BD1022EFB4FF0653BDDF43BD118D +:011FBD002201 +:10263900EF24FA605014604D24067069E4FE746D4D +:102649002EF8E6FF90002DE075F012A424442EF830 +:10265900A6070EEEB412E7E4FE747F2EF8E6FF90AB +:10266900002DE075F00DA4242A2EF8A6070EEEB46D +:1026790008E790002DE0700690002B04F0229000EE +:102689002C7401F022786DE6B4E30D900005740115 +:10269900F008E6900028F0229000067401F0786EA8 +:0526A900E6900029F09D +:0126AE002209 +:102C5000E4FFFE900085F0304323C243FB7A007905 +:102C600069786BE62403FD122A697E00786BE624FE +:0D2C70006CF8E6B50707786CE6FF12263910 +:012C7D002234 +:102AB500011C00C139602A005B0BB80BEA0C1C0C29 +:102AC500800CB20CE40D160D480D7A0DAC0E100EEF +:102AD500420E740EA60ED80F0A0F3C0F870FD210A8 +:032AE5001D106859 +:1025B700E4FFEF25E0245BF582E43400F583E0FCDB +:1025C700A3E0FDC39000B9E09D9000B8E09C4005F2 +:1025D7000FEFB415DD781CE6FEEFD39E4004180616 +:1025E7008003781B16E5E16007E4F5E1781CA60790 +:1025F700781BE6FED394BE5006EEC3940A500778C4 +:102607001CA607187664781CE6FFD394005002D204 +:102617003DEFD394015002D239EFD394055002D243 +:102627003BEFD3940A5002D23AEFD3940F5002D221 +:012637003C66 +:01263800227F +:1026AF009000C3E06062E4F0D2259000C1E004F036 +:1026BF00E0C394054004E4F0D2269000C4E004F097 +:1026CF00E0C3940A4004E4F0D2289000BEE475F011 +:1026DF0001120995C39000BFE094649000BEE0948E +:1026EF00004006E4F0A3F0D2239000C0E004F0E035 +:1026FF00C394FA4013E4F0D2249000C2E004F0E057 +:09270F0094044004E4F0D22722F6 +:03000B00020026CA +:10002600C0E0C083C082C0D074FC258CF58C746699 +:10003600258AF58A9000C37401F0D0D0D082D0838F +:03004600D0E032D5 +:0E2DE400758901758CFC758A66D2A9D28C2285 +:1029E100EFD39401501675FE0EEF25E02404FE741A +:1029F10003A806088002C333D8FC801475FE0FEFCC +:102A010024FE25E0FE7403A806088002C333D8FC27 +:102A1100F452FFEFB4040C75FE0F53FFF075FE0E78 +:042A210053FF0F222E +:102D9B0075FE54EF5407F5FF75FE56AF058FFF75A3 +:062DAB00FE5375FF01223A +:10294500EFD39401501875FE0EEF25E02404FE74B4 +:1029550003A806088002C333D8FC42FF801675FE23 +:102965000FEF24FE25E0FE7403A806088002C3339A +:10297500D8FC42FFEF70038DCE22EFB401038DCF5B +:1029850022EFB402038DDE22EFB40304AF058FDF1F +:01299500221F +:032FFD00010102CD +:102CAB00E4FB7D04FF122AE9E4FB7D047F01122A79 +:102CBB00E9E4FB7D047F02122AE9E4FB7D047F0338 +:032CCB00022AE9F1 +:100C6700303159C231E49000D4F0781BF690008AF5 +:100C7700F0A3F0FBFAFDFF12277CE490008AF0A3B3 +:100C8700F0FBFAFD7F0112277CE490008AF0A3F0C5 +:100C9700FBFAFD7F0212277CE490008AF0A3F0FBA9 +:100CA700FAFD7F0312277C9000317402F090003028 +:100CB700F0900032F090002FF0D2472220220F2030 +:100CC7003E0C200D03020D7C300E03020D7C202B01 +:100CD70005D22BD23122900031E06402601A9000D5 +:100CE7008AE4F0A3740AF07B147A007D02E4FF1211 +:100CF700277C9000317403F0900030E06402601AA2 +:100D070090008AE4F0A3740AF07B147A007D027FD6 +:100D17000112277C9000307403F0900032E06402E7 +:100D2700601A90008AE4F0A3740AF07B147A007DBD +:100D3700027F0212277C9000327403F090002FE0AC +:100D47006402601A90008AE4F0A3740AF07B147AB4 +:100D5700007D027F0312277C90002F7403F0200D83 +:100D6700030210349000D4E0C394285003020EB25B +:100D7700D20ED23122302B0CC22BC22DC22CC22F45 +:100D8700C230D2487816E6FF7003020E8C640370F7 +:100D97005E202D07D22DC22C022CABE490008AF0E6 +:100DA700A3F0FBFA7D01FF12277CE490008AF0A3F1 +:100DB700F0FBFA7D017F0112277CE490008AF0A303 +:100DC700F0FBFA7D017F0212277CE490008AF0A3F2 +:100DD700F0FBFA7D017F0312277C9000317401F04C +:100DE700900030F0900032F090002FF0020E832038 +:100DF7002C0DD22CC22DD231E49000D5F0807D90FD +:100E070000D4E0C394015055E004F0A3E014601A45 +:100E170014602714603424037062900031E0640486 +:100E2700605A7B017D04E4FF802E900030E064046B +:100E3700604A7B017D047F01801E900032E06404DC +:100E4700603A7B017D047F02800E90002FE06404EE +:100E5700602A7B017D047F03122AE9801F9000D45A +:100E6700E0C3940F5005E004F08011E49000D4F043 +:100E7700A3E004F0E0C394044002E4F0C22FC230C0 +:100E8700C232D22E22302C0AC22C122CABD231D233 +:100E97004822202F0C202E09203006203203021072 +:100EA700349000D4E0FFC394015004E004F022EF33 +:100EB700C394644003020FDF9000D4E004F0303B9A +:100EC70037900031E064037003021034E490008A25 +:100ED700F0A3F07B64FA7D03FF12277C9000317446 +:100EE70004F0E490008AF0A3F0FBFAFD7F011227DB +:100EF7007C9000307402802D303A41E490008AF0F3 +:100F0700A3F0FBFA7D01FF12277C9000317401F0FA +:100F1700E490008AF0A3F0FBFA7D017F0112277CA1 +:100F27009000307401F0E490008AF0A3F0FBFAFD22 +:100F37007F0212277C90003274028043E490008A7B +:100F4700303C53F0A3F0FBFA7D01FF12277C9000A1 +:100F5700317401F0E490008AF0A3F0FBFA7D017F81 +:100F67000112277C9000307401F0E490008AF0A30E +:100F7700F0FBFA7D017F0212277C9000327401F0AA +:100F8700E490008AF0A3F0FBFAFD7F0312277C9020 +:100F9700002F7402F022F0A3F0FBFA7D01FF122765 +:100FA7007CE490008AF0A3F0FBFA7D017F01122711 +:100FB7007CE490008AF0A3F0FBFA7D017F02122700 +:100FC7007CE490008AF0A3F0FBFA7D017F031227EF +:100FD7007C90003174018048C22FC22EC230C232C9 +:100FE700E490008AF0A3F0FBFAFDFF12277CE4905F +:100FF700008AF0A3F0FBFAFD7F0112277CE4900042 +:101007008AF0A3F0FBFAFD7F0212277CE490008AA6 +:10101700F0A3F0FBFAFD7F0312277C9000317402E6 +:0D102700F0900030F0900032F090002FF0BB +:011034002299 +:10253700022C7EE493A3F8E493A34003F68001F210 +:1025470008DFF48029E493A3F85407240CC8C333A5 +:10255700C4540F4420C8834004F456800146F6DF74 +:10256700E4800B0102040810204080902AACE47E2E +:10257700019360BCA3FF543F30E509541FFEE49369 +:10258700A360010ECF54C025E060A840B8E493A330 +:10259700FAE493A3F8E493A3C8C582C8CAC583CA5B +:1025A700F0A3C8C582C8CAC583CADFE9DEE780BE13 +:012AE80000ED +:1007BC00E709F608DFFA8046E709F208DFFA803E1F +:1007CC0088828C83E709F0A3DFFA8032E309F6080C +:1007DC00DFFA8078E309F208DFFA807088828C8374 +:1007EC00E309F0A3DFFA806489828A83E0A3F60828 +:1007FC00DFFA805889828A83E0A3F208DFFA804C02 +:10080C0080D280FA80C680D4806980F280338010D8 +:10081C0080A680EA809A80A880DA80E280CA803341 +:10082C0089828A83ECFAE493A3C8C582C8CCC583B9 +:10083C00CCF0A3C8C582C8CCC583CCDFE9DEE78089 +:10084C000D89828A83E493A3F608DFF9ECFAA9F008 +:10085C00EDFB2289828A83ECFAE0A3C8C582C8CC5E +:10086C00C583CCF0A3C8C582C8CCC583CCDFEADE77 +:10087C00E880DB89828A83E493A3F208DFF980CCD9 +:10088C0088F0EF60010E4E60C388F0ED2402B404D2 +:10089C000050B9F582EB2402B4040050AF23234579 +:0608AC00822390080C738A +:1008B200BB010689828A83E0225002E722BBFE0244 +:0908C200E32289828A83E4932277 +:1008CB00BB010CE58229F582E5833AF583E02250E2 +:1008DB0006E92582F8E622BBFE06E92582F8E2222C +:0D08EB00E58229F582E5833AF583E4932246 +:1008F800BB010FF8E58229F582E5833AF583E02804 +:10090800F0225009C58229F8E58226F622BBFE09A5 +:10091800C58229F8E22582F222F8EA2583F583E9DF +:03092800932822EF +:10092B00F8BB010DE58229F582E5833AF583E8F002 +:10093B00225006E92582C8F622BBFE05E92582C8AE +:02094B00F22296 +:10094D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42EBE +:02095D00FE2278 +:10095F00C2D5EC30E709B2D5E4C39DFDE49CFCEEB3 +:10096F0030E715B2D5E4C39FFFE49EFE120B44C3DC +:10097F00E49DFDE49CFC8003120B4430D507C3E4D7 +:06098F009FFFE49EFE2222 +:10099500C5F0F8A3E028F0C5F0F8E58215827002ED +:0609A5001583E038F0228A +:1009AB00BB0110E58229F582E5833AF583E0F5F08A +:1009BB00A3E0225009E92582F886F008E622BBFE67 +:1009CB000AE92582F8E2F5F008E222E5832AF583AD +:0809DB00E993F5F0A3E9932272 +:1009E300BB010A89828A83F0E5F0A3F0225006F75F +:0F09F30009A7F01922BBFE06F3E5F009F319225C +:100A0200F8BB0111E58229F582E5833AF583E8F026 +:100A1200E5F0A3F0225009E92582C8F608A6F022E3 +:0D0A2200BBFE09E92582C8F2E5F008F222CA +:100A2F00E88FF0A4CC8BF0A42CFCE98EF0A42CFC66 +:100A3F008AF0EDA42CFCEA8EF0A4CDA8F08BF0A4E4 +:100A4F002DCC3825F0FDE98FF0A42CCD35F0FCEB43 +:100A5F008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3908 +:0F0A6F00FEE43CFCEAA42DCE35F0FDE43CFC2275 +:102A2500C2D5E830E70FB2D5E4C39BFBE49AFAE4DC +:102A350099F9E498F8EC30E717B2D5122A5B120B36 +:102A4500D5E4C39BFBE49AFAE499F9E498F880038A +:102A5500120BD530D50DE4C39FFFE49EFEE49DFD2A +:042A6500E49CFC22CF +:100A7E00EB9FF5F0EA9E42F0E99D42F0E89C45F0CE +:010A8E002245 +:100A8F00E8600FECC313FCED13FDEE13FEEF13FF45 +:030A9F00D8F12269 +:100AA200E86010ECA2E713FCED13FDEE13FEEF136A +:040AB200FFD8F02257 +:090AB600E0FBA3E0FAA3E0F92241 +:100ABF00F8E0FBA3A3E0F925F0F0E58215827002C0 +:070ACF001583E0FA38F02264 +:090AD600EBF0A3EAF0A3E9F02221 +:100ADF00D083D082F8E4937012740193700DA3A3A6 +:100AEF0093F8740193F5828883E4737402936860BA +:060AFF00EFA3A3A380DFBA +:100B0500EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D7D +:100B1500FDE43CFCE8A42EC8C5F03DFDE43CFCEF3B +:0D0B2500A4FFE5F028FEE43DFDE43CFC22C9 +:1013A200E5082489F582E43400F583E005082290FB +:1013B2000086301903900089E475F001120ABF0219 +:1013C20008B22012E97F2ED2128018EF540F249017 +:1013D200D43440D4FF30160BEF24BFB41A005003AC +:1013E2002461FFE50960021509050CE50C70020590 +:1013F2000B30190E900086E475F001120ABFEF025D +:101402000B32022DD67403D2198003E4C219F508F7 +:10141200900086120AD6E4F509F50BF50CE5096091 +:10142200077F201213E580F5750AFFC213C212C2AC +:1014320014C215C217C218C21A1213B1FF700D30AE +:1014420019057F001213F6AF0CAE0B22B4255FC252 +:10145200D5C2161213B1FF24D0B40A00501A75F087 +:101462000A780930D50508B6FF0106C6A426F6207B +:10147200D5047002D21580D924CFB41A00EF5004DB +:10148200C2E5D2160215F7D21380C6D21280C0D29C +:101492001480BCD2D580BAD21780B47F201213E553 +:1014A2002014077401B5090040F11213A2FF1213B0 +:1014B200E502141FD21AD21880951213A2FB12133E +:1014C200A2FA1213A2F94A4B700679C87A167BFF68 +:1014D20020142EE509602A7E008E82758300120890 +:1014E200CB60060EEE650A70F0C2D5EBC0E0EAC032 +:1014F200E0E9C0E0EE12163ED0E0F9D0E0FAD0E02A +:10150200FB1208B2FF60AAEBC0E0EAC0E0E9C0E06B +:101512001213E5D0E02401F9D0E03400FAD0E0FB68 +:10152200E50A0460DCD50AD980877BFF7A16793A0E +:10153200D214809C791080027908C218C21A8008DD +:10154200D2D5790A8004790AC2D5E50A047002F577 +:101552000AE4FAFDFEFF1213A2FC7B082013131209 +:1015620013A2FD7B1030120A1213A2FE1213A2FF65 +:101572007B20EC3382D592D55013C3E43012069F00 +:10158200FFE49EFEE42013039DFDE49CFCE4CBF803 +:10159200C213EC700CCFCECDCCE824F8F870F380F7 +:1015A20017C3EF33FFEE33FEED33FDEC33FCEB33C9 +:1015B200FB994002FB0FD8E9EB301305F8D0E0C4E9 +:1015C20048B213C0E00AEC4D4E4F78207B0070C247 +:1015D200EAB50A0040BCC0E0121640D0F0D0E020CC +:1015E2001304C4C0E0C4B213C0F01213CED0F0D5BD +:1015F200F0EB02141F120ADF14BC53153658148D77 +:101602004C148942153A4F15424415424914A243DB +:08161200154855152C46152C56 +:10161A0045152C4716E85014912D14952E14B82B05 +:10162A0014992314B62016D12A145148000014B074 +:10163A003F3F3F00790AA2D5201514301709B91087 +:10164A00020404B9080104A2D5201802500104209A +:10165A0014689214B509005034C0E07F203015197F +:10166A007F30A21472187217500F121697C214C242 +:10167A0018C217C21A7F30800F301703E9C0E01270 +:10168A0013E5301703D0E0F9D0E0B509CC301717CD +:10169A007F30B9100C1213E57F583016077F788017 +:1016AA0003B908031213E53014057F2D0213E57FF1 +:1016BA0020201AF87F2B2018F322921480CF286E4C +:1016CA00756C6C2900D2131213A23013F8C2137866 +:1016DA000930D50108F60214512D50434958121306 +:1016EA00A22403B405004001E49016E3931213D632 +:0D16FA00743A1213D6D21575090402153684 +:100B3200BB010689828A83F0225002F722BBFE01A2 +:020B4200F3229C +:100B4400BC000BBE0029EF8DF084FFADF022E4CC95 +:100B5400F875F008EF2FFFEE33FEEC33FCEE9DEC5E +:100B6400984005FCEE9DFE0FD5F0E9E4CEFD22EDA4 +:100B7400F8F5F0EE8420D21CFEADF075F008EF2FEE +:100B8400FFED33FD4007985006D5F0F222C398FDDF +:050B94000FD5F0EA227C +:100B990075F008758200EF2FFFEE33FECD33CDCC13 +:100BA90033CCC58233C5829BED9AEC99E582984096 +:100BB9000CF582EE9BFEED9AFDEC99FC0FD5F0D673 +:100BC900E4CEFBE4CDFAE4CCF9A88222B800C1B99D +:100BD9000059BA002DEC8BF084CFCECDFCE5F0CBDB +:100BE900F97818EF2FFFEE33FEED33FDEC33FCEB14 +:100BF90033FB10D703994004EB99FB0FD8E5E4F9CF +:100C0900FA227818EF2FFFEE33FEED33FDEC33FCBB +:100C1900C933C910D7059BE99A4007EC9BFCE99AAF +:100C2900F90FD8E0E4C9FAE4CCFB2275F010EF2FF4 +:100C3900FFEE33FEED33FDCC33CCC833C810D707F4 +:100C49009BEC9AE899400AED9BFDEC9AFCE899F82F +:0E0C59000FD5F0DAE4CDFBE4CCFAE4C8F922C2 +:00000001FF diff --git a/Out/8837_EVB_250121_1409_9DE0_010102.bin b/Out/8837_EVB_250121_1409_9DE0_010102.bin new file mode 100644 index 0000000..5f25540 Binary files /dev/null and b/Out/8837_EVB_250121_1409_9DE0_010102.bin differ diff --git a/Project/SY8837_Demo.uvgui.GH b/Project/SY8837_Demo.uvgui.GH index 4b7245a..87d7524 100644 --- a/Project/SY8837_Demo.uvgui.GH +++ b/Project/SY8837_Demo.uvgui.GH @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- E:\todaywork\20241202_tp3410\SY8837_Demo\UsrSrc\user + E:\todaywork\20241202_tp3410\SY8837_Demo\UsrSrc\display @@ -93,25 +93,25 @@ 2 3 - -1 - -1 + -32000 + -32000 -1 -1 - 171 - 1799 - 3719 - 1133 + 167 + 2141 + 4061 + 1129 0 - 1250 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000C000000030000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6C65645C6C65642E6300000000056C65642E6300000000F6FA7D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000069030000 + 1333 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D000000000000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6C65645C6C65642E6300000000056C65642E6300000000F6FA7D00FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C68616C6C5C68616C6C2E63000000000668616C6C2E6300000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000C3020000 @@ -134,7 +134,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -150,11 +150,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -170,11 +170,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -194,7 +194,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -214,7 +214,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -234,7 +234,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -254,7 +254,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -274,7 +274,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -294,7 +294,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -314,7 +314,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -334,7 +334,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -354,7 +354,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -374,7 +374,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -394,7 +394,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -414,7 +414,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -434,7 +434,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -450,11 +450,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -470,11 +470,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -490,11 +490,11 @@ 0 16 - 000000006A03000080070000E6030000 + 00000000C402000080070000E6030000 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -514,7 +514,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -530,11 +530,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -554,7 +554,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -574,7 +574,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -614,7 +614,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -634,7 +634,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -654,7 +654,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -674,7 +674,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -694,7 +694,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -714,7 +714,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -734,7 +734,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -754,7 +754,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -774,7 +774,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -794,7 +794,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -814,7 +814,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -834,7 +834,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -854,7 +854,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -874,7 +874,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -894,7 +894,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -914,7 +914,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -934,7 +934,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -954,7 +954,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -974,7 +974,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -994,7 +994,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1014,7 +1014,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1034,7 +1034,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1054,7 +1054,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1074,7 +1074,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1094,7 +1094,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1114,7 +1114,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1134,7 +1134,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1154,7 +1154,7 @@ 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1170,11 +1170,11 @@ 0 16 - 000000006A03000090050000E6030000 + 00000000C40200009005000040030000 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -1190,11 +1190,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1214,7 +1214,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1234,7 +1234,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1250,11 +1250,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1270,11 +1270,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1294,7 +1294,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -1314,7 +1314,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1334,7 +1334,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1354,7 +1354,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1374,7 +1374,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1394,7 +1394,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1414,7 +1414,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1434,7 +1434,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1454,7 +1454,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1474,7 +1474,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1494,7 +1494,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1514,7 +1514,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1534,7 +1534,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1554,7 +1554,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1574,7 +1574,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1594,7 +1594,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1614,7 +1614,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1634,13 +1634,13 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 50017 50017 - 1 + 0 0 0 0 @@ -1650,11 +1650,11 @@ 0 16 - F7000000660000008D05000081000000 + A3040000660000008D0500007C010000 16 - 0A0000000A0000006E0000006E000000 + D8000000EF000000C8010000BA010000 @@ -1674,7 +1674,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1694,7 +1694,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1794,19 +1794,19 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000002200000039000000EA020000C9000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000022000000390000001201000004010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000052030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000022000000390000001201000004010000000000004F000000F0000000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000022000000390000001201000004010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000002200000039000000EA020000C9000000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D8000000EF000000A00300007F010000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D8000000EF000000C8010000BA010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000AC020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D8000000EF000000C8010000BA010000000000004F000000F0000000AC0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D8000000EF000000C8010000BA010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000AC02000080070000B00200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D8000000EF000000A00300007F01000000000000B002000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2911 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000008323032343130313596000000000000001300083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C30043437303008766F6C5F7662617400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + 2914 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000036162739600000000000000140003616273083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C30043437303008766F6C5F766261740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 1423 @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 583 @@ -3603,12 +3603,12 @@ 0 100 - 3 + 0 ..\UsrSrc\main.c - 0 - 16 - 43 + 40 + 18 + 46 1 0 @@ -3616,17 +3616,17 @@ ..\UsrSrc\vox\vox_module.c 0 - 536 - 556 + 6 + 35 1 0 ..\UsrSrc\discharge\discharge_module.c - 18 + 2 158 - 176 + 178 1 0 @@ -3634,8 +3634,8 @@ ..\UsrSrc\userapp\userapp.c 0 - 643 - 663 + 98 + 110 1 0 @@ -3660,18 +3660,18 @@ ..\UsrSrc\key\key.c - 1 - 253 - 275 + 0 + 19 + 31 1 0 \todaywork\20241202_tp3410\SY8837_Demo\UsrInc\inc\config.h - 16 + 14 183 - 205 + 206 1 0 @@ -3687,9 +3687,9 @@ ..\UsrInc\vox\vox_module.h - 18 - 459 - 490 + 0 + 461 + 491 1 0 @@ -3705,9 +3705,18 @@ ..\UsrSrc\led\led.c - 82 + 2 183 - 201 + 205 + 1 + + 0 + + + ..\UsrSrc\hall\hall.c + 0 + 1 + 29 1 0 diff --git a/Project/SY8837_Demo.uvopt b/Project/SY8837_Demo.uvopt index 11d308c..0cec4d0 100644 --- a/Project/SY8837_Demo.uvopt +++ b/Project/SY8837_Demo.uvopt @@ -392,6 +392,18 @@ 0 0 + + 2 + 19 + 1 + 0 + 0 + 0 + ..\UsrSrc\display\display_ui.c + display_ui.c + 0 + 0 + diff --git a/Project/SY8837_Demo.uvproj b/Project/SY8837_Demo.uvproj index 0ea88fb..edaf86d 100644 --- a/Project/SY8837_Demo.uvproj +++ b/Project/SY8837_Demo.uvproj @@ -324,7 +324,7 @@ - ..\UsrInc\adc;..\UsrInc\charger;..\UsrInc\discharge;..\UsrInc\gpio;..\UsrInc\hall;..\UsrInc\i2c_simu;..\UsrInc\inc;..\UsrInc\key;..\UsrInc\led;..\UsrInc\mtp;..\UsrInc\pwm;..\UsrInc\sleep;..\UsrInc\system;..\UsrInc\uart;..\UsrInc\userapp;..\UsrInc\vox;..\UsrInc\vox_comm;..\UsrInc\watchdog;..\UsrInc\bat;..\UsrInc\timer;..\UsrInc\pmu;..\UsrInc\user + ..\UsrInc\adc;..\UsrInc\charger;..\UsrInc\discharge;..\UsrInc\gpio;..\UsrInc\hall;..\UsrInc\i2c_simu;..\UsrInc\inc;..\UsrInc\key;..\UsrInc\led;..\UsrInc\mtp;..\UsrInc\pwm;..\UsrInc\sleep;..\UsrInc\system;..\UsrInc\uart;..\UsrInc\userapp;..\UsrInc\vox;..\UsrInc\vox_comm;..\UsrInc\watchdog;..\UsrInc\bat;..\UsrInc\timer;..\UsrInc\pmu;..\UsrInc\user;..\UsrInc\display @@ -471,6 +471,11 @@ 1 ..\UsrSrc\InitVars.c + + display_ui.c + 1 + ..\UsrSrc\display\display_ui.c + diff --git a/SY8837_Demo.si4project/SY8837_Demo.SearchResults b/SY8837_Demo.si4project/SY8837_Demo.SearchResults index 093e9ee..ea6ec96 100644 --- a/SY8837_Demo.si4project/SY8837_Demo.SearchResults +++ b/SY8837_Demo.si4project/SY8837_Demo.SearchResults @@ -1,5 +1,15 @@ ----- _DEBUG_ADC Matches (4 in 2 files) ---- -PMU_ADC_Chn_Data in adc.c (UsrSrc\adc) : #ifdef _DEBUG_ADC -PMU_ADC_Chn_Data in adc.c (UsrSrc\adc) : #ifdef _DEBUG_ADC -PMU_ADC_Chn_Data in adc.c (UsrSrc\adc) : #ifdef _DEBUG_ADC -define.h (UsrInc\inc) line 95 : #define _DEBUG_ADC +---- Enter_Sleep_Cnt_Restart_Flag Matches (14 in 8 files) ---- +LED_Display_App in display_ui.c (UsrSrc\display) : Enter_Sleep_Cnt_Restart_Flag = 1; +Hall_Handler in hall.c (UsrSrc\hall) : Enter_Sleep_Cnt_Restart_Flag = 1; +Key_Handler in key.c (UsrSrc\key) : Enter_Sleep_Cnt_Restart_Flag = 1; +sleep.c (UsrSrc\sleep) line 37 : bit Enter_Sleep_Cnt_Restart_Flag; +Check_Require_Sleep in sleep.c (UsrSrc\sleep) : if( ( CHIP_STA0 & VIN_PRESENT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*鍏呯數涓佹湁涓柇銆佽虫満澶勪簬鍏呯數鐘舵佹儏鍐典笅锛孊oost閲嶈浇杈撳嚭锛岀郴缁熶笉杩涗紤鐪犳ā寮忋 */ +Check_Require_Sleep in sleep.c (UsrSrc\sleep) : printf("Not Get Into Sleep(ChgStatus:%d,Vox_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vox_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag); +Check_Require_Sleep in sleep.c (UsrSrc\sleep) : Enter_Sleep_Cnt_Restart_Flag = 0; +sleep.h (UsrInc\sleep) line 40 : extern bit Enter_Sleep_Cnt_Restart_Flag; +EX0_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; +EX2_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; +EX3_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; +uart1_Interrupt in uart.c (UsrSrc\uart) : Enter_Sleep_Cnt_Restart_Flag = 1; +SysTem_State_Machine in userapp.c (UsrSrc\userapp) : if(Enter_Sleep_Cnt_Restart_Flag) +SysTem_State_Machine in userapp.c (UsrSrc\userapp) : Enter_Sleep_Cnt_Restart_Flag = 0; diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_sym b/SY8837_Demo.si4project/SY8837_Demo.sip_sym index ca0be10..87522d0 100644 Binary files a/SY8837_Demo.si4project/SY8837_Demo.sip_sym and b/SY8837_Demo.si4project/SY8837_Demo.sip_sym differ diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_xm b/SY8837_Demo.si4project/SY8837_Demo.sip_xm index b35bc8f..5d81c4c 100644 Binary files a/SY8837_Demo.si4project/SY8837_Demo.sip_xm and b/SY8837_Demo.si4project/SY8837_Demo.sip_xm differ diff --git a/SY8837_Demo.si4project/SY8837_Demo.siwork b/SY8837_Demo.si4project/SY8837_Demo.siwork index eaf09b2..9d62814 100644 Binary files a/SY8837_Demo.si4project/SY8837_Demo.siwork and b/SY8837_Demo.si4project/SY8837_Demo.siwork differ diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h index e289879..8b91659 100644 --- a/UsrInc/charger/charger_module.h +++ b/UsrInc/charger/charger_module.h @@ -23,23 +23,6 @@ #include "define.h" -#ifdef NTC_ENABLE -extern bit CHG_NTC_Pro_Flag; -#endif - -// 充电状态定义 -typedef enum -{ - CHG_NONE = 0x00, - - CHG_PROTECT, - - CHG_STA_ING, // 充电中 - - CHG_STA_COMPLETED, // 充电完成 - -} TE_CHG_STA; - typedef enum { DISCHG_ON = 0, @@ -48,8 +31,6 @@ typedef enum }g_chg_type; -extern idata TE_CHG_STA ChgStatus; // 系统状态定义 - #if CHARGER_ENABLE /* Charger Current Setting */ @@ -201,10 +182,6 @@ typedef struct { #define STATE_TC_Pos_Msk (0x1UL << STATE_TC_Pos) #define STATE_TC STATE_TC_Pos_Msk -#define CHG_CONSTANT_CUR_TIM 1 - -#define DIE_OT_RECOVER_TIM 25 //NTC保护后,恢复正常后等待250ms重新开启充电 - extern void Charger_Init(void); extern void Charger_Handler(void); diff --git a/UsrInc/discharge/discharge_module.h b/UsrInc/discharge/discharge_module.h index b134033..06a116d 100644 --- a/UsrInc/discharge/discharge_module.h +++ b/UsrInc/discharge/discharge_module.h @@ -107,11 +107,6 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ -#ifdef NTC_ENABLE -extern bit Boost_NTC_Pro_Flag; -#endif - -extern bit gBoost_Prepared_Flag; //Boost满足开启条件。 /******************************************************************************\ Functions definitions diff --git a/UsrInc/display/display_ui.h b/UsrInc/display/display_ui.h new file mode 100644 index 0000000..3e91314 --- /dev/null +++ b/UsrInc/display/display_ui.h @@ -0,0 +1,44 @@ +/* + ****************************************************************************** + * + * @file display_ui.h + * @brief display ui module + * @ic sy8837 + * + * @version 1.0 + * @date 2025/01/14 09:59:40 + * @author Alex Xu + * + * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. + * All Rights Reserved + * + * History: + * Revision Date Author Desc + * 1.0.0 2025/01/14 Alex build this file + ****************************************************************************** + */ + +#ifndef __DISPLAY_UI_H__ +#define __DISPLAY_UI_H__ + +/*_____ I N C L U D E S ____________________________________________________*/ + +#include "define.h" + +/******************************************************************************\ + Macro definitions +\******************************************************************************/ + +/******************************************************************************\ + Variables definitions +\******************************************************************************/ +extern uint8_t LED_On_Timer; //led亮时间计时 + +/******************************************************************************\ + Functions definitions +\******************************************************************************/ + +extern void LED_Display_App(void); + +#endif + diff --git a/UsrInc/hall/hall.h b/UsrInc/hall/hall.h index b884146..0eb7227 100644 --- a/UsrInc/hall/hall.h +++ b/UsrInc/hall/hall.h @@ -3,7 +3,7 @@ * * @file hall.h * @brief hall module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -43,7 +43,6 @@ typedef enum{ extern CoverStatus_E CoverStatus; extern bit CoverEvent_Flg; -extern bit CoverEvent_Flg_led; extern xdata uint8_t Hall_Sta_bk; diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h index b28c2fc..11ee656 100644 --- a/UsrInc/inc/config.h +++ b/UsrInc/inc/config.h @@ -25,7 +25,13 @@ /******************************************************************************\ Macro definitions \******************************************************************************/ -/*Charger Module Config Para Setting*/ +/*程序版本,第一个数代表在硬件存在改动不能兼容之前版本时加1, + 第二个数在功能存在改动时加1,第三个数在软件调试出现不同的 + 测试版本时改动;高位数字变动时,低位数字清零。*/ + +#define FW_VER0 0x01 //程序版本0:代表在硬件存在改动不能兼容之前版本时加1 +#define FW_VER1 0x01 //程序版本1:代表在功能存在改动时加1 +#define FW_VER2 0x02 //程序版本2:代表在软件调试出现不同的测试版本时改动时加1 #if 0 #if 0 @@ -117,7 +123,7 @@ 使用码值的原因:2.5V的上拉LDO有温漂误差,使用码值可以规避。 */ -#define NONE_NTC 984 //NTC引脚悬空码值 +#define NONE_NTC 1000 //NTC引脚悬空码值 #define T_N20C 927 //-20℃ NTC:953K @@ -160,6 +166,8 @@ #define T_80C 113 //80℃ NTC:12.4K #endif +/* 功能选择和配置。 */ + /* NTC保护标准选择,JEITA or IEC.*/ #define NTC_JEITA 1 @@ -179,32 +187,32 @@ #elif NTC_JEITA /* JEITA模式,NTC温度保护上下限阈值和迟滞温度。 */ -#define JEITA_NTC_CHG_PRO_LOW_TMP T_0C //配置充电NTC保护温度下限值。 +#define JEITA_NTC_CHG_PRO_LOW_TMP T_0C //配置充电NTC保护温度下限值。 -#define JEITA_NTC_CHG_PRO_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。 +#define JEITA_NTC_CHG_PRO_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。 -#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //配置充电NTC保护温度上限值。 +#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //配置充电NTC保护温度上限值。 -#define JEITA_NTC_CHG_PRO_HYST_HIGH_TMP T_57C //配置充电NTC保护恢复温度上限迟滞值。 +#define JEITA_NTC_CHG_PRO_HYST_HIGH_TMP T_57C //配置充电NTC保护恢复温度上限迟滞值。 /* JEITA模式,NTC温度冷状态,上下限阈值和迟滞温度。 */ -#define JEITA_NTC_CHG_COLD_HIGH_TMP T_10C //配置充电NT C冷状态温度上限值。 +#define JEITA_NTC_CHG_COLD_HIGH_TMP T_10C //配置充电NT C冷状态温度上限值。 -#define JEITA_NTC_CHG_COLD_HYST_HIGH_TMP T_8C //配置充电NTC冷状态恢复温度上限迟滞值。 +#define JEITA_NTC_CHG_COLD_HYST_HIGH_TMP T_8C //配置充电NTC冷状态恢复温度上限迟滞值。 /* JEITA模式,NTC温度暖状态,上下限阈值和迟滞温度。 */ -#define JEITA_NTC_CHG_WARM_LOW_TMP T_10C //配置充电NTC暖状态温度下限值。 +#define JEITA_NTC_CHG_WARM_LOW_TMP T_10C //配置充电NTC暖状态温度下限值。 -#define JEITA_NTC_CHG_WARM_HYST_LOW_TMP T_12C //配置充电NTC暖状态恢复温度下限迟滞值。 +#define JEITA_NTC_CHG_WARM_HYST_LOW_TMP T_12C //配置充电NTC暖状态恢复温度下限迟滞值。 -#define JEITA_NTC_CHG_WARM_HIGH_TMP T_45C //配置充电NT C暖状态温度上限值。 +#define JEITA_NTC_CHG_WARM_HIGH_TMP T_45C //配置充电NT C暖状态温度上限值。 -#define JEITA_NTC_CHG_WARM_HYST_HIGH_TMP T_42C //配置充电NTC暖状态恢复温度上限迟滞值。 +#define JEITA_NTC_CHG_WARM_HYST_HIGH_TMP T_42C //配置充电NTC暖状态恢复温度上限迟滞值。 /* JEITA模式,NTC温度热状态,上下限阈值和迟滞温度。 */ -#define JEITA_NTC_CHG_HOT_LOW_TMP T_45C //配置充电NTC热状态温度下限值。 +#define JEITA_NTC_CHG_HOT_LOW_TMP T_45C //配置充电NTC热状态温度下限值。 -#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //配置充电NTC热状态恢复温度下限迟滞值。 +#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //配置充电NTC热状态恢复温度下限迟滞值。 #endif @@ -286,19 +294,19 @@ #define VOX_HAVEY_TO_LIGHT_DEB VOX_HAVEY_TO_LIGHT_8 //配置VOX 重载转轻载滤波时间。 -#define VOX_COM_VOLTAGE_SET Vox_COMM_PULL_Vol_3_0 //配置VOX 通讯电平(1.8v/2.5V/3.0V/5.0)。 +#define VOX_COMM_VOLTAGE_SET Vox_COMM_PULL_Vol_3_0 //配置VOX 通讯电平(1.8v/2.5V/3.0V/5.0)。 -#define VOX_PULL_UP_SET Vox_Pull_Up_50k //配置VOX 通讯上拉电阻。 +#define VOX_COMM_PULL_UP_SET Vox_Pull_Up_50k //配置VOX 通讯上拉电阻。 #define VOX_CHG_FULL_5V_LEAST_CNT 40 //配置关盖条件下,VOX 耳机充满后,VOX输出5V持续时间(100ms * 40) -#define VOX_OPEN_VOUT_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:ms。 +#define HALL_OPEN_VOX_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:ms。 -#define VOX_OPEN_VOUT_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:ms。 +#define HALL_OPEN_VOX_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:ms。 #define VOX_OCP_HICUUP_DEBOUNCE 5 //配置关盖条件下,VOX 打嗝时间(100ms * 5),单位:ms。 -#define VOX_CLOSE_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:ms。 +#define HALL_CLOSE_VOX_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:ms。 /* 双向通讯协议选择 */ @@ -310,6 +318,8 @@ /* Vox跟随充参数设置。(100ms调用周期) */ +#define FOLLOW_CHG_EFFICIENCY //配置跟随充类型:0、效率优先;1、速度优先。 + #define VOX_CV_TC_CURRENT 20 //耳机充电处于CV/TC阶段的电流值,单位mA。 #define Vox_FOLLOW_CHG_PTM_THD 200 //PTM模式启动阈值(VOUT - VBAT),单位mV。 @@ -326,18 +336,67 @@ #define VOUT_MIN_THD Boost_Vout_3_65V //VOX VOUT输出最小阈值。 +#define IVOL_Threshold_Neg(Ivol) ( Ivol / 5 ) << 2 //VOL 调压下限阈值电流,80% * Ivol,IVOL≥这个值,则降压。 + +#define IVOR_Threshold_Neg(Ivor) ( Ivor / 5 ) << 2 //VOR 调压下限阈值电流,80% * Ivor,IVOR≥这个值,则降压。 + +#define IVOL_Threshold_Pos(Ivol) ( Ivol ) << 1 //VOL 调压上限阈值电流,2倍 * Ivol,当Ivol大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。 + +#define IVOR_Threshold_Pos(Ivor) ( Ivor ) << 1 //VOR 调压上限阈值电流,2倍 * Ivor,当Ivor大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。 + +/* PWM Module Setting */ +/*PWM计数器时钟Fre(pwm) = Fre(sys)/PWM_PRE = 11.0592M / n^PWM_PRE = 11.0592M / 8 = 1.38MHz, + PWM_REL = 255 - 1.38M / 10K = 255-138 = 117, + nPWM_CMP = 117 + 150 * (1-50%) = 192。 +*/ +#define PWM_CLKFRE_SET 3 //配置PWM计数时钟频率,对应寄存器PWM_PRE;PWM计数器时钟Fre(pwm) = Fre(sys)/PWM_PRE = 12M / n^PWM_PRE = 12M / 8 = 1.5MHz, + +#define PWM_RELOAD_SET PWM_REL_VALUE //配置PWM输出占空比,对应寄存器PWM_REL;需和PWM_CMP配合使用。 + /*Sleep Module Setting*/ /*Enter Sleep Time Debounce*/ #define ENTER_STANDBYMODE_CNT 15 //进入Standby Mode 延迟时间,单位:秒 #define STANDBY_TIM_SET STB_TMR_SET_8S //配置Standby定时唤醒时间:2s、4s、8s、16s,单位:秒 -//#define ENTER_STANDBYMODE_CNT 10 //进入Standby Mode 延迟时间,单位:秒 - /******************************************************************************\ Variables definitions \******************************************************************************/ +/* 标志位和状态位。 */ +/* NTC充放电保护标志位 */ +extern bit CHG_NTC_Pro_Flag; //充电NTC保护标志位;TRUE:有NTC保护:FAULSE:无NTC保护 + +extern bit Boost_NTC_Pro_Flag; //放电电NTC保护标志位;TRUE:有NTC保护:FAULSE:无NTC保护 + +/* Charger状态定义 */ +// 充电状态定义 +typedef enum +{ + CHG_NONE = 0x00, + + CHG_PROTECT, + + CHG_STA_ING, // 充电中 + + CHG_STA_COMPLETED, // 充电完成 + +} TE_CHG_STA; + +extern idata TE_CHG_STA ChgStatus; // Charger状态定义 + +/* Boost相关标志位 */ +extern bit gBoost_Prepared_Flag; //Boost满足开启条件,TRUE:Boost无保护,可以开启;FAULSE:Boost有保护,无法正常开启。 + +/* LED UI显示相关标志位 */ +extern bit CoverEvent_Flg_led; //Hall开关盖动作标志位,用于LED UI显示,TRUE:有开关盖动作。 + +extern bit Earphone_Chg_Flag_led; //耳机出入盒标志位,用于LED UI显示,TRUE:有耳机入盒动作。 + +extern bit Key_Press_short_irq_led; //按键短按动作标志位,用于LED UI显示,TRUE:有按键短按动作。 + +extern bit LED_On_Flag; //led显示复位标志位,TRUE:灯效复位。 + /******************************************************************************\ UserCfg.Functions definitions \******************************************************************************/ diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h index 0a65d4d..add21f4 100644 --- a/UsrInc/inc/define.h +++ b/UsrInc/inc/define.h @@ -49,12 +49,6 @@ #define VOX_FOLLOW_CHG 1 //2111Bytes -#if VOX_FOLLOW_CHG - -#define FOLLOW_CHG_EFFICIENCY //跟随充两只类型:1、效率优先;2、速度优先。 - -#endif - #if VOX_ENABLE #define VOX_TX //959Bytes diff --git a/UsrInc/key/key.h b/UsrInc/key/key.h index 31963f0..a5c6e24 100644 --- a/UsrInc/key/key.h +++ b/UsrInc/key/key.h @@ -35,7 +35,6 @@ #if KEY_ENABLE -extern bit Key_Press_short_irq; extern bit Key_Press_l_irq; extern bit Key_Press_ll_irq; diff --git a/UsrInc/led/led.h b/UsrInc/led/led.h index 3f4bf71..e4ea597 100644 --- a/UsrInc/led/led.h +++ b/UsrInc/led/led.h @@ -112,10 +112,10 @@ typedef struct{ }TS_LED_INFO; -extern volatile uint8_t Display_RSta; // 显示状态 -extern volatile uint8_t Display_GSta; // 显示状态 -extern volatile uint8_t Display_YSta; // 显示状态 -extern volatile uint8_t Display_BSta; // 显示状态 +extern uint8_t Display_RSta; // 显示状态 +extern uint8_t Display_GSta; // 显示状态 +extern uint8_t Display_YSta; // 显示状态 +extern uint8_t Display_BSta; // 显示状态 // LED显示相关定义 // LED显示逻辑 diff --git a/UsrInc/pwm/pwm.h b/UsrInc/pwm/pwm.h index 4054c9f..5e28bea 100644 --- a/UsrInc/pwm/pwm.h +++ b/UsrInc/pwm/pwm.h @@ -40,18 +40,25 @@ typedef enum { typedef struct { uint8_t nPWM_PRE; //PWM Clock Precale Set --- clock divide 2^n(n:0-7) + uint8_t nPWM_REL; //PWM counter reload value --- Fre(0-255) + uint8_t nPWM_CMP; //PWM compare value --- duty (0-255) }s_gPWM_Para_Cfg; #define PWM_REL_VALUE 105 //Feq:KK ,PWM_REL = 255 - 1.5M / 6K = 255-250 = 5,nPWM_CMP = 5 + 250 * (1-50%) = 130。 + #define PWM_REL_FULL 254 extern void PWM_Enable(void); + extern void PWM_Disable(Pwm_Channels_e nPWM_Ch); + extern void PWM_Init_Set(uint8_t nPWM_PRE,uint8_t nPWM_REL); + extern void PWM_Duty_Set(Pwm_Channels_e nPWM_Ch,uint8_t nPWM_CMP); + extern void HuXi_Led(Pwm_Channels_e nPWM_Ch, uint8_t Delay_Timer); #endif diff --git a/UsrInc/system/system.h b/UsrInc/system/system.h index 8b6f1c4..83c9fc8 100644 --- a/UsrInc/system/system.h +++ b/UsrInc/system/system.h @@ -175,6 +175,16 @@ #define STB_TMR_SET_8S (2U) #define STB_TMR_SET_16S (3U) +/* 系统分频,分频比为:N = 2^n。 */ +#define CLK_DIV_0 (0U) +#define CLK_DIV_2 (1U) +#define CLK_DIV_4 (2U) +#define CLK_DIV_8 (3U) +#define CLK_DIV_16 (4U) +#define CLK_DIV_32 (5U) +#define CLK_DIV_64 (6U) +#define CLK_DIV_128 (7U) + /*中断号计算方式:中断向量 = 中断号 * 8 + 3*/ #define Interrupt_Vector_IE0 0 //0x03,SY8836 IE0 use for wakeup @@ -204,5 +214,7 @@ extern void System_Init(void); +extern void Sys_Clk_Adjust(uint8_t Clk_Div); + #endif diff --git a/UsrInc/userapp/userapp.h b/UsrInc/userapp/userapp.h index 7699d94..c25ccb3 100644 --- a/UsrInc/userapp/userapp.h +++ b/UsrInc/userapp/userapp.h @@ -59,11 +59,6 @@ extern bit Wkup_Earphone_Flag; // Global variables and functions \******************************************************************************/ - -extern uint8_t LED_On_Timer; //led亮时间计时 - -extern bit LED_On_Flag; - extern void UserAPP(void); #endif diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h index 83bc535..644111c 100644 --- a/UsrInc/vox/vox_module.h +++ b/UsrInc/vox/vox_module.h @@ -36,8 +36,6 @@ extern bit Vox_Vout_Enable; -extern bit Earphone_Chg_Flag; //耳机出入盒标志位 - extern bit Vox_Output_Short_Flag; #define IVOX_THN 20 //耳机跟随充电流下降阈值 diff --git a/UsrSrc/InitVars.c b/UsrSrc/InitVars.c index 664cfb9..3321b8e 100644 --- a/UsrSrc/InitVars.c +++ b/UsrSrc/InitVars.c @@ -22,18 +22,11 @@ /******************************************************************************\ Macro definitions \******************************************************************************/ -/*程序版本,第一个数代表在硬件存在改动不能兼容之前版本时加1, - 第二个数在功能存在改动时加1,第三个数在软件调试出现不同的 - 测试版本时改动;高位数字变动时,低位数字清零。*/ - -#define FW_VER0 0x01 //程序版本0:代表在硬件存在改动不能兼容之前版本时加1 -#define FW_VER1 0x01 //程序版本1:代表在功能存在改动时加1 -#define FW_VER2 0x02 //程序版本2:代表在软件调试出现不同的测试版本时改动时加1 /******************************************************************************\ Variables definitions \******************************************************************************/ -char code Version_Addr[3] = {FW_VER0,FW_VER1,FW_VER2}; //设置ROM绝对地址存放软版本,两个参数存于ROM的3070、3071、3072位置处,小端模式存储。 +char code Version_Addr[3] = {FW_VER0,FW_VER1,FW_VER2}; //设置ROM绝对地址存放软版本,两个参数存于ROM的倒数3Bytes位置处,小端模式存储。 diff --git a/UsrSrc/adc/adc.c b/UsrSrc/adc/adc.c index 0e6964f..e61e174 100644 --- a/UsrSrc/adc/adc.c +++ b/UsrSrc/adc/adc.c @@ -34,47 +34,47 @@ \******************************************************************************/ -idata int8_t ADC_Offset_Error = 0; //ADC Offset Error 校准值寄存器 +idata int8_t ADC_Offset_Error; //ADC Offset Error 校准值寄存器 -idata int8_t Bat_ADC_Offset_Error = 0; +idata int8_t Bat_ADC_Offset_Error; -idata uint8_t Vor_Isense_Gain_Error = 0; +idata uint8_t Vor_Isense_Gain_Error; -idata uint8_t Vol_Isense_Gain_Error = 0; +idata uint8_t Vol_Isense_Gain_Error; -idata int8_t Vor_Isense_Offset_Error = 0; +idata int8_t Vor_Isense_Offset_Error; -idata int8_t Vol_Isense_Offset_Error = 0; +idata int8_t Vol_Isense_Offset_Error; -xdata uint8_t ADC_Chn_Num = 0; +xdata uint8_t ADC_Chn_Num; -idata uint16_t g_Value_Adc = 0; +idata uint16_t g_Value_Adc; -xdata uint16_t g_Value_Adc_Avg = 0; +xdata uint16_t g_Value_Adc_Avg; #if 0 -xdata uint16_t g_Value_Adc0 = 0; +xdata uint16_t g_Value_Adc0; -xdata uint16_t g_Value_Adc1 = 0; +xdata uint16_t g_Value_Adc1; -xdata uint16_t g_Vref_Adc = 0; +xdata uint16_t g_Vref_Adc; #endif -xdata int16_t g_Vntc_Adc = 0; +xdata int16_t g_Vntc_Adc; -xdata int16_t g_pmu_Adc_Ivol = 0; +xdata int16_t g_pmu_Adc_Ivol; -xdata int16_t g_pmu_Adc_Ivor = 0; +xdata int16_t g_pmu_Adc_Ivor; -xdata int16_t g_Vbat_Adc = 0; +xdata int16_t g_Vbat_Adc; -xdata int16_t g_pmu_Adc_Vout = 0; +xdata int16_t g_pmu_Adc_Vout; -xdata uint8_t g_ADC_Chn = 0; +xdata uint8_t g_ADC_Chn; -xdata uint8_t Adc_Index = 0; +xdata uint8_t Adc_Index; -bit ADC_Cal_Over_Flag = 0; +bit ADC_Cal_Over_Flag; /******************************************************************************\ Functions definitions @@ -121,8 +121,7 @@ void Adc_Init(void) Vor_Isense_Offset_Error = (int8_t)( ( IVOX_OFFSET >> 4 ) - 8 ) * 10; Vor_Isense_Gain_Error = IVOR_GAIN; - //Vol_Isense_Offset_Error = 10; - //Vor_Isense_Offset_Error = 10; + #endif EX6 = 1; //ADC IRQ Enable @@ -224,8 +223,6 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn ) break; } - //g_Value_Adc_Avg = 0; - ADC_Cal_Over_Flag = 0; #ifdef _DEBUG_ADC diff --git a/UsrSrc/bat/bat.c b/UsrSrc/bat/bat.c index 3e7feef..0ee1d3f 100644 --- a/UsrSrc/bat/bat.c +++ b/UsrSrc/bat/bat.c @@ -470,18 +470,18 @@ void Bat_Gauge_Handle(void) #if BAT_VALUE -#define C_offset_bat_level_MAX 200 -#define C_offset_bat_level_MIN 10 +#define C_offset_bat_level_MAX 190 +#define C_offset_bat_level_MIN 10 -bit F_batlevel_protect = 0; //低电保护 +bit F_batlevel_protect; //低电保护 -bit F_batlevel_25p = 0; +bit F_batlevel_25p; -bit F_batlevel_50p = 0; +bit F_batlevel_50p; -bit F_batlevel_75p = 0; +bit F_batlevel_75p; -idata uint8_t offset_bat_level = ( C_offset_bat_level_MAX + C_offset_bat_level_MIN ) / 2; +idata uint8_t offset_bat_level; /*充电电池电压会浮高,具体电压需要测试。*/ const uint16_t Boost_batlevel_Threshold[C_batLevel_SetMax] = diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c index c026e4b..4556d09 100644 --- a/UsrSrc/charger/charger_module.c +++ b/UsrSrc/charger/charger_module.c @@ -29,7 +29,7 @@ #include "bat.h" #ifdef NTC_ENABLE -bit CHG_NTC_Pro_Flag = 0; +bit CHG_NTC_Pro_Flag; #endif idata TE_CHG_STA ChgStatus; // CHG状态定义 @@ -46,7 +46,7 @@ idata TE_CHG_STA ChgStatus; // CHG状态 -idata uint8_t gConstant_Cur_Max_Setting = CONSTANT_CUR_SET; //Charge最大充电电流。 +idata uint8_t gConstant_Cur_Max_Setting; //Charge最大充电电流。 idata s_gCharger_Cfg gCharge_Cfg; @@ -85,6 +85,8 @@ void Charger_Init(void) #endif + gConstant_Cur_Max_Setting = CONSTANT_CUR_SET; + SFRADDR = REG_CHG0; SFRDATA |= R_Set0 | R_Set1; //Charger 环路 RC 调零电阻配置,00-11 档位逐步增大调零电阻阻值。 @@ -490,6 +492,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) void Charger_Handler(void) { uint16_t nCVFloat = 0; + if( !(CHIP_STA4 & VIN_PG) ) //未检测到Power good,则关闭Charger使能后返回。 { CHG_CTL &= ~CHG_EN; //Disable Charger @@ -526,7 +529,7 @@ void Charger_Handler(void) { IRQ_FLAG9 = BAT_OverVol; - CHG_CTL &= ~CHG_EN; //Disable Charger + // CHG_CTL &= ~CHG_EN; //Disable Charger return; } diff --git a/UsrSrc/discharge/discharge_module.c b/UsrSrc/discharge/discharge_module.c index a706ec8..3b7a3e3 100644 --- a/UsrSrc/discharge/discharge_module.c +++ b/UsrSrc/discharge/discharge_module.c @@ -27,10 +27,10 @@ #include "bat.h" #ifdef NTC_ENABLE -bit Boost_NTC_Pro_Flag = 0; +bit Boost_NTC_Pro_Flag; #endif -bit gBoost_Prepared_Flag = 0; //Boost满足开启条件。 +bit gBoost_Prepared_Flag; //Boost满足开启条件。 #if DISCHARGE_ENABLE /******************************************************************************\ @@ -41,7 +41,7 @@ bit gBoost_Prepared_Flag = 0; //Boost Variables definitions \******************************************************************************/ -bit gBoost_UVLO_Flag = 0; +bit gBoost_UVLO_Flag; /******************************************************************************\ Functions definitions @@ -158,14 +158,7 @@ void DisCharge_Handler(void) return; } -#if 0 - /* BAT LOW Interrupt */ - if( IRQ_FLAG0 & BAT_Low ) - { - - return; - } -#endif + /*输出短路保护 (使用中断标志位,Boost短路中断发生后会锁存,需要写1清零。)-- 短路保护后一直打嗝或者打嗝BOOST_HICCUP_TIM次之后disable boost,打嗝时间 250ms(软件实现)。*/ if( IRQ_FLAG0 & Boost_OutPut_Short ) { diff --git a/UsrSrc/display/display_ui.c b/UsrSrc/display/display_ui.c new file mode 100644 index 0000000..f1926d8 --- /dev/null +++ b/UsrSrc/display/display_ui.c @@ -0,0 +1,383 @@ +/******************************************************************************* + * + * @file display_ui.c + * @brief display_ui module + * @ic sy8837/8 + * + * @version 1.0 + * @date 2025/01/14 15:00:40 + * @author Alex Xu + * + * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. + * All Rights Reserved + * + * History: + * Revision Date Author Desc + * 1.0.0 2025/01/14 Alex build this file + ******************************************************************************/ + /*_____ I N C L U D E S ____________________________________________________*/ +#include "display_ui.h" +#include "userapp.h" +#include "adc.h" +#include "hall.h" +#include "key.h" +#include "sleep.h" +#include "system.h" +#include "bat.h" +#include "sys_tim.h" +#include "charger_module.h" +#include "discharge_module.h" +#include "led.h" +#include "vox_module.h" + +/******************************************************************************\ + Macro definitions +\******************************************************************************/ +#define LED_ON_CNT 100 //10s,电量灯触发后亮的时间。 + +#define LED_PRO_TIM 40 + +#define LED_OFF_CNT 1 + +/******************************************************************************\ + Variables definitions +\******************************************************************************/ +bit Earphone_Chg_Flag_led; //耳机出入盒标志位 + +bit CoverEvent_Flg_led; //Hall开关触发事件标志位,用于灯效显示。 + +bit Key_Press_short_irq_led; //按键短按动作标志位,用于LED UI显示,TRUE:有按键短按动作。 + +uint8_t LED_On_Timer; //led亮时间计时 + +bit LED_On_Flag; //led显示复位标志位,1:灯效复位。 + +#ifdef PWM_ENABLE +uint8_t Breathing_Light_Cnt; //呼吸灯流水计数器 +#endif + +/******************************************************************************\ + Functions definitions +\******************************************************************************/ + +#ifdef LED_DISPLAY + /***************************************************************************** +* Function : void LED_Breating_Light_Off(void) +* Description : 需要时调用周期,呼吸灯全熄灭函数。 +* Input : None +* Output : None +* Return : None +* Note : None +*****************************************************************************/ + void LED_Breating_Light_Off(void) + { +#ifdef PWM_ENABLE + + LED_R_BREATHING_LIGHT(SHOW_NONE); + + LED_G_BREATHING_LIGHT(SHOW_NONE); + + LED_Y_BREATHING_LIGHT(SHOW_NONE); + + LED_B_BREATHING_LIGHT(SHOW_NONE); + +#endif + } + +/***************************************************************************** +* Function : void LED_Display_App(void) +* Description : 100ms调用周期 +* Input : None +* Output : None +* Return : None +* Note : None +*****************************************************************************/ +/* +充电: +1、充电中,无其它行为打断时,开关盒状态下都显示充电常亮灯效(1Hz闪烁); +2、充满,常亮;可被其它灯效打断; + +非充电: +1、首次使用开盖灯效:①高电:亮4s后灭;②低电:1Hz闪4s后灭; +2、非首次使用开盖灯效:①耳机在盒:亮4s后灭;②耳机不在盒:???? + ③充电中,开盖闪一下,如何闪?亮多久后灭? +3、关盖灯效,高电:亮4s后灭;低电:1Hz闪4s后灭; +4、关盒状态下无灯效显示; + +*/ + void LED_Display_App(void) + { +#ifdef NTC_ENABLE + static bit LED_On_Flag1; +#endif + static bit LED_On_Chg_Flag; + + static bit LED_On_ChgDone_Flag; + + static bit Disp_Bat_Lev; //拔出VIN动作标志位。 + + if( LED_On_Flag ) + { + LED_On_Flag = 0; + + LED_On_Timer = 0; + + offset_bat_level = 0; + + Display_AllOff(); + +#if SLEEP_ENABLE + Enter_Sleep_Cnt_Restart_Flag = 1; +#endif + return; + } + +#ifdef NTC_ENABLE + /*NTC保护,4灯一直快闪(2Hz)*/ + if( CHG_NTC_Pro_Flag || Boost_NTC_Pro_Flag || ( Vox_Output_Short_Flag && !Vox_Ocp_Flag ) ) + { + if( !LED_On_Flag1 ) + { + LED_On_Flag1 = 1; + + LED_On_Flag = 1; + } + else + { + if( Display_RSta != LED_FLASH ) + { + Display_Red_Flash(20,10); + } + + if( Display_GSta != LED_FLASH ) + { + Display_Green_Flash(20,10); + } + + if( Display_YSta != LED_FLASH ) + { + Display_Yellow_Flash(20,10); + } + + if( Display_BSta != LED_FLASH ) + { + Display_Blue_Flash(20,10); + } + + if( Vox_Output_Short_Flag ) + { + if( LED_On_Timer < LED_PRO_TIM ) + { + LED_On_Timer++; + } + else + { + Vox_Ocp_Flag = 1; + + LED_On_Flag = 1; + } + } + } + + return; + } + + /* 保护消失后,需要开启5V升压一段时间。 */ + if( LED_On_Flag1 ) + { + LED_On_Flag1 = 0; + + LED_On_ChgDone_Flag = 0; + + LED_On_Chg_Flag = 0; + + CoverEvent_Flg_led = 0; + + Earphone_Chg_Flag_led = 0; + + Wkup_Earphone_Flag = 1; + } + +#endif + + if (ChgStatus != CHG_NONE) + { + if ( ChgStatus == CHG_STA_COMPLETED ) // 充电完成,4个LED常亮 + { + if( !LED_On_ChgDone_Flag ) + { + LED_On_ChgDone_Flag = 1; + + LED_On_Chg_Flag = 0; + + LED_Breating_Light_Off(); + + return; + } + + Display_AllOn(); + } + else + { + if( !LED_On_Chg_Flag ) + { + LED_On_Chg_Flag = 1; + + LED_On_ChgDone_Flag = 0; + + LED_On_Flag = 1; +#ifdef PWM_ENABLE + Breathing_Light_Cnt = LED_R; +#endif + } + else + { +#ifdef PWM_ENABLE + if( LED_On_Timer < LED_OFF_CNT ) + { + LED_On_Timer++; + + switch ( Breathing_Light_Cnt ) + { + case LED_R: + + if( Display_RSta != LED_BREATHING_LIGHT ) + { + LED_R_BREATHING_LIGHT(SLOW_DARK); + } + + break; + case LED_G: + if( Display_GSta != LED_BREATHING_LIGHT ) + { + LED_G_BREATHING_LIGHT(SLOW_DARK); + } + + break; + + case LED_Y: + if( Display_YSta != LED_BREATHING_LIGHT ) + { + LED_Y_BREATHING_LIGHT(SLOW_DARK); + } + + break; + + case LED_B: + if( Display_BSta != LED_BREATHING_LIGHT ) + { + LED_B_BREATHING_LIGHT(SLOW_DARK); + } + + break; + + default: + + break; + } + } + else + if( LED_On_Timer < 15 ) //LED显示1.5s。 + { + LED_On_Timer++; + } + else + { + LED_On_Timer = 0; + + Breathing_Light_Cnt++; + + if( Breathing_Light_Cnt >= LED_ID_MAX ) + { + Breathing_Light_Cnt = LED_R; + } + } +#endif + } + } + + CoverEvent_Flg_led = 0; + + Earphone_Chg_Flag_led = 0; + + Key_Press_short_irq_led = 0; + + Disp_Bat_Lev = 1; + } + else + { + if( LED_On_Chg_Flag ) + { + LED_On_Chg_Flag = 0; + + LED_Breating_Light_Off(); + + LED_On_Flag = 1; + + Wkup_Earphone_Flag = 1; + + return; + } + + if( CoverEvent_Flg_led || Disp_Bat_Lev || Earphone_Chg_Flag_led || Key_Press_short_irq_led ) + { + if( LED_On_Timer < LED_OFF_CNT ) + { + LED_On_Timer++; + } + else + if( LED_On_Timer < LED_ON_CNT ) //LED显示10s后灭。 + { + LED_On_Timer++; + + /*电量显示,25%电量左侧第1个灯闪;25%-50%电量2个灯常亮;50%-75%电量3个灯常亮;75%-100%电量4个灯常量。*/ + if( F_batlevel_25p ) + { + if (Display_RSta != LED_KEEP_FLASHING) + { + Display_Red_KeepFlash(100); + Display_Green_Off(); + Display_Yellow_Off(); + Display_Blue_Off(); + } + } + else + if( F_batlevel_50p ) + { + Display_Red_On(); + Display_Green_On(); + Display_Yellow_Off(); + Display_Blue_Off(); + } + else + if( F_batlevel_75p ) + { + Display_Red_On(); + Display_Green_On(); + Display_Yellow_On(); + Display_Blue_Off(); + } + else + { + Display_AllOn(); + } + } + else + { + CoverEvent_Flg_led = 0; + + Disp_Bat_Lev = 0; + + Earphone_Chg_Flag_led = 0; + + Key_Press_short_irq_led = 0; + + Display_AllOff(); //清LED显示 + } + } + } + } + +#endif + + diff --git a/UsrSrc/hall/hall.c b/UsrSrc/hall/hall.c index f998481..0852940 100644 --- a/UsrSrc/hall/hall.c +++ b/UsrSrc/hall/hall.c @@ -25,6 +25,7 @@ #include "charger_module.h" #include "sleep.h" #include "system.h" +#include "display_ui.h" /******************************************************************************\ Macro definitions @@ -36,13 +37,11 @@ CoverStatus_E CoverStatus; -bit CoverEvent_Flg = 0; //Hall开关触发事件标志位,用于VOX充电。 - -bit CoverEvent_Flg_led = 0; //Hall开关触发事件标志位,用于灯效显示。 +bit CoverEvent_Flg; //Hall开关触发事件标志位,用于VOX充电。 #if HALL_ENABLE -xdata uint8_t Hall_Sta_bk = 0xff; +xdata uint8_t Hall_Sta_bk; /******************************************************************************\ Functions definitions @@ -122,6 +121,7 @@ xdata uint8_t Hall_Sta_bk = 0xff; #endif Hall_Sta_bk = Hall_Sta; + #if SLEEP_ENABLE Enter_Sleep_Cnt_Restart_Flag = 1; diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c index 9900f71..5f16000 100644 --- a/UsrSrc/key/key.c +++ b/UsrSrc/key/key.c @@ -27,6 +27,7 @@ #include "userapp.h" #include "hall.h" #include "discharge_module.h" +#include "display_ui.h" #if KEY_ENABLE /******************************************************************************\ @@ -56,23 +57,21 @@ Variables definitions \******************************************************************************/ -bit Key_Press_short_irq = 0; +bit Key_Press_l_irq; -bit Key_Press_l_irq = 0; +bit Key_Press_ll_irq; -bit Key_Press_ll_irq = 0; +idata KEY_EVENT_E Event_key; -idata KEY_EVENT_E Event_key = 0; +uint8_t Key_TWS_Pair_Tim; -uint8_t Key_TWS_Pair_Tim = 0; +uint8_t Key_TWS_Clear_Pair_Tim; -uint8_t Key_TWS_Clear_Pair_Tim = 0; +uint8_t Key_TWS_Pair_Cnt; -uint8_t Key_TWS_Pair_Cnt = 0; +uint16_t Key_Press_Debounce; -uint16_t Key_Press_Debounce = 0; - -uint8_t Key_Lift_Debounce = 0; +uint8_t Key_Lift_Debounce; /******************************************************************************\ Functions definitions @@ -148,7 +147,7 @@ uint8_t Key_Lift_Debounce = 0; if( (Key_Press_Debounce <= KEY_PRESS_500MS_CNT) ) //松开按键,按下时间小于500ms,则识别为短按,显示电量 { - Key_Press_short_irq = 1; + Key_Press_short_irq_led = 1; nKey_Press_short_irq = 1; #ifdef LED_DISPLAY @@ -277,7 +276,7 @@ uint8_t Key_Lift_Debounce = 0; #if XUANHENG HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN); #else - HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //右耳发配对指令,区分耳机通道。 + HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); //右耳发配对指令,区分耳机通道。 #endif #endif diff --git a/UsrSrc/led/led.c b/UsrSrc/led/led.c index 119be1d..8f64c00 100644 --- a/UsrSrc/led/led.c +++ b/UsrSrc/led/led.c @@ -24,10 +24,13 @@ #ifdef LED_DISPLAY -volatile uint8_t Display_RSta = LED_OFF; // 显示状态 -volatile uint8_t Display_GSta = LED_OFF; // 显示状态 -volatile uint8_t Display_YSta = LED_OFF; // 显示状态 -volatile uint8_t Display_BSta = LED_OFF; // 显示状态 + uint8_t Display_RSta; // 显示状态 + + uint8_t Display_GSta; // 显示状态 + + uint8_t Display_YSta; // 显示状态 + + uint8_t Display_BSta; // 显示状态 /******************************************************************************\ Macro definitions @@ -36,7 +39,9 @@ volatile uint8_t Display_BSta = LED_OFF; // /******************************************************************************\ Variables definitions \******************************************************************************/ + static TS_LED_INFO LED; + /******************************************************************************\ Functions definitions \******************************************************************************/ @@ -51,7 +56,7 @@ static TS_LED_INFO LED; void LED_Init(void) /******************************************************************************/ { - SFRADDR = P0_OE; + SFRADDR = P0_OE; //Set P02 - P05 Output. SFRDATA = 0x3C; SFRADDR = MFP_CTL0; //Set P02、P03 As GPIO. @@ -60,9 +65,14 @@ void LED_Init(void) SFRADDR = MFP_CTL1; //Set P06 As Hall. SFRDATA &=~ 0x0F; - SFRADDR = P0_DRV0; //Set P02 - P05 限流电阻400Ω - SFRDATA = 0xff; - + SFRADDR = P0_DRV0; //Set P02 - P05 限流电阻400Ω. + SFRDATA = LED_DRV_LIMIT_SET; + + Display_RSta = LED_OFF; + Display_GSta = LED_OFF; + Display_YSta = LED_OFF; + Display_BSta = LED_OFF; + LEDR_OFF(); LEDG_OFF(); LEDB_OFF(); @@ -97,7 +107,8 @@ static void LED_On(uint8_t LedId) LEDB_ON(); break; - default: break; + default: + break; } } @@ -129,7 +140,8 @@ static void LED_Off(uint8_t LedId) LEDB_OFF(); break; - default: break; + default: + break; } } diff --git a/UsrSrc/main.c b/UsrSrc/main.c index 8f5137b..eb5a61a 100644 --- a/UsrSrc/main.c +++ b/UsrSrc/main.c @@ -47,7 +47,7 @@ void main(void ) #ifdef _DEBUG_MAIN - printf("System Init.\r\n"); + printf("System Init.Ver:%2x%2x%2x\r\n",(uint16_t)FW_VER0, (uint16_t)FW_VER1, (uint16_t)FW_VER2); #endif diff --git a/UsrSrc/sleep/sleep.c b/UsrSrc/sleep/sleep.c index 3d3d893..c5001b2 100644 --- a/UsrSrc/sleep/sleep.c +++ b/UsrSrc/sleep/sleep.c @@ -32,9 +32,9 @@ Variables definitions \******************************************************************************/ -uint8_t Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; +uint8_t Decnt_SleepDelay; -bit Enter_Sleep_Cnt_Restart_Flag = 0; +bit Enter_Sleep_Cnt_Restart_Flag; /******************************************************************************\ Functions definitions @@ -100,6 +100,8 @@ void WakeUp_Init_Set(void) #endif + Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; + } /* diff --git a/UsrSrc/system/system.c b/UsrSrc/system/system.c index 4aae9bf..6801916 100644 --- a/UsrSrc/system/system.c +++ b/UsrSrc/system/system.c @@ -84,6 +84,16 @@ void System_Init(void) #endif #if WTG_ENABLE + /* + WDT_TM = 0,则看门狗时钟为系统时钟的12分频,否则为系统时钟。 + wdtrel.7=1 则看门狗计数器时钟为Sys_Fre/12*32,wdtrel.7=0 则看门狗计数器时钟为Sys_Fre/12*2. + Sys_Fre = 12MHz,wdtrel.7=0时,定时器范围: + (1/Sys_Fre)*12*2*256~(1/Sys_Fre)*12*2*256*128 = 5ms~65ms + + Sys_Fre = 12MHz,wdtrel.7=1时,定时器范围: + (1/Sys_Fre)*12*32*256~(1/Sys_Fre)*12*32*256*128 = 80ms~1s + + */ /* 65ms */ WDTREL = 0x00; //WDTPS = 0,wdt_f = wdt_f1/2;WDTPS = 1,wdt_f = wdt_f1/32; /* 1s */ @@ -133,7 +143,7 @@ void System_Init(void) #endif #ifdef PWM_ENABLE - PWM_Init_Set(3,PWM_REL_VALUE); + PWM_Init_Set(PWM_CLKFRE_SET,PWM_RELOAD_SET); #endif #ifdef LED_DISPLAY @@ -155,6 +165,26 @@ void System_Init(void) Systerm_State.Next_State = POWER_ON_STATE; } +#if 0 +/* + ******************************************************************************* + * void Sys_Clk_Adjust(uint8_t Clk_Div) + * + * Description : System Clock Division Setting. + * + * Arguments : NONE + + * Returns : NONE + + * Notes : NONE + * + ******************************************************************************* + */ +void Sys_Clk_Adjust(uint8_t Clk_Div) +{ + CLKPRE = Clk_Div; +} +#endif /* ******************************************************************************* * void EX0_isr(void ) interrupt Interrupt_Vector_IE0 @@ -173,9 +203,7 @@ void System_Init(void) void EX0_isr(void) interrupt Interrupt_Vector_IE0 { #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; - #endif } @@ -199,9 +227,7 @@ void EX2_isr(void) interrupt Interrupt_Vector_IE2 IRQ_FLAG3 = 0x3C; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; - #endif } @@ -226,9 +252,7 @@ void EX3_isr(void) interrupt Interrupt_Vector_IE3 IRQ_FLAG10 = Standby_Tmr_WkUp; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; - #endif } diff --git a/UsrSrc/timer/sys_tim.c b/UsrSrc/timer/sys_tim.c index 80c80a8..463cfc4 100644 --- a/UsrSrc/timer/sys_tim.c +++ b/UsrSrc/timer/sys_tim.c @@ -34,23 +34,33 @@ Variables definitions \******************************************************************************/ -uint8_t cnt_sys_tim_5ms = 0; -uint8_t cnt_sys_tim_10ms = 0; -uint8_t cnt_sys_tim_250ms = 0; -uint16_t cnt_sys_tim_100ms = 0; -uint8_t cnt_sys_tim_1s = 0; +uint8_t cnt_sys_tim_5ms; -bit F_sys_tim_1ms = 0; -bit F_sys_tim_5ms = 0; -bit F_sys_tim_10ms = 0; -bit F_sys_tim_250ms = 0; -bit F_sys_tim_100ms = 0; -bit F_sys_tim_1s = 0; +uint8_t cnt_sys_tim_10ms; -uint8_t F_sys_tim_tick = 0; -bit F_sys_tim1_tick = 0; +uint8_t cnt_sys_tim_250ms; -bit F_sys_tim2_tick = 0; +uint16_t cnt_sys_tim_100ms; + +uint8_t cnt_sys_tim_1s; + +bit F_sys_tim_1ms; + +bit F_sys_tim_5ms; + +bit F_sys_tim_10ms; + +bit F_sys_tim_250ms; + +bit F_sys_tim_100ms; + +bit F_sys_tim_1s; + +uint8_t F_sys_tim_tick; + +bit F_sys_tim1_tick; + +bit F_sys_tim2_tick; /******************************************************************************\ Functions definitions diff --git a/UsrSrc/uart/uart.c b/UsrSrc/uart/uart.c index ea0818e..3c29950 100644 --- a/UsrSrc/uart/uart.c +++ b/UsrSrc/uart/uart.c @@ -51,9 +51,9 @@ bit Uart0_RX_Finish_Flag = 0; #if UART1_ENABLE -idata uint8_t RX1_Buffer[COM1_Data_Lenth] = 0; //接收缓冲 +idata uint8_t RX1_Buffer[COM1_Data_Lenth]; //接收缓冲 -bit Uart1_RX_Finish_Flag = 0; +bit Uart1_RX_Finish_Flag; #endif @@ -100,15 +100,7 @@ void Uart0SendData(uint8_t Txdata) busy0 = 1; -// SFRADDR = MFP_CTL0; //Set P01 As TX. -// SFRDATA &=~ 0x0C; -// SFRDATA |= 0x04; - - S0BUF = Txdata; - -// SFRADDR = MFP_CTL0; //Set P01 As RX. -// SFRDATA &=~ 0x0C; -// SFRDATA |= 0x0C; + S0BUF = Txdata; } #endif @@ -200,7 +192,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI #if UART1_ENABLE -bit busy1 = 0; +bit busy1; /* ******************************************************************************* @@ -280,13 +272,13 @@ void Uart1SendString(char *s) } #endif -uint8_t Rx1Status = 0; +uint8_t Rx1Status; -uint8_t RX1_Cnt = 0; +uint8_t RX1_Cnt; #if XUANHENG -uint16_t RX1DataLen = 0; +uint16_t RX1DataLen; #endif diff --git a/UsrSrc/user/user.c b/UsrSrc/user/user.c index 50d740e..c414d49 100644 --- a/UsrSrc/user/user.c +++ b/UsrSrc/user/user.c @@ -29,8 +29,11 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ +#if QUEUE + idata SeqQueue Queue; +#endif /******************************************************************************\ Functions definitions \******************************************************************************/ diff --git a/UsrSrc/userapp/userapp.c b/UsrSrc/userapp/userapp.c index 2df36cf..40fce27 100644 --- a/UsrSrc/userapp/userapp.c +++ b/UsrSrc/userapp/userapp.c @@ -30,15 +30,11 @@ #include "discharge_module.h" #include "led.h" #include "vox_module.h" +#include "display_ui.h" /******************************************************************************\ Macro definitions \******************************************************************************/ -#define LED_ON_CNT 100 //10s - -#define LED_PRO_TIM 40 - -#define LED_OFF_CNT 1 /******************************************************************************\ Variables definitions @@ -46,337 +42,16 @@ s_sys_state Systerm_State = {SLEEP_STATE,AWAKE_STATE,AWAKE_STATE}; -uint8_t Step_Cnt = 0; +uint8_t Step_Cnt; -uint8_t LED_On_Timer = 0; //led亮时间计时 +uint8_t Power_index; -bit LED_On_Flag = 0; +bit Wkup_Earphone_Flag; //保护消失后,需要升压唤醒耳机标志位 -bit Wkup_Earphone_Flag = 0; //保护消失后,需要升压唤醒耳机标志位 - -uint8_t Wkup_Source_Flag = 0; //唤醒源标志 - -#ifdef PWM_ENABLE - -uint8_t Breathing_Light_Cnt = 0; -#endif /******************************************************************************\ Functions definitions \******************************************************************************/ -/***************************************************************************** -* Function : void LED_Display_App(void) -* Description : 100ms调用周期 -* Input : None -* Output : None -* Return : None -* Note : None -*****************************************************************************/ -/* -充电: -1、充电中,无其它行为打断时,开关盒状态下都显示充电常亮灯效(1Hz闪烁); -2、充满,常亮;可被其它灯效打断; - -非充电: -1、首次使用开盖灯效:①高电:亮4s后灭;②低电:1Hz闪4s后灭; -2、非首次使用开盖灯效:①耳机在盒:亮4s后灭;②耳机不在盒:???? - ③充电中,开盖闪一下,如何闪?亮多久后灭? -3、关盖灯效,高电:亮4s后灭;低电:1Hz闪4s后灭; -4、关盒状态下无灯效显示; - -*/ -#ifdef LED_DISPLAY - -void LED_Breating_Light_Off(void) -{ -#ifdef PWM_ENABLE - - LED_R_BREATHING_LIGHT(SHOW_NONE); - - LED_G_BREATHING_LIGHT(SHOW_NONE); - - LED_Y_BREATHING_LIGHT(SHOW_NONE); - - LED_B_BREATHING_LIGHT(SHOW_NONE); - -#endif -} - -void LED_Display_App(void) -{ -#ifdef NTC_ENABLE - static bit LED_On_Flag1; -#endif - static bit LED_On_Chg_Flag; - - static bit LED_On_ChgDone_Flag; - - static bit Disp_Bat_Lev; - - if( LED_On_Flag ) - { - LED_On_Flag = 0; - - LED_On_Timer = 0; - - offset_bat_level = 0; - - Display_AllOff(); - -#if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; -#endif - return; - } - -#ifdef NTC_ENABLE - /*NTC保护,4灯一直快闪(2Hz)*/ - if( CHG_NTC_Pro_Flag || Boost_NTC_Pro_Flag || ( Vox_Output_Short_Flag && !Vox_Ocp_Flag ) ) - { - if( !LED_On_Flag1 ) - { - LED_On_Flag1 = 1; - - LED_On_Flag = 1; - } - else - { - if( Display_RSta != LED_FLASH ) - { - Display_Red_Flash(20,10); - } - - if( Display_GSta != LED_FLASH ) - { - Display_Green_Flash(20,10); - } - - if( Display_YSta != LED_FLASH ) - { - Display_Yellow_Flash(20,10); - } - - if( Display_BSta != LED_FLASH ) - { - Display_Blue_Flash(20,10); - } - - if( Vox_Output_Short_Flag ) - { - if( LED_On_Timer < LED_PRO_TIM ) - { - LED_On_Timer++; - } - else - { - Vox_Ocp_Flag = 1; - - LED_On_Flag = 1; - } - } - } - - return; - } - - /* 保护消失后,需要开启5V升压一段时间。 */ - if( LED_On_Flag1 ) - { - LED_On_Flag1 = 0; - - LED_On_ChgDone_Flag = 0; - - LED_On_Chg_Flag = 0; - - CoverEvent_Flg_led = 0; - - Earphone_Chg_Flag = 0; - - Wkup_Earphone_Flag = 1; - } - -#endif - - if (ChgStatus != CHG_NONE) - { - if ( ChgStatus == CHG_STA_COMPLETED ) // 充电完成,4个LED常亮 - { - if( !LED_On_ChgDone_Flag ) - { - LED_On_ChgDone_Flag = 1; - - LED_On_Chg_Flag = 0; - - LED_Breating_Light_Off(); - - return; - } - - Display_AllOn(); - } - else - { - if( !LED_On_Chg_Flag ) - { - LED_On_Chg_Flag = 1; - - LED_On_ChgDone_Flag = 0; - - LED_On_Flag = 1; -#ifdef PWM_ENABLE - Breathing_Light_Cnt = LED_R; -#endif - } - else - { -#ifdef PWM_ENABLE - if( LED_On_Timer < LED_OFF_CNT ) - { - LED_On_Timer++; - - switch ( Breathing_Light_Cnt ) - { - case LED_R: - - if( Display_RSta != LED_BREATHING_LIGHT ) - { - LED_R_BREATHING_LIGHT(SLOW_DARK); - } - - break; - case LED_G: - if( Display_GSta != LED_BREATHING_LIGHT ) - { - LED_G_BREATHING_LIGHT(SLOW_DARK); - } - - break; - - case LED_Y: - if( Display_YSta != LED_BREATHING_LIGHT ) - { - LED_Y_BREATHING_LIGHT(SLOW_DARK); - } - - break; - - case LED_B: - if( Display_BSta != LED_BREATHING_LIGHT ) - { - LED_B_BREATHING_LIGHT(SLOW_DARK); - } - - break; - - default: - - break; - } - } - else - if( LED_On_Timer < 15 ) //LED显示1.5s。 - { - LED_On_Timer++; - } - else - { - LED_On_Timer = 0; - - Breathing_Light_Cnt++; - - if( Breathing_Light_Cnt >= LED_ID_MAX ) - { - Breathing_Light_Cnt = LED_R; - } - } -#endif - } - } - - CoverEvent_Flg_led = 0; - - Earphone_Chg_Flag = 0; - - Key_Press_short_irq = 0; - - Disp_Bat_Lev = 1; - } - else - { - if( LED_On_Chg_Flag ) - { - LED_On_Chg_Flag = 0; - - LED_Breating_Light_Off(); - - LED_On_Flag = 1; - - Wkup_Earphone_Flag = 1; - - return; - } - - if( CoverEvent_Flg_led || Disp_Bat_Lev || Earphone_Chg_Flag || Key_Press_short_irq ) - { - if( LED_On_Timer < LED_OFF_CNT ) - { - LED_On_Timer++; - } - else - if( LED_On_Timer < LED_ON_CNT ) //LED显示10s后灭。 - { - LED_On_Timer++; - - /*电量显示,25%电量左侧第1个灯闪;25%-50%电量2个灯常亮;50%-75%电量3个灯常亮;75%-100%电量4个灯常量。*/ - if( F_batlevel_25p ) - { - if (Display_RSta != LED_KEEP_FLASHING) - { - Display_Red_KeepFlash(100); - Display_Green_Off(); - Display_Yellow_Off(); - Display_Blue_Off(); - } - } - else - if( F_batlevel_50p ) - { - Display_Red_On(); - Display_Green_On(); - Display_Yellow_Off(); - Display_Blue_Off(); - } - else - if( F_batlevel_75p ) - { - Display_Red_On(); - Display_Green_On(); - Display_Yellow_On(); - Display_Blue_Off(); - } - else - { - Display_AllOn(); - } - } - else - { - CoverEvent_Flg_led = 0; - - Disp_Bat_Lev = 0; - - Earphone_Chg_Flag = 0; - - Key_Press_short_irq = 0; - - Display_AllOff(); //清LED显示 - } - } - } -} - -#endif - /* ******************************************************************************* * void ADC_GetValue_Machine(void) @@ -469,7 +144,6 @@ void System_Drivers_Machine(void) * Return : None * Note : None *****************************************************************************/ -uint8_t Power_index = 0; void SysTem_State_Machine(void) { @@ -636,7 +310,8 @@ void SysTem_State_Machine(void) #ifdef _DEBUG_MAIN printf("Decnt_SleepDelay Reload.\r\n"); #endif - } + } + } else { @@ -714,6 +389,7 @@ void UserAPP(void) case 2: SysTem_State_Machine(); //用于应用程序 + Step_Cnt = 0; break; diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c index 84193d7..7a9721d 100644 --- a/UsrSrc/vox/vox_module.c +++ b/UsrSrc/vox/vox_module.c @@ -29,16 +29,15 @@ #include "sys_tim.h" #include "adc.h" #include "userapp.h" +#include "display_ui.h" -bit Vox_Vout_Enable = OFF; //Vox功率输出标志位 +bit Vox_Vout_Enable; //Vox功率输出标志位 -bit Earphone_Chg_Flag = 0; //耳机出入盒标志位 +bit Boost_Open_Flag; -bit Boost_Open_Flag = 0; +uint8_t Vox_Type; -uint8_t Vox_Type = 0xFF; - -bit Vox_Output_Short_Flag = 0; +bit Vox_Output_Short_Flag; #if VOX_ENABLE @@ -63,7 +62,7 @@ bit Vox_Output_Short_Flag = 0; \******************************************************************************/ #if VOX_FOLLOW_CHG -xdata uint16_t Vox_Follow_Chg_Debounce = 0; +xdata uint16_t Vox_Follow_Chg_Debounce; g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg; @@ -73,62 +72,62 @@ e_Vox_Follow_Chg_Sta Follow_Chg_Sta; #ifdef VOX_RX -xdata uint8_t Vox_Get_Vbat_Flag[2] = {0}; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 +xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 -xdata uint8_t Vox_Get_BES_Addr_Flag[2] = {0}; +xdata uint8_t Vox_Get_BES_Addr_Flag[2]; //idata uint8_t BES_Addr[6] = {0}; //蓝牙耳机地址,Vox_Bes_Addr[0][6]:VOL;Vox_Bes_Addr[1][6]:VOR #endif -uint8_t EarPhone_Num = 0; +uint8_t EarPhone_Num; -bit Vox_Ocp_Flag = 0; +bit Vox_Ocp_Flag; -bit OpenCover_TX_Cmd_Flag = 0; +bit OpenCover_TX_Cmd_Flag; #if XUANHENG -idata uint8_t Vox_Pairing_State[2] = {0}; //耳机配对状态,0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 +idata uint8_t Vox_Pairing_State[2]; //耳机配对状态,0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 -idata uint8_t Vox_Set_BES_Addr_Flag[2] = {0}; +idata uint8_t Vox_Set_BES_Addr_Flag[2]; -idata uint8_t BES_Addr[6] = {0}; //蓝牙耳机地址,Vox_Bes_Addr[0][6]:VOL;Vox_Bes_Addr[1][6]:VOR +idata uint8_t BES_Addr[6]; //蓝牙耳机地址,Vox_Bes_Addr[0][6]:VOL;Vox_Bes_Addr[1][6]:VOR -idata uint8_t Random_Data[8] = {0}; +idata uint8_t Random_Data[8]; -idata uint8_t Bes_Bet_Level[2] = {0}; //对耳电池电量信息,Bes_Bet_Level[0]:左耳;Bes_Bet_Level[1]:右耳 +idata uint8_t Bes_Bet_Level[2]; //对耳电池电量信息,Bes_Bet_Level[0]:左耳;Bes_Bet_Level[1]:右耳 -idata uint8_t Bes_Chg_Full[2] = {0}; //对耳硬件是否满电:0非满电;1:满电。 +idata uint8_t Bes_Chg_Full[2]; //对耳硬件是否满电:0非满电;1:满电。 -idata uint8_t Tws_Paired_Record[2] = {0}; //TWS配对记录;0:有TWS配对记录;1:没有TWS配对记录; +idata uint8_t Tws_Paired_Record[2]; //TWS配对记录;0:有TWS配对记录;1:没有TWS配对记录; -idata uint8_t Phone_Paired_Record[2] = {0}; //手机配对记录;0:有与手机配对记录;1:没有和手机配对记录。 +idata uint8_t Phone_Paired_Record[2]; //手机配对记录;0:有与手机配对记录;1:没有和手机配对记录。 -idata uint8_t Bes_OTA_State[2] = {0}; //耳机静默升级状态;1:有;0:没有 +idata uint8_t Bes_OTA_State[2]; //耳机静默升级状态;1:有;0:没有 -idata uint8_t Bes_Set_SN_State[2] = {0}; //耳机应答仓写入SN是否成功。1:成功;0:失败 +idata uint8_t Bes_Set_SN_State[2]; //耳机应答仓写入SN是否成功。1:成功;0:失败 -idata uint8_t Bes_In_Pair_State[2] = {0}; //耳机进入配对状态标志位 +idata uint8_t Bes_In_Pair_State[2]; //耳机进入配对状态标志位 -idata uint8_t Vox_Clear_Pair_Flag[2] = {0}; +idata uint8_t Vox_Clear_Pair_Flag[2]; -bit Vol_Bes_Addr_Flag = 0; +bit Vol_Bes_Addr_Flag; -bit Vor_Bes_Addr_Flag = 0; +bit Vor_Bes_Addr_Flag; -idata uint8_t SN_Num[22] = {0}; //SN码,需要从OTP的固定位置获取。 +idata uint8_t SN_Num[22]; //SN码,需要从OTP的固定位置获取。 -idata uint8_t SN_Num_Start = 0; //SN码发送起始位置,有开盖动作时清零。 +idata uint8_t SN_Num_Start; //SN码发送起始位置,有开盖动作时清零。 -bit gShip_Mode_Flag = 0; //船运模式标志位:0:正常关机;1:船运模式 +bit gShip_Mode_Flag; //船运模式标志位:0:正常关机;1:船运模式 #else -idata uint8_t Net_Info[2][13] = {0}; +idata uint8_t Net_Info[2][13]; -idata uint8_t MAC_Addr[2][18] = {0}; +idata uint8_t MAC_Addr[2][18]; -xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量 +xdata uint8_t Earphone_Vbat[2]; //对耳电量 #endif @@ -172,7 +171,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // SFRADDR = COMM_CON; //Vox通讯电平选择,3.0V,打开50K上拉电阻。 SFRDATA &= ~0x0D; - SFRDATA |= VOX_COM_VOLTAGE_SET | VOX_PULL_UP_SET; + SFRDATA |= VOX_COMM_VOLTAGE_SET | VOX_COMM_PULL_UP_SET; break; @@ -181,7 +180,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // COMM_CTL |= Vol_EN_COMR | Vol_SW_MD; //开启VOX通讯使能,选择寄存器通讯模式。 SFRADDR = COMM_CON; //Vox通讯电平选择,5.0V,关闭50K上拉电阻。 - SFRDATA &= ~ VOX_PULL_UP_SET; + SFRDATA &= ~ VOX_COMM_PULL_UP_SET; SFRDATA |= Vox_COMM_PULL_Vol_5_0; break; @@ -259,7 +258,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // SFRADDR = COMM_CON; //Vox通讯电平选择,3.0V,打开50K上拉电阻。 SFRDATA &= ~0x0D; - SFRDATA |= VOX_COM_VOLTAGE_SET | VOX_PULL_UP_SET; + SFRDATA |= VOX_COMM_VOLTAGE_SET | VOX_COMM_PULL_UP_SET; break; @@ -268,7 +267,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // COMM_CTL |= Vor_EN_COMR | Vor_SW_MD; //开启VOX通讯使能,选择寄存器通讯模式。 SFRADDR = COMM_CON; //Vox通讯电平选择,5.0V,关闭50K上拉电阻。 - SFRDATA &= ~ VOX_PULL_UP_SET; + SFRDATA &= ~ VOX_COMM_PULL_UP_SET; SFRDATA |= Vox_COMM_PULL_Vol_5_0; break; @@ -346,7 +345,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // SFRADDR = COMM_CON; //Vox通讯电平选择,3.0V,打开50K上拉电阻。 SFRDATA &= ~0x0D; - SFRDATA |= VOX_COM_VOLTAGE_SET | VOX_PULL_UP_SET; + SFRDATA |= VOX_COMM_VOLTAGE_SET | VOX_COMM_PULL_UP_SET; break; @@ -355,7 +354,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // COMM_CTL |= Vor_EN_COMR | Vol_EN_COMR | Vor_SW_MD | Vol_SW_MD; //开启VOX通讯使能,选择寄存器通讯模式。 SFRADDR = COMM_CON; //Vox通讯电平选择,5.0V,关闭50K上拉电阻。 - SFRDATA &= ~ VOX_PULL_UP_SET; + SFRDATA &= ~ VOX_COMM_PULL_UP_SET; SFRDATA |= Vox_COMM_PULL_Vol_5_0; break; @@ -483,7 +482,7 @@ void Vox_Det_Machine(void) if( CoverStatus == CLOSE ) //1、关盖关闭COM_CTRL;显示灯效。(无需查询Loadon、IOFF状态,无论耳机是否在仓,Vox 5V输出。) { - Earphone_Chg_Flag = 0; //关盖取消耳机入盒灯效,显示关盖灯效。 + Earphone_Chg_Flag_led = 0; //关盖取消耳机入盒灯效,显示关盖灯效。 Cover_Close_Flag = 1; @@ -538,7 +537,7 @@ void Vox_Det_Machine(void) CoverEvent_Flg = 0; } /* 开关盖后,VOX先升压5.2V 一段时间,唤醒耳机,后转入ADT,获取盒内耳机数量。 */ - if( Vox_Voltage_Hold_Timer < VOX_OPEN_VOUT_5V_DEBOUNCE ) //开盖后5V N00ms。 + if( Vox_Voltage_Hold_Timer < HALL_OPEN_VOX_5V_DEBOUNCE ) //开盖后5V N00ms。 { Vox_Voltage_Hold_Timer++; @@ -586,7 +585,7 @@ void Vox_Det_Machine(void) if( Cover_Open_Flag ) /*开盖后,5V持续N00ms后0V持续N00ms,保证耳机能被唤醒;之后发开盖码。*/ { #if 1 - if( Vox_TX_Timer < VOX_OPEN_VOUT_0V_DEBOUNCE ) //转0V N00ms + if( Vox_TX_Timer < HALL_OPEN_VOX_0V_DEBOUNCE ) //转0V N00ms { VOX_EN_Type(VOX_PD1K_Mode); @@ -603,11 +602,8 @@ void Vox_Det_Machine(void) { #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif ZHONGKE - HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif XUANHENG HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN); @@ -619,14 +615,10 @@ void Vox_Det_Machine(void) { #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif ZHONGKE - HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN); #endif @@ -670,7 +662,7 @@ void Vox_Det_Machine(void) { if ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag_led = 1; #ifdef LED_DISPLAY LED_On_Flag = 1; #endif @@ -726,7 +718,7 @@ void Vox_Det_Machine(void) Cover_Close_Flag1 = 1; - if( Vox_Voltage_Hold_Timer <= VOX_CLOSE_5V_HOLD_CNT ) //关盖Boost VOUT 5V保持时间。 + if( Vox_Voltage_Hold_Timer <= HALL_CLOSE_VOX_5V_HOLD_CNT ) //关盖Boost VOUT 5V保持时间。 { Vox_Voltage_Hold_Timer++; @@ -748,17 +740,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN); - #endif #endif @@ -769,17 +755,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN); - #endif #endif @@ -797,17 +777,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN); - #endif #endif @@ -818,17 +792,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN); - #endif #endif @@ -926,13 +894,9 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if XUANHENG - HandleTxCommand(CMD_SHUT_DOWN,VOL_CHAN); //左耳发关机指令,区分耳机通道。 - #else - - HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //左耳发关机指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //左耳发关机指令,区分耳机通道。 #endif #endif @@ -943,13 +907,9 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if XUANHENG - HandleTxCommand(CMD_SHUT_DOWN,VOR_CHAN); //右耳发关机指令,区分耳机通道。 - #else - - HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //右耳发关机指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //右耳发关机指令,区分耳机通道。 #endif #endif @@ -997,7 +957,7 @@ void Vox_Det_Machine(void) { if( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag_led = 1; #ifdef LED_DISPLAY LED_On_Flag = 1; #endif @@ -1110,9 +1070,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->IVox_Init[VOR_CHAN] = g_pmu_Adc_Ivor; - n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = ( g_pmu_Adc_Ivor / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80% + n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = IVOR_Threshold_Neg(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 80% - n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = g_pmu_Adc_Ivor << 1; //Ivox_Threshold_Neg = IVox_Init * 2 + n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = IVOR_Threshold_Pos(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 2 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOR Chging(Ivor:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivor,(uint16_t)__LINE__); #endif @@ -1123,9 +1083,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->IVox_Init[VOL_CHAN] = g_pmu_Adc_Ivol; - n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = ( g_pmu_Adc_Ivol / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80% + n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = IVOL_Threshold_Neg(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 80% - n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = g_pmu_Adc_Ivol << 1; //Ivox_Threshold_Neg = IVox_Init * 2 + n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = IVOL_Threshold_Pos(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 2 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOL Chging(Ivol:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivol,(uint16_t)__LINE__); #endif @@ -1621,7 +1581,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select) { uint16_t dataLen = 0; + uint8_t tx_pData[COM1_Data_Lenth] = 0; + uint8_t i = 0; #if JIELI