commit 2627e2f5c442c69cbfc4186882721ab126deb104 Author: 谢洪龙 <599179587@qq.com> Date: Wed Aug 23 14:09:21 2017 +0800 Initial commit diff --git a/PDF/WIFI模块与MCU通信协议V4.0 .pdf b/PDF/WIFI模块与MCU通信协议V4.0 .pdf new file mode 100644 index 0000000..8f9c8bb Binary files /dev/null and b/PDF/WIFI模块与MCU通信协议V4.0 .pdf differ diff --git a/PDF/WebAPI说明-用户信息.pdf b/PDF/WebAPI说明-用户信息.pdf new file mode 100644 index 0000000..7693f91 Binary files /dev/null and b/PDF/WebAPI说明-用户信息.pdf differ diff --git a/QR/qr.lbl b/QR/qr.lbl new file mode 100644 index 0000000..32d145a Binary files /dev/null and b/QR/qr.lbl differ diff --git a/QR/佳博203点驱动通用自动安装包.rar b/QR/佳博203点驱动通用自动安装包.rar new file mode 100644 index 0000000..56a6d9e Binary files /dev/null and b/QR/佳博203点驱动通用自动安装包.rar differ diff --git a/QR/激活码.xls b/QR/激活码.xls new file mode 100644 index 0000000..339ce80 Binary files /dev/null and b/QR/激活码.xls differ diff --git a/QR/设备相关/小顾地址.txt b/QR/设备相关/小顾地址.txt new file mode 100644 index 0000000..c8f5f72 --- /dev/null +++ b/QR/设备相关/小顾地址.txt @@ -0,0 +1 @@ + ߳ͷ56 о޹˾ \ No newline at end of file diff --git a/QR/设备相关/机制.txt b/QR/设备相关/机制.txt new file mode 100644 index 0000000..dfbe90f --- /dev/null +++ b/QR/设备相关/机制.txt @@ -0,0 +1,19 @@ +ӱءԡʽ +һ豸ӱغͲԷʱaaaaH +12غ3¶Ϸʾ +20شСݺ㲻 +32أͼ +441 + +豸ʽbbbbH +12غ3¶Ϸʾ +20شСݺ +32أͼ겻 +44س + +豸Һȫ3S + +ġ0ӻ +1ϵWiFiΪ״̬3ӡ +23δܵssidpasswordԭssidpasswordȥ·ûԭssidpasswordһֱڽ״̬ +3·ӷжϻԶ1ӡ1δϣģ鸴λȻ1ٿʼ diff --git a/QR/设备相关/烧录/张工/0-control.s19 b/QR/设备相关/烧录/张工/0-control.s19 new file mode 100644 index 0000000..e4d3fb0 --- /dev/null +++ b/QR/设备相关/烧录/张工/0-control.s19 @@ -0,0 +1,651 @@ +S016000044656275675C302D636F6E74726F6C2E736D3802 +S1238080312C22554450222C223139322E3136382E302E313034222C333333302C2254437E +S12380A050222C223132302E35352E3139302E3536222C39393535312C22554450222C226E +S12380C03132302E35352E3139302E3536222C33333341542B52535441542B524553544F23 +S12380E0524541542B43575354415254534D4152543D3341542B43574D4F44453D41542B8A +S12381004349504D4F44453D41542B4349504D55583D41542B434946535241542B43495077 +S123812053544152543D41542B435753544F50534D41525441542B43495053454E443D4105 +S1238140542B434950434C4F53453D41542B43495053544154555341542B43495044494E16 +S1238160464F3D5749464920434F4E4E4543544544005749464920474F54204950005749B5 +S1238180464920444953434F4E4E45435400536D61727420676574207769666920696E66AF +S12381A06F00736D617274636F6E66696720636F6E6E65637465642077696669004F4B0073 +S12381C04641494C004552524F5200414C524541445920434F4E4E4543540053454E44207F +S12381E04F4B002B4950442C003E2000726561647900302C434F4E4E45435400312C434FE5 +S12382004E4E45435400434C4F53454400444E53204661696C005354414D41430053544106 +S12382204950006C696E6B206973206E6F742076616C696400F505D39727B6F615F7B7005C +S12382400A0D0E0F000A0D0F0009070B0000C0C1C1810140C30103C00280C241C60106C008 +S12382600780C7410500C5C1C4810440CC010CC00D80CD410F00CFC1CE810E400A00CAC152 +S1238280CB810B40C90109C00880C841D80118C01980D9411B00DBC1DA811A401E00DEC192 +S12382A0DF811F40DD011DC01C80DC411400D4C1D5811540D70117C01680D641D20112C032 +S12382C01380D3411100D1C1D0811040F00130C03180F1413300F3C1F28132403600F6C132 +S12382E0F7813740F50135C03480F4413C00FCC1FD813D40FF013FC03E80FE41FA013AC0D2 +S12383003B80FB413900F9C1F88138402800E8C1E9812940EB012BC02A80EA41EE012EC051 +S12383202F80EF412D00EDC1EC812C40E40124C02580E5412700E7C1E68126402200E2C1B1 +S1238340E3812340E10121C02080E041A00160C06180A1416300A3C1A28162406600A6C1F1 +S1238360A7816740A50165C06480A4416C00ACC1AD816D40AF016FC06E80AE41AA016AC051 +S12383806B80AB416900A9C1A88168407800B8C1B9817940BB017BC07A80BA41BE017EC091 +S12383A07F80BF417D00BDC1BC817C40B40174C07580B5417700B7C1B68176407200B2C131 +S12383C0B3817340B10171C07080B041500090C191815140930153C052809241960156C0B1 +S12383E057809741550095C1948154409C015CC05D809D415F009FC19E815E405A009AC1D1 +S12384009B815B40990159C058809841880148C0498089414B008BC18A814A404E008EC150 +S12384208F814F408D014DC04C808C41440084C185814540870147C046808641820142C0B0 +S123844043808341410081C18081404041542B4349504653520D2B4349504653523A535426 +S12384604149502C223139322E3136382E302E313038220D2B4349504653523A5354414DB2 +S123848041432C2231383A66653A33343A64623A30643A3333220D0A4F4B4209DE35420313 +S12384A0C8B441FC106241F12D0E41E6AE1441DCD91641D36A7E41CA76C841C1E35341B9B4 +S12384C0BE7641B2126E41AAA5E341A39999419CF7CE41968D4F419024DD418A93744185A9 +S12384E020C4417F7CED4175645A416C00004169D70A4159E35341514BC641494BC641412F +S1238500C28F413A5A1C41335C28412C937441262D0E41200000411A189341146E97410EF7 +S1238520FDF34109CED94104D4FD41000C4940F6F9DB40EE3D7040E5D2F140DDBA5E40D692 +S1238540041840CE9FBE40C774BC40C09BA540BA041840B3B64540ADA9FB40A7CED940A214 +S1238560353F409CD4FD4097AE1440929FBE408DEB854089374B4084D4FD408083124078E4 +S123858051EB4070E5604069374B4061BA5E405A9FBE4053B645404D1EB84046C8B4404058 +S12385A0B439403AD0E540351EB8402F9DB2402A5E3540254FDF40204189401B851E401684 +S12385C0F9DB40127EF9400E5604400A1CAC400624DD40024DD23FFD2F1A3FF5E3533FEE7C +S12385E0F9DB3FE831263FE1CAC03FDB645A3FD560413FCF7CED3FC9BA5E3FC439583FBEC6 +S1238600F9DB3FB9BA5E3FB4BC6A3FAFDF3B3FAB43953FA6A7EF3FA24DD23F9E147A3F99D1 +S1238620FBE73F95E3533F920C493F8E56043F8A9FBE3F872B023F83B6453F80624D3F7A00 +S12386404A8CB1B8B1E0B208B230B258B280B2A8B2D0B2F8B320B348B3700D0A2B495044D8 +S12386602C302C31393139322E3139322E3139322E3139322C393939393A000718FE34DB94 +S12386800D335CCF7F076521130B16212C37424D584352C8C4C8CEC8C4C8E6C8C4C8E6C8CD +S11C86A0C4C8C4C8E6C8C4C8E6C8C43A003F80000040A0000042C7CCCC7F +S1238760AE07FF9490CE86B9AE86BBF62720A5602717BF4BEE03BF4EBE4BEE0190F6F75CC8 +S1238780905C90B34E26F5BE4B1C000520DDAE003D2002F75CA3005126F9AE015D2002F77E +S12387A05CA302C526F9CDC96420FE880F0172080081002406351000812004351000813F0C +S12387C0813F823F833F843F853F86721F0081721B00827217008672170081721300817293 +S12387E01D0086721F00867217008272190082721B00830F017B015F97724F015D7B015F17 +S123880097724F01D50C017B01A17825E83F383F153F243F1C3F1D3F0D5FBF093F173F1575 +S12388203F113F143F103F0F5FBF0B3F123F133F2A5FBF055FBF073F2B3F183F2C3F2D3FA0 +S12388402F3F2E5FBF33BE33BF358481895203AEFFFF1F02202F7B03A4FF6B011E024F0146 +S1238860160472A90001170472A2000190F61801A4FF905F909790580190D8824D0190D8AD +S1238880824C011F029C1E081D00011F081C0001A300002CC11E025B058189895F1F01207E +S12388A0071E011C00011F011E01130325F35B0481898920115F1F011E011C00011F011EE8 +S12388C001A302CB25F21E031D00011F031C0001A3000026E05B04818988721B50147B0385 +S12388E048AA806B037214500A0F01721B50147B03A501260220067212500A20047213506A +S12389000A721A501404030C017B01A10825DC0F01721B50147B02A50126022006721250D9 +S12389200A20047213500A721A501404020C017B01A10825DC7215500A5B038188890F011C +S1238940721B50147212500A7B0348AA816B037214500A0F027B03A50126022006721250AE +S12389600A20047213500A721A50140403721B50140C027B02A10825DC7212500A0F027268 +S12389801B501404017202500B0024067B01AA806B01721A50140C027B02A10825E1721593 +S12389A0500A7B015B0381890F0272000082002403CC8A6BA606AD846B027B02A40F6B01A2 +S12389C07B024EA40F97A60A429F1B01B745A605CD893C6B027B02A407B73FA604CD893CD1 +S12389E06B027B02A40F6B017B02A4104EA40F97A60A429F1B01B744A603CD893C6B027BD6 +S1238A0002A40F6B017B02A4304EA40F97A60A429F1B01B743A602CD893C6B027B02A40FCA +S1238A206B017B02A4304EA40F97A60A429F1B01B742A601CD893C6B027B02A40F6B017B7A +S1238A4002A4704EA40F97A60A429F1B01B7414FCD893C6B027B02A40F6B017B02A4704EF6 +S1238A60A40F97A60A429F1B01B74085818972150081B645A164250435630045B644A10DBF +S1238A802504350C0044B643A1202504351F0043B642A118250435170042B641A13C250445 +S1238AA0353B0041AE00074F95CD88D8B645AE000A515F9765909F6B01B645AE000A515FDE +S1238AC097659F97A610429F1A016B02AE00067B0295CD88D8B63FA4076B02AE00057B0211 +S1238AE095CD88D8B644AE000A515F9765909F6B01B644AE000A515F97659F97A610429F8C +S1238B001A016B02AE00047B0295CD88D8B643AE000A515F9765909F6B01B643AE000A51DE +S1238B205F97659F97A610429F1A016B02AE00037B0295CD88D8B642AE000A515F976590A5 +S1238B409F6B01B642AE000A515F97659F97A610429F1A016B02AE00027B0295CD88D8B6B0 +S1238B6041AE000A515F9765909F6B01B641AE000A515F97659F97A610429F1A016B02AE53 +S1238B8000017B0295CD88D8B640AE000A515F9765909F6B01B640AE000A515F97659F970C +S1238BA0A610429F1A016B025F7B0295CD88D8AE0007A68095CD88D8858189880F01201EF2 +S1238BC07217500F7B02A580260220067214500F20047215500F7216500F08020C017B0150 +S1238BE0110325DC5B038189880F01201E7217500F7B02A501260220067214500F2004724A +S1238C0015500F7216500F04020C017B01110325DC5B038189721F500FAE00047B0195AD89 +S1238C2099AE00087B0295AD91721E500F858189AE0012A68095ADDC1E01CD88B1AE00102C +S1238C40A68095ADCF858189721F500FAE0003A6A095CD8BBA08010801AE00067B0195CD18 +S1238C608BBAA60810055F977B025D2704485A26FC6B027B05977B0295CD8BBA721E500F92 +S1238C80858189721F500FAE0003A6A095CD8BBA08010801AE00067B0195CD8BBA7B0597B3 +S1238CA07B0295CD8BE7721E500F85818872125005AE0002A68095CD8C14AE0006A68095C2 +S1238CC0CD8C14AE0030A68095CD8C14AE0052A68095CD8C14AE0080A68095CD8C140F018F +S1238CE04B045F7B0295AD9A840C017B01A12025EFAE01F4CD889A0F014B04AE000F7B025C +S1238D0095CD8C82840C017B01A12025EC84818989A60A625F97D682356B027B02A4F04E88 +S1238D20A40F6B017B02A40F6B027B01AA016B014B047B0297A60E95CD8C82844B047B0308 +S1238D4097A60F95CD8C82841E03A664625F97A60A62D682356B027B02A4F04EA40F6B01C2 +S1238D607B02A40F6B027B01AA016B014B047B0297A61095CD8C82844B047B0397A6119502 +S1238D80CD8C82841E03A66462D682356B027B02A4F04EA40F6B017B02A40F6B027B01AAA8 +S1238DA0016B014B047B0297A61295CD8C82844B047B0397A61395CD8C8284AE00FACD8825 +S1238DC0B15B0481880F017208500B0024067B01AA016B01720A500B0024067B01AA026B40 +S1238DE001720C500B0024067B01AA046B01720E500B0024067B01AA086B017B01A10F24E6 +S1238E00057B015B0181A6FF5B018188C65240A58027F97B01C7524184818952081E0DCD93 +S1238E20CCE01F011E09CDCCE01F035F1F05203F5F1F0720071E071C00011F079C1E0713D6 +S1238E40012E1B9C1E0572FB0713032E111E0772FB0DF61E0572FB0772FB09F127D71E0786 +S1238E60130126041E0520111E051C00011F059C1E0513032FBAAEFFFF5B0A818888721C0A +S1238E800082350100183F2D0F017B015F97724F015D0C017B01A17825F00F012013C652DF +S1238EA040A58027F97B015F97D6024DC752410C017B01110225E7721D0082721C00813F31 +S1238EC011858188883F183F2C0F012013C65240A58027F97B015F97D6024DC752410C01C7 +S1238EE07B01110225E7858188880F017B015F97897B045F1B0324015C02D601D785D70128 +S1238F00430C017B01A10625E3A6016B01A601858189889FA153260E7B02970C029F5F9783 +S1238F20724F024D200D7B02970C029F5F97A601D7024D7B02970C029F5F97B632D7024DA7 +S1238F400F017B025F1B0124015C027B01905F909790D6013DD7024D0C017B01A10625E2EF +S1238F607B021B016B020F017B025F1B0124015C027B01905F909790D60143D7024D0C01ED +S1238F807B01A10625E27B021B016B02B632A101260B7B025F97A618D7024D205EB632A184 +S1238FA006260B7B025F97A61CD7024D204DB632A107260B7B025F97A614D7024D203CB688 +S1238FC032A108260B7B025F97A61CD7024D202BB632A109260B7B025F97A616D7024D20A3 +S1238FE01AB632A10B260B7B025F97A614D7024D20097B025F97A61CD7024D5B03818852FE +S1239000031E01A10B2707A1072703CC90B27B04B7327B04A10B2608AE00534F95CD8F115D +S12390207B04A1072608AE00524F95CD8F117B03973501025C3503025D3506025EAE0012EB +S123904089AE024DCD884C5B021F017B01C7025F7B02C702607B04A1FF26130F037B035FD7 +S123906097A6FFD7024D0C037B03A11425EF3514002FA614CD8E7CAE81DB89AE015DCDCCF3 +S1239080EC5B02BF33BE332607720C00810025E7721D00813F183F2CBE33270A7213008669 +S12390A0350B0024200C7212008672190086350A00245B048152031E01974F95CD8F11A6BC +S12390C00F6B037B03970C039F5F97B63DD7024D7B03970C039F5F97B63EA4FFD7024D7B4C +S12390E003970C039F5F97724F024D7B03970C039F5F97724F024D7B03970C039F5F97722A +S12391004F024D7B03970C039F5F97724F024D7B03970C039F5F97B622D7024D7B03970C0C +S1239120039F5F97B627D7024D7B03970C039F5F97B628A4FFD7024D7B03970C039F5F9777 +S1239140B625D7024D7B03970C039F5F97B626A4FFD7024D7B035F9789AE024DCD884C5BB6 +S1239160021F017B03970C039F5F977B01D7024D7B03970C039F5F977B02D7024D7B03B7DD +S12391802FB62FCD8EC35B038189880F017B015F97D68134D7024D0C017B01A10B25EE7BB3 +S12391A0015F97B619D7024D7B02A118262E7B015F97A630D7024D0C017B015F97A62CD79F +S12391C0024D0C017B015F97A632D7024D0C017B015F97A634D7024DAC0098A07B02A1142A +S12391E02703CC98417B015F97A631D7024D0C017B015F97A62CD7024D0C017B015F97A691 +S123920032D7024D0C017B015F97A630D7024D0C017B015F97A62CD7024D0C017B015F9781 +S1239220A622D7024D7B03A1FF2703CC94C4C601335F97A664CDD08DA3000027510C017B09 +S1239240015F97C6013390AE0064895F97659F85AB30D7024D0C017B015F97C60133905F06 +S12392609097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C6013390AE000ACE +S1239280895F9765909F85AB30D7024D2066C601335F97A60ACDD08DA60ACDD087A300006A +S12392A027390C017B015F97C60133905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D87 +S12392C00C017B015F97C6013390AE000A895F9765909F85AB30D7024D20190C017B015F0F +S12392E097C6013390AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC6B9 +S123930001345F97A664CDD08DA3000027510C017B015F97C6013490AE0064895F97659F30 +S123932085AB30D7024D0C017B015F97C60134905F9097A60ACDD0B8A60ACDD0B2909FAB35 +S123934030D7024D0C017B015F97C6013490AE000A895F9765909F85AB30D7024D2066C60C +S123936001345F97A60ACDD08DA60ACDD087A3000027390C017B015F97C60134905F90977D +S1239380A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C6013490AE000A895FEB +S12393A09765909F85AB30D7024D20190C017B015F97C6013490AE000A895F9765909F8565 +S12393C0AB30D7024D0C017B015F97A62ED7024DC601355F97A664CDD08DA30000274F0CC4 +S12393E0017B015F97C6013590AE0064895F97659F85AB30D7024D0C017B015F97C60135D4 +S1239400905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C6013590AE45 +S1239420000A895F9765909F85AB30D7024DC601355F97A60ACDD08DA60ACDD087A3000042 +S123944027390C017B015F97C60135905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024DE3 +S12394600C017B015F97C6013590AE000A895F9765909F85AB30D7024D20190C017B015F6B +S123948097C6013590AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024D0CCF +S12394A0017B015F97A632D7024D0C017B015F97A635D7024D0C017B015F97A635D7024D37 +S12394C0AC0097FDC601375F97A664CDD08DA3000027510C017B015F97C6013790AE0064E6 +S12394E0895F97659F85AB30D7024D0C017B015F97C60137905F9097A60ACDD0B8A60ACD4A +S1239500D0B2909FAB30D7024D0C017B015F97C6013790AE000A895F9765909F85AB30D786 +S1239520024D2066C601375F97A60ACDD08DA60ACDD087A3000027390C017B015F97C60167 +S123954037905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C601379079 +S1239560AE000A895F9765909F85AB30D7024D20190C017B015F97C6013790AE000A895FB0 +S12395809765909F85AB30D7024D0C017B015F97A62ED7024DC601385F97A664CDD08DA3D1 +S12395A0000027510C017B015F97C6013890AE0064895F97659F85AB30D7024D0C017B017D +S12395C05F97C60138905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C9 +S12395E0C6013890AE000A895F9765909F85AB30D7024D2066C601385F97A60ACDD08DA68C +S12396000ACDD087A3000027390C017B015F97C60138905F9097A60ACDD0B8A60ACDD0B27D +S1239620909FAB30D7024D0C017B015F97C6013890AE000A895F9765909F85AB30D7024D97 +S123964020190C017B015F97C6013890AE000A895F9765909F85AB30D7024D0C017B015F86 +S123966097A62ED7024DC601395F97A664CDD08DA3000027510C017B015F97C6013990AE53 +S12396800064895F97659F85AB30D7024D0C017B015F97C60139905F9097A60ACDD0B8A619 +S12396A00ACDD0B2909FAB30D7024D0C017B015F97C6013990AE000A895F9765909F85AB13 +S12396C030D7024D2066C601395F97A60ACDD08DA60ACDD087A3000027390C017B015F9784 +S12396E0C60139905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C601D6 +S12397003990AE000A895F9765909F85AB30D7024D20190C017B015F97C6013990AE000A2B +S1239720895F9765909F85AB30D7024D0C017B015F97A62ED7024DC6013A5F97A664CDD075 +S12397408DA3000027510C017B015F97C6013A90AE0064895F97659F85AB30D7024D0C0125 +S12397607B015F97C6013A905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B019F +S12397805F97C6013A90AE000A895F9765909F85AB30D7024D2066C6013A5F97A60ACDD023 +S12397A08DA60ACDD087A3000027390C017B015F97C6013A905F9097A60ACDD0B8A60ACD29 +S12397C0D0B2909FAB30D7024D0C017B015F97C6013A90AE000A895F9765909F85AB30D7C1 +S12397E0024D20190C017B015F97C6013A90AE000A895F9765909F85AB30D7024D0C017BF4 +S1239800015F97A622D7024D0C017B015F97A62CD7024D0C017B015F97A639D7024D0C0157 +S12398207B015F97A639D7024D0C017B015F97A635D7024D0C017B015F97A634D7024D208E +S12398405F7B02A11C26327B06A13026097B015F97A630D7024D0C017B015F97A62CD702FA +S12398604D0C017B015F97A632D7024D0C017B015F97A638D7024D20277B02A11626210CC9 +S1239880017B015F97A62CD7024D0C017B015F97A632D7024D0C017B015F97A632D7024D5F +S12398A00C017B015F97A60DD7024D0C017B015F97A60AD7024D7B014CB72FB62FCD8E7C8D +S12398C0AE81E989AE015DCDCCEC5B02BF33BE332607720C00810025E7721D00813F183F34 +S12398E02CBE33270A7213008635D300242018721200867B02A11426067219008620047298 +S123990017008135D200245B0381725F505A725F505B35FF505C35AE506435565064C650DE +S12399205FA50827F981897B051E01D74000C6505FA50427F98581D640008188ADCCA6377E +S12399406B017B015F971D0037D60149887B025F97ADD3840C017B01A14B25E6848188ADF8 +S1239960A90F017B015F97D6010B887B025F97ADB5840C017B01A10A25E9A60A6B017B011B +S12399805F971D000AD60115887B025F97AD97840C017B01A11425E6A6146B017B015F9716 +S12399A01D0014D6011F887B025F97CD9926840C017B01A11E25E5A61E6B017B015F971D60 +S12399C0001ED60129887B025F97CD9926840C017B01A12825E5A6286B017B015F971D0035 +S12399E027D60100887B025F97CD9926840C017B01A13225E53B0022AE0032CD9926843B6C +S1239A000025AE0033CD992684B626A4FF88AE0034CD9926843B0027AE0035CD992684B628 +S1239A2028A4FF88AE0036CD9926843B0080AE0037CD9926843B0000AE0038CD9926843BBF +S1239A400001AE0039CD9926843B0002AE003ACD9926843B0003AE003BCD9926843B003033 +S1239A60AE003CCD992684A63D6B017B015F971D003DD60149887B025F97CD9926840C0195 +S1239A807B01A15125E53B0045AE0051CD9926843B0044AE0052CD9926843B0043AE0053AD +S1239AA0CD9926843B0042AE0054CD9926843B0041AE0055CD9926848481890F027B025FF9 +S1239AC097897B045F97CD993785D7010B0C027B02A10A25E8A60A6B027B025F971D000AEE +S1239AE0897B045F97CD993785D701150C027B02A11425E5A6146B027B025F971D001489B7 +S1239B007B045F97CD993785D7011F0C027B02A11E25E5A61E6B027B025F971D001E897B7C +S1239B20045F97CD993785D701290C027B02A12825E5A6286B027B025F971D0027897B04AC +S1239B405F97CD993785D701000C027B02A13225E5AE0032CD9937B722AE0033CD99376B6A +S1239B6002AE0034CD99376B017B025F974F02011B0124015CB7269FB725AE0035CD9937BA +S1239B806B02AE0036CD99376B017B025F974F02011B0124015CB7289FB727AE0037CD995E +S1239BA037B780AE0038CD9937B700AE0039CD9937B701AE003ACD9937B702AE003BCD9930 +S1239BC037B703AE003CCD9937B730B600A401B700B601A401B701B602A401B702B603A489 +S1239BE001B703B630A1EA261FA63D6B027B025F971D003D897B045F97CD993785D7014992 +S1239C000C027B02A15125E5AE0051CD9937B745AE0052CD9937B744AE0053CD9937B743F1 +S1239C20AE0054CD9937B742AE0055CD9937B74185815204AE821D89AE015DCDCCEC5B02D0 +S1239C40BF33BE33725F0136725F0135725F0134725F0133721C0084AE821D89AE015DCD42 +S1239C608E1A5B02016B03027B03AB076B030F047B035F1B0424015C02D6015DA12E270808 +S1239C800C047B04A10A25E87B04A101260E7B035F97D6015DA030C70133205C7B04A10213 +S1239CA026207B035F97D6015EA0306B027B035F97D6015D97A60A429FA0E01B02C701330C +S1239CC020367B04A10326307B035F97D6015FA0306B027B035F97D6015E97A60A429FA059 +S1239CE0E06B017B035F97D6015D97A664429FA0C01B011B02C701337B031B044C6B030FF0 +S1239D00047B035F1B0424015C02D6015DA12E27080C047B04A10A25E87B04A101260E7B73 +S1239D20035F97D6015DA030C70134205C7B04A10226207B035F97D6015EA0306B027B03DE +S1239D405F97D6015D97A60A429FA0E01B02C7013420367B04A10326307B035F97D6015F9B +S1239D60A0306B027B035F97D6015E97A60A429FA0E06B017B035F97D6015D97A664429FBB +S1239D80A0C01B011B02C701347B031B044C6B030F047B035F1B0424015C02D6015DA12E3E +S1239DA027080C047B04A10A25E87B04A10126147B035F1B0424015C025AD6015DA030C72A +S1239DC00135207E7B04A102262D7B035F1B0424015C025AD6015DA0306B027B035F1B04F0 +S1239DE024015C025A5AD6015D97A60A429FA0E01B02C70135204B7B04A10326457B035F5C +S1239E001B0424015C025AD6015DA0306B027B035F1B0424015C025A5AD6015D97A60A42E1 +S1239E209FA0E06B017B035F1B0424015C021D0003D6015D97A664429FA0C01B011B02C7DE +S1239E4001357B031B044C6B030F047B035F1B0424015C02D6015DA12227080C047B04A189 +S1239E600A25E87B04A10126147B035F1B0424015C025AD6015DA030C70136207E7B04A1D3 +S1239E8002262D7B035F1B0424015C025AD6015DA0306B027B035F1B0424015C025A5AD616 +S1239EA0015D97A60A429FA0E01B02C70136204B7B04A10326457B035F1B0424015C025AAB +S1239EC0D6015DA0306B027B035F1B0424015C025A5AD6015D97A60A429FA0E06B017B0314 +S1239EE05F1B0424015C021D0003D6015D97A664429FA0C01B011B02C701367B03977B035D +S1239F005F1B0424015C025CAE821689AE015DCDCCEC5B02BF33BE332603CCA02D725F01AC +S1239F2042725F0141725F0140725F013F725F013E725F013D721A0084AE821689AE015D9B +S1239F40CD8E1A5B02016B03027B03AB086B030F047B035F97D6015DA130251E7B035F97D8 +S1239F60D6015DA13A24137B045F977B03905F909790D6015DA030D7013D7B035F97D6019A +S1239F805DA161251E7B035F97D6015DA16724137B045F977B03905F909790D6015DA05770 +S1239FA0D7013D7B035F97D6015EA130252F7B035F97D6015EA13A24247B045F977B03906B +S1239FC05F909790D6015EA0306B027B04905F909790D6013D4EA4F01B02D7013D7B035FCB +S1239FE097D6015EA16125317B035F97D6015DA16724267B045F977B03905F909790D601CF +S123A0005EA0616B027B04905F909790D6013D4EA4F01B02AB0AD7013D7B03AB036B030CC8 +S123A020047B04A1062403CC9F517B03975B048135CC50E08188CD87AB0F017B015F97D689 +S123A04080D2D7024D0C017B01A10625EE350D0253350A02543508002FA608CD8EC38481D8 +S123A060880F017B015F97D680D8D7024D0C017B01A10A25EE350D0257350A0258350C00C2 +S123A0802FA60CCD8EC3AE00C8CD8C2F848188880F017B015F97D680F3D7024D0C017B0130 +S123A0A0A10A25EE7B02C70257350D0258350A0259350D002FA60DCD8E7CAE81BD89AE01EC +S123A0C05DCDCCEC5B02BF33BE332607720C00810025E7721D00813F183F2CBE33270635FD +S123A0E0290024200435280024858188880F017B015F97D680FDD7024D0C017B01A10B25FF +S123A100EE7B02C70258350D0259350A025A350E002FA60ECD8E7CAE81BD89AE015DCDCC60 +S123A120EC5B02BF33BE332607720C00810025E7721D00813F183F2CBE332706353300243B +S123A140200435320024858188880F017B015F97D68108D7024D0C017B01A10A25EE7B026B +S123A160C70257350D0258350A0259350D002FA60DCD8E7CAE81BD89AE015DCDCCEC5B0227 +S123A180BF33BE332607720C00810025E7721D00813F183F2CBE332706353D0024200435C1 +S123A1A03C0024858188880F017B015F97D68157D7024D0C017B01A10C25EE7B01970C0166 +S123A1C09F5F977B02D7024D7B01970C019F5F97A60DD7024D7B01970C019F5F97A60AD779 +S123A1E0024D7B01B72FB62FCD8E7CAE81BD89AE015DCDCCEC5B02BF33BE332607720C00FD +S123A200810025E7721D00813F183F2CBE332706353D00242004353C0024858188880F0148 +S123A2207B015F97D6813FD7024D0C017B01A10C25EE7B02C70259350D025A350A025B3595 +S123A2400F002FA60FCD8E7CAE81BD89AE015DCDCCEC5B02BF33BE332607720C0081002599 +S123A260E7721D00813F183F2CBE332706358D00242004358C002485818872100086721AF2 +S123A280008372170086721B0082721700810F017B015F97D68126D7024D0C017B01A10EB2 +S123A2A025EE350D025B350A025C3510002FA610CD8E7CAE81BD89AE015DCDCCEC5B02BF28 +S123A2C033BE332607720C00810025E7721D00813F183F2CBE3327063547002420043546EF +S123A2E000240F017B015F97D680E2D7024D0C017B01A11125EE350D025E350A025F35137E +S123A300002F721B0082A613CD8EC38481880F017B015F97D68112D7024D0C017B01A10854 +S123A32025EE350D0255350A0256350A002FA60ACD8E7CAE000ACD88B1AE821D89AE015D41 +S123A340CDCCEC5B02BF33BE332619AE821689AE015DCDCCEC5B02BF33BE332607720C00AA +S123A360810025D5721D00813F183F2CBE332709CD9C323583002420043582002484818868 +S123A380880F017B015F97D6811AD7024D0C017B01A10C25EE7B02C70259352C025A35221C +S123A3A0025B3555025C3544025D3550025E3522025F352C026035220261A6146B01C60175 +S123A3C0335F97A664CDD08DA3000027510C017B015F97C6013390AE0064895F97659F85DE +S123A3E0AB30D7024D0C017B015F97C60133905F9097A60ACDD0B8A60ACDD0B2909FAB30BB +S123A400D7024D0C017B015F97C6013390AE000A895F9765909F85AB30D7024D2066C6016B +S123A420335F97A60ACDD08DA60ACDD087A3000027390C017B015F97C60133905F9097A609 +S123A4400ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C6013390AE000A895F972A +S123A46065909F85AB30D7024D20190C017B015F97C6013390AE000A895F9765909F85AB81 +S123A48030D7024D0C017B015F97A62ED7024DC601345F97A664CDD08DA3000027510C019C +S123A4A07B015F97C6013490AE0064895F97659F85AB30D7024D0C017B015F97C601349076 +S123A4C05F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C6013490AE0006 +S123A4E00A895F9765909F85AB30D7024D2066C601345F97A60ACDD08DA60ACDD087A300ED +S123A5000027390C017B015F97C60134905F9097A60ACDD0B8A60ACDD0B2909FAB30D70260 +S123A5204D0C017B015F97C6013490AE000A895F9765909F85AB30D7024D20190C017B01AD +S123A5405F97C6013490AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DAC +S123A560C601355F97A664CDD08DA3000027510C017B015F97C6013590AE0064895F976595 +S123A5809F85AB30D7024D0C017B015F97C60135905F9097A60ACDD0B8A60ACDD0B2909FCE +S123A5A0AB30D7024D0C017B015F97C6013590AE000A895F9765909F85AB30D7024D2066B4 +S123A5C0C601355F97A60ACDD08DA60ACDD087A3000027390C017B015F97C60135905F90DA +S123A5E097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C6013590AE000A8940 +S123A6005F9765909F85AB30D7024D20190C017B015F97C6013590AE000A895F9765909F17 +S123A62085AB30D7024D0C017B015F97A62ED7024DC601365F97A664CDD08DA300002751D5 +S123A6400C017B015F97C6013690AE0064895F97659F85AB30D7024D0C017B015F97C60189 +S123A66036905F9097A60ACDD0B8A60ACDD0B2909FAB30D7024D0C017B015F97C60136904A +S123A680AE000A895F9765909F85AB30D7024D2066C601365F97A60ACDD08DA60ACDD0873E +S123A6A0A3000027390C017B015F97C60136905F9097A60ACDD0B8A60ACDD0B2909FAB30F3 +S123A6C0D7024D0C017B015F97C6013690AE000A895F9765909F85AB30D7024D20190C01AD +S123A6E07B015F97C6013690AE000A895F9765909F85AB30D7024D0C017B01970C019F5FDB +S123A70097A622D7024D7B01970C019F5F97A62CD7024D7B01970C019F5F97A639D7024D49 +S123A7207B01970C019F5F97A639D7024D7B01970C019F5F97A635D7024D7B01970C019FE6 +S123A7405F97A634D7024D7B01970C019F5F97A62CD7024D7B01970C019F5F97A633D702EB +S123A7604D7B01970C019F5F97A633D7024D7B01970C019F5F97A633D7024D7B01970C0100 +S123A7809F5F97A62CD7024D7B01970C019F5F97A630D7024D7B01970C019F5F97A60DD738 +S123A7A0024D7B01970C019F5F97A60AD7024D7B01B72FB62FCD8E7CAE81BD89AE015DCD4F +S123A7C0CCEC5B02BF33BE332607720C00810025E7721D00813F183F2C4BFFAE00FFA614C2 +S123A7E095CD918984A60BCD8FFE858188890F027B025F97D6811AD7024D0C027B02A10CE0 +S123A80025EE7B03C70259352C025A3522025B3554025C3543025D3550025E3522025F3580 +S123A8202C0260352202610F017B015F97724D014927080C017B01A11425EE7B01A10B2475 +S123A84003CCA8E8A6156B0220177B025F977B02905F909772A2001590D60149D7024D0C25 +S123A860029C7B025F977B01905F909772A90015BF4C90B34C2CD37B02970C029F5F97A60B +S123A88022D7024D7B02970C029F5F97A62CD7024D7B02970C029F5F97A639D7024D7B0284 +S123A8A0970C029F5F97A639D7024D7B02970C029F5F97A635D7024D7B02970C029F5F97E6 +S123A8C0A635D7024D7B02970C029F5F97A60DD7024D7B02970C029F5F97A60AD7024D7BDB +S123A8E002B72FB62FCD8EC35B038189BE3DA66462A60A625F97D682356B027B02A4F04E39 +S123A900A40F6B017B02A40F6B027B02AA086B024B047B0397A60295CD8C47844B047B024A +S123A92097A60195CD8C4784BE3DA664625F97A60A62D682356B027B02A4F04EA40F6B0135 +S123A9407B02A40F6B027B02AA086B024B047B0397A60495CD8C47844B047B0297A6039552 +S123A960CD8C4784BE3DA60A625F97D682356B027B02A4F04EA40F6B017B02A40F6B027B1C +S123A98002AA086B024B047B0397A60695CD8C47844B047B0297A60595CD8C4784B6455FA8 +S123A9A097A60ACDD08DD682356B027B02A4F04EA40F6B017B02A40F6B02720400830025EF +S123A9C0040F010F02B61EA11227067B02AA086B024B047B0397A61E95CD8C82844B047B18 +S123A9E00297A61F95CD8C8284B6455F97A60ACDD087D682356B027B02A4F04EA40F6B01C4 +S123AA007B02A40F6B027B02AA086B02720400830025040F010F024B047B0397A61C95CD2E +S123AA208C82844B047B0297A61D95CD8C8284B6445F97A60ACDD08DD682356B027B02A481 +S123AA40F04EA40F6B017B02A40F6B02720400830025040F010F024B047B0397A61A95CD2F +S123AA608C82844B047B0297A61B95CD8C8284B6445F97A60ACDD087D682356B027B02A449 +S123AA80F04EA40F6B017B02A40F6B02720400830025040F010F024B047B0397A61895CDF1 +S123AAA08C82844B047B0297A61995CD8C8284B6455F97A60ACDD08DD682356B027B02A404 +S123AAC0F04EA40F6B017B02A40F6B02720400830025040F010F02B61EA11127067B02AA5B +S123AAE0086B024B047B0397A61695CD8C82844B047B0297A61795CD8C8284B6455F97A61E +S123AB000ACDD087D682356B027B02A4F04EA40F6B017B02A40F6B02720400830025040FBD +S123AB20010F02B61EA11027067B02AA086B024B047B0397A61495CD8C82844B047B02973C +S123AB40A61595CD8C8284B6425F97A60ACDD08DD682356B027B02A4F04EA40F6B017B0285 +S123AB60A40F6B02720400830025040F010F02B61EA10E27067B02AA086B024B047B0397BE +S123AB80A61295CD8C82844B047B0297A61395CD8C8284B6425F97A60ACDD087D682356B3B +S123ABA0027B02A4F04EA40F6B017B02A40F6B02720200820024067B02AA086B0272040042 +S123ABC0830025040F010F024B047B0397A61095CD8C82844B047B0297A61195CD8C828488 +S123ABE0B6415F97A60ACDD08DD682356B027B02A4F04EA40F6B017B02A40F6B02720400FF +S123AC00830025040F010F02B61EA10D27067B02AA086B024B047B0397A60E95CD8C82840C +S123AC204B047B0297A60F95CD8C8284B6415F97A60ACDD087D682356B027B02A4F04EA446 +S123AC400F6B017B02A40F6B02720400830025040F010F024B047B0397A60C95CD8C82848B +S123AC604B047B0297A60D95CD8C8284A60F6B02B61EA1072604A60B6B02B61EA108260439 +S123AC80A60D6B027B02AA096B024B047B0397A60B95CD8C8284A60F6B02B61EA10B26041E +S123ACA0A6076B02B61EA10A2604A60B6B02B61EA1012604A60E6B027B02AA096B024B0402 +S123ACC07B0397A60A95CD8C8284A6076B02B61EA1092604A6036B02B61EA10A2604A6058B +S123ACE06B02B61EA1022604A6066B024B047B0397A60995CD8C8284A6076B02B61EA1088B +S123AD002604A6036B02B61EA1032604A6066B027B02AA026B024B047B0397A60895CD8C9E +S123AD208284A6076B02B61EA1062604A6036B02B61EA1052604A6056B02B61EA1042604D5 +S123AD40A6066B024B047B0397A60795CD8C82840F02720E0081002503CCADDB720A008344 +S123AD600024787206008600241372020082002406A6076B022064A6016B02205E7200003C +S123AD808600241172020082002406A6076B02204A0F022046720A008200251372020082AD +S123ADA0002406A6076B022032A6016B02202C7206008100251372020082002406A6066B31 +S123ADC0022018A6076B022012720A008200240B72060081002404A6076B027B02AA086BE7 +S123ADE0024B047B03974F95CD8C82848581520D0F0D9C7B0D97A604421C849ACDD06396AE +S123AE001C0010CDCDFD2F080C0D7B0DA16A25E27B0DA169250CCE86B71F0BCE86B51F0958 +S123AE2020797B0DA106240CAE00001F0BAE00001F0920677B0D5F97CDD035961C0005CD0D +S123AE40D0757B0D97A604421D00041C849ACDD0637B0D97A604421C849ACDCD20961C0092 +S123AE6001CDD0757B0D97A604421D00041C849ACDD063961C0010CDCD20961C0001CDCE8B +S123AE8033AE86B1CDCD20AE86ADCDCD20961C0005CDCD34961C0009CDD075961C0009CD67 +S123AEA0D0635B0D81520CC65400A480A1802703CCAFB7C654045F97CDD035961C0005CDEF +S123AEC0D075AE0100CDD035961C0005CDCD20961C0001CDD075C654045F97CDD035AE8559 +S123AEE012CDCEBF961C0001CDCE33961C0009CDD0751E0B891E0B89CDADEE5B04961C00B7 +S123AF0009CDD075961C0009CDD063AE0039CDCEB73C21B621A1282403CCAFAF3F21BE258D +S123AF20B3272716BE3DB3252206BE3DB3272406721C00852004721D0085AE0039CDD063CA +S123AF40CDCF94575772BB003D54BF3DAE0000BF3BAE0000BF39BE25B3272753BE3DB325FD +S123AF602206BE3DB3272410721E0085BE3DB325230C354800232016721F008520EEBE3D90 +S123AF80B3272406354C00232004354E0023BE3DB3252206BE3DB3272415720D00850772B5 +S123AFA00E00850B2005720F00850472120083721F5400721054015B0C8189B61AA00227F3 +S123AFC0414A27134A276E4A2603CCB0634A2603CCB09BAC00B0B4A6096B017200008100CF +S123AFE02404A60F6B014B047B0297A60A95CD8C82844B047B0297A60995CD8C8284AC004B +S123B000B0B4B6435F97A60ACDD087D682356B027B02A4F04EA40F6B02720000810024066F +S123B0207B02AA016B024B047B0397A60795CD8C8284CCB0B4BE3DA66462D682356B027B66 +S123B04002A4F04EA40F6B02720000810024067B02AA016B024B047B0397A61095CD8C82AC +S123B060842051B6415F97A60ACDD087D682356B027B02A4F04EA40F6B027B02AA016B0208 +S123B080720000810024067B02A4FE6B024B047B0297A61395CD8C828420190F0172000038 +S123B0A081002404A60F6B014B047B0297A61A95CD8C8284858189CD8DC46B02B61A1102AE +S123B0C02703CCB757B61AA1FF2603CCB7573C1CB61CA1192403CCB7613F1C3F103F0F729C +S123B0E008008100245172120081CD8DC46B02CDAFBACDA8EB720800810024067B02A1FFE6 +S123B10026E472080081002503CDA8EB7B02A1FF26087218008172130081AE0012A68095C7 +S123B120CD8C14CD8DC4A1FF26F9AE0010A68095CD8C14AC00B761CD8DC46B027212008187 +S123B1407B02A00227444A271D4A27504A2603CCB6DE4A2603CCB6FAA0EA271C4A2603CC44 +S123B160B6A8AC00B7393D032703CCB739B60043A401B700AC00B7393D032703CCB739B6DE +S123B1800143A401B701AC00B7393D032703CCB739B60243A401B702AC00B739720000855C +S123B1A0002503CCB3A6B61F4AA10C24075F9758DE8642FCAC00B398725D0115271A725F69 +S123B1C00115725C010BC6010BA1182403CCB739725F010BAC00B739351E0115AC00B7398F +S123B1E0725D0129271A725F0129725C011FC6011FA1182403CCB739725F011FAC00B73919 +S123B200351E0129AC00B739725D0116271A725F0116725C010CC6010CA1182403CCB739B8 +S123B220725F010CAC00B739351E0116AC00B739725D012A271A725F012A725C0120C6019D +S123B24020A1182403CCB739725F0120AC00B739351E012AAC00B739725D0117271A725F8D +S123B2600117725C010DC6010DA1182403CCB739725F010DAC00B739351E0117AC00B739E4 +S123B280725D012B271A725F012B725C0121C60121A1182403CCB739725F0121AC00B7396E +S123B2A0351E012BAC00B739725D0118271A725F0118725C010EC6010EA1182403CCB7390E +S123B2C0725F010EAC00B739351E0118AC00B739725D012C271A725F012C725C0122C601F3 +S123B2E022A1182403CCB739725F0122AC00B739351E012CAC00B739725D0119271A725FE5 +S123B3000119725C010FC6010FA1182403CCB739725F010FAC00B739351E0119AC00B73939 +S123B320725D012D271A725F012D725C0123C60123A1182403CCB739725F0123AC00B739C3 +S123B340351E012DAC00B739725D011A271A725F011A725C0110C60110A1182403CCB73963 +S123B360725F0110AC00B739351E011AAC00B739725D012E271A725F012E725C0124C60148 +S123B38024A1182403CCB739725F0124AC00B739351E012EAC00B7393F1F72110085AC0027 +S123B3A0B739AC00B73972000082002503CCB663B6204A273D4A27714A2603CCB46E4A26C5 +S123B3C003CCB4A54A2603CCB4DC4A2603CCB5134A2603CCB54A4A2603CCB57A4A2603CC80 +S123B3E0B5D24A2603CCB60E3F2072110082AC00B739B642AE000A515F9765909F6B01B612 +S123B40042AE000A515F97659F6B020C027B02AE0003515F9765909F6B027B0297A60A42EC +S123B4209F1B01B742AC00B739B642AE000A515F9765909F6B01B642AE000A515F97659FC6 +S123B4406B020C017B02A10226087B01A4036B01200D7B01AE000A515F9765909F6B017B6E +S123B4600297A60A429F1B01B742AC00B739B641AE000A515F9765909F6B01B641AE000A48 +S123B480515F97659F6B020C027B02AE0006515F9765909F6B027B0297A60A429F1B01B7F1 +S123B4A041AC00B739B641AE000A515F9765909F6B01B641AE000A515F97659F6B020C0141 +S123B4C07B01AE000A515F9765909F6B017B0297A60A429F1B01B741AC00B739B645AE00EF +S123B4E00A515F9765909F6B01B645AE000A515F97659F6B020C027B02AE000A515F97659D +S123B500909F6B027B0297A60A429F1B01B745AC00B739B645AE000A515F9765909F6B0138 +S123B520B645AE000A515F97659F6B020C017B01AE000A515F9765909F6B017B0297A60A50 +S123B540429F1B01B745AC00B739B644AE000A515F9765909F6B01B644AE000A515F9765FB +S123B5609F6B020C027B02A4016B027B0297A60A429F1B01B744AC00B739B644AE000A51C3 +S123B5805F9765909F6B01B644AE000A515F97659F6B020C017B02A101260F7B01AE0003B9 +S123B5A0515F9765909F6B01200D7B01AE000A515F9765909F6B010D0226080D012604A67D +S123B5C0016B017B0297A60A429F1B01B744AC00B739B643AE000A515F9765909F6B01B6F4 +S123B5E043AE000A515F97659F6B020C027B02A4036B020D0226080D012604A6016B017BF2 +S123B6000297A60A429F1B01B743AC00B739B643AE000A515F9765909F6B01B643AE000AA1 +S123B620515F97659F6B020C017B02A10326087B01A4016B01200D7B01AE000A515F976558 +S123B640909F6B010D0226080D012604A6016B017B0297A60A429F1B01B743AC00B739ACC0 +S123B66000B739721A008672120081CD8DC46B02CDAFBACDA8EB720A00860024067B02A154 +S123B680FF26E4720A008600250AB60343A401B703CDA8EB7B02A1FF2703CCB739721B0021 +S123B6A08672130081CCB73972100085721100823C1FB61FA401A101260A721400857217F7 +S123B6C0008520087215008572160085B61FA10D25673F1F7211008572120085205B721025 +S123B6E00082721100853C20B620A10B254B3F207211008272140081203F721A008672120E +S123B7000081CD8DC46B02CDAFBACDA8EB720A00860024067B02A1FF26E4720A0086002509 +S123B7200ACD87ABCDA060721000837B02A1FF2608721B008672130081AE0012A68095CD7E +S123B7408C14CD8DC4A1FF26F9AE0010A68095CD8C14CD995E200A3F1C7B02B71A72130066 +S123B7608185815230B603A1012703CCB8620F307B305F97D601156B057B305F97D6010B92 +S123B78097A63C42011B0524015C021F0301961C00081F017B305F975872FB011603FF7B4F +S123B7A0305F97D601296B057B305F97D6011F97A63C42011B0524015C021F0301961C0024 +S123B7C01C1F017B305F975872FB011603FF0C307B30A104259AB64297A63C4201BB41248B +S123B7E0015C021F0601725D010127181E06130825121E06131C240C1E08131C2406350102 +S123B80000002020725D010227181E06130A25121E06131E240C1E0A131E2406350100001D +S123B82020023F00725D010327181E06130C25121E061320240C1E0C1320240635010002D1 +S123B8402020725D010427181E06130E25121E061322240C1E0E13222406350100022002A7 +S123B8603F023D002706721450052004721550053D022706721650052004721750055B3068 +S123B8808152031E01720E008600240D721F0086A630CDA7ECAC00BA4E7206008300250354 +S123B8A0CCB94C72170083721800854BFF5FA61895CD91898435010032AE00534F95CD8F88 +S123B8C011350A025C350A025D3501025EA6126B037B035F977B03905F909772A20012909E +S123B8E0D60133D7024D0C037B03A11625E3AE001689AE024DCD884C5B021F017B01C7021B +S123B900637B02C702643518002FA618CD8E7CAE81DB89AE015DCDCCEC5B02BF33BE33267B +S123B92007720C00810025E7721D00813F183F2CBE33270C35A1002472130086AC00BA4E42 +S123B94035A0002472120086AC00BA4E72040083002503CCBA4E72020083002503CCBA2E64 +S123B960B623A14E2603CCBA2EB622A1012703CCBA4EBE251C0006B33D250CBE271D000678 +S123B980B33D2203CCBA4E721300834BFF5FA61695CD91898435090032AE00534F95CD8F9C +S123B9A01155003D025DB63EA4FFC7025EB623A14826123501025C550025025FB626A4FFDB +S123B9C0C702602016B623A14C2610725F025C550027025FB628A4FFC70260AE001489AE59 +S123B9E0024DCD884C5B021F017B01C702617B02C702623516002FA616CD8E7CAE81DB89E8 +S123BA00AE015DCDCCEC5B02BF33BE3327EE721D00813F183F2CBE33270A35C900247213A1 +S123BA200086202A35C8002472120086202072080083002419721900833F144B305FA61C90 +S123BA4095CD91898435080032A653CD90B55B0381520C1E0872060082002503CCC843729A +S123BA601700823F145FBF055FBF073F310F0A0F0BAE81E389AE01D5CDCCEC5B02BF35BE38 +S123BA80352603CCC5BDAE81E389AE01D5CD8E1A5B02016B0B027B0B5F97D601DAA1302668 +S123BAA006353000192004353100197B0BAB076B0B7B0B5F97D601D5A1302403CCBBC37BC8 +S123BAC00B5F97D601D5A13A2503CCBBC37B0B5F97D601D5A030B7310C0B7B0B5F97D6011E +S123BAE0D5A1302403CCBBC37B0B5F97D601D5A13A2503CCBBC37B0B5F97D601D5A0306B53 +S123BB00067B0B5F975AD601D597A60A429FA0E01B06B7310C0B7B0B5F97D601D5A13024B4 +S123BB2003CCBBC37B0B5F97D601D5A13A2503CCBBC37B0B5F97D601D5A0306B067B0B5FF1 +S123BB40975AD601D597A60A429FA0E06B057B0B5F975A5AD601D597A664429FA0C01B054E +S123BB601B06B7310C0B7B0B5F97D601D5A13025527B0B5F97D601D5A13A24477B0B5F9747 +S123BB80D601D5A0306B067B0B5F975AD601D597A60A429FA0E06B057B0B5F975A5AD60113 +S123BBA0D597A664429FA0C06B047B0B5F971D0003D601D597A6E8429FA0801B041B051B93 +S123BBC006B7317B0B5F97D601D5A12C0C0B0F0C7B0B5F1B0C24015C02D601D5A12E270813 +S123BBE00C0C7B0CA10A25E87B0CA101260E7B0B5F97D601D5A030C70137205C7B0CA102F0 +S123BC0026207B0B5F97D601D6A0306B067B0B5F97D601D597A60A429FA0E01B06C7013780 +S123BC2020367B0CA10326307B0B5F97D601D7A0306B067B0B5F97D601D697A60A429FA0CD +S123BC40E06B057B0B5F97D601D597A664429FA0C01B051B06C701377B0B1B0C4C6B0B0FC8 +S123BC600C7B0B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A25E87B0CA101260E7B4C +S123BC800B5F97D601D5A030C70138205C7B0CA10226207B0B5F97D601D6A0306B067B0B47 +S123BCA05F97D601D597A60A429FA0E01B06C7013820367B0CA10326307B0B5F97D601D714 +S123BCC0A0306B067B0B5F97D601D697A60A429FA0E06B057B0B5F97D601D597A664429F34 +S123BCE0A0C01B051B06C701387B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12E0B +S123BD0027080C0C7B0CA10A25E87B0CA10126147B0B5F1B0C24015C025AD601D5A030C70A +S123BD200139207E7B0CA102262D7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0CC8 +S123BD4024015C025A5AD601D597A60A429FA0E01B06C70139204B7B0CA10326457B0B5F4C +S123BD601B0C24015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A4256 +S123BD809FA0E06B057B0B5F1B0C24015C021D0003D601D597A664429FA0C01B051B06C7CB +S123BDA001397B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12C27080C0C7B0CA144 +S123BDC00A25E87B0CA10126147B0B5F1B0C24015C025AD601D5A030C7013A207E7B0CA1B8 +S123BDE002262D7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD6FB +S123BE0001D597A60A429FA0E01B06C7013A204B7B0CA10326457B0B5F1B0C24015C025A93 +S123BE20D601D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B84 +S123BE405F1B0C24015C021D0003D601D597A664429FA0C01B051B06C7013A7B0B1B0C4CEB +S123BE606B0B0F0C7B0B5F1B0C24015C02D601D5A13A27080C0C7B0CA10A25E87B0CA10168 +S123BE8026197B0B5F1B0C24015C025AD601D55F971D0030CF013BAC00BF967B0CA102262B +S123BEA0337B0B5F1B0C24015C025AD601D55F971D00301F057B0B5F1B0C24015C025A5A0C +S123BEC0D601D597A60A421D01E072FB05CF013BAC00BF967B0CA103264C7B0B5F1B0C24E0 +S123BEE0015C025AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D597A60A42FA +S123BF001D01E01F037B0B5F1B0C24015C021D0003D601D597A664421D12C072FB0372FBF3 +S123BF2005CF013B20707B0CA104266A7B0B5F1B0C24015C025AD601D55F971D00301F05A5 +S123BF407B0B5F1B0C24015C025A5AD601D597A60A421D01E01F037B0B5F1B0C24015C02B6 +S123BF601D0003D601D597A664421D12C01F017B0B5F1B0C24015C021D0004D601D55F97AD +S123BF8090AE03E8CDD0141DBB8072FB0172FB0372FB05CF013B7B0B977B0B5F1B0C2401C2 +S123BFA05C025CAE86AB89AE01D5CD8E1A5B02016B0B027B0B5F97D601D5A13A0C0B7B0BEC +S123BFC05F97D601D5A1017B0B5F97D601D6B732B631A1192703CCC0C9B632A1012703CC67 +S123BFE0C0C972180083721400837B0BCD8EE84D2603CCC58B7B0BAB0F6B0B7B0B970C0B59 +S123C0009F5F97D601D55F974F021F087B0B970C0B9F5F97D601D51B096B0924020C081E08 +S123C02008A664625F979FB7457B0B970C0B9F5F97D601D5B7447B0B970C0B9F5F97D601E7 +S123C040D5B7437B0B970C0B9F5F97D601D5B7427B0B970C0B9F5F97D601D5B7417B0B9715 +S123C0600C0B9F5F97D601D5B7407B0B5F97D601D5B73F7B0B5F97D601D66B077B0B5F9738 +S123C080D601D76B0A7B0B5F975C89AE01D5CD884C5B021F087B0A5F974F02011B0724015B +S123C0A05C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AEF8 +S123C0C0000ACD8C2FAC00C58BB631A1122703CCC151B632A10226797B0BCD8EE84D2603C3 +S123C0E0CCC58B7B0BAB0F6B0B7B0B5F97724D01D526043F032004350100037B0B5F97D63E +S123C10001D66B077B0B5F97D601D76B0A7B0B5F975C89AE01D5CD884C5B021F087B0A5F45 +S123C120974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50CB6 +S123C1400C7B0CA17825F0AE000ACD8C2FAC00C58BB631A1132703CCC224B632A1032703B1 +S123C160CCC2247B0BCD8EE84D2603CCC58B7B0BAB0F6B0B3D032703CCC2087B0B5F97D6A6 +S123C18001D5A101261F7B0B5F97724D01D626043F0020397B0B5F97D601D6A101262E35B6 +S123C1A001000020287B0B5F97D601D5A102261D7B0B5F97724D01D626043F02200F7B0BF2 +S123C1C05F97D601D6A1012604350100027B0B5F97D601D76B077B0B5F97D601D86B0A7BFD +S123C1E00B5F975C5C89AE01D5CD884C5B021F087B0A5F974F02011B0724015C021308269D +S123C200037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C2FA3 +S123C220AC00C58BB631A1162703CCC2EDB632A1042703CCC2ED7B0BCD8EE84D2603CCC5B9 +S123C2408B7B0BAB0F6B0B7B0B5F97D601D54A6B0C7B0C5F977B0B905F909790D601D6D783 +S123C260010B7B0C5F977B0B905F909790D601D7D701157B0C5F977B0B905F909790D601EA +S123C280D8D7011F7B0C5F977B0B905F909790D601D9D701297B0B5F97D601DA6B077B0B4C +S123C2A05F97D601DB6B0A7B0B5F971C000589AE01D5CD884C5B021F087B0A5F974F0201C1 +S123C2C01B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA1CA +S123C2E07825F0AE000ACD8C2FAC00C58BB631A1162703CCC3C7B632A1052703CCC3C77BCA +S123C3000BCD8EE84D2603CCC58B7B0BAB0F6B0B7B0B5F97D601D5A102240B7B0B5F97D637 +S123C32001D5B72220497B0B5F97D601D5A102263E7B0B5F97D601D76B067B0B5F97D601C4 +S123C340D65F974F02011B0624015CB7289FB7277B0B5F97D601D96B067B0B5F97D601D8F5 +S123C3605F974F02011B0624015CB7269FB7257B0B5F97D601DA6B077B0B5F97D601DB6B3F +S123C3800A7B0B5F971C000589AE01D5CD884C5B021F087B0A5F974F02011B0724015C024E +S123C3A0130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000A49 +S123C3C0CD8C2FAC00C58BB631A1112669B632A10626637B0BCD8EE84D273F7B0BAB0F6B6E +S123C3E00B7B0B5F97D601D56B077B0B5F97D601D66B0A7B0B5F9789AE01D5CD884C5B026F +S123C4001F087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F976B +S123C420724F01D50C0C7B0CA17825F0AE000ACD8C2FAC00C58BB631A1252703CCC504B636 +S123C44032A1072703CCC5047B0BCD8EE84D2603CCC58B7B0BAB0F6B0B0F0C7B0C5F97890D +S123C4607B0D5F1B0E24015C02D601D585D701490C0C7B0CA11425E37B0B5F1B0C24015CEA +S123C48002D601D56B077B0B5F1B0C24015C02D601D66B0A7B0B5F1B0C24015C028901AE00 +S123C4A001D5CD884C5B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B99 +S123C4C00A0F0C7B0C5F97724F01D50C0C7B0CA17825F035EA00304BFF5FA61495CD918924 +S123C4E084A607CD8FFE72060081002405A630CDA21CA630CDA7EC72150083AE000ACD8CD9 +S123C5002FCCC58BB631A11326F7B632A10A267B7B0BCD8EE84D27737B0BAB0F6B0B7B0BF4 +S123C5205F97D601D56B0C7B0C5F977B0B905F909790D601D6D701007B0B5F97D601D76B1B +S123C540077B0B5F97D601D86B0A7B0B5F975C5C89AE01D5CD884C5B021F087B0A5F974F00 +S123C56002011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7BD1 +S123C5800CA17825F0AE000ACD8C2F0D0A2727B632A1012721B632A107271BB632A108275C +S123C5A015B632A109270F4BFF5FA61C95CD918984A652CD90B5CD995EAC00C843AE81EC8F +S123C5C089AE01D5CDCCEC5B02BF35BE3527320F0C7B0C5F97724F01D50C0C7B0CA178251C +S123C5E0F0721E0081A631CDA08EA631CDA148A631CDA1A53F13CDA279351F0024AC00C8C7 +S123C60043AE817E89AE01D5CDCCEC5B02BF35BE3527300F0C7B0C5F97724F01D50C0C7B37 +S123C6200CA17825F072160086721B008272170081721A00833F13721F008435DC0024AC3E +S123C64000C843AE816389AE01D5CDCCEC5B02BF35BE3527260F0C7B0C5F97724F01D50CDB +S123C6600C7B0CA17825F0721F008472170084721A008372170086AC00C843AE817289AE26 +S123C68001D5CDCCEC5B02BF35BE3527350F0C7B0C5F97724F01D50C0C7B0CA17825F0722D +S123C6A0170086721A008272110086CDA30D3F18A631CDA37FA630CDA7EC35970024AC0056 +S123C6C0C843AE81F289AE01D5CDCCEC5B02BF35BE35272C0F0C7B0C5F97724F01D50C0CBA +S123C6E07B0CA17825F07216008172160083AE00C8CD8C2F35A10024721D0086AC00C843A9 +S123C700AE81FC89AE01D5CDCCEC5B02BF35BE35271A0F0C7B0C5F97724F01D50C0C7B0C05 +S123C720A17825F072180086AC00C843AE81DB89AE01D5CDCCEC5B02BF35BE35271A0F0CC4 +S123C7407B0C5F97724F01D50C0C7B0CA17825F072160081AC00C843AE820689AE01D5CD24 +S123C760CCEC5B02BF35BE352612AE820D89AE01D5CDCCEC5B02BF35BE3527300F0C7B0C75 +S123C7805F97724F01D50C0C7B0CA17825F0721700817213008672150083AE00C8CD8C2F1E +S123C7A035A00024721C0086AC00C843AE81C589AE01D5CDCCEC5B02BF35BE3527170F0C8E +S123C7C07B0C5F97724F01D50C0C7B0CA17825F0CDA030206EAE822389AE01D5CDCCEC5B09 +S123C7E002BF35BE3527170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0302045AE81E1 +S123C800C089AE01D5CDCCEC5B02BF35BE3527170F0C7B0C5F97724F01D50C0C7B0CA17859 +S123C82025F0CDA030201C720200860024150F0C7B0C5F97724F01D50C0C7B0CA17825F0D7 +S123C840CDA0305B0C8152083D042603CCC9613F04A6146B02B6456B07B6446B06B6436BEF +S123C86008B6426B05B6416B030C037B03A13C2403CCC8FA0F030C057B05A1182402207AA4 +S123C8800F050C087B07A503260E7B075F97A664CDD087A3000026117B075F9790AE019047 +S123C8A0CDCFF651A3000026080D072704A60120014F6B047B064AA10C24075F9758DE86A6 +S123C8C093FC202A7B08A12025240F0820200D04270A7B08A11E25160F0820127B08A11D4E +S123C8E0250C0F0820087B08A11F25020F080C067B06A10D25040F060C077B07B7457B06B2 +S123C900B7447B08B7437B05B7427B03B741B644A10126060A07A60D6B06B644A1022606E6 +S123C9200A07A60E6B067B0744446B057B0697A61A421C001AA60ACDD08D016B04027B022A +S123C940486B017B02444410011B071B051B041B084A6B047B04AE0007515F9765909FB706 +S123C9603F5B0881725F5244725F5245725F5246725F524335065242352C5245350E500791 +S123C980353E5008725F5009350E50053506500C35F0500D725F500E3506500A35BC5011D7 +S123C9A035445012C65013977214500F35205016725F5017725F5018725F5014721250C5F9 +S123C9C035B450C4725F5402725F5401725F54003501540735015401AE0064CD889A721045 +S123C9E05401725F5341350153433507534535FF534635FF534435015340350153419ACD47 +S123CA0087ABCD8CAC3F453F443F433F423F413F3F5FBF3DCD9ABA3530001972180081CD01 +S123CA20A0603F18CDBA51CDAEA5CDA8EBCDB881CDC84620EDB62CA17825023F2CB62DA144 +S123CA407825023F2D720C00820025043D182615B62C973C2C9F5F97C65241D701D53F2A29 +S123CA607218008280B62D973C2D9F5F97C65241D7015D20EF720C008200241CB62EB12F0D +S123CA80220E3C2EB62E5F97D6024DC752412008721D0082721F5245803B004DBE4B893B69 +S123CAA00050BE4E89725F53423C17B617A1322404AC00CCB53F173C16B616A10725103F4F +S123CAC0163C40B640A13C25063F403501000472060081002519720A0082002412BE091CBB +S123CAE00001BF09A3019025065FBF09CDA030720600810024035FBF09901000813C1EB6CE +S123CB001EAE0014515F9765909FB71E3C15B615A10525063F15901200823C11B611A1283F +S123CB202511720C008100240A3F11721D008172140086720C00810025023F1172080081B1 +S123CB4000241C720200810024153C10B610A10F250D72080081002404721900813F10727F +S123CB600800810025023F10720A008600241C720200810024153C46B646A10A250D720A6B +S123CB800086002404721B00863F46720A00860025023F46720800810025303C0FB60FA19C +S123CBA0322528721800813F0F72000082002406721100823F207200008500240E7211006B +S123CBC0853F1F7215008572170085720800810024023F0F7206008100241C720A008200AE +S123CBE024157204008300240E3C14B614A14525063F1472180083720400830025023F14CF +S123CC00720800830024257206008100241E720A00820024175FBF05BE071C0001BF07A3E8 +S123CC20019125325FBF07CDA030202A720800830025237206008100241C720A008200245B +S123CC40155FBF07BE051C0001BF05A3019125065FBF05CDA030720C00860024123C0EB698 +S123CC600EA15B250E3C383F0E721E008620043F0E3F387206008600240D3C0DB60DA15B7D +S123CC8025053F0DCDA030720200810024023F0D720E0084002415720E008100240E3C1357 +S123CCA0B613A12325063F1372160084720E00840025023F13720800820024173C2AB62A60 +S123CCC0A10B250F3F2A7219008272160082452C2B3F2C85BF4E32005085BF4B32004D8047 +S123CCE0BF4B5A5C7D26FC72B0004B8189520420261F011E091F03F626041E05201F1E01B4 +S123CD00F61E03F127071E055C1F05200A1E015C1F011E035C20DE1E05F626D55F5B0681A1 +S123CD20E60388E60288E60188F626040D01270EA880200AE60388E60288E60188F6881A02 +S123CD4002270BBE47260A85BF4785BF49815B048190893F4C58394C9EB74B1E0358394CCE +S123CD609E5FB04B271F972228A1E9251E409716057B04AA804490565A26FA6B0417057287 +S123CD801E0048202C721E00482020206B908520B6A11824F8BB4BB74B90BE49B648AA80B3 +S123CDA04490565A26FAB74890BF497B04AA806B04BE49B648344C2204241E261C72F00586 +S123CDC012042407334C435026014C4D2B1E26165D2613BF49BF47201F72FB051904240C15 +S123CDE046563C4B20063A4B58492AFABF494897B64B95344C56BF4790855B0481B647F45D +S123CE00B74CB647F82A05F82B1B201DB647F0261AB648E101260CB649E1022606B64AE13E +S123CE2003270E2404A6FF2002A601720F004C01409C81B647BA482711E60388E60288E6F7 +S123CE400188F6881A0226035B048190897B03720F004704A8806B03AA80080449B74B0622 +S123CE6004B648721E004848B64749B04BAB7FB7473518004C07030803B648BE499058394F +S123CE804B0703250A1104250D22041305250772F0051204905C584909033A4C26DFB64BB7 +S123CEA02B059058493A47480803364746B74890BF4990855B048189CDCD3485CCD075B647 +S123CEC047BA482712E60388E60288FE891E012607BF47BF495B04817B01720F004704A83A +S123CEE0806B01AA800802490602A07EB74BB648721E004848B64749BB4BB7477B02BE47B3 +S123CF0042BF4B7B03BE47423F4DAD5E7B04BE47429FAD647B02BE4842AD4F7B03BE484268 +S123CF20AD537B04BE48423F49AD5C7B02BE4942AD437B03BE4942AD4E7B04BE49429EBBFC +S123CF404924063C482602AD46BE4CB64B2B06384859493A474808013647463848B748BF8A +S123CF604924047210004A5B048172BB004CBF4C24023C4B819FBB48B7489EB94DB74D2471 +S123CF80F3BE4B5CBF4B8172BB0048BF4824E53C4D27EE81CDCF9ABE498189BE4727554FEF +S123CFA05802A07F2A075FBF47BF4920479089A1372AF3565E90BE49A01727272A1440A172 +S123CFC0102B0790935FA01027195490564A26FA2011A1102B0793905FA010270690585941 +S123CFE04A26FA3D472A0653905026015C90BF49BF4790858581884F5D2A024C50905D2A8D +S123D00004AB029050654D2709442405905044250150848188BF4C909F5E42BF4BBE4C9087 +S123D0209E4272BB004BBF4BBE4C909F423F4D72BB004C84813F4ABF4826033F47814548B8 +S123D040472A0350BF48A68E5D2B0E3D482606A686BE492B044A582AFC5838474656BF48E2 +S123D060B7478188F6B747E601B748E602B749E603B74A848188B647F7B648E701B649E7AC +S123D08002B64AE70384813580004B20023F4B5D2A09507210004B7212004B4D2A05409027 +S123D0A012004B62374B2A065F9724055081270150813580004E20023F4E905D2A0A90505F +S123D0C07210004E7212004E4D2A05409012004E9062374E2A09905F90972407905081278B +S108D0E0029050818064 +S12386C6000000000000000000000000000000000000000000000000003000000000000060 +S12086E60000004E00001E0005000000000000000000000000000000000000000002 +S1238703000000000000000000000000000000000000000000000000000000000000000052 +S123872300000000000000000000000000000000000000000000000000000026E20000002A +S12087430000000000000000007777772E6966697368372E636F6D000000000000CB +S1238000820087608200D0E48200D0E48200D0E48200D0E48200D0E48200D0E48200D0E479 +S12380208200D0E48200D0E48200D0E48200D0E48200D0E48200D0E48200D0E48200D0E48C +S12380408200D0E48200D0E48200D0E48200D0E48200D0E48200D0E48200CA758200CA3596 +S12380608200D0E48200CA998200D0E48200D0E48200D0E48200D0E48200D0E48200D0E49D +S11086B986C662000087036401008760002C +S903FFFFFE diff --git a/QR/设备相关/烧录/张工/2-control.s19 b/QR/设备相关/烧录/张工/2-control.s19 new file mode 100644 index 0000000..ff6f0ce --- /dev/null +++ b/QR/设备相关/烧录/张工/2-control.s19 @@ -0,0 +1,654 @@ +S016000044656275675C322D636F6E74726F6C2E736D3800 +S1238080312C22554450222C223139322E3136382E302E313034222C333333302C2254437E +S12380A050222C223132302E35352E3139302E3536222C39393535312C22554450222C226E +S12380C03132302E35352E3139302E3536222C33333341542B52535441542B524553544F23 +S12380E0524541542B43575354415254534D4152543D3341542B43574D4F44453D41542B8A +S12381004349504D4F44453D41542B4349504D55583D41542B434946535241542B43495077 +S123812053544152543D41542B435753544F50534D41525441542B43495053454E443D4105 +S1238140542B434950434C4F53453D41542B43495053544154555341542B43495044494E16 +S1238160464F3D5749464920434F4E4E4543544544005749464920474F54204950005749B5 +S1238180464920444953434F4E4E45435400536D61727420676574207769666920696E66AF +S12381A06F00736D617274636F6E66696720636F6E6E65637465642077696669004F4B0073 +S12381C04641494C004552524F5200414C524541445920434F4E4E4543540053454E44207F +S12381E04F4B002B4950442C003E2000726561647900302C434F4E4E45435400312C434FE5 +S12382004E4E45435400434C4F53454400444E53204661696C005354414D41430053544106 +S12382204950006C696E6B206973206E6F742076616C696400EB60C7E56CADAFE0EFED00DB +S12382400A0D0E0F000A0D0F0009070B0000C0C1C1810140C30103C00280C241C60106C008 +S12382600780C7410500C5C1C4810440CC010CC00D80CD410F00CFC1CE810E400A00CAC152 +S1238280CB810B40C90109C00880C841D80118C01980D9411B00DBC1DA811A401E00DEC192 +S12382A0DF811F40DD011DC01C80DC411400D4C1D5811540D70117C01680D641D20112C032 +S12382C01380D3411100D1C1D0811040F00130C03180F1413300F3C1F28132403600F6C132 +S12382E0F7813740F50135C03480F4413C00FCC1FD813D40FF013FC03E80FE41FA013AC0D2 +S12383003B80FB413900F9C1F88138402800E8C1E9812940EB012BC02A80EA41EE012EC051 +S12383202F80EF412D00EDC1EC812C40E40124C02580E5412700E7C1E68126402200E2C1B1 +S1238340E3812340E10121C02080E041A00160C06180A1416300A3C1A28162406600A6C1F1 +S1238360A7816740A50165C06480A4416C00ACC1AD816D40AF016FC06E80AE41AA016AC051 +S12383806B80AB416900A9C1A88168407800B8C1B9817940BB017BC07A80BA41BE017EC091 +S12383A07F80BF417D00BDC1BC817C40B40174C07580B5417700B7C1B68176407200B2C131 +S12383C0B3817340B10171C07080B041500090C191815140930153C052809241960156C0B1 +S12383E057809741550095C1948154409C015CC05D809D415F009FC19E815E405A009AC1D1 +S12384009B815B40990159C058809841880148C0498089414B008BC18A814A404E008EC150 +S12384208F814F408D014DC04C808C41440084C185814540870147C046808641820142C0B0 +S123844043808341410081C18081404041542B4349504653520D2B4349504653523A535426 +S12384604149502C223139322E3136382E302E313038220D2B4349504653523A5354414DB2 +S123848041432C2231383A66653A33343A64623A30643A3333220D0A4F4B4209DE35420313 +S12384A0C8B441FC106241F12D0E41E6AE1441DCD91641D36A7E41CA76C841C1E35341B9B4 +S12384C0BE7641B2126E41AAA5E341A39999419CF7CE41968D4F419024DD418A93744185A9 +S12384E020C4417F7CED4175645A416C00004169D70A4159E35341514BC641494BC641412F +S1238500C28F413A5A1C41335C28412C937441262D0E41200000411A189341146E97410EF7 +S1238520FDF34109CED94104D4FD41000C4940F6F9DB40EE3D7040E5D2F140DDBA5E40D692 +S1238540041840CE9FBE40C774BC40C09BA540BA041840B3B64540ADA9FB40A7CED940A214 +S1238560353F409CD4FD4097AE1440929FBE408DEB854089374B4084D4FD408083124078E4 +S123858051EB4070E5604069374B4061BA5E405A9FBE4053B645404D1EB84046C8B4404058 +S12385A0B439403AD0E540351EB8402F9DB2402A5E3540254FDF40204189401B851E401684 +S12385C0F9DB40127EF9400E5604400A1CAC400624DD40024DD23FFD2F1A3FF5E3533FEE7C +S12385E0F9DB3FE831263FE1CAC03FDB645A3FD560413FCF7CED3FC9BA5E3FC439583FBEC6 +S1238600F9DB3FB9BA5E3FB4BC6A3FAFDF3B3FAB43953FA6A7EF3FA24DD23F9E147A3F99D1 +S1238620FBE73F95E3533F920C493F8E56043F8A9FBE3F872B023F83B6453F80624D3F7A00 +S12386404A8CB323B34BB373B39BB3C3B3EBB413B43BB463B48BB4B3B4DB0D0A2B495044C3 +S12386602C302C31393139322E3139322E3139322E3139322C393939393A000718FE34DB94 +S12386800D335CCF7F076521130B16212C37424D5843523A003F80000040A0000042C7CC7D +S10486A0CC09 +S1238745AE07FF9490CE86A1AE86A3F62720A5602717BF48EE03BF4BBE48EE0190F6F75C1C +S1238765905C90B34B26F5BE481C000520DDAE003A2002F75CA3004E26F9AE015D2002F7A5 +S12387855CA302C526F9CDC9E720FE880F0172080081002406351000812004351000813FA4 +S12387A5813F823F833F843F853F86721F0081721B008272170086721700817213008172AE +S12387C51D0086721F00867217008272190082721B00830F017B015F97724F015D7B015F32 +S12387E597724F01D50C017B01A17825E83F353F143F213F1A3F1B3F0C5FBF083F153F14A1 +S12388053F103F133F0F3F0E5FBF0A3F113F123F275FBF045FBF063F283F163F293F2A3FD2 +S12388252C3F2B5FBF30BE30BF328481895203AEFFFF1F02202F7B03A4FF6B011E024F0170 +S1238845160472A90001170472A2000190F61801A4FF905F909790580190D8824D0190D8C8 +S1238865824C011F029C1E081D00011F081C0001A300002CC11E025B058189895F1F012099 +S1238885071E011C00011F011E01130325F35B0481898920115F1F011E011C00011F011E03 +S12388A501A302CB25F21E031D00011F031C0001A3000026E05B04818988721B50147B03A0 +S12388C548AA806B037214500A0F01721B50147B03A501260220067212500A200472135085 +S12388E50A721A501404030C017B01A10825DC0F01721B50147B02A50126022006721250F5 +S12389050A20047213500A721A501404020C017B01A10825DC7215500A5B038188890F0137 +S1238925721B50147212500A7B0348AA816B037214500A0F027B03A50126022006721250C9 +S12389450A20047213500A721A50140403721B50140C027B02A10825DC7212500A0F027283 +S12389651B501404017202500B0024067B01AA806B01721A50140C027B02A10825E17215AE +S1238985500A7B015B0381890F0272000082002403CC8A50A606AD846B027B02A40F6B01D8 +S12389A57B024EA40F97A60A429F1B01B742A605CD89216B027B02A407B73CA604CD892128 +S12389C56B027B02A40F6B017B02A4104EA40F97A60A429F1B01B741A603CD89216B027B0F +S12389E502A40F6B017B02A4304EA40F97A60A429F1B01B740A602CD89216B027B02A40F04 +S1238A056B017B02A4304EA40F97A60A429F1B01B73FA601CD89216B027B02A40F6B017BB3 +S1238A2502A4704EA40F97A60A429F1B01B73E4FCD89216B027B02A40F6B017B02A4704E2F +S1238A45A40F97A60A429F1B01B73D85818972150081B642A164250435630042B641A10DE6 +S1238A652504350C0041B640A1202504351F0040B63FA11825043517003FB63EA13C250472 +S1238A85353B003EAE00074F95CD88BDB642AE000A515F9765909F6B01B642AE000A515F1D +S1238AA597659F97A610429F1A016B02AE00067B0295CD88BDB63CA4076B02AE00057B024A +S1238AC595CD88BDB641AE000A515F9765909F6B01B641AE000A515F97659F97A610429FC8 +S1238AE51A016B02AE00047B0295CD88BDB640AE000A515F9765909F6B01B640AE000A511B +S1238B055F97659F97A610429F1A016B02AE00037B0295CD88BDB63FAE000A515F976590DE +S1238B259F6B01B63FAE000A515F97659F97A610429F1A016B02AE00027B0295CD88BDB6E9 +S1238B453EAE000A515F9765909F6B01B63EAE000A515F97659F97A610429F1A016B02AE74 +S1238B6500017B0295CD88BDB63DAE000A515F9765909F6B01B63DAE000A515F97659F9748 +S1238B85A610429F1A016B025F7B0295CD88BDAE0007A68095CD88BD858189880F01201E43 +S1238BA57217500F7B02A580260220067214500F20047215500F7216500F08020C017B016B +S1238BC5110325DC5B038189880F01201E7217500F7B02A501260220067214500F20047265 +S1238BE515500F7216500F04020C017B01110325DC5B038189721F500FAE00047B0195ADA5 +S1238C0599AE00087B0295AD91721E500F858189AE0012A68095ADDC1E01CD8896AE001062 +S1238C25A68095ADCF858189721F500FAE0003A6A095CD8B9F08010801AE00067B0195CD4E +S1238C458B9FA60810055F977B025D2704485A26FC6B027B05977B0295CD8B9F721E500FE3 +S1238C65858189721F500FAE0003A6A095CD8B9F08010801AE00067B0195CD8B9F7B059704 +S1238C857B0295CD8BCC721E500F85818872125005AE0002A68095CD8BF9AE0006A6809514 +S1238CA5CD8BF9AE0030A68095CD8BF9AE0052A68095CD8BF9AE0080A68095CD8BF90F011A +S1238CC54B045F7B0295CD8C2C840C017B01A12025EEAE01F4CD887F0F014B04AE000F7B57 +S1238CE50295CD8C2C840C017B01A12025EC84818989A60A625F97D682356B027B02A4F046 +S1238D054EA40F6B017B02A40F6B027B01AA016B014B047B0297A60E95CD8C2C844B047B2E +S1238D250397A60F95CD8C2C841E03A664625F97A60A62D682356B027B02A4F04EA40F6B31 +S1238D45017B02A40F6B027B01AA016B014B047B0297A61095CD8C2C844B047B0397A61107 +S1238D6595CD8C2C841E03A66462D682356B027B02A4F04EA40F6B017B02A40F6B027B012E +S1238D85AA016B014B047B0297A61295CD8C2C844B047B0397A61395CD8C2C84AE00FACDCA +S1238DA588965B0481880F017208500B0024067B01AA016B01720A500B0024067B01AA0259 +S1238DC56B01720C500B0024067B01AA046B01720E500B0024067B01AA086B017B01A10FBA +S1238DE524057B015B0181A6FF5B018188C65240A58027F97B01C7524184818952081E0D58 +S1238E05CDCD421F011E09CDCD421F035F1F05203F5F1F0720071E071C00011F079C1E0771 +S1238E2513012E1B9C1E0572FB0713032E111E0772FB0DF61E0572FB0772FB09F127D71E95 +S1238E4507130126041E0520111E051C00011F059C1E0513032FBAAEFFFF5B0A818888723A +S1238E651C0082350100163F2A0F017B015F97724F015D0C017B01A17825F00F012013C635 +S1238E855240A58027F97B015F97D6024DC752410C017B01110225E7721D0082721C008139 +S1238EA53F10858188883F163F290F012013C65240A58027F97B015F97D6024DC752410CAA +S1238EC5017B01110225E7858188880F017B015F97897B045F1B0324015C02D601D785D743 +S1238EE501430C017B01A10625E3A6016B01A601858189889FA153260E7B02970C029F5F35 +S1238F0597724F024D200D7B02970C029F5F97A601D7024D7B02970C029F5F97B62FD7027B +S1238F254D0F017B025F1B0124015C027B01905F909790D6013DD7024D0C017B01A106259F +S1238F45E27B021B016B020F017B025F1B0124015C027B01905F909790D60143D7024D0C27 +S1238F65017B01A10625E27B021B016B02B62FA101260B7B025F97A618D7024D205EB62F45 +S1238F85A106260B7B025F97A639D7024D204DB62FA107260B7B025F97A614D7024D203C9E +S1238FA5B62FA108260B7B025F97A639D7024D202BB62FA109260B7B025F97A616D7024D11 +S1238FC5201AB62FA10B260B7B025F97A614D7024D20097B025F97A639D7024D5B03818831 +S1238FE552031E01A10B2707A1072703CC90987B04B72F7B04A10B2608AE00534F95CD8E56 +S1239005F77B04A1072608AE00524F95CD8EF77B03973501025C3503025D3506025EAE003C +S12390251289AE024DCD88315B021F017B01C7025F7B02C702607B04A1FF26130F037B035A +S12390455F97A6FFD7024D0C037B03A11425EF3514002CA614CD8E62AE81DB89AE015DCD98 +S1239065CD4E5B02BF30BE302607720C00810025E7721D00813F163F29BE30270A721300E9 +S123908586350B0021200C7212008672190086350A00215B048152041E01974F95CD8EF717 +S12390A5A60F6B043D03270F7B04970C049F5F97A601D7024D200C7B04970C049F5F97722C +S12390C54F024D7B04970C049F5F97A601D7024D3D00270F7B04970C049F5F97A601D702B3 +S12390E54D200C7B04970C049F5F97724F024D7B04970C049F5F97A602D7024D3D02270F25 +S12391057B04970C049F5F97A601D7024D200C7B04970C049F5F97724F024D0F037B04979F +S12391250C049F5F977B034CD7024D7B04970C049F5F977B03905F909790D60101D7024DB4 +S12391457B04970C049F5F977B03905F909790D6010BD7024D7B04970C049F5F977B039056 +S12391655F909790D60115D7024D7B04970C049F5F977B03905F909790D6011FD7024D7B48 +S123918504970C049F5F977B03905F909790D60129D7024D0C037B03A10425817B04970C42 +S12391A5049F5F97B63AD7024D7B04970C049F5F97B63BA4FFD7024D7B04970C049F5F97C7 +S12391C5724F024D7B04970C049F5F97724F024D7B04970C049F5F97724F024D7B04970CBE +S12391E5049F5F97724F024D7B04970C049F5F97B61FD7024D7B04970C049F5F97B624D79B +S1239205024D7B04970C049F5F97B625A4FFD7024D7B04970C049F5F97B622D7024D7B045F +S1239225970C049F5F97B623A4FFD7024D7B045F9789AE024DCD88315B021F017B04970C27 +S1239245049F5F977B01D7024D7B04970C049F5F977B02D7024D7B04B72CB62CCD8EA95BC9 +S1239265048189880F017B015F97D68134D7024D0C017B01A10B25EE7B015F97B617D702BC +S12392854D7B02A118262E7B015F97A630D7024D0C017B015F97A62CD7024D0C017B015F21 +S12392A597A632D7024D0C017B015F97A634D7024DAC00997E7B02A1142703CC991F7B0172 +S12392C55F97A631D7024D0C017B015F97A62CD7024D0C017B015F97A632D7024D0C017B16 +S12392E5015F97A630D7024D0C017B015F97A62CD7024D0C017B015F97A622D7024D7B0310 +S1239305A1FF2703CC95A2C601335F97A664CDD0D1A3000027510C017B015F97C6013390EB +S1239325AE0064895F97659F85AB30D7024D0C017B015F97C60133905F9097A60ACDD0FC31 +S1239345A60ACDD0F6909FAB30D7024D0C017B015F97C6013390AE000A895F9765909F8538 +S1239365AB30D7024D2066C601335F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F4C +S123938597C60133905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C61C +S12393A5013390AE000A895F9765909F85AB30D7024D20190C017B015F97C6013390AE009F +S12393C50A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601345F97A664CDA0 +S12393E5D0D1A3000027510C017B015F97C6013490AE0064895F97659F85AB30D7024D0C77 +S1239405017B015F97C60134905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B7B +S1239425015F97C6013490AE000A895F9765909F85AB30D7024D2066C601345F97A60ACD5C +S1239445D0D1A60ACDD0CBA3000027390C017B015F97C60134905F9097A60ACDD0FCA60ABE +S1239465CDD0F6909FAB30D7024D0C017B015F97C6013490AE000A895F9765909F85AB30EB +S1239485D7024D20190C017B015F97C6013490AE000A895F9765909F85AB30D7024D0C01FC +S12394A57B015F97A62ED7024DC601355F97A664CDD0D1A30000274F0C017B015F97C6016E +S12394C53590AE0064895F97659F85AB30D7024D0C017B015F97C60135905F9097A60ACD95 +S12394E5D0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013590AE000A895F976590ED +S12395059F85AB30D7024DC601355F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F0A +S123952597C60135905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C678 +S1239545013590AE000A895F9765909F85AB30D7024D20190C017B015F97C6013590AE00F9 +S12395650A895F9765909F85AB30D7024D0C017B015F97A62ED7024D0C017B015F97A6326F +S1239585D7024D0C017B015F97A635D7024D0C017B015F97A635D7024DAC0098DBC601377F +S12395A55F97A664CDD0D1A3000027510C017B015F97C6013790AE0064895F97659F85AB47 +S12395C530D7024D0C017B015F97C60137905F9097A60ACDD0FCA60ACDD0F6909FAB30D72C +S12395E5024D0C017B015F97C6013790AE000A895F9765909F85AB30D7024D2066C6013731 +S12396055F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F97C60137905F9097A60ACF +S1239625CDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013790AE000A895F97656C +S1239645909F85AB30D7024D20190C017B015F97C6013790AE000A895F9765909F85AB30DB +S1239665D7024D0C017B015F97A62ED7024DC601385F97A664CDD0D1A3000027510C017B32 +S1239685015F97C6013890AE0064895F97659F85AB30D7024D0C017B015F97C60138905FB3 +S12396A59097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013890AE000AF8 +S12396C5895F9765909F85AB30D7024D2066C601385F97A60ACDD0D1A60ACDD0CBA3000094 +S12396E527390C017B015F97C60138905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024DB1 +S12397050C017B015F97C6013890AE000A895F9765909F85AB30D7024D20190C017B015FC0 +S123972597C6013890AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC66A +S123974501395F97A664CDD0D1A3000027510C017B015F97C6013990AE0064895F97659F99 +S123976585AB30D7024D0C017B015F97C60139905F9097A60ACDD0FCA60ACDD0F6909FAB5F +S123978530D7024D0C017B015F97C6013990AE000A895F9765909F85AB30D7024D2066C6BE +S12397A501395F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F97C60139905F9097A2 +S12397C5A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013990AE000A895F15 +S12397E59765909F85AB30D7024D20190C017B015F97C6013990AE000A895F9765909F8517 +S1239805AB30D7024D0C017B015F97A62ED7024DC6013A5F97A664CDD0D1A3000027510C2F +S1239825017B015F97C6013A90AE0064895F97659F85AB30D7024D0C017B015F97C6013A80 +S1239845905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013A90AE6F +S1239865000A895F9765909F85AB30D7024D2066C6013A5F97A60ACDD0D1A60ACDD0CBA3E6 +S1239885000027390C017B015F97C6013A905F9097A60ACDD0FCA60ACDD0F6909FAB30D75C +S12398A5024D0C017B015F97C6013A90AE000A895F9765909F85AB30D7024D20190C017B2E +S12398C5015F97C6013A90AE000A895F9765909F85AB30D7024D0C017B015F97A622D70286 +S12398E54D0C017B015F97A62CD7024D0C017B015F97A639D7024D0C017B015F97A639D7E2 +S1239905024D0C017B015F97A635D7024D0C017B015F97A634D7024D205F7B02A1392632C2 +S12399257B06A13026097B015F97A630D7024D0C017B015F97A62CD7024D0C017B015F9739 +S1239945A635D7024D0C017B015F97A637D7024D20277B02A11626210C017B015F97A62C68 +S1239965D7024D0C017B015F97A632D7024D0C017B015F97A632D7024D0C017B015F97A699 +S12399850DD7024D0C017B015F97A60AD7024D7B014CB72CB62CCD8E62AE81E989AE015D3F +S12399A5CDCD4E5B02BF30BE302607720C00810025E7721D00813F163F29BE30270A7213D3 +S12399C5008635D300212018721200867B02A11426067219008620047217008135D20021C8 +S12399E55B0381725F505A725F505B35FF505C35AE506435565064C6505FA50827F9818986 +S1239A057B051E01D74000C6505FA50427F98581D640008188ADCCA6376B017B015F971DD3 +S1239A250037D60149887B025F97ADD3840C017B01A14B25E6848188ADA90F017B015F97E2 +S1239A45D6010B887B025F97ADB5840C017B01A10A25E9A60A6B017B015F971D000AD6016C +S1239A6515887B025F97AD97840C017B01A11425E6A6146B017B015F971D0014D6011F8875 +S1239A857B025F97CD9A04840C017B01A11E25E5A61E6B017B015F971D001ED60129887B29 +S1239AA5025F97CD9A04840C017B01A12825E5A6286B017B015F971D0027D60100887B028E +S1239AC55F97CD9A04840C017B01A13225E53B001FAE0032CD9A04843B0022AE0033CD9A64 +S1239AE50484B623A4FF88AE0034CD9A04843B0024AE0035CD9A0484B625A4FF88AE0036E5 +S1239B05CD9A04843B0080AE0037CD9A04843B0000AE0038CD9A04843B0001AE0039CD9A24 +S1239B2504843B0002AE003ACD9A04843B0003AE003BCD9A04843B002DAE003CCD9A048429 +S1239B45A63D6B017B015F971D003DD60149887B025F97CD9A04840C017B01A15125E584CE +S1239B6581890F027B025F97897B045F97CD9A1585D7010B0C027B02A10A25E8A60A6B020C +S1239B857B025F971D000A897B045F97CD9A1585D701150C027B02A11425E5A6146B027B4A +S1239BA5025F971D0014897B045F97CD9A1585D7011F0C027B02A11E25E5A61E6B027B027B +S1239BC55F971D001E897B045F97CD9A1585D701290C027B02A12825E5A6286B027B025FD6 +S1239BE5971D0027897B045F97CD9A1585D701000C027B02A13225E5AE0032CD9A15B71F10 +S1239C05AE0033CD9A156B02AE0034CD9A156B017B025F974F02011B0124015CB7239FB715 +S1239C2522AE0035CD9A156B02AE0036CD9A156B017B025F974F02011B0124015CB7259F84 +S1239C45B724AE0037CD9A15B780AE0038CD9A15B700AE0039CD9A15B701AE003ACD9A15F0 +S1239C65B702AE003BCD9A15B703AE003CCD9A15B72DB600A401B700B601A401B701B602DB +S1239C85A401B702B603A401B703B62DA1EA261FA63D6B027B025F971D003D897B045F9777 +S1239CA5CD9A1585D701490C027B02A15125E585815204AE821D89AE015DCDCD4E5B02BFB0 +S1239CC530BE30725F0136725F0135725F0134725F0133721C0084AE821D89AE015DCD8EF4 +S1239CE5005B02016B03027B03AB076B030F047B035F1B0424015C02D6015DA12E27080C1F +S1239D05047B04A10A25E87B04A101260E7B035F97D6015DA030C70133205C7B04A1022673 +S1239D25207B035F97D6015EA0306B027B035F97D6015D97A60A429FA0E01B02C70133208C +S1239D45367B04A10326307B035F97D6015FA0306B027B035F97D6015E97A60A429FA0E013 +S1239D656B017B035F97D6015D97A664429FA0C01B011B02C701337B031B044C6B030F0446 +S1239D857B035F1B0424015C02D6015DA12E27080C047B04A10A25E87B04A101260E7B03EF +S1239DA55F97D6015DA030C70134205C7B04A10226207B035F97D6015EA0306B027B035FFD +S1239DC597D6015D97A60A429FA0E01B02C7013420367B04A10326307B035F97D6015FA0D5 +S1239DE5306B027B035F97D6015E97A60A429FA0E06B017B035F97D6015D97A664429FA036 +S1239E05C01B011B02C701347B031B044C6B030F047B035F1B0424015C02D6015DA12E2731 +S1239E25080C047B04A10A25E87B04A10126147B035F1B0424015C025AD6015DA030C701CA +S1239E4535207E7B04A102262D7B035F1B0424015C025AD6015DA0306B027B035F1B042447 +S1239E65015C025A5AD6015D97A60A429FA0E01B02C70135204B7B04A10326457B035F1BDF +S1239E850424015C025AD6015DA0306B027B035F1B0424015C025A5AD6015D97A60A429FD8 +S1239EA5A0E06B017B035F1B0424015C021D0003D6015D97A664429FA0C01B011B02C701F7 +S1239EC5357B031B044C6B030F047B035F1B0424015C02D6015DA12227080C047B04A10AFB +S1239EE525E87B04A10126147B035F1B0424015C025AD6015DA030C70136207E7B04A10256 +S1239F05262D7B035F1B0424015C025AD6015DA0306B027B035F1B0424015C025A5AD60191 +S1239F255D97A60A429FA0E01B02C70136204B7B04A10326457B035F1B0424015C025AD650 +S1239F45015DA0306B027B035F1B0424015C025A5AD6015D97A60A429FA0E06B017B035F05 +S1239F651B0424015C021D0003D6015D97A664429FA0C01B011B02C701367B03977B035FD7 +S1239F851B0424015C025CAE821689AE015DCDCD4E5B02BF30BE302603CCA0AE725F014266 +S1239FA5725F0141725F0140725F013F725F013E725F013D721A0084AE821689AE015DCD8B +S1239FC58E005B02016B03027B03AB086B030F047B035F97D6015DA130251E7B035F97D664 +S1239FE5015DA13A24137B045F977B03905F909790D6015DA030D7013D7B035F97D6015D8E +S123A005A161251E7B035F97D6015DA16724137B045F977B03905F909790D6015DA057D770 +S123A025013D7B035F97D6015EA130252F7B035F97D6015EA13A24247B045F977B03905F5D +S123A045909790D6015EA0306B027B04905F909790D6013D4EA4F01B02D7013D7B035F970D +S123A065D6015EA16125317B035F97D6015DA16724267B045F977B03905F909790D6015E82 +S123A085A0616B027B04905F909790D6013D4EA4F01B02AB0AD7013D7B03AB036B030C049D +S123A0A57B04A1062403CC9FD55B048135CC50E08188CD87900F017B015F97D680D2D70289 +S123A0C54D0C017B01A10625EE350D0253350A02543508002CA608CD8EA98481880F017B88 +S123A0E5015F97D680D8D7024D0C017B01A10A25EE350D0257350A0258350C002CA60CCDA5 +S123A1058EA9AE00C8CD8C14848188880F017B015F97D680F3D7024D0C017B01A10A25EECF +S123A1257B02C70257350D0258350A0259350D002CA60DCD8E62AE81BD89AE015DCDCD4EFC +S123A1455B02BF30BE302607720C00810025E7721D00813F163F29BE3027063529002120FD +S123A1650435280021858188880F017B015F97D680FDD7024D0C017B01A10B25EE7B02C7B7 +S123A1850258350D0259350A025A350E002CA60ECD8E62AE81BD89AE015DCDCD4E5B02BFBF +S123A1A530BE302607720C00810025E7721D00813F163F29BE302706353300212004353244 +S123A1C50021858188880F017B015F97D68108D7024D0C017B01A10A25EE7B02C70257351F +S123A1E50D0258350A0259350D002CA60DCD8E62AE81BD89AE015DCDCD4E5B02BF30BE30D4 +S123A2052607720C00810025E7721D00813F163F29BE302706353D00212004353C00218547 +S123A2258188880F017B015F97D68157D7024D0C017B01A10C25EE7B01970C019F5F977BB5 +S123A24502D7024D7B01970C019F5F97A60DD7024D7B01970C019F5F97A60AD7024D7B0138 +S123A265B72CB62CCD8E62AE81BD89AE015DCDCD4E5B02BF30BE302607720C00810025E778 +S123A285721D00813F163F29BE302706353D00212004353C0021858188880F017B015F97EC +S123A2A5D6813FD7024D0C017B01A10C25EE7B02C70259350D025A350A025B350F002CA6A1 +S123A2C50FCD8E62AE81BD89AE015DCDCD4E5B02BF30BE302607720C00810025E7721D003F +S123A2E5813F163F29BE302706358D00212004358C002185818872100086721A00837217E5 +S123A3050086721B0082721700810F017B015F97D68126D7024D0C017B01A10E25EE350DE3 +S123A325025B350A025C3510002CA610CD8E62AE81BD89AE015DCDCD4E5B02BF30BE30266D +S123A34507720C00810025E7721D00813F163F29BE302706354700212004354600210F018D +S123A3657B015F97D680E2D7024D0C017B01A11125EE350D025E350A025F3513002C721B73 +S123A3850082A613CD8EA98481880F017B015F97D68112D7024D0C017B01A10825EE350D50 +S123A3A50255350A0256350A002CA60ACD8E62AE000ACD8896AE821D89AE015DCDCD4E5B06 +S123A3C502BF30BE302619AE821689AE015DCDCD4E5B02BF30BE302607720C00810025D533 +S123A3E5721D00813F163F29BE302709CD9CB635830021200435820021848188880F017BD5 +S123A405015F97D6811AD7024D0C017B01A10C25EE7B02C70259352C025A3522025B3555C2 +S123A425025C3544025D3550025E3522025F352C026035220261A6146B01C601335F97A607 +S123A44564CDD0D1A3000027510C017B015F97C6013390AE0064895F97659F85AB30D7022F +S123A4654D0C017B015F97C60133905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C2F +S123A485017B015F97C6013390AE000A895F9765909F85AB30D7024D2066C601335F97A649 +S123A4A50ACDD0D1A60ACDD0CBA3000027390C017B015F97C60133905F9097A60ACDD0FC28 +S123A4C5A60ACDD0F6909FAB30D7024D0C017B015F97C6013390AE000A895F9765909F85A7 +S123A4E5AB30D7024D20190C017B015F97C6013390AE000A895F9765909F85AB30D7024DBF +S123A5050C017B015F97A62ED7024DC601345F97A664CDD0D1A3000027510C017B015F97B6 +S123A525C6013490AE0064895F97659F85AB30D7024D0C017B015F97C60134905F9097A636 +S123A5450ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013490AE000A895F979B +S123A56565909F85AB30D7024D2066C601345F97A60ACDD0D1A60ACDD0CBA3000027390CFC +S123A585017B015F97C60134905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017BEA +S123A5A5015F97C6013490AE000A895F9765909F85AB30D7024D20190C017B015F97C60140 +S123A5C53490AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601355F89 +S123A5E597A664CDD0D1A3000027510C017B015F97C6013590AE0064895F97659F85AB3028 +S123A605D7024D0C017B015F97C60135905F9097A60ACDD0FCA60ACDD0F6909FAB30D7020B +S123A6254D0C017B015F97C6013590AE000A895F9765909F85AB30D7024D2066C601355F87 +S123A64597A60ACDD0D1A60ACDD0CBA3000027390C017B015F97C60135905F9097A60ACD13 +S123A665D0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013590AE000A895F9765905B +S123A6859F85AB30D7024D20190C017B015F97C6013590AE000A895F9765909F85AB30D746 +S123A6A5024D0C017B015F97A62ED7024DC601365F97A664CDD0D1A3000027510C017B01BA +S123A6C55F97C6013690AE0064895F97659F85AB30D7024D0C017B015F97C60136905F90D8 +S123A6E597A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013690AE000A89B1 +S123A7055F9765909F85AB30D7024D2066C601365F97A60ACDD0D1A60ACDD0CBA3000027A7 +S123A725390C017B015F97C60136905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C7D +S123A745017B015F97C6013690AE000A895F9765909F85AB30D7024D20190C017B015F97E7 +S123A765C6013690AE000A895F9765909F85AB30D7024D0C017B01970C019F5F97A622D791 +S123A785024D7B01970C019F5F97A62CD7024D7B01970C019F5F97A639D7024D7B01970CDB +S123A7A5019F5F97A639D7024D7B01970C019F5F97A635D7024D7B01970C019F5F97A634B0 +S123A7C5D7024D7B01970C019F5F97A62CD7024D7B01970C019F5F97A633D7024D7B0197D6 +S123A7E50C019F5F97A633D7024D7B01970C019F5F97A633D7024D7B01970C019F5F97A6A0 +S123A8052CD7024D7B01970C019F5F97A630D7024D7B01970C019F5F97A60DD7024D7B0122 +S123A825970C019F5F97A60AD7024D7B01B72CB62CCD8E62AE81BD89AE015DCDCD4E5B023C +S123A845BF30BE302607720C00810025E7721D00813F163F294BFFAE00FFA61495CD926701 +S123A86584A60BCD8FE4858188890F027B025F97D6811AD7024D0C027B02A10C25EE7B035F +S123A885C70259352C025A3522025B3554025C3543025D3550025E3522025F352C026035C9 +S123A8A52202610F017B015F97724D014927080C017B01A11425EE7B01A10B2403CCA969D2 +S123A8C5A6156B0220177B025F977B02905F909772A2001590D60149D7024D0C029C7B02E4 +S123A8E55F977B01905F909772A90015BF4990B3492CD37B02970C029F5F97A622D7024D5F +S123A9057B02970C029F5F97A62CD7024D7B02970C029F5F97A639D7024D7B02970C029F02 +S123A9255F97A639D7024D7B02970C029F5F97A635D7024D7B02970C029F5F97A635D702F0 +S123A9454D7B02970C029F5F97A60DD7024D7B02970C029F5F97A60AD7024D7B02B72CB66E +S123A9652CCD8EA95B03815203720000820024217200008100240AB61DA10226040F03203E +S123A9851EB63F5F97A60ACDD0CBD682356B03200EB63F5F97A60ACDD0CBD682356B037BEB +S123A9A503A4F04EA40F6B027B03A40F6B01720200820024067B02AA016B024B047B0397D3 +S123A9C5A61795CD8C2C844B047B0297A61895CD8C2C847200008200242172000081002404 +S123A9E50AB61DA10326040F03201EB63E5F97A60ACDD0D1D682356B03200EB63E5F97A692 +S123AA050ACDD0D1D682356B037B03A4F04EA40F6B027B02AA016B027B03A40F6B014B04B9 +S123AA257B0397A61595CD8C2C844B047B0297A61695CD8C2C847200008200242172000037 +S123AA458100240AB61DA10426040F03201EB63E5F97A60ACDD0CBD682356B03200EB63E2D +S123AA655F97A60ACDD0CBD682356B037B03A4F04EA40F6B027B02AA016B027200008200BB +S123AA85240D720200820024067B02A4FE6B027B03A40F6B014B047B0397A61395CD8C2CFC +S123AAA5844B047B0297A61495CD8C2C843D00273AA6D96B033D14270CB614A10624067B29 +S123AAC503AA046B03B614A102250CB614A10624067B03AA026B03B614A1032512B614A16D +S123AAE506240C7B03AA206B032004A6FF6B037B03A4F04EA40F6B027B03A40F6B017B0290 +S123AB05AA016B024B047B0397A60A95CD8C2C844B047B0297A60995CD8C2C8472000085BB +S123AB2500244F720000810024040F03207A7204008500241BB61C5F975AA602CDD0D1D68A +S123AB45010B5F97A60ACDD0D1D682446B03205872060085002451B61C5F975AA602CDD071 +S123AB65D1D6011F5F97A60ACDD0D1D682446B032036720000820024217200008100240A37 +S123AB85B61DA10126040F03201EB63F5F97A60ACDD0D1D682446B03200EB63F5F97A60AE1 +S123ABA5CDD0D1D682446B037B03A40F6B014B047B0297A61995CD8C2C847B01974B04AEA7 +S123ABC5000FA60B95CD8C2C84BE3AA60A625F97D682356B037B03A4F04EA40F6B027B0315 +S123ABE5A40F6B017B02AA016B024B047B0397A60C95CD8C2C844B047B0297A60D95CD8CE0 +S123AC052C84BE3AA664625F97A60A62D682356B037B03A4F04EA40F6B027B03A40F6B01F7 +S123AC257B02AA016B024B047B0397A60E95CD8C2C844B047B0297A60F95CD8C2C84BE3A12 +S123AC45A66462D682356B037B03A4F04EA40F6B027B03A40F6B017B02AA016B024B047B08 +S123AC650397A61095CD8C2C844B047B0297A61195CD8C2C84A6016B0172080081002406ED +S123AC857B01AA026B013D0327087B01AA086B0120067B01AA046B014B047B0297A61295A2 +S123ACA5CD8C2C84720000820024217200008100240AB61DA10A26040F03201EB6405F9744 +S123ACC5A60ACDD0CBD682356B03200EB6405F97A60ACDD0CBD682356B037B03A4F04EA427 +S123ACE50F6B027B02AA016B027B03A40F6B017202008200240A3D0227067B02A4FE6B0281 +S123AD054B047B0397A60795CD8C2C844B047B0297A60695CD8C2C84720000820024217223 +S123AD2500008100240AB61DA10926040F03201EB6405F97A60ACDD0D1D6823F6B03200E27 +S123AD45B6405F97A60ACDD0D1D6823F6B037B03A40F6B014B047B0297A60595CD8C2C8492 +S123AD65720000820024217200008100240AB61DA10826040F03201EB6415F97A60ACDD040 +S123AD85CBD682356B03200EB6415F97A60ACDD0CBD682356B037B03A4F04EA40F6B027BBB +S123ADA503A40F6B017B02AA016B027200008100240CB61DA10726067B02A40E6B024B041E +S123ADC57B0397A60495CD8C2C844B047B0297A60395CD8C2C8472000082002421720000B8 +S123ADE58100240AB61DA10526040F03201EB6425F97A60ACDD0D1D682356B03200EB6427B +S123AE055F97A60ACDD0D1D682356B037B03A4F04EA40F6B027B03A40F6B017B02AA016B6A +S123AE25024B047B03974F95CD8C2C844B047B0297A60895CD8C2C8472000082002421725C +S123AE4500008100240AB61DA10626040F03201EB6425F97A60ACDD0CBD682356B03200E17 +S123AE65B6425F97A60ACDD0CBD682356B037B03A4F04EA40F6B027B03A40F6B017B02AA84 +S123AE85016B02B641A10A241D7200008100240EB61DA10726087B02A40E6B02200E7B0243 +S123AEA5AA016B0220067B02A40E6B024B047B0397A60295CD8C2C844B047B0297A6019566 +S123AEC5CD8C2C840F01720E0081002503CCAF54720A008300247872060086002413720214 +S123AEE50082002406A60F6B012064A6086B01205E7200008600241172020082002406A66D +S123AF050F6B01204A0F012046720A008200251372020082002406A60F6B012032A6086BEB +S123AF2501202C7206008100251372020082002406A60F6B012018A6076B012012720A004A +S123AF458200240B72060081002404A60F6B014B047B0297A61A95CD8C2C845B0381520DF6 +S123AF650F0D9C7B0D97A604421C849ACDD0A7961C0010CDCE5F2F080C0D7B0DA16A25E2E1 +S123AF857B0DA169250CCE869F1F0BCE869D1F0920797B0DA106240CAE00001F0BAE000031 +S123AFA51F0920677B0D5F97CDD079961C0005CDD0B97B0D97A604421D00041C849ACDD035 +S123AFC5A77B0D97A604421C849ACDCD82961C0001CDD0B97B0D97A604421D00041C849AF1 +S123AFE5CDD0A7961C0010CDCD82961C0001CDCE95AE8699CDCD82AE8695CDCD82961C00C3 +S123B00505CDCD96961C0009CDD0B9961C0009CDD0A75B0D81520CC65400A480A180270312 +S123B025CCB122C654045F97CDD079961C0005CDD0B9AE0100CDD079961C0005CDCD829603 +S123B0451C0001CDD0B9C654045F97CDD079AE8512CDCF21961C0001CDCE95961C0009CDDD +S123B065D0B91E0B891E0B89CDAF635B04961C0009CDD0B9961C0009CDD0A7AE0036CDCF0C +S123B085193C1EB61EA1282403CCB11A3F1EBE3AB3222206BE3AB324242E721C0085AE00A5 +S123B0A536CDD0A7CDCFF6575772BB003A54BF3AAE0000BF38AE0000BF36BE3AB322220ED4 +S123B0C5BE3AB32424182006721D008520D0721E0085BE3AB322230C354800202016721FBD +S123B0E5008520EEBE3AB3242406354C00202004354E0020BE3AB3222206BE3AB324241556 +S123B105720D008507720E00850B2005720F00850472120083721F5400721054015B0C8131 +S123B12589B618A00227414A27134A276E4A2603CCB1CE4A2603CCB206AC00B21FA6096BF6 +S123B1450172000081002404A60F6B014B047B0297A60A95CD8C2C844B047B0297A6099551 +S123B165CD8C2C84AC00B21FB6405F97A60ACDD0CBD682356B027B02A4F04EA40F6B027251 +S123B1850000810024067B02AA016B024B047B0397A60795CD8C2C84CCB21FBE3AA66462B6 +S123B1A5D682356B027B02A4F04EA40F6B02720000810024067B02AA016B024B047B0397F7 +S123B1C5A61095CD8C2C842051B63E5F97A60ACDD0CBD682356B027B02A4F04EA40F6B0226 +S123B1E57B02AA016B02720000810024067B02A4FE6B024B047B0297A61395CD8C2C84202E +S123B205190F0172000081002404A60F6B014B047B0297A61A95CD8C2C84858189CD8DAA6C +S123B2256B02B61811022703CCB8C5B618A1FF2603CCB8C53C1AB61AA1192403CCB8CF3FCB +S123B2451A3F0F3F0E7208008100245172120081CD8DAA6B02CDB125CDA96C7208008100CA +S123B26524067B02A1FF26E472080081002503CDA96C7B02A1FF2608721800817213008113 +S123B285AE0012A68095CD8BF9CD8DAAA1FF26F9AE0010A68095CD8BF9AC00B8CFCD8DAA15 +S123B2A56B02721200817B02A00227444A271D4A27504A2603CCB8494A2603CCB868A0EA11 +S123B2C5271C4A2603CCB813AC00B8A73D032703CCB8A7B60043A401B700AC00B8A73D03D8 +S123B2E52703CCB8A7B60143A401B701AC00B8A73D032703CCB8A7B60243A401B702AC00F4 +S123B305B8A772000085002503CCB511B61C4AA10C24075F9758DE8642FCAC00B503725DFD +S123B3250115271A725F0115725C010BC6010BA1182403CCB8A7725F010BAC00B8A7351ED4 +S123B3450115AC00B8A7725D0129271A725F0129725C011FC6011FA1182403CCB8A7725FDE +S123B365011FAC00B8A7351E0129AC00B8A7725D0116271A725F0116725C010CC6010CA1B3 +S123B385182403CCB8A7725F010CAC00B8A7351E0116AC00B8A7725D012A271A725F012AA5 +S123B3A5725C0120C60120A1182403CCB8A7725F0120AC00B8A7351E012AAC00B8A7725D4E +S123B3C50117271A725F0117725C010DC6010DA1182403CCB8A7725F010DAC00B8A7351E2A +S123B3E50117AC00B8A7725D012B271A725F012B725C0121C60121A1182403CCB8A7725F34 +S123B4050121AC00B8A7351E012BAC00B8A7725D0118271A725F0118725C010EC6010EA106 +S123B425182403CCB8A7725F010EAC00B8A7351E0118AC00B8A7725D012C271A725F012CFC +S123B445725C0122C60122A1182403CCB8A7725F0122AC00B8A7351E012CAC00B8A7725DA5 +S123B4650119271A725F0119725C010FC6010FA1182403CCB8A7725F010FAC00B8A7351E7F +S123B4850119AC00B8A7725D012D271A725F012D725C0123C60123A1182403CCB8A7725F89 +S123B4A50123AC00B8A7351E012DAC00B8A7725D011A271A725F011A725C0110C60110A15A +S123B4C5182403CCB8A7725F0110AC00B8A7351E011AAC00B8A7725D012E271A725F012E54 +S123B4E5725C0124C60124A1182403CCB8A7725F0124AC00B8A7351E012EAC00B8A73F1C71 +S123B50572110085AC00B8A7AC00B8A772000082002503CCB7CEB61D4A273D4A27714A26C4 +S123B52503CCB5D94A2603CCB6104A2603CCB6474A2603CCB67E4A2603CCB6B54A2603CC08 +S123B545B6E54A2603CCB73D4A2603CCB7793F1D72110082AC00B8A7B63FAE000A515F9745 +S123B56565909F6B01B63FAE000A515F97659F6B020C027B02AE0003515F9765909F6B02D9 +S123B5857B0297A60A429F1B01B73FAC00B8A7B63FAE000A515F9765909F6B01B63FAE0049 +S123B5A50A515F97659F6B020C017B02A10226087B01A4036B01200D7B01AE000A515F972E +S123B5C565909F6B017B0297A60A429F1B01B73FAC00B8A7B63EAE000A515F9765909F6BAE +S123B5E501B63EAE000A515F97659F6B020C027B02AE0006515F9765909F6B027B0297A69C +S123B6050A429F1B01B73EAC00B8A7B63EAE000A515F9765909F6B01B63EAE000A515F9734 +S123B625659F6B020C017B01AE000A515F9765909F6B017B0297A60A429F1B01B73EAC00A6 +S123B645B8A7B642AE000A515F9765909F6B01B642AE000A515F97659F6B020C027B02AEEA +S123B665000A515F9765909F6B027B0297A60A429F1B01B742AC00B8A7B642AE000A515F4A +S123B6859765909F6B01B642AE000A515F97659F6B020C017B01AE000A515F9765909F6B1B +S123B6A5017B0297A60A429F1B01B742AC00B8A7B641AE000A515F9765909F6B01B641AE20 +S123B6C5000A515F97659F6B020C027B02A4016B027B0297A60A429F1B01B741AC00B8A73E +S123B6E5B641AE000A515F9765909F6B01B641AE000A515F97659F6B020C017B02A1012692 +S123B7050F7B01AE0003515F9765909F6B01200D7B01AE000A515F9765909F6B010D0226C0 +S123B725080D012604A6016B017B0297A60A429F1B01B741AC00B8A7B640AE000A515F97F4 +S123B74565909F6B01B640AE000A515F97659F6B020C027B02A4036B020D0226080D01266A +S123B76504A6016B017B0297A60A429F1B01B740AC00B8A7B640AE000A515F9765909F6BF2 +S123B78501B640AE000A515F97659F6B020C017B02A10326087B01A4016B01200D7B01AEF9 +S123B7A5000A515F9765909F6B010D0226080D012604A6016B017B0297A60A429F1B01B72F +S123B7C540AC00B8A7AC00B8A7721A008672120081CD8DAA6B02CDB125CDA96C720A0086FB +S123B7E50024067B02A1FF26E4720A008600250AB60343A401B703CDA96C7B02A1FF27033A +S123B805CCB8A7721B008672130081CCB8A772100085721100823C1CB61CA401A101260A03 +S123B825721400857217008520087215008572160085B61CA10D256A3F1C721100857212AF +S123B8450085205E72100082721100853C1DB61DA10B254ECD8A523F1D72110082721400F5 +S123B86581203F721A008672120081CD8DAA6B02CDB125CDA96C720A00860024067B02A188 +S123B885FF26E4720A008600250ACD8790CDA0E1721000837B02A1FF2608721B008672134B +S123B8A50081AE0012A68095CD8BF9CD8DAAA1FF26F9AE0010A68095CD8BF9CD9A3C200AD8 +S123B8C53F1A7B02B7187213008185815230B603A1012703CCB9D00F307B305F97D6011586 +S123B8E56B057B305F97D6010B97A63C42011B0524015C021F0301961C00081F017B305FE6 +S123B905975872FB011603FF7B305F97D601296B057B305F97D6011F97A63C42011B052401 +S123B925015C021F0301961C001C1F017B305F975872FB011603FF0C307B30A104259AB60E +S123B9453F97A63C4201BB3E24015C021F0601725D010127181E06130825121E06131C2444 +S123B9650C1E08131C2406350100002020725D010227181E06130A25121E06131E240C1E91 +S123B9850A131E24063501000020023F00725D010327181E06130C25121E061320240C1E71 +S123B9A50C13202406350100022020725D010427181E06130E25121E061322240C1E0E1346 +S123B9C52224063501000220023F023D002706721450052004721550053D022706721650EE +S123B9E5052004721750055B308152031E0172060084002407720E008100250E7200008367 +S123BA0500241A720E008100241372170084721F0084CDA2FA72110083AC00BBEB720E0044 +S123BA258600240D721F0086A630CDA86DAC00BBEB72060083002503CCBAE9721700837215 +S123BA451800854BFF5FA61895CD9267843501002FAE00534F95CD8EF7350A025C350B027F +S123BA655D3501025EA6126B037B035F977B03905F909772A2001290D60133D7024D0C03A7 +S123BA857B03A11625E3AE001689AE024DCD88315B021F017B01C702637B02C70264351874 +S123BAA5002CA618CD8E62AE81DB89AE015DCDCD4E5B02BF30BE302607720C00810025E7DD +S123BAC5721D00813F163F29BE30270C35A1002172130086AC00BBEB35A00021721200861B +S123BAE5AC00BBEB72040083002503CCBBEB72020083002503CCBBCBB620A14E2603CCBB72 +S123BB05CBB61FA1012703CCBBEBBE221C0006B33A250CBE241D0006B33A2203CCBBEB7223 +S123BB251300834BFF5FA61695CD9267843509002FAE00534F95CD8EF755003A025DB63B9F +S123BB45A4FFC7025EB620A14826123501025C550022025FB623A4FFC702602016B620A15D +S123BB654C2610725F025C550024025FB625A4FFC70260AE001489AE024DCD88315B021F40 +S123BB85017B01C702617B02C702623516002CA616CD8E62AE81DB89AE015DCDCD4E5B0279 +S123BBA5BF30BE3027EE721D00813F163F29BE30270A35C9002172130086202A35C800210C +S123BBC572120086202072080083002419721900833F134B305FA63995CD926784350800A3 +S123BBE52FA653CD909B5B0381520C1E0872060082002503CCC9E4721700823F135FBF049F +S123BC055FBF063F2E0F0A0F0BAE81E389AE01D5CDCD4E5B02BF32BE322603CCC75DAE81CA +S123BC25E389AE01D5CD8E005B02016B0B027B0B5F97D601DAA130260635300017200435DB +S123BC453100177B0BAB076B0B7B0B5F97D601D5A1302403CCBD607B0B5F97D601D5A13AD9 +S123BC652503CCBD607B0B5F97D601D5A030B72E0C0B7B0B5F97D601D5A1302403CCBD60AD +S123BC857B0B5F97D601D5A13A2503CCBD607B0B5F97D601D5A0306B067B0B5F975AD60171 +S123BCA5D597A60A429FA0E01B06B72E0C0B7B0B5F97D601D5A1302403CCBD607B0B5F975C +S123BCC5D601D5A13A2503CCBD607B0B5F97D601D5A0306B067B0B5F975AD601D597A60A91 +S123BCE5429FA0E06B057B0B5F975A5AD601D597A664429FA0C01B051B06B72E0C0B7B0BE9 +S123BD055F97D601D5A13025527B0B5F97D601D5A13A24477B0B5F97D601D5A0306B067BDE +S123BD250B5F975AD601D597A60A429FA0E06B057B0B5F975A5AD601D597A664429FA0C01D +S123BD456B047B0B5F971D0003D601D597A6E8429FA0801B041B051B06B72E7B0B5F97D666 +S123BD6501D5A12C0C0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A25E855 +S123BD857B0CA101260E7B0B5F97D601D5A030C70137205C7B0CA10226207B0B5F97D60107 +S123BDA5D6A0306B067B0B5F97D601D597A60A429FA0E01B06C7013720367B0CA10326309C +S123BDC57B0B5F97D601D7A0306B067B0B5F97D601D697A60A429FA0E06B057B0B5F97D65C +S123BDE501D597A664429FA0C01B051B06C701377B0B1B0C4C6B0B0F0C7B0B5F1B0C240187 +S123BE055C02D601D5A12E27080C0C7B0CA10A25E87B0CA101260E7B0B5F97D601D5A03065 +S123BE25C70138205C7B0CA10226207B0B5F97D601D6A0306B067B0B5F97D601D597A60A34 +S123BE45429FA0E01B06C7013820367B0CA10326307B0B5F97D601D7A0306B067B0B5F9799 +S123BE65D601D697A60A429FA0E06B057B0B5F97D601D597A664429FA0C01B051B06C701E1 +S123BE85387B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A54 +S123BEA525E87B0CA10126147B0B5F1B0C24015C025AD601D5A030C70139207E7B0CA102DB +S123BEC5262D7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD60116 +S123BEE5D597A60A429FA0E01B06C70139204B7B0CA10326457B0B5F1B0C24015C025AD6DA +S123BF0501D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B5F15 +S123BF251B0C24015C021D0003D601D597A664429FA0C01B051B06C701397B0B1B0C4C6BFA +S123BF450B0F0C7B0B5F1B0C24015C02D601D5A12C27080C0C7B0CA10A25E87B0CA10126D5 +S123BF65147B0B5F1B0C24015C025AD601D5A030C7013A207E7B0CA102262D7B0B5F1B0C16 +S123BF8524015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA017 +S123BFA5E01B06C7013A204B7B0CA10326457B0B5F1B0C24015C025AD601D5A0306B067B23 +S123BFC50B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B5F1B0C24015C021D20 +S123BFE50003D601D597A664429FA0C01B051B06C7013A7B0B1B0C4C6B0B0F0C7B0B5F1BDA +S123C0050C24015C02D601D5A13A27080C0C7B0CA10A25E87B0CA10126197B0B5F1B0C24E3 +S123C025015C025AD601D55F971D0030CF013BAC00C1337B0CA10226337B0B5F1B0C2401F0 +S123C0455C025AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D597A60A421D77 +S123C06501E072FB05CF013BAC00C1337B0CA103264C7B0B5F1B0C24015C025AD601D55F28 +S123C085971D00301F057B0B5F1B0C24015C025A5AD601D597A60A421D01E01F037B0B5F12 +S123C0A51B0C24015C021D0003D601D597A664421D12C072FB0372FB05CF013B20707B0C2B +S123C0C5A104266A7B0B5F1B0C24015C025AD601D55F971D00301F057B0B5F1B0C24015C99 +S123C0E5025A5AD601D597A60A421D01E01F037B0B5F1B0C24015C021D0003D601D597A694 +S123C10564421D12C01F017B0B5F1B0C24015C021D0004D601D55F9790AE03E8CDD0581DD4 +S123C125BB8072FB0172FB0372FB05CF013B7B0B977B0B5F1B0C24015C025CAE869389AE5A +S123C14501D5CD8E005B02016B0B027B0B5F97D601D5A13A0C0B7B0B5F97D601D5A1017B70 +S123C1650B5F97D601D6B72FB62EA1192703CCC269B62FA1012703CCC26972180083721428 +S123C18500837B0BCD8ECE4D2603CCC72B7B0BAB0F6B0B7B0B970C0B9F5F97D601D55F970F +S123C1A54F021F087B0B970C0B9F5F97D601D51B096B0924020C081E08A664625F979FB7D9 +S123C1C5427B0B970C0B9F5F97D601D5B7417B0B970C0B9F5F97D601D5B7407B0B970C0B07 +S123C1E59F5F97D601D5B73F7B0B970C0B9F5F97D601D5B73E7B0B970C0B9F5F97D601D520 +S123C205B73D7B0B5F97D601D5B73CCD8A527B0B5F97D601D66B077B0B5F97D601D76B0A23 +S123C2257B0B5F975C89AE01D5CD88315B021F087B0A5F974F02011B0724015C0213082653 +S123C245037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C1479 +S123C265AC00C72BB62EA1122703CCC2F1B62FA10226797B0BCD8ECE4D2603CCC72B7B0B47 +S123C285AB0F6B0B7B0B5F97724D01D526043F032004350100037B0B5F97D601D66B077B75 +S123C2A50B5F97D601D76B0A7B0B5F975C89AE01D5CD88315B021F087B0A5F974F02011B7A +S123C2C50724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17868 +S123C2E525F0AE000ACD8C14AC00C72BB62EA1132703CCC3C4B62FA1032703CCC3C47B0BBC +S123C305CD8ECE4D2603CCC72B7B0BAB0F6B0B3D032703CCC3A87B0B5F97D601D5A1012670 +S123C3251F7B0B5F97724D01D626043F0020397B0B5F97D601D6A101262E35010000202864 +S123C3457B0B5F97D601D5A102261D7B0B5F97724D01D626043F02200F7B0B5F97D601D6F1 +S123C365A1012604350100027B0B5F97D601D76B077B0B5F97D601D86B0A7B0B5F975C5C40 +S123C38589AE01D5CD88315B021F087B0A5F974F02011B0724015C02130826037B0A97A605 +S123C3A5016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C14AC00C72BB689 +S123C3C52EA1162703CCC48DB62FA1042703CCC48D7B0BCD8ECE4D2603CCC72B7B0BAB0F34 +S123C3E56B0B7B0B5F97D601D54A6B0C7B0C5F977B0B905F909790D601D6D7010B7B0C5FB6 +S123C405977B0B905F909790D601D7D701157B0C5F977B0B905F909790D601D8D7011F7BEB +S123C4250C5F977B0B905F909790D601D9D701297B0B5F97D601DA6B077B0B5F97D601DB47 +S123C4456B0A7B0B5F971C000589AE01D5CD88315B021F087B0A5F974F02011B0724015C3A +S123C46502130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE008B +S123C4850ACD8C14AC00C72BB62EA1162703CCC567B62FA1052703CCC5677B0BCD8ECE4D18 +S123C4A52603CCC72B7B0BAB0F6B0B7B0B5F97D601D5A102240B7B0B5F97D601D5B71F20BE +S123C4C5497B0B5F97D601D5A102263E7B0B5F97D601D76B067B0B5F97D601D65F974F02D0 +S123C4E5011B0624015CB7259FB7247B0B5F97D601D96B067B0B5F97D601D85F974F02012A +S123C5051B0624015CB7239FB7227B0B5F97D601DA6B077B0B5F97D601DB6B0A7B0B5F9760 +S123C5251C000589AE01D5CD88315B021F087B0A5F974F02011B0724015C02130826037B89 +S123C5450A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C14AC0048 +S123C565C72BB62EA1112669B62FA10626637B0BCD8ECE4D273F7B0BAB0F6B0B7B0B5F97F2 +S123C585D601D56B077B0B5F97D601D66B0A7B0B5F9789AE01D5CD88315B021F087B0A5F5F +S123C5A5974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C2D +S123C5C50C7B0CA17825F0AE000ACD8C14AC00C72BB62EA1252703CCC6A4B62FA10727030D +S123C5E5CCC6A47B0BCD8ECE4D2603CCC72B7B0BAB0F6B0B0F0C7B0C5F97897B0D5F1B0E32 +S123C60524015C02D601D585D701490C0C7B0CA11425E37B0B5F1B0C24015C02D601D56B3A +S123C625077B0B5F1B0C24015C02D601D66B0A7B0B5F1B0C24015C028901AE01D5CD883116 +S123C6455B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0CBD +S123C6655F97724F01D50C0C7B0CA17825F035EA002D4BFF5FA61495CD926784A607CD8FC0 +S123C685E472060081002405A630CDA29DA630CDA86D72150083AE000ACD8C14CCC72BB64E +S123C6A52EA11326F7B62FA10A267B7B0BCD8ECE4D27737B0BAB0F6B0B7B0B5F97D601D5CD +S123C6C56B0C7B0C5F977B0B905F909790D601D6D701007B0B5F97D601D76B077B0B5F9794 +S123C6E5D601D86B0A7B0B5F975C5C89AE01D5CD88315B021F087B0A5F974F02011B0724AF +S123C705015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F039 +S123C725AE000ACD8C140D0A2727B62FA1012721B62FA107271BB62FA1082715B62FA1096F +S123C745270F4BFF5FA63995CD926784A652CD909BCD9A3CAC00C9E4AE81EC89AE01D5CD52 +S123C765CD4E5B02BF32BE3227330F0C7B0C5F97724F01D50C0C7B0CA17825F0721E0081F0 +S123C785A631CDA10FA631CDA1C9A631CDA2263F12721E0084351F0021AC00C9E4AE817EE2 +S123C7A589AE01D5CDCD4E5B02BF32BE3227300F0C7B0C5F97724F01D50C0C7B0CA17825DA +S123C7C5F072160086721B008272170081721A00833F12721F008435DC0021AC00C9E4AE8B +S123C7E5816389AE01D5CDCD4E5B02BF32BE3227260F0C7B0C5F97724F01D50C0C7B0CA15D +S123C8057825F0721F008472170084721A008372170086AC00C9E4AE817289AE01D5CDCDA1 +S123C8254E5B02BF32BE3227350F0C7B0C5F97724F01D50C0C7B0CA17825F072170086728A +S123C8451A008272110086CDA38E3F16A631CDA400A630CDA86D35970021AC00C9E4AE8162 +S123C865F289AE01D5CDCD4E5B02BF32BE32272C0F0C7B0C5F97724F01D50C0C7B0CA17850 +S123C88525F07216008172160083AE00C8CD8C1435A10021721D0086AC00C9E4AE81FC896A +S123C8A5AE01D5CDCD4E5B02BF32BE32271A0F0C7B0C5F97724F01D50C0C7B0CA17825F088 +S123C8C572180086AC00C9E4AE81DB89AE01D5CDCD4E5B02BF32BE32271A0F0C7B0C5F97D0 +S123C8E5724F01D50C0C7B0CA17825F072160081AC00C9E4AE820689AE01D5CDCD4E5B02E1 +S123C905BF32BE322612AE820D89AE01D5CDCD4E5B02BF32BE3227300F0C7B0C5F97724FD5 +S123C92501D50C0C7B0CA17825F0721700817213008672150083AE00C8CD8C1435A0002153 +S123C945721C0086AC00C9E4AE81C589AE01D5CDCD4E5B02BF32BE3227170F0C7B0C5F9764 +S123C965724F01D50C0C7B0CA17825F0CDA0B1206EAE822389AE01D5CDCD4E5B02BF32BE4A +S123C9853227170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0B12045AE81C089AE0178 +S123C9A5D5CDCD4E5B02BF32BE3227170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0CC +S123C9C5B1201C720200860024150F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0B15BB9 +S123C9E50C81725F5244725F5245725F5246725F524335065242352C5245350E5007353E2F +S123CA055008725F5009350E50053506500C35F0500D725F500E3506500A35BC501135444B +S123CA255012C65013977214500F35205016725F5017725F5018725F5014721250C535B403 +S123CA4550C4725F5402725F5401725F54003501540735015401AE0064CD887F721054016E +S123CA65725F5341350153433507534535FF534635FF534435015340350153419ACD8790FF +S123CA85CD8C913F423F413F403F3F3F3E3F3C5FBF3ACD9B66CDA0B63530001772180081DD +S123CAA53F16CDBBEECDB221CD898CCDB01ACDA96CCDB8D1CDB9EF20E7B629A17825023F77 +S123CAC529B62AA17825023F2A720C00820025043D162615B629973C299F5F97C65241D744 +S123CAE501D53F277218008280B62A973C2A9F5F97C65241D7015D20EF720C008200241C16 +S123CB05B62BB12C220E3C2BB62B5F97D6024DC752412008721D0082721F5245803B004AFB +S123CB25BE48893B004DBE4B89725F53423C15B615A1322404AC00CD173F157206008100E9 +S123CB452519720A0082002412BE081C0001BF08A3019025065FBF08CDA0B1720600810014 +S123CB6524035FBF08901000813C14B614A10525063F14901200823C10B610A12825117259 +S123CB850C008100240A3F10721D008172140086720C00810025023F107208008100241CB6 +S123CBA5720200810024153C0FB60FA10F250D72080081002404721900813F0F72080081D4 +S123CBC50025023F0F720A008600241C720200810024153C43B643A10A250D720A00860010 +S123CBE52404721B00863F43720A00860025023F43720800810025303C0EB60EA132252846 +S123CC05721800813F0E72000082002406721100823F1D7200008500240E721100853F1CA8 +S123CC257215008572170085720800810024023F0E7206008100241C720A00820024157281 +S123CC4504008300240E3C13B613A14525063F1372180083720400830025023F137208009E +S123CC65830024257206008100241E720A00820024175FBF04BE061C0001BF06A301912549 +S123CC85325FBF06CDA0B1202A720800830025237206008100241C720A00820024155FBFFA +S123CCA506BE041C0001BF04A3019125065FBF04CDA0B1720C00860024123C0DB60DA15BE1 +S123CCC5250E3C353F0D721E008620043F0D3F357206008600240D3C0CB60CA15B25053FC3 +S123CCE50CCDA0B1720200810024023F0C720E0084002415720E008100240E3C12B612A174 +S123CD052325063F1272160084720E00840025023F12720800820024173C27B627A10B259B +S123CD250F3F2772190082721600824529283F2985BF4B32004D85BF4832004A80BF485A69 +S123CD455C7D26FC72B000488189520420261F011E091F03F626041E05201F1E01F61E039E +S123CD65F127071E055C1F05200A1E015C1F011E035C20DE1E05F626D55F5B0681E60388E2 +S123CD85E60288E60188F626040D01270EA880200AE60388E60288E60188F6881A02270BDA +S123CDA5BE44260A85BF4485BF46815B048190893F495839499EB7481E035839499E5FB005 +S123CDC548271F972228A1E9251E409716057B04AA804490565A26FA6B041705721E00456F +S123CDE5202C721E00452020206B908520B6A11824F8BB48B74890BE46B645AA8044905699 +S123CE055A26FAB74590BF467B04AA806B04BE46B64534492204241E261C72F0051204241F +S123CE25073349435026014C4D2B1E26165D2613BF46BF44201F72FB051904240C46563C1A +S123CE454820063A4858492AFABF464897B64895344956BF4490855B0481B644F4B749B62E +S123CE6544F82A05F82B1B201DB644F0261AB645E101260CB646E1022606B647E103270E69 +S123CE852404A6FF2002A601720F004901409C81B644BA452711E60388E60288E60188F654 +S123CEA5881A0226035B048190897B03720F004404A8806B03AA80080449B7480604B64543 +S123CEC5721E004548B64449B048AB7FB7443518004907030803B645BE46905839480703AF +S123CEE5250A1104250D22041305250772F0051204905C584909033A4926DFB6482B0590ED +S123CF0558493A44480803364446B74590BF4690855B048189CDCD9685CCD0B9B644BA45C4 +S123CF252712E60388E60288FE891E012607BF44BF465B04817B01720F004404A8806B013A +S123CF45AA800802490602A07EB748B645721E004548B64449BB48B7447B02BE4442BF4805 +S123CF657B03BE44423F4AAD5E7B04BE44429FAD647B02BE4542AD4F7B03BE4542AD537BE3 +S123CF8504BE45423F46AD5C7B02BE4642AD437B03BE4642AD4E7B04BE46429EBB462406B1 +S123CFA53C452602AD46BE49B6482B06384559493A444808013644463845B745BF46240442 +S123CFC5721000475B048172BB0049BF4924023C48819FBB45B7459EB94AB74A24F3BE489C +S123CFE55CBF488172BB0045BF4524E53C4A27EE81CDCFFCBE468189BE4427554F5802A03C +S123D0057F2A075FBF44BF4620479089A1372AF3565E90BE46A01727272A1440A1102B07CD +S123D02590935FA01027195490564A26FA2011A1102B0793905FA01027069058594A26FAB3 +S123D0453D442A0653905026015C90BF46BF449085858188BF49909F5E42BF48BE49909E12 +S123D0654272BB0048BF48BE49909F423F4A72BB004984813F47BF4526033F4481454544E8 +S123D0852A0350BF45A68E5D2B0E3D452606A686BE462B044A582AFC5838444656BF45B73C +S123D0A5448188F6B744E601B745E602B746E603B747848188B644F7B645E701B646E70234 +S123D0C5B647E70384813580004820023F485D2A095072100048721200484D2A05409012E1 +S123D0E500486237482A065F9724055081270150813580004B20023F4B905D2A0A905072C6 +S123D10510004B7212004B4D2A05409012004B9062374B2A09905F909724079050812702C1 +S107D1259050818021 +S12386AE000000000000000000000000000000000000000000000030000000000000000078 +S11D86CE4E00001E000500000000000000000000000000000000000000001D +S12386E800000000000000000000000000000000000000000000000000000000000000006E +S123870800000000000000000000000000000000000000000000000000000026E200000045 +S12087280000000000000000007777772E6966697368372E636F6D000000000000E6 +S1238000820087458200D1288200D1288200D1288200D1288200D1288200D1288200D128B1 +S12380208200D1288200D1288200D1288200D1288200D1288200D1288200D1288200D12864 +S12380408200D1288200D1288200D1288200D1288200D1288200D1288200CAFE8200CABEE6 +S12380608200D1288200CB228200D1288200D1288200D1288200D1288200D1288200D12830 +S11086A186AE62000086E864010087450093 +S903FFFFFE diff --git a/QR/设备相关/烧录/张工/3-control.s19 b/QR/设备相关/烧录/张工/3-control.s19 new file mode 100644 index 0000000..db922f7 --- /dev/null +++ b/QR/设备相关/烧录/张工/3-control.s19 @@ -0,0 +1,693 @@ +S016000044656275675C332D636F6E74726F6C2E736D38FF +S1238080312C22554450222C223139322E3136382E302E313034222C333333302C2254437E +S12380A050222C223132302E35352E3139302E3536222C39393535312C22554450222C226E +S12380C03132302E35352E3139302E3536222C33333341542B52535441542B524553544F23 +S12380E0524541542B43575354415254534D4152543D3341542B43574D4F44453D41542B8A +S12381004349504D4F44453D41542B4349504D55583D41542B434946535241542B43495077 +S123812053544152543D41542B435753544F50534D41525441542B43495053454E443D4105 +S1238140542B434950434C4F53453D41542B43495053544154555341542B43495044494E16 +S1238160464F3D5749464920434F4E4E4543544544005749464920474F54204950005749B5 +S1238180464920444953434F4E4E45435400536D61727420676574207769666920696E66AF +S12381A06F00736D617274636F6E66696720636F6E6E65637465642077696669004F4B0073 +S12381C04641494C004552524F5200414C524541445920434F4E4E4543540053454E44207F +S12381E04F4B002B4950442C003E2000726561647900302C434F4E4E45435400312C434FE5 +S12382004E4E45435400434C4F53454400444E53204661696C005354414D41430053544106 +S12382204950006C696E6B206973206E6F742076616C696400EB60C7E56CADAFE0EFED00DB +S1238240090E0D000A0C0009070B0000C0C1C1810140C30103C00280C241C60106C00780A1 +S1238260C7410500C5C1C4810440CC010CC00D80CD410F00CFC1CE810E400A00CAC1CB818D +S12382800B40C90109C00880C841D80118C01980D9411B00DBC1DA811A401E00DEC1DF817E +S12382A01F40DD011DC01C80DC411400D4C1D5811540D70117C01680D641D20112C01380FF +S12382C0D3411100D1C1D0811040F00130C03180F1413300F3C1F28132403600F6C1F7814D +S12382E03740F50135C03480F4413C00FCC1FD813D40FF013FC03E80FE41FA013AC03B808F +S1238300FB413900F9C1F88138402800E8C1E9812940EB012BC02A80EA41EE012EC02F805D +S1238320EF412D00EDC1EC812C40E40124C02580E5412700E7C1E68126402200E2C1E381FC +S12383402340E10121C02080E041A00160C06180A1416300A3C1A28162406600A6C1A7812D +S12383606740A50165C06480A4416C00ACC1AD816D40AF016FC06E80AE41AA016AC06B808E +S1238380AB416900A9C1A88168407800B8C1B9817940BB017BC07A80BA41BE017EC07F807D +S12383A0BF417D00BDC1BC817C40B40174C07580B5417700B7C1B68176407200B2C1B381FC +S12383C07340B10171C07080B041500090C191815140930153C052809241960156C057800E +S12383E09741550095C1948154409C015CC05D809D415F009FC19E815E405A009AC19B818C +S12384005B40990159C058809841880148C0498089414B008BC18A814A404E008EC18F815C +S12384204F408D014DC04C808C41440084C185814540870147C046808641820142C04380FD +S12384408341410081C18081404041542B4349504653520D2B4349504653523A535441495F +S1238460502C223139322E3136382E302E313038220D2B4349504653523A5354414D4143B8 +S12384802C2231383A66653A33343A64623A30643A3333220D0A4F4BADCDADD0ADE2ADE522 +S12384A0ADD3ADD6ADE8ADEBADD9ADDCADEEADF14209DE354203C8B441FC106241F12D0E05 +S12384C041E6AE1441DCD91641D36A7E41CA76C841C1E35341B9BE7641B2126E41AAA5E312 +S12384E041A39999419CF7CE41968D4F419024DD418A9374418520C4417F7CED4175645A22 +S1238500416C00004169D70A4159E35341514BC641494BC64141C28F413A5A1C41335C2855 +S1238520412C937441262D0E41200000411A189341146E97410EFDF34109CED94104D4FD1A +S123854041000C4940F6F9DB40EE3D7040E5D2F140DDBA5E40D6041840CE9FBE40C774BCAB +S123856040C09BA540BA041840B3B64540ADA9FB40A7CED940A2353F409CD4FD4097AE14F8 +S123858040929FBE408DEB854089374B4084D4FD40808312407851EB4070E5604069374B22 +S12385A04061BA5E405A9FBE4053B645404D1EB84046C8B44040B439403AD0E540351EB82D +S12385C0402F9DB2402A5E3540254FDF40204189401B851E4016F9DB40127EF9400E560486 +S12385E0400A1CAC400624DD40024DD23FFD2F1A3FF5E3533FEEF9DB3FE831263FE1CAC0A5 +S12386003FDB645A3FD560413FCF7CED3FC9BA5E3FC439583FBEF9DB3FB9BA5E3FB4BC6AA4 +S12386203FAFDF3B3FAB43953FA6A7EF3FA24DD23F9E147A3F99FBE73F95E3533F920C499C +S12386403F8E56043F8A9FBE3F872B023F83B6453F80624D3F7A4A8CB631B659B681B6A990 +S1238660B6D1B6F9B721B749B771B799B7C1B7E90D0A2B4950442C302C31393139322E314C +S123868039322E3139322E3139322C393939393A000718FE34DB0D335CCF7F076521130BCC +S11A86A016212C37424D5843523A003F80000040A0000042C7CCCC2F +S123875BAE07FF9490CE86B7AE86B9F62720A5602717BF48EE03BF4BBE48EE0190F6F75CDA +S123877B905C90B34B26F5BE481C000520DDAE003A2002F75CA3004E26F9AE015D2002F78F +S123879B5CA302C526F9CDCD7820FE880F0172080081002406351000812004351000813FF9 +S12387BB823F833F843F853F86721F0081721B0082721700867217008172130081721D003B +S12387DB86721F00867217008272190082721B00830F017B015F97724F015D7B015F977230 +S12387FB4F01D50C017B01A17825E83F353F143F213F1A3F1B3F0C5FBF083F153F143F1045 +S123881B3F133F0F3F0E5FBF0A3F113F123F275FBF045FBF063F283F163F293F2A3F2C3FA0 +S123883B2B5FBF30BE30BF328481895203AEFFFF1F02202F7B03A4FF6B011E024F011604AB +S123885B72A90001170472A2000190F61801A4FF905F909790580190D8824B0190D8824A02 +S123887B011F029C1E081D00011F081C0001A300002CC11E025B058189895F1F0120071E2C +S123889B011C00011F011E01130325F35B0481898920115F1F011E011C00011F011E01A36E +S12388BB02CB25F21E031D00011F031C0001A3000026E05B04818988721B50147B0348AA3C +S12388DB806B037214500A0F01721B50147B03A501260220067212500A20047213500A72E5 +S12388FB1A501404030C017B01A10825DC0F01721B50147B02A501260220067212500A2031 +S123891B047213500A721A501404020C017B01A10825DC7215500A5B038188890F01721BBE +S123893B50147212500A7B0348AA816B037214500A0F027B03A501260220067212500A2016 +S123895B047213500A721A50140403721B50140C027B02A10825DC7212500A0F02721B502C +S123897B1404017202500B0024067B01AA806B01721A50140C027B02A10825E17215500AA9 +S123899B7B015B0381890F0272000082002403CC8A64A606AD846B027B02A40F6B017B028B +S12389BB4EA40F97A60A429F1B01B742A605CD89356B027B02A407B73CA604CD89356B02FA +S12389DB7B02A40F6B017B02A4104EA40F97A60A429F1B01B741A603CD89356B027B02A4AC +S12389FB0F6B017B02A4304EA40F97A60A429F1B01B740A602CD89356B027B02A40F6B0114 +S1238A1B7B02A4304EA40F97A60A429F1B01B73FA601CD89356B027B02A40F6B017B02A44F +S1238A3B704EA40F97A60A429F1B01B73E4FCD89356B027B02A40F6B017B02A4704EA40FF8 +S1238A5B97A60A429F1B01B73D85818972150081B642A164250435630042B641A10D25045A +S1238A7B350C0041B640A1202504351F0040B63FA11825043517003FB63EA13C2504353B15 +S1238A9B003EAE00074F95CD88D1B642AE000A515F9765909F6B01B642AE000A515F976567 +S1238ABB9F97A610429F1A016B02AE00067B0295CD88D1B63CA4076B02AE00057B0295CDBA +S1238ADB88D1B641AE000A515F9765909F6B01B641AE000A515F97659F97A610429F1A01E5 +S1238AFB6B02AE00047B0295CD88D1B640AE000A515F9765909F6B01B640AE000A515F9716 +S1238B1B659F97A610429F1A016B02AE00037B0295CD88D1B63FAE000A515F9765909F6BA0 +S1238B3B01B63FAE000A515F97659F97A610429F1A016B02AE00027B0295CD88D1B63EAEDD +S1238B5B000A515F9765909F6B01B63EAE000A515F97659F97A610429F1A016B02AE000149 +S1238B7B7B0295CD88D1B63DAE000A515F9765909F6B01B63DAE000A515F97659F97A61069 +S1238B9B429F1A016B025F7B0295CD88D1AE0007A68095CD88D1858189880F01201E721930 +S1238BBB500F7B02A580260220067216500F20047217500F7218500F08020C017B011103C4 +S1238BDB25DC5B038189880F01201E7219500F7B02A501260220067216500F2004721750F8 +S1238BFB0F7218500F04020C017B01110325DC5B038189721F500FAE00047B0195AD99AEAB +S1238C1B00087B0295AD91721E500F858189AE0012A68095ADDC1E01CD88AAAE0010A68059 +S1238C3B95ADCF858189721F500FAE0003A6A095CD8BB308010801AE00067B0195CD8BB30C +S1238C5BA60810055F977B025D2704485A26FC6B027B05977B0295CD8BB3721E500F8581DD +S1238C7B89721F500FAE0003A6A095CD8BB308010801AE00067B0195CD8BB37B05977B024F +S1238C9B95CD8BE0721E500F8581887216500AAE0002A68095CD8C0DAE0006A68095CD8CF0 +S1238CBB0DAE0030A68095CD8C0DAE0052A68095CD8C0DAE0080A68095CD8C0D0F014B04BA +S1238CDB5F7B0295CD8C40840C017B01A12025EEAE01F4CD88930F014B04AE000F7B0295D1 +S1238CFBCD8C40840C017B01A12025EC84818989A60A625F97D682356B027B02A4F04EA4C1 +S1238D1B0F6B017B02A40F6B027B01AA016B014B047B0297A60E95CD8C40844B047B03975C +S1238D3BA60F95CD8C40841E03A664625F97A60A62D682356B027B02A4F04EA40F6B017B25 +S1238D5B02A40F6B027B01AA016B014B047B0297A61095CD8C40844B047B0397A61195CDF7 +S1238D7B8C40841E03A66462D682356B027B02A4F04EA40F6B017B02A40F6B027B01AA01BB +S1238D9B6B014B047B0297A61295CD8C40844B047B0397A61395CD8C4084AE00FACD88AA05 +S1238DBB5B0481880F01720850060024067B01AA016B01720A50060024067B01AA026B01FF +S1238DDB7208501A0024067B01AA046B01720450100024067B01AA086B017B01A10F2405E1 +S1238DFB7B015B0181A6FF5B018188C65240A58027F97B01C7524184818952081E0DCDD2CC +S1238E1B3C1F011E09CDD23C1F035F1F05203F5F1F0720071E071C00011F079C1E071301E8 +S1238E3B2E1B9C1E0572FB0713032E111E0772FB0DF61E0572FB0772FB09F127D71E071379 +S1238E5B0126041E0520111E051C00011F059C1E0513032FBAAEFFFF5B0A818888721C0022 +S1238E7B82350100163F2A0F017B015F97724F015D0C017B01A17825F00F012013C65240A9 +S1238E9BA58027F97B015F97D6024DC752410C017B01110225E7721D0082721C00813F1066 +S1238EBB858188883F163F290F012013C65240A58027F97B015F97D6024DC752410C017B67 +S1238EDB01110225E7858188880F017B015F97897B045F1B0324015C02D601D785D7014365 +S1238EFB0C017B01A10625E3A6016B01A601858189889FA153260E7B02970C029F5F97725A +S1238F1B4F024D200D7B02970C029F5F97A601D7024D7B02970C029F5F97B62FD7024D0F12 +S1238F3B017B025F1B0124015C027B01905F909790D6013DD7024D0C017B01A10625E27B88 +S1238F5B021B016B020F017B025F1B0124015C027B01905F909790D60143D7024D0C017BF2 +S1238F7B01A10625E27B021B016B02B62FA101260B7B025F97A618D7024D205EB62FA10604 +S1238F9B260B7B025F97A647D7024D204DB62FA107260B7B025F97A614D7024D203CB62F3C +S1238FBBA108260B7B025F97A647D7024D202BB62FA109260B7B025F97A616D7024D201A98 +S1238FDBB62FA10B260B7B025F97A614D7024D20097B025F97A647D7024D5B0381885203F2 +S1238FFB1E01A10B2707A1072703CC90AC7B04B72F7B04A10B2608AE00534F95CD8F0B7BFA +S123901B04A1072608AE00524F95CD8F0B7B03973501025C3503025D3506025EAE001289E8 +S123903BAE024DCD88455B021F017B01C7025F7B02C702607B04A1FF26130F037B035F97D5 +S123905BA6FFD7024D0C037B03A11425EF3514002CA614CD8E76AE81DB89AE015DCDD2484A +S123907B5B02BF30BE302607720C00810025E7721D00813F163F29BE30270A721300863533 +S123909B0B0021200C7212008672190086350A00215B048152041E01974F95CD8F0BA60FF2 +S12390BB6B043D03270F7B04970C049F5F97A601D7024D200C7B04970C049F5F97724F027A +S12390DB4D7B04970C049F5F97A601D7024D3D00270F7B04970C049F5F97A601D7024D2081 +S12390FB0C7B04970C049F5F97724F024D7B04970C049F5F97A602D7024D3D01270F7B04FE +S123911B970C049F5F97A601D7024D200C7B04970C049F5F97724F024D7B04970C049F5F0C +S123913B97A603D7024D3D02270F7B04970C049F5F97A601D7024D200C7B04970C049F5F5D +S123915B97724F024D0F037B04970C049F5F977B034CD7024D7B04970C049F5F977B0390C3 +S123917B5F909790D60101D7024D7B04970C049F5F977B03905F909790D6010BD7024D7B5A +S123919B04970C049F5F977B03905F909790D60115D7024D7B04970C049F5F977B03905F12 +S12391BB909790D6011FD7024D7B04970C049F5F977B03905F909790D60129D7024D0C03A9 +S12391DB7B03A10625817B04970C049F5F97B63AD7024D7B04970C049F5F97B63BA4FFD7AE +S12391FB024D7B04970C049F5F97724F024D7B04970C049F5F97724F024D7B04970C049FA6 +S123921B5F97724F024D7B04970C049F5F97724F024D7B04970C049F5F97B61FD7024D7B2D +S123923B04970C049F5F97B624D7024D7B04970C049F5F97B625A4FFD7024D7B04970C044A +S123925B9F5F97B622D7024D7B04970C049F5F97B623A4FFD7024D7B045F9789AE024DCD37 +S123927B88455B021F017B04970C049F5F977B01D7024D7B04970C049F5F977B02D7024DCA +S123929B7B04B72CB62CCD8EBD5B048189880F017B015F97D68134D7024D0C017B01A10BFA +S12392BB25EE7B015F97B617D7024D7B02A118262E7B015F97A630D7024D0C017B015F97A0 +S12392DBA62CD7024D0C017B015F97A632D7024D0C017B015F97A634D7024DAC0099BE7BFD +S12392FB02A1142703CC995F7B015F97A631D7024D0C017B015F97A62CD7024D0C017B013B +S123931B5F97A632D7024D0C017B015F97A630D7024D0C017B015F97A62CD7024D0C017BC0 +S123933B015F97A622D7024D7B03A1FF2703CC95E2C601335F97A664CDD5CBA3000027511C +S123935B0C017B015F97C6013390AE0064895F97659F85AB30D7024D0C017B015F97C60184 +S123937B33905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6013390C2 +S123939BAE000A895F9765909F85AB30D7024D2066C601335F97A60ACDD5CBA60ACDD5C5B3 +S12393BBA3000027390C017B015F97C60133905F9097A60ACDD5F6A60ACDD5F0909FAB3068 +S12393DBD7024D0C017B015F97C6013390AE000A895F9765909F85AB30D7024D20190C01A8 +S12393FB7B015F97C6013390AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7D7 +S123941B024DC601345F97A664CDD5CBA3000027510C017B015F97C6013490AE0064895F57 +S123943B97659F85AB30D7024D0C017B015F97C60134905F9097A60ACDD5F6A60ACDD5F0D2 +S123945B909FAB30D7024D0C017B015F97C6013490AE000A895F9765909F85AB30D7024D62 +S123947B2066C601345F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F97C601349015 +S123949B5F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6013490AE00B5 +S12394BB0A895F9765909F85AB30D7024D20190C017B015F97C6013490AE000A895F97650B +S12394DB909F85AB30D7024D0C017B015F97A62ED7024DC601355F97A664CDD5CBA3000033 +S12394FB274F0C017B015F97C6013590AE0064895F97659F85AB30D7024D0C017B015F9732 +S123951BC60135905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6011A +S123953B3590AE000A895F9765909F85AB30D7024DC601355F97A60ACDD5CBA60ACDD5C5D0 +S123955BA3000027390C017B015F97C60135905F9097A60ACDD5F6A60ACDD5F0909FAB30C4 +S123957BD7024D0C017B015F97C6013590AE000A895F9765909F85AB30D7024D20190C0104 +S123959B7B015F97C6013590AE000A895F9765909F85AB30D7024D0C017B015F97A62ED733 +S12395BB024D0C017B015F97A632D7024D0C017B015F97A635D7024D0C017B015F97A635E6 +S12395DBD7024DAC00991BC601375F97A664CDD5CBA3000027510C017B015F97C601379053 +S12395FBAE0064895F97659F85AB30D7024D0C017B015F97C60137905F9097A60ACDD5F656 +S123961BA60ACDD5F0909FAB30D7024D0C017B015F97C6013790AE000A895F9765909F855C +S123963BAB30D7024D2066C601375F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F71 +S123965B97C60137905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C641 +S123967B013790AE000A895F9765909F85AB30D7024D20190C017B015F97C6013790AE00BE +S123969B0A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601385F97A664CDC3 +S12396BBD5CBA3000027510C017B015F97C6013890AE0064895F97659F85AB30D7024D0C9B +S12396DB017B015F97C60138905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017BA1 +S12396FB015F97C6013890AE000A895F9765909F85AB30D7024D2066C601385F97A60ACD7C +S123971BD5CBA60ACDD5C5A3000027390C017B015F97C60138905F9097A60ACDD5F6A60AE4 +S123973BCDD5F0909FAB30D7024D0C017B015F97C6013890AE000A895F9765909F85AB300F +S123975BD7024D20190C017B015F97C6013890AE000A895F9765909F85AB30D7024D0C011F +S123977B7B015F97A62ED7024DC601395F97A664CDD5CBA3000027510C017B015F97C60190 +S123979B3990AE0064895F97659F85AB30D7024D0C017B015F97C60139905F9097A60ACDB4 +S12397BBD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6013990AE000A895F97659012 +S12397DB9F85AB30D7024D2066C601395F97A60ACDD5CBA60ACDD5C5A3000027390C017B0A +S12397FB015F97C60139905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F9B +S123981B97C6013990AE000A895F9765909F85AB30D7024D20190C017B015F97C601399069 +S123983BAE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC6013A5F97A6A2 +S123985B64CDD5CBA3000027510C017B015F97C6013A90AE0064895F97659F85AB30D7021F +S123987B4D0C017B015F97C6013A905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C20 +S123989B017B015F97C6013A90AE000A895F9765909F85AB30D7024D2066C6013A5F97A631 +S12398BB0ACDD5CBA60ACDD5C5A3000027390C017B015F97C6013A905F9097A60ACDD5F61A +S12398DBA60ACDD5F0909FAB30D7024D0C017B015F97C6013A90AE000A895F9765909F8597 +S12398FBAB30D7024D20190C017B015F97C6013A90AE000A895F9765909F85AB30D7024DAE +S123991B0C017B015F97A622D7024D0C017B015F97A62CD7024D0C017B015F97A639D7020D +S123993B4D0C017B015F97A639D7024D0C017B015F97A635D7024D0C017B015F97A634D787 +S123995B024D205F7B02A14726327B06A13026097B015F97A630D7024D0C017B015F97A649 +S123997B2CD7024D0C017B015F97A637D7024D0C017B015F97A631D7024D20277B02A116FD +S123999B26210C017B015F97A62CD7024D0C017B015F97A632D7024D0C017B015F97A63216 +S12399BBD7024D0C017B015F97A60DD7024D0C017B015F97A60AD7024D7B014CB72CB62C28 +S12399DBCD8E76AE81E989AE015DCDD2485B02BF30BE302607720C00810025E7721D008181 +S12399FB3F163F29BE30270A7213008635D300212018721200867B02A11426067219008687 +S1239A1B20047217008135D200215B0381725F505A725F505B35FF505C35AE5064355650A9 +S1239A3B64C6505FA50827F981897B051E01D74000C6505FA50427F98581D640008188AD91 +S1239A5BCCA6376B017B015F971D0037D60149887B025F97ADD3840C017B01A14B25E684E9 +S1239A7B8188ADA90F017B015F97D6010B887B025F97ADB5840C017B01A10A25E9A60A6BC6 +S1239A9B017B015F971D000AD60115887B025F97AD97840C017B01A11425E6A6146B017B74 +S1239ABB015F971D0014D6011F887B025F97CD9A44840C017B01A11E25E5A61E6B017B0141 +S1239ADB5F971D001ED60129887B025F97CD9A44840C017B01A12825E5A6286B017B015F9B +S1239AFB971D0027D60100887B025F97CD9A44840C017B01A13225E53B001FAE0032CD9A64 +S1239B1B44843B0022AE0033CD9A4484B623A4FF88AE0034CD9A44843B0024AE0035CD9A33 +S1239B3B4484B625A4FF88AE0036CD9A44843B0080AE0037CD9A44843B0000AE0038CD9ACE +S1239B5B44843B0001AE0039CD9A44843B0002AE003ACD9A44843B0003AE003BCD9A448422 +S1239B7B3B002DAE003CCD9A4484A63D6B017B015F971D003DD60149887B025F97CD9A4464 +S1239B9B840C017B01A15125E58481890F027B025F97897B045F97CD9A5585D7010B0C025B +S1239BBB7B02A10A25E8A60A6B027B025F971D000A897B045F97CD9A5585D701150C027BE5 +S1239BDB02A11425E5A6146B027B025F971D0014897B045F97CD9A5585D7011F0C027B0219 +S1239BFBA11E25E5A61E6B027B025F971D001E897B045F97CD9A5585D701290C027B02A132 +S1239C1B2825E5A6286B027B025F971D0027897B045F97CD9A5585D701000C027B02A1328C +S1239C3B25E5AE0032CD9A55B71FAE0033CD9A556B02AE0034CD9A556B017B025F974F02B1 +S1239C5B011B0124015CB7239FB722AE0035CD9A556B02AE0036CD9A556B017B025F974F1B +S1239C7B02011B0124015CB7259FB724AE0037CD9A55B780AE0038CD9A55B700AE0039CDEA +S1239C9B9A55B701AE003ACD9A55B702AE003BCD9A55B703AE003CCD9A55B72DB600A4015D +S1239CBBB700B601A401B701B602A401B702B603A401B703B62DA1EA261FA63D6B027B020C +S1239CDB5F971D003D897B045F97CD9A5585D701490C027B02A15125E585815204AE821D85 +S1239CFB89AE015DCDD2485B02BF30BE30725F0136725F0135725F0134725F0133721C00E7 +S1239D1B84AE821D89AE015DCD8E145B02016B03027B03AB076B030F047B035F1B042401AF +S1239D3B5C02D6015DA12E27080C047B04A10A25E87B04A101260E7B035F97D6015DA03060 +S1239D5BC70133205C7B04A10226207B035F97D6015EA0306B027B035F97D6015D97A60A30 +S1239D7B429FA0E01B02C7013320367B04A10326307B035F97D6015FA0306B027B035F9721 +S1239D9BD6015E97A60A429FA0E06B017B035F97D6015D97A664429FA0C01B011B02C701D0 +S1239DBB337B031B044C6B030F047B035F1B0424015C02D6015DA12E27080C047B04A10AFC +S1239DDB25E87B04A101260E7B035F97D6015DA030C70134205C7B04A10226207B035F9736 +S1239DFBD6015EA0306B027B035F97D6015D97A60A429FA0E01B02C7013420367B04A103F0 +S1239E1B26307B035F97D6015FA0306B027B035F97D6015E97A60A429FA0E06B017B035F4C +S1239E3B97D6015D97A664429FA0C01B011B02C701347B031B044C6B030F047B035F1B04BB +S1239E5B24015C02D6015DA12E27080C047B04A10A25E87B04A10126147B035F1B0424016B +S1239E7B5C025AD6015DA030C70135207E7B04A102262D7B035F1B0424015C025AD6015DEA +S1239E9BA0306B027B035F1B0424015C025A5AD6015D97A60A429FA0E01B02C70135204BD2 +S1239EBB7B04A10326457B035F1B0424015C025AD6015DA0306B027B035F1B0424015C022C +S1239EDB5A5AD6015D97A60A429FA0E06B017B035F1B0424015C021D0003D6015D97A664F3 +S1239EFB429FA0C01B011B02C701357B031B044C6B030F047B035F1B0424015C02D6015DAF +S1239F1BA12227080C047B04A10A25E87B04A10126147B035F1B0424015C025AD6015DA0E1 +S1239F3B30C70136207E7B04A102262D7B035F1B0424015C025AD6015DA0306B027B035F9A +S1239F5B1B0424015C025A5AD6015D97A60A429FA0E01B02C70136204B7B04A10326457B21 +S1239F7B035F1B0424015C025AD6015DA0306B027B035F1B0424015C025A5AD6015D97A64F +S1239F9B0A429FA0E06B017B035F1B0424015C021D0003D6015D97A664429FA0C01B011BDF +S1239FBB02C701367B03977B035F1B0424015C025CAE821689AE015DCDD2485B02BF30BEC6 +S1239FDB302603CCA0EE725F0142725F0141725F0140725F013F725F013E725F013D721ABA +S1239FFB0084AE821689AE015DCD8E145B02016B03027B03AB086B030F047B035F97D601A9 +S123A01B5DA130251E7B035F97D6015DA13A24137B045F977B03905F909790D6015DA03059 +S123A03BD7013D7B035F97D6015DA161251E7B035F97D6015DA16724137B045F977B039095 +S123A05B5F909790D6015DA057D7013D7B035F97D6015EA130252F7B035F97D6015EA13A39 +S123A07B24247B045F977B03905F909790D6015EA0306B027B04905F909790D6013D4EA443 +S123A09BF01B02D7013D7B035F97D6015EA16125317B035F97D6015DA16724267B045F970F +S123A0BB7B03905F909790D6015EA0616B027B04905F909790D6013D4EA4F01B02AB0AD7F6 +S123A0DB013D7B03AB036B030C047B04A1062403CCA0155B048135CC50E08188CD87A60F88 +S123A0FB017B015F97D680D2D7024D0C017B01A10625EE350D0253350A02543508002CA602 +S123A11B08CD8EBD8481880F017B015F97D680D8D7024D0C017B01A10A25EE350D02573586 +S123A13B0A0258350C002CA60CCD8EBDAE00C8CD8C28848188880F017B015F97D680F3D7B7 +S123A15B024D0C017B01A10A25EE7B02C70257350D0258350A0259350D002CA60DCD8E7685 +S123A17BAE81BD89AE015DCDD2485B02BF30BE302607720C00810025E7721D00813F163F42 +S123A19B29BE30270635290021200435280021858188880F017B015F97D680FDD7024D0C1E +S123A1BB017B01A10B25EE7B02C70258350D0259350A025A350E002CA60ECD8E76AE81BD8E +S123A1DB89AE015DCDD2485B02BF30BE302607720C00810025E7721D00813F163F29BE30B7 +S123A1FB270635330021200435320021858188880F017B015F97D68108D7024D0C017B0138 +S123A21BA10A25EE7B02C70257350D0258350A0259350D002CA60DCD8E76AE81BD89AE0178 +S123A23B5DCDD2485B02BF30BE302607720C00810025E7721D00813F163F29BE302706352C +S123A25B3D00212004353C0021858188880F017B015F97D68157D7024D0C017B01A10C2504 +S123A27BEE7B01970C019F5F977B02D7024D7B01970C019F5F97A60DD7024D7B01970C01CB +S123A29B9F5F97A60AD7024D7B01B72CB62CCD8E76AE81BD89AE015DCDD2485B02BF30BEB0 +S123A2BB302607720C00810025E7721D00813F163F29BE302706353D00212004353C0021E6 +S123A2DB858188880F017B015F97D6813FD7024D0C017B01A10C25EE7B02C70259350D02DF +S123A2FB5A350A025B350F002CA60FCD8E76AE81BD89AE015DCDD2485B02BF30BE30260784 +S123A31B720C00810025E7721D00813F163F29BE302706358D00212004358C0021858188B4 +S123A33B72100086721A008372170086721B0082721700810F017B015F97D68126D7024D9A +S123A35B0C017B01A10E25EE350D025B350A025C3510002CA610CD8E76AE81BD89AE015DDE +S123A37BCDD2485B02BF30BE302607720C00810025E7721D00813F163F29BE302706354701 +S123A39B00212004354600210F017B015F97D680E2D7024D0C017B01A11125EE350D025EED +S123A3BB350A025F3513002C721B0082A613CD8EBD8481880F017B015F97D68112D7024DEC +S123A3DB0C017B01A10825EE350D0255350A0256350A002CA60ACD8E76AE000ACD88AAAE98 +S123A3FB821D89AE015DCDD2485B02BF30BE302619AE821689AE015DCDD2485B02BF30BEDE +S123A41B302607720C00810025D5721D00813F163F29BE302709CD9CF6358300212004354B +S123A43B820021848188880F017B015F97D6811AD7024D0C017B01A10C25EE7B02C7025944 +S123A45B352C025A3522025B3555025C3544025D3550025E3522025F352C02603522026192 +S123A47BA6146B01C601335F97A664CDD5CBA3000027510C017B015F97C6013390AE0064FA +S123A49B895F97659F85AB30D7024D0C017B015F97C60133905F9097A60ACDD5F6A60ACD40 +S123A4BBD5F0909FAB30D7024D0C017B015F97C6013390AE000A895F9765909F85AB30D77D +S123A4DB024D2066C601335F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F97C6011B +S123A4FB33905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C601339031 +S123A51BAE000A895F9765909F85AB30D7024D20190C017B015F97C6013390AE000A895FE9 +S123A53B9765909F85AB30D7024D0C017B015F97A62ED7024DC601345F97A664CDD5CBA3C7 +S123A55B000027510C017B015F97C6013490AE0064895F97659F85AB30D7024D0C017B01B6 +S123A57B5F97C60134905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F977C +S123A59BC6013490AE000A895F9765909F85AB30D7024D2066C601345F97A60ACDD5CBA686 +S123A5BB0ACDD5C5A3000027390C017B015F97C60134905F9097A60ACDD5F6A60ACDD5F0EE +S123A5DB909FAB30D7024D0C017B015F97C6013490AE000A895F9765909F85AB30D7024DD1 +S123A5FB20190C017B015F97C6013490AE000A895F9765909F85AB30D7024D0C017B015FC0 +S123A61B97A62ED7024DC601355F97A664CDD5CBA3000027510C017B015F97C6013590AE4D +S123A63B0064895F97659F85AB30D7024D0C017B015F97C60135905F9097A60ACDD5F6A60F +S123A65B0ACDD5F0909FAB30D7024D0C017B015F97C6013590AE000A895F9765909F85AB09 +S123A67B30D7024D2066C601355F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F9737 +S123A69BC60135905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C60189 +S123A6BB3590AE000A895F9765909F85AB30D7024D20190C017B015F97C6013590AE000A69 +S123A6DB895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601365F97A664CDD5AA +S123A6FBCBA3000027510C017B015F97C6013690AE0064895F97659F85AB30D7024D0C0121 +S123A71B7B015F97C60136905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B0152 +S123A73B5F97C6013690AE000A895F9765909F85AB30D7024D2066C601365F97A60ACDD55B +S123A75BCBA60ACDD5C5A3000027390C017B015F97C60136905F9097A60ACDD5F6A60ACD9E +S123A77BD5F0909FAB30D7024D0C017B015F97C6013690AE000A895F9765909F85AB30D7B7 +S123A79B024D20190C017B015F97C6013690AE000A895F9765909F85AB30D7024D0C017B2D +S123A7BB01970C019F5F97A622D7024D7B01970C019F5F97A62CD7024D7B01970C019F5F87 +S123A7DB97A639D7024D7B01970C019F5F97A639D7024D7B01970C019F5F97A635D7024D4E +S123A7FB7B01970C019F5F97A634D7024D7B01970C019F5F97A62CD7024D7B01970C019F19 +S123A81B5F97A633D7024D7B01970C019F5F97A633D7024D7B01970C019F5F97A633D70209 +S123A83B4D7B01970C019F5F97A62CD7024D7B01970C019F5F97A630D7024D7B01970C012E +S123A85B9F5F97A60DD7024D7B01970C019F5F97A60AD7024D7B01B72CB62CCD8E76AE819F +S123A87BBD89AE015DCDD2485B02BF30BE302607720C00810025E7721D00813F163F294BF6 +S123A89BFFAE00FFA61495CD92A784A60BCD8FF8858188890F027B025F97D6811AD7024DDD +S123A8BB0C027B02A10C25EE7B03C70259352C025A3522025B3554025C3543025D355002D8 +S123A8DB5E3522025F352C0260352202610F017B015F97724D014927080C017B01A11425A9 +S123A8FBEE7B01A10B2403CCA9A9A6156B0220177B025F977B02905F909772A2001590D6EA +S123A91B0149D7024D0C029C7B025F977B01905F909772A90015BF4990B3492CD37B029722 +S123A93B0C029F5F97A622D7024D7B02970C029F5F97A62CD7024D7B02970C029F5F97A65B +S123A95B39D7024D7B02970C029F5F97A639D7024D7B02970C029F5F97A635D7024D7B0288 +S123A97B970C029F5F97A635D7024D7B02970C029F5F97A60DD7024D7B02970C029F5F9736 +S123A99BA60AD7024D7B02B72CB62CCD8EBD5B038152037200008500244F720000810024B3 +S123A9BB040F02207A7204008500241BB61C5F975AA602CDD5CBD6010B5F97A60ACDD5C569 +S123A9DBD682356B02205872060085002451B61C5F975AA602CDD5CBD6011F5F97A60ACDD4 +S123A9FBD5C5D682356B022036720000820024217200008100240AB61DA10826040F02201D +S123AA1B1EB63F5F97A60ACDD5C5D682356B02200EB63F5F97A60ACDD5C5D682356B027B58 +S123AA3B02A4F04EA40F6B017B02A40F6B03720200820024067B01AA016B014B047B029740 +S123AA5B4F95CD8C40844B047B0497A60895CD8C40847200008500244F720000810024048C +S123AA7B0F02207A7204008500241BB61C5F975AA602CDD5CBD601155F97A60ACDD5CBD6C6 +S123AA9B82356B02205872060085002451B61C5F975AA602CDD5CBD601295F97A60ACDD50A +S123AABBCBD682356B022036720000820024217200008100240AB61DA10926040F02201E0C +S123AADBB63E5F97A60ACDD5CBD682356B02200EB63E5F97A60ACDD5CBD682356B027B02AA +S123AAFBA4F04EA40F6B01720000850024067B01AA016B017B02A40F6B034B047B0297A6DB +S123AB1B0295CD8C40844B047B0497A60195CD8C40847200008500244F720000810024041F +S123AB3B0F02207A7204008500241BB61C5F975AA602CDD5CBD601155F97A60ACDD5C5D60B +S123AB5B82356B02205872060085002451B61C5F975AA602CDD5CBD601295F97A60ACDD549 +S123AB7BC5D682356B022036720000820024217200008100240AB61DA10A26040F02201E50 +S123AB9BB63E5F97A60ACDD5C5D682356B02200EB63E5F97A60ACDD5C5D682356B027B02F5 +S123ABBBA4F04EA40F6B01720000850024067B01AA016B017B02A40F6B034B047B0297A61A +S123ABDB0495CD8C40844B047B0497A60395CD8C40843D01273AA6016B03B614A102250A90 +S123ABFBB614A1052404A6096B03B614A103250CB614A10524067B03AA046B03B614A1043F +S123AC1B2512B614A105240C7B03AA026B032004A60F6B03B618A102260F7202008200249F +S123AC3B06A60F6B0320020F034B047B0497A60595CD8C40843D00273AA6016B03B614A1B8 +S123AC5B02250AB614A1052404A6096B03B614A103250CB614A10524067B03AA046B03B666 +S123AC7B14A1042512B614A105240C7B03AA026B032004A60F6B03B618A101260F7202002D +S123AC9B82002406A60F6B0320020F034B047B0497A60695CD8C40847B03974B04AE000FAE +S123ACBBA60795CD8C40847200008500244F720000810024040F02207A7204008500241BAC +S123ACDBB61C5F975AA602CDD5CBD6010B5F97A60ACDD5CBD682436B0220587206008500AC +S123ACFB2451B61C5F975AA602CDD5CBD6011F5F97A60ACDD5CBD682436B022036720000B0 +S123AD1B820024217200008100240AB61DA10726040F02201EB63F5F97A60ACDD5CBD682D8 +S123AD3B436B02200EB63F5F97A60ACDD5CBD682436B027B02A40F6B037200008500240647 +S123AD5B7B03AA016B034B047B0497A60995CD8C40840F03720000850024323D1C270CB6D6 +S123AD7B1CA1052406A6096B032022B61CA105250CB61CA1092406A6076B032010B61CA15C +S123AD9B09250AB61CA10D2404A60B6B034B047B0497A60A95CD8C40840F037200008500C5 +S123ADBB2438B61C4AA10C24075F9758DE8498FC20287B03977B03977B03977B03977B03C6 +S123ADDB97A6096B0320137B03977B03977B03977B03977B0397A6076B034B047B0497A6DE +S123ADFB0B95CD8C4084A6046B03B614A10324043D022604A60C6B037200008500241C7297 +S123AE1B0400850024087B03AA026B03200D720600850024067B03AA016B034B047B049776 +S123AE3BA60C95CD8C4084A60E6B03B618A104260772000081002504A60F6B034B047B04C0 +S123AE5B97A60D95CD8C4084BE3AA60A625F97D682356B027B02A4F04EA40F6B017B02A43E +S123AE7B0F6B037B01AA016B014B047B0297A60E95CD8C40844B047B0497A60F95CD8C4092 +S123AE9B84BE3AA664625F97A60A62D682356B027B02A4F04EA40F6B017B02A40F6B037B12 +S123AEBB01AA016B014B047B0297A61095CD8C40844B047B0497A61195CD8C4084BE3AA624 +S123AEDB6462D682356B027B02A4F04EA40F6B017B02A40F6B037B01AA016B014B047B0218 +S123AEFB97A61295CD8C40844B047B0497A61395CD8C4084A6016B03720800810024067BAD +S123AF1B03AA026B033D0327087B03AA086B0320067B03AA046B034B047B0497A61495CDA7 +S123AF3B8C4084720000820024217200008100240AB61DA10626040F02201EB6405F97A6C3 +S123AF5B0ACDD5C5D682356B02200EB6405F97A60ACDD5C5D682356B027B02A4F04EA40F2A +S123AF7B6B017B02A40F6B037200008100240B720000850024043D1C26067B01AA016B014F +S123AF9B4B047B0297A61595CD8C40844B047B0497A61695CD8C4084720000820024217244 +S123AFBB00008100240AB61DA10526040F02201EB6405F97A60ACDD5CBD6823F6B02200E96 +S123AFDBB6405F97A60ACDD5CBD6823F6B027B02A40F6B034B047B0497A61795CD8C4084D3 +S123AFFB720000820024217200008100240AB61DA10426040F02201EB6415F97A60ACDD5A8 +S123B01BC5D682356B02200EB6415F97A60ACDD5C5D682356B027B02A4F04EA40F6B017B2D +S123B03B02A40F6B037B01AA016B017200008100240CB61DA10326067B01A40E6B014B048C +S123B05B7B0297A61895CD8C40844B047B0497A61995CD8C408472000082002421720000CC +S123B07B8100240AB61DA10126040F02201EB6425F97A60ACDD5CBD682356B02200EB642E9 +S123B09B5F97A60ACDD5CBD682356B027B02A4F04EA40F6B017B02A40F6B037B01AA016BD6 +S123B0BB014B047B0297A61C95CD8C40844B047B0497A61D95CD8C40847200008200242186 +S123B0DB7200008100240AB61DA10226040F02201EB6425F97A60ACDD5C5D682356B022022 +S123B0FB0EB6425F97A60ACDD5C5D682356B027B02A4F04EA40F6B017B02A40F6B037B018C +S123B11BAA016B01B641A10A241D7200008100240EB61DA10326087B01A40E6B01200E7B09 +S123B13B01AA016B0120067B01A40E6B014B047B0297A61A95CD8C40844B047B0497A61B1D +S123B15B95CD8C40840F03720E0081002503CCB1EB720A0083002478720600860024137239 +S123B17B020082002406A60F6B032064A6016B03205E72000086002411720200820024067B +S123B19BA60F6B03204A0F032046720A008200251372020082002406A60F6B032032A60119 +S123B1BB6B03202C7206008100251372020082002406A60F6B032018A60E6B032012720A3A +S123B1DB008200240B72060081002404A60F6B034B047B0497A61E95CD8C4084A60F6B035D +S123B1FB7200008100240F720000820024083D1D2704A60B6B034B047B0497A61F95CD8C2E +S123B21B40845B03818872080081002403CCB2ACCD8DBE6B01B6191101266CB619A1FF270B +S123B23B663C1BB61BA11925683F1B7200008500253F720000820025387B01A1042632207B +S123B25B0ECD8DBE6B01AE000ACD88AACDA9AC7B01A10427ECAE0012A68095CD8C0DAE01A0 +S123B27BF4CD88AAAE0010A68095CD8C0D35AB00217B01A10A2608CD87A6CDA12120127B51 +S123B29B01A108260C200A3F1B7B01B719721300818481520D0F0D9C7B0D97A604421C8416 +S123B2BBB0CDD5A1961C0010CDD3592F080C0D7B0DA16A25E27B0DA169250CCE86B51F0BE1 +S123B2DBCE86B31F0920797B0DA106240CAE00001F0BAE00001F0920677B0D5F97CDD57360 +S123B2FB961C0005CDD5B37B0D97A604421D00041C84B0CDD5A17B0D97A604421C84B0CD3C +S123B31BD27C961C0001CDD5B37B0D97A604421D00041C84B0CDD5A1961C0010CDD27C9686 +S123B33B1C0001CDD38FAE86AFCDD27CAE86ABCDD27C961C0005CDD290961C0009CDD5B3B4 +S123B35B961C0009CDD5A15B0D81520CC65400A480A1802703CCB46DC654045F97CDD573EA +S123B37B961C0005CDD5B3AE0100CDD573961C0005CDD27C961C0001CDD5B3C654045F97F0 +S123B39BCDD573AE8528CDD41B961C0001CDD38F961C0009CDD5B31E0B891E0B89CDB2AEDF +S123B3BB5B04961C0009CDD5B3961C0009CDD5A1AE0036CDD4133C1EB61EA1282403CCB4CB +S123B3DB653F1EBE3AB3222206BE3AB324242E721C0085AE0036CDD5A1CDD4F0575772BBD0 +S123B3FB003A54BF3AAE0000BF38AE0000BF36BE3AB322220EBE3AB32424182006721D00A2 +S123B41B8520D0721E0085BE3AB322230C354800202016721F008520EEBE3AB32424063562 +S123B43B4C00202004354E0020BE3AB3222206BE3AB3242415720D008507720E00850B2082 +S123B45B05720F00850472120083721F5400721054015B0C8188B6184A27164A272F4A2725 +S123B47B474A27614A277B4A2603CCB51AAC00B5350F0172000081002404A60F6B014B0469 +S123B49B7B0297A60695CD8C4084CCB5350F0172000081002404A60F6B014B047B0297A610 +S123B4BB0595CD8C40842072A6046B0172000081002404A60C6B014B047B0297A60C95CD5E +S123B4DB8C40842055A60E6B0172000081002404A60F6B014B047B0297A60D95CD8C408464 +S123B4FB2038A60E6B0172000081002404A60F6B014B047B0297A61595CD8C4084201BA6C8 +S123B51B0B6B0172000081002404A60F6B014B047B0297A61F95CD8C4084848189CD8DBED9 +S123B53B6B02B61811022703CCBBA6B618A1FF2603CCBBA63C1AB61AA1192403CCBBB03F06 +S123B55B1A3F0F3F0E7208008100245172120081CD8DBE6B02CDB470CDA9AC72080081000F +S123B57B24067B02A1FF26E472080081002503CDA9AC7B02A1FF26087218008172130081BA +S123B59BAE0012A68095CD8C0DCD8DBEA1FF26F9AE0010A68095CD8C0DAC00BBB0CD8DBEC6 +S123B5BB6B02721200817B024A27194A27284A27374A27464A2603CCBB354A2603CCBB6B67 +S123B5DBAC00BB883D032703CCBB88B60043A401B700AC00BB883D032703CCBB88B601432D +S123B5FBA401B701AC00BB883D032703CCBB88B60243A401B702AC00BB8872000085002503 +S123B61B03CCB81FB61C4AA10C24075F9758DE8658FCAC00B811725D0115271A725F0115E9 +S123B63B725C010BC6010BA1182403CCBB88725F010BAC00BB88351E0115AC00BB88725D5D +S123B65B0129271A725F0129725C011FC6011FA1182403CCBB88725F011FAC00BB88351E6F +S123B67B0129AC00BB88725D0116271A725F0116725C010CC6010CA1182403CCBB88725F15 +S123B69B010CAC00BB88351E0116AC00BB88725D012A271A725F012A725C0120C60120A188 +S123B6BB182403CCBB88725F0120AC00BB88351E012AAC00BB88725D0117271A725F0117BE +S123B6DB725C010DC6010DA1182403CCBB88725F010DAC00BB88351E0117AC00BB88725DB5 +S123B6FB012B271A725F012B725C0121C60121A1182403CCBB88725F0121AC00BB88351EC5 +S123B71B012BAC00BB88725D0118271A725F0118725C010EC6010EA1182403CCBB88725F6A +S123B73B010EAC00BB88351E0118AC00BB88725D012C271A725F012C725C0122C60122A1DB +S123B75B182403CCBB88725F0122AC00BB88351E012CAC00BB88725D0119271A725F011915 +S123B77B725C010FC6010FA1182403CCBB88725F010FAC00BB88351E0119AC00BB88725D0C +S123B79B012D271A725F012D725C0123C60123A1182403CCBB88725F0123AC00BB88351E1A +S123B7BB012DAC00BB88725D011A271A725F011A725C0110C60110A1182403CCBB88725FC0 +S123B7DB0110AC00BB88351E011AAC00BB88725D012E271A725F012E725C0124C60124A12F +S123B7FB182403CCBB88725F0124AC00BB88351E012EAC00BB883F1C72110085AC00BB8834 +S123B81BAC00BB8872000082002503CCBADCB61D4A273D4A27714A2603CCB8D94A2603CC2A +S123B83BB9094A2603CCB9614A2603CCB99D4A2603CCB9EE4A2603CCBA254A2603CCBA6AD2 +S123B85B4A2603CCBAA13F1D72110082AC00BB88B642AE000A515F9765909F6B01B642AE42 +S123B87B000A515F97659F6B020C027B02AE000A515F9765909F6B027B0297A60A429F1B9C +S123B89B01B742AC00BB88B642AE000A515F9765909F6B01B642AE000A515F97659F6B0241 +S123B8BB0C017B01AE000A515F9765909F6B017B0297A60A429F1B01B742AC00BB88B64141 +S123B8DBAE000A515F9765909F6B01B641AE000A515F97659F6B020C027B02A4016B027BCB +S123B8FB0297A60A429F1B01B741AC00BB88B641AE000A515F9765909F6B01B641AE000A57 +S123B91B515F97659F6B020C017B02A101260F7B01AE0003515F9765909F6B01200D7B01D2 +S123B93BAE000A515F9765909F6B010D0226080D012604A6016B017B0297A60A429F1B01A0 +S123B95BB741AC00BB88B640AE000A515F9765909F6B01B640AE000A515F97659F6B020C7A +S123B97B027B02A4036B020D0226080D012604A6016B017B0297A60A429F1B01B740AC0029 +S123B99BBB88B640AE000A515F9765909F6B01B640AE000A515F97659F6B020C017B02A1BF +S123B9BB0326087B01A4016B01200D7B01AE000A515F9765909F6B010D0226080D0126048D +S123B9DBA6016B017B0297A60A429F1B01B740AC00BB88B63FAE000A515F9765909F6B019A +S123B9FBB63FAE000A515F97659F6B020C027B02AE0003515F9765909F6B027B0297A60A7B +S123BA1B429F1B01B73FAC00BB88B63FAE000A515F9765909F6B01B63FAE000A515F9765D8 +S123BA3B9F6B020C017B02A10226087B01A4036B01200D7B01AE000A515F9765909F6B0149 +S123BA5B7B0297A60A429F1B01B73FAC00BB88B63EAE000A515F9765909F6B01B63EAE008C +S123BA7B0A515F97659F6B020C027B02AE0006515F9765909F6B027B0297A60A429F1B019D +S123BA9BB73EAC00BB88B63EAE000A515F9765909F6B01B63EAE000A515F97659F6B020C40 +S123BABB017B01AE000A515F9765909F6B017B0297A60A429F1B01B73EAC00BB88AC00BBDF +S123BADB88721A008672120081CD8DBE6B02CDB470CDA9AC720A008600240C7B02A1FF279A +S123BAFB067B02A10A26DE7B02A10A2606CD87A6CDA121720A00860025107B02A104260A8F +S123BB1BB60343A401B703CDA9AC7B02A1FF265D721B0086721300812053721000857211D3 +S123BB3B00823C1CB61CA401A101260A721400857217008520087215008572160085B61C97 +S123BB5BA10D25293F1C7211008572120085201D72100082721100853C1DB61DA10B250D0B +S123BB7BCD8A663F1D7211008272140081AE0012A68095CD8C0DCD8DBEA1FF26F9AE00100B +S123BB9BA68095CD8C0DCD9A7C200A3F1A7B02B7187213008185815230B603A1012703CCD4 +S123BBBBBCEF0F307B305F97D601156B057B305F97D6010B97A63C42011B0524015C021F7E +S123BBDB0301961C00081F017B305F975872FB011603FF7B305F97D601296B057B305F9737 +S123BBFBD6011F97A63C42011B0524015C021F0301961C001C1F017B305F975872FB011643 +S123BC1B03FF0C307B30A10A259AB63F97A63C4201BB3E24015C021F0601725D010127184F +S123BC3B1E06130825121E06131C240C1E08131C2406350100002020725D010227181E06C2 +S123BC5B130A25121E06131E240C1E0A131E24063501000020023F00725D010327181E069C +S123BC7B130C25121E061320240C1E0C13202406350100012020725D010427181E06130E72 +S123BC9B25121E061322240C1E0E132224063501000120023F01725D010527181E06131046 +S123BCBB25121E061324240C1E1013242406350100022020725D010627181E061312251207 +S123BCDB1E061326240C1E12132624063501000220023F023D002706721C500A2004721D85 +S123BCFB500A3D012706721A500A2004721B500A3D022706721E500A2004721F500A5B307F +S123BD1B8152031E01720E008600240D721F0086A630CDA8ADAC00BF067206008400241622 +S123BD3B720E008100240F72170084721F0084CDA33AAC00BF0672060083002503CCBE04C2 +S123BD5B72170083721800854BFF5FA61895CD92A7843501002FAE00534F95CD8F0B350A33 +S123BD7B025C350C025D3501025EA6126B037B035F977B03905F909772A2001290D6013322 +S123BD9BD7024D0C037B03A11625E3AE001689AE024DCD88455B021F017B01C702637B028C +S123BDBBC702643518002CA618CD8E76AE81DB89AE015DCDD2485B02BF30BE302607720CC4 +S123BDDB00810025E7721D00813F163F29BE30270C35A1002172130086AC00BF0635A00081 +S123BDFB2172120086AC00BF0672040083002503CCBF0672020083002503CCBEE6B620A1D0 +S123BE1B4E2603CCBEE6B61FA1012703CCBF06BE221C0006B33A250CBE241D0006B33A22B6 +S123BE3B03CCBF06721300834BFF5FA61695CD92A7843509002FAE00534F95CD8F0B5500B5 +S123BE5B3A025DB63BA4FFC7025EB620A14826123501025C550022025FB623A4FFC7026067 +S123BE7B2016B620A14C2610725F025C550024025FB625A4FFC70260AE001489AE024DCDAF +S123BE9B88455B021F017B01C702617B02C702623516002CA616CD8E76AE81DB89AE015D48 +S123BEBBCDD2485B02BF30BE3027EE721D00813F163F29BE30270A35C900217213008620F7 +S123BEDB2A35C8002172120086202072080083002419721900833F134B305FA64795CD925C +S123BEFBA7843508002FA653CD90AF5B0381520C1E0872060082002503CCCD7572170082E9 +S123BF1B3F135FBF045FBF063F2E0F0A0F0BAE81E389AE01D5CDD2485B02BF32BE3226035D +S123BF3BCCCAEEAE81E389AE01D5CD8E145B02016B0B027B0B5F97D601DAA130260635306B +S123BF5B00172004353100177B0BAB076B0B7B0B5F97D601D5A1302403CCC07B7B0B5F97B9 +S123BF7BD601D5A13A2503CCC07B7B0B5F97D601D5A030B72E0C0B7B0B5F97D601D5A130FF +S123BF9B2403CCC07B7B0B5F97D601D5A13A2503CCC07B7B0B5F97D601D5A0306B067B0B33 +S123BFBB5F975AD601D597A60A429FA0E01B06B72E0C0B7B0B5F97D601D5A1302403CCC0F5 +S123BFDB7B7B0B5F97D601D5A13A2503CCC07B7B0B5F97D601D5A0306B067B0B5F975AD680 +S123BFFB01D597A60A429FA0E06B057B0B5F975A5AD601D597A664429FA0C01B051B06B77E +S123C01B2E0C0B7B0B5F97D601D5A13025527B0B5F97D601D5A13A24477B0B5F97D601D5B6 +S123C03BA0306B067B0B5F975AD601D597A60A429FA0E06B057B0B5F975A5AD601D597A6ED +S123C05B64429FA0C06B047B0B5F971D0003D601D597A6E8429FA0801B041B051B06B72EFA +S123C07B7B0B5F97D601D5A12C0C0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C0C7BAE +S123C09B0CA10A25E87B0CA101260E7B0B5F97D601D5A030C70137205C7B0CA10226207B02 +S123C0BB0B5F97D601D6A0306B067B0B5F97D601D597A60A429FA0E01B06C7013720367BB1 +S123C0DB0CA10326307B0B5F97D601D7A0306B067B0B5F97D601D697A60A429FA0E06B058F +S123C0FB7B0B5F97D601D597A664429FA0C01B051B06C701377B0B1B0C4C6B0B0F0C7B0BC7 +S123C11B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A25E87B0CA101260E7B0B5F971D +S123C13BD601D5A030C70138205C7B0CA10226207B0B5F97D601D6A0306B067B0B5F97D6BC +S123C15B01D597A60A429FA0E01B06C7013820367B0CA10326307B0B5F97D601D7A0306BE5 +S123C17B067B0B5F97D601D697A60A429FA0E06B057B0B5F97D601D597A664429FA0C01B34 +S123C19B051B06C701387B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C8B +S123C1BB0C7B0CA10A25E87B0CA10126147B0B5F1B0C24015C025AD601D5A030C70139202C +S123C1DB7E7B0CA102262D7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015CE2 +S123C1FB025A5AD601D597A60A429FA0E01B06C70139204B7B0CA10326457B0B5F1B0C24C3 +S123C21B015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E0C2 +S123C23B6B057B0B5F1B0C24015C021D0003D601D597A664429FA0C01B051B06C701397B75 +S123C25B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12C27080C0C7B0CA10A25E822 +S123C27B7B0CA10126147B0B5F1B0C24015C025AD601D5A030C7013A207E7B0CA102262DBA +S123C29B7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D59723 +S123C2BBA60A429FA0E01B06C7013A204B7B0CA10326457B0B5F1B0C24015C025AD601D595 +S123C2DBA0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B5F1B0CEB +S123C2FB24015C021D0003D601D597A664429FA0C01B051B06C7013A7B0B1B0C4C6B0B0F2D +S123C31B0C7B0B5F1B0C24015C02D601D5A13A27080C0C7B0CA10A25E87B0CA10126197B73 +S123C33B0B5F1B0C24015C025AD601D55F971D0030CF013BAC00C44E7B0CA10226337B0BAF +S123C35B5F1B0C24015C025AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D559 +S123C37B97A60A421D01E072FB05CF013BAC00C44E7B0CA103264C7B0B5F1B0C24015C02B0 +S123C39B5AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D597A60A421D01E09B +S123C3BB1F037B0B5F1B0C24015C021D0003D601D597A664421D12C072FB0372FB05CF015D +S123C3DB3B20707B0CA104266A7B0B5F1B0C24015C025AD601D55F971D00301F057B0B5FD6 +S123C3FB1B0C24015C025A5AD601D597A60A421D01E01F037B0B5F1B0C24015C021D0003BC +S123C41BD601D597A664421D12C01F017B0B5F1B0C24015C021D0004D601D55F9790AE03CC +S123C43BE8CDD5521DBB8072FB0172FB0372FB05CF013B7B0B977B0B5F1B0C24015C025C46 +S123C45BAE86A989AE01D5CD8E145B02016B0B027B0B5F97D601D5A13A0C0B7B0B5F97D622 +S123C47B01D5A1017B0B5F97D601D6B72FB62EA1192703CCC588B62FA1012703CCC58872F9 +S123C49B18008372140083721900857B0BCD8EE24D2603CCCABC7B0BAB0F6B0B7B0B970C5F +S123C4BB0B9F5F97D601D55F974F021F087B0B970C0B9F5F97D601D51B096B0924020C085C +S123C4DB1E08A664625F979FB7427B0B970C0B9F5F97D601D5B7417B0B970C0B9F5F97D611 +S123C4FB01D5B7407B0B970C0B9F5F97D601D5B73F7B0B970C0B9F5F97D601D5B73E7B0BF5 +S123C51B970C0B9F5F97D601D5B73D7B0B5F97D601D5B73CCD8A667B0B5F97D601D66B07A6 +S123C53B7B0B5F97D601D76B0A7B0B5F975C89AE01D5CD88455B021F087B0A5F974F02016D +S123C55B1B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA12C +S123C57B7825F0AE000ACD8C28AC00CABCB62EA1122703CCC610B62FA10226797B0BCD8E39 +S123C59BE24D2603CCCABC7B0BAB0F6B0B7B0B5F97724D01D526043F032004350100037BC7 +S123C5BB0B5F97D601D66B077B0B5F97D601D76B0A7B0B5F975C89AE01D5CD88455B021FA2 +S123C5DB087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97723C +S123C5FB4F01D50C0C7B0CA17825F0AE000ACD8C28AC00CABCB62EA1132703CCC755B62F30 +S123C61BA1032703CCC7557B0BCD8EE24D2603CCCABC7B0BAB0F6B0B3D032703CCC7397B53 +S123C63B0B5F97D601D5A10126257B0B5F97724D01D626063F00AC00C6FE7B0B5F97D60101 +S123C65BD6A1012703CCC6FE35010000CCC6FE7B0B5F97D601D5A102261F7B0B5F97724D78 +S123C67B01D626043F01207B7B0B5F97D601D6A101267035010001206A7B0B5F97D601D575 +S123C69BA103261F7B0B5F97724D01D626043F0220517B0B5F97D601D6A101264635010037 +S123C6BB0220407B0B5F97D601D5A10426167B0B5F97724D01D626067211008420257210E4 +S123C6DB0084201F7B0B5F97D601D5A10526147B0B5F97724D01D626067213008420047293 +S123C6FB1200847B0B5F97D601D76B077B0B5F97D601D86B0A7B0B5F975C5C89AE01D5CD3B +S123C71B88455B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0CA0 +S123C73B7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C28AC00CABCB62EA1162703C9 +S123C75BCCC81EB62FA1042703CCC81E7B0BCD8EE24D2603CCCABC7B0BAB0F6B0B7B0B5F7C +S123C77B97D601D54A6B0C7B0C5F977B0B905F909790D601D6D7010B7B0C5F977B0B905F6B +S123C79B909790D601D7D701157B0C5F977B0B905F909790D601D8D7011F7B0C5F977B0BD6 +S123C7BB905F909790D601D9D701297B0B5F97D601DA6B077B0B5F97D601DB6B0A7B0B5FDC +S123C7DB971C000589AE01D5CD88455B021F087B0A5F974F02011B0724015C0213082603A1 +S123C7FB7B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C28AC01 +S123C81B00CABCB62EA1162703CCC8F8B62FA1052703CCC8F87B0BCD8EE24D2603CCCABC56 +S123C83B7B0BAB0F6B0B7B0B5F97D601D5A102240B7B0B5F97D601D5B71F20497B0B5F9746 +S123C85BD601D5A102263E7B0B5F97D601D76B067B0B5F97D601D65F974F02011B062401B4 +S123C87B5CB7259FB7247B0B5F97D601D96B067B0B5F97D601D85F974F02011B0624015C35 +S123C89BB7239FB7227B0B5F97D601DA6B077B0B5F97D601DB6B0A7B0B5F971C000589AE11 +S123C8BB01D5CD88455B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B81 +S123C8DB0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C28AC00CABCB62EA143 +S123C8FB112669B62FA10626637B0BCD8EE24D273F7B0BAB0F6B0B7B0B5F97D601D56B079E +S123C91B7B0B5F97D601D66B0A7B0B5F9789AE01D5CD88455B021F087B0A5F974F02011BCB +S123C93B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA178EB +S123C95B25F0AE000ACD8C28AC00CABCB62EA1252703CCCA35B62FA1072703CCCA357B0B91 +S123C97BCD8EE24D2603CCCABC7B0BAB0F6B0B0F0C7B0C5F97897B0D5F1B0E24015C02D653 +S123C99B01D585D701490C0C7B0CA11425E37B0B5F1B0C24015C02D601D56B077B0B5F1BF3 +S123C9BB0C24015C02D601D66B0A7B0B5F1B0C24015C028901AE01D5CD88455B021F087B71 +S123C9DB0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F016B +S123C9FBD50C0C7B0CA17825F035EA002D4BFF5FA61495CD92A784A607CD8FF872060081AE +S123CA1B002405A630CDA2DDA630CDA8AD72150083AE000ACD8C28CCCABCB62EA11326F76A +S123CA3BB62FA10A267B7B0BCD8EE24D27737B0BAB0F6B0B7B0B5F97D601D56B0C7B0C5FC1 +S123CA5B977B0B905F909790D601D6D701007B0B5F97D601D76B077B0B5F97D601D86B0A33 +S123CA7B7B0B5F975C5C89AE01D5CD88455B021F087B0A5F974F02011B0724015C021308AB +S123CA9B26037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C09 +S123CABB280D0A2727B62FA1012721B62FA107271BB62FA1082715B62FA109270F4BFF5FF4 +S123CADBA64795CD92A784A652CD90AFCD9A7CAC00CD75AE81EC89AE01D5CDD2485B02BF2B +S123CAFB32BE3227330F0C7B0C5F97724F01D50C0C7B0CA17825F0721E0081A631CDA14FFA +S123CB1BA631CDA209A631CDA2663F12721E0084351F0021AC00CD75AE817E89AE01D5CDAC +S123CB3BD2485B02BF32BE3227300F0C7B0C5F97724F01D50C0C7B0CA17825F0721600861D +S123CB5B721B008272170081721A00833F12721F008435DC0021AC00CD75AE816389AE013E +S123CB7BD5CDD2485B02BF32BE3227260F0C7B0C5F97724F01D50C0C7B0CA17825F0721FC2 +S123CB9B008472170084721A008372170086AC00CD75AE817289AE01D5CDD2485B02BF32F6 +S123CBBBBE3227350F0C7B0C5F97724F01D50C0C7B0CA17825F072170086721A008272116E +S123CBDB0086CDA3CE3F16A631CDA440A630CDA8AD35970021AC00CD75AE81F289AE01D594 +S123CBFBCDD2485B02BF32BE32272C0F0C7B0C5F97724F01D50C0C7B0CA17825F07216001A +S123CC1B8172160083AE00C8CD8C2835A10021721D0086AC00CD75AE81FC89AE01D5CDD2A1 +S123CC3B485B02BF32BE32271A0F0C7B0C5F97724F01D50C0C7B0CA17825F072180086AC56 +S123CC5B00CD75AE81DB89AE01D5CDD2485B02BF32BE32271A0F0C7B0C5F97724F01D50CBB +S123CC7B0C7B0CA17825F072160081AC00CD75AE820689AE01D5CDD2485B02BF32BE32264F +S123CC9B12AE820D89AE01D5CDD2485B02BF32BE3227300F0C7B0C5F97724F01D50C0C7BDB +S123CCBB0CA17825F0721700817213008672150083AE00C8CD8C2835A00021721C0086AC4F +S123CCDB00CD75AE81C589AE01D5CDD2485B02BF32BE3227170F0C7B0C5F97724F01D50C54 +S123CCFB0C7B0CA17825F0CDA0F1206EAE822389AE01D5CDD2485B02BF32BE3227170F0C8A +S123CD1B7B0C5F97724F01D50C0C7B0CA17825F0CDA0F12045AE81C089AE01D5CDD2485B12 +S123CD3B02BF32BE3227170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0F1201C7202A9 +S123CD5B00860024150F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0F15B0C81725F5290 +S123CD7B44725F5245725F5246725F524335065242352C5245721A5016C6501797C650186E +S123CD9B97725F5014C6501B977218501CC6501D9772185019C6500797C65008AA30C7506A +S123CDBB08C6500997C65005AA30C75005C6500CAAFEC7500CC6500D97C6500E9735085096 +S123CDDB0AC65011AAB8C75011C65012AA44C75012C65013977214500F721250C535B450C3 +S123CDFBC4725F5402725F5401725F54003501540735015401AE0064CD889372105401727F +S123CE1B5F5341350153433507534535FF534635FF534435015340350153419ACD87A6CDD4 +S123CE3B8CA5CD9BA6CDA0F635300017721800813F16CDBF09CDB537CD89A0CDB365CDA9B6 +S123CE5BACCDBBB2CDBD1C20E7B629A17825023F29B62AA17825023F2A720C0082002504E7 +S123CE7B3D162615B629973C299F5F97C65241D701D53F277218008280B62A973C2A9F5FC2 +S123CE9B97C65241D7015D20EF720C008200241CB62BB12C220E3C2BB62B5F97D6024DC7E7 +S123CEBB52412008721D0082721F524580897200008500244F720000810024040F02207A26 +S123CEDB7204008500241BB61C5F975AA602CDD5CBD6010B5F97A60ACDD5C5D682356B02D9 +S123CEFB205872060085002451B61C5F975AA602CDD5CBD6011F5F97A60ACDD5C5D6823562 +S123CF1B6B022036720000820024217200008100240AB61DA10826040F02201EB63F5F97F5 +S123CF3BA60ACDD5C5D682356B02200EB63F5F97A60ACDD5C5D682356B027B02A4F04EA494 +S123CF5B0F6B017B02A40F6B02720200820024067B01AA016B014B047B02974F95CD8C4007 +S123CF7B844B047B0397A60895CD8C40840F02720E0081002407720A00830025077206006A +S123CF9B8600244D720600810024087B02AA016B022011720200820024087B02AA016B02D9 +S123CFBB20020F02720A00820024087B02AA0E6B022011720200820024087B02AA0F6B025D +S123CFDB20020F02720600860024067B02AA016B024B047B0397A61E95CD8C408485813B27 +S123CFFB004ABE48893B004DBE4B89725F53423C15B615A1322404AC00D2113F1572060047 +S123D01B81002519720A0082002412BE081C0001BF08A3019025065FBF08CDA0F1720600F9 +S123D03B810024035FBF08901000813C14B614A10625063F14901200823C10B610A128257F +S123D05B11720C008100240A3F10721D008172140086720C00810025023F10720800810098 +S123D07B241C720200810024153C0FB60FA10F250D72080081002404721900813F0F72083A +S123D09B00810025023F0F720A008600241C720200810024153C43B643A10A250D720A003A +S123D0BB86002404721B00863F43720A00860025023F43720800810025303C0EB60EA13232 +S123D0DB2528721800813F0E72000082002406721100823F1D7200008500240E72110085DC +S123D0FB3F1C7215008572170085720800810024023F0E7206008100241C720A00820024D3 +S123D11B157204008300240E3C13B613A14525063F1372180083720400830025023F137244 +S123D13B0800830024257206008100241E720A00820024175FBF04BE061C0001BF06A3011C +S123D15B9125325FBF06CDA0F1202A720800830025237206008100241C720A008200241547 +S123D17B5FBF06BE041C0001BF04A3019125065FBF04CDA0F1720C00860024103C0DB60DA6 +S123D19BA15B25083C353F0D721E0086720C00860025023F0D7206008600240D3C0CB60CC4 +S123D1BBA15B25053F0CCDA0F1720200810024023F0C720E0084002415720E008100240EAB +S123D1DB3C12B612A12325063F1272160084720E00840025023F1272080085002415BE0A52 +S123D1FB1C0001BF0AA303E9250C5FBF0A7214008420035FBF0A720800820024173C27B69D +S123D21B27A10B250F3F2772190082721600824529283F2985BF4B32004D85BF4832004A57 +S123D23B80BF485A5C7D26FC72B000488189520420261F011E091F03F626041E05201F1EDA +S123D25B01F61E03F127071E055C1F05200A1E015C1F011E035C20DE1E05F626D55F5B06C1 +S123D27B81E60388E60288E60188F626040D01270EA880200AE60388E60288E60188F6883B +S123D29B1A02270BBE44260A85BF4485BF46815B048190893F495839499EB7481E035839B2 +S123D2BB499E5FB048271F972228A1E9251E409716057B04AA804490565A26FA6B04170553 +S123D2DB721E0045202C721E00452020206B908520B6A11824F8BB48B74890BE46B645AA73 +S123D2FB804490565A26FAB74590BF467B04AA806B04BE46B64534492204241E261C72F0BA +S123D31B05120424073349435026014C4D2B1E26165D2613BF46BF44201F72FB05190424C4 +S123D33B0C46563C4820063A4858492AFABF464897B64895344956BF4490855B0481B644F9 +S123D35BF4B749B644F82A05F82B1B201DB644F0261AB645E101260CB646E1022606B647DD +S123D37BE103270E2404A6FF2002A601720F004901409C81B644BA452711E60388E60288A5 +S123D39BE60188F6881A0226035B048190897B03720F004404A8806B03AA80080449B748E8 +S123D3BB0604B645721E004548B64449B048AB7FB7443518004907030803B645BE4690583A +S123D3DB39480703250A1104250D22041305250772F0051204905C584909033A4926DFB66F +S123D3FB482B059058493A44480803364446B74590BF4690855B048189CDD29085CCD5B3BD +S123D41BB644BA452712E60388E60288FE891E012607BF44BF465B04817B01720F004404DA +S123D43BA8806B01AA800802490602A07EB748B645721E004548B64449BB48B7447B02BE03 +S123D45B4442BF487B03BE44423F4AAD5E7B04BE44429FAD647B02BE4542AD4F7B03BE4518 +S123D47B42AD537B04BE45423F46AD5C7B02BE4642AD437B03BE4642AD4E7B04BE46429E24 +S123D49BBB4624063C452602AD46BE49B6482B06384559493A444808013644463845B74549 +S123D4BBBF462404721000475B048172BB0049BF4924023C48819FBB45B7459EB94AB74A91 +S123D4DB24F3BE485CBF488172BB0045BF4524E53C4A27EE81CDD4F6BE468189BE4427556E +S123D4FB4F5802A07F2A075FBF44BF4620479089A1372AF3565E90BE46A01727272A14406D +S123D51BA1102B0790935FA01027195490564A26FA2011A1102B0793905FA0102706905898 +S123D53B594A26FA3D442A0653905026015C90BF46BF449085858188BF49909F5E42BF4889 +S123D55BBE49909E4272BB0048BF48BE49909F423F4A72BB004984813F47BF4526033F4407 +S123D57B814545442A0350BF45A68E5D2B0E3D452606A686BE462B044A582AFC5838444603 +S123D59B56BF45B7448188F6B744E601B745E602B746E603B747848188B644F7B645E7010D +S123D5BBB646E702B647E70384813580004820023F485D2A095072100048721200484D2AE8 +S123D5DB0540901200486237482A065F9724055081270150813580004B20023F4B905D2A40 +S123D5FB0A90507210004B7212004B4D2A05409012004B9062374B2A09905F909724079065 +S10BD61B508127029050818028 +S12386C4000000000000000000000000000000000000000000000030000000000000000062 +S11D86E44E00001E0005000000000000000000000000000000000000000007 +S12386FE000000000000000000000000000000000000000000000000000000000000000058 +S123871E00000000000000000000000000000000000000000000000000000026E20000002F +S120873E0000000000000000007777772E6966697368372E636F6D000000000000D0 +S12380008200875B8200D6228200D6228200D6228200D6228200D6228200D6228200D622A2 +S12380208200D6228200D6228200D6228200D6228200D6228200D6228200D6228200D6226C +S12380408200D6228200D6228200D6228200D6228200D6228200D6228200CEA48200CE6498 +S12380608200D6228200CFFA8200D6228200D6228200D6228200D6228200D6228200D6225B +S11086B786C462000086FE640100875B003B +S903FFFFFE diff --git a/QR/设备相关/烧录/源码/0控 release(2016-03-03-0942).rar b/QR/设备相关/烧录/源码/0控 release(2016-03-03-0942).rar new file mode 100644 index 0000000..4ad3860 Binary files /dev/null and b/QR/设备相关/烧录/源码/0控 release(2016-03-03-0942).rar differ diff --git a/QR/设备相关/烧录/源码/2控 release(2016-01-27-1240).zip b/QR/设备相关/烧录/源码/2控 release(2016-01-27-1240).zip new file mode 100644 index 0000000..e700655 Binary files /dev/null and b/QR/设备相关/烧录/源码/2控 release(2016-01-27-1240).zip differ diff --git a/QR/设备相关/烧录/源码/3控 release(2016-01-27-1239).zip b/QR/设备相关/烧录/源码/3控 release(2016-01-27-1239).zip new file mode 100644 index 0000000..6906a87 Binary files /dev/null and b/QR/设备相关/烧录/源码/3控 release(2016-01-27-1239).zip differ diff --git a/QR/设备相关/烧录/陈工/2控/wifi-ly81974.s19 b/QR/设备相关/烧录/陈工/2控/wifi-ly81974.s19 new file mode 100644 index 0000000..9b8fe89 --- /dev/null +++ b/QR/设备相关/烧录/陈工/2控/wifi-ly81974.s19 @@ -0,0 +1,576 @@ +S019000044656275675C776966692D6C7938313937342E736D388F +S123808041542B43574D4F44453D41542B43574D4F44455F4445463D3141542B525354410B +S12380A0542B4349504D4F44453D3041542B434946535241542B4349504D55583D314154FF +S12380C02B43574A41505F4445463D41542B43495053544152543D41542B43495053454EA8 +S12380E0443D41542B4349505345525645523D3141542B434950434C4F53453D3041542BDB +S123810043575354415254534D4152543D3141542B4357534D41525453544F507D603E7A82 +S1238120635B5F707F7B00000000000009070B000000000000000000000000050300000091 +S12381400000000000000000004209DE354203C8B441FC106241F12D0E41E6AE1441DCD901 +S12381601641D36A7E41CA76C841C1E35341B9BE7641B2126E41AAA5E341A39999419CF76A +S1238180CE41968D4F419024DD418A9374418520C4417F7CED4175645A416C00004169D741 +S12381A00A4159E35341514BC641494BC64141C28F413A5A1C41335C28412C937441262DDF +S12381C00E41200000411A189341146E97410EFDF34109CED94104D4FD41000C4940F6F9C1 +S12381E0DB40EE3D7040E5D2F140DDBA5E40D6041840CE9FBE40C774BC40C09BA540BA0496 +S12382001840B3B64540ADA9FB40A7CED940A2353F409CD4FD4097AE1440929FBE408DEBB2 +S1238220854089374B4084D4FD40808312407851EB4070E5604069374B4061BA5E405A9F7A +S1238240BE4053B645404D1EB84046C8B44040B439403AD0E540351EB8402F9DB2402A5EFC +S12382603540254FDF40204189401B851E4016F9DB40127EF9400E5604400A1CAC400624F3 +S1238280DD40024DD23FFD2F1A3FF5E3533FEEF9DB3FE831263FE1CAC03FDB645A3FD56038 +S12382A0413FCF7CED3FC9BA5E3FC439583FBEF9DB3FB9BA5E3FB4BC6A3FAFDF3B3FAB431F +S12382C0953FA6A7EF3FA24DD23F9E147A3F99FBE73F95E3533F920C493F8E56043F8A9FA6 +S12382E0BE3F872B023F83B6453F80624D3F7A4A8C72656164790D0A0000000000000000E3 +S12383000000000000000000000000000000006E6F206368616E67650D0A000000000000DF +S1238320000000000000000000000000004F4B0D0A00000000000000000000000000000088 +S12383400000000000000000000000414C524541445920434F4E4E4543540D0A00000000D6 +S12383600000000000000000004F4B0D0A4C696E6B65640D0A0000000000000000000000DA +S1238380000000000000004552524F520D0A00000000000000000000000000000000000038 +S12383A0000000000062757379206E6F77202E2E2E0D0A00000000000000000000000000C1 +S12383C000000054454E44204641494C0D0A0000000000000000000000000000000000001B +S12383E000302C434C4F5345440D0A0000000000000000000000000000000000000000410B +S12384004C524541445920434F4E4E45435445440D0A0D0A4552524F520D0A00002C434F57 +S12384204E4E4543540D0A0D0A4F4B0D0A0000000000000000000000000000696E76616CC7 +S123844069640D0A0000000000000000000000000000000000000000005749464920434F53 +S12384604E4E45435445440D0A00000000000000000000000000005749464920474F542087 +S123848049500D0A00000000000000000000000000000000005749464920444953434F4E19 +S12384A04E4543540D0A000000000000000000000000005749464920444953434F4E4E45D5 +S12384C043540D0A434C4F5345440D0A00000000006D75737420626520300D0A0D0A455254 +S12384E0524F520D0A000000000000000000006275737920732E2E2E0D0A0D0A0000000060 +S1238500000000000000000000000000004641494C0D0A0000000000000000000000000024 +S1238520000000000000000000000000000000000000000000000000000000000000000037 +S11885400000000000000000003F80000040A0000042C7CCCCE2 +S1238558AE07FF9490CE8555AE8557F62720A5602717BF40EE03BF43BE40EE0190F6F75CBD +S1238578905C90B34326F5BE401C000520DDAE00002002F75CA3004626F9AE01002002F743 +S12385985CA302E626F9CDC31320FE89895F1F0120071E011C00011F011E01130325F35B3C +S12385B8048189880F01201E7217500F7B02A580260220067214500F20047215500F72166C +S12385D8500F08020C017B01110325DC5B038189721F500FAE00047B0195ADC6AE00087BB9 +S12385F80295ADBE721E500F858189721F500FAE0003A6A095ADAB08010801AE00067B01C9 +S123861895AD9FA60810055F977B025D2704485A26FC6B027B05977B0295AD86721E500F23 +S12386388581AE0002A68095ADA5AE0006A68095AD9DAE0030A68095AD95AE0052A680950C +S1238658AD8DAE0080A68095AD8581725F505A725F505B35FF505C35AE506435565064C6B5 +S1238678505FA50827F981897B051E01D74000C6505FA50427F98581D640008188720800C5 +S123869884002503CC873AADC20F017B015F97D602DC887B025F97ADCE840C017B01A109B3 +S12386B825E9A6096B017B015F971D0009D602D2887B025F97ADB0840C017B01A11225E610 +S12386D8A6126B017B015F971D0012D602D2887B025F97AD92840C017B01A11B25E6A61B40 +S12386F86B017B015F971D001BD602D2887B025F97CD867F840C017B01A12425E5A6246BC0 +S1238718017B015F971D0024D602D2887B025F97CD867F840C017B01A12D25E5721900841E +S12387382044720A008500243DCD86633B000CAE002DCD867F843B000FAE002ECD867F84AD +S1238758B610A4FF88AE002FCD867F843B000DAE0030CD867F84B60EA4FF88AE0031CD863C +S12387787F84721B00858481880F017B015F97897B035F97CD869085D702D20C017B01A17F +S12387980925E8A6096B017B015F971D0009897B035F97CD869085D702D20C017B01A112A8 +S12387B825E5A6126B017B015F971D0012897B035F97CD869085D702D20C017B01A11B2554 +S12387D8E5A61B6B017B015F971D001B897B035F97CD869085D702D20C017B01A12425E559 +S12387F8A6246B017B015F971D0024897B035F97CD869085D702D20C017B01A12D25E5AE55 +S1238818002DCD8690B70CAE002ECD86905F97BF0FB610B70F3F10AE002FCD8690BB10B7C9 +S12388381024023C0FAE0030CD86905F97BF0DB60EB70D3F0EAE0031CD8690BB0EB70E24CF +S1238858023C0D848172040081002503CC895172000082002403CC89517202008200250308 +S1238878CC8951721D0080721500813C19B619A13C2403CC89513F193C1AB61AA13C2403CF +S1238898CC89513F1A3C1BB61BA1182403CC89513F1B3C1C3C1EB61EA10825043501001E09 +S12388B8B61DA1012724B61DA103271EB61DA1052718B61DA1072712B61DA108270CB61D32 +S12388D8A10A2706B61DA10C260EB61CA12025083F1C721C00802046B61DA1042712B61DDD +S12388F8A105270CB61DA1092706B61DA10B260EB61CA11F25083F1C721C00802020B61FE9 +S1238918A503260EB61CA11E25143F1C721C0080200CB61CA11D25063F1C721C0080720C5E +S123893800800024143C1DB61DA10D250C3F1D3C1FB61FA16425023F1F81888872000087B8 +S1238958002515720E008700250E720C0087002507720000880024247B02970C029F5F975D +S1238978724F0204720000870024207B02970C029F5F97A601D70204AC008A6B7B02970CDB +S1238998029F5F97A601D7020420D9720200870024117B02970C029F5F97A602D70204AC8F +S12389B8008A6B720400870024107B02970C029F5F97A603D70204CC8A6B72060087002454 +S12389D8107B02970C029F5F97A604D70204CC8A6B7208008700240F7B02970C029F5F9781 +S12389F8A605D70204206C720A008700240F7B02970C029F5F97A606D702042056720C00DD +S1238A188700240F7B02970C029F5F97A607D702042040720E008700240F7B02970C029FE4 +S1238A385F97A608D70204202A7200008800240F7B02970C029F5F97A609D7020420147239 +S1238A5802008800240D7B02970C029F5F97A60AD702040F017B025F1B0124015C027B01F4 +S1238A78905F909790D602AAD702040C017B01A10625E27B021B016B020F0172000087008F +S1238A982515720E008700250E720C0087002507720000880024317B025F1B0124015C024B +S1238AB8724F02040C017B01A10625CF7B021B016B02720C00870024277B02970C029F5F39 +S1238AD897A614D70204206C7B025F1B0124015C027B01905F909790D602A4D7020420C4E6 +S1238AF87200008700240F7B02970C029F5F97A618D70204203E720E008700252A720200B4 +S1238B18870025237204008700251C720600870025157208008700250E720A008700250790 +S1238B387202008800240F7B02970C029F5F97A663D702048581720000880024F77B02971E +S1238B580C029F5F97A616D7020420E889890F02202C7B0397A61E42011B0224015C02D6B4 +S1238B7882F16B01B6095F100424015A1B0224015C02D60182110127034F200A0C027B0210 +S1238B98110425CEA6015B04818888721D00855F97D6018AC102AA266A7B025F97D6018BDD +S1238BB8C102AB265E7B025F97D6018CC102AC26527B025F97D6018DC102AD26467B025F5B +S1238BD897D6018EC102AE263A7B025F97D6018FC102AF262E7B025F97D60190B103262336 +S1238BF80F017B015F97897B045F1B0324015C02D6018485D702A40C017B01A10625E372C8 +S1238C181C0085858189B6095F971D0022D60182A1532703CC917EB6095F971D0021D601F8 +S1238C3882A1542703CC917EB6095F971D0020D60182A1412703CC917EB6095F971D001F79 +S1238C58D60182A14D2703CC917EB6095F971D001ED60182A1412703CC917EB6095F971DAA +S1238C78001DD60182A1432703CC917EB6095F971D002CD60182A1222604725F02B3A62DDC +S1238C986B010F02B6095F100124015A100224015A02D60182A12E27747B02A1012620B61C +S1238CB8095F100124015A100224015A02D6018297A60A429FA0E0CB02B3C702B320437B32 +S1238CD802A1022620B6095F100124015A100224015A02D6018297A664429FA0C0CB02B391 +S1238CF8C702B3201D0D022619B6095F100124015A100224015A02D60182A030CB02B3C7A0 +S1238D1802B30C027B02A1032403CC8C9C0C027B011B026B01725F02B20F02B6095F100160 +S1238D3824015A100224015A02D60182A12E27747B02A1012620B6095F100124015A10021D +S1238D5824015A02D6018297A60A429FA0E0CB02B2C702B220437B02A1022620B6095F1084 +S1238D780124015A100224015A02D6018297A664429FA0C0CB02B2C702B2201D0D02261904 +S1238D98B6095F100124015A100224015A02D60182A030CB02B2C702B20C027B02A1032400 +S1238DB803CC8D330C027B011B026B01725F02B10F02B6095F100124015A100224015A021F +S1238DD8D60182A12E27747B02A1012620B6095F100124015A100224015A02D6018297A678 +S1238DF80A429FA0E0CB02B1C702B120437B02A1022620B6095F100124015A100224015AEC +S1238E1802D6018297A664429FA0C0CB02B1C702B1201D0D022619B6095F100124015A10B8 +S1238E380224015A02D60182A030CB02B1C702B10C027B02A1032403CC8DCA0C027B011B54 +S1238E58026B01725F02B00F02B6095F100124015A100224015A02D60182A12E27747B0273 +S1238E78A1012620B6095F100124015A100224015A02D6018297A60A429FA0E0CB02B0C768 +S1238E9802B020437B02A1022620B6095F100124015A100224015A02D6018297A664429F1F +S1238EB8A0C0CB02B0C702B0201D0D022619B6095F100124015A100224015A02D60182A07B +S1238ED830CB02B0C702B00C027B02A1032403CC8E617B0197B6095F971D001AD60182A146 +S1238EF8402415B6095F971D001AD6018297A610429FA0006B012013B6095F971D001AD669 +S1238F18018297A610429FA0706B01B6095F971D0019D60182A1402412B6095F971D0019C2 +S1238F38D60182A0301B016B012010B6095F971D0019D60182A0571B016B017B01C702AA82 +S1238F587B0197B6095F971D0017D60182A1402415B6095F971D0017D6018297A610429F16 +S1238F78A0006B012013B6095F971D0017D6018297A610429FA0706B01B6095F971D0016C2 +S1238F98D60182A1402412B6095F971D0016D60182A0301B016B012010B6095F971D001694 +S1238FB8D60182A0571B016B017B01C702AB7B0197B6095F971D0014D60182A1402415B6AB +S1238FD8095F971D0014D6018297A610429FA0006B012013B6095F971D0014D6018297A603 +S1238FF810429FA0706B01B6095F971D0013D60182A1402412B6095F971D0013D60182A0B5 +S1239018301B016B012010B6095F971D0013D60182A0571B016B017B01C702AC7B0197B6D5 +S1239038095F971D0011D60182A1402415B6095F971D0011D6018297A610429FA0006B01FE +S12390582013B6095F971D0011D6018297A610429FA0706B01B6095F971D0010D60182A1FF +S1239078402412B6095F971D0010D60182A0301B016B012010B6095F971D0010D60182A0C0 +S1239098571B016B017B01C702AD7B0197B6095F971D000ED60182A1402415B6095F971DAB +S12390B8000ED6018297A610429FA0006B012013B6095F971D000ED6018297A610429FA0B9 +S12390D8706B01B6095F971D000DD60182A1402412B6095F971D000DD60182A0301B016BBA +S12390F8012010B6095F971D000DD60182A0571B016B017B01C702AE7B0197B6095F971D94 +S1239118000BD60182A1402415B6095F971D000BD6018297A610429FA0006B012013B60953 +S12391385F971D000BD6018297A610429FA0706B01B6095F971D000AD60182A1402412B6F0 +S1239158095F971D000AD60182A0301B016B012010B6095F971D000AD60182A0571B016B39 +S1239178017B01C702AF8581880F017B015F97D680D7D702040C017B01A10B25EE720C00FE +S12391988700244935800007B600A106260B7B015F97A631D70204200FB600A10126097B1E +S12391B8015F97A630D702040C017B015F97A62CD702040C017B015F97A632D702040C017A +S12391D87B015F97A630D70204AC0092BE72000087002431358100077B015F97A630D70226 +S12391F8040C017B015F97A62CD702040C017B015F97A632D702040C017B015F97A634D7BD +S12392180204CC92BE720E0087002430358200077B015F97A630D702040C017B015F97A6AD +S12392382CD702040C017B015F97A639D702040C017B015F97A639D70204206A720200870E +S12392580025237204008700251C720600870025157208008700250E720A0087002507725E +S123927802008800246B358200077202008300240B7B015F97A630D7020420097B015F9715 +S1239298A631D702040C017B015F97A62CD702040C017B015F97A639D702040C017B015FAD +S12392B897A639D702040C017B015F97A60DD702040C017B015F97A60AD702047B01B705EC +S12392D83F065502045241721C0082721E52458481720000880024CE35830007720A00825A +S12392F800240B7B015F97A630D7020420097B015F97A631D702040C017B015F97A62CD787 +S123931802040C017B015F97A632D702040C017B015F97A632D70204208C720400840024F9 +S123933816720C008200250F3D8726043D882707CD91807215008481894FCD8952A60F6BDC +S123935802720E0080002406350102132004725F02130C027B025F97A601D70204720000F9 +S12393788000240D0C027B025F97A601D70204200A0C027B025F97724F02040C027B025FBF +S123939897A602D702047202008000240D0C027B025F97A601D70204200A0C027B025F97C0 +S12393B8724F02040C027B025F97A603D702047204008000240D0C027B025F97A601D7029B +S12393D804200A0C027B025F97724F02040C027B025F97A604D702047206008000240D0CBE +S12393F8027B025F97A601D70204200A0C027B025F97724F02040C027B025F97A605D702E1 +S1239418047208008000240D0C027B025F97A601D70204200A0C027B025F97724F02040F7B +S1239438010C027B025F977B014CD702040C027B025F977B01905F909790D602DCD70204B5 +S12394580C027B025F977B01905F909790D602D2D702040C027B025F977B01905F90979023 +S1239478D602C8D702040C027B025F977B01905F909790D602BED702040C027B025F977B41 +S123949801905F909790D602B4D702040C017B01A10A258D0C027B025F97B611D702040C89 +S12394B8027B025F97B612A4FFD702040C027B025F97724F02040C027B025F97724F020443 +S12394D80C027B025F97724F02040C027B025F97724F02040C027B025F97B60CD702040CB4 +S12394F8027B025F97B60DD702040C027B025F97B60EA4FFD702040C027B025F97B60FD759 +S123951802040C027B025F97B610A4FFD702040C027B025F97724F02040C027B025F977227 +S12395384F02047B0285818872040086002503CC96AA720C0082002403CC96AA721500863F +S1239558B607A18026314FCD8952350102133501021435020215725F0216725F02173F06C6 +S1239578351300055502045241721C0082721E52453F07AC0096AAB607A181265A4FCD8927 +S123959852350102133502021435010215A6126B017B015F977B01905F909772A20012909A +S12395B8D602B0D702040C017B01A11625E3A6156B01725F021A725F021B3F06351700054A +S12395D85502045241721C0082721E52453F873F883F07AC0096AAB607A182261E3F06CD55 +S12395F89350B7055502045241721C0082721E52453F873F883F07AC0096AAB607A18327C4 +S123961803CC96AA4FCD8952A60F6B0155000B02130C017B015F97B611D702040C017B01E6 +S12396385F97B612A4FFD702043D0B261A0C017B015F97B60DD702040C017B015F97B60EE6 +S1239658A4FFD70204201EB60BA10126180C017B015F97B60FD702040C017B015F97B61029 +S1239678A4FFD702040C017B015F97724F02040C017B015F97724F02043F067B01B70555F0 +S123969802045241721C0082721E52453F873F883F07848152033F0372060082002503CC81 +S12396B8A255721700824508093F080F02200C7B025F97D60100D701820C027B02B10925A4 +S12396D8EE721D00850F0320797B035F97D60182A10D266C7B035F97D60183A10A26617B39 +S12396F8035F97D60184A12B26567B035F97D60185A149264B7B035F97D60186A15026405F +S12397187B035F97D60187A14426357B035F97D60188A12C262A7B035F97D6018AA12C2663 +S12397381F721C0085720C0085002503CC9CAE7B035F97D60189A130261072120083200E8A +S12397580C037B03B109258120DB721300830F027B035F1B0224015C02D6018BA13A260A02 +S12397787B031B02AB0A6B0320237B035F1B0224015C02D6018BA0306B01B60397A60A426F +S12397989F1B01B7030C027B02A10525C37B03CD8BA1720C0085002503CCA2557B035F9746 +S12397B8D60183A1012703CC988FB603A1192703CC988F7B03AB0F6B033F28721400833F8F +S12397D833AE0012A68095CD85E7721C00817B035F97D601836B017B035F97D601825F977A +S12397F84F02011B0124015C02A664CDC7569FB71F7B035F97D60184B71D7B035F97D60105 +S123981885B71C7B035F97D60186B71B7B035F97D60187B71A7B035F97D60188B7197B036D +S12398385F97D60189A10126063507001E200A7B035F97D601894AB71E721B00865FBF2C14 +S123985872040084002519720C00820025123D07260E721E0087721400843F04AC00A255FE +S1239878B604A1242403CCA255721E0087721400843F04AC00A2557B035F97D60183A102EB +S12398982673B603A112266D7B03AB0F6B033F28721400833F33AE0012A68095CD85E77B5D +S12398B8035F97724D01822606721F0080200F7B035F97D60182A1012604721E00807204C6 +S12398D80084002519720C00820025123D07260E72120087721400843F04AC00A255B60446 +S12398F8A1242403CCA25572120087721400843F04AC00A2557B035F97D60183A103270306 +S1239918CC99DFB603A1132703CC99DF7B03AB0F6B033F28721400833F33AE0012A6809509 +S1239938CD85E7720E00800025667B035F97D60182A10126297B035F97724D0183260A7230 +S12399581100807214008220477B035F97D60183A101263C721000807214008220327B033F +S12399785F97D60182A10226277B035F97724D0183260A721300807214008220137B035F88 +S123999897D60183A1012608721200807214008272040084002519720C00820025123D072B +S12399B8260E72140087721400843F04AC00A255B604A1242403CCA255721400877214005E +S12399D8843F04AC00A2557B035F97D60183A1042703CC9AA4B603A1162703CC9AA47B0338 +S12399F8AB0F6B033F28721400833F33AE0012A68095CD85E77B035F97D601825F975A7BF5 +S1239A1803905F909790D60183D702D27B035F97D601825F975A7B03905F909790D60184E0 +S1239A38D702C87B035F97D601825F975A7B03905F909790D60185D702BE7B035F97D601EA +S1239A58825F975A7B03905F909790D60186D702B47218008472040084002519720C0082C4 +S1239A780025123D07260E72160087721400843F04AC00A255B604A1242403CCA25572162B +S1239A980087721400843F04AC00A2557B035F97D60183A1052703CC9B76B603A11627031E +S1239AB8CC9B767B03AB0F6B033F28721400833F33AE0012A68095CD85E77B035F97724D3E +S1239AD80182270B7B035F97D60182A101262D7B035F97D60182B70C721A00857204008458 +S1239AF8002564720C008200255D3D07265972180087721400843F04AC00A2557B035F9707 +S1239B18D60182A10226D17B035F97D601846B017B035F97D601835F974F02011B012401A4 +S1239B385CB70E9FB70D7B035F97D601866B017B035F97D601855F974F02011B0124015C93 +S1239B58B7109FB70F2091B604A1242403CCA25572180087721400843F04AC00A2557B0324 +S1239B785F97D60183A1062645B603A111263F7B03AB0F6B033F2872040084002519720CD4 +S1239B9800820025123D07260E721A0087721400843F04AC00A255B604A1242403CCA2550C +S1239BB8721A0087721400843F04AC00A2557B035F97D60183A10A266FB603A11326697B01 +S1239BD803AB0F6B033F28721400833F33AE0012A68095CD85E77B035F97D601825F975A8B +S1239BF87B03905F909790D60183D702DC7218008472040084002519720C00820025123D5C +S1239C1807260E72120088721400843F04AC00A255B604A1242403CCA255721200887214F6 +S1239C3800843F04AC00A2557B035F97D60183A1072703CCA255B603A1392703CCA2557B40 +S1239C5803AB0F6B033F28721400833F33AE0012A68095CD85E70F027B025F97897B055F3B +S1239C781B0424015C02D6018285D702907B025F97897B055F1B0424015C02D6019685D799 +S1239C98027C0C027B02A11425CE35010000721E0081AC00A255B6095F975A5AD60182A1AA +S1239CB83E2614B6095F975AD60182A120260872140086AC00A255B607A1802703CC9D5643 +S1239CD8B6095F971D0007D60182A1452670B6095F971D0006D60182A1522662B6095F9759 +S1239CF81D0005D60182A1522654B6095F971D0004D60182A14F2646B6095F971D0003D62A +S1239D180182A1522638B6095F975A5AD60182A10D262BB6095F975AD60182A10A261F3FFB +S1239D380772020086002503CCA255B600A1062703CCA2553C00721F0082AC00A255B60920 +S1239D585F971D0009D60182A1532703CC9DFAB6095F971D0008D60182A14526EFB6095FA5 +S1239D78971D0007D60182A14E2677B6095F971D0006D60182A1442669B6095F971D0004AC +S1239D98D60182A14F265BB6095F971D0003D60182A14B264DB6095F975A5AD60182A10DE0 +S1239DB82640B6095F975AD60182A10A263472020086002406B600A106271D7202008400F7 +S1239DD82503CCA255720E0081002503CCA255B600A1012703CCA2553C00721F0082AC0050 +S1239DF8A255B6095F971D000BD60182A1532703CC9E9EB6095F971D000AD60182A14526B3 +S1239E18EFB6095F971D0009D60182A14E2677B6095F971D0008D60182A1442669B6095FB2 +S1239E38971D0006D60182A146265BB6095F971D0005D60182A141264DB6095F971D000430 +S1239E58D60182A149263FB6095F971D0003D60182A14C2631B6095F975A5AD60182A10D5C +S1239E782624B6095F975AD60182A10A26183F27721800833F287217008372130086721FA9 +S1239E980082AC00A255AE00074F95CD8B644D27557200008300240A3C00721F0082AC0045 +S1239EB8A2553F27721900837210008672150084721D00823F0735010000721B0082721DDD +S1239ED8008172110083721F008672130084721F0081721700867219008672120086721FF2 +S1239EF80082AC00A255AE0004A60295CD8B644D2603CC9FA9B600A1012718B600A10227D5 +S1239F1812B600A103270CB600A1042706B600A105267E72020086002413B600A104260349 +S1239F38CD8C1D3C00721F0082AC00A2557200008300243F720E008600241CB600A1022482 +S1239F5803CCA255B600A1062503CCA2553C00721F0082AC00A255B600A1022403CCA255A2 +S1239F78B600A1042503CCA2553C00721F0082AC00A25572020084002503CCA255720E002A +S1239F9881002503CCA2553C00721F0082AC00A255AE0010A60C95CD8B644D273F72000061 +S1239FB88600243872000083002403CCA2557211008372130084721F0081721700833F2731 +S1239FD87219008335010000721B0082721D00817219008672120086AC00A255AE000DA6E3 +S1239FF80D95CD8B644D274872000083002403CCA2557211008372130084721C0086721F98 +S123A0180081721700833F2772190083721B0082721D0081721900867212008672160086DB +S123A0387210008635010000721F0082AC00A255AE0011A60E95CD8B644D2603CCA0E27216 +S123A0580000860024F67200008300241BB600A103251572110083721C0086721200845FFB +S123A078BF2A72170083205672020084002415721300845FBF2A7212008635010000721F06 +S123A0980082203A720C008600252672170086721000837213008435010000721B008272A5 +S123A0B81D00817219008672130086721F0082200D720A00820024063F2772180083721766 +S123A0D8008672170083AC00A255AE0010A60A95CD8B644D27117202008600240A3C007215 +S123A0F81F0082AC00A255AE000CA60495CD8B644D2717B600A10726117202008600240A03 +S123A1183C00721F0082AC00A255AE000DA60695CD8B644D270F72020086002408721F003F +S123A13882AC00A255AE001CA60995CD8B644D271DB600A1052706B600A1072611720200F1 +S123A1588600240A3C00721F0082AC00A255AE000AA60895CD8B644D2734720A00820024BC +S123A1782D350700003F873F8872150084721D00823F07721B00865FBF2C721B0082721D70 +S123A198008172120086721F0082AC00A255AE0019A60F95CD8B644D270F3F27721800839F +S123A1B83F2872170083CCA255AE0014A61095CD8B644D2721B600A1022706B600A10326E9 +S123A1D8157202008600240E3F27721800833F28721700832067AE000DA61195CD8B644DA5 +S123A1F82618AE000BA60795CD8B644D260CAE0007A60595CD8B644D270E3F277218008329 +S123A2183F28721700832035AE0006A61295CD8B644D272972020084002422720E008100C1 +S123A238241B72130084721F0081721300845FBF2A7212008635010000721F00825B038125 +S123A258880F017B015F97D68099D702040C017B01A10625EE350D020A350A020B3F0635B5 +S123A2780700055502045241721C0082721E0082721E5245721100863F873F8872110083E3 +S123A29872130084721F008684818972020084002503CCA413720E0081002503CCA4137233 +S123A2B80A0082002403CCA413720E0082002403CCA413C65240A480A1802703CCA41372E4 +S123A2D80C0082002403CCA413B600A101261A720C0087002403CCA413721C008772140048 +S123A2F884721E0082AC00A413B600A102263B721D00870F027B025F97D6808AD702040C2C +S123A318027B02A10F25EE350D0213350A02143F06351000055502045241721C0082721E16 +S123A3380082721E5245AC00A413B600A1032703CCA4130F027B025F97D680BED702040C6D +S123A358027B02A10D25EE7B026B017B015F97A622D702040F027B025F97724D0290271B8A +S123A3780C017B015F977B02905F909790D60290D702040C027B02A11425DB0C017B015FB2 +S123A39897A622D702040C017B015F97A62CD702040C017B015F97A622D702040F027B0285 +S123A3B85F97724D027C271B0C017B015F977B02905F909790D6027CD702040C027B02A10D +S123A3D81425DB0C017B015F97A622D702040C017B015F97A60DD702040C017B015F97A6F5 +S123A3F80AD702043F067B01B7055502045241721C0082721E0082721E52458581887202A4 +S123A4180086002503CCA954720A0082002403CCA954720E0082002403CCA954C65240A4CD +S123A43880A1802703CCA954720C0082002403CCA954B600A10126370F017B015F97D680EF +S123A4588AD702040C017B01A10F25EE350D0213350A02143F063510000555020452417292 +S123A4781C0082721E0082721E5245AC00A954B600A102263E720600860024370F017B019E +S123A4985F97D6809FD702040C017B01A10C25EE350D0210350A02113F06350D0005550206 +S123A4B8045241721C0082721E0082721E5245AC00A954B600A10326370F017B015F97D6E8 +S123A4D880B3D702040C017B01A10B25EE350D020F350A02103F06350C00055502045241EB +S123A4F8721C0082721E0082721E5245AC00A954B600A10426370F017B015F97D680ABD73C +S123A51802040C017B01A10825EE350D020C350A020D3F06350900055502045241721C0032 +S123A53882721E0082721E5245AC00A954B600A1052703CCA6150F017B015F97D680CBD714 +S123A55802040C017B01A10C25EE35310210352C0211352202123555021335440214355086 +S123A578021535220216352C021735220218353202193535021A3535021B352E021C3532D7 +S123A598021D3535021E3535021F352E0220353202213535022235350223352E022435324F +S123A5B80225353502263535022735220228352C02293539022A3539022B3535022C3534F0 +S123A5D8022D352C022E3533022F3533023035330231352C023235320233350D0234350AE9 +S123A5F802353F06353100055502045241721C0082721E0082721E5245AC00A954B600A121 +S123A61806261E720C0087002403CCA95472180086721C008772140084721E0082AC00A949 +S123A63854B600A1072703CCA906721D00870F017B015F97D680CBD702040C017B01A10CDB +S123A65825EE72005010002503CCA7A57B015F97A630D702040C017B015F97A62CD7020466 +S123A6780C017B015F97A622D702040C017B015F97A654D702040C017B015F97A643D70203 +S123A698040C017B015F97A650D702040C017B015F97A622D702040C017B015F97A62CD7FC +S123A6B802040C017B015F97A622D702040C017B015F97A677D702040C017B015F97A6773F +S123A6D8D702040C017B015F97A677D702040C017B015F97A62ED702040C017B015F97A6B3 +S123A6F869D702040C017B015F97A666D702040C017B015F97A669D702040C017B015F97A6 +S123A718A673D702040C017B015F97A668D702040C017B015F97A637D702040C017B015F9C +S123A73897A62ED702040C017B015F97A663D702040C017B015F97A66FD702040C017B0156 +S123A7585F97A66DD702040C017B015F97A622D702040C017B015F97A62CD702040C017B1D +S123A778015F97A639D702040C017B015F97A639D702040C017B015F97A635D702040C018B +S123A7987B015F97A635D70204AC00A8D77B015F97A630D702040C017B015F97A62CD702F9 +S123A7B8040C017B015F97A622D702040C017B015F97A654D702040C017B015F97A643D7C0 +S123A7D802040C017B015F97A650D702040C017B015F97A622D702040C017B015F97A62C90 +S123A7F8D702040C017B015F97A622D702040C017B015F97A631D702040C017B015F97A6E4 +S123A81839D702040C017B015F97A632D702040C017B015F97A62ED702040C017B015F9723 +S123A838A631D702040C017B015F97A636D702040C017B015F97A638D702040C017B015FEE +S123A85897A62ED702040C017B015F97A632D702040C017B015F97A62ED702040C017B01A7 +S123A8785F97A631D702040C017B015F97A632D702040C017B015F97A633D702040C017B21 +S123A898015F97A622D702040C017B015F97A62CD702040C017B015F97A639D702040C018A +S123A8B87B015F97A639D702040C017B015F97A635D702040C017B015F97A635D702040CD4 +S123A8D8017B015F97A60DD702040C017B015F97A60AD702043F067B01B7055502045241E2 +S123A8F8721C0082721E0082721E5245204EB600A1082648721A0082721300863F003F35EC +S123A9187204008400251E720C00820025173D07261372100087721400843F04721A0086BD +S123A9385FBF2C2017B604A124251172100087721400843F04721A00865FBF2C8481887214 +S123A958000083002503CCAB94720A0082002403CCAB94720E0082002403CCAB94C6524069 +S123A978A480A1802703CCAB94720C0082002403CCAB94B600A10126370F017B015F97D602 +S123A9988099D702040C017B01A10625EE350D020A350A020B3F0635070005550204524154 +S123A9B8721C0082721E0082721E5245AC00AB94720E0086002503CCAB05B600A102263BE3 +S123A9D80F017B015F97D68080D702040C017B01A10A25EE3532020E350D020F350A0210C4 +S123A9F83F06350C00055502045241721C0082721E0082721E5245AC00AB94B600A103260E +S123AA18370F017B015F97D6809FD702040C017B01A10C25EE350D0210350A02113F063526 +S123AA380D00055502045241721C0082721E0082721E5245AC00AB94B600A10426370F01FE +S123AA587B015F97D680B3D702040C017B01A10B25EE350D020F350A02103F06350C00050B +S123AA785502045241721C0082721E0082721E5245AC00AB94B600A10526370F017B015FF4 +S123AA9897D680E2D702040C017B01A10E25EE350D0212350A02133F06350F000555020410 +S123AAB85241721C0082721E0082721E5245AC00AB94B600A1062703CCAB947211008372A9 +S123AAD81F0086721C0086721200845FBF2A72170083725F02AA725F02AB725F02AC725FFA +S123AAF802AD725F02AE725F02AFCCAB94B600A10226350F017B015F97D6808AD702040C7E +S123AB18017B01A10F25EE350D0213350A02143F06351000055502045241721C0082721E10 +S123AB380082721E52452054B600A10326350F017B015F97D680FDD702040C017B01A1113A +S123AB5825EE350D0215350A02163F06351200055502045241721C0082721E0082721E5293 +S123AB78452019B600A104261372110083721C0086721200845FBF2A721700838481520DCD +S123AB980F0D9C7B0D97A604421C8149CDC732961C0010CDC50B2F080C0D7B0DA16A25E2E1 +S123ABB87B0DA169250CCE85531F0BCE85511F0920797B0DA106240CAE00001F0BAE00009C +S123ABD81F0920677B0D5F97CDC704961C0005CDC7447B0D97A604421D00041C8149CDC75F +S123ABF8327B0D97A604421C8149CDC42E961C0001CDC7447B0D97A604421D00041C8149BA +S123AC18CDC732961C0010CDC42E961C0001CDC541AE854DCDC42EAE8549CDC42E961C001F +S123AC3805CDC442961C0009CDC744961C0009CDC7325B0D81520CC65400A480A18027033C +S123AC58CCACE8C654045F97CDC704961C0005CDC744AE0100CDC704961C0005CDC42E96EA +S123AC781C0001CDC744C654045F97CDC704AE81C1CDC5CD961C0001CDC541961C0009CDBA +S123AC98C7441E0B891E0B89CDAB965B04961C0009CDC744961C0009CDC732AE0013CDC555 +S123ACB8C53C17B617A150251F3F17AE0013CDC732CDC6A257575772BB001154BF11AE0037 +S123ACD800BF15AE0000BF13721F5400721054015B0C813D0C2777BE0F1C0006B311241092 +S123ACF8B60BA101272F3501000B721800852025BE0D1D0006B311230C3D0B27183F0B72C6 +S123AD181800852010BE11B30D230ABE11B30F240435FF000B720800850024327204008447 +S123AD3800251B720C00820025143D0726107219008572100088721400843F042010B604B3 +S123AD58A124250A72100088721400843F048189BE11A30064251BBE11A66462D6811C6B53 +S123AD78027B02A4F04EA40F6B017B02A40F6B0220040F020F01720E008000240F720000B0 +S123AD988100250E7B01AA086B0120067B01AA086B014B047B0297A60195CD8602844B04C2 +S123ADB87B03974F95CD860284BE11A664625F97A60A62D6811C6B027B02A4F04EA40F6B05 +S123ADD8017B02A40F6B027B01AA086B014B047B0297A60395CD8602844B047B0397A60299 +S123ADF895CD860284BE11A60A625F97D6811C6B027B02A4F04EA40F6B017B02A40F6B02F7 +S123AE187B01AA086B014B047B0297A60595CD8602844B047B0397A60495CD86028485817E +S123AE38520372060084002444720000810024050F03CCAEDC720A0084002415B6185F97BC +S123AE58D602D25F97A60ACDC75CD6813A6B032073720C008400246CB6185F97D602BE5FB9 +S123AE7897A60ACDC75CD6813A6B032057720000810024117200008200240AB618A1072623 +S123AE98040F03203F7200008200242AB61B5F97A60ACDC75CA30000260CB618A107260601 +S123AEB8A6076B03201EB61B5F97A60ACDC75CD6813A6B03200EB61B5F97A60ACDC75CD64C +S123AED8813A6B037B03A40F6B017202008400250772020086002406B625A103241B720216 +S123AEF8008400250E72020086002507720A00820024067B01AA086B014B047B0297A60688 +S123AF1895CD86028472060084002443720000810024040F032075720A0084002415B6187B +S123AF385F97D602D25F97A60ACDC756D6811C6B032059720C0084002452B6185F97D60257 +S123AF58BE5F97A60ACDC756D6811C6B03203D720000810024117200008200240AB618A190 +S123AF780826040F03202572000082002410B61B5F97A60ACDC756D6811C6B03200EB61BC3 +S123AF985F97A60ACDC756D6811C6B037B03A4F04EA40F6B027B03A40F6B01720200820011 +S123AFB824067B02AA086B024B047B0397A60E95CD8602844B047B0297A60795CD860284AB +S123AFD872060084002443720000810024040F032075720A0084002415B6185F97D602C893 +S123AFF85F97A60ACDC75CD6811C6B032059720C0084002452B6185F97D602B45F97A60AD7 +S123B018CDC75CD6811C6B03203D720000810024117200008200240AB618A10926040F03E8 +S123B038202572000082002410B61A5F97A60ACDC75CD6811C6B03200EB61A5F97A60ACDCF +S123B058C75CD6811C6B037B03A4F04EA40F6B02B630A1172607720000810025067B02AA40 +S123B078086B027B03A40F6B014B047B0397A60C95CD8602844B047B0297A60D95CD86021E +S123B0988472060084002443720000810024040F032075720A0084002415B6185F97D60216 +S123B0B8C85F97A60ACDC756D6811C6B032059720C0084002452B6185F97D602B45F97A65E +S123B0D80ACDC756D6811C6B03203D720000810024117200008200240AB618A10A26040F26 +S123B0F803202572000082002410B61A5F97A60ACDC756D6811C6B03200EB61A5F97A60ADF +S123B118CDC756D6811C6B037B03A4F04EA40F6B027B02AA086B027B03A40F6B014B047BC5 +S123B1380397A60A95CD8602844B047B0297A60B95CD860284720600840024437200008163 +S123B1580024040F032075720A0084002415B6185F97D602C85F97A60ACDC75CD6811C6BF3 +S123B178032059720C0084002452B6185F97D602B45F97A60ACDC75CD6811C6B03203D7229 +S123B1980000810024117200008200240AB618A10B26040F03202572000082002410B619C9 +S123B1B85F97A60ACDC75CD6811C6B03200EB6195F97A60ACDC75CD6811C6B037B03A4F076 +S123B1D84EA40F6B027B02AA086B027B03A40F6B014B047B0397A61E95CD8602844B047B4C +S123B1F80297A61F95CD86028472060084002443720000810024040F032075720A00840042 +S123B2182415B6185F97D602C85F97A60ACDC756D6811C6B032059720C0084002452B61845 +S123B2385F97D602B45F97A60ACDC756D6811C6B03203D7200008100241172000082002462 +S123B2580AB618A10C26040F03202572000082002410B6195F97A60ACDC756D6811C6B0364 +S123B278200EB6195F97A60ACDC756D6811C6B037B03A4F04EA40F6B02B630A11B26077283 +S123B2980000810025067B02AA086B027B03A40F6B014B047B0397A61C95CD8602844B04CA +S123B2B87B0297A61D95CD8602845B038189720000810024117200008200240AB618A1010B +S123B2D826040F02202572000082002410B61F5F97A60ACDC75CD6811C6B02200EB61F5FFD +S123B2F897A60ACDC75CD6811C6B027B02A4F04EA40F6B017B01AA086B017B02A40F6B0266 +S123B3184B047B0297A61A95CD8602844B047B0397A61B95CD860284720000810024117253 +S123B33800008200240AB618A10226040F02202572000082002410B61F5F97A60ACDC756C3 +S123B358D6811C6B02200EB61F5F97A60ACDC756D6811C6B027B02A4F04EA40F6B017B0283 +S123B378A40F6B027202008400250772020086002406B625A103241B7202008400250E72EE +S123B398020086002507720A00820024067B01AA086B014B047B0297A61895CD8602844B41 +S123B3B8047B0397A61995CD860284720000810024117200008200240AB618A10326040F36 +S123B3D802202572000082002410B61D5F97A60ACDC756D6811C6B02200EB61D5F97A60AF8 +S123B3F8CDC756D6811C6B027B02A4F04EA40F6B017B02A40F6B027200008100240D7200B6 +S123B4180082002406B618A10327217200008200240EB61DA10A25147B01AA086B01200C07 +S123B438B61DA10A25067B01AA086B014B047B0297A61695CD8602844B047B0397A617956A +S123B458CD860284720000810024117200008200240AB618A10426040F02203F72000082AC +S123B47800242AB61C5F97A60ACDC75CA30000260CB618A1042606A60F6B02201EB61C5FF5 +S123B49897A60ACDC75CD6812B6B02200EB61C5F97A60ACDC75CD6812B6B027B02A40F6B4A +S123B4B8024B047B0397A61595CD860284720000810024117200008200240AB618A10526FD +S123B4D8040F02202572000082002410B61C5F97A60ACDC756D6811C6B02200EB61C5F9796 +S123B4F8A60ACDC756D6811C6B027B02A4F04EA40F6B017B02A40F6B02B630A10F27077265 +S123B518020084002406B625A10324067B01AA086B014B047B0297A61395CD8602844B0443 +S123B5387B0397A61495CD860284720000810024117200008200240AB618A10626040F02B8 +S123B5582025B61EA1072611B61E5F975CA60ACDC756D6811C6B02200EB61E5F97A60ACDC2 +S123B578C756D6811C6B027B02A4F04EA40F6B017B02A40F6B027B01AA086B014B047B0231 +S123B59897A61195CD8602844B047B0397A61295CD8602840F02B630A11D2606B625A103E9 +S123B5B82404A60C6B0272000080002415B630A11D270FA6046B0272000081002504A60C3E +S123B5D86B024B047B0397A61095CD860284A60C6B02B630A11E2606B625A10324067B0244 +S123B5F8AA036B0272020080002415B630A11E270FA60E6B0272000081002504A60F6B02AE +S123B6184B047B0397A60F95CD8602848581B61FA16425043563001FB61DA10D2504350CDC +S123B638001DB61CA1202504351F001CB61BA11825043517001BB61AA13C2504353B001A2B +S123B658B619A13C2504353B0019817202500B00253CBE2E1C0001BF2EA3000B2403CCBD6B +S123B6789D351E00305FBF2E72020081002403CCBD9DAE0012A68095CD85E7720E0080004C +S123B69825049012008072120081AC00BD9D7204500B002403CCB75BBE2E1C0001BF2EA3C9 +S123B6B8000B2403CCBD9DBE3A1C0001BF3A351D00305FBF2E72020081002567AE0012A653 +S123B6D88095CD85E772120081720000820024413C18B618A10D250872110082AC00BD9D9A +S123B6F8B618A1052611B61CA1202403CCBD9D351F001CAC00BD9DB618A1072703CCBD9D67 +S123B718B61BA1182403CCBD9D3517001BAC00BD9D720E0080002504901000805FBF3AAC7C +S123B73800BD9DBE3AA300C92403CCBD9D72000082002403CCBD9D7210008235010018ACA3 +S123B75800BD9D7206500B002403CCB9DCBE2E1C0001BF2EA3000B2403CCBD9D351B0030A7 +S123B7785FBF2E72020081002403CCBD9DAE0012A68095CD85E7BE3A1C0001BF3A720200E9 +S123B7988100240ABE3AA300332403CCBD9D72000082002503CCBD9D721200815FBF3AB66E +S123B7B818A1012622B61F5F97A60ACDC75CA30000260AB61FAB5AB71FAC00BD9DB61FA002 +S123B7D80AB71FAC00BD9DB618A102261EB61F5F97A60ACDC756A30000260AB61FAB09B73A +S123B7F81FAC00BD9D3A1FAC00BD9DB618A103260A3A1D350C001DAC00BD9DB618A10426B3 +S123B81848B61DA1022620B61C5F97A60ACDC75CA3000026083C1C3C1CAC00BD9DB61CA0A7 +S123B8380AB71CAC00BD9DB61C5F97A60ACDC75CA30000260AB61CAB1EB71CAC00BD9DB6A4 +S123B8581CA00AB71CAC00BD9DB618A10526479CB61C5F97A60ACDC75CA300032F1AB61C87 +S123B8785F97A60ACDC756A3000026063C1CAC00BD9D3A1CAC00BD9DB61C5F97A60ACDC787 +S123B89856A30000260AB61CAB09B71CAC00BD9D3A1CAC00BD9DB618A1062614B61EA10183 +S123B8B826083507001EAC00BD9D3A1EAC00BD9DB618A1072622B61B5F97A60ACDC75CA3B8 +S123B8D80000260AB61BAB14B71BAC00BD9DB61BA00AB71BAC00BD9DB618A108264B9CB627 +S123B8F81B5F97A60ACDC75CA300022F1EB61B5F97A60ACDC756A30000260AB61BAB03B71F +S123B9181BAC00BD9D3A1BAC00BD9DB61B5F97A60ACDC756A30000260AB61BAB09B71BAC58 +S123B93800BD9D3A1BAC00BD9DB618A1092622B61A5F97A60ACDC75CA30000260AB61AABC2 +S123B95832B71AAC00BD9DB61AA00AB71AAC00BD9DB618A10A261EB61A5F97A60ACDC75654 +S123B978A30000260AB61AAB09B71AAC00BD9D3A1AAC00BD9DB618A10B2622B6195F97A6F6 +S123B9980ACDC75CA30000260AB619AB32B719AC00BD9DB619A00AB719AC00BD9DB618A17E +S123B9B80C2703CCBD9DB6195F97A60ACDC756A30000260AB619AB09B719AC00BD9D3A1931 +S123B9D8AC00BD9D7208500B002403CCBD0FBE2E1C0001BF2EA3000B2403CCBD9D35170074 +S123B9F8305FBF2E72020081002403CCBD9DAE0012A68095CD85E7BE3A1C0001BF3A720237 +S123BA18008100240ABE3AA300332403CCBCE972000082002503CCBCE9721200815FBF3A0B +S123BA38B618A1012629B61F5F97A60ACDC75CA300092611B61FAE000A515F9765909FB7BE +S123BA581FAC00BD9DB61FAB0AB71FAC00BD9DB618A1022629B61F5F97A60ACDC756A30077 +S123BA78092615B61FAE000A515F97659F97A60A429FB71FAC00BD9D3C1FAC00BD9DB6185B +S123BA98A10326133C1DB61DA10D2403CCBD9D3501001DAC00BD9DB618A104265AB61DA1C6 +S123BAB802262A9CB61C5F97A60ACDC75CA300022F11B61CAE000A515F9765909FB71CAC4B +S123BAD800BD9DB61CAB0AB71CAC00BD9D9CB61C5F97A60ACDC75CA300032F11B61CAE0026 +S123BAF80A515F9765909FB71CAC00BD9DB61CAB0AB71CAC00BD9DB618A10526629CB61CA2 +S123BB185F97A60ACDC75CA300032F2A9CB61C5F97A60ACDC756A300002D15B61CAE000A07 +S123BB38515F97659F97A60A429FB71CAC00BD9D3C1CAC00BD9DB61C5F97A60ACDC756A33A +S123BB5800092615B61CAE000A515F97659F97A60A429FB71CAC00BD9D3C1CAC00BD9DB69B +S123BB7818A1062614B61EA10726083501001EAC00BD9D3C1EAC00BD9DB618A107262A9CEA +S123BB98B61B5F97A60ACDC75CA300022F11B61BAE000A515F9765909FB71BAC00BD9DB64B +S123BBB81BAB0AB71BAC00BD9DB618A10826629CB61B5F97A60ACDC75CA300022F2A9CB66F +S123BBD81B5F97A60ACDC756A300032F15B61BAE000A515F97659F97A60A429FB71BAC003A +S123BBF8BD9D3C1BAC00BD9DB61B5F97A60ACDC756A300092615B61BAE000A515F97659F56 +S123BC1897A60A429FB71BAC00BD9D3C1BAC00BD9DB618A109262A9CB61A5F97A60ACDC73D +S123BC385CA300052F11B61AAE000A515F9765909FB71AAC00BD9DB61AAB0AB71AAC00BDAB +S123BC589DB618A10A2629B61A5F97A60ACDC756A300092615B61AAE000A515F97659F97B2 +S123BC78A60A429FB71AAC00BD9D3C1AAC00BD9DB618A10B262A9CB6195F97A60ACDC75C19 +S123BC98A300052F11B619AE000A515F9765909FB719AC00BD9DB619AB0AB719AC00BD9D0E +S123BCB8B618A10C2703CCBD9DB6195F97A60ACDC756A300092615B619AE000A515F976524 +S123BCD89F97A60A429FB719AC00BD9D3C19CCBD9DBE3AA300C925F672120081AE0010A648 +S123BCF88095CD85E7901E0080721400825FBF3A72120081CCBD9D720A501500256BBE2EC4 +S123BD181C0001BF2EA3000B257B350F00305FBF2E7202008100256DBE3A1C0001BF3AA3B7 +S123BD3800C9256172120081AE0012A68095CD85E77200008300254D7202008400254672A3 +S123BD581F008672170086721000837213008435010000721B0082721D008172190086722D +S123BD78130086721F0082201C721300815FBF2E5FBF3A3F3072040083002509AE0010A61B +S123BD988095CD85E78188720E008000252872020080002406721450052004721550057278 +S123BDB800008000240872125005AC00C0D872135005AC00C0D8721F0084721100857213DE +S123BDD800850F017B015F97D602DCA10126137B015F977B01905F909790D602D2D102BEE2 +S123BDF8262C7B015F977B01905F909790D602D2D102BE2703CCBF347B015F977B01905F40 +S123BE18909790D602C8D102B42603CCBF347B015F977B01905F909790D602D2D102BE224F +S123BE38297B015F977B01905F909790D602D2D102BE2703CCBEEC7B015F977B01905F90E1 +S123BE589790D602C8D102B423EA7B015F97D602D2B11B25167B015F97D602D2B11B262C0E +S123BE787B015F97D602C8B11A22217B015F97D602BEB11B25587B015F97D602BEB11B263B +S123BE980B7B015F97D602B4B11A23427B015F97D602D2B11B22167B015F97D602D2B11B45 +S123BEB8267A7B015F97D602C8B11A236F7B015F97D602BEB11B22167B015F97D602BEB192 +S123BED81B26597B015F97D602B4B11A234E721E008420537B015F97D602D2B11B25167B4D +S123BEF8015F97D602D2B11B26327B015F97D602C8B11A22277B015F97D602BEB11B22162F +S123BF187B015F97D602BEB11B26117B015F97D602B4B11A2306721E0084200B0C017B0140 +S123BF38A1022403CCBDDCA6026B017B015F97D602DCA10126137B015F977B01905F90979D +S123BF5890D602D2D102BE262C7B015F977B01905F909790D602D2D102BE2703CCC09B7B0D +S123BF78015F977B01905F909790D602C8D102B42603CCC09B7B015F977B01905F90979081 +S123BF98D602D2D102BE22297B015F977B01905F909790D602D2D102BE2703CCC0537B01AB +S123BFB85F977B01905F909790D602C8D102B423EA7B015F97D602D2B11B25167B015F9784 +S123BFD8D602D2B11B262C7B015F97D602C8B11A22217B015F97D602BEB11B25587B015F31 +S123BFF897D602BEB11B260B7B015F97D602B4B11A23427B015F97D602D2B11B22167B0131 +S123C0185F97D602D2B11B267A7B015F97D602C8B11A236F7B015F97D602BEB11B22167B02 +S123C038015F97D602BEB11B26597B015F97D602B4B11A234E7210008520537B015F97D610 +S123C05802D2B11B25167B015F97D602D2B11B26327B015F97D602C8B11A22277B015F9711 +S123C078D602BEB11B22167B015F97D602BEB11B26117B015F97D602B4B11A23067210008B +S123C09885200B0C017B01A1042403CCBF43720E008400240A72100080721250052008720A +S123C0B8110080721350057200008500240A721200807214500520087213008072155005EC +S123C0D884813B0042BE40893B0045BE4389725F53423C35B635A1322404AC00C2763F351C +S123C0F83C04B604A124250435240004720400830024143D3326043C33200C3C33B633A180 +S123C118042504721500833C26B626A11F25023F2672060081002537BE381C0001BF38BE25 +S123C13838A3003C2529721600815FBF38720000820024047211008272060084002410725C +S123C158170084721B0084721D008472180084720A008600242DBE2C1C0001BF2CA303B754 +S123C1782521721B0086721B0082721D008172190086721100833F0072130086721F0082B7 +S123C198CDA2587202008400242DBE2A1C0001BF2AA304CA252172130084721B0082721D27 +S123C1B8008172190086721100833F0072130086721F0082CDA2587206008300246E3C28B6 +S123C1D8B628A14525663F28720A0082002437720C008100243072040084002517720C002D +S123C1F8820025103D07260C721E0087721400843F042038B604A1242532721E00877214C7 +S123C21800843F04202672020086002507720000830024183D002714B600A109240EB600DE +S123C238A1062604721D0087721F00827208008300242B3C27B627A11F25233F2772190063 +S123C25883721B0082721D008172190086721100833F0072130086721F0082CDA2583C2980 +S123C278B629A11C25183F293C25B625A106250E3F25901200829010008172140081720821 +S123C29800820024183C0AB60AA10525103F0A7219008272160082721600833F2885BF438A +S123C2B832004585BF403200428088C652406B01C652416B01B608A17825023F08B6085F00 +S123C2D8977B01D701003C083F0A72180082848088C652406B01720C008200241CB606B1C1 +S123C2F805240E3C06B6065F97D60204C752412008721D0082721F52458480725F52447283 +S123C3185F5245725F5246725F524335065242725F5240352C5245C6501697721A5017C696 +S123C33850189735205014C65007AA0EC75007C6500897C6500997C6500597C6500C97C69A +S123C358500DAAFFC7500DC6500E9735FF500AC65011AABEC75011C65012AA41C75012C695 +S123C378501397C6500FAA41C7500F721250C535B450C4725F5402725F5401725F54003534 +S123C39801540735015401AE0064CD85A372105401725F5341350153433507534535FF5330 +S123C3B84635FF534435015340350153419A7218500F3F813F823F833F843F853F863F87E5 +S123C3D83F88721600815FBF2172165005CD863ACD87803F003F083F283F27721800837222 +S123C3F8130086721F0082CDA415CD9332CDACEBCD8694CDBD9ECDA2A2CDA956CDB663CD5A +S123C418885DCDAC4DCDAD67CDAE38CDB2C5CD953FCD96AC20D1E60388E60288E60188F696 +S123C43826040D01270EA880200AE60388E60288E60188F6881A02270BBE3C260A85BF3C5B +S123C45885BF3E815B048190893F415839419EB7401E035839419E5FB040271F972228A135 +S123C478E9251E409716057B04AA804490565A26FA6B041705721E003D202C721E003D20A4 +S123C49820206B908520B6A11824F8BB40B74090BE3EB63DAA804490565A26FAB73D90BF93 +S123C4B83E7B04AA806B04BE3EB63D34412204241E261C72F0051204240733414350260126 +S123C4D84C4D2B1E26165D2613BF3EBF3C201F72FB051904240C46563C4020063A4058493D +S123C4F82AFABF3E4897B64095344156BF3C90855B0481B63CF4B741B63CF82A05F82B1BA5 +S123C518201DB63CF0261AB63DE101260CB63EE1022606B63FE103270E2404A6FF2002A6F3 +S123C53801720F004101409C81B63CBA3D2711E60388E60288E60188F6881A0226035B042B +S123C5588190897B03720F003C04A8806B03AA80080449B7400604B63D721E003D48B63CD6 +S123C57849B040AB7FB73C3518004107030803B63DBE3E905839400703250A1104250D22B4 +S123C598041305250772F0051204905C584909033A4126DFB6402B059058493A3C48080381 +S123C5B8363C46B73D90BF3E90855B048189CDC44285CCC744B63CBA3D2712E60388E602FE +S123C5D888FE891E012607BF3CBF3E5B04817B01720F003C04A8806B01AA800802490602B6 +S123C5F8A07EB740B63D721E003D48B63C49BB40B73C7B02BE3C42BF407B03BE3C423F42E6 +S123C618AD5E7B04BE3C429FAD647B02BE3D42AD4F7B03BE3D42AD537B04BE3D423F3EAD31 +S123C6385C7B02BE3E42AD437B03BE3E42AD4E7B04BE3E429EBB3E24063C3D2602AD46BE50 +S123C65841B6402B06383D59493A3C480801363C46383DB73DBF3E24047210003F5B048191 +S123C67872BB0041BF4124023C40819FBB3DB73D9EB942B74224F3BE405CBF408172BB00D2 +S123C6983DBF3D24E53C4227EE81CDC6A8BE3E8189BE3C27554F5802A07F2A075FBF3CBF5F +S123C6B83E20479089A1372AF3565E90BE3EA01727272A1440A1102B0790935FA010271993 +S123C6D85490564A26FA2011A1102B0793905FA01027069058594A26FA3D3C2A06539050A0 +S123C6F826015C90BF3EBF3C908585813F3FBF3D26033F3C81453D3C2A0350BF3DA68E5D91 +S123C7182B0E3D3D2606A686BE3E2B044A582AFC58383C4656BF3DB73C8188F6B73CE601CF +S123C738B73DE602B73EE603B73F848188B63CF7B63DE701B63EE702B63FE7038481358066 +S123C758004020023F405D2A095072100040721200404D2A0540901200406237402A065F70 +S10DC77897240550812701508180A9 +S1238000820085588200C7818200C7818200C7818200C7818200C7818200C7818200C78177 +S12380208200C7818200C7818200C7818200C7818200C7818200C7818200C7818200C781EC +S12380408200C7818200C7818200C7818200C7818200C7818200C7818200C2E88200C2C22E +S12380608200C7818200C0DA8200C7818200C7818200C7818200C7818200C7818200C7815A +S106855585580042 +S903FFFFFE diff --git a/QR/设备相关/烧录/陈工/2控/wifi-ly81974_61.128.s19 b/QR/设备相关/烧录/陈工/2控/wifi-ly81974_61.128.s19 new file mode 100644 index 0000000..f28cda7 --- /dev/null +++ b/QR/设备相关/烧录/陈工/2控/wifi-ly81974_61.128.s19 @@ -0,0 +1,566 @@ +S019000044656275675C776966692D6C7938313937342E736D388F +S123808041542B43574D4F44453D41542B43574D4F44455F4445463D3141542B525354410B +S12380A0542B4349504D4F44453D3041542B434946535241542B4349504D55583D314154FF +S12380C02B43574A41505F4445463D41542B43495053544152543D41542B43495053454EA8 +S12380E0443D41542B4349505345525645523D3141542B434950434C4F53453D3041542BDB +S123810043575354415254534D4152543D3141542B4357534D41525453544F507D603E7A82 +S1238120635B5F707F7B00000000000009070B000000000000000000000000050300000091 +S12381400000000000000000004209DE354203C8B441FC106241F12D0E41E6AE1441DCD901 +S12381601641D36A7E41CA76C841C1E35341B9BE7641B2126E41AAA5E341A39999419CF76A +S1238180CE41968D4F419024DD418A9374418520C4417F7CED4175645A416C00004169D741 +S12381A00A4159E35341514BC641494BC64141C28F413A5A1C41335C28412C937441262DDF +S12381C00E41200000411A189341146E97410EFDF34109CED94104D4FD41000C4940F6F9C1 +S12381E0DB40EE3D7040E5D2F140DDBA5E40D6041840CE9FBE40C774BC40C09BA540BA0496 +S12382001840B3B64540ADA9FB40A7CED940A2353F409CD4FD4097AE1440929FBE408DEBB2 +S1238220854089374B4084D4FD40808312407851EB4070E5604069374B4061BA5E405A9F7A +S1238240BE4053B645404D1EB84046C8B44040B439403AD0E540351EB8402F9DB2402A5EFC +S12382603540254FDF40204189401B851E4016F9DB40127EF9400E5604400A1CAC400624F3 +S1238280DD40024DD23FFD2F1A3FF5E3533FEEF9DB3FE831263FE1CAC03FDB645A3FD56038 +S12382A0413FCF7CED3FC9BA5E3FC439583FBEF9DB3FB9BA5E3FB4BC6A3FAFDF3B3FAB431F +S12382C0953FA6A7EF3FA24DD23F9E147A3F99FBE73F95E3533F920C493F8E56043F8A9FA6 +S12382E0BE3F872B023F83B6453F80624D3F7A4A8C72656164790D0A0000000000000000E3 +S12383000000000000000000000000000000006E6F206368616E67650D0A000000000000DF +S1238320000000000000000000000000004F4B0D0A00000000000000000000000000000088 +S12383400000000000000000000000414C524541445920434F4E4E4543540D0A00000000D6 +S12383600000000000000000004F4B0D0A4C696E6B65640D0A0000000000000000000000DA +S1238380000000000000004552524F520D0A00000000000000000000000000000000000038 +S12383A0000000000062757379206E6F77202E2E2E0D0A00000000000000000000000000C1 +S12383C000000054454E44204641494C0D0A0000000000000000000000000000000000001B +S12383E000302C434C4F5345440D0A0000000000000000000000000000000000000000410B +S12384004C524541445920434F4E4E45435445440D0A0D0A4552524F520D0A00002C434F57 +S12384204E4E4543540D0A0D0A4F4B0D0A0000000000000000000000000000696E76616CC7 +S123844069640D0A0000000000000000000000000000000000000000005749464920434F53 +S12384604E4E45435445440D0A00000000000000000000000000005749464920474F542087 +S123848049500D0A00000000000000000000000000000000005749464920444953434F4E19 +S12384A04E4543540D0A000000000000000000000000005749464920444953434F4E4E45D5 +S12384C043540D0A434C4F5345440D0A00000000006D75737420626520300D0A0D0A455254 +S12384E0524F520D0A000000000000000000006275737920732E2E2E0D0A0D0A0000000060 +S1238500000000000000000000000000004641494C0D0A0000000000000000000000000024 +S1238520000000000000000000000000000000000000000000000000000000000000000037 +S11885400000000000000000003F80000040A0000042C7CCCCE2 +S1238558AE07FF9490CE8555AE8557F62720A5602717BF40EE03BF43BE40EE0190F6F75CBD +S1238578905C90B34326F5BE401C000520DDAE00002002F75CA3004626F9AE01002002F743 +S12385985CA302E626F9CDC1D320FE89895F1F0120071E011C00011F011E01130325F35B7E +S12385B8048189880F01201E7217500F7B02A580260220067214500F20047215500F72166C +S12385D8500F08020C017B01110325DC5B038189721F500FAE00047B0195ADC6AE00087BB9 +S12385F80295ADBE721E500F858189721F500FAE0003A6A095ADAB08010801AE00067B01C9 +S123861895AD9FA60810055F977B025D2704485A26FC6B027B05977B0295AD86721E500F23 +S12386388581AE0002A68095ADA5AE0006A68095AD9DAE0030A68095AD95AE0052A680950C +S1238658AD8DAE0080A68095AD8581725F505A725F505B35FF505C35AE506435565064C6B5 +S1238678505FA50827F981897B051E01D74000C6505FA50427F98581D640008188720800C5 +S123869884002503CC873AADC20F017B015F97D602DC887B025F97ADCE840C017B01A109B3 +S12386B825E9A6096B017B015F971D0009D602D2887B025F97ADB0840C017B01A11225E610 +S12386D8A6126B017B015F971D0012D602D2887B025F97AD92840C017B01A11B25E6A61B40 +S12386F86B017B015F971D001BD602D2887B025F97CD867F840C017B01A12425E5A6246BC0 +S1238718017B015F971D0024D602D2887B025F97CD867F840C017B01A12D25E5721900841E +S12387382044720A008500243DCD86633B000CAE002DCD867F843B000FAE002ECD867F84AD +S1238758B610A4FF88AE002FCD867F843B000DAE0030CD867F84B60EA4FF88AE0031CD863C +S12387787F84721B00858481880F017B015F97897B035F97CD869085D702D20C017B01A17F +S12387980925E8A6096B017B015F971D0009897B035F97CD869085D702D20C017B01A112A8 +S12387B825E5A6126B017B015F971D0012897B035F97CD869085D702D20C017B01A11B2554 +S12387D8E5A61B6B017B015F971D001B897B035F97CD869085D702D20C017B01A12425E559 +S12387F8A6246B017B015F971D0024897B035F97CD869085D702D20C017B01A12D25E5AE55 +S1238818002DCD8690B70CAE002ECD86905F97BF0FB610B70F3F10AE002FCD8690BB10B7C9 +S12388381024023C0FAE0030CD86905F97BF0DB60EB70D3F0EAE0031CD8690BB0EB70E24CF +S1238858023C0D848172040081002503CC895172000082002403CC89517202008200250308 +S1238878CC8951721D0080721500813C19B619A13C2403CC89513F193C1AB61AA13C2403CF +S1238898CC89513F1A3C1BB61BA1182403CC89513F1B3C1C3C1EB61EA10825043501001E09 +S12388B8B61DA1012724B61DA103271EB61DA1052718B61DA1072712B61DA108270CB61D32 +S12388D8A10A2706B61DA10C260EB61CA12025083F1C721C00802046B61DA1042712B61DDD +S12388F8A105270CB61DA1092706B61DA10B260EB61CA11F25083F1C721C00802020B61FE9 +S1238918A503260EB61CA11E25143F1C721C0080200CB61CA11D25063F1C721C0080720C5E +S123893800800024143C1DB61DA10D250C3F1D3C1FB61FA16425023F1F81888872000087B8 +S1238958002515720E008700250E720C0087002507720000880024247B02970C029F5F975D +S1238978724F0204720000870024207B02970C029F5F97A601D70204AC008A6B7B02970CDB +S1238998029F5F97A601D7020420D9720200870024117B02970C029F5F97A602D70204AC8F +S12389B8008A6B720400870024107B02970C029F5F97A603D70204CC8A6B72060087002454 +S12389D8107B02970C029F5F97A604D70204CC8A6B7208008700240F7B02970C029F5F9781 +S12389F8A605D70204206C720A008700240F7B02970C029F5F97A606D702042056720C00DD +S1238A188700240F7B02970C029F5F97A607D702042040720E008700240F7B02970C029FE4 +S1238A385F97A608D70204202A7200008800240F7B02970C029F5F97A609D7020420147239 +S1238A5802008800240D7B02970C029F5F97A60AD702040F017B025F1B0124015C027B01F4 +S1238A78905F909790D602AAD702040C017B01A10625E27B021B016B020F0172000087008F +S1238A982515720E008700250E720C0087002507720000880024317B025F1B0124015C024B +S1238AB8724F02040C017B01A10625CF7B021B016B02720C00870024277B02970C029F5F39 +S1238AD897A614D70204206C7B025F1B0124015C027B01905F909790D602A4D7020420C4E6 +S1238AF87200008700240F7B02970C029F5F97A618D70204203E720E008700252A720200B4 +S1238B18870025237204008700251C720600870025157208008700250E720A008700250790 +S1238B387202008800240F7B02970C029F5F97A663D702048581720000880024F77B02971E +S1238B580C029F5F97A616D7020420E889890F02202C7B0397A61E42011B0224015C02D6B4 +S1238B7882F16B01B6095F100424015A1B0224015C02D60182110127034F200A0C027B0210 +S1238B98110425CEA6015B04818888721D00855F97D6018AC102AA266A7B025F97D6018BDD +S1238BB8C102AB265E7B025F97D6018CC102AC26527B025F97D6018DC102AD26467B025F5B +S1238BD897D6018EC102AE263A7B025F97D6018FC102AF262E7B025F97D60190B103262336 +S1238BF80F017B015F97897B045F1B0324015C02D6018485D702A40C017B01A10625E372C8 +S1238C181C0085858189B6095F971D0022D60182A1532703CC917EB6095F971D0021D601F8 +S1238C3882A1542703CC917EB6095F971D0020D60182A1412703CC917EB6095F971D001F79 +S1238C58D60182A14D2703CC917EB6095F971D001ED60182A1412703CC917EB6095F971DAA +S1238C78001DD60182A1432703CC917EB6095F971D002CD60182A1222604725F02B3A62DDC +S1238C986B010F02B6095F100124015A100224015A02D60182A12E27747B02A1012620B61C +S1238CB8095F100124015A100224015A02D6018297A60A429FA0E0CB02B3C702B320437B32 +S1238CD802A1022620B6095F100124015A100224015A02D6018297A664429FA0C0CB02B391 +S1238CF8C702B3201D0D022619B6095F100124015A100224015A02D60182A030CB02B3C7A0 +S1238D1802B30C027B02A1032403CC8C9C0C027B011B026B01725F02B20F02B6095F100160 +S1238D3824015A100224015A02D60182A12E27747B02A1012620B6095F100124015A10021D +S1238D5824015A02D6018297A60A429FA0E0CB02B2C702B220437B02A1022620B6095F1084 +S1238D780124015A100224015A02D6018297A664429FA0C0CB02B2C702B2201D0D02261904 +S1238D98B6095F100124015A100224015A02D60182A030CB02B2C702B20C027B02A1032400 +S1238DB803CC8D330C027B011B026B01725F02B10F02B6095F100124015A100224015A021F +S1238DD8D60182A12E27747B02A1012620B6095F100124015A100224015A02D6018297A678 +S1238DF80A429FA0E0CB02B1C702B120437B02A1022620B6095F100124015A100224015AEC +S1238E1802D6018297A664429FA0C0CB02B1C702B1201D0D022619B6095F100124015A10B8 +S1238E380224015A02D60182A030CB02B1C702B10C027B02A1032403CC8DCA0C027B011B54 +S1238E58026B01725F02B00F02B6095F100124015A100224015A02D60182A12E27747B0273 +S1238E78A1012620B6095F100124015A100224015A02D6018297A60A429FA0E0CB02B0C768 +S1238E9802B020437B02A1022620B6095F100124015A100224015A02D6018297A664429F1F +S1238EB8A0C0CB02B0C702B0201D0D022619B6095F100124015A100224015A02D60182A07B +S1238ED830CB02B0C702B00C027B02A1032403CC8E617B0197B6095F971D001AD60182A146 +S1238EF8402415B6095F971D001AD6018297A610429FA0006B012013B6095F971D001AD669 +S1238F18018297A610429FA0706B01B6095F971D0019D60182A1402412B6095F971D0019C2 +S1238F38D60182A0301B016B012010B6095F971D0019D60182A0571B016B017B01C702AA82 +S1238F587B0197B6095F971D0017D60182A1402415B6095F971D0017D6018297A610429F16 +S1238F78A0006B012013B6095F971D0017D6018297A610429FA0706B01B6095F971D0016C2 +S1238F98D60182A1402412B6095F971D0016D60182A0301B016B012010B6095F971D001694 +S1238FB8D60182A0571B016B017B01C702AB7B0197B6095F971D0014D60182A1402415B6AB +S1238FD8095F971D0014D6018297A610429FA0006B012013B6095F971D0014D6018297A603 +S1238FF810429FA0706B01B6095F971D0013D60182A1402412B6095F971D0013D60182A0B5 +S1239018301B016B012010B6095F971D0013D60182A0571B016B017B01C702AC7B0197B6D5 +S1239038095F971D0011D60182A1402415B6095F971D0011D6018297A610429FA0006B01FE +S12390582013B6095F971D0011D6018297A610429FA0706B01B6095F971D0010D60182A1FF +S1239078402412B6095F971D0010D60182A0301B016B012010B6095F971D0010D60182A0C0 +S1239098571B016B017B01C702AD7B0197B6095F971D000ED60182A1402415B6095F971DAB +S12390B8000ED6018297A610429FA0006B012013B6095F971D000ED6018297A610429FA0B9 +S12390D8706B01B6095F971D000DD60182A1402412B6095F971D000DD60182A0301B016BBA +S12390F8012010B6095F971D000DD60182A0571B016B017B01C702AE7B0197B6095F971D94 +S1239118000BD60182A1402415B6095F971D000BD6018297A610429FA0006B012013B60953 +S12391385F971D000BD6018297A610429FA0706B01B6095F971D000AD60182A1402412B6F0 +S1239158095F971D000AD60182A0301B016B012010B6095F971D000AD60182A0571B016B39 +S1239178017B01C702AF8581880F017B015F97D680D7D702040C017B01A10B25EE720C00FE +S12391988700244935800007B600A106260B7B015F97A631D70204200FB600A10126097B1E +S12391B8015F97A630D702040C017B015F97A62CD702040C017B015F97A632D702040C017A +S12391D87B015F97A630D70204AC0092BE72000087002431358100077B015F97A630D70226 +S12391F8040C017B015F97A62CD702040C017B015F97A632D702040C017B015F97A634D7BD +S12392180204CC92BE720E0087002430358200077B015F97A630D702040C017B015F97A6AD +S12392382CD702040C017B015F97A639D702040C017B015F97A639D70204206A720200870E +S12392580025237204008700251C720600870025157208008700250E720A0087002507725E +S123927802008800246B358200077202008300240B7B015F97A630D7020420097B015F9715 +S1239298A631D702040C017B015F97A62CD702040C017B015F97A639D702040C017B015FAD +S12392B897A639D702040C017B015F97A60DD702040C017B015F97A60AD702047B01B705EC +S12392D83F065502045241721C0082721E52458481720000880024CE35830007720A00825A +S12392F800240B7B015F97A630D7020420097B015F97A631D702040C017B015F97A62CD787 +S123931802040C017B015F97A632D702040C017B015F97A632D70204208C720400840024F9 +S123933816720C008200250F3D8726043D882707CD91807215008481894FCD8952A60F6BDC +S123935802720E0080002406350102132004725F02130C027B025F97A601D70204720000F9 +S12393788000240D0C027B025F97A601D70204200A0C027B025F97724F02040C027B025FBF +S123939897A602D702047202008000240D0C027B025F97A601D70204200A0C027B025F97C0 +S12393B8724F02040C027B025F97A603D702047204008000240D0C027B025F97A601D7029B +S12393D804200A0C027B025F97724F02040C027B025F97A604D702047206008000240D0CBE +S12393F8027B025F97A601D70204200A0C027B025F97724F02040C027B025F97A605D702E1 +S1239418047208008000240D0C027B025F97A601D70204200A0C027B025F97724F02040F7B +S1239438010C027B025F977B014CD702040C027B025F977B01905F909790D602DCD70204B5 +S12394580C027B025F977B01905F909790D602D2D702040C027B025F977B01905F90979023 +S1239478D602C8D702040C027B025F977B01905F909790D602BED702040C027B025F977B41 +S123949801905F909790D602B4D702040C017B01A10A258D0C027B025F97B611D702040C89 +S12394B8027B025F97B612A4FFD702040C027B025F97724F02040C027B025F97724F020443 +S12394D80C027B025F97724F02040C027B025F97724F02040C027B025F97B60CD702040CB4 +S12394F8027B025F97B60DD702040C027B025F97B60EA4FFD702040C027B025F97B60FD759 +S123951802040C027B025F97B610A4FFD702040C027B025F97724F02040C027B025F977227 +S12395384F02047B0285818872040086002503CC96AA720C0082002403CC96AA721500863F +S1239558B607A18026314FCD8952350102133501021435020215725F0216725F02173F06C6 +S1239578351300055502045241721C0082721E52453F07AC0096AAB607A181265A4FCD8927 +S123959852350102133502021435010215A6126B017B015F977B01905F909772A20012909A +S12395B8D602B0D702040C017B01A11625E3A6156B01725F021A725F021B3F06351700054A +S12395D85502045241721C0082721E52453F873F883F07AC0096AAB607A182261E3F06CD55 +S12395F89350B7055502045241721C0082721E52453F873F883F07AC0096AAB607A18327C4 +S123961803CC96AA4FCD8952A60F6B0155000B02130C017B015F97B611D702040C017B01E6 +S12396385F97B612A4FFD702043D0B261A0C017B015F97B60DD702040C017B015F97B60EE6 +S1239658A4FFD70204201EB60BA10126180C017B015F97B60FD702040C017B015F97B61029 +S1239678A4FFD702040C017B015F97724F02040C017B015F97724F02043F067B01B70555F0 +S123969802045241721C0082721E52453F873F883F07848152033F0372060082002503CC81 +S12396B8A255721700824508093F080F02200C7B025F97D60100D701820C027B02B10925A4 +S12396D8EE721D00850F0320797B035F97D60182A10D266C7B035F97D60183A10A26617B39 +S12396F8035F97D60184A12B26567B035F97D60185A149264B7B035F97D60186A15026405F +S12397187B035F97D60187A14426357B035F97D60188A12C262A7B035F97D6018AA12C2663 +S12397381F721C0085720C0085002503CC9CAE7B035F97D60189A130261072120083200E8A +S12397580C037B03B109258120DB721300830F027B035F1B0224015C02D6018BA13A260A02 +S12397787B031B02AB0A6B0320237B035F1B0224015C02D6018BA0306B01B60397A60A426F +S12397989F1B01B7030C027B02A10525C37B03CD8BA1720C0085002503CCA2557B035F9746 +S12397B8D60183A1012703CC988FB603A1192703CC988F7B03AB0F6B033F28721400833F8F +S12397D833AE0012A68095CD85E7721C00817B035F97D601836B017B035F97D601825F977A +S12397F84F02011B0124015C02A664CDC6169FB71F7B035F97D60184B71D7B035F97D60146 +S123981885B71C7B035F97D60186B71B7B035F97D60187B71A7B035F97D60188B7197B036D +S12398385F97D60189A10126063507001E200A7B035F97D601894AB71E721B00865FBF2C14 +S123985872040084002519720C00820025123D07260E721E0087721400843F04AC00A255FE +S1239878B604A1242403CCA255721E0087721400843F04AC00A2557B035F97D60183A102EB +S12398982673B603A112266D7B03AB0F6B033F28721400833F33AE0012A68095CD85E77B5D +S12398B8035F97724D01822606721F0080200F7B035F97D60182A1012604721E00807204C6 +S12398D80084002519720C00820025123D07260E72120087721400843F04AC00A255B60446 +S12398F8A1242403CCA25572120087721400843F04AC00A2557B035F97D60183A103270306 +S1239918CC99DFB603A1132703CC99DF7B03AB0F6B033F28721400833F33AE0012A6809509 +S1239938CD85E7720E00800025667B035F97D60182A10126297B035F97724D0183260A7230 +S12399581100807214008220477B035F97D60183A101263C721000807214008220327B033F +S12399785F97D60182A10226277B035F97724D0183260A721300807214008220137B035F88 +S123999897D60183A1012608721200807214008272040084002519720C00820025123D072B +S12399B8260E72140087721400843F04AC00A255B604A1242403CCA255721400877214005E +S12399D8843F04AC00A2557B035F97D60183A1042703CC9AA4B603A1162703CC9AA47B0338 +S12399F8AB0F6B033F28721400833F33AE0012A68095CD85E77B035F97D601825F975A7BF5 +S1239A1803905F909790D60183D702D27B035F97D601825F975A7B03905F909790D60184E0 +S1239A38D702C87B035F97D601825F975A7B03905F909790D60185D702BE7B035F97D601EA +S1239A58825F975A7B03905F909790D60186D702B47218008472040084002519720C0082C4 +S1239A780025123D07260E72160087721400843F04AC00A255B604A1242403CCA25572162B +S1239A980087721400843F04AC00A2557B035F97D60183A1052703CC9B76B603A11627031E +S1239AB8CC9B767B03AB0F6B033F28721400833F33AE0012A68095CD85E77B035F97724D3E +S1239AD80182270B7B035F97D60182A101262D7B035F97D60182B70C721A00857204008458 +S1239AF8002564720C008200255D3D07265972180087721400843F04AC00A2557B035F9707 +S1239B18D60182A10226D17B035F97D601846B017B035F97D601835F974F02011B012401A4 +S1239B385CB70E9FB70D7B035F97D601866B017B035F97D601855F974F02011B0124015C93 +S1239B58B7109FB70F2091B604A1242403CCA25572180087721400843F04AC00A2557B0324 +S1239B785F97D60183A1062645B603A111263F7B03AB0F6B033F2872040084002519720CD4 +S1239B9800820025123D07260E721A0087721400843F04AC00A255B604A1242403CCA2550C +S1239BB8721A0087721400843F04AC00A2557B035F97D60183A10A266FB603A11326697B01 +S1239BD803AB0F6B033F28721400833F33AE0012A68095CD85E77B035F97D601825F975A8B +S1239BF87B03905F909790D60183D702DC7218008472040084002519720C00820025123D5C +S1239C1807260E72120088721400843F04AC00A255B604A1242403CCA255721200887214F6 +S1239C3800843F04AC00A2557B035F97D60183A1072703CCA255B603A1392703CCA2557B40 +S1239C5803AB0F6B033F28721400833F33AE0012A68095CD85E70F027B025F97897B055F3B +S1239C781B0424015C02D6018285D702907B025F97897B055F1B0424015C02D6019685D799 +S1239C98027C0C027B02A11425CE35010000721E0081AC00A255B6095F975A5AD60182A1AA +S1239CB83E2614B6095F975AD60182A120260872140086AC00A255B607A1802703CC9D5643 +S1239CD8B6095F971D0007D60182A1452670B6095F971D0006D60182A1522662B6095F9759 +S1239CF81D0005D60182A1522654B6095F971D0004D60182A14F2646B6095F971D0003D62A +S1239D180182A1522638B6095F975A5AD60182A10D262BB6095F975AD60182A10A261F3FFB +S1239D380772020086002503CCA255B600A1062703CCA2553C00721F0082AC00A255B60920 +S1239D585F971D0009D60182A1532703CC9DFAB6095F971D0008D60182A14526EFB6095FA5 +S1239D78971D0007D60182A14E2677B6095F971D0006D60182A1442669B6095F971D0004AC +S1239D98D60182A14F265BB6095F971D0003D60182A14B264DB6095F975A5AD60182A10DE0 +S1239DB82640B6095F975AD60182A10A263472020086002406B600A106271D7202008400F7 +S1239DD82503CCA255720E0081002503CCA255B600A1012703CCA2553C00721F0082AC0050 +S1239DF8A255B6095F971D000BD60182A1532703CC9E9EB6095F971D000AD60182A14526B3 +S1239E18EFB6095F971D0009D60182A14E2677B6095F971D0008D60182A1442669B6095FB2 +S1239E38971D0006D60182A146265BB6095F971D0005D60182A141264DB6095F971D000430 +S1239E58D60182A149263FB6095F971D0003D60182A14C2631B6095F975A5AD60182A10D5C +S1239E782624B6095F975AD60182A10A26183F27721800833F287217008372130086721FA9 +S1239E980082AC00A255AE00074F95CD8B644D27557200008300240A3C00721F0082AC0045 +S1239EB8A2553F27721900837210008672150084721D00823F0735010000721B0082721DDD +S1239ED8008172110083721F008672130084721F0081721700867219008672120086721FF2 +S1239EF80082AC00A255AE0004A60295CD8B644D2603CC9FA9B600A1012718B600A10227D5 +S1239F1812B600A103270CB600A1042706B600A105267E72020086002413B600A104260349 +S1239F38CD8C1D3C00721F0082AC00A2557200008300243F720E008600241CB600A1022482 +S1239F5803CCA255B600A1062503CCA2553C00721F0082AC00A255B600A1022403CCA255A2 +S1239F78B600A1042503CCA2553C00721F0082AC00A25572020084002503CCA255720E002A +S1239F9881002503CCA2553C00721F0082AC00A255AE0010A60C95CD8B644D273F72000061 +S1239FB88600243872000083002403CCA2557211008372130084721F0081721700833F2731 +S1239FD87219008335010000721B0082721D00817219008672120086AC00A255AE000DA6E3 +S1239FF80D95CD8B644D274872000083002403CCA2557211008372130084721C0086721F98 +S123A0180081721700833F2772190083721B0082721D0081721900867212008672160086DB +S123A0387210008635010000721F0082AC00A255AE0011A60E95CD8B644D2603CCA0E27216 +S123A0580000860024F67200008300241BB600A103251572110083721C0086721200845FFB +S123A078BF2A72170083205672020084002415721300845FBF2A7212008635010000721F06 +S123A0980082203A720C008600252672170086721000837213008435010000721B008272A5 +S123A0B81D00817219008672130086721F0082200D720A00820024063F2772180083721766 +S123A0D8008672170083AC00A255AE0010A60A95CD8B644D27117202008600240A3C007215 +S123A0F81F0082AC00A255AE000CA60495CD8B644D2717B600A10726117202008600240A03 +S123A1183C00721F0082AC00A255AE000DA60695CD8B644D270F72020086002408721F003F +S123A13882AC00A255AE001CA60995CD8B644D271DB600A1052706B600A1072611720200F1 +S123A1588600240A3C00721F0082AC00A255AE000AA60895CD8B644D2734720A00820024BC +S123A1782D350700003F873F8872150084721D00823F07721B00865FBF2C721B0082721D70 +S123A198008172120086721F0082AC00A255AE0019A60F95CD8B644D270F3F27721800839F +S123A1B83F2872170083CCA255AE0014A61095CD8B644D2721B600A1022706B600A10326E9 +S123A1D8157202008600240E3F27721800833F28721700832067AE000DA61195CD8B644DA5 +S123A1F82618AE000BA60795CD8B644D260CAE0007A60595CD8B644D270E3F277218008329 +S123A2183F28721700832035AE0006A61295CD8B644D272972020084002422720E008100C1 +S123A238241B72130084721F0081721300845FBF2A7212008635010000721F00825B038125 +S123A258880F017B015F97D68099D702040C017B01A10625EE350D020A350A020B3F0635B5 +S123A2780700055502045241721C0082721E0082721E5245721100863F873F8872110083E3 +S123A29872130084721F008684818972020084002503CCA413720E0081002503CCA4137233 +S123A2B80A0082002403CCA413720E0082002403CCA413C65240A480A1802703CCA41372E4 +S123A2D80C0082002403CCA413B600A101261A720C0087002403CCA413721C008772140048 +S123A2F884721E0082AC00A413B600A102263B721D00870F027B025F97D6808AD702040C2C +S123A318027B02A10F25EE350D0213350A02143F06351000055502045241721C0082721E16 +S123A3380082721E5245AC00A413B600A1032703CCA4130F027B025F97D680BED702040C6D +S123A358027B02A10D25EE7B026B017B015F97A622D702040F027B025F97724D0290271B8A +S123A3780C017B015F977B02905F909790D60290D702040C027B02A11425DB0C017B015FB2 +S123A39897A622D702040C017B015F97A62CD702040C017B015F97A622D702040F027B0285 +S123A3B85F97724D027C271B0C017B015F977B02905F909790D6027CD702040C027B02A10D +S123A3D81425DB0C017B015F97A622D702040C017B015F97A60DD702040C017B015F97A6F5 +S123A3F80AD702043F067B01B7055502045241721C0082721E0082721E52458581887202A4 +S123A4180086002503CCA814720A0082002403CCA814720E0082002403CCA814C65240A490 +S123A43880A1802703CCA814720C0082002403CCA814B600A10126370F017B015F97D68071 +S123A4588AD702040C017B01A10F25EE350D0213350A02143F063510000555020452417292 +S123A4781C0082721E0082721E5245AC00A814B600A102263E720600860024370F017B01DF +S123A4985F97D6809FD702040C017B01A10C25EE350D0210350A02113F06350D0005550206 +S123A4B8045241721C0082721E0082721E5245AC00A814B600A10326370F017B015F97D629 +S123A4D880B3D702040C017B01A10B25EE350D020F350A02103F06350C00055502045241EB +S123A4F8721C0082721E0082721E5245AC00A814B600A10426370F017B015F97D680ABD77D +S123A51802040C017B01A10825EE350D020C350A020D3F06350900055502045241721C0032 +S123A53882721E0082721E5245AC00A814B600A1052703CCA6150F017B015F97D680CBD755 +S123A55802040C017B01A10C25EE35310210352C0211352202123555021335440214355086 +S123A578021535220216352C021735220218353202193535021A3535021B352E021C3532D7 +S123A598021D3535021E3535021F352E0220353202213535022235350223352E022435324F +S123A5B80225353502263535022735220228352C02293539022A3539022B3535022C3534F0 +S123A5D8022D352C022E3533022F3533023035330231352C023235320233350D0234350AE9 +S123A5F802353F06353100055502045241721C0082721E0082721E5245AC00A814B600A162 +S123A61806261E720C0087002403CCA81472180086721C008772140084721E0082AC00A88B +S123A63814B600A1072703CCA7C6721D00870F017B015F97D680CBD702040C017B01A10C5D +S123A65825EE7B015F97A630D702040C017B015F97A62CD702040C017B015F97A622D70258 +S123A678040C017B015F97A654D702040C017B015F97A643D702040C017B015F97A650D7D3 +S123A69802040C017B015F97A622D702040C017B015F97A62CD702040C017B015F97A622FF +S123A6B8D702040C017B015F97A631D702040C017B015F97A639D702040C017B015F97A60E +S123A6D832D702040C017B015F97A62ED702040C017B015F97A631D702040C017B015F976D +S123A6F8A636D702040C017B015F97A638D702040C017B015F97A62ED702040C017B015F33 +S123A71897A636D702040C017B015F97A631D702040C017B015F97A62ED702040C017B01E1 +S123A7385F97A631D702040C017B015F97A632D702040C017B015F97A638D702040C017B5D +S123A758015F97A622D702040C017B015F97A62CD702040C017B015F97A639D702040C01CB +S123A7787B015F97A639D702040C017B015F97A635D702040C017B015F97A635D702040C15 +S123A798017B015F97A60DD702040C017B015F97A60AD702043F067B01B705550204524123 +S123A7B8721C0082721E0082721E5245204EB600A1082648721A0082721300863F003F352D +S123A7D87204008400251E720C00820025173D07261372100087721400843F04721A0086FF +S123A7F85FBF2C2017B604A124251172100087721400843F04721A00865FBF2C8481887256 +S123A818000083002503CCAA54720A0082002403CCAA54720E0082002403CCAA54C652406D +S123A838A480A1802703CCAA54720C0082002403CCAA54B600A10126370F017B015F97D6C5 +S123A8588099D702040C017B01A10625EE350D020A350A020B3F0635070005550204524195 +S123A878721C0082721E0082721E5245AC00AA54720E0086002503CCA9C5B600A102263BA7 +S123A8980F017B015F97D68080D702040C017B01A10A25EE3532020E350D020F350A021005 +S123A8B83F06350C00055502045241721C0082721E0082721E5245AC00AA54B600A1032690 +S123A8D8370F017B015F97D6809FD702040C017B01A10C25EE350D0210350A02113F063568 +S123A8F80D00055502045241721C0082721E0082721E5245AC00AA54B600A10426370F0181 +S123A9187B015F97D680B3D702040C017B01A10B25EE350D020F350A02103F06350C00054C +S123A9385502045241721C0082721E0082721E5245AC00AA54B600A10526370F017B015F76 +S123A95897D680E2D702040C017B01A10E25EE350D0212350A02133F06350F000555020451 +S123A9785241721C0082721E0082721E5245AC00AA54B600A1062703CCAA5472110083726C +S123A9981F0086721C0086721200845FBF2A72170083725F02AA725F02AB725F02AC725F3B +S123A9B802AD725F02AE725F02AFCCAA54B600A10226350F017B015F97D6808AD702040C00 +S123A9D8017B01A10F25EE350D0213350A02143F06351000055502045241721C0082721E52 +S123A9F80082721E52452054B600A10326350F017B015F97D680FDD702040C017B01A1117C +S123AA1825EE350D0215350A02163F06351200055502045241721C0082721E0082721E52D4 +S123AA38452019B600A104261372110083721C0086721200845FBF2A721700838481520D0E +S123AA580F0D9C7B0D97A604421C8149CDC5F2961C0010CDC3CB2F080C0D7B0DA16A25E2A6 +S123AA787B0DA169250CCE85531F0BCE85511F0920797B0DA106240CAE00001F0BAE0000DD +S123AA981F0920677B0D5F97CDC5C4961C0005CDC6047B0D97A604421D00041C8149CDC525 +S123AAB8F27B0D97A604421C8149CDC2EE961C0001CDC6047B0D97A604421D00041C8149BE +S123AAD8CDC5F2961C0010CDC2EE961C0001CDC401AE854DCDC2EEAE8549CDC2EE961C00AA +S123AAF805CDC302961C0009CDC604961C0009CDC5F25B0D81520CC65400A480A180270342 +S123AB18CCABA8C654045F97CDC5C4961C0005CDC604AE0100CDC5C4961C0005CDC2EE9673 +S123AB381C0001CDC604C654045F97CDC5C4AE81C1CDC48D961C0001CDC401961C0009CD00 +S123AB58C6041E0B891E0B89CDAA565B04961C0009CDC604961C0009CDC5F2AE0013CDC49C +S123AB78853C17B617A150251F3F17AE0013CDC5F2CDC56257575772BB001154BF11AE003B +S123AB9800BF15AE0000BF13721F5400721054015B0C813D0C2777BE0F1C0006B3112410D3 +S123ABB8B60BA101272F3501000B721800852025BE0D1D0006B311230C3D0B27183F0B7207 +S123ABD81800852010BE11B30D230ABE11B30F240435FF000B720800850024327204008489 +S123ABF800251B720C00820025143D0726107219008572100088721400843F042010B604F5 +S123AC18A124250A72100088721400843F048189BE11A30064251BBE11A66462D6811C6B94 +S123AC38027B02A4F04EA40F6B017B02A40F6B0220040F020F01720E008000240F720000F1 +S123AC588100250E7B01AA086B0120067B01AA086B014B047B0297A60195CD8602844B0403 +S123AC787B03974F95CD860284BE11A664625F97A60A62D6811C6B027B02A4F04EA40F6B46 +S123AC98017B02A40F6B027B01AA086B014B047B0297A60395CD8602844B047B0397A602DA +S123ACB895CD860284BE11A60A625F97D6811C6B027B02A4F04EA40F6B017B02A40F6B0238 +S123ACD87B01AA086B014B047B0297A60595CD8602844B047B0397A60495CD8602848581C0 +S123ACF8520372060084002444720000810024050F03CCAD9C720A0084002415B6185F973F +S123AD18D602D25F97A60ACDC61CD6813A6B032073720C008400246CB6185F97D602BE5F3B +S123AD3897A60ACDC61CD6813A6B032057720000810024117200008200240AB618A10726A5 +S123AD58040F03203F7200008200242AB61B5F97A60ACDC61CA30000260CB618A107260683 +S123AD78A6076B03201EB61B5F97A60ACDC61CD6813A6B03200EB61B5F97A60ACDC61CD60F +S123AD98813A6B037B03A40F6B017202008400250772020086002406B625A103241B720257 +S123ADB8008400250E72020086002507720A00820024067B01AA086B014B047B0297A606C9 +S123ADD895CD86028472060084002443720000810024040F032075720A0084002415B618BD +S123ADF85F97D602D25F97A60ACDC616D6811C6B032059720C0084002452B6185F97D602DA +S123AE18BE5F97A60ACDC616D6811C6B03203D720000810024117200008200240AB618A112 +S123AE380826040F03202572000082002410B61B5F97A60ACDC616D6811C6B03200EB61B45 +S123AE585F97A60ACDC616D6811C6B037B03A4F04EA40F6B027B03A40F6B01720200820093 +S123AE7824067B02AA086B024B047B0397A60E95CD8602844B047B0297A60795CD860284EC +S123AE9872060084002443720000810024040F032075720A0084002415B6185F97D602C8D4 +S123AEB85F97A60ACDC61CD6811C6B032059720C0084002452B6185F97D602B45F97A60A59 +S123AED8CDC61CD6811C6B03203D720000810024117200008200240AB618A10926040F036B +S123AEF8202572000082002410B61A5F97A60ACDC61CD6811C6B03200EB61A5F97A60ACD52 +S123AF18C61CD6811C6B037B03A4F04EA40F6B02B630A1172607720000810025067B02AAC2 +S123AF38086B027B03A40F6B014B047B0397A60C95CD8602844B047B0297A60D95CD86025F +S123AF588472060084002443720000810024040F032075720A0084002415B6185F97D60257 +S123AF78C85F97A60ACDC616D6811C6B032059720C0084002452B6185F97D602B45F97A6E0 +S123AF980ACDC616D6811C6B03203D720000810024117200008200240AB618A10A26040FA8 +S123AFB803202572000082002410B61A5F97A60ACDC616D6811C6B03200EB61A5F97A60A61 +S123AFD8CDC616D6811C6B037B03A4F04EA40F6B027B02AA086B027B03A40F6B014B047B48 +S123AFF80397A60A95CD8602844B047B0297A60B95CD8602847206008400244372000081A5 +S123B0180024040F032075720A0084002415B6185F97D602C85F97A60ACDC61CD6811C6B75 +S123B038032059720C0084002452B6185F97D602B45F97A60ACDC61CD6811C6B03203D72AB +S123B0580000810024117200008200240AB618A10B26040F03202572000082002410B6190A +S123B0785F97A60ACDC61CD6811C6B03200EB6195F97A60ACDC61CD6811C6B037B03A4F039 +S123B0984EA40F6B027B02AA086B027B03A40F6B014B047B0397A61E95CD8602844B047B8D +S123B0B80297A61F95CD86028472060084002443720000810024040F032075720A00840083 +S123B0D82415B6185F97D602C85F97A60ACDC616D6811C6B032059720C0084002452B618C8 +S123B0F85F97D602B45F97A60ACDC616D6811C6B03203D72000081002411720000820024E5 +S123B1180AB618A10C26040F03202572000082002410B6195F97A60ACDC616D6811C6B03E6 +S123B138200EB6195F97A60ACDC616D6811C6B037B03A4F04EA40F6B02B630A11B26077205 +S123B1580000810025067B02AA086B027B03A40F6B014B047B0397A61C95CD8602844B040B +S123B1787B0297A61D95CD8602845B038189720000810024117200008200240AB618A1014C +S123B19826040F02202572000082002410B61F5F97A60ACDC61CD6811C6B02200EB61F5F7F +S123B1B897A60ACDC61CD6811C6B027B02A4F04EA40F6B017B01AA086B017B02A40F6B02E8 +S123B1D84B047B0297A61A95CD8602844B047B0397A61B95CD860284720000810024117295 +S123B1F800008200240AB618A10226040F02202572000082002410B61F5F97A60ACDC61646 +S123B218D6811C6B02200EB61F5F97A60ACDC616D6811C6B027B02A4F04EA40F6B017B0205 +S123B238A40F6B027202008400250772020086002406B625A103241B7202008400250E722F +S123B258020086002507720A00820024067B01AA086B014B047B0297A61895CD8602844B82 +S123B278047B0397A61995CD860284720000810024117200008200240AB618A10326040F77 +S123B29802202572000082002410B61D5F97A60ACDC616D6811C6B02200EB61D5F97A60A7A +S123B2B8CDC616D6811C6B027B02A4F04EA40F6B017B02A40F6B027200008100240D720038 +S123B2D80082002406B618A10327217200008200240EB61DA10A25147B01AA086B01200C49 +S123B2F8B61DA10A25067B01AA086B014B047B0297A61695CD8602844B047B0397A61795AC +S123B318CD860284720000810024117200008200240AB618A10426040F02203F72000082ED +S123B33800242AB61C5F97A60ACDC61CA30000260CB618A1042606A60F6B02201EB61C5F77 +S123B35897A60ACDC61CD6812B6B02200EB61C5F97A60ACDC61CD6812B6B027B02A40F6B0D +S123B378024B047B0397A61595CD860284720000810024117200008200240AB618A105263E +S123B398040F02202572000082002410B61C5F97A60ACDC616D6811C6B02200EB61C5F9718 +S123B3B8A60ACDC616D6811C6B027B02A4F04EA40F6B017B02A40F6B02B630A10F270772E7 +S123B3D8020084002406B625A10324067B01AA086B014B047B0297A61395CD8602844B0485 +S123B3F87B0397A61495CD860284720000810024117200008200240AB618A10626040F02FA +S123B4182025B61EA1072611B61E5F975CA60ACDC616D6811C6B02200EB61E5F97A60ACD44 +S123B438C616D6811C6B027B02A4F04EA40F6B017B02A40F6B027B01AA086B014B047B02B3 +S123B45897A61195CD8602844B047B0397A61295CD8602840F02B630A11D2606B625A1032A +S123B4782404A60C6B0272000080002415B630A11D270FA6046B0272000081002504A60C7F +S123B4986B024B047B0397A61095CD860284A60C6B02B630A11E2606B625A10324067B0285 +S123B4B8AA036B0272020080002415B630A11E270FA60E6B0272000081002504A60F6B02EF +S123B4D84B047B0397A60F95CD8602848581B61FA16425043563001FB61DA10D2504350C1E +S123B4F8001DB61CA1202504351F001CB61BA11825043517001BB61AA13C2504353B001A6D +S123B518B619A13C2504353B0019817202500B00253CBE2E1C0001BF2EA3000B2403CCBCAD +S123B5385D351E00305FBF2E72020081002403CCBC5DAE0012A68095CD85E7720E0080000E +S123B55825049012008072120081AC00BC5D7204500B002403CCB61BBE2E1C0001BF2EA38C +S123B578000B2403CCBC5DBE3A1C0001BF3A351D00305FBF2E72020081002567AE0012A6D5 +S123B5988095CD85E772120081720000820024413C18B618A10D250872110082AC00BC5D1C +S123B5B8B618A1052611B61CA1202403CCBC5D351F001CAC00BC5DB618A1072703CCBC5D6B +S123B5D8B61BA1182403CCBC5D3517001BAC00BC5D720E0080002504901000805FBF3AAC40 +S123B5F800BC5DBE3AA300C92403CCBC5D72000082002403CCBC5D7210008235010018ACA8 +S123B61800BC5D7206500B002403CCB89CBE2E1C0001BF2EA3000B2403CCBC5D351B0030AB +S123B6385FBF2E72020081002403CCBC5DAE0012A68095CD85E7BE3A1C0001BF3A7202006B +S123B6588100240ABE3AA300332403CCBC5D72000082002503CCBC5D721200815FBF3AB631 +S123B67818A1012622B61F5F97A60ACDC61CA30000260AB61FAB5AB71FAC00BC5DB61FA0C5 +S123B6980AB71FAC00BC5DB618A102261EB61F5F97A60ACDC616A30000260AB61FAB09B7FD +S123B6B81FAC00BC5D3A1FAC00BC5DB618A103260A3A1D350C001DAC00BC5DB618A10426B7 +S123B6D848B61DA1022620B61C5F97A60ACDC61CA3000026083C1C3C1CAC00BC5DB61CA06B +S123B6F80AB71CAC00BC5DB61C5F97A60ACDC61CA30000260AB61CAB1EB71CAC00BC5DB6A9 +S123B7181CA00AB71CAC00BC5DB618A10526479CB61C5F97A60ACDC61CA300032F1AB61C4A +S123B7385F97A60ACDC616A3000026063C1CAC00BC5D3A1CAC00BC5DB61C5F97A60ACDC68C +S123B75816A30000260AB61CAB09B71CAC00BC5D3A1CAC00BC5DB618A1062614B61EA10186 +S123B77826083507001EAC00BC5D3A1EAC00BC5DB618A1072622B61B5F97A60ACDC61CA3BC +S123B7980000260AB61BAB14B71BAC00BC5DB61BA00AB71BAC00BC5DB618A108264B9CB6EA +S123B7B81B5F97A60ACDC61CA300022F1EB61B5F97A60ACDC616A30000260AB61BAB03B7E2 +S123B7D81BAC00BC5D3A1BAC00BC5DB61B5F97A60ACDC616A30000260AB61BAB09B71BAC5D +S123B7F800BC5D3A1BAC00BC5DB618A1092622B61A5F97A60ACDC61CA30000260AB61AABC7 +S123B81832B71AAC00BC5DB61AA00AB71AAC00BC5DB618A10A261EB61A5F97A60ACDC61658 +S123B838A30000260AB61AAB09B71AAC00BC5D3A1AAC00BC5DB618A10B2622B6195F97A6B9 +S123B8580ACDC61CA30000260AB619AB32B719AC00BC5DB619A00AB719AC00BC5DB618A182 +S123B8780C2703CCBC5DB6195F97A60ACDC616A30000260AB619AB09B719AC00BC5D3A1935 +S123B898AC00BC5D7208500B002403CCBBCFBE2E1C0001BF2EA3000B2403CCBC5D35170079 +S123B8B8305FBF2E72020081002403CCBC5DAE0012A68095CD85E7BE3A1C0001BF3A7202B9 +S123B8D8008100240ABE3AA300332403CCBBA972000082002503CCBBA9721200815FBF3ACF +S123B8F8B618A1012629B61F5F97A60ACDC61CA300092611B61FAE000A515F9765909FB741 +S123B9181FAC00BC5DB61FAB0AB71FAC00BC5DB618A1022629B61F5F97A60ACDC616A3007B +S123B938092615B61FAE000A515F97659F97A60A429FB71FAC00BC5D3C1FAC00BC5DB6181E +S123B958A10326133C1DB61DA10D2403CCBC5D3501001DAC00BC5DB618A104265AB61DA189 +S123B97802262A9CB61C5F97A60ACDC61CA300022F11B61CAE000A515F9765909FB71CACCD +S123B99800BC5DB61CAB0AB71CAC00BC5D9CB61C5F97A60ACDC61CA300032F11B61CAE002A +S123B9B80A515F9765909FB71CAC00BC5DB61CAB0AB71CAC00BC5DB618A10526629CB61C65 +S123B9D85F97A60ACDC61CA300032F2A9CB61C5F97A60ACDC616A300002D15B61CAE000ACB +S123B9F8515F97659F97A60A429FB71CAC00BC5D3C1CAC00BC5DB61C5F97A60ACDC616A33F +S123BA1800092615B61CAE000A515F97659F97A60A429FB71CAC00BC5D3C1CAC00BC5DB65E +S123BA3818A1062614B61EA10726083501001EAC00BC5D3C1EAC00BC5DB618A107262A9CAD +S123BA58B61B5F97A60ACDC61CA300022F11B61BAE000A515F9765909FB71BAC00BC5DB60E +S123BA781BAB0AB71BAC00BC5DB618A10826629CB61B5F97A60ACDC61CA300022F2A9CB632 +S123BA981B5F97A60ACDC616A300032F15B61BAE000A515F97659F97A60A429FB71BAC00BC +S123BAB8BC5D3C1BAC00BC5DB61B5F97A60ACDC616A300092615B61BAE000A515F97659F5A +S123BAD897A60A429FB71BAC00BC5D3C1BAC00BC5DB618A109262A9CB61A5F97A60ACDC602 +S123BAF81CA300052F11B61AAE000A515F9765909FB71AAC00BC5DB61AAB0AB71AAC00BC6F +S123BB185DB618A10A2629B61A5F97A60ACDC616A300092615B61AAE000A515F97659F9774 +S123BB38A60A429FB71AAC00BC5D3C1AAC00BC5DB618A10B262A9CB6195F97A60ACDC61C1D +S123BB58A300052F11B619AE000A515F9765909FB719AC00BC5DB619AB0AB719AC00BC5DD1 +S123BB78B618A10C2703CCBC5DB6195F97A60ACDC616A300092615B619AE000A515F9765E7 +S123BB989F97A60A429FB719AC00BC5D3C19CCBC5DBE3AA300C925F672120081AE0010A60B +S123BBB88095CD85E7901E0080721400825FBF3A72120081CCBC5D720A501500256BBE2E46 +S123BBD81C0001BF2EA3000B257B350F00305FBF2E7202008100256DBE3A1C0001BF3AA3F9 +S123BBF800C9256172120081AE0012A68095CD85E77200008300254D7202008400254672E5 +S123BC181F008672170086721000837213008435010000721B0082721D008172190086726E +S123BC38130086721F0082201C721300815FBF2E5FBF3A3F3072040083002509AE0010A65C +S123BC588095CD85E78188720E0080002528720200800024067214500520047215500572B9 +S123BC7800008000240872125005AC00BF9872135005AC00BF98721F0084721100857213A1 +S123BC9800850F017B015F97D602DCA10126137B015F977B01905F909790D602D2D102BE23 +S123BCB8262C7B015F977B01905F909790D602D2D102BE2703CCBDF47B015F977B01905FC3 +S123BCD8909790D602C8D102B42603CCBDF47B015F977B01905F909790D602D2D102BE22D3 +S123BCF8297B015F977B01905F909790D602D2D102BE2703CCBDAC7B015F977B01905F9064 +S123BD189790D602C8D102B423EA7B015F97D602D2B11B25167B015F97D602D2B11B262C4F +S123BD387B015F97D602C8B11A22217B015F97D602BEB11B25587B015F97D602BEB11B267C +S123BD580B7B015F97D602B4B11A23427B015F97D602D2B11B22167B015F97D602D2B11B86 +S123BD78267A7B015F97D602C8B11A236F7B015F97D602BEB11B22167B015F97D602BEB1D3 +S123BD981B26597B015F97D602B4B11A234E721E008420537B015F97D602D2B11B25167B8E +S123BDB8015F97D602D2B11B26327B015F97D602C8B11A22277B015F97D602BEB11B221670 +S123BDD87B015F97D602BEB11B26117B015F97D602B4B11A2306721E0084200B0C017B0182 +S123BDF8A1022403CCBC9CA6026B017B015F97D602DCA10126137B015F977B01905F909720 +S123BE1890D602D2D102BE262C7B015F977B01905F909790D602D2D102BE2703CCBF5B7B8F +S123BE38015F977B01905F909790D602C8D102B42603CCBF5B7B015F977B01905F90979003 +S123BE58D602D2D102BE22297B015F977B01905F909790D602D2D102BE2703CCBF137B012D +S123BE785F977B01905F909790D602C8D102B423EA7B015F97D602D2B11B25167B015F97C5 +S123BE98D602D2B11B262C7B015F97D602C8B11A22217B015F97D602BEB11B25587B015F72 +S123BEB897D602BEB11B260B7B015F97D602B4B11A23427B015F97D602D2B11B22167B0172 +S123BED85F97D602D2B11B267A7B015F97D602C8B11A236F7B015F97D602BEB11B22167B44 +S123BEF8015F97D602BEB11B26597B015F97D602B4B11A234E7210008520537B015F97D652 +S123BF1802D2B11B25167B015F97D602D2B11B26327B015F97D602C8B11A22277B015F9752 +S123BF38D602BEB11B22167B015F97D602BEB11B26117B015F97D602B4B11A2306721000CC +S123BF5885200B0C017B01A1042403CCBE03720E008400240A72100080721250052008728C +S123BF78110080721350057200008500240A7212008072145005200872130080721550052D +S123BF9884813B0042BE40893B0045BE4389725F53423C35B635A1322404AC00C1363F359E +S123BFB83C04B604A124250435240004720400830024143D3326043C33200C3C33B633A1C1 +S123BFD8042504721500833C26B626A11F25023F2672060081002537BE381C0001BF38BE67 +S123BFF838A3003C2529721600815FBF38720000820024047211008272060084002410729E +S123C018170084721B0084721D008472180084720A008600242DBE2C1C0001BF2CA303B795 +S123C0382521721B0086721B0082721D008172190086721100833F0072130086721F0082F8 +S123C058CDA2587202008400242DBE2A1C0001BF2AA304CA252172130084721B0082721D68 +S123C078008172190086721100833F0072130086721F0082CDA2587206008300246E3C28F7 +S123C098B628A14525663F28720A0082002437720C008100243072040084002517720C006E +S123C0B8820025103D07260C721E0087721400843F042038B604A1242532721E0087721408 +S123C0D800843F04202672020086002507720000830024183D002714B600A109240EB60020 +S123C0F8A1062604721D0087721F00827208008300242B3C27B627A11F25233F27721900A5 +S123C11883721B0082721D008172190086721100833F0072130086721F0082CDA2583C29C1 +S123C138B629A11C25183F293C25B625A106250E3F25901200829010008172140081720862 +S123C15800820024183C0AB60AA10525103F0A7219008272160082721600833F2885BF43CB +S123C17832004585BF403200428088C652406B01C652416B01B608A17825023F08B6085F41 +S123C198977B01D701003C083F0A72180082848088C652406B01720C008200241CB606B102 +S123C1B805240E3C06B6065F97D60204C752412008721D0082721F52458480725F524472C4 +S123C1D85F5245725F5246725F524335065242725F5240352C5245C6501697721A5017C6D8 +S123C1F850189735205014C65007AA0EC75007C6500897C6500997C6500597C6500C97C6DC +S123C218500DAAFFC7500DC6500E9735FF500AC65011AABEC75011C65012AA41C75012C6D6 +S123C238501397C6500FAA41C7500F721250C535B450C4725F5402725F5401725F54003575 +S123C25801540735015401AE0064CD85A372105401725F5341350153433507534535FF5371 +S123C2784635FF534435015340350153419A7218500F3F813F823F833F843F853F863F8726 +S123C2983F88721600815FBF2172165005CD863ACD87803F003F083F283F27721800837263 +S123C2B8130086721F0082CDA415CD9332CDABABCD8694CDBC5ECDA2A2CDA816CDB523CD9F +S123C2D8885DCDAB0DCDAC27CDACF8CDB185CD953FCD96AC20D1E60388E60288E60188F6DD +S123C2F826040D01270EA880200AE60388E60288E60188F6881A02270BBE3C260A85BF3C9D +S123C31885BF3E815B048190893F415839419EB7401E035839419E5FB040271F972228A176 +S123C338E9251E409716057B04AA804490565A26FA6B041705721E003D202C721E003D20E5 +S123C35820206B908520B6A11824F8BB40B74090BE3EB63DAA804490565A26FAB73D90BFD4 +S123C3783E7B04AA806B04BE3EB63D34412204241E261C72F0051204240733414350260167 +S123C3984C4D2B1E26165D2613BF3EBF3C201F72FB051904240C46563C4020063A4058497E +S123C3B82AFABF3E4897B64095344156BF3C90855B0481B63CF4B741B63CF82A05F82B1BE6 +S123C3D8201DB63CF0261AB63DE101260CB63EE1022606B63FE103270E2404A6FF2002A635 +S123C3F801720F004101409C81B63CBA3D2711E60388E60288E60188F6881A0226035B046D +S123C4188190897B03720F003C04A8806B03AA80080449B7400604B63D721E003D48B63C17 +S123C43849B040AB7FB73C3518004107030803B63DBE3E905839400703250A1104250D22F5 +S123C458041305250772F0051204905C584909033A4126DFB6402B059058493A3C480803C2 +S123C478363C46B73D90BF3E90855B048189CDC30285CCC604B63CBA3D2712E60388E602C1 +S123C49888FE891E012607BF3CBF3E5B04817B01720F003C04A8806B01AA800802490602F7 +S123C4B8A07EB740B63D721E003D48B63C49BB40B73C7B02BE3C42BF407B03BE3C423F4227 +S123C4D8AD5E7B04BE3C429FAD647B02BE3D42AD4F7B03BE3D42AD537B04BE3D423F3EAD73 +S123C4F85C7B02BE3E42AD437B03BE3E42AD4E7B04BE3E429EBB3E24063C3D2602AD46BE92 +S123C51841B6402B06383D59493A3C480801363C46383DB73DBF3E24047210003F5B0481D2 +S123C53872BB0041BF4124023C40819FBB3DB73D9EB942B74224F3BE405CBF408172BB0013 +S123C5583DBF3D24E53C4227EE81CDC568BE3E8189BE3C27554F5802A07F2A075FBF3CBFE1 +S123C5783E20479089A1372AF3565E90BE3EA01727272A1440A1102B0790935FA0102719D4 +S123C5985490564A26FA2011A1102B0793905FA01027069058594A26FA3D3C2A06539050E1 +S123C5B826015C90BF3EBF3C908585813F3FBF3D26033F3C81453D3C2A0350BF3DA68E5DD2 +S123C5D82B0E3D3D2606A686BE3E2B044A582AFC58383C4656BF3DB73C8188F6B73CE60111 +S123C5F8B73DE602B73EE603B73F848188B63CF7B63DE701B63EE702B63FE70384813580A8 +S123C618004020023F405D2A095072100040721200404D2A0540901200406237402A065FB1 +S10DC63897240550812701508180EA +S1238000820085588200C6418200C6418200C6418200C6418200C6418200C6418200C6413E +S12380208200C6418200C6418200C6418200C6418200C6418200C6418200C6418200C641F4 +S12380408200C6418200C6418200C6418200C6418200C6418200C6418200C1A88200C18236 +S12380608200C6418200BF9A8200C6418200C6418200C6418200C6418200C6418200C64162 +S106855585580042 +S903FFFFFE diff --git a/QR/设备相关/烧录/陈工/3控/ly81863_v3_61.128.s19 b/QR/设备相关/烧录/陈工/3控/ly81863_v3_61.128.s19 new file mode 100644 index 0000000..0a969f1 --- /dev/null +++ b/QR/设备相关/烧录/陈工/3控/ly81863_v3_61.128.s19 @@ -0,0 +1,485 @@ +S017000044656275675C6C7938313836335F76332E736D3868 +S123808041542B43574D4F44453D41542B43574D4F44455F4445463D3141542B525354410B +S12380A0542B4349504D4F44453D3041542B434946535241542B4349504D55583D314154FF +S12380C02B43574A41505F4445463D41542B43495053544152543D41542B43495053454EA8 +S12380E0443D41542B4349505345525645523D3141542B434950434C4F53453D3041542BDB +S123810043575354415254534D4152543D3141542B4357534D41525453544F50EB60C7E520 +S12381206CADAFE0EFED000000000000090E0D0000000000000000000000000A0C0000007D +S12381400000000000000000000009070B00000000000000000000004209DE354203C8B4E1 +S123816041FC106241F12D0E41E6AE1441DCD91641D36A7E41CA76C841C1E35341B9BE763F +S123818041B2126E41AAA5E341A39999419CF7CE41968D4F419024DD418A9374418520C43C +S12381A0417F7CED4175645A416C00004169D70A4159E35341514BC641494BC64141C28F05 +S12381C0413A5A1C41335C28412C937441262D0E41200000411A189341146E97410EFDF39C +S12381E04109CED94104D4FD41000C4940F6F9DB40EE3D7040E5D2F140DDBA5E40D60418AA +S123820040CE9FBE40C774BC40C09BA540BA041840B3B64540ADA9FB40A7CED940A2353FFF +S1238220409CD4FD4097AE1440929FBE408DEB854089374B4084D4FD40808312407851EB5F +S12382404070E5604069374B4061BA5E405A9FBE4053B645404D1EB84046C8B44040B439EA +S1238260403AD0E540351EB8402F9DB2402A5E3540254FDF40204189401B851E4016F9DBE0 +S123828040127EF9400E5604400A1CAC400624DD40024DD23FFD2F1A3FF5E3533FEEF9DBBF +S12382A03FE831263FE1CAC03FDB645A3FD560413FCF7CED3FC9BA5E3FC439583FBEF9DB09 +S12382C03FB9BA5E3FB4BC6A3FAFDF3B3FAB43953FA6A7EF3FA24DD23F9E147A3F99FBE707 +S12382E03F95E3533F920C493F8E56043F8A9FBE3F872B023F83B6453F80624D3F7A4A8C50 +S123830072656164790D0A00000000000000000000000000000000000000000000006E6F50 +S1238320206368616E67650D0A000000000000000000000000000000000000004F4B0D0AEB +S12383400000000000000000000000000000000000000000000000000000414C5245414470 +S12383605920434F4E4E4543540D0A000000000000000000000000004F4B0D0A4C696E6B20 +S123838065640D0A0000000000000000000000000000000000004552524F520D0A00000058 +S12383A0000000000000000000000000000000000000000062757379206E6F77202E2E2ED8 +S12383C00D0A0000000000000000000000000000000054454E44204641494C0D0A00000004 +S12383E000000000000000000000000000000000302C434C4F5345440D0A0000000000004C +S12384000000000000000000000000000000414C524541445920434F4E4E45435445440D96 +S12384200A0D0A4552524F520D0A00002C434F4E4E4543540D0A0D0A4F4B0D0A0000000061 +S123844000000000000000000000696E76616C69640D0A000000000000000000000000001A +S123846000000000000000005749464920434F4E4E45435445440D0A0000000000000000FF +S12384800000000000005749464920474F542049500D0A00000000000000000000000000CF +S12384A0000000005749464920444953434F4E4E4543540D0A000000000000000000000068 +S12384C000005749464920444953434F4E4E4543540D0A434C4F5345440D0A000000000077 +S12384E06D75737420626520300D0A0D0A4552524F520D0A000000000000000000006275D2 +S1238500737920732E2E2E0D0A0D0A00000000000000000000000000000000004641494C04 +S12385200D0A00000000000000000000000000000000000000000000000000000000000020 +S12385400000000000000000000000000000000000000000000000003F80000040A0000078 +S107856042C7CCCC72 +S1238567AE07FF9490CE8564AE8566F62720A5602717BF4BEE03BF4EBE4BEE0190F6F75C6F +S1238587905C90B34E26F5BE4B1C000520DDAE00002002F75CA3005126F9AE01002002F713 +S12385A75CA302E626F9CDB75C20FE89895F20015C1F01130325F95B048189880F01201A2F +S12385C77219500F7B022A067216500F20047217500F7218500F08020C017B01110325E071 +S12385E75B038189721F500FAE00047B0195ADCAAE00087B0295ADC2721E500F85818972B7 +S12386071F500FAE0003A6A095ADAF08010801AE00067B0195ADA3A60810055F977B025D2F +S12386272704485A26FC6B027B05977B0295AD8A721E500F8581AE0002AD17AE0006AD1297 +S1238647AE0030AD0DAE0052AD08AE0080A680952091A68095208C725F505A725F505B3595 +S1238667FF505C35AE5064355650647207505FFB81891E017B05D740007205505FFB858164 +S1238687D6400081887208008403CC8726ADC84F6B015F97D602DC887B025F97ADD3840C51 +S12386A7017B01A10925EBA6096B015F971D0009D602D2887B025F97ADB7840C017B01A18A +S12386C71225E8A6126B015F971D0012D602D2887B025F97AD9B840C017B01A11B25E8A6BE +S12386E71B6B015F971D001BD602D2887B025F97CD8678840C017B01A12425E7A6246B0136 +S12387075F971D0024D602D2887B025F97CD8678840C017B01A12D25E772190084203E72E1 +S12387270B008539CD865E3B000CAE002DCD8678843B000FAE002ECD867884B61088AE00D2 +S12387472FCD8678843B000DAE0030CD867884B60E88AE0031CD8678721B00858484818802 +S12387674F6B015F97897B03CD882C85D702D20C017B01A10925ECA6096B015F971D00090A +S1238787897B03CD882C85D702D20C017B01A11225E9A6126B015F971D0012897B03CD8827 +S12387A72C85D702D20C017B01A11B25E9A61B6B015F971D001B897B03AD6A85D702D20C4A +S12387C7017B01A12425EAA6246B015F971D0024897B03AD5085D702D20C017B01A12D2520 +S12387E7EAAE002DCD8687B70CAE002ECD86875F97BF0F45100F3F10AE002FCD8687BB105D +S1238807B71024023C0FAE0030CD86875F97BF0D450E0D3F0EAE0031CD8687BB0EB70E2483 +S1238827023C0D84815F97CC868789721B5014887B0348AA806B037214500A0F01721B50E1 +S1238847147B03A50127067212500A20047213500A721A501404030C017B01A10825DE0F8C +S123886701721B50147B02A50127067212500A20047213500A721A501404020C017B01A1AA +S12388870825DE7215500A5B038188890F01721B50147212500A7B0348AA816B03721450DD +S12388A70A0F027B03A50127067212500A20047213500A721A50140403721B50140C027BEF +S12388C702A10825DE7212500A0F02721B501404017203500B067B01AA806B01721A501422 +S12388E70C027B02A10825E37215500A7B015B0381890F027200008272720400816DA606E5 +S1238907AD886B02A40F6B017B024EA40FAD5E1B01B721A604CD88916B02A40F6B017B0275 +S12389274EA401AD481B01B71FA603CD88916B02A40F6B017B024EA403AD321B01B71EA64F +S123894702CD88916B02A40F6B017B024EA403AD1C1B01B71DA601CD88916B02A40F6B0154 +S12389677B024EA407AD061B01B71C858197A60A429F81897204008103CC8A5672150081EE +S1238987AE00074F95CD8831B621AE000ACD8A58909F6B01AE000AB621CD8A58CD8A5E1AC7 +S12389A7016B02AE000695CD8831B61FAE000ACD8A58909F6B01AE000AB61FCD8A58CD8A05 +S12389C75E1A016B02AE000495CD8831B61EAE000AAD7E909F6B01AE000AB61EAD73AD77B7 +S12389E71A016B02AE000395CD8831B61DAE000AAD5F909F6B01AE000AB61DAD54AD581A3B +S1238A07016B02AE000295CD8831B61CAE000AAD40909F6B01AE000AB61CAD35AD391A0193 +S1238A276B02AE000195CD8831B61BAE000AAD21909F6B01AE000AB61BAD16AD1A1A016B69 +S1238A47025F95CD8831AE0007A68095CD8831858190935F976581A610429F8188887200FA +S1238A6700880F720E00880A720C008805720100891A7B020C025F97724F020472010088DE +S1238A87187B020C025F97A601CC8B257B020C025F97A601D7020420E3720300880A7B0283 +S1238AA70C025F97A6022076720500880A7B020C025F97A6032067720700880A7B020C0219 +S1238AC75F97A6042058720900880A7B020C025F97A6052049720B00880A7B020C025F9741 +S1238AE7A606203A720D00880A7B020C025F97A607202B720F00880A7B020C025F97A60899 +S1238B07201C720100890A7B020C025F97A609200D720300890B7B020C025F97A60AD70298 +S1238B27040F017B025F1B0159027B01905F909790D602AAD702040C017B01A10625E47B8E +S1238B47021B016B020F01720000880F720E00880A720C00880572010089267B025F1B012F +S1238B675902724F02040C017B01A10625D97B021B016B02720D00881E0C025F97A6142091 +S1238B874C7B025F1B0159027B01905F909790D602A4D7020420CF72010088080C025F97BA +S1238BA7A6182029720E00881E72020088197204008814720600880F720800880A720A00BF +S1238BC78805720300890B0C025F97A663D70204858172010089F90C025F97A61620EE89B8 +S1238BE7890F02202C7B0397A61E42011B0224015C02D683006B015FB609100424015A1B37 +S1238C070224015C02D60182110127034F200A0C027B02110425CEA6015B04818888721DFD +S1238C2700855F97D6018AC102AA26677B025F97D6018BC102AB265B7B025F97D6018CC1F8 +S1238C4702AC264F7B025F97D6018DC102AD26437B025F97D6018EC102AE26377B025F971D +S1238C67D6018FC102AF262B7B025F97D60190B10326204F6B015F97897B045F1B0359025B +S1238C87D6018485D702A40C017B01A10625E7721C0085858189CD906C1D0022D60182A18C +S1238CA7532703CC903DCD906C1D0021D60182A15426F0CD906C1D0020D60182A14126E3DE +S1238CC7CD906C1D001FD60182A14D26D6CD906C1D001ED60182A14126C9CD906C1D001D10 +S1238CE7D60182A14326BCCD906C1D002CD60182A1222604725F02B3A62D6B010F02B6095D +S1238D075F100124015A100224015ACD907127507B02A1012612B6095F100124015A10026C +S1238D2724015ACD905B202AA1022612B6095F100124015A100224015ACD904F20147B0230 +S1238D472616B6095F100124015A100224015ACD9078CB02B3C702B30C027B02A103259ECA +S1238D670C027B011B026B01725F02B20F02B6095F100124015A100224015ACD90712750BB +S1238D877B02A1012612B6095F100124015A100224015ACD905B202AA1022612B6095F1027 +S1238DA70124015A100224015ACD904F20147B022616B6095F100124015A100224015ACDF2 +S1238DC79078CB02B2C702B20C027B02A103259E0C027B011B026B01725F02B10F02B6092D +S1238DE75F100124015A100224015ACD907127507B02A1012612B6095F100124015A10028C +S1238E0724015ACD905B202AA1022612B6095F100124015A100224015ACD904F20147B024F +S1238E272616B6095F100124015A100224015ACD9078CB02B1C702B10C027B02A103259EED +S1238E470C027B011B026B01725F02B00F02B6095F100124015A100224015ACD90712750DC +S1238E677B02A1012612B6095F100124015A100224015ACD905B202AA1022612B6095F1046 +S1238E870124015A100224015ACD904F20147B022616B6095F100124015A100224015ACD11 +S1238EA79078CB02B0C702B00C027B02A103259ECD906C1D001ACD903F240A1D001ACD9059 +S1238EC746A00020081D001ACD9046A0706B01CD90671D0019CD903F240A1D0019D60182D0 +S1238EE7A03020081D0019D60182A0571B016B01C702AACD90671D0017CD903F240A1D000F +S1238F0717CD9046A00020081D0017CD9046A0706B01CD90671D0016CD903F240A1D00167D +S1238F27D60182A03020081D0016D60182A0571B016B01C702ABCD90671D0014CD903F24A1 +S1238F470A1D0014CD9046A00020081D0014CD9046A0706B01CD90671D0013CD903F240A52 +S1238F671D0013D60182A03020081D0013D60182A0571B016B01C702ACCD90671D0011CD29 +S1238F87903F240A1D0011CD9046A00020081D0011CD9046A0706B01CD90671D0010CD9095 +S1238FA73F240A1D0010D60182A03020081D0010D60182A0571B016B01C702ADCD90671D5F +S1238FC7000EAD7424091D000EAD74A00020071D000EAD6BA0706B01CD90671D000DAD5865 +S1238FE7240A1D000DD60182A03020081D000DD60182A0571B016B01C702AEAD631D000B0C +S1239007AD3624091D000BAD36A00020071D000BAD2DA0706B01AD481D000AAD1B240A1DB6 +S1239027000AD60182A03020081D000AD60182A0571B01C702AF8581D60182A1402026D663 +S1239047018297A610429F8102D6018297A664429FA0C08102D6018297A60A429FA0E08191 +S12390675FB6099781B6095F978102D60182A12E8102D60182A03081884F6B015F97D68093 +S1239087D7D702040C017B01A10B25F0720D00883935800007B600A10626087B015F97A628 +S12390A73120094A26097B015F97A630D702040C015F7B01CD91B30C015F7B01CD91BA0CA8 +S12390C7015F7B0197A630CC91547201008825358100075F97A630D702040C015F7B01CD50 +S12390E791B30C015F7B01CD91BA0C015F7B0197A6342059720F00880A358200075F97A6E2 +S123910730202D72020088197204008814720600880F720800880A720A008805720300897E +S12391275A358200075F97720300830220D1A631D702040C015F7B01AD720C015F7B0197F1 +S1239147A639D702040C015F7B0197A639D702040C015F7B0197A60DD702040C015F7B0116 +S123916797A60AD702047B01B7053F065502045241721C008284721E52458172010089D04D +S1239187358300075F97720B008204A6302002A631D702040C015F7B01AD110C015F7B01D2 +S12391A7AD110C015F7B0197A63220A197A62CD702048197A632D7020481720500841472B9 +S12391C70C00820FB6882604B6892707CD907F7215008481894FCD8A63A60F6B02720F0075 +S12391E78006350102132004725F02130C025F7B02CD93A4720100800A0C025F7B02CD9354 +S1239207A4200A0C025F7B0297724F02040C025F7B0297A602D70204720300800A0C025FBB +S12392277B02CD93A4200A0C025F7B0297724F02040C025F7B0297A603D702047205008032 +S12392470A0C025F7B02CD93A4200A0C025F7B0297724F02040C025F7B0297A604D7020491 +S1239267720700800A0C025F7B02CD93A4200A0C025F7B0297724F02040C025F7B0297A659 +S123928705D70204720900800A0C025F7B02CD93A4200A0C025F7B0297724F02040F010C60 +S12392A7025F7B02977B014CD702040C025F7B02977B01905F909790D602DCD702040C0247 +S12392C75F7B02977B01905F909790D602D2D702040C025F7B02977B01905F909790D602EC +S12392E7C8D702040C025F7B02977B01905F909790D602BED702040C025F7B02977B01901B +S12393075F909790D602B4D702040C017B01A10A258D0C025F7B0297B611D702040C025F4B +S12393277B0297B612D702040C025F7B0297724F02040C025F7B0297724F02040C025F7BF1 +S12393470297724F02040C025F7B0297724F02040C025F7B0297B60CD702040C025F7B0250 +S123936797B60DD702040C025F7B0297B60ED702040C025F7B0297B60FD702040C025F7B7E +S12393870297B610D702040C025F7B0297724F02040C025F7B0297724F0204858197A601B2 +S12393A7D7020481887204008603CC949E720C0082F872150086B607A180261BCD94AE3557 +S12393C7030215725F0216725F02173F0635130005CD94A0CC949CA1812638CD94AE350141 +S12393E70215A6126B015F97905F909772A2001290D602B0D702040C017B01A11625E7A60E +S1239407156B01725F021A725F021B3F0635170005207CA18226073F06CD91DB206FA18332 +S123942726754FCD8A63A60F6B0155000B02130C015F7B0197B611D702040C015F7B019745 +S1239447B612D70204B60B26150C015F7B0197B60DD702040C015F7B0197B60E20164A2658 +S1239467160C015F7B0197B60FD702040C015F7B0197B610D702040C015F7B0197724F0246 +S1239487040C015F7B01973F06724F0204B705AD083F883F893F0784815502045241721C6B +S12394A70082721E5245814FCD8A6335010213350102148152033F037206008203CC9D94C5 +S12394C7721700824508093F080F02200A5F97D60100D701820C027B02B10925F0721D008E +S12394E7850F032071CD9DB9A10D26687B03CD9DB3A10A265F7B035F97D60184A12B2654FA +S12395077B035F97D60185A14926497B035F97D60186A150263E7B035F97D60187A1442614 +S1239527337B035F97D60188A12C26287B035F97D6018AA12C261D721C0085720C00850301 +S1239547CC999B7B035F97D60189A130261072120083200E0C037B03B109258920DD721379 +S123956700830F027B035F1B025902D6018BA13A260A7B031B02AB0A6B032019A0306B0157 +S1239587B60397A60A429F1B01B7030C027B02A10525D17B03CD8C23720C008503CC9D94E5 +S12395A77B03CD9DB34A2703CC964EB603A11926F77B03AB0F6B03CD9D97721C00815F7BC1 +S12395C70397D601836B015F7B0397D60182974F1B0124015C02A664CDBBE69FB7215F7B05 +S12395E70397D60184B71F5F7B0397D60185B71E5F7B0397D60186B71D5F7B0397D6018779 +S1239607B71C5F7B0397D60188B71B72140081CD897A721B00865FBF2D7204008416720C04 +S1239627008211B607260D721E008872140084B704CC9D94B604A12425F7721E0088721489 +S123964700843F04CC9D947B03CD9DB3A1022657B603A11226517B03AB0F6B03CD9D977B7B +S1239667035F97724D01822606721F0080200ACD9DB94A2604721E00807204008416720C08 +S1239687008211B607260D7212008872140084B704CC9D94B604A12425F772120088721441 +S12396A700843F04CC9D947B03CD9DB3A1032703CC9763B603A11326F77B03AB0F6B03CDAF +S12396C79D97720E0080677B03CD9DB94A26197B03CD9E00260672110080204ECD9DB34ACD +S12396E7264C7210008020427B03CD9DB9A10226197B03CD9E00260672130080202CCD9D36 +S1239707B34A262A7212008020207B03CD9DB9A103261B7B03CD9E00260672150080200AE1 +S1239727CD9DB34A260872140080721400827204008416720C008211B607260D721400885C +S123974772140084B704CC9D94B604A12425F772140088721400843F04CC9D947B03CD9D61 +S1239767B3A1042703CC97FEB603A11626F77B03AB0F6B03CD9D977B03CD9DB95F975A7B5B +S123978703905F909790D60183D702D25F7B03CD9DE27B03905F909790D60184D702C85F68 +S12397A77B03CD9DE27B03905F909790D60185D702BE5F7B03CD9DE27B03905F909790D69A +S12397C70186D702B4721800847204008416720C008211B607260D7216008872140084B77A +S12397E704CC9D94B604A12425F772160088721400843F04CC9D947B03CD9DB3A1052703FD +S1239807CC98A5B603A11626F77B03AB0F6B03CD9D977B035F97724D01822708CD9DB94AAE +S123982726267B03CD9DB9B70C721A00857204008459720C008254B60726507218008872FE +S1239847140084B704CC9D947B03CD9DB9A10226D87B035F97D601846B015F7B0397D601E5 +S123986783974F1B0124015CB70E9FB70D5F7B0397D601866B015F7B0397D60185974F1BA1 +S12398870124015CB7109FB70F209EB604A12425B472180088721400843F04CC9D947B031F +S12398A7CD9DB3A106263CB603A11126367B03AB0F6B033F297204008416720C008211B6CB +S12398C707260D721A008872140084B704CC9D94B604A12425F7721A0088721400843F0471 +S12398E7CC9D947B03CD9DB3A10A2656B603A11326507B03AB0F6B03CD9D977B03CD9DB973 +S12399075F975A7B03905F909790D60183D702DC721800847204008416720C008211B607CD +S1239927260D7212008972140084B704CC9D94B604A12425F772120089721400843F04CC59 +S12399479D947B03CD9DB3A10726F4B603A13926EE7B03AB0F6B03CD9D974F6B025F9789E5 +S12399677B055F1B045902D6018285D702905F7B0297897B055F1B045902D6019685D7021C +S12399877C0C027B02A11425D435010000721E0081CC9D94CD9DA81D0002D60182A13E2634 +S12399A712CD9DA85AD60182A120260772140086CC9D94B607A180265CCD9DA81D0007D662 +S12399C70182A145264FCD9DA81D0006D60182A1522642CD9DA81D0005D60182A1522635DA +S12399E7CD9DA8CD9E07262DCD9DA81D0003D60182A1522620CD9DA8CD9DD92618CD9DA81C +S1239A07CD9DF926103F0772030086A4B600A106269ECC9BB0CD9DA81D0009D60182A15300 +S1239A27266CCD9DA81D0008D60182A145265FCD9DA81D0007D60182A14E2652CD9DA81D69 +S1239A470006D60182A1442645CD9DA8CD9E07263DCD9DA81D0003D60182A14B2630CD9D2E +S1239A67A8CD9DD92628CD9DA8CD9DF926207203008606B600A10627997202008403CC9D65 +S1239A8794720F0081F8B6004A26F3CC9BB0CD9DA81D000BD60182A1532675CD9DA81D00AC +S1239AA70AD60182A1452668CD9DA81D0009D60182A14E265BCD9DA81D0008D60182A1444E +S1239AC7264ECD9DA81D0006D60182A1462641CD9DA81D0005D60182A1412634CD9DA81D33 +S1239AE70004D60182A1492627CD9DA81D0003D60182A14C261ACD9DA8CD9DD92612CD9D18 +S1239B07A8CD9DF9260ACD9DBF72130086CC9D90AE00074FCD9DAD27377201008303CC9BF9 +S1239B27B03F287219008372100086CD9E10CD9DCC72110083721F008672130084721F0085 +S1239B4781721700867219008672120086CC9D90AE0004A602CD9DAD2754B600A1012710DB +S1239B67A102270CA1032708A1042704A105263E7203008609A1042630CD8C9C202B7201A5 +S1239B8700831C720F00860DA1022403CC9D94A10624F92014A10225F3A10424EF200A7239 +S1239BA7030084E8720F0081E33C00CC9D90AE0010A60CCD9DAD2723720100861E720000B7 +S1239BC783CA7211008372130084CD9DEACD9DCC7219008672120086CC9D94AE000DA60D0E +S1239BE7CD9DAD272F72000083EE7211008372130084721C0086CD9DEA721B0082721D00F5 +S1239C078172190086721200867216008672100086CC9D8CAE0011A60ECD9DAD27737201FB +S1239C2700866E720100831BB600A103251572110083721C00865F72120084BF2B7217008C +S1239C478320437203008411721300845FBF2B7212008635010000201C720C00861D721791 +S1239C6700867210008372130084CD9DCC7219008672130086721F0082200B720B008206B0 +S1239C873F28721800837217008672170083CC9D94AE0010A60ACD9DAD270872030086037B +S1239CA7CC9BB0AE000CA604CD9DAD270EB600A10726087203008603CC9BB0AE000DA606CA +S1239CC7CD9DAD27087203008603CC9D90AE001CA609CD9DAD2712B600A1052704A107261E +S1239CE7087203008603CC9BB0AE000AA608CD9DAD2722720B00821D350700003F883F898F +S1239D07CD9E105F721B0086BF2D721B0082721D0081CC9B50AE0019A60FCD9DAD2705CDFD +S1239D279DBF2069AE0014A610AD7B2713B600A1022704A10326097203008604AD7A204D6F +S1239D47AE000DA611AD5F2612AE000BA607AD562609AE0007A605AD4D2704AD5B202EAE21 +S1239D670006A612AD4027257203008420720F00811B72130084721F00815F72130084BF69 +S1239D872B7212008635010000721F00825B03813F29721400833F34AE0012A68095CC85AB +S1239DA7EAB6095F978195CD8BE64D815F97D60183815F97D60182813F28721800833F295A +S1239DC7721700838135010000721B0082721D0081811D0002D60182A10D8197D601825F1F +S1239DE7975A81721F0081721700833F2872190083815AD60182A10A815F97724D01838139 +S1239E071D0004D60182A14F8172150084721D00823F0781884F6B015F97D68099D7020464 +S1239E270C017B01A10625F0350D020A350A020B3F06350700055502045241721C00827242 +S1239E471E0082721E5245721100863F883F89721100837213008484721F00868189720270 +S1239E67008403CC9F80720F0081F8720A0082F3720E0082EE720F5240E9720C0082E4B6F4 +S1239E8700A1012614720C0088D9721C008872140084721E0082CC9F80A1022628721D005F +S1239EA7884F6B025F97D6808AD702040C027B02A10F25F0350D0213350A02143F0635101A +S1239EC70005CC9F6FA10326CD4F6B025F97D680BED702040C027B02A10D25F06B015FCD78 +S1239EE79F824F6B025F97D60290271B0C015F7B01977B02905F909790D60290D702040CE7 +S1239F07027B02A11425DE0C015F7B01AD6D0C015F7B0197A62CD702040C015F7B01AD5BDF +S1239F274F6B025F97D6027C271B0C015F7B01977B02905F909790D6027CD702040C027B72 +S1239F4702A11425DE0C015F7B01AD2F0C015F7B0197A60DD702040C015F7B0197A60AD763 +S1239F6702043F067B01B7055502045241721C0082721E0082721E5245858197A622D702DE +S1239F870481887202008603CCA2B1720A0082F8720E0082F3720F5240EE720C0082E9B602 +S1239FA700A10126244F6B015F97D6808AD702040C017B01A10F25F0350D0213350A021442 +S1239FC73F0635100005CCA269A102262972070086244F6B015F97D6809FD702040C017BF0 +S1239FE701A10C25F0350D0210350A02113F06350D0005CCA269A10326244F6B015F97D615 +S123A00780B3D702040C017B01A10B25F0350D020F350A02103F06350C0005CCA269A10430 +S123A02726244F6B015F97D680ABD702040C017B01A10825F0350D020C350A020D3F0635DD +S123A047090005CCA269A1052703CCA1084F6B015F97D680CBD702040C017B01A10C25F0D1 +S123A06735310210352C02113522021235550213354402143550021535220216352C0217CB +S123A08735220218353202193535021A3535021B352E021C3532021D3535021E3535021F99 +S123A0A7352E0220353202213535022235350223352E02243532022535350226353502272D +S123A0C735220228352C02293539022A3539022B3535022C3534022D352C022E3533022FD9 +S123A0E73533023035330231352C023235320233350D0234350A02353F0635310005CCA2E3 +S123A10769A106261B720D008803CCA2B172180086721C008872140084721E0082CCA2B159 +S123A127A1072703CCA27C721D00884F6B015F97D680CBD702040C017B01A10C25F05F9751 +S123A147A630D702040C015F7B01CDA2C80C015F7B01CDA2B30C015F7B0197A654D70204C2 +S123A1670C015F7B0197A643D702040C015F7B0197A650D702040C015F7B01CDA2B30C0126 +S123A1875F7B01CDA2C80C015F7B01CDA2B30C015F7B01CDA2BA0C015F7B01CDA2C10C0162 +S123A1A75F7B0197A632D702040C015F7B01CDA2CF0C015F7B01CDA2BA0C015F7B0197A611 +S123A1C736D702040C015F7B0197A638D702040C015F7B01CDA2CF0C015F7B0197A636D7CF +S123A1E702040C015F7B01CDA2BA0C015F7B01CDA2CF0C015F7B01CDA2BA0C015F7B019787 +S123A207A632D702040C015F7B0197A638D702040C015F7B01CDA2B30C015F7B01CDA2C81B +S123A2270C015F7B01CDA2C10C015F7B01CDA2C10C015F7B0197A635D702040C015F7B01C4 +S123A24797A635D702040C015F7B0197A60DD702040C015F7B0197A60AD702043F067B01C8 +S123A267B7055502045241721C0082721E0082721E52452035A1082631721A0082721300F8 +S123A287863F003F367204008409720C008204B6072706B604A12425117210008872140043 +S123A2A7843F045F721A0086BF2D848197A622D702048197A631D702048197A639D702048E +S123A2C78197A62CD702048197A62ED7020481887200008303CCA445720A0082F8720E00B7 +S123A2E782F3720F5240EE720C0082E9B600A10126244F6B015F97D68099D702040C017B4D +S123A30701A10625F0350D020A350A020B3F0635070005CCA428A102720E008603CCA3DEC4 +S123A327261D4F6B015F97D68080D702040C017B01A10A25F03532020ECDA457CCA428A1AA +S123A3470326244F6B015F97D6809FD702040C017B01A10C25F0350D0210350A02113F06EC +S123A367350D0005CCA428A10426194F6B015F97D680B3D702040C017B01A10B25F0CDA4BD +S123A38757CCA428A10526234F6B015F97D680E2D702040C017B01A10E25F0350D02123536 +S123A3A70A02133F06350F00052076A1062703CCA44572110083721F0086CDA447725F0221 +S123A3C7AA725F02AB725F02AC725F02AD725F02AE725F02AF206726234F6B015F97D68071 +S123A3E78AD702040C017B01A10F25F0350D0213350A02143F06351000052025A10326341F +S123A4074F6B015F97D680FDD702040C017B01A11125F0350D0215350A02163F06351200C4 +S123A427055502045241721C0082721E0082721E5245200AA104260672110083AD02848120 +S123A447721C00865F72120084BF2B7217008381350D020F350A02103F06350C000581A6A9 +S123A46720CD8891B78081720500821EAE00074F95CD8831AE0020B68095CD8831AE000709 +S123A487A68095CD88317215008281520D4F6B0D97A604421C8158CDBBC2961C0010CDB9B6 +S123A4A79B2F080C0D7B0DA16A25E57B0DA169250ACE85621F0BCE85602007A1065F24065F +S123A4C71F0B1F09204A97CDBB94961C0005CDBBD47B0DAD457B0D97A604421C8158CDB8F0 +S123A4E7BE965CCDBBD47B0DAD30961C0010CDB8BE965CCDB9D1AE855CCDB8BEAE8558CD68 +S123A507B8BE961C0005CDB8D2961C0009CDBBD4961C0009CDBBC25B0D8197A604421D0007 +S123A527041C8158CCBBC2520C720E540003CCA5C3C654045F97CDBB94961C0005CDBBD422 +S123A547AE0100CDBB94961C0005CDB8BE965CCDBBD4C654045F97CDBB94AE81D0CDBA5DCA +S123A567965CCDB9D1961C0009CDBBD41E0B891E0B89CDA4925B04961C0009CDBBD4961CE1 +S123A5870009CDBBC2AE0015CDBA553C19B619A1A025213F19AE0015CDBBC2CDBB32575746 +S123A5A7575772BB001354BF132602BE40BF115FBF17BF15721F5400721054015B0C81B623 +S123A5C70C2760BE0F1C0006B311240BB60B4A27293501000B200FBE0D1D0006B311230C4F +S123A5E7B60B27163F0B72180085200EBE11B30D2308B30F240435FF000B72090085247252 +S123A6070400840F720C00820AB6072606721900852006B604A124250A7210008972140030 +S123A627843F048189BE11A66462D6811C6B024EA40F6B017B02A40F6B027B01AA016B0186 +S123A6474B047B0297A61295CD8605844B047B0397A61395CD8605BE1184A664625F97A6FE +S123A6670A62D6811C6B024EA40F6B017B02A40F6B027B01AA016B014B047B0297A6109538 +S123A687CD8605844B047B0397A61195CD8605BE1184A60A625F97D6811C6B024EA40F6B24 +S123A6A7017B02A40F6B027B01AA016B014B047B0297A60E95CD8605844B047B0397A60FBD +S123A6C795CD8605848581520372070084217201008102202A720B008408CDA897D602D286 +S123A6E7203A720D00843DCDA897D602BE202D720100810F720100820AB61AA10626040F14 +S123A707032021B61DCDA89C72010082125D260AB61AA1062604A60E2008B61DCDA89CD63B +S123A727813A6B037B03A40F7207008402AA016B014B047B0297A60995CD860572060084A3 +S123A747008424217201008102202A720B008408CDA897D602D22023720D008423CDA897B1 +S123A767D602BE2016720100810F720100820AB61AA10726040F032007B61DCDA8A36B03CC +S123A7877B034EA40F6B027B03A40F6B0172030082067B02AA016B024B047B03974F95CD7E +S123A7A78605844B047B0297A60895CD860572060084008424217201008102202A720B00FF +S123A7C78408CDA897D602C82023720D008426CDA897D602B42016720100810F7201008204 +S123A7E70AB61AA10826040F03200AB61CCDA89CD6811C6B037B034EA40F7207008402AA79 +S123A807016B027B03A40F6B014B047B0397A60295CD8605844B047B0297A60195CD8605AE +S123A827720600840084241F72010081022028720B008407AD5AD602C82022720D008421F7 +S123A847AD4ED602B42016720100810F720100820AB61AA10926040F032006B61CAD3D6B2B +S123A867037B034EA40F7207008402AA016B027B03A40F6B014B047B0397A60495CD86059C +S123A887844B047B0297A60395CD8605845B0381B61A5F97815F97A60ACCBBEC5F97A60AC7 +S123A8A7CDBBE6D6811C8189720100810A7201008205B61A4A2708B621CDAC25D6811C6B0E +S123A8C7024EA40FAA016B017B02A40F6B024B047B0297A61C95CD8605844B047B0397A616 +S123A8E71D95CD8605720000810084240E7201008209B61AA10226034F2005B621CDAC1A22 +S123A9076B024EA40F6B017B02A40F6B0272010081097201008204B61AA1034B047B0297E8 +S123A927A61A95CD8605844B047B0397A61B95CD8605720000810084240E7201008209B66C +S123A9471AA10326034F2005B61FCDAC1A6B024EA40F6B017B02A40F6B02720100810B7241 +S123A96701008206B61AA103270CB61FA10A25067B01AA016B014B047B0297A61895CD8655 +S123A98705844B047B0397A61995CD8605720000810084240E7201008209B61AA1042603CE +S123A9A74F201FB61ECDAC2572010082125D260AB61AA1042604A60F2008B61ECDAC25D634 +S123A9C7812BA40F6B024B047B0397A61795CD8605720000810084240E7201008209B61A1B +S123A9E7A10526034F2005B61ECDAC1A6B024EA40F6B017B02A40F6B027201008106B6314A +S123AA07A10527067B01AA016B014B047B0297A61595CD8605844B047B0397A61695CD862E +S123AA270584A60B6B027201008106B631A1062704A60F6B024B047B0397A61F95CD860579 +S123AA4784A6017207008102AA026B02720F008004AA082002AA046B024B047B0397A61499 +S123AA6795CD860584A60E6B02B631A10426057200008104A60F6B024B047B0397A60D95BD +S123AA87CD8605840F02720300840AB626A10325230F022023720B00820220187209008665 +S123AAA704A60E2007720300860EA6016B02B626A1032404A60F6B024B047B0397A61E9508 +S123AAC7CD860584B631A10226057200008104A60F6B027203008038B631A1022732A6010A +S123AAE76B02B626A102250AA1052406A6096B02B626A103250CA10524087B02AA046B0229 +S123AB07B626A104250AA10524067B02AA026B024B047B0397A60595CD860584B6314A263D +S123AB27057200008104A60F6B027201008037B6314A2732A6016B02B626A102250AA105D0 +S123AB472406A6096B02B626A103250CA10524087B02AA046B02B626A104250AA105240609 +S123AB677B02AA026B024B047B0397A60695CD8605844B04AE000FA60795CD8605840F0278 +S123AB87720700840EB61AA1062408445F97D6814A6B024B047B0397A60A95CD8605840F20 +S123ABA7027207008420B61A2708A1022704A1042604A609200EA1012708A1032704A105AC +S123ABC72604A6076B024B047B0397A60B95CD860584A6046B02720100810BB631A10327D8 +S123ABE7097204008004A60C6B027207008416720B0084067B02AA022009720D0084067B38 +S123AC0702AA016B024B047B0397A60C95CD86058485815F97A60ACDBBE6D6811C815F9784 +S123AC27A60ACCBBEC880F0172095006067B01AA016B01720B5006067B01AA026B017209FC +S123AC47501A067B01AA046B0172055010067B01AA086B017B01A10F24035B0181A6FF5B3C +S123AC670181B621A164250435630021B61FA10D2504350C001FB61EA1202504351F001E4D +S123AC87B61DA11825043517001DB61CA13C2504353B001C8188AD8D6B01B6311101270355 +S123ACA7CCB0BA4C27FABE2F5CBF2FA300192403CCB0D95FBF397207008103CCB09C720891 +S123ACC70081F87202008109AE0012A68095CD85EAB631A106266A72020081655FBF2F7204 +S123ACE7000082187206008413721000823501001A7215008172120081CCB0D972010082F5 +S123AD07F8721200813C1AB61AA10A25127211008272050081E3CDAC69CD897ACCB0D9A19B +S123AD2705260DB61EA12025F3351F001ECCB0D9A10726F9B61DA11825F33517001DCCB00C +S123AD47D9A105266F720200816A5FBF2F720000821E72060084197212008172160084727E +S123AD671A0084721D00843F1A72190084CCB0D972070084F872120081720B00840B721BC7 +S123AD870084721C0084CCB0D9720D0084F83C1AB61AA106251372170084721B0084721D10 +S123ADA7008472180084CCB0D9721A0084721D0084CCB0D9A10A261D7202008118721200AA +S123ADC78172000083EB72020084E6721F0086CDB0E4CCB0D9A108261D72020081187212DF +S123ADE7008172000083EB72020084E6721E0086CDB0E4CCB0D9A1042703CCB053BE3B5C4A +S123AE07BF3B7203008108A300C92403CCB037720600840572010082F37212008172000089 +S123AE278203CCAFC8721400815FBF3BB61AA101261FB621CDB109A30009260CB621CDB098 +S123AE47DB909FB721CCB0D9B621AB0AB721CCB0D9A102261CB621CDB10FA30009260DB619 +S123AE6721CDB0DBCDB115B721CCB0D93C21CCB0D9A103260F3C1FB61FA10D25F1350100D9 +S123AE871FCCB0D9A1042644B61FA102261FB61ECDB109A300022F0CB61ECDB0DB909FB71A +S123AEA71ECCB0D9B61EAB0AB71ECCB0D9B61ECDB109A300032F0CB61ECDB0DB909FB71EF5 +S123AEC7CCB0D9B61EAB0AB71ECCB0D9A1052643B61ECDB109A300032F1CB61E5FCDB10F44 +S123AEE79C5D2D0DB61ECDB0DBCDB115B71ECCB0D93C1ECCB0D9B61E5FCDB10FA3000926EA +S123AF070DB61ECDB0DBCDB115B71ECCB0D93C1ECCB0D9A106261FB61DCDB109A300022F67 +S123AF270CB61DCDB0DB909FB71DCCB0D9B61DAB0AB71DCCB0D9A1072644B61DCDB109A3B7 +S123AF4700022F1DB61D5FCDB10FA300032F0DB61DCDB0DBCDB115B71DCCB0D93C1DCCB03B +S123AF67D9B61D5FCDB10FA30009260DB61DCDB0DBCDB115B71DCCB0D93C1DCCB0D9A10811 +S123AF87261FB61CCDB109A300052F0CB61CCDB0DB909FB71CCCB0D9B61CAB0AB71CCCB0CE +S123AFA7D9A10926F9B61CCDB10FA30009260DB61CCDB0DBCDB115B71CCCB0D93C1CCCB0ED +S123AFC7D972070084F8720B008430CDB122724D02C8271D5F97724F02C85F97724C02D2F1 +S123AFE7D602D2A11825D7CDB122724F02D2CCB0D95F97A61ED702C8CCB0D9720D0084F8B2 +S123B007CDB122724D02B4271D5F97724F02B45F97724C02BED602BEA11825DCCDB1227289 +S123B0274F02BECCB0D95F97A61ED702B4CCB0D9A3096125F872020081F3901E00805F72F4 +S123B047140082BF3B72120081CCB0D9A1022613720200810ECDB11A720E0080759012006D +S123B06780202CA1012613720200810ECDB11A720E00805E901000802015A103265472023E +S123B08700814FCDB11A720E0080479014008072140082203DBE3B5CBF3BA3032125335FA0 +S123B0A7BF3B7217008172180081AE00127212008120197B01B7315FBF2F72130081721936 +S123B0C70081BF3B7204008309AE0010A68095CD85EA8481AE000A90935F976581721700EE +S123B0E786721000837213008435010000721B0082721D00817219008672130086721F00AF +S123B107828197A60ACCBBEC97A60ACCBBE6A60A429F815FBF2F7212008181B61A5F978187 +S123B12788720E008003CCB38E721F0084721100854F721300856B01CDB3CC26077B01CDC8 +S123B147B39026117B01CDB3902703CCB1E97B01CDB3AE27F67B01CDB390220E7B01CDB3CF +S123B16790264F7B01CDB3AE23487B01CDB39E250E7B01CDB39E261C7B01CDB3BC22157B97 +S123B18701CDB3A625567B01CDB3A626077B01CDB3C423487B01CDB39E220E7B01CDB39EA4 +S123B1A726407B01CDB3BC23397B01CDB3A6222C201C7B01CDB39E250E7B01CDB39E26222F +S123B1C77B01CDB3BC221B7B01CDB3A6220E7B01CDB3A6260D7B01CDB3C42306721E0084CB +S123B1E7200B0C017B01A1022403CCB13FA6026B01CDB3CC26077B01CDB39026117B01CD71 +S123B207B3902703CCB2A27B01CDB3AE27F67B01CDB390220E7B01CDB390264F7B01CDB316 +S123B227AE23487B01CDB39E250E7B01CDB39E261C7B01CDB3BC22157B01CDB3A625567BBA +S123B24701CDB3A626077B01CDB3C423487B01CDB39E220E7B01CDB39E26407B01CDB3BCE2 +S123B26723397B01CDB3A6222C201C7B01CDB39E250E7B01CDB39E26227B01CDB3BC221B97 +S123B2877B01CDB3A6220E7B01CDB3A6260D7B01CDB3C4230672100085200B0C017B01A1B7 +S123B2A7042403CCB1F8A6046B01CDB3CC26077B01CDB39026117B01CDB3902703CCB35606 +S123B2C77B01CDB3AE27F67B01CDB390220E7B01CDB390264F7B01CDB3AE23487B01CDB3CE +S123B2E79E250E7B01CDB39E261C7B01CDB3BC22157B01CDB3A625517B01CDB3A626077B45 +S123B30701CDB3C423437B01CDB39E220E7B01CDB39E263B7B01CDB3BC23347B01CDB3A601 +S123B327222720197B01AD6F250D7B01AD69261F7B01CDB3BC22187B01AD64220C7B01AD09 +S123B3475E260C7B01AD76230672120085200B0C017B01A1062403CCB2B1720F0084067253 +S123B36710008020047211008072010085067212008020047213008072030085067214005A +S123B3878020047215008084815F97905F909790D602D2D102BE815F97D602D2B11D815F4C +S123B3A797D602BEB11D815F97905F909790D602C8D102B4815F97D602C8B11C815F97D612 +S123B3C702B4B11C815F97D602DC4A813B004DBE4B893B0050BE4E725F53423C3689B636EB +S123B3E7A1322404AC00B4FB3F363C04B604A1242504352400047205008314B63426043CD4 +S123B40734200C3C34B634A1042504721500833C27B627A11F25023F27720600813ABE39D8 +S123B4275CBF39A3003C2530721600815FBF39720100820F721100827205008106CDAC6930 +S123B447CD897A720700841072170084721B0084721D008472180084720B008612BE2D5C69 +S123B467BF2DA303B72508721B00868D00B5A77203008412BE2B5CBF2BA304CA25087213F2 +S123B48700848D00B5A772070083523C29B629A145254A3F29720B008225720D008120722F +S123B4A704008409720C008204B6072706B604A124252A721E0088721400843F04201E721F +S123B4C7020086057201008314B6002710A109240CA1062604721D0088721F00827209008D +S123B4E783123C28B628A11F250A3F28721900838D00B5A73C2AB62AA13025143F2A9010C4 +S123B50700813C26B626A10625063F269012008272090082183C0AB60AA10525103F0A7255 +S123B52719008272160082721600833F29720100874C720D500A41B643A1082522721E50BF +S123B5470A72110087C6500CA43FC7500C725F500D721C500EC6500AAAC0C7500A20347219 +S123B56701004406721E500A2004721F500A34443C43721D500A201B721C500A20157203CF +S123B5870087103C3FB63FA11425083F3F721300873F3E85BF4E32005085BF4B32004D800E +S123B5A7721B0082721D008172190086721100833F0072130086721F0082CD9E1B8788C692 +S123B5C75240C652416B01B608A17825034FB7085F977B01D701003C083F0A847218008295 +S123B5E78088C652406B01720D00821CB606B105240E3C065FB60697D60204C75241200861 +S123B607721D0082721F52458480887201008703CCB6B272160087B680A4076B01B642A431 +S123B6270711012712B642A4F8B742B680A407BA42B74272160087720300840B720800427B +S123B6471372180042200972090042087219004272160087720B00820B720A004213721ACF +S123B66700422009720B004208721B004272160087720900860B720C004213721C004220E0 +S123B68709720D004208721D004272160087720300860B720E004213721E00422009720F96 +S123B6A7004208721F004272160087720700876F720200876A7205008765720D500B607270 +S123B6C70F500B5BC6500CAAC0C7500CC6500DC6500EA43FC7500EC6500AAAC0C7500A727F +S123B6E710008772170087721500873F43AE00C8CD85B2AE00C8CD85B2AE00C8CD85B2B6E4 +S123B70742B7443F3D725F5344A5012706721E500A2004721F500A34443C43721D500A84CD +S123B72781720000872E721200873F3F34453646720F500B04721E00453C3EB63EA11025DF +S123B74713721300873F3E72140087BE45A303E82402BF4080725F5244725F5245725F520D +S123B76746725F524335065242725F5240352C5245721A5016C65017C65018725F5014C6A0 +S123B787501B7218501CC6501D72185019C65007C65008AA30C75008C65009C65005AA30CF +S123B7A7C75005C6500CAA2EC7500C7218500D721C500EC6500AAAD8C7500AC65011AAB925 +S123B7C7C75011C65012AA44C75012C65013C6500FAA05C7500F721250C535B450C4725F6D +S123B7E75402725F5401725F54003501540735015401AE0064CD85B272105401721A50A018 +S123B807725F5341350153433507534535FF534635FF534435015340350153419A3F813F54 +S123B827823F833F843F853F863F873F883F895F72160081BF224FCD8891A47FB71BAE00F7 +S123B847074F95CD88315FB61B95CD8831AE0008A6A595CD8831AE0007A68095CD8831CD42 +S123B867A4667216500ACD863DCD87663F003F423F083F293F287218008372130086721F08 +S123B8870082CD9F89CD91C1CDA5C6CD868BCDB127CD9E64CDA2D6CDAC9CCD88F8CDB61142 +S123B8A7CDA52ECDA62BCDA6CECDA8AECDA46ECD93ABCD94BB20CBE60388E60288E601889A +S123B8C7F626040D01270EA880200AE60388E60288E60188F6881A02270BBE47260A85BF13 +S123B8E74785BF49815B048190893F4C58394C9EB74B1E0358394C9E5FB04B271F972228CA +S123B907A1E9251E409716057B04AA804490565A26FA6B041705721E0048202C721E004889 +S123B9272020206B908520B6A11824F8BB4BB74B90BE49B648AA804490565A26FAB7489077 +S123B947BF497B04AA806B04BE49B648344C2204241E261C72F00512042407334C435026AD +S123B967014C4D2B1E26165D2613BF49BF47201F72FB051904240C46563C4B20063A4B58D5 +S123B987492AFABF494897B64B95344C56BF4790855B0481B647F4B74CB647F82A05F82BA6 +S123B9A71B201DB647F0261AB648E101260CB649E1022606B64AE103270E2404A6FF2002CF +S123B9C7A601720F004C01409C81B647BA482711E60388E60288E60188F6881A0226035BE5 +S123B9E7048190897B03720F004704A8806B03AA80080449B74B0604B648721E004848B65F +S123BA074749B04BAB7FB7473518004C07030803B648BE499058394B0703250A1104250DC9 +S123BA2722041305250772F0051204905C584909033A4C26DFB64B2B059058493A474808BD +S123BA4703364746B74890BF4990855B048189CDB8D285CCBBD4B647BA482712E60388E63A +S123BA670288FE891E012607BF47BF495B04817B01720F004704A8806B01AA800802490611 +S123BA8702A07EB74BB648721E004848B64749BB4BB7477B02BE4742BF4B7B03BE47423F3F +S123BAA74DAD5E7B04BE47429FAD647B02BE4842AD4F7B03BE4842AD537B04BE48423F49D7 +S123BAC7AD5C7B02BE4942AD437B03BE4942AD4E7B04BE49429EBB4924063C482602AD46A7 +S123BAE7BE4CB64B2B06384859493A474808013647463848B748BF4924047210004A5B046E +S123BB078172BB004CBF4C24023C4B819FBB48B7489EB94DB74D24F3BE4B5CBF4B8172BB6A +S123BB270048BF4824E53C4D27EE81CDBB38BE498189BE4727554F5802A07F2A075FBF47D3 +S123BB47BF4920479089A1372AF3565E90BE49A01727272A1440A1102B0790935FA0102753 +S123BB67195490564A26FA2011A1102B0793905FA01027069058594A26FA3D472A06539048 +S123BB875026015C90BF49BF47908585813F4ABF4826033F47814548472A0350BF48A68EC2 +S123BBA75D2B0E3D482606A686BE492B044A582AFC5838474656BF48B7478188F6B747E6AE +S123BBC701B748E602B749E603B74A848188B647F7B648E701B649E702B64AE70384813515 +S123BBE780004B20023F4B5D2A09507210004B7212004B4D2A05409012004B62374B2A068A +S10EBC075F97240550812701508180C5 +S1238000820085678200BC118200BC118200BC118200BC118200BC118200BC118200B728B3 +S12380208200BC118200BC118200BC118200BC118200BC118200BC118200BC118200BC11C4 +S12380408200BC118200BC118200BC118200BC118200BC118200BC118200B5E88200B5C527 +S12380608200BC118200B3D38200BC118200BC118200BC118200BC118200BC118200BC11CB +S106856485670024 +S903FFFFFE diff --git a/QR/设备相关/睿芯电子产品列表.pdf b/QR/设备相关/睿芯电子产品列表.pdf new file mode 100644 index 0000000..d37ff16 Binary files /dev/null and b/QR/设备相关/睿芯电子产品列表.pdf differ diff --git a/QR/设备相关/问题 .txt b/QR/设备相关/问题 .txt new file mode 100644 index 0000000..b14afb1 --- /dev/null +++ b/QR/设备相关/问题 .txt @@ -0,0 +1,60 @@ +һ0 +1ʱߵĺܿ죬Ŀһ +2ʱ䴦(((WIFI)))WIFIʧ + +0С2أ3أĺ÷Һ£ +1wifi£wifiص󣬸Գֲͬ״̬Ƶ״̬ǣӲWIFIʾ((( )))WIFIijɺ3һ +0С2أ3أĺ÷Һ£ +1360WIFIֵһ360WIFIǿŵģ¸360WIIFȻ豸󶨵360WIFI²¡ + +ġ2ģʽȥ޸ġ +1Һ߱ + +23 + +3ԿƵƹ⿪أʱ +4Ļûв10Զ + +5趨ĶʱԶƿ + +6ÿһҪз + +7趨ʱαX1X2X3X4ֻÿX1X3ʱִһοX2X4ʱִһιأ֮ǰʲô״̬豸ʲôʱ򶼿Կ豸߹أ +82£Ͽ״̬ʾWIFI((( )))ʾ((( )))WIFI + +塢3 +123أտʼȻҶϿһʱ䣬ٿƵһ飬dz⣬ݲʲôԭ¡ +2״̬һֱǹص +3ȷһֱ0 +4öʱƿϵƵʱ򣬵Ŀû +5ذϵƵʱ򣬻ֵͰ״̬һ¡ +6¶仯̫Ƶ1921֮ʱڸ + + + +20130331⣺ +22ͨ治ã + +32ʱζĻʱʱ2㲻Ὺ͹ء + +4ʱĿ͹أʱڿ8:00-12:00,Ǿ8:00:008㿪ˡȻֶرգ80-59롣ǻῪƣֻҪ1ڹأῪ + +5ȵεȻָDZȵֵ0ijɻָȺֵ + + + + +20160401 +1¶ȱ仯̫죬 +20أδӷʱʱ䲻ʾ +30أżҲʱСȥҡ + + + +20160406 +1ͨ2WIFIijһ졣 +2С0󣬰WIFIص߰󶨴룬豸״̬ʾ쳣һʱ(((WIFI)))Ӧʾ((( )))Ҫ(((WIFI))) +3С£״̬ +4£WIFIʧʱ + + diff --git a/QR/设备相关/问题2.txt b/QR/设备相关/问题2.txt new file mode 100644 index 0000000..f7178ab --- /dev/null +++ b/QR/设备相关/问题2.txt @@ -0,0 +1,10 @@ +3 +OK1öʱƿϵƵʱ򣬵Ŀû +OK2ذϵƵʱ򣬻ֵͰ״̬һ¡ +OK3¶仯̫Ƶ1921֮ʱڸ +4°ӽῨһʱ䣬Ȼָ +5ʱʱЧʱɿص1 +6ƻԼ1403ʱˡ + +0 +1ֽ濨 diff --git a/QR/设备相关/问题3.txt b/QR/设备相关/问题3.txt new file mode 100644 index 0000000..1867774 --- /dev/null +++ b/QR/设备相关/问题3.txt @@ -0,0 +1,8 @@ +һ0С +1ÿηtcpָ豸̬ͻֹͣ籾Ƶģӱغ豸ƵģֹͣˣȷϿ豸ӵأֻһtcpӵơ +ĻҲе⣬忴Ƶ +2ָûȵУ飬ҷ͵ʵ39ֽڳȵģ14ֵֽ41Ҳóɹֻ֤˹ + + +1Ƶtcp37ֽڣij39ֽڡ +2豸7͹11ָ2ֽڵֵijɳ̺Ӳͺš \ No newline at end of file diff --git a/QR/设备相关/问题4.txt b/QR/设备相关/问题4.txt new file mode 100644 index 0000000..88def52 --- /dev/null +++ b/QR/设备相关/问题4.txt @@ -0,0 +1,6 @@ +һ0ش0С2ͨ23 +1ָ7ķָij39ȣԭ37ȡ +2豸7͹11ָ2ֽڵֵijɳ̺Ӳͺš + + +10Сtcpָ \ No newline at end of file diff --git a/QR/设备相关/问题5.txt b/QR/设备相关/问题5.txt new file mode 100644 index 0000000..ab5e021 --- /dev/null +++ b/QR/设备相关/问题5.txt @@ -0,0 +1,2 @@ +һС0 +1豸濨ϵ豸ûб״̬DZ((( )))WIFI¼Ҳ \ No newline at end of file diff --git a/QR/驱动.exe b/QR/驱动.exe new file mode 100644 index 0000000..b703b4e Binary files /dev/null and b/QR/驱动.exe differ diff --git a/SDK升级/user1-V0.bin b/SDK升级/user1-V0.bin new file mode 100644 index 0000000..656f6d3 Binary files /dev/null and b/SDK升级/user1-V0.bin differ diff --git a/SDK升级/user1-V1.bin b/SDK升级/user1-V1.bin new file mode 100644 index 0000000..0e0c2f8 Binary files /dev/null and b/SDK升级/user1-V1.bin differ diff --git a/SDK升级/user1-V11.bin b/SDK升级/user1-V11.bin new file mode 100644 index 0000000..da537a9 Binary files /dev/null and b/SDK升级/user1-V11.bin differ diff --git a/SDK升级/user1-V14.bin b/SDK升级/user1-V14.bin new file mode 100644 index 0000000..5d3fd56 Binary files /dev/null and b/SDK升级/user1-V14.bin differ diff --git a/SDK升级/user1-V15.bin b/SDK升级/user1-V15.bin new file mode 100644 index 0000000..899e0f5 Binary files /dev/null and b/SDK升级/user1-V15.bin differ diff --git a/SDK升级/user1-V2.bin b/SDK升级/user1-V2.bin new file mode 100644 index 0000000..e4b0714 Binary files /dev/null and b/SDK升级/user1-V2.bin differ diff --git a/SDK升级/user1-V3.bin b/SDK升级/user1-V3.bin new file mode 100644 index 0000000..b419869 Binary files /dev/null and b/SDK升级/user1-V3.bin differ diff --git a/SDK升级/user1-V4.bin b/SDK升级/user1-V4.bin new file mode 100644 index 0000000..c314fc0 Binary files /dev/null and b/SDK升级/user1-V4.bin differ diff --git a/SDK升级/user1-V5.bin b/SDK升级/user1-V5.bin new file mode 100644 index 0000000..12bada9 Binary files /dev/null and b/SDK升级/user1-V5.bin differ diff --git a/SDK升级/user1-V6.bin b/SDK升级/user1-V6.bin new file mode 100644 index 0000000..a35a74a Binary files /dev/null and b/SDK升级/user1-V6.bin differ diff --git a/SDK升级/user2-V0.bin b/SDK升级/user2-V0.bin new file mode 100644 index 0000000..c96dd2c Binary files /dev/null and b/SDK升级/user2-V0.bin differ diff --git a/SDK升级/user2-V1.bin b/SDK升级/user2-V1.bin new file mode 100644 index 0000000..f71cdd1 Binary files /dev/null and b/SDK升级/user2-V1.bin differ diff --git a/SDK升级/user2-V11.bin b/SDK升级/user2-V11.bin new file mode 100644 index 0000000..0c57ef6 Binary files /dev/null and b/SDK升级/user2-V11.bin differ diff --git a/SDK升级/user2-V14.bin b/SDK升级/user2-V14.bin new file mode 100644 index 0000000..c1ecf0f Binary files /dev/null and b/SDK升级/user2-V14.bin differ diff --git a/SDK升级/user2-V15.bin b/SDK升级/user2-V15.bin new file mode 100644 index 0000000..758be38 Binary files /dev/null and b/SDK升级/user2-V15.bin differ diff --git a/SDK升级/user2-V2.bin b/SDK升级/user2-V2.bin new file mode 100644 index 0000000..add3201 Binary files /dev/null and b/SDK升级/user2-V2.bin differ diff --git a/SDK升级/user2-V3.bin b/SDK升级/user2-V3.bin new file mode 100644 index 0000000..f2114ad Binary files /dev/null and b/SDK升级/user2-V3.bin differ diff --git a/SDK升级/user2-V4.bin b/SDK升级/user2-V4.bin new file mode 100644 index 0000000..976e4bb Binary files /dev/null and b/SDK升级/user2-V4.bin differ diff --git a/SDK升级/user2-V5.bin b/SDK升级/user2-V5.bin new file mode 100644 index 0000000..69a4030 Binary files /dev/null and b/SDK升级/user2-V5.bin differ diff --git a/SDK升级/user2-V6.bin b/SDK升级/user2-V6.bin new file mode 100644 index 0000000..0658575 Binary files /dev/null and b/SDK升级/user2-V6.bin differ diff --git a/WIFI模块与MCU通信协议V6.0.doc b/WIFI模块与MCU通信协议V6.0.doc new file mode 100644 index 0000000..77a4f55 Binary files /dev/null and b/WIFI模块与MCU通信协议V6.0.doc differ diff --git a/doc/.project b/doc/.project new file mode 100644 index 0000000..f7597a8 --- /dev/null +++ b/doc/.project @@ -0,0 +1,11 @@ + + + doc + + + + + + + + diff --git a/doc/UI/iFish.zip b/doc/UI/iFish.zip new file mode 100644 index 0000000..5bdf3ca Binary files /dev/null and b/doc/UI/iFish.zip differ diff --git a/doc/多控协议/2控源码/2-control.s19 b/doc/多控协议/2控源码/2-control.s19 new file mode 100644 index 0000000..ff6f0ce --- /dev/null +++ b/doc/多控协议/2控源码/2-control.s19 @@ -0,0 +1,654 @@ +S016000044656275675C322D636F6E74726F6C2E736D3800 +S1238080312C22554450222C223139322E3136382E302E313034222C333333302C2254437E +S12380A050222C223132302E35352E3139302E3536222C39393535312C22554450222C226E +S12380C03132302E35352E3139302E3536222C33333341542B52535441542B524553544F23 +S12380E0524541542B43575354415254534D4152543D3341542B43574D4F44453D41542B8A +S12381004349504D4F44453D41542B4349504D55583D41542B434946535241542B43495077 +S123812053544152543D41542B435753544F50534D41525441542B43495053454E443D4105 +S1238140542B434950434C4F53453D41542B43495053544154555341542B43495044494E16 +S1238160464F3D5749464920434F4E4E4543544544005749464920474F54204950005749B5 +S1238180464920444953434F4E4E45435400536D61727420676574207769666920696E66AF +S12381A06F00736D617274636F6E66696720636F6E6E65637465642077696669004F4B0073 +S12381C04641494C004552524F5200414C524541445920434F4E4E4543540053454E44207F +S12381E04F4B002B4950442C003E2000726561647900302C434F4E4E45435400312C434FE5 +S12382004E4E45435400434C4F53454400444E53204661696C005354414D41430053544106 +S12382204950006C696E6B206973206E6F742076616C696400EB60C7E56CADAFE0EFED00DB +S12382400A0D0E0F000A0D0F0009070B0000C0C1C1810140C30103C00280C241C60106C008 +S12382600780C7410500C5C1C4810440CC010CC00D80CD410F00CFC1CE810E400A00CAC152 +S1238280CB810B40C90109C00880C841D80118C01980D9411B00DBC1DA811A401E00DEC192 +S12382A0DF811F40DD011DC01C80DC411400D4C1D5811540D70117C01680D641D20112C032 +S12382C01380D3411100D1C1D0811040F00130C03180F1413300F3C1F28132403600F6C132 +S12382E0F7813740F50135C03480F4413C00FCC1FD813D40FF013FC03E80FE41FA013AC0D2 +S12383003B80FB413900F9C1F88138402800E8C1E9812940EB012BC02A80EA41EE012EC051 +S12383202F80EF412D00EDC1EC812C40E40124C02580E5412700E7C1E68126402200E2C1B1 +S1238340E3812340E10121C02080E041A00160C06180A1416300A3C1A28162406600A6C1F1 +S1238360A7816740A50165C06480A4416C00ACC1AD816D40AF016FC06E80AE41AA016AC051 +S12383806B80AB416900A9C1A88168407800B8C1B9817940BB017BC07A80BA41BE017EC091 +S12383A07F80BF417D00BDC1BC817C40B40174C07580B5417700B7C1B68176407200B2C131 +S12383C0B3817340B10171C07080B041500090C191815140930153C052809241960156C0B1 +S12383E057809741550095C1948154409C015CC05D809D415F009FC19E815E405A009AC1D1 +S12384009B815B40990159C058809841880148C0498089414B008BC18A814A404E008EC150 +S12384208F814F408D014DC04C808C41440084C185814540870147C046808641820142C0B0 +S123844043808341410081C18081404041542B4349504653520D2B4349504653523A535426 +S12384604149502C223139322E3136382E302E313038220D2B4349504653523A5354414DB2 +S123848041432C2231383A66653A33343A64623A30643A3333220D0A4F4B4209DE35420313 +S12384A0C8B441FC106241F12D0E41E6AE1441DCD91641D36A7E41CA76C841C1E35341B9B4 +S12384C0BE7641B2126E41AAA5E341A39999419CF7CE41968D4F419024DD418A93744185A9 +S12384E020C4417F7CED4175645A416C00004169D70A4159E35341514BC641494BC641412F +S1238500C28F413A5A1C41335C28412C937441262D0E41200000411A189341146E97410EF7 +S1238520FDF34109CED94104D4FD41000C4940F6F9DB40EE3D7040E5D2F140DDBA5E40D692 +S1238540041840CE9FBE40C774BC40C09BA540BA041840B3B64540ADA9FB40A7CED940A214 +S1238560353F409CD4FD4097AE1440929FBE408DEB854089374B4084D4FD408083124078E4 +S123858051EB4070E5604069374B4061BA5E405A9FBE4053B645404D1EB84046C8B4404058 +S12385A0B439403AD0E540351EB8402F9DB2402A5E3540254FDF40204189401B851E401684 +S12385C0F9DB40127EF9400E5604400A1CAC400624DD40024DD23FFD2F1A3FF5E3533FEE7C +S12385E0F9DB3FE831263FE1CAC03FDB645A3FD560413FCF7CED3FC9BA5E3FC439583FBEC6 +S1238600F9DB3FB9BA5E3FB4BC6A3FAFDF3B3FAB43953FA6A7EF3FA24DD23F9E147A3F99D1 +S1238620FBE73F95E3533F920C493F8E56043F8A9FBE3F872B023F83B6453F80624D3F7A00 +S12386404A8CB323B34BB373B39BB3C3B3EBB413B43BB463B48BB4B3B4DB0D0A2B495044C3 +S12386602C302C31393139322E3139322E3139322E3139322C393939393A000718FE34DB94 +S12386800D335CCF7F076521130B16212C37424D5843523A003F80000040A0000042C7CC7D +S10486A0CC09 +S1238745AE07FF9490CE86A1AE86A3F62720A5602717BF48EE03BF4BBE48EE0190F6F75C1C +S1238765905C90B34B26F5BE481C000520DDAE003A2002F75CA3004E26F9AE015D2002F7A5 +S12387855CA302C526F9CDC9E720FE880F0172080081002406351000812004351000813FA4 +S12387A5813F823F833F843F853F86721F0081721B008272170086721700817213008172AE +S12387C51D0086721F00867217008272190082721B00830F017B015F97724F015D7B015F32 +S12387E597724F01D50C017B01A17825E83F353F143F213F1A3F1B3F0C5FBF083F153F14A1 +S12388053F103F133F0F3F0E5FBF0A3F113F123F275FBF045FBF063F283F163F293F2A3FD2 +S12388252C3F2B5FBF30BE30BF328481895203AEFFFF1F02202F7B03A4FF6B011E024F0170 +S1238845160472A90001170472A2000190F61801A4FF905F909790580190D8824D0190D8C8 +S1238865824C011F029C1E081D00011F081C0001A300002CC11E025B058189895F1F012099 +S1238885071E011C00011F011E01130325F35B0481898920115F1F011E011C00011F011E03 +S12388A501A302CB25F21E031D00011F031C0001A3000026E05B04818988721B50147B03A0 +S12388C548AA806B037214500A0F01721B50147B03A501260220067212500A200472135085 +S12388E50A721A501404030C017B01A10825DC0F01721B50147B02A50126022006721250F5 +S12389050A20047213500A721A501404020C017B01A10825DC7215500A5B038188890F0137 +S1238925721B50147212500A7B0348AA816B037214500A0F027B03A50126022006721250C9 +S12389450A20047213500A721A50140403721B50140C027B02A10825DC7212500A0F027283 +S12389651B501404017202500B0024067B01AA806B01721A50140C027B02A10825E17215AE +S1238985500A7B015B0381890F0272000082002403CC8A50A606AD846B027B02A40F6B01D8 +S12389A57B024EA40F97A60A429F1B01B742A605CD89216B027B02A407B73CA604CD892128 +S12389C56B027B02A40F6B017B02A4104EA40F97A60A429F1B01B741A603CD89216B027B0F +S12389E502A40F6B017B02A4304EA40F97A60A429F1B01B740A602CD89216B027B02A40F04 +S1238A056B017B02A4304EA40F97A60A429F1B01B73FA601CD89216B027B02A40F6B017BB3 +S1238A2502A4704EA40F97A60A429F1B01B73E4FCD89216B027B02A40F6B017B02A4704E2F +S1238A45A40F97A60A429F1B01B73D85818972150081B642A164250435630042B641A10DE6 +S1238A652504350C0041B640A1202504351F0040B63FA11825043517003FB63EA13C250472 +S1238A85353B003EAE00074F95CD88BDB642AE000A515F9765909F6B01B642AE000A515F1D +S1238AA597659F97A610429F1A016B02AE00067B0295CD88BDB63CA4076B02AE00057B024A +S1238AC595CD88BDB641AE000A515F9765909F6B01B641AE000A515F97659F97A610429FC8 +S1238AE51A016B02AE00047B0295CD88BDB640AE000A515F9765909F6B01B640AE000A511B +S1238B055F97659F97A610429F1A016B02AE00037B0295CD88BDB63FAE000A515F976590DE +S1238B259F6B01B63FAE000A515F97659F97A610429F1A016B02AE00027B0295CD88BDB6E9 +S1238B453EAE000A515F9765909F6B01B63EAE000A515F97659F97A610429F1A016B02AE74 +S1238B6500017B0295CD88BDB63DAE000A515F9765909F6B01B63DAE000A515F97659F9748 +S1238B85A610429F1A016B025F7B0295CD88BDAE0007A68095CD88BD858189880F01201E43 +S1238BA57217500F7B02A580260220067214500F20047215500F7216500F08020C017B016B +S1238BC5110325DC5B038189880F01201E7217500F7B02A501260220067214500F20047265 +S1238BE515500F7216500F04020C017B01110325DC5B038189721F500FAE00047B0195ADA5 +S1238C0599AE00087B0295AD91721E500F858189AE0012A68095ADDC1E01CD8896AE001062 +S1238C25A68095ADCF858189721F500FAE0003A6A095CD8B9F08010801AE00067B0195CD4E +S1238C458B9FA60810055F977B025D2704485A26FC6B027B05977B0295CD8B9F721E500FE3 +S1238C65858189721F500FAE0003A6A095CD8B9F08010801AE00067B0195CD8B9F7B059704 +S1238C857B0295CD8BCC721E500F85818872125005AE0002A68095CD8BF9AE0006A6809514 +S1238CA5CD8BF9AE0030A68095CD8BF9AE0052A68095CD8BF9AE0080A68095CD8BF90F011A +S1238CC54B045F7B0295CD8C2C840C017B01A12025EEAE01F4CD887F0F014B04AE000F7B57 +S1238CE50295CD8C2C840C017B01A12025EC84818989A60A625F97D682356B027B02A4F046 +S1238D054EA40F6B017B02A40F6B027B01AA016B014B047B0297A60E95CD8C2C844B047B2E +S1238D250397A60F95CD8C2C841E03A664625F97A60A62D682356B027B02A4F04EA40F6B31 +S1238D45017B02A40F6B027B01AA016B014B047B0297A61095CD8C2C844B047B0397A61107 +S1238D6595CD8C2C841E03A66462D682356B027B02A4F04EA40F6B017B02A40F6B027B012E +S1238D85AA016B014B047B0297A61295CD8C2C844B047B0397A61395CD8C2C84AE00FACDCA +S1238DA588965B0481880F017208500B0024067B01AA016B01720A500B0024067B01AA0259 +S1238DC56B01720C500B0024067B01AA046B01720E500B0024067B01AA086B017B01A10FBA +S1238DE524057B015B0181A6FF5B018188C65240A58027F97B01C7524184818952081E0D58 +S1238E05CDCD421F011E09CDCD421F035F1F05203F5F1F0720071E071C00011F079C1E0771 +S1238E2513012E1B9C1E0572FB0713032E111E0772FB0DF61E0572FB0772FB09F127D71E95 +S1238E4507130126041E0520111E051C00011F059C1E0513032FBAAEFFFF5B0A818888723A +S1238E651C0082350100163F2A0F017B015F97724F015D0C017B01A17825F00F012013C635 +S1238E855240A58027F97B015F97D6024DC752410C017B01110225E7721D0082721C008139 +S1238EA53F10858188883F163F290F012013C65240A58027F97B015F97D6024DC752410CAA +S1238EC5017B01110225E7858188880F017B015F97897B045F1B0324015C02D601D785D743 +S1238EE501430C017B01A10625E3A6016B01A601858189889FA153260E7B02970C029F5F35 +S1238F0597724F024D200D7B02970C029F5F97A601D7024D7B02970C029F5F97B62FD7027B +S1238F254D0F017B025F1B0124015C027B01905F909790D6013DD7024D0C017B01A106259F +S1238F45E27B021B016B020F017B025F1B0124015C027B01905F909790D60143D7024D0C27 +S1238F65017B01A10625E27B021B016B02B62FA101260B7B025F97A618D7024D205EB62F45 +S1238F85A106260B7B025F97A639D7024D204DB62FA107260B7B025F97A614D7024D203C9E +S1238FA5B62FA108260B7B025F97A639D7024D202BB62FA109260B7B025F97A616D7024D11 +S1238FC5201AB62FA10B260B7B025F97A614D7024D20097B025F97A639D7024D5B03818831 +S1238FE552031E01A10B2707A1072703CC90987B04B72F7B04A10B2608AE00534F95CD8E56 +S1239005F77B04A1072608AE00524F95CD8EF77B03973501025C3503025D3506025EAE003C +S12390251289AE024DCD88315B021F017B01C7025F7B02C702607B04A1FF26130F037B035A +S12390455F97A6FFD7024D0C037B03A11425EF3514002CA614CD8E62AE81DB89AE015DCD98 +S1239065CD4E5B02BF30BE302607720C00810025E7721D00813F163F29BE30270A721300E9 +S123908586350B0021200C7212008672190086350A00215B048152041E01974F95CD8EF717 +S12390A5A60F6B043D03270F7B04970C049F5F97A601D7024D200C7B04970C049F5F97722C +S12390C54F024D7B04970C049F5F97A601D7024D3D00270F7B04970C049F5F97A601D702B3 +S12390E54D200C7B04970C049F5F97724F024D7B04970C049F5F97A602D7024D3D02270F25 +S12391057B04970C049F5F97A601D7024D200C7B04970C049F5F97724F024D0F037B04979F +S12391250C049F5F977B034CD7024D7B04970C049F5F977B03905F909790D60101D7024DB4 +S12391457B04970C049F5F977B03905F909790D6010BD7024D7B04970C049F5F977B039056 +S12391655F909790D60115D7024D7B04970C049F5F977B03905F909790D6011FD7024D7B48 +S123918504970C049F5F977B03905F909790D60129D7024D0C037B03A10425817B04970C42 +S12391A5049F5F97B63AD7024D7B04970C049F5F97B63BA4FFD7024D7B04970C049F5F97C7 +S12391C5724F024D7B04970C049F5F97724F024D7B04970C049F5F97724F024D7B04970CBE +S12391E5049F5F97724F024D7B04970C049F5F97B61FD7024D7B04970C049F5F97B624D79B +S1239205024D7B04970C049F5F97B625A4FFD7024D7B04970C049F5F97B622D7024D7B045F +S1239225970C049F5F97B623A4FFD7024D7B045F9789AE024DCD88315B021F017B04970C27 +S1239245049F5F977B01D7024D7B04970C049F5F977B02D7024D7B04B72CB62CCD8EA95BC9 +S1239265048189880F017B015F97D68134D7024D0C017B01A10B25EE7B015F97B617D702BC +S12392854D7B02A118262E7B015F97A630D7024D0C017B015F97A62CD7024D0C017B015F21 +S12392A597A632D7024D0C017B015F97A634D7024DAC00997E7B02A1142703CC991F7B0172 +S12392C55F97A631D7024D0C017B015F97A62CD7024D0C017B015F97A632D7024D0C017B16 +S12392E5015F97A630D7024D0C017B015F97A62CD7024D0C017B015F97A622D7024D7B0310 +S1239305A1FF2703CC95A2C601335F97A664CDD0D1A3000027510C017B015F97C6013390EB +S1239325AE0064895F97659F85AB30D7024D0C017B015F97C60133905F9097A60ACDD0FC31 +S1239345A60ACDD0F6909FAB30D7024D0C017B015F97C6013390AE000A895F9765909F8538 +S1239365AB30D7024D2066C601335F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F4C +S123938597C60133905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C61C +S12393A5013390AE000A895F9765909F85AB30D7024D20190C017B015F97C6013390AE009F +S12393C50A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601345F97A664CDA0 +S12393E5D0D1A3000027510C017B015F97C6013490AE0064895F97659F85AB30D7024D0C77 +S1239405017B015F97C60134905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B7B +S1239425015F97C6013490AE000A895F9765909F85AB30D7024D2066C601345F97A60ACD5C +S1239445D0D1A60ACDD0CBA3000027390C017B015F97C60134905F9097A60ACDD0FCA60ABE +S1239465CDD0F6909FAB30D7024D0C017B015F97C6013490AE000A895F9765909F85AB30EB +S1239485D7024D20190C017B015F97C6013490AE000A895F9765909F85AB30D7024D0C01FC +S12394A57B015F97A62ED7024DC601355F97A664CDD0D1A30000274F0C017B015F97C6016E +S12394C53590AE0064895F97659F85AB30D7024D0C017B015F97C60135905F9097A60ACD95 +S12394E5D0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013590AE000A895F976590ED +S12395059F85AB30D7024DC601355F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F0A +S123952597C60135905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C678 +S1239545013590AE000A895F9765909F85AB30D7024D20190C017B015F97C6013590AE00F9 +S12395650A895F9765909F85AB30D7024D0C017B015F97A62ED7024D0C017B015F97A6326F +S1239585D7024D0C017B015F97A635D7024D0C017B015F97A635D7024DAC0098DBC601377F +S12395A55F97A664CDD0D1A3000027510C017B015F97C6013790AE0064895F97659F85AB47 +S12395C530D7024D0C017B015F97C60137905F9097A60ACDD0FCA60ACDD0F6909FAB30D72C +S12395E5024D0C017B015F97C6013790AE000A895F9765909F85AB30D7024D2066C6013731 +S12396055F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F97C60137905F9097A60ACF +S1239625CDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013790AE000A895F97656C +S1239645909F85AB30D7024D20190C017B015F97C6013790AE000A895F9765909F85AB30DB +S1239665D7024D0C017B015F97A62ED7024DC601385F97A664CDD0D1A3000027510C017B32 +S1239685015F97C6013890AE0064895F97659F85AB30D7024D0C017B015F97C60138905FB3 +S12396A59097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013890AE000AF8 +S12396C5895F9765909F85AB30D7024D2066C601385F97A60ACDD0D1A60ACDD0CBA3000094 +S12396E527390C017B015F97C60138905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024DB1 +S12397050C017B015F97C6013890AE000A895F9765909F85AB30D7024D20190C017B015FC0 +S123972597C6013890AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC66A +S123974501395F97A664CDD0D1A3000027510C017B015F97C6013990AE0064895F97659F99 +S123976585AB30D7024D0C017B015F97C60139905F9097A60ACDD0FCA60ACDD0F6909FAB5F +S123978530D7024D0C017B015F97C6013990AE000A895F9765909F85AB30D7024D2066C6BE +S12397A501395F97A60ACDD0D1A60ACDD0CBA3000027390C017B015F97C60139905F9097A2 +S12397C5A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013990AE000A895F15 +S12397E59765909F85AB30D7024D20190C017B015F97C6013990AE000A895F9765909F8517 +S1239805AB30D7024D0C017B015F97A62ED7024DC6013A5F97A664CDD0D1A3000027510C2F +S1239825017B015F97C6013A90AE0064895F97659F85AB30D7024D0C017B015F97C6013A80 +S1239845905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013A90AE6F +S1239865000A895F9765909F85AB30D7024D2066C6013A5F97A60ACDD0D1A60ACDD0CBA3E6 +S1239885000027390C017B015F97C6013A905F9097A60ACDD0FCA60ACDD0F6909FAB30D75C +S12398A5024D0C017B015F97C6013A90AE000A895F9765909F85AB30D7024D20190C017B2E +S12398C5015F97C6013A90AE000A895F9765909F85AB30D7024D0C017B015F97A622D70286 +S12398E54D0C017B015F97A62CD7024D0C017B015F97A639D7024D0C017B015F97A639D7E2 +S1239905024D0C017B015F97A635D7024D0C017B015F97A634D7024D205F7B02A1392632C2 +S12399257B06A13026097B015F97A630D7024D0C017B015F97A62CD7024D0C017B015F9739 +S1239945A635D7024D0C017B015F97A637D7024D20277B02A11626210C017B015F97A62C68 +S1239965D7024D0C017B015F97A632D7024D0C017B015F97A632D7024D0C017B015F97A699 +S12399850DD7024D0C017B015F97A60AD7024D7B014CB72CB62CCD8E62AE81E989AE015D3F +S12399A5CDCD4E5B02BF30BE302607720C00810025E7721D00813F163F29BE30270A7213D3 +S12399C5008635D300212018721200867B02A11426067219008620047217008135D20021C8 +S12399E55B0381725F505A725F505B35FF505C35AE506435565064C6505FA50827F9818986 +S1239A057B051E01D74000C6505FA50427F98581D640008188ADCCA6376B017B015F971DD3 +S1239A250037D60149887B025F97ADD3840C017B01A14B25E6848188ADA90F017B015F97E2 +S1239A45D6010B887B025F97ADB5840C017B01A10A25E9A60A6B017B015F971D000AD6016C +S1239A6515887B025F97AD97840C017B01A11425E6A6146B017B015F971D0014D6011F8875 +S1239A857B025F97CD9A04840C017B01A11E25E5A61E6B017B015F971D001ED60129887B29 +S1239AA5025F97CD9A04840C017B01A12825E5A6286B017B015F971D0027D60100887B028E +S1239AC55F97CD9A04840C017B01A13225E53B001FAE0032CD9A04843B0022AE0033CD9A64 +S1239AE50484B623A4FF88AE0034CD9A04843B0024AE0035CD9A0484B625A4FF88AE0036E5 +S1239B05CD9A04843B0080AE0037CD9A04843B0000AE0038CD9A04843B0001AE0039CD9A24 +S1239B2504843B0002AE003ACD9A04843B0003AE003BCD9A04843B002DAE003CCD9A048429 +S1239B45A63D6B017B015F971D003DD60149887B025F97CD9A04840C017B01A15125E584CE +S1239B6581890F027B025F97897B045F97CD9A1585D7010B0C027B02A10A25E8A60A6B020C +S1239B857B025F971D000A897B045F97CD9A1585D701150C027B02A11425E5A6146B027B4A +S1239BA5025F971D0014897B045F97CD9A1585D7011F0C027B02A11E25E5A61E6B027B027B +S1239BC55F971D001E897B045F97CD9A1585D701290C027B02A12825E5A6286B027B025FD6 +S1239BE5971D0027897B045F97CD9A1585D701000C027B02A13225E5AE0032CD9A15B71F10 +S1239C05AE0033CD9A156B02AE0034CD9A156B017B025F974F02011B0124015CB7239FB715 +S1239C2522AE0035CD9A156B02AE0036CD9A156B017B025F974F02011B0124015CB7259F84 +S1239C45B724AE0037CD9A15B780AE0038CD9A15B700AE0039CD9A15B701AE003ACD9A15F0 +S1239C65B702AE003BCD9A15B703AE003CCD9A15B72DB600A401B700B601A401B701B602DB +S1239C85A401B702B603A401B703B62DA1EA261FA63D6B027B025F971D003D897B045F9777 +S1239CA5CD9A1585D701490C027B02A15125E585815204AE821D89AE015DCDCD4E5B02BFB0 +S1239CC530BE30725F0136725F0135725F0134725F0133721C0084AE821D89AE015DCD8EF4 +S1239CE5005B02016B03027B03AB076B030F047B035F1B0424015C02D6015DA12E27080C1F +S1239D05047B04A10A25E87B04A101260E7B035F97D6015DA030C70133205C7B04A1022673 +S1239D25207B035F97D6015EA0306B027B035F97D6015D97A60A429FA0E01B02C70133208C +S1239D45367B04A10326307B035F97D6015FA0306B027B035F97D6015E97A60A429FA0E013 +S1239D656B017B035F97D6015D97A664429FA0C01B011B02C701337B031B044C6B030F0446 +S1239D857B035F1B0424015C02D6015DA12E27080C047B04A10A25E87B04A101260E7B03EF +S1239DA55F97D6015DA030C70134205C7B04A10226207B035F97D6015EA0306B027B035FFD +S1239DC597D6015D97A60A429FA0E01B02C7013420367B04A10326307B035F97D6015FA0D5 +S1239DE5306B027B035F97D6015E97A60A429FA0E06B017B035F97D6015D97A664429FA036 +S1239E05C01B011B02C701347B031B044C6B030F047B035F1B0424015C02D6015DA12E2731 +S1239E25080C047B04A10A25E87B04A10126147B035F1B0424015C025AD6015DA030C701CA +S1239E4535207E7B04A102262D7B035F1B0424015C025AD6015DA0306B027B035F1B042447 +S1239E65015C025A5AD6015D97A60A429FA0E01B02C70135204B7B04A10326457B035F1BDF +S1239E850424015C025AD6015DA0306B027B035F1B0424015C025A5AD6015D97A60A429FD8 +S1239EA5A0E06B017B035F1B0424015C021D0003D6015D97A664429FA0C01B011B02C701F7 +S1239EC5357B031B044C6B030F047B035F1B0424015C02D6015DA12227080C047B04A10AFB +S1239EE525E87B04A10126147B035F1B0424015C025AD6015DA030C70136207E7B04A10256 +S1239F05262D7B035F1B0424015C025AD6015DA0306B027B035F1B0424015C025A5AD60191 +S1239F255D97A60A429FA0E01B02C70136204B7B04A10326457B035F1B0424015C025AD650 +S1239F45015DA0306B027B035F1B0424015C025A5AD6015D97A60A429FA0E06B017B035F05 +S1239F651B0424015C021D0003D6015D97A664429FA0C01B011B02C701367B03977B035FD7 +S1239F851B0424015C025CAE821689AE015DCDCD4E5B02BF30BE302603CCA0AE725F014266 +S1239FA5725F0141725F0140725F013F725F013E725F013D721A0084AE821689AE015DCD8B +S1239FC58E005B02016B03027B03AB086B030F047B035F97D6015DA130251E7B035F97D664 +S1239FE5015DA13A24137B045F977B03905F909790D6015DA030D7013D7B035F97D6015D8E +S123A005A161251E7B035F97D6015DA16724137B045F977B03905F909790D6015DA057D770 +S123A025013D7B035F97D6015EA130252F7B035F97D6015EA13A24247B045F977B03905F5D +S123A045909790D6015EA0306B027B04905F909790D6013D4EA4F01B02D7013D7B035F970D +S123A065D6015EA16125317B035F97D6015DA16724267B045F977B03905F909790D6015E82 +S123A085A0616B027B04905F909790D6013D4EA4F01B02AB0AD7013D7B03AB036B030C049D +S123A0A57B04A1062403CC9FD55B048135CC50E08188CD87900F017B015F97D680D2D70289 +S123A0C54D0C017B01A10625EE350D0253350A02543508002CA608CD8EA98481880F017B88 +S123A0E5015F97D680D8D7024D0C017B01A10A25EE350D0257350A0258350C002CA60CCDA5 +S123A1058EA9AE00C8CD8C14848188880F017B015F97D680F3D7024D0C017B01A10A25EECF +S123A1257B02C70257350D0258350A0259350D002CA60DCD8E62AE81BD89AE015DCDCD4EFC +S123A1455B02BF30BE302607720C00810025E7721D00813F163F29BE3027063529002120FD +S123A1650435280021858188880F017B015F97D680FDD7024D0C017B01A10B25EE7B02C7B7 +S123A1850258350D0259350A025A350E002CA60ECD8E62AE81BD89AE015DCDCD4E5B02BFBF +S123A1A530BE302607720C00810025E7721D00813F163F29BE302706353300212004353244 +S123A1C50021858188880F017B015F97D68108D7024D0C017B01A10A25EE7B02C70257351F +S123A1E50D0258350A0259350D002CA60DCD8E62AE81BD89AE015DCDCD4E5B02BF30BE30D4 +S123A2052607720C00810025E7721D00813F163F29BE302706353D00212004353C00218547 +S123A2258188880F017B015F97D68157D7024D0C017B01A10C25EE7B01970C019F5F977BB5 +S123A24502D7024D7B01970C019F5F97A60DD7024D7B01970C019F5F97A60AD7024D7B0138 +S123A265B72CB62CCD8E62AE81BD89AE015DCDCD4E5B02BF30BE302607720C00810025E778 +S123A285721D00813F163F29BE302706353D00212004353C0021858188880F017B015F97EC +S123A2A5D6813FD7024D0C017B01A10C25EE7B02C70259350D025A350A025B350F002CA6A1 +S123A2C50FCD8E62AE81BD89AE015DCDCD4E5B02BF30BE302607720C00810025E7721D003F +S123A2E5813F163F29BE302706358D00212004358C002185818872100086721A00837217E5 +S123A3050086721B0082721700810F017B015F97D68126D7024D0C017B01A10E25EE350DE3 +S123A325025B350A025C3510002CA610CD8E62AE81BD89AE015DCDCD4E5B02BF30BE30266D +S123A34507720C00810025E7721D00813F163F29BE302706354700212004354600210F018D +S123A3657B015F97D680E2D7024D0C017B01A11125EE350D025E350A025F3513002C721B73 +S123A3850082A613CD8EA98481880F017B015F97D68112D7024D0C017B01A10825EE350D50 +S123A3A50255350A0256350A002CA60ACD8E62AE000ACD8896AE821D89AE015DCDCD4E5B06 +S123A3C502BF30BE302619AE821689AE015DCDCD4E5B02BF30BE302607720C00810025D533 +S123A3E5721D00813F163F29BE302709CD9CB635830021200435820021848188880F017BD5 +S123A405015F97D6811AD7024D0C017B01A10C25EE7B02C70259352C025A3522025B3555C2 +S123A425025C3544025D3550025E3522025F352C026035220261A6146B01C601335F97A607 +S123A44564CDD0D1A3000027510C017B015F97C6013390AE0064895F97659F85AB30D7022F +S123A4654D0C017B015F97C60133905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C2F +S123A485017B015F97C6013390AE000A895F9765909F85AB30D7024D2066C601335F97A649 +S123A4A50ACDD0D1A60ACDD0CBA3000027390C017B015F97C60133905F9097A60ACDD0FC28 +S123A4C5A60ACDD0F6909FAB30D7024D0C017B015F97C6013390AE000A895F9765909F85A7 +S123A4E5AB30D7024D20190C017B015F97C6013390AE000A895F9765909F85AB30D7024DBF +S123A5050C017B015F97A62ED7024DC601345F97A664CDD0D1A3000027510C017B015F97B6 +S123A525C6013490AE0064895F97659F85AB30D7024D0C017B015F97C60134905F9097A636 +S123A5450ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013490AE000A895F979B +S123A56565909F85AB30D7024D2066C601345F97A60ACDD0D1A60ACDD0CBA3000027390CFC +S123A585017B015F97C60134905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017BEA +S123A5A5015F97C6013490AE000A895F9765909F85AB30D7024D20190C017B015F97C60140 +S123A5C53490AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601355F89 +S123A5E597A664CDD0D1A3000027510C017B015F97C6013590AE0064895F97659F85AB3028 +S123A605D7024D0C017B015F97C60135905F9097A60ACDD0FCA60ACDD0F6909FAB30D7020B +S123A6254D0C017B015F97C6013590AE000A895F9765909F85AB30D7024D2066C601355F87 +S123A64597A60ACDD0D1A60ACDD0CBA3000027390C017B015F97C60135905F9097A60ACD13 +S123A665D0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013590AE000A895F9765905B +S123A6859F85AB30D7024D20190C017B015F97C6013590AE000A895F9765909F85AB30D746 +S123A6A5024D0C017B015F97A62ED7024DC601365F97A664CDD0D1A3000027510C017B01BA +S123A6C55F97C6013690AE0064895F97659F85AB30D7024D0C017B015F97C60136905F90D8 +S123A6E597A60ACDD0FCA60ACDD0F6909FAB30D7024D0C017B015F97C6013690AE000A89B1 +S123A7055F9765909F85AB30D7024D2066C601365F97A60ACDD0D1A60ACDD0CBA3000027A7 +S123A725390C017B015F97C60136905F9097A60ACDD0FCA60ACDD0F6909FAB30D7024D0C7D +S123A745017B015F97C6013690AE000A895F9765909F85AB30D7024D20190C017B015F97E7 +S123A765C6013690AE000A895F9765909F85AB30D7024D0C017B01970C019F5F97A622D791 +S123A785024D7B01970C019F5F97A62CD7024D7B01970C019F5F97A639D7024D7B01970CDB +S123A7A5019F5F97A639D7024D7B01970C019F5F97A635D7024D7B01970C019F5F97A634B0 +S123A7C5D7024D7B01970C019F5F97A62CD7024D7B01970C019F5F97A633D7024D7B0197D6 +S123A7E50C019F5F97A633D7024D7B01970C019F5F97A633D7024D7B01970C019F5F97A6A0 +S123A8052CD7024D7B01970C019F5F97A630D7024D7B01970C019F5F97A60DD7024D7B0122 +S123A825970C019F5F97A60AD7024D7B01B72CB62CCD8E62AE81BD89AE015DCDCD4E5B023C +S123A845BF30BE302607720C00810025E7721D00813F163F294BFFAE00FFA61495CD926701 +S123A86584A60BCD8FE4858188890F027B025F97D6811AD7024D0C027B02A10C25EE7B035F +S123A885C70259352C025A3522025B3554025C3543025D3550025E3522025F352C026035C9 +S123A8A52202610F017B015F97724D014927080C017B01A11425EE7B01A10B2403CCA969D2 +S123A8C5A6156B0220177B025F977B02905F909772A2001590D60149D7024D0C029C7B02E4 +S123A8E55F977B01905F909772A90015BF4990B3492CD37B02970C029F5F97A622D7024D5F +S123A9057B02970C029F5F97A62CD7024D7B02970C029F5F97A639D7024D7B02970C029F02 +S123A9255F97A639D7024D7B02970C029F5F97A635D7024D7B02970C029F5F97A635D702F0 +S123A9454D7B02970C029F5F97A60DD7024D7B02970C029F5F97A60AD7024D7B02B72CB66E +S123A9652CCD8EA95B03815203720000820024217200008100240AB61DA10226040F03203E +S123A9851EB63F5F97A60ACDD0CBD682356B03200EB63F5F97A60ACDD0CBD682356B037BEB +S123A9A503A4F04EA40F6B027B03A40F6B01720200820024067B02AA016B024B047B0397D3 +S123A9C5A61795CD8C2C844B047B0297A61895CD8C2C847200008200242172000081002404 +S123A9E50AB61DA10326040F03201EB63E5F97A60ACDD0D1D682356B03200EB63E5F97A692 +S123AA050ACDD0D1D682356B037B03A4F04EA40F6B027B02AA016B027B03A40F6B014B04B9 +S123AA257B0397A61595CD8C2C844B047B0297A61695CD8C2C847200008200242172000037 +S123AA458100240AB61DA10426040F03201EB63E5F97A60ACDD0CBD682356B03200EB63E2D +S123AA655F97A60ACDD0CBD682356B037B03A4F04EA40F6B027B02AA016B027200008200BB +S123AA85240D720200820024067B02A4FE6B027B03A40F6B014B047B0397A61395CD8C2CFC +S123AAA5844B047B0297A61495CD8C2C843D00273AA6D96B033D14270CB614A10624067B29 +S123AAC503AA046B03B614A102250CB614A10624067B03AA026B03B614A1032512B614A16D +S123AAE506240C7B03AA206B032004A6FF6B037B03A4F04EA40F6B027B03A40F6B017B0290 +S123AB05AA016B024B047B0397A60A95CD8C2C844B047B0297A60995CD8C2C8472000085BB +S123AB2500244F720000810024040F03207A7204008500241BB61C5F975AA602CDD0D1D68A +S123AB45010B5F97A60ACDD0D1D682446B03205872060085002451B61C5F975AA602CDD071 +S123AB65D1D6011F5F97A60ACDD0D1D682446B032036720000820024217200008100240A37 +S123AB85B61DA10126040F03201EB63F5F97A60ACDD0D1D682446B03200EB63F5F97A60AE1 +S123ABA5CDD0D1D682446B037B03A40F6B014B047B0297A61995CD8C2C847B01974B04AEA7 +S123ABC5000FA60B95CD8C2C84BE3AA60A625F97D682356B037B03A4F04EA40F6B027B0315 +S123ABE5A40F6B017B02AA016B024B047B0397A60C95CD8C2C844B047B0297A60D95CD8CE0 +S123AC052C84BE3AA664625F97A60A62D682356B037B03A4F04EA40F6B027B03A40F6B01F7 +S123AC257B02AA016B024B047B0397A60E95CD8C2C844B047B0297A60F95CD8C2C84BE3A12 +S123AC45A66462D682356B037B03A4F04EA40F6B027B03A40F6B017B02AA016B024B047B08 +S123AC650397A61095CD8C2C844B047B0297A61195CD8C2C84A6016B0172080081002406ED +S123AC857B01AA026B013D0327087B01AA086B0120067B01AA046B014B047B0297A61295A2 +S123ACA5CD8C2C84720000820024217200008100240AB61DA10A26040F03201EB6405F9744 +S123ACC5A60ACDD0CBD682356B03200EB6405F97A60ACDD0CBD682356B037B03A4F04EA427 +S123ACE50F6B027B02AA016B027B03A40F6B017202008200240A3D0227067B02A4FE6B0281 +S123AD054B047B0397A60795CD8C2C844B047B0297A60695CD8C2C84720000820024217223 +S123AD2500008100240AB61DA10926040F03201EB6405F97A60ACDD0D1D6823F6B03200E27 +S123AD45B6405F97A60ACDD0D1D6823F6B037B03A40F6B014B047B0297A60595CD8C2C8492 +S123AD65720000820024217200008100240AB61DA10826040F03201EB6415F97A60ACDD040 +S123AD85CBD682356B03200EB6415F97A60ACDD0CBD682356B037B03A4F04EA40F6B027BBB +S123ADA503A40F6B017B02AA016B027200008100240CB61DA10726067B02A40E6B024B041E +S123ADC57B0397A60495CD8C2C844B047B0297A60395CD8C2C8472000082002421720000B8 +S123ADE58100240AB61DA10526040F03201EB6425F97A60ACDD0D1D682356B03200EB6427B +S123AE055F97A60ACDD0D1D682356B037B03A4F04EA40F6B027B03A40F6B017B02AA016B6A +S123AE25024B047B03974F95CD8C2C844B047B0297A60895CD8C2C8472000082002421725C +S123AE4500008100240AB61DA10626040F03201EB6425F97A60ACDD0CBD682356B03200E17 +S123AE65B6425F97A60ACDD0CBD682356B037B03A4F04EA40F6B027B03A40F6B017B02AA84 +S123AE85016B02B641A10A241D7200008100240EB61DA10726087B02A40E6B02200E7B0243 +S123AEA5AA016B0220067B02A40E6B024B047B0397A60295CD8C2C844B047B0297A6019566 +S123AEC5CD8C2C840F01720E0081002503CCAF54720A008300247872060086002413720214 +S123AEE50082002406A60F6B012064A6086B01205E7200008600241172020082002406A66D +S123AF050F6B01204A0F012046720A008200251372020082002406A60F6B012032A6086BEB +S123AF2501202C7206008100251372020082002406A60F6B012018A6076B012012720A004A +S123AF458200240B72060081002404A60F6B014B047B0297A61A95CD8C2C845B0381520DF6 +S123AF650F0D9C7B0D97A604421C849ACDD0A7961C0010CDCE5F2F080C0D7B0DA16A25E2E1 +S123AF857B0DA169250CCE869F1F0BCE869D1F0920797B0DA106240CAE00001F0BAE000031 +S123AFA51F0920677B0D5F97CDD079961C0005CDD0B97B0D97A604421D00041C849ACDD035 +S123AFC5A77B0D97A604421C849ACDCD82961C0001CDD0B97B0D97A604421D00041C849AF1 +S123AFE5CDD0A7961C0010CDCD82961C0001CDCE95AE8699CDCD82AE8695CDCD82961C00C3 +S123B00505CDCD96961C0009CDD0B9961C0009CDD0A75B0D81520CC65400A480A180270312 +S123B025CCB122C654045F97CDD079961C0005CDD0B9AE0100CDD079961C0005CDCD829603 +S123B0451C0001CDD0B9C654045F97CDD079AE8512CDCF21961C0001CDCE95961C0009CDDD +S123B065D0B91E0B891E0B89CDAF635B04961C0009CDD0B9961C0009CDD0A7AE0036CDCF0C +S123B085193C1EB61EA1282403CCB11A3F1EBE3AB3222206BE3AB324242E721C0085AE00A5 +S123B0A536CDD0A7CDCFF6575772BB003A54BF3AAE0000BF38AE0000BF36BE3AB322220ED4 +S123B0C5BE3AB32424182006721D008520D0721E0085BE3AB322230C354800202016721FBD +S123B0E5008520EEBE3AB3242406354C00202004354E0020BE3AB3222206BE3AB324241556 +S123B105720D008507720E00850B2005720F00850472120083721F5400721054015B0C8131 +S123B12589B618A00227414A27134A276E4A2603CCB1CE4A2603CCB206AC00B21FA6096BF6 +S123B1450172000081002404A60F6B014B047B0297A60A95CD8C2C844B047B0297A6099551 +S123B165CD8C2C84AC00B21FB6405F97A60ACDD0CBD682356B027B02A4F04EA40F6B027251 +S123B1850000810024067B02AA016B024B047B0397A60795CD8C2C84CCB21FBE3AA66462B6 +S123B1A5D682356B027B02A4F04EA40F6B02720000810024067B02AA016B024B047B0397F7 +S123B1C5A61095CD8C2C842051B63E5F97A60ACDD0CBD682356B027B02A4F04EA40F6B0226 +S123B1E57B02AA016B02720000810024067B02A4FE6B024B047B0297A61395CD8C2C84202E +S123B205190F0172000081002404A60F6B014B047B0297A61A95CD8C2C84858189CD8DAA6C +S123B2256B02B61811022703CCB8C5B618A1FF2603CCB8C53C1AB61AA1192403CCB8CF3FCB +S123B2451A3F0F3F0E7208008100245172120081CD8DAA6B02CDB125CDA96C7208008100CA +S123B26524067B02A1FF26E472080081002503CDA96C7B02A1FF2608721800817213008113 +S123B285AE0012A68095CD8BF9CD8DAAA1FF26F9AE0010A68095CD8BF9AC00B8CFCD8DAA15 +S123B2A56B02721200817B02A00227444A271D4A27504A2603CCB8494A2603CCB868A0EA11 +S123B2C5271C4A2603CCB813AC00B8A73D032703CCB8A7B60043A401B700AC00B8A73D03D8 +S123B2E52703CCB8A7B60143A401B701AC00B8A73D032703CCB8A7B60243A401B702AC00F4 +S123B305B8A772000085002503CCB511B61C4AA10C24075F9758DE8642FCAC00B503725DFD +S123B3250115271A725F0115725C010BC6010BA1182403CCB8A7725F010BAC00B8A7351ED4 +S123B3450115AC00B8A7725D0129271A725F0129725C011FC6011FA1182403CCB8A7725FDE +S123B365011FAC00B8A7351E0129AC00B8A7725D0116271A725F0116725C010CC6010CA1B3 +S123B385182403CCB8A7725F010CAC00B8A7351E0116AC00B8A7725D012A271A725F012AA5 +S123B3A5725C0120C60120A1182403CCB8A7725F0120AC00B8A7351E012AAC00B8A7725D4E +S123B3C50117271A725F0117725C010DC6010DA1182403CCB8A7725F010DAC00B8A7351E2A +S123B3E50117AC00B8A7725D012B271A725F012B725C0121C60121A1182403CCB8A7725F34 +S123B4050121AC00B8A7351E012BAC00B8A7725D0118271A725F0118725C010EC6010EA106 +S123B425182403CCB8A7725F010EAC00B8A7351E0118AC00B8A7725D012C271A725F012CFC +S123B445725C0122C60122A1182403CCB8A7725F0122AC00B8A7351E012CAC00B8A7725DA5 +S123B4650119271A725F0119725C010FC6010FA1182403CCB8A7725F010FAC00B8A7351E7F +S123B4850119AC00B8A7725D012D271A725F012D725C0123C60123A1182403CCB8A7725F89 +S123B4A50123AC00B8A7351E012DAC00B8A7725D011A271A725F011A725C0110C60110A15A +S123B4C5182403CCB8A7725F0110AC00B8A7351E011AAC00B8A7725D012E271A725F012E54 +S123B4E5725C0124C60124A1182403CCB8A7725F0124AC00B8A7351E012EAC00B8A73F1C71 +S123B50572110085AC00B8A7AC00B8A772000082002503CCB7CEB61D4A273D4A27714A26C4 +S123B52503CCB5D94A2603CCB6104A2603CCB6474A2603CCB67E4A2603CCB6B54A2603CC08 +S123B545B6E54A2603CCB73D4A2603CCB7793F1D72110082AC00B8A7B63FAE000A515F9745 +S123B56565909F6B01B63FAE000A515F97659F6B020C027B02AE0003515F9765909F6B02D9 +S123B5857B0297A60A429F1B01B73FAC00B8A7B63FAE000A515F9765909F6B01B63FAE0049 +S123B5A50A515F97659F6B020C017B02A10226087B01A4036B01200D7B01AE000A515F972E +S123B5C565909F6B017B0297A60A429F1B01B73FAC00B8A7B63EAE000A515F9765909F6BAE +S123B5E501B63EAE000A515F97659F6B020C027B02AE0006515F9765909F6B027B0297A69C +S123B6050A429F1B01B73EAC00B8A7B63EAE000A515F9765909F6B01B63EAE000A515F9734 +S123B625659F6B020C017B01AE000A515F9765909F6B017B0297A60A429F1B01B73EAC00A6 +S123B645B8A7B642AE000A515F9765909F6B01B642AE000A515F97659F6B020C027B02AEEA +S123B665000A515F9765909F6B027B0297A60A429F1B01B742AC00B8A7B642AE000A515F4A +S123B6859765909F6B01B642AE000A515F97659F6B020C017B01AE000A515F9765909F6B1B +S123B6A5017B0297A60A429F1B01B742AC00B8A7B641AE000A515F9765909F6B01B641AE20 +S123B6C5000A515F97659F6B020C027B02A4016B027B0297A60A429F1B01B741AC00B8A73E +S123B6E5B641AE000A515F9765909F6B01B641AE000A515F97659F6B020C017B02A1012692 +S123B7050F7B01AE0003515F9765909F6B01200D7B01AE000A515F9765909F6B010D0226C0 +S123B725080D012604A6016B017B0297A60A429F1B01B741AC00B8A7B640AE000A515F97F4 +S123B74565909F6B01B640AE000A515F97659F6B020C027B02A4036B020D0226080D01266A +S123B76504A6016B017B0297A60A429F1B01B740AC00B8A7B640AE000A515F9765909F6BF2 +S123B78501B640AE000A515F97659F6B020C017B02A10326087B01A4016B01200D7B01AEF9 +S123B7A5000A515F9765909F6B010D0226080D012604A6016B017B0297A60A429F1B01B72F +S123B7C540AC00B8A7AC00B8A7721A008672120081CD8DAA6B02CDB125CDA96C720A0086FB +S123B7E50024067B02A1FF26E4720A008600250AB60343A401B703CDA96C7B02A1FF27033A +S123B805CCB8A7721B008672130081CCB8A772100085721100823C1CB61CA401A101260A03 +S123B825721400857217008520087215008572160085B61CA10D256A3F1C721100857212AF +S123B8450085205E72100082721100853C1DB61DA10B254ECD8A523F1D72110082721400F5 +S123B86581203F721A008672120081CD8DAA6B02CDB125CDA96C720A00860024067B02A188 +S123B885FF26E4720A008600250ACD8790CDA0E1721000837B02A1FF2608721B008672134B +S123B8A50081AE0012A68095CD8BF9CD8DAAA1FF26F9AE0010A68095CD8BF9CD9A3C200AD8 +S123B8C53F1A7B02B7187213008185815230B603A1012703CCB9D00F307B305F97D6011586 +S123B8E56B057B305F97D6010B97A63C42011B0524015C021F0301961C00081F017B305FE6 +S123B905975872FB011603FF7B305F97D601296B057B305F97D6011F97A63C42011B052401 +S123B925015C021F0301961C001C1F017B305F975872FB011603FF0C307B30A104259AB60E +S123B9453F97A63C4201BB3E24015C021F0601725D010127181E06130825121E06131C2444 +S123B9650C1E08131C2406350100002020725D010227181E06130A25121E06131E240C1E91 +S123B9850A131E24063501000020023F00725D010327181E06130C25121E061320240C1E71 +S123B9A50C13202406350100022020725D010427181E06130E25121E061322240C1E0E1346 +S123B9C52224063501000220023F023D002706721450052004721550053D022706721650EE +S123B9E5052004721750055B308152031E0172060084002407720E008100250E7200008367 +S123BA0500241A720E008100241372170084721F0084CDA2FA72110083AC00BBEB720E0044 +S123BA258600240D721F0086A630CDA86DAC00BBEB72060083002503CCBAE9721700837215 +S123BA451800854BFF5FA61895CD9267843501002FAE00534F95CD8EF7350A025C350B027F +S123BA655D3501025EA6126B037B035F977B03905F909772A2001290D60133D7024D0C03A7 +S123BA857B03A11625E3AE001689AE024DCD88315B021F017B01C702637B02C70264351874 +S123BAA5002CA618CD8E62AE81DB89AE015DCDCD4E5B02BF30BE302607720C00810025E7DD +S123BAC5721D00813F163F29BE30270C35A1002172130086AC00BBEB35A00021721200861B +S123BAE5AC00BBEB72040083002503CCBBEB72020083002503CCBBCBB620A14E2603CCBB72 +S123BB05CBB61FA1012703CCBBEBBE221C0006B33A250CBE241D0006B33A2203CCBBEB7223 +S123BB251300834BFF5FA61695CD9267843509002FAE00534F95CD8EF755003A025DB63B9F +S123BB45A4FFC7025EB620A14826123501025C550022025FB623A4FFC702602016B620A15D +S123BB654C2610725F025C550024025FB625A4FFC70260AE001489AE024DCD88315B021F40 +S123BB85017B01C702617B02C702623516002CA616CD8E62AE81DB89AE015DCDCD4E5B0279 +S123BBA5BF30BE3027EE721D00813F163F29BE30270A35C9002172130086202A35C800210C +S123BBC572120086202072080083002419721900833F134B305FA63995CD926784350800A3 +S123BBE52FA653CD909B5B0381520C1E0872060082002503CCC9E4721700823F135FBF049F +S123BC055FBF063F2E0F0A0F0BAE81E389AE01D5CDCD4E5B02BF32BE322603CCC75DAE81CA +S123BC25E389AE01D5CD8E005B02016B0B027B0B5F97D601DAA130260635300017200435DB +S123BC453100177B0BAB076B0B7B0B5F97D601D5A1302403CCBD607B0B5F97D601D5A13AD9 +S123BC652503CCBD607B0B5F97D601D5A030B72E0C0B7B0B5F97D601D5A1302403CCBD60AD +S123BC857B0B5F97D601D5A13A2503CCBD607B0B5F97D601D5A0306B067B0B5F975AD60171 +S123BCA5D597A60A429FA0E01B06B72E0C0B7B0B5F97D601D5A1302403CCBD607B0B5F975C +S123BCC5D601D5A13A2503CCBD607B0B5F97D601D5A0306B067B0B5F975AD601D597A60A91 +S123BCE5429FA0E06B057B0B5F975A5AD601D597A664429FA0C01B051B06B72E0C0B7B0BE9 +S123BD055F97D601D5A13025527B0B5F97D601D5A13A24477B0B5F97D601D5A0306B067BDE +S123BD250B5F975AD601D597A60A429FA0E06B057B0B5F975A5AD601D597A664429FA0C01D +S123BD456B047B0B5F971D0003D601D597A6E8429FA0801B041B051B06B72E7B0B5F97D666 +S123BD6501D5A12C0C0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A25E855 +S123BD857B0CA101260E7B0B5F97D601D5A030C70137205C7B0CA10226207B0B5F97D60107 +S123BDA5D6A0306B067B0B5F97D601D597A60A429FA0E01B06C7013720367B0CA10326309C +S123BDC57B0B5F97D601D7A0306B067B0B5F97D601D697A60A429FA0E06B057B0B5F97D65C +S123BDE501D597A664429FA0C01B051B06C701377B0B1B0C4C6B0B0F0C7B0B5F1B0C240187 +S123BE055C02D601D5A12E27080C0C7B0CA10A25E87B0CA101260E7B0B5F97D601D5A03065 +S123BE25C70138205C7B0CA10226207B0B5F97D601D6A0306B067B0B5F97D601D597A60A34 +S123BE45429FA0E01B06C7013820367B0CA10326307B0B5F97D601D7A0306B067B0B5F9799 +S123BE65D601D697A60A429FA0E06B057B0B5F97D601D597A664429FA0C01B051B06C701E1 +S123BE85387B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A54 +S123BEA525E87B0CA10126147B0B5F1B0C24015C025AD601D5A030C70139207E7B0CA102DB +S123BEC5262D7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD60116 +S123BEE5D597A60A429FA0E01B06C70139204B7B0CA10326457B0B5F1B0C24015C025AD6DA +S123BF0501D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B5F15 +S123BF251B0C24015C021D0003D601D597A664429FA0C01B051B06C701397B0B1B0C4C6BFA +S123BF450B0F0C7B0B5F1B0C24015C02D601D5A12C27080C0C7B0CA10A25E87B0CA10126D5 +S123BF65147B0B5F1B0C24015C025AD601D5A030C7013A207E7B0CA102262D7B0B5F1B0C16 +S123BF8524015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA017 +S123BFA5E01B06C7013A204B7B0CA10326457B0B5F1B0C24015C025AD601D5A0306B067B23 +S123BFC50B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B5F1B0C24015C021D20 +S123BFE50003D601D597A664429FA0C01B051B06C7013A7B0B1B0C4C6B0B0F0C7B0B5F1BDA +S123C0050C24015C02D601D5A13A27080C0C7B0CA10A25E87B0CA10126197B0B5F1B0C24E3 +S123C025015C025AD601D55F971D0030CF013BAC00C1337B0CA10226337B0B5F1B0C2401F0 +S123C0455C025AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D597A60A421D77 +S123C06501E072FB05CF013BAC00C1337B0CA103264C7B0B5F1B0C24015C025AD601D55F28 +S123C085971D00301F057B0B5F1B0C24015C025A5AD601D597A60A421D01E01F037B0B5F12 +S123C0A51B0C24015C021D0003D601D597A664421D12C072FB0372FB05CF013B20707B0C2B +S123C0C5A104266A7B0B5F1B0C24015C025AD601D55F971D00301F057B0B5F1B0C24015C99 +S123C0E5025A5AD601D597A60A421D01E01F037B0B5F1B0C24015C021D0003D601D597A694 +S123C10564421D12C01F017B0B5F1B0C24015C021D0004D601D55F9790AE03E8CDD0581DD4 +S123C125BB8072FB0172FB0372FB05CF013B7B0B977B0B5F1B0C24015C025CAE869389AE5A +S123C14501D5CD8E005B02016B0B027B0B5F97D601D5A13A0C0B7B0B5F97D601D5A1017B70 +S123C1650B5F97D601D6B72FB62EA1192703CCC269B62FA1012703CCC26972180083721428 +S123C18500837B0BCD8ECE4D2603CCC72B7B0BAB0F6B0B7B0B970C0B9F5F97D601D55F970F +S123C1A54F021F087B0B970C0B9F5F97D601D51B096B0924020C081E08A664625F979FB7D9 +S123C1C5427B0B970C0B9F5F97D601D5B7417B0B970C0B9F5F97D601D5B7407B0B970C0B07 +S123C1E59F5F97D601D5B73F7B0B970C0B9F5F97D601D5B73E7B0B970C0B9F5F97D601D520 +S123C205B73D7B0B5F97D601D5B73CCD8A527B0B5F97D601D66B077B0B5F97D601D76B0A23 +S123C2257B0B5F975C89AE01D5CD88315B021F087B0A5F974F02011B0724015C0213082653 +S123C245037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C1479 +S123C265AC00C72BB62EA1122703CCC2F1B62FA10226797B0BCD8ECE4D2603CCC72B7B0B47 +S123C285AB0F6B0B7B0B5F97724D01D526043F032004350100037B0B5F97D601D66B077B75 +S123C2A50B5F97D601D76B0A7B0B5F975C89AE01D5CD88315B021F087B0A5F974F02011B7A +S123C2C50724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17868 +S123C2E525F0AE000ACD8C14AC00C72BB62EA1132703CCC3C4B62FA1032703CCC3C47B0BBC +S123C305CD8ECE4D2603CCC72B7B0BAB0F6B0B3D032703CCC3A87B0B5F97D601D5A1012670 +S123C3251F7B0B5F97724D01D626043F0020397B0B5F97D601D6A101262E35010000202864 +S123C3457B0B5F97D601D5A102261D7B0B5F97724D01D626043F02200F7B0B5F97D601D6F1 +S123C365A1012604350100027B0B5F97D601D76B077B0B5F97D601D86B0A7B0B5F975C5C40 +S123C38589AE01D5CD88315B021F087B0A5F974F02011B0724015C02130826037B0A97A605 +S123C3A5016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C14AC00C72BB689 +S123C3C52EA1162703CCC48DB62FA1042703CCC48D7B0BCD8ECE4D2603CCC72B7B0BAB0F34 +S123C3E56B0B7B0B5F97D601D54A6B0C7B0C5F977B0B905F909790D601D6D7010B7B0C5FB6 +S123C405977B0B905F909790D601D7D701157B0C5F977B0B905F909790D601D8D7011F7BEB +S123C4250C5F977B0B905F909790D601D9D701297B0B5F97D601DA6B077B0B5F97D601DB47 +S123C4456B0A7B0B5F971C000589AE01D5CD88315B021F087B0A5F974F02011B0724015C3A +S123C46502130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE008B +S123C4850ACD8C14AC00C72BB62EA1162703CCC567B62FA1052703CCC5677B0BCD8ECE4D18 +S123C4A52603CCC72B7B0BAB0F6B0B7B0B5F97D601D5A102240B7B0B5F97D601D5B71F20BE +S123C4C5497B0B5F97D601D5A102263E7B0B5F97D601D76B067B0B5F97D601D65F974F02D0 +S123C4E5011B0624015CB7259FB7247B0B5F97D601D96B067B0B5F97D601D85F974F02012A +S123C5051B0624015CB7239FB7227B0B5F97D601DA6B077B0B5F97D601DB6B0A7B0B5F9760 +S123C5251C000589AE01D5CD88315B021F087B0A5F974F02011B0724015C02130826037B89 +S123C5450A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C14AC0048 +S123C565C72BB62EA1112669B62FA10626637B0BCD8ECE4D273F7B0BAB0F6B0B7B0B5F97F2 +S123C585D601D56B077B0B5F97D601D66B0A7B0B5F9789AE01D5CD88315B021F087B0A5F5F +S123C5A5974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C2D +S123C5C50C7B0CA17825F0AE000ACD8C14AC00C72BB62EA1252703CCC6A4B62FA10727030D +S123C5E5CCC6A47B0BCD8ECE4D2603CCC72B7B0BAB0F6B0B0F0C7B0C5F97897B0D5F1B0E32 +S123C60524015C02D601D585D701490C0C7B0CA11425E37B0B5F1B0C24015C02D601D56B3A +S123C625077B0B5F1B0C24015C02D601D66B0A7B0B5F1B0C24015C028901AE01D5CD883116 +S123C6455B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0CBD +S123C6655F97724F01D50C0C7B0CA17825F035EA002D4BFF5FA61495CD926784A607CD8FC0 +S123C685E472060081002405A630CDA29DA630CDA86D72150083AE000ACD8C14CCC72BB64E +S123C6A52EA11326F7B62FA10A267B7B0BCD8ECE4D27737B0BAB0F6B0B7B0B5F97D601D5CD +S123C6C56B0C7B0C5F977B0B905F909790D601D6D701007B0B5F97D601D76B077B0B5F9794 +S123C6E5D601D86B0A7B0B5F975C5C89AE01D5CD88315B021F087B0A5F974F02011B0724AF +S123C705015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F039 +S123C725AE000ACD8C140D0A2727B62FA1012721B62FA107271BB62FA1082715B62FA1096F +S123C745270F4BFF5FA63995CD926784A652CD909BCD9A3CAC00C9E4AE81EC89AE01D5CD52 +S123C765CD4E5B02BF32BE3227330F0C7B0C5F97724F01D50C0C7B0CA17825F0721E0081F0 +S123C785A631CDA10FA631CDA1C9A631CDA2263F12721E0084351F0021AC00C9E4AE817EE2 +S123C7A589AE01D5CDCD4E5B02BF32BE3227300F0C7B0C5F97724F01D50C0C7B0CA17825DA +S123C7C5F072160086721B008272170081721A00833F12721F008435DC0021AC00C9E4AE8B +S123C7E5816389AE01D5CDCD4E5B02BF32BE3227260F0C7B0C5F97724F01D50C0C7B0CA15D +S123C8057825F0721F008472170084721A008372170086AC00C9E4AE817289AE01D5CDCDA1 +S123C8254E5B02BF32BE3227350F0C7B0C5F97724F01D50C0C7B0CA17825F072170086728A +S123C8451A008272110086CDA38E3F16A631CDA400A630CDA86D35970021AC00C9E4AE8162 +S123C865F289AE01D5CDCD4E5B02BF32BE32272C0F0C7B0C5F97724F01D50C0C7B0CA17850 +S123C88525F07216008172160083AE00C8CD8C1435A10021721D0086AC00C9E4AE81FC896A +S123C8A5AE01D5CDCD4E5B02BF32BE32271A0F0C7B0C5F97724F01D50C0C7B0CA17825F088 +S123C8C572180086AC00C9E4AE81DB89AE01D5CDCD4E5B02BF32BE32271A0F0C7B0C5F97D0 +S123C8E5724F01D50C0C7B0CA17825F072160081AC00C9E4AE820689AE01D5CDCD4E5B02E1 +S123C905BF32BE322612AE820D89AE01D5CDCD4E5B02BF32BE3227300F0C7B0C5F97724FD5 +S123C92501D50C0C7B0CA17825F0721700817213008672150083AE00C8CD8C1435A0002153 +S123C945721C0086AC00C9E4AE81C589AE01D5CDCD4E5B02BF32BE3227170F0C7B0C5F9764 +S123C965724F01D50C0C7B0CA17825F0CDA0B1206EAE822389AE01D5CDCD4E5B02BF32BE4A +S123C9853227170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0B12045AE81C089AE0178 +S123C9A5D5CDCD4E5B02BF32BE3227170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0CC +S123C9C5B1201C720200860024150F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0B15BB9 +S123C9E50C81725F5244725F5245725F5246725F524335065242352C5245350E5007353E2F +S123CA055008725F5009350E50053506500C35F0500D725F500E3506500A35BC501135444B +S123CA255012C65013977214500F35205016725F5017725F5018725F5014721250C535B403 +S123CA4550C4725F5402725F5401725F54003501540735015401AE0064CD887F721054016E +S123CA65725F5341350153433507534535FF534635FF534435015340350153419ACD8790FF +S123CA85CD8C913F423F413F403F3F3F3E3F3C5FBF3ACD9B66CDA0B63530001772180081DD +S123CAA53F16CDBBEECDB221CD898CCDB01ACDA96CCDB8D1CDB9EF20E7B629A17825023F77 +S123CAC529B62AA17825023F2A720C00820025043D162615B629973C299F5F97C65241D744 +S123CAE501D53F277218008280B62A973C2A9F5F97C65241D7015D20EF720C008200241C16 +S123CB05B62BB12C220E3C2BB62B5F97D6024DC752412008721D0082721F5245803B004AFB +S123CB25BE48893B004DBE4B89725F53423C15B615A1322404AC00CD173F157206008100E9 +S123CB452519720A0082002412BE081C0001BF08A3019025065FBF08CDA0B1720600810014 +S123CB6524035FBF08901000813C14B614A10525063F14901200823C10B610A12825117259 +S123CB850C008100240A3F10721D008172140086720C00810025023F107208008100241CB6 +S123CBA5720200810024153C0FB60FA10F250D72080081002404721900813F0F72080081D4 +S123CBC50025023F0F720A008600241C720200810024153C43B643A10A250D720A00860010 +S123CBE52404721B00863F43720A00860025023F43720800810025303C0EB60EA132252846 +S123CC05721800813F0E72000082002406721100823F1D7200008500240E721100853F1CA8 +S123CC257215008572170085720800810024023F0E7206008100241C720A00820024157281 +S123CC4504008300240E3C13B613A14525063F1372180083720400830025023F137208009E +S123CC65830024257206008100241E720A00820024175FBF04BE061C0001BF06A301912549 +S123CC85325FBF06CDA0B1202A720800830025237206008100241C720A00820024155FBFFA +S123CCA506BE041C0001BF04A3019125065FBF04CDA0B1720C00860024123C0DB60DA15BE1 +S123CCC5250E3C353F0D721E008620043F0D3F357206008600240D3C0CB60CA15B25053FC3 +S123CCE50CCDA0B1720200810024023F0C720E0084002415720E008100240E3C12B612A174 +S123CD052325063F1272160084720E00840025023F12720800820024173C27B627A10B259B +S123CD250F3F2772190082721600824529283F2985BF4B32004D85BF4832004A80BF485A69 +S123CD455C7D26FC72B000488189520420261F011E091F03F626041E05201F1E01F61E039E +S123CD65F127071E055C1F05200A1E015C1F011E035C20DE1E05F626D55F5B0681E60388E2 +S123CD85E60288E60188F626040D01270EA880200AE60388E60288E60188F6881A02270BDA +S123CDA5BE44260A85BF4485BF46815B048190893F495839499EB7481E035839499E5FB005 +S123CDC548271F972228A1E9251E409716057B04AA804490565A26FA6B041705721E00456F +S123CDE5202C721E00452020206B908520B6A11824F8BB48B74890BE46B645AA8044905699 +S123CE055A26FAB74590BF467B04AA806B04BE46B64534492204241E261C72F0051204241F +S123CE25073349435026014C4D2B1E26165D2613BF46BF44201F72FB051904240C46563C1A +S123CE454820063A4858492AFABF464897B64895344956BF4490855B0481B644F4B749B62E +S123CE6544F82A05F82B1B201DB644F0261AB645E101260CB646E1022606B647E103270E69 +S123CE852404A6FF2002A601720F004901409C81B644BA452711E60388E60288E60188F654 +S123CEA5881A0226035B048190897B03720F004404A8806B03AA80080449B7480604B64543 +S123CEC5721E004548B64449B048AB7FB7443518004907030803B645BE46905839480703AF +S123CEE5250A1104250D22041305250772F0051204905C584909033A4926DFB6482B0590ED +S123CF0558493A44480803364446B74590BF4690855B048189CDCD9685CCD0B9B644BA45C4 +S123CF252712E60388E60288FE891E012607BF44BF465B04817B01720F004404A8806B013A +S123CF45AA800802490602A07EB748B645721E004548B64449BB48B7447B02BE4442BF4805 +S123CF657B03BE44423F4AAD5E7B04BE44429FAD647B02BE4542AD4F7B03BE4542AD537BE3 +S123CF8504BE45423F46AD5C7B02BE4642AD437B03BE4642AD4E7B04BE46429EBB462406B1 +S123CFA53C452602AD46BE49B6482B06384559493A444808013644463845B745BF46240442 +S123CFC5721000475B048172BB0049BF4924023C48819FBB45B7459EB94AB74A24F3BE489C +S123CFE55CBF488172BB0045BF4524E53C4A27EE81CDCFFCBE468189BE4427554F5802A03C +S123D0057F2A075FBF44BF4620479089A1372AF3565E90BE46A01727272A1440A1102B07CD +S123D02590935FA01027195490564A26FA2011A1102B0793905FA01027069058594A26FAB3 +S123D0453D442A0653905026015C90BF46BF449085858188BF49909F5E42BF48BE49909E12 +S123D0654272BB0048BF48BE49909F423F4A72BB004984813F47BF4526033F4481454544E8 +S123D0852A0350BF45A68E5D2B0E3D452606A686BE462B044A582AFC5838444656BF45B73C +S123D0A5448188F6B744E601B745E602B746E603B747848188B644F7B645E701B646E70234 +S123D0C5B647E70384813580004820023F485D2A095072100048721200484D2A05409012E1 +S123D0E500486237482A065F9724055081270150813580004B20023F4B905D2A0A905072C6 +S123D10510004B7212004B4D2A05409012004B9062374B2A09905F909724079050812702C1 +S107D1259050818021 +S12386AE000000000000000000000000000000000000000000000030000000000000000078 +S11D86CE4E00001E000500000000000000000000000000000000000000001D +S12386E800000000000000000000000000000000000000000000000000000000000000006E +S123870800000000000000000000000000000000000000000000000000000026E200000045 +S12087280000000000000000007777772E6966697368372E636F6D000000000000E6 +S1238000820087458200D1288200D1288200D1288200D1288200D1288200D1288200D128B1 +S12380208200D1288200D1288200D1288200D1288200D1288200D1288200D1288200D12864 +S12380408200D1288200D1288200D1288200D1288200D1288200D1288200CAFE8200CABEE6 +S12380608200D1288200CB228200D1288200D1288200D1288200D1288200D1288200D12830 +S11086A186AE62000086E864010087450093 +S903FFFFFE diff --git a/doc/多控协议/2控源码/STM8S005K6.h b/doc/多控协议/2控源码/STM8S005K6.h new file mode 100644 index 0000000..63a0ace --- /dev/null +++ b/doc/多控协议/2控源码/STM8S005K6.h @@ -0,0 +1,5 @@ +/* STM8S005K6.h */ +#ifdef MCU_NAME +#define STM8S005K6 1 +#endif +#include "STM8S105K.h" diff --git a/doc/多控协议/2控源码/STM8S105K.h b/doc/多控协议/2控源码/STM8S105K.h new file mode 100644 index 0000000..e6a237f --- /dev/null +++ b/doc/多控协议/2控源码/STM8S105K.h @@ -0,0 +1,786 @@ +/* STM8S105K.h */ + +/* Copyright (c) 2003-2012 STMicroelectronics */ + +#ifndef __STM8S105K__ +#define __STM8S105K__ + +/* STM8S105K */ + + /* Check MCU name */ + #ifdef MCU_NAME + #define STM8S105K 1 + #if (MCU_NAME != STM8S105K) + #error "wrong include file STM8S105K.h for chosen MCU!" + #endif + #endif + + #ifdef __CSMC__ + #define DEF_8BIT_REG_AT(NAME,ADDRESS) volatile unsigned char NAME @ADDRESS + #define DEF_16BIT_REG_AT(NAME,ADDRESS) volatile unsigned int NAME @ADDRESS + #endif + + #ifdef __RAISONANCE__ + #define DEF_8BIT_REG_AT(NAME,ADDRESS) at ADDRESS hreg NAME + #define DEF_16BIT_REG_AT(NAME,ADDRESS) at ADDRESS hreg16 NAME + #endif + +/* Port A */ +/*****************************************************************/ + +/* Port A data output latch register */ +DEF_8BIT_REG_AT(PA_ODR,0x5000); + +/* Port A input pin value register */ +DEF_8BIT_REG_AT(PA_IDR,0x5001); + +/* Port A data direction register */ +DEF_8BIT_REG_AT(PA_DDR,0x5002); + +/* Port A control register 1 */ +DEF_8BIT_REG_AT(PA_CR1,0x5003); + +/* Port A control register 2 */ +DEF_8BIT_REG_AT(PA_CR2,0x5004); + +/* Port B */ +/*****************************************************************/ + +/* Port B data output latch register */ +DEF_8BIT_REG_AT(PB_ODR,0x5005); + +/* Port B input pin value register */ +DEF_8BIT_REG_AT(PB_IDR,0x5006); + +/* Port B data direction register */ +DEF_8BIT_REG_AT(PB_DDR,0x5007); + +/* Port B control register 1 */ +DEF_8BIT_REG_AT(PB_CR1,0x5008); + +/* Port B control register 2 */ +DEF_8BIT_REG_AT(PB_CR2,0x5009); + +/* Port C */ +/*****************************************************************/ + +/* Port C data output latch register */ +DEF_8BIT_REG_AT(PC_ODR,0x500a); + +/* Port C input pin value register */ +DEF_8BIT_REG_AT(PC_IDR,0x500b); + +/* Port C data direction register */ +DEF_8BIT_REG_AT(PC_DDR,0x500c); + +/* Port C control register 1 */ +DEF_8BIT_REG_AT(PC_CR1,0x500d); + +/* Port C control register 2 */ +DEF_8BIT_REG_AT(PC_CR2,0x500e); + +/* Port D */ +/*****************************************************************/ + +/* Port D data output latch register */ +DEF_8BIT_REG_AT(PD_ODR,0x500f); + +/* Port D input pin value register */ +DEF_8BIT_REG_AT(PD_IDR,0x5010); + +/* Port D data direction register */ +DEF_8BIT_REG_AT(PD_DDR,0x5011); + +/* Port D control register 1 */ +DEF_8BIT_REG_AT(PD_CR1,0x5012); + +/* Port D control register 2 */ +DEF_8BIT_REG_AT(PD_CR2,0x5013); + +/* Port E */ +/*****************************************************************/ + +/* Port E data output latch register */ +DEF_8BIT_REG_AT(PE_ODR,0x5014); + +/* Port E input pin value register */ +DEF_8BIT_REG_AT(PE_IDR,0x5015); + +/* Port E data direction register */ +DEF_8BIT_REG_AT(PE_DDR,0x5016); + +/* Port E control register 1 */ +DEF_8BIT_REG_AT(PE_CR1,0x5017); + +/* Port E control register 2 */ +DEF_8BIT_REG_AT(PE_CR2,0x5018); + +/* Port F */ +/*****************************************************************/ + +/* Port F data output latch register */ +DEF_8BIT_REG_AT(PF_ODR,0x5019); + +/* Port F input pin value register */ +DEF_8BIT_REG_AT(PF_IDR,0x501a); + +/* Port F data direction register */ +DEF_8BIT_REG_AT(PF_DDR,0x501b); + +/* Port F control register 1 */ +DEF_8BIT_REG_AT(PF_CR1,0x501c); + +/* Port F control register 2 */ +DEF_8BIT_REG_AT(PF_CR2,0x501d); + +/* Flash */ +/*****************************************************************/ + +/* Flash control register 1 */ +DEF_8BIT_REG_AT(FLASH_CR1,0x505a); + +/* Flash control register 2 */ +DEF_8BIT_REG_AT(FLASH_CR2,0x505b); + +/* Flash complementary control register 2 */ +DEF_8BIT_REG_AT(FLASH_NCR2,0x505c); + +/* Flash protection register */ +DEF_8BIT_REG_AT(FLASH_FPR,0x505d); + +/* Flash complementary protection register */ +DEF_8BIT_REG_AT(FLASH_NFPR,0x505e); + +/* Flash in-application programming status register */ +DEF_8BIT_REG_AT(FLASH_IAPSR,0x505f); + +/* Flash Program memory unprotection register */ +DEF_8BIT_REG_AT(FLASH_PUKR,0x5062); + +/* Data EEPROM unprotection register */ +DEF_8BIT_REG_AT(FLASH_DUKR,0x5064); + +/* External Interrupt Control Register (ITC) */ +/*****************************************************************/ + +/* External interrupt control register 1 */ +DEF_8BIT_REG_AT(EXTI_CR1,0x50a0); + +/* External interrupt control register 2 */ +DEF_8BIT_REG_AT(EXTI_CR2,0x50a1); + +/* Reset (RST) */ +/*****************************************************************/ + +/* Reset status register 1 */ +DEF_8BIT_REG_AT(RST_SR,0x50b3); + +/* Clock Control (CLK) */ +/*****************************************************************/ + +/* Internal clock control register */ +DEF_8BIT_REG_AT(CLK_ICKR,0x50c0); + +/* External clock control register */ +DEF_8BIT_REG_AT(CLK_ECKR,0x50c1); + +/* Clock master status register */ +DEF_8BIT_REG_AT(CLK_CMSR,0x50c3); + +/* Clock master switch register */ +DEF_8BIT_REG_AT(CLK_SWR,0x50c4); + +/* Clock switch control register */ +DEF_8BIT_REG_AT(CLK_SWCR,0x50c5); + +/* Clock divider register */ +DEF_8BIT_REG_AT(CLK_CKDIVR,0x50c6); + +/* Peripheral clock gating register 1 */ +DEF_8BIT_REG_AT(CLK_PCKENR1,0x50c7); + +/* Clock security system register */ +DEF_8BIT_REG_AT(CLK_CSSR,0x50c8); + +/* Configurable clock control register */ +DEF_8BIT_REG_AT(CLK_CCOR,0x50c9); + +/* Peripheral clock gating register 2 */ +DEF_8BIT_REG_AT(CLK_PCKENR2,0x50ca); + +/* CAN clock control register */ +DEF_8BIT_REG_AT(CLK_CANCCR,0x50cb); + +/* HSI clock calibration trimming register */ +DEF_8BIT_REG_AT(CLK_HSITRIMR,0x50cc); + +/* SWIM clock control register */ +DEF_8BIT_REG_AT(CLK_SWIMCCR,0x50cd); + +/* Window Watchdog (WWDG) */ +/*****************************************************************/ + +/* WWDG Control Register */ +DEF_8BIT_REG_AT(WWDG_CR,0x50d1); + +/* WWDR Window Register */ +DEF_8BIT_REG_AT(WWDG_WR,0x50d2); + +/* Independent Watchdog (IWDG) */ +/*****************************************************************/ + +/* IWDG Key Register */ +DEF_8BIT_REG_AT(IWDG_KR,0x50e0); + +/* IWDG Prescaler Register */ +DEF_8BIT_REG_AT(IWDG_PR,0x50e1); + +/* IWDG Reload Register */ +DEF_8BIT_REG_AT(IWDG_RLR,0x50e2); + +/* Auto Wake-Up (AWU) */ +/*****************************************************************/ + +/* AWU Control/Status Register */ +DEF_8BIT_REG_AT(AWU_CSR,0x50f0); + +/* AWU asynchronous prescaler buffer register */ +DEF_8BIT_REG_AT(AWU_APR,0x50f1); + +/* AWU Timebase selection register */ +DEF_8BIT_REG_AT(AWU_TBR,0x50f2); + +/* Beeper (BEEP) */ +/*****************************************************************/ + +/* BEEP Control/Status Register */ +DEF_8BIT_REG_AT(BEEP_CSR,0x50f3); + +/* Serial Peripheral Interface (SPI) */ +/*****************************************************************/ + +/* SPI Control Register 1 */ +DEF_8BIT_REG_AT(SPI_CR1,0x5200); + +/* SPI Control Register 2 */ +DEF_8BIT_REG_AT(SPI_CR2,0x5201); + +/* SPI Interrupt Control Register */ +DEF_8BIT_REG_AT(SPI_ICR,0x5202); + +/* SPI Status Register */ +DEF_8BIT_REG_AT(SPI_SR,0x5203); + +/* SPI Data Register */ +DEF_8BIT_REG_AT(SPI_DR,0x5204); + +/* SPI CRC Polynomial Register */ +DEF_8BIT_REG_AT(SPI_CRCPR,0x5205); + +/* SPI Rx CRC Register */ +DEF_8BIT_REG_AT(SPI_RXCRCR,0x5206); + +/* SPI Tx CRC Register */ +DEF_8BIT_REG_AT(SPI_TXCRCR,0x5207); + +/* I2C Bus Interface (I2C) */ +/*****************************************************************/ + +/* I2C control register 1 */ +DEF_8BIT_REG_AT(I2C_CR1,0x5210); + +/* I2C control register 2 */ +DEF_8BIT_REG_AT(I2C_CR2,0x5211); + +/* I2C frequency register */ +DEF_8BIT_REG_AT(I2C_FREQR,0x5212); + +/* I2C Own address register low */ +DEF_8BIT_REG_AT(I2C_OARL,0x5213); + +/* I2C Own address register high */ +DEF_8BIT_REG_AT(I2C_OARH,0x5214); + +/* I2C data register */ +DEF_8BIT_REG_AT(I2C_DR,0x5216); + +/* I2C status register 1 */ +DEF_8BIT_REG_AT(I2C_SR1,0x5217); + +/* I2C status register 2 */ +DEF_8BIT_REG_AT(I2C_SR2,0x5218); + +/* I2C status register 3 */ +DEF_8BIT_REG_AT(I2C_SR3,0x5219); + +/* I2C interrupt control register */ +DEF_8BIT_REG_AT(I2C_ITR,0x521a); + +/* I2C Clock control register low */ +DEF_8BIT_REG_AT(I2C_CCRL,0x521b); + +/* I2C Clock control register high */ +DEF_8BIT_REG_AT(I2C_CCRH,0x521c); + +/* I2C TRISE register */ +DEF_8BIT_REG_AT(I2C_TRISER,0x521d); + +/* I2C packet error checking register */ +DEF_8BIT_REG_AT(I2C_PECR,0x521e); + +/* LIN Universal asynch. receiver transmitter (UART2) */ +/*****************************************************************/ + +/* UART2 Status Register */ +DEF_8BIT_REG_AT(UART2_SR,0x5240); + +/* UART2 Data Register */ +DEF_8BIT_REG_AT(UART2_DR,0x5241); + +/* UART2 Baud Rate Register 1 */ +DEF_8BIT_REG_AT(UART2_BRR1,0x5242); + +/* UART2 Baud Rate Register 2 */ +DEF_8BIT_REG_AT(UART2_BRR2,0x5243); + +/* UART2 Control Register 1 */ +DEF_8BIT_REG_AT(UART2_CR1,0x5244); + +/* UART2 Control Register 2 */ +DEF_8BIT_REG_AT(UART2_CR2,0x5245); + +/* UART2 Control Register 3 */ +DEF_8BIT_REG_AT(UART2_CR3,0x5246); + +/* UART2 Control Register 4 */ +DEF_8BIT_REG_AT(UART2_CR4,0x5247); + +/* UART2 Control Register 5 */ +DEF_8BIT_REG_AT(UART2_CR5,0x5248); + +/* UART2 Control Register 6 */ +DEF_8BIT_REG_AT(UART2_CR6,0x5249); + +/* UART2 Guard time Register */ +DEF_8BIT_REG_AT(UART2_GTR,0x524a); + +/* UART2 Prescaler Register */ +DEF_8BIT_REG_AT(UART2_PSCR,0x524b); + +/* 16-Bit Timer 1 (TIM1) */ +/*****************************************************************/ + +/* TIM1 Control register 1 */ +DEF_8BIT_REG_AT(TIM1_CR1,0x5250); + +/* TIM1 Control register 2 */ +DEF_8BIT_REG_AT(TIM1_CR2,0x5251); + +/* TIM1 Slave Mode Control register */ +DEF_8BIT_REG_AT(TIM1_SMCR,0x5252); + +/* TIM1 external trigger register */ +DEF_8BIT_REG_AT(TIM1_ETR,0x5253); + +/* TIM1 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM1_IER,0x5254); + +/* TIM1 Status register 1 */ +DEF_8BIT_REG_AT(TIM1_SR1,0x5255); + +/* TIM1 Status register 2 */ +DEF_8BIT_REG_AT(TIM1_SR2,0x5256); + +/* TIM1 Event Generation register */ +DEF_8BIT_REG_AT(TIM1_EGR,0x5257); + +/* TIM1 Capture/Compare mode register 1 */ +DEF_8BIT_REG_AT(TIM1_CCMR1,0x5258); + +/* TIM1 Capture/Compare mode register 2 */ +DEF_8BIT_REG_AT(TIM1_CCMR2,0x5259); + +/* TIM1 Capture/Compare mode register 3 */ +DEF_8BIT_REG_AT(TIM1_CCMR3,0x525a); + +/* TIM1 Capture/Compare mode register 4 */ +DEF_8BIT_REG_AT(TIM1_CCMR4,0x525b); + +/* TIM1 Capture/Compare enable register 1 */ +DEF_8BIT_REG_AT(TIM1_CCER1,0x525c); + +/* TIM1 Capture/Compare enable register 2 */ +DEF_8BIT_REG_AT(TIM1_CCER2,0x525d); + +/* TIM1 Counter */ +DEF_16BIT_REG_AT(TIM1_CNTR,0x525e); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CNTRH,0x525e); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CNTRL,0x525f); + +/* TIM1 Prescaler register */ +DEF_16BIT_REG_AT(TIM1_PSCR,0x5260); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_PSCRH,0x5260); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_PSCRL,0x5261); + +/* TIM1 Auto-reload register */ +DEF_16BIT_REG_AT(TIM1_ARR,0x5262); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_ARRH,0x5262); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_ARRL,0x5263); + +/* TIM1 Repetition counter register */ +DEF_8BIT_REG_AT(TIM1_RCR,0x5264); + +/* TIM1 Capture/Compare register 1 */ +DEF_16BIT_REG_AT(TIM1_CCR1,0x5265); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR1H,0x5265); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR1L,0x5266); + +/* TIM1 Capture/Compare register 2 */ +DEF_16BIT_REG_AT(TIM1_CCR2,0x5267); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR2H,0x5267); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR2L,0x5268); + +/* TIM1 Capture/Compare register 3 */ +DEF_16BIT_REG_AT(TIM1_CCR3,0x5269); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR3H,0x5269); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR3L,0x526a); + +/* TIM1 Capture/Compare register 4 */ +DEF_16BIT_REG_AT(TIM1_CCR4,0x526b); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR4H,0x526b); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR4L,0x526c); + +/* TIM1 Break register */ +DEF_8BIT_REG_AT(TIM1_BKR,0x526d); + +/* TIM1 Dead-time register */ +DEF_8BIT_REG_AT(TIM1_DTR,0x526e); + +/* TIM1 Output idle state register */ +DEF_8BIT_REG_AT(TIM1_OISR,0x526f); + +/* 16-Bit Timer 2 (TIM2) */ +/*****************************************************************/ + +/* TIM2 Control register 1 */ +DEF_8BIT_REG_AT(TIM2_CR1,0x5300); + +/* TIM2 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM2_IER,0x5301); + +/* TIM2 Status register 1 */ +DEF_8BIT_REG_AT(TIM2_SR1,0x5302); + +/* TIM2 Status register 2 */ +DEF_8BIT_REG_AT(TIM2_SR2,0x5303); + +/* TIM2 Event Generation register */ +DEF_8BIT_REG_AT(TIM2_EGR,0x5304); + +/* TIM2 Capture/Compare mode register 1 */ +DEF_8BIT_REG_AT(TIM2_CCMR1,0x5305); + +/* TIM2 Capture/Compare mode register 2 */ +DEF_8BIT_REG_AT(TIM2_CCMR2,0x5306); + +/* TIM2 Capture/Compare mode register 3 */ +DEF_8BIT_REG_AT(TIM2_CCMR3,0x5307); + +/* TIM2 Capture/Compare enable register 1 */ +DEF_8BIT_REG_AT(TIM2_CCER1,0x5308); + +/* TIM2 Capture/Compare enable register 2 */ +DEF_8BIT_REG_AT(TIM2_CCER2,0x5309); + +/* TIM2 Counter */ +DEF_16BIT_REG_AT(TIM2_CNTR,0x530a); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CNTRH,0x530a); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CNTRL,0x530b); + +/* TIM2 Prescaler register */ +DEF_8BIT_REG_AT(TIM2_PSCR,0x530c); + +/* TIM2 Auto-reload register */ +DEF_16BIT_REG_AT(TIM2_ARR,0x530d); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_ARRH,0x530d); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_ARRL,0x530e); + +/* TIM2 Capture/Compare register 1 */ +DEF_16BIT_REG_AT(TIM2_CCR1,0x530f); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CCR1H,0x530f); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CCR1L,0x5310); + +/* TIM2 Capture/Compare register 2 */ +DEF_16BIT_REG_AT(TIM2_CCR2,0x5311); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CCR2H,0x5311); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CCR2L,0x5312); + +/* TIM2 Capture/Compare register 3 */ +DEF_16BIT_REG_AT(TIM2_CCR3,0x5313); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CCR3H,0x5313); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CCR3L,0x5314); + +/* 16-Bit Timer 3 (TIM3) */ +/*****************************************************************/ + +/* TIM3 Control register 1 */ +DEF_8BIT_REG_AT(TIM3_CR1,0x5320); + +/* TIM3 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM3_IER,0x5321); + +/* TIM3 Status register 1 */ +DEF_8BIT_REG_AT(TIM3_SR1,0x5322); + +/* TIM3 Status register 2 */ +DEF_8BIT_REG_AT(TIM3_SR2,0x5323); + +/* TIM3 Event Generation register */ +DEF_8BIT_REG_AT(TIM3_EGR,0x5324); + +/* TIM3 Capture/Compare mode register 1 */ +DEF_8BIT_REG_AT(TIM3_CCMR1,0x5325); + +/* TIM3 Capture/Compare mode register 2 */ +DEF_8BIT_REG_AT(TIM3_CCMR2,0x5326); + +/* TIM3 Capture/Compare enable register 1 */ +DEF_8BIT_REG_AT(TIM3_CCER1,0x5327); + +/* TIM3 Counter */ +DEF_16BIT_REG_AT(TIM3_CNTR,0x5328); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_CNTRH,0x5328); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_CNTRL,0x5329); + +/* TIM3 Prescaler register */ +DEF_8BIT_REG_AT(TIM3_PSCR,0x532a); + +/* TIM3 Auto-reload register */ +DEF_16BIT_REG_AT(TIM3_ARR,0x532b); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_ARRH,0x532b); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_ARRL,0x532c); + +/* TIM3 Capture/Compare register */ +DEF_16BIT_REG_AT(TIM3_CCR1,0x532d); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_CCR1H,0x532d); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_CCR1L,0x532e); + +/* TIM3 Capture/Compare register */ +DEF_16BIT_REG_AT(TIM3_CCR2,0x532f); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_CCR2H,0x532f); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_CCR2L,0x5330); + +/* 8-Bit Timer 4 (TIM4) */ +/*****************************************************************/ + +/* TIM4 Control register 1 */ +DEF_8BIT_REG_AT(TIM4_CR1,0x5340); + +/* TIM4 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM4_IER,0x5341); + +/* TIM4 Status register */ +DEF_8BIT_REG_AT(TIM4_SR,0x5342); + +/* TIM4 Event Generation register */ +DEF_8BIT_REG_AT(TIM4_EGR,0x5343); + +/* TIM4 Counter */ +DEF_8BIT_REG_AT(TIM4_CNTR,0x5344); + +/* TIM4 Prescaler register */ +DEF_8BIT_REG_AT(TIM4_PSCR,0x5345); + +/* TIM4 Auto-reload register */ +DEF_8BIT_REG_AT(TIM4_ARR,0x5346); + +/* 10-Bit A/D Converter (ADC1) */ +/*****************************************************************/ + +/* ADC Data buffer Register 0 */ +DEF_16BIT_REG_AT(ADC_DB0R,0x53e0); +/* Data Buffer register 0 High */ +DEF_8BIT_REG_AT(ADC_DB0RH,0x53e0); +/* Data Buffer register 0 Low */ +DEF_8BIT_REG_AT(ADC_DB0RL,0x53e1); + +/* ADC Data buffer Register 1 */ +DEF_16BIT_REG_AT(ADC_DB1R,0x53e2); +/* Data Buffer register 1 High */ +DEF_8BIT_REG_AT(ADC_DB1RH,0x53e2); +/* Data Buffer register 1 Low */ +DEF_8BIT_REG_AT(ADC_DB1RL,0x53e3); + +/* ADC Data buffer Register 2 */ +DEF_16BIT_REG_AT(ADC_DB2R,0x53e4); +/* Data Buffer register 2 High */ +DEF_8BIT_REG_AT(ADC_DB2RH,0x53e4); +/* Data Buffer register 2 Low */ +DEF_8BIT_REG_AT(ADC_DB2RL,0x53e5); + +/* ADC Data buffer Register 3 */ +DEF_16BIT_REG_AT(ADC_DB3R,0x53e6); +/* Data Buffer register 3 High */ +DEF_8BIT_REG_AT(ADC_DB3RH,0x53e6); +/* Data Buffer register 3 Low */ +DEF_8BIT_REG_AT(ADC_DB3RL,0x53e7); + +/* ADC Data buffer Register 4 */ +DEF_16BIT_REG_AT(ADC_DB4R,0x53e8); +/* Data Buffer register 4 High */ +DEF_8BIT_REG_AT(ADC_DB4RH,0x53e8); +/* Data Buffer register 4 Low */ +DEF_8BIT_REG_AT(ADC_DB4RL,0x53e9); + +/* ADC Data buffer Register 5 */ +DEF_16BIT_REG_AT(ADC_DB5R,0x53ea); +/* Data Buffer register 5 High */ +DEF_8BIT_REG_AT(ADC_DB5RH,0x53ea); +/* Data Buffer register 5 Low */ +DEF_8BIT_REG_AT(ADC_DB5RL,0x53eb); + +/* ADC Data buffer Register 6 */ +DEF_16BIT_REG_AT(ADC_DB6R,0x53ec); +/* Data Buffer register 6 High */ +DEF_8BIT_REG_AT(ADC_DB6RH,0x53ec); +/* Data Buffer register 6 Low */ +DEF_8BIT_REG_AT(ADC_DB6RL,0x53ed); + +/* ADC Data buffer Register 7 */ +DEF_16BIT_REG_AT(ADC_DB7R,0x53ee); +/* Data Buffer register 7 High */ +DEF_8BIT_REG_AT(ADC_DB7RH,0x53ee); +/* Data Buffer register 7 Low */ +DEF_8BIT_REG_AT(ADC_DB7RL,0x53ef); + +/* ADC Data buffer Register 8 */ +DEF_16BIT_REG_AT(ADC_DB8R,0x53f0); +/* Data Buffer register 8 High */ +DEF_8BIT_REG_AT(ADC_DB8RH,0x53f0); +/* Data Buffer register 8 Low */ +DEF_8BIT_REG_AT(ADC_DB8RL,0x53f1); + +/* ADC Data buffer Register 9 */ +DEF_16BIT_REG_AT(ADC_DB9R,0x53f2); +/* Data Buffer register 9 High */ +DEF_8BIT_REG_AT(ADC_DB9RH,0x53f2); +/* Data Buffer register 9 Low */ +DEF_8BIT_REG_AT(ADC_DB9RL,0x53f3); + +/* ADC Control/Status Register */ +DEF_8BIT_REG_AT(ADC_CSR,0x5400); + +/* ADC Configuration Register 1 */ +DEF_8BIT_REG_AT(ADC_CR1,0x5401); + +/* ADC Configuration Register 2 */ +DEF_8BIT_REG_AT(ADC_CR2,0x5402); + +/* ADC Configuration Register 3 */ +DEF_8BIT_REG_AT(ADC_CR3,0x5403); + +/* ADC Data Register */ +DEF_16BIT_REG_AT(ADC_DR,0x5404); +/* Data bits High */ +DEF_8BIT_REG_AT(ADC_DRH,0x5404); +/* Data bits Low */ +DEF_8BIT_REG_AT(ADC_DRL,0x5405); + +/* ADC Schmitt Trigger Disable Register */ +DEF_16BIT_REG_AT(ADC_TDR,0x5406); +/* Schmitt trigger disable High */ +DEF_8BIT_REG_AT(ADC_TDRH,0x5406); +/* Schmitt trigger disable Low */ +DEF_8BIT_REG_AT(ADC_TDRL,0x5407); + +/* ADC High Threshold Register */ +DEF_16BIT_REG_AT(ADC_HTR,0x5408); +/* High Threshold Register High */ +DEF_8BIT_REG_AT(ADC_HTRH,0x5408); +/* High Threshold Register Low */ +DEF_8BIT_REG_AT(ADC_HTRL,0x5409); + +/* ADC Low Threshold Register */ +DEF_16BIT_REG_AT(ADC_LTR,0x540a); +/* Low Threshold Register High */ +DEF_8BIT_REG_AT(ADC_LTRH,0x540a); +/* Low Threshold Register Low */ +DEF_8BIT_REG_AT(ADC_LTRL,0x540b); + +/* ADC Analog Watchdog Status Register */ +DEF_16BIT_REG_AT(ADC_AWSR,0x540c); +/* Analog Watchdog Status register High */ +DEF_8BIT_REG_AT(ADC_AWSRH,0x540c); +/* Analog Watchdog Status register Low */ +DEF_8BIT_REG_AT(ADC_AWSRL,0x540d); + +/* ADC Analog Watchdog Control Register */ +DEF_16BIT_REG_AT(ADC_AWCR,0x540e); +/* Analog Watchdog Control register High */ +DEF_8BIT_REG_AT(ADC_AWCRH,0x540e); +/* Analog Watchdog Control register Low */ +DEF_8BIT_REG_AT(ADC_AWCRL,0x540f); + +/* Global configuration register (CFG) */ +/*****************************************************************/ + +/* CFG Global configuration register */ +DEF_8BIT_REG_AT(CFG_GCR,0x7f60); + +/* Interrupt Software Priority Register (ITC) */ +/*****************************************************************/ + +/* Interrupt Software priority register 1 */ +DEF_8BIT_REG_AT(ITC_SPR1,0x7f70); + +/* Interrupt Software priority register 2 */ +DEF_8BIT_REG_AT(ITC_SPR2,0x7f71); + +/* Interrupt Software priority register 3 */ +DEF_8BIT_REG_AT(ITC_SPR3,0x7f72); + +/* Interrupt Software priority register 4 */ +DEF_8BIT_REG_AT(ITC_SPR4,0x7f73); + +/* Interrupt Software priority register 5 */ +DEF_8BIT_REG_AT(ITC_SPR5,0x7f74); + +/* Interrupt Software priority register 6 */ +DEF_8BIT_REG_AT(ITC_SPR6,0x7f75); + +/* Interrupt Software priority register 7 */ +DEF_8BIT_REG_AT(ITC_SPR7,0x7f76); + +#endif /* __STM8S105K__ */ diff --git a/doc/多控协议/2控源码/main.c b/doc/多控协议/2控源码/main.c new file mode 100644 index 0000000..2c284b8 --- /dev/null +++ b/doc/多控协议/2控源码/main.c @@ -0,0 +1,4402 @@ + /* + ****************************************************************************** + * @file main.c / 2-control + * @author Jeep.zhang + * @version V1.0 + * @date 13-Jan-2016 + * @brief Main Service Routines. + ****************************************************************************** + * @attention + * AT+GMR + * AT version:0.50.0.0(Sep 18 2015 20:55:38) + * SDK version:1.4.0 + * compile time:Sep 18 2015 21:46:52 + * OK + * 1.Espressif-SDK,The Latest Version:esp_iot_sdk_v1.4.0_15_09_18 + * 2.Please refer to:esp_iot_sdk_v1.4.0_15_09_18\esp_iot_sdk_v1.4.0\bin\at + * 3.or Reference information is as follows: + * ---------Flash size 32Mbit: 512KB+512KB-----------ESP-12F + * boot_v1.2+.bin 0x00000 + * user1.1024.new.2.bin 0x01000 + * esp_init_data_default.bin 0x3fc000 (optional) + * blank.bin 0x7e000 & 0x3fe000 + * -------------------------------------------------- + * 4.MCU Model: STM8S005K6,16MHz,FLASH(32K)/RAM(2K)/EEPROM(128bytes) + * 5.WIFI Module: ESP-WROOM-02(Espressif)/ESP-03(AiThinker) + * + *

© COPYRIGHT 2015 www.ifish7.com

+ ****************************************************************************** + */ + +#include "STM8S005K6.h" +#include +//#include /* for printf */ +/**********************************************/ +#define factory_data 0x0a // ̱ +#define pcb_data 0x0b // Ӳͺ +#define mcu_data 0x01 // 汾 +// ֵH + +#define Lamp2_Key2 0xf0 // lamp2 +#define Lamp_ShiDuan_Key5 0xf1 // ʱ + +#define Pump_Key3 0x02 // Pump +#define Lamp1_Key1 0x03 // lamp1 +#define Adjust_Key4 0x04 // ڼ +#define Clock_Setup_Key6 0x05 // ʱ +#define WIFI_Key6 0x06 + +//#define K1K3 0x7 // ϼ +//#define K2K4 0x8 // ϼ +//#define K3K5 0x9 // ϼ +//#define K4K6 0xa // ϼ + +// (HT1621B:LCD)ֶ壺100 A5A4A3A2-A1A0D0D1-D2D3 +//#define Read_Data 0xc0 // Read Data +//#define Write_Data 0xa0 // Write Data/Read-Modify-Write Data +#define Command 0x80 // Command +#define sysen 0x02 // 1 0 0 0000-0001-X +#define lcdon 0x06 // 1 0 0 0000-0011-X +#define lcdoff 0x04 // 1 0 0 0000-0010-X +#define rc256k 0x30 // 1 0 0 0001-10XX-X +#define bias 0x52 // 1/4 0x50 1/3 +#define tone2k 0x80 // 1 0 0 100X-0XXX-X +#define toneon 0x12 // 1 0 0 0000-1001-X +#define toneoff 0x10 // 1 0 0 0000-1000-x + +// Ĵ +#define RAMBIT 0x80 +unsigned char state0 @RAMBIT; +//@near unsigned char state0; +unsigned char flag0 @RAMBIT+1; +unsigned char flag1 @RAMBIT+2; +unsigned char flag2 @RAMBIT+3; +unsigned char flag3 @RAMBIT+4; +unsigned char flag4 @RAMBIT+5; +unsigned char flag5 @RAMBIT+6; +//unsigned char flag6 @RAMBIT+7; +//unsigned char flag7 @RAMBIT+8; + +// Ĵflagλ +_Bool flag_TimeSetup_Jump @flag0:0; +_Bool flag_have_key @flag0:1; +_Bool flag_ClockTime_Change @flag0:2; // ӱʱñ仯ˣEEPROM +_Bool flag_TCP0_Connected @flag0:3; +_Bool flag_ScreenLock_Status @flag0:4; +_Bool flag_unlock_key @flag0:5; +_Bool flag_RS232_TimeoutStart @flag0:6; +_Bool flag_WiFi_ready @flag0:7; + +// Ĵflag1λ +_Bool flag_ClockTimeSetting @flag1:0;//s1 +_Bool flag_Colon_Jump @flag1:1; +_Bool flag_Buzzering @flag1:2; +_Bool flag_Receive_NewFrame_Buffer0 @flag1:3; +_Bool flag_Receive_NewOneByte @flag1:4; +_Bool flag_WiFi_Connected @flag1:5;// 豸Ƿ·1=0=û +_Bool flag_WiFi_Data_Sending @flag1:6; //=0ݷ; =1ڷ +_Bool flag_Start_HeartBeat @flag1:7; //=1, + +// Ĵflag2λ +_Bool flag_RESTORE @flag2:0; +//_Bool flag_NoLoginBack150s_CIPSTART @flag2:0; +_Bool flag_Tempture_Abnormal @flag2:1;// 豸Ƿ¶ȱ1=ԣ0= +_Bool flag_TCP_Logined @flag2:2;// 豸Ƿ¼1=¼0=û¼ +_Bool flag_LoginTCP_SendOnce @flag2:3; +_Bool flag_HeartBeat10s @flag2:4;// 豸ǷԷ10s1=ԣ0= +_Bool flag_WiFi_Connect_Enable @flag2:5;// 豸Ƿ豸״̬Ϣ5min1=ԣ0= +_Bool flag_Buzzer @flag2:6; +_Bool flag_TCP0_Connecting @flag2:7; + +// Ĵflag3λ +_Bool flag_lamp4_onoff @flag3:0; +_Bool flag_lamp5_onoff @flag3:1; +_Bool flag_NoLoginBack150s_CIPSTART @flag3:2; +_Bool flag_ready5s_STARTSMART @flag3:3; +_Bool flag_DisConnect180s_StartRST @flag3:4; +_Bool flag_Have_STAMAC @flag3:5; +_Bool flag_Have_STAIP @flag3:6; +_Bool flag_ready_Monitoring5s @flag3:7; + +// Ĵflag4λ +_Bool flag_LampTimeSetting @flag4:0; +_Bool flag_LampTime_Change @flag4:1; // ƵĶʱʱñ仯ˣDS1302 +_Bool flag_Open_Time @flag4:2; +_Bool flag_Close_Time @flag4:3; +_Bool flag_NoLoginBack_Monitoring150s @flag4:4; +_Bool flag_DisConnect_Monitoring180s @flag4:5; +_Bool flag_Tempture_Abnormal_Q0 @flag4:6; +_Bool flag_Tempture_Abnormal_Q1 @flag4:7; + +// Ĵflag5λ +_Bool flag_WiFi_Smarting @flag5:0; +_Bool flag_SEND_FAIL @flag5:1; +_Bool flag_RS232_Timeout @flag5:2; +_Bool flag_WiFi_Disconnect @flag5:3; +_Bool flag_UDP1_Connected @flag5:4; +_Bool flag_auto_hand_change @flag5:5; +_Bool flag_Restart_Connect_TCP @flag5:6; +_Bool flag_Enable_Connect_TCP @flag5:7; + +// Ĵstate0λ +//_Bool flag_lamp2_onoff @state0:0;// t16 lamp2 ƹ2 +//_Bool flag_lamp1_onoff @state0:1;// t18 lamp1 ƹ1 +//_Bool flag_Pump_onoff @state0:2;// t19 // lamp3 ɱ +//_Bool flag_WiFi_HaveSet @state0:3;// wifiΪ1 +//_Bool flag_auto_hand @state0:4;// 0=ֶ 1=Զ +//_Bool flag_TemptureAlam @state0:5;// 0= +//_Bool flag_TemptureAlam_High @state0:6; +//_Bool flag_have_save_URL @state0:7; + +unsigned char flag_lamp1_onoff=0; +unsigned char flag_lamp2_onoff=0; +unsigned char flag_Pump_onoff=0; +unsigned char flag_auto_hand=0; + +// ˿ڶ*****(QT1696:TOUCH)***** +_Bool QT1696_B0 @PC_IDR:4;// PC4=QT1696_B0 +_Bool QT1696_B1 @PC_IDR:5;// PC5=QT1696_B1 +_Bool QT1696_B2 @PC_IDR:6;// PC6=QT1696_B2 +_Bool QT1696_B3 @PC_IDR:7;// PC7=QT1696_B3 + +// ˿ڶ*****(DS1302:RTC)***** +_Bool DS1302_DATA_OUT @PC_ODR:1;// PC1=IO(DS1302) OUT +_Bool DS1302_DATA_IN @PC_IDR:1;// PC1=Data(DS1302) IN +_Bool DS1302_RST @PC_ODR:2;// PC2=RST(DS1302) +_Bool DS1302_CLK @PE_ODR:5;// PE5=CLK(DS1302) + +// ˿ڶ*****(DENG1,DENG2,BENG,HEAT)***** +_Bool lamp2_PC5 @PC_ODR:5;// +_Bool Lamp1_PB2 @PB_ODR:2;// PB2=LAMP +_Bool Pump_PB3 @PB_ODR:3;// PB3=PUMP +_Bool LCD_LED @PB_ODR:1;// PB1=LED + +// ˿ڶ*****(HT1621B:LCD)***** +_Bool HT1621B_IRQ @PD_IDR:0;// PD0=LCD_IRQ +_Bool HT1621B_DATA_OUT @PD_ODR:2;// PD3=LCD_Data OUT +_Bool HT1621B_DATA_IN @PD_IDR:2;// PD3=LCD_Data IN +_Bool HT1621B_WR @PD_ODR:3;// PD4=LCD_WR +_Bool HT1621B_RD @PD_ODR:4;// PD7=LCD_RD +_Bool HT1621B_CS @PD_ODR:7;// PD7=LCD_CS + +unsigned int HeartBeat_0_TimeoutCounter=0; +unsigned int HeartBeat_1_TimeoutCounter=0; +unsigned int TCP0_TimeoutCounter=0; +unsigned int NoLoginBack150s_TimeoutCounter=0; +unsigned char WiFi_Disconnect_TimeoutCounter=0; +unsigned char Restart_Connect_TCP_TimeoutCounter=0; +unsigned char LockScreen_TimeoutCounter=0; +unsigned char UnLockScreen_TimeoutCounter=0; +unsigned char RS232_TimeoutCounter=0; +unsigned char DisConnect180s_TimeoutCounter=0; +unsigned char NoWiFi5s_TimeoutCounter=0; +unsigned char HeartBeat10s_TimeoutCounter=0; // ʱǷ10s +unsigned char Lcd_Colon_TimeoutCounter=0; +unsigned char ThreeMS_Counter=0; +unsigned char auto_hand_TimeoutCounter; +unsigned char InBuffer_ID=0; + +unsigned char Link_id='0'; +unsigned char Key_Back=0; +unsigned char Key_Back_Config=0; +unsigned char Key_Shake=0; +unsigned char Key_Shake_Config=0; + +unsigned char Disp_Year; +unsigned char Disp_Month; +unsigned char Disp_Day; +unsigned char Disp_Hour; +unsigned char Disp_Minute; +unsigned char Disp_Second; +unsigned char Disp_Week; +unsigned int Real_Tempture; + +unsigned char LampTimeSetup_Stepper=0; +unsigned char ClockTimeSetup_Stepper=0; +unsigned char Tempture_Read_Counter=0; +unsigned char TemptureAlam_Close_Open_Setup=0; +unsigned char TemptureAlam_NormalLowHigh='N';// 'L'=״̬,'H'=״̬,'N'=״̬ +unsigned char System_Status=0; // flag_System_ERROR +unsigned int Set_High_Tempture=30; +unsigned int Set_Low_Tempture=5; + +unsigned char Buzzer_TimeoutCounter=0; +unsigned char Receive_NewFrame_TimeoutCounter=0; +unsigned char Receive_Num0=0; // νֽ֡ +unsigned char Receive_Count0=0; // νֽ֡֡index +unsigned char Receive_Count1=0; +unsigned char Send_Count=0; // ηֽ֡֡index +unsigned char Send_Num=0; // ηֽ֡ +unsigned char Have_New_URL=0; +unsigned char Receive_NewFrame_Length=0; +unsigned char Function_Code=0; // ZDH,=00~FEH=FFHУ· + +unsigned char * pStr1=NULL; +unsigned char * pStr0=NULL; +unsigned char AT_Command_Stepper=0; // 豸裻 +unsigned char Connect_TCP_Counter=0; + +//@tiny ɱԶڵַС0x100RAMΪһַ; +//@near ɱԶڵַ0xFF RAMΪһַ; +@near unsigned char Timers_Enable[11]={0,0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Open_Hour[10]={0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Open_Minute[10]={0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Close_Hour[10]={0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Close_Minute[10]={0,0,0,0,0,0,0,0,0,0}; + +@near unsigned char LOC_IP_buf[4]={0,0,0,0}; // IP +@near unsigned char RMT_IP_buf[4]={0,0,0,0}; // ԶIP +@near unsigned int RMT_IP_PORT=9954; +@near unsigned char LOC_MAC_buf[6]={0,0,0,0,0,0}; // ͷMACַ +@near unsigned char RMT_MAC_buf[6]={0,0,0,0,0,0}; // շMACַ +//@near unsigned char wifi_ssid[20]; +//@near unsigned char wifi_password[20]; +@near unsigned char Send_Buffer[120]; // ͻ +@near unsigned char Receive_Buffer0[120]; // ܻ0 +@near unsigned char Receive_Buffer1[120]; // ܻ1 + +// www.ifish7.com=120.55.190.56 +@near unsigned char URL_ADDR[]={'w','w','w','.','i','f','i','s','h','7','.','c','o','m',0,0,0,0,0,0}; +//@near unsigned char URL_ADDR[]={'1','2','0','.','5','5','.','1','9','0','.','5','6',0,0,0,0,0,0}; +//@near unsigned char URL_ADDR[]={'1','9','2','.','1','6','8','.','6','1','.','1','2','8',0,0,0,0,0,0}; + +//AT+CIPSTART=0,"TCP","192.168.1.103",8080 +//const unsigned char URL_TCP0_LOC103[]={'0',',','"','T','C','P','"',',','"','1','9','2','.','1','6','8','.','0','.','1','0','4','"',',','8','0','8','0'}; +const unsigned char URL_UDP1_LOC104[]={'1',',','"','U','D','P','"',',','"','1','9','2','.','1','6','8','.','0','.','1','0','4','"',',','3','3','3'}; + +//AT+CIPSTART=0,"TCP","192.168.61.128",9955 +//const unsigned char URL_TCP0_LOC128[]={'0',',','"','T','C','P','"',',','"','1','9','2','.','1','6','8','.','6','1','.','1','2','8','"',',','9','9','5','5'}; +//const unsigned char URL_UDP1_LOC128[]={'1',',','"','U','D','P','"',',','"','1','9','2','.','1','6','8','.','6','1','.','1','2','8','"',',','3','3','3'}; + +//AT+CIPSTART=0,"TCP","www.ifish7.com",9955 www.ifish7.com=120.55.190.56 +//const unsigned char URL_TCP0_ifish7[]={'0',',','"','T','C','P','"',',','"','w','w','w','.','i','f','i','s','h','7','.','c','o','m','"',',','9','9','5','5'}; +const unsigned char URL_TCP0_ifish7[]={'0',',','"','T','C','P','"',',','"','1','2','0','.','5','5','.','1','9','0','.','5','6','"',',','9','9','5','5'}; +//const unsigned char URL_UDP1_ifish7[]={'1',',','"','U','D','P','"',',','"','w','w','w','.','i','f','i','s','h','7','.','c','o','m','"',',','3','3','3'}; + +const unsigned char URL_UDP1_ifish7[]={'1',',','"','U','D','P','"',',','"','1','2','0','.','5','5','.','1','9','0','.','5','6','"',',','3','3','3'}; + +//**********************************AT CMD************************************** +// AT_Command_Stepper=1 // AT+RSTģ飻 +const unsigned char RST[6]={"AT+RST"}; + +// AT_Command_Stepper=2 // ָ +const unsigned char RESTORE[10]={"AT+RESTORE"}; + +// AT_Command_Stepper=3 // AT+CWSMARTSTART=1 ӣſָ +//const unsigned char CWSMARTSTART[17]={"AT+CWSMARTSTART=1"}; + +// AT_Command_Stepper=3 // AT+CWSTARTSMART=3 ӣָ +const unsigned char CWSTARTSMART[17]={"AT+CWSTARTSMART=3"}; + +// AT_Command_Stepper=4 // AT+CWMODE=1ѡwifiӦģʽ1=STA,2=AP,3=AP+STA; +const unsigned char CWMODE[10] ={"AT+CWMODE="}; + +// AT_Command_Stepper=5 // AT+CIPMODE=0ģ鴫ģʽ=1͸ +const unsigned char CIPMODE[11]={"AT+CIPMODE="}; + +// AT_Command_Stepper=6 // AT+CIPMUX=1 ·ӣLink id=0~4 +const unsigned char CIPMUX[10] ={"AT+CIPMUX="}; + +// AT_Command_Stepper=7 // AT+CIFSRȡIPַ +const unsigned char CIFSR[8]={"AT+CIFSR"}; + +// AT_Command_Stepper=8 // AT+CIPSTART=TCPӻעUDP˿ںţ +const unsigned char CIPSTART[12]={"AT+CIPSTART="}; + +// AT_Command_Stepper=9 // AT+CWSMARTSTOP ֹͣӣſָ +//const unsigned char CWSMARTSTOP[14]={"AT+CWSMARTSTOP"}; + +// AT_Command_Stepper=9 // AT+CWSTOPSMART ֹͣӣָ +const unsigned char CWSTOPSMART[14]={"AT+CWSTOPSMART"}; + +// AT_Command_Stepper=10 // AT+CIPSEND =ݣ +const unsigned char CIPSEND[11]={"AT+CIPSEND="}; + +// AT_Command_Stepper=11 // AT+CIPCLOSE=5رTCP/UDP䣻 +const unsigned char CIPCLOSE[12]={"AT+CIPCLOSE="}; + +// AT_Command_Stepper=12 // AT+CIPSTATUS C ѯϢ +const unsigned char CIPSTATUS[12]={"AT+CIPSTATUS"}; + +// AT_Command_Stepper=13 // AT+CIPDINFO=1 C ʱǷʾԶIPͶ˿ +const unsigned char CIPDINFO[12]={"AT+CIPDINFO="}; + +// AT_Command_Stepper=14 // 鿴Ϣ :SDK and AT 汾 +//const unsigned char ATGMR[6]={"AT+GMR"}; +// AT_Command_Stepper=15 // AT+CWJAP="SSID","PASSWORD" AP +//const unsigned char CWJAP[9]={"AT+CWJAP="}; +// AT_Command_Stepper=16 // 0/1ԣ +//const unsigned char ATE0[4]={"ATE"}; +// AT_Command_Stepper=17 // ԶAP +//const unsigned char CWAUTOCONN[15]={"AT+CWAUTOCONN=1"}; +// AT_Command_Stepper=18 // ..... +//**********************************AT RETURN******************************************* +const unsigned char WIFI_CONNECTED[]="WIFI CONNECTED"; // - WiFi ӣ +const unsigned char WIFI_GOT_IP[]="WIFI GOT IP"; // - ESP8266 station Ѵ AP IP +const unsigned char WIFI_DISCONNECT[]="WIFI DISCONNECT"; // - WiFi ӶϿ +const unsigned char Smart_get_wifi_info[]="Smart get wifi info"; // Smart Config ɹȡAPϢ +const unsigned char smarting_connected_wifi[]="smartconfig connected wifi"; // Smart Config ɹWIFI +const unsigned char OK[]="OK"; +const unsigned char FAIL[]="FAIL"; // AT+ CWJAP = ·ʧܣ +const unsigned char ERROR[]="ERROR"; +const unsigned char ALREADY_CONNECT[]="ALREADY CONNECT"; // TCP/UDPѾ +const unsigned char SEND_OK[]="SEND OK"; // AT+CIPSEND=0,n: ݳɹ +const unsigned char plusIPD[]="+IPD,"; // ݿͷ +const unsigned char send_logo[]="> "; +//յCIPSEND,8266Ȼзء> Ȼʼմ=>ȴݣ +const unsigned char ready[]="ready"; // ϵ8266λɹȴ״̬ + +const unsigned char TCP_0_CONNECT[]="0,CONNECT"; // TCP-0ӳɹ +const unsigned char UDP_1_CONNECT[]="1,CONNECT"; // UDP-1ӳɹ + +const unsigned char TCP0_CLOSED[]="CLOSED"; // TCP/UDPʧܣsmartconfig connected wifi +const unsigned char DNS_Fail[]="DNS Fail"; +const unsigned char STAMAC[]="STAMAC"; +const unsigned char STAIP[]="STAIP"; +const unsigned char link_is_not_valid[]="link is not valid"; + +//const unsigned char no_change[]="no change"; +//const unsigned char OK_Linked[]="OK Linked"; +//const unsigned char busy_now[]="busy now..."; +//const unsigned char CONNECT_OK[]="CONNECT,OK"; +//const unsigned char invalid[]="invalid"; +//const unsigned char CLOSED[]="CLOSED"; // Ͽ TCP/UDP ͨ +//const unsigned char TCIPMUXandCIP_SERVER_mustbe0_ERROR[]="TCIPMUX and CIP SERVER must be 0 ,ERROR"; +// ............... +//**********************************AT RETURN******************************************* + +//**********************************AT CMD************************************** +const unsigned char Lcd_Table0123456789[10]={0xeb,0x60,0xc7,0xe5,0x6c,0xad,0xaf,0xe0,0xef,0xed};//0~9 +const unsigned char lcd_day_tab[5]={0x00,0x0a,0x0d,0x0e,0x0f}; //0,1~3,f +const unsigned char Lcd_Hour_Tab[4]={0x00,0x0a,0x0d,0x0f}; //0,1~2,f +const unsigned char lcd_shiduan_tab[4]={0x00,0x09,0x07,0x0b}; //0~3 + + +/**********************ϵͳʼ************************/ +void System_Init(void) +{ + + unsigned char len=0; + // ----------ʼ״̬λ + if(flag_ScreenLock_Status) + flag0=0x10; + else + flag0=0x10; + flag0=0; + flag1=0; + flag2=0; + flag3=0; + flag4=0; + flag5=0; + //state0=0; + + flag_WiFi_ready=0; + flag_WiFi_Connected=0; + flag_WiFi_Disconnect=0; + flag_TCP0_Connected=0; + //flag_ScreenLock_Status=1; // 趨ģ + flag_have_key=0; + flag_Restart_Connect_TCP=0; + flag_Enable_Connect_TCP=0; + flag_Receive_NewFrame_Buffer0=0; + flag_Receive_NewOneByte=0; + flag_WiFi_Connect_Enable=0; + + //lamp2_PC5=0; // Ӳźû DENG2(PC5) + //Lamp1_PB2=0; + //Pump_PB3=0; + //LCD_LED=0; + //LCD_LED=1; + + for(len=0;len<120;len++) + { + Receive_Buffer1[len]=0; + Receive_Buffer0[len]=0; + } + + Connect_TCP_Counter=0; + Lcd_Colon_TimeoutCounter=0; + System_Status=0; + Key_Shake=0; + Key_Shake_Config=0; + + WiFi_Disconnect_TimeoutCounter=0; + TCP0_TimeoutCounter=0; + ThreeMS_Counter=0; + Lcd_Colon_TimeoutCounter=0; + RS232_TimeoutCounter=0; + HeartBeat10s_TimeoutCounter=0; + UnLockScreen_TimeoutCounter=0; + LockScreen_TimeoutCounter=0; + NoLoginBack150s_TimeoutCounter=0; + DisConnect180s_TimeoutCounter=0; + NoWiFi5s_TimeoutCounter=0; + Receive_NewFrame_TimeoutCounter=0; + HeartBeat_0_TimeoutCounter=0; + HeartBeat_1_TimeoutCounter=0; + + + Receive_Num0=0; + InBuffer_ID=0; + Receive_Count0=0; + Receive_Count1=0; + Send_Num=0; + Send_Count=0; + + pStr0=pStr1=NULL; +} + +/* CRCʽ */ +const unsigned int crc_table[256]= +{ +0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, +0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, +0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, +0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, +0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, +0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, +0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, +0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, +0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, +0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, +0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, +0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, +0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, +0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, +0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, +0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, +0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, +0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, +0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, +0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, +0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, +0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, +0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, +0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, +0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, +0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, +0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, +0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, +0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, +0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, +0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, +0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 +}; +//溯CRCУ ñ׼CRC16 ʼCRC=0XFFFF ʽ 8005 1021 +unsigned int GetRevCrc_16(unsigned char * pData, int nLength) +{ + unsigned int cRc_16 = 0xffff; + unsigned char temp; + while(nLength-- > 0) + { + temp = cRc_16&0xff; + cRc_16 = (cRc_16 >> 8) ^ crc_table[(temp ^ *pData++) & 0xFF]; + } + return cRc_16; +} + +/**********************************************/ +void Delay(unsigned int delay_num) // Delay(10000)=14ms +{ + unsigned int i; + for(i=0;i>1; + } + for(i=0;i<8;i++) + { + DS1302_CLK=0; + DS1302_DATA_OUT=(byte & 0x01); + DS1302_CLK=1; + byte=byte>>1; + } + DS1302_RST=0; +} + +/*********************DS1302ʱоƬ,1byte**************************/ +unsigned char readds1302(unsigned char address) +{ + unsigned char i,byte=0; + DS1302_CLK=0; + DS1302_DATA_OUT=1; // =1 + address=((address<<1) | 0x81); + DS1302_RST=1; + + for(i=0;i<8;i++) + { + DS1302_DATA_OUT=(address & 0x01); + DS1302_CLK=1; + address=address>>1; + DS1302_CLK=0; + } + DS1302_DATA_OUT=1; + for(i=0;i<8;i++) + { + DS1302_CLK=0; + byte=byte>>1; + if(DS1302_DATA_IN){byte=byte | 0x80;} + //else { byte=byte & 0x7f;} + DS1302_CLK=1; + // nop; + // nop; + } + DS1302_RST=0; + return(byte); +} + +/*******************ʱ=ϳɵ***********************/ +void Read_Time(void) +{ + unsigned char temp=0; + if(flag_ClockTimeSetting==0)//&&flag_HeartBeat10s) + //if(flag_ClockTime_Change==1) + { + temp=readds1302(6);// + Disp_Year=(temp>>4)*10 + (temp & 0x0f); + + temp=readds1302(5); + Disp_Week= temp & 0x07; + + temp=readds1302(4); + Disp_Month=((temp & 0x10)>>4)*10 + (temp & 0x0f); + + temp=readds1302(3); + Disp_Day= ((temp & 0x30)>>4)*10 + (temp & 0x0f); + + temp=readds1302(2); + Disp_Hour= ((temp & 0x30)>>4)*10 + (temp & 0x0f); + + temp=readds1302(1); + Disp_Minute= ((temp & 0x70)>>4)*10 + (temp & 0x0f); + + temp=readds1302(0); + Disp_Second=((temp & 0x70)>>4)*10 + (temp & 0x0f); + } +} + +/*******************=дʱ***********************/ +void Write_Time(void) +{ + unsigned char i; + + //if(flag_ClockTimeSetting==0)//&&flag_HeartBeat10s) + //if(flag_ClockTime_Change==1) + //{ + flag_ClockTime_Change=0; + if(Disp_Year>99){Disp_Year=99;} + if(Disp_Month>12){Disp_Month=12;} + if(Disp_Day>31){Disp_Day=31;} + if(Disp_Hour>23){Disp_Hour=23;} + if(Disp_Minute>59){Disp_Minute=59;} + + writeds1302(0x0,7); + //writeds1302(0x0,7);writeds1302(0xa5,8); + i=((Disp_Year/10)<<4) | (Disp_Year%10); + writeds1302(i,6); + + i=Disp_Week&0x7; + writeds1302(i,5); + + i=((Disp_Month/10)<<4) | (Disp_Month%10); + writeds1302(i,4); + + i=((Disp_Day/10)<<4) | (Disp_Day%10); + writeds1302(i,3); + + i=((Disp_Hour/10)<<4) | (Disp_Hour%10); + writeds1302(i,2); + + i=((Disp_Minute/10)<<4) | (Disp_Minute%10); + writeds1302(i,1); + + i=((Disp_Second/10)<<4) | (Disp_Second%10); + writeds1302(i,0); + writeds1302(0x80,7); + //send_pc(0x71); + //} +} + +/*********************HT1621,LCD8λ*************************/ +void sendbit_MSBfirst(unsigned char dat,unsigned char bitcnt) +{ + unsigned char i; + for(i=0;i>1; + } +} + +/** HT1621,LCD*12bit(3+9):100+C8C7C6C5C4C3C2C1C0 **/ +void ht_writecmd(unsigned char cmd,unsigned char cmd_data) +{ + HT1621B_CS = 0; + sendbit_MSBfirst(cmd,4); // 0x80 = Command + sendbit_MSBfirst(cmd_data,8); + HT1621B_CS = 1; +} +void BEEP_ms(unsigned int ms) +{ + ht_writecmd(Command, toneon); + Delay_ms(ms); + ht_writecmd(Command, toneoff); +} +/** HT1621,LCD*13bit(3+6+4):101+A5A4A3A2A1A0+D0D1D2D3 **/ +void ht_writedata(unsigned char waddr,unsigned char wdata,unsigned char wnum) +{ + HT1621B_CS = 0; + sendbit_MSBfirst(0xa0,3); // 0xa0 = Write Data/Read-Modify-Write Data + waddr = waddr << 2; + sendbit_MSBfirst(waddr,6); + wdata = wdata << (8-wnum); + sendbit_MSBfirst(wdata,wnum);// error ,ӦLSB first send + HT1621B_CS = 1; +} +void ht_writedata_zdh(unsigned char waddr,unsigned char wdata,unsigned char wnum) +{ + HT1621B_CS = 0; + sendbit_MSBfirst(0xa0,3); // 0xa0 = Write Data/Read-Modify-Write Data + waddr = waddr << 2; + sendbit_MSBfirst(waddr,6); + //wdata = wdata << (8-wnum); + sendbit_LSBfirst_zdh(wdata,wnum); + HT1621B_CS = 1; +} + +/********************HT1621,LCDʼ***************************/ +void ht1621_cmd_init(void) +{ + unsigned char i; + LCD_LED=1; // LCD 1=open + + ht_writecmd(Command,sysen); // ϵͳ + ht_writecmd(Command,lcdon); // LCDƫѹ + ht_writecmd(Command,rc256k); // ϵͳʱԴƬRC + ht_writecmd(Command,bias); // LCD1/3ƫѹѡ4 + ht_writecmd(Command,tone2k); // 2kƵ + for(i=0;i<32;i++) + ht_writedata(i,0x00,4); + Delay(500); + for(i=0;i<32;i++) + ht_writedata(i,0x0f,4); +// Delay(5000); +// ht_writecmd(Command, toneoff); +// Delay(50000); +// ht_writecmd(Command, toneoff); +} +/* + ht_writecmd(Command, toneon ); // + ht_writecmd(Command, toneoff ); // ر +*/ +/**********************¶ʾ*ϴ***********************/ +void Lcd_Disp_Tempture(unsigned int Disp) //¶ʾ[XX:X] +{ + /* + "8"Ͷζ + ---A--- ---A--- ---A--- + | | | | | | + F B F B F B + | | | | | | + ---G--- ---G--- ---G--- + | | | | | | + E C E C E C + | | | | | | + ---D--- ---D--- . ---D--- +*/ + unsigned char temp,lcd_high4,lcd_low4; +// ¶ֵСλXSEG14+SEG15 + temp=Lcd_Table0123456789[Disp%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S13="ˮ±" + ht_writedata(14,lcd_high4,4); // SEG14:9A9B9C+S13 + ht_writedata(15,lcd_low4,4); // SEG15:9F9G9E9D + +// ¶ֵλXSEG16+SEG17 + temp=Lcd_Table0123456789[Disp%100/10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // DP="." + ht_writedata(16,lcd_high4,4); // SEG16:8A8B8C+DP + ht_writedata(17,lcd_low4,4); // SEG17:8F8G8E8D + +// ¶ֵʮλXSEG18+SEG19 + temp=Lcd_Table0123456789[Disp/100]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S14="Temperature" + ht_writedata(18,lcd_high4,4); // SEG18:7A7B7C+S14 + ht_writedata(19,lcd_low4,4); // SEG19:7F7G7E7D + + Delay_ms(250); +} + +/********************ȡֵ************************* + B3 B2 B1 B0 ע +Ч 1 1 1 1 ޴״̬ +K0(=0) 0 0 0 0 0=VSS\1=VDD +K1(=1) 0 0 0 1 1 +K2(=2) 0 0 1 0 2 +K3(=3) 0 0 1 1 3 +K4(=4) 0 1 0 0 4 +K5(=5) 0 1 0 1 5 +K6(=5) 0 1 1 0 6 +K1+K3(=7) 0 1 1 1 7 K1K3 ͬʱѹ +K2+K4(=8) 1 0 0 0 8 K2K4 ͬʱѹ +K3+K5(=9) 1 0 0 1 9 K3K5 ͬʱѹ +K4+K6(=10) 1 0 1 0 10 K4K6 ͬʱѹ + +K1=ƹ1ļֵ=1 +K2=ƹ2ļֵ=2 +K3=ɱˡ ļֵ=3 +K4=ڼ ļֵ=4 +K5=ʱ ļֵ=5 +K6=ʱá ļֵ=6 + +K6ʱá+ K4ڼ =10 +*/ +unsigned char Read_Key_Num(void) +{ + unsigned char temp=0; + if(QT1696_B0){temp|=0x1;} + if(QT1696_B1){temp|=0x2;} + if(QT1696_B2){temp|=0x4;} + if(QT1696_B3){temp|=0x8;} + + if(temp<0xf) + {return(temp);} + else + {return(0xff);} +} + +#define LOC_data 0 +#define RMT_data 1 +/**********************UART2-TXD************************/ +void UART2_sendchar(unsigned char c) +{ + while((UART2_SR & 0x80)==0x00); // λĴΪգ + UART2_DR=c; +} + +// һַstr1һַstr2е״γֵλã +// str1str2У򷵻-1 +// 'str1Ϊdostr2Ϊhow do you do򷵻ֵΪ4 +/* +int strloc(char *str2,char *str1) +{ + int la=strlen(str1);// Ӵ + int i,j; + int lb=strlen(str2); // ĸ + for(i=0;i>8; + Send_Buffer[19]=CRC16; + + if(0xff==STR) + { + for(i=0;i<20;i++) + Send_Buffer[i]=0xff; + } + + Send_Num=20; + //UART2_Send_Buffer_NoCheck(Send_Num); + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL&&flag_RS232_TimeoutStart); // ȴ"SEND OK" + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + // ӡ "SEND OK" + flag_SEND_FAIL=0; + System_Status=11; + } + else + { + // ڳʱ + flag_SEND_FAIL=1; + flag_UDP1_Connected=0; + System_Status=10; + //Lcd_Disp_Tempture(System_Status); + } + } +} +/**********************************************/ +void Heart_and_State_Return(unsigned char str) // &״̬ +{ +// ݹ룬ظ,Function_Code + unsigned char i,temp; + unsigned int CRC16 = 0xffff; + + switch(Function_Code) + { + case 1: break; + case 2: break; + case 3: break; + case 4: break; + case 5: break; + case 6: break; + case 7: break; + case 8: break; + case 9: break; + case 10: break; + default:break; + } + Load_Header_15data(0,str); // strʾ0ǻظ1 + i=15; + if(flag_auto_hand) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; // 豸ǰģʽ + + Send_Buffer[i++]=0x1; // 1: 1=on,0=off + if(flag_lamp1_onoff) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; + +// Send_Buffer[i++]=0x2; // 2: 1=on,0=off +// if(flag_lamp2_onoff) +// Send_Buffer[i++]=0x1; +// else +// Send_Buffer[i++]=0x0; + + Send_Buffer[i++]=0x2; // PUMP3: 1=on,0=off + if(flag_Pump_onoff) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; + +// Send_Buffer[i++]=0x4; // 4: 1=on,0=off +// if(flag_lamp4_onoff) +// Send_Buffer[i++]=0x1; +// else +// Send_Buffer[i++]=0x0; + +// Send_Buffer[i++]=0x5; // 5: 1=on,0=off +// if(flag_lamp5_onoff) +// Send_Buffer[i++]=0x1; +// else +// Send_Buffer[i++]=0x0; + + for(temp=0;temp<4;temp++)//4ʱ + { + Send_Buffer[i++]=temp+1; // ʱ1~10(1ֽ) + Send_Buffer[i++]=Timers_Enable[temp+1]; // ʱ:0أ1(1ֽ) + Send_Buffer[i++]=Set_Open_Hour[temp]; // ʱʱ俪ʱ(1ֽ) + Send_Buffer[i++]=Set_Open_Minute[temp]; // ʱʱ俪֣(1ֽ) + Send_Buffer[i++]=Set_Close_Hour[temp]; // ʱʱʱ(1ֽ) + Send_Buffer[i++]=Set_Close_Minute[temp];// ʱʱط֣(1ֽ) + } + Send_Buffer[i++]=Real_Tempture/0x100; + Send_Buffer[i++]=Real_Tempture%0x100;//ʵ¶ + Send_Buffer[i++]=0x0; + Send_Buffer[i++]=0x0;//PHֵ + Send_Buffer[i++]=0x0; + Send_Buffer[i++]=0x0;//ʪ + + Send_Buffer[i++]=TemptureAlam_Close_Open_Setup; + Send_Buffer[i++]=Set_Low_Tempture/0x100; + Send_Buffer[i++]=Set_Low_Tempture%0x100; // ¶- + Send_Buffer[i++]=Set_High_Tempture/0x100; + Send_Buffer[i++]=Set_High_Tempture%0x100; // ¶- + + CRC16=GetRevCrc_16(Send_Buffer,i); + Send_Buffer[i++]=CRC16>>8; + Send_Buffer[i++]=CRC16; + + Send_Num=i; + UART2_Send_Buffer_NoCheck(Send_Num); + if(0) + { + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL&&flag_RS232_TimeoutStart); // ȴ"SEND OK" + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + // ӡ "SEND OK" + flag_SEND_FAIL=0; + System_Status=11; + } + else + { + // ڳʱ + flag_SEND_FAIL=1; + flag_TCP0_Connected=0; + System_Status=10; + + //Lcd_Disp_Tempture(System_Status); + } + } +} + +/*****************************************************************/ +//ұָa_len ij10ƣұָ "AT+CIPSEND=id,XX" XXǷ͵ +void make_AT_CIPSEND(unsigned char len,unsigned char STR,unsigned char X) // ̬췢ATָ +{ + // lenݳ STR=255ǷUDP㲥 X='0'TCP,Link_id + unsigned char i,j,k; + for(i=0;i<11;i++) + Send_Buffer[i]=CIPSEND[i]; // + + Send_Buffer[i]=Link_id; // Ҫڴӵ id + + // 豸¼ָ(24ֽ)ÿ豸͵½ָ + if(len==24) + { + Send_Buffer[i]='0'; + Send_Buffer[++i]=','; + Send_Buffer[++i]='2'; + Send_Buffer[++i]='4'; + } + + // ظ豸ָUDPʽ(20ֽ)ÿ豸ڷһ + else if(len==20) + { + Send_Buffer[i]='1'; // UDP=1 Ҫڴӵ id =1 + Send_Buffer[++i]=','; + Send_Buffer[++i]='2'; + Send_Buffer[++i]='0'; + + Send_Buffer[++i]=','; + Send_Buffer[++i]='"'; //i=16 + if(STR==255) + { + // һȺĩIPΣIP_buf[3]=255 + //LOC_IP_buf[0]=192,LOC_IP_buf[1]=168,LOC_IP_buf[2]=61 + if(LOC_IP_buf[0]/100) + { + Send_Buffer[++i]=LOC_IP_buf[0]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else if((LOC_IP_buf[0]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[1]/100) + { + Send_Buffer[++i]=LOC_IP_buf[1]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else if((LOC_IP_buf[1]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[2]/100) + { + Send_Buffer[++i]=LOC_IP_buf[2]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + if((LOC_IP_buf[2]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + Send_Buffer[++i]='.'; + + Send_Buffer[++i]='2'; + Send_Buffer[++i]='5'; + Send_Buffer[++i]='5'; + } + else + { + // ڶָUDPIP + // RMT_IP_buf[0]=192,RMT_IP_buf[1]=168,RMT_IP_buf[2]=61,RMT_IP_buf[3]=128 + if(RMT_IP_buf[0]/100) + { + Send_Buffer[++i]=RMT_IP_buf[0]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[0]%10+'0'; + } + else if((RMT_IP_buf[0]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[0]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[0]%10+'0'; + Send_Buffer[++i]='.'; + + if(RMT_IP_buf[1]/100) + { + Send_Buffer[++i]=RMT_IP_buf[1]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[1]%10+'0'; + } + else if((RMT_IP_buf[1]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[1]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[1]%10+'0'; + Send_Buffer[++i]='.'; + + if(RMT_IP_buf[2]/100) + { + Send_Buffer[++i]=RMT_IP_buf[2]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[2]%10+'0'; + } + else if((RMT_IP_buf[2]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[2]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[2]%10+'0'; + Send_Buffer[++i]='.'; + + if(RMT_IP_buf[3]/100) + { + Send_Buffer[++i]=RMT_IP_buf[3]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[3]%10+'0'; + } + else if((RMT_IP_buf[3]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[3]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[3]%10+'0'; + } + + Send_Buffer[++i]='"'; + Send_Buffer[++i]=','; + + Send_Buffer[++i]='9'; // RMT_IP_PORT + Send_Buffer[++i]='9'; + Send_Buffer[++i]='5'; + Send_Buffer[++i]='4'; + } + + // ߷(71ֽ) + else if(len==57)//else if(flag_HeartBeat10s) + { + if(X=='0') + Send_Buffer[i]='0'; // Ҫڴӵ id + + Send_Buffer[++i]=','; + Send_Buffer[++i]='5'; + Send_Buffer[++i]='7'; // 71bytes 豸71ֽڣ10룩 + } + + // ¶Ϣ(22ֽ) + else if(len==22)//else if(flag_Tempture_Abnormal) + { + //Send_Buffer[i]='0'; // Ҫڴӵ id + Send_Buffer[++i]=','; + Send_Buffer[++i]='2'; + Send_Buffer[++i]='2'; // 22bytes ¶ȱ״̬Ϣ(22ֽ) + } + + Send_Buffer[++i]='\r'; // '\r'=0x0d; + Send_Buffer[++i]='\n'; // '\n'=0x0a; + Send_Num=i+1; + + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,send_logo))==NULL&&flag_RS232_TimeoutStart); // ȴ"> " + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + // ӡ "> " + flag_SEND_FAIL=0; + System_Status=211; + } + else + { + flag_SEND_FAIL=1; + if(len==20) + flag_UDP1_Connected=0; + else + flag_TCP0_Connected=0; + + System_Status=210; + //Lcd_Disp_Tempture(System_Status); + } +} + +#define MASS_KEY1 0xAE // flash' Կ1 +#define MASS_KEY2 0x56 // flash' Կ2 +#define EEP_BASE 0x4000 // eerom ʼַ +/********************STM8SڲEEPROM ʼ**************************/ +void MCUeeprom_Init(void) +{ + FLASH_CR1 = 0x00; + FLASH_CR2 = 0x00; + FLASH_NCR2 = 0xff; + FLASH_DUKR = MASS_KEY1; + FLASH_DUKR = MASS_KEY2; + while(!(FLASH_IAPSR & 0x08)); // ȴд +} + +/********************STM8SڲEEPROM д1byte**************************/ +void MCUeeprom_write_byte(unsigned int addr ,unsigned char dat) //ͬоƬEEPROMͬ +{ + *((unsigned char*)(addr + EEP_BASE)) = dat; + while(!(FLASH_IAPSR & 0x04)); //ȴд +} + +/********************STM8SڲEEPROM 1byte**************************/ +unsigned char MCUeeprom_read_byte(unsigned int addr) +{ + return *((unsigned char*)(EEP_BASE + addr)); +} + +/********************STM8Sڲд**************************/ +void MCUeeprom_write_URL(void) +{ + unsigned char i; + + MCUeeprom_Init(); + // 浱ǰTCP + for(i=55;i<75;i++) + MCUeeprom_write_byte(i,URL_ADDR[i-55]); +} + +void MCUeeprom_write(void) +{ + unsigned char i; + //if(flag_LampTime_Change) + { + // flag_LampTime_Change=0; + + MCUeeprom_Init(); + //for(i=0;i<128;i++) + // MCUeeprom_write_byte(i,0); + + for(i=0;i<10;i++) + {MCUeeprom_write_byte(i,Set_Open_Hour[i]);} + + for(i=10;i<20;i++) + {MCUeeprom_write_byte(i,Set_Open_Minute[i-10]);} + + for(i=20;i<30;i++) + {MCUeeprom_write_byte(i,Set_Close_Hour[i-20]);} + + for(i=30;i<40;i++) + {MCUeeprom_write_byte(i,Set_Close_Minute[i-30]);} + + for(i=40;i<50;i++) + {MCUeeprom_write_byte(i,Timers_Enable[i-39]);} + + MCUeeprom_write_byte(50,TemptureAlam_Close_Open_Setup); + //Set_High_Tempture=0x2505; + MCUeeprom_write_byte(51,Set_High_Tempture/0x100); + MCUeeprom_write_byte(52,Set_High_Tempture%0x100); + //Set_Low_Tempture=0x1505; + MCUeeprom_write_byte(53,Set_Low_Tempture/0x100); + MCUeeprom_write_byte(54,Set_Low_Tempture%0x100); + + MCUeeprom_write_byte(55,state0); + MCUeeprom_write_byte(56,flag_lamp1_onoff); + MCUeeprom_write_byte(57,flag_lamp2_onoff); + MCUeeprom_write_byte(58,flag_Pump_onoff); + MCUeeprom_write_byte(59,flag_auto_hand); + MCUeeprom_write_byte(60,Have_New_URL); + + // 浱ǰTCP + for(i=61;i<81;i++) + MCUeeprom_write_byte(i,URL_ADDR[i-61]); + + } +} + +/*******************STM8Sڲ***************************/ +void MCUeeprom_read(void) +{ + unsigned char i,j; + unsigned int k; + if(0) + { + for(i=0;i<10;i++) + { + Set_Open_Hour[i]=0; + Set_Close_Hour[i]=0; + Set_Open_Minute[i]=0; + Set_Close_Minute[i]=0; + Timers_Enable[i+1]=0; + } + + TemptureAlam_Close_Open_Setup = 0; + Set_High_Tempture = 0; + Set_High_Tempture = Set_High_Tempture*0x100; + Set_High_Tempture+= 0; + Set_Low_Tempture = 0; + Set_Low_Tempture = Set_Low_Tempture*0x100; + Set_Low_Tempture+= 0; + + for(i=0;i<20;i++) +// URL_TCP0_ifish7[i]=0; + state0=0; + } + + for(i=0;i<10;i++) + {Set_Open_Hour[i]=MCUeeprom_read_byte(i);} + for(i=10;i<20;i++) + {Set_Open_Minute[i-10]=MCUeeprom_read_byte(i);} + for(i=20;i<30;i++) + {Set_Close_Hour[i-20]=MCUeeprom_read_byte(i);} + for(i=30;i<40;i++) + {Set_Close_Minute[i-30]=MCUeeprom_read_byte(i);} + for(i=40;i<50;i++) + {Timers_Enable[i-39]=MCUeeprom_read_byte(i);} + + TemptureAlam_Close_Open_Setup = MCUeeprom_read_byte(50); + + i = MCUeeprom_read_byte(51); + j = MCUeeprom_read_byte(52); + Set_High_Tempture = i*0x100+j; + + i = MCUeeprom_read_byte(53); + j = MCUeeprom_read_byte(54); + Set_Low_Tempture = i*0x100+j; + + + // ȡǰTCP(һζǿյ) + /* + for(i=55;i<75;i++) + k+=MCUeeprom_read_byte(i); + + if(k==0||k==20*0xff) + {} + else + { + for(i=55;i<75;i++) + URL_ADDR[i-55]=MCUeeprom_read_byte(i); + + } + */ + state0=MCUeeprom_read_byte(55); + flag_lamp1_onoff=MCUeeprom_read_byte(56); + flag_lamp2_onoff=MCUeeprom_read_byte(57); + flag_Pump_onoff=MCUeeprom_read_byte(58); + flag_auto_hand=MCUeeprom_read_byte(59); + Have_New_URL=MCUeeprom_read_byte(60); + flag_lamp1_onoff&=0x01; + flag_lamp2_onoff&=0x01; + flag_Pump_onoff&=0x01; + flag_auto_hand&=0x01; + + if(0xea==Have_New_URL) + { + for(i=61;i<81;i++) + URL_ADDR[i-61]=MCUeeprom_read_byte(i); + } + +} + +/***********************ȡMACIP***********************/ +const unsigned char test_IPMAC[]={'A','T','+','C','I','P','F','S','R','\r', + '+','C','I','P','F','S','R',':','S','T', + 'A','I','P',',','"','1','9','2','.','1', + '6','8','.','0','.','1','0','8','"','\r','+', + 'C','I','P','F','S','R',':','S','T','A', + 'M','A','C',',','"','1','8',':','f','e', + ':','3','4',':','d','b',':','0','d',':', + '3','3','"','\r','\n','O','K'}; +//AT+CIPFSR ַת +//+CIFSR:STAIP,"192.168.0.108" +//+CIFSR:STAMAC,"18:fe:34:db:0d:33" +//OK +void Read_STAIP_STAMAC(void) +{ + unsigned char temp,i,i_temp; + + //for(i=0;i<100;i++) + // Receive_Buffer1[i]=test_IPMAC[i]; + + if((pStr1=strstr(Receive_Buffer1,STAIP))!=NULL); + { + LOC_IP_buf[0]=LOC_IP_buf[1]=LOC_IP_buf[2]=LOC_IP_buf[3]=0; + flag_Have_STAIP=1; + temp=strloc(Receive_Buffer1,STAIP); // (strstr(Receive_Buffer1,ready)==NULL); + temp=temp+7; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='.') + break; + } + if(i==1) + LOC_IP_buf[0]=(Receive_Buffer1[temp]-'0'); + else if(i==2) + LOC_IP_buf[0]=(Receive_Buffer1[temp]-'0')*10 +(Receive_Buffer1[temp+1]-'0'); + else if(i==3) + LOC_IP_buf[0]=(Receive_Buffer1[temp]-'0')*100+(Receive_Buffer1[temp+1]-'0')*10+(Receive_Buffer1[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='.') + break; + } + if(i==1) + LOC_IP_buf[1]=(Receive_Buffer1[temp]-'0'); + else if(i==2) + LOC_IP_buf[1]=(Receive_Buffer1[temp]-'0')*10+(Receive_Buffer1[temp+1]-'0'); + else if(i==3) + LOC_IP_buf[1]=(Receive_Buffer1[temp]-'0')*100+(Receive_Buffer1[temp+1]-'0')*10+(Receive_Buffer1[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='.') + break; + } + if(i==1) + LOC_IP_buf[2]=(Receive_Buffer1[temp+i-1]-'0'); + else if(i==2) + LOC_IP_buf[2]=(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + else if(i==3) + LOC_IP_buf[2]=(Receive_Buffer1[temp+i-3]-'0')*100+(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='"') + break; + } + if(i==1) + LOC_IP_buf[3]=(Receive_Buffer1[temp+i-1]-'0'); + else if(i==2) + LOC_IP_buf[3]=(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + else if(i==3) + LOC_IP_buf[3]=(Receive_Buffer1[temp+i-3]-'0')*100+(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + temp=temp+i+1; + } + //AT+CIPFSR\r ַת + //+CIFSR:STAIP,"192.168.1.104"\r + //+CIFSR:STAMAC,"5c:cf:7f:07:65:21"\r\n + //OK + if((pStr1=strstr(Receive_Buffer1,STAMAC))!=NULL) // >='a',<='f' + { + LOC_MAC_buf[0]=LOC_MAC_buf[1]=LOC_MAC_buf[2]=LOC_MAC_buf[3]=LOC_MAC_buf[4]=LOC_MAC_buf[5]=0; + flag_Have_STAMAC=1; + temp=strloc(Receive_Buffer1,STAMAC); + temp=temp+8; + + for(i=0;i<6;i++) + { + if(Receive_Buffer1[temp]>='0'&&Receive_Buffer1[temp]<='9') + LOC_MAC_buf[i]=(Receive_Buffer1[temp]-'0'); + if(Receive_Buffer1[temp]>='a'&&Receive_Buffer1[temp]<='f') + LOC_MAC_buf[i]=(Receive_Buffer1[temp]-'a')+10; + + if(Receive_Buffer1[temp+1]>='0'&&Receive_Buffer1[temp+1]<='9') + LOC_MAC_buf[i]=LOC_MAC_buf[i]*16+(Receive_Buffer1[temp+1]-'0'); + if(Receive_Buffer1[temp+1]>='a'&&Receive_Buffer1[temp]<='f') + LOC_MAC_buf[i]=LOC_MAC_buf[i]*16+(Receive_Buffer1[temp+1]-'a')+10; + temp=temp+3; + } + } +} +/*********************Źλ************************/ +/** + * @brief Enables IWDG. "stm8s_iwdg.h" + * @param None + * @retval None + */ +void IWDG_Enable(void) +{ + IWDG_KR = 0xcc; //IWDG_KEY_ENABLE; +} + +/**********************ģ鸴λ************************/ +void ESP8266_RST(void) +{ + unsigned char i; + System_Init(); + + for(i=0;i<6;i++) + Send_Buffer[i]=RST[i]; + Send_Buffer[6]='\r'; + Send_Buffer[7]='\n'; + Send_Num=8; + UART2_Send_Buffer_NoCheck(Send_Num); + // Monitoring + //Delay_ms(1000); + //BEEP_ms(200); +} + +/********************ģ**********************/ +void ESP8266_RESTORE(void) +{ + unsigned char i; + + for(i=0;i<10;i++) + Send_Buffer[i]=RESTORE[i]; + Send_Buffer[10]='\r'; + Send_Buffer[11]='\n'; + Send_Num=12; + UART2_Send_Buffer_NoCheck(Send_Num); + // Monitoring + //Delay_ms(1000); + BEEP_ms(200); + +} + +/**********************ESP8266ģ************************/ +void ESP8266_CWMODE(unsigned char STR) +{ + unsigned char i; + // 1-1.AT+CWMODE=1 station + for(i=0;i<10;i++) + Send_Buffer[i]=CWMODE[i]; + Send_Buffer[10]=STR; + Send_Buffer[11]='\r'; + Send_Buffer[12]='\n'; + Send_Num=13; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + System_Status=41; + else + System_Status=40; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266ͨ/͸ģʽ************************/ +void ESP8266_CIPMODE(unsigned char STR) +{ + unsigned char i; + // 1-2.AT+CIPMODE=0 ͸ͨģʽ + for(i=0;i<11;i++) + Send_Buffer[i]=CIPMODE[i]; + Send_Buffer[11]=STR; + Send_Buffer[12]='\r'; + Send_Buffer[13]='\n'; + Send_Num=14; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=51; + else System_Status=50; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266·************************/ +void ESP8266_CIPMUX(unsigned char STR) +{ + unsigned char i; + // 1-3.AT+CIPMUX=1 · + for(i=0;i<10;i++) + Send_Buffer[i]=CIPMUX[i]; + Send_Buffer[10]=STR; + Send_Buffer[11]='\r'; + Send_Buffer[12]='\n'; + Send_Num=13; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=61; + else System_Status=60; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266ʾԶIPͶ˿************************/ +void ESP8266_CIPDINFO(unsigned char STR) +{ + unsigned char i; + // 1-4.AT+CIPDINFO=1 ʾԶIPͶ˿ + for(i=0;i<12;i++) + Send_Buffer[i]=CIPDINFO[i]; + Send_Buffer[i++]=STR; + Send_Buffer[i++]='\r'; + Send_Buffer[i++]='\n'; + Send_Num=i; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=61; + else System_Status=60; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266ر************************/ +void ESP8266_CIPCLOSE(unsigned char STR) +{ + unsigned char i; + // 1-5.AT+CIPCLOSE=0~45=ر TCP/UDP + for(i=0;i<12;i++) + Send_Buffer[i]=CIPCLOSE[i]; + + Send_Buffer[12]=STR; //STR=id + Send_Buffer[13]='\r'; + Send_Buffer[14]='\n'; + Send_Num=15; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart); + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=141; + else System_Status=140; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266************************/ +void ESP8266_STARTSMART(void) +{ + unsigned char i; + flag_WiFi_Smarting=1; + flag_WiFi_Connect_Enable=1; + + flag_WiFi_Disconnect=0; + flag_WiFi_Connected=0; + flag_TCP0_Connected=0; + + if(flag_WiFi_Connected==0) + { + for(i=0;i<14;i++) + Send_Buffer[i]=CWSTOPSMART[i]; + Send_Buffer[14]='\r'; + Send_Buffer[15]='\n'; + Send_Num=16; + UART2_Send_Buffer_Check(Send_Num);// ȹһ + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=71; + else System_Status=70; + //Lcd_Disp_Tempture(System_Status); + + for(i=0;i<17;i++) + Send_Buffer[i]=CWSTARTSMART[i];// + Send_Buffer[17]='\r'; + Send_Buffer[18]='\n'; + Send_Num=19; + + flag_WiFi_Connected=0; + UART2_Send_Buffer_NoCheck(Send_Num); +// Monitoring + } +} + +/**********************ģȡMACIP************************/ +void ESP8266_CIFSR(void) +{ + unsigned char i; +// ڴ˷ͣ"AT+CIFSR" / ESP8266 station IP AP 󣬲ſԲѯ + for(i=0;i<8;i++) + Send_Buffer[i]=CIFSR[i]; + Send_Buffer[8]='\r'; + Send_Buffer[9]='\n'; + Send_Num=10; + UART2_Send_Buffer_Check(Send_Num); + Delay_ms(10); + while(((pStr1=strstr(Receive_Buffer1,STAIP))==NULL)&&\ + ((pStr1=strstr(Receive_Buffer1,STAMAC))==NULL)&&flag_RS232_TimeoutStart); + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + Read_STAIP_STAMAC(); + System_Status=131; + } + else + System_Status=130; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ģӷ*UDP1***********************/ +void ESP8266_CIPSTART_UDP(unsigned char STR) +{ + unsigned char i,j; + + if(1)//if(STR==1) + { + for(i=0;i<12;i++) // AT+CIPSTART=1,"UDP",IP0.IP1.IP2.255,9954,333,0 + Send_Buffer[i]=CIPSTART[i]; + + Send_Buffer[12]=STR; + Send_Buffer[13]=','; + Send_Buffer[14]='"'; + Send_Buffer[15]='U'; + Send_Buffer[16]='D'; + Send_Buffer[17]='P'; + Send_Buffer[18]='"'; + Send_Buffer[19]=','; + Send_Buffer[20]='"'; + i=20; + if(LOC_IP_buf[0]/100) + { + Send_Buffer[++i]=LOC_IP_buf[0]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else if((LOC_IP_buf[0]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[1]/100) + { + Send_Buffer[++i]=LOC_IP_buf[1]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else if((LOC_IP_buf[1]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[2]/100) + { + Send_Buffer[++i]=LOC_IP_buf[2]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + else if((LOC_IP_buf[2]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[3]/100) + { + Send_Buffer[++i]=LOC_IP_buf[3]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[3]%10+'0'; + } + else if((LOC_IP_buf[3]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[3]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[3]%10+'0'; + + i++; + Send_Buffer[i++]='"'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='5'; + Send_Buffer[i++]='4'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='3'; + Send_Buffer[i++]='3'; + Send_Buffer[i++]='3'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='0'; + + Send_Buffer[i++]='\r'; // '\r'=0x0d; + Send_Buffer[i++]='\n'; // '\n'=0x0a; + Send_Num=i; + + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart); + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + make_AT_CIPSEND(20,255,255); // AT+CIPSEND=1,20,ȫȺ + UDP1_Return(11); + // ͨѶ + } +} + +/**********************ģӷ*TCP0***********************/ +void ESP8266_CIPSTART_TCP(unsigned char STR) +{ + unsigned char i,j; + + if(1)//if(STR==1) // ʽһٷ + { + for(i=0;i<12;i++) //AT+CIPSTART=0,"TCP","192.168.61.128",9955 + Send_Buffer[i]=CIPSTART[i]; + + Send_Buffer[12]=STR; + Send_Buffer[13]=','; + Send_Buffer[14]='"'; + Send_Buffer[15]='T'; + Send_Buffer[16]='C'; + Send_Buffer[17]='P'; + Send_Buffer[18]='"'; + Send_Buffer[19]=','; + Send_Buffer[20]='"'; + + for(j=0;j<20;j++) + { + if(URL_ADDR[j]==0) + break; + } + + if(j>10) + { + for(i=21;i<(j+21);i++) + Send_Buffer[i]=URL_ADDR[i-21]; + Send_Buffer[i++]='"'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='5'; + Send_Buffer[i++]='5'; + Send_Buffer[i++]='\r'; // '\r'=0x0d; + Send_Buffer[i++]='\n'; // '\n'=0x0a; + Send_Num=i; + UART2_Send_Buffer_NoCheck(Send_Num); + } + } + /* + else if(STR==2) // ʽ̶ֱ + { + for(i=0;i<12;i++) + Send_Buffer[i]=CIPSTART[i]; + for(i=12;i<40;i++) + { + //Send_Buffer[i]=URL_TCP0_LOC104[i-12];//i<40 0,"TCP","192.168.0.104",8080 28 + //Send_Buffer[i]=URL_TCP0_LOC128[i-12]; //i<41 0,"TCP","192.168.61.128",9955 29 + Send_Buffer[i]=URL_TCP0_ifish7[i-12]; //i<40 0,"TCP","120.55.190.56",9955 28 + } + + Send_Buffer[i++]='\r'; // '\r'=0x0d; + Send_Buffer[i++]='\n'; // '\n'=0x0a; + Send_Num=i; + UART2_Send_Buffer_NoCheck(Send_Num); + } + */ +} + + +/**********************LCDʾˢ*********SEG0~SEG31***************/ +void Lcd_Display(void) +{ +/* + "8"Ͷζ col + ---A--- ---A--- ---A--- ---A--- + | | | | | | | | + F B F B . F B F B + | | | | | | | | + ---G--- ---G--- ---G--- ---G--- + | | | | | | | | + E C E C . E C E C + | | | | | | | | + ---D--- ---D--- ---D--- ---D--- +*/ + unsigned char temp,lcd_high4,lcd_low4; +/* +ClockTimeSetup_Stepper ʱãǰʱã +1. ʮλ +2. λ +3. ʮλ +4. ¸λ +5. ʮλ +6. ոλ +7. ʱʮλ +8. ʱλ +9. ʮλ +10.ָλ +*/ + +// ʱСʱλֵSEG24+SEG23: + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==2) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Hour%10]; + } + else + temp=Lcd_Table0123456789[Disp_Hour%10]; + + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + if(flag_Colon_Jump){lcd_high4=lcd_high4|0x1;} // COLǡ:, + ht_writedata(23,lcd_high4,4); // SEG23:2A2B2C+COL + ht_writedata(24,lcd_low4,4); // SEG24:2F2G2E2D + +// ʱʮλֵSEG22+SEG21 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==3) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Minute/10]; + } + else + temp=Lcd_Table0123456789[Disp_Minute/10]; + + lcd_high4=(temp&0xf0)>>4; + lcd_high4=lcd_high4|0x1;// S2=ʱ + lcd_low4=temp&0xf; + ht_writedata(21,lcd_high4,4); // SEG21:3A3B3C+S2 + ht_writedata(22,lcd_low4,4); // SEG22:3F3G3E3D + +// ʱӸλֵSEG20+SEG19: + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==4) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Minute%10]; + } + else + temp=Lcd_Table0123456789[Disp_Minute%10]; + lcd_high4=(temp&0xf0)>>4; + + lcd_high4=lcd_high4|0x1; + if(flag_ClockTimeSetting&&flag_Colon_Jump) + lcd_high4&=0xFE; // S3=ʱLOGO + + lcd_low4=temp&0xf; + ht_writedata(19,lcd_high4,4);// SEG19:4A4B4C+S18 + ht_writedata(20,lcd_low4,4); // SEG20:4F4G4E4D + +// ƹ1LOGO: S29=lamp1-1, S30=lamp1-2, S31=lamp1-3, S32=lamp1-0 SEG9+10 + if(flag_lamp1_onoff) + { + temp=0xd9; + if(Lcd_Colon_TimeoutCounter>=1&&Lcd_Colon_TimeoutCounter<=5) + temp|=0x04; + if(Lcd_Colon_TimeoutCounter>=2&&Lcd_Colon_TimeoutCounter<=5) + temp|=0x02; + if(Lcd_Colon_TimeoutCounter>=3&&Lcd_Colon_TimeoutCounter<=5) + temp|=0x20; + } + else + {temp=0xff;} + //if(Key_Back==Lamp1_Key1) + //{ + // if(flag_Colon_Jump) + // temp=0xff; + // else + // temp=0xd9; + //} + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4|=1; + ht_writedata(10,lcd_high4,4);// SEG10:*S13S12S14 + ht_writedata(9,lcd_low4,4); // SEG9 :S16S10S11S17 + +// ʱСʱʮλֵSEG25 + if(flag_LampTimeSetting) + { + if(flag_TimeSetup_Jump) + temp=0x0; + else if(flag_Open_Time) + temp=Lcd_Hour_Tab[Set_Open_Hour[(LampTimeSetup_Stepper-1)/2]/10]; + else if(flag_Close_Time) + temp=Lcd_Hour_Tab[Set_Close_Hour[(LampTimeSetup_Stepper-1)/2]/10]; + } + else if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==1) + {temp=0x0;} + else + {temp=Lcd_Hour_Tab[Disp_Hour/10];} + } + else + {temp=Lcd_Hour_Tab[Disp_Hour/10];} + + lcd_low4=temp&0xf; + ht_writedata(25,lcd_low4,4); // SEG25:1B(1AGD)1C1E +/* +LampTimeSetup_Stepper ʱãlamp1lamp2UV-C +1.lamp11ʱΣ1 ʱ0- Set_Open_Hour + Set_Open_Minute +2. 1 ʱ0- Set_Close_Hour+ Set_Close_Minute +3. 2 ʱ1- +4. 2 ʱ1- +5.lamp22ʱΣ1 ʱ2- +6. 1 ʱ2- +7. 2 ʱ3- +8. 2 ʱ3- +9.UV-C3ʱΣ 1 ʱ4- +10. 1 ʱ4- +11. 2 ʱ5- +12. 2 ʱ5- + ʱ6~ʱ9 +*/ + +// LL=DZ,S8=桱,S9=±,S7=Temperature + lcd_low4=0x0f; + ht_writedata(11,lcd_low4,4); // SEG11:LL+S8+S9+S7 + +// ¶ֵСλXSEG12+SEG13 + temp=Lcd_Table0123456789[Real_Tempture%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S4=ڼ + ht_writedata(12,lcd_high4,4); // SEG12:7A7B7C+S4 + ht_writedata(13,lcd_low4,4); // SEG13:7F7G7E7D + +// ¶ֵλXSEG14+SEG15 + temp=Lcd_Table0123456789[Real_Tempture%100/10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // DP="." + ht_writedata(14,lcd_high4,4); // SEG14:6A6B6C+DP + ht_writedata(15,lcd_low4,4); // SEG15:6F6G6E6D + +// ¶ֵʮλXSEG16+SEG17 + temp=Lcd_Table0123456789[Real_Tempture/100]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S5=ڼLOGO + ht_writedata(16,lcd_high4,4); // SEG16:5A5B5C+S5 + ht_writedata(17,lcd_low4,4); // SEG17:5F5G5E5D + +// Զ+ֶ++S6=1:SEG18 + lcd_low4=0x1; + if(flag_ScreenLock_Status){lcd_low4|=0x2;} // + if(flag_auto_hand){lcd_low4|=0x8;}else{lcd_low4|=0x4;} + ht_writedata(18,lcd_low4,4); + +// ʾ "" λSEG7+SEG6 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==10) + temp=0x00; + else + {temp=Lcd_Table0123456789[Disp_Day%10];} + } + else + {temp=Lcd_Table0123456789[Disp_Day%10];} + lcd_high4=(temp&0xf0)>>4; + lcd_high4|=0x01; + lcd_low4=temp&0xf; + if(flag_Colon_Jump&&flag_Pump_onoff) + lcd_high4&=0xfe; // S15=ˮLOGO + ht_writedata(7,lcd_high4,4); // SEG7:13A13B13C+S15 + ht_writedata(6,lcd_low4,4); // SEG6:13F13G13E13D + +// ʾ "ʮ" λSEG5 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==9) + {temp=0x00;} + else + {temp=lcd_day_tab[Disp_Day/10];} + } + else + {temp=lcd_day_tab[Disp_Day/10];} + lcd_low4=temp&0xf; + ht_writedata(5,lcd_low4,4); // SEG23:12B(12AGD)12C12E + +// ·ʾ "" λSEG4+SEG3 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==8) + temp=0x00; + else + temp=Lcd_Table0123456789[Disp_Month%10]; + } + else + temp=Lcd_Table0123456789[Disp_Month%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==7) + lcd_high4=lcd_high4&0xe; // 10B=ʮ"|"=1,"[|"=0 + ht_writedata(4,lcd_high4,4); // SEG4:11A11B11C+10B + ht_writedata(3,lcd_low4,4); // SEG3:11F11G11E11D + +// ʾ "ʮ" λSEG0+SEG8 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==5) + temp=0x00; + else + temp=Lcd_Table0123456789[Disp_Year/10]; + } + else + temp=Lcd_Table0123456789[Disp_Year/10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S1="20 - - " + ht_writedata(0,lcd_high4,4); // SEG0:8A8B8C+S1 + ht_writedata(8,lcd_low4,4); // SEG8:8F8G8E8D + +// ʾ "" λSEG2+SEG1 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==6) + temp=0x00; + else + temp=Lcd_Table0123456789[Disp_Year%10]; + } + else + temp=Lcd_Table0123456789[Disp_Year%10]; + + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + + lcd_high4|=0x01; + if(Disp_Month<10) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==7) + lcd_high4&=0x0e; + else + lcd_high4|=0x01; // 10A:ʮ"[" + } + else + { + lcd_high4&=0x0e; + } + ht_writedata(2,lcd_high4,4); // SEG26:9A9B9C+10A + ht_writedata(1,lcd_low4,4); // SEG27:9F9G9E9D + +// WiFi+K3()+K2( )+K1( ) :SEG26 + lcd_low4=0x00; + if((flag_WiFi_ready&&flag_WiFi_Connect_Enable)) + { + if(flag_WiFi_Disconnect) // "((( )))" + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x08; + } + else if(flag_WiFi_Smarting) // ȫ"(((WIFI)))" + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x00; + } + else if(flag_WiFi_Connected==0) // "((( )))" + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x08; + } + else if(flag_TCP0_Connected==0) // "WIFI" + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x07; + } + else if(flag_WiFi_Connected&&flag_TCP0_Connected) // + { + lcd_low4=0x0f; + } + } + ht_writedata(26,lcd_low4,4); // SEG30:WiFi+K3+K2+K1:"(((WiFi)))" +} + +/*********************¶ȱ*************************/ +const float tempture_tab[]= +{ +34.467,32.946,31.508,30.147,28.835, +27.606,26.427,25.308,24.236,23.218,22.259,21.331,20.450,19.621,18.819, +18.018,17.322,16.641,15.968,15.337,14.750,14.615,13.618,13.081,12.581, +12.110,11.647,11.210,10.786,10.386,10.000,9.631,9.277,8.937,8.613, +8.302,8.003,7.718,7.445,7.182,6.929,6.688,6.457,6.233,6.019, +5.813,5.616,5.427,5.244,5.069,4.901,4.740,4.582,4.435,4.288, +4.151,4.016,3.880,3.764,3.644,3.527,3.416,3.308,3.205,3.106, +3.011,2.919,2.830,2.744,2.662,2.583,2.504,2.430,2.359,2.289, +2.224,2.158,2.096,2.036,1.978,1.921,1.867,1.814,1.764,1.714, +1.667,1.621,1.576,1.533,1.492,1.451,1.412,1.374,1.338,1.302, +1.268,1.235,1.203,1.171,1.141,1.112,1.083,1.056,1.029,1.003,0.9777 +}; +float cha_biao(float tem_num) +{ + float temp; + unsigned char i; + + for(i=0;i<106;i++) + { + if(tem_num>tempture_tab[i]) + {break;} + } + + if(i>=105) + {temp=99.9;} + else if(i<=5) + {temp=0;} + else + {temp=(tempture_tab[i-1]-tem_num)/(tempture_tab[i-1]-tempture_tab[i])-5-1+i;} + return(temp); +} + +/*********************AD¶ֵ*************************/ +float ADC_DATA=0; +void Read_Tempture(void) +{ + float TEMP; + //static float ADC_DATA; + +/* + if((ADC_CSR & 0x80) == 0x80) + { + //ADC_DATA=ADC_DATA>>2; + temp=10*(float)ADC_DRH/(0x100-(float)ADC_DRH); + // temp=10*(float)(ADC_DATA/(0x100-ADC_DATA)); + temp=cha_biao(temp); + tempture_temp=tempture_temp+temp; + if(++Tempture_Read_Counter>39) + { + Tempture_Read_Counter=0; + Real_Tempture=(((int)tempture_temp>>2)+Real_Tempture)>>1; + tempture_temp=0; + } + ADC_CSR&=0x7f; //ת־ + ADC_CR1|=0x01; // ٴνCR1Ĵλ1//adת + } +*/ + if((ADC_CSR & 0x80) == 0x80) + { + //ADC_DATA=ADC_DATA>>2; + TEMP=10*(float)ADC_DRH/(0x100-(float)ADC_DRH); + // temp=10*(float)(ADC_DATA/(0x100-ADC_DATA)); + TEMP=cha_biao(TEMP); + ADC_DATA+=TEMP; + if(++Tempture_Read_Counter>39) + { + Tempture_Read_Counter=0; + + if((Real_Tempture>Set_High_Tempture)||(Real_Tempture>2)+Real_Tempture)>>1; + ADC_DATA=0; +//[Set_High_Tempture : Set_Low_Tempture],exp:[15C:35C] + + if((Real_Tempture>Set_High_Tempture)||(Real_TemptureSet_High_Tempture) + TemptureAlam_NormalLowHigh='H'; + else if(Real_TemptureSet_High_Tempture)||(Real_Tempture>4; + if(flag_TimeSetup_Jump) + lcd_high4|=0x01; + ht_writedata(7,lcd_high4,4); + break; + + // ڼ ļֵ=4 + case 4: temp=Lcd_Table0123456789[Real_Tempture/100]; + lcd_high4=(temp&0xf0)>>4; + if(flag_TimeSetup_Jump) + lcd_high4|=0x01; + ht_writedata(16,lcd_high4,4); + + break; + + // ʱáļֵ=5 + case 5: temp=Lcd_Table0123456789[Disp_Minute%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_high4|=0x01; + if(flag_TimeSetup_Jump) + lcd_high4&=0xfe; + ht_writedata(19,lcd_low4,4); + break; + + // (((WIFI))) ļֵ=6 + case 6: lcd_low4=0x00; + if(flag_TimeSetup_Jump) + lcd_low4=0x0f; + ht_writedata(26,lcd_low4,4); + break; + default:break; + } +} + +//**************ڰֵз**********************// +void Key_Scanning_OK(void) +{ + unsigned char unit,decade,key_use,key_unlock; + + key_use=Read_Key_Num(); // ֵ + + if(Key_Back==key_use&&Key_Back!=0xff) // Key_Back=һμֵ + { + if(++Key_Shake>=25) // ȥ25 + { + Key_Shake=0; + UnLockScreen_TimeoutCounter=0; + LockScreen_TimeoutCounter=0; + + if(flag_ScreenLock_Status==1) // ж״̬ + { + do + { + flag_have_key=1; + key_unlock=Read_Key_Num(); + Lcd_Disp_KeyDynamic(); + //Delay_ms(100); + Lcd_Display(); + }while(flag_ScreenLock_Status==1&&key_unlock!=0xff); + if(flag_ScreenLock_Status==0) + { + Lcd_Display(); + //if(flag_Buzzer==0){ht_writecmd(Command, toneoff);flag_Buzzer=1;} + } + if(key_unlock==0xff) // ֹ;ɿ + { + flag_ScreenLock_Status=1; + flag_have_key=0; + } + ht_writecmd(Command, toneon); + while(Read_Key_Num()!=0xff); // ȴɿ + ht_writecmd(Command, toneoff); + } + else + //if(flag_ScreenLock_Status==0) // ֱӰ + { + key_use=Read_Key_Num(); + flag_have_key=1; + //if(flag_Buzzer==0){ht_writecmd(Command, toneoff);flag_Buzzer=1;} + + switch(key_use) + { + case Lamp1_Key1: + if(flag_auto_hand==0) + {flag_lamp1_onoff=(~flag_lamp1_onoff)&0x01;} + break; + + case Lamp2_Key2: + if(flag_auto_hand==0) + {flag_lamp2_onoff=(~flag_lamp2_onoff)&0x01;} + break; + + case Pump_Key3: + if(flag_auto_hand==0) + {flag_Pump_onoff=(~flag_Pump_onoff)&0x01;} + break; + + case Adjust_Key4: +/* +ClockTimeSetup_Stepper ʱãlamp1lamp2UV-C +1.lamp11ʱΣ1 ʱ0- +2. 1 ʱ0- +3. 2 ʱ1- +4. 2 ʱ1- +5.lamp22ʱΣ1 ʱ2- +6. 1 ʱ2- +7. 2 ʱ3- +8. 2 ʱ3- +9.UV-C3ʱΣ 1 ʱ4- +10. 1 ʱ4- +11. 2 ʱ5- +12. 2 ʱ5- + ʱ6~ʱ9 +*/ + if(flag_LampTimeSetting) // ڡƵĶʱ״̬... + { + switch(LampTimeSetup_Stepper) // 1212λõ + { + case 1: + if(Set_Open_Minute[0]!=0) + { + Set_Open_Minute[0]=0; + if(++Set_Open_Hour[0]>=24) + {Set_Open_Hour[0]=0;} + } + else + {Set_Open_Minute[0]=30;} + break; + + case 2: + if(Set_Close_Minute[0]!=0) + { + Set_Close_Minute[0]=0; + if(++Set_Close_Hour[0]>=24) + {Set_Close_Hour[0]=0;} + } + else + {Set_Close_Minute[0]=30;} + break; + + case 3: + if(Set_Open_Minute[1]!=0) + { + Set_Open_Minute[1]=0; + if(++Set_Open_Hour[1]>=24) + {Set_Open_Hour[1]=0;} + } + else + {Set_Open_Minute[1]=30;} + break; + + case 4: + if(Set_Close_Minute[1]!=0) + { + Set_Close_Minute[1]=0; + if(++Set_Close_Hour[1]>=24) + {Set_Close_Hour[1]=0;} + } + else + {Set_Close_Minute[1]=30;} + break; + + case 5: + if(Set_Open_Minute[2]!=0) + { + Set_Open_Minute[2]=0; + if(++Set_Open_Hour[2]>=24) + {Set_Open_Hour[2]=0;} + } + else + {Set_Open_Minute[2]=30;} + break; + + case 6: + if(Set_Close_Minute[2]!=0) + { + Set_Close_Minute[2]=0; + if(++Set_Close_Hour[2]>=24) + {Set_Close_Hour[2]=0;} + } + else + {Set_Close_Minute[2]=30;} + break; + + case 7: + if(Set_Open_Minute[3]!=0) + { + Set_Open_Minute[3]=0; + if(++Set_Open_Hour[3]>=24) + {Set_Open_Hour[3]=0;} + } + else + {Set_Open_Minute[3]=30;} + break; + + case 8: + if(Set_Close_Minute[3]!=0) + { + Set_Close_Minute[3]=0; + if(++Set_Close_Hour[3]>=24) + {Set_Close_Hour[3]=0;} + } + else + {Set_Close_Minute[3]=30;} + break; + + case 9: + if(Set_Open_Minute[4]!=0) + { + Set_Open_Minute[4]=0; + if(++Set_Open_Hour[4]>=24) + {Set_Open_Hour[4]=0;} + } + else + {Set_Open_Minute[4]=30;} + break; + + case 10: + if(Set_Close_Minute[4]!=0) + { + Set_Close_Minute[4]=0; + if(++Set_Close_Hour[4]>=24) + {Set_Close_Hour[4]=0;} + } + else + {Set_Close_Minute[4]=30;} + break; + + case 11: + if(Set_Open_Minute[5]!=0) + { + Set_Open_Minute[5]=0; + if(++Set_Open_Hour[5]>=24) + {Set_Open_Hour[5]=0;} + } + else + {Set_Open_Minute[5]=30;} + break; + + case 12: + if(Set_Close_Minute[5]!=0) + { + Set_Close_Minute[5]=0; + if(++Set_Close_Hour[5]>=24) + {Set_Close_Hour[5]=0;} + } + else + {Set_Close_Minute[5]=30;} + break; + + default: + LampTimeSetup_Stepper=0; + flag_LampTimeSetting=0; + break; + } + } +/* +LampTimeSetup_Stepper ʱãǰʱã +1. ʮλ +2. λ +3. ʮλ +4. ¸λ +5. ʮλ +6. ոλ +7. ʱʮλ +8. ʱλ +9. ʮλ +10.ָλ +*/ + else if(flag_ClockTimeSetting) // ڡʱӵʱ״̬... + { + switch(ClockTimeSetup_Stepper) // 1010λõ + { + case 1: + unit=Disp_Hour%10; + decade=Disp_Hour/10; + decade++; + decade%=3; + Disp_Hour=decade*10+unit; + break; + + case 2: + unit=Disp_Hour%10; + decade=Disp_Hour/10; + unit++; + if(decade==2) + unit%=4; + else + unit%=10; + Disp_Hour=decade*10+unit; + break; + + case 3: + unit=Disp_Minute%10; + decade=Disp_Minute/10; + decade++; + decade%=6; + Disp_Minute=decade*10+unit; + break; + + case 4: + unit=Disp_Minute%10; + decade=Disp_Minute/10; + unit++; + unit%=10; + Disp_Minute=decade*10+unit; + break; + + case 5: + unit=Disp_Year%10; + decade=Disp_Year/10; + decade++; + decade%=10; + Disp_Year=decade*10+unit; + break; + + case 6: + unit=Disp_Year%10; + decade=Disp_Year/10; + unit++; + unit%=10; + Disp_Year=decade*10+unit; + break; + + case 7: + unit=Disp_Month%10; + decade=Disp_Month/10; + decade++; + decade%=2; + Disp_Month=decade*10+unit; + break; + + case 8: + unit=Disp_Month%10; + decade=Disp_Month/10; + unit++; + if(decade==1) unit%=3; + else unit%=10; + if(decade==0&&unit==0) unit=1; + Disp_Month=decade*10+unit; + break; + + case 9: + unit=Disp_Day%10; + decade=Disp_Day/10; + decade++; + decade%=4; + if(decade==0&&unit==0) unit=1; + Disp_Day=decade*10+unit; + break; + + case 10: + unit=Disp_Day%10; + decade=Disp_Day/10; + unit++; + if(decade==3) unit%=2; + else unit%=10; + if(decade==0&&unit==0) unit=1; + Disp_Day=decade*10+unit; + break; + + default: + ClockTimeSetup_Stepper=0; + flag_ClockTimeSetting=0; + break; + } + } + else // ֶԶл + { + flag_auto_hand_change=1; + do + { + flag_have_key=1; + key_use=Read_Key_Num(); + Lcd_Disp_KeyDynamic(); + //Delay_ms(100); + Lcd_Display(); + }while(flag_auto_hand_change==1&&key_use!=0xff); + + if(flag_auto_hand_change==0) + { + flag_auto_hand=(~flag_auto_hand)&0x01; + Lcd_Display(); + } + + if(key_use==0xff) // ֹ;ɿ + { + flag_auto_hand_change=0; + flag_have_key=0; + } + //ht_writecmd(Command, toneon); + //while(Read_Key_Num()!=0xff); // ȴɿ + //ht_writecmd(Command, toneoff); + } + break; + + case Lamp_ShiDuan_Key5: + flag_LampTimeSetting=1; // СƵĶʱ + flag_ClockTimeSetting=0; + LampTimeSetup_Stepper++; + + if(LampTimeSetup_Stepper%2==1) + {flag_Open_Time=1;flag_Close_Time=0;} + else + {flag_Open_Time=0;flag_Close_Time=1;} + + if(LampTimeSetup_Stepper>12) + { + LampTimeSetup_Stepper=0; + flag_LampTimeSetting=0; + flag_LampTime_Change=1; + //MCUeeprom_write(); + //MCUeeprom_read(); + } + break; + + case Clock_Setup_Key6: + flag_ClockTimeSetting=1; // Сʱӵʱ + flag_LampTimeSetting=0; + ClockTimeSetup_Stepper++; + if(ClockTimeSetup_Stepper>10) + { + Write_Time(); + //Disp_Year=Disp_Month=Disp_Day=Disp_Hour=Disp_Minute=Disp_Week=0; + //Read_Time(); + ClockTimeSetup_Stepper=0; + flag_ClockTimeSetting=0; + flag_ClockTime_Change=1; + } + break; + + case WIFI_Key6: + flag_auto_hand_change=1; + do + { + flag_have_key=1; + key_use=Read_Key_Num(); + Lcd_Disp_KeyDynamic(); + //Delay_ms(100); + Lcd_Display(); + }while(flag_auto_hand_change==1&&key_use!=0xff); + + if(flag_auto_hand_change==0) + { + System_Init(); + ESP8266_RESTORE(); + flag_RESTORE=1; + } + + if(key_use==0xff) // ֹ;ɿ + { + flag_auto_hand_change=0; + flag_have_key=0; + } + break; + + default:break; + } + //if((flag_LampTimeSetting&&key_use==Adjust_Key4)||(flag_ClockTimeSetting&&key_use==Adjust_Key4)||key_use<4||key_use==5|key_use==6) + { + ht_writecmd(Command, toneon); + while(Read_Key_Num()!=0xff); // ȴɿ + ht_writecmd(Command, toneoff); + } + MCUeeprom_write(); + } + } + } + else // ȥ or ûа£ + { + Key_Shake=0; + Key_Back=key_use; + flag_have_key=0; + } +} + +/*********************Զֶ*************************/ +void Autohand_Control(void) +{ + unsigned char i; + unsigned int Timer_open[10],Timer_close[10],Now_time; +/* +@near unsigned char Timers_Enable[11]; 1,2,3,4,5,6,7,8,9,10 +@near unsigned char Set_Open_Hour[10]; 0,1,2,3,4,5,6,7,8,9 +@near unsigned char Set_Open_Minute[10]; 0,1,2,3,4,5,6,7,8,9 +@near unsigned char Set_Close_Hour[10]; 0,1,2,3,4,5,6,7,8,9 +@near unsigned char Set_Close_Minute[10]; 0,1,2,3,4,5,6,7,8,9 +*/ + if(flag_auto_hand==1) //0=ֶ1=Զ + { + for(i=0;i<4;i++) + { + Timer_open[i] =Set_Open_Hour[i]*60+Set_Open_Minute[i]; + Timer_close[i]=Set_Close_Hour[i]*60+Set_Close_Minute[i]; + } + Now_time=Disp_Hour*60+Disp_Minute; + + // Timer1 = 1ʱΣLamp11 1 + if(Timers_Enable[1]&&(Now_time>=Timer_open[0])&&(Now_time=Timer_open[1])&&(Now_time=Timer_open[2])&&(Now_time=Timer_open[3])&&(Now_time=Timer_open[4])&&(Now_time=Timer_open[5])&&(Now_time>8; + Send_Buffer[23]=CRC16; + Send_Num=24; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL&&flag_RS232_TimeoutStart);// ѭ SEND OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + System_Status=161; + // ӡ "SEND OK" + flag_SEND_FAIL=0; + } + else + { + System_Status=160; + // ӡ "SEND FAIL" + flag_SEND_FAIL=1; + } + //Lcd_Disp_Tempture(System_Status); + // ȴظʱ; + + } + else if(flag_TCP_Logined) + { + if(flag_Tempture_Abnormal&&TemptureAlam_NormalLowHigh!='N')// ¶쳣º͵£ 22 + { + if(TemptureAlam_Close_Open_Setup==1) // ״̬ + { + if((Real_Tempture>(Set_High_Tempture+6))||(Real_Tempture<(Set_Low_Tempture-6))) + { + flag_Tempture_Abnormal=0; + make_AT_CIPSEND(22,0,255); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Function_Code=9; + Load_Header_15data(0,'S'); + + Send_Buffer[16]=Real_Tempture/0x100; + Send_Buffer[17]=Real_Tempture%0x100;//¶ + if('H'==TemptureAlam_NormalLowHigh) + { + Send_Buffer[15]=1; + Send_Buffer[18]=Set_High_Tempture/0x100; + Send_Buffer[19]=Set_High_Tempture%0x100;//¶ High + } + else if('L'==TemptureAlam_NormalLowHigh) + { + Send_Buffer[15]=0; + Send_Buffer[18]=Set_Low_Tempture/0x100; + Send_Buffer[19]=Set_Low_Tempture%0x100;//¶ Low + } + CRC16=GetRevCrc_16(Send_Buffer,20); + Send_Buffer[20]=CRC16>>8; + Send_Buffer[21]=CRC16; + Send_Num=22; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL);// ѭ SEND OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + System_Status=201; + // ӡ "SEND OK" + flag_SEND_FAIL=0; + } + else + { + System_Status=200; + // ӡ "SEND FAIL" + flag_SEND_FAIL=1; + } + //Lcd_Disp_Tempture(System_Status); + // ȴظ + } + } + } + + else if(flag_HeartBeat10s)//&&flag_NoLoginBack_Monitoring150s==0) // + { + flag_HeartBeat10s=0; + HeartBeat10s_TimeoutCounter=0; + make_AT_CIPSEND(57,0,'0'); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Function_Code=8; + Heart_and_State_Return('S'); + // ظ + } + } + +} + +/*********************γ֡*************************/ +// \r\n +IPD,0,xx:0Fdd... +// LOCMAC,"18:fe:34:db:0d:33" +// RMTMAC,"5c:cf:7f:07:65:21" +//const unsigned char maohao[]={":"}; +const unsigned char test_IPD[]={'\r','\n','+','I','P','D',',','0',',','1','9', + '1','9','2','.','1','9','2','.','1','9','2','.','1','9','2',',','9','9','9','9',':', + 0, // ͷ0 + 7, // + 0x18,0xfe,0x34,0xdb,0x0d,0x33, // LOC_MAC + 0x5c,0xcf,0x7f,0x07,0x65,0x21, // RMT_MAC + 19, // ݳ + 11,22,33,44,55,66,77,88, // data + 'C','R' // CRC16 + }; +void ReceiveData_Process(void) // +IPD,0,32:http://www.cmsoft.cn QQ:10865600 +{ + unsigned char i,j,temp,CRC16_L,CRC16_H,CRC16_Check_OK; + unsigned int CRC16 = 0xffff; + /* + flag_Receive_NewFrame_Buffer0=1; + for(i=0;i<50;i++) + Receive_Buffer0[i]=test_IPD[i]; + + temp=strloc(Receive_Buffer0,plusIPD); + temp=0; + temp=strloc(Receive_Buffer0,"+IPD,"); + temp=0; + temp=strloc(Receive_Buffer0,plusIPD); + temp=0; + */ + if(flag_Receive_NewFrame_Buffer0) + { + flag_Receive_NewFrame_Buffer0=0; + + HeartBeat10s_TimeoutCounter=0; + HeartBeat_0_TimeoutCounter=0; + HeartBeat_1_TimeoutCounter=0; + + //for(i=0;i, : + // +IPD,,[,,]: + // 0 1 23456789abcdef + //磺\r\n+IPD,0,32:http://www.cmsoft.cn QQ:10865600 + + if(Receive_Buffer0[temp+5]=='0') // id + {Link_id='0';} + else // if(Receive_Buffer0[temp+7]=='1') + {Link_id='1';} // udp_adder=Receive_Buffer0[temp+7]; + + temp=temp+7; // =9 + + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9'))//9 maxlen=2048 + { + Receive_NewFrame_Length=Receive_Buffer0[temp]-'0'; + temp++; + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9'))//10 + { + Receive_NewFrame_Length=(Receive_Buffer0[temp-1]-'0')*10+(Receive_Buffer0[temp]-'0'); + temp++; + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9')) //*11 + { + Receive_NewFrame_Length=(Receive_Buffer0[temp-2]-'0')*100+(Receive_Buffer0[temp-1]-'0')*10+(Receive_Buffer0[temp]-'0'); + temp++; + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9')) //*12 + { + Receive_NewFrame_Length=(Receive_Buffer0[temp-3]-'0')*1000+(Receive_Buffer0[temp-2]-'0')*100\ + +(Receive_Buffer0[temp-1]-'0')*10+(Receive_Buffer0[temp]-'0'); + } + } + } + } + // ȡԶIPͶԶ˶˿ + if(Receive_Buffer0[temp]==','); // 11="," + temp++; + //if(Receive_Buffer0[temp]=='"'); // 12=""" + //temp++; + + + + + + + + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]=='.') + break; + } + if(i==1) + RMT_IP_buf[0]=(Receive_Buffer0[temp]-'0'); + else if(i==2) + RMT_IP_buf[0]=(Receive_Buffer0[temp]-'0')*10 +(Receive_Buffer0[temp+1]-'0'); + else if(i==3) + RMT_IP_buf[0]=(Receive_Buffer0[temp]-'0')*100+(Receive_Buffer0[temp+1]-'0')*10+(Receive_Buffer0[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]=='.') + break; + } + if(i==1) + RMT_IP_buf[1]=(Receive_Buffer0[temp]-'0'); + else if(i==2) + RMT_IP_buf[1]=(Receive_Buffer0[temp]-'0')*10+(Receive_Buffer0[temp+1]-'0'); + else if(i==3) + RMT_IP_buf[1]=(Receive_Buffer0[temp]-'0')*100+(Receive_Buffer0[temp+1]-'0')*10+(Receive_Buffer0[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]=='.') + break; + } + if(i==1) + RMT_IP_buf[2]=(Receive_Buffer0[temp+i-1]-'0'); + else if(i==2) + RMT_IP_buf[2]=(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==3) + RMT_IP_buf[2]=(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]==',') + break; + } + if(i==1) + RMT_IP_buf[3]=(Receive_Buffer0[temp+i-1]-'0'); + else if(i==2) + RMT_IP_buf[3]=(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==3) + RMT_IP_buf[3]=(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]==':') + break; + } + if(i==1) + RMT_IP_PORT=(Receive_Buffer0[temp+i-1]-'0'); + else if(i==2) + RMT_IP_PORT=(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==3) + RMT_IP_PORT=(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==4) + RMT_IP_PORT=(Receive_Buffer0[temp+i-4]-'0')*1000+(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + temp=temp+i+1; + + + + + + // + temp=strloc(Receive_Buffer0,":"); + if(Receive_Buffer0[temp]==':'); // 11=":" + temp++; + if(Receive_Buffer0[temp]==1); // 12,Է=1ҷظ=0 + Function_Code=Receive_Buffer0[temp+1]; // 13, + + //1.ظ豸¼ָ(25ֽ) Function_Code==1 ͵ Ƿ + if((25==Receive_NewFrame_Length)&&(1==Function_Code)) + { + flag_HeartBeat10s=1; // һ + + flag_TCP_Logined=1; + //flag_NoLoginBack_Monitoring150s=0; + + if(Check_Header_15data(temp)) + { + temp=temp+15; + CRC16=Receive_Buffer0[temp++]*0x100; // 0x07 + CRC16+=Receive_Buffer0[temp++]; // 0xdf + Disp_Year=CRC16%100; // 0x07df=2015 + Disp_Month=Receive_Buffer0[temp++]; + Disp_Day=Receive_Buffer0[temp++]; + Disp_Hour=Receive_Buffer0[temp++]; + Disp_Minute=Receive_Buffer0[temp++]; + Disp_Second=Receive_Buffer0[temp++]; + Disp_Week=Receive_Buffer0[temp]; + Write_Time(); + CRC16_L=Receive_Buffer0[temp+1]; + CRC16_H=Receive_Buffer0[temp+2]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+1); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //2.лģʽָ(18ֽ)Function_Code==2 + else if((18==Receive_NewFrame_Length)&&(2==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + if(Receive_Buffer0[temp]==0x0) + flag_auto_hand=0; + else + flag_auto_hand=1; + + CRC16_L=Receive_Buffer0[temp+1]; + CRC16_H=Receive_Buffer0[temp+2]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+1); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //3.ֶģʽ¿ָ(19ֽ)Function_Code==3 + else if((19==Receive_NewFrame_Length)&&(3==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + if(flag_auto_hand==0) + { + if(Receive_Buffer0[temp]==1)//Ʊ1=lamp1 + { + if(Receive_Buffer0[temp+1]==0)flag_lamp1_onoff=0; + else if(Receive_Buffer0[temp+1]==1)flag_lamp1_onoff=1; + } + else if(Receive_Buffer0[temp]==2)//Ʊ2=lamp2 + { + if(Receive_Buffer0[temp+1]==0)flag_Pump_onoff=0;//flag_lamp2_onoff=0; + else if(Receive_Buffer0[temp+1]==1)flag_Pump_onoff=1;//flag_lamp2_onoff=1; + } + /* + else if(Receive_Buffer0[temp]==3)//Ʊ3=Pump_pump + { + if(Receive_Buffer0[temp+1]==0)flag_Pump_onoff=0; + else if(Receive_Buffer0[temp+1]==1)flag_Pump_onoff=1; + } + else if(Receive_Buffer0[temp]==4)//Ʊ4=.. + { + if(Receive_Buffer0[temp+1]==0)flag_lamp4_onoff=0; + else flag_lamp4_onoff=1; + } + else if(Receive_Buffer0[temp]==5)//Ʊ5=.. + { + if(Receive_Buffer0[temp+1]==0)flag_lamp5_onoff=0; + else flag_lamp5_onoff=1; + } + */ + CRC16_L=Receive_Buffer0[temp+2]; + CRC16_H=Receive_Buffer0[temp+3]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+2); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + } + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //4.öʱʱָ(22ֽ)Function_Code==4 + else if((22==Receive_NewFrame_Length)&&(4==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + //Timers_Enable[Receive_Buffer0[temp]]=1; // ֻ趨ʱʱʱ + i=Receive_Buffer0[temp]-1; // 1~10 + Set_Open_Hour[i]=Receive_Buffer0[temp+1]; + Set_Open_Minute[i]=Receive_Buffer0[temp+2]; + Set_Close_Hour[i]=Receive_Buffer0[temp+3]; + Set_Close_Minute[i]=Receive_Buffer0[temp+4]; + + CRC16_L=Receive_Buffer0[temp+5]; + CRC16_H=Receive_Buffer0[temp+6]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+5); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //5.ñ¶ָ(22ֽ)Function_Code==5 + else if((22==Receive_NewFrame_Length)&&(5==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + if(Receive_Buffer0[temp]<2) + TemptureAlam_Close_Open_Setup=Receive_Buffer0[temp]; + // TemptureAlam_Close_Open_Setup=0,ر + // TemptureAlam_Close_Open_Setup=1, + // TemptureAlam_Close_Open_Setup=2,ֻԤ¶ȣǷ񿪹ر + else if(2==Receive_Buffer0[temp]) + { + Set_Low_Tempture=Receive_Buffer0[temp+1]*0x100+Receive_Buffer0[temp+2]; + Set_High_Tempture=Receive_Buffer0[temp+3]*0x100+Receive_Buffer0[temp+4]; + } + + CRC16_L=Receive_Buffer0[temp+5]; + CRC16_H=Receive_Buffer0[temp+6]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+5); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //6.ѯ豸״ָ̬(17ֽ)Function_Code==6 + else if((17==Receive_NewFrame_Length)&&(6==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + CRC16_L=Receive_Buffer0[temp]; + CRC16_H=Receive_Buffer0[temp+1]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + } + + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + //7.豸ָ(37ֽ)Function_Code==7 zhang + else if((37==Receive_NewFrame_Length)&&(7==Function_Code)) + { + //\r\n +IPD,0,xx:0Fdd... ·ʱ(+CIPMUX=1)+IPD,,: + // 0 1 23456789abcdef + //磺\r\n+IPD,0,32:http://www.cmsoft.cn QQ:10865600 + + if(Check_Header_15data(temp)) + { + temp=temp+15; + for(i=0;i<20;i++) + URL_ADDR[i]=Receive_Buffer0[temp+i]; + + CRC16_L=Receive_Buffer0[temp+i]; + CRC16_H=Receive_Buffer0[temp+i+1]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+i); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + Have_New_URL=0xea; + make_AT_CIPSEND(20,0,255); + UDP1_Return(7); + if(flag_TCP0_Connected) + ESP8266_CIPCLOSE('0'); + ESP8266_CIPSTART_TCP('0'); + flag_TCP_Logined=0; + + // ֤Ƿȷ(Ƿ'id=2') + /* + if(Link_id=='1') + ESP8266_CIPSTART_NewTCP_Check('2'); + else if(Link_id=='2') + ESP8266_CIPSTART_NewTCP_Check('1'); + + // ǻظUDP + make_AT_CIPSEND(20,0,255); // AT+CIPSEND=1,20,255.255.255.255,9954 ȫȺ + if(Have_New_URL==0xea) + UDP1_Return(7); + else + UDP1_Return(0xff); + */ + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //8.Function_Code==8, 践 + //9.Function_Code==9, 践 + //10.ضʱָ(19ֽ)Function_Code==10 + else if((19==Receive_NewFrame_Length)&&(10==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + i=Receive_Buffer0[temp]; + Timers_Enable[i]=Receive_Buffer0[temp+1]; + + CRC16_L=Receive_Buffer0[temp+2]; + CRC16_H=Receive_Buffer0[temp+3]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+2); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + + // лظ,Function_Code=,2,3,4,5,6,7,,,10 + if(CRC16_Check_OK&&Function_Code!=1&&Function_Code!=7&&Function_Code!=8&&Function_Code!=9) + { + make_AT_CIPSEND(57,0,255); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Heart_and_State_Return('R'); + + } + else + { + //Function_Code=0xff; // Ҫط + } + MCUeeprom_write(); // xinݵMCUeeprom60bytes; + } + + // һȷ£һ"SmartLink"ʾ1~7, ڶϵԶʾ56,5~63 + // 1. smartconfig type:ESPTOUCH + // 2. Smart get wifi info + // 3. ssid:TP-LINK_0202 + // 4. password:1234567890 + // 5. WIFI CONNECTED + // 6. WIFI GOT IP + // 7. smartconfig connected wifi + +// £ +//smartconfig type:ESPTOUCH +//Smart get wifi info +//ssid:TP-LINK_0202 +//password:15800 +//WIFI DISCONNECT + else if((pStr0=strstr(Receive_Buffer0,ready))!=NULL)// "ready" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_WiFi_ready=1; + ESP8266_CWMODE('1'); + //ESP8266_CIPMODE('0'); // Ĭ'0' + ESP8266_CIPMUX('1'); + ESP8266_CIPDINFO('1'); + + NoWiFi5s_TimeoutCounter=0; + flag_ready_Monitoring5s=1; // 5S ago flag_ready5s_STARTSMART=1; + + System_Status=31; + //Lcd_Disp_Tempture(System_Status); + } + + else if((pStr0=strstr(Receive_Buffer0,WIFI_DISCONNECT))!=NULL)// "WIFI DISCONNECT" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_WiFi_Disconnect=1; + flag_WiFi_Connected=0; + flag_TCP0_Connected=0; + + flag_WiFi_Connect_Enable=1; + NoWiFi5s_TimeoutCounter=0; + flag_ready_Monitoring5s=0; // 5S ago flag_ready5s_STARTSMART=1; + + System_Status=220; + //Lcd_Disp_Tempture(System_Status); + //ESP8266_RST(); + } + else if((pStr0=strstr(Receive_Buffer0,WIFI_CONNECTED))!=NULL)// "WIFI CONNECTED" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + flag_ready_Monitoring5s=0; + flag_ready5s_STARTSMART=0; + flag_WiFi_Connect_Enable=1; + flag_WiFi_Disconnect=0; + } + else if((pStr0=strstr(Receive_Buffer0,WIFI_GOT_IP))!=NULL)// "WIFI GOT IP" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + + //flag_DisConnect_Monitoring180s=0; + flag_WiFi_Disconnect=0; + flag_WiFi_Connected=1; + flag_WiFi_Smarting=0; + + ESP8266_CIFSR(); + //ESP8266_CIPDINFO('1'); + InBuffer_ID=0; + + ESP8266_CIPSTART_UDP('1'); // UDP0 + + ESP8266_CIPSTART_TCP('0'); // TCP1 + System_Status=151; + //Lcd_Disp_Tempture(System_Status); + } + // "0,CONNECT",TCP0ӳɹ + else if(((pStr0=strstr(Receive_Buffer0,TCP_0_CONNECT))!=NULL)) + + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_TCP0_Connected=1; + flag_LoginTCP_SendOnce=1; + //flag_NoLoginBack_Monitoring150s=0; + + BEEP_ms(200); + System_Status=161; + flag_Restart_Connect_TCP=0; + //Lcd_Disp_Tempture(System_Status); + } + // "1,CONNECT",UDPӳɹ + else if((pStr0=strstr(Receive_Buffer0,UDP_1_CONNECT))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_UDP1_Connected=1; + } + + else if((pStr0=strstr(Receive_Buffer0,SEND_OK))!=NULL)// "SEND OK" CIPSENDݳɹ + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //flag_NoLoginBack_Monitoring150s=0; + flag_TCP0_Connected=1; + } + + else if(((pStr0=strstr(Receive_Buffer0,TCP0_CLOSED))!=NULL)||((pStr0=strstr(Receive_Buffer0,DNS_Fail))!=NULL))// "CLOSED",TCPʧDNS Fail + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_TCP0_Connected=0; + //flag_TCP0_Connecting=1; + flag_SEND_FAIL=0; + flag_TCP_Logined=0; + BEEP_ms(200); + //Delay_ms(10000); + //ESP8266_RST(); + //ESP8266_CIPCLOSE(Link_id); + + //ESP8266_CIPSTART_TCP('0');// TCP0 + + //flag_NoLoginBack_Monitoring150s=1; + + System_Status=160; + //Lcd_Disp_Tempture(System_Status); + flag_Restart_Connect_TCP=1; + + } + + + else if((pStr0=strstr(Receive_Buffer0,ERROR))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + //flag_Restart_Connect_TCP=1; + } + else if((pStr0=strstr(Receive_Buffer0,link_is_not_valid))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + } + else if((pStr0=strstr(Receive_Buffer0,FAIL))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + } + else if(flag_SEND_FAIL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + } + + /* + + else if((pStr0=strstr(Receive_Buffer0,Smart_get_wifi_info))!=NULL)// "Smart_get_wifi_info" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,smarting_connected_wifi))!=NULL)// "smartconfig connected wifi" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,SEND_OK))!=NULL)// "SEND OK" CIPSENDݳɹ + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,send_logo))!=NULL)// "> " + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,ALREADY_CONNECT))!=NULL)// "ALREADY CONNECT",TCPѾڣ + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,FAIL))!=NULL)// "FAIL" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,ERROR))!=NULL)// "ERROR" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,OK))!=NULL)// "OK" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + */ + } +} + + +/* +촽ݣС࣬ +Ƴݺתࡣ + +Ŀɽˮԣҡ +ǻĻһȪ + +Ʒջɲüһߡ +̬ڵׯϡ + +Բ¶ܽ˸档 +ֵֿͣС¾ɼ + +ǡôܲȫ +ؿ̾ +ңɼԴѡ +ֻԶۣ档 + +Ω׳ɽ +񳯰ѷ죬ս˿ƫ +ٱױݣǧ㽿ޡ +ͤͤˣӯӯﲨת +ǷǣƫҪһ档 +öǣDZ봺 +һʴǣ˵Դ +*/ + +/**********************************************/ +void main(void) +{ + unsigned char i,j; + int USE; + +//**********************ʼUART2********************** + UART2_CR1 = 0x00; + UART2_CR2 = 0x00; + UART2_CR3 = 0x00; + UART2_BRR2 = 0x00; + UART2_BRR1 = 0x06; +// UART_DIV[15:0]=fMASTER/; +// UART_BRR1=UART_DIV[11:4] +// UART_BRR1=UART_DIV[15:12]+UART_DIV[3:0] + +// fMASTER=11059200(11.0592MHz) +// ڲ115200ʱƵϵ=11059200/115200=96 +// ӦʮΪ0060BBR1=0x06,BBR2=00 + +// ڲ 9600ʱƵϵ=11059200/9600=1152 +// ӦʮΪ0480BBR1=0x48,BBR2=00 + +// UART2_SR = 0x0; + UART2_CR2 = 0x2C; //00101100 + //λ7:TIEN жʹܣ + //λ6:TCIEN жʹܣ + //λ5:RIEN *жʹܣ + //λ4:ILIEN IDLEжʹܣ + //λ3:TEN *ʹܣ + //λ2:REN *ʹܣ + //λ1:RWU ջѣ + //λ0:SBK ͶϿ֡ +//******************************************************* + +//*********************ʼMCU˿********************* +//ѡģʽʹ +//ѡģʽʽͿ© +//λ֮еŶģʽ +//ûʹõI/Oűӵһ̶ĵƽֵ +//pb pb0 AD_HEAT +// pb1© PB1_LED +// pb2© PB2_LAMP +// pb3© PB3_PUMP +// pb4 * +// pb5 * + +//pc pc1© DS1302_DATA +// pc2© DS1302_RST +// pc3 * +// pc4 QT1696_B0 +// pc5 QT1696_B1 +// pc6 QT1696_B2 +// pc7 QT1696_B3 + +//pd pd0 LCD_IRQ +// pd1 SWIM=0 +// pd2© LCD_Data +// pd3© LCD_WR +// pd4© LCD_RD +// pd5 TX =1 +// pd6 RX =0 +// pd7© LCD_CS + +//pe pe5© DS1302_CLK +//pf pf4 * + + PB_DDR=0x0e;PB_CR1=0x3e;PB_CR2=0x00;PB_ODR=0x0e; + PC_DDR=0x06;PC_CR1=0xf0;PC_CR2=0x00;PC_ODR=0x06; + + PD_DDR=0xbc;PD_CR1=0x44;PD_CR2|=0x00;PD_ODR|=0x4; + + PE_DDR=0x20;PE_CR1=0x00;PE_CR2=0x00;PE_ODR=0x00; + +//******************************************************* +//*********************ʼMCU˿********************* +//pb pb0 ad +// pb1 *PB1-ESP_EN +// pb4 b0 +// pb5 b1 +//pc pc1© DS1302_DATA_IN +// pc2© DS1302_RST +// pc3© LCD_LED +// pc4© heating_PC4 +// pc5© Pump_PB3 +// pc6© Lamp1_PB2 +// pc7© lamp2_PC5 +//pd pd0© *PD6-RSTESP +// pd2 b3 +// pd3© lcd_data +// pd4© lcd_wr +// pd5 TX +// pd6 RX +// pd7© lcd_cs +//pe pe5© DS1302_CLK +//pf pf4 b2 +// PB_DDR|=0x00;PB_CR1|=0x30;PB_CR2|=0x00;PB_ODR|=0x30; +// PC_DDR|=0xfe;PC_CR1|=0x00;PC_CR2|=0x00;PC_ODR=0x08; +// PD_DDR|=0xb8;PD_CR1|=0x44;PD_CR2|=0x00;PD_ODR|=0x4; +// PE_DDR|=0x20;PE_CR1|=0x00;PE_CR2|=0x00;PE_ODR=0x00; +// PF_DDR|=0x00;PF_CR1|=0x10;PF_CR2|=0x00;PF_ODR|=0x10; +//******************************************************* + +//************************ʱӿ*********************** +// 8.9.1 ڲʱӼĴ(CLK_ICKR) +// CLK_ICKR=0x01; +// 8.9.2 ⲿʱӼĴ(CLK_ECKR) +// CLK_ECKR=0x00; +// 8.9.3 ʱ״̬Ĵ(CLK_CMSR) +// CLK_CMSR=0xE1; // CLK_CMSR=CKM[7:0]ʱ״̬λ +//0xE1HSIΪʱԴ(λֵ) +//0xD2LSIΪʱԴ(LSI_ENѡλΪ1ʱ) +//0xB4HSEΪʱԴ + +// 8.9.4 ʱлĴ(CLK_SWR) +// 8.9.5 лƼĴ(CLK_SWCR) + CLK_SWCR|=0x02; // ڶλSWENд1лʱĴCLK_SWRָʱԴ + CLK_SWR = 0xb4; // 0xB4HSEΪʱԴ + // 0xE1HSIΪʱԴ(λֵ)16MHz + +// 8.9.6 ʱӷƵĴ(CLK_CKDIVR[4:0]),λֵ0x18 + // λ 4:3(HSIDIV[1:0]ڲʱԤƵ) 11fHSI = fHSI RC/8 + // λ 2:0(CPUDIV[2:0]CPUʱԤƵ) 000fCPU = fMASTER +// CLK_CKDIVR = 0x18; // ʱ = 16MHZ / 8 + // fCPUʱ = fMASTERʱ = 2MHZ + +// 8.9.7 ʱſؼĴ(CLK_PCKENR1) +// 8.9.8 ʱſؼĴ(CLK_PCKENR2) +// 8.9.9 ʱӰȫϵͳĴ(CLK_CSSR) +// 8.9.10 ʱĴ +// 8.9.11 CAN ⲿʱӿƼĴ(CLK_CANCCR) +// 8.9.12 HSI ʱĴ(CLK_HSITRIMR) +// 8.9.13 SWIM ʱӿƼĴ(CLK_SWIMCCR) +//******************************************************* + +//**********************ʼA/Dģ********************* +// ----------ʼA/Dģ; + ADC_CR2 = 0x00; // A/D + ADC_CR1 = 0x00; // ADCʱ=ʱ/2=1MHZ + // ADCתģʽ= + // ֹADCת + ADC_CSR = 0x00; // ѡͨ0 + ADC_TDRL = 0x1; + + ADC_CR1 = 0x01; // CR1Ĵλ1ʹADCת ת + Delay(100); // ʱһʱ䣬7uS֤ADCģϵ + ADC_CR1 = ADC_CR1 | 0x01; // ٴνCR1Ĵλ1 + // ʹADCת +//******************************************************* + +//********************ʼʱģ******************* + TIM4_IER = 0x00; // ֹж + TIM4_EGR = 0x01; // ¼ + TIM4_PSCR = 0x07; // ʱ=ʱ/128=2MHZ/128=64us΢ + TIM4_ARR =255;// 156; // 趨װʱļĴֵ255ֵ*64=16.320ms + TIM4_CNTR=255;//156; // 趨ijֵ //2MHZ/128/255/ + // ʱ=(ARR+1)*64=16320uS + TIM4_CR1 = 0x01; // b0 = 1, + // b1 = 0, + // ÿʱ + TIM4_IER = 0x01; // ж +//******************************************************* + + _asm("rim"); // _asm("sim"); // ǹж + // _asm("rim"); // ǿж + //ht_writecmd(Command, toneon); + + System_Init(); // ջ㣻 + ht1621_cmd_init(); // LCDʼ + + //Disp_Second=readds1302(0)&0x7f; + //writeds1302(0x0,7); // д + //writeds1302(Disp_Second,0); + //writeds1302(0xa5,8); + //writeds1302(0x80,7); // дWP + + //state0=readds1302(0x20); + //MCUeeprom_read(); + //Read_Time(); + //Delay_ms(200); + //ht_writecmd(Command, toneoff); + + while (0) // for test + { + + Delay_ms(1000); + //lamp2_PC5=~lamp2_PC5; + //Lamp1_PB2=~Lamp1_PB2; + //Pump_PB3=~Pump_PB3; + LCD_LED=~LCD_LED; + //ReceiveData_Process(); + } + //_asm("rim"); + + Disp_Year=0; + Disp_Month=0; + Disp_Day=0; + Disp_Hour=0; + Disp_Minute=0; + Disp_Week=0; + Real_Tempture=0; + + while(0) + { + Disp_Year++; + Disp_Month++; + Disp_Day++; + Disp_Hour++; + Disp_Minute++; + Disp_Week++; + Real_Tempture+=111; + + Write_Time(); + Delay_ms(1000); + Read_Time(); + Delay_ms(1000); + } + + while(0) + { + for(i=0;i<32;i++) + ht_writedata(i,0xff,4); + Delay_ms(1000); + for(i=0;i<32;i++) + ht_writedata(i,0x00,4); + Delay_ms(1000); + + Disp_Year++; + Disp_Month++; + Disp_Day++; + Disp_Hour++; + Disp_Minute++; + Disp_Week++; + Real_Tempture+=111; + + Lcd_Display(); + Delay_ms(1000); + } + + + while (0) // for test + { + //ht_writecmd(Command,lcdon); + Delay_ms(100); + //ht_writecmd(Command,lcdoff); + Delay_ms(100); + + for(i=0;i<32;i++) + ht_writedata(i,0xff,4); + Delay_ms(1000); + for(i=0;i<32;i++) + ht_writedata(i,0x00,4); + Delay_ms(1000); + + for(i=0;i<32;i++) + { + Delay(5000); + Delay(5000); + for(j=0;j<16;j++) + { + ht_writedata_zdh(31-i,j,4); + Delay(5000); + Delay(5000); + } + } + + } + + while(0) + { + _asm("sim"); + state0=0xaa; + Have_New_URL=0xea; + MCUeeprom_write(); + Delay(50000); + for(i=55;i<75;i++) + URL_ADDR[i-55]=0; + state0=0; + Have_New_URL=0; + MCUeeprom_read(); + Delay(50000); + + flag_lamp2_onoff=1; + flag_lamp1_onoff=0; + flag_Pump_onoff=1; + flag_auto_hand=1; + + + MCUeeprom_write(); + state0=0; + Delay(50000); + MCUeeprom_read(); + Delay(50000); + } + while (0) // for test + { + flag_ScreenLock_Status=0; + while (0) + { + + Key_Scanning_OK(); + Lcd_Display(); + Delay(50000); + //Delay(50000); + } + } + + while(0) // for test + { + //Read_STAIP_STAMAC(); + Delay(10); + ReceiveData_Process(); + Delay(10); + Check_Header_15data(0); + Delay(10); + } + + + //flag_lamp2_onoff=0; + + while(0) + { + Key_Scanning_OK(); // ɨ; + //_asm("sim"); + //Read_Tempture(); + //make_AT_CIPSEND(20,255,255); + //ESP8266_CIPSTART_UDP1_BK(1); + Delay_ms(1000); + Heart_and_State_Return('S'); + } + + //MCUeeprom_write_URL(); + //MCUeeprom_write(); + MCUeeprom_read(); + ESP8266_RST(); + Link_id='0'; + flag_ScreenLock_Status=1; // 趨? + //ESP8266_RESTORE(); + + while (1) + { + InBuffer_ID=0; + ReceiveData_Process(); // Խյ.зظֵ + Key_Scanning_OK(); // ok ɨ; + Read_Time(); // ok DS1302ʱ; + Read_Tempture(); // ok ɼ¶andжϴ; + Lcd_Display(); // ok Ļˢ + Autohand_Control(); // ok ״̬flag_auto_hand0ֶģʽ(ݰ)...1Զģʽ(ݶʱ)...; + CIPSendData_Process(); // ״̬仯ݣ + + // ¶ʾͨѶϴӡ + if(0)//if(flag_ScreenLock_Status==1&&Key_Back==Adjust_Key4) + { + Lcd_Disp_Tempture(System_Status); + ht_writecmd(Command, toneon); + while(Read_Key_Num()!=0xff); + ht_writecmd(Command, toneoff); + //MCUeeprom_write(); + } + } +} +/* + "" "" "˵" +1AT+RST ready ; +1AT+RESTORE ready ָã +1ATE0/1 OK ȡ/ûԹ; + +2AT+CWMODE=1 OK/ERROR óSTA; +2AT+CIPMODE=0 OK/ERROR ÷͸ģʽ; +2AT+CIPMUX=1 OK/ERROR ·; + +3AT+CWSTARTSMART OK ·; +3AT+CWSTOPSMART OK ر·; +3AT+CIFSR OK ѯģIP; + AT+CIFSR + +CIFSR:STAIP,"192.168.0.108" + +CIFSR:STAMAC,"18:fe:34:db:0d:33" + + OK + +4AT+CIPSTART=0,"TCP","192.168.1.2",9955 OK/ERROR/ALREADY CONNECT TCP +4AT+CIPCLOSE=5 OK/ERROR ر + +5AT+CIPSEND=x,len:ddddd OK+"> " : x= ID(0~4)ڶӵ +5+IPD,0,len:www.ifish7.com ݣlenݳ(MAX=2048) +*/ + +/**********************************************/ +// ܣUART2ĽжϷ 1byte +// +// +// ֵ +/**********************************************/ +@far @interrupt void UART2_Recv_IRQHandler (void) +{ + unsigned char i; + // flag_Receive_NewFrame_Buffer0=1; + if(Receive_Count0>119) + Receive_Count0=0; + if(Receive_Count1>119) + Receive_Count1=0; + + if(1==flag_WiFi_Data_Sending||0==InBuffer_ID) + { + Receive_Buffer0[Receive_Count0++]=UART2_DR;// յַ0 ϵͳ + Receive_NewFrame_TimeoutCounter=0; + flag_Receive_NewOneByte=1; + } + else + Receive_Buffer1[Receive_Count1++]=UART2_DR;// յַ1 Ե + /* + if(1==InBuffer_ID) + { + Receive_Buffer1[Receive_Count1++]=UART2_DR;// յַ1 Ե + } + else + { + Receive_Buffer0[Receive_Count0++]=UART2_DR;// յַ0 ϵͳ + Receive_NewFrame_TimeoutCounter=0; + flag_Receive_NewOneByte=1; + } + */ + return; +} + +/**********************************************/ +// ܣUART2ķжϷ +// +// +// ֵ +/**********************************************/ +@far @interrupt void UART2_Send_IRQHandler (void) +{ + if(flag_WiFi_Data_Sending==1) + { + if(Send_Count<=Send_Num) + UART2_DR = Send_Buffer[++Send_Count]; + else + { + flag_WiFi_Data_Sending=0; + UART2_CR2&= 0x7f; //TIEN=0жʹֹܱ + } + } + return; +} + +/**********************************************/ +// ܣʱ4ĸжϷ +// +// +// ֵ 16.32ms3MSһTIM4ж, +/**********************************************/ +@far @interrupt void TIM4_UPD_OVF_IRQHandler (void)//2MHZ/128/255/ +{ + TIM4_SR = 0x00; // ±־ + //PD_ODR = PD_ODR ^ 0x08; // LEDźȡ + // //LED˸Ƶ=2MHZ/128/255/2=30.63 + + // 1. ʱƬ= 50*3=150ms + if(++ThreeMS_Counter>=50) + { + ThreeMS_Counter=0; + // 1.0 TCP60Sûӣ60Sʱ + if(flag_TCP0_Connected==0&&flag_WiFi_Connected) + { + if(++TCP0_TimeoutCounter>=400) //150ms*400=60s + { + TCP0_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + if(flag_TCP0_Connected)TCP0_TimeoutCounter=0; + + // 1.1 // 50*3*4=600ms + flag_TimeSetup_Jump=~flag_TimeSetup_Jump; + if(++Lcd_Colon_TimeoutCounter>=5) + { + Lcd_Colon_TimeoutCounter=0; // ƹ + flag_Colon_Jump=~flag_Colon_Jump; // ClockTime":","(((WiFi)))" + //Display_T(); + } + + // 1.2 RS232ӳʱ //50*3*40=6000ms + if(++RS232_TimeoutCounter>=40&&flag_RS232_TimeoutStart) + { + RS232_TimeoutCounter=0; + flag_RS232_TimeoutStart=0; + flag_RS232_Timeout=1; + } + if(flag_RS232_TimeoutStart==0)RS232_TimeoutCounter=0; + + // 1.3 //50*3*15=2250ms + if(flag_ScreenLock_Status&&flag_have_key) + { + if(++UnLockScreen_TimeoutCounter>=15) + { + if(flag_ScreenLock_Status) + flag_ScreenLock_Status=0; + UnLockScreen_TimeoutCounter=0; + } + } + if(flag_ScreenLock_Status==0)UnLockScreen_TimeoutCounter=0; + + // 1.4 ֶԶл //50*3*10=1500ms + if(flag_auto_hand_change&&flag_have_key) + { + if(++auto_hand_TimeoutCounter>=10) + { + if(flag_auto_hand_change) + flag_auto_hand_change=0; + auto_hand_TimeoutCounter=0; + } + } + if(flag_auto_hand_change==0)auto_hand_TimeoutCounter=0; + + // 1.5 ʱ //50*3*50=7500ms + if(flag_ScreenLock_Status==0)//&&flag_auto_hand_change==0) + { + if(++LockScreen_TimeoutCounter>=50) + { + flag_ScreenLock_Status=1; + LockScreen_TimeoutCounter=0; + if(flag_ClockTimeSetting) + { + flag_ClockTimeSetting=0; + ClockTimeSetup_Stepper=0; + } + if(flag_LampTimeSetting) + { + flag_LampTimeSetting=0; + LampTimeSetup_Stepper=0; + flag_Open_Time=0; + flag_Close_Time=0; + } + } + } + if(flag_ScreenLock_Status)LockScreen_TimeoutCounter=0; + + // 1.6 Լ10s //50*3*68=10200ms Connect_TCP_Counter=0; + if(flag_TCP0_Connected&&flag_WiFi_Connected&&flag_TCP_Logined) + { + if(++HeartBeat10s_TimeoutCounter>68) + { + HeartBeat10s_TimeoutCounter=0; + flag_HeartBeat10s=1; + } + } + if(flag_TCP_Logined==0)HeartBeat10s_TimeoutCounter=0; + + // 1.7 ʱ60sû·Źλ //50*3*400=60000ms + if(flag_HeartBeat10s&&flag_TCP0_Connected&&flag_WiFi_Connected) + { + HeartBeat_0_TimeoutCounter=0; + if(++HeartBeat_1_TimeoutCounter>400) + { + HeartBeat_1_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + else if(flag_HeartBeat10s==0&&flag_TCP0_Connected&&flag_WiFi_Connected) + { + HeartBeat_1_TimeoutCounter=0; + if(++HeartBeat_0_TimeoutCounter>400) + { + HeartBeat_0_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + + // 1.8 ӷʧܣһֱԼ10s + if(flag_Restart_Connect_TCP) + { + if(++Restart_Connect_TCP_TimeoutCounter>90) + { + Connect_TCP_Counter++; + Restart_Connect_TCP_TimeoutCounter=0; + flag_Enable_Connect_TCP=1; + } + } + else {Restart_Connect_TCP_TimeoutCounter=0;Connect_TCP_Counter=0;} + + // 1.9·ʧܣ10s·ɸλ + if(flag_WiFi_Disconnect) + { + if(++WiFi_Disconnect_TimeoutCounter>90) + { + WiFi_Disconnect_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + if(flag_have_key) WiFi_Disconnect_TimeoutCounter=0; + +// 1.a ϵreadyflag_ready_Monitoring5s=1,5sϢ, ,flag_ready5s_STARTSMART=1 + if(flag_ready_Monitoring5s&&flag_WiFi_ready) + { + if(++NoWiFi5s_TimeoutCounter>34) + { + NoWiFi5s_TimeoutCounter=0; + flag_ready5s_STARTSMART=1; + } + } + if(flag_ready_Monitoring5s==0)NoWiFi5s_TimeoutCounter=0; + +// 1.b ½ָflag_NoLoginBack_Monitoring150s=1,150sûзʱ,ӷ,flag_NoLoginBack150s_CIPSTART=1 + //if((flag_NoLoginBack_Monitoring150s&&flag_TCP0_Connected&&flag_WiFi_Connected)) +// if(flag_NoLoginBack_Monitoring150s)//||(flag_TCP0_Connected==0&&flag_WiFi_Connected)) +// { +// if(++NoLoginBack150s_TimeoutCounter>1000) +// { +// NoLoginBack150s_TimeoutCounter=0; +// flag_NoLoginBack150s_CIPSTART=1; +// //ESP8266_RST(); +// IWDG_Enable(); +// } +// } + //if(flag_NoLoginBack_Monitoring150s==0)NoLoginBack150s_TimeoutCounter=0; + + } + + // 2.ڽʱƬ // 3*3=9msûյµַΪǰһ֡ + if(flag_Receive_NewOneByte) + { + if(++Receive_NewFrame_TimeoutCounter>10) // ʱһ֡ռ + { + Receive_NewFrame_TimeoutCounter=0; + flag_Receive_NewOneByte=0; // =1UART1µַ? + flag_Receive_NewFrame_Buffer0=1; // =1һַ֡ + Receive_Num0=Receive_Count0; + Receive_Count0=0; + } + } + return; +} + diff --git a/doc/多控协议/2控源码/stm8_interrupt_vector.c b/doc/多控协议/2控源码/stm8_interrupt_vector.c new file mode 100644 index 0000000..f4d27b0 --- /dev/null +++ b/doc/多控协议/2控源码/stm8_interrupt_vector.c @@ -0,0 +1,63 @@ +/* BASIC INTERRUPT VECTOR TABLE FOR STM8 devices + * Copyright (c) 2007 STMicroelectronics + */ + +typedef void @far (*interrupt_handler_t)(void); + +struct interrupt_vector { + unsigned char interrupt_instruction; + interrupt_handler_t interrupt_handler; +}; + + + + +@far @interrupt void NonHandledInterrupt (void) +{ + // in order to detect unexpected events during development, + // it is recommended to set a breakpoint on the following instruction + + return; +} + + + +extern void _stext(); /* startup routine */ +extern @far @interrupt void TIM4_UPD_OVF_IRQHandler (void); +extern @far @interrupt void UART2_Send_IRQHandler (void); +extern @far @interrupt void UART2_Recv_IRQHandler (void); + +struct interrupt_vector const _vectab[] = { + {0x82, (interrupt_handler_t)_stext}, /* reset */ + {0x82, NonHandledInterrupt}, /* trap */ + {0x82, NonHandledInterrupt}, /* irq0 */ + {0x82, NonHandledInterrupt}, /* irq1 */ + {0x82, NonHandledInterrupt}, /* irq2 */ + {0x82, NonHandledInterrupt}, /* irq3 */ + {0x82, NonHandledInterrupt}, /* irq4 */ + {0x82, NonHandledInterrupt}, /* irq5 */ + {0x82, NonHandledInterrupt}, /* irq6 */ + {0x82, NonHandledInterrupt}, /* irq7 */ + {0x82, NonHandledInterrupt}, /* irq8 */ + {0x82, NonHandledInterrupt}, /* irq9 */ + {0x82, NonHandledInterrupt}, /* irq10 */ + {0x82, NonHandledInterrupt}, /* irq11 */ + {0x82, NonHandledInterrupt}, /* irq12 */ + {0x82, NonHandledInterrupt}, /* irq13 */ + {0x82, NonHandledInterrupt}, /* irq14 */ + {0x82, NonHandledInterrupt}, /* irq15 */ + {0x82, NonHandledInterrupt}, /* irq16 */ + {0x82, NonHandledInterrupt}, /* irq17 */ + {0x82, NonHandledInterrupt}, /* irq18 */ + {0x82, NonHandledInterrupt}, /* irq19 */ + {0x82, UART2_Send_IRQHandler}, /* irq20 UART2/3ж*/ + {0x82, UART2_Recv_IRQHandler}, /* irq21 UART2/3ж*/ + {0x82, NonHandledInterrupt}, /* irq22 */ + {0x82, TIM4_UPD_OVF_IRQHandler}, /* irq23 */ + {0x82, NonHandledInterrupt}, /* irq24 */ + {0x82, NonHandledInterrupt}, /* irq25 */ + {0x82, NonHandledInterrupt}, /* irq26 */ + {0x82, NonHandledInterrupt}, /* irq27 */ + {0x82, NonHandledInterrupt}, /* irq28 */ + {0x82, NonHandledInterrupt}, /* irq29 */ +}; diff --git a/doc/多控协议/3控源码/3-control.s19 b/doc/多控协议/3控源码/3-control.s19 new file mode 100644 index 0000000..db922f7 --- /dev/null +++ b/doc/多控协议/3控源码/3-control.s19 @@ -0,0 +1,693 @@ +S016000044656275675C332D636F6E74726F6C2E736D38FF +S1238080312C22554450222C223139322E3136382E302E313034222C333333302C2254437E +S12380A050222C223132302E35352E3139302E3536222C39393535312C22554450222C226E +S12380C03132302E35352E3139302E3536222C33333341542B52535441542B524553544F23 +S12380E0524541542B43575354415254534D4152543D3341542B43574D4F44453D41542B8A +S12381004349504D4F44453D41542B4349504D55583D41542B434946535241542B43495077 +S123812053544152543D41542B435753544F50534D41525441542B43495053454E443D4105 +S1238140542B434950434C4F53453D41542B43495053544154555341542B43495044494E16 +S1238160464F3D5749464920434F4E4E4543544544005749464920474F54204950005749B5 +S1238180464920444953434F4E4E45435400536D61727420676574207769666920696E66AF +S12381A06F00736D617274636F6E66696720636F6E6E65637465642077696669004F4B0073 +S12381C04641494C004552524F5200414C524541445920434F4E4E4543540053454E44207F +S12381E04F4B002B4950442C003E2000726561647900302C434F4E4E45435400312C434FE5 +S12382004E4E45435400434C4F53454400444E53204661696C005354414D41430053544106 +S12382204950006C696E6B206973206E6F742076616C696400EB60C7E56CADAFE0EFED00DB +S1238240090E0D000A0C0009070B0000C0C1C1810140C30103C00280C241C60106C00780A1 +S1238260C7410500C5C1C4810440CC010CC00D80CD410F00CFC1CE810E400A00CAC1CB818D +S12382800B40C90109C00880C841D80118C01980D9411B00DBC1DA811A401E00DEC1DF817E +S12382A01F40DD011DC01C80DC411400D4C1D5811540D70117C01680D641D20112C01380FF +S12382C0D3411100D1C1D0811040F00130C03180F1413300F3C1F28132403600F6C1F7814D +S12382E03740F50135C03480F4413C00FCC1FD813D40FF013FC03E80FE41FA013AC03B808F +S1238300FB413900F9C1F88138402800E8C1E9812940EB012BC02A80EA41EE012EC02F805D +S1238320EF412D00EDC1EC812C40E40124C02580E5412700E7C1E68126402200E2C1E381FC +S12383402340E10121C02080E041A00160C06180A1416300A3C1A28162406600A6C1A7812D +S12383606740A50165C06480A4416C00ACC1AD816D40AF016FC06E80AE41AA016AC06B808E +S1238380AB416900A9C1A88168407800B8C1B9817940BB017BC07A80BA41BE017EC07F807D +S12383A0BF417D00BDC1BC817C40B40174C07580B5417700B7C1B68176407200B2C1B381FC +S12383C07340B10171C07080B041500090C191815140930153C052809241960156C057800E +S12383E09741550095C1948154409C015CC05D809D415F009FC19E815E405A009AC19B818C +S12384005B40990159C058809841880148C0498089414B008BC18A814A404E008EC18F815C +S12384204F408D014DC04C808C41440084C185814540870147C046808641820142C04380FD +S12384408341410081C18081404041542B4349504653520D2B4349504653523A535441495F +S1238460502C223139322E3136382E302E313038220D2B4349504653523A5354414D4143B8 +S12384802C2231383A66653A33343A64623A30643A3333220D0A4F4BADCDADD0ADE2ADE522 +S12384A0ADD3ADD6ADE8ADEBADD9ADDCADEEADF14209DE354203C8B441FC106241F12D0E05 +S12384C041E6AE1441DCD91641D36A7E41CA76C841C1E35341B9BE7641B2126E41AAA5E312 +S12384E041A39999419CF7CE41968D4F419024DD418A9374418520C4417F7CED4175645A22 +S1238500416C00004169D70A4159E35341514BC641494BC64141C28F413A5A1C41335C2855 +S1238520412C937441262D0E41200000411A189341146E97410EFDF34109CED94104D4FD1A +S123854041000C4940F6F9DB40EE3D7040E5D2F140DDBA5E40D6041840CE9FBE40C774BCAB +S123856040C09BA540BA041840B3B64540ADA9FB40A7CED940A2353F409CD4FD4097AE14F8 +S123858040929FBE408DEB854089374B4084D4FD40808312407851EB4070E5604069374B22 +S12385A04061BA5E405A9FBE4053B645404D1EB84046C8B44040B439403AD0E540351EB82D +S12385C0402F9DB2402A5E3540254FDF40204189401B851E4016F9DB40127EF9400E560486 +S12385E0400A1CAC400624DD40024DD23FFD2F1A3FF5E3533FEEF9DB3FE831263FE1CAC0A5 +S12386003FDB645A3FD560413FCF7CED3FC9BA5E3FC439583FBEF9DB3FB9BA5E3FB4BC6AA4 +S12386203FAFDF3B3FAB43953FA6A7EF3FA24DD23F9E147A3F99FBE73F95E3533F920C499C +S12386403F8E56043F8A9FBE3F872B023F83B6453F80624D3F7A4A8CB631B659B681B6A990 +S1238660B6D1B6F9B721B749B771B799B7C1B7E90D0A2B4950442C302C31393139322E314C +S123868039322E3139322E3139322C393939393A000718FE34DB0D335CCF7F076521130BCC +S11A86A016212C37424D5843523A003F80000040A0000042C7CCCC2F +S123875BAE07FF9490CE86B7AE86B9F62720A5602717BF48EE03BF4BBE48EE0190F6F75CDA +S123877B905C90B34B26F5BE481C000520DDAE003A2002F75CA3004E26F9AE015D2002F78F +S123879B5CA302C526F9CDCD7820FE880F0172080081002406351000812004351000813FF9 +S12387BB823F833F843F853F86721F0081721B0082721700867217008172130081721D003B +S12387DB86721F00867217008272190082721B00830F017B015F97724F015D7B015F977230 +S12387FB4F01D50C017B01A17825E83F353F143F213F1A3F1B3F0C5FBF083F153F143F1045 +S123881B3F133F0F3F0E5FBF0A3F113F123F275FBF045FBF063F283F163F293F2A3F2C3FA0 +S123883B2B5FBF30BE30BF328481895203AEFFFF1F02202F7B03A4FF6B011E024F011604AB +S123885B72A90001170472A2000190F61801A4FF905F909790580190D8824B0190D8824A02 +S123887B011F029C1E081D00011F081C0001A300002CC11E025B058189895F1F0120071E2C +S123889B011C00011F011E01130325F35B0481898920115F1F011E011C00011F011E01A36E +S12388BB02CB25F21E031D00011F031C0001A3000026E05B04818988721B50147B0348AA3C +S12388DB806B037214500A0F01721B50147B03A501260220067212500A20047213500A72E5 +S12388FB1A501404030C017B01A10825DC0F01721B50147B02A501260220067212500A2031 +S123891B047213500A721A501404020C017B01A10825DC7215500A5B038188890F01721BBE +S123893B50147212500A7B0348AA816B037214500A0F027B03A501260220067212500A2016 +S123895B047213500A721A50140403721B50140C027B02A10825DC7212500A0F02721B502C +S123897B1404017202500B0024067B01AA806B01721A50140C027B02A10825E17215500AA9 +S123899B7B015B0381890F0272000082002403CC8A64A606AD846B027B02A40F6B017B028B +S12389BB4EA40F97A60A429F1B01B742A605CD89356B027B02A407B73CA604CD89356B02FA +S12389DB7B02A40F6B017B02A4104EA40F97A60A429F1B01B741A603CD89356B027B02A4AC +S12389FB0F6B017B02A4304EA40F97A60A429F1B01B740A602CD89356B027B02A40F6B0114 +S1238A1B7B02A4304EA40F97A60A429F1B01B73FA601CD89356B027B02A40F6B017B02A44F +S1238A3B704EA40F97A60A429F1B01B73E4FCD89356B027B02A40F6B017B02A4704EA40FF8 +S1238A5B97A60A429F1B01B73D85818972150081B642A164250435630042B641A10D25045A +S1238A7B350C0041B640A1202504351F0040B63FA11825043517003FB63EA13C2504353B15 +S1238A9B003EAE00074F95CD88D1B642AE000A515F9765909F6B01B642AE000A515F976567 +S1238ABB9F97A610429F1A016B02AE00067B0295CD88D1B63CA4076B02AE00057B0295CDBA +S1238ADB88D1B641AE000A515F9765909F6B01B641AE000A515F97659F97A610429F1A01E5 +S1238AFB6B02AE00047B0295CD88D1B640AE000A515F9765909F6B01B640AE000A515F9716 +S1238B1B659F97A610429F1A016B02AE00037B0295CD88D1B63FAE000A515F9765909F6BA0 +S1238B3B01B63FAE000A515F97659F97A610429F1A016B02AE00027B0295CD88D1B63EAEDD +S1238B5B000A515F9765909F6B01B63EAE000A515F97659F97A610429F1A016B02AE000149 +S1238B7B7B0295CD88D1B63DAE000A515F9765909F6B01B63DAE000A515F97659F97A61069 +S1238B9B429F1A016B025F7B0295CD88D1AE0007A68095CD88D1858189880F01201E721930 +S1238BBB500F7B02A580260220067216500F20047217500F7218500F08020C017B011103C4 +S1238BDB25DC5B038189880F01201E7219500F7B02A501260220067216500F2004721750F8 +S1238BFB0F7218500F04020C017B01110325DC5B038189721F500FAE00047B0195AD99AEAB +S1238C1B00087B0295AD91721E500F858189AE0012A68095ADDC1E01CD88AAAE0010A68059 +S1238C3B95ADCF858189721F500FAE0003A6A095CD8BB308010801AE00067B0195CD8BB30C +S1238C5BA60810055F977B025D2704485A26FC6B027B05977B0295CD8BB3721E500F8581DD +S1238C7B89721F500FAE0003A6A095CD8BB308010801AE00067B0195CD8BB37B05977B024F +S1238C9B95CD8BE0721E500F8581887216500AAE0002A68095CD8C0DAE0006A68095CD8CF0 +S1238CBB0DAE0030A68095CD8C0DAE0052A68095CD8C0DAE0080A68095CD8C0D0F014B04BA +S1238CDB5F7B0295CD8C40840C017B01A12025EEAE01F4CD88930F014B04AE000F7B0295D1 +S1238CFBCD8C40840C017B01A12025EC84818989A60A625F97D682356B027B02A4F04EA4C1 +S1238D1B0F6B017B02A40F6B027B01AA016B014B047B0297A60E95CD8C40844B047B03975C +S1238D3BA60F95CD8C40841E03A664625F97A60A62D682356B027B02A4F04EA40F6B017B25 +S1238D5B02A40F6B027B01AA016B014B047B0297A61095CD8C40844B047B0397A61195CDF7 +S1238D7B8C40841E03A66462D682356B027B02A4F04EA40F6B017B02A40F6B027B01AA01BB +S1238D9B6B014B047B0297A61295CD8C40844B047B0397A61395CD8C4084AE00FACD88AA05 +S1238DBB5B0481880F01720850060024067B01AA016B01720A50060024067B01AA026B01FF +S1238DDB7208501A0024067B01AA046B01720450100024067B01AA086B017B01A10F2405E1 +S1238DFB7B015B0181A6FF5B018188C65240A58027F97B01C7524184818952081E0DCDD2CC +S1238E1B3C1F011E09CDD23C1F035F1F05203F5F1F0720071E071C00011F079C1E071301E8 +S1238E3B2E1B9C1E0572FB0713032E111E0772FB0DF61E0572FB0772FB09F127D71E071379 +S1238E5B0126041E0520111E051C00011F059C1E0513032FBAAEFFFF5B0A818888721C0022 +S1238E7B82350100163F2A0F017B015F97724F015D0C017B01A17825F00F012013C65240A9 +S1238E9BA58027F97B015F97D6024DC752410C017B01110225E7721D0082721C00813F1066 +S1238EBB858188883F163F290F012013C65240A58027F97B015F97D6024DC752410C017B67 +S1238EDB01110225E7858188880F017B015F97897B045F1B0324015C02D601D785D7014365 +S1238EFB0C017B01A10625E3A6016B01A601858189889FA153260E7B02970C029F5F97725A +S1238F1B4F024D200D7B02970C029F5F97A601D7024D7B02970C029F5F97B62FD7024D0F12 +S1238F3B017B025F1B0124015C027B01905F909790D6013DD7024D0C017B01A10625E27B88 +S1238F5B021B016B020F017B025F1B0124015C027B01905F909790D60143D7024D0C017BF2 +S1238F7B01A10625E27B021B016B02B62FA101260B7B025F97A618D7024D205EB62FA10604 +S1238F9B260B7B025F97A647D7024D204DB62FA107260B7B025F97A614D7024D203CB62F3C +S1238FBBA108260B7B025F97A647D7024D202BB62FA109260B7B025F97A616D7024D201A98 +S1238FDBB62FA10B260B7B025F97A614D7024D20097B025F97A647D7024D5B0381885203F2 +S1238FFB1E01A10B2707A1072703CC90AC7B04B72F7B04A10B2608AE00534F95CD8F0B7BFA +S123901B04A1072608AE00524F95CD8F0B7B03973501025C3503025D3506025EAE001289E8 +S123903BAE024DCD88455B021F017B01C7025F7B02C702607B04A1FF26130F037B035F97D5 +S123905BA6FFD7024D0C037B03A11425EF3514002CA614CD8E76AE81DB89AE015DCDD2484A +S123907B5B02BF30BE302607720C00810025E7721D00813F163F29BE30270A721300863533 +S123909B0B0021200C7212008672190086350A00215B048152041E01974F95CD8F0BA60FF2 +S12390BB6B043D03270F7B04970C049F5F97A601D7024D200C7B04970C049F5F97724F027A +S12390DB4D7B04970C049F5F97A601D7024D3D00270F7B04970C049F5F97A601D7024D2081 +S12390FB0C7B04970C049F5F97724F024D7B04970C049F5F97A602D7024D3D01270F7B04FE +S123911B970C049F5F97A601D7024D200C7B04970C049F5F97724F024D7B04970C049F5F0C +S123913B97A603D7024D3D02270F7B04970C049F5F97A601D7024D200C7B04970C049F5F5D +S123915B97724F024D0F037B04970C049F5F977B034CD7024D7B04970C049F5F977B0390C3 +S123917B5F909790D60101D7024D7B04970C049F5F977B03905F909790D6010BD7024D7B5A +S123919B04970C049F5F977B03905F909790D60115D7024D7B04970C049F5F977B03905F12 +S12391BB909790D6011FD7024D7B04970C049F5F977B03905F909790D60129D7024D0C03A9 +S12391DB7B03A10625817B04970C049F5F97B63AD7024D7B04970C049F5F97B63BA4FFD7AE +S12391FB024D7B04970C049F5F97724F024D7B04970C049F5F97724F024D7B04970C049FA6 +S123921B5F97724F024D7B04970C049F5F97724F024D7B04970C049F5F97B61FD7024D7B2D +S123923B04970C049F5F97B624D7024D7B04970C049F5F97B625A4FFD7024D7B04970C044A +S123925B9F5F97B622D7024D7B04970C049F5F97B623A4FFD7024D7B045F9789AE024DCD37 +S123927B88455B021F017B04970C049F5F977B01D7024D7B04970C049F5F977B02D7024DCA +S123929B7B04B72CB62CCD8EBD5B048189880F017B015F97D68134D7024D0C017B01A10BFA +S12392BB25EE7B015F97B617D7024D7B02A118262E7B015F97A630D7024D0C017B015F97A0 +S12392DBA62CD7024D0C017B015F97A632D7024D0C017B015F97A634D7024DAC0099BE7BFD +S12392FB02A1142703CC995F7B015F97A631D7024D0C017B015F97A62CD7024D0C017B013B +S123931B5F97A632D7024D0C017B015F97A630D7024D0C017B015F97A62CD7024D0C017BC0 +S123933B015F97A622D7024D7B03A1FF2703CC95E2C601335F97A664CDD5CBA3000027511C +S123935B0C017B015F97C6013390AE0064895F97659F85AB30D7024D0C017B015F97C60184 +S123937B33905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6013390C2 +S123939BAE000A895F9765909F85AB30D7024D2066C601335F97A60ACDD5CBA60ACDD5C5B3 +S12393BBA3000027390C017B015F97C60133905F9097A60ACDD5F6A60ACDD5F0909FAB3068 +S12393DBD7024D0C017B015F97C6013390AE000A895F9765909F85AB30D7024D20190C01A8 +S12393FB7B015F97C6013390AE000A895F9765909F85AB30D7024D0C017B015F97A62ED7D7 +S123941B024DC601345F97A664CDD5CBA3000027510C017B015F97C6013490AE0064895F57 +S123943B97659F85AB30D7024D0C017B015F97C60134905F9097A60ACDD5F6A60ACDD5F0D2 +S123945B909FAB30D7024D0C017B015F97C6013490AE000A895F9765909F85AB30D7024D62 +S123947B2066C601345F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F97C601349015 +S123949B5F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6013490AE00B5 +S12394BB0A895F9765909F85AB30D7024D20190C017B015F97C6013490AE000A895F97650B +S12394DB909F85AB30D7024D0C017B015F97A62ED7024DC601355F97A664CDD5CBA3000033 +S12394FB274F0C017B015F97C6013590AE0064895F97659F85AB30D7024D0C017B015F9732 +S123951BC60135905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6011A +S123953B3590AE000A895F9765909F85AB30D7024DC601355F97A60ACDD5CBA60ACDD5C5D0 +S123955BA3000027390C017B015F97C60135905F9097A60ACDD5F6A60ACDD5F0909FAB30C4 +S123957BD7024D0C017B015F97C6013590AE000A895F9765909F85AB30D7024D20190C0104 +S123959B7B015F97C6013590AE000A895F9765909F85AB30D7024D0C017B015F97A62ED733 +S12395BB024D0C017B015F97A632D7024D0C017B015F97A635D7024D0C017B015F97A635E6 +S12395DBD7024DAC00991BC601375F97A664CDD5CBA3000027510C017B015F97C601379053 +S12395FBAE0064895F97659F85AB30D7024D0C017B015F97C60137905F9097A60ACDD5F656 +S123961BA60ACDD5F0909FAB30D7024D0C017B015F97C6013790AE000A895F9765909F855C +S123963BAB30D7024D2066C601375F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F71 +S123965B97C60137905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C641 +S123967B013790AE000A895F9765909F85AB30D7024D20190C017B015F97C6013790AE00BE +S123969B0A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601385F97A664CDC3 +S12396BBD5CBA3000027510C017B015F97C6013890AE0064895F97659F85AB30D7024D0C9B +S12396DB017B015F97C60138905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017BA1 +S12396FB015F97C6013890AE000A895F9765909F85AB30D7024D2066C601385F97A60ACD7C +S123971BD5CBA60ACDD5C5A3000027390C017B015F97C60138905F9097A60ACDD5F6A60AE4 +S123973BCDD5F0909FAB30D7024D0C017B015F97C6013890AE000A895F9765909F85AB300F +S123975BD7024D20190C017B015F97C6013890AE000A895F9765909F85AB30D7024D0C011F +S123977B7B015F97A62ED7024DC601395F97A664CDD5CBA3000027510C017B015F97C60190 +S123979B3990AE0064895F97659F85AB30D7024D0C017B015F97C60139905F9097A60ACDB4 +S12397BBD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C6013990AE000A895F97659012 +S12397DB9F85AB30D7024D2066C601395F97A60ACDD5CBA60ACDD5C5A3000027390C017B0A +S12397FB015F97C60139905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F9B +S123981B97C6013990AE000A895F9765909F85AB30D7024D20190C017B015F97C601399069 +S123983BAE000A895F9765909F85AB30D7024D0C017B015F97A62ED7024DC6013A5F97A6A2 +S123985B64CDD5CBA3000027510C017B015F97C6013A90AE0064895F97659F85AB30D7021F +S123987B4D0C017B015F97C6013A905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C20 +S123989B017B015F97C6013A90AE000A895F9765909F85AB30D7024D2066C6013A5F97A631 +S12398BB0ACDD5CBA60ACDD5C5A3000027390C017B015F97C6013A905F9097A60ACDD5F61A +S12398DBA60ACDD5F0909FAB30D7024D0C017B015F97C6013A90AE000A895F9765909F8597 +S12398FBAB30D7024D20190C017B015F97C6013A90AE000A895F9765909F85AB30D7024DAE +S123991B0C017B015F97A622D7024D0C017B015F97A62CD7024D0C017B015F97A639D7020D +S123993B4D0C017B015F97A639D7024D0C017B015F97A635D7024D0C017B015F97A634D787 +S123995B024D205F7B02A14726327B06A13026097B015F97A630D7024D0C017B015F97A649 +S123997B2CD7024D0C017B015F97A637D7024D0C017B015F97A631D7024D20277B02A116FD +S123999B26210C017B015F97A62CD7024D0C017B015F97A632D7024D0C017B015F97A63216 +S12399BBD7024D0C017B015F97A60DD7024D0C017B015F97A60AD7024D7B014CB72CB62C28 +S12399DBCD8E76AE81E989AE015DCDD2485B02BF30BE302607720C00810025E7721D008181 +S12399FB3F163F29BE30270A7213008635D300212018721200867B02A11426067219008687 +S1239A1B20047217008135D200215B0381725F505A725F505B35FF505C35AE5064355650A9 +S1239A3B64C6505FA50827F981897B051E01D74000C6505FA50427F98581D640008188AD91 +S1239A5BCCA6376B017B015F971D0037D60149887B025F97ADD3840C017B01A14B25E684E9 +S1239A7B8188ADA90F017B015F97D6010B887B025F97ADB5840C017B01A10A25E9A60A6BC6 +S1239A9B017B015F971D000AD60115887B025F97AD97840C017B01A11425E6A6146B017B74 +S1239ABB015F971D0014D6011F887B025F97CD9A44840C017B01A11E25E5A61E6B017B0141 +S1239ADB5F971D001ED60129887B025F97CD9A44840C017B01A12825E5A6286B017B015F9B +S1239AFB971D0027D60100887B025F97CD9A44840C017B01A13225E53B001FAE0032CD9A64 +S1239B1B44843B0022AE0033CD9A4484B623A4FF88AE0034CD9A44843B0024AE0035CD9A33 +S1239B3B4484B625A4FF88AE0036CD9A44843B0080AE0037CD9A44843B0000AE0038CD9ACE +S1239B5B44843B0001AE0039CD9A44843B0002AE003ACD9A44843B0003AE003BCD9A448422 +S1239B7B3B002DAE003CCD9A4484A63D6B017B015F971D003DD60149887B025F97CD9A4464 +S1239B9B840C017B01A15125E58481890F027B025F97897B045F97CD9A5585D7010B0C025B +S1239BBB7B02A10A25E8A60A6B027B025F971D000A897B045F97CD9A5585D701150C027BE5 +S1239BDB02A11425E5A6146B027B025F971D0014897B045F97CD9A5585D7011F0C027B0219 +S1239BFBA11E25E5A61E6B027B025F971D001E897B045F97CD9A5585D701290C027B02A132 +S1239C1B2825E5A6286B027B025F971D0027897B045F97CD9A5585D701000C027B02A1328C +S1239C3B25E5AE0032CD9A55B71FAE0033CD9A556B02AE0034CD9A556B017B025F974F02B1 +S1239C5B011B0124015CB7239FB722AE0035CD9A556B02AE0036CD9A556B017B025F974F1B +S1239C7B02011B0124015CB7259FB724AE0037CD9A55B780AE0038CD9A55B700AE0039CDEA +S1239C9B9A55B701AE003ACD9A55B702AE003BCD9A55B703AE003CCD9A55B72DB600A4015D +S1239CBBB700B601A401B701B602A401B702B603A401B703B62DA1EA261FA63D6B027B020C +S1239CDB5F971D003D897B045F97CD9A5585D701490C027B02A15125E585815204AE821D85 +S1239CFB89AE015DCDD2485B02BF30BE30725F0136725F0135725F0134725F0133721C00E7 +S1239D1B84AE821D89AE015DCD8E145B02016B03027B03AB076B030F047B035F1B042401AF +S1239D3B5C02D6015DA12E27080C047B04A10A25E87B04A101260E7B035F97D6015DA03060 +S1239D5BC70133205C7B04A10226207B035F97D6015EA0306B027B035F97D6015D97A60A30 +S1239D7B429FA0E01B02C7013320367B04A10326307B035F97D6015FA0306B027B035F9721 +S1239D9BD6015E97A60A429FA0E06B017B035F97D6015D97A664429FA0C01B011B02C701D0 +S1239DBB337B031B044C6B030F047B035F1B0424015C02D6015DA12E27080C047B04A10AFC +S1239DDB25E87B04A101260E7B035F97D6015DA030C70134205C7B04A10226207B035F9736 +S1239DFBD6015EA0306B027B035F97D6015D97A60A429FA0E01B02C7013420367B04A103F0 +S1239E1B26307B035F97D6015FA0306B027B035F97D6015E97A60A429FA0E06B017B035F4C +S1239E3B97D6015D97A664429FA0C01B011B02C701347B031B044C6B030F047B035F1B04BB +S1239E5B24015C02D6015DA12E27080C047B04A10A25E87B04A10126147B035F1B0424016B +S1239E7B5C025AD6015DA030C70135207E7B04A102262D7B035F1B0424015C025AD6015DEA +S1239E9BA0306B027B035F1B0424015C025A5AD6015D97A60A429FA0E01B02C70135204BD2 +S1239EBB7B04A10326457B035F1B0424015C025AD6015DA0306B027B035F1B0424015C022C +S1239EDB5A5AD6015D97A60A429FA0E06B017B035F1B0424015C021D0003D6015D97A664F3 +S1239EFB429FA0C01B011B02C701357B031B044C6B030F047B035F1B0424015C02D6015DAF +S1239F1BA12227080C047B04A10A25E87B04A10126147B035F1B0424015C025AD6015DA0E1 +S1239F3B30C70136207E7B04A102262D7B035F1B0424015C025AD6015DA0306B027B035F9A +S1239F5B1B0424015C025A5AD6015D97A60A429FA0E01B02C70136204B7B04A10326457B21 +S1239F7B035F1B0424015C025AD6015DA0306B027B035F1B0424015C025A5AD6015D97A64F +S1239F9B0A429FA0E06B017B035F1B0424015C021D0003D6015D97A664429FA0C01B011BDF +S1239FBB02C701367B03977B035F1B0424015C025CAE821689AE015DCDD2485B02BF30BEC6 +S1239FDB302603CCA0EE725F0142725F0141725F0140725F013F725F013E725F013D721ABA +S1239FFB0084AE821689AE015DCD8E145B02016B03027B03AB086B030F047B035F97D601A9 +S123A01B5DA130251E7B035F97D6015DA13A24137B045F977B03905F909790D6015DA03059 +S123A03BD7013D7B035F97D6015DA161251E7B035F97D6015DA16724137B045F977B039095 +S123A05B5F909790D6015DA057D7013D7B035F97D6015EA130252F7B035F97D6015EA13A39 +S123A07B24247B045F977B03905F909790D6015EA0306B027B04905F909790D6013D4EA443 +S123A09BF01B02D7013D7B035F97D6015EA16125317B035F97D6015DA16724267B045F970F +S123A0BB7B03905F909790D6015EA0616B027B04905F909790D6013D4EA4F01B02AB0AD7F6 +S123A0DB013D7B03AB036B030C047B04A1062403CCA0155B048135CC50E08188CD87A60F88 +S123A0FB017B015F97D680D2D7024D0C017B01A10625EE350D0253350A02543508002CA602 +S123A11B08CD8EBD8481880F017B015F97D680D8D7024D0C017B01A10A25EE350D02573586 +S123A13B0A0258350C002CA60CCD8EBDAE00C8CD8C28848188880F017B015F97D680F3D7B7 +S123A15B024D0C017B01A10A25EE7B02C70257350D0258350A0259350D002CA60DCD8E7685 +S123A17BAE81BD89AE015DCDD2485B02BF30BE302607720C00810025E7721D00813F163F42 +S123A19B29BE30270635290021200435280021858188880F017B015F97D680FDD7024D0C1E +S123A1BB017B01A10B25EE7B02C70258350D0259350A025A350E002CA60ECD8E76AE81BD8E +S123A1DB89AE015DCDD2485B02BF30BE302607720C00810025E7721D00813F163F29BE30B7 +S123A1FB270635330021200435320021858188880F017B015F97D68108D7024D0C017B0138 +S123A21BA10A25EE7B02C70257350D0258350A0259350D002CA60DCD8E76AE81BD89AE0178 +S123A23B5DCDD2485B02BF30BE302607720C00810025E7721D00813F163F29BE302706352C +S123A25B3D00212004353C0021858188880F017B015F97D68157D7024D0C017B01A10C2504 +S123A27BEE7B01970C019F5F977B02D7024D7B01970C019F5F97A60DD7024D7B01970C01CB +S123A29B9F5F97A60AD7024D7B01B72CB62CCD8E76AE81BD89AE015DCDD2485B02BF30BEB0 +S123A2BB302607720C00810025E7721D00813F163F29BE302706353D00212004353C0021E6 +S123A2DB858188880F017B015F97D6813FD7024D0C017B01A10C25EE7B02C70259350D02DF +S123A2FB5A350A025B350F002CA60FCD8E76AE81BD89AE015DCDD2485B02BF30BE30260784 +S123A31B720C00810025E7721D00813F163F29BE302706358D00212004358C0021858188B4 +S123A33B72100086721A008372170086721B0082721700810F017B015F97D68126D7024D9A +S123A35B0C017B01A10E25EE350D025B350A025C3510002CA610CD8E76AE81BD89AE015DDE +S123A37BCDD2485B02BF30BE302607720C00810025E7721D00813F163F29BE302706354701 +S123A39B00212004354600210F017B015F97D680E2D7024D0C017B01A11125EE350D025EED +S123A3BB350A025F3513002C721B0082A613CD8EBD8481880F017B015F97D68112D7024DEC +S123A3DB0C017B01A10825EE350D0255350A0256350A002CA60ACD8E76AE000ACD88AAAE98 +S123A3FB821D89AE015DCDD2485B02BF30BE302619AE821689AE015DCDD2485B02BF30BEDE +S123A41B302607720C00810025D5721D00813F163F29BE302709CD9CF6358300212004354B +S123A43B820021848188880F017B015F97D6811AD7024D0C017B01A10C25EE7B02C7025944 +S123A45B352C025A3522025B3555025C3544025D3550025E3522025F352C02603522026192 +S123A47BA6146B01C601335F97A664CDD5CBA3000027510C017B015F97C6013390AE0064FA +S123A49B895F97659F85AB30D7024D0C017B015F97C60133905F9097A60ACDD5F6A60ACD40 +S123A4BBD5F0909FAB30D7024D0C017B015F97C6013390AE000A895F9765909F85AB30D77D +S123A4DB024D2066C601335F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F97C6011B +S123A4FB33905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C601339031 +S123A51BAE000A895F9765909F85AB30D7024D20190C017B015F97C6013390AE000A895FE9 +S123A53B9765909F85AB30D7024D0C017B015F97A62ED7024DC601345F97A664CDD5CBA3C7 +S123A55B000027510C017B015F97C6013490AE0064895F97659F85AB30D7024D0C017B01B6 +S123A57B5F97C60134905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F977C +S123A59BC6013490AE000A895F9765909F85AB30D7024D2066C601345F97A60ACDD5CBA686 +S123A5BB0ACDD5C5A3000027390C017B015F97C60134905F9097A60ACDD5F6A60ACDD5F0EE +S123A5DB909FAB30D7024D0C017B015F97C6013490AE000A895F9765909F85AB30D7024DD1 +S123A5FB20190C017B015F97C6013490AE000A895F9765909F85AB30D7024D0C017B015FC0 +S123A61B97A62ED7024DC601355F97A664CDD5CBA3000027510C017B015F97C6013590AE4D +S123A63B0064895F97659F85AB30D7024D0C017B015F97C60135905F9097A60ACDD5F6A60F +S123A65B0ACDD5F0909FAB30D7024D0C017B015F97C6013590AE000A895F9765909F85AB09 +S123A67B30D7024D2066C601355F97A60ACDD5CBA60ACDD5C5A3000027390C017B015F9737 +S123A69BC60135905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B015F97C60189 +S123A6BB3590AE000A895F9765909F85AB30D7024D20190C017B015F97C6013590AE000A69 +S123A6DB895F9765909F85AB30D7024D0C017B015F97A62ED7024DC601365F97A664CDD5AA +S123A6FBCBA3000027510C017B015F97C6013690AE0064895F97659F85AB30D7024D0C0121 +S123A71B7B015F97C60136905F9097A60ACDD5F6A60ACDD5F0909FAB30D7024D0C017B0152 +S123A73B5F97C6013690AE000A895F9765909F85AB30D7024D2066C601365F97A60ACDD55B +S123A75BCBA60ACDD5C5A3000027390C017B015F97C60136905F9097A60ACDD5F6A60ACD9E +S123A77BD5F0909FAB30D7024D0C017B015F97C6013690AE000A895F9765909F85AB30D7B7 +S123A79B024D20190C017B015F97C6013690AE000A895F9765909F85AB30D7024D0C017B2D +S123A7BB01970C019F5F97A622D7024D7B01970C019F5F97A62CD7024D7B01970C019F5F87 +S123A7DB97A639D7024D7B01970C019F5F97A639D7024D7B01970C019F5F97A635D7024D4E +S123A7FB7B01970C019F5F97A634D7024D7B01970C019F5F97A62CD7024D7B01970C019F19 +S123A81B5F97A633D7024D7B01970C019F5F97A633D7024D7B01970C019F5F97A633D70209 +S123A83B4D7B01970C019F5F97A62CD7024D7B01970C019F5F97A630D7024D7B01970C012E +S123A85B9F5F97A60DD7024D7B01970C019F5F97A60AD7024D7B01B72CB62CCD8E76AE819F +S123A87BBD89AE015DCDD2485B02BF30BE302607720C00810025E7721D00813F163F294BF6 +S123A89BFFAE00FFA61495CD92A784A60BCD8FF8858188890F027B025F97D6811AD7024DDD +S123A8BB0C027B02A10C25EE7B03C70259352C025A3522025B3554025C3543025D355002D8 +S123A8DB5E3522025F352C0260352202610F017B015F97724D014927080C017B01A11425A9 +S123A8FBEE7B01A10B2403CCA9A9A6156B0220177B025F977B02905F909772A2001590D6EA +S123A91B0149D7024D0C029C7B025F977B01905F909772A90015BF4990B3492CD37B029722 +S123A93B0C029F5F97A622D7024D7B02970C029F5F97A62CD7024D7B02970C029F5F97A65B +S123A95B39D7024D7B02970C029F5F97A639D7024D7B02970C029F5F97A635D7024D7B0288 +S123A97B970C029F5F97A635D7024D7B02970C029F5F97A60DD7024D7B02970C029F5F9736 +S123A99BA60AD7024D7B02B72CB62CCD8EBD5B038152037200008500244F720000810024B3 +S123A9BB040F02207A7204008500241BB61C5F975AA602CDD5CBD6010B5F97A60ACDD5C569 +S123A9DBD682356B02205872060085002451B61C5F975AA602CDD5CBD6011F5F97A60ACDD4 +S123A9FBD5C5D682356B022036720000820024217200008100240AB61DA10826040F02201D +S123AA1B1EB63F5F97A60ACDD5C5D682356B02200EB63F5F97A60ACDD5C5D682356B027B58 +S123AA3B02A4F04EA40F6B017B02A40F6B03720200820024067B01AA016B014B047B029740 +S123AA5B4F95CD8C40844B047B0497A60895CD8C40847200008500244F720000810024048C +S123AA7B0F02207A7204008500241BB61C5F975AA602CDD5CBD601155F97A60ACDD5CBD6C6 +S123AA9B82356B02205872060085002451B61C5F975AA602CDD5CBD601295F97A60ACDD50A +S123AABBCBD682356B022036720000820024217200008100240AB61DA10926040F02201E0C +S123AADBB63E5F97A60ACDD5CBD682356B02200EB63E5F97A60ACDD5CBD682356B027B02AA +S123AAFBA4F04EA40F6B01720000850024067B01AA016B017B02A40F6B034B047B0297A6DB +S123AB1B0295CD8C40844B047B0497A60195CD8C40847200008500244F720000810024041F +S123AB3B0F02207A7204008500241BB61C5F975AA602CDD5CBD601155F97A60ACDD5C5D60B +S123AB5B82356B02205872060085002451B61C5F975AA602CDD5CBD601295F97A60ACDD549 +S123AB7BC5D682356B022036720000820024217200008100240AB61DA10A26040F02201E50 +S123AB9BB63E5F97A60ACDD5C5D682356B02200EB63E5F97A60ACDD5C5D682356B027B02F5 +S123ABBBA4F04EA40F6B01720000850024067B01AA016B017B02A40F6B034B047B0297A61A +S123ABDB0495CD8C40844B047B0497A60395CD8C40843D01273AA6016B03B614A102250A90 +S123ABFBB614A1052404A6096B03B614A103250CB614A10524067B03AA046B03B614A1043F +S123AC1B2512B614A105240C7B03AA026B032004A60F6B03B618A102260F7202008200249F +S123AC3B06A60F6B0320020F034B047B0497A60595CD8C40843D00273AA6016B03B614A1B8 +S123AC5B02250AB614A1052404A6096B03B614A103250CB614A10524067B03AA046B03B666 +S123AC7B14A1042512B614A105240C7B03AA026B032004A60F6B03B618A101260F7202002D +S123AC9B82002406A60F6B0320020F034B047B0497A60695CD8C40847B03974B04AE000FAE +S123ACBBA60795CD8C40847200008500244F720000810024040F02207A7204008500241BAC +S123ACDBB61C5F975AA602CDD5CBD6010B5F97A60ACDD5CBD682436B0220587206008500AC +S123ACFB2451B61C5F975AA602CDD5CBD6011F5F97A60ACDD5CBD682436B022036720000B0 +S123AD1B820024217200008100240AB61DA10726040F02201EB63F5F97A60ACDD5CBD682D8 +S123AD3B436B02200EB63F5F97A60ACDD5CBD682436B027B02A40F6B037200008500240647 +S123AD5B7B03AA016B034B047B0497A60995CD8C40840F03720000850024323D1C270CB6D6 +S123AD7B1CA1052406A6096B032022B61CA105250CB61CA1092406A6076B032010B61CA15C +S123AD9B09250AB61CA10D2404A60B6B034B047B0497A60A95CD8C40840F037200008500C5 +S123ADBB2438B61C4AA10C24075F9758DE8498FC20287B03977B03977B03977B03977B03C6 +S123ADDB97A6096B0320137B03977B03977B03977B03977B0397A6076B034B047B0497A6DE +S123ADFB0B95CD8C4084A6046B03B614A10324043D022604A60C6B037200008500241C7297 +S123AE1B0400850024087B03AA026B03200D720600850024067B03AA016B034B047B049776 +S123AE3BA60C95CD8C4084A60E6B03B618A104260772000081002504A60F6B034B047B04C0 +S123AE5B97A60D95CD8C4084BE3AA60A625F97D682356B027B02A4F04EA40F6B017B02A43E +S123AE7B0F6B037B01AA016B014B047B0297A60E95CD8C40844B047B0497A60F95CD8C4092 +S123AE9B84BE3AA664625F97A60A62D682356B027B02A4F04EA40F6B017B02A40F6B037B12 +S123AEBB01AA016B014B047B0297A61095CD8C40844B047B0497A61195CD8C4084BE3AA624 +S123AEDB6462D682356B027B02A4F04EA40F6B017B02A40F6B037B01AA016B014B047B0218 +S123AEFB97A61295CD8C40844B047B0497A61395CD8C4084A6016B03720800810024067BAD +S123AF1B03AA026B033D0327087B03AA086B0320067B03AA046B034B047B0497A61495CDA7 +S123AF3B8C4084720000820024217200008100240AB61DA10626040F02201EB6405F97A6C3 +S123AF5B0ACDD5C5D682356B02200EB6405F97A60ACDD5C5D682356B027B02A4F04EA40F2A +S123AF7B6B017B02A40F6B037200008100240B720000850024043D1C26067B01AA016B014F +S123AF9B4B047B0297A61595CD8C40844B047B0497A61695CD8C4084720000820024217244 +S123AFBB00008100240AB61DA10526040F02201EB6405F97A60ACDD5CBD6823F6B02200E96 +S123AFDBB6405F97A60ACDD5CBD6823F6B027B02A40F6B034B047B0497A61795CD8C4084D3 +S123AFFB720000820024217200008100240AB61DA10426040F02201EB6415F97A60ACDD5A8 +S123B01BC5D682356B02200EB6415F97A60ACDD5C5D682356B027B02A4F04EA40F6B017B2D +S123B03B02A40F6B037B01AA016B017200008100240CB61DA10326067B01A40E6B014B048C +S123B05B7B0297A61895CD8C40844B047B0497A61995CD8C408472000082002421720000CC +S123B07B8100240AB61DA10126040F02201EB6425F97A60ACDD5CBD682356B02200EB642E9 +S123B09B5F97A60ACDD5CBD682356B027B02A4F04EA40F6B017B02A40F6B037B01AA016BD6 +S123B0BB014B047B0297A61C95CD8C40844B047B0497A61D95CD8C40847200008200242186 +S123B0DB7200008100240AB61DA10226040F02201EB6425F97A60ACDD5C5D682356B022022 +S123B0FB0EB6425F97A60ACDD5C5D682356B027B02A4F04EA40F6B017B02A40F6B037B018C +S123B11BAA016B01B641A10A241D7200008100240EB61DA10326087B01A40E6B01200E7B09 +S123B13B01AA016B0120067B01A40E6B014B047B0297A61A95CD8C40844B047B0497A61B1D +S123B15B95CD8C40840F03720E0081002503CCB1EB720A0083002478720600860024137239 +S123B17B020082002406A60F6B032064A6016B03205E72000086002411720200820024067B +S123B19BA60F6B03204A0F032046720A008200251372020082002406A60F6B032032A60119 +S123B1BB6B03202C7206008100251372020082002406A60F6B032018A60E6B032012720A3A +S123B1DB008200240B72060081002404A60F6B034B047B0497A61E95CD8C4084A60F6B035D +S123B1FB7200008100240F720000820024083D1D2704A60B6B034B047B0497A61F95CD8C2E +S123B21B40845B03818872080081002403CCB2ACCD8DBE6B01B6191101266CB619A1FF270B +S123B23B663C1BB61BA11925683F1B7200008500253F720000820025387B01A1042632207B +S123B25B0ECD8DBE6B01AE000ACD88AACDA9AC7B01A10427ECAE0012A68095CD8C0DAE01A0 +S123B27BF4CD88AAAE0010A68095CD8C0D35AB00217B01A10A2608CD87A6CDA12120127B51 +S123B29B01A108260C200A3F1B7B01B719721300818481520D0F0D9C7B0D97A604421C8416 +S123B2BBB0CDD5A1961C0010CDD3592F080C0D7B0DA16A25E27B0DA169250CCE86B51F0BE1 +S123B2DBCE86B31F0920797B0DA106240CAE00001F0BAE00001F0920677B0D5F97CDD57360 +S123B2FB961C0005CDD5B37B0D97A604421D00041C84B0CDD5A17B0D97A604421C84B0CD3C +S123B31BD27C961C0001CDD5B37B0D97A604421D00041C84B0CDD5A1961C0010CDD27C9686 +S123B33B1C0001CDD38FAE86AFCDD27CAE86ABCDD27C961C0005CDD290961C0009CDD5B3B4 +S123B35B961C0009CDD5A15B0D81520CC65400A480A1802703CCB46DC654045F97CDD573EA +S123B37B961C0005CDD5B3AE0100CDD573961C0005CDD27C961C0001CDD5B3C654045F97F0 +S123B39BCDD573AE8528CDD41B961C0001CDD38F961C0009CDD5B31E0B891E0B89CDB2AEDF +S123B3BB5B04961C0009CDD5B3961C0009CDD5A1AE0036CDD4133C1EB61EA1282403CCB4CB +S123B3DB653F1EBE3AB3222206BE3AB324242E721C0085AE0036CDD5A1CDD4F0575772BBD0 +S123B3FB003A54BF3AAE0000BF38AE0000BF36BE3AB322220EBE3AB32424182006721D00A2 +S123B41B8520D0721E0085BE3AB322230C354800202016721F008520EEBE3AB32424063562 +S123B43B4C00202004354E0020BE3AB3222206BE3AB3242415720D008507720E00850B2082 +S123B45B05720F00850472120083721F5400721054015B0C8188B6184A27164A272F4A2725 +S123B47B474A27614A277B4A2603CCB51AAC00B5350F0172000081002404A60F6B014B0469 +S123B49B7B0297A60695CD8C4084CCB5350F0172000081002404A60F6B014B047B0297A610 +S123B4BB0595CD8C40842072A6046B0172000081002404A60C6B014B047B0297A60C95CD5E +S123B4DB8C40842055A60E6B0172000081002404A60F6B014B047B0297A60D95CD8C408464 +S123B4FB2038A60E6B0172000081002404A60F6B014B047B0297A61595CD8C4084201BA6C8 +S123B51B0B6B0172000081002404A60F6B014B047B0297A61F95CD8C4084848189CD8DBED9 +S123B53B6B02B61811022703CCBBA6B618A1FF2603CCBBA63C1AB61AA1192403CCBBB03F06 +S123B55B1A3F0F3F0E7208008100245172120081CD8DBE6B02CDB470CDA9AC72080081000F +S123B57B24067B02A1FF26E472080081002503CDA9AC7B02A1FF26087218008172130081BA +S123B59BAE0012A68095CD8C0DCD8DBEA1FF26F9AE0010A68095CD8C0DAC00BBB0CD8DBEC6 +S123B5BB6B02721200817B024A27194A27284A27374A27464A2603CCBB354A2603CCBB6B67 +S123B5DBAC00BB883D032703CCBB88B60043A401B700AC00BB883D032703CCBB88B601432D +S123B5FBA401B701AC00BB883D032703CCBB88B60243A401B702AC00BB8872000085002503 +S123B61B03CCB81FB61C4AA10C24075F9758DE8658FCAC00B811725D0115271A725F0115E9 +S123B63B725C010BC6010BA1182403CCBB88725F010BAC00BB88351E0115AC00BB88725D5D +S123B65B0129271A725F0129725C011FC6011FA1182403CCBB88725F011FAC00BB88351E6F +S123B67B0129AC00BB88725D0116271A725F0116725C010CC6010CA1182403CCBB88725F15 +S123B69B010CAC00BB88351E0116AC00BB88725D012A271A725F012A725C0120C60120A188 +S123B6BB182403CCBB88725F0120AC00BB88351E012AAC00BB88725D0117271A725F0117BE +S123B6DB725C010DC6010DA1182403CCBB88725F010DAC00BB88351E0117AC00BB88725DB5 +S123B6FB012B271A725F012B725C0121C60121A1182403CCBB88725F0121AC00BB88351EC5 +S123B71B012BAC00BB88725D0118271A725F0118725C010EC6010EA1182403CCBB88725F6A +S123B73B010EAC00BB88351E0118AC00BB88725D012C271A725F012C725C0122C60122A1DB +S123B75B182403CCBB88725F0122AC00BB88351E012CAC00BB88725D0119271A725F011915 +S123B77B725C010FC6010FA1182403CCBB88725F010FAC00BB88351E0119AC00BB88725D0C +S123B79B012D271A725F012D725C0123C60123A1182403CCBB88725F0123AC00BB88351E1A +S123B7BB012DAC00BB88725D011A271A725F011A725C0110C60110A1182403CCBB88725FC0 +S123B7DB0110AC00BB88351E011AAC00BB88725D012E271A725F012E725C0124C60124A12F +S123B7FB182403CCBB88725F0124AC00BB88351E012EAC00BB883F1C72110085AC00BB8834 +S123B81BAC00BB8872000082002503CCBADCB61D4A273D4A27714A2603CCB8D94A2603CC2A +S123B83BB9094A2603CCB9614A2603CCB99D4A2603CCB9EE4A2603CCBA254A2603CCBA6AD2 +S123B85B4A2603CCBAA13F1D72110082AC00BB88B642AE000A515F9765909F6B01B642AE42 +S123B87B000A515F97659F6B020C027B02AE000A515F9765909F6B027B0297A60A429F1B9C +S123B89B01B742AC00BB88B642AE000A515F9765909F6B01B642AE000A515F97659F6B0241 +S123B8BB0C017B01AE000A515F9765909F6B017B0297A60A429F1B01B742AC00BB88B64141 +S123B8DBAE000A515F9765909F6B01B641AE000A515F97659F6B020C027B02A4016B027BCB +S123B8FB0297A60A429F1B01B741AC00BB88B641AE000A515F9765909F6B01B641AE000A57 +S123B91B515F97659F6B020C017B02A101260F7B01AE0003515F9765909F6B01200D7B01D2 +S123B93BAE000A515F9765909F6B010D0226080D012604A6016B017B0297A60A429F1B01A0 +S123B95BB741AC00BB88B640AE000A515F9765909F6B01B640AE000A515F97659F6B020C7A +S123B97B027B02A4036B020D0226080D012604A6016B017B0297A60A429F1B01B740AC0029 +S123B99BBB88B640AE000A515F9765909F6B01B640AE000A515F97659F6B020C017B02A1BF +S123B9BB0326087B01A4016B01200D7B01AE000A515F9765909F6B010D0226080D0126048D +S123B9DBA6016B017B0297A60A429F1B01B740AC00BB88B63FAE000A515F9765909F6B019A +S123B9FBB63FAE000A515F97659F6B020C027B02AE0003515F9765909F6B027B0297A60A7B +S123BA1B429F1B01B73FAC00BB88B63FAE000A515F9765909F6B01B63FAE000A515F9765D8 +S123BA3B9F6B020C017B02A10226087B01A4036B01200D7B01AE000A515F9765909F6B0149 +S123BA5B7B0297A60A429F1B01B73FAC00BB88B63EAE000A515F9765909F6B01B63EAE008C +S123BA7B0A515F97659F6B020C027B02AE0006515F9765909F6B027B0297A60A429F1B019D +S123BA9BB73EAC00BB88B63EAE000A515F9765909F6B01B63EAE000A515F97659F6B020C40 +S123BABB017B01AE000A515F9765909F6B017B0297A60A429F1B01B73EAC00BB88AC00BBDF +S123BADB88721A008672120081CD8DBE6B02CDB470CDA9AC720A008600240C7B02A1FF279A +S123BAFB067B02A10A26DE7B02A10A2606CD87A6CDA121720A00860025107B02A104260A8F +S123BB1BB60343A401B703CDA9AC7B02A1FF265D721B0086721300812053721000857211D3 +S123BB3B00823C1CB61CA401A101260A721400857217008520087215008572160085B61C97 +S123BB5BA10D25293F1C7211008572120085201D72100082721100853C1DB61DA10B250D0B +S123BB7BCD8A663F1D7211008272140081AE0012A68095CD8C0DCD8DBEA1FF26F9AE00100B +S123BB9BA68095CD8C0DCD9A7C200A3F1A7B02B7187213008185815230B603A1012703CCD4 +S123BBBBBCEF0F307B305F97D601156B057B305F97D6010B97A63C42011B0524015C021F7E +S123BBDB0301961C00081F017B305F975872FB011603FF7B305F97D601296B057B305F9737 +S123BBFBD6011F97A63C42011B0524015C021F0301961C001C1F017B305F975872FB011643 +S123BC1B03FF0C307B30A10A259AB63F97A63C4201BB3E24015C021F0601725D010127184F +S123BC3B1E06130825121E06131C240C1E08131C2406350100002020725D010227181E06C2 +S123BC5B130A25121E06131E240C1E0A131E24063501000020023F00725D010327181E069C +S123BC7B130C25121E061320240C1E0C13202406350100012020725D010427181E06130E72 +S123BC9B25121E061322240C1E0E132224063501000120023F01725D010527181E06131046 +S123BCBB25121E061324240C1E1013242406350100022020725D010627181E061312251207 +S123BCDB1E061326240C1E12132624063501000220023F023D002706721C500A2004721D85 +S123BCFB500A3D012706721A500A2004721B500A3D022706721E500A2004721F500A5B307F +S123BD1B8152031E01720E008600240D721F0086A630CDA8ADAC00BF067206008400241622 +S123BD3B720E008100240F72170084721F0084CDA33AAC00BF0672060083002503CCBE04C2 +S123BD5B72170083721800854BFF5FA61895CD92A7843501002FAE00534F95CD8F0B350A33 +S123BD7B025C350C025D3501025EA6126B037B035F977B03905F909772A2001290D6013322 +S123BD9BD7024D0C037B03A11625E3AE001689AE024DCD88455B021F017B01C702637B028C +S123BDBBC702643518002CA618CD8E76AE81DB89AE015DCDD2485B02BF30BE302607720CC4 +S123BDDB00810025E7721D00813F163F29BE30270C35A1002172130086AC00BF0635A00081 +S123BDFB2172120086AC00BF0672040083002503CCBF0672020083002503CCBEE6B620A1D0 +S123BE1B4E2603CCBEE6B61FA1012703CCBF06BE221C0006B33A250CBE241D0006B33A22B6 +S123BE3B03CCBF06721300834BFF5FA61695CD92A7843509002FAE00534F95CD8F0B5500B5 +S123BE5B3A025DB63BA4FFC7025EB620A14826123501025C550022025FB623A4FFC7026067 +S123BE7B2016B620A14C2610725F025C550024025FB625A4FFC70260AE001489AE024DCDAF +S123BE9B88455B021F017B01C702617B02C702623516002CA616CD8E76AE81DB89AE015D48 +S123BEBBCDD2485B02BF30BE3027EE721D00813F163F29BE30270A35C900217213008620F7 +S123BEDB2A35C8002172120086202072080083002419721900833F134B305FA64795CD925C +S123BEFBA7843508002FA653CD90AF5B0381520C1E0872060082002503CCCD7572170082E9 +S123BF1B3F135FBF045FBF063F2E0F0A0F0BAE81E389AE01D5CDD2485B02BF32BE3226035D +S123BF3BCCCAEEAE81E389AE01D5CD8E145B02016B0B027B0B5F97D601DAA130260635306B +S123BF5B00172004353100177B0BAB076B0B7B0B5F97D601D5A1302403CCC07B7B0B5F97B9 +S123BF7BD601D5A13A2503CCC07B7B0B5F97D601D5A030B72E0C0B7B0B5F97D601D5A130FF +S123BF9B2403CCC07B7B0B5F97D601D5A13A2503CCC07B7B0B5F97D601D5A0306B067B0B33 +S123BFBB5F975AD601D597A60A429FA0E01B06B72E0C0B7B0B5F97D601D5A1302403CCC0F5 +S123BFDB7B7B0B5F97D601D5A13A2503CCC07B7B0B5F97D601D5A0306B067B0B5F975AD680 +S123BFFB01D597A60A429FA0E06B057B0B5F975A5AD601D597A664429FA0C01B051B06B77E +S123C01B2E0C0B7B0B5F97D601D5A13025527B0B5F97D601D5A13A24477B0B5F97D601D5B6 +S123C03BA0306B067B0B5F975AD601D597A60A429FA0E06B057B0B5F975A5AD601D597A6ED +S123C05B64429FA0C06B047B0B5F971D0003D601D597A6E8429FA0801B041B051B06B72EFA +S123C07B7B0B5F97D601D5A12C0C0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C0C7BAE +S123C09B0CA10A25E87B0CA101260E7B0B5F97D601D5A030C70137205C7B0CA10226207B02 +S123C0BB0B5F97D601D6A0306B067B0B5F97D601D597A60A429FA0E01B06C7013720367BB1 +S123C0DB0CA10326307B0B5F97D601D7A0306B067B0B5F97D601D697A60A429FA0E06B058F +S123C0FB7B0B5F97D601D597A664429FA0C01B051B06C701377B0B1B0C4C6B0B0F0C7B0BC7 +S123C11B5F1B0C24015C02D601D5A12E27080C0C7B0CA10A25E87B0CA101260E7B0B5F971D +S123C13BD601D5A030C70138205C7B0CA10226207B0B5F97D601D6A0306B067B0B5F97D6BC +S123C15B01D597A60A429FA0E01B06C7013820367B0CA10326307B0B5F97D601D7A0306BE5 +S123C17B067B0B5F97D601D697A60A429FA0E06B057B0B5F97D601D597A664429FA0C01B34 +S123C19B051B06C701387B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12E27080C8B +S123C1BB0C7B0CA10A25E87B0CA10126147B0B5F1B0C24015C025AD601D5A030C70139202C +S123C1DB7E7B0CA102262D7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015CE2 +S123C1FB025A5AD601D597A60A429FA0E01B06C70139204B7B0CA10326457B0B5F1B0C24C3 +S123C21B015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E0C2 +S123C23B6B057B0B5F1B0C24015C021D0003D601D597A664429FA0C01B051B06C701397B75 +S123C25B0B1B0C4C6B0B0F0C7B0B5F1B0C24015C02D601D5A12C27080C0C7B0CA10A25E822 +S123C27B7B0CA10126147B0B5F1B0C24015C025AD601D5A030C7013A207E7B0CA102262DBA +S123C29B7B0B5F1B0C24015C025AD601D5A0306B067B0B5F1B0C24015C025A5AD601D59723 +S123C2BBA60A429FA0E01B06C7013A204B7B0CA10326457B0B5F1B0C24015C025AD601D595 +S123C2DBA0306B067B0B5F1B0C24015C025A5AD601D597A60A429FA0E06B057B0B5F1B0CEB +S123C2FB24015C021D0003D601D597A664429FA0C01B051B06C7013A7B0B1B0C4C6B0B0F2D +S123C31B0C7B0B5F1B0C24015C02D601D5A13A27080C0C7B0CA10A25E87B0CA10126197B73 +S123C33B0B5F1B0C24015C025AD601D55F971D0030CF013BAC00C44E7B0CA10226337B0BAF +S123C35B5F1B0C24015C025AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D559 +S123C37B97A60A421D01E072FB05CF013BAC00C44E7B0CA103264C7B0B5F1B0C24015C02B0 +S123C39B5AD601D55F971D00301F057B0B5F1B0C24015C025A5AD601D597A60A421D01E09B +S123C3BB1F037B0B5F1B0C24015C021D0003D601D597A664421D12C072FB0372FB05CF015D +S123C3DB3B20707B0CA104266A7B0B5F1B0C24015C025AD601D55F971D00301F057B0B5FD6 +S123C3FB1B0C24015C025A5AD601D597A60A421D01E01F037B0B5F1B0C24015C021D0003BC +S123C41BD601D597A664421D12C01F017B0B5F1B0C24015C021D0004D601D55F9790AE03CC +S123C43BE8CDD5521DBB8072FB0172FB0372FB05CF013B7B0B977B0B5F1B0C24015C025C46 +S123C45BAE86A989AE01D5CD8E145B02016B0B027B0B5F97D601D5A13A0C0B7B0B5F97D622 +S123C47B01D5A1017B0B5F97D601D6B72FB62EA1192703CCC588B62FA1012703CCC58872F9 +S123C49B18008372140083721900857B0BCD8EE24D2603CCCABC7B0BAB0F6B0B7B0B970C5F +S123C4BB0B9F5F97D601D55F974F021F087B0B970C0B9F5F97D601D51B096B0924020C085C +S123C4DB1E08A664625F979FB7427B0B970C0B9F5F97D601D5B7417B0B970C0B9F5F97D611 +S123C4FB01D5B7407B0B970C0B9F5F97D601D5B73F7B0B970C0B9F5F97D601D5B73E7B0BF5 +S123C51B970C0B9F5F97D601D5B73D7B0B5F97D601D5B73CCD8A667B0B5F97D601D66B07A6 +S123C53B7B0B5F97D601D76B0A7B0B5F975C89AE01D5CD88455B021F087B0A5F974F02016D +S123C55B1B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA12C +S123C57B7825F0AE000ACD8C28AC00CABCB62EA1122703CCC610B62FA10226797B0BCD8E39 +S123C59BE24D2603CCCABC7B0BAB0F6B0B7B0B5F97724D01D526043F032004350100037BC7 +S123C5BB0B5F97D601D66B077B0B5F97D601D76B0A7B0B5F975C89AE01D5CD88455B021FA2 +S123C5DB087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97723C +S123C5FB4F01D50C0C7B0CA17825F0AE000ACD8C28AC00CABCB62EA1132703CCC755B62F30 +S123C61BA1032703CCC7557B0BCD8EE24D2603CCCABC7B0BAB0F6B0B3D032703CCC7397B53 +S123C63B0B5F97D601D5A10126257B0B5F97724D01D626063F00AC00C6FE7B0B5F97D60101 +S123C65BD6A1012703CCC6FE35010000CCC6FE7B0B5F97D601D5A102261F7B0B5F97724D78 +S123C67B01D626043F01207B7B0B5F97D601D6A101267035010001206A7B0B5F97D601D575 +S123C69BA103261F7B0B5F97724D01D626043F0220517B0B5F97D601D6A101264635010037 +S123C6BB0220407B0B5F97D601D5A10426167B0B5F97724D01D626067211008420257210E4 +S123C6DB0084201F7B0B5F97D601D5A10526147B0B5F97724D01D626067213008420047293 +S123C6FB1200847B0B5F97D601D76B077B0B5F97D601D86B0A7B0B5F975C5C89AE01D5CD3B +S123C71B88455B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0CA0 +S123C73B7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C28AC00CABCB62EA1162703C9 +S123C75BCCC81EB62FA1042703CCC81E7B0BCD8EE24D2603CCCABC7B0BAB0F6B0B7B0B5F7C +S123C77B97D601D54A6B0C7B0C5F977B0B905F909790D601D6D7010B7B0C5F977B0B905F6B +S123C79B909790D601D7D701157B0C5F977B0B905F909790D601D8D7011F7B0C5F977B0BD6 +S123C7BB905F909790D601D9D701297B0B5F97D601DA6B077B0B5F97D601DB6B0A7B0B5FDC +S123C7DB971C000589AE01D5CD88455B021F087B0A5F974F02011B0724015C0213082603A1 +S123C7FB7B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C28AC01 +S123C81B00CABCB62EA1162703CCC8F8B62FA1052703CCC8F87B0BCD8EE24D2603CCCABC56 +S123C83B7B0BAB0F6B0B7B0B5F97D601D5A102240B7B0B5F97D601D5B71F20497B0B5F9746 +S123C85BD601D5A102263E7B0B5F97D601D76B067B0B5F97D601D65F974F02011B062401B4 +S123C87B5CB7259FB7247B0B5F97D601D96B067B0B5F97D601D85F974F02011B0624015C35 +S123C89BB7239FB7227B0B5F97D601DA6B077B0B5F97D601DB6B0A7B0B5F971C000589AE11 +S123C8BB01D5CD88455B021F087B0A5F974F02011B0724015C02130826037B0A97A6016B81 +S123C8DB0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C28AC00CABCB62EA143 +S123C8FB112669B62FA10626637B0BCD8EE24D273F7B0BAB0F6B0B7B0B5F97D601D56B079E +S123C91B7B0B5F97D601D66B0A7B0B5F9789AE01D5CD88455B021F087B0A5F974F02011BCB +S123C93B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA178EB +S123C95B25F0AE000ACD8C28AC00CABCB62EA1252703CCCA35B62FA1072703CCCA357B0B91 +S123C97BCD8EE24D2603CCCABC7B0BAB0F6B0B0F0C7B0C5F97897B0D5F1B0E24015C02D653 +S123C99B01D585D701490C0C7B0CA11425E37B0B5F1B0C24015C02D601D56B077B0B5F1BF3 +S123C9BB0C24015C02D601D66B0A7B0B5F1B0C24015C028901AE01D5CD88455B021F087B71 +S123C9DB0A5F974F02011B0724015C02130826037B0A97A6016B0A0F0C7B0C5F97724F016B +S123C9FBD50C0C7B0CA17825F035EA002D4BFF5FA61495CD92A784A607CD8FF872060081AE +S123CA1B002405A630CDA2DDA630CDA8AD72150083AE000ACD8C28CCCABCB62EA11326F76A +S123CA3BB62FA10A267B7B0BCD8EE24D27737B0BAB0F6B0B7B0B5F97D601D56B0C7B0C5FC1 +S123CA5B977B0B905F909790D601D6D701007B0B5F97D601D76B077B0B5F97D601D86B0A33 +S123CA7B7B0B5F975C5C89AE01D5CD88455B021F087B0A5F974F02011B0724015C021308AB +S123CA9B26037B0A97A6016B0A0F0C7B0C5F97724F01D50C0C7B0CA17825F0AE000ACD8C09 +S123CABB280D0A2727B62FA1012721B62FA107271BB62FA1082715B62FA109270F4BFF5FF4 +S123CADBA64795CD92A784A652CD90AFCD9A7CAC00CD75AE81EC89AE01D5CDD2485B02BF2B +S123CAFB32BE3227330F0C7B0C5F97724F01D50C0C7B0CA17825F0721E0081A631CDA14FFA +S123CB1BA631CDA209A631CDA2663F12721E0084351F0021AC00CD75AE817E89AE01D5CDAC +S123CB3BD2485B02BF32BE3227300F0C7B0C5F97724F01D50C0C7B0CA17825F0721600861D +S123CB5B721B008272170081721A00833F12721F008435DC0021AC00CD75AE816389AE013E +S123CB7BD5CDD2485B02BF32BE3227260F0C7B0C5F97724F01D50C0C7B0CA17825F0721FC2 +S123CB9B008472170084721A008372170086AC00CD75AE817289AE01D5CDD2485B02BF32F6 +S123CBBBBE3227350F0C7B0C5F97724F01D50C0C7B0CA17825F072170086721A008272116E +S123CBDB0086CDA3CE3F16A631CDA440A630CDA8AD35970021AC00CD75AE81F289AE01D594 +S123CBFBCDD2485B02BF32BE32272C0F0C7B0C5F97724F01D50C0C7B0CA17825F07216001A +S123CC1B8172160083AE00C8CD8C2835A10021721D0086AC00CD75AE81FC89AE01D5CDD2A1 +S123CC3B485B02BF32BE32271A0F0C7B0C5F97724F01D50C0C7B0CA17825F072180086AC56 +S123CC5B00CD75AE81DB89AE01D5CDD2485B02BF32BE32271A0F0C7B0C5F97724F01D50CBB +S123CC7B0C7B0CA17825F072160081AC00CD75AE820689AE01D5CDD2485B02BF32BE32264F +S123CC9B12AE820D89AE01D5CDD2485B02BF32BE3227300F0C7B0C5F97724F01D50C0C7BDB +S123CCBB0CA17825F0721700817213008672150083AE00C8CD8C2835A00021721C0086AC4F +S123CCDB00CD75AE81C589AE01D5CDD2485B02BF32BE3227170F0C7B0C5F97724F01D50C54 +S123CCFB0C7B0CA17825F0CDA0F1206EAE822389AE01D5CDD2485B02BF32BE3227170F0C8A +S123CD1B7B0C5F97724F01D50C0C7B0CA17825F0CDA0F12045AE81C089AE01D5CDD2485B12 +S123CD3B02BF32BE3227170F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0F1201C7202A9 +S123CD5B00860024150F0C7B0C5F97724F01D50C0C7B0CA17825F0CDA0F15B0C81725F5290 +S123CD7B44725F5245725F5246725F524335065242352C5245721A5016C6501797C650186E +S123CD9B97725F5014C6501B977218501CC6501D9772185019C6500797C65008AA30C7506A +S123CDBB08C6500997C65005AA30C75005C6500CAAFEC7500CC6500D97C6500E9735085096 +S123CDDB0AC65011AAB8C75011C65012AA44C75012C65013977214500F721250C535B450C3 +S123CDFBC4725F5402725F5401725F54003501540735015401AE0064CD889372105401727F +S123CE1B5F5341350153433507534535FF534635FF534435015340350153419ACD87A6CDD4 +S123CE3B8CA5CD9BA6CDA0F635300017721800813F16CDBF09CDB537CD89A0CDB365CDA9B6 +S123CE5BACCDBBB2CDBD1C20E7B629A17825023F29B62AA17825023F2A720C0082002504E7 +S123CE7B3D162615B629973C299F5F97C65241D701D53F277218008280B62A973C2A9F5FC2 +S123CE9B97C65241D7015D20EF720C008200241CB62BB12C220E3C2BB62B5F97D6024DC7E7 +S123CEBB52412008721D0082721F524580897200008500244F720000810024040F02207A26 +S123CEDB7204008500241BB61C5F975AA602CDD5CBD6010B5F97A60ACDD5C5D682356B02D9 +S123CEFB205872060085002451B61C5F975AA602CDD5CBD6011F5F97A60ACDD5C5D6823562 +S123CF1B6B022036720000820024217200008100240AB61DA10826040F02201EB63F5F97F5 +S123CF3BA60ACDD5C5D682356B02200EB63F5F97A60ACDD5C5D682356B027B02A4F04EA494 +S123CF5B0F6B017B02A40F6B02720200820024067B01AA016B014B047B02974F95CD8C4007 +S123CF7B844B047B0397A60895CD8C40840F02720E0081002407720A00830025077206006A +S123CF9B8600244D720600810024087B02AA016B022011720200820024087B02AA016B02D9 +S123CFBB20020F02720A00820024087B02AA0E6B022011720200820024087B02AA0F6B025D +S123CFDB20020F02720600860024067B02AA016B024B047B0397A61E95CD8C408485813B27 +S123CFFB004ABE48893B004DBE4B89725F53423C15B615A1322404AC00D2113F1572060047 +S123D01B81002519720A0082002412BE081C0001BF08A3019025065FBF08CDA0F1720600F9 +S123D03B810024035FBF08901000813C14B614A10625063F14901200823C10B610A128257F +S123D05B11720C008100240A3F10721D008172140086720C00810025023F10720800810098 +S123D07B241C720200810024153C0FB60FA10F250D72080081002404721900813F0F72083A +S123D09B00810025023F0F720A008600241C720200810024153C43B643A10A250D720A003A +S123D0BB86002404721B00863F43720A00860025023F43720800810025303C0EB60EA13232 +S123D0DB2528721800813F0E72000082002406721100823F1D7200008500240E72110085DC +S123D0FB3F1C7215008572170085720800810024023F0E7206008100241C720A00820024D3 +S123D11B157204008300240E3C13B613A14525063F1372180083720400830025023F137244 +S123D13B0800830024257206008100241E720A00820024175FBF04BE061C0001BF06A3011C +S123D15B9125325FBF06CDA0F1202A720800830025237206008100241C720A008200241547 +S123D17B5FBF06BE041C0001BF04A3019125065FBF04CDA0F1720C00860024103C0DB60DA6 +S123D19BA15B25083C353F0D721E0086720C00860025023F0D7206008600240D3C0CB60CC4 +S123D1BBA15B25053F0CCDA0F1720200810024023F0C720E0084002415720E008100240EAB +S123D1DB3C12B612A12325063F1272160084720E00840025023F1272080085002415BE0A52 +S123D1FB1C0001BF0AA303E9250C5FBF0A7214008420035FBF0A720800820024173C27B69D +S123D21B27A10B250F3F2772190082721600824529283F2985BF4B32004D85BF4832004A57 +S123D23B80BF485A5C7D26FC72B000488189520420261F011E091F03F626041E05201F1EDA +S123D25B01F61E03F127071E055C1F05200A1E015C1F011E035C20DE1E05F626D55F5B06C1 +S123D27B81E60388E60288E60188F626040D01270EA880200AE60388E60288E60188F6883B +S123D29B1A02270BBE44260A85BF4485BF46815B048190893F495839499EB7481E035839B2 +S123D2BB499E5FB048271F972228A1E9251E409716057B04AA804490565A26FA6B04170553 +S123D2DB721E0045202C721E00452020206B908520B6A11824F8BB48B74890BE46B645AA73 +S123D2FB804490565A26FAB74590BF467B04AA806B04BE46B64534492204241E261C72F0BA +S123D31B05120424073349435026014C4D2B1E26165D2613BF46BF44201F72FB05190424C4 +S123D33B0C46563C4820063A4858492AFABF464897B64895344956BF4490855B0481B644F9 +S123D35BF4B749B644F82A05F82B1B201DB644F0261AB645E101260CB646E1022606B647DD +S123D37BE103270E2404A6FF2002A601720F004901409C81B644BA452711E60388E60288A5 +S123D39BE60188F6881A0226035B048190897B03720F004404A8806B03AA80080449B748E8 +S123D3BB0604B645721E004548B64449B048AB7FB7443518004907030803B645BE4690583A +S123D3DB39480703250A1104250D22041305250772F0051204905C584909033A4926DFB66F +S123D3FB482B059058493A44480803364446B74590BF4690855B048189CDD29085CCD5B3BD +S123D41BB644BA452712E60388E60288FE891E012607BF44BF465B04817B01720F004404DA +S123D43BA8806B01AA800802490602A07EB748B645721E004548B64449BB48B7447B02BE03 +S123D45B4442BF487B03BE44423F4AAD5E7B04BE44429FAD647B02BE4542AD4F7B03BE4518 +S123D47B42AD537B04BE45423F46AD5C7B02BE4642AD437B03BE4642AD4E7B04BE46429E24 +S123D49BBB4624063C452602AD46BE49B6482B06384559493A444808013644463845B74549 +S123D4BBBF462404721000475B048172BB0049BF4924023C48819FBB45B7459EB94AB74A91 +S123D4DB24F3BE485CBF488172BB0045BF4524E53C4A27EE81CDD4F6BE468189BE4427556E +S123D4FB4F5802A07F2A075FBF44BF4620479089A1372AF3565E90BE46A01727272A14406D +S123D51BA1102B0790935FA01027195490564A26FA2011A1102B0793905FA0102706905898 +S123D53B594A26FA3D442A0653905026015C90BF46BF449085858188BF49909F5E42BF4889 +S123D55BBE49909E4272BB0048BF48BE49909F423F4A72BB004984813F47BF4526033F4407 +S123D57B814545442A0350BF45A68E5D2B0E3D452606A686BE462B044A582AFC5838444603 +S123D59B56BF45B7448188F6B744E601B745E602B746E603B747848188B644F7B645E7010D +S123D5BBB646E702B647E70384813580004820023F485D2A095072100048721200484D2AE8 +S123D5DB0540901200486237482A065F9724055081270150813580004B20023F4B905D2A40 +S123D5FB0A90507210004B7212004B4D2A05409012004B9062374B2A09905F909724079065 +S10BD61B508127029050818028 +S12386C4000000000000000000000000000000000000000000000030000000000000000062 +S11D86E44E00001E0005000000000000000000000000000000000000000007 +S12386FE000000000000000000000000000000000000000000000000000000000000000058 +S123871E00000000000000000000000000000000000000000000000000000026E20000002F +S120873E0000000000000000007777772E6966697368372E636F6D000000000000D0 +S12380008200875B8200D6228200D6228200D6228200D6228200D6228200D6228200D622A2 +S12380208200D6228200D6228200D6228200D6228200D6228200D6228200D6228200D6226C +S12380408200D6228200D6228200D6228200D6228200D6228200D6228200CEA48200CE6498 +S12380608200D6228200CFFA8200D6228200D6228200D6228200D6228200D6228200D6225B +S11086B786C462000086FE640100875B003B +S903FFFFFE diff --git a/doc/多控协议/3控源码/STM8S005K6.h b/doc/多控协议/3控源码/STM8S005K6.h new file mode 100644 index 0000000..63a0ace --- /dev/null +++ b/doc/多控协议/3控源码/STM8S005K6.h @@ -0,0 +1,5 @@ +/* STM8S005K6.h */ +#ifdef MCU_NAME +#define STM8S005K6 1 +#endif +#include "STM8S105K.h" diff --git a/doc/多控协议/3控源码/STM8S105K.h b/doc/多控协议/3控源码/STM8S105K.h new file mode 100644 index 0000000..e6a237f --- /dev/null +++ b/doc/多控协议/3控源码/STM8S105K.h @@ -0,0 +1,786 @@ +/* STM8S105K.h */ + +/* Copyright (c) 2003-2012 STMicroelectronics */ + +#ifndef __STM8S105K__ +#define __STM8S105K__ + +/* STM8S105K */ + + /* Check MCU name */ + #ifdef MCU_NAME + #define STM8S105K 1 + #if (MCU_NAME != STM8S105K) + #error "wrong include file STM8S105K.h for chosen MCU!" + #endif + #endif + + #ifdef __CSMC__ + #define DEF_8BIT_REG_AT(NAME,ADDRESS) volatile unsigned char NAME @ADDRESS + #define DEF_16BIT_REG_AT(NAME,ADDRESS) volatile unsigned int NAME @ADDRESS + #endif + + #ifdef __RAISONANCE__ + #define DEF_8BIT_REG_AT(NAME,ADDRESS) at ADDRESS hreg NAME + #define DEF_16BIT_REG_AT(NAME,ADDRESS) at ADDRESS hreg16 NAME + #endif + +/* Port A */ +/*****************************************************************/ + +/* Port A data output latch register */ +DEF_8BIT_REG_AT(PA_ODR,0x5000); + +/* Port A input pin value register */ +DEF_8BIT_REG_AT(PA_IDR,0x5001); + +/* Port A data direction register */ +DEF_8BIT_REG_AT(PA_DDR,0x5002); + +/* Port A control register 1 */ +DEF_8BIT_REG_AT(PA_CR1,0x5003); + +/* Port A control register 2 */ +DEF_8BIT_REG_AT(PA_CR2,0x5004); + +/* Port B */ +/*****************************************************************/ + +/* Port B data output latch register */ +DEF_8BIT_REG_AT(PB_ODR,0x5005); + +/* Port B input pin value register */ +DEF_8BIT_REG_AT(PB_IDR,0x5006); + +/* Port B data direction register */ +DEF_8BIT_REG_AT(PB_DDR,0x5007); + +/* Port B control register 1 */ +DEF_8BIT_REG_AT(PB_CR1,0x5008); + +/* Port B control register 2 */ +DEF_8BIT_REG_AT(PB_CR2,0x5009); + +/* Port C */ +/*****************************************************************/ + +/* Port C data output latch register */ +DEF_8BIT_REG_AT(PC_ODR,0x500a); + +/* Port C input pin value register */ +DEF_8BIT_REG_AT(PC_IDR,0x500b); + +/* Port C data direction register */ +DEF_8BIT_REG_AT(PC_DDR,0x500c); + +/* Port C control register 1 */ +DEF_8BIT_REG_AT(PC_CR1,0x500d); + +/* Port C control register 2 */ +DEF_8BIT_REG_AT(PC_CR2,0x500e); + +/* Port D */ +/*****************************************************************/ + +/* Port D data output latch register */ +DEF_8BIT_REG_AT(PD_ODR,0x500f); + +/* Port D input pin value register */ +DEF_8BIT_REG_AT(PD_IDR,0x5010); + +/* Port D data direction register */ +DEF_8BIT_REG_AT(PD_DDR,0x5011); + +/* Port D control register 1 */ +DEF_8BIT_REG_AT(PD_CR1,0x5012); + +/* Port D control register 2 */ +DEF_8BIT_REG_AT(PD_CR2,0x5013); + +/* Port E */ +/*****************************************************************/ + +/* Port E data output latch register */ +DEF_8BIT_REG_AT(PE_ODR,0x5014); + +/* Port E input pin value register */ +DEF_8BIT_REG_AT(PE_IDR,0x5015); + +/* Port E data direction register */ +DEF_8BIT_REG_AT(PE_DDR,0x5016); + +/* Port E control register 1 */ +DEF_8BIT_REG_AT(PE_CR1,0x5017); + +/* Port E control register 2 */ +DEF_8BIT_REG_AT(PE_CR2,0x5018); + +/* Port F */ +/*****************************************************************/ + +/* Port F data output latch register */ +DEF_8BIT_REG_AT(PF_ODR,0x5019); + +/* Port F input pin value register */ +DEF_8BIT_REG_AT(PF_IDR,0x501a); + +/* Port F data direction register */ +DEF_8BIT_REG_AT(PF_DDR,0x501b); + +/* Port F control register 1 */ +DEF_8BIT_REG_AT(PF_CR1,0x501c); + +/* Port F control register 2 */ +DEF_8BIT_REG_AT(PF_CR2,0x501d); + +/* Flash */ +/*****************************************************************/ + +/* Flash control register 1 */ +DEF_8BIT_REG_AT(FLASH_CR1,0x505a); + +/* Flash control register 2 */ +DEF_8BIT_REG_AT(FLASH_CR2,0x505b); + +/* Flash complementary control register 2 */ +DEF_8BIT_REG_AT(FLASH_NCR2,0x505c); + +/* Flash protection register */ +DEF_8BIT_REG_AT(FLASH_FPR,0x505d); + +/* Flash complementary protection register */ +DEF_8BIT_REG_AT(FLASH_NFPR,0x505e); + +/* Flash in-application programming status register */ +DEF_8BIT_REG_AT(FLASH_IAPSR,0x505f); + +/* Flash Program memory unprotection register */ +DEF_8BIT_REG_AT(FLASH_PUKR,0x5062); + +/* Data EEPROM unprotection register */ +DEF_8BIT_REG_AT(FLASH_DUKR,0x5064); + +/* External Interrupt Control Register (ITC) */ +/*****************************************************************/ + +/* External interrupt control register 1 */ +DEF_8BIT_REG_AT(EXTI_CR1,0x50a0); + +/* External interrupt control register 2 */ +DEF_8BIT_REG_AT(EXTI_CR2,0x50a1); + +/* Reset (RST) */ +/*****************************************************************/ + +/* Reset status register 1 */ +DEF_8BIT_REG_AT(RST_SR,0x50b3); + +/* Clock Control (CLK) */ +/*****************************************************************/ + +/* Internal clock control register */ +DEF_8BIT_REG_AT(CLK_ICKR,0x50c0); + +/* External clock control register */ +DEF_8BIT_REG_AT(CLK_ECKR,0x50c1); + +/* Clock master status register */ +DEF_8BIT_REG_AT(CLK_CMSR,0x50c3); + +/* Clock master switch register */ +DEF_8BIT_REG_AT(CLK_SWR,0x50c4); + +/* Clock switch control register */ +DEF_8BIT_REG_AT(CLK_SWCR,0x50c5); + +/* Clock divider register */ +DEF_8BIT_REG_AT(CLK_CKDIVR,0x50c6); + +/* Peripheral clock gating register 1 */ +DEF_8BIT_REG_AT(CLK_PCKENR1,0x50c7); + +/* Clock security system register */ +DEF_8BIT_REG_AT(CLK_CSSR,0x50c8); + +/* Configurable clock control register */ +DEF_8BIT_REG_AT(CLK_CCOR,0x50c9); + +/* Peripheral clock gating register 2 */ +DEF_8BIT_REG_AT(CLK_PCKENR2,0x50ca); + +/* CAN clock control register */ +DEF_8BIT_REG_AT(CLK_CANCCR,0x50cb); + +/* HSI clock calibration trimming register */ +DEF_8BIT_REG_AT(CLK_HSITRIMR,0x50cc); + +/* SWIM clock control register */ +DEF_8BIT_REG_AT(CLK_SWIMCCR,0x50cd); + +/* Window Watchdog (WWDG) */ +/*****************************************************************/ + +/* WWDG Control Register */ +DEF_8BIT_REG_AT(WWDG_CR,0x50d1); + +/* WWDR Window Register */ +DEF_8BIT_REG_AT(WWDG_WR,0x50d2); + +/* Independent Watchdog (IWDG) */ +/*****************************************************************/ + +/* IWDG Key Register */ +DEF_8BIT_REG_AT(IWDG_KR,0x50e0); + +/* IWDG Prescaler Register */ +DEF_8BIT_REG_AT(IWDG_PR,0x50e1); + +/* IWDG Reload Register */ +DEF_8BIT_REG_AT(IWDG_RLR,0x50e2); + +/* Auto Wake-Up (AWU) */ +/*****************************************************************/ + +/* AWU Control/Status Register */ +DEF_8BIT_REG_AT(AWU_CSR,0x50f0); + +/* AWU asynchronous prescaler buffer register */ +DEF_8BIT_REG_AT(AWU_APR,0x50f1); + +/* AWU Timebase selection register */ +DEF_8BIT_REG_AT(AWU_TBR,0x50f2); + +/* Beeper (BEEP) */ +/*****************************************************************/ + +/* BEEP Control/Status Register */ +DEF_8BIT_REG_AT(BEEP_CSR,0x50f3); + +/* Serial Peripheral Interface (SPI) */ +/*****************************************************************/ + +/* SPI Control Register 1 */ +DEF_8BIT_REG_AT(SPI_CR1,0x5200); + +/* SPI Control Register 2 */ +DEF_8BIT_REG_AT(SPI_CR2,0x5201); + +/* SPI Interrupt Control Register */ +DEF_8BIT_REG_AT(SPI_ICR,0x5202); + +/* SPI Status Register */ +DEF_8BIT_REG_AT(SPI_SR,0x5203); + +/* SPI Data Register */ +DEF_8BIT_REG_AT(SPI_DR,0x5204); + +/* SPI CRC Polynomial Register */ +DEF_8BIT_REG_AT(SPI_CRCPR,0x5205); + +/* SPI Rx CRC Register */ +DEF_8BIT_REG_AT(SPI_RXCRCR,0x5206); + +/* SPI Tx CRC Register */ +DEF_8BIT_REG_AT(SPI_TXCRCR,0x5207); + +/* I2C Bus Interface (I2C) */ +/*****************************************************************/ + +/* I2C control register 1 */ +DEF_8BIT_REG_AT(I2C_CR1,0x5210); + +/* I2C control register 2 */ +DEF_8BIT_REG_AT(I2C_CR2,0x5211); + +/* I2C frequency register */ +DEF_8BIT_REG_AT(I2C_FREQR,0x5212); + +/* I2C Own address register low */ +DEF_8BIT_REG_AT(I2C_OARL,0x5213); + +/* I2C Own address register high */ +DEF_8BIT_REG_AT(I2C_OARH,0x5214); + +/* I2C data register */ +DEF_8BIT_REG_AT(I2C_DR,0x5216); + +/* I2C status register 1 */ +DEF_8BIT_REG_AT(I2C_SR1,0x5217); + +/* I2C status register 2 */ +DEF_8BIT_REG_AT(I2C_SR2,0x5218); + +/* I2C status register 3 */ +DEF_8BIT_REG_AT(I2C_SR3,0x5219); + +/* I2C interrupt control register */ +DEF_8BIT_REG_AT(I2C_ITR,0x521a); + +/* I2C Clock control register low */ +DEF_8BIT_REG_AT(I2C_CCRL,0x521b); + +/* I2C Clock control register high */ +DEF_8BIT_REG_AT(I2C_CCRH,0x521c); + +/* I2C TRISE register */ +DEF_8BIT_REG_AT(I2C_TRISER,0x521d); + +/* I2C packet error checking register */ +DEF_8BIT_REG_AT(I2C_PECR,0x521e); + +/* LIN Universal asynch. receiver transmitter (UART2) */ +/*****************************************************************/ + +/* UART2 Status Register */ +DEF_8BIT_REG_AT(UART2_SR,0x5240); + +/* UART2 Data Register */ +DEF_8BIT_REG_AT(UART2_DR,0x5241); + +/* UART2 Baud Rate Register 1 */ +DEF_8BIT_REG_AT(UART2_BRR1,0x5242); + +/* UART2 Baud Rate Register 2 */ +DEF_8BIT_REG_AT(UART2_BRR2,0x5243); + +/* UART2 Control Register 1 */ +DEF_8BIT_REG_AT(UART2_CR1,0x5244); + +/* UART2 Control Register 2 */ +DEF_8BIT_REG_AT(UART2_CR2,0x5245); + +/* UART2 Control Register 3 */ +DEF_8BIT_REG_AT(UART2_CR3,0x5246); + +/* UART2 Control Register 4 */ +DEF_8BIT_REG_AT(UART2_CR4,0x5247); + +/* UART2 Control Register 5 */ +DEF_8BIT_REG_AT(UART2_CR5,0x5248); + +/* UART2 Control Register 6 */ +DEF_8BIT_REG_AT(UART2_CR6,0x5249); + +/* UART2 Guard time Register */ +DEF_8BIT_REG_AT(UART2_GTR,0x524a); + +/* UART2 Prescaler Register */ +DEF_8BIT_REG_AT(UART2_PSCR,0x524b); + +/* 16-Bit Timer 1 (TIM1) */ +/*****************************************************************/ + +/* TIM1 Control register 1 */ +DEF_8BIT_REG_AT(TIM1_CR1,0x5250); + +/* TIM1 Control register 2 */ +DEF_8BIT_REG_AT(TIM1_CR2,0x5251); + +/* TIM1 Slave Mode Control register */ +DEF_8BIT_REG_AT(TIM1_SMCR,0x5252); + +/* TIM1 external trigger register */ +DEF_8BIT_REG_AT(TIM1_ETR,0x5253); + +/* TIM1 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM1_IER,0x5254); + +/* TIM1 Status register 1 */ +DEF_8BIT_REG_AT(TIM1_SR1,0x5255); + +/* TIM1 Status register 2 */ +DEF_8BIT_REG_AT(TIM1_SR2,0x5256); + +/* TIM1 Event Generation register */ +DEF_8BIT_REG_AT(TIM1_EGR,0x5257); + +/* TIM1 Capture/Compare mode register 1 */ +DEF_8BIT_REG_AT(TIM1_CCMR1,0x5258); + +/* TIM1 Capture/Compare mode register 2 */ +DEF_8BIT_REG_AT(TIM1_CCMR2,0x5259); + +/* TIM1 Capture/Compare mode register 3 */ +DEF_8BIT_REG_AT(TIM1_CCMR3,0x525a); + +/* TIM1 Capture/Compare mode register 4 */ +DEF_8BIT_REG_AT(TIM1_CCMR4,0x525b); + +/* TIM1 Capture/Compare enable register 1 */ +DEF_8BIT_REG_AT(TIM1_CCER1,0x525c); + +/* TIM1 Capture/Compare enable register 2 */ +DEF_8BIT_REG_AT(TIM1_CCER2,0x525d); + +/* TIM1 Counter */ +DEF_16BIT_REG_AT(TIM1_CNTR,0x525e); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CNTRH,0x525e); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CNTRL,0x525f); + +/* TIM1 Prescaler register */ +DEF_16BIT_REG_AT(TIM1_PSCR,0x5260); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_PSCRH,0x5260); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_PSCRL,0x5261); + +/* TIM1 Auto-reload register */ +DEF_16BIT_REG_AT(TIM1_ARR,0x5262); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_ARRH,0x5262); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_ARRL,0x5263); + +/* TIM1 Repetition counter register */ +DEF_8BIT_REG_AT(TIM1_RCR,0x5264); + +/* TIM1 Capture/Compare register 1 */ +DEF_16BIT_REG_AT(TIM1_CCR1,0x5265); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR1H,0x5265); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR1L,0x5266); + +/* TIM1 Capture/Compare register 2 */ +DEF_16BIT_REG_AT(TIM1_CCR2,0x5267); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR2H,0x5267); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR2L,0x5268); + +/* TIM1 Capture/Compare register 3 */ +DEF_16BIT_REG_AT(TIM1_CCR3,0x5269); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR3H,0x5269); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR3L,0x526a); + +/* TIM1 Capture/Compare register 4 */ +DEF_16BIT_REG_AT(TIM1_CCR4,0x526b); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM1_CCR4H,0x526b); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM1_CCR4L,0x526c); + +/* TIM1 Break register */ +DEF_8BIT_REG_AT(TIM1_BKR,0x526d); + +/* TIM1 Dead-time register */ +DEF_8BIT_REG_AT(TIM1_DTR,0x526e); + +/* TIM1 Output idle state register */ +DEF_8BIT_REG_AT(TIM1_OISR,0x526f); + +/* 16-Bit Timer 2 (TIM2) */ +/*****************************************************************/ + +/* TIM2 Control register 1 */ +DEF_8BIT_REG_AT(TIM2_CR1,0x5300); + +/* TIM2 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM2_IER,0x5301); + +/* TIM2 Status register 1 */ +DEF_8BIT_REG_AT(TIM2_SR1,0x5302); + +/* TIM2 Status register 2 */ +DEF_8BIT_REG_AT(TIM2_SR2,0x5303); + +/* TIM2 Event Generation register */ +DEF_8BIT_REG_AT(TIM2_EGR,0x5304); + +/* TIM2 Capture/Compare mode register 1 */ +DEF_8BIT_REG_AT(TIM2_CCMR1,0x5305); + +/* TIM2 Capture/Compare mode register 2 */ +DEF_8BIT_REG_AT(TIM2_CCMR2,0x5306); + +/* TIM2 Capture/Compare mode register 3 */ +DEF_8BIT_REG_AT(TIM2_CCMR3,0x5307); + +/* TIM2 Capture/Compare enable register 1 */ +DEF_8BIT_REG_AT(TIM2_CCER1,0x5308); + +/* TIM2 Capture/Compare enable register 2 */ +DEF_8BIT_REG_AT(TIM2_CCER2,0x5309); + +/* TIM2 Counter */ +DEF_16BIT_REG_AT(TIM2_CNTR,0x530a); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CNTRH,0x530a); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CNTRL,0x530b); + +/* TIM2 Prescaler register */ +DEF_8BIT_REG_AT(TIM2_PSCR,0x530c); + +/* TIM2 Auto-reload register */ +DEF_16BIT_REG_AT(TIM2_ARR,0x530d); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_ARRH,0x530d); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_ARRL,0x530e); + +/* TIM2 Capture/Compare register 1 */ +DEF_16BIT_REG_AT(TIM2_CCR1,0x530f); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CCR1H,0x530f); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CCR1L,0x5310); + +/* TIM2 Capture/Compare register 2 */ +DEF_16BIT_REG_AT(TIM2_CCR2,0x5311); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CCR2H,0x5311); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CCR2L,0x5312); + +/* TIM2 Capture/Compare register 3 */ +DEF_16BIT_REG_AT(TIM2_CCR3,0x5313); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM2_CCR3H,0x5313); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM2_CCR3L,0x5314); + +/* 16-Bit Timer 3 (TIM3) */ +/*****************************************************************/ + +/* TIM3 Control register 1 */ +DEF_8BIT_REG_AT(TIM3_CR1,0x5320); + +/* TIM3 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM3_IER,0x5321); + +/* TIM3 Status register 1 */ +DEF_8BIT_REG_AT(TIM3_SR1,0x5322); + +/* TIM3 Status register 2 */ +DEF_8BIT_REG_AT(TIM3_SR2,0x5323); + +/* TIM3 Event Generation register */ +DEF_8BIT_REG_AT(TIM3_EGR,0x5324); + +/* TIM3 Capture/Compare mode register 1 */ +DEF_8BIT_REG_AT(TIM3_CCMR1,0x5325); + +/* TIM3 Capture/Compare mode register 2 */ +DEF_8BIT_REG_AT(TIM3_CCMR2,0x5326); + +/* TIM3 Capture/Compare enable register 1 */ +DEF_8BIT_REG_AT(TIM3_CCER1,0x5327); + +/* TIM3 Counter */ +DEF_16BIT_REG_AT(TIM3_CNTR,0x5328); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_CNTRH,0x5328); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_CNTRL,0x5329); + +/* TIM3 Prescaler register */ +DEF_8BIT_REG_AT(TIM3_PSCR,0x532a); + +/* TIM3 Auto-reload register */ +DEF_16BIT_REG_AT(TIM3_ARR,0x532b); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_ARRH,0x532b); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_ARRL,0x532c); + +/* TIM3 Capture/Compare register */ +DEF_16BIT_REG_AT(TIM3_CCR1,0x532d); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_CCR1H,0x532d); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_CCR1L,0x532e); + +/* TIM3 Capture/Compare register */ +DEF_16BIT_REG_AT(TIM3_CCR2,0x532f); +/* Data bits High */ +DEF_8BIT_REG_AT(TIM3_CCR2H,0x532f); +/* Data bits Low */ +DEF_8BIT_REG_AT(TIM3_CCR2L,0x5330); + +/* 8-Bit Timer 4 (TIM4) */ +/*****************************************************************/ + +/* TIM4 Control register 1 */ +DEF_8BIT_REG_AT(TIM4_CR1,0x5340); + +/* TIM4 Interrupt enable register */ +DEF_8BIT_REG_AT(TIM4_IER,0x5341); + +/* TIM4 Status register */ +DEF_8BIT_REG_AT(TIM4_SR,0x5342); + +/* TIM4 Event Generation register */ +DEF_8BIT_REG_AT(TIM4_EGR,0x5343); + +/* TIM4 Counter */ +DEF_8BIT_REG_AT(TIM4_CNTR,0x5344); + +/* TIM4 Prescaler register */ +DEF_8BIT_REG_AT(TIM4_PSCR,0x5345); + +/* TIM4 Auto-reload register */ +DEF_8BIT_REG_AT(TIM4_ARR,0x5346); + +/* 10-Bit A/D Converter (ADC1) */ +/*****************************************************************/ + +/* ADC Data buffer Register 0 */ +DEF_16BIT_REG_AT(ADC_DB0R,0x53e0); +/* Data Buffer register 0 High */ +DEF_8BIT_REG_AT(ADC_DB0RH,0x53e0); +/* Data Buffer register 0 Low */ +DEF_8BIT_REG_AT(ADC_DB0RL,0x53e1); + +/* ADC Data buffer Register 1 */ +DEF_16BIT_REG_AT(ADC_DB1R,0x53e2); +/* Data Buffer register 1 High */ +DEF_8BIT_REG_AT(ADC_DB1RH,0x53e2); +/* Data Buffer register 1 Low */ +DEF_8BIT_REG_AT(ADC_DB1RL,0x53e3); + +/* ADC Data buffer Register 2 */ +DEF_16BIT_REG_AT(ADC_DB2R,0x53e4); +/* Data Buffer register 2 High */ +DEF_8BIT_REG_AT(ADC_DB2RH,0x53e4); +/* Data Buffer register 2 Low */ +DEF_8BIT_REG_AT(ADC_DB2RL,0x53e5); + +/* ADC Data buffer Register 3 */ +DEF_16BIT_REG_AT(ADC_DB3R,0x53e6); +/* Data Buffer register 3 High */ +DEF_8BIT_REG_AT(ADC_DB3RH,0x53e6); +/* Data Buffer register 3 Low */ +DEF_8BIT_REG_AT(ADC_DB3RL,0x53e7); + +/* ADC Data buffer Register 4 */ +DEF_16BIT_REG_AT(ADC_DB4R,0x53e8); +/* Data Buffer register 4 High */ +DEF_8BIT_REG_AT(ADC_DB4RH,0x53e8); +/* Data Buffer register 4 Low */ +DEF_8BIT_REG_AT(ADC_DB4RL,0x53e9); + +/* ADC Data buffer Register 5 */ +DEF_16BIT_REG_AT(ADC_DB5R,0x53ea); +/* Data Buffer register 5 High */ +DEF_8BIT_REG_AT(ADC_DB5RH,0x53ea); +/* Data Buffer register 5 Low */ +DEF_8BIT_REG_AT(ADC_DB5RL,0x53eb); + +/* ADC Data buffer Register 6 */ +DEF_16BIT_REG_AT(ADC_DB6R,0x53ec); +/* Data Buffer register 6 High */ +DEF_8BIT_REG_AT(ADC_DB6RH,0x53ec); +/* Data Buffer register 6 Low */ +DEF_8BIT_REG_AT(ADC_DB6RL,0x53ed); + +/* ADC Data buffer Register 7 */ +DEF_16BIT_REG_AT(ADC_DB7R,0x53ee); +/* Data Buffer register 7 High */ +DEF_8BIT_REG_AT(ADC_DB7RH,0x53ee); +/* Data Buffer register 7 Low */ +DEF_8BIT_REG_AT(ADC_DB7RL,0x53ef); + +/* ADC Data buffer Register 8 */ +DEF_16BIT_REG_AT(ADC_DB8R,0x53f0); +/* Data Buffer register 8 High */ +DEF_8BIT_REG_AT(ADC_DB8RH,0x53f0); +/* Data Buffer register 8 Low */ +DEF_8BIT_REG_AT(ADC_DB8RL,0x53f1); + +/* ADC Data buffer Register 9 */ +DEF_16BIT_REG_AT(ADC_DB9R,0x53f2); +/* Data Buffer register 9 High */ +DEF_8BIT_REG_AT(ADC_DB9RH,0x53f2); +/* Data Buffer register 9 Low */ +DEF_8BIT_REG_AT(ADC_DB9RL,0x53f3); + +/* ADC Control/Status Register */ +DEF_8BIT_REG_AT(ADC_CSR,0x5400); + +/* ADC Configuration Register 1 */ +DEF_8BIT_REG_AT(ADC_CR1,0x5401); + +/* ADC Configuration Register 2 */ +DEF_8BIT_REG_AT(ADC_CR2,0x5402); + +/* ADC Configuration Register 3 */ +DEF_8BIT_REG_AT(ADC_CR3,0x5403); + +/* ADC Data Register */ +DEF_16BIT_REG_AT(ADC_DR,0x5404); +/* Data bits High */ +DEF_8BIT_REG_AT(ADC_DRH,0x5404); +/* Data bits Low */ +DEF_8BIT_REG_AT(ADC_DRL,0x5405); + +/* ADC Schmitt Trigger Disable Register */ +DEF_16BIT_REG_AT(ADC_TDR,0x5406); +/* Schmitt trigger disable High */ +DEF_8BIT_REG_AT(ADC_TDRH,0x5406); +/* Schmitt trigger disable Low */ +DEF_8BIT_REG_AT(ADC_TDRL,0x5407); + +/* ADC High Threshold Register */ +DEF_16BIT_REG_AT(ADC_HTR,0x5408); +/* High Threshold Register High */ +DEF_8BIT_REG_AT(ADC_HTRH,0x5408); +/* High Threshold Register Low */ +DEF_8BIT_REG_AT(ADC_HTRL,0x5409); + +/* ADC Low Threshold Register */ +DEF_16BIT_REG_AT(ADC_LTR,0x540a); +/* Low Threshold Register High */ +DEF_8BIT_REG_AT(ADC_LTRH,0x540a); +/* Low Threshold Register Low */ +DEF_8BIT_REG_AT(ADC_LTRL,0x540b); + +/* ADC Analog Watchdog Status Register */ +DEF_16BIT_REG_AT(ADC_AWSR,0x540c); +/* Analog Watchdog Status register High */ +DEF_8BIT_REG_AT(ADC_AWSRH,0x540c); +/* Analog Watchdog Status register Low */ +DEF_8BIT_REG_AT(ADC_AWSRL,0x540d); + +/* ADC Analog Watchdog Control Register */ +DEF_16BIT_REG_AT(ADC_AWCR,0x540e); +/* Analog Watchdog Control register High */ +DEF_8BIT_REG_AT(ADC_AWCRH,0x540e); +/* Analog Watchdog Control register Low */ +DEF_8BIT_REG_AT(ADC_AWCRL,0x540f); + +/* Global configuration register (CFG) */ +/*****************************************************************/ + +/* CFG Global configuration register */ +DEF_8BIT_REG_AT(CFG_GCR,0x7f60); + +/* Interrupt Software Priority Register (ITC) */ +/*****************************************************************/ + +/* Interrupt Software priority register 1 */ +DEF_8BIT_REG_AT(ITC_SPR1,0x7f70); + +/* Interrupt Software priority register 2 */ +DEF_8BIT_REG_AT(ITC_SPR2,0x7f71); + +/* Interrupt Software priority register 3 */ +DEF_8BIT_REG_AT(ITC_SPR3,0x7f72); + +/* Interrupt Software priority register 4 */ +DEF_8BIT_REG_AT(ITC_SPR4,0x7f73); + +/* Interrupt Software priority register 5 */ +DEF_8BIT_REG_AT(ITC_SPR5,0x7f74); + +/* Interrupt Software priority register 6 */ +DEF_8BIT_REG_AT(ITC_SPR6,0x7f75); + +/* Interrupt Software priority register 7 */ +DEF_8BIT_REG_AT(ITC_SPR7,0x7f76); + +#endif /* __STM8S105K__ */ diff --git a/doc/多控协议/3控源码/main.c b/doc/多控协议/3控源码/main.c new file mode 100644 index 0000000..8668e8d --- /dev/null +++ b/doc/多控协议/3控源码/main.c @@ -0,0 +1,4597 @@ + /* + ****************************************************************************** + * @file main.c / 3-control + * @author Jeep.zhang + * @version V1.0 + * @date 05-Dec-2015 + * @brief Main Service Routines. + ****************************************************************************** + * @attention + * AT+GMR + * AT version:0.50.0.0(Sep 18 2015 20:55:38) + * SDK version:1.4.0 + * compile time:Sep 18 2015 21:46:52 + * OK + * 1.Espressif-SDK,The Latest Version:esp_iot_sdk_v1.4.0_15_09_18 + * 2.Please refer to:esp_iot_sdk_v1.4.0_15_09_18\esp_iot_sdk_v1.4.0\bin\at + * 3.or Reference information is as follows: + * ---------Flash size 32Mbit: 512KB+512KB-----------ESP-12F + * boot_v1.2+.bin 0x00000 + * user1.1024.new.2.bin 0x01000 + * esp_init_data_default.bin 0x3fc000 (optional) + * blank.bin 0x7e000 & 0x3fe000 + * -------------------------------------------------- + * 4.MCU Model: STM8S005K6,16MHz,FLASH(32K)/RAM(2K)/EEPROM(128bytes) + * 5.WIFI Module: ESP-WROOM-02(Espressif)/ESP-03(AiThinker) + * + *

© COPYRIGHT 2015 www.ifish7.com

+ ****************************************************************************** + */ + +#include "STM8S005K6.h" +#include +//#include /* for printf */ +/**********************************************/ +#define factory_data 0x0a // ̱ +#define pcb_data 0x0c // Ӳͺ +#define mcu_data 0x01 // 汾 +// ֵH +#define Lamp1_Key1 0x1 // lamp1 +#define Lamp2_Key2 0x2 // lamp2 +#define UVC_Key3 0x3 // UVC +#define Adjust_Key4 0x4 // ڼ +#define Lamp_ShiDuan_Key5 0x5 // ʱ +#define Clock_Setup_Key6 0x6 // ʱ +#define K1K3 0x7 // ϼ +#define K2K4 0x8 // ϼ +#define K3K5 0x9 // ϼ +#define K4K6 0xa // ϼ + + +// (HT1621B:LCD)ֶ壺100 A5A4A3A2-A1A0D0D1-D2D3 +//#define Read_Data 0xc0 // Read Data +//#define Write_Data 0xa0 // Write Data/Read-Modify-Write Data +#define Command 0x80 // Command +#define sysen 0x02 // 1 0 0 0000-0001-X +#define lcdon 0x06 // 1 0 0 0000-0011-X +#define lcdoff 0x04 // 1 0 0 0000-0010-X +#define rc256k 0x30 // 1 0 0 0001-10XX-X +#define bias 0x52 // 1/4 0x50 1/3 +#define tone2k 0x80 // 1 0 0 100X-0XXX-X +#define toneon 0x12 // 1 0 0 0000-1001-X +#define toneoff 0x10 // 1 0 0 0000-1000-x + +// Ĵ +#define RAMBIT 0x80 +unsigned char state0 @RAMBIT; +//@near unsigned char state0; +unsigned char flag0 @RAMBIT+1; +unsigned char flag1 @RAMBIT+2; +unsigned char flag2 @RAMBIT+3; +unsigned char flag3 @RAMBIT+4; +unsigned char flag4 @RAMBIT+5; +unsigned char flag5 @RAMBIT+6; +//unsigned char flag6 @RAMBIT+7; +//unsigned char flag7 @RAMBIT+8; + +// Ĵflagλ +_Bool flag_TimeSetup_Jump @flag0:0; +_Bool flag_have_key @flag0:1; +_Bool flag_ClockTime_Change @flag0:2; // ӱʱñ仯ˣEEPROM +_Bool flag_TCP0_Connected @flag0:3; +_Bool flag_ScreenLock_Status @flag0:4; +_Bool flag_unlock_key @flag0:5; +_Bool flag_RS232_TimeoutStart @flag0:6; +_Bool flag_WiFi_ready @flag0:7; + +// Ĵflag1λ +_Bool flag_ClockTimeSetting @flag1:0;//s1 +_Bool flag_Colon_Jump @flag1:1; +_Bool flag_Buzzering @flag1:2; +_Bool flag_Receive_NewFrame_Buffer0 @flag1:3; +_Bool flag_Receive_NewOneByte @flag1:4; +_Bool flag_WiFi_Connected @flag1:5;// 豸Ƿ·1=0=û +_Bool flag_WiFi_Data_Sending @flag1:6; //=0ݷ; =1ڷ +_Bool flag_Start_HeartBeat @flag1:7; //=1, + +// Ĵflag2λ +//_Bool flag_NoLoginBack150s_CIPSTART @flag2:0; +_Bool flag_Tempture_Abnormal @flag2:1;// 豸Ƿ¶ȱ1=ԣ0= +_Bool flag_TCP_Logined @flag2:2;// 豸Ƿ¼1=¼0=û¼ +_Bool flag_LoginTCP_SendOnce @flag2:3; +_Bool flag_HeartBeat10s @flag2:4;// 豸ǷԷ10s1=ԣ0= +_Bool flag_WiFi_Connect_Enable @flag2:5;// 豸Ƿ豸״̬Ϣ5min1=ԣ0= +_Bool flag_Buzzer @flag2:6; +_Bool flag_TCP0_Connecting @flag2:7; + +// Ĵflag3λ +_Bool flag_lamp4_onoff @flag3:0; +_Bool flag_lamp5_onoff @flag3:1; +_Bool flag_NoLoginBack150s_CIPSTART @flag3:2; +_Bool flag_ready5s_STARTSMART @flag3:3; +_Bool flag_DisConnect180s_StartRST @flag3:4; +_Bool flag_Have_STAMAC @flag3:5; +_Bool flag_Have_STAIP @flag3:6; +_Bool flag_ready_Monitoring5s @flag3:7; + +// Ĵflag4λ +_Bool flag_LampTimeSetting @flag4:0; +_Bool flag_LampTime_Change @flag4:1; // ƵĶʱʱñ仯ˣDS1302 +_Bool flag_Open_Time @flag4:2; +_Bool flag_Close_Time @flag4:3; +_Bool flag_NoLoginBack_Monitoring150s @flag4:4; +_Bool flag_DisConnect_Monitoring180s @flag4:5; +_Bool flag_Tempture_Abnormal_Q0 @flag4:6; +_Bool flag_Tempture_Abnormal_Q1 @flag4:7; + +// Ĵflag5λ +_Bool flag_WiFi_Smarting @flag5:0; +_Bool flag_SEND_FAIL @flag5:1; +_Bool flag_RS232_Timeout @flag5:2; +_Bool flag_WiFi_Disconnect @flag5:3; +_Bool flag_UDP1_Connected @flag5:4; +_Bool flag_auto_hand_change @flag5:5; +_Bool flag_Restart_Connect_TCP @flag5:6; +_Bool flag_Enable_Connect_TCP @flag5:7; + +// Ĵstate0λ +//_Bool flag_lamp2_onoff @state0:0;// t16 lamp2 ƹ2 +//_Bool flag_lamp1_onoff @state0:1;// t18 lamp1 ƹ1 +//_Bool flag_UVC_onoff @state0:2;// t19 // lamp3 ɱ +//_Bool flag_WiFi_HaveSet @state0:3;// wifiΪ1 +//_Bool flag_auto_hand @state0:4;// 0=ֶ 1=Զ +//_Bool flag_TemptureAlam @state0:5;// 0= +//_Bool flag_TemptureAlam_High @state0:6; +//_Bool flag_have_save_URL @state0:7; + +unsigned char flag_lamp1_onoff=0; +unsigned char flag_lamp2_onoff=0; +unsigned char flag_UVC_onoff=0; +unsigned char flag_auto_hand=0; + +// ˿ڶ*****(QTC186B:TOUCH)***** +_Bool B0 @PB_IDR:4;// PB4=Data0(QTC186B) +_Bool B1 @PB_IDR:5;// PB5=Data1(QTC186B) +_Bool B2 @PF_IDR:4;// PF4=Data2(QTC186B) +_Bool B3 @PD_IDR:2;// PD2=Data3(QTC186B) + + +// ˿ڶ*****(DS1302:RTC)***** +_Bool ds_rst @PC_ODR:2;// PC2=RST(DS1302) +_Bool ds_io @PC_ODR:1;// PC1=IO(DS1302) +_Bool ds_data @PC_IDR:1;// PC1=Data(DS1302) IN +_Bool ds_clk @PE_ODR:5;// PE5=CLK(DS1302) + +// ˿ڶ*****(DENG1,DENG2,BENG,HEAT)***** +_Bool lamp2_PC5 @PC_ODR:5;// PC5=DENG1(Relay) +_Bool lamp1_PC6 @PC_ODR:6;// PC6=DENG2(Relay) +_Bool UVC_PC7 @PC_ODR:7;// PC7=BENG (Relay) +_Bool heating_PC4 @PC_ODR:4;// PC4=HEAT (Relay) +//_Bool ap_set_key @PD_IDR:0; //***************** + +// ˿ڶ*****(HT1621B:LCD)***** +_Bool LCD_backled_PC3 @PC_ODR:3;// PC3=LED +_Bool ht1621_cs @PD_ODR:7;// PD7=LCD_CS(HT1621B) +_Bool ht1621_wr @PD_ODR:4;// PD4=LCD_WR(HT1621B) +_Bool ht1621_data @PD_ODR:3;// PD3=LCD_Data(HT1621B) +//_Bool power_pin @PD_ODR:0; + +_Bool PB1_ESP_EN @PB_ODR:1;// ESP8266ʹ +_Bool PD0_ESP_RST @PD_ODR:0;// ESP8266Ӳλ + +unsigned int HeartBeat_0_TimeoutCounter=0; +unsigned int HeartBeat_1_TimeoutCounter=0; +unsigned int TCP0_TimeoutCounter=0; +unsigned int NoLoginBack150s_TimeoutCounter=0; +unsigned char WiFi_Disconnect_TimeoutCounter=0; +unsigned char Restart_Connect_TCP_TimeoutCounter=0; +unsigned char LockScreen_TimeoutCounter=0; +unsigned char UnLockScreen_TimeoutCounter=0; +unsigned char RS232_TimeoutCounter=0; +unsigned char DisConnect180s_TimeoutCounter=0; +unsigned char NoWiFi5s_TimeoutCounter=0; +unsigned char HeartBeat10s_TimeoutCounter=0; // ʱǷ10s +unsigned char Lcd_Colon_TimeoutCounter=0; +unsigned char ThreeMS_Counter=0; +unsigned char auto_hand_TimeoutCounter; +unsigned char InBuffer_ID=0; + +unsigned char Link_id='0'; +unsigned char Key_Back=0; +unsigned char Key_Back_Config=0; +unsigned char Key_Shake=0; +unsigned char Key_Shake_Config=0; + +unsigned char Disp_Year; +unsigned char Disp_Month; +unsigned char Disp_Day; +unsigned char Disp_Hour; +unsigned char Disp_Minute; +unsigned char Disp_Second; +unsigned char Disp_Week; +unsigned int Real_Tempture; + +unsigned char LampTimeSetup_Stepper=0; +unsigned char ClockTimeSetup_Stepper=0; +unsigned char Tempture_Read_Counter=0; +unsigned char TemptureAlam_Close_Open_Setup=0; +unsigned char TemptureAlam_NormalLowHigh='N';// 'L'=״̬,'H'=״̬,'N'=״̬ +unsigned char System_Status=0; // flag_System_ERROR +unsigned int Set_High_Tempture=30; +unsigned int Set_Low_Tempture=5; + +unsigned char Buzzer_TimeoutCounter=0; +unsigned char Receive_NewFrame_TimeoutCounter=0; +unsigned char Receive_Num0=0; // νֽ֡ +unsigned char Receive_Count0=0; // νֽ֡֡index +unsigned char Receive_Count1=0; +unsigned char Send_Count=0; // ηֽ֡֡index +unsigned char Send_Num=0; // ηֽ֡ +unsigned char Have_New_URL=0; +unsigned char Receive_NewFrame_Length=0; +unsigned char Function_Code=0; // ZDH,=00~FEH=FFHУ· + +unsigned char * pStr1=NULL; +unsigned char * pStr0=NULL; +unsigned char AT_Command_Stepper=0; // 豸裻 +unsigned char Connect_TCP_Counter=0; + +//@tiny ɱԶڵַС0x100RAMΪһַ; +//@near ɱԶڵַ0xFF RAMΪһַ; +@near unsigned char Timers_Enable[11]={0,0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Open_Hour[10]={0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Open_Minute[10]={0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Close_Hour[10]={0,0,0,0,0,0,0,0,0,0}; +@near unsigned char Set_Close_Minute[10]={0,0,0,0,0,0,0,0,0,0}; + +@near unsigned char LOC_IP_buf[4]={0,0,0,0}; // IP +@near unsigned char RMT_IP_buf[4]={0,0,0,0}; // ԶIP +@near unsigned int RMT_IP_PORT=9954; +@near unsigned char LOC_MAC_buf[6]={0,0,0,0,0,0}; // ͷMACַ +@near unsigned char RMT_MAC_buf[6]={0,0,0,0,0,0}; // շMACַ +//@near unsigned char wifi_ssid[20]; +//@near unsigned char wifi_password[20]; +@near unsigned char Send_Buffer[120]; // ͻ +@near unsigned char Receive_Buffer0[120]; // ܻ0 +@near unsigned char Receive_Buffer1[120]; // ܻ1 + +// www.ifish7.com=120.55.190.56 +@near unsigned char URL_ADDR[]={'w','w','w','.','i','f','i','s','h','7','.','c','o','m',0,0,0,0,0,0}; +//@near unsigned char URL_ADDR[]={'1','2','0','.','5','5','.','1','9','0','.','5','6',0,0,0,0,0,0}; +//@near unsigned char URL_ADDR[]={'1','9','2','.','1','6','8','.','6','1','.','1','2','8',0,0,0,0,0,0}; + +//AT+CIPSTART=0,"TCP","192.168.1.103",8080 +//const unsigned char URL_TCP0_LOC103[]={'0',',','"','T','C','P','"',',','"','1','9','2','.','1','6','8','.','0','.','1','0','4','"',',','8','0','8','0'}; +const unsigned char URL_UDP1_LOC104[]={'1',',','"','U','D','P','"',',','"','1','9','2','.','1','6','8','.','0','.','1','0','4','"',',','3','3','3'}; + +//AT+CIPSTART=0,"TCP","192.168.61.128",9955 +//const unsigned char URL_TCP0_LOC128[]={'0',',','"','T','C','P','"',',','"','1','9','2','.','1','6','8','.','6','1','.','1','2','8','"',',','9','9','5','5'}; +//const unsigned char URL_UDP1_LOC128[]={'1',',','"','U','D','P','"',',','"','1','9','2','.','1','6','8','.','6','1','.','1','2','8','"',',','3','3','3'}; + +//AT+CIPSTART=0,"TCP","www.ifish7.com",9955 www.ifish7.com=120.55.190.56 +//const unsigned char URL_TCP0_ifish7[]={'0',',','"','T','C','P','"',',','"','w','w','w','.','i','f','i','s','h','7','.','c','o','m','"',',','9','9','5','5'}; +const unsigned char URL_TCP0_ifish7[]={'0',',','"','T','C','P','"',',','"','1','2','0','.','5','5','.','1','9','0','.','5','6','"',',','9','9','5','5'}; +//const unsigned char URL_UDP1_ifish7[]={'1',',','"','U','D','P','"',',','"','w','w','w','.','i','f','i','s','h','7','.','c','o','m','"',',','3','3','3'}; + +const unsigned char URL_UDP1_ifish7[]={'1',',','"','U','D','P','"',',','"','1','2','0','.','5','5','.','1','9','0','.','5','6','"',',','3','3','3'}; + +//**********************************AT CMD************************************** +// AT_Command_Stepper=1 // AT+RSTģ飻 +const unsigned char RST[6]={"AT+RST"}; + +// AT_Command_Stepper=2 // ָ +const unsigned char RESTORE[10]={"AT+RESTORE"}; + +// AT_Command_Stepper=3 // AT+CWSMARTSTART=1 ӣſָ +//const unsigned char CWSMARTSTART[17]={"AT+CWSMARTSTART=1"}; + +// AT_Command_Stepper=3 // AT+CWSTARTSMART=3 ӣָ +const unsigned char CWSTARTSMART[17]={"AT+CWSTARTSMART=3"}; + +// AT_Command_Stepper=4 // AT+CWMODE=1ѡwifiӦģʽ1=STA,2=AP,3=AP+STA; +const unsigned char CWMODE[10] ={"AT+CWMODE="}; + +// AT_Command_Stepper=5 // AT+CIPMODE=0ģ鴫ģʽ=1͸ +const unsigned char CIPMODE[11]={"AT+CIPMODE="}; + +// AT_Command_Stepper=6 // AT+CIPMUX=1 ·ӣLink id=0~4 +const unsigned char CIPMUX[10] ={"AT+CIPMUX="}; + +// AT_Command_Stepper=7 // AT+CIFSRȡIPַ +const unsigned char CIFSR[8]={"AT+CIFSR"}; + +// AT_Command_Stepper=8 // AT+CIPSTART=TCPӻעUDP˿ںţ +const unsigned char CIPSTART[12]={"AT+CIPSTART="}; + +// AT_Command_Stepper=9 // AT+CWSMARTSTOP ֹͣӣſָ +//const unsigned char CWSMARTSTOP[14]={"AT+CWSMARTSTOP"}; + +// AT_Command_Stepper=9 // AT+CWSTOPSMART ֹͣӣָ +const unsigned char CWSTOPSMART[14]={"AT+CWSTOPSMART"}; + +// AT_Command_Stepper=10 // AT+CIPSEND =ݣ +const unsigned char CIPSEND[11]={"AT+CIPSEND="}; + +// AT_Command_Stepper=11 // AT+CIPCLOSE=5رTCP/UDP䣻 +const unsigned char CIPCLOSE[12]={"AT+CIPCLOSE="}; + +// AT_Command_Stepper=12 // AT+CIPSTATUS C ѯϢ +const unsigned char CIPSTATUS[12]={"AT+CIPSTATUS"}; + +// AT_Command_Stepper=13 // AT+CIPDINFO=1 C ʱǷʾԶIPͶ˿ +const unsigned char CIPDINFO[12]={"AT+CIPDINFO="}; + +// AT_Command_Stepper=14 // 鿴Ϣ :SDK and AT 汾 +//const unsigned char ATGMR[6]={"AT+GMR"}; +// AT_Command_Stepper=15 // AT+CWJAP="SSID","PASSWORD" AP +//const unsigned char CWJAP[9]={"AT+CWJAP="}; +// AT_Command_Stepper=16 // 0/1ԣ +//const unsigned char ATE0[4]={"ATE"}; +// AT_Command_Stepper=17 // ԶAP +//const unsigned char CWAUTOCONN[15]={"AT+CWAUTOCONN=1"}; +// AT_Command_Stepper=18 // ..... +//**********************************AT RETURN******************************************* +const unsigned char WIFI_CONNECTED[]="WIFI CONNECTED"; // - WiFi ӣ +const unsigned char WIFI_GOT_IP[]="WIFI GOT IP"; // - ESP8266 station Ѵ AP IP +const unsigned char WIFI_DISCONNECT[]="WIFI DISCONNECT"; // - WiFi ӶϿ +const unsigned char Smart_get_wifi_info[]="Smart get wifi info"; // Smart Config ɹȡAPϢ +const unsigned char smarting_connected_wifi[]="smartconfig connected wifi"; // Smart Config ɹWIFI +const unsigned char OK[]="OK"; +const unsigned char FAIL[]="FAIL"; // AT+ CWJAP = ·ʧܣ +const unsigned char ERROR[]="ERROR"; +const unsigned char ALREADY_CONNECT[]="ALREADY CONNECT"; // TCP/UDPѾ +const unsigned char SEND_OK[]="SEND OK"; // AT+CIPSEND=0,n: ݳɹ +const unsigned char plusIPD[]="+IPD,"; // ݿͷ +const unsigned char send_logo[]="> "; +//յCIPSEND,8266Ȼзء> Ȼʼմ=>ȴݣ +const unsigned char ready[]="ready"; // ϵ8266λɹȴ״̬ + +const unsigned char TCP_0_CONNECT[]="0,CONNECT"; // TCP-0ӳɹ +const unsigned char UDP_1_CONNECT[]="1,CONNECT"; // UDP-1ӳɹ + +const unsigned char TCP0_CLOSED[]="CLOSED"; // TCP/UDPʧܣsmartconfig connected wifi +const unsigned char DNS_Fail[]="DNS Fail"; +const unsigned char STAMAC[]="STAMAC"; +const unsigned char STAIP[]="STAIP"; +const unsigned char link_is_not_valid[]="link is not valid"; + +//const unsigned char no_change[]="no change"; +//const unsigned char OK_Linked[]="OK Linked"; +//const unsigned char busy_now[]="busy now..."; +//const unsigned char CONNECT_OK[]="CONNECT,OK"; +//const unsigned char invalid[]="invalid"; +//const unsigned char CLOSED[]="CLOSED"; // Ͽ TCP/UDP ͨ +//const unsigned char TCIPMUXandCIP_SERVER_mustbe0_ERROR[]="TCIPMUX and CIP SERVER must be 0 ,ERROR"; +// ............... +//**********************************AT RETURN******************************************* + +//**********************************AT CMD************************************** +const unsigned char Lcd_Table0123456789[10]={0xeb,0x60,0xc7,0xe5,0x6c,0xad,0xaf,0xe0,0xef,0xed};//0~9 +const unsigned char lcd_day_tab[4]={0x0,0x9,0xe,0xd}; //f 0~3 +const unsigned char Lcd_Hour_Tab[3]={0x0,0xa,0xc}; //e 0~2 +const unsigned char lcd_shiduan_tab[4]={0x0,0x9,0x7,0xb}; //0~3 + + +/**********************ϵͳʼ************************/ +void System_Init(void) +{ + + unsigned char len=0; + // ----------ʼ״̬λ + if(flag_ScreenLock_Status) + flag0=0x10; + else + flag0=0x10; + flag1=0; + flag2=0; + flag3=0; + flag4=0; + flag5=0; + //state0=0; + + flag_WiFi_ready=0; + flag_WiFi_Connected=0; + flag_WiFi_Disconnect=0; + flag_TCP0_Connected=0; + //flag_ScreenLock_Status=1; // 趨ģ + flag_have_key=0; + flag_Restart_Connect_TCP=0; + flag_Enable_Connect_TCP=0; + flag_Receive_NewFrame_Buffer0=0; + flag_Receive_NewOneByte=0; + flag_WiFi_Connect_Enable=0; + + //lamp2_PC5=0; // Ӳźû DENG2(PC5) + //lamp1_PC6=0; + //UVC_PC7=0; + //LCD_backled_PC3=0; + //LCD_backled_PC3=1; + + for(len=0;len<120;len++) + { + Receive_Buffer1[len]=0; + Receive_Buffer0[len]=0; + } + + Connect_TCP_Counter=0; + Lcd_Colon_TimeoutCounter=0; + System_Status=0; + Key_Shake=0; + Key_Shake_Config=0; + + WiFi_Disconnect_TimeoutCounter=0; + TCP0_TimeoutCounter=0; + ThreeMS_Counter=0; + Lcd_Colon_TimeoutCounter=0; + RS232_TimeoutCounter=0; + HeartBeat10s_TimeoutCounter=0; + UnLockScreen_TimeoutCounter=0; + LockScreen_TimeoutCounter=0; + NoLoginBack150s_TimeoutCounter=0; + DisConnect180s_TimeoutCounter=0; + NoWiFi5s_TimeoutCounter=0; + Receive_NewFrame_TimeoutCounter=0; + HeartBeat_0_TimeoutCounter=0; + HeartBeat_1_TimeoutCounter=0; + + + Receive_Num0=0; + InBuffer_ID=0; + Receive_Count0=0; + Receive_Count1=0; + Send_Num=0; + Send_Count=0; + + pStr0=pStr1=NULL; +} + +/* CRCʽ */ +const unsigned int crc_table[256]= +{ +0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, +0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, +0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, +0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, +0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, +0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, +0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, +0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, +0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, +0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, +0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, +0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, +0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, +0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, +0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, +0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, +0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, +0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, +0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, +0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, +0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, +0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, +0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, +0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, +0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, +0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, +0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, +0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, +0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, +0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, +0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, +0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 +}; +//溯CRCУ ñ׼CRC16 ʼCRC=0XFFFF ʽ 8005 1021 +unsigned int GetRevCrc_16(unsigned char * pData, int nLength) +{ + unsigned int cRc_16 = 0xffff; + unsigned char temp; + while(nLength-- > 0) + { + temp = cRc_16&0xff; + cRc_16 = (cRc_16 >> 8) ^ crc_table[(temp ^ *pData++) & 0xFF]; + } + return cRc_16; +} + +/**********************************************/ +void Delay(unsigned int delay_num) // Delay(10000)=14ms +{ + unsigned int i; + for(i=0;i>1; + } + for(i=0;i<8;i++) + { + ds_clk=0; + ds_io=(byte & 0x01); + ds_clk=1; + byte=byte>>1; + } + ds_rst=0; +} + +/*********************DS1302ʱоƬ,1byte**************************/ +unsigned char readds1302(unsigned char address) +{ + unsigned char i,byte=0; + ds_clk=0; + ds_io=1; // =1 + address=((address<<1) | 0x81); + ds_rst=1; + + for(i=0;i<8;i++) + { + ds_io=(address & 0x01); + ds_clk=1; + address=address>>1; + ds_clk=0; + } + ds_io=1; + for(i=0;i<8;i++) + { + ds_clk=0; + byte=byte>>1; + if(ds_data){byte=byte | 0x80;} + //else { byte=byte & 0x7f;} + ds_clk=1; + // nop; + // nop; + } + ds_rst=0; + return(byte); +} + +/*******************ʱ=ϳɵ***********************/ +void Read_Time(void) +{ + unsigned char temp=0; + if(flag_ClockTimeSetting==0)//&&flag_HeartBeat10s) + //if(flag_ClockTime_Change==1) + { + temp=readds1302(6);// + Disp_Year=(temp>>4)*10 + (temp & 0x0f); + temp=readds1302(5); + Disp_Week= temp & 0x07; + temp=readds1302(4); + Disp_Month=((temp & 0x10)>>4)*10 + (temp & 0x0f); + temp=readds1302(3); + Disp_Day= ((temp & 0x30)>>4)*10 + (temp & 0x0f); + temp=readds1302(2); + Disp_Hour= ((temp & 0x30)>>4)*10 + (temp & 0x0f); + temp=readds1302(1); + Disp_Minute= ((temp & 0x70)>>4)*10 + (temp & 0x0f); + temp=readds1302(0); + Disp_Second=((temp & 0x70)>>4)*10 + (temp & 0x0f); + } +} + +/*******************=дʱ***********************/ +void Write_Time(void) +{ + unsigned char i; + + //if(flag_ClockTimeSetting==0)//&&flag_HeartBeat10s) + //if(flag_ClockTime_Change==1) + { + flag_ClockTime_Change=0; + if(Disp_Year>99){Disp_Year=99;} + if(Disp_Month>12){Disp_Month=12;} + if(Disp_Day>31){Disp_Day=31;} + if(Disp_Hour>23){Disp_Hour=23;} + if(Disp_Minute>59){Disp_Minute=59;} + + writeds1302(0x0,7); + //writeds1302(0x0,7);writeds1302(0xa5,8); + i=((Disp_Year/10)<<4) | (Disp_Year%10); + writeds1302(i,6); + + i=Disp_Week&0x7; + writeds1302(i,5); + + i=((Disp_Month/10)<<4) | (Disp_Month%10); + writeds1302(i,4); + + i=((Disp_Day/10)<<4) | (Disp_Day%10); + writeds1302(i,3); + + i=((Disp_Hour/10)<<4) | (Disp_Hour%10); + writeds1302(i,2); + + i=((Disp_Minute/10)<<4) | (Disp_Minute%10); + writeds1302(i,1); + + i=((Disp_Second/10)<<4) | (Disp_Second%10); + writeds1302(i,0); + writeds1302(0x80,7); + //send_pc(0x71); + } +} + +/*********************HT1621,LCD8λ*************************/ +void sendbit_MSBfirst(unsigned char dat,unsigned char bitcnt) +{ + unsigned char i; + for(i=0;i>1; + } +} + +/** HT1621,LCD*12bit(3+9):100+C8C7C6C5C4C3C2C1C0 **/ +void ht_writecmd(unsigned char cmd,unsigned char cmd_data) +{ + ht1621_cs = 0; + sendbit_MSBfirst(cmd,4); // 0x80 = Command + sendbit_MSBfirst(cmd_data,8); + ht1621_cs = 1; +} +void BEEP_ms(unsigned int ms) +{ + ht_writecmd(Command, toneon); + Delay_ms(ms); + ht_writecmd(Command, toneoff); +} +/** HT1621,LCD*13bit(3+6+4):101+A5A4A3A2A1A0+D0D1D2D3 **/ +void ht_writedata(unsigned char waddr,unsigned char wdata,unsigned char wnum) +{ + ht1621_cs = 0; + sendbit_MSBfirst(0xa0,3); // 0xa0 = Write Data/Read-Modify-Write Data + waddr = waddr << 2; + sendbit_MSBfirst(waddr,6); + wdata = wdata << (8-wnum); + sendbit_MSBfirst(wdata,wnum);// error ,ӦLSB first send + ht1621_cs = 1; +} +void ht_writedata_zdh(unsigned char waddr,unsigned char wdata,unsigned char wnum) +{ + ht1621_cs = 0; + sendbit_MSBfirst(0xa0,3); // 0xa0 = Write Data/Read-Modify-Write Data + waddr = waddr << 2; + sendbit_MSBfirst(waddr,6); + //wdata = wdata << (8-wnum); + sendbit_LSBfirst_zdh(wdata,wnum); + ht1621_cs = 1; +} + +/********************HT1621,LCDʼ***************************/ +void ht1621_cmd_init(void) +{ + unsigned char i; + LCD_backled_PC3=1; // LCD 1=open + + ht_writecmd(Command,sysen); // ϵͳ + ht_writecmd(Command,lcdon); // LCDƫѹ + ht_writecmd(Command,rc256k); // ϵͳʱԴƬRC + ht_writecmd(Command,bias); // LCD1/3ƫѹѡ4 + ht_writecmd(Command,tone2k); // 2kƵ + for(i=0;i<32;i++) + ht_writedata(i,0x00,4); + Delay(500); + for(i=0;i<32;i++) + ht_writedata(i,0x0f,4); +// Delay(5000); +// ht_writecmd(Command, toneoff); +// Delay(50000); +// ht_writecmd(Command, toneoff); +} +/* + ht_writecmd(Command, toneon ); // + ht_writecmd(Command, toneoff ); // ر +*/ +/**********************¶ʾ*ϴ***********************/ +void Lcd_Disp_Tempture(unsigned int Disp) //¶ʾ[XX:X] +{ + /* + "8"Ͷζ + ---A--- ---A--- ---A--- + | | | | | | + F B F B F B + | | | | | | + ---G--- ---G--- ---G--- + | | | | | | + E C E C E C + | | | | | | + ---D--- ---D--- . ---D--- +*/ + unsigned char temp,lcd_high4,lcd_low4; +// ¶ֵСλXSEG14+SEG15 + temp=Lcd_Table0123456789[Disp%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S13="ˮ±" + ht_writedata(14,lcd_high4,4); // SEG14:9A9B9C+S13 + ht_writedata(15,lcd_low4,4); // SEG15:9F9G9E9D + +// ¶ֵλXSEG16+SEG17 + temp=Lcd_Table0123456789[Disp%100/10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // DP="." + ht_writedata(16,lcd_high4,4); // SEG16:8A8B8C+DP + ht_writedata(17,lcd_low4,4); // SEG17:8F8G8E8D + +// ¶ֵʮλXSEG18+SEG19 + temp=Lcd_Table0123456789[Disp/100]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S14="Temperature" + ht_writedata(18,lcd_high4,4); // SEG18:7A7B7C+S14 + ht_writedata(19,lcd_low4,4); // SEG19:7F7G7E7D + + Delay_ms(250); +} + +/********************ȡֵ************************* + B3 B2 B1 B0 ע +Ч 1 1 1 1 ޴״̬ +K0(=0) 0 0 0 0 0=VSS\1=VDD +K1(=1) 0 0 0 1 1 +K2(=2) 0 0 1 0 2 +K3(=3) 0 0 1 1 3 +K4(=4) 0 1 0 0 4 +K5(=5) 0 1 0 1 5 +K6(=5) 0 1 1 0 6 +K1+K3(=7) 0 1 1 1 7 K1K3 ͬʱѹ +K2+K4(=8) 1 0 0 0 8 K2K4 ͬʱѹ +K3+K5(=9) 1 0 0 1 9 K3K5 ͬʱѹ +K4+K6(=10) 1 0 1 0 10 K4K6 ͬʱѹ + +K1=ƹ1ļֵ=1 +K2=ƹ2ļֵ=2 +K3=ɱˡ ļֵ=3 +K4=ڼ ļֵ=4 +K5=ʱ ļֵ=5 +K6=ʱá ļֵ=6 + +K6ʱá+ K4ڼ =10 +*/ +unsigned char Read_Key_Num(void) +{ + unsigned char temp=0; + if(B0){temp|=0x1;} + if(B1){temp|=0x2;} + if(B2){temp|=0x4;} + if(B3){temp|=0x8;} + + if(temp<0xf) + {return(temp);} + else + {return(0xff);} +} + +#define LOC_data 0 +#define RMT_data 1 +/**********************UART2-TXD************************/ +void UART2_sendchar(unsigned char c) +{ + while((UART2_SR & 0x80)==0x00); // λĴΪգ + UART2_DR=c; +} + +// һַstr1һַstr2е״γֵλã +// str1str2У򷵻-1 +// 'str1Ϊdostr2Ϊhow do you do򷵻ֵΪ4 +/* +int strloc(char *str2,char *str1) +{ + int la=strlen(str1);// Ӵ + int i,j; + int lb=strlen(str2); // ĸ + for(i=0;i>8; + Send_Buffer[19]=CRC16; + + if(0xff==STR) + { + for(i=0;i<20;i++) + Send_Buffer[i]=0xff; + } + + Send_Num=20; + //UART2_Send_Buffer_NoCheck(Send_Num); + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL&&flag_RS232_TimeoutStart); // ȴ"SEND OK" + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + // ӡ "SEND OK" + flag_SEND_FAIL=0; + System_Status=11; + } + else + { + // ڳʱ + flag_SEND_FAIL=1; + flag_UDP1_Connected=0; + System_Status=10; + //Lcd_Disp_Tempture(System_Status); + } + } +} +/**********************************************/ +void Heart_and_State_Return(unsigned char str) // &״̬ +{ +// ݹ룬ظ,Function_Code + unsigned char i,temp; + unsigned int CRC16 = 0xffff; + + switch(Function_Code) + { + case 1: break; + case 2: break; + case 3: break; + case 4: break; + case 5: break; + case 6: break; + case 7: break; + case 8: break; + case 9: break; + case 10: break; + default:break; + } + Load_Header_15data(0,str); // strʾ0ǻظ1 + i=15; + if(flag_auto_hand) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; // 豸ǰģʽ + + Send_Buffer[i++]=0x1; // 1: 1=on,0=off + if(flag_lamp1_onoff) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; + + Send_Buffer[i++]=0x2; // 2: 1=on,0=off + if(flag_lamp2_onoff) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; + + Send_Buffer[i++]=0x3; // 3: 1=on,0=off + if(flag_UVC_onoff) + Send_Buffer[i++]=0x1; + else + Send_Buffer[i++]=0x0; + +// Send_Buffer[i++]=0x4; // 4: 1=on,0=off +// if(flag_lamp4_onoff) +// Send_Buffer[i++]=0x1; +// else +// Send_Buffer[i++]=0x0; + +// Send_Buffer[i++]=0x5; // 5: 1=on,0=off +// if(flag_lamp5_onoff) +// Send_Buffer[i++]=0x1; +// else +// Send_Buffer[i++]=0x0; + + for(temp=0;temp<6;temp++)//6ʱ + { + Send_Buffer[i++]=temp+1; // ʱ1~10(1ֽ) + Send_Buffer[i++]=Timers_Enable[temp+1]; // ʱ:0أ1(1ֽ) + Send_Buffer[i++]=Set_Open_Hour[temp]; // ʱʱ俪ʱ(1ֽ) + Send_Buffer[i++]=Set_Open_Minute[temp]; // ʱʱ俪֣(1ֽ) + Send_Buffer[i++]=Set_Close_Hour[temp]; // ʱʱʱ(1ֽ) + Send_Buffer[i++]=Set_Close_Minute[temp];// ʱʱط֣(1ֽ) + } + Send_Buffer[i++]=Real_Tempture/0x100; + Send_Buffer[i++]=Real_Tempture%0x100;//ʵ¶ + Send_Buffer[i++]=0x0; + Send_Buffer[i++]=0x0;//PHֵ + Send_Buffer[i++]=0x0; + Send_Buffer[i++]=0x0;//ʪ + + Send_Buffer[i++]=TemptureAlam_Close_Open_Setup; + Send_Buffer[i++]=Set_Low_Tempture/0x100; + Send_Buffer[i++]=Set_Low_Tempture%0x100; // ¶- + Send_Buffer[i++]=Set_High_Tempture/0x100; + Send_Buffer[i++]=Set_High_Tempture%0x100; // ¶- + + CRC16=GetRevCrc_16(Send_Buffer,i); + Send_Buffer[i++]=CRC16>>8; + Send_Buffer[i++]=CRC16; + + Send_Num=i; + UART2_Send_Buffer_NoCheck(Send_Num); + if(0) + { + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL&&flag_RS232_TimeoutStart); // ȴ"SEND OK" + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + // ӡ "SEND OK" + flag_SEND_FAIL=0; + System_Status=11; + } + else + { + // ڳʱ + flag_SEND_FAIL=1; + flag_TCP0_Connected=0; + System_Status=10; + + //Lcd_Disp_Tempture(System_Status); + } + } +} + +/*****************************************************************/ +//ұָa_len ij10ƣұָ "AT+CIPSEND=id,XX" XXǷ͵ +void make_AT_CIPSEND(unsigned char len,unsigned char STR,unsigned char X) // ̬췢ATָ +{ + // lenݳ STR=255ǷUDP㲥 X='0'TCP,Link_id + unsigned char i,j,k; + for(i=0;i<11;i++) + Send_Buffer[i]=CIPSEND[i]; // + + Send_Buffer[i]=Link_id; // Ҫڴӵ id + + // 豸¼ָ(24ֽ)ÿ豸͵½ָ + if(len==24) + { + Send_Buffer[i]='0'; + Send_Buffer[++i]=','; + Send_Buffer[++i]='2'; + Send_Buffer[++i]='4'; + } + + // ظ豸ָUDPʽ(20ֽ)ÿ豸ڷһ + else if(len==20) + { + Send_Buffer[i]='1'; // UDP=1 Ҫڴӵ id =1 + Send_Buffer[++i]=','; + Send_Buffer[++i]='2'; + Send_Buffer[++i]='0'; + + Send_Buffer[++i]=','; + Send_Buffer[++i]='"'; //i=16 + if(STR==255) + { + // һȺĩIPΣIP_buf[3]=255 + //LOC_IP_buf[0]=192,LOC_IP_buf[1]=168,LOC_IP_buf[2]=61 + if(LOC_IP_buf[0]/100) + { + Send_Buffer[++i]=LOC_IP_buf[0]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else if((LOC_IP_buf[0]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[1]/100) + { + Send_Buffer[++i]=LOC_IP_buf[1]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else if((LOC_IP_buf[1]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[2]/100) + { + Send_Buffer[++i]=LOC_IP_buf[2]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + if((LOC_IP_buf[2]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + Send_Buffer[++i]='.'; + + Send_Buffer[++i]='2'; + Send_Buffer[++i]='5'; + Send_Buffer[++i]='5'; + } + else + { + // ڶָUDPIP + // RMT_IP_buf[0]=192,RMT_IP_buf[1]=168,RMT_IP_buf[2]=61,RMT_IP_buf[3]=128 + if(RMT_IP_buf[0]/100) + { + Send_Buffer[++i]=RMT_IP_buf[0]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[0]%10+'0'; + } + else if((RMT_IP_buf[0]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[0]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[0]%10+'0'; + Send_Buffer[++i]='.'; + + if(RMT_IP_buf[1]/100) + { + Send_Buffer[++i]=RMT_IP_buf[1]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[1]%10+'0'; + } + else if((RMT_IP_buf[1]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[1]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[1]%10+'0'; + Send_Buffer[++i]='.'; + + if(RMT_IP_buf[2]/100) + { + Send_Buffer[++i]=RMT_IP_buf[2]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[2]%10+'0'; + } + else if((RMT_IP_buf[2]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[2]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[2]%10+'0'; + Send_Buffer[++i]='.'; + + if(RMT_IP_buf[3]/100) + { + Send_Buffer[++i]=RMT_IP_buf[3]/100+'0'; + Send_Buffer[++i]=(RMT_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[3]%10+'0'; + } + else if((RMT_IP_buf[3]/10)%10) + { + Send_Buffer[++i]=(RMT_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=RMT_IP_buf[3]%10+'0'; + } + else + Send_Buffer[++i]=RMT_IP_buf[3]%10+'0'; + } + + Send_Buffer[++i]='"'; + Send_Buffer[++i]=','; + + Send_Buffer[++i]='9'; // RMT_IP_PORT + Send_Buffer[++i]='9'; + Send_Buffer[++i]='5'; + Send_Buffer[++i]='4'; + } + + // ߷(71ֽ) + else if(len==71)//else if(flag_HeartBeat10s) + { + if(X=='0') + Send_Buffer[i]='0'; // Ҫڴӵ id + + Send_Buffer[++i]=','; + Send_Buffer[++i]='7'; + Send_Buffer[++i]='1'; // 71bytes 豸71ֽڣ10룩 + } + + // ¶Ϣ(22ֽ) + else if(len==22)//else if(flag_Tempture_Abnormal) + { + //Send_Buffer[i]='0'; // Ҫڴӵ id + Send_Buffer[++i]=','; + Send_Buffer[++i]='2'; + Send_Buffer[++i]='2'; // 22bytes ¶ȱ״̬Ϣ(22ֽ) + } + + Send_Buffer[++i]='\r'; // '\r'=0x0d; + Send_Buffer[++i]='\n'; // '\n'=0x0a; + Send_Num=i+1; + + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,send_logo))==NULL&&flag_RS232_TimeoutStart); // ȴ"> " + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + // ӡ "> " + flag_SEND_FAIL=0; + System_Status=211; + } + else + { + flag_SEND_FAIL=1; + if(len==20) + flag_UDP1_Connected=0; + else + flag_TCP0_Connected=0; + + System_Status=210; + //Lcd_Disp_Tempture(System_Status); + } +} + +#define MASS_KEY1 0xAE // flash' Կ1 +#define MASS_KEY2 0x56 // flash' Կ2 +#define EEP_BASE 0x4000 // eerom ʼַ +/********************STM8SڲEEPROM ʼ**************************/ +void MCUeeprom_Init(void) +{ + FLASH_CR1 = 0x00; + FLASH_CR2 = 0x00; + FLASH_NCR2 = 0xff; + FLASH_DUKR = MASS_KEY1; + FLASH_DUKR = MASS_KEY2; + while(!(FLASH_IAPSR & 0x08)); // ȴд +} + +/********************STM8SڲEEPROM д1byte**************************/ +void MCUeeprom_write_byte(unsigned int addr ,unsigned char dat) //ͬоƬEEPROMͬ +{ + *((unsigned char*)(addr + EEP_BASE)) = dat; + while(!(FLASH_IAPSR & 0x04)); //ȴд +} + +/********************STM8SڲEEPROM 1byte**************************/ +unsigned char MCUeeprom_read_byte(unsigned int addr) +{ + return *((unsigned char*)(EEP_BASE + addr)); +} + +/********************STM8Sڲд**************************/ +void MCUeeprom_write_URL(void) +{ + unsigned char i; + + MCUeeprom_Init(); + // 浱ǰTCP + for(i=55;i<75;i++) + MCUeeprom_write_byte(i,URL_ADDR[i-55]); +} + +void MCUeeprom_write(void) +{ + unsigned char i; + //if(flag_LampTime_Change) + { + // flag_LampTime_Change=0; + + MCUeeprom_Init(); + //for(i=0;i<128;i++) + // MCUeeprom_write_byte(i,0); + + for(i=0;i<10;i++) + {MCUeeprom_write_byte(i,Set_Open_Hour[i]);} + + for(i=10;i<20;i++) + {MCUeeprom_write_byte(i,Set_Open_Minute[i-10]);} + + for(i=20;i<30;i++) + {MCUeeprom_write_byte(i,Set_Close_Hour[i-20]);} + + for(i=30;i<40;i++) + {MCUeeprom_write_byte(i,Set_Close_Minute[i-30]);} + + for(i=40;i<50;i++) + {MCUeeprom_write_byte(i,Timers_Enable[i-39]);} + + MCUeeprom_write_byte(50,TemptureAlam_Close_Open_Setup); + //Set_High_Tempture=0x2505; + MCUeeprom_write_byte(51,Set_High_Tempture/0x100); + MCUeeprom_write_byte(52,Set_High_Tempture%0x100); + //Set_Low_Tempture=0x1505; + MCUeeprom_write_byte(53,Set_Low_Tempture/0x100); + MCUeeprom_write_byte(54,Set_Low_Tempture%0x100); + + MCUeeprom_write_byte(55,state0); + MCUeeprom_write_byte(56,flag_lamp1_onoff); + MCUeeprom_write_byte(57,flag_lamp2_onoff); + MCUeeprom_write_byte(58,flag_UVC_onoff); + MCUeeprom_write_byte(59,flag_auto_hand); + MCUeeprom_write_byte(60,Have_New_URL); + + // 浱ǰTCP + for(i=61;i<81;i++) + MCUeeprom_write_byte(i,URL_ADDR[i-61]); + + } +} + +/*******************STM8Sڲ***************************/ +void MCUeeprom_read(void) +{ + unsigned char i,j; + unsigned int k; + if(0) + { + for(i=0;i<10;i++) + { + Set_Open_Hour[i]=0; + Set_Close_Hour[i]=0; + Set_Open_Minute[i]=0; + Set_Close_Minute[i]=0; + Timers_Enable[i+1]=0; + } + + TemptureAlam_Close_Open_Setup = 0; + Set_High_Tempture = 0; + Set_High_Tempture = Set_High_Tempture*0x100; + Set_High_Tempture+= 0; + Set_Low_Tempture = 0; + Set_Low_Tempture = Set_Low_Tempture*0x100; + Set_Low_Tempture+= 0; + + for(i=0;i<20;i++) +// URL_TCP0_ifish7[i]=0; + state0=0; + } + + for(i=0;i<10;i++) + {Set_Open_Hour[i]=MCUeeprom_read_byte(i);} + for(i=10;i<20;i++) + {Set_Open_Minute[i-10]=MCUeeprom_read_byte(i);} + for(i=20;i<30;i++) + {Set_Close_Hour[i-20]=MCUeeprom_read_byte(i);} + for(i=30;i<40;i++) + {Set_Close_Minute[i-30]=MCUeeprom_read_byte(i);} + for(i=40;i<50;i++) + {Timers_Enable[i-39]=MCUeeprom_read_byte(i);} + + TemptureAlam_Close_Open_Setup = MCUeeprom_read_byte(50); + + i = MCUeeprom_read_byte(51); + j = MCUeeprom_read_byte(52); + Set_High_Tempture = i*0x100+j; + + i = MCUeeprom_read_byte(53); + j = MCUeeprom_read_byte(54); + Set_Low_Tempture = i*0x100+j; + + + // ȡǰTCP(һζǿյ) + /* + for(i=55;i<75;i++) + k+=MCUeeprom_read_byte(i); + + if(k==0||k==20*0xff) + {} + else + { + for(i=55;i<75;i++) + URL_ADDR[i-55]=MCUeeprom_read_byte(i); + + } + */ + state0=MCUeeprom_read_byte(55); + flag_lamp1_onoff=MCUeeprom_read_byte(56); + flag_lamp2_onoff=MCUeeprom_read_byte(57); + flag_UVC_onoff=MCUeeprom_read_byte(58); + flag_auto_hand=MCUeeprom_read_byte(59); + Have_New_URL=MCUeeprom_read_byte(60); + flag_lamp1_onoff&=0x01; + flag_lamp2_onoff&=0x01; + flag_UVC_onoff&=0x01; + flag_auto_hand&=0x01; + + if(0xea==Have_New_URL) + { + for(i=61;i<81;i++) + URL_ADDR[i-61]=MCUeeprom_read_byte(i); + } + +} + +/***********************ȡMACIP***********************/ +const unsigned char test_IPMAC[]={'A','T','+','C','I','P','F','S','R','\r', + '+','C','I','P','F','S','R',':','S','T', + 'A','I','P',',','"','1','9','2','.','1', + '6','8','.','0','.','1','0','8','"','\r','+', + 'C','I','P','F','S','R',':','S','T','A', + 'M','A','C',',','"','1','8',':','f','e', + ':','3','4',':','d','b',':','0','d',':', + '3','3','"','\r','\n','O','K'}; +//AT+CIPFSR ַת +//+CIFSR:STAIP,"192.168.0.108" +//+CIFSR:STAMAC,"18:fe:34:db:0d:33" +//OK +void Read_STAIP_STAMAC(void) +{ + unsigned char temp,i,i_temp; + + //for(i=0;i<100;i++) + // Receive_Buffer1[i]=test_IPMAC[i]; + + if((pStr1=strstr(Receive_Buffer1,STAIP))!=NULL); + { + LOC_IP_buf[0]=LOC_IP_buf[1]=LOC_IP_buf[2]=LOC_IP_buf[3]=0; + flag_Have_STAIP=1; + temp=strloc(Receive_Buffer1,STAIP); // (strstr(Receive_Buffer1,ready)==NULL); + temp=temp+7; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='.') + break; + } + if(i==1) + LOC_IP_buf[0]=(Receive_Buffer1[temp]-'0'); + else if(i==2) + LOC_IP_buf[0]=(Receive_Buffer1[temp]-'0')*10 +(Receive_Buffer1[temp+1]-'0'); + else if(i==3) + LOC_IP_buf[0]=(Receive_Buffer1[temp]-'0')*100+(Receive_Buffer1[temp+1]-'0')*10+(Receive_Buffer1[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='.') + break; + } + if(i==1) + LOC_IP_buf[1]=(Receive_Buffer1[temp]-'0'); + else if(i==2) + LOC_IP_buf[1]=(Receive_Buffer1[temp]-'0')*10+(Receive_Buffer1[temp+1]-'0'); + else if(i==3) + LOC_IP_buf[1]=(Receive_Buffer1[temp]-'0')*100+(Receive_Buffer1[temp+1]-'0')*10+(Receive_Buffer1[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='.') + break; + } + if(i==1) + LOC_IP_buf[2]=(Receive_Buffer1[temp+i-1]-'0'); + else if(i==2) + LOC_IP_buf[2]=(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + else if(i==3) + LOC_IP_buf[2]=(Receive_Buffer1[temp+i-3]-'0')*100+(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer1[temp+i]=='"') + break; + } + if(i==1) + LOC_IP_buf[3]=(Receive_Buffer1[temp+i-1]-'0'); + else if(i==2) + LOC_IP_buf[3]=(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + else if(i==3) + LOC_IP_buf[3]=(Receive_Buffer1[temp+i-3]-'0')*100+(Receive_Buffer1[temp+i-2]-'0')*10+(Receive_Buffer1[temp+i-1]-'0'); + temp=temp+i+1; + } + //AT+CIPFSR\r ַת + //+CIFSR:STAIP,"192.168.1.104"\r + //+CIFSR:STAMAC,"5c:cf:7f:07:65:21"\r\n + //OK + if((pStr1=strstr(Receive_Buffer1,STAMAC))!=NULL) // >='a',<='f' + { + LOC_MAC_buf[0]=LOC_MAC_buf[1]=LOC_MAC_buf[2]=LOC_MAC_buf[3]=LOC_MAC_buf[4]=LOC_MAC_buf[5]=0; + flag_Have_STAMAC=1; + temp=strloc(Receive_Buffer1,STAMAC); + temp=temp+8; + + for(i=0;i<6;i++) + { + if(Receive_Buffer1[temp]>='0'&&Receive_Buffer1[temp]<='9') + LOC_MAC_buf[i]=(Receive_Buffer1[temp]-'0'); + if(Receive_Buffer1[temp]>='a'&&Receive_Buffer1[temp]<='f') + LOC_MAC_buf[i]=(Receive_Buffer1[temp]-'a')+10; + + if(Receive_Buffer1[temp+1]>='0'&&Receive_Buffer1[temp+1]<='9') + LOC_MAC_buf[i]=LOC_MAC_buf[i]*16+(Receive_Buffer1[temp+1]-'0'); + if(Receive_Buffer1[temp+1]>='a'&&Receive_Buffer1[temp]<='f') + LOC_MAC_buf[i]=LOC_MAC_buf[i]*16+(Receive_Buffer1[temp+1]-'a')+10; + temp=temp+3; + } + } +} +/*********************Źλ************************/ +/** + * @brief Enables IWDG. "stm8s_iwdg.h" + * @param None + * @retval None + */ +void IWDG_Enable(void) +{ + IWDG_KR = 0xcc; //IWDG_KEY_ENABLE; +} + +/**********************ģ鸴λ************************/ +void ESP8266_RST(void) +{ + unsigned char i; + System_Init(); + + for(i=0;i<6;i++) + Send_Buffer[i]=RST[i]; + Send_Buffer[6]='\r'; + Send_Buffer[7]='\n'; + Send_Num=8; + UART2_Send_Buffer_NoCheck(Send_Num); + // Monitoring + //Delay_ms(1000); + //BEEP_ms(200); +} + +/********************ģ**********************/ +void ESP8266_RESTORE(void) +{ + unsigned char i; + + for(i=0;i<10;i++) + Send_Buffer[i]=RESTORE[i]; + Send_Buffer[10]='\r'; + Send_Buffer[11]='\n'; + Send_Num=12; + UART2_Send_Buffer_NoCheck(Send_Num); + // Monitoring + //Delay_ms(1000); + BEEP_ms(200); + +} + +/**********************ESP8266ģ************************/ +void ESP8266_CWMODE(unsigned char STR) +{ + unsigned char i; + // 1-1.AT+CWMODE=1 station + for(i=0;i<10;i++) + Send_Buffer[i]=CWMODE[i]; + Send_Buffer[10]=STR; + Send_Buffer[11]='\r'; + Send_Buffer[12]='\n'; + Send_Num=13; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + System_Status=41; + else + System_Status=40; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266ͨ/͸ģʽ************************/ +void ESP8266_CIPMODE(unsigned char STR) +{ + unsigned char i; + // 1-2.AT+CIPMODE=0 ͸ͨģʽ + for(i=0;i<11;i++) + Send_Buffer[i]=CIPMODE[i]; + Send_Buffer[11]=STR; + Send_Buffer[12]='\r'; + Send_Buffer[13]='\n'; + Send_Num=14; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=51; + else System_Status=50; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266·************************/ +void ESP8266_CIPMUX(unsigned char STR) +{ + unsigned char i; + // 1-3.AT+CIPMUX=1 · + for(i=0;i<10;i++) + Send_Buffer[i]=CIPMUX[i]; + Send_Buffer[10]=STR; + Send_Buffer[11]='\r'; + Send_Buffer[12]='\n'; + Send_Num=13; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=61; + else System_Status=60; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266ʾԶIPͶ˿************************/ +void ESP8266_CIPDINFO(unsigned char STR) +{ + unsigned char i; + // 1-4.AT+CIPDINFO=1 ʾԶIPͶ˿ + for(i=0;i<12;i++) + Send_Buffer[i]=CIPDINFO[i]; + Send_Buffer[i++]=STR; + Send_Buffer[i++]='\r'; + Send_Buffer[i++]='\n'; + Send_Num=i; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=61; + else System_Status=60; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266ر************************/ +void ESP8266_CIPCLOSE(unsigned char STR) +{ + unsigned char i; + // 1-5.AT+CIPCLOSE=0~45=ر TCP/UDP + for(i=0;i<12;i++) + Send_Buffer[i]=CIPCLOSE[i]; + + Send_Buffer[12]=STR; //STR=id + Send_Buffer[13]='\r'; + Send_Buffer[14]='\n'; + Send_Num=15; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart); + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=141; + else System_Status=140; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ESP8266************************/ +void ESP8266_STARTSMART(void) +{ + unsigned char i; + flag_WiFi_Smarting=1; + flag_WiFi_Connect_Enable=1; + + flag_WiFi_Disconnect=0; + flag_WiFi_Connected=0; + flag_TCP0_Connected=0; + + if(flag_WiFi_Connected==0) + { + for(i=0;i<14;i++) + Send_Buffer[i]=CWSTOPSMART[i]; + Send_Buffer[14]='\r'; + Send_Buffer[15]='\n'; + Send_Num=16; + UART2_Send_Buffer_Check(Send_Num);// ȹһ + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart);// ȴ OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) System_Status=71; + else System_Status=70; + //Lcd_Disp_Tempture(System_Status); + + for(i=0;i<17;i++) + Send_Buffer[i]=CWSTARTSMART[i];// + Send_Buffer[17]='\r'; + Send_Buffer[18]='\n'; + Send_Num=19; + + flag_WiFi_Connected=0; + UART2_Send_Buffer_NoCheck(Send_Num); +// Monitoring + } +} + +/**********************ģȡMACIP************************/ +void ESP8266_CIFSR(void) +{ + unsigned char i; +// ڴ˷ͣ"AT+CIFSR" / ESP8266 station IP AP 󣬲ſԲѯ + for(i=0;i<8;i++) + Send_Buffer[i]=CIFSR[i]; + Send_Buffer[8]='\r'; + Send_Buffer[9]='\n'; + Send_Num=10; + UART2_Send_Buffer_Check(Send_Num); + Delay_ms(10); + while(((pStr1=strstr(Receive_Buffer1,STAIP))==NULL)&&\ + ((pStr1=strstr(Receive_Buffer1,STAMAC))==NULL)&&flag_RS232_TimeoutStart); + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + Read_STAIP_STAMAC(); + System_Status=131; + } + else + System_Status=130; + //Lcd_Disp_Tempture(System_Status); +} + +/**********************ģӷ*UDP1***********************/ +void ESP8266_CIPSTART_UDP(unsigned char STR) +{ + unsigned char i,j; + + if(1)//if(STR==1) + { + for(i=0;i<12;i++) // AT+CIPSTART=1,"UDP",IP0.IP1.IP2.255,9954,333,0 + Send_Buffer[i]=CIPSTART[i]; + + Send_Buffer[12]=STR; + Send_Buffer[13]=','; + Send_Buffer[14]='"'; + Send_Buffer[15]='U'; + Send_Buffer[16]='D'; + Send_Buffer[17]='P'; + Send_Buffer[18]='"'; + Send_Buffer[19]=','; + Send_Buffer[20]='"'; + i=20; + if(LOC_IP_buf[0]/100) + { + Send_Buffer[++i]=LOC_IP_buf[0]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else if((LOC_IP_buf[0]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[0]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[0]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[1]/100) + { + Send_Buffer[++i]=LOC_IP_buf[1]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else if((LOC_IP_buf[1]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[1]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[1]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[2]/100) + { + Send_Buffer[++i]=LOC_IP_buf[2]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + else if((LOC_IP_buf[2]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[2]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[2]%10+'0'; + Send_Buffer[++i]='.'; + + if(LOC_IP_buf[3]/100) + { + Send_Buffer[++i]=LOC_IP_buf[3]/100+'0'; + Send_Buffer[++i]=(LOC_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[3]%10+'0'; + } + else if((LOC_IP_buf[3]/10)%10) + { + Send_Buffer[++i]=(LOC_IP_buf[3]/10)%10+'0'; + Send_Buffer[++i]=LOC_IP_buf[3]%10+'0'; + } + else + Send_Buffer[++i]=LOC_IP_buf[3]%10+'0'; + + i++; + Send_Buffer[i++]='"'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='5'; + Send_Buffer[i++]='4'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='3'; + Send_Buffer[i++]='3'; + Send_Buffer[i++]='3'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='0'; + + Send_Buffer[i++]='\r'; // '\r'=0x0d; + Send_Buffer[i++]='\n'; // '\n'=0x0a; + Send_Num=i; + + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,OK))==NULL&&flag_RS232_TimeoutStart); + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + make_AT_CIPSEND(20,255,255); // AT+CIPSEND=1,20,ȫȺ + UDP1_Return(11); + // ͨѶ + } +} + +/**********************ģӷ*TCP0***********************/ +void ESP8266_CIPSTART_TCP(unsigned char STR) +{ + unsigned char i,j; + + if(1)//if(STR==1) // ʽһٷ + { + for(i=0;i<12;i++) //AT+CIPSTART=0,"TCP","192.168.61.128",9955 + Send_Buffer[i]=CIPSTART[i]; + + Send_Buffer[12]=STR; + Send_Buffer[13]=','; + Send_Buffer[14]='"'; + Send_Buffer[15]='T'; + Send_Buffer[16]='C'; + Send_Buffer[17]='P'; + Send_Buffer[18]='"'; + Send_Buffer[19]=','; + Send_Buffer[20]='"'; + + for(j=0;j<20;j++) + { + if(URL_ADDR[j]==0) + break; + } + + if(j>10) + { + for(i=21;i<(j+21);i++) + Send_Buffer[i]=URL_ADDR[i-21]; + Send_Buffer[i++]='"'; + Send_Buffer[i++]=','; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='9'; + Send_Buffer[i++]='5'; + Send_Buffer[i++]='5'; + Send_Buffer[i++]='\r'; // '\r'=0x0d; + Send_Buffer[i++]='\n'; // '\n'=0x0a; + Send_Num=i; + UART2_Send_Buffer_NoCheck(Send_Num); + } + } + /* + else if(STR==2) // ʽ̶ֱ + { + for(i=0;i<12;i++) + Send_Buffer[i]=CIPSTART[i]; + for(i=12;i<40;i++) + { + //Send_Buffer[i]=URL_TCP0_LOC104[i-12];//i<40 0,"TCP","192.168.0.104",8080 28 + //Send_Buffer[i]=URL_TCP0_LOC128[i-12]; //i<41 0,"TCP","192.168.61.128",9955 29 + Send_Buffer[i]=URL_TCP0_ifish7[i-12]; //i<40 0,"TCP","120.55.190.56",9955 28 + } + + Send_Buffer[i++]='\r'; // '\r'=0x0d; + Send_Buffer[i++]='\n'; // '\n'=0x0a; + Send_Num=i; + UART2_Send_Buffer_NoCheck(Send_Num); + } + */ +} + + +/**********************LCDʾˢ*********SEG0~SEG31***************/ +void Lcd_Display(void) +{ +/* + "8"Ͷζ col + ---A--- ---A--- ---A--- ---A--- + | | | | | | | | + F B F B . F B F B + | | | | | | | | + ---G--- ---G--- ---G--- ---G--- + | | | | | | | | + E C E C . E C E C + | | | | | | | | + ---D--- ---D--- ---D--- ---D--- +*/ + unsigned char temp,lcd_high4,lcd_low4; +/* +ClockTimeSetup_Stepper ʱãǰʱã +1. ʮλ +2. λ +3. ʮλ +4. ¸λ +5. ʮλ +6. ոλ +7. ʱʮλ +8. ʱλ +9. ʮλ +10.ָλ +*/ + +// ʱСʱλֵSEG0+SEG8-8: + + if(flag_LampTimeSetting) + { + if(flag_TimeSetup_Jump) + temp=0x0; + else if(flag_Open_Time) + temp=Lcd_Table0123456789[Set_Open_Hour[(LampTimeSetup_Stepper-1)/2]%10]; + else if(flag_Close_Time) + temp=Lcd_Table0123456789[Set_Close_Hour[(LampTimeSetup_Stepper-1)/2]%10]; + } + else if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==8) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Hour%10]; + } + else + temp=Lcd_Table0123456789[Disp_Hour%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + if(flag_Colon_Jump){lcd_high4=lcd_high4|0x1;} // COLǡ:, + ht_writedata(0,lcd_high4,4); // SEG0:11A11B11C+COL + ht_writedata(8,lcd_low4,4); // SEG8:11F11G11E11D + +// ʱʮλֵSEG2+SEG1-8 + if(flag_LampTimeSetting) + { + if(flag_TimeSetup_Jump) + temp=0x0; + else if(flag_Open_Time) + temp=Lcd_Table0123456789[Set_Open_Minute[(LampTimeSetup_Stepper-1)/2]/10]; + else if(flag_Close_Time) + temp=Lcd_Table0123456789[Set_Close_Minute[(LampTimeSetup_Stepper-1)/2]/10]; + } + else if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==9) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Minute/10]; + } + else + temp=Lcd_Table0123456789[Disp_Minute/10]; + + lcd_high4=(temp&0xf0)>>4; + if(flag_LampTimeSetting){lcd_high4=lcd_high4|0x1;} // S17="ʱ" + lcd_low4=temp&0xf; + ht_writedata(2,lcd_high4,4); // SEG2:11A11B11C+COL + ht_writedata(1,lcd_low4,4); // SEG1:11A11B11C+COL + +// ʱӸλֵSEG4+SEG3-8: + if(flag_LampTimeSetting) + { + if(flag_TimeSetup_Jump) + temp=0x0; + else if(flag_Open_Time) + temp=Lcd_Table0123456789[Set_Open_Minute[(LampTimeSetup_Stepper-1)/2]%10]; + else if(flag_Close_Time) + temp=Lcd_Table0123456789[Set_Close_Minute[(LampTimeSetup_Stepper-1)/2]%10]; + } + else if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==10) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Minute%10]; + } + else + temp=Lcd_Table0123456789[Disp_Minute%10]; + lcd_high4=(temp&0xf0)>>4; + if(flag_LampTimeSetting){lcd_high4=lcd_high4|0x1;} // S18=ʱε":" + lcd_low4=temp&0xf; + ht_writedata(4,lcd_high4,4);// SEG4:13A13B13C+S18 + ht_writedata(3,lcd_low4,4); // SEG3:13F13G13E13D + +// ƹ2LOGO: S24=lamp2-1, S25=lamp2-2, S26=lamp2-3, S27=lamp2-0:SEG5 + if(flag_lamp2_onoff) + { + lcd_low4=0x1; + if(Lcd_Colon_TimeoutCounter>1&&Lcd_Colon_TimeoutCounter<5) + {lcd_low4=lcd_low4|0x8;} + if(Lcd_Colon_TimeoutCounter>2&&Lcd_Colon_TimeoutCounter<5) + {lcd_low4=lcd_low4|0x4;} + if(Lcd_Colon_TimeoutCounter>3&&Lcd_Colon_TimeoutCounter<5) + {lcd_low4=lcd_low4|0x2;} + } + else + {lcd_low4=0xf;} + if(Key_Back==Lamp2_Key2) + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x00; + } + ht_writedata(5,lcd_low4,4); // SEG5:S24+S25+S26+S27 + +// ƹ1LOGO: S29=lamp1-1, S30=lamp1-2, S31=lamp1-3, S32=lamp1-0 SEG6 + if(flag_lamp1_onoff) + { + lcd_low4=0x1; + if(Lcd_Colon_TimeoutCounter>1&&Lcd_Colon_TimeoutCounter<5) + lcd_low4=lcd_low4|0x8; + if(Lcd_Colon_TimeoutCounter>2&&Lcd_Colon_TimeoutCounter<5) + lcd_low4=lcd_low4|0x4; + if(Lcd_Colon_TimeoutCounter>3&&Lcd_Colon_TimeoutCounter<5) + lcd_low4=lcd_low4|0x2; + } + else + {lcd_low4=0x0f;} + if(Key_Back==Lamp1_Key1) + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x00; + } + ht_writedata(6,lcd_low4,4); // SEG6:S29+S30+S31+S32 + +// ƹ1,һ, ,ƹ2 + lcd_low4=0xf; + ht_writedata(7,lcd_low4,4); // SEG7:S28+S33+ +S23 + +// ʱСʱʮλֵSEG9 + if(flag_LampTimeSetting) + { + if(flag_TimeSetup_Jump) + temp=0x0; + else if(flag_Open_Time) + temp=Lcd_Hour_Tab[Set_Open_Hour[(LampTimeSetup_Stepper-1)/2]/10]; + else if(flag_Close_Time) + temp=Lcd_Hour_Tab[Set_Close_Hour[(LampTimeSetup_Stepper-1)/2]/10]; + } + else if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==7) + {temp=0x0;} + else + {temp=Lcd_Hour_Tab[Disp_Hour/10];} + } + else + {temp=Lcd_Hour_Tab[Disp_Hour/10];} + lcd_low4=temp&0xf; + if(flag_LampTimeSetting){lcd_low4=lcd_low4|0x1;} //S16="ʱ" + ht_writedata(9,lcd_low4,4); // SEG9:10B(10AGED)10C+S16 +/* +LampTimeSetup_Stepper ʱãlamp1lamp2UV-C +1.lamp11ʱΣ1 ʱ0- Set_Open_Hour + Set_Open_Minute +2. 1 ʱ0- Set_Close_Hour+ Set_Close_Minute +3. 2 ʱ1- +4. 2 ʱ1- +5.lamp22ʱΣ1 ʱ2- +6. 1 ʱ2- +7. 2 ʱ3- +8. 2 ʱ3- +9.UV-C3ʱΣ 1 ʱ4- +10. 1 ʱ4- +11. 2 ʱ5- +12. 2 ʱ5- + ʱ6~ʱ9 +*/ +// ""ʱ:SEG10 + lcd_low4=0; + if(flag_LampTimeSetting) + { + if(LampTimeSetup_Stepper>=1&&LampTimeSetup_Stepper<=4) + lcd_low4=lcd_shiduan_tab[1]; + else if(LampTimeSetup_Stepper>=5&&LampTimeSetup_Stepper<=8) + lcd_low4=lcd_shiduan_tab[2]; + else if(LampTimeSetup_Stepper>=9&&LampTimeSetup_Stepper<=12) + lcd_low4=lcd_shiduan_tab[3]; + } + ht_writedata(10,lcd_low4,4); // SEG10:14C14E(14AGD)14B + +// "":SEG11, + lcd_low4=0; + if(flag_LampTimeSetting) + { + switch(LampTimeSetup_Stepper) + { + case 1: lcd_low4=lcd_shiduan_tab[1]; + case 2: lcd_low4=lcd_shiduan_tab[1]; + case 5: lcd_low4=lcd_shiduan_tab[1]; + case 6: lcd_low4=lcd_shiduan_tab[1]; + case 9: lcd_low4=lcd_shiduan_tab[1]; + case 10: lcd_low4=lcd_shiduan_tab[1]; + break; + case 3: lcd_low4=lcd_shiduan_tab[2]; + case 4: lcd_low4=lcd_shiduan_tab[2]; + case 7: lcd_low4=lcd_shiduan_tab[2]; + case 8: lcd_low4=lcd_shiduan_tab[2]; + case 11: lcd_low4=lcd_shiduan_tab[2]; + case 12: lcd_low4=lcd_shiduan_tab[2]; + break; + default:break; + } + } + ht_writedata(11,lcd_low4,4); // SEG11:15C15E(15AGD)15B + +// S22=ɱLOGO,S21=ɱ,S19=,S20=:SEG12 + lcd_low4=0x4; + if(Lcd_Colon_TimeoutCounter<3&&flag_UVC_onoff) + {} + else + lcd_low4=lcd_low4|0x8; + + if(flag_LampTimeSetting) + { + if(flag_Open_Time) + lcd_low4|=0x2; + else if(flag_Close_Time) + lcd_low4|=0x1; + } + ht_writedata(12,lcd_low4,4); // SEG12:S22+S21+S19+S20 + +// LL=DZ,S12=桱,S15=»,S10=ڼLOGO + lcd_low4=0xe; + if(Key_Back==Adjust_Key4&&flag_TimeSetup_Jump){} + else{lcd_low4=lcd_low4|0x1;} + ht_writedata(13,lcd_low4,4); // SEG13:LL+S12+S15+S10 + +// ¶ֵСλXSEG14+SEG15 + temp=Lcd_Table0123456789[Real_Tempture%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S13="ˮ±" + ht_writedata(14,lcd_high4,4); // SEG14:9A9B9C+S13 + ht_writedata(15,lcd_low4,4); // SEG15:9F9G9E9D + +// ¶ֵλXSEG16+SEG17 + temp=Lcd_Table0123456789[Real_Tempture%100/10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // DP="." + ht_writedata(16,lcd_high4,4); // SEG16:8A8B8C+DP + ht_writedata(17,lcd_low4,4); // SEG17:8F8G8E8D + +// ¶ֵʮλXSEG18+SEG19 + temp=Lcd_Table0123456789[Real_Tempture/100]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S14="Temperature" + ht_writedata(18,lcd_high4,4); // SEG18:7A7B7C+S14 + ht_writedata(19,lcd_low4,4); // SEG19:7F7G7E7D + +// S4=Զ,S3=ֶ,S2=LOGO,S9=ڼ:SEG20 + lcd_low4=0x1; + if(flag_ScreenLock_Status){lcd_low4|=0x2;} // S2=LOGO + if(flag_auto_hand){lcd_low4|=0x8;}else{lcd_low4|=0x4;} + ht_writedata(20,lcd_low4,4); // SEG20:S4+S3+S2+S9 + +// ʾ "" λSEG21+SEG22 zhang + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==6) + temp=0x00; + else + {temp=Lcd_Table0123456789[Disp_Day%10];} + } + else + {temp=Lcd_Table0123456789[Disp_Day%10];} + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + if(flag_TimeSetup_Jump&&flag_LampTimeSetting&&LampTimeSetup_Stepper!=0){} + else lcd_high4=lcd_high4|0x1; // S8="ʱLOGO" + ht_writedata(21,lcd_high4,4); // SEG21:6A6B6C+S8 + ht_writedata(22,lcd_low4,4); // SEG22:6F6G6E6D + +// ʾ "ʮ" λSEG23 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==5) + {temp=0x00;} + else + {temp=lcd_day_tab[Disp_Day/10];} + } + else + {temp=lcd_day_tab[Disp_Day/10];} + lcd_low4=temp&0xf; + ht_writedata(23,lcd_low4,4); // SEG23:5B(5AGD)5E5C + +// ·ʾ "" λSEG24+SEG25 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==4) + temp=0x00; + else + temp=Lcd_Table0123456789[Disp_Month%10]; + } + else + temp=Lcd_Table0123456789[Disp_Month%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==3) + lcd_high4=lcd_high4&0xe; // 3B:ʾʮ"|"=1,"[|"=0 + ht_writedata(24,lcd_high4,4); // SEG24:4A4B4C+3B + ht_writedata(25,lcd_low4,4); // SEG25:4F4G4E4D + +// ʾ "ʮ" λSEG28+SEG29 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==1) + temp=0x00; + else + temp=Lcd_Table0123456789[Disp_Year/10]; + } + else + temp=Lcd_Table0123456789[Disp_Year/10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + lcd_high4=lcd_high4|0x1; // S1="20 - - " + ht_writedata(28,lcd_high4,4); // SEG28:1A1B1C+S1 + ht_writedata(29,lcd_low4,4); // SEG29:1F1G1E1D + +// ʾ "" λSEG26+SEG27 + if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==2) + temp=0x00; + else + temp=Lcd_Table0123456789[Disp_Year%10]; + } + else + temp=Lcd_Table0123456789[Disp_Year%10]; + + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + + lcd_high4|=0x01; + if(Disp_Month<10) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==3) + lcd_high4&=0x0e; + else + lcd_high4|=0x01; // 3A:ʮ"[" + } + else + { + lcd_high4&=0x0e; + } + ht_writedata(26,lcd_high4,4); // SEG26:2A2B2C+3A + ht_writedata(27,lcd_low4,4); // SEG27:2F2G2E2D + +// K1=(),K2=( ),K3=( )=>router ,WiFi=WiFi=>server :SEG30 + lcd_low4=0x00; + if((flag_WiFi_ready&&flag_WiFi_Connect_Enable)) + { + if(flag_WiFi_Disconnect) // ((( ))) + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x01; + } + else if(flag_WiFi_Smarting) // ȫ(((WIFI))) + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x00; + } + else if(flag_WiFi_Connected==0) // ((( ))) + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x01; + } + else if(flag_TCP0_Connected==0) // WIFI + { + if(flag_Colon_Jump) + lcd_low4=0x0f; + else + lcd_low4=0x0e; + } + else if(flag_WiFi_Connected&&flag_TCP0_Connected) // + { + lcd_low4=0x0f; + } + } + ht_writedata(30,lcd_low4,4); // SEG30:K1+K2+K3+WiFi:"(((WiFi)))" + +// S5=ʱ,S6=ʱLOGO,S11=,S7=ʱ + lcd_low4=0x0f; // 1011 + if(flag_TimeSetup_Jump&&flag_ClockTimeSetting&&ClockTimeSetup_Stepper!=0) + {lcd_low4=lcd_low4&0x0b;} + ht_writedata(31,lcd_low4,4); // SEG31:S5+S6+S11+S7 +} + +/**********************ģϼ************************/ +void ESP8266_CombineKey(void) +{ + unsigned char i,key_use; + unsigned int disp; + + if(flag_ScreenLock_Status==0) + { + key_use=Read_Key_Num(); // ϼֵ + + if(Key_Back_Config==key_use&&Key_Back_Config!=0xff) // һμֵ + { + if(++Key_Shake_Config>=25) // ȥ25 + { + Key_Shake_Config=0; + + // ***********************ϼ************************ + if((flag_LampTimeSetting==0)&&(flag_ClockTimeSetting==0)) + { + if(key_use==Adjust_Key4) + { + while(key_use==Adjust_Key4) // ȴϼ + { + key_use=Read_Key_Num(); + Delay_ms(10); + Lcd_Display(); + } + ht_writecmd(Command, toneon); + Delay_ms(500); + ht_writecmd(Command, toneoff); + System_Status=171; + //Lcd_Disp_Tempture(System_Status=171); + } + } + // ***************************************************** + +//* K4=ڼ+K6=ʱá=>K4+K6(=10) + if(key_use==K4K6) + { + System_Init(); + ESP8266_RESTORE(); + } +//* K2=ƹ2+K4=ڼģ鸴λK2+K4(=8) + else if(key_use==K2K4) + { + //System_Init(); + //ESP8266_RST(); + } + } + } + else // ȥ or ûа£ + { + Key_Shake_Config=0; + Key_Back_Config=key_use; + flag_have_key=0; + } + } +} + +/*********************¶ȱ*************************/ +const float tempture_tab[]= +{ +34.467,32.946,31.508,30.147,28.835, +27.606,26.427,25.308,24.236,23.218,22.259,21.331,20.450,19.621,18.819, +18.018,17.322,16.641,15.968,15.337,14.750,14.615,13.618,13.081,12.581, +12.110,11.647,11.210,10.786,10.386,10.000,9.631,9.277,8.937,8.613, +8.302,8.003,7.718,7.445,7.182,6.929,6.688,6.457,6.233,6.019, +5.813,5.616,5.427,5.244,5.069,4.901,4.740,4.582,4.435,4.288, +4.151,4.016,3.880,3.764,3.644,3.527,3.416,3.308,3.205,3.106, +3.011,2.919,2.830,2.744,2.662,2.583,2.504,2.430,2.359,2.289, +2.224,2.158,2.096,2.036,1.978,1.921,1.867,1.814,1.764,1.714, +1.667,1.621,1.576,1.533,1.492,1.451,1.412,1.374,1.338,1.302, +1.268,1.235,1.203,1.171,1.141,1.112,1.083,1.056,1.029,1.003,0.9777 +}; +float cha_biao(float tem_num) +{ + float temp; + unsigned char i; + + for(i=0;i<106;i++) + { + if(tem_num>tempture_tab[i]) + {break;} + } + + if(i>=105) + {temp=99.9;} + else if(i<=5) + {temp=0;} + else + {temp=(tempture_tab[i-1]-tem_num)/(tempture_tab[i-1]-tempture_tab[i])-5-1+i;} + return(temp); +} + +/*********************AD¶ֵ*************************/ +float ADC_DATA=0; +void Read_Tempture(void) +{ + float TEMP; + //static float ADC_DATA; + +/* + if((ADC_CSR & 0x80) == 0x80) + { + //ADC_DATA=ADC_DATA>>2; + temp=10*(float)ADC_DRH/(0x100-(float)ADC_DRH); + // temp=10*(float)(ADC_DATA/(0x100-ADC_DATA)); + temp=cha_biao(temp); + tempture_temp=tempture_temp+temp; + if(++Tempture_Read_Counter>39) + { + Tempture_Read_Counter=0; + Real_Tempture=(((int)tempture_temp>>2)+Real_Tempture)>>1; + tempture_temp=0; + } + ADC_CSR&=0x7f; //ת־ + ADC_CR1|=0x01; // ٴνCR1Ĵλ1//adת + } +*/ + if((ADC_CSR & 0x80) == 0x80) + { + //ADC_DATA=ADC_DATA>>2; + TEMP=10*(float)ADC_DRH/(0x100-(float)ADC_DRH); + // temp=10*(float)(ADC_DATA/(0x100-ADC_DATA)); + TEMP=cha_biao(TEMP); + ADC_DATA+=TEMP; + if(++Tempture_Read_Counter>39) + { + Tempture_Read_Counter=0; + + if((Real_Tempture>Set_High_Tempture)||(Real_Tempture>2)+Real_Tempture)>>1; + ADC_DATA=0; +//[Set_High_Tempture : Set_Low_Tempture],exp:[15C:35C] + + if((Real_Tempture>Set_High_Tempture)||(Real_TemptureSet_High_Tempture) + TemptureAlam_NormalLowHigh='H'; + else if(Real_TemptureSet_High_Tempture)||(Real_Tempture=25) // ȥ25 + { + Key_Shake=0; + UnLockScreen_TimeoutCounter=0; + LockScreen_TimeoutCounter=0; + + if(flag_ScreenLock_Status==1) // ж״̬ + { + do + { + flag_have_key=1; + key_unlock=Read_Key_Num(); + Lcd_Disp_KeyDynamic(); + //Delay_ms(100); + Lcd_Display(); + }while(flag_ScreenLock_Status==1&&key_unlock!=0xff); + if(flag_ScreenLock_Status==0) + { + Lcd_Display(); + //if(flag_Buzzer==0){ht_writecmd(Command, toneoff);flag_Buzzer=1;} + } + if(key_unlock==0xff) // ֹ;ɿ + { + flag_ScreenLock_Status=1; + flag_have_key=0; + } + ht_writecmd(Command, toneon); + while(Read_Key_Num()!=0xff); // ȴɿ + ht_writecmd(Command, toneoff); + } + else + //if(flag_ScreenLock_Status==0) // ֱӰ + { + key_use=Read_Key_Num(); + flag_have_key=1; + //if(flag_Buzzer==0){ht_writecmd(Command, toneoff);flag_Buzzer=1;} + + switch(key_use) + { + case Lamp1_Key1: + if(flag_auto_hand==0) + {flag_lamp1_onoff=(~flag_lamp1_onoff)&0x01;} + break; + + case Lamp2_Key2: + if(flag_auto_hand==0) + {flag_lamp2_onoff=(~flag_lamp2_onoff)&0x01;} + break; + + case UVC_Key3: + if(flag_auto_hand==0) + {flag_UVC_onoff=(~flag_UVC_onoff)&0x01;} + break; + + case Adjust_Key4: +/* +ClockTimeSetup_Stepper ʱãlamp1lamp2UV-C +1.lamp11ʱΣ1 ʱ0- +2. 1 ʱ0- +3. 2 ʱ1- +4. 2 ʱ1- +5.lamp22ʱΣ1 ʱ2- +6. 1 ʱ2- +7. 2 ʱ3- +8. 2 ʱ3- +9.UV-C3ʱΣ 1 ʱ4- +10. 1 ʱ4- +11. 2 ʱ5- +12. 2 ʱ5- + ʱ6~ʱ9 +*/ + if(flag_LampTimeSetting) // ڡƵĶʱ״̬... + { + switch(LampTimeSetup_Stepper) // 1212λõ + { + case 1: + if(Set_Open_Minute[0]!=0) + { + Set_Open_Minute[0]=0; + if(++Set_Open_Hour[0]>=24) + {Set_Open_Hour[0]=0;} + } + else + {Set_Open_Minute[0]=30;} + break; + + case 2: + if(Set_Close_Minute[0]!=0) + { + Set_Close_Minute[0]=0; + if(++Set_Close_Hour[0]>=24) + {Set_Close_Hour[0]=0;} + } + else + {Set_Close_Minute[0]=30;} + break; + + case 3: + if(Set_Open_Minute[1]!=0) + { + Set_Open_Minute[1]=0; + if(++Set_Open_Hour[1]>=24) + {Set_Open_Hour[1]=0;} + } + else + {Set_Open_Minute[1]=30;} + break; + + case 4: + if(Set_Close_Minute[1]!=0) + { + Set_Close_Minute[1]=0; + if(++Set_Close_Hour[1]>=24) + {Set_Close_Hour[1]=0;} + } + else + {Set_Close_Minute[1]=30;} + break; + + case 5: + if(Set_Open_Minute[2]!=0) + { + Set_Open_Minute[2]=0; + if(++Set_Open_Hour[2]>=24) + {Set_Open_Hour[2]=0;} + } + else + {Set_Open_Minute[2]=30;} + break; + + case 6: + if(Set_Close_Minute[2]!=0) + { + Set_Close_Minute[2]=0; + if(++Set_Close_Hour[2]>=24) + {Set_Close_Hour[2]=0;} + } + else + {Set_Close_Minute[2]=30;} + break; + + case 7: + if(Set_Open_Minute[3]!=0) + { + Set_Open_Minute[3]=0; + if(++Set_Open_Hour[3]>=24) + {Set_Open_Hour[3]=0;} + } + else + {Set_Open_Minute[3]=30;} + break; + + case 8: + if(Set_Close_Minute[3]!=0) + { + Set_Close_Minute[3]=0; + if(++Set_Close_Hour[3]>=24) + {Set_Close_Hour[3]=0;} + } + else + {Set_Close_Minute[3]=30;} + break; + + case 9: + if(Set_Open_Minute[4]!=0) + { + Set_Open_Minute[4]=0; + if(++Set_Open_Hour[4]>=24) + {Set_Open_Hour[4]=0;} + } + else + {Set_Open_Minute[4]=30;} + break; + + case 10: + if(Set_Close_Minute[4]!=0) + { + Set_Close_Minute[4]=0; + if(++Set_Close_Hour[4]>=24) + {Set_Close_Hour[4]=0;} + } + else + {Set_Close_Minute[4]=30;} + break; + + case 11: + if(Set_Open_Minute[5]!=0) + { + Set_Open_Minute[5]=0; + if(++Set_Open_Hour[5]>=24) + {Set_Open_Hour[5]=0;} + } + else + {Set_Open_Minute[5]=30;} + break; + + case 12: + if(Set_Close_Minute[5]!=0) + { + Set_Close_Minute[5]=0; + if(++Set_Close_Hour[5]>=24) + {Set_Close_Hour[5]=0;} + } + else + {Set_Close_Minute[5]=30;} + break; + + default: + LampTimeSetup_Stepper=0; + flag_LampTimeSetting=0; + break; + } + } +/* +LampTimeSetup_Stepper ʱãǰʱã +1. ʮλ +2. λ +3. ʮλ +4. ¸λ +5. ʮλ +6. ոλ +7. ʱʮλ +8. ʱλ +9. ʮλ +10.ָλ +*/ + else if(flag_ClockTimeSetting) // ڡʱӵʱ״̬... + { + switch(ClockTimeSetup_Stepper) // 1010λõ + { + case 1: + unit=Disp_Year%10; + decade=Disp_Year/10; + decade++; + decade%=10; + Disp_Year=decade*10+unit; + break; + + case 2: + unit=Disp_Year%10; + decade=Disp_Year/10; + unit++; + unit%=10; + Disp_Year=decade*10+unit; + break; + + case 3: + unit=Disp_Month%10; + decade=Disp_Month/10; + decade++; + decade%=2; + Disp_Month=decade*10+unit; + break; + + case 4: + unit=Disp_Month%10; + decade=Disp_Month/10; + unit++; + if(decade==1) unit%=3; + else unit%=10; + if(decade==0&&unit==0) unit=1; + Disp_Month=decade*10+unit; + break; + + case 5: + unit=Disp_Day%10; + decade=Disp_Day/10; + decade++; + decade%=4; + if(decade==0&&unit==0) unit=1; + Disp_Day=decade*10+unit; + break; + + case 6: + unit=Disp_Day%10; + decade=Disp_Day/10; + unit++; + if(decade==3) unit%=2; + else unit%=10; + if(decade==0&&unit==0) unit=1; + Disp_Day=decade*10+unit; + break; + + case 7: + unit=Disp_Hour%10; + decade=Disp_Hour/10; + decade++; + decade%=3; + Disp_Hour=decade*10+unit; + break; + + case 8: + unit=Disp_Hour%10; + decade=Disp_Hour/10; + unit++; + if(decade==2) + unit%=4; + else + unit%=10; + Disp_Hour=decade*10+unit; + break; + + case 9: + unit=Disp_Minute%10; + decade=Disp_Minute/10; + decade++; + decade%=6; + Disp_Minute=decade*10+unit; + break; + + case 10: + unit=Disp_Minute%10; + decade=Disp_Minute/10; + unit++; + unit%=10; + Disp_Minute=decade*10+unit; + break; + + default: + ClockTimeSetup_Stepper=0; + flag_ClockTimeSetting=0; + break; + } + } + else // ֶԶл + { + flag_auto_hand_change=1; + do + { + flag_have_key=1; + key_use=Read_Key_Num(); + Lcd_Disp_KeyDynamic(); + //Delay_ms(100); + Lcd_Display(); + }while(flag_auto_hand_change==1&&key_use!=0xff&&key_use!=K4K6); + + if(key_use==K4K6) + { + System_Init(); + ESP8266_RESTORE(); + } + + if(flag_auto_hand_change==0) + { + //if(key_use==K4K6) + //{ + // System_Init(); + // ESP8266_RESTORE(); + //} + if(key_use==Adjust_Key4) + { + flag_auto_hand=(~flag_auto_hand)&0x01; + Lcd_Display(); + } + } + + if(key_use==0xff) // ֹ;ɿ + { + flag_auto_hand_change=0; + flag_have_key=0; + } + //ht_writecmd(Command, toneon); + //while(Read_Key_Num()!=0xff); // ȴɿ + //ht_writecmd(Command, toneoff); + } + + + break; + + case Lamp_ShiDuan_Key5: + flag_LampTimeSetting=1; // СƵĶʱ + flag_ClockTimeSetting=0; + LampTimeSetup_Stepper++; + + if(LampTimeSetup_Stepper%2==1) + {flag_Open_Time=1;flag_Close_Time=0;} + else + {flag_Open_Time=0;flag_Close_Time=1;} + + if(LampTimeSetup_Stepper>12) + { + LampTimeSetup_Stepper=0; + flag_LampTimeSetting=0; + flag_LampTime_Change=1; + //MCUeeprom_write(); + //MCUeeprom_read(); + } + break; + + case Clock_Setup_Key6: + flag_ClockTimeSetting=1; // Сʱӵʱ + flag_LampTimeSetting=0; + ClockTimeSetup_Stepper++; + if(ClockTimeSetup_Stepper>10) + { + Write_Time(); + //Disp_Year=Disp_Month=Disp_Day=Disp_Hour=Disp_Minute=Disp_Week=0; + //Read_Time(); + ClockTimeSetup_Stepper=0; + flag_ClockTimeSetting=0; + flag_ClockTime_Change=1; + } + break; + + default:break; + } + //if((flag_LampTimeSetting&&key_use==Adjust_Key4)||(flag_ClockTimeSetting&&key_use==Adjust_Key4)||key_use<4||key_use==5|key_use==6) + { + ht_writecmd(Command, toneon); + while(Read_Key_Num()!=0xff); // ȴɿ + ht_writecmd(Command, toneoff); + } + MCUeeprom_write(); + } + } + } + else // ȥ or ûа£ + { + Key_Shake=0; + Key_Back=key_use; + flag_have_key=0; + } +} + +/*********************Զֶ*************************/ +void Autohand_Control(void) +{ + unsigned char i; + unsigned int Timer_open[10],Timer_close[10],Now_time; +/* +@near unsigned char Timers_Enable[11]; 1,2,3,4,5,6,7,8,9,10 +@near unsigned char Set_Open_Hour[10]; 0,1,2,3,4,5,6,7,8,9 +@near unsigned char Set_Open_Minute[10]; 0,1,2,3,4,5,6,7,8,9 +@near unsigned char Set_Close_Hour[10]; 0,1,2,3,4,5,6,7,8,9 +@near unsigned char Set_Close_Minute[10]; 0,1,2,3,4,5,6,7,8,9 +*/ + if(flag_auto_hand==1) //0=ֶ1=Զ + { + for(i=0;i<10;i++) + { + Timer_open[i] =Set_Open_Hour[i]*60+Set_Open_Minute[i]; + Timer_close[i]=Set_Close_Hour[i]*60+Set_Close_Minute[i]; + } + Now_time=Disp_Hour*60+Disp_Minute; + + // Timer1 = 1ʱΣLamp11 1 + if(Timers_Enable[1]&&(Now_time>=Timer_open[0])&&(Now_time=Timer_open[1])&&(Now_time=Timer_open[2])&&(Now_time=Timer_open[3])&&(Now_time=Timer_open[4])&&(Now_time=Timer_open[5])&&(Now_time=10) +// { +// //ESP8266_RST(); +// IWDG_Enable(); +// } +// 1.9 ϵDISCONNECTflag_DisConnect_Monitoring180s=1,180sϢ, λģ,flag_DisConnect180s_StartRST=1 +// else if(flag_DisConnect180s_StartRST) +// { +// flag_DisConnect180s_StartRST=0; +// ESP8266_RST(); +// } + + else if(flag_LoginTCP_SendOnce) // ¼TCP 24 + { + flag_LoginTCP_SendOnce=0; + flag_NoLoginBack_Monitoring150s=1; + + make_AT_CIPSEND(24,0,255); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Function_Code=1; + Load_Header_15data(0,'S'); + Send_Buffer[15]=factory_data; + Send_Buffer[16]=pcb_data; + Send_Buffer[17]=mcu_data; + for(i=18;i<22;i++) + Send_Buffer[i]=LOC_IP_buf[i-18]; + CRC16=GetRevCrc_16(Send_Buffer,22); + Send_Buffer[22]=CRC16>>8; + Send_Buffer[23]=CRC16; + Send_Num=24; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL&&flag_RS232_TimeoutStart);// ѭ SEND OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + System_Status=161; + // ӡ "SEND OK" + flag_SEND_FAIL=0; + } + else + { + System_Status=160; + // ӡ "SEND FAIL" + flag_SEND_FAIL=1; + } + //Lcd_Disp_Tempture(System_Status); + // ȴظʱ; + + } + else if(flag_TCP_Logined) + { + if(flag_Tempture_Abnormal&&TemptureAlam_NormalLowHigh!='N')// ¶쳣º͵£ 22 + { + if(TemptureAlam_Close_Open_Setup==1) // ״̬ + { + if((Real_Tempture>(Set_High_Tempture+6))||(Real_Tempture<(Set_Low_Tempture-6))) + { + flag_Tempture_Abnormal=0; + make_AT_CIPSEND(22,0,255); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Function_Code=9; + Load_Header_15data(0,'S'); + + Send_Buffer[16]=Real_Tempture/0x100; + Send_Buffer[17]=Real_Tempture%0x100;//¶ + if('H'==TemptureAlam_NormalLowHigh) + { + Send_Buffer[15]=1; + Send_Buffer[18]=Set_High_Tempture/0x100; + Send_Buffer[19]=Set_High_Tempture%0x100;//¶ High + } + else if('L'==TemptureAlam_NormalLowHigh) + { + Send_Buffer[15]=0; + Send_Buffer[18]=Set_Low_Tempture/0x100; + Send_Buffer[19]=Set_Low_Tempture%0x100;//¶ Low + } + CRC16=GetRevCrc_16(Send_Buffer,20); + Send_Buffer[20]=CRC16>>8; + Send_Buffer[21]=CRC16; + Send_Num=22; + UART2_Send_Buffer_Check(Send_Num); + while((pStr1=strstr(Receive_Buffer1,SEND_OK))==NULL);// ѭ SEND OK + flag_RS232_TimeoutStart=0; + InBuffer_ID=0;Receive_Count0=0; + + if(pStr1!=NULL) + { + System_Status=201; + // ӡ "SEND OK" + flag_SEND_FAIL=0; + } + else + { + System_Status=200; + // ӡ "SEND FAIL" + flag_SEND_FAIL=1; + } + //Lcd_Disp_Tempture(System_Status); + // ȴظ + } + } + } + + else if(flag_HeartBeat10s)//&&flag_NoLoginBack_Monitoring150s==0) // + { + flag_HeartBeat10s=0; + HeartBeat10s_TimeoutCounter=0; + make_AT_CIPSEND(71,0,'0'); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Function_Code=8; + Heart_and_State_Return('S'); + // ظ + } + } + +} + +/*********************γ֡*************************/ +// \r\n +IPD,0,xx:0Fdd... +// LOCMAC,"18:fe:34:db:0d:33" +// RMTMAC,"5c:cf:7f:07:65:21" +//const unsigned char maohao[]={":"}; +const unsigned char test_IPD[]={'\r','\n','+','I','P','D',',','0',',','1','9', + '1','9','2','.','1','9','2','.','1','9','2','.','1','9','2',',','9','9','9','9',':', + 0, // ͷ0 + 7, // + 0x18,0xfe,0x34,0xdb,0x0d,0x33, // LOC_MAC + 0x5c,0xcf,0x7f,0x07,0x65,0x21, // RMT_MAC + 19, // ݳ + 11,22,33,44,55,66,77,88, // data + 'C','R' // CRC16 + }; +void ReceiveData_Process(void) // +IPD,0,32:http://www.cmsoft.cn QQ:10865600 +{ + unsigned char i,j,temp,CRC16_L,CRC16_H,CRC16_Check_OK; + unsigned int CRC16 = 0xffff; + /* + flag_Receive_NewFrame_Buffer0=1; + for(i=0;i<50;i++) + Receive_Buffer0[i]=test_IPD[i]; + + temp=strloc(Receive_Buffer0,plusIPD); + temp=0; + temp=strloc(Receive_Buffer0,"+IPD,"); + temp=0; + temp=strloc(Receive_Buffer0,plusIPD); + temp=0; + */ + if(flag_Receive_NewFrame_Buffer0) + { + flag_Receive_NewFrame_Buffer0=0; + + HeartBeat10s_TimeoutCounter=0; + HeartBeat_0_TimeoutCounter=0; + HeartBeat_1_TimeoutCounter=0; + + //for(i=0;i, : + // +IPD,,[,,]: + // 0 1 23456789abcdef + //磺\r\n+IPD,0,32:http://www.cmsoft.cn QQ:10865600 + + if(Receive_Buffer0[temp+5]=='0') // id + {Link_id='0';} + else // if(Receive_Buffer0[temp+7]=='1') + {Link_id='1';} // udp_adder=Receive_Buffer0[temp+7]; + + temp=temp+7; // =9 + + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9'))//9 maxlen=2048 + { + Receive_NewFrame_Length=Receive_Buffer0[temp]-'0'; + temp++; + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9'))//10 + { + Receive_NewFrame_Length=(Receive_Buffer0[temp-1]-'0')*10+(Receive_Buffer0[temp]-'0'); + temp++; + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9')) //*11 + { + Receive_NewFrame_Length=(Receive_Buffer0[temp-2]-'0')*100+(Receive_Buffer0[temp-1]-'0')*10+(Receive_Buffer0[temp]-'0'); + temp++; + if((Receive_Buffer0[temp]>='0')&&(Receive_Buffer0[temp]<='9')) //*12 + { + Receive_NewFrame_Length=(Receive_Buffer0[temp-3]-'0')*1000+(Receive_Buffer0[temp-2]-'0')*100\ + +(Receive_Buffer0[temp-1]-'0')*10+(Receive_Buffer0[temp]-'0'); + } + } + } + } + // ȡԶIPͶԶ˶˿ + if(Receive_Buffer0[temp]==','); // 11="," + temp++; + //if(Receive_Buffer0[temp]=='"'); // 12=""" + //temp++; + + + + + + + + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]=='.') + break; + } + if(i==1) + RMT_IP_buf[0]=(Receive_Buffer0[temp]-'0'); + else if(i==2) + RMT_IP_buf[0]=(Receive_Buffer0[temp]-'0')*10 +(Receive_Buffer0[temp+1]-'0'); + else if(i==3) + RMT_IP_buf[0]=(Receive_Buffer0[temp]-'0')*100+(Receive_Buffer0[temp+1]-'0')*10+(Receive_Buffer0[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]=='.') + break; + } + if(i==1) + RMT_IP_buf[1]=(Receive_Buffer0[temp]-'0'); + else if(i==2) + RMT_IP_buf[1]=(Receive_Buffer0[temp]-'0')*10+(Receive_Buffer0[temp+1]-'0'); + else if(i==3) + RMT_IP_buf[1]=(Receive_Buffer0[temp]-'0')*100+(Receive_Buffer0[temp+1]-'0')*10+(Receive_Buffer0[temp+2]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]=='.') + break; + } + if(i==1) + RMT_IP_buf[2]=(Receive_Buffer0[temp+i-1]-'0'); + else if(i==2) + RMT_IP_buf[2]=(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==3) + RMT_IP_buf[2]=(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]==',') + break; + } + if(i==1) + RMT_IP_buf[3]=(Receive_Buffer0[temp+i-1]-'0'); + else if(i==2) + RMT_IP_buf[3]=(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==3) + RMT_IP_buf[3]=(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + temp=temp+i+1; + + for(i=0;i<10;i++) + { + if(Receive_Buffer0[temp+i]==':') + break; + } + if(i==1) + RMT_IP_PORT=(Receive_Buffer0[temp+i-1]-'0'); + else if(i==2) + RMT_IP_PORT=(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==3) + RMT_IP_PORT=(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + else if(i==4) + RMT_IP_PORT=(Receive_Buffer0[temp+i-4]-'0')*1000+(Receive_Buffer0[temp+i-3]-'0')*100+(Receive_Buffer0[temp+i-2]-'0')*10+(Receive_Buffer0[temp+i-1]-'0'); + temp=temp+i+1; + + + + + + // + temp=strloc(Receive_Buffer0,":"); + if(Receive_Buffer0[temp]==':'); // 11=":" + temp++; + if(Receive_Buffer0[temp]==1); // 12,Է=1ҷظ=0 + Function_Code=Receive_Buffer0[temp+1]; // 13, + + //1.ظ豸¼ָ(25ֽ) Function_Code==1 ͵ Ƿ + if((25==Receive_NewFrame_Length)&&(1==Function_Code)) + { + flag_HeartBeat10s=1; // һ + + flag_TCP_Logined=1; + flag_NoLoginBack_Monitoring150s=0; + + if(Check_Header_15data(temp)) + { + temp=temp+15; + CRC16=Receive_Buffer0[temp++]*0x100; // 0x07 + CRC16+=Receive_Buffer0[temp++]; // 0xdf + Disp_Year=CRC16%100; // 0x07df=2015 + Disp_Month=Receive_Buffer0[temp++]; + Disp_Day=Receive_Buffer0[temp++]; + Disp_Hour=Receive_Buffer0[temp++]; + Disp_Minute=Receive_Buffer0[temp++]; + Disp_Second=Receive_Buffer0[temp++]; + Disp_Week=Receive_Buffer0[temp]; + Write_Time(); + CRC16_L=Receive_Buffer0[temp+1]; + CRC16_H=Receive_Buffer0[temp+2]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+1); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //2.лģʽָ(18ֽ)Function_Code==2 + else if((18==Receive_NewFrame_Length)&&(2==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + if(Receive_Buffer0[temp]==0x0) + flag_auto_hand=0; + else + flag_auto_hand=1; + + CRC16_L=Receive_Buffer0[temp+1]; + CRC16_H=Receive_Buffer0[temp+2]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+1); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //3.ֶģʽ¿ָ(19ֽ)Function_Code==3 + else if((19==Receive_NewFrame_Length)&&(3==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + if(flag_auto_hand==0) + { + if(Receive_Buffer0[temp]==1)//Ʊ1=lamp1 + { + if(Receive_Buffer0[temp+1]==0)flag_lamp1_onoff=0; + else if(Receive_Buffer0[temp+1]==1)flag_lamp1_onoff=1; + } + else if(Receive_Buffer0[temp]==2)//Ʊ2=lamp2 + { + if(Receive_Buffer0[temp+1]==0)flag_lamp2_onoff=0; + else if(Receive_Buffer0[temp+1]==1)flag_lamp2_onoff=1; + } + else if(Receive_Buffer0[temp]==3)//Ʊ3=UVC_pump + { + if(Receive_Buffer0[temp+1]==0)flag_UVC_onoff=0; + else if(Receive_Buffer0[temp+1]==1)flag_UVC_onoff=1; + } + else if(Receive_Buffer0[temp]==4)//Ʊ4=.. + { + if(Receive_Buffer0[temp+1]==0)flag_lamp4_onoff=0; + else flag_lamp4_onoff=1; + } + else if(Receive_Buffer0[temp]==5)//Ʊ5=.. + { + if(Receive_Buffer0[temp+1]==0)flag_lamp5_onoff=0; + else flag_lamp5_onoff=1; + } + CRC16_L=Receive_Buffer0[temp+2]; + CRC16_H=Receive_Buffer0[temp+3]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+2); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + } + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //4.öʱʱָ(22ֽ)Function_Code==4 + else if((22==Receive_NewFrame_Length)&&(4==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + //Timers_Enable[Receive_Buffer0[temp]]=1; // ֻ趨ʱʱʱ + i=Receive_Buffer0[temp]-1; // 1~10 + Set_Open_Hour[i]=Receive_Buffer0[temp+1]; + Set_Open_Minute[i]=Receive_Buffer0[temp+2]; + Set_Close_Hour[i]=Receive_Buffer0[temp+3]; + Set_Close_Minute[i]=Receive_Buffer0[temp+4]; + + CRC16_L=Receive_Buffer0[temp+5]; + CRC16_H=Receive_Buffer0[temp+6]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+5); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //5.ñ¶ָ(22ֽ)Function_Code==5 + else if((22==Receive_NewFrame_Length)&&(5==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + if(Receive_Buffer0[temp]<2) + TemptureAlam_Close_Open_Setup=Receive_Buffer0[temp]; + // TemptureAlam_Close_Open_Setup=0,ر + // TemptureAlam_Close_Open_Setup=1, + // TemptureAlam_Close_Open_Setup=2,ֻԤ¶ȣǷ񿪹ر + else if(2==Receive_Buffer0[temp]) + { + Set_Low_Tempture=Receive_Buffer0[temp+1]*0x100+Receive_Buffer0[temp+2]; + Set_High_Tempture=Receive_Buffer0[temp+3]*0x100+Receive_Buffer0[temp+4]; + } + + CRC16_L=Receive_Buffer0[temp+5]; + CRC16_H=Receive_Buffer0[temp+6]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+5); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //6.ѯ豸״ָ̬(17ֽ)Function_Code==6 + else if((17==Receive_NewFrame_Length)&&(6==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + CRC16_L=Receive_Buffer0[temp]; + CRC16_H=Receive_Buffer0[temp+1]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + } + + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + //7.豸ָ(37ֽ)Function_Code==7 zhang + else if((37==Receive_NewFrame_Length)&&(7==Function_Code)) + { + //\r\n +IPD,0,xx:0Fdd... ·ʱ(+CIPMUX=1)+IPD,,: + // 0 1 23456789abcdef + //磺\r\n+IPD,0,32:http://www.cmsoft.cn QQ:10865600 + + if(Check_Header_15data(temp)) + { + temp=temp+15; + for(i=0;i<20;i++) + URL_ADDR[i]=Receive_Buffer0[temp+i]; + + CRC16_L=Receive_Buffer0[temp+i]; + CRC16_H=Receive_Buffer0[temp+i+1]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+i); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + Have_New_URL=0xea; + make_AT_CIPSEND(20,0,255); + UDP1_Return(7); + if(flag_TCP0_Connected) + ESP8266_CIPCLOSE('0'); + ESP8266_CIPSTART_TCP('0'); + flag_TCP_Logined=0; + + // ֤Ƿȷ(Ƿ'id=2') + /* + if(Link_id=='1') + ESP8266_CIPSTART_NewTCP_Check('2'); + else if(Link_id=='2') + ESP8266_CIPSTART_NewTCP_Check('1'); + + // ǻظUDP + make_AT_CIPSEND(20,0,255); // AT+CIPSEND=1,20,255.255.255.255,9954 ȫȺ + if(Have_New_URL==0xea) + UDP1_Return(7); + else + UDP1_Return(0xff); + */ + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + //8.Function_Code==8, 践 + //9.Function_Code==9, 践 + //10.ضʱָ(19ֽ)Function_Code==10 + else if((19==Receive_NewFrame_Length)&&(10==Function_Code)) + { + if(Check_Header_15data(temp)) + { + temp=temp+15; + i=Receive_Buffer0[temp]; + Timers_Enable[i]=Receive_Buffer0[temp+1]; + + CRC16_L=Receive_Buffer0[temp+2]; + CRC16_H=Receive_Buffer0[temp+3]; + CRC16=GetRevCrc_16(Receive_Buffer0,temp+2); + if(CRC16==(CRC16_H*0x100+CRC16_L)){CRC16_Check_OK=1;} // У + CRC16_Check_OK=1; + //// + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ht_writecmd(Command, toneon); + //flag_Buzzer=1; + BEEP_ms(10); + } + } + + // лظ,Function_Code=,2,3,4,5,6,7,,,10 + if(CRC16_Check_OK&&Function_Code!=1&&Function_Code!=7&&Function_Code!=8&&Function_Code!=9) + { + make_AT_CIPSEND(71,0,255); // ͷAT+CIPSEND=0,len 0=idlen=ݳȡ; + Heart_and_State_Return('R'); + + } + else + { + //Function_Code=0xff; // Ҫط + } + MCUeeprom_write(); // xinݵMCUeeprom60bytes; + } + + // һȷ£һ"SmartLink"ʾ1~7, ڶϵԶʾ56,5~63 + // 1. smartconfig type:ESPTOUCH + // 2. Smart get wifi info + // 3. ssid:TP-LINK_0202 + // 4. password:1234567890 + // 5. WIFI CONNECTED + // 6. WIFI GOT IP + // 7. smartconfig connected wifi + +// £ +//smartconfig type:ESPTOUCH +//Smart get wifi info +//ssid:TP-LINK_0202 +//password:15800 +//WIFI DISCONNECT + else if((pStr0=strstr(Receive_Buffer0,ready))!=NULL)// "ready" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_WiFi_ready=1; + ESP8266_CWMODE('1'); + //ESP8266_CIPMODE('0'); // Ĭ'0' + ESP8266_CIPMUX('1'); + ESP8266_CIPDINFO('1'); + + NoWiFi5s_TimeoutCounter=0; + flag_ready_Monitoring5s=1; // 5S ago flag_ready5s_STARTSMART=1; + + System_Status=31; + //Lcd_Disp_Tempture(System_Status); + } + + else if((pStr0=strstr(Receive_Buffer0,WIFI_DISCONNECT))!=NULL)// "WIFI DISCONNECT" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_WiFi_Disconnect=1; + flag_WiFi_Connected=0; + flag_TCP0_Connected=0; + + flag_WiFi_Connect_Enable=1; + NoWiFi5s_TimeoutCounter=0; + flag_ready_Monitoring5s=0; // 5S ago flag_ready5s_STARTSMART=1; + + System_Status=220; + //Lcd_Disp_Tempture(System_Status); + //ESP8266_RST(); + } + else if((pStr0=strstr(Receive_Buffer0,WIFI_CONNECTED))!=NULL)// "WIFI CONNECTED" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + flag_ready_Monitoring5s=0; + flag_ready5s_STARTSMART=0; + flag_WiFi_Connect_Enable=1; + flag_WiFi_Disconnect=0; + } + else if((pStr0=strstr(Receive_Buffer0,WIFI_GOT_IP))!=NULL)// "WIFI GOT IP" + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + + //flag_DisConnect_Monitoring180s=0; + flag_WiFi_Disconnect=0; + flag_WiFi_Connected=1; + flag_WiFi_Smarting=0; + + ESP8266_CIFSR(); + //ESP8266_CIPDINFO('1'); + InBuffer_ID=0; + + ESP8266_CIPSTART_UDP('1'); // UDP0 + + ESP8266_CIPSTART_TCP('0'); // TCP1 + System_Status=151; + //Lcd_Disp_Tempture(System_Status); + } + // "0,CONNECT",TCP0ӳɹ + else if(((pStr0=strstr(Receive_Buffer0,TCP_0_CONNECT))!=NULL)) + + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_TCP0_Connected=1; + flag_LoginTCP_SendOnce=1; + //flag_NoLoginBack_Monitoring150s=0; + + BEEP_ms(200); + System_Status=161; + flag_Restart_Connect_TCP=0; + //Lcd_Disp_Tempture(System_Status); + } + // "1,CONNECT",UDPӳɹ + else if((pStr0=strstr(Receive_Buffer0,UDP_1_CONNECT))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_UDP1_Connected=1; + } + + else if((pStr0=strstr(Receive_Buffer0,SEND_OK))!=NULL)// "SEND OK" CIPSENDݳɹ + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //flag_NoLoginBack_Monitoring150s=0; + flag_TCP0_Connected=1; + } + + else if(((pStr0=strstr(Receive_Buffer0,TCP0_CLOSED))!=NULL)||((pStr0=strstr(Receive_Buffer0,DNS_Fail))!=NULL))// "CLOSED",TCPʧDNS Fail + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + + flag_TCP0_Connected=0; + //flag_TCP0_Connecting=1; + flag_SEND_FAIL=0; + flag_TCP_Logined=0; + BEEP_ms(200); + //Delay_ms(10000); + //ESP8266_RST(); + //ESP8266_CIPCLOSE(Link_id); + + //ESP8266_CIPSTART_TCP('0');// TCP0 + + //flag_NoLoginBack_Monitoring150s=1; + + System_Status=160; + //Lcd_Disp_Tempture(System_Status); + flag_Restart_Connect_TCP=1; + + } + + + else if((pStr0=strstr(Receive_Buffer0,ERROR))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + //flag_Restart_Connect_TCP=1; + } + else if((pStr0=strstr(Receive_Buffer0,link_is_not_valid))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + } + else if((pStr0=strstr(Receive_Buffer0,FAIL))!=NULL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + } + else if(flag_SEND_FAIL) + { + for(i=0;i<120;i++) + Receive_Buffer0[i]=0; + //ESP8266_RST(); + IWDG_Enable(); + } + + /* + + else if((pStr0=strstr(Receive_Buffer0,Smart_get_wifi_info))!=NULL)// "Smart_get_wifi_info" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,smarting_connected_wifi))!=NULL)// "smartconfig connected wifi" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,SEND_OK))!=NULL)// "SEND OK" CIPSENDݳɹ + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,send_logo))!=NULL)// "> " + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,ALREADY_CONNECT))!=NULL)// "ALREADY CONNECT",TCPѾڣ + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,FAIL))!=NULL)// "FAIL" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,ERROR))!=NULL)// "ERROR" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + else if((pStr0=strstr(Receive_Buffer0,OK))!=NULL)// "OK" + {for(i=0;i<120;i++)Receive_Buffer0[i]=0;} + */ + } +} + + +/* +촽ݣС࣬ +Ƴݺתࡣ + +Ŀɽˮԣҡ +ǻĻһȪ + +Ʒջɲüһߡ +̬ڵׯϡ + +Բ¶ܽ˸档 +ֵֿͣС¾ɼ + +ǡôܲȫ +ؿ̾ +ңɼԴѡ +ֻԶۣ档 + +Ω׳ɽ +񳯰ѷ죬ս˿ƫ +ٱױݣǧ㽿ޡ +ͤͤˣӯӯﲨת +ǷǣƫҪһ档 +öǣDZ봺 +һʴǣ˵Դ +*/ + +/**********************************************/ +void main(void) +{ + unsigned char i,j; + int USE; + +//**********************ʼUART2********************** + UART2_CR1 = 0x00; + UART2_CR2 = 0x00; + UART2_CR3 = 0x00; + UART2_BRR2 = 0x00; + UART2_BRR1 = 0x06; +// UART_DIV[15:0]=fMASTER/; +// UART_BRR1=UART_DIV[11:4] +// UART_BRR1=UART_DIV[15:12]+UART_DIV[3:0] + +// fMASTER=11059200(11.0592MHz) +// ڲ115200ʱƵϵ=11059200/115200=96 +// ӦʮΪ0060BBR1=0x06,BBR2=00 + +// ڲ 9600ʱƵϵ=11059200/9600=1152 +// ӦʮΪ0480BBR1=0x48,BBR2=00 + +// UART2_SR = 0x0; + UART2_CR2 = 0x2C; //00101100 + //λ7:TIEN жʹܣ + //λ6:TCIEN жʹܣ + //λ5:RIEN *жʹܣ + //λ4:ILIEN IDLEжʹܣ + //λ3:TEN *ʹܣ + //λ2:REN *ʹܣ + //λ1:RWU ջѣ + //λ0:SBK ͶϿ֡ +//******************************************************* + +//*********************ʼMCU˿********************* +//pb pb0 ad +// pb1 *PB1-ESP_EN +// pb4 b0 +// pb5 b1 +//pc pc1© ds_data +// pc2© ds_rst +// pc3© LCD_backled_PC3 +// pc4© heating_PC4 +// pc5© UVC_PC7 +// pc6© lamp1_PC6 +// pc7© lamp2_PC5 +//pd pd0© *PD6-RSTESP +// pd2 b3 +// pd3© lcd_data +// pd4© lcd_wr +// pd5 TX +// pd6 RX +// pd7© lcd_cs +//pe pe5© ds_clk +//pf pf4 b2 + PE_DDR|=0x20;PE_CR1|=0x00;PE_CR2|=0x00;PE_ODR=0x00; + PF_DDR|=0x00;PF_CR1|=0x10;PF_CR2|=0x00;PF_ODR|=0x10; + PB_DDR|=0x00;PB_CR1|=0x30;PB_CR2|=0x00;PB_ODR|=0x30; + PC_DDR|=0xfe;PC_CR1|=0x00;PC_CR2|=0x00;PC_ODR=0x08; + PD_DDR|=0xb8;PD_CR1|=0x44;PD_CR2|=0x00;PD_ODR|=0x4; +//******************************************************* + +//************************ʱӿ*********************** +// 8.9.1 ڲʱӼĴ(CLK_ICKR) +// CLK_ICKR=0x01; +// 8.9.2 ⲿʱӼĴ(CLK_ECKR) +// CLK_ECKR=0x00; +// 8.9.3 ʱ״̬Ĵ(CLK_CMSR) +// CLK_CMSR=0xE1; // CLK_CMSR=CKM[7:0]ʱ״̬λ +//0xE1HSIΪʱԴ(λֵ) +//0xD2LSIΪʱԴ(LSI_ENѡλΪ1ʱ) +//0xB4HSEΪʱԴ + +// 8.9.4 ʱлĴ(CLK_SWR) +// 8.9.5 лƼĴ(CLK_SWCR) + CLK_SWCR|=0x02; // ڶλSWENд1лʱĴCLK_SWRָʱԴ + CLK_SWR = 0xb4; // 0xB4HSEΪʱԴ + // 0xE1HSIΪʱԴ(λֵ)16MHz + +// 8.9.6 ʱӷƵĴ(CLK_CKDIVR[4:0]),λֵ0x18 + // λ 4:3(HSIDIV[1:0]ڲʱԤƵ) 11fHSI = fHSI RC/8 + // λ 2:0(CPUDIV[2:0]CPUʱԤƵ) 000fCPU = fMASTER +// CLK_CKDIVR = 0x18; // ʱ = 16MHZ / 8 + // fCPUʱ = fMASTERʱ = 2MHZ + +// 8.9.7 ʱſؼĴ(CLK_PCKENR1) +// 8.9.8 ʱſؼĴ(CLK_PCKENR2) +// 8.9.9 ʱӰȫϵͳĴ(CLK_CSSR) +// 8.9.10 ʱĴ +// 8.9.11 CAN ⲿʱӿƼĴ(CLK_CANCCR) +// 8.9.12 HSI ʱĴ(CLK_HSITRIMR) +// 8.9.13 SWIM ʱӿƼĴ(CLK_SWIMCCR) +//******************************************************* + +//**********************ʼA/Dģ********************* +// ----------ʼA/Dģ; + ADC_CR2 = 0x00; // A/D + ADC_CR1 = 0x00; // ADCʱ=ʱ/2=1MHZ + // ADCתģʽ= + // ֹADCת + ADC_CSR = 0x00; // ѡͨ0 + ADC_TDRL = 0x1; + + ADC_CR1 = 0x01; // CR1Ĵλ1ʹADCת ת + Delay(100); // ʱһʱ䣬7uS֤ADCģϵ + ADC_CR1 = ADC_CR1 | 0x01; // ٴνCR1Ĵλ1 + // ʹADCת +//******************************************************* + +//********************ʼʱģ******************* + TIM4_IER = 0x00; // ֹж + TIM4_EGR = 0x01; // ¼ + TIM4_PSCR = 0x07; // ʱ=ʱ/128=2MHZ/128=64us΢ + TIM4_ARR =255;// 156; // 趨װʱļĴֵ255ֵ*64=16.320ms + TIM4_CNTR=255;//156; // 趨ijֵ //2MHZ/128/255/ + // ʱ=(ARR+1)*64=16320uS + TIM4_CR1 = 0x01; // b0 = 1, + // b1 = 0, + // ÿʱ + TIM4_IER = 0x01; // ж +//******************************************************* + + _asm("rim"); // _asm("sim"); // ǹж + // _asm("rim"); // ǿж + //ht_writecmd(Command, toneon); + + System_Init(); // ջ㣻 + ht1621_cmd_init(); // LCDʼ + + //Disp_Second=readds1302(0)&0x7f; + //writeds1302(0x0,7); // д + //writeds1302(Disp_Second,0); + //writeds1302(0xa5,8); + //writeds1302(0x80,7); // дWP + + //state0=readds1302(0x20); + //MCUeeprom_read(); + //Read_Time(); + //Delay_ms(200); + //ht_writecmd(Command, toneoff); + + while (0) // for test + { + Delay(5000); // Delay(5000)=14ms + Delay(5000); + Delay(5000); + Delay(5000); + Delay(5000); + lamp2_PC5=~lamp2_PC5; + lamp1_PC6=~lamp1_PC6; + UVC_PC7=~UVC_PC7; + LCD_backled_PC3=~LCD_backled_PC3; + //ReceiveData_Process(); + } + //_asm("rim"); + + + while(0) + { + Delay(5000); + } + + + while (0) // for test + { + ht_writecmd(Command,lcdon); + Delay(5000); + Delay(5000); + ht_writecmd(Command,lcdoff); + Delay(5000); + Delay(5000); + + for(i=0;i<32;i++) + ht_writedata(i,0xff,4); + + Delay(5000); + Delay(5000); + for(i=0;i<32;i++) + { + Delay(5000); + Delay(5000); + for(j=0;j<16;j++) + { + ht_writedata_zdh(31-i,j,4); + Delay(5000); + Delay(5000); + } + } + + } + while (0) + { + ht_writecmd(Command,lcdoff); + + ESP8266_CombineKey(); // ESP8266ã + Delay(5000); + } + + while(0) + { + _asm("sim"); + state0=0xaa; + Have_New_URL=0xab; + MCUeeprom_write(); + Delay(50000); + for(i=55;i<75;i++) + URL_ADDR[i-55]=0; + state0=0; + Have_New_URL=0; + MCUeeprom_read(); + Delay(50000); + + flag_lamp2_onoff=1; + flag_lamp1_onoff=0; + flag_UVC_onoff=1; + flag_auto_hand=1; + + + MCUeeprom_write(); + state0=0; + Delay(50000); + MCUeeprom_read(); + Delay(50000); + } + while (0) // for test + { + flag_ScreenLock_Status=0; + while (0) + { + + Key_Scanning_OK(); + Lcd_Display(); + Delay(50000); + //Delay(50000); + } + } + + while(0) // for test + { + //Read_STAIP_STAMAC(); + Delay(10); + //ReceiveData_Process(); + Delay(10); + Heart_and_State_Return('S'); + //Check_Header_15data(0); + Delay(10); + } + + + //flag_lamp2_onoff=0; + + while(0) + { + //Key_Scanning_OK(); // ɨ; + _asm("sim"); + //Read_Tempture(); + make_AT_CIPSEND(20,255,255); + //ESP8266_CIPSTART_UDP1_BK(1); + Delay(10); + } + + //MCUeeprom_write_URL(); + //MCUeeprom_write(); + MCUeeprom_read(); + ESP8266_RST(); + Link_id='0'; + flag_ScreenLock_Status=1; // 趨? + //ESP8266_RESTORE(); + while (1) + { + InBuffer_ID=0; + //ESP8266_CombineKey(); // ESP8266ϼã + ReceiveData_Process(); // Խյ.зظֵ + Key_Scanning_OK(); //ok ɨ; + Read_Time(); //ok DS1302ʱ; + Read_Tempture(); //ok ɼ¶andжϴ; + Lcd_Display(); //ok Ļˢ + Autohand_Control(); //ok ״̬flag_auto_hand0ֶģʽ(ݰ)...1Զģʽ(ݶʱ)...; + CIPSendData_Process(); // ״̬仯ݣ + + // ¶ʾͨѶϴӡ + if(0)//if(flag_ScreenLock_Status==1&&Key_Back==Adjust_Key4) + { + Lcd_Disp_Tempture(System_Status); + //ht_writecmd(Command, toneon); + //while(Read_Key_Num()!=0xff); // ȴɿ + //ht_writecmd(Command, toneoff); + //MCUeeprom_write(); + } + + } +} +/* + "" "" "˵" +1AT+RST ready ; +1AT+RESTORE ready ָã +1ATE0/1 OK ȡ/ûԹ; + +2AT+CWMODE=1 OK/ERROR óSTA; +2AT+CIPMODE=0 OK/ERROR ÷͸ģʽ; +2AT+CIPMUX=1 OK/ERROR ·; + +3AT+CWSTARTSMART OK ·; +3AT+CWSTOPSMART OK ر·; +3AT+CIFSR OK ѯģIP; + AT+CIFSR + +CIFSR:STAIP,"192.168.0.108" + +CIFSR:STAMAC,"18:fe:34:db:0d:33" + + OK + +4AT+CIPSTART=0,"TCP","192.168.1.2",9955 OK/ERROR/ALREADY CONNECT TCP +4AT+CIPCLOSE=5 OK/ERROR ر + +5AT+CIPSEND=x,len:ddddd OK+"> " : x= ID(0~4)ڶӵ +5+IPD,0,len:www.ifish7.com ݣlenݳ(MAX=2048) +*/ + +/**********************************************/ +// ܣUART2ĽжϷ 1byte +// +// +// ֵ +/**********************************************/ +@far @interrupt void UART2_Recv_IRQHandler (void) +{ + unsigned char i; + // flag_Receive_NewFrame_Buffer0=1; + if(Receive_Count0>119) + Receive_Count0=0; + if(Receive_Count1>119) + Receive_Count1=0; + + if(1==flag_WiFi_Data_Sending||0==InBuffer_ID) + { + Receive_Buffer0[Receive_Count0++]=UART2_DR;// յַ0 ϵͳ + Receive_NewFrame_TimeoutCounter=0; + flag_Receive_NewOneByte=1; + } + else + Receive_Buffer1[Receive_Count1++]=UART2_DR;// յַ1 Ե + /* + if(1==InBuffer_ID) + { + Receive_Buffer1[Receive_Count1++]=UART2_DR;// յַ1 Ե + } + else + { + Receive_Buffer0[Receive_Count0++]=UART2_DR;// յַ0 ϵͳ + Receive_NewFrame_TimeoutCounter=0; + flag_Receive_NewOneByte=1; + } + */ + return; +} + +/**********************************************/ +// ܣUART2ķжϷ +// +// +// ֵ +/**********************************************/ +@far @interrupt void UART2_Send_IRQHandler (void) +{ + if(flag_WiFi_Data_Sending==1) + { + if(Send_Count<=Send_Num) + UART2_DR = Send_Buffer[++Send_Count]; + else + { + flag_WiFi_Data_Sending=0; + UART2_CR2&= 0x7f; //TIEN=0жʹֹܱ + } + } + return; +} + + +void Display_T(void) +{ + unsigned char temp,lcd_high4,lcd_low4; +// ʱСʱλֵSEG0+SEG8-8: + if(flag_LampTimeSetting) + { + if(flag_TimeSetup_Jump) + temp=0x0; + else if(flag_Open_Time) + temp=Lcd_Table0123456789[Set_Open_Hour[(LampTimeSetup_Stepper-1)/2]%10]; + else if(flag_Close_Time) + temp=Lcd_Table0123456789[Set_Close_Hour[(LampTimeSetup_Stepper-1)/2]%10]; + } + else if(flag_ClockTimeSetting) + { + if(flag_TimeSetup_Jump&&ClockTimeSetup_Stepper==8) + temp=0x0; + else + temp=Lcd_Table0123456789[Disp_Hour%10]; + } + else + temp=Lcd_Table0123456789[Disp_Hour%10]; + lcd_high4=(temp&0xf0)>>4; + lcd_low4=temp&0xf; + if(flag_Colon_Jump){lcd_high4=lcd_high4|0x1;} // COLǡ:, + ht_writedata(0,lcd_high4,4); // SEG0:11A11B11C+COL + ht_writedata(8,lcd_low4,4); // SEG8:11F11G11E11D + + +// K1=(),K2=( ),K3=( )=>router ,WiFi=WiFi=>server :SEG30 + lcd_low4=0x00; + if((flag_WiFi_ready&&flag_WiFi_Connect_Enable)||flag_WiFi_Disconnect) + { + if(flag_TCP0_Connected) + {lcd_low4|=0x01;} + else + { + if(flag_Colon_Jump) + lcd_low4|=0x01; + else + lcd_low4&=0x00; + } + + if(flag_WiFi_Connected) + {lcd_low4|=0x0e;} + else + { + if(flag_Colon_Jump) + lcd_low4|=0x0f; + else + lcd_low4&=0x00; + } + + if(flag_WiFi_Disconnect) + {lcd_low4|=0x01;} + } + ht_writedata(30,lcd_low4,4); // SEG30:K1+K2+K3+WiFi:"(((WiFi)))" +} +/**********************************************/ +// ܣʱ4ĸжϷ +// +// +// ֵ 16.32ms3MSһTIM4ж, +/**********************************************/ +@far @interrupt void TIM4_UPD_OVF_IRQHandler (void)//2MHZ/128/255/ +{ + TIM4_SR = 0x00; // ±־ + //PD_ODR = PD_ODR ^ 0x08; // LEDźȡ + // //LED˸Ƶ=2MHZ/128/255/2=30.63 + + // 1. ʱƬ= 50*3=150ms + if(++ThreeMS_Counter>=50) + { + ThreeMS_Counter=0; + // 1.0 + if(flag_TCP0_Connected==0&&flag_WiFi_Connected) + { + if(++TCP0_TimeoutCounter>=400) //150ms*400=60s + { + TCP0_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + if(flag_TCP0_Connected)TCP0_TimeoutCounter=0; + + // 1.1 + flag_TimeSetup_Jump=~flag_TimeSetup_Jump; + if(++Lcd_Colon_TimeoutCounter>5) // 600ms + { + Lcd_Colon_TimeoutCounter=0; // ƹ + flag_Colon_Jump=~flag_Colon_Jump; // ClockTime":","(((WiFi)))" + //Display_T(); + } + + // 1.2 RS232ӳʱ //50*3*40=6000ms + if(++RS232_TimeoutCounter>=40&&flag_RS232_TimeoutStart) + { + RS232_TimeoutCounter=0; + flag_RS232_TimeoutStart=0; + flag_RS232_Timeout=1; + } + if(flag_RS232_TimeoutStart==0)RS232_TimeoutCounter=0; + + // 1.3 //50*3*15=2250ms + if(flag_ScreenLock_Status&&flag_have_key) + { + if(++UnLockScreen_TimeoutCounter>=15) + { + if(flag_ScreenLock_Status) + flag_ScreenLock_Status=0; + UnLockScreen_TimeoutCounter=0; + } + } + if(flag_ScreenLock_Status==0)UnLockScreen_TimeoutCounter=0; + + // 1.4 ֶԶл //50*3*10=1500ms + if(flag_auto_hand_change&&flag_have_key) + { + if(++auto_hand_TimeoutCounter>=10) + { + if(flag_auto_hand_change) + flag_auto_hand_change=0; + auto_hand_TimeoutCounter=0; + } + } + if(flag_auto_hand_change==0)auto_hand_TimeoutCounter=0; + + // 1.5 ʱ //50*3*50=7500ms + if(flag_ScreenLock_Status==0)//&&flag_auto_hand_change==0) + { + if(++LockScreen_TimeoutCounter>=50) + { + flag_ScreenLock_Status=1; + LockScreen_TimeoutCounter=0; + if(flag_ClockTimeSetting) + { + flag_ClockTimeSetting=0; + ClockTimeSetup_Stepper=0; + } + if(flag_LampTimeSetting) + { + flag_LampTimeSetting=0; + LampTimeSetup_Stepper=0; + flag_Open_Time=0; + flag_Close_Time=0; + } + } + } + if(flag_ScreenLock_Status)LockScreen_TimeoutCounter=0; + + // 1.6 Լ10s //50*3*68=10200ms Connect_TCP_Counter=0; + if(flag_TCP0_Connected&&flag_WiFi_Connected&&flag_TCP_Logined) + { + if(++HeartBeat10s_TimeoutCounter>68) + { + HeartBeat10s_TimeoutCounter=0; + flag_HeartBeat10s=1; + } + } + if(flag_TCP_Logined==0)HeartBeat10s_TimeoutCounter=0; + + // ʱ60sû·Źλ + if(flag_HeartBeat10s&&flag_TCP0_Connected&&flag_WiFi_Connected) + { + HeartBeat_0_TimeoutCounter=0; + if(++HeartBeat_1_TimeoutCounter>400) + { + HeartBeat_1_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + else if(flag_HeartBeat10s==0&&flag_TCP0_Connected&&flag_WiFi_Connected) + { + HeartBeat_1_TimeoutCounter=0; + if(++HeartBeat_0_TimeoutCounter>400) + { + HeartBeat_0_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + + // 1.7 ӷʧܣһֱԼ10s10Σ + if(flag_Restart_Connect_TCP) + { + if(++Restart_Connect_TCP_TimeoutCounter>90) + { + Connect_TCP_Counter++; + Restart_Connect_TCP_TimeoutCounter=0; + flag_Enable_Connect_TCP=1; + } + } + if(flag_Restart_Connect_TCP==0)Restart_Connect_TCP_TimeoutCounter=0; + // ·ʧܣ10s·ɸλ + if(flag_WiFi_Disconnect) + { + if(++WiFi_Disconnect_TimeoutCounter>90) + { + WiFi_Disconnect_TimeoutCounter=0; + //ESP8266_RST(); + IWDG_Enable(); + } + } + if(flag_have_key) WiFi_Disconnect_TimeoutCounter=0; + +// 1.8 ϵreadyflag_ready_Monitoring5s=1,5sϢ, ,flag_ready5s_STARTSMART=1 + if(flag_ready_Monitoring5s&&flag_WiFi_ready) + { + if(++NoWiFi5s_TimeoutCounter>34) + { + NoWiFi5s_TimeoutCounter=0; + flag_ready5s_STARTSMART=1; + } + } + if(flag_ready_Monitoring5s==0)NoWiFi5s_TimeoutCounter=0; + +// 1.9 ½ָflag_NoLoginBack_Monitoring150s=1,150sûзʱ,ӷ,flag_NoLoginBack150s_CIPSTART=1 + //if((flag_NoLoginBack_Monitoring150s&&flag_TCP0_Connected&&flag_WiFi_Connected)) + if(flag_NoLoginBack_Monitoring150s)//||(flag_TCP0_Connected==0&&flag_WiFi_Connected)) + { + if(++NoLoginBack150s_TimeoutCounter>1000) + { + NoLoginBack150s_TimeoutCounter=0; + flag_NoLoginBack150s_CIPSTART=1; + //ESP8266_RST(); + //IWDG_Enable(); + } + } + else NoLoginBack150s_TimeoutCounter=0; + +// 1.9 ϵDISCONNECTflag_DisConnect_Monitoring180s=1,180sϢ, λģ,flag_DisConnect180s_StartRST=1 +// if(flag_DisConnect_Monitoring180s&&flag_WiFi_Connect_Enable) +// { +// if(++DisConnect180s_TimeoutCounter>400) //1200 +// { +// DisConnect180s_TimeoutCounter=0; +// flag_DisConnect180s_StartRST=1; +// } +// } +// if(flag_DisConnect_Monitoring180s==0)DisConnect180s_TimeoutCounter=0; + } + + // 2.ڽʱƬ // 3*3=9msûյµַΪǰһ֡ + if(flag_Receive_NewOneByte) + { + if(++Receive_NewFrame_TimeoutCounter>10) // ʱһ֡ռ + { + Receive_NewFrame_TimeoutCounter=0; + flag_Receive_NewOneByte=0; // =1UART1µַ? + flag_Receive_NewFrame_Buffer0=1; // =1һַ֡ + Receive_Num0=Receive_Count0; + Receive_Count0=0; + } + } +/* + if(flag_Buzzer) + { + //flag_Buzzering=1; + if(++Buzzer_TimeoutCounter>5) + { + flag_Buzzer=0; + //flag_Buzzering=0; + ht_writecmd(Command, toneoff); + Buzzer_TimeoutCounter=0; + } + } +*/ + return; +} + diff --git a/doc/多控协议/3控源码/stm8_interrupt_vector.c b/doc/多控协议/3控源码/stm8_interrupt_vector.c new file mode 100644 index 0000000..f4d27b0 --- /dev/null +++ b/doc/多控协议/3控源码/stm8_interrupt_vector.c @@ -0,0 +1,63 @@ +/* BASIC INTERRUPT VECTOR TABLE FOR STM8 devices + * Copyright (c) 2007 STMicroelectronics + */ + +typedef void @far (*interrupt_handler_t)(void); + +struct interrupt_vector { + unsigned char interrupt_instruction; + interrupt_handler_t interrupt_handler; +}; + + + + +@far @interrupt void NonHandledInterrupt (void) +{ + // in order to detect unexpected events during development, + // it is recommended to set a breakpoint on the following instruction + + return; +} + + + +extern void _stext(); /* startup routine */ +extern @far @interrupt void TIM4_UPD_OVF_IRQHandler (void); +extern @far @interrupt void UART2_Send_IRQHandler (void); +extern @far @interrupt void UART2_Recv_IRQHandler (void); + +struct interrupt_vector const _vectab[] = { + {0x82, (interrupt_handler_t)_stext}, /* reset */ + {0x82, NonHandledInterrupt}, /* trap */ + {0x82, NonHandledInterrupt}, /* irq0 */ + {0x82, NonHandledInterrupt}, /* irq1 */ + {0x82, NonHandledInterrupt}, /* irq2 */ + {0x82, NonHandledInterrupt}, /* irq3 */ + {0x82, NonHandledInterrupt}, /* irq4 */ + {0x82, NonHandledInterrupt}, /* irq5 */ + {0x82, NonHandledInterrupt}, /* irq6 */ + {0x82, NonHandledInterrupt}, /* irq7 */ + {0x82, NonHandledInterrupt}, /* irq8 */ + {0x82, NonHandledInterrupt}, /* irq9 */ + {0x82, NonHandledInterrupt}, /* irq10 */ + {0x82, NonHandledInterrupt}, /* irq11 */ + {0x82, NonHandledInterrupt}, /* irq12 */ + {0x82, NonHandledInterrupt}, /* irq13 */ + {0x82, NonHandledInterrupt}, /* irq14 */ + {0x82, NonHandledInterrupt}, /* irq15 */ + {0x82, NonHandledInterrupt}, /* irq16 */ + {0x82, NonHandledInterrupt}, /* irq17 */ + {0x82, NonHandledInterrupt}, /* irq18 */ + {0x82, NonHandledInterrupt}, /* irq19 */ + {0x82, UART2_Send_IRQHandler}, /* irq20 UART2/3ж*/ + {0x82, UART2_Recv_IRQHandler}, /* irq21 UART2/3ж*/ + {0x82, NonHandledInterrupt}, /* irq22 */ + {0x82, TIM4_UPD_OVF_IRQHandler}, /* irq23 */ + {0x82, NonHandledInterrupt}, /* irq24 */ + {0x82, NonHandledInterrupt}, /* irq25 */ + {0x82, NonHandledInterrupt}, /* irq26 */ + {0x82, NonHandledInterrupt}, /* irq27 */ + {0x82, NonHandledInterrupt}, /* irq28 */ + {0x82, NonHandledInterrupt}, /* irq29 */ +}; diff --git a/doc/多控协议/WIFI模块与MCU通信协议V4.0 .doc b/doc/多控协议/WIFI模块与MCU通信协议V4.0 .doc new file mode 100644 index 0000000..f7633b5 Binary files /dev/null and b/doc/多控协议/WIFI模块与MCU通信协议V4.0 .doc differ diff --git a/doc/多控协议/源码/3控 release 2016-05-15.zip b/doc/多控协议/源码/3控 release 2016-05-15.zip new file mode 100644 index 0000000..e6c993c Binary files /dev/null and b/doc/多控协议/源码/3控 release 2016-05-15.zip differ diff --git a/doc/多控协议/源码/4 holes(2016-05-17).s19 b/doc/多控协议/源码/4 holes(2016-05-17).s19 new file mode 100644 index 0000000..a4a84ad --- /dev/null +++ b/doc/多控协议/源码/4 holes(2016-05-17).s19 @@ -0,0 +1,80 @@ +S015000044656275675C646973636F7665722E736D3802 +S12380802E2E5C2E2E5C2E2E5C2E2E5C6C69627261726965735C73746D38735F73746470CA +S12380A065726970685F6472697665725C7372635C73746D38735F74696D342E63002E2EF0 +S12380C05C2E2E5C2E2E5C2E2E5C6C69627261726965735C73746D38735F7374647065720F +S12380E06970685F6472697665725C7372635C73746D38735F6770696F2E63002E2E5C2ECC +S12381002E5C2E2E5C2E2E5C6C69627261726965735C73746D38735F73746470657269707F +S11D8120685F6472697665725C7372635C73746D38735F657874692E630045 +S1238148AE03FF9490CE813AAE813CF62720A5602717BF07EE03BF0ABE07EE0190F6F75CBE +S1238168905C90B30A26F5BE071C000520DDAE00062002F75CA3000D26F9AE01002002F7FC +S12381885CA3010026F9CD822720FE8080808080803D01260435010001803D03260435540E +S12381A800003C038080808080808080808080803B0009BE07893B000CBE0A89B600A1549F +S12381C8260C3C06B606A1C8260435460000A601CD868285BF0A32000C85BF073200098047 +S12381E88089895F1F0120071E011C00011F011E01130325F35B0481898920115F1F011ED2 +S1238208011C00011F011E01A3042E25F21E031D00011F031C0001A3000026E05B048135CD +S12382280150C0725F50C135E150C335E150C4725F50C635FF50C735FF50CA725F50C87211 +S12382485F50CC725F50CD4BE04B10AE500FCD86AA854BE04B20AE500FCD86AA854BE04BF9 +S123826804AE500FCD86AA854B204B10AE500ACD86AA85CD8365AE0002A60295CD88079A77 +S12382883F033F064B10AE500FCD878E844B20AE500FCD878E844B04AE500FCD878E84B627 +S12382A806A1C82703CC8348B603A11924063F03AC008344B603A1192511B603A123240BDB +S12382C84B10AE500FCD878E842071B603A1232511B603A12D240B4B10AE500FCD879584F5 +S12382E8205AB603A1412511B603A14B240B4B20AE500FCD878E842043B603A14B2511B681 +S123830803A155240B4B20AE500FCD879584202CB603A1552511B603A15F240B4B04AE50DE +S12383280FCD878E842015B603A15F250FB603A16924094B04AE500FCD8795843F033F065A +S12383483D05260F4B08AE500FCD879D84AE0384CD8200AE0064CD8200AC0082A7CD83CEED +S1238368AE00FAA60595CD83E7AE0001A60195CD8459A601CD842E81B601A10126113F01C6 +S12383883C02B602AE0003515F9765909FB702B6024D270C4A27184A272035FA00042023CE +S12383A84FCD842E4B04AE500FCD878E84201435320004A601CD842E200935190004A6013A +S12383C8CD842E8120FE725F5340725F5343725F5346725F534735FF5348725F5344818992 +S12383E89E4D27239EA101271E9EA10227199EA10327149EA104270F9EA105270A9EA10686 +S123840827059EA10726034F2010AE003E89AE000089AE8080CD83CC5B047B01C753477B09 +S123842802C753488581884D2704A10126034F2010AE005089AE000089AE8080CD83CC5B99 +S1238448040D012706721053402004721153408481899EA10126034F2010AE006A89AE00BD +S12384680089AE8080CD83CC5B040D0227067B02A10126034F2010AE006B89AE000089AEB4 +S12384888080CD83CC5B040D02270AC653431A01C7534320097B0143C45343C7534385819C +S12384A8884D2704A10126034F2010AE008289AE000089AE8080CD83CC5B040D01270672A0 +S12384C81253402004721353408481884D2704A10126034F2010AE009A89AE000089AE802A +S12384E880CD83CC5B040D01270672145340200472155340848188A10127034D26034F20A5 +S123850810AE00B289AE000089AE8080CD83CC5B040D0127067216534020047217534084DC +S123852881899F4D27059FA10126034F2010AE00D789AE000089AE8080CD83CC5B040D01A8 +S1238548272A7B01A10127247B01A102271E7B01A10327187B01A10427127B01A105270CE3 +S12385687B01A10627067B01A10726034F2010AE00D889AE000089AE8080CD83CC5B047BE9 +S123858801C753477B02C753458581884D2704A10126034F2010AE00EA89AE000089AE80BB +S12385A880CD83CC5B040D012706721E53402004721F5340848188A10126034F2010AE0188 +S12385C80189AE000089AE8080CD83CC5B047B01C753458481C7534681C7534881C65346A2 +S12385E881C653478188880F01A10126034F2010AE014389AE000089AE8080CD83CC5B04C8 +S1238608C6534415022706A6016B0120020F017B01858188A10126034F2010AE015A89AED4 +S1238628000089AE8080CD83CC5B047B0143C75344848188897B02977B01977B02977B0390 +S1238648A10126034F2010AE016F89AE000089AE8080CD83CC5B04C6534414036B01C653C4 +S12386684314036B020D01270A0D022706A6016B0220020F027B025B038188A10126034F67 +S12386882010AE018A89AE000089AE8080CD83CC5B047B0143C7534484817F6F026F036F89 +S12386A80481890D0627427B06A140273C7B06A12027367B06A16027307B06A1A0272A7B59 +S12386C806A1E027247B06A180271E7B06A1C027187B06A1B027127B06A1F0270C7B06A142 +S12386E89027067B06A1D026034F2010AE004789AE000089AE80BECD83CC5B040D052703BF +S12387084F2010AE004889AE000089AE80BECD83CC5B041E017B0543E404E7047B06A58056 +S1238728271F7B06A51027081E01F61A05F720071E017B0543F4F71E01E6021A05E7022034 +S1238748091E017B0543E402E7027B06A540270A1E01E6031A05E70320091E017B0543E4BC +S123876803E7037B06A520270A1E01E6041A05E70420091E017B0543E404E7048581897B8E +S1238788051E01F7858189F61A05F78581897B0543F4F7858189F61805F78581F681E601DD +S12387A88189E60114058581890D0527034F2010AE00DE89AE000089AE80BECD83CC5B04A6 +S12387C80D0627067B06A10126034F2010AE00DF89AE000089AE80BECD83CC5B040D062794 +S12387E80A1E01E6031A05E70320091E017B0543E403E7038581725F50A0725F50A18189E3 +S12388089E4D27149EA101270F9EA102270A9EA10327059EA10426034F2010AE004489AEBC +S1238828000089AE80FCCD83CC5B040D0227127B02A101270C7B02A10227067B02A10326D0 +S1238848034F2010AE004589AE000089AE80FCCD83CC5B047B014D270E4A271D4A272E4ABD +S123886827424A27562064C650A0A4FCC750A0C650A01A02C750A02052C650A0A4F3C750CC +S1238888A07B024848CA50A0C750A0203EC650A0A4CFC750A07B0297A610429FCA50A0C744 +S12388A850A02027C650A0A43FC750A07B0297A640429FCA50A0C750A02010C650A1A4FC52 +S12388C8C750A1C650A11A02C750A18581884D2704A10426034F2010AE006D89AE0000891B +S12388E8AE80FCCD83CC5B04721550A1C650A11A01C750A1848188880F014D2710A1012753 +S12389080CA1022708A1032704A10426034F2010AE007E89AE000089AE80FCCD83CC5B04C0 +S12389287B024D270E4A27144A271C4A27254A27302035C650A0A4036B01202CC650A0A41F +S12389480C44446B012021C650A0A4304EA40F6B012015C650A0A4C04E4444A4036B01207B +S11E896807C650A1A4036B017B018581880F01C650A1A4046B017B015B0181E1 +S10981420000060000002D +S123800082008148820081948200819582008196820081978200819882008199820081A2D3 +S1238020820081AD820081AE8200819382008193820081AF820081B0820081B1820081B2E1 +S1238040820081B38200819382008193820081B4820081B5820081B68200819382008193E6 +S1238060820081B7820081B8820081E88200819382008193820081938200819382008193AE +S10B813A81426200008148004B +S903FFFFFE diff --git a/doc/多控协议/源码/4 holes.zip b/doc/多控协议/源码/4 holes.zip new file mode 100644 index 0000000..55afa6e Binary files /dev/null and b/doc/多控协议/源码/4 holes.zip differ diff --git a/doc/多控协议/源码/7 holes.zip b/doc/多控协议/源码/7 holes.zip new file mode 100644 index 0000000..2c7d2fc Binary files /dev/null and b/doc/多控协议/源码/7 holes.zip differ diff --git a/doc/多控协议/源码/7holes (2016-05-17).s19 b/doc/多控协议/源码/7holes (2016-05-17).s19 new file mode 100644 index 0000000..8442083 --- /dev/null +++ b/doc/多控协议/源码/7holes (2016-05-17).s19 @@ -0,0 +1,86 @@ +S015000044656275675C646973636F7665722E736D3802 +S12380802E2E5C2E2E5C2E2E5C2E2E5C6C69627261726965735C73746D38735F73746470CA +S12380A065726970685F6472697665725C7372635C73746D38735F74696D342E63002E2EF0 +S12380C05C2E2E5C2E2E5C2E2E5C6C69627261726965735C73746D38735F7374647065720F +S12380E06970685F6472697665725C7372635C73746D38735F6770696F2E63002E2E5C2ECC +S12381002E5C2E2E5C2E2E5C6C69627261726965735C73746D38735F73746470657269707F +S11D8120685F6472697665725C7372635C73746D38735F657874692E630045 +S123814CAE03FF9490CE813AAE813CF62720A5602717BF0AEE03BF0DBE0AEE0190F6F75CB1 +S123816C905C90B30D26F5BE0A1C000520DDAE000A2002F75CA3001026F9AE01002002F7EB +S123818C5CA3010026F9CD822F20FE8080808080803D03260435010003803D0726043554FA +S12381AC00003C078080808080808080808080803B000CBE0A893B000FBE0D89B600A1548B +S12381CC2610BE051C0001BF05A300C8260435460000A601CD873B85BF0D32000F85BF0A8F +S12381EC32000C808089895F1F0120071E011C00011F011E01130325F35B048189892011AD +S123820C5F1F011E011C00011F011E01A3042E25F21E031D00011F031C0001A3000026E041 +S123822C5B0481350150C0725F50C135E150C335E150C4725F50C635FF50C735FF50CA72E1 +S123824C5F50C8725F50CC725F50CD725F5343350153453507534735FA5348725F53463548 +S123826C015340350153434BE04B20AE500ACD8763854BE04B80AE500ACD8763854BE04B04 +S123828C20AE5005CD8763854BE04B10AE500FCD8763854BE04B10AE5005CD8763854B2070 +S12382AC4B10AE500ACD876385CD841EAE0002A60295CD88C09A3F075FBF054B20AE500A28 +S12382CCCD8847844B10AE5005CD8847844B80AE500ACD8847844B10AE500FCD8847844B2A +S12382EC20AE5005CD884E84BE05A300C82703CC8401B607A11924063F07AC0083FCB607AC +S123830CA1192513B607A123240D4B20AE500ACD884784AC0083FCB607A1232513B607A1D4 +S123832C2D240D4B20AE500ACD884E84AC0083FCB607A12D2513B607A137240D4B10AE5028 +S123834C05CD884784AC0083FCB607A1372513B607A141240D4B10AE5005CD884E84AC00EF +S123836C83FCB607A1412511B607A14B240B4B80AE500ACD8847842077B607A14B2511B6A2 +S123838C07A155240B4B80AE500ACD884E842060B607A1552511B607A15F240B4B10AE50F9 +S12383AC0FCD8847842049B607A15F2511B607A169240B4B10AE500FCD884E842032B6078E +S12383CCA1692515B607A173240F4B20AE5005CD884E84350100092017B607A1732511B67D +S12383EC07A17D240B4B20AE5005CD8847843F093F075FBF053D09260F4B20AE5005CD889C +S123840C5684AE0384CD8208AE0064CD8208AC0082F4CD8487AE00FAA60595CD84A0AE00FC +S123842C01A60195CD8512A601CD84E781B603A10126113F033C04B604AE0003515F976500 +S123844C909FB704B6044D270C4A27184A272035FA000820234FCD84E74B20AE5005CD880A +S123846C4784201435320008A601CD84E7200935190008A601CD84E78120FE725F534072CC +S123848C5F5343725F5346725F534735FF5348725F534481899E4D27239EA101271E9EA1C8 +S12384AC0227199EA10327149EA104270F9EA105270A9EA10627059EA10726034F2010AEF2 +S12384CC003E89AE000089AE8080CD84855B047B01C753477B02C753488581884D2704A148 +S12384EC0126034F2010AE005089AE000089AE8080CD84855B040D012706721053402004AE +S123850C721153408481899EA10126034F2010AE006A89AE000089AE8080CD84855B040DF7 +S123852C0227067B02A10126034F2010AE006B89AE000089AE8080CD84855B040D02270A39 +S123854CC653431A01C7534320097B0143C45343C753438581884D2704A10126034F201048 +S123856CAE008289AE000089AE8080CD84855B040D01270672125340200472135340848185 +S123858C884D2704A10126034F2010AE009A89AE000089AE8080CD84855B040D01270672E9 +S12385AC145340200472155340848188A10127034D26034F2010AE00B289AE000089AE802A +S12385CC80CD84855B040D012706721653402004721753408481899F4D27059FA101260330 +S12385EC4F2010AE00D789AE000089AE8080CD84855B040D01272A7B01A10127247B01A1DF +S123860C02271E7B01A10327187B01A10427127B01A105270C7B01A10627067B01A107265B +S123862C034F2010AE00D889AE000089AE8080CD84855B047B01C753477B02C753458581C0 +S123864C884D2704A10126034F2010AE00EA89AE000089AE8080CD84855B040D01270672D8 +S123866C1E53402004721F5340848188A10126034F2010AE010189AE000089AE8080CD84AB +S123868C855B047B01C753458481C7534681C7534881C6534681C653478188880F01A101BF +S12386AC26034F2010AE014389AE000089AE8080CD84855B04C6534415022706A6016B01B9 +S12386CC20020F017B01858188A10126034F2010AE015A89AE000089AE8080CD84855B0458 +S12386EC7B0143C75344848188897B02977B01977B02977B03A10126034F2010AE016F898D +S123870CAE000089AE8080CD84855B04C6534414036B01C6534314036B020D01270A0D0221 +S123872C2706A6016B0220020F027B025B038188A10126034F2010AE018A89AE000089AEE0 +S123874C8080CD84855B047B0143C7534484817F6F026F036F0481890D0627427B06A140F5 +S123876C273C7B06A12027367B06A16027307B06A1A0272A7B06A1E027247B06A180271EC7 +S123878C7B06A1C027187B06A1B027127B06A1F0270C7B06A19027067B06A1D026034F20EF +S12387AC10AE004789AE000089AE80BECD84855B040D0527034F2010AE004889AE00008952 +S12387CCAE80BECD84855B041E017B0543E404E7047B06A580271F7B06A51027081E01F64D +S12387EC1A05F720071E017B0543F4F71E01E6021A05E70220091E017B0543E402E7027BFB +S123880C06A540270A1E01E6031A05E70320091E017B0543E403E7037B06A520270A1E01A9 +S123882CE6041A05E70420091E017B0543E404E7048581897B051E01F7858189F61A05F796 +S123884C8581897B0543F4F7858189F61805F78581F681E6018189E60114058581890D0523 +S123886C27034F2010AE00DE89AE000089AE80BECD84855B040D0627067B06A10126034FF7 +S123888C2010AE00DF89AE000089AE80BECD84855B040D06270A1E01E6031A05E7032009AC +S12388AC1E017B0543E403E7038581725F50A0725F50A181899E4D27149EA101270F9EA187 +S12388CC02270A9EA10327059EA10426034F2010AE004489AE000089AE80FCCD84855B04EB +S12388EC0D0227127B02A101270C7B02A10227067B02A10326034F2010AE004589AE00008E +S123890C89AE80FCCD84855B047B014D270E4A271D4A272E4A27424A27562064C650A0A4DC +S123892CFCC750A0C650A01A02C750A02052C650A0A4F3C750A07B024848CA50A0C750A0F7 +S123894C203EC650A0A4CFC750A07B0297A610429FCA50A0C750A02027C650A0A43FC750B6 +S123896CA07B0297A640429FCA50A0C750A02010C650A1A4FCC750A1C650A11A02C750A131 +S123898C8581884D2704A10426034F2010AE006D89AE000089AE80FCCD84855B0472155063 +S12389ACA1C650A11A01C750A1848188880F014D2710A101270CA1022708A1032704A104B8 +S12389CC26034F2010AE007E89AE000089AE80FCCD84855B047B024D270E4A27144A271C83 +S12389EC4A27254A27302035C650A0A4036B01202CC650A0A40C44446B012021C650A0A4D1 +S1238A0C304EA40F6B012015C650A0A4C04E4444A4036B012007C650A1A4036B017B01857F +S1138A2C81880F01C650A1A4046B017B015B0181F9 +S10D81420000000006000000FA002F +S12380008200814C82008198820081998200819A8200819B8200819C8200819D820081A6B3 +S1238020820081B1820081B28200819782008197820081B3820081B4820081B5820081B6C1 +S1238040820081B78200819782008197820081B8820081B9820081BA8200819782008197C6 +S1238060820081BB820081BC820081F082008197820081978200819782008197820081978A +S10B813A8142620000814C0047 +S903FFFFFE diff --git a/doc/多控协议/源码/project(V9-201610-22).rar b/doc/多控协议/源码/project(V9-201610-22).rar new file mode 100644 index 0000000..988923e Binary files /dev/null and b/doc/多控协议/源码/project(V9-201610-22).rar differ diff --git a/doc/多控协议/源码/大屏0控 release 2016-05-15.zip b/doc/多控协议/源码/大屏0控 release 2016-05-15.zip new file mode 100644 index 0000000..f3682ba Binary files /dev/null and b/doc/多控协议/源码/大屏0控 release 2016-05-15.zip differ diff --git a/doc/多控协议/源码/小屏0控 release 2016-05-15.zip b/doc/多控协议/源码/小屏0控 release 2016-05-15.zip new file mode 100644 index 0000000..3b5d5d9 Binary files /dev/null and b/doc/多控协议/源码/小屏0控 release 2016-05-15.zip differ diff --git a/doc/多控协议/源码/通用2控 release 2016-05-15.zip b/doc/多控协议/源码/通用2控 release 2016-05-15.zip new file mode 100644 index 0000000..a93b21a Binary files /dev/null and b/doc/多控协议/源码/通用2控 release 2016-05-15.zip differ diff --git a/doc/多控协议/源码/闽江2控 release 2016-05-15.zip b/doc/多控协议/源码/闽江2控 release 2016-05-15.zip new file mode 100644 index 0000000..c0ed726 Binary files /dev/null and b/doc/多控协议/源码/闽江2控 release 2016-05-15.zip differ diff --git a/doc/多控协议/爱鱼奇多控通信协议V1.0(3).xls b/doc/多控协议/爱鱼奇多控通信协议V1.0(3).xls new file mode 100644 index 0000000..5853fec Binary files /dev/null and b/doc/多控协议/爱鱼奇多控通信协议V1.0(3).xls differ diff --git a/doc/多控协议/爱鱼奇多控通信协议V1.0.xls b/doc/多控协议/爱鱼奇多控通信协议V1.0.xls new file mode 100644 index 0000000..d7a1321 Binary files /dev/null and b/doc/多控协议/爱鱼奇多控通信协议V1.0.xls differ diff --git a/doc/多控协议/爱鱼奇多控通信协议V1.0.zip b/doc/多控协议/爱鱼奇多控通信协议V1.0.zip new file mode 100644 index 0000000..7293717 Binary files /dev/null and b/doc/多控协议/爱鱼奇多控通信协议V1.0.zip differ diff --git a/doc/开发文档/shell/1_stop.sh b/doc/开发文档/shell/1_stop.sh new file mode 100644 index 0000000..8b8dfc1 --- /dev/null +++ b/doc/开发文档/shell/1_stop.sh @@ -0,0 +1,18 @@ +if [ "$1" = "quartzPro5" ]; then +echo "stop quartzPro5......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/quartzPro5/shutdown.sh +elif [ "$1" = "ifish6" ]; then +echo "stop ifish6......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish6/shutdown.sh +elif [ "$1" = "ifish7" ]; then +echo "stop ifish7......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish7/shutdown.sh +elif [ "$1" = "ifishSystem8" ]; then +echo "stop ifishSystem8......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSystem8/shutdown.sh +elif [ "$1" = "ifishSocket9" ]; then +echo "stop ifishSocket9......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSocket9/shutdown.sh +else +echo "parameter error" +fi diff --git a/doc/开发文档/shell/2_start.sh b/doc/开发文档/shell/2_start.sh new file mode 100644 index 0000000..adf82ee --- /dev/null +++ b/doc/开发文档/shell/2_start.sh @@ -0,0 +1,28 @@ +if [ "$1" = "quartzPro5" ]; then +echo "rmove quartzPro5 war package......" +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/quartzPro5/webapps/quartzPro.war +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/quartzPro5/app/* +cp ../package/quartzPro.war /usr/local/apache-tomcat-7.0.64/tomcat-instance/quartzPro5/webapps/ +elif [ "$1" = "ifish6" ]; then +echo "rmove ifish6 war package......" +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish6/webapps/ifish.war +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish6/app/* +cp ../package/ifish.war /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish6/webapps/ +elif [ "$1" = "ifish7" ]; then +echo "rmove ifish7 war package......" +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish7/webapps/ifish.war +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish7/app/* +cp ../package/ifish.war /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish7/webapps/ +elif [ "$1" = "ifishSystem8" ]; then +echo "rmove ifishSystem8 war package......" +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSystem8/webapps/ifishSystem.war +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSystem8/app/* +cp ../package/ifishSystem.war /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSystem8/webapps/ +elif [ "$1" = "ifishSocket9" ]; then +echo "rmove ifishSocket9 war package......" +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSocket9/webapps/ifishSocket.war +rm -rf /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSocket9/app/* +cp ../package/ifishSocket.war /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSocket9/webapps/ +else +echo "parameter error" +fi diff --git a/doc/开发文档/shell/3_publish.sh b/doc/开发文档/shell/3_publish.sh new file mode 100644 index 0000000..cb05bc2 --- /dev/null +++ b/doc/开发文档/shell/3_publish.sh @@ -0,0 +1,18 @@ +if [ "$1" = "quartzPro5" ]; then +echo "quartzPro5 publish......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/quartzPro5/startup.sh +elif [ "$1" = "ifish6" ]; then +echo "ifish6 publish......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish6/startup.sh +elif [ "$1" = "ifish7" ]; then +echo "ifish7 publish......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifish7/startup.sh +elif [ "$1" = "ifishSystem8" ]; then +echo "ifishSystem8 publish......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSystem8/startup.sh +elif [ "$1" = "ifishSocket9" ]; then +echo "ifishSocket9 publish......" +sh /usr/local/apache-tomcat-7.0.64/tomcat-instance/ifishSocket9/startup.sh +else +echo "parameter error" +fi diff --git a/doc/开发文档/发布文档.docx b/doc/开发文档/发布文档.docx new file mode 100644 index 0000000..e44566d Binary files /dev/null and b/doc/开发文档/发布文档.docx differ diff --git a/doc/开发文档/应用环境.xls b/doc/开发文档/应用环境.xls new file mode 100644 index 0000000..f17355d Binary files /dev/null and b/doc/开发文档/应用环境.xls differ diff --git a/doc/开发文档/测试工具功能说明.docx b/doc/开发文档/测试工具功能说明.docx new file mode 100644 index 0000000..7ddebcc Binary files /dev/null and b/doc/开发文档/测试工具功能说明.docx differ diff --git a/doc/开发文档/测试工具和Socket服务器添加设备.txt b/doc/开发文档/测试工具和Socket服务器添加设备.txt new file mode 100644 index 0000000..ee296ae --- /dev/null +++ b/doc/开发文档/测试工具和Socket服务器添加设备.txt @@ -0,0 +1,19 @@ +ΪĿ + +1.ڱغ̨ 豸豸 豸 + +2.ڱغ̨ ҹӳϢ޸ĶӦҵӲͣϸղӵ豸 + +3.Թߵ socket.jsgetFactoryInfo޸urlΪغ̨ + +4.ֽ + +5.ڱ봦ϢʵΪֽ(Ϊ˱󣬲鿴84ֽоطעͱȽȫȷ) + +6.someServer豸Ϣ + +7.µĹܴ룬orderModelӣsomeServersendModelӷ + + +ΪSocketĿ + diff --git a/doc/开发文档/测试工具安装步骤.doc b/doc/开发文档/测试工具安装步骤.doc new file mode 100644 index 0000000..576632a Binary files /dev/null and b/doc/开发文档/测试工具安装步骤.doc differ diff --git a/doc/开发文档/爱鱼奇接口文档(新).doc b/doc/开发文档/爱鱼奇接口文档(新).doc new file mode 100644 index 0000000..45362bf Binary files /dev/null and b/doc/开发文档/爱鱼奇接口文档(新).doc differ diff --git a/doc/开发文档/爱鱼奇接口文档.doc b/doc/开发文档/爱鱼奇接口文档.doc new file mode 100644 index 0000000..156675c Binary files /dev/null and b/doc/开发文档/爱鱼奇接口文档.doc differ diff --git a/doc/开发文档/鱼影工作簿.xlsx b/doc/开发文档/鱼影工作簿.xlsx new file mode 100644 index 0000000..6fad320 Binary files /dev/null and b/doc/开发文档/鱼影工作簿.xlsx differ diff --git a/doc/最初协议/爱鱼奇通信协议(旧).xls b/doc/最初协议/爱鱼奇通信协议(旧).xls new file mode 100644 index 0000000..37daab2 Binary files /dev/null and b/doc/最初协议/爱鱼奇通信协议(旧).xls differ diff --git a/doc/最初协议/爱鱼奇通信协议修订版.xls b/doc/最初协议/爱鱼奇通信协议修订版.xls new file mode 100644 index 0000000..a8ed638 Binary files /dev/null and b/doc/最初协议/爱鱼奇通信协议修订版.xls differ diff --git a/doc/最初协议/爱鱼奇通信协议修订版V2.0.xls b/doc/最初协议/爱鱼奇通信协议修订版V2.0.xls new file mode 100644 index 0000000..7e02e1a Binary files /dev/null and b/doc/最初协议/爱鱼奇通信协议修订版V2.0.xls differ diff --git a/doc/表结构1.xlsx b/doc/表结构1.xlsx new file mode 100644 index 0000000..c3307b5 Binary files /dev/null and b/doc/表结构1.xlsx differ diff --git a/linux/Erlang安装.txt b/linux/Erlang安装.txt new file mode 100644 index 0000000..7f6eeed --- /dev/null +++ b/linux/Erlang安装.txt @@ -0,0 +1,41 @@ +1ҪȰװGCC GCC-C++ Opensslģ飺 + +yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel + +2ٰװncursesģ + +yum -y install ncurses-devel + +yum install ncurses-devel + +3ErangԴļotp_src_R15B03-1.tar.gzļ丶Ȩ޺ͽѹļ + +chmod +x otp_src_R15B03-1.tar.gz + +tar -xzvf otp_src_R15B03-1.tar.gz + +mv otp_src_R15B03-1 erlang_R15B #ѹļ + +4ǰװerlangͷϷִ² + +cd erlang_R15B/ + +./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac //java룬ȥjava + +make && make install //װ + +5erlang + +vi /etc/profile + +export PATH=$PATH:/usr/local/erlang/bin + +#Ч +source /etc/profile + +ˣerlangѾúˣһڽ + +# whereis erlang + +erlang: /usr/local/erlang + diff --git a/linux/Erlang集成Eclipse.txt b/linux/Erlang集成Eclipse.txt new file mode 100644 index 0000000..7ebbda3 --- /dev/null +++ b/linux/Erlang集成Eclipse.txt @@ -0,0 +1,4 @@ +1eclipseHelp Install new software..ʾдַ http://download.erlide.org/update + + +2װeclipseWindows PreferencesѡErlang Installed runtimesȻAdd...Browse..ҵerlangİװĿ¼ \ No newline at end of file diff --git a/linux/Haproxy安装.txt b/linux/Haproxy安装.txt new file mode 100644 index 0000000..e06d012 Binary files /dev/null and b/linux/Haproxy安装.txt differ diff --git a/linux/jdk安装.txt b/linux/jdk安装.txt new file mode 100644 index 0000000..73d376d --- /dev/null +++ b/linux/jdk安装.txt @@ -0,0 +1,45 @@ +鿴CentOSԴJDKǷѰװ + +룺yum list installed |grep java + +ԴװJDKжCentOSϵͳԴJava + +жJDKļ룺yum -y remove java-1.7.0-openjdk* + +жtzdata-java룺yum -y remove tzdata-java.noarch + + ʾΪCompleteжϡ + +ע*ʾжصjava 1.7.0openjdkļ + +CentOSϵͳǷ + +ʹyumʽװҪJavaӦװļʴҪʹping磻磺ping ٶURLɡ + +鿴yumеJavaװ + +룺yum -y list java* + + +ʹyumװJava + +룺yum -y install java-1.7.0-openjdk* yumjava-1.7.0Ϊ + + ʾΪCompleteװϡ + +ע*ʾjava-1.7.0Java򶼰װϡ + + +鿴հװJava汾Ϣ + +룺java -version ɲ鿴Java汾 + +룺javac ɲ鿴Javaı÷ԣ + + 1ѯаװ汾 + + rpm -qa | grep jdk + + 2жopenjdk + + sudo yum -y remove java-1.6.0-openjdk \ No newline at end of file diff --git a/linux/jdk环境变量.txt b/linux/jdk环境变量.txt new file mode 100644 index 0000000..b50f8ec --- /dev/null +++ b/linux/jdk环境变量.txt @@ -0,0 +1,13 @@ +#/etc/profilesudo vim /etc/profileݣ +export JAVA_HOME=/usr/local/jdk1.7.0_79 +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar + + +#Ч +source /etc/profile + +#֤ +java Cversion + + diff --git a/linux/linux常用命令.txt b/linux/linux常用命令.txt new file mode 100644 index 0000000..5fa205d --- /dev/null +++ b/linux/linux常用命令.txt @@ -0,0 +1,46 @@ +#ǰû̴򿪵ļ +ulimit -n + +#޸ +ulimit -n 20000 + +#޸LinuxϵͳûĹڴļƺӲ +һ޸/etc/security/limits.confļļУ +speng soft nofile 10240 +speng hard nofile 10240 +spengָҪ޸ĸûĴļƣ'*'űʾ޸ûƣsofthardָҪ޸ƻӲƣ10240ָҪ޸ĵµֵļ(עֵҪСڻӲ) + +鿴Linuxϵͳļƣʹ +cat /proc/sys/fs/file-max + +ڶ޸/etc/pam.d/loginļļУ +session required /lib/security/pam_limits.so +ǸLinuxûϵͳ¼Ӧõpam_limits.soģϵͳԸûʹõĸԴ(ûɴ򿪵ļ)pam_limits.soģͻ/etc/security/limits.confļжȡЩֵ޸󱣴ļ + +鿴Linuxϵͳļƣʹ +cat /proc/sys/fs/file-max +޸ĴӲƵķ޸/etc/rc.localűڽűУ + +echo 22158 > /proc/sys/fs/file-max + + +ں˱ʱĬõıض˿ںŷΧ̫СҪ޸Ĵ˱ض˿ڷΧơ + +һ޸/etc/sysctl.confļļУ + +net.ipv4.ip_local_port_range = 1024 65000 + +ϵͳԱض˿ڷΧΪ1024~65000֮䡣ע⣬ض˿ڷΧСֵڻ1024;˿ڷΧֵӦСڻ65535.޸󱣴ļ + +ڶִsysctl + +[speng@as4 ~]$ sysctl -p + +ϵͳûдʾͱµıض˿ڷΧóɹ˿ڷΧãϵһͬʱ60000TCPͻӡ + + +#ʱͬ +ntpdate ntp.api.bzNTP(Ϻ) + +#޸ʱΪϺ +cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ No newline at end of file diff --git a/linux/linux防火墙.txt b/linux/linux防火墙.txt new file mode 100644 index 0000000..7cc6ae4 --- /dev/null +++ b/linux/linux防火墙.txt @@ -0,0 +1,14 @@ +#ǽ +vi /etc/sysconfig/iptables +-A INPUT -m state Cstate NEW -m tcp -p tcp Cdport 80 -j ACCEPT80˿ͨǽ) +-A INPUT -m state Cstate NEW -m tcp -p tcp Cdport 3306 -j ACCEPT3306˿ͨǽ +#ǽʹЧ +/etc/init.d/iptables restart + +#鿴iptables״̬ +service iptables status +# +service iptables restart iptables +# +ervice iptables stop iptables + diff --git a/linux/mqtt.txt b/linux/mqtt.txt new file mode 100644 index 0000000..862d0d9 --- /dev/null +++ b/linux/mqtt.txt @@ -0,0 +1,14 @@ +HTTPϢӿڲ + +emqttd֧ͨHTTPӿڴӦóMQTTͻ˷Ϣ + +: + +curl -v --basic -u user:passwd -d "qos=1&retain=0&topic=/a/b/c&message=hello" -k http://localhost:8083/mqtt/publish + +: + + qos: QoS(0, 1, 2) + retain: Retain(0, 1) + topic: Topic + message: Message diff --git a/linux/mysql.txt b/linux/mysql.txt new file mode 100644 index 0000000..4751764 --- /dev/null +++ b/linux/mysql.txt @@ -0,0 +1,100 @@ +# +޸ /etc/mysql/my.cnf Ĭϵİװ· +vim /etc/mysql/my.cnf + +my.cnfļڵ[mysqld]: +character_set_server=utf8 +init_connect='SET NAMES utf8' + + +#linuxȲ鿴ϵͳİ汾ţݰ汾ŶӦ +more /etc/redhat-release + +rpm -i http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm + +yum list mysql* + +yum install mysql-community-server + + +1װ +鿴ûаװ + yum list installed mysql* + rpm -qa | grep mysql* + +鿴ûаװ + yum list mysql* + +װmysqlͻˣ + yum install mysql + +װmysql ˣ + yum install mysql-server + + yum install mysql-devel +ɾ + yum -y remove mysql* + +2&&ֹͣ + +ݿַ + mysqlļ/etc/my.cnfмdefault-character-set=utf8 + +mysql + service mysqld start/etc/init.d/mysqld start + + chkconfig -add mysqld鿴Ƿɹchkconfig --list | grep mysql* + + mysqld 0:ر 1:ر 2: 3: 4: 5: 6:ر +ֹͣ + service mysqld stop +2¼ + +rootԱ + mysqladmin -u root password 123456 + www.2cto.com +¼ + mysql -u root -p뼴ɡ +룺 + service mysqld stop + + mysqld_safe --user=root --skip-grant-tables + + mysql -u root + + use mysql + + update user set password=password("new_pass") where user="root"; + + flush privileges; + +3Զ̷ + +ŷǽĶ˿ں +mysqlȨޣmysqlеuserһ¼hostΪ%userΪroot +4Linux MySQLļҪĿ¼ + www.2cto.com +ݿĿ¼ + /var/lib/mysql/ +ļ + /usr/share /mysqlmysql.serverļ + + /usr/binmysqladmin mysqldump +ű + /etc/rc.d/init.d/űļmysqlĿ¼ + + + + +û +create user 'ifish'@'localhost' identified by 'ifish7pwd'; + +Ȩ +grant all on myfishdb.* to 'ifish'@'localhost'; + +ɾû +drop user 'ifish'@'localhost'; + +ݿ +DROP DATABASE IF EXISTS `myfishdb`; +CREATE DATABASE `myfishdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; \ No newline at end of file diff --git a/linux/nginc模块.png b/linux/nginc模块.png new file mode 100644 index 0000000..527e270 Binary files /dev/null and b/linux/nginc模块.png differ diff --git a/linux/nginx.conf b/linux/nginx.conf new file mode 100644 index 0000000..6181ba1 --- /dev/null +++ b/linux/nginx.conf @@ -0,0 +1,155 @@ + +#user nobody; +#ӽͨCPU2CPU +worker_processes 1; + +#error_log logs/error.log; +#error_log logs/error.log notice; +#error_log logs/error.log info; +#ָpidļ +#pid logs/nginx.pid; + + +events { + #ʹIOģlinuxepollFreeBSDkqueuewindow²ָ + #use epoll; + # + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' + # '"$http_user_agent" "$http_x_forwarded_for"'; + + #access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #gzip on; + upstream yugb { + #ڵб + #ip_hash; + #fair;# + server 192.168.0.122:8080 weight=10; + server 192.168.0.122:8088 weight=10; + server 192.168.0.152:8080 weight=10; + #帺ؾ豸Ip豸״̬ + #server 127.0.0.1:8000 down; + #server 127.0.0.1:8080 weight=2; + #server 127.0.0.1:6801; + #server 127.0.0.1:6802 backup; + } + + server { + listen 80; + server_name localhost; + + #charset koi8-r; + + #access_log logs/host.access.log main; + + location ~ .*\.(gif|jpg|jpeg|png|)$ { + root D:/Img; #̬ļ· + } + + location ~ .*\.(apk)$ { + root D:/APK; #̬ļ· + } + + location / { + #root html; + index index.jsp; + #ͷͿͻʵַԱȡͻʵIP + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_connect_timeout 1; + #û + proxy_buffering off; + #תmysvr ķб + proxy_pass http://yugb; + } + location /status { + stub_status on; + access_log off; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } + + # proxy the PHP scripts to Apache listening on 127.0.0.1:80 + # + #location ~ \.php$ { + # proxy_pass http://127.0.0.1; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + #location ~ \.php$ { + # root html; + # fastcgi_pass 127.0.0.1:9000; + # fastcgi_index index.php; + # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; + # include fastcgi_params; + #} + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} + } + + + # another virtual host using mix of IP-, name-, and port-based configuration + # + #server { + # listen 8000; + # listen somename:8080; + # server_name somename alias another.alias; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + + # HTTPS server + # + #server { + # listen 443 ssl; + # server_name localhost; + + # ssl_certificate cert.pem; + # ssl_certificate_key cert.key; + + # ssl_session_cache shared:SSL:1m; + # ssl_session_timeout 5m; + + # ssl_ciphers HIGH:!aNULL:!MD5; + # ssl_prefer_server_ciphers on; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + +} diff --git a/linux/nginx安装.png b/linux/nginx安装.png new file mode 100644 index 0000000..fe297e5 Binary files /dev/null and b/linux/nginx安装.png differ diff --git a/linux/nginx安装.txt b/linux/nginx安装.txt new file mode 100644 index 0000000..a469871 --- /dev/null +++ b/linux/nginx安装.txt @@ -0,0 +1,26 @@ +#Ƿװpcre +rpm -qa pcre +#װpcre +sudo yum install pcre-devel pcre -y +#װopenssl +sudo yum install openssl-devel openssl -y + +#nginxװ +tar zxvf nginx-1.8.0.tar.gz +cd nginx-1.8.0 +sudo ./configure \ +--prefix=/usr/local/nginx \ +--with-http_ssl_module \ +--with-http_dav_module \ +--with-http_realip_module \ +--with-http_gzip_static_module \ +--with-http_stub_status_module \ +--with-mail \ +--with-mail_ssl_module \ +--with-debug \ +--http-client-body-temp-path=/var/tmp/nginx/client \ +--http-proxy-temp-path=/var/tmp/nginx/proxy \ +--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \ +--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ +--http-scgi-temp-path=/var/tmp/nginx/scgi +sudo make && make install \ No newline at end of file diff --git a/linux/openssl证书.txt b/linux/openssl证书.txt new file mode 100644 index 0000000..dc4f17c --- /dev/null +++ b/linux/openssl证书.txt @@ -0,0 +1,33 @@ +ȣ봴֤˽ԿĿ¼磺 + + $ cd /usr/local/nginx/conf + +˽Կһ + + $ openssl genrsa -des3 -out server.key 2048 + +ǩ֤飨CSR + + $ openssl req -new -key server.key -out server.csr + +ڼSSLֵ֧Nginxʹ˽ԿʱȥĿ + + $ cp server.key server.key.org + $ openssl rsa -in server.key.org -out server.key + + +nginx + +֤ʹ˽ԿCSR + + $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt + +޸Nginxļ±ǵ֤˽Կ + + server { + server_name YOUR_DOMAINNAME_HERE; + listen 443; + ssl on; + ssl_certificate /usr/local/nginx/conf/server.crt; + ssl_certificate_key /usr/local/nginx/conf/server.key; + } diff --git a/linux/redis安装.txt b/linux/redis安装.txt new file mode 100644 index 0000000..5b50a12 --- /dev/null +++ b/linux/redis安装.txt @@ -0,0 +1,17 @@ +#װ +tar -zxvf redios-3.0.3.tar.gz +cd redios-3.0.3.tar.gz +make && make install + +#&ʾ̨ +cd /usr/local/redis-3.0.3/src +redis-server & redis-server redis.conf & + +#ֹͣredis +redis-cli shutdown + +#ͻ +redis-cli + +#֤ +auth 123456 diff --git a/linux/svn安装.txt b/linux/svn安装.txt new file mode 100644 index 0000000..0b4feb0 --- /dev/null +++ b/linux/svn安装.txt @@ -0,0 +1,47 @@ +װsvn +1yum install subversion + + +2rpm -ql subversion鿴װλ + svn --helpԲ鿴svnʹ÷ + + +3svn汾Ŀ¼ +mkdir -p /var/svn/svnrepos + + +4汾 +svnadmin create /var/svn/svnrepos + + +5confĿ¼svn汾ļ +authzļȨ޿ļ +passwdʺļ +svnserve.conf SVNļ + + +6ʺ +vi passwd +[users]û룬ʽʺ=룬dan=dan + + +7Ȩ +vi authz +ĩβ´룺 +[/] +dan=rw +w=r +˼ǰ汾ĸĿ¼danждȨޣwֻжȨޡ + + +8޸svnserve.confļ +vi svnserve.conf +ļעͣ +anon-access = read #ûɶ +auth-access = write #Ȩûд +password-db = passwd #ʹĸļΪ˺ļ +authz-db = authz #ʹĸļΪȨļ +realm = /var/svn/svnrepos # ֤ռ汾Ŀ¼ + +9svn汾 +svnserve -d -r /var/svn/svnrepos \ No newline at end of file diff --git a/linux/tcp连接数状态.txt b/linux/tcp连接数状态.txt new file mode 100644 index 0000000..b49a8fd --- /dev/null +++ b/linux/tcp连接数状态.txt @@ -0,0 +1,30 @@ +#LINUX 鿴tcp״̬ +netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' + +TCP״̬ +LISTEN ԶTCP˿ڵ +SYN-SENT ٷȴƥ +SYN-RECEIVEDյͷһȴԷȷ +ESTABLISHED һ򿪵 +FIN-WAIT-1 ȴԶTCPж󣬻ǰжȷ +FIN-WAIT-2 ԶTCPȴж +CLOSE-WAIT ȴӱûж +CLOSING ȴԶTCPжϵȷ +LAST-ACK ȴԭķԶTCPжȷ +TIME-WAIT ȴ㹻ʱȷԶTCPյжȷ +CLOSED ûκ״̬ + +#鿴9955˿ڵtcp +netstat -nat|grep -i "9955"|wc -l + +3ͳϵģ״̬Ϊestablished +netstat -na|grep ESTABLISHED|wc -l + + + о֣Linux˿һƵģϵĶ˿ֵΪ65535ȥһЩ˿ںͱռö˿⣬ҲӦ6WңʵϵʱĬϲ28232ӡ + ִͺԭˣ + $ cat /proc/sys/net/ipv4/ip_local_port_range +Ϊ + 32768 61000 + Linux˿ڵķΧڸ÷ΧбռõĶ˿ڣô϶С28232.Χִ + # echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range \ No newline at end of file diff --git a/linux/tomca安装--设置.txt b/linux/tomca安装--设置.txt new file mode 100644 index 0000000..0eece6e --- /dev/null +++ b/linux/tomca安装--设置.txt @@ -0,0 +1,19 @@ +װ +wget -c http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz + +tar -xzvf apache-tomcat-7.0.64.tar.gz + + + + +Windows£ļ/bin/catalina.batUnix£ļ/bin/catalina.shǰ棬ã + +JAVA_OPTS='-XmsʼڴС -Xmxʹõڴ桿' + +Ҫֵ磺 + + set JAVA_OPTS=-Xms256m -Xmx512m + +ʾʼڴΪ256MBʹõڴΪ512MB + +ڶַ JAVA_OPTS ֵ-Xms512m -Xmx512m \ No newline at end of file diff --git a/linux/内存管理.txt b/linux/内存管理.txt new file mode 100644 index 0000000..63ec89d --- /dev/null +++ b/linux/内存管理.txt @@ -0,0 +1,64 @@ +#ֱʹtop󣬲鿴%MEMݡѡ񰴽̲鿴߰û鿴鿴oracleûĽڴʹĻʹµ +top -u oracle + +PID̵ID +USER +PR̵ȼԽСԽȱִ +NIniceֵ +VIRTռõڴ +RESռõڴ +SHRʹõĹڴ +S̵״̬SʾߣRʾУZʾ״̬NʾýֵΪ +%CPUռCPUʹ +%MEMʹõڴڴİٷֱ +TIME+ýռõܵCPUʱ䣬ռCPUʹʱۼֵ +COMMAND + + +top ȫԻģʽɷΪ3֣ϵͳϢб + +һ -- ϲ ϵͳϢ + +һУtop + +00:11:04Ϊϵͳǰʱ̣ + +3:35Ϊϵͳڵʱ䣻 + +2 usersΪǰ¼ϵͳûȷе˵ǵ¼ûն -- ͬһûͬһʱϵͳն˵ӽΪûӵϵͳûҲΪն˵Ŀ + +load averageΪǰϵͳصƽֱֵֵΪ1ǰ5ǰ15ǰ̵ƽһĿΪֵ CPU ĿʱCPU ȽϳĸصǰϵͳḶ̌ + +ڶУTasks + +59 totalΪǰϵͳ + +1 runningΪǰеĽ + +58 sleepingΪǰڵȴ״̬еĽ + +0 stopedΪֹͣϵͳ + +0 zombieΪԭĽ + +УCpus + +ֱʾ CPU ǰʹʣ + +УMem + +ֱʾڴǰʹڴԼʹеڴ + +УSwap + +ʾͬУMem˴ӳŽSwapʹͨSwapƵʹõڴ治ɵ + + + +#һռ˶ڴ棬linuxΪṩһܷķ/procĿ¼ΪṩеϢʵtopȹҲͨȡӦϢ + +/proc/meminfo ڴʹϢ + +/proc/pid/maps pidΪ̺ţʾǰռõַ + +/proc/pid/statm ռõڴ \ No newline at end of file diff --git a/linux/创建日志表.txt b/linux/创建日志表.txt new file mode 100644 index 0000000..3e1eef4 --- /dev/null +++ b/linux/创建日志表.txt @@ -0,0 +1,66 @@ +CREATE TABLE logging_event + + ( + + timestmp BIGINT NOT NULL, + + formatted_message TEXT NOT NULL, + + logger_name VARCHAR(254) NOT NULL, + + level_string VARCHAR(254) NOT NULL, + + thread_name VARCHAR(254), + + reference_flag SMALLINT, + + arg0 VARCHAR(254), + + arg1 VARCHAR(254), + + arg2 VARCHAR(254), + + arg3 VARCHAR(254), + + caller_filename VARCHAR(254) NOT NULL, + + caller_class VARCHAR(254) NOT NULL, + + caller_method VARCHAR(254) NOT NULL, + + caller_line CHAR(4) NOT NULL, + + event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY + + ); + + +CREATE TABLE logging_event_property ( + + event_id BIGINT NOT NULL, + + mapped_key VARCHAR(254) NOT NULL, + + mapped_value TEXT, + + PRIMARY KEY(event_id, mapped_key), + + FOREIGN KEY (event_id) REFERENCES logging_event(event_id) + + ); + + CREATE TABLE logging_event_exception + + ( + + event_id BIGINT NOT NULL, + + i SMALLINT NOT NULL, + + trace_line VARCHAR(254) NOT NULL, + + PRIMARY KEY(event_id, i), + + FOREIGN KEY (event_id) REFERENCES logging_event(event_id) + + ); \ No newline at end of file diff --git a/tomcat安装文档/安装步骤.doc b/tomcat安装文档/安装步骤.doc new file mode 100644 index 0000000..20b432e Binary files /dev/null and b/tomcat安装文档/安装步骤.doc differ diff --git a/tomcat安装文档/指示灯状态说明.txt b/tomcat安装文档/指示灯状态说明.txt new file mode 100644 index 0000000..f700824 --- /dev/null +++ b/tomcat安装文档/指示灯状态说明.txt @@ -0,0 +1,9 @@ +WIFI״̬ƣ + + ȴУ ̵ƺһ +·У ̵Ʋ +ӷУ ̵Ʋ + +ӷɹƽʱ,̵ƺһֱ + MCUWIFIģͨʱӵķDzԻƻ˲¡ + MCUWIFIģͨʱӵķʽ̵ƻ˲¡ \ No newline at end of file diff --git a/wifi调试资料/wifi调试资料/AT指令集018.pdf b/wifi调试资料/wifi调试资料/AT指令集018.pdf new file mode 100644 index 0000000..edb94dc Binary files /dev/null and b/wifi调试资料/wifi调试资料/AT指令集018.pdf differ diff --git a/wifi调试资料/wifi调试资料/NetAssist.exe b/wifi调试资料/wifi调试资料/NetAssist.exe new file mode 100644 index 0000000..37ae855 Binary files /dev/null and b/wifi调试资料/wifi调试资料/NetAssist.exe differ diff --git a/wifi调试资料/wifi调试资料/指令.txt b/wifi调试资料/wifi调试资料/指令.txt new file mode 100644 index 0000000..a297ec6 --- /dev/null +++ b/wifi调试资料/wifi调试资料/指令.txt @@ -0,0 +1,71 @@ ++IFD= +WIFI NAME ;WIFI MIMA + 10 +00 00 00 01 00 3E 00 52 09 46 00 01 00 00 00 00 00 00 00 14 + + +ַ19216824 1022120410 +01 00 00 38 6c 5c 6c 5c 00 01 01 02 03 04 05 06 4E 45 54 47 45 41 52 00 00 00 00 00 00 00 00 00 00 00 00 00 6E 62 63 78 6A 6C 71 68 00 00 00 00 00 00 00 00 00 00 00 00 + + +wifi +01 00 00 38 6c 5c 6c 5c 00 01 01 02 03 04 05 06 4E 45 54 47 45 41 52 00 00 00 00 00 00 00 00 00 00 00 00 00 6E 62 63 78 6A 6C 71 68 00 00 00 00 00 00 00 00 00 00 00 00 +login +00 00 00 01 01 02 03 04 05 06 00 01 00 00 00 00 00 00 00 24 00 00 00 01 00 00 00 00 to pc +00 00 00 01 00 3E 00 52 09 46 00 01 00 00 00 00 00 00 00 1C 00 00 00 00 00 00 00 00 +login ʱ +00 00 00 01 01 02 03 04 05 06 00 01 00 00 00 00 00 00 00 24 00 00 00 01 00 00 00 00 00 07 df 0a 0a 0a 0a 0a + + +ѯ 16 +01 00 00 10 6c 5c 6c 5c 00 01 01 02 03 04 05 06 + + + +ѯ 36 +00 00 00 01 01 02 03 04 05 06 00 01 00 00 00 00 00 00 00 24 01 00 00 10 6c 5c 6c 5c 00 01 01 02 03 04 05 06 + + 16(39) +01 00 00 27 6c 5c 6c 5c 00 01 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + + 36(59) +00 00 00 01 01 02 03 04 05 06 00 01 00 00 00 00 00 00 00 3b 01 00 00 27 6c 5c 6c 5c 00 01 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ͷ20 +00 00 00 01 01 02 03 04 05 06 00 01 00 00 00 00 00 00 00 xx + + +01 00 00 55 6C 5C 6C 5C 00 01 00 3E 00 52 09 46 0A 01 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7E 00 00 00 00 00 41 54 2B 43 57 4D 4F 44 45 3D 31 0D 0A 00 +01 00 00 55 6C 5C 6C 5C 00 01 00 3E 00 52 09 46 01 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7B 00 00 00 00 +01 00 00 55 6C 5C 6C 5C 00 01 00 3E 00 52 09 46 01 00 01 00 00 00 00 00 01 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 01 01 01 01 01 01 01 01 01 01 01 01 01 01 7B 02 02 03 03 00 + +ѯ 16 +01 00 00 55 6C 5C 6C 5C 00 01 00 3E 00 52 09 46 +00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +4E 00 00 00 00 +ѯ 36 +01 00 00 01 00 3E 00 52 09 46 00 01 01 02 03 04 +05 06 00 69 01 00 00 55 6C 5C 6C 5C 00 01 00 3E +00 52 09 46 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 52 00 00 00 00 + + + + + + + + + + + + + + + + diff --git a/wifi调试资料/wifi调试资料/网络调试助手.exe b/wifi调试资料/wifi调试资料/网络调试助手.exe new file mode 100644 index 0000000..0ba1114 Binary files /dev/null and b/wifi调试资料/wifi调试资料/网络调试助手.exe differ diff --git a/wifi调试资料/wifi调试资料/通信协议_说明.doc b/wifi调试资料/wifi调试资料/通信协议_说明.doc new file mode 100644 index 0000000..1709720 Binary files /dev/null and b/wifi调试资料/wifi调试资料/通信协议_说明.doc differ diff --git a/wifi调试资料/wifi调试资料/通信协议_说明_修改.doc b/wifi调试资料/wifi调试资料/通信协议_说明_修改.doc new file mode 100644 index 0000000..9780044 Binary files /dev/null and b/wifi调试资料/wifi调试资料/通信协议_说明_修改.doc differ diff --git a/图片/newIcon/android.zip b/图片/newIcon/android.zip new file mode 100644 index 0000000..dd6ea60 Binary files /dev/null and b/图片/newIcon/android.zip differ diff --git a/图片/newIcon/点击前/icon11.png b/图片/newIcon/点击前/icon11.png new file mode 100644 index 0000000..2d970c7 Binary files /dev/null and b/图片/newIcon/点击前/icon11.png differ diff --git a/图片/newIcon/点击前/icon12.png b/图片/newIcon/点击前/icon12.png new file mode 100644 index 0000000..39ff722 Binary files /dev/null and b/图片/newIcon/点击前/icon12.png differ diff --git a/图片/newIcon/点击前/icon13.png b/图片/newIcon/点击前/icon13.png new file mode 100644 index 0000000..8106b2c Binary files /dev/null and b/图片/newIcon/点击前/icon13.png differ diff --git a/图片/newIcon/点击前/icon14.png b/图片/newIcon/点击前/icon14.png new file mode 100644 index 0000000..4285557 Binary files /dev/null and b/图片/newIcon/点击前/icon14.png differ diff --git a/图片/newIcon/点击前/icon15.png b/图片/newIcon/点击前/icon15.png new file mode 100644 index 0000000..21bb82f Binary files /dev/null and b/图片/newIcon/点击前/icon15.png differ diff --git a/图片/newIcon/点击前/icon16.png b/图片/newIcon/点击前/icon16.png new file mode 100644 index 0000000..954caf2 Binary files /dev/null and b/图片/newIcon/点击前/icon16.png differ diff --git a/图片/newIcon/点击前/icon17.png b/图片/newIcon/点击前/icon17.png new file mode 100644 index 0000000..8534120 Binary files /dev/null and b/图片/newIcon/点击前/icon17.png differ diff --git a/图片/newIcon/点击后/b_icon11.png b/图片/newIcon/点击后/b_icon11.png new file mode 100644 index 0000000..7fb967d Binary files /dev/null and b/图片/newIcon/点击后/b_icon11.png differ diff --git a/图片/newIcon/点击后/b_icon12.png b/图片/newIcon/点击后/b_icon12.png new file mode 100644 index 0000000..e3a13b8 Binary files /dev/null and b/图片/newIcon/点击后/b_icon12.png differ diff --git a/图片/newIcon/点击后/b_icon13.png b/图片/newIcon/点击后/b_icon13.png new file mode 100644 index 0000000..4a2cd49 Binary files /dev/null and b/图片/newIcon/点击后/b_icon13.png differ diff --git a/图片/newIcon/点击后/b_icon14.png b/图片/newIcon/点击后/b_icon14.png new file mode 100644 index 0000000..70177ea Binary files /dev/null and b/图片/newIcon/点击后/b_icon14.png differ diff --git a/图片/newIcon/点击后/b_icon15.png b/图片/newIcon/点击后/b_icon15.png new file mode 100644 index 0000000..e3c310f Binary files /dev/null and b/图片/newIcon/点击后/b_icon15.png differ diff --git a/图片/newIcon/点击后/b_icon16.png b/图片/newIcon/点击后/b_icon16.png new file mode 100644 index 0000000..4bd35de Binary files /dev/null and b/图片/newIcon/点击后/b_icon16.png differ diff --git a/图片/newIcon/点击后/b_icon17.png b/图片/newIcon/点击后/b_icon17.png new file mode 100644 index 0000000..375e3db Binary files /dev/null and b/图片/newIcon/点击后/b_icon17.png differ diff --git a/图片/newIcon/默认图标/b_icon1.png b/图片/newIcon/默认图标/b_icon1.png new file mode 100644 index 0000000..478e4f2 Binary files /dev/null and b/图片/newIcon/默认图标/b_icon1.png differ diff --git a/图片/newIcon/默认图标/b_icon2.png b/图片/newIcon/默认图标/b_icon2.png new file mode 100644 index 0000000..d694be0 Binary files /dev/null and b/图片/newIcon/默认图标/b_icon2.png differ diff --git a/图片/newIcon/默认图标/b_icon3.png b/图片/newIcon/默认图标/b_icon3.png new file mode 100644 index 0000000..6d0108a Binary files /dev/null and b/图片/newIcon/默认图标/b_icon3.png differ diff --git a/图片/newIcon/默认图标/icon1.png b/图片/newIcon/默认图标/icon1.png new file mode 100644 index 0000000..46c0a5b Binary files /dev/null and b/图片/newIcon/默认图标/icon1.png differ diff --git a/图片/newIcon/默认图标/icon2.png b/图片/newIcon/默认图标/icon2.png new file mode 100644 index 0000000..9292a52 Binary files /dev/null and b/图片/newIcon/默认图标/icon2.png differ diff --git a/图片/newIcon/默认图标/icon3.png b/图片/newIcon/默认图标/icon3.png new file mode 100644 index 0000000..db7ca4b Binary files /dev/null and b/图片/newIcon/默认图标/icon3.png differ diff --git a/图片/品牌logo/博尊.png b/图片/品牌logo/博尊.png new file mode 100644 index 0000000..fa1a08c Binary files /dev/null and b/图片/品牌logo/博尊.png differ diff --git a/图片/品牌logo/卡洛维.png b/图片/品牌logo/卡洛维.png new file mode 100644 index 0000000..045c350 Binary files /dev/null and b/图片/品牌logo/卡洛维.png differ diff --git a/图片/品牌logo/可爱多.png b/图片/品牌logo/可爱多.png new file mode 100644 index 0000000..92a4047 Binary files /dev/null and b/图片/品牌logo/可爱多.png differ diff --git a/图片/品牌logo/品牌展示位.png b/图片/品牌logo/品牌展示位.png new file mode 100644 index 0000000..550531e Binary files /dev/null and b/图片/品牌logo/品牌展示位.png differ diff --git a/图片/品牌logo/大洋.png b/图片/品牌logo/大洋.png new file mode 100644 index 0000000..4617c0c Binary files /dev/null and b/图片/品牌logo/大洋.png differ diff --git a/图片/品牌logo/天霸.png b/图片/品牌logo/天霸.png new file mode 100644 index 0000000..45fb450 Binary files /dev/null and b/图片/品牌logo/天霸.png differ diff --git a/图片/品牌logo/晶晶.png b/图片/品牌logo/晶晶.png new file mode 100644 index 0000000..769242b Binary files /dev/null and b/图片/品牌logo/晶晶.png differ diff --git a/图片/品牌logo/松宝.png b/图片/品牌logo/松宝.png new file mode 100644 index 0000000..7d7a3a0 Binary files /dev/null and b/图片/品牌logo/松宝.png differ diff --git a/图片/品牌logo/汇龙.png b/图片/品牌logo/汇龙.png new file mode 100644 index 0000000..4b85570 Binary files /dev/null and b/图片/品牌logo/汇龙.png differ diff --git a/图片/品牌logo/百胜.png b/图片/品牌logo/百胜.png new file mode 100644 index 0000000..2b8301c Binary files /dev/null and b/图片/品牌logo/百胜.png differ diff --git a/图片/品牌logo/绚多.png b/图片/品牌logo/绚多.png new file mode 100644 index 0000000..a06255e Binary files /dev/null and b/图片/品牌logo/绚多.png differ diff --git a/图片/品牌logo/艾玛.png b/图片/品牌logo/艾玛.png new file mode 100644 index 0000000..2713047 Binary files /dev/null and b/图片/品牌logo/艾玛.png differ diff --git a/图片/品牌logo/越美.png b/图片/品牌logo/越美.png new file mode 100644 index 0000000..73aa917 Binary files /dev/null and b/图片/品牌logo/越美.png differ diff --git a/图片/品牌logo/酷鱼.png b/图片/品牌logo/酷鱼.png new file mode 100644 index 0000000..37d66a1 Binary files /dev/null and b/图片/品牌logo/酷鱼.png differ diff --git a/图片/品牌logo/闽江.png b/图片/品牌logo/闽江.png new file mode 100644 index 0000000..e338ba3 Binary files /dev/null and b/图片/品牌logo/闽江.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._.DS_Store b/图片/官网切图/__MACOSX/官网切图/._.DS_Store new file mode 100644 index 0000000..09fa6bd Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._.DS_Store differ diff --git a/图片/官网切图/__MACOSX/官网切图/._可丽爱.png b/图片/官网切图/__MACOSX/官网切图/._可丽爱.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._可丽爱.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._微信二维码.png b/图片/官网切图/__MACOSX/官网切图/._微信二维码.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._微信二维码.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._效果图 下面还是保留海洋背景.png b/图片/官网切图/__MACOSX/官网切图/._效果图 下面还是保留海洋背景.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._效果图 下面还是保留海洋背景.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._睿芯电子.png b/图片/官网切图/__MACOSX/官网切图/._睿芯电子.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._睿芯电子.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._绚多电子.png b/图片/官网切图/__MACOSX/官网切图/._绚多电子.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._绚多电子.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._绿箭头.png b/图片/官网切图/__MACOSX/官网切图/._绿箭头.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._绿箭头.png differ diff --git a/图片/官网切图/__MACOSX/官网切图/._诚邀合作.png b/图片/官网切图/__MACOSX/官网切图/._诚邀合作.png new file mode 100644 index 0000000..bab47c2 Binary files /dev/null and b/图片/官网切图/__MACOSX/官网切图/._诚邀合作.png differ diff --git a/图片/官网切图/官网切图/.DS_Store b/图片/官网切图/官网切图/.DS_Store new file mode 100644 index 0000000..21111f5 Binary files /dev/null and b/图片/官网切图/官网切图/.DS_Store differ diff --git a/图片/官网切图/官网切图/ercode.png b/图片/官网切图/官网切图/ercode.png new file mode 100644 index 0000000..a873d79 Binary files /dev/null and b/图片/官网切图/官网切图/ercode.png differ diff --git a/图片/官网切图/官网切图/green.png b/图片/官网切图/官网切图/green.png new file mode 100644 index 0000000..dc2748b Binary files /dev/null and b/图片/官网切图/官网切图/green.png differ diff --git a/图片/官网切图/官网切图/hezuo.png b/图片/官网切图/官网切图/hezuo.png new file mode 100644 index 0000000..cb668cc Binary files /dev/null and b/图片/官网切图/官网切图/hezuo.png differ diff --git a/图片/官网切图/官网切图/keliai.png b/图片/官网切图/官网切图/keliai.png new file mode 100644 index 0000000..c651328 Binary files /dev/null and b/图片/官网切图/官网切图/keliai.png differ diff --git a/图片/官网切图/官网切图/ruixin.png b/图片/官网切图/官网切图/ruixin.png new file mode 100644 index 0000000..5a526eb Binary files /dev/null and b/图片/官网切图/官网切图/ruixin.png differ diff --git a/图片/官网切图/官网切图/xuanduo.png b/图片/官网切图/官网切图/xuanduo.png new file mode 100644 index 0000000..82cba7c Binary files /dev/null and b/图片/官网切图/官网切图/xuanduo.png differ diff --git a/图片/官网切图/官网切图/效果图 下面还是保留海洋背景.png b/图片/官网切图/官网切图/效果图 下面还是保留海洋背景.png new file mode 100644 index 0000000..a219e71 Binary files /dev/null and b/图片/官网切图/官网切图/效果图 下面还是保留海洋背景.png differ diff --git a/图片/新/博尊.png b/图片/新/博尊.png new file mode 100644 index 0000000..9d35f34 Binary files /dev/null and b/图片/新/博尊.png differ diff --git a/图片/新/可爱多.png b/图片/新/可爱多.png new file mode 100644 index 0000000..a12ad75 Binary files /dev/null and b/图片/新/可爱多.png differ diff --git a/图片/新/大洋.png b/图片/新/大洋.png new file mode 100644 index 0000000..76bbbb8 Binary files /dev/null and b/图片/新/大洋.png differ diff --git a/图片/新/晶晶.png b/图片/新/晶晶.png new file mode 100644 index 0000000..5b9a9ef Binary files /dev/null and b/图片/新/晶晶.png differ diff --git a/图片/新/汇龙.png b/图片/新/汇龙.png new file mode 100644 index 0000000..1664e01 Binary files /dev/null and b/图片/新/汇龙.png differ diff --git a/图片/新/百胜.png b/图片/新/百胜.png new file mode 100644 index 0000000..487a5ba Binary files /dev/null and b/图片/新/百胜.png differ diff --git a/图片/新/艾玛.png b/图片/新/艾玛.png new file mode 100644 index 0000000..da856c3 Binary files /dev/null and b/图片/新/艾玛.png differ diff --git a/图片/新/越美.png b/图片/新/越美.png new file mode 100644 index 0000000..1f068ff Binary files /dev/null and b/图片/新/越美.png differ diff --git a/图片/新/选中/博尊.png b/图片/新/选中/博尊.png new file mode 100644 index 0000000..ac61cd0 Binary files /dev/null and b/图片/新/选中/博尊.png differ diff --git a/图片/新/选中/可爱多.png b/图片/新/选中/可爱多.png new file mode 100644 index 0000000..8d28f25 Binary files /dev/null and b/图片/新/选中/可爱多.png differ diff --git a/图片/新/选中/大洋.png b/图片/新/选中/大洋.png new file mode 100644 index 0000000..803fae5 Binary files /dev/null and b/图片/新/选中/大洋.png differ diff --git a/图片/新/选中/晶晶.png b/图片/新/选中/晶晶.png new file mode 100644 index 0000000..0af756a Binary files /dev/null and b/图片/新/选中/晶晶.png differ diff --git a/图片/新/选中/汇龙.png b/图片/新/选中/汇龙.png new file mode 100644 index 0000000..7c686aa Binary files /dev/null and b/图片/新/选中/汇龙.png differ diff --git a/图片/新/选中/百胜.png b/图片/新/选中/百胜.png new file mode 100644 index 0000000..8fc693f Binary files /dev/null and b/图片/新/选中/百胜.png differ diff --git a/图片/新/选中/艾玛.png b/图片/新/选中/艾玛.png new file mode 100644 index 0000000..8a246a4 Binary files /dev/null and b/图片/新/选中/艾玛.png differ diff --git a/图片/新/选中/越美.png b/图片/新/选中/越美.png new file mode 100644 index 0000000..c87a67e Binary files /dev/null and b/图片/新/选中/越美.png differ diff --git a/图片/新/选中/酷鱼.png b/图片/新/选中/酷鱼.png new file mode 100644 index 0000000..de752ef Binary files /dev/null and b/图片/新/选中/酷鱼.png differ diff --git a/图片/新/选中/闽江.png b/图片/新/选中/闽江.png new file mode 100644 index 0000000..abed7dd Binary files /dev/null and b/图片/新/选中/闽江.png differ diff --git a/图片/新/酷鱼.png b/图片/新/酷鱼.png new file mode 100644 index 0000000..6f5b61c Binary files /dev/null and b/图片/新/酷鱼.png differ diff --git a/图片/新/闽江.png b/图片/新/闽江.png new file mode 100644 index 0000000..2791cd4 Binary files /dev/null and b/图片/新/闽江.png differ diff --git a/图片/用户等级/1.png b/图片/用户等级/1.png new file mode 100644 index 0000000..cad6a98 Binary files /dev/null and b/图片/用户等级/1.png differ diff --git a/图片/用户等级/2.png b/图片/用户等级/2.png new file mode 100644 index 0000000..4973fa9 Binary files /dev/null and b/图片/用户等级/2.png differ diff --git a/图片/用户等级/3.png b/图片/用户等级/3.png new file mode 100644 index 0000000..afea997 Binary files /dev/null and b/图片/用户等级/3.png differ diff --git a/图片/用户等级/4.png b/图片/用户等级/4.png new file mode 100644 index 0000000..b0a3a3b Binary files /dev/null and b/图片/用户等级/4.png differ diff --git a/图片/用户等级/5.png b/图片/用户等级/5.png new file mode 100644 index 0000000..5efd5d6 Binary files /dev/null and b/图片/用户等级/5.png differ diff --git a/图片/用户等级/6.png b/图片/用户等级/6.png new file mode 100644 index 0000000..8b35bd2 Binary files /dev/null and b/图片/用户等级/6.png differ diff --git a/图片/用户等级/7.png b/图片/用户等级/7.png new file mode 100644 index 0000000..30b27d9 Binary files /dev/null and b/图片/用户等级/7.png differ diff --git a/图片/自定义图标.zip b/图片/自定义图标.zip new file mode 100644 index 0000000..97d38cb Binary files /dev/null and b/图片/自定义图标.zip differ diff --git a/图片/自定义图标/.DS_Store b/图片/自定义图标/.DS_Store new file mode 100644 index 0000000..d241a8b Binary files /dev/null and b/图片/自定义图标/.DS_Store differ diff --git a/图片/自定义图标/点击前/.DS_Store b/图片/自定义图标/点击前/.DS_Store new file mode 100644 index 0000000..0526f3d Binary files /dev/null and b/图片/自定义图标/点击前/.DS_Store differ diff --git a/图片/自定义图标/点击前/icon11.png b/图片/自定义图标/点击前/icon11.png new file mode 100644 index 0000000..2d970c7 Binary files /dev/null and b/图片/自定义图标/点击前/icon11.png differ diff --git a/图片/自定义图标/点击前/icon12.png b/图片/自定义图标/点击前/icon12.png new file mode 100644 index 0000000..39ff722 Binary files /dev/null and b/图片/自定义图标/点击前/icon12.png differ diff --git a/图片/自定义图标/点击前/icon13.png b/图片/自定义图标/点击前/icon13.png new file mode 100644 index 0000000..8106b2c Binary files /dev/null and b/图片/自定义图标/点击前/icon13.png differ diff --git a/图片/自定义图标/点击前/icon14.png b/图片/自定义图标/点击前/icon14.png new file mode 100644 index 0000000..4285557 Binary files /dev/null and b/图片/自定义图标/点击前/icon14.png differ diff --git a/图片/自定义图标/点击前/icon15.png b/图片/自定义图标/点击前/icon15.png new file mode 100644 index 0000000..21bb82f Binary files /dev/null and b/图片/自定义图标/点击前/icon15.png differ diff --git a/图片/自定义图标/点击前/icon16.png b/图片/自定义图标/点击前/icon16.png new file mode 100644 index 0000000..954caf2 Binary files /dev/null and b/图片/自定义图标/点击前/icon16.png differ diff --git a/图片/自定义图标/点击前/icon17.png b/图片/自定义图标/点击前/icon17.png new file mode 100644 index 0000000..8534120 Binary files /dev/null and b/图片/自定义图标/点击前/icon17.png differ diff --git a/图片/自定义图标/点击后/.DS_Store b/图片/自定义图标/点击后/.DS_Store new file mode 100644 index 0000000..75b7534 Binary files /dev/null and b/图片/自定义图标/点击后/.DS_Store differ diff --git a/图片/自定义图标/点击后/b_icon11.png b/图片/自定义图标/点击后/b_icon11.png new file mode 100644 index 0000000..7fb967d Binary files /dev/null and b/图片/自定义图标/点击后/b_icon11.png differ diff --git a/图片/自定义图标/点击后/b_icon12.png b/图片/自定义图标/点击后/b_icon12.png new file mode 100644 index 0000000..e3a13b8 Binary files /dev/null and b/图片/自定义图标/点击后/b_icon12.png differ diff --git a/图片/自定义图标/点击后/b_icon13.png b/图片/自定义图标/点击后/b_icon13.png new file mode 100644 index 0000000..4a2cd49 Binary files /dev/null and b/图片/自定义图标/点击后/b_icon13.png differ diff --git a/图片/自定义图标/点击后/b_icon14.png b/图片/自定义图标/点击后/b_icon14.png new file mode 100644 index 0000000..70177ea Binary files /dev/null and b/图片/自定义图标/点击后/b_icon14.png differ diff --git a/图片/自定义图标/点击后/b_icon15.png b/图片/自定义图标/点击后/b_icon15.png new file mode 100644 index 0000000..e3c310f Binary files /dev/null and b/图片/自定义图标/点击后/b_icon15.png differ diff --git a/图片/自定义图标/点击后/b_icon16.png b/图片/自定义图标/点击后/b_icon16.png new file mode 100644 index 0000000..4bd35de Binary files /dev/null and b/图片/自定义图标/点击后/b_icon16.png differ diff --git a/图片/自定义图标/点击后/b_icon17.png b/图片/自定义图标/点击后/b_icon17.png new file mode 100644 index 0000000..375e3db Binary files /dev/null and b/图片/自定义图标/点击后/b_icon17.png differ diff --git a/图片/默认头像/1.png b/图片/默认头像/1.png new file mode 100644 index 0000000..1dac1f2 Binary files /dev/null and b/图片/默认头像/1.png differ diff --git a/图片/默认头像/2.png b/图片/默认头像/2.png new file mode 100644 index 0000000..c7ea7a4 Binary files /dev/null and b/图片/默认头像/2.png differ diff --git a/图片/默认头像/3.png b/图片/默认头像/3.png new file mode 100644 index 0000000..4af28d0 Binary files /dev/null and b/图片/默认头像/3.png differ diff --git a/图片/默认头像/4.png b/图片/默认头像/4.png new file mode 100644 index 0000000..f61ffb1 Binary files /dev/null and b/图片/默认头像/4.png differ diff --git a/图片/默认头像/5.png b/图片/默认头像/5.png new file mode 100644 index 0000000..e993e3c Binary files /dev/null and b/图片/默认头像/5.png differ diff --git a/图片/默认头像/6.png b/图片/默认头像/6.png new file mode 100644 index 0000000..a56bd7c Binary files /dev/null and b/图片/默认头像/6.png differ diff --git a/图片/默认头像/7.png b/图片/默认头像/7.png new file mode 100644 index 0000000..6818ebc Binary files /dev/null and b/图片/默认头像/7.png differ diff --git a/测试工具/睿芯/20160722/192.168.2.123/ifishTools.war b/测试工具/睿芯/20160722/192.168.2.123/ifishTools.war new file mode 100644 index 0000000..c37f9ae Binary files /dev/null and b/测试工具/睿芯/20160722/192.168.2.123/ifishTools.war differ diff --git a/测试工具/睿芯/20160722/192.168.6.56/ifishTools.war b/测试工具/睿芯/20160722/192.168.6.56/ifishTools.war new file mode 100644 index 0000000..bde9842 Binary files /dev/null and b/测试工具/睿芯/20160722/192.168.6.56/ifishTools.war differ diff --git a/测试工具/睿芯/20160722/注意事项.txt b/测试工具/睿芯/20160722/注意事项.txt new file mode 100644 index 0000000..323e3f8 --- /dev/null +++ b/测试工具/睿芯/20160722/注意事项.txt @@ -0,0 +1 @@ +жϵIJԹߣȻٷµġ \ No newline at end of file diff --git a/测试工具/睿芯/20160722/测试工具(20160722).zip b/测试工具/睿芯/20160722/测试工具(20160722).zip new file mode 100644 index 0000000..020bc94 Binary files /dev/null and b/测试工具/睿芯/20160722/测试工具(20160722).zip differ diff --git a/测试工具/绚多/20160722/192.168.0.113/ifishTools.war b/测试工具/绚多/20160722/192.168.0.113/ifishTools.war new file mode 100644 index 0000000..4290543 Binary files /dev/null and b/测试工具/绚多/20160722/192.168.0.113/ifishTools.war differ diff --git a/测试工具/绚多/20160722/192.168.0.26/ifishTools.war b/测试工具/绚多/20160722/192.168.0.26/ifishTools.war new file mode 100644 index 0000000..d02c4ac Binary files /dev/null and b/测试工具/绚多/20160722/192.168.0.26/ifishTools.war differ diff --git a/测试工具/绚多/20160722/192.168.1.6/ifishTools.war b/测试工具/绚多/20160722/192.168.1.6/ifishTools.war new file mode 100644 index 0000000..929f583 Binary files /dev/null and b/测试工具/绚多/20160722/192.168.1.6/ifishTools.war differ diff --git a/测试工具/绚多/20160722/20160722.zip b/测试工具/绚多/20160722/20160722.zip new file mode 100644 index 0000000..f8ea483 Binary files /dev/null and b/测试工具/绚多/20160722/20160722.zip differ diff --git a/测试工具/绚多/20160722/注意事项.txt b/测试工具/绚多/20160722/注意事项.txt new file mode 100644 index 0000000..323e3f8 --- /dev/null +++ b/测试工具/绚多/20160722/注意事项.txt @@ -0,0 +1 @@ +жϵIJԹߣȻٷµġ \ No newline at end of file diff --git a/测试工具/绚多/20160811/192.168.100.23/ifishTools.war b/测试工具/绚多/20160811/192.168.100.23/ifishTools.war new file mode 100644 index 0000000..3a486ae Binary files /dev/null and b/测试工具/绚多/20160811/192.168.100.23/ifishTools.war differ diff --git a/测试工具/绚多/20160811/192.168.100.3/ifishTools.war b/测试工具/绚多/20160811/192.168.100.3/ifishTools.war new file mode 100644 index 0000000..ac269d9 Binary files /dev/null and b/测试工具/绚多/20160811/192.168.100.3/ifishTools.war differ diff --git a/测试工具/绚多/20160811/测试工具.zip b/测试工具/绚多/20160811/测试工具.zip new file mode 100644 index 0000000..742320e Binary files /dev/null and b/测试工具/绚多/20160811/测试工具.zip differ diff --git a/爱鱼奇多控通信协议V1.0(3).xls b/爱鱼奇多控通信协议V1.0(3).xls new file mode 100644 index 0000000..ae04db9 Binary files /dev/null and b/爱鱼奇多控通信协议V1.0(3).xls differ diff --git a/表结构第二版.xlsx b/表结构第二版.xlsx new file mode 100644 index 0000000..5ac1c80 Binary files /dev/null and b/表结构第二版.xlsx differ