├── .gitignore ├── LICENSE.md ├── README.md ├── arduino-1.0.6 ├── 168 │ ├── BareMinimum.cpp.hex │ ├── Blink.cpp.hex │ └── StandardFirmata.cpp.hex ├── duemilanove328 │ ├── BareMinimum.cpp.hex │ ├── Blink.cpp.hex │ └── StandardFirmata.cpp.hex └── uno │ ├── BareMinimum.cpp.hex │ ├── Blink.cpp.hex │ └── StandardFirmata.cpp.hex ├── examples ├── diecimila-duemilanove168.js ├── duemilanove328.js └── uno.js ├── index.js ├── lib ├── receiveData.js ├── sendCommand.js └── statics.js ├── package-lock.json ├── package.json └── test ├── receiveData.js ├── sendCommand.js └── setup.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Jacob Rosenthal 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## stk500 2 | Fully javascript stk500v1 programmer. Allows you to program Arduinos straight from node (or browser for that matter -- see [browserdude](github.com/jacobrosenthal/browserdude). No more avrdude system calls or using the arduino IDE. 3 | 4 | Huge thanks to Pinoccio for their stk500v2 browser implementation (for Arduino Megas, etc) from which I stole whole lines of code. We're working to unify our programmers with some sort of overarching module. For now see [js-stk500](https://github.com/Pinoccio/js-stk500) to program Arduino Mega and Pinoccio's 5 | 6 | ### INSTALL 7 | ``` 8 | npm install stk500 9 | ``` 10 | 11 | #### Program: 12 | 13 | You need a stream object, commonly [serialport](https://www.npmjs.com/package/serialport) with the correct speed for your chip (115200 for the uno) and path to your device : 14 | ``` 15 | var SerialPort = require("serialport"); 16 | var serialPort = new SerialPort.SerialPort("/dev/tty.something", { 17 | baudrate: 115200, 18 | }); 19 | ``` 20 | 21 | We've included some examples hexes, and you can parse them with the [intel-hex](https://www.npmjs.com/package/intel-hex): 22 | ``` 23 | var intel_hex = require('intel-hex'); 24 | var fs = require('fs'); 25 | 26 | var data = fs.readFileSync('arduino-1.0.6/uno/StandardFirmata.cpp.hex', { encoding: 'utf8' }); 27 | 28 | var hex = intel_hex.parse(data).data; 29 | 30 | ``` 31 | 32 | With [serialport](https://www.npmjs.com/package/serialport), you need to wait for your open event, but then you can bootload: 33 | ``` 34 | var Stk500 = require('stk500'); 35 | 36 | serialPort.on('open', function(){ 37 | 38 | var board = { 39 | signature: new Buffer([0x1e, 0x95, 0x0f]), 40 | pageSize: 128, 41 | timeout: 400 42 | }; 43 | 44 | Stk500.bootload(serialPort, hex, board, function(error){ 45 | 46 | serialPort.close(function (error) { 47 | console.log(error); 48 | }); 49 | 50 | done(error); 51 | }); 52 | 53 | }); 54 | 55 | ``` 56 | 57 | 58 | ### How to get a hex 59 | 60 | You can compile by hand yourself with avrdude if you know your stuff, or you can just steal one from Arduino. First make sure you have verbosity enabled in your Arduino preferences: Arduino Preferences -> check Show verbose output during Compilation. Now when you build you'll see a ton of lines on screen. The last couple lines have what you need: 61 | ``` 62 | /var/folders/zp/bpw8zd0141j5zf7l8m_qtt8w0000gp/T/build6252696906929781517.tmp/Blink.cpp.hex 63 | 64 | Sketch uses 896 bytes (2%) of program storage space. Maximum is 32,256 bytes. 65 | Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes. 66 | ``` 67 | Grab that hex file and you're good to go. 68 | 69 | ### CHANGELOG 70 | 0.0.1 71 | first 72 | 73 | 0.0.2 74 | Added loading from fs to example, some example hexes from arduino 1.0.6 for Uno, and instructions on how to find a hex file to load. 75 | 76 | 0.0.3 77 | Bugs squashed leading to much more stable getsync and less attempts necessary to successfuly programmin. Slight refactor in example and clearer console.log messaging. 78 | 79 | 0.0.4 80 | Slight require change for browserfy-ability and a few more touchups in example 81 | 82 | 0.0.5 83 | Fixed instability issue especially in chrome where listeners were not being deregistered 84 | 85 | 0.0.6 86 | Added ability to verify device signature. 87 | 88 | 1.0.0 89 | * Nearly complete rearchitecture. 90 | * Moved away from constructor. 91 | * Take a stream object instead of an explicit node serial object now, though node serial is a stream so no change for most users. 92 | * No connect, reset or disconnect anymore, it is now your job to send it a recently reset (opened) connection thats ready to go. 93 | * Added verify command 94 | * Added bootload convenience function that takes a board options object 95 | * Added more examples 96 | 97 | 1.0.1 98 | Clean up dependencies 99 | 100 | 1.0.2 101 | Remove postinstall 102 | 103 | 1.0.3 104 | * Better errors 105 | * More Tests 106 | 107 | 2.0.0 108 | * convert module to constructor 109 | 110 | 2.0.1 111 | * fix timeout especially around Chrome OS 74 112 | 113 | 2.0.2 114 | * update Buffer methods to replace deprecated constructor use 115 | -------------------------------------------------------------------------------- /arduino-1.0.6/168/BareMinimum.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9434000C9451000C9451000C94510049 2 | :100010000C9451000C9451000C9451000C9451001C 3 | :100020000C9451000C9451000C9451000C9451000C 4 | :100030000C9451000C9451000C9451000C945100FC 5 | :100040000C9467000C9451000C9451000C945100D6 6 | :100050000C9451000C9451000C9451000C945100DC 7 | :100060000C9451000C94510011241FBECFEFD4E02A 8 | :10007000DEBFCDBF11E0A0E0B1E0E8EDF1E002C0ED 9 | :1000800005900D92A030B107D9F711E0A0E0B1E0E2 10 | :1000900001C01D92A930B107E1F70E9456000C94EF 11 | :1000A000EA000C940000089508950895CF93DF931B 12 | :1000B0000E94AF000E9455000E945300C0E0D0E0B3 13 | :1000C0000E9454002097E1F30E940000F9CF1F9294 14 | :1000D0000F920FB60F9211242F933F938F939F93FC 15 | :1000E000AF93BF938091040190910501A091060107 16 | :1000F000B0910701309108010196A11DB11D232F78 17 | :100100002D5F2D3720F02D570196A11DB11D209395 18 | :1001100008018093040190930501A0930601B09318 19 | :1001200007018091000190910101A0910201B0911D 20 | :1001300003010196A11DB11D80930001909301015F 21 | :10014000A0930201B0930301BF91AF919F918F9152 22 | :100150003F912F910F900FBE0F901F90189578949C 23 | :1001600084B5826084BD84B5816084BD85B58260BC 24 | :1001700085BD85B5816085BDEEE6F0E0808181605A 25 | :100180008083E1E8F0E0108280818260808380815A 26 | :1001900081608083E0E8F0E0808181608083E1EB32 27 | :1001A000F0E0808184608083E0EBF0E0808181601A 28 | :1001B0008083EAE7F0E080818460808380818260D0 29 | :1001C00080838081816080838081806880831092B9 30 | :0801D000C1000895F894FFCF6F 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /arduino-1.0.6/168/Blink.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9461000C947E000C947E000C947E0095 2 | :100010000C947E000C947E000C947E000C947E0068 3 | :100020000C947E000C947E000C947E000C947E0058 4 | :100030000C947E000C947E000C947E000C947E0048 5 | :100040000C949A000C947E000C947E000C947E001C 6 | :100050000C947E000C947E000C947E000C947E0028 7 | :100060000C947E000C947E00000000002400270009 8 | :100070002A0000000000250028002B0000000000DE 9 | :1000800023002600290004040404040404040202DA 10 | :100090000202020203030303030301020408102007 11 | :1000A0004080010204081020010204081020000012 12 | :1000B0000007000201000003040600000000000029 13 | :1000C000000011241FBECFEFD4E0DEBFCDBF11E092 14 | :1000D000A0E0B1E0EAE3F4E002C005900D92A030A8 15 | :1000E000B107D9F711E0A0E0B1E001C01D92A9303D 16 | :1000F000B107E1F70E940A020C941B020C94000065 17 | :100100008DE061E00E94B50168EE73E080E090E070 18 | :100110000E94E2008DE060E00E94B50168EE73E0AD 19 | :1001200080E090E00E94E20008958DE061E00E948E 20 | :10013000760108951F920F920FB60F9211242F93FC 21 | :100140003F938F939F93AF93BF93809104019091BE 22 | :100150000501A0910601B0910701309108010196B7 23 | :10016000A11DB11D232F2D5F2D3720F02D57019696 24 | :10017000A11DB11D209308018093040190930501F6 25 | :10018000A0930601B09307018091000190910101B5 26 | :10019000A0910201B09103010196A11DB11D8093B0 27 | :1001A000000190930101A0930201B0930301BF915C 28 | :1001B000AF919F918F913F912F910F900FBE0F9014 29 | :1001C0001F9018959B01AC017FB7F89480910001B6 30 | :1001D00090910101A0910201B091030166B5A89B25 31 | :1001E00005C06F3F19F00196A11DB11D7FBFBA2F49 32 | :1001F000A92F982F8827860F911DA11DB11D62E0A0 33 | :10020000880F991FAA1FBB1F6A95D1F7BC012DC08B 34 | :10021000FFB7F8948091000190910101A091020133 35 | :10022000B0910301E6B5A89B05C0EF3F19F0019618 36 | :10023000A11DB11DFFBFBA2FA92F982F88278E0FA0 37 | :10024000911DA11DB11DE2E0880F991FAA1FBB1FC0 38 | :10025000EA95D1F7861B970B885E9340C8F2215030 39 | :1002600030404040504068517C4F211531054105D8 40 | :10027000510571F60895789484B5826084BD84B583 41 | :10028000816084BD85B5826085BD85B5816085BD91 42 | :10029000EEE6F0E0808181608083E1E8F0E01082AA 43 | :1002A000808182608083808181608083E0E8F0E0EB 44 | :1002B000808181608083E1EBF0E0808184608083D5 45 | :1002C000E0EBF0E0808181608083EAE7F0E080810C 46 | :1002D000846080838081826080838081816080836C 47 | :1002E0008081806880831092C1000895CF93DF934E 48 | :1002F000482F50E0CA0186569F4FFC0134914A575F 49 | :100300005F4FFA018491882369F190E0880F991F6B 50 | :10031000FC01E859FF4FA591B491FC01EE58FF4F45 51 | :10032000C591D491662351F42FB7F8948C91932FF3 52 | :10033000909589238C93888189230BC0623061F466 53 | :100340002FB7F8948C91932F909589238C93888163 54 | :10035000832B88832FBF06C09FB7F8948C91832B83 55 | :100360008C939FBFDF91CF910895482F50E0CA0131 56 | :1003700082559F4FFC012491CA0186569F4FFC0174 57 | :1003800094914A575F4FFA013491332309F440C0E6 58 | :10039000222351F1233071F0243028F42130A1F0D0 59 | :1003A000223011F514C02630B1F02730C1F02430CE 60 | :1003B000D9F404C0809180008F7703C080918000C1 61 | :1003C0008F7D8093800010C084B58F7702C084B584 62 | :1003D0008F7D84BD09C08091B0008F7703C080916C 63 | :1003E000B0008F7D8093B000E32FF0E0EE0FFF1F91 64 | :1003F000EE58FF4FA591B4912FB7F894662321F4DE 65 | :100400008C919095892302C08C91892B8C932FBF5E 66 | :1004100008950895CF93DF930E943B010E94090243 67 | :100420000E949500C0E0D0E00E9480002097E1F398 68 | :0A0430000E940000F9CFF894FFCFFE 69 | :00000001FF 70 | -------------------------------------------------------------------------------- /arduino-1.0.6/168/StandardFirmata.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9465000C948D000C948D000C948D0064 2 | :100010000C948D000C948D000C948D000C948D002C 3 | :100020000C948D000C948D000C948D000C94CD08D4 4 | :100030000C948D000C948D000C948D000C948D000C 5 | :100040000C94B3110C948D000C94BD130C940F14EC 6 | :100050000C948D000C948D000C948D000C948D00EC 7 | :100060000C94290B0C948D00000000002400270044 8 | :100070002A0000000000250028002B0000000000DE 9 | :1000800023002600290004040404040404040202DA 10 | :100090000202020203030303030301020408102007 11 | :1000A0004080010204081020010204081020000012 12 | :1000B0000007000201000003040600000000000029 13 | :1000C00000007401C509550E7E1511241FBECFEF27 14 | :1000D000D4E0DEBFCDBF11E0A0E0B1E0E0EEFDE294 15 | :1000E00002C005900D92A03EB107D9F714E0A0EE32 16 | :1000F000B1E001C01D92A636B107E1F710E0CAECED 17 | :10010000D0E004C02297FE010E94EA16C23CD1074B 18 | :10011000C9F70E94D5150C94EE160C940000FB0153 19 | :10012000DC014150504048F001900D920020C9F789 20 | :1001300001C01D9241505040E0F70895FC0181E05C 21 | :1001400090E00190061609F4CF010020D1F7019745 22 | :100150000895FB0151915523A9F0BF01DC014D9198 23 | :1001600045174111E1F759F4CD010190002049F004 24 | :100170004D9140154111C9F3FB014111EFCF81E0D1 25 | :1001800090E0019708950F931F93CF93DF93B82FBB 26 | :10019000833008F075C090E00196A82FAA0FAA0F2F 27 | :1001A000AA0F0197A53108F0A4E1482F440F440F8E 28 | :1001B000440F71E050E0C62FD0E001E010E01EC017 29 | :1001C000842F82508231C0F4242F30E0F901E851AD 30 | :1001D000FE4F8081823080F4572BF901EE0FFF1F14 31 | :1001E000E150FE4F11821082872F90E08C239D23D7 32 | :1001F000892B11F011830083770F4F5F4A1700F3AB 33 | :10020000BB2361F4852F8C7FF8942BB1982F9095A8 34 | :1002100092238623982B9BB9789432C0B13009F58C 35 | :10022000F89495B1852F8F7380958923962F9F73AE 36 | :100230009523892B85B948B1252F30E0862F90E092 37 | :100240002823392386E0359527958A95E1F752953D 38 | :1002500056955695537050955423522B58B978940F 39 | :100260000FC0852F8F70F89428B1982F990F990F90 40 | :10027000909592238623880F880F982B98B97894AD 41 | :10028000DF91CF911F910F910895482F863018F577 42 | :100290002091E0013091E101672B81F481E090E051 43 | :1002A00002C0880F991F4A95E2F780959095282300 44 | :1002B00039233093E1012093E001089581E090E03B 45 | :1002C00002C0880F991F4A95E2F7282B392B3093EB 46 | :1002D000E1012093E0010895833028F4E82FF0E055 47 | :1002E000EE51FE4F60830895CF93DF93CAE6D2E0CC 48 | :1002F000CE010E944707239682E0CE38D807C1F787 49 | :10030000DF91CF9108950F931F93CF93DF938B01CC 50 | :10031000843178F5C82FD0E0FE01E851FE4FE0812E 51 | :10032000E33091F0E43029F582508C30E0F49E0106 52 | :1003300022503040C901880F991F820F931F8659A0 53 | :100340009D4F0E94DF070FC0833051F0853041F090 54 | :10035000863031F0893021F08A3011F08B3019F479 55 | :10036000B8010E94C912CC0FDD1FC150DE4F1983A6 56 | :100370000883DF91CF911F910F910895AF92BF92A3 57 | :10038000DF92EF92FF920F931F93DF93CF930F9221 58 | :10039000CDB7DEB7D82E7B01082F10E0F801E85169 59 | :1003A000FE4F8081863061F480916702882341F09E 60 | :1003B0006630710529F0109267028FEF8093B801C3 61 | :1003C0009D2D925099839C30B8F4E4E0EE16F10430 62 | :1003D00099F0C80102975C01AA0CBB1CA80EB91EBB 63 | :1003E0008AE692E0A80EB91EC5010E94CD078823B7 64 | :1003F00019F0C5010E9461074D2D4E504630B8F4EA 65 | :100400002091E0013091E10192E0E916F10409F058 66 | :10041000E0C081E090E0042E02C0880F991F0A948A 67 | :10042000E2F7282B392B3093E1012093E001E98199 68 | :10043000E23130F5ED2DE695E695E69598012770C9 69 | :100440003070E114F10471F4F0E0E450FE4F81E00B 70 | :1004500090E002C0880F991F2A95E2F72081282B8F 71 | :1004600020830EC0F0E0E450FE4F81E090E002C037 72 | :10047000880F991F2A95E2F7809520818223808337 73 | :10048000F801EE0FFF1FE150FE4F11821082F2E0E3 74 | :10049000EF16F104E1F083E0E816F1044CF4E11406 75 | :1004A000F10439F191E0E916F10409F08BC032C092 76 | :1004B000E4E0EE16F10409F45DC0F4E0EF16F10497 77 | :1004C000CCF186E0E816F10409F07CC070C046303B 78 | :1004D00008F08CC09981923140F48D2D60E00E942B 79 | :1004E00029138D2D60E00E94681308511E4F82E091 80 | :1004F00066C0F981F23108F079C08D2D60E00E946C 81 | :1005000029138D2D60E00E94681308511E4FF801D9 82 | :1005100010826CC0F981F23108F068C08D2D60E066 83 | :100520000E9468138D2D61E00E94291308511E4F0F 84 | :1005300081E045C0F3E0DF1681F085E0D81669F070 85 | :1005400096E0D91651F0E9E0DE1639F0FAE0DF1650 86 | :1005500021F08BE0D81609F049C08D2D61E00E9492 87 | :1005600029138D2D60E070E00E94C91208511E4FC2 88 | :1005700083E025C0F981FC30C8F5F801E851FE4F51 89 | :1005800084E08083C80102977C01EE0CFF1CE80E1A 90 | :10059000F91E8AE692E0E80EF91EC7010E94CD0717 91 | :1005A000882321F5C701B8010E94C6081FC09EEE2E 92 | :1005B000D90EE1E0ED15D0F008511E4F86E0F801AC 93 | :1005C000808314C084E793E060E071E00E94E00E55 94 | :1005D0000DC081E090E0042E02C0880F991F0A949C 95 | :1005E000E2F780959095282339231DCF0F90CF9166 96 | :1005F000DF911F910F91FF90EF90DF90BF90AF9030 97 | :1006000008951F9380916702882329F01092670252 98 | :100610008FEF8093B8011092E2011092FC011092CA 99 | :10062000E5011092E3011092FD011092E601109293 100 | :10063000E4011092FE011092E70110E0812F8E502C 101 | :10064000863020F4812F62E070E003C0812F61E0EA 102 | :1006500070E00E94BE011F5F143181F71092E1012A 103 | :100660001092E0011F9108950F931F9304E713E088 104 | :10067000C80161E171E042E023E00E94DB0FC801A4 105 | :1006800060EE43E851E00E940F0EC80160E943ECC0 106 | :1006900050E00E940F0EC80160EC45E451E00E945A 107 | :1006A0000F0EC80160ED4CE651E00E940F0EC8012C 108 | :1006B00064EF4EEB51E00E940F0EC80160EF4CED6D 109 | :1006C00054E00E94330EC8016FEF41E053E00E94F6 110 | :1006D0002D0EC80140E051EE60E070E00E944A102B 111 | :1006E0000E9401031F910F9108951F9310E0812F25 112 | :1006F0008251823028F4812F66E070E00E94BE01B2 113 | :100700001F5F1431A1F781E0809367028AEF92E0C6 114 | :100710000E94650A1F9108951F93CF93DF93282F9E 115 | :10072000162FC82FD0E0FE01E450FE4F8081182321 116 | :10073000442331F4FE01EB51FE4F8081811751F0CB 117 | :1007400084E793E0622F412F50E00E94AA0DCB5125 118 | :10075000DE4F1883DF91CF911F9108958091E201C0 119 | :10076000882349F069B18091FC0168236C7F80E0A7 120 | :1007700040E00E948C038091E301882379F083B1EB 121 | :1007800066B16295660F660F607C8F73682B8091EF 122 | :10079000FD01682381E040E00E948C038091E40128 123 | :1007A000882379F086B190E08C7390709595879549 124 | :1007B000959587956091FE01682382E040E00E9454 125 | :1007C0008C030895EF92FF920F931F93CF93DF93C3 126 | :1007D000F82EEB01E42E8FEF6F3F780719F4C0E09D 127 | :1007E000D0E014C08AEF92E06F2D0E948B098AEF4F 128 | :1007F00092E06C2F0E940D0A8AEF92E00E94500A4C 129 | :1008000080916802909169020E9462128AEF92E0E0 130 | :100810006F2D4E2D0E94610A0E2D10E08AEF92E09E 131 | :100820000E9495090817190791F4F0924702C093A6 132 | :100830004802C9E4D2E00C0F1D1F05C08AEF92E008 133 | :100840000E949E098993C017D107C1F712C08AEF91 134 | :1008500092E00E949509801791072CF484E793E0B9 135 | :1008600065E271E004C084E793E06DE471E00E940A 136 | :10087000E00E82E0E80E84E793E067E74E2D27E480 137 | :1008800032E00E94DC0DDF91CF911F910F91FF901C 138 | :10089000EF900895AF92BF92CF92DF92EF92FF92C6 139 | :1008A0000F931F93CF93DF930E94AE0304C084E79E 140 | :1008B00093E00E942C0F84E793E00E94830D892B24 141 | :1008C000B1F70E94FB116093270270932802809376 142 | :1008D000290290932A02A0902B02B0902C02C09083 143 | :1008E0002D02D0902E022091B6013091B7017901EE 144 | :1008F0000027F7FC0095102F6A197B098C099D09C8 145 | :10090000E616F7060807190708F04BC0EA0CFB1CAF 146 | :100910000C1D1D1DE0922B02F0922C0200932D0263 147 | :1009200010932E02C8EED1E012EF1630C0F4888189 148 | :100930008230A9F48091E0019091E101012E02C082 149 | :10094000959587950A94E2F780FF09C0812F0E9450 150 | :10095000A712AC0184E793E0612F0E948F0D1F5F07 151 | :100960002196163011F78091B80187FD1AC010E06A 152 | :100970000EC0F901EE0FFF1FE20FF31FE15DFD4F07 153 | :100980006181808170E042810E94E2031F5F212F1C 154 | :1009900030E08091B801992787FD909582179307E1 155 | :1009A00044F7DF91CF911F910F91FF90EF90DF906F 156 | :1009B000CF90BF90AF900895BF92CF92DF92EF9209 157 | :1009C000FF920F931F93CF93DF93162FEA018F3679 158 | :1009D00009F44FC1803750F48B3609F46AC18D3663 159 | :1009E00009F4D3C1893609F048C228C2863769F0B4 160 | :1009F000873720F4803709F040C2E4C0883709F413 161 | :100A0000C7C08A3709F039C219C1898185FF05C07D 162 | :100A100084E793E064E771E054C0688188718830AE 163 | :100A200059F1893018F4882341F027C2803109F444 164 | :100A300040C0883109F021C264C08AEF92E00E9470 165 | :100A40008B0902E00EC0FE01E00FF11D6181679588 166 | :100A5000662767958081680F8AEF92E00E940D0AF1 167 | :100A60000E5F011780F38AEF92E00E94500A86E43D 168 | :100A700090E00E94621201C29B818A81163071F45B 169 | :100A8000979599279795980F4D81479544274795B6 170 | :100A90008C81480F862F692F70E008C097959927A1 171 | :100AA0009795980F862F6FEF7FEF492F0E94E203F3 172 | :100AB000E4C18091B80187303CF084E793E060EABC 173 | :100AC00071E00E94E00ED9C18F5F8093B801992731 174 | :100AD00087FD9095FC01EE0FFF1FE80FF91FE15D08 175 | :100AE000FD4F60838B818795882787959A81890F31 176 | :100AF00081838D818795882787959C81890F828343 177 | :100B0000BCC15091B801151634F420E0C52FDD2783 178 | :100B1000C7FDD09511C08FEF8093B801AEC1FC0125 179 | :100B2000EE0FFF1FE80FF91FE15DFD4F60836623A5 180 | :100B300011F0422F24C02F5F822F90E0C817D907F1 181 | :100B400074F740E01CC04830C8F4C9010196D901CF 182 | :100B5000AA0FBB1FA20FB31FA15DBD4FFC01EE0F7B 183 | :100B6000FF1FE80FF91FE15DFD4F80818C938081AD 184 | :100B700011968C931197828112968C934F5F242F3C 185 | :100B800030E0C217D307FCF651505093B80175C13D 186 | :100B90008981682F70E07695762F6627779567951F 187 | :100BA0008881680F711D6115710521F070936902CC 188 | :100BB0006093680280916702882309F05EC10E94F9 189 | :100BC00075035BC1653008F458C1F880C980EA80BC 190 | :100BD000BB80DC808F2D82508C3008F04EC10F2DF1 191 | :100BE00010E0C8010297EC01CC0FDD1FC80FD91F20 192 | :100BF000C659DD4FCE010E94CD07882319F0CE01E2 193 | :100C00000E9461074E2D50E05695542F442757956A 194 | :100C100047954C0D511D2D2D30E03695322F222752 195 | :100C2000379527952B0D311DCE01B8010E9447083D 196 | :100C30008F2D64E070E00E94BE011FC1623008F495 197 | :100C40001CC1898190E09695982F88279795879564 198 | :100C50002881820F911D9093B7018093B6010A9766 199 | :100C60000CF00BC18AE090E09093B7018093B6013D 200 | :100C700004C1623008F401C18981682F70E012302C 201 | :100C8000A1F08A8190E09695982F8827979587956F 202 | :100C9000682B792B133049F02B81922F9295990F65 203 | :100CA000990F907C80E0682B792B88810E948301CA 204 | :100CB000E4C080E494E060EF0E943E1580E494E09C 205 | :100CC0006CE60E943E1500E01EEF16C01231A0F443 206 | :100CD00080E494E060E00E943E1580E494E061E0EE 207 | :100CE0000E943E1580E494E061E00E943E1580E49D 208 | :100CF00094E061E00E943E15802F8E50863050F4C3 209 | :100D000080E494E062E00E943E1580E494E06AE0B2 210 | :100D10000E943E15033051F0053041F0063031F0AD 211 | :100D2000093021F00A3011F00B3051F480E494E0E6 212 | :100D300063E00E943E1580E494E068E00E943E1566 213 | :100D40001C3050F480E494E064E00E943E1580E49E 214 | :100D500094E06EE00E943E15802F8251823050F464 215 | :100D600080E494E066E00E943E1580E494E061E057 216 | :100D70000E943E1580E494E06FE70E943E150F5FED 217 | :100D80001F5F043109F0A2CF73C0662309F475C058 218 | :100D9000088180E494E060EF0E943E1580E494E0D6 219 | :100DA0006EE60E943E1580E494E0602F0E943E159E 220 | :100DB000043108F05DC0C02FD0E0FE01E851FE4FC5 221 | :100DC00080E494E060810E943E158E01000F111FA7 222 | :100DD00001501E4FF801608170E06F77707080E401 223 | :100DE00094E00E943E15F80160817181CB0180780A 224 | :100DF000892B59F0660F672F661F770B70E06F77AE 225 | :100E0000707080E494E00E943E15CC0FDD1FC1504D 226 | :100E1000DE4F28813981C9018070907C892B41F196 227 | :100E2000330F220B330F322F221F622F70E06F77A8 228 | :100E3000707080E494E00E943E151AC080E494E053 229 | :100E400060EF0E943E1580E494E06AE60E943E1541 230 | :100E5000C2EFDFEFC63018F06FE770E001C0BE01EF 231 | :100E600080E494E00E943E152196C630D10591F7AA 232 | :100E700080E494E067EF0E943E15DF91CF911F91CF 233 | :100E80000F91FF90EF90DF90CF90BF900895FC01FD 234 | :100E900080918E028C3090F480838F5F80938E02DD 235 | :100EA000815090E0FC01EE0FFF1FE80FF91FE157A2 236 | :100EB000FD4F88EB9BE09283818308958FEF8083C1 237 | :100EC0000895DC018C9190E0FC01EE0FFF1FE80F0C 238 | :100ED000F91FE157FD4F80818F7B80838C916CE0FF 239 | :100EE0000E94781690E0AC01440F551F480F591F1F 240 | :100EF000440F551F440F551F20E030E0C901840FF7 241 | :100F0000951FFC01EE0FFF1FE80FF91FE157FD4F82 242 | :100F1000808186FD05C02F5F3F4F2C30310571F772 243 | :100F20000895FC0120812C30B8F58181992787FD37 244 | :100F3000909548E850E0481B590B440F551F440F4B 245 | :100F4000551F6417750784F08281992787FD909556 246 | :100F500048E552E0481B590B440F551F440F551FDD 247 | :100F6000641775070CF4AB0142505040CA01AA2720 248 | :100F700097FDA095BA2F880F991FAA1FBB1F4FB7C7 249 | :100F8000F89430E0F901EE0FFF1FE20FF31FE15775 250 | :100F9000FD4F928381834FBF0895FC01808190E0D3 251 | :100FA000FC01EE0FFF1FE80FF91FE157FD4F808195 252 | :100FB000829586958695817009F081E00895AF92BB 253 | :100FC000BF92CF92DF92EF92FF920F931F93CF9336 254 | :100FD000DF93EC019B0182E0603278070CF048C09F 255 | :100FE00077FF03C020E030E005C0653B710514F0D9 256 | :100FF00024EB30E000D000D0B901882777FD809540 257 | :10100000982F2981332727FD3095E8E8AE2EB12CA3 258 | :10101000A21AB30AAA0CBB1CAA0CBB1CCC24B7FC9A 259 | :10102000C094DC2CEA81FF27E7FDF09528E532E04B 260 | :101030002E1B3F0B220F331F220F331F442737FD78 261 | :101040004095542FEDB7FEB72183328343835483F9 262 | :1010500020E030E040E050E004EBE02EF12C012DE8 263 | :10106000112D0E9410169B010F900F900F900F9062 264 | :10107000CE01B9010E949107DF91CF911F910F918D 265 | :10108000FF90EF90DF90CF90BF90AF900895CF92F8 266 | :10109000DF92EF92FF921F93CF93DF93EC01162F15 267 | :1010A0007A01690188818C3008F064C0862F61E084 268 | :1010B0000E942913888190E0FC01EE0FFF1FE80FCA 269 | :1010C000F91FE157FD4F1F738081807C812B808346 270 | :1010D00080E292E08E199F0964E070E00E9484161D 271 | :1010E000698380E699E08C199D0964E070E00E94B4 272 | :1010F00084166A83A8818A2F6CE00E947816682F74 273 | :1011000070E0AB01440F551F460F571F440F551F8A 274 | :10111000440F551F20E030E0C901840F951FFC01EA 275 | :10112000EE0FFF1FE80FF91FE157FD4F808186FD8D 276 | :1011300015C02F5F3F4F2C30310571F724C010923E 277 | :10114000800082E0809381001092850010928400DC 278 | :10115000B19A80916F00826080936F008A2F90E037 279 | :10116000FC01EE0FFF1FE80FF91FE157FD4F8081D3 280 | :10117000806480838881DF91CF911F91FF90EF90F1 281 | :10118000DF90CF900895672BD1F2E8CF40E252E094 282 | :1011900020E639E00E94470808951F920F920FB68B 283 | :1011A0000F9211242F933F934F935F936F937F93ED 284 | :1011B0008F939F93AF93BF93EF93FF938091B3026D 285 | :1011C00087FF05C010928500109284002BC02091EB 286 | :1011D000B302332727FD309580918E0290E02817C7 287 | :1011E000390704F58091B302992787FD9095FC019A 288 | :1011F000EE0FFF1FE80FF91FE157FD4F808186FFBB 289 | :1012000011C08091B302992787FD9095FC01EE0FE4 290 | :10121000FF1FE80FF91FE157FD4F80818F7360E0DA 291 | :101220000E9468138091B3028F5F8093B302209174 292 | :10123000B302332727FD309580918E0290E0281766 293 | :1012400039070CF04EC08091B3028C300CF049C0CD 294 | :1012500020918400309185008091B302992787FD09 295 | :101260009095FC01EE0FFF1FE80FF91FE157FD4FAE 296 | :1012700081819281280F391F309389002093880043 297 | :101280008091B302992787FD9095FC01EE0FFF1F17 298 | :10129000E80FF91FE157FD4F808186FF2BC0809139 299 | :1012A000B302992787FD9095FC01EE0FFF1FE80F11 300 | :1012B000F91FE157FD4F80818F7361E00E94681331 301 | :1012C00019C080E49CE905C080918400909185005C 302 | :1012D000049690938900809388008FEF8093B302E7 303 | :1012E00009C08091840090918500049680549C49A7 304 | :1012F00040F3EACFFF91EF91BF91AF919F918F9112 305 | :101300007F916F915F914F913F912F910F900FBE01 306 | :101310000F901F90189581E08093F9026093D60298 307 | :101320001092F7021092F80208952091D50230E051 308 | :101330008091D402281B3109C90108954091D4023B 309 | :101340008091D502481718F02FEF3FEF0AC0E42F25 310 | :10135000F0E0EC54FD4F8081282F30E04F5F409348 311 | :10136000D402C9010895E091D4028091D502E81712 312 | :1013700018F0EFEFFFEF06C0F0E0EC54FD4F808176 313 | :10138000E82FF0E0CF01089508951092FD02109229 314 | :10139000FC0288EE93E0A0E0B0E08093FE02909320 315 | :1013A000FF02A0930003B093010384EC91E09093BB 316 | :1013B000FB028093FA020895CF92DF92EF92FF92A0 317 | :1013C0000F931F93CF93DF937C016B018A01809170 318 | :1013D000F9028823A1F0C0E0D0E00DC0D701ED9163 319 | :1013E000FC91D601AC0FBD1F0190F081E02DC7012B 320 | :1013F0006C9109952196C017D10780F304C0CB01E9 321 | :10140000642F0E940E0BC801DF91CF911F910F91A5 322 | :10141000FF90EF90DF90CF900895DF93CF930F92DE 323 | :10142000CDB7DEB7FC0169838091F9028823C9F04A 324 | :101430008091F802803238F081E090E093838283DB 325 | :1014400020E030E015C08091F702E82FF0E0E9528B 326 | :10145000FD4F998190838F5F8093F7028093F8020C 327 | :1014600005C0CE01019661E00E940E0B21E030E044 328 | :10147000C9010F90CF91DF9108950F93062F8091AE 329 | :10148000D60267ED72E04091F80221E00E94B90AAD 330 | :101490001092F7021092F8021092F9020F9108953B 331 | :1014A00061E00E943D0A0895413208F040E2862F33 332 | :1014B00064EB72E00E94700A1092D4028093D5020D 333 | :1014C000089521E00E94540A08951092D4021092C7 334 | :1014D000D5021092F7021092F8020E94BA0C0895F9 335 | :1014E000382F413210F040E042C08091060388233B 336 | :1014F000E1F791E090930603209308038FEF809328 337 | :10150000730310922E03415040932F034F5F90932B 338 | :10151000070380910703330F832B80930703809188 339 | :101520000903813041F410920903809107038093ED 340 | :10153000BB0085EC01C085EE8093BC008091060362 341 | :101540008130E1F380912E03841710F440912E0333 342 | :1015500020E030E00AC0FB01E20FF31FD901A25FD7 343 | :10156000BC4F8C9180832F5F3F4F2417A0F3842FB3 344 | :1015700008950F931F93582F122F413210F081E0DE 345 | :101580004AC0809106038823E1F782E08093060336 346 | :10159000009308038FEF8093730310922E03409300 347 | :1015A0002F03AEE0B3E0FB0102C081918D938E2F3B 348 | :1015B000861B8417D0F31092070380910703550F01 349 | :1015C000852B8093070380910903813041F41092A9 350 | :1015D0000903809107038093BB0085EC01C085EE71 351 | :1015E0008093BC00112321F0809106038230E1F347 352 | :1015F000809173038F3F11F480E00DC080917303DD 353 | :10160000803211F482E007C080917303803311F0BF 354 | :1016100084E001C083E01F910F910895482F61324B 355 | :1016200010F081E0089580910603843011F082E08B 356 | :10163000089560935103A0E3B3E0842F9C01F90166 357 | :1016400002C081918D938E2F841B8617D0F380E08A 358 | :1016500008951F920F920FB60F9211242F933F936C 359 | :101660004F935F936F937F938F939F93AF93BF93AA 360 | :10167000EF93FF938091B90090E0887F907080365F 361 | :10168000910509F4F2C081369105CCF588329105B7 362 | :1016900009F47BC089329105B4F48031910509F4D5 363 | :1016A0006FC0813191053CF4009709F447C1089758 364 | :1016B00009F04FC165C08831910509F466C0809773 365 | :1016C00009F047C182C08034910509F4A4C0813477 366 | :1016D000910544F48033910509F482C0C89709F05C 367 | :1016E00038C189C08035910509F489C088359105D4 368 | :1016F00009F496C08834910509F02BC1AEC0883931 369 | :10170000910509F413C189399105ECF488379105E5 370 | :1017100009F4ABC0893791054CF48836910509F47A 371 | :10172000A4C08037910509F014C19FC08838910585 372 | :1017300009F4FCC08039910509F49DC080389105F9 373 | :1017400009F007C198C0803B910509F4C6C0813BF0 374 | :1017500091054CF4803A910509F49FC0883A9105AF 375 | :1017600009F0F7C0BAC0803C910509F4E3C0883C99 376 | :10177000910509F4DFC0883B910509F0EAC0C2C0B9 377 | :10178000809107038093BB00CFC090912E0380917E 378 | :101790002F03981768F490912E03E92FF0E0E25F91 379 | :1017A000FC4F80818093BB009F5F90932E03BCC051 380 | :1017B00080910803882309F44BC085ED8093BC0019 381 | :1017C0008091BC0084FDFCCFC2C080E28093730393 382 | :1017D00085ED8093BC008091BC0084FDFCCFB7C038 383 | :1017E00080E38093730385ED8093BC008091BC00FF 384 | :1017F00084FDFCCFACC088E3809373039BC08091D1 385 | :101800002E039091BB00E82FF0E0E25FFC4F908345 386 | :101810008F5F80932E0390912E0380912F0382C0BF 387 | :1018200080912E039091BB00E82FF0E0E25FFC4F27 388 | :1018300090838F5F80932E0380910803882341F06B 389 | :1018400085ED8093BC008091BC0084FDFCCF7FC0FF 390 | :1018500081E08093090384EA6EC085ED8093BC002B 391 | :101860008091BC0084FDFCCF72C083E080930603AE 392 | :101870001092720359C080917203803208F056C0F2 393 | :10188000809172039091BB00E82FF0E0EE5AFC4F7C 394 | :1018900090838F5F8093720347C080917203803280 395 | :1018A00030F4E0917203F0E0EE5AFC4F108285EDC7 396 | :1018B0008093BC008091BC0084FDFCCF1092060395 397 | :1018C00060917203E0910C03F0910D0382E593E0C7 398 | :1018D00070E00995109272032DC084E08093060396 399 | :1018E0001092500310925103E0910A03F0910B0300 400 | :1018F000099580915103882329F481E08093510355 401 | :101900001092300390915003E92FF0E0E05DFC4F1E 402 | :1019100080818093BB009F5F909350039091500310 403 | :1019200080915103981710F485EC01C085E88093ED 404 | :10193000BC000FC085EC8093BC0009C010927303FB 405 | :1019400085ED8093BC008091BC0084FDFCCF10929B 406 | :101950000603FF91EF91BF91AF919F918F917F917E 407 | :101960006F915F914F913F912F910F900FBE0F900C 408 | :101970001F9018951092060381E08093080310923F 409 | :10198000090382E161E00E94681383E161E00E9443 410 | :101990006813E9EBF0E080818E7F808380818D7F0A 411 | :1019A000808388E48093B80085E48093BC00089528 412 | :1019B000EF92FF920F931F937C018B01DC01ED915D 413 | :1019C000FC91A081B1816F772D913C91CF01F901FC 414 | :1019D0000995D701ED91FC91A081B181000F012FF4 415 | :1019E000001F110B0F772D913C91CF01602FF90152 416 | :1019F00009951F910F91FF90EF900895FC010190C0 417 | :101A0000F081E02DA081B1812D913C91CF0160EF5B 418 | :101A1000F90109950895FC010190F081E02DA08164 419 | :101A2000B1812D913C91CF0167EFF901099508959E 420 | :101A30000F931F938C01DC01ED91FC91A081B1818A 421 | :101A40002D913C91CF0169EFF9010995D801ED91F4 422 | :101A5000FC91A081B1812D913C91CF0162E0F9010F 423 | :101A60000995D801ED91FC91A081B1812D913C9116 424 | :101A7000CF0163E0F90109951F910F9108951F931C 425 | :101A8000CF93DF93EC018A818823C9F1CE010E94B4 426 | :101A9000FE0CE881F981A081B1812D913C91CF01AB 427 | :101AA00069E7F9010995E881F981A081B1812B816C 428 | :101AB0003C814D915C91CF01F9016081FA0109955A 429 | :101AC000E881F981A081B1812B813C814D915C91AC 430 | :101AD000CF01F9016181FA01099512E00AC0EB8199 431 | :101AE000FC81E10FF11D6081CE0170E00E94D80CF5 432 | :101AF0001F5F8A81181798F3CE010E940B0DDF91AA 433 | :101B0000CF911F910895FC01A081B181ED91FC91CD 434 | :101B100011970480F581E02DCD0109950895EF928C 435 | :101B2000FF920F931F938C017A01DC01ED91FC91E0 436 | :101B3000A081B1816F70606E2D913C91CF01F90150 437 | :101B40000995C801B7010E94D80C1F910F91FF9011 438 | :101B5000EF900895EF92FF920F931F937C018A01FB 439 | :101B6000DC01ED91FC91A081B1816F7060692D91D4 440 | :101B70003C91CF01F9010995D701ED91FC91A0812C 441 | :101B8000B181602F6F772D913C91CF01F9010995BB 442 | :101B9000D701ED91FC91A081B181000F012F001FB1 443 | :101BA000110B2D913C91CF01602FF90109951F91E7 444 | :101BB0000F91FF90EF900895DF92EF92FF920F93B5 445 | :101BC0001F93CF93DF93EC01162FD42E022FF32E09 446 | :101BD0000E94FE0CE881F981A081B1812D913C9198 447 | :101BE000CF01612FF9010995202F3F2DC9017C01FB 448 | :101BF00010E008C0F70161917F01CE0170E00E9402 449 | :101C0000D80C1F5F1D15B0F3CE010E940B0DDF91A4 450 | :101C1000CF911F910F91FF90EF90DF900895FC01FD 451 | :101C2000603DA9F0613D28F4603959F0603CA1F4B1 452 | :101C30000BC0603E19F0643F79F40CC054A743A771 453 | :101C4000089556A745A7089550AB47A7089552ABEE 454 | :101C500041AB089554AB43AB0895FC016F3F11F4C1 455 | :101C600056AB45AB0895FC0152AF41AF0895FC015E 456 | :101C7000158216821782DC0180E018961C92189754 457 | :101C80008F5F11968032C9F710A612A611A605A87B 458 | :101C9000F6A9E02D309709F009950895FC017183AC 459 | :101CA000608312820E94370E089584E793E060E417 460 | :101CB00074E00E944E0E08954F925F926F927F9251 461 | :101CC0008F929F92AF92BF92CF92DF92EF92FF924C 462 | :101CD0000F93DF93CF9300D0CDB7DEB72B017A01FE 463 | :101CE0003A8329838DE061E00E94291300E0898115 464 | :101CF0009A813C01882477FC8094982C5701CC244D 465 | :101D0000B7FCC094DC2C11C0C401B3010E940912BD 466 | :101D10008DE061E00E946813C601B5010E940912BE 467 | :101D20008DE060E00E9468130F5F802F90E08415C3 468 | :101D3000950554F30F900F90CF91DF910F91FF9085 469 | :101D4000EF90DF90CF90BF90AF909F908F907F905B 470 | :101D50006F905F904F9008950F931F938C018DE0CB 471 | :101D600061E00E942913C80162E070E048E250E09F 472 | :101D700022ED30E00E945C0E6AEF70E080E090E0BF 473 | :101D80000E940912C80163E070E048E250E022EDD1 474 | :101D900030E00E945C0E6DE770E080E090E00E9411 475 | :101DA00009121F910F9108959A01FA0101900020E4 476 | :101DB000E9F73197E41BF50B4E2F0E94DC0D0895D7 477 | :101DC000AB0161E70E94D40E08951F93CF93DF9378 478 | :101DD000EC018885813731F0893789F5CE010E9481 479 | :101DE0003F0D36C08FA998AD892B91F189A59AA591 480 | :101DF000019762E070E00E948416162F862F90E013 481 | :101E00000E947E10AC01DC0121E030E011C0FE0137 482 | :101E1000E20FF11D90859C932F5FFE01E20FF11DF3 483 | :101E20008085879588278795890F8D932F5F3F5FE2 484 | :101E3000311768F3EFA9F8ADCA01099509C0E9ADFA 485 | :101E4000FAAD309729F069A561502996AE01099540 486 | :101E5000DF91CF911F910895CF93DF93EC01A8817B 487 | :101E6000B981ED91FC9111970680F781E02DCD01AC 488 | :101E70000995AC0188A5882391F0473F510529F4C5 489 | :101E800018A6CE010E94E50E93C089A59AA5FE0171 490 | :101E9000E80FF91F408701969AA789A789C08D810D 491 | :101EA000882309F446C0403851050CF042C08150E7 492 | :101EB0008D83FE01E80FF11D4087882309F078C06B 493 | :101EC0008E81882309F474C0803D49F1813D28F456 494 | :101ED000803959F0803C59F51FC0803E19F0843F8D 495 | :101EE00031F513C0EBA5FCA502C0EDA5FEA530970A 496 | :101EF000F1F0688570E07695762F6627779567957F 497 | :101F00008985680F711D8F8111C0EBA9FCA93097DD 498 | :101F100071F06885898509C0EFA5F8A902C0E9A913 499 | :101F2000FAA9309721F068858F8170E009951E82AB 500 | :101F30003FC0403F510514F09A0106C09A01207F2E 501 | :101F40003070842F8F708F83203E3105F1F0213E59 502 | :101F5000310554F4203C3105D1F0203D3105B9F074 503 | :101F60002039310529F511C0243F310571F0253F95 504 | :101F7000310524F4203F3105D9F40DC0293F310546 505 | :101F800099F02F3F3105A1F40BC082E001C081E040 506 | :101F90008D832E830DC081E088A71AA619A608C0DC 507 | :101FA000CE010E94370E04C084E793E00E94180D12 508 | :101FB000DF91CF910895AF92BF92CF92DF92EF92CF 509 | :101FC000FF920F931F93CF93DF938C01D62EC72ED2 510 | :101FD000B42EA22E862F972F61EB71E00E94A900EC 511 | :101FE000EC018D2D9C2D6FE270E00E949E002097E9 512 | :101FF00079F07C010894E11CF11CE114F10441F03A 513 | :102000009E012E5F822F8E19D80112968C930FC0DD 514 | :10201000AD2DBC2DFD0101900020E9F7ED19EF5F1A 515 | :10202000D8011296EC932D2D3C2DC9017C01F801AD 516 | :10203000828190E00E947E10FC01D80114969C934E 517 | :102040008E93139712968C911297E80FF11D1082C0 518 | :102050001396ED91FC911497B0821396ED91FC913B 519 | :102060001497A18213968D919C91149712964C917E 520 | :1020700050E0425050400296B7010E948F00DF911D 521 | :10208000CF911F910F91FF90EF90DF90CF90BF9075 522 | :10209000AF9008950F931F938C0180E494E00E9409 523 | :1020A0004A14D801ED91FC9180914204909143042F 524 | :1020B000938382838091440490914504A0914604C7 525 | :1020C000B091470484839583A683B78380914804A5 526 | :1020D00090914904A0914A04B0914B048087918764 527 | :1020E000A287B387C8010E94AC0EC8010E94180DD8 528 | :1020F000C8010E943F0D1F910F9108950F931F93E8 529 | :10210000CF93DF93BC018230910510F462E070E060 530 | :10211000E0916404F0916504A0E0B0E040E050E09C 531 | :1021200024C08081918186179707D0F08617970782 532 | :1021300071F482819381109729F013969C938E936A 533 | :1021400012972CC0909365048093640427C04115B6 534 | :10215000510519F08417950718F4EF018D01AC01B2 535 | :10216000DF01828193819C01F9013097D1F64115FD 536 | :102170005105F9F0CA01861B970B8430910580F454 537 | :102180008A819B810115110521F0F80193838283D7 538 | :1021900004C09093650480936404FE01329645C0A8 539 | :1021A000FE01E80FF91F6193719302979983888369 540 | :1021B0003CC08091620490916304892B41F480912A 541 | :1021C000BB019091BC0190936304809362044091A1 542 | :1021D000BD015091BE014115510541F44DB75EB7A7 543 | :1021E0008091B9019091BA01481B590B209162046A 544 | :1021F0003091630424173507B0F4CA01821B930B96 545 | :102200008617970780F0AB014E5F5F4F84179507E5 546 | :1022100050F0420F531F5093630440936204F9013E 547 | :102220006193719302C0E0E0F0E0CF01DF91CF91C4 548 | :102230001F910F910895CF93DF939C01009709F4AC 549 | :102240008FC0EC0122971B821A8260916404709106 550 | :1022500065046115710581F488819981820F931F4E 551 | :1022600020916204309163042817390739F5D0931F 552 | :102270006304C093620474C0DB0140E050E0AC171B 553 | :10228000BD0708F1BB83AA83FE0121913191E20FC2 554 | :10229000F31FAE17BF0779F48D919C911197280F0A 555 | :1022A000391F2E5F3F4F3983288312968D919C9161 556 | :1022B00013979B838A834115510571F4D09365046C 557 | :1022C000C09364044DC012968D919C911397AD01FB 558 | :1022D000009711F0DC01D3CFDA011396DC93CE9393 559 | :1022E0001297FA0121913191E20FF31FCE17DF0708 560 | :1022F00069F488819981280F391F2E5F3F4FFA01B9 561 | :10230000318320838A819B8193838283E0E0F0E0A4 562 | :10231000DB0112968D919C911397009719F0BC01E7 563 | :10232000FD01F6CFAB014E5F5F4FDB018D919C91BC 564 | :10233000840F951F20916204309163042817390798 565 | :1023400079F4309729F4109265041092640402C065 566 | :1023500013821282425050405093630440936204AF 567 | :10236000DF91CF9108951F920F920FB60F92112413 568 | :102370002F933F938F939F93AF93BF938091B3031A 569 | :102380009091B403A091B503B091B6033091B70317 570 | :102390000196A11DB11D232F2D5F2D3720F02D5744 571 | :1023A0000196A11DB11D2093B7038093B3039093B1 572 | :1023B000B403A093B503B093B6038091AF0390919B 573 | :1023C000B003A091B103B091B2030196A11DB11D5C 574 | :1023D0008093AF039093B003A093B103B093B20383 575 | :1023E000BF91AF919F918F913F912F910F900FBE11 576 | :1023F0000F901F9018958FB7F8942091B3033091E8 577 | :10240000B4034091B5035091B6038FBFB901CA011F 578 | :1024100008959B01AC017FB7F8948091AF03909130 579 | :10242000B003A091B103B091B20366B5A89B05C0FB 580 | :102430006F3F19F00196A11DB11D7FBFBA2FA92FC3 581 | :10244000982F8827860F911DA11DB11D62E0880F6E 582 | :10245000991FAA1FBB1F6A95D1F7BC012DC0FFB7FA 583 | :10246000F8948091AF039091B003A091B103B09123 584 | :10247000B203E6B5A89B05C0EF3F19F00196A11D78 585 | :10248000B11DFFBFBA2FA92F982F88278E0F911D3E 586 | :10249000A11DB11DE2E0880F991FAA1FBB1FEA957D 587 | :1024A000D1F7861B970B885E9340C8F221503040CD 588 | :1024B0004040504068517C4F211531054105510580 589 | :1024C00071F60895019739F0880F991F880F991FA9 590 | :1024D00002970197F1F70895789484B5826084BDDE 591 | :1024E00084B5816084BD85B5826085BD85B5816018 592 | :1024F00085BDEEE6F0E0808181608083E1E8F0E078 593 | :102500001082808182608083808181608083E0E8A6 594 | :10251000F0E0808181608083E1EBF0E08081846085 595 | :102520008083E0EBF0E0808181608083EAE7F0E087 596 | :1025300080818460808380818260808380818160EB 597 | :1025400080838081806880831092C1000895982FD5 598 | :102550008E3008F09E5097708091BF018295880F51 599 | :10256000880F807C892B80937C0080917A00806426 600 | :1025700080937A0080917A0086FDFCCF20917800CC 601 | :1025800040917900942F80E030E0282B392BC9014D 602 | :1025900008951F93CF93DF93182FEB0161E00E9402 603 | :1025A0002913209709F44AC0CF3FD10509F449C047 604 | :1025B000E12FF0E0E255FF4F84918330C1F0843089 605 | :1025C00028F4813051F08230B1F50CC0863019F119 606 | :1025D000873049F1843079F514C084B5806884BDB2 607 | :1025E000C7BD33C084B5806284BDC8BD2EC0809194 608 | :1025F0008000806880938000D0938900C093880019 609 | :1026000024C080918000806280938000D0938B00F2 610 | :10261000C0938A001AC08091B00080688093B00097 611 | :10262000C093B30012C08091B00080628093B0006C 612 | :10263000C093B4000AC0C038D1051CF4812F60E0FB 613 | :1026400002C0812F61E00E946813DF91CF911F913A 614 | :102650000895CF93DF93482F50E0CA0186569F4FCD 615 | :10266000FC0134914A575F4FFA018491882369F144 616 | :1026700090E0880F991FFC01E859FF4FA591B49194 617 | :10268000FC01EE58FF4FC591D491662351F42FB74A 618 | :10269000F8948C91932F909589238C93888189232A 619 | :1026A0000BC0623061F42FB7F8948C91932F909502 620 | :1026B00089238C938881832B88832FBF06C09FB783 621 | :1026C000F8948C91832B8C939FBFDF91CF910895C9 622 | :1026D000482F50E0CA0182559F4FFC012491CA0146 623 | :1026E00086569F4FFC0194914A575F4FFA013491EF 624 | :1026F000332309F440C0222351F1233071F02430F8 625 | :1027000028F42130A1F0223011F514C02630B1F0A8 626 | :102710002730C1F02430D9F404C0809180008F7735 627 | :1027200003C0809180008F7D8093800010C084B5AD 628 | :102730008F7702C084B58F7D84BD09C08091B000C1 629 | :102740008F7703C08091B0008F7D8093B000E32F1E 630 | :10275000F0E0EE0FFF1FEE58FF4FA591B4912FB799 631 | :10276000F894662321F48C919095892302C08C9172 632 | :10277000892B8C932FBF089508951F920F920FB647 633 | :102780000F9211242F933F934F938F939F93EF9327 634 | :10279000FF938091C00082FD1DC04091C600209132 635 | :1027A000F8033091F9032F5F3F4F2F733070809102 636 | :1027B000FA039091FB032817390771F0E091F803B1 637 | :1027C000F091F903E854FC4F40833093F9032093D0 638 | :1027D000F80302C08091C600FF91EF919F918F9105 639 | :1027E0004F913F912F910F900FBE0F901F90189512 640 | :1027F000E0914C04F0914D04E05CFF4F8191919188 641 | :1028000020813181805C9F4F821B930B60E470E0DC 642 | :102810000E948416892B11F00E94BC1308951F9208 643 | :102820000F920FB60F9211242F933F938F939F9384 644 | :10283000EF93FF9320913C0430913D0480913E043E 645 | :1028400090913F042817390731F48091C1008F7DA2 646 | :102850008093C10014C0E0913E04F0913F04E45025 647 | :10286000FC4F208180913E0490913F0401968F732C 648 | :10287000907090933F0480933E042093C600FF9194 649 | :10288000EF919F918F913F912F910F900FBE0F90DD 650 | :102890001F901895AF92BF92DF92EF92FF920F9325 651 | :1028A0001F93CF93DF93EC017A018B01DD2440303D 652 | :1028B00081EE580780E0680780E0780711F0DD249A 653 | :1028C000D39491E0A92EB12CEC89FD89DD2069F02B 654 | :1028D000C50108A002C0880F991F0A94E2F78083FF 655 | :1028E00060E079E08DE390E005C0108260E874E874 656 | :1028F0008EE190E0A80197010E9497162150304088 657 | :1029000040405040569547953795279580E12030B7 658 | :10291000380720F0DD2011F0DD24D6CFE889F989D1 659 | :102920003083EA89FB89208319A2EE89FF894081DF 660 | :1029300021E030E0C9010C8C02C0880F991F0A9475 661 | :10294000E2F7482B4083EE89FF894081C9010D8C55 662 | :1029500002C0880F991F0A94E2F7482B4083EE8942 663 | :10296000FF894081C9010E8C02C0880F991F0A940B 664 | :10297000E2F7482B4083EE89FF8980810F8C02C0EB 665 | :10298000220F331F0A94E2F7209528232083DF913A 666 | :10299000CF911F910F91FF90EF90DF90BF90AF907C 667 | :1029A0000895DC011C96ED91FC911D97E05CFF4FB2 668 | :1029B0008191919120813181805C9F4F821B930B8B 669 | :1029C00060E470E00E9484160895DC011C96ED918D 670 | :1029D000FC911D97E05CFF4F20813181E054F04075 671 | :1029E000DF01AE5BBF4F8D919C911197281739077E 672 | :1029F00019F42FEF3FEF07C08D919C91E80FF91F5D 673 | :102A00008081282F30E0C9010895DC011C96ED91EA 674 | :102A1000FC911D97E05CFF4F20813181E054F04034 675 | :102A2000DF01AE5BBF4F8D919C911197281739073D 676 | :102A300019F42FEF3FEF10C08D919C911197E80F83 677 | :102A4000F91F20818D919C91119701968F73907041 678 | :102A500011969C938E9330E0C9010895DC01919604 679 | :102A60008C919197882339F05496ED91FC9155976C 680 | :102A7000808186FFF9CF91961C920895CF93DF93C2 681 | :102A8000EC01EE85FF85E05CFF4F20813181E05451 682 | :102A9000F0402F5F3F4F2F733070DF01AE5BBF4FB1 683 | :102AA0008D919C91119728173907D1F3E05CFF4F66 684 | :102AB00080819181E054F040E80FF91F6083EE853A 685 | :102AC000FF85E05CFF4F31832083EE89FF89208101 686 | :102AD00081E090E00F8C02C0880F991F0A94E2F702 687 | :102AE000282B208381E089A3EC89FD898081806483 688 | :102AF000808381E090E0DF91CF91089510924304AC 689 | :102B00001092420488EE93E0A0E0B0E08093440489 690 | :102B100090934504A0934604B093470484ED91E05C 691 | :102B2000909341048093400488EB93E090934D048C 692 | :102B300080934C048CEF93E090934F0480934E0469 693 | :102B400085EC90E0909351048093500484EC90E0E5 694 | :102B5000909353048093520480EC90E0909355043A 695 | :102B60008093540481EC90E0909357048093560432 696 | :102B700082EC90E0909359048093580486EC90E0A6 697 | :102B800090935B0480935A0484E080935C0483E018 698 | :102B900080935D0487E080935E0485E080935F040A 699 | :102BA00081E08093600408950895CF93DF930E949D 700 | :102BB0006C120E94D4150E943403C8EFD3E10E9426 701 | :102BC0004A042097E1F30E94F813F9CFCF92DF92E5 702 | :102BD000EF92FF920F931F93CF93DF937C016B01D2 703 | :102BE0008A01C0E0D0E00FC0D6016D916D01D70120 704 | :102BF000ED91FC910190F081E02DC7010995C80F7E 705 | :102C0000D91F015010400115110571F7CE01DF9158 706 | :102C1000CF911F910F91FF90EF90DF90CF9008958B 707 | :102C20002F923F924F925F926F927F928F929F92DC 708 | :102C3000AF92BF92CF92DF92EF92FF920F931F93CA 709 | :102C4000DF93CF93CDB7DEB73B014C0119012A01C9 710 | :102C50006D897E898F89988D6A197B098C099D09F8 711 | :102C6000621A730A840A950AA40193010E945916F4 712 | :102C7000E218F30804091509A80197010E94B91682 713 | :102C80002A0D3B1D4C1D5D1DB901CA01CF91DF917D 714 | :102C90001F910F91FF90EF90DF90CF90BF90AF907A 715 | :102CA0009F908F907F906F905F904F903F902F906C 716 | :102CB0000895629FD001739FF001829FE00DF11D86 717 | :102CC000649FE00DF11D929FF00D839FF00D749FA6 718 | :102CD000F00D659FF00D9927729FB00DE11DF91F52 719 | :102CE000639FB00DE11DF91FBD01CF0111240895AF 720 | :102CF000991B79E004C0991F961708F0961B881F4E 721 | :102D00007A95C9F78095089597FB092E07260AD072 722 | :102D100077FD04D049D006D000201AF47095619553 723 | :102D20007F4F0895F6F7909581959F4F0895A1E202 724 | :102D30001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F35 725 | :102D4000FF1FA217B307E407F50720F0A21BB30B80 726 | :102D5000E40BF50B661F771F881F991F1A9469F7FC 727 | :102D600060957095809590959B01AC01BD01CF0158 728 | :102D7000089597FB092E05260ED057FD04D0D7DF06 729 | :102D80000AD0001C38F450954095309521953F4F5E 730 | :102D90004F4F5F4F0895F6F7909580957095619528 731 | :102DA0007F4F8F4F9F4F0895AA1BBB1B51E107C058 732 | :102DB000AA1FBB1FA617B70710F0A61BB70B881FCB 733 | :102DC000991F5A95A9F780959095BC01CD0108955A 734 | :102DD000EE0FFF1F0590F491E02D0994F894FFCFBA 735 | :102DE000556E6B6E6F776E2070696E206D6F6465C7 736 | :102DF000005374616E646172644669726D617461DE 737 | :102E00002E696E6F0049324320526561642045721D 738 | :102E1000726F723A20546F6F206D616E7920627903 739 | :102E20007465732072656365697665640049324331 740 | :102E30002052656164204572726F723A20546F6F40 741 | :102E400020666577206279746573207265636569B1 742 | :102E50007665640031302D62697420616464726546 743 | :102E60007373696E67206D6F6465206973206E6F80 744 | :102E7000742079657420737570706F727465640066 745 | :102E8000746F6F206D616E792071756572696573FD 746 | :102E9000002E637070001300FF80006604000001C4 747 | :102EA000000000000D0ADC0995099E09B309C40958 748 | :102EB000000000003E15E615D1140515E5142E1589 749 | :00000001FF 750 | -------------------------------------------------------------------------------- /arduino-1.0.6/duemilanove328/BareMinimum.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9434000C9451000C9451000C94510049 2 | :100010000C9451000C9451000C9451000C9451001C 3 | :100020000C9451000C9451000C9451000C9451000C 4 | :100030000C9451000C9451000C9451000C945100FC 5 | :100040000C9467000C9451000C9451000C945100D6 6 | :100050000C9451000C9451000C9451000C945100DC 7 | :100060000C9451000C94510011241FBECFEFD8E026 8 | :10007000DEBFCDBF11E0A0E0B1E0E8EDF1E002C0ED 9 | :1000800005900D92A030B107D9F711E0A0E0B1E0E2 10 | :1000900001C01D92A930B107E1F70E9456000C94EF 11 | :1000A000EA000C940000089508950895CF93DF931B 12 | :1000B0000E94AF000E9455000E945300C0E0D0E0B3 13 | :1000C0000E9454002097E1F30E940000F9CF1F9294 14 | :1000D0000F920FB60F9211242F933F938F939F93FC 15 | :1000E000AF93BF938091040190910501A091060107 16 | :1000F000B0910701309108010196A11DB11D232F78 17 | :100100002D5F2D3720F02D570196A11DB11D209395 18 | :1001100008018093040190930501A0930601B09318 19 | :1001200007018091000190910101A0910201B0911D 20 | :1001300003010196A11DB11D80930001909301015F 21 | :10014000A0930201B0930301BF91AF919F918F9152 22 | :100150003F912F910F900FBE0F901F90189578949C 23 | :1001600084B5826084BD84B5816084BD85B58260BC 24 | :1001700085BD85B5816085BDEEE6F0E0808181605A 25 | :100180008083E1E8F0E0108280818260808380815A 26 | :1001900081608083E0E8F0E0808181608083E1EB32 27 | :1001A000F0E0808184608083E0EBF0E0808181601A 28 | :1001B0008083EAE7F0E080818460808380818260D0 29 | :1001C00080838081816080838081806880831092B9 30 | :0801D000C1000895F894FFCF6F 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /arduino-1.0.6/duemilanove328/Blink.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9461000C947E000C947E000C947E0095 2 | :100010000C947E000C947E000C947E000C947E0068 3 | :100020000C947E000C947E000C947E000C947E0058 4 | :100030000C947E000C947E000C947E000C947E0048 5 | :100040000C949A000C947E000C947E000C947E001C 6 | :100050000C947E000C947E000C947E000C947E0028 7 | :100060000C947E000C947E00000000002400270009 8 | :100070002A0000000000250028002B0000000000DE 9 | :1000800023002600290004040404040404040202DA 10 | :100090000202020203030303030301020408102007 11 | :1000A0004080010204081020010204081020000012 12 | :1000B0000007000201000003040600000000000029 13 | :1000C000000011241FBECFEFD8E0DEBFCDBF11E08E 14 | :1000D000A0E0B1E0EAE3F4E002C005900D92A030A8 15 | :1000E000B107D9F711E0A0E0B1E001C01D92A9303D 16 | :1000F000B107E1F70E940A020C941B020C94000065 17 | :100100008DE061E00E94B50168EE73E080E090E070 18 | :100110000E94E2008DE060E00E94B50168EE73E0AD 19 | :1001200080E090E00E94E20008958DE061E00E948E 20 | :10013000760108951F920F920FB60F9211242F93FC 21 | :100140003F938F939F93AF93BF93809104019091BE 22 | :100150000501A0910601B0910701309108010196B7 23 | :10016000A11DB11D232F2D5F2D3720F02D57019696 24 | :10017000A11DB11D209308018093040190930501F6 25 | :10018000A0930601B09307018091000190910101B5 26 | :10019000A0910201B09103010196A11DB11D8093B0 27 | :1001A000000190930101A0930201B0930301BF915C 28 | :1001B000AF919F918F913F912F910F900FBE0F9014 29 | :1001C0001F9018959B01AC017FB7F89480910001B6 30 | :1001D00090910101A0910201B091030166B5A89B25 31 | :1001E00005C06F3F19F00196A11DB11D7FBFBA2F49 32 | :1001F000A92F982F8827860F911DA11DB11D62E0A0 33 | :10020000880F991FAA1FBB1F6A95D1F7BC012DC08B 34 | :10021000FFB7F8948091000190910101A091020133 35 | :10022000B0910301E6B5A89B05C0EF3F19F0019618 36 | :10023000A11DB11DFFBFBA2FA92F982F88278E0FA0 37 | :10024000911DA11DB11DE2E0880F991FAA1FBB1FC0 38 | :10025000EA95D1F7861B970B885E9340C8F2215030 39 | :1002600030404040504068517C4F211531054105D8 40 | :10027000510571F60895789484B5826084BD84B583 41 | :10028000816084BD85B5826085BD85B5816085BD91 42 | :10029000EEE6F0E0808181608083E1E8F0E01082AA 43 | :1002A000808182608083808181608083E0E8F0E0EB 44 | :1002B000808181608083E1EBF0E0808184608083D5 45 | :1002C000E0EBF0E0808181608083EAE7F0E080810C 46 | :1002D000846080838081826080838081816080836C 47 | :1002E0008081806880831092C1000895CF93DF934E 48 | :1002F000482F50E0CA0186569F4FFC0134914A575F 49 | :100300005F4FFA018491882369F190E0880F991F6B 50 | :10031000FC01E859FF4FA591B491FC01EE58FF4F45 51 | :10032000C591D491662351F42FB7F8948C91932FF3 52 | :10033000909589238C93888189230BC0623061F466 53 | :100340002FB7F8948C91932F909589238C93888163 54 | :10035000832B88832FBF06C09FB7F8948C91832B83 55 | :100360008C939FBFDF91CF910895482F50E0CA0131 56 | :1003700082559F4FFC012491CA0186569F4FFC0174 57 | :1003800094914A575F4FFA013491332309F440C0E6 58 | :10039000222351F1233071F0243028F42130A1F0D0 59 | :1003A000223011F514C02630B1F02730C1F02430CE 60 | :1003B000D9F404C0809180008F7703C080918000C1 61 | :1003C0008F7D8093800010C084B58F7702C084B584 62 | :1003D0008F7D84BD09C08091B0008F7703C080916C 63 | :1003E000B0008F7D8093B000E32FF0E0EE0FFF1F91 64 | :1003F000EE58FF4FA591B4912FB7F894662321F4DE 65 | :100400008C919095892302C08C91892B8C932FBF5E 66 | :1004100008950895CF93DF930E943B010E94090243 67 | :100420000E949500C0E0D0E00E9480002097E1F398 68 | :0A0430000E940000F9CFF894FFCFFE 69 | :00000001FF 70 | -------------------------------------------------------------------------------- /arduino-1.0.6/duemilanove328/StandardFirmata.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9465000C948D000C948D000C948D0064 2 | :100010000C948D000C948D000C948D000C948D002C 3 | :100020000C948D000C948D000C948D000C94CD08D4 4 | :100030000C948D000C948D000C948D000C948D000C 5 | :100040000C94B3110C948D000C94BD130C940F14EC 6 | :100050000C948D000C948D000C948D000C948D00EC 7 | :100060000C94290B0C948D00000000002400270044 8 | :100070002A0000000000250028002B0000000000DE 9 | :1000800023002600290004040404040404040202DA 10 | :100090000202020203030303030301020408102007 11 | :1000A0004080010204081020010204081020000012 12 | :1000B0000007000201000003040600000000000029 13 | :1000C00000007401C509550E7E1511241FBECFEF27 14 | :1000D000D8E0DEBFCDBF11E0A0E0B1E0E0EEFDE290 15 | :1000E00002C005900D92A03EB107D9F714E0A0EE32 16 | :1000F000B1E001C01D92A636B107E1F710E0CAECED 17 | :10010000D0E004C02297FE010E94EA16C23CD1074B 18 | :10011000C9F70E94D5150C94EE160C940000FB0153 19 | :10012000DC014150504048F001900D920020C9F789 20 | :1001300001C01D9241505040E0F70895FC0181E05C 21 | :1001400090E00190061609F4CF010020D1F7019745 22 | :100150000895FB0151915523A9F0BF01DC014D9198 23 | :1001600045174111E1F759F4CD010190002049F004 24 | :100170004D9140154111C9F3FB014111EFCF81E0D1 25 | :1001800090E0019708950F931F93CF93DF93B82FBB 26 | :10019000833008F075C090E00196A82FAA0FAA0F2F 27 | :1001A000AA0F0197A53108F0A4E1482F440F440F8E 28 | :1001B000440F71E050E0C62FD0E001E010E01EC017 29 | :1001C000842F82508231C0F4242F30E0F901E851AD 30 | :1001D000FE4F8081823080F4572BF901EE0FFF1F14 31 | :1001E000E150FE4F11821082872F90E08C239D23D7 32 | :1001F000892B11F011830083770F4F5F4A1700F3AB 33 | :10020000BB2361F4852F8C7FF8942BB1982F9095A8 34 | :1002100092238623982B9BB9789432C0B13009F58C 35 | :10022000F89495B1852F8F7380958923962F9F73AE 36 | :100230009523892B85B948B1252F30E0862F90E092 37 | :100240002823392386E0359527958A95E1F752953D 38 | :1002500056955695537050955423522B58B978940F 39 | :100260000FC0852F8F70F89428B1982F990F990F90 40 | :10027000909592238623880F880F982B98B97894AD 41 | :10028000DF91CF911F910F910895482F863018F577 42 | :100290002091E0013091E101672B81F481E090E051 43 | :1002A00002C0880F991F4A95E2F780959095282300 44 | :1002B00039233093E1012093E001089581E090E03B 45 | :1002C00002C0880F991F4A95E2F7282B392B3093EB 46 | :1002D000E1012093E0010895833028F4E82FF0E055 47 | :1002E000EE51FE4F60830895CF93DF93CAE6D2E0CC 48 | :1002F000CE010E944707239682E0CE38D807C1F787 49 | :10030000DF91CF9108950F931F93CF93DF938B01CC 50 | :10031000843178F5C82FD0E0FE01E851FE4FE0812E 51 | :10032000E33091F0E43029F582508C30E0F49E0106 52 | :1003300022503040C901880F991F820F931F8659A0 53 | :100340009D4F0E94DF070FC0833051F0853041F090 54 | :10035000863031F0893021F08A3011F08B3019F479 55 | :10036000B8010E94C912CC0FDD1FC150DE4F1983A6 56 | :100370000883DF91CF911F910F910895AF92BF92A3 57 | :10038000DF92EF92FF920F931F93DF93CF930F9221 58 | :10039000CDB7DEB7D82E7B01082F10E0F801E85169 59 | :1003A000FE4F8081863061F480916702882341F09E 60 | :1003B0006630710529F0109267028FEF8093B801C3 61 | :1003C0009D2D925099839C30B8F4E4E0EE16F10430 62 | :1003D00099F0C80102975C01AA0CBB1CA80EB91EBB 63 | :1003E0008AE692E0A80EB91EC5010E94CD078823B7 64 | :1003F00019F0C5010E9461074D2D4E504630B8F4EA 65 | :100400002091E0013091E10192E0E916F10409F058 66 | :10041000E0C081E090E0042E02C0880F991F0A948A 67 | :10042000E2F7282B392B3093E1012093E001E98199 68 | :10043000E23130F5ED2DE695E695E69598012770C9 69 | :100440003070E114F10471F4F0E0E450FE4F81E00B 70 | :1004500090E002C0880F991F2A95E2F72081282B8F 71 | :1004600020830EC0F0E0E450FE4F81E090E002C037 72 | :10047000880F991F2A95E2F7809520818223808337 73 | :10048000F801EE0FFF1FE150FE4F11821082F2E0E3 74 | :10049000EF16F104E1F083E0E816F1044CF4E11406 75 | :1004A000F10439F191E0E916F10409F08BC032C092 76 | :1004B000E4E0EE16F10409F45DC0F4E0EF16F10497 77 | :1004C000CCF186E0E816F10409F07CC070C046303B 78 | :1004D00008F08CC09981923140F48D2D60E00E942B 79 | :1004E00029138D2D60E00E94681308511E4F82E091 80 | :1004F00066C0F981F23108F079C08D2D60E00E946C 81 | :1005000029138D2D60E00E94681308511E4FF801D9 82 | :1005100010826CC0F981F23108F068C08D2D60E066 83 | :100520000E9468138D2D61E00E94291308511E4F0F 84 | :1005300081E045C0F3E0DF1681F085E0D81669F070 85 | :1005400096E0D91651F0E9E0DE1639F0FAE0DF1650 86 | :1005500021F08BE0D81609F049C08D2D61E00E9492 87 | :1005600029138D2D60E070E00E94C91208511E4FC2 88 | :1005700083E025C0F981FC30C8F5F801E851FE4F51 89 | :1005800084E08083C80102977C01EE0CFF1CE80E1A 90 | :10059000F91E8AE692E0E80EF91EC7010E94CD0717 91 | :1005A000882321F5C701B8010E94C6081FC09EEE2E 92 | :1005B000D90EE1E0ED15D0F008511E4F86E0F801AC 93 | :1005C000808314C084E793E060E071E00E94E00E55 94 | :1005D0000DC081E090E0042E02C0880F991F0A949C 95 | :1005E000E2F780959095282339231DCF0F90CF9166 96 | :1005F000DF911F910F91FF90EF90DF90BF90AF9030 97 | :1006000008951F9380916702882329F01092670252 98 | :100610008FEF8093B8011092E2011092FC011092CA 99 | :10062000E5011092E3011092FD011092E601109293 100 | :10063000E4011092FE011092E70110E0812F8E502C 101 | :10064000863020F4812F62E070E003C0812F61E0EA 102 | :1006500070E00E94BE011F5F143181F71092E1012A 103 | :100660001092E0011F9108950F931F9304E713E088 104 | :10067000C80161E171E042E023E00E94DB0FC801A4 105 | :1006800060EE43E851E00E940F0EC80160E943ECC0 106 | :1006900050E00E940F0EC80160EC45E451E00E945A 107 | :1006A0000F0EC80160ED4CE651E00E940F0EC8012C 108 | :1006B00064EF4EEB51E00E940F0EC80160EF4CED6D 109 | :1006C00054E00E94330EC8016FEF41E053E00E94F6 110 | :1006D0002D0EC80140E051EE60E070E00E944A102B 111 | :1006E0000E9401031F910F9108951F9310E0812F25 112 | :1006F0008251823028F4812F66E070E00E94BE01B2 113 | :100700001F5F1431A1F781E0809367028AEF92E0C6 114 | :100710000E94650A1F9108951F93CF93DF93282F9E 115 | :10072000162FC82FD0E0FE01E450FE4F8081182321 116 | :10073000442331F4FE01EB51FE4F8081811751F0CB 117 | :1007400084E793E0622F412F50E00E94AA0DCB5125 118 | :10075000DE4F1883DF91CF911F9108958091E201C0 119 | :10076000882349F069B18091FC0168236C7F80E0A7 120 | :1007700040E00E948C038091E301882379F083B1EB 121 | :1007800066B16295660F660F607C8F73682B8091EF 122 | :10079000FD01682381E040E00E948C038091E40128 123 | :1007A000882379F086B190E08C7390709595879549 124 | :1007B000959587956091FE01682382E040E00E9454 125 | :1007C0008C030895EF92FF920F931F93CF93DF93C3 126 | :1007D000F82EEB01E42E8FEF6F3F780719F4C0E09D 127 | :1007E000D0E014C08AEF92E06F2D0E948B098AEF4F 128 | :1007F00092E06C2F0E940D0A8AEF92E00E94500A4C 129 | :1008000080916802909169020E9462128AEF92E0E0 130 | :100810006F2D4E2D0E94610A0E2D10E08AEF92E09E 131 | :100820000E9495090817190791F4F0924702C093A6 132 | :100830004802C9E4D2E00C0F1D1F05C08AEF92E008 133 | :100840000E949E098993C017D107C1F712C08AEF91 134 | :1008500092E00E949509801791072CF484E793E0B9 135 | :1008600065E271E004C084E793E06DE471E00E940A 136 | :10087000E00E82E0E80E84E793E067E74E2D27E480 137 | :1008800032E00E94DC0DDF91CF911F910F91FF901C 138 | :10089000EF900895AF92BF92CF92DF92EF92FF92C6 139 | :1008A0000F931F93CF93DF930E94AE0304C084E79E 140 | :1008B00093E00E942C0F84E793E00E94830D892B24 141 | :1008C000B1F70E94FB116093270270932802809376 142 | :1008D000290290932A02A0902B02B0902C02C09083 143 | :1008E0002D02D0902E022091B6013091B7017901EE 144 | :1008F0000027F7FC0095102F6A197B098C099D09C8 145 | :10090000E616F7060807190708F04BC0EA0CFB1CAF 146 | :100910000C1D1D1DE0922B02F0922C0200932D0263 147 | :1009200010932E02C8EED1E012EF1630C0F4888189 148 | :100930008230A9F48091E0019091E101012E02C082 149 | :10094000959587950A94E2F780FF09C0812F0E9450 150 | :10095000A712AC0184E793E0612F0E948F0D1F5F07 151 | :100960002196163011F78091B80187FD1AC010E06A 152 | :100970000EC0F901EE0FFF1FE20FF31FE15DFD4F07 153 | :100980006181808170E042810E94E2031F5F212F1C 154 | :1009900030E08091B801992787FD909582179307E1 155 | :1009A00044F7DF91CF911F910F91FF90EF90DF906F 156 | :1009B000CF90BF90AF900895BF92CF92DF92EF9209 157 | :1009C000FF920F931F93CF93DF93162FEA018F3679 158 | :1009D00009F44FC1803750F48B3609F46AC18D3663 159 | :1009E00009F4D3C1893609F048C228C2863769F0B4 160 | :1009F000873720F4803709F040C2E4C0883709F413 161 | :100A0000C7C08A3709F039C219C1898185FF05C07D 162 | :100A100084E793E064E771E054C0688188718830AE 163 | :100A200059F1893018F4882341F027C2803109F444 164 | :100A300040C0883109F021C264C08AEF92E00E9470 165 | :100A40008B0902E00EC0FE01E00FF11D6181679588 166 | :100A5000662767958081680F8AEF92E00E940D0AF1 167 | :100A60000E5F011780F38AEF92E00E94500A86E43D 168 | :100A700090E00E94621201C29B818A81163071F45B 169 | :100A8000979599279795980F4D81479544274795B6 170 | :100A90008C81480F862F692F70E008C097959927A1 171 | :100AA0009795980F862F6FEF7FEF492F0E94E203F3 172 | :100AB000E4C18091B80187303CF084E793E060EABC 173 | :100AC00071E00E94E00ED9C18F5F8093B801992731 174 | :100AD00087FD9095FC01EE0FFF1FE80FF91FE15D08 175 | :100AE000FD4F60838B818795882787959A81890F31 176 | :100AF00081838D818795882787959C81890F828343 177 | :100B0000BCC15091B801151634F420E0C52FDD2783 178 | :100B1000C7FDD09511C08FEF8093B801AEC1FC0125 179 | :100B2000EE0FFF1FE80FF91FE15DFD4F60836623A5 180 | :100B300011F0422F24C02F5F822F90E0C817D907F1 181 | :100B400074F740E01CC04830C8F4C9010196D901CF 182 | :100B5000AA0FBB1FA20FB31FA15DBD4FFC01EE0F7B 183 | :100B6000FF1FE80FF91FE15DFD4F80818C938081AD 184 | :100B700011968C931197828112968C934F5F242F3C 185 | :100B800030E0C217D307FCF651505093B80175C13D 186 | :100B90008981682F70E07695762F6627779567951F 187 | :100BA0008881680F711D6115710521F070936902CC 188 | :100BB0006093680280916702882309F05EC10E94F9 189 | :100BC00075035BC1653008F458C1F880C980EA80BC 190 | :100BD000BB80DC808F2D82508C3008F04EC10F2DF1 191 | :100BE00010E0C8010297EC01CC0FDD1FC80FD91F20 192 | :100BF000C659DD4FCE010E94CD07882319F0CE01E2 193 | :100C00000E9461074E2D50E05695542F442757956A 194 | :100C100047954C0D511D2D2D30E03695322F222752 195 | :100C2000379527952B0D311DCE01B8010E9447083D 196 | :100C30008F2D64E070E00E94BE011FC1623008F495 197 | :100C40001CC1898190E09695982F88279795879564 198 | :100C50002881820F911D9093B7018093B6010A9766 199 | :100C60000CF00BC18AE090E09093B7018093B6013D 200 | :100C700004C1623008F401C18981682F70E012302C 201 | :100C8000A1F08A8190E09695982F8827979587956F 202 | :100C9000682B792B133049F02B81922F9295990F65 203 | :100CA000990F907C80E0682B792B88810E948301CA 204 | :100CB000E4C080E494E060EF0E943E1580E494E09C 205 | :100CC0006CE60E943E1500E01EEF16C01231A0F443 206 | :100CD00080E494E060E00E943E1580E494E061E0EE 207 | :100CE0000E943E1580E494E061E00E943E1580E49D 208 | :100CF00094E061E00E943E15802F8E50863050F4C3 209 | :100D000080E494E062E00E943E1580E494E06AE0B2 210 | :100D10000E943E15033051F0053041F0063031F0AD 211 | :100D2000093021F00A3011F00B3051F480E494E0E6 212 | :100D300063E00E943E1580E494E068E00E943E1566 213 | :100D40001C3050F480E494E064E00E943E1580E49E 214 | :100D500094E06EE00E943E15802F8251823050F464 215 | :100D600080E494E066E00E943E1580E494E061E057 216 | :100D70000E943E1580E494E06FE70E943E150F5FED 217 | :100D80001F5F043109F0A2CF73C0662309F475C058 218 | :100D9000088180E494E060EF0E943E1580E494E0D6 219 | :100DA0006EE60E943E1580E494E0602F0E943E159E 220 | :100DB000043108F05DC0C02FD0E0FE01E851FE4FC5 221 | :100DC00080E494E060810E943E158E01000F111FA7 222 | :100DD00001501E4FF801608170E06F77707080E401 223 | :100DE00094E00E943E15F80160817181CB0180780A 224 | :100DF000892B59F0660F672F661F770B70E06F77AE 225 | :100E0000707080E494E00E943E15CC0FDD1FC1504D 226 | :100E1000DE4F28813981C9018070907C892B41F196 227 | :100E2000330F220B330F322F221F622F70E06F77A8 228 | :100E3000707080E494E00E943E151AC080E494E053 229 | :100E400060EF0E943E1580E494E06AE60E943E1541 230 | :100E5000C2EFDFEFC63018F06FE770E001C0BE01EF 231 | :100E600080E494E00E943E152196C630D10591F7AA 232 | :100E700080E494E067EF0E943E15DF91CF911F91CF 233 | :100E80000F91FF90EF90DF90CF90BF900895FC01FD 234 | :100E900080918E028C3090F480838F5F80938E02DD 235 | :100EA000815090E0FC01EE0FFF1FE80FF91FE157A2 236 | :100EB000FD4F88EB9BE09283818308958FEF8083C1 237 | :100EC0000895DC018C9190E0FC01EE0FFF1FE80F0C 238 | :100ED000F91FE157FD4F80818F7B80838C916CE0FF 239 | :100EE0000E94781690E0AC01440F551F480F591F1F 240 | :100EF000440F551F440F551F20E030E0C901840FF7 241 | :100F0000951FFC01EE0FFF1FE80FF91FE157FD4F82 242 | :100F1000808186FD05C02F5F3F4F2C30310571F772 243 | :100F20000895FC0120812C30B8F58181992787FD37 244 | :100F3000909548E850E0481B590B440F551F440F4B 245 | :100F4000551F6417750784F08281992787FD909556 246 | :100F500048E552E0481B590B440F551F440F551FDD 247 | :100F6000641775070CF4AB0142505040CA01AA2720 248 | :100F700097FDA095BA2F880F991FAA1FBB1F4FB7C7 249 | :100F8000F89430E0F901EE0FFF1FE20FF31FE15775 250 | :100F9000FD4F928381834FBF0895FC01808190E0D3 251 | :100FA000FC01EE0FFF1FE80FF91FE157FD4F808195 252 | :100FB000829586958695817009F081E00895AF92BB 253 | :100FC000BF92CF92DF92EF92FF920F931F93CF9336 254 | :100FD000DF93EC019B0182E0603278070CF048C09F 255 | :100FE00077FF03C020E030E005C0653B710514F0D9 256 | :100FF00024EB30E000D000D0B901882777FD809540 257 | :10100000982F2981332727FD3095E8E8AE2EB12CA3 258 | :10101000A21AB30AAA0CBB1CAA0CBB1CCC24B7FC9A 259 | :10102000C094DC2CEA81FF27E7FDF09528E532E04B 260 | :101030002E1B3F0B220F331F220F331F442737FD78 261 | :101040004095542FEDB7FEB72183328343835483F9 262 | :1010500020E030E040E050E004EBE02EF12C012DE8 263 | :10106000112D0E9410169B010F900F900F900F9062 264 | :10107000CE01B9010E949107DF91CF911F910F918D 265 | :10108000FF90EF90DF90CF90BF90AF900895CF92F8 266 | :10109000DF92EF92FF921F93CF93DF93EC01162F15 267 | :1010A0007A01690188818C3008F064C0862F61E084 268 | :1010B0000E942913888190E0FC01EE0FFF1FE80FCA 269 | :1010C000F91FE157FD4F1F738081807C812B808346 270 | :1010D00080E292E08E199F0964E070E00E9484161D 271 | :1010E000698380E699E08C199D0964E070E00E94B4 272 | :1010F00084166A83A8818A2F6CE00E947816682F74 273 | :1011000070E0AB01440F551F460F571F440F551F8A 274 | :10111000440F551F20E030E0C901840F951FFC01EA 275 | :10112000EE0FFF1FE80FF91FE157FD4F808186FD8D 276 | :1011300015C02F5F3F4F2C30310571F724C010923E 277 | :10114000800082E0809381001092850010928400DC 278 | :10115000B19A80916F00826080936F008A2F90E037 279 | :10116000FC01EE0FFF1FE80FF91FE157FD4F8081D3 280 | :10117000806480838881DF91CF911F91FF90EF90F1 281 | :10118000DF90CF900895672BD1F2E8CF40E252E094 282 | :1011900020E639E00E94470808951F920F920FB68B 283 | :1011A0000F9211242F933F934F935F936F937F93ED 284 | :1011B0008F939F93AF93BF93EF93FF938091B3026D 285 | :1011C00087FF05C010928500109284002BC02091EB 286 | :1011D000B302332727FD309580918E0290E02817C7 287 | :1011E000390704F58091B302992787FD9095FC019A 288 | :1011F000EE0FFF1FE80FF91FE157FD4F808186FFBB 289 | :1012000011C08091B302992787FD9095FC01EE0FE4 290 | :10121000FF1FE80FF91FE157FD4F80818F7360E0DA 291 | :101220000E9468138091B3028F5F8093B302209174 292 | :10123000B302332727FD309580918E0290E0281766 293 | :1012400039070CF04EC08091B3028C300CF049C0CD 294 | :1012500020918400309185008091B302992787FD09 295 | :101260009095FC01EE0FFF1FE80FF91FE157FD4FAE 296 | :1012700081819281280F391F309389002093880043 297 | :101280008091B302992787FD9095FC01EE0FFF1F17 298 | :10129000E80FF91FE157FD4F808186FF2BC0809139 299 | :1012A000B302992787FD9095FC01EE0FFF1FE80F11 300 | :1012B000F91FE157FD4F80818F7361E00E94681331 301 | :1012C00019C080E49CE905C080918400909185005C 302 | :1012D000049690938900809388008FEF8093B302E7 303 | :1012E00009C08091840090918500049680549C49A7 304 | :1012F00040F3EACFFF91EF91BF91AF919F918F9112 305 | :101300007F916F915F914F913F912F910F900FBE01 306 | :101310000F901F90189581E08093F9026093D60298 307 | :101320001092F7021092F80208952091D50230E051 308 | :101330008091D402281B3109C90108954091D4023B 309 | :101340008091D502481718F02FEF3FEF0AC0E42F25 310 | :10135000F0E0EC54FD4F8081282F30E04F5F409348 311 | :10136000D402C9010895E091D4028091D502E81712 312 | :1013700018F0EFEFFFEF06C0F0E0EC54FD4F808176 313 | :10138000E82FF0E0CF01089508951092FD02109229 314 | :10139000FC0288EE93E0A0E0B0E08093FE02909320 315 | :1013A000FF02A0930003B093010384EC91E09093BB 316 | :1013B000FB028093FA020895CF92DF92EF92FF92A0 317 | :1013C0000F931F93CF93DF937C016B018A01809170 318 | :1013D000F9028823A1F0C0E0D0E00DC0D701ED9163 319 | :1013E000FC91D601AC0FBD1F0190F081E02DC7012B 320 | :1013F0006C9109952196C017D10780F304C0CB01E9 321 | :10140000642F0E940E0BC801DF91CF911F910F91A5 322 | :10141000FF90EF90DF90CF900895DF93CF930F92DE 323 | :10142000CDB7DEB7FC0169838091F9028823C9F04A 324 | :101430008091F802803238F081E090E093838283DB 325 | :1014400020E030E015C08091F702E82FF0E0E9528B 326 | :10145000FD4F998190838F5F8093F7028093F8020C 327 | :1014600005C0CE01019661E00E940E0B21E030E044 328 | :10147000C9010F90CF91DF9108950F93062F8091AE 329 | :10148000D60267ED72E04091F80221E00E94B90AAD 330 | :101490001092F7021092F8021092F9020F9108953B 331 | :1014A00061E00E943D0A0895413208F040E2862F33 332 | :1014B00064EB72E00E94700A1092D4028093D5020D 333 | :1014C000089521E00E94540A08951092D4021092C7 334 | :1014D000D5021092F7021092F8020E94BA0C0895F9 335 | :1014E000382F413210F040E042C08091060388233B 336 | :1014F000E1F791E090930603209308038FEF809328 337 | :10150000730310922E03415040932F034F5F90932B 338 | :10151000070380910703330F832B80930703809188 339 | :101520000903813041F410920903809107038093ED 340 | :10153000BB0085EC01C085EE8093BC008091060362 341 | :101540008130E1F380912E03841710F440912E0333 342 | :1015500020E030E00AC0FB01E20FF31FD901A25FD7 343 | :10156000BC4F8C9180832F5F3F4F2417A0F3842FB3 344 | :1015700008950F931F93582F122F413210F081E0DE 345 | :101580004AC0809106038823E1F782E08093060336 346 | :10159000009308038FEF8093730310922E03409300 347 | :1015A0002F03AEE0B3E0FB0102C081918D938E2F3B 348 | :1015B000861B8417D0F31092070380910703550F01 349 | :1015C000852B8093070380910903813041F41092A9 350 | :1015D0000903809107038093BB0085EC01C085EE71 351 | :1015E0008093BC00112321F0809106038230E1F347 352 | :1015F000809173038F3F11F480E00DC080917303DD 353 | :10160000803211F482E007C080917303803311F0BF 354 | :1016100084E001C083E01F910F910895482F61324B 355 | :1016200010F081E0089580910603843011F082E08B 356 | :10163000089560935103A0E3B3E0842F9C01F90166 357 | :1016400002C081918D938E2F841B8617D0F380E08A 358 | :1016500008951F920F920FB60F9211242F933F936C 359 | :101660004F935F936F937F938F939F93AF93BF93AA 360 | :10167000EF93FF938091B90090E0887F907080365F 361 | :10168000910509F4F2C081369105CCF588329105B7 362 | :1016900009F47BC089329105B4F48031910509F4D5 363 | :1016A0006FC0813191053CF4009709F447C1089758 364 | :1016B00009F04FC165C08831910509F466C0809773 365 | :1016C00009F047C182C08034910509F4A4C0813477 366 | :1016D000910544F48033910509F482C0C89709F05C 367 | :1016E00038C189C08035910509F489C088359105D4 368 | :1016F00009F496C08834910509F02BC1AEC0883931 369 | :10170000910509F413C189399105ECF488379105E5 370 | :1017100009F4ABC0893791054CF48836910509F47A 371 | :10172000A4C08037910509F014C19FC08838910585 372 | :1017300009F4FCC08039910509F49DC080389105F9 373 | :1017400009F007C198C0803B910509F4C6C0813BF0 374 | :1017500091054CF4803A910509F49FC0883A9105AF 375 | :1017600009F0F7C0BAC0803C910509F4E3C0883C99 376 | :10177000910509F4DFC0883B910509F0EAC0C2C0B9 377 | :10178000809107038093BB00CFC090912E0380917E 378 | :101790002F03981768F490912E03E92FF0E0E25F91 379 | :1017A000FC4F80818093BB009F5F90932E03BCC051 380 | :1017B00080910803882309F44BC085ED8093BC0019 381 | :1017C0008091BC0084FDFCCFC2C080E28093730393 382 | :1017D00085ED8093BC008091BC0084FDFCCFB7C038 383 | :1017E00080E38093730385ED8093BC008091BC00FF 384 | :1017F00084FDFCCFACC088E3809373039BC08091D1 385 | :101800002E039091BB00E82FF0E0E25FFC4F908345 386 | :101810008F5F80932E0390912E0380912F0382C0BF 387 | :1018200080912E039091BB00E82FF0E0E25FFC4F27 388 | :1018300090838F5F80932E0380910803882341F06B 389 | :1018400085ED8093BC008091BC0084FDFCCF7FC0FF 390 | :1018500081E08093090384EA6EC085ED8093BC002B 391 | :101860008091BC0084FDFCCF72C083E080930603AE 392 | :101870001092720359C080917203803208F056C0F2 393 | :10188000809172039091BB00E82FF0E0EE5AFC4F7C 394 | :1018900090838F5F8093720347C080917203803280 395 | :1018A00030F4E0917203F0E0EE5AFC4F108285EDC7 396 | :1018B0008093BC008091BC0084FDFCCF1092060395 397 | :1018C00060917203E0910C03F0910D0382E593E0C7 398 | :1018D00070E00995109272032DC084E08093060396 399 | :1018E0001092500310925103E0910A03F0910B0300 400 | :1018F000099580915103882329F481E08093510355 401 | :101900001092300390915003E92FF0E0E05DFC4F1E 402 | :1019100080818093BB009F5F909350039091500310 403 | :1019200080915103981710F485EC01C085E88093ED 404 | :10193000BC000FC085EC8093BC0009C010927303FB 405 | :1019400085ED8093BC008091BC0084FDFCCF10929B 406 | :101950000603FF91EF91BF91AF919F918F917F917E 407 | :101960006F915F914F913F912F910F900FBE0F900C 408 | :101970001F9018951092060381E08093080310923F 409 | :10198000090382E161E00E94681383E161E00E9443 410 | :101990006813E9EBF0E080818E7F808380818D7F0A 411 | :1019A000808388E48093B80085E48093BC00089528 412 | :1019B000EF92FF920F931F937C018B01DC01ED915D 413 | :1019C000FC91A081B1816F772D913C91CF01F901FC 414 | :1019D0000995D701ED91FC91A081B181000F012FF4 415 | :1019E000001F110B0F772D913C91CF01602FF90152 416 | :1019F00009951F910F91FF90EF900895FC010190C0 417 | :101A0000F081E02DA081B1812D913C91CF0160EF5B 418 | :101A1000F90109950895FC010190F081E02DA08164 419 | :101A2000B1812D913C91CF0167EFF901099508959E 420 | :101A30000F931F938C01DC01ED91FC91A081B1818A 421 | :101A40002D913C91CF0169EFF9010995D801ED91F4 422 | :101A5000FC91A081B1812D913C91CF0162E0F9010F 423 | :101A60000995D801ED91FC91A081B1812D913C9116 424 | :101A7000CF0163E0F90109951F910F9108951F931C 425 | :101A8000CF93DF93EC018A818823C9F1CE010E94B4 426 | :101A9000FE0CE881F981A081B1812D913C91CF01AB 427 | :101AA00069E7F9010995E881F981A081B1812B816C 428 | :101AB0003C814D915C91CF01F9016081FA0109955A 429 | :101AC000E881F981A081B1812B813C814D915C91AC 430 | :101AD000CF01F9016181FA01099512E00AC0EB8199 431 | :101AE000FC81E10FF11D6081CE0170E00E94D80CF5 432 | :101AF0001F5F8A81181798F3CE010E940B0DDF91AA 433 | :101B0000CF911F910895FC01A081B181ED91FC91CD 434 | :101B100011970480F581E02DCD0109950895EF928C 435 | :101B2000FF920F931F938C017A01DC01ED91FC91E0 436 | :101B3000A081B1816F70606E2D913C91CF01F90150 437 | :101B40000995C801B7010E94D80C1F910F91FF9011 438 | :101B5000EF900895EF92FF920F931F937C018A01FB 439 | :101B6000DC01ED91FC91A081B1816F7060692D91D4 440 | :101B70003C91CF01F9010995D701ED91FC91A0812C 441 | :101B8000B181602F6F772D913C91CF01F9010995BB 442 | :101B9000D701ED91FC91A081B181000F012F001FB1 443 | :101BA000110B2D913C91CF01602FF90109951F91E7 444 | :101BB0000F91FF90EF900895DF92EF92FF920F93B5 445 | :101BC0001F93CF93DF93EC01162FD42E022FF32E09 446 | :101BD0000E94FE0CE881F981A081B1812D913C9198 447 | :101BE000CF01612FF9010995202F3F2DC9017C01FB 448 | :101BF00010E008C0F70161917F01CE0170E00E9402 449 | :101C0000D80C1F5F1D15B0F3CE010E940B0DDF91A4 450 | :101C1000CF911F910F91FF90EF90DF900895FC01FD 451 | :101C2000603DA9F0613D28F4603959F0603CA1F4B1 452 | :101C30000BC0603E19F0643F79F40CC054A743A771 453 | :101C4000089556A745A7089550AB47A7089552ABEE 454 | :101C500041AB089554AB43AB0895FC016F3F11F4C1 455 | :101C600056AB45AB0895FC0152AF41AF0895FC015E 456 | :101C7000158216821782DC0180E018961C92189754 457 | :101C80008F5F11968032C9F710A612A611A605A87B 458 | :101C9000F6A9E02D309709F009950895FC017183AC 459 | :101CA000608312820E94370E089584E793E060E417 460 | :101CB00074E00E944E0E08954F925F926F927F9251 461 | :101CC0008F929F92AF92BF92CF92DF92EF92FF924C 462 | :101CD0000F93DF93CF9300D0CDB7DEB72B017A01FE 463 | :101CE0003A8329838DE061E00E94291300E0898115 464 | :101CF0009A813C01882477FC8094982C5701CC244D 465 | :101D0000B7FCC094DC2C11C0C401B3010E940912BD 466 | :101D10008DE061E00E946813C601B5010E940912BE 467 | :101D20008DE060E00E9468130F5F802F90E08415C3 468 | :101D3000950554F30F900F90CF91DF910F91FF9085 469 | :101D4000EF90DF90CF90BF90AF909F908F907F905B 470 | :101D50006F905F904F9008950F931F938C018DE0CB 471 | :101D600061E00E942913C80162E070E048E250E09F 472 | :101D700022ED30E00E945C0E6AEF70E080E090E0BF 473 | :101D80000E940912C80163E070E048E250E022EDD1 474 | :101D900030E00E945C0E6DE770E080E090E00E9411 475 | :101DA00009121F910F9108959A01FA0101900020E4 476 | :101DB000E9F73197E41BF50B4E2F0E94DC0D0895D7 477 | :101DC000AB0161E70E94D40E08951F93CF93DF9378 478 | :101DD000EC018885813731F0893789F5CE010E9481 479 | :101DE0003F0D36C08FA998AD892B91F189A59AA591 480 | :101DF000019762E070E00E948416162F862F90E013 481 | :101E00000E947E10AC01DC0121E030E011C0FE0137 482 | :101E1000E20FF11D90859C932F5FFE01E20FF11DF3 483 | :101E20008085879588278795890F8D932F5F3F5FE2 484 | :101E3000311768F3EFA9F8ADCA01099509C0E9ADFA 485 | :101E4000FAAD309729F069A561502996AE01099540 486 | :101E5000DF91CF911F910895CF93DF93EC01A8817B 487 | :101E6000B981ED91FC9111970680F781E02DCD01AC 488 | :101E70000995AC0188A5882391F0473F510529F4C5 489 | :101E800018A6CE010E94E50E93C089A59AA5FE0171 490 | :101E9000E80FF91F408701969AA789A789C08D810D 491 | :101EA000882309F446C0403851050CF042C08150E7 492 | :101EB0008D83FE01E80FF11D4087882309F078C06B 493 | :101EC0008E81882309F474C0803D49F1813D28F456 494 | :101ED000803959F0803C59F51FC0803E19F0843F8D 495 | :101EE00031F513C0EBA5FCA502C0EDA5FEA530970A 496 | :101EF000F1F0688570E07695762F6627779567957F 497 | :101F00008985680F711D8F8111C0EBA9FCA93097DD 498 | :101F100071F06885898509C0EFA5F8A902C0E9A913 499 | :101F2000FAA9309721F068858F8170E009951E82AB 500 | :101F30003FC0403F510514F09A0106C09A01207F2E 501 | :101F40003070842F8F708F83203E3105F1F0213E59 502 | :101F5000310554F4203C3105D1F0203D3105B9F074 503 | :101F60002039310529F511C0243F310571F0253F95 504 | :101F7000310524F4203F3105D9F40DC0293F310546 505 | :101F800099F02F3F3105A1F40BC082E001C081E040 506 | :101F90008D832E830DC081E088A71AA619A608C0DC 507 | :101FA000CE010E94370E04C084E793E00E94180D12 508 | :101FB000DF91CF910895AF92BF92CF92DF92EF92CF 509 | :101FC000FF920F931F93CF93DF938C01D62EC72ED2 510 | :101FD000B42EA22E862F972F61EB71E00E94A900EC 511 | :101FE000EC018D2D9C2D6FE270E00E949E002097E9 512 | :101FF00079F07C010894E11CF11CE114F10441F03A 513 | :102000009E012E5F822F8E19D80112968C930FC0DD 514 | :10201000AD2DBC2DFD0101900020E9F7ED19EF5F1A 515 | :10202000D8011296EC932D2D3C2DC9017C01F801AD 516 | :10203000828190E00E947E10FC01D80114969C934E 517 | :102040008E93139712968C911297E80FF11D1082C0 518 | :102050001396ED91FC911497B0821396ED91FC913B 519 | :102060001497A18213968D919C91149712964C917E 520 | :1020700050E0425050400296B7010E948F00DF911D 521 | :10208000CF911F910F91FF90EF90DF90CF90BF9075 522 | :10209000AF9008950F931F938C0180E494E00E9409 523 | :1020A0004A14D801ED91FC9180914204909143042F 524 | :1020B000938382838091440490914504A0914604C7 525 | :1020C000B091470484839583A683B78380914804A5 526 | :1020D00090914904A0914A04B0914B048087918764 527 | :1020E000A287B387C8010E94AC0EC8010E94180DD8 528 | :1020F000C8010E943F0D1F910F9108950F931F93E8 529 | :10210000CF93DF93BC018230910510F462E070E060 530 | :10211000E0916404F0916504A0E0B0E040E050E09C 531 | :1021200024C08081918186179707D0F08617970782 532 | :1021300071F482819381109729F013969C938E936A 533 | :1021400012972CC0909365048093640427C04115B6 534 | :10215000510519F08417950718F4EF018D01AC01B2 535 | :10216000DF01828193819C01F9013097D1F64115FD 536 | :102170005105F9F0CA01861B970B8430910580F454 537 | :102180008A819B810115110521F0F80193838283D7 538 | :1021900004C09093650480936404FE01329645C0A8 539 | :1021A000FE01E80FF91F6193719302979983888369 540 | :1021B0003CC08091620490916304892B41F480912A 541 | :1021C000BB019091BC0190936304809362044091A1 542 | :1021D000BD015091BE014115510541F44DB75EB7A7 543 | :1021E0008091B9019091BA01481B590B209162046A 544 | :1021F0003091630424173507B0F4CA01821B930B96 545 | :102200008617970780F0AB014E5F5F4F84179507E5 546 | :1022100050F0420F531F5093630440936204F9013E 547 | :102220006193719302C0E0E0F0E0CF01DF91CF91C4 548 | :102230001F910F910895CF93DF939C01009709F4AC 549 | :102240008FC0EC0122971B821A8260916404709106 550 | :1022500065046115710581F488819981820F931F4E 551 | :1022600020916204309163042817390739F5D0931F 552 | :102270006304C093620474C0DB0140E050E0AC171B 553 | :10228000BD0708F1BB83AA83FE0121913191E20FC2 554 | :10229000F31FAE17BF0779F48D919C911197280F0A 555 | :1022A000391F2E5F3F4F3983288312968D919C9161 556 | :1022B00013979B838A834115510571F4D09365046C 557 | :1022C000C09364044DC012968D919C911397AD01FB 558 | :1022D000009711F0DC01D3CFDA011396DC93CE9393 559 | :1022E0001297FA0121913191E20FF31FCE17DF0708 560 | :1022F00069F488819981280F391F2E5F3F4FFA01B9 561 | :10230000318320838A819B8193838283E0E0F0E0A4 562 | :10231000DB0112968D919C911397009719F0BC01E7 563 | :10232000FD01F6CFAB014E5F5F4FDB018D919C91BC 564 | :10233000840F951F20916204309163042817390798 565 | :1023400079F4309729F4109265041092640402C065 566 | :1023500013821282425050405093630440936204AF 567 | :10236000DF91CF9108951F920F920FB60F92112413 568 | :102370002F933F938F939F93AF93BF938091B3031A 569 | :102380009091B403A091B503B091B6033091B70317 570 | :102390000196A11DB11D232F2D5F2D3720F02D5744 571 | :1023A0000196A11DB11D2093B7038093B3039093B1 572 | :1023B000B403A093B503B093B6038091AF0390919B 573 | :1023C000B003A091B103B091B2030196A11DB11D5C 574 | :1023D0008093AF039093B003A093B103B093B20383 575 | :1023E000BF91AF919F918F913F912F910F900FBE11 576 | :1023F0000F901F9018958FB7F8942091B3033091E8 577 | :10240000B4034091B5035091B6038FBFB901CA011F 578 | :1024100008959B01AC017FB7F8948091AF03909130 579 | :10242000B003A091B103B091B20366B5A89B05C0FB 580 | :102430006F3F19F00196A11DB11D7FBFBA2FA92FC3 581 | :10244000982F8827860F911DA11DB11D62E0880F6E 582 | :10245000991FAA1FBB1F6A95D1F7BC012DC0FFB7FA 583 | :10246000F8948091AF039091B003A091B103B09123 584 | :10247000B203E6B5A89B05C0EF3F19F00196A11D78 585 | :10248000B11DFFBFBA2FA92F982F88278E0F911D3E 586 | :10249000A11DB11DE2E0880F991FAA1FBB1FEA957D 587 | :1024A000D1F7861B970B885E9340C8F221503040CD 588 | :1024B0004040504068517C4F211531054105510580 589 | :1024C00071F60895019739F0880F991F880F991FA9 590 | :1024D00002970197F1F70895789484B5826084BDDE 591 | :1024E00084B5816084BD85B5826085BD85B5816018 592 | :1024F00085BDEEE6F0E0808181608083E1E8F0E078 593 | :102500001082808182608083808181608083E0E8A6 594 | :10251000F0E0808181608083E1EBF0E08081846085 595 | :102520008083E0EBF0E0808181608083EAE7F0E087 596 | :1025300080818460808380818260808380818160EB 597 | :1025400080838081806880831092C1000895982FD5 598 | :102550008E3008F09E5097708091BF018295880F51 599 | :10256000880F807C892B80937C0080917A00806426 600 | :1025700080937A0080917A0086FDFCCF20917800CC 601 | :1025800040917900942F80E030E0282B392BC9014D 602 | :1025900008951F93CF93DF93182FEB0161E00E9402 603 | :1025A0002913209709F44AC0CF3FD10509F449C047 604 | :1025B000E12FF0E0E255FF4F84918330C1F0843089 605 | :1025C00028F4813051F08230B1F50CC0863019F119 606 | :1025D000873049F1843079F514C084B5806884BDB2 607 | :1025E000C7BD33C084B5806284BDC8BD2EC0809194 608 | :1025F0008000806880938000D0938900C093880019 609 | :1026000024C080918000806280938000D0938B00F2 610 | :10261000C0938A001AC08091B00080688093B00097 611 | :10262000C093B30012C08091B00080628093B0006C 612 | :10263000C093B4000AC0C038D1051CF4812F60E0FB 613 | :1026400002C0812F61E00E946813DF91CF911F913A 614 | :102650000895CF93DF93482F50E0CA0186569F4FCD 615 | :10266000FC0134914A575F4FFA018491882369F144 616 | :1026700090E0880F991FFC01E859FF4FA591B49194 617 | :10268000FC01EE58FF4FC591D491662351F42FB74A 618 | :10269000F8948C91932F909589238C93888189232A 619 | :1026A0000BC0623061F42FB7F8948C91932F909502 620 | :1026B00089238C938881832B88832FBF06C09FB783 621 | :1026C000F8948C91832B8C939FBFDF91CF910895C9 622 | :1026D000482F50E0CA0182559F4FFC012491CA0146 623 | :1026E00086569F4FFC0194914A575F4FFA013491EF 624 | :1026F000332309F440C0222351F1233071F02430F8 625 | :1027000028F42130A1F0223011F514C02630B1F0A8 626 | :102710002730C1F02430D9F404C0809180008F7735 627 | :1027200003C0809180008F7D8093800010C084B5AD 628 | :102730008F7702C084B58F7D84BD09C08091B000C1 629 | :102740008F7703C08091B0008F7D8093B000E32F1E 630 | :10275000F0E0EE0FFF1FEE58FF4FA591B4912FB799 631 | :10276000F894662321F48C919095892302C08C9172 632 | :10277000892B8C932FBF089508951F920F920FB647 633 | :102780000F9211242F933F934F938F939F93EF9327 634 | :10279000FF938091C00082FD1DC04091C600209132 635 | :1027A000F8033091F9032F5F3F4F2F733070809102 636 | :1027B000FA039091FB032817390771F0E091F803B1 637 | :1027C000F091F903E854FC4F40833093F9032093D0 638 | :1027D000F80302C08091C600FF91EF919F918F9105 639 | :1027E0004F913F912F910F900FBE0F901F90189512 640 | :1027F000E0914C04F0914D04E05CFF4F8191919188 641 | :1028000020813181805C9F4F821B930B60E470E0DC 642 | :102810000E948416892B11F00E94BC1308951F9208 643 | :102820000F920FB60F9211242F933F938F939F9384 644 | :10283000EF93FF9320913C0430913D0480913E043E 645 | :1028400090913F042817390731F48091C1008F7DA2 646 | :102850008093C10014C0E0913E04F0913F04E45025 647 | :10286000FC4F208180913E0490913F0401968F732C 648 | :10287000907090933F0480933E042093C600FF9194 649 | :10288000EF919F918F913F912F910F900FBE0F90DD 650 | :102890001F901895AF92BF92DF92EF92FF920F9325 651 | :1028A0001F93CF93DF93EC017A018B01DD2440303D 652 | :1028B00081EE580780E0680780E0780711F0DD249A 653 | :1028C000D39491E0A92EB12CEC89FD89DD2069F02B 654 | :1028D000C50108A002C0880F991F0A94E2F78083FF 655 | :1028E00060E079E08DE390E005C0108260E874E874 656 | :1028F0008EE190E0A80197010E9497162150304088 657 | :1029000040405040569547953795279580E12030B7 658 | :10291000380720F0DD2011F0DD24D6CFE889F989D1 659 | :102920003083EA89FB89208319A2EE89FF894081DF 660 | :1029300021E030E0C9010C8C02C0880F991F0A9475 661 | :10294000E2F7482B4083EE89FF894081C9010D8C55 662 | :1029500002C0880F991F0A94E2F7482B4083EE8942 663 | :10296000FF894081C9010E8C02C0880F991F0A940B 664 | :10297000E2F7482B4083EE89FF8980810F8C02C0EB 665 | :10298000220F331F0A94E2F7209528232083DF913A 666 | :10299000CF911F910F91FF90EF90DF90BF90AF907C 667 | :1029A0000895DC011C96ED91FC911D97E05CFF4FB2 668 | :1029B0008191919120813181805C9F4F821B930B8B 669 | :1029C00060E470E00E9484160895DC011C96ED918D 670 | :1029D000FC911D97E05CFF4F20813181E054F04075 671 | :1029E000DF01AE5BBF4F8D919C911197281739077E 672 | :1029F00019F42FEF3FEF07C08D919C91E80FF91F5D 673 | :102A00008081282F30E0C9010895DC011C96ED91EA 674 | :102A1000FC911D97E05CFF4F20813181E054F04034 675 | :102A2000DF01AE5BBF4F8D919C911197281739073D 676 | :102A300019F42FEF3FEF10C08D919C911197E80F83 677 | :102A4000F91F20818D919C91119701968F73907041 678 | :102A500011969C938E9330E0C9010895DC01919604 679 | :102A60008C919197882339F05496ED91FC9155976C 680 | :102A7000808186FFF9CF91961C920895CF93DF93C2 681 | :102A8000EC01EE85FF85E05CFF4F20813181E05451 682 | :102A9000F0402F5F3F4F2F733070DF01AE5BBF4FB1 683 | :102AA0008D919C91119728173907D1F3E05CFF4F66 684 | :102AB00080819181E054F040E80FF91F6083EE853A 685 | :102AC000FF85E05CFF4F31832083EE89FF89208101 686 | :102AD00081E090E00F8C02C0880F991F0A94E2F702 687 | :102AE000282B208381E089A3EC89FD898081806483 688 | :102AF000808381E090E0DF91CF91089510924304AC 689 | :102B00001092420488EE93E0A0E0B0E08093440489 690 | :102B100090934504A0934604B093470484ED91E05C 691 | :102B2000909341048093400488EB93E090934D048C 692 | :102B300080934C048CEF93E090934F0480934E0469 693 | :102B400085EC90E0909351048093500484EC90E0E5 694 | :102B5000909353048093520480EC90E0909355043A 695 | :102B60008093540481EC90E0909357048093560432 696 | :102B700082EC90E0909359048093580486EC90E0A6 697 | :102B800090935B0480935A0484E080935C0483E018 698 | :102B900080935D0487E080935E0485E080935F040A 699 | :102BA00081E08093600408950895CF93DF930E949D 700 | :102BB0006C120E94D4150E943403C8EFD3E10E9426 701 | :102BC0004A042097E1F30E94F813F9CFCF92DF92E5 702 | :102BD000EF92FF920F931F93CF93DF937C016B01D2 703 | :102BE0008A01C0E0D0E00FC0D6016D916D01D70120 704 | :102BF000ED91FC910190F081E02DC7010995C80F7E 705 | :102C0000D91F015010400115110571F7CE01DF9158 706 | :102C1000CF911F910F91FF90EF90DF90CF9008958B 707 | :102C20002F923F924F925F926F927F928F929F92DC 708 | :102C3000AF92BF92CF92DF92EF92FF920F931F93CA 709 | :102C4000DF93CF93CDB7DEB73B014C0119012A01C9 710 | :102C50006D897E898F89988D6A197B098C099D09F8 711 | :102C6000621A730A840A950AA40193010E945916F4 712 | :102C7000E218F30804091509A80197010E94B91682 713 | :102C80002A0D3B1D4C1D5D1DB901CA01CF91DF917D 714 | :102C90001F910F91FF90EF90DF90CF90BF90AF907A 715 | :102CA0009F908F907F906F905F904F903F902F906C 716 | :102CB0000895629FD001739FF001829FE00DF11D86 717 | :102CC000649FE00DF11D929FF00D839FF00D749FA6 718 | :102CD000F00D659FF00D9927729FB00DE11DF91F52 719 | :102CE000639FB00DE11DF91FBD01CF0111240895AF 720 | :102CF000991B79E004C0991F961708F0961B881F4E 721 | :102D00007A95C9F78095089597FB092E07260AD072 722 | :102D100077FD04D049D006D000201AF47095619553 723 | :102D20007F4F0895F6F7909581959F4F0895A1E202 724 | :102D30001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F35 725 | :102D4000FF1FA217B307E407F50720F0A21BB30B80 726 | :102D5000E40BF50B661F771F881F991F1A9469F7FC 727 | :102D600060957095809590959B01AC01BD01CF0158 728 | :102D7000089597FB092E05260ED057FD04D0D7DF06 729 | :102D80000AD0001C38F450954095309521953F4F5E 730 | :102D90004F4F5F4F0895F6F7909580957095619528 731 | :102DA0007F4F8F4F9F4F0895AA1BBB1B51E107C058 732 | :102DB000AA1FBB1FA617B70710F0A61BB70B881FCB 733 | :102DC000991F5A95A9F780959095BC01CD0108955A 734 | :102DD000EE0FFF1F0590F491E02D0994F894FFCFBA 735 | :102DE000556E6B6E6F776E2070696E206D6F6465C7 736 | :102DF000005374616E646172644669726D617461DE 737 | :102E00002E696E6F0049324320526561642045721D 738 | :102E1000726F723A20546F6F206D616E7920627903 739 | :102E20007465732072656365697665640049324331 740 | :102E30002052656164204572726F723A20546F6F40 741 | :102E400020666577206279746573207265636569B1 742 | :102E50007665640031302D62697420616464726546 743 | :102E60007373696E67206D6F6465206973206E6F80 744 | :102E7000742079657420737570706F727465640066 745 | :102E8000746F6F206D616E792071756572696573FD 746 | :102E9000002E637070001300FF80006604000001C4 747 | :102EA000000000000D0ADC0995099E09B309C40958 748 | :102EB000000000003E15E615D1140515E5142E1589 749 | :00000001FF 750 | -------------------------------------------------------------------------------- /arduino-1.0.6/uno/BareMinimum.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9434000C9451000C9451000C94510049 2 | :100010000C9451000C9451000C9451000C9451001C 3 | :100020000C9451000C9451000C9451000C9451000C 4 | :100030000C9451000C9451000C9451000C945100FC 5 | :100040000C9467000C9451000C9451000C945100D6 6 | :100050000C9451000C9451000C9451000C945100DC 7 | :100060000C9451000C94510011241FBECFEFD8E026 8 | :10007000DEBFCDBF11E0A0E0B1E0E8EDF1E002C0ED 9 | :1000800005900D92A030B107D9F711E0A0E0B1E0E2 10 | :1000900001C01D92A930B107E1F70E9456000C94EF 11 | :1000A000EA000C940000089508950895CF93DF931B 12 | :1000B0000E94AF000E9455000E945300C0E0D0E0B3 13 | :1000C0000E9454002097E1F30E940000F9CF1F9294 14 | :1000D0000F920FB60F9211242F933F938F939F93FC 15 | :1000E000AF93BF938091040190910501A091060107 16 | :1000F000B0910701309108010196A11DB11D232F78 17 | :100100002D5F2D3720F02D570196A11DB11D209395 18 | :1001100008018093040190930501A0930601B09318 19 | :1001200007018091000190910101A0910201B0911D 20 | :1001300003010196A11DB11D80930001909301015F 21 | :10014000A0930201B0930301BF91AF919F918F9152 22 | :100150003F912F910F900FBE0F901F90189578949C 23 | :1001600084B5826084BD84B5816084BD85B58260BC 24 | :1001700085BD85B5816085BDEEE6F0E0808181605A 25 | :100180008083E1E8F0E0108280818260808380815A 26 | :1001900081608083E0E8F0E0808181608083E1EB32 27 | :1001A000F0E0808184608083E0EBF0E0808181601A 28 | :1001B0008083EAE7F0E080818460808380818260D0 29 | :1001C00080838081816080838081806880831092B9 30 | :0801D000C1000895F894FFCF6F 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /arduino-1.0.6/uno/Blink.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9461000C947E000C947E000C947E0095 2 | :100010000C947E000C947E000C947E000C947E0068 3 | :100020000C947E000C947E000C947E000C947E0058 4 | :100030000C947E000C947E000C947E000C947E0048 5 | :100040000C949A000C947E000C947E000C947E001C 6 | :100050000C947E000C947E000C947E000C947E0028 7 | :100060000C947E000C947E00000000002400270009 8 | :100070002A0000000000250028002B0000000000DE 9 | :1000800023002600290004040404040404040202DA 10 | :100090000202020203030303030301020408102007 11 | :1000A0004080010204081020010204081020000012 12 | :1000B0000007000201000003040600000000000029 13 | :1000C000000011241FBECFEFD8E0DEBFCDBF11E08E 14 | :1000D000A0E0B1E0EAE3F4E002C005900D92A030A8 15 | :1000E000B107D9F711E0A0E0B1E001C01D92A9303D 16 | :1000F000B107E1F70E940A020C941B020C94000065 17 | :100100008DE061E00E94B50168EE73E080E090E070 18 | :100110000E94E2008DE060E00E94B50168EE73E0AD 19 | :1001200080E090E00E94E20008958DE061E00E948E 20 | :10013000760108951F920F920FB60F9211242F93FC 21 | :100140003F938F939F93AF93BF93809104019091BE 22 | :100150000501A0910601B0910701309108010196B7 23 | :10016000A11DB11D232F2D5F2D3720F02D57019696 24 | :10017000A11DB11D209308018093040190930501F6 25 | :10018000A0930601B09307018091000190910101B5 26 | :10019000A0910201B09103010196A11DB11D8093B0 27 | :1001A000000190930101A0930201B0930301BF915C 28 | :1001B000AF919F918F913F912F910F900FBE0F9014 29 | :1001C0001F9018959B01AC017FB7F89480910001B6 30 | :1001D00090910101A0910201B091030166B5A89B25 31 | :1001E00005C06F3F19F00196A11DB11D7FBFBA2F49 32 | :1001F000A92F982F8827860F911DA11DB11D62E0A0 33 | :10020000880F991FAA1FBB1F6A95D1F7BC012DC08B 34 | :10021000FFB7F8948091000190910101A091020133 35 | :10022000B0910301E6B5A89B05C0EF3F19F0019618 36 | :10023000A11DB11DFFBFBA2FA92F982F88278E0FA0 37 | :10024000911DA11DB11DE2E0880F991FAA1FBB1FC0 38 | :10025000EA95D1F7861B970B885E9340C8F2215030 39 | :1002600030404040504068517C4F211531054105D8 40 | :10027000510571F60895789484B5826084BD84B583 41 | :10028000816084BD85B5826085BD85B5816085BD91 42 | :10029000EEE6F0E0808181608083E1E8F0E01082AA 43 | :1002A000808182608083808181608083E0E8F0E0EB 44 | :1002B000808181608083E1EBF0E0808184608083D5 45 | :1002C000E0EBF0E0808181608083EAE7F0E080810C 46 | :1002D000846080838081826080838081816080836C 47 | :1002E0008081806880831092C1000895CF93DF934E 48 | :1002F000482F50E0CA0186569F4FFC0134914A575F 49 | :100300005F4FFA018491882369F190E0880F991F6B 50 | :10031000FC01E859FF4FA591B491FC01EE58FF4F45 51 | :10032000C591D491662351F42FB7F8948C91932FF3 52 | :10033000909589238C93888189230BC0623061F466 53 | :100340002FB7F8948C91932F909589238C93888163 54 | :10035000832B88832FBF06C09FB7F8948C91832B83 55 | :100360008C939FBFDF91CF910895482F50E0CA0131 56 | :1003700082559F4FFC012491CA0186569F4FFC0174 57 | :1003800094914A575F4FFA013491332309F440C0E6 58 | :10039000222351F1233071F0243028F42130A1F0D0 59 | :1003A000223011F514C02630B1F02730C1F02430CE 60 | :1003B000D9F404C0809180008F7703C080918000C1 61 | :1003C0008F7D8093800010C084B58F7702C084B584 62 | :1003D0008F7D84BD09C08091B0008F7703C080916C 63 | :1003E000B0008F7D8093B000E32FF0E0EE0FFF1F91 64 | :1003F000EE58FF4FA591B4912FB7F894662321F4DE 65 | :100400008C919095892302C08C91892B8C932FBF5E 66 | :1004100008950895CF93DF930E943B010E94090243 67 | :100420000E949500C0E0D0E00E9480002097E1F398 68 | :0A0430000E940000F9CFF894FFCFFE 69 | :00000001FF 70 | -------------------------------------------------------------------------------- /arduino-1.0.6/uno/StandardFirmata.cpp.hex: -------------------------------------------------------------------------------- 1 | :100000000C9465000C948D000C948D000C948D0064 2 | :100010000C948D000C948D000C948D000C948D002C 3 | :100020000C948D000C948D000C948D000C94CD08D4 4 | :100030000C948D000C948D000C948D000C948D000C 5 | :100040000C94B3110C948D000C94BD130C940F14EC 6 | :100050000C948D000C948D000C948D000C948D00EC 7 | :100060000C94290B0C948D00000000002400270044 8 | :100070002A0000000000250028002B0000000000DE 9 | :1000800023002600290004040404040404040202DA 10 | :100090000202020203030303030301020408102007 11 | :1000A0004080010204081020010204081020000012 12 | :1000B0000007000201000003040600000000000029 13 | :1000C00000007401C509550E7E1511241FBECFEF27 14 | :1000D000D8E0DEBFCDBF11E0A0E0B1E0E0EEFDE290 15 | :1000E00002C005900D92A03EB107D9F714E0A0EE32 16 | :1000F000B1E001C01D92A636B107E1F710E0CAECED 17 | :10010000D0E004C02297FE010E94EA16C23CD1074B 18 | :10011000C9F70E94D5150C94EE160C940000FB0153 19 | :10012000DC014150504048F001900D920020C9F789 20 | :1001300001C01D9241505040E0F70895FC0181E05C 21 | :1001400090E00190061609F4CF010020D1F7019745 22 | :100150000895FB0151915523A9F0BF01DC014D9198 23 | :1001600045174111E1F759F4CD010190002049F004 24 | :100170004D9140154111C9F3FB014111EFCF81E0D1 25 | :1001800090E0019708950F931F93CF93DF93B82FBB 26 | :10019000833008F075C090E00196A82FAA0FAA0F2F 27 | :1001A000AA0F0197A53108F0A4E1482F440F440F8E 28 | :1001B000440F71E050E0C62FD0E001E010E01EC017 29 | :1001C000842F82508231C0F4242F30E0F901E851AD 30 | :1001D000FE4F8081823080F4572BF901EE0FFF1F14 31 | :1001E000E150FE4F11821082872F90E08C239D23D7 32 | :1001F000892B11F011830083770F4F5F4A1700F3AB 33 | :10020000BB2361F4852F8C7FF8942BB1982F9095A8 34 | :1002100092238623982B9BB9789432C0B13009F58C 35 | :10022000F89495B1852F8F7380958923962F9F73AE 36 | :100230009523892B85B948B1252F30E0862F90E092 37 | :100240002823392386E0359527958A95E1F752953D 38 | :1002500056955695537050955423522B58B978940F 39 | :100260000FC0852F8F70F89428B1982F990F990F90 40 | :10027000909592238623880F880F982B98B97894AD 41 | :10028000DF91CF911F910F910895482F863018F577 42 | :100290002091E0013091E101672B81F481E090E051 43 | :1002A00002C0880F991F4A95E2F780959095282300 44 | :1002B00039233093E1012093E001089581E090E03B 45 | :1002C00002C0880F991F4A95E2F7282B392B3093EB 46 | :1002D000E1012093E0010895833028F4E82FF0E055 47 | :1002E000EE51FE4F60830895CF93DF93CAE6D2E0CC 48 | :1002F000CE010E944707239682E0CE38D807C1F787 49 | :10030000DF91CF9108950F931F93CF93DF938B01CC 50 | :10031000843178F5C82FD0E0FE01E851FE4FE0812E 51 | :10032000E33091F0E43029F582508C30E0F49E0106 52 | :1003300022503040C901880F991F820F931F8659A0 53 | :100340009D4F0E94DF070FC0833051F0853041F090 54 | :10035000863031F0893021F08A3011F08B3019F479 55 | :10036000B8010E94C912CC0FDD1FC150DE4F1983A6 56 | :100370000883DF91CF911F910F910895AF92BF92A3 57 | :10038000DF92EF92FF920F931F93DF93CF930F9221 58 | :10039000CDB7DEB7D82E7B01082F10E0F801E85169 59 | :1003A000FE4F8081863061F480916702882341F09E 60 | :1003B0006630710529F0109267028FEF8093B801C3 61 | :1003C0009D2D925099839C30B8F4E4E0EE16F10430 62 | :1003D00099F0C80102975C01AA0CBB1CA80EB91EBB 63 | :1003E0008AE692E0A80EB91EC5010E94CD078823B7 64 | :1003F00019F0C5010E9461074D2D4E504630B8F4EA 65 | :100400002091E0013091E10192E0E916F10409F058 66 | :10041000E0C081E090E0042E02C0880F991F0A948A 67 | :10042000E2F7282B392B3093E1012093E001E98199 68 | :10043000E23130F5ED2DE695E695E69598012770C9 69 | :100440003070E114F10471F4F0E0E450FE4F81E00B 70 | :1004500090E002C0880F991F2A95E2F72081282B8F 71 | :1004600020830EC0F0E0E450FE4F81E090E002C037 72 | :10047000880F991F2A95E2F7809520818223808337 73 | :10048000F801EE0FFF1FE150FE4F11821082F2E0E3 74 | :10049000EF16F104E1F083E0E816F1044CF4E11406 75 | :1004A000F10439F191E0E916F10409F08BC032C092 76 | :1004B000E4E0EE16F10409F45DC0F4E0EF16F10497 77 | :1004C000CCF186E0E816F10409F07CC070C046303B 78 | :1004D00008F08CC09981923140F48D2D60E00E942B 79 | :1004E00029138D2D60E00E94681308511E4F82E091 80 | :1004F00066C0F981F23108F079C08D2D60E00E946C 81 | :1005000029138D2D60E00E94681308511E4FF801D9 82 | :1005100010826CC0F981F23108F068C08D2D60E066 83 | :100520000E9468138D2D61E00E94291308511E4F0F 84 | :1005300081E045C0F3E0DF1681F085E0D81669F070 85 | :1005400096E0D91651F0E9E0DE1639F0FAE0DF1650 86 | :1005500021F08BE0D81609F049C08D2D61E00E9492 87 | :1005600029138D2D60E070E00E94C91208511E4FC2 88 | :1005700083E025C0F981FC30C8F5F801E851FE4F51 89 | :1005800084E08083C80102977C01EE0CFF1CE80E1A 90 | :10059000F91E8AE692E0E80EF91EC7010E94CD0717 91 | :1005A000882321F5C701B8010E94C6081FC09EEE2E 92 | :1005B000D90EE1E0ED15D0F008511E4F86E0F801AC 93 | :1005C000808314C084E793E060E071E00E94E00E55 94 | :1005D0000DC081E090E0042E02C0880F991F0A949C 95 | :1005E000E2F780959095282339231DCF0F90CF9166 96 | :1005F000DF911F910F91FF90EF90DF90BF90AF9030 97 | :1006000008951F9380916702882329F01092670252 98 | :100610008FEF8093B8011092E2011092FC011092CA 99 | :10062000E5011092E3011092FD011092E601109293 100 | :10063000E4011092FE011092E70110E0812F8E502C 101 | :10064000863020F4812F62E070E003C0812F61E0EA 102 | :1006500070E00E94BE011F5F143181F71092E1012A 103 | :100660001092E0011F9108950F931F9304E713E088 104 | :10067000C80161E171E042E023E00E94DB0FC801A4 105 | :1006800060EE43E851E00E940F0EC80160E943ECC0 106 | :1006900050E00E940F0EC80160EC45E451E00E945A 107 | :1006A0000F0EC80160ED4CE651E00E940F0EC8012C 108 | :1006B00064EF4EEB51E00E940F0EC80160EF4CED6D 109 | :1006C00054E00E94330EC8016FEF41E053E00E94F6 110 | :1006D0002D0EC80140E051EE60E070E00E944A102B 111 | :1006E0000E9401031F910F9108951F9310E0812F25 112 | :1006F0008251823028F4812F66E070E00E94BE01B2 113 | :100700001F5F1431A1F781E0809367028AEF92E0C6 114 | :100710000E94650A1F9108951F93CF93DF93282F9E 115 | :10072000162FC82FD0E0FE01E450FE4F8081182321 116 | :10073000442331F4FE01EB51FE4F8081811751F0CB 117 | :1007400084E793E0622F412F50E00E94AA0DCB5125 118 | :10075000DE4F1883DF91CF911F9108958091E201C0 119 | :10076000882349F069B18091FC0168236C7F80E0A7 120 | :1007700040E00E948C038091E301882379F083B1EB 121 | :1007800066B16295660F660F607C8F73682B8091EF 122 | :10079000FD01682381E040E00E948C038091E40128 123 | :1007A000882379F086B190E08C7390709595879549 124 | :1007B000959587956091FE01682382E040E00E9454 125 | :1007C0008C030895EF92FF920F931F93CF93DF93C3 126 | :1007D000F82EEB01E42E8FEF6F3F780719F4C0E09D 127 | :1007E000D0E014C08AEF92E06F2D0E948B098AEF4F 128 | :1007F00092E06C2F0E940D0A8AEF92E00E94500A4C 129 | :1008000080916802909169020E9462128AEF92E0E0 130 | :100810006F2D4E2D0E94610A0E2D10E08AEF92E09E 131 | :100820000E9495090817190791F4F0924702C093A6 132 | :100830004802C9E4D2E00C0F1D1F05C08AEF92E008 133 | :100840000E949E098993C017D107C1F712C08AEF91 134 | :1008500092E00E949509801791072CF484E793E0B9 135 | :1008600065E271E004C084E793E06DE471E00E940A 136 | :10087000E00E82E0E80E84E793E067E74E2D27E480 137 | :1008800032E00E94DC0DDF91CF911F910F91FF901C 138 | :10089000EF900895AF92BF92CF92DF92EF92FF92C6 139 | :1008A0000F931F93CF93DF930E94AE0304C084E79E 140 | :1008B00093E00E942C0F84E793E00E94830D892B24 141 | :1008C000B1F70E94FB116093270270932802809376 142 | :1008D000290290932A02A0902B02B0902C02C09083 143 | :1008E0002D02D0902E022091B6013091B7017901EE 144 | :1008F0000027F7FC0095102F6A197B098C099D09C8 145 | :10090000E616F7060807190708F04BC0EA0CFB1CAF 146 | :100910000C1D1D1DE0922B02F0922C0200932D0263 147 | :1009200010932E02C8EED1E012EF1630C0F4888189 148 | :100930008230A9F48091E0019091E101012E02C082 149 | :10094000959587950A94E2F780FF09C0812F0E9450 150 | :10095000A712AC0184E793E0612F0E948F0D1F5F07 151 | :100960002196163011F78091B80187FD1AC010E06A 152 | :100970000EC0F901EE0FFF1FE20FF31FE15DFD4F07 153 | :100980006181808170E042810E94E2031F5F212F1C 154 | :1009900030E08091B801992787FD909582179307E1 155 | :1009A00044F7DF91CF911F910F91FF90EF90DF906F 156 | :1009B000CF90BF90AF900895BF92CF92DF92EF9209 157 | :1009C000FF920F931F93CF93DF93162FEA018F3679 158 | :1009D00009F44FC1803750F48B3609F46AC18D3663 159 | :1009E00009F4D3C1893609F048C228C2863769F0B4 160 | :1009F000873720F4803709F040C2E4C0883709F413 161 | :100A0000C7C08A3709F039C219C1898185FF05C07D 162 | :100A100084E793E064E771E054C0688188718830AE 163 | :100A200059F1893018F4882341F027C2803109F444 164 | :100A300040C0883109F021C264C08AEF92E00E9470 165 | :100A40008B0902E00EC0FE01E00FF11D6181679588 166 | :100A5000662767958081680F8AEF92E00E940D0AF1 167 | :100A60000E5F011780F38AEF92E00E94500A86E43D 168 | :100A700090E00E94621201C29B818A81163071F45B 169 | :100A8000979599279795980F4D81479544274795B6 170 | :100A90008C81480F862F692F70E008C097959927A1 171 | :100AA0009795980F862F6FEF7FEF492F0E94E203F3 172 | :100AB000E4C18091B80187303CF084E793E060EABC 173 | :100AC00071E00E94E00ED9C18F5F8093B801992731 174 | :100AD00087FD9095FC01EE0FFF1FE80FF91FE15D08 175 | :100AE000FD4F60838B818795882787959A81890F31 176 | :100AF00081838D818795882787959C81890F828343 177 | :100B0000BCC15091B801151634F420E0C52FDD2783 178 | :100B1000C7FDD09511C08FEF8093B801AEC1FC0125 179 | :100B2000EE0FFF1FE80FF91FE15DFD4F60836623A5 180 | :100B300011F0422F24C02F5F822F90E0C817D907F1 181 | :100B400074F740E01CC04830C8F4C9010196D901CF 182 | :100B5000AA0FBB1FA20FB31FA15DBD4FFC01EE0F7B 183 | :100B6000FF1FE80FF91FE15DFD4F80818C938081AD 184 | :100B700011968C931197828112968C934F5F242F3C 185 | :100B800030E0C217D307FCF651505093B80175C13D 186 | :100B90008981682F70E07695762F6627779567951F 187 | :100BA0008881680F711D6115710521F070936902CC 188 | :100BB0006093680280916702882309F05EC10E94F9 189 | :100BC00075035BC1653008F458C1F880C980EA80BC 190 | :100BD000BB80DC808F2D82508C3008F04EC10F2DF1 191 | :100BE00010E0C8010297EC01CC0FDD1FC80FD91F20 192 | :100BF000C659DD4FCE010E94CD07882319F0CE01E2 193 | :100C00000E9461074E2D50E05695542F442757956A 194 | :100C100047954C0D511D2D2D30E03695322F222752 195 | :100C2000379527952B0D311DCE01B8010E9447083D 196 | :100C30008F2D64E070E00E94BE011FC1623008F495 197 | :100C40001CC1898190E09695982F88279795879564 198 | :100C50002881820F911D9093B7018093B6010A9766 199 | :100C60000CF00BC18AE090E09093B7018093B6013D 200 | :100C700004C1623008F401C18981682F70E012302C 201 | :100C8000A1F08A8190E09695982F8827979587956F 202 | :100C9000682B792B133049F02B81922F9295990F65 203 | :100CA000990F907C80E0682B792B88810E948301CA 204 | :100CB000E4C080E494E060EF0E943E1580E494E09C 205 | :100CC0006CE60E943E1500E01EEF16C01231A0F443 206 | :100CD00080E494E060E00E943E1580E494E061E0EE 207 | :100CE0000E943E1580E494E061E00E943E1580E49D 208 | :100CF00094E061E00E943E15802F8E50863050F4C3 209 | :100D000080E494E062E00E943E1580E494E06AE0B2 210 | :100D10000E943E15033051F0053041F0063031F0AD 211 | :100D2000093021F00A3011F00B3051F480E494E0E6 212 | :100D300063E00E943E1580E494E068E00E943E1566 213 | :100D40001C3050F480E494E064E00E943E1580E49E 214 | :100D500094E06EE00E943E15802F8251823050F464 215 | :100D600080E494E066E00E943E1580E494E061E057 216 | :100D70000E943E1580E494E06FE70E943E150F5FED 217 | :100D80001F5F043109F0A2CF73C0662309F475C058 218 | :100D9000088180E494E060EF0E943E1580E494E0D6 219 | :100DA0006EE60E943E1580E494E0602F0E943E159E 220 | :100DB000043108F05DC0C02FD0E0FE01E851FE4FC5 221 | :100DC00080E494E060810E943E158E01000F111FA7 222 | :100DD00001501E4FF801608170E06F77707080E401 223 | :100DE00094E00E943E15F80160817181CB0180780A 224 | :100DF000892B59F0660F672F661F770B70E06F77AE 225 | :100E0000707080E494E00E943E15CC0FDD1FC1504D 226 | :100E1000DE4F28813981C9018070907C892B41F196 227 | :100E2000330F220B330F322F221F622F70E06F77A8 228 | :100E3000707080E494E00E943E151AC080E494E053 229 | :100E400060EF0E943E1580E494E06AE60E943E1541 230 | :100E5000C2EFDFEFC63018F06FE770E001C0BE01EF 231 | :100E600080E494E00E943E152196C630D10591F7AA 232 | :100E700080E494E067EF0E943E15DF91CF911F91CF 233 | :100E80000F91FF90EF90DF90CF90BF900895FC01FD 234 | :100E900080918E028C3090F480838F5F80938E02DD 235 | :100EA000815090E0FC01EE0FFF1FE80FF91FE157A2 236 | :100EB000FD4F88EB9BE09283818308958FEF8083C1 237 | :100EC0000895DC018C9190E0FC01EE0FFF1FE80F0C 238 | :100ED000F91FE157FD4F80818F7B80838C916CE0FF 239 | :100EE0000E94781690E0AC01440F551F480F591F1F 240 | :100EF000440F551F440F551F20E030E0C901840FF7 241 | :100F0000951FFC01EE0FFF1FE80FF91FE157FD4F82 242 | :100F1000808186FD05C02F5F3F4F2C30310571F772 243 | :100F20000895FC0120812C30B8F58181992787FD37 244 | :100F3000909548E850E0481B590B440F551F440F4B 245 | :100F4000551F6417750784F08281992787FD909556 246 | :100F500048E552E0481B590B440F551F440F551FDD 247 | :100F6000641775070CF4AB0142505040CA01AA2720 248 | :100F700097FDA095BA2F880F991FAA1FBB1F4FB7C7 249 | :100F8000F89430E0F901EE0FFF1FE20FF31FE15775 250 | :100F9000FD4F928381834FBF0895FC01808190E0D3 251 | :100FA000FC01EE0FFF1FE80FF91FE157FD4F808195 252 | :100FB000829586958695817009F081E00895AF92BB 253 | :100FC000BF92CF92DF92EF92FF920F931F93CF9336 254 | :100FD000DF93EC019B0182E0603278070CF048C09F 255 | :100FE00077FF03C020E030E005C0653B710514F0D9 256 | :100FF00024EB30E000D000D0B901882777FD809540 257 | :10100000982F2981332727FD3095E8E8AE2EB12CA3 258 | :10101000A21AB30AAA0CBB1CAA0CBB1CCC24B7FC9A 259 | :10102000C094DC2CEA81FF27E7FDF09528E532E04B 260 | :101030002E1B3F0B220F331F220F331F442737FD78 261 | :101040004095542FEDB7FEB72183328343835483F9 262 | :1010500020E030E040E050E004EBE02EF12C012DE8 263 | :10106000112D0E9410169B010F900F900F900F9062 264 | :10107000CE01B9010E949107DF91CF911F910F918D 265 | :10108000FF90EF90DF90CF90BF90AF900895CF92F8 266 | :10109000DF92EF92FF921F93CF93DF93EC01162F15 267 | :1010A0007A01690188818C3008F064C0862F61E084 268 | :1010B0000E942913888190E0FC01EE0FFF1FE80FCA 269 | :1010C000F91FE157FD4F1F738081807C812B808346 270 | :1010D00080E292E08E199F0964E070E00E9484161D 271 | :1010E000698380E699E08C199D0964E070E00E94B4 272 | :1010F00084166A83A8818A2F6CE00E947816682F74 273 | :1011000070E0AB01440F551F460F571F440F551F8A 274 | :10111000440F551F20E030E0C901840F951FFC01EA 275 | :10112000EE0FFF1FE80FF91FE157FD4F808186FD8D 276 | :1011300015C02F5F3F4F2C30310571F724C010923E 277 | :10114000800082E0809381001092850010928400DC 278 | :10115000B19A80916F00826080936F008A2F90E037 279 | :10116000FC01EE0FFF1FE80FF91FE157FD4F8081D3 280 | :10117000806480838881DF91CF911F91FF90EF90F1 281 | :10118000DF90CF900895672BD1F2E8CF40E252E094 282 | :1011900020E639E00E94470808951F920F920FB68B 283 | :1011A0000F9211242F933F934F935F936F937F93ED 284 | :1011B0008F939F93AF93BF93EF93FF938091B3026D 285 | :1011C00087FF05C010928500109284002BC02091EB 286 | :1011D000B302332727FD309580918E0290E02817C7 287 | :1011E000390704F58091B302992787FD9095FC019A 288 | :1011F000EE0FFF1FE80FF91FE157FD4F808186FFBB 289 | :1012000011C08091B302992787FD9095FC01EE0FE4 290 | :10121000FF1FE80FF91FE157FD4F80818F7360E0DA 291 | :101220000E9468138091B3028F5F8093B302209174 292 | :10123000B302332727FD309580918E0290E0281766 293 | :1012400039070CF04EC08091B3028C300CF049C0CD 294 | :1012500020918400309185008091B302992787FD09 295 | :101260009095FC01EE0FFF1FE80FF91FE157FD4FAE 296 | :1012700081819281280F391F309389002093880043 297 | :101280008091B302992787FD9095FC01EE0FFF1F17 298 | :10129000E80FF91FE157FD4F808186FF2BC0809139 299 | :1012A000B302992787FD9095FC01EE0FFF1FE80F11 300 | :1012B000F91FE157FD4F80818F7361E00E94681331 301 | :1012C00019C080E49CE905C080918400909185005C 302 | :1012D000049690938900809388008FEF8093B302E7 303 | :1012E00009C08091840090918500049680549C49A7 304 | :1012F00040F3EACFFF91EF91BF91AF919F918F9112 305 | :101300007F916F915F914F913F912F910F900FBE01 306 | :101310000F901F90189581E08093F9026093D60298 307 | :101320001092F7021092F80208952091D50230E051 308 | :101330008091D402281B3109C90108954091D4023B 309 | :101340008091D502481718F02FEF3FEF0AC0E42F25 310 | :10135000F0E0EC54FD4F8081282F30E04F5F409348 311 | :10136000D402C9010895E091D4028091D502E81712 312 | :1013700018F0EFEFFFEF06C0F0E0EC54FD4F808176 313 | :10138000E82FF0E0CF01089508951092FD02109229 314 | :10139000FC0288EE93E0A0E0B0E08093FE02909320 315 | :1013A000FF02A0930003B093010384EC91E09093BB 316 | :1013B000FB028093FA020895CF92DF92EF92FF92A0 317 | :1013C0000F931F93CF93DF937C016B018A01809170 318 | :1013D000F9028823A1F0C0E0D0E00DC0D701ED9163 319 | :1013E000FC91D601AC0FBD1F0190F081E02DC7012B 320 | :1013F0006C9109952196C017D10780F304C0CB01E9 321 | :10140000642F0E940E0BC801DF91CF911F910F91A5 322 | :10141000FF90EF90DF90CF900895DF93CF930F92DE 323 | :10142000CDB7DEB7FC0169838091F9028823C9F04A 324 | :101430008091F802803238F081E090E093838283DB 325 | :1014400020E030E015C08091F702E82FF0E0E9528B 326 | :10145000FD4F998190838F5F8093F7028093F8020C 327 | :1014600005C0CE01019661E00E940E0B21E030E044 328 | :10147000C9010F90CF91DF9108950F93062F8091AE 329 | :10148000D60267ED72E04091F80221E00E94B90AAD 330 | :101490001092F7021092F8021092F9020F9108953B 331 | :1014A00061E00E943D0A0895413208F040E2862F33 332 | :1014B00064EB72E00E94700A1092D4028093D5020D 333 | :1014C000089521E00E94540A08951092D4021092C7 334 | :1014D000D5021092F7021092F8020E94BA0C0895F9 335 | :1014E000382F413210F040E042C08091060388233B 336 | :1014F000E1F791E090930603209308038FEF809328 337 | :10150000730310922E03415040932F034F5F90932B 338 | :10151000070380910703330F832B80930703809188 339 | :101520000903813041F410920903809107038093ED 340 | :10153000BB0085EC01C085EE8093BC008091060362 341 | :101540008130E1F380912E03841710F440912E0333 342 | :1015500020E030E00AC0FB01E20FF31FD901A25FD7 343 | :10156000BC4F8C9180832F5F3F4F2417A0F3842FB3 344 | :1015700008950F931F93582F122F413210F081E0DE 345 | :101580004AC0809106038823E1F782E08093060336 346 | :10159000009308038FEF8093730310922E03409300 347 | :1015A0002F03AEE0B3E0FB0102C081918D938E2F3B 348 | :1015B000861B8417D0F31092070380910703550F01 349 | :1015C000852B8093070380910903813041F41092A9 350 | :1015D0000903809107038093BB0085EC01C085EE71 351 | :1015E0008093BC00112321F0809106038230E1F347 352 | :1015F000809173038F3F11F480E00DC080917303DD 353 | :10160000803211F482E007C080917303803311F0BF 354 | :1016100084E001C083E01F910F910895482F61324B 355 | :1016200010F081E0089580910603843011F082E08B 356 | :10163000089560935103A0E3B3E0842F9C01F90166 357 | :1016400002C081918D938E2F841B8617D0F380E08A 358 | :1016500008951F920F920FB60F9211242F933F936C 359 | :101660004F935F936F937F938F939F93AF93BF93AA 360 | :10167000EF93FF938091B90090E0887F907080365F 361 | :10168000910509F4F2C081369105CCF588329105B7 362 | :1016900009F47BC089329105B4F48031910509F4D5 363 | :1016A0006FC0813191053CF4009709F447C1089758 364 | :1016B00009F04FC165C08831910509F466C0809773 365 | :1016C00009F047C182C08034910509F4A4C0813477 366 | :1016D000910544F48033910509F482C0C89709F05C 367 | :1016E00038C189C08035910509F489C088359105D4 368 | :1016F00009F496C08834910509F02BC1AEC0883931 369 | :10170000910509F413C189399105ECF488379105E5 370 | :1017100009F4ABC0893791054CF48836910509F47A 371 | :10172000A4C08037910509F014C19FC08838910585 372 | :1017300009F4FCC08039910509F49DC080389105F9 373 | :1017400009F007C198C0803B910509F4C6C0813BF0 374 | :1017500091054CF4803A910509F49FC0883A9105AF 375 | :1017600009F0F7C0BAC0803C910509F4E3C0883C99 376 | :10177000910509F4DFC0883B910509F0EAC0C2C0B9 377 | :10178000809107038093BB00CFC090912E0380917E 378 | :101790002F03981768F490912E03E92FF0E0E25F91 379 | :1017A000FC4F80818093BB009F5F90932E03BCC051 380 | :1017B00080910803882309F44BC085ED8093BC0019 381 | :1017C0008091BC0084FDFCCFC2C080E28093730393 382 | :1017D00085ED8093BC008091BC0084FDFCCFB7C038 383 | :1017E00080E38093730385ED8093BC008091BC00FF 384 | :1017F00084FDFCCFACC088E3809373039BC08091D1 385 | :101800002E039091BB00E82FF0E0E25FFC4F908345 386 | :101810008F5F80932E0390912E0380912F0382C0BF 387 | :1018200080912E039091BB00E82FF0E0E25FFC4F27 388 | :1018300090838F5F80932E0380910803882341F06B 389 | :1018400085ED8093BC008091BC0084FDFCCF7FC0FF 390 | :1018500081E08093090384EA6EC085ED8093BC002B 391 | :101860008091BC0084FDFCCF72C083E080930603AE 392 | :101870001092720359C080917203803208F056C0F2 393 | :10188000809172039091BB00E82FF0E0EE5AFC4F7C 394 | :1018900090838F5F8093720347C080917203803280 395 | :1018A00030F4E0917203F0E0EE5AFC4F108285EDC7 396 | :1018B0008093BC008091BC0084FDFCCF1092060395 397 | :1018C00060917203E0910C03F0910D0382E593E0C7 398 | :1018D00070E00995109272032DC084E08093060396 399 | :1018E0001092500310925103E0910A03F0910B0300 400 | :1018F000099580915103882329F481E08093510355 401 | :101900001092300390915003E92FF0E0E05DFC4F1E 402 | :1019100080818093BB009F5F909350039091500310 403 | :1019200080915103981710F485EC01C085E88093ED 404 | :10193000BC000FC085EC8093BC0009C010927303FB 405 | :1019400085ED8093BC008091BC0084FDFCCF10929B 406 | :101950000603FF91EF91BF91AF919F918F917F917E 407 | :101960006F915F914F913F912F910F900FBE0F900C 408 | :101970001F9018951092060381E08093080310923F 409 | :10198000090382E161E00E94681383E161E00E9443 410 | :101990006813E9EBF0E080818E7F808380818D7F0A 411 | :1019A000808388E48093B80085E48093BC00089528 412 | :1019B000EF92FF920F931F937C018B01DC01ED915D 413 | :1019C000FC91A081B1816F772D913C91CF01F901FC 414 | :1019D0000995D701ED91FC91A081B181000F012FF4 415 | :1019E000001F110B0F772D913C91CF01602FF90152 416 | :1019F00009951F910F91FF90EF900895FC010190C0 417 | :101A0000F081E02DA081B1812D913C91CF0160EF5B 418 | :101A1000F90109950895FC010190F081E02DA08164 419 | :101A2000B1812D913C91CF0167EFF901099508959E 420 | :101A30000F931F938C01DC01ED91FC91A081B1818A 421 | :101A40002D913C91CF0169EFF9010995D801ED91F4 422 | :101A5000FC91A081B1812D913C91CF0162E0F9010F 423 | :101A60000995D801ED91FC91A081B1812D913C9116 424 | :101A7000CF0163E0F90109951F910F9108951F931C 425 | :101A8000CF93DF93EC018A818823C9F1CE010E94B4 426 | :101A9000FE0CE881F981A081B1812D913C91CF01AB 427 | :101AA00069E7F9010995E881F981A081B1812B816C 428 | :101AB0003C814D915C91CF01F9016081FA0109955A 429 | :101AC000E881F981A081B1812B813C814D915C91AC 430 | :101AD000CF01F9016181FA01099512E00AC0EB8199 431 | :101AE000FC81E10FF11D6081CE0170E00E94D80CF5 432 | :101AF0001F5F8A81181798F3CE010E940B0DDF91AA 433 | :101B0000CF911F910895FC01A081B181ED91FC91CD 434 | :101B100011970480F581E02DCD0109950895EF928C 435 | :101B2000FF920F931F938C017A01DC01ED91FC91E0 436 | :101B3000A081B1816F70606E2D913C91CF01F90150 437 | :101B40000995C801B7010E94D80C1F910F91FF9011 438 | :101B5000EF900895EF92FF920F931F937C018A01FB 439 | :101B6000DC01ED91FC91A081B1816F7060692D91D4 440 | :101B70003C91CF01F9010995D701ED91FC91A0812C 441 | :101B8000B181602F6F772D913C91CF01F9010995BB 442 | :101B9000D701ED91FC91A081B181000F012F001FB1 443 | :101BA000110B2D913C91CF01602FF90109951F91E7 444 | :101BB0000F91FF90EF900895DF92EF92FF920F93B5 445 | :101BC0001F93CF93DF93EC01162FD42E022FF32E09 446 | :101BD0000E94FE0CE881F981A081B1812D913C9198 447 | :101BE000CF01612FF9010995202F3F2DC9017C01FB 448 | :101BF00010E008C0F70161917F01CE0170E00E9402 449 | :101C0000D80C1F5F1D15B0F3CE010E940B0DDF91A4 450 | :101C1000CF911F910F91FF90EF90DF900895FC01FD 451 | :101C2000603DA9F0613D28F4603959F0603CA1F4B1 452 | :101C30000BC0603E19F0643F79F40CC054A743A771 453 | :101C4000089556A745A7089550AB47A7089552ABEE 454 | :101C500041AB089554AB43AB0895FC016F3F11F4C1 455 | :101C600056AB45AB0895FC0152AF41AF0895FC015E 456 | :101C7000158216821782DC0180E018961C92189754 457 | :101C80008F5F11968032C9F710A612A611A605A87B 458 | :101C9000F6A9E02D309709F009950895FC017183AC 459 | :101CA000608312820E94370E089584E793E060E417 460 | :101CB00074E00E944E0E08954F925F926F927F9251 461 | :101CC0008F929F92AF92BF92CF92DF92EF92FF924C 462 | :101CD0000F93DF93CF9300D0CDB7DEB72B017A01FE 463 | :101CE0003A8329838DE061E00E94291300E0898115 464 | :101CF0009A813C01882477FC8094982C5701CC244D 465 | :101D0000B7FCC094DC2C11C0C401B3010E940912BD 466 | :101D10008DE061E00E946813C601B5010E940912BE 467 | :101D20008DE060E00E9468130F5F802F90E08415C3 468 | :101D3000950554F30F900F90CF91DF910F91FF9085 469 | :101D4000EF90DF90CF90BF90AF909F908F907F905B 470 | :101D50006F905F904F9008950F931F938C018DE0CB 471 | :101D600061E00E942913C80162E070E048E250E09F 472 | :101D700022ED30E00E945C0E6AEF70E080E090E0BF 473 | :101D80000E940912C80163E070E048E250E022EDD1 474 | :101D900030E00E945C0E6DE770E080E090E00E9411 475 | :101DA00009121F910F9108959A01FA0101900020E4 476 | :101DB000E9F73197E41BF50B4E2F0E94DC0D0895D7 477 | :101DC000AB0161E70E94D40E08951F93CF93DF9378 478 | :101DD000EC018885813731F0893789F5CE010E9481 479 | :101DE0003F0D36C08FA998AD892B91F189A59AA591 480 | :101DF000019762E070E00E948416162F862F90E013 481 | :101E00000E947E10AC01DC0121E030E011C0FE0137 482 | :101E1000E20FF11D90859C932F5FFE01E20FF11DF3 483 | :101E20008085879588278795890F8D932F5F3F5FE2 484 | :101E3000311768F3EFA9F8ADCA01099509C0E9ADFA 485 | :101E4000FAAD309729F069A561502996AE01099540 486 | :101E5000DF91CF911F910895CF93DF93EC01A8817B 487 | :101E6000B981ED91FC9111970680F781E02DCD01AC 488 | :101E70000995AC0188A5882391F0473F510529F4C5 489 | :101E800018A6CE010E94E50E93C089A59AA5FE0171 490 | :101E9000E80FF91F408701969AA789A789C08D810D 491 | :101EA000882309F446C0403851050CF042C08150E7 492 | :101EB0008D83FE01E80FF11D4087882309F078C06B 493 | :101EC0008E81882309F474C0803D49F1813D28F456 494 | :101ED000803959F0803C59F51FC0803E19F0843F8D 495 | :101EE00031F513C0EBA5FCA502C0EDA5FEA530970A 496 | :101EF000F1F0688570E07695762F6627779567957F 497 | :101F00008985680F711D8F8111C0EBA9FCA93097DD 498 | :101F100071F06885898509C0EFA5F8A902C0E9A913 499 | :101F2000FAA9309721F068858F8170E009951E82AB 500 | :101F30003FC0403F510514F09A0106C09A01207F2E 501 | :101F40003070842F8F708F83203E3105F1F0213E59 502 | :101F5000310554F4203C3105D1F0203D3105B9F074 503 | :101F60002039310529F511C0243F310571F0253F95 504 | :101F7000310524F4203F3105D9F40DC0293F310546 505 | :101F800099F02F3F3105A1F40BC082E001C081E040 506 | :101F90008D832E830DC081E088A71AA619A608C0DC 507 | :101FA000CE010E94370E04C084E793E00E94180D12 508 | :101FB000DF91CF910895AF92BF92CF92DF92EF92CF 509 | :101FC000FF920F931F93CF93DF938C01D62EC72ED2 510 | :101FD000B42EA22E862F972F61EB71E00E94A900EC 511 | :101FE000EC018D2D9C2D6FE270E00E949E002097E9 512 | :101FF00079F07C010894E11CF11CE114F10441F03A 513 | :102000009E012E5F822F8E19D80112968C930FC0DD 514 | :10201000AD2DBC2DFD0101900020E9F7ED19EF5F1A 515 | :10202000D8011296EC932D2D3C2DC9017C01F801AD 516 | :10203000828190E00E947E10FC01D80114969C934E 517 | :102040008E93139712968C911297E80FF11D1082C0 518 | :102050001396ED91FC911497B0821396ED91FC913B 519 | :102060001497A18213968D919C91149712964C917E 520 | :1020700050E0425050400296B7010E948F00DF911D 521 | :10208000CF911F910F91FF90EF90DF90CF90BF9075 522 | :10209000AF9008950F931F938C0180E494E00E9409 523 | :1020A0004A14D801ED91FC9180914204909143042F 524 | :1020B000938382838091440490914504A0914604C7 525 | :1020C000B091470484839583A683B78380914804A5 526 | :1020D00090914904A0914A04B0914B048087918764 527 | :1020E000A287B387C8010E94AC0EC8010E94180DD8 528 | :1020F000C8010E943F0D1F910F9108950F931F93E8 529 | :10210000CF93DF93BC018230910510F462E070E060 530 | :10211000E0916404F0916504A0E0B0E040E050E09C 531 | :1021200024C08081918186179707D0F08617970782 532 | :1021300071F482819381109729F013969C938E936A 533 | :1021400012972CC0909365048093640427C04115B6 534 | :10215000510519F08417950718F4EF018D01AC01B2 535 | :10216000DF01828193819C01F9013097D1F64115FD 536 | :102170005105F9F0CA01861B970B8430910580F454 537 | :102180008A819B810115110521F0F80193838283D7 538 | :1021900004C09093650480936404FE01329645C0A8 539 | :1021A000FE01E80FF91F6193719302979983888369 540 | :1021B0003CC08091620490916304892B41F480912A 541 | :1021C000BB019091BC0190936304809362044091A1 542 | :1021D000BD015091BE014115510541F44DB75EB7A7 543 | :1021E0008091B9019091BA01481B590B209162046A 544 | :1021F0003091630424173507B0F4CA01821B930B96 545 | :102200008617970780F0AB014E5F5F4F84179507E5 546 | :1022100050F0420F531F5093630440936204F9013E 547 | :102220006193719302C0E0E0F0E0CF01DF91CF91C4 548 | :102230001F910F910895CF93DF939C01009709F4AC 549 | :102240008FC0EC0122971B821A8260916404709106 550 | :1022500065046115710581F488819981820F931F4E 551 | :1022600020916204309163042817390739F5D0931F 552 | :102270006304C093620474C0DB0140E050E0AC171B 553 | :10228000BD0708F1BB83AA83FE0121913191E20FC2 554 | :10229000F31FAE17BF0779F48D919C911197280F0A 555 | :1022A000391F2E5F3F4F3983288312968D919C9161 556 | :1022B00013979B838A834115510571F4D09365046C 557 | :1022C000C09364044DC012968D919C911397AD01FB 558 | :1022D000009711F0DC01D3CFDA011396DC93CE9393 559 | :1022E0001297FA0121913191E20FF31FCE17DF0708 560 | :1022F00069F488819981280F391F2E5F3F4FFA01B9 561 | :10230000318320838A819B8193838283E0E0F0E0A4 562 | :10231000DB0112968D919C911397009719F0BC01E7 563 | :10232000FD01F6CFAB014E5F5F4FDB018D919C91BC 564 | :10233000840F951F20916204309163042817390798 565 | :1023400079F4309729F4109265041092640402C065 566 | :1023500013821282425050405093630440936204AF 567 | :10236000DF91CF9108951F920F920FB60F92112413 568 | :102370002F933F938F939F93AF93BF938091B3031A 569 | :102380009091B403A091B503B091B6033091B70317 570 | :102390000196A11DB11D232F2D5F2D3720F02D5744 571 | :1023A0000196A11DB11D2093B7038093B3039093B1 572 | :1023B000B403A093B503B093B6038091AF0390919B 573 | :1023C000B003A091B103B091B2030196A11DB11D5C 574 | :1023D0008093AF039093B003A093B103B093B20383 575 | :1023E000BF91AF919F918F913F912F910F900FBE11 576 | :1023F0000F901F9018958FB7F8942091B3033091E8 577 | :10240000B4034091B5035091B6038FBFB901CA011F 578 | :1024100008959B01AC017FB7F8948091AF03909130 579 | :10242000B003A091B103B091B20366B5A89B05C0FB 580 | :102430006F3F19F00196A11DB11D7FBFBA2FA92FC3 581 | :10244000982F8827860F911DA11DB11D62E0880F6E 582 | :10245000991FAA1FBB1F6A95D1F7BC012DC0FFB7FA 583 | :10246000F8948091AF039091B003A091B103B09123 584 | :10247000B203E6B5A89B05C0EF3F19F00196A11D78 585 | :10248000B11DFFBFBA2FA92F982F88278E0F911D3E 586 | :10249000A11DB11DE2E0880F991FAA1FBB1FEA957D 587 | :1024A000D1F7861B970B885E9340C8F221503040CD 588 | :1024B0004040504068517C4F211531054105510580 589 | :1024C00071F60895019739F0880F991F880F991FA9 590 | :1024D00002970197F1F70895789484B5826084BDDE 591 | :1024E00084B5816084BD85B5826085BD85B5816018 592 | :1024F00085BDEEE6F0E0808181608083E1E8F0E078 593 | :102500001082808182608083808181608083E0E8A6 594 | :10251000F0E0808181608083E1EBF0E08081846085 595 | :102520008083E0EBF0E0808181608083EAE7F0E087 596 | :1025300080818460808380818260808380818160EB 597 | :1025400080838081806880831092C1000895982FD5 598 | :102550008E3008F09E5097708091BF018295880F51 599 | :10256000880F807C892B80937C0080917A00806426 600 | :1025700080937A0080917A0086FDFCCF20917800CC 601 | :1025800040917900942F80E030E0282B392BC9014D 602 | :1025900008951F93CF93DF93182FEB0161E00E9402 603 | :1025A0002913209709F44AC0CF3FD10509F449C047 604 | :1025B000E12FF0E0E255FF4F84918330C1F0843089 605 | :1025C00028F4813051F08230B1F50CC0863019F119 606 | :1025D000873049F1843079F514C084B5806884BDB2 607 | :1025E000C7BD33C084B5806284BDC8BD2EC0809194 608 | :1025F0008000806880938000D0938900C093880019 609 | :1026000024C080918000806280938000D0938B00F2 610 | :10261000C0938A001AC08091B00080688093B00097 611 | :10262000C093B30012C08091B00080628093B0006C 612 | :10263000C093B4000AC0C038D1051CF4812F60E0FB 613 | :1026400002C0812F61E00E946813DF91CF911F913A 614 | :102650000895CF93DF93482F50E0CA0186569F4FCD 615 | :10266000FC0134914A575F4FFA018491882369F144 616 | :1026700090E0880F991FFC01E859FF4FA591B49194 617 | :10268000FC01EE58FF4FC591D491662351F42FB74A 618 | :10269000F8948C91932F909589238C93888189232A 619 | :1026A0000BC0623061F42FB7F8948C91932F909502 620 | :1026B00089238C938881832B88832FBF06C09FB783 621 | :1026C000F8948C91832B8C939FBFDF91CF910895C9 622 | :1026D000482F50E0CA0182559F4FFC012491CA0146 623 | :1026E00086569F4FFC0194914A575F4FFA013491EF 624 | :1026F000332309F440C0222351F1233071F02430F8 625 | :1027000028F42130A1F0223011F514C02630B1F0A8 626 | :102710002730C1F02430D9F404C0809180008F7735 627 | :1027200003C0809180008F7D8093800010C084B5AD 628 | :102730008F7702C084B58F7D84BD09C08091B000C1 629 | :102740008F7703C08091B0008F7D8093B000E32F1E 630 | :10275000F0E0EE0FFF1FEE58FF4FA591B4912FB799 631 | :10276000F894662321F48C919095892302C08C9172 632 | :10277000892B8C932FBF089508951F920F920FB647 633 | :102780000F9211242F933F934F938F939F93EF9327 634 | :10279000FF938091C00082FD1DC04091C600209132 635 | :1027A000F8033091F9032F5F3F4F2F733070809102 636 | :1027B000FA039091FB032817390771F0E091F803B1 637 | :1027C000F091F903E854FC4F40833093F9032093D0 638 | :1027D000F80302C08091C600FF91EF919F918F9105 639 | :1027E0004F913F912F910F900FBE0F901F90189512 640 | :1027F000E0914C04F0914D04E05CFF4F8191919188 641 | :1028000020813181805C9F4F821B930B60E470E0DC 642 | :102810000E948416892B11F00E94BC1308951F9208 643 | :102820000F920FB60F9211242F933F938F939F9384 644 | :10283000EF93FF9320913C0430913D0480913E043E 645 | :1028400090913F042817390731F48091C1008F7DA2 646 | :102850008093C10014C0E0913E04F0913F04E45025 647 | :10286000FC4F208180913E0490913F0401968F732C 648 | :10287000907090933F0480933E042093C600FF9194 649 | :10288000EF919F918F913F912F910F900FBE0F90DD 650 | :102890001F901895AF92BF92DF92EF92FF920F9325 651 | :1028A0001F93CF93DF93EC017A018B01DD2440303D 652 | :1028B00081EE580780E0680780E0780711F0DD249A 653 | :1028C000D39491E0A92EB12CEC89FD89DD2069F02B 654 | :1028D000C50108A002C0880F991F0A94E2F78083FF 655 | :1028E00060E079E08DE390E005C0108260E874E874 656 | :1028F0008EE190E0A80197010E9497162150304088 657 | :1029000040405040569547953795279580E12030B7 658 | :10291000380720F0DD2011F0DD24D6CFE889F989D1 659 | :102920003083EA89FB89208319A2EE89FF894081DF 660 | :1029300021E030E0C9010C8C02C0880F991F0A9475 661 | :10294000E2F7482B4083EE89FF894081C9010D8C55 662 | :1029500002C0880F991F0A94E2F7482B4083EE8942 663 | :10296000FF894081C9010E8C02C0880F991F0A940B 664 | :10297000E2F7482B4083EE89FF8980810F8C02C0EB 665 | :10298000220F331F0A94E2F7209528232083DF913A 666 | :10299000CF911F910F91FF90EF90DF90BF90AF907C 667 | :1029A0000895DC011C96ED91FC911D97E05CFF4FB2 668 | :1029B0008191919120813181805C9F4F821B930B8B 669 | :1029C00060E470E00E9484160895DC011C96ED918D 670 | :1029D000FC911D97E05CFF4F20813181E054F04075 671 | :1029E000DF01AE5BBF4F8D919C911197281739077E 672 | :1029F00019F42FEF3FEF07C08D919C91E80FF91F5D 673 | :102A00008081282F30E0C9010895DC011C96ED91EA 674 | :102A1000FC911D97E05CFF4F20813181E054F04034 675 | :102A2000DF01AE5BBF4F8D919C911197281739073D 676 | :102A300019F42FEF3FEF10C08D919C911197E80F83 677 | :102A4000F91F20818D919C91119701968F73907041 678 | :102A500011969C938E9330E0C9010895DC01919604 679 | :102A60008C919197882339F05496ED91FC9155976C 680 | :102A7000808186FFF9CF91961C920895CF93DF93C2 681 | :102A8000EC01EE85FF85E05CFF4F20813181E05451 682 | :102A9000F0402F5F3F4F2F733070DF01AE5BBF4FB1 683 | :102AA0008D919C91119728173907D1F3E05CFF4F66 684 | :102AB00080819181E054F040E80FF91F6083EE853A 685 | :102AC000FF85E05CFF4F31832083EE89FF89208101 686 | :102AD00081E090E00F8C02C0880F991F0A94E2F702 687 | :102AE000282B208381E089A3EC89FD898081806483 688 | :102AF000808381E090E0DF91CF91089510924304AC 689 | :102B00001092420488EE93E0A0E0B0E08093440489 690 | :102B100090934504A0934604B093470484ED91E05C 691 | :102B2000909341048093400488EB93E090934D048C 692 | :102B300080934C048CEF93E090934F0480934E0469 693 | :102B400085EC90E0909351048093500484EC90E0E5 694 | :102B5000909353048093520480EC90E0909355043A 695 | :102B60008093540481EC90E0909357048093560432 696 | :102B700082EC90E0909359048093580486EC90E0A6 697 | :102B800090935B0480935A0484E080935C0483E018 698 | :102B900080935D0487E080935E0485E080935F040A 699 | :102BA00081E08093600408950895CF93DF930E949D 700 | :102BB0006C120E94D4150E943403C8EFD3E10E9426 701 | :102BC0004A042097E1F30E94F813F9CFCF92DF92E5 702 | :102BD000EF92FF920F931F93CF93DF937C016B01D2 703 | :102BE0008A01C0E0D0E00FC0D6016D916D01D70120 704 | :102BF000ED91FC910190F081E02DC7010995C80F7E 705 | :102C0000D91F015010400115110571F7CE01DF9158 706 | :102C1000CF911F910F91FF90EF90DF90CF9008958B 707 | :102C20002F923F924F925F926F927F928F929F92DC 708 | :102C3000AF92BF92CF92DF92EF92FF920F931F93CA 709 | :102C4000DF93CF93CDB7DEB73B014C0119012A01C9 710 | :102C50006D897E898F89988D6A197B098C099D09F8 711 | :102C6000621A730A840A950AA40193010E945916F4 712 | :102C7000E218F30804091509A80197010E94B91682 713 | :102C80002A0D3B1D4C1D5D1DB901CA01CF91DF917D 714 | :102C90001F910F91FF90EF90DF90CF90BF90AF907A 715 | :102CA0009F908F907F906F905F904F903F902F906C 716 | :102CB0000895629FD001739FF001829FE00DF11D86 717 | :102CC000649FE00DF11D929FF00D839FF00D749FA6 718 | :102CD000F00D659FF00D9927729FB00DE11DF91F52 719 | :102CE000639FB00DE11DF91FBD01CF0111240895AF 720 | :102CF000991B79E004C0991F961708F0961B881F4E 721 | :102D00007A95C9F78095089597FB092E07260AD072 722 | :102D100077FD04D049D006D000201AF47095619553 723 | :102D20007F4F0895F6F7909581959F4F0895A1E202 724 | :102D30001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F35 725 | :102D4000FF1FA217B307E407F50720F0A21BB30B80 726 | :102D5000E40BF50B661F771F881F991F1A9469F7FC 727 | :102D600060957095809590959B01AC01BD01CF0158 728 | :102D7000089597FB092E05260ED057FD04D0D7DF06 729 | :102D80000AD0001C38F450954095309521953F4F5E 730 | :102D90004F4F5F4F0895F6F7909580957095619528 731 | :102DA0007F4F8F4F9F4F0895AA1BBB1B51E107C058 732 | :102DB000AA1FBB1FA617B70710F0A61BB70B881FCB 733 | :102DC000991F5A95A9F780959095BC01CD0108955A 734 | :102DD000EE0FFF1F0590F491E02D0994F894FFCFBA 735 | :102DE000556E6B6E6F776E2070696E206D6F6465C7 736 | :102DF000005374616E646172644669726D617461DE 737 | :102E00002E696E6F0049324320526561642045721D 738 | :102E1000726F723A20546F6F206D616E7920627903 739 | :102E20007465732072656365697665640049324331 740 | :102E30002052656164204572726F723A20546F6F40 741 | :102E400020666577206279746573207265636569B1 742 | :102E50007665640031302D62697420616464726546 743 | :102E60007373696E67206D6F6465206973206E6F80 744 | :102E7000742079657420737570706F727465640066 745 | :102E8000746F6F206D616E792071756572696573FD 746 | :102E9000002E637070001300FF80006604000001C4 747 | :102EA000000000000D0ADC0995099E09B309C40958 748 | :102EB000000000003E15E615D1140515E5142E1589 749 | :00000001FF 750 | -------------------------------------------------------------------------------- /examples/diecimila-duemilanove168.js: -------------------------------------------------------------------------------- 1 | var SerialPort = require("serialport"); 2 | var intel_hex = require('intel-hex'); 3 | var Stk500 = require('../'); 4 | var fs = require('fs'); 5 | 6 | var data = fs.readFileSync('arduino-1.0.6/168/StandardFirmata.cpp.hex', { encoding: 'utf8' }); 7 | 8 | var hex = intel_hex.parse(data).data; 9 | 10 | var board = { 11 | name: "Diecimila / Duemilanove 168", 12 | baud: 19200, 13 | signature: new Buffer([0x1e, 0x94, 0x06]), 14 | pageSize: 128, 15 | timeout: 400 16 | }; 17 | 18 | function upload(path, done){ 19 | 20 | var serialPort = new SerialPort.SerialPort(path, { 21 | baudrate: board.baud, 22 | }); 23 | 24 | serialPort.on('open', function(){ 25 | 26 | Stk500.bootload(serialPort, hex, board, function(error){ 27 | 28 | serialPort.close(function (error) { 29 | console.log(error); 30 | }); 31 | 32 | done(error); 33 | }); 34 | 35 | }); 36 | 37 | } 38 | 39 | if(process && process.argv && process.argv[2]) 40 | { 41 | upload(process.argv[2], function(error){ 42 | if(!error) 43 | { 44 | console.log("programing SUCCESS!"); 45 | process.exit(0); 46 | } 47 | }); 48 | }else 49 | { 50 | console.log("call with a path like /dev/tty.something"); 51 | process.exit(0); 52 | } -------------------------------------------------------------------------------- /examples/duemilanove328.js: -------------------------------------------------------------------------------- 1 | var SerialPort = require("serialport"); 2 | var intel_hex = require('intel-hex'); 3 | var Stk500 = require('../'); 4 | var fs = require('fs'); 5 | 6 | var data = fs.readFileSync('arduino-1.0.6/duemilanove328/StandardFirmata.cpp.hex', { encoding: 'utf8' }); 7 | 8 | var hex = intel_hex.parse(data).data; 9 | 10 | var board = { 11 | name: "Duemilanove 328", 12 | baud: 57600, 13 | signature: new Buffer([0x1e, 0x95, 0x0F]), 14 | pageSize: 128, 15 | timeout: 400 16 | }; 17 | 18 | function upload(path, done){ 19 | 20 | var serialPort = new SerialPort.SerialPort(path, { 21 | baudrate: board.baud, 22 | }); 23 | 24 | serialPort.on('open', function(){ 25 | 26 | Stk500.bootload(serialPort, hex, board, function(error){ 27 | 28 | serialPort.close(function (error) { 29 | console.log(error); 30 | }); 31 | 32 | done(error); 33 | }); 34 | 35 | }); 36 | 37 | } 38 | 39 | if(process && process.argv && process.argv[2]) 40 | { 41 | upload(process.argv[2], function(error){ 42 | if(!error) 43 | { 44 | console.log("programing SUCCESS!"); 45 | process.exit(0); 46 | } 47 | }); 48 | }else 49 | { 50 | console.log("call with a path like /dev/tty.something"); 51 | process.exit(0); 52 | } -------------------------------------------------------------------------------- /examples/uno.js: -------------------------------------------------------------------------------- 1 | var SerialPort = require("serialport"); 2 | var intel_hex = require('intel-hex'); 3 | var Stk500 = require('../'); 4 | var fs = require('fs'); 5 | 6 | var data = fs.readFileSync('arduino-1.0.6/uno/StandardFirmata.cpp.hex', { encoding: 'utf8' }); 7 | 8 | var hex = intel_hex.parse(data).data; 9 | 10 | var board = { 11 | name: "Arduino Uno", 12 | baud: 115200, 13 | signature: new Buffer([0x1e, 0x95, 0x0f]), 14 | pageSize: 128, 15 | timeout: 400 16 | }; 17 | 18 | function upload(path, done){ 19 | 20 | var serialPort = new SerialPort.SerialPort(path, { 21 | baudrate: board.baud, 22 | }); 23 | 24 | serialPort.on('open', function(){ 25 | 26 | Stk500.bootload(serialPort, hex, board, function(error){ 27 | 28 | serialPort.close(function (error) { 29 | console.log(error); 30 | }); 31 | 32 | done(error); 33 | }); 34 | 35 | }); 36 | 37 | } 38 | 39 | if(process && process.argv && process.argv[2]) 40 | { 41 | upload(process.argv[2], function(error){ 42 | if(!error) 43 | { 44 | console.log("programing SUCCESS!"); 45 | process.exit(0); 46 | } 47 | }); 48 | }else 49 | { 50 | console.log("call with a path like /dev/tty.something"); 51 | process.exit(0); 52 | } -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var async = require("async"); 2 | var Statics = require('./lib/statics'); 3 | var sendCommand = require('./lib/sendCommand'); 4 | 5 | var stk500 = function (opts) { 6 | this.opts = opts || {}; 7 | this.quiet = this.opts.quiet || false; 8 | if(this.quiet){ 9 | this.log = function(){}; 10 | }else{ 11 | if(typeof window === 'object'){ 12 | this.log = console.log.bind(window); 13 | }else{ 14 | this.log = console.log; 15 | } 16 | } 17 | } 18 | 19 | stk500.prototype.sync = function (stream, attempts, timeout, done) { 20 | this.log("sync"); 21 | var self = this; 22 | var tries = 1; 23 | 24 | var opt = { 25 | cmd: [ 26 | Statics.Cmnd_STK_GET_SYNC 27 | ], 28 | responseData: Statics.OK_RESPONSE, 29 | timeout: timeout 30 | }; 31 | function attempt () { 32 | tries=tries+1; 33 | sendCommand(stream, opt, function (err, data) { 34 | if (err && tries <= attempts) { 35 | if (err) { 36 | self.log(err); 37 | } 38 | self.log("failed attempt again", tries); 39 | return attempt(); 40 | } 41 | self.log('sync complete', err, data, tries); 42 | done(err, data); 43 | }); 44 | } 45 | attempt(); 46 | }; 47 | 48 | stk500.prototype.verifySignature = function (stream, signature, timeout, done) { 49 | this.log("verify signature"); 50 | var self = this; 51 | match = Buffer.concat([ 52 | Buffer.from([Statics.Resp_STK_INSYNC]), 53 | signature, 54 | Buffer.from([Statics.Resp_STK_OK]) 55 | ]); 56 | 57 | var opt = { 58 | cmd: [ 59 | Statics.Cmnd_STK_READ_SIGN 60 | ], 61 | responseLength: match.length, 62 | timeout: timeout 63 | }; 64 | sendCommand(stream, opt, function (err, data) { 65 | if(data){ 66 | self.log('confirm signature', err, data, data.toString('hex')); 67 | }else{ 68 | self.log('confirm signature', err, 'no data'); 69 | } 70 | done(err, data); 71 | }); 72 | }; 73 | 74 | stk500.prototype.getSignature = function (stream, timeout, done) { 75 | this.log("get signature"); 76 | var opt = { 77 | cmd: [ 78 | Statics.Cmnd_STK_READ_SIGN 79 | ], 80 | responseLength: 5, 81 | timeout: timeout 82 | }; 83 | sendCommand(stream, opt, function (err, data) { 84 | this.log('getSignature', err, data); 85 | done(err, data); 86 | }); 87 | }; 88 | 89 | stk500.prototype.setOptions = function (stream, options, timeout, done) { 90 | this.log("set device"); 91 | var self = this; 92 | 93 | var opt = { 94 | cmd: [ 95 | Statics.Cmnd_STK_SET_DEVICE, 96 | options.devicecode || 0, 97 | options.revision || 0, 98 | options.progtype || 0, 99 | options.parmode || 0, 100 | options.polling || 0, 101 | options.selftimed || 0, 102 | options.lockbytes || 0, 103 | options.fusebytes || 0, 104 | options.flashpollval1 || 0, 105 | options.flashpollval2 || 0, 106 | options.eeprompollval1 || 0, 107 | options.eeprompollval2 || 0, 108 | options.pagesizehigh || 0, 109 | options.pagesizelow || 0, 110 | options.eepromsizehigh || 0, 111 | options.eepromsizelow || 0, 112 | options.flashsize4 || 0, 113 | options.flashsize3 || 0, 114 | options.flashsize2 || 0, 115 | options.flashsize1 || 0 116 | ], 117 | responseData: Statics.OK_RESPONSE, 118 | timeout: timeout 119 | }; 120 | sendCommand(stream, opt, function (err, data) { 121 | self.log('setOptions', err, data); 122 | if (err) { 123 | return done(err); 124 | } 125 | done(); 126 | }); 127 | }; 128 | 129 | stk500.prototype.enterProgrammingMode = function (stream, timeout, done) { 130 | this.log("send enter programming mode"); 131 | var self = this; 132 | var opt = { 133 | cmd: [ 134 | Statics.Cmnd_STK_ENTER_PROGMODE 135 | ], 136 | responseData: Statics.OK_RESPONSE, 137 | timeout: timeout 138 | }; 139 | sendCommand(stream, opt, function (err, data) { 140 | self.log("sent enter programming mode", err, data); 141 | done(err, data); 142 | }); 143 | }; 144 | 145 | stk500.prototype.loadAddress = function (stream, useaddr, timeout, done) { 146 | this.log("load address"); 147 | var self = this; 148 | var addr_low = useaddr & 0xff; 149 | var addr_high = (useaddr >> 8) & 0xff; 150 | var opt = { 151 | cmd: [ 152 | Statics.Cmnd_STK_LOAD_ADDRESS, 153 | addr_low, 154 | addr_high 155 | ], 156 | responseData: Statics.OK_RESPONSE, 157 | timeout: timeout 158 | }; 159 | sendCommand(stream, opt, function (err, data) { 160 | self.log('loaded address', err, data); 161 | done(err, data); 162 | }); 163 | }; 164 | 165 | stk500.prototype.loadPage = function (stream, writeBytes, timeout, done) { 166 | this.log("load page"); 167 | var self = this; 168 | var bytes_low = writeBytes.length & 0xff; 169 | var bytes_high = writeBytes.length >> 8; 170 | 171 | var cmd = Buffer.concat([ 172 | Buffer.from([Statics.Cmnd_STK_PROG_PAGE, bytes_high, bytes_low, 0x46]), 173 | writeBytes, 174 | Buffer.from([Statics.Sync_CRC_EOP]) 175 | ]); 176 | 177 | var opt = { 178 | cmd: cmd, 179 | responseData: Statics.OK_RESPONSE, 180 | timeout: timeout 181 | }; 182 | sendCommand(stream, opt, function (err, data) { 183 | self.log('loaded page', err, data); 184 | done(err, data); 185 | }); 186 | }; 187 | 188 | stk500.prototype.upload = function (stream, hex, pageSize, timeout, done) { 189 | this.log("program"); 190 | 191 | var pageaddr = 0; 192 | var writeBytes; 193 | var useaddr; 194 | 195 | var self = this; 196 | 197 | // program individual pages 198 | async.whilst( 199 | function() { return pageaddr < hex.length; }, 200 | function(pagedone) { 201 | self.log("program page"); 202 | async.series([ 203 | function(cbdone){ 204 | useaddr = pageaddr >> 1; 205 | cbdone(); 206 | }, 207 | function(cbdone){ 208 | self.loadAddress(stream, useaddr, timeout, cbdone); 209 | }, 210 | function(cbdone){ 211 | 212 | writeBytes = hex.slice(pageaddr, (hex.length > pageSize ? (pageaddr + pageSize) : hex.length - 1)) 213 | cbdone(); 214 | }, 215 | function(cbdone){ 216 | self.loadPage(stream, writeBytes, timeout, cbdone); 217 | }, 218 | function(cbdone){ 219 | self.log("programmed page"); 220 | pageaddr = pageaddr + writeBytes.length; 221 | setTimeout(cbdone, 4); 222 | } 223 | ], 224 | function(error) { 225 | self.log("page done"); 226 | pagedone(error); 227 | }); 228 | }, 229 | function(error) { 230 | self.log("upload done"); 231 | done(error); 232 | } 233 | ); 234 | }; 235 | 236 | stk500.prototype.exitProgrammingMode = function (stream, timeout, done) { 237 | this.log("send leave programming mode"); 238 | var self = this; 239 | var opt = { 240 | cmd: [ 241 | Statics.Cmnd_STK_LEAVE_PROGMODE 242 | ], 243 | responseData: Statics.OK_RESPONSE, 244 | timeout: timeout 245 | }; 246 | sendCommand(stream, opt, function (err, data) { 247 | self.log('sent leave programming mode', err, data); 248 | done(err, data); 249 | }); 250 | }; 251 | 252 | stk500.prototype.verify = function (stream, hex, pageSize, timeout, done) { 253 | this.log("verify"); 254 | 255 | var pageaddr = 0; 256 | var writeBytes; 257 | var useaddr; 258 | 259 | var self = this; 260 | 261 | // verify individual pages 262 | async.whilst( 263 | function() { return pageaddr < hex.length; }, 264 | function(pagedone) { 265 | self.log("verify page"); 266 | async.series([ 267 | function(cbdone){ 268 | useaddr = pageaddr >> 1; 269 | cbdone(); 270 | }, 271 | function(cbdone){ 272 | self.loadAddress(stream, useaddr, timeout, cbdone); 273 | }, 274 | function(cbdone){ 275 | 276 | writeBytes = hex.slice(pageaddr, (hex.length > pageSize ? (pageaddr + pageSize) : hex.length - 1)) 277 | cbdone(); 278 | }, 279 | function(cbdone){ 280 | self.verifyPage(stream, writeBytes, pageSize, timeout, cbdone); 281 | }, 282 | function(cbdone){ 283 | self.log("verified page"); 284 | pageaddr = pageaddr + writeBytes.length; 285 | setTimeout(cbdone, 4); 286 | } 287 | ], 288 | function(error) { 289 | self.log("verify done"); 290 | pagedone(error); 291 | }); 292 | }, 293 | function(error) { 294 | self.log("verify done"); 295 | done(error); 296 | } 297 | ); 298 | }; 299 | 300 | stk500.prototype.verifyPage = function (stream, writeBytes, pageSize, timeout, done) { 301 | this.log("verify page"); 302 | var self = this; 303 | match = Buffer.concat([ 304 | Buffer.from([Statics.Resp_STK_INSYNC]), 305 | writeBytes, 306 | Buffer.from([Statics.Resp_STK_OK]) 307 | ]); 308 | 309 | var size = writeBytes.length >= pageSize ? pageSize : writeBytes.length; 310 | 311 | var opt = { 312 | cmd: [ 313 | Statics.Cmnd_STK_READ_PAGE, 314 | (size>>8) & 0xff, 315 | size & 0xff, 316 | 0x46 317 | ], 318 | responseLength: match.length, 319 | timeout: timeout 320 | }; 321 | sendCommand(stream, opt, function (err, data) { 322 | self.log('confirm page', err, data, data.toString('hex')); 323 | done(err, data); 324 | }); 325 | }; 326 | 327 | stk500.prototype.bootload = function (stream, hex, opt, done) { 328 | 329 | var parameters = { 330 | pagesizehigh: (opt.pagesizehigh<<8 & 0xff), 331 | pagesizelow: opt.pagesizelow & 0xff 332 | } 333 | 334 | async.series([ 335 | // send two dummy syncs like avrdude does 336 | this.sync.bind(this, stream, 3, opt.timeout), 337 | this.sync.bind(this, stream, 3, opt.timeout), 338 | this.sync.bind(this, stream, 3, opt.timeout), 339 | this.verifySignature.bind(this, stream, opt.signature, opt.timeout), 340 | this.setOptions.bind(this, stream, parameters, opt.timeout), 341 | this.enterProgrammingMode.bind(this, stream, opt.timeout), 342 | this.upload.bind(this, stream, hex, opt.pageSize, opt.timeout), 343 | this.verify.bind(this, stream, hex, opt.pageSize, opt.timeout), 344 | this.exitProgrammingMode.bind(this, stream, opt.timeout) 345 | ], function(error){ 346 | return done(error); 347 | }); 348 | }; 349 | 350 | module.exports = stk500; 351 | -------------------------------------------------------------------------------- /lib/receiveData.js: -------------------------------------------------------------------------------- 1 | var Statics = require('./statics'); 2 | 3 | var startingBytes = [ 4 | Statics.Resp_STK_INSYNC 5 | ]; 6 | 7 | module.exports = function (stream, timeout, responseLength, callback) { 8 | var buffer = Buffer.alloc(0); 9 | var started = false; 10 | var timeoutId = null; 11 | var handleChunk = function (data) { 12 | var index = 0; 13 | while (!started && index < data.length) { 14 | var byte = data[index]; 15 | if (startingBytes.indexOf(byte) !== -1) { 16 | data = data.slice(index, data.length - index); 17 | started = true; 18 | } 19 | index++; 20 | } 21 | if (started) { 22 | buffer = Buffer.concat([buffer, data]); 23 | } 24 | if (buffer.length > responseLength) { 25 | // or ignore after 26 | return finished(new Error('buffer overflow '+buffer.length+' > '+responseLength)); 27 | } 28 | if (buffer.length == responseLength) { 29 | finished(); 30 | } 31 | }; 32 | var finished = function (err) { 33 | if (timeoutId) { 34 | clearTimeout(timeoutId); 35 | } 36 | // VALIDATE TERMINAL BYTE? 37 | stream.removeListener('data', handleChunk); 38 | callback(err, buffer); 39 | }; 40 | if (timeout && timeout > 0) { 41 | timeoutId = setTimeout(function () { 42 | timeoutId = null; 43 | finished(new Error('receiveData timeout after ' + timeout + 'ms')); 44 | }, timeout); 45 | } 46 | stream.on('data', handleChunk); 47 | }; 48 | -------------------------------------------------------------------------------- /lib/sendCommand.js: -------------------------------------------------------------------------------- 1 | var receiveData = require('./receiveData'); 2 | var Statics = require('./statics'); 3 | 4 | module.exports = function (stream, opt, callback) { 5 | var timeout = opt.timeout || 0; 6 | var startingBytes = [ 7 | Statics.Resp_STK_INSYNC, 8 | Statics.Resp_STK_NOSYNC 9 | ]; 10 | var responseData = null; 11 | var responseLength = 0; 12 | var error; 13 | 14 | if (opt.responseData && opt.responseData.length > 0) { 15 | responseData = opt.responseData; 16 | } 17 | if (responseData) { 18 | responseLength = responseData.length; 19 | } 20 | if (opt.responseLength) { 21 | responseLength = opt.responseLength; 22 | } 23 | var cmd = opt.cmd; 24 | if (cmd instanceof Array) { 25 | cmd = Buffer.from(cmd.concat(Statics.Sync_CRC_EOP)); 26 | } 27 | 28 | stream.write(cmd, function (err) { 29 | if (err) { 30 | error = new Error('Sending ' + cmd.toString('hex') + ': ' + err.message); 31 | return callback(error); 32 | } 33 | receiveData(stream, timeout, responseLength, function (err, data) { 34 | if (err) { 35 | error = new Error('Sending ' + cmd.toString('hex') + ': ' + err.message); 36 | return callback(error); 37 | } 38 | 39 | if (responseData && !data.equals(responseData)) { 40 | error = new Error(cmd + ' response mismatch: '+data.toString('hex')+', '+responseData.toString('hex')); 41 | return callback(error); 42 | } 43 | callback(null, data); 44 | }); 45 | }); 46 | }; 47 | -------------------------------------------------------------------------------- /lib/statics.js: -------------------------------------------------------------------------------- 1 | var Resp_STK_INSYNC = 0x14; 2 | var Resp_STK_OK = 0x10; 3 | 4 | module.exports = { 5 | Cmnd_STK_GET_SYNC: 0x30, 6 | Cmnd_STK_SET_DEVICE: 0x42, 7 | Cmnd_STK_ENTER_PROGMODE: 0x50, 8 | Cmnd_STK_LOAD_ADDRESS: 0x55, 9 | Cmnd_STK_PROG_PAGE: 0x64, 10 | Cmnd_STK_LEAVE_PROGMODE: 0x51, 11 | Cmnd_STK_READ_SIGN: 0x75, 12 | 13 | Sync_CRC_EOP: 0x20, 14 | 15 | Resp_STK_OK: 0x10, 16 | Resp_STK_INSYNC: 0x14, 17 | Resp_STK_NOSYNC: 0x15, 18 | 19 | 20 | Cmnd_STK_READ_PAGE: 0x74, 21 | 22 | 23 | OK_RESPONSE: Buffer.from([Resp_STK_INSYNC, Resp_STK_OK]) 24 | }; 25 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stk500", 3 | "version": "2.0.3", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "array-filter": { 8 | "version": "1.0.0", 9 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", 10 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", 11 | "dev": true 12 | }, 13 | "async": { 14 | "version": "0.9.2", 15 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", 16 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" 17 | }, 18 | "available-typed-arrays": { 19 | "version": "1.0.2", 20 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", 21 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", 22 | "dev": true, 23 | "requires": { 24 | "array-filter": "^1.0.0" 25 | } 26 | }, 27 | "call-bind": { 28 | "version": "1.0.0", 29 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", 30 | "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", 31 | "dev": true, 32 | "requires": { 33 | "function-bind": "^1.1.1", 34 | "get-intrinsic": "^1.0.0" 35 | } 36 | }, 37 | "commander": { 38 | "version": "2.3.0", 39 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", 40 | "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", 41 | "dev": true 42 | }, 43 | "debug": { 44 | "version": "2.2.0", 45 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", 46 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", 47 | "dev": true, 48 | "requires": { 49 | "ms": "0.7.1" 50 | } 51 | }, 52 | "define-properties": { 53 | "version": "1.1.3", 54 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 55 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 56 | "dev": true, 57 | "requires": { 58 | "object-keys": "^1.0.12" 59 | } 60 | }, 61 | "diff": { 62 | "version": "1.4.0", 63 | "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", 64 | "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", 65 | "dev": true 66 | }, 67 | "duplexer": { 68 | "version": "0.1.2", 69 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", 70 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", 71 | "dev": true 72 | }, 73 | "es-abstract": { 74 | "version": "1.17.7", 75 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", 76 | "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", 77 | "dev": true, 78 | "requires": { 79 | "es-to-primitive": "^1.2.1", 80 | "function-bind": "^1.1.1", 81 | "has": "^1.0.3", 82 | "has-symbols": "^1.0.1", 83 | "is-callable": "^1.2.2", 84 | "is-regex": "^1.1.1", 85 | "object-inspect": "^1.8.0", 86 | "object-keys": "^1.1.1", 87 | "object.assign": "^4.1.1", 88 | "string.prototype.trimend": "^1.0.1", 89 | "string.prototype.trimstart": "^1.0.1" 90 | } 91 | }, 92 | "es-to-primitive": { 93 | "version": "1.2.1", 94 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 95 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 96 | "dev": true, 97 | "requires": { 98 | "is-callable": "^1.1.4", 99 | "is-date-object": "^1.0.1", 100 | "is-symbol": "^1.0.2" 101 | } 102 | }, 103 | "escape-string-regexp": { 104 | "version": "1.0.2", 105 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", 106 | "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", 107 | "dev": true 108 | }, 109 | "event-stream": { 110 | "version": "3.3.5", 111 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.5.tgz", 112 | "integrity": "sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==", 113 | "dev": true, 114 | "requires": { 115 | "duplexer": "^0.1.1", 116 | "from": "^0.1.7", 117 | "map-stream": "0.0.7", 118 | "pause-stream": "^0.0.11", 119 | "split": "^1.0.1", 120 | "stream-combiner": "^0.2.2", 121 | "through": "^2.3.8" 122 | } 123 | }, 124 | "foreach": { 125 | "version": "2.0.5", 126 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 127 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 128 | "dev": true 129 | }, 130 | "formatio": { 131 | "version": "1.1.1", 132 | "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", 133 | "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", 134 | "dev": true, 135 | "requires": { 136 | "samsam": "~1.1" 137 | } 138 | }, 139 | "from": { 140 | "version": "0.1.7", 141 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 142 | "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", 143 | "dev": true 144 | }, 145 | "function-bind": { 146 | "version": "1.1.1", 147 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 148 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 149 | "dev": true 150 | }, 151 | "get-intrinsic": { 152 | "version": "1.0.1", 153 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", 154 | "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", 155 | "dev": true, 156 | "requires": { 157 | "function-bind": "^1.1.1", 158 | "has": "^1.0.3", 159 | "has-symbols": "^1.0.1" 160 | } 161 | }, 162 | "glob": { 163 | "version": "3.2.11", 164 | "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", 165 | "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", 166 | "dev": true, 167 | "requires": { 168 | "inherits": "2", 169 | "minimatch": "0.3" 170 | } 171 | }, 172 | "growl": { 173 | "version": "1.9.2", 174 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", 175 | "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", 176 | "dev": true 177 | }, 178 | "has": { 179 | "version": "1.0.3", 180 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 181 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 182 | "dev": true, 183 | "requires": { 184 | "function-bind": "^1.1.1" 185 | } 186 | }, 187 | "has-symbols": { 188 | "version": "1.0.1", 189 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 190 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 191 | "dev": true 192 | }, 193 | "inherits": { 194 | "version": "2.0.4", 195 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 196 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 197 | "dev": true 198 | }, 199 | "intel-hex": { 200 | "version": "0.1.2", 201 | "resolved": "https://registry.npmjs.org/intel-hex/-/intel-hex-0.1.2.tgz", 202 | "integrity": "sha512-BHdANJX9xz74E1IeaRklWDnUEgVuWKD6HQ6ESklElF+4O9/8UtLzuEYoFOiSWcYZV7I40Xwv6c/BKhJqu0w6lQ==", 203 | "dev": true 204 | }, 205 | "is-arguments": { 206 | "version": "1.0.4", 207 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", 208 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", 209 | "dev": true 210 | }, 211 | "is-callable": { 212 | "version": "1.2.2", 213 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", 214 | "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", 215 | "dev": true 216 | }, 217 | "is-date-object": { 218 | "version": "1.0.2", 219 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 220 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 221 | "dev": true 222 | }, 223 | "is-generator-function": { 224 | "version": "1.0.7", 225 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", 226 | "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", 227 | "dev": true 228 | }, 229 | "is-negative-zero": { 230 | "version": "2.0.0", 231 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", 232 | "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", 233 | "dev": true 234 | }, 235 | "is-regex": { 236 | "version": "1.1.1", 237 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", 238 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", 239 | "dev": true, 240 | "requires": { 241 | "has-symbols": "^1.0.1" 242 | } 243 | }, 244 | "is-symbol": { 245 | "version": "1.0.3", 246 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 247 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 248 | "dev": true, 249 | "requires": { 250 | "has-symbols": "^1.0.1" 251 | } 252 | }, 253 | "is-typed-array": { 254 | "version": "1.1.3", 255 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", 256 | "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", 257 | "dev": true, 258 | "requires": { 259 | "available-typed-arrays": "^1.0.0", 260 | "es-abstract": "^1.17.4", 261 | "foreach": "^2.0.5", 262 | "has-symbols": "^1.0.1" 263 | } 264 | }, 265 | "jade": { 266 | "version": "0.26.3", 267 | "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", 268 | "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", 269 | "dev": true, 270 | "requires": { 271 | "commander": "0.6.1", 272 | "mkdirp": "0.3.0" 273 | }, 274 | "dependencies": { 275 | "commander": { 276 | "version": "0.6.1", 277 | "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", 278 | "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", 279 | "dev": true 280 | }, 281 | "mkdirp": { 282 | "version": "0.3.0", 283 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", 284 | "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", 285 | "dev": true 286 | } 287 | } 288 | }, 289 | "lolex": { 290 | "version": "1.3.2", 291 | "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", 292 | "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", 293 | "dev": true 294 | }, 295 | "lru-cache": { 296 | "version": "2.7.3", 297 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", 298 | "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", 299 | "dev": true 300 | }, 301 | "map-stream": { 302 | "version": "0.0.7", 303 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", 304 | "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", 305 | "dev": true 306 | }, 307 | "minimatch": { 308 | "version": "0.3.0", 309 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", 310 | "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", 311 | "dev": true, 312 | "requires": { 313 | "lru-cache": "2", 314 | "sigmund": "~1.0.0" 315 | } 316 | }, 317 | "minimist": { 318 | "version": "0.0.8", 319 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 320 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 321 | "dev": true 322 | }, 323 | "mkdirp": { 324 | "version": "0.5.1", 325 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 326 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 327 | "dev": true, 328 | "requires": { 329 | "minimist": "0.0.8" 330 | } 331 | }, 332 | "mocha": { 333 | "version": "2.5.3", 334 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", 335 | "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", 336 | "dev": true, 337 | "requires": { 338 | "commander": "2.3.0", 339 | "debug": "2.2.0", 340 | "diff": "1.4.0", 341 | "escape-string-regexp": "1.0.2", 342 | "glob": "3.2.11", 343 | "growl": "1.9.2", 344 | "jade": "0.26.3", 345 | "mkdirp": "0.5.1", 346 | "supports-color": "1.2.0", 347 | "to-iso-string": "0.0.2" 348 | } 349 | }, 350 | "ms": { 351 | "version": "0.7.1", 352 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", 353 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", 354 | "dev": true 355 | }, 356 | "object-inspect": { 357 | "version": "1.8.0", 358 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", 359 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", 360 | "dev": true 361 | }, 362 | "object-keys": { 363 | "version": "1.1.1", 364 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 365 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 366 | "dev": true 367 | }, 368 | "object.assign": { 369 | "version": "4.1.2", 370 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 371 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 372 | "dev": true, 373 | "requires": { 374 | "call-bind": "^1.0.0", 375 | "define-properties": "^1.1.3", 376 | "has-symbols": "^1.0.1", 377 | "object-keys": "^1.1.1" 378 | } 379 | }, 380 | "pause-stream": { 381 | "version": "0.0.11", 382 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 383 | "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 384 | "dev": true, 385 | "requires": { 386 | "through": "~2.3" 387 | } 388 | }, 389 | "safe-buffer": { 390 | "version": "5.2.1", 391 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 392 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 393 | "dev": true 394 | }, 395 | "samsam": { 396 | "version": "1.1.2", 397 | "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", 398 | "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", 399 | "dev": true 400 | }, 401 | "should": { 402 | "version": "4.6.5", 403 | "resolved": "https://registry.npmjs.org/should/-/should-4.6.5.tgz", 404 | "integrity": "sha1-DRI0bbvRsCj59Lt6nVRzZPw2qH8=", 405 | "dev": true, 406 | "requires": { 407 | "should-equal": "0.3.1", 408 | "should-format": "0.0.7", 409 | "should-type": "0.0.4" 410 | } 411 | }, 412 | "should-equal": { 413 | "version": "0.3.1", 414 | "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.3.1.tgz", 415 | "integrity": "sha1-vY6pemdI45+tR2o75v1y68LnK/A=", 416 | "dev": true, 417 | "requires": { 418 | "should-type": "0.0.4" 419 | } 420 | }, 421 | "should-format": { 422 | "version": "0.0.7", 423 | "resolved": "https://registry.npmjs.org/should-format/-/should-format-0.0.7.tgz", 424 | "integrity": "sha1-Hi74a9kdqcLgQSM1tWq6vZov3hI=", 425 | "dev": true, 426 | "requires": { 427 | "should-type": "0.0.4" 428 | } 429 | }, 430 | "should-type": { 431 | "version": "0.0.4", 432 | "resolved": "https://registry.npmjs.org/should-type/-/should-type-0.0.4.tgz", 433 | "integrity": "sha1-ATKgVBemEmhmQmrPEW8e1WI6XNA=", 434 | "dev": true 435 | }, 436 | "sigmund": { 437 | "version": "1.0.1", 438 | "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", 439 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", 440 | "dev": true 441 | }, 442 | "sinon": { 443 | "version": "1.17.7", 444 | "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", 445 | "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", 446 | "dev": true, 447 | "requires": { 448 | "formatio": "1.1.1", 449 | "lolex": "1.3.2", 450 | "samsam": "1.1.2", 451 | "util": ">=0.10.3 <1" 452 | } 453 | }, 454 | "split": { 455 | "version": "1.0.1", 456 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", 457 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 458 | "dev": true, 459 | "requires": { 460 | "through": "2" 461 | } 462 | }, 463 | "stream-combiner": { 464 | "version": "0.2.2", 465 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", 466 | "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", 467 | "dev": true, 468 | "requires": { 469 | "duplexer": "~0.1.1", 470 | "through": "~2.3.4" 471 | } 472 | }, 473 | "string.prototype.trimend": { 474 | "version": "1.0.2", 475 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", 476 | "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", 477 | "dev": true, 478 | "requires": { 479 | "define-properties": "^1.1.3", 480 | "es-abstract": "^1.18.0-next.1" 481 | }, 482 | "dependencies": { 483 | "es-abstract": { 484 | "version": "1.18.0-next.1", 485 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", 486 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", 487 | "dev": true, 488 | "requires": { 489 | "es-to-primitive": "^1.2.1", 490 | "function-bind": "^1.1.1", 491 | "has": "^1.0.3", 492 | "has-symbols": "^1.0.1", 493 | "is-callable": "^1.2.2", 494 | "is-negative-zero": "^2.0.0", 495 | "is-regex": "^1.1.1", 496 | "object-inspect": "^1.8.0", 497 | "object-keys": "^1.1.1", 498 | "object.assign": "^4.1.1", 499 | "string.prototype.trimend": "^1.0.1", 500 | "string.prototype.trimstart": "^1.0.1" 501 | } 502 | } 503 | } 504 | }, 505 | "string.prototype.trimstart": { 506 | "version": "1.0.2", 507 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", 508 | "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", 509 | "dev": true, 510 | "requires": { 511 | "define-properties": "^1.1.3", 512 | "es-abstract": "^1.18.0-next.1" 513 | }, 514 | "dependencies": { 515 | "es-abstract": { 516 | "version": "1.18.0-next.1", 517 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", 518 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", 519 | "dev": true, 520 | "requires": { 521 | "es-to-primitive": "^1.2.1", 522 | "function-bind": "^1.1.1", 523 | "has": "^1.0.3", 524 | "has-symbols": "^1.0.1", 525 | "is-callable": "^1.2.2", 526 | "is-negative-zero": "^2.0.0", 527 | "is-regex": "^1.1.1", 528 | "object-inspect": "^1.8.0", 529 | "object-keys": "^1.1.1", 530 | "object.assign": "^4.1.1", 531 | "string.prototype.trimend": "^1.0.1", 532 | "string.prototype.trimstart": "^1.0.1" 533 | } 534 | } 535 | } 536 | }, 537 | "supports-color": { 538 | "version": "1.2.0", 539 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", 540 | "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", 541 | "dev": true 542 | }, 543 | "through": { 544 | "version": "2.3.8", 545 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 546 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 547 | "dev": true 548 | }, 549 | "to-iso-string": { 550 | "version": "0.0.2", 551 | "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", 552 | "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", 553 | "dev": true 554 | }, 555 | "util": { 556 | "version": "0.12.3", 557 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", 558 | "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", 559 | "dev": true, 560 | "requires": { 561 | "inherits": "^2.0.3", 562 | "is-arguments": "^1.0.4", 563 | "is-generator-function": "^1.0.7", 564 | "is-typed-array": "^1.1.3", 565 | "safe-buffer": "^5.1.2", 566 | "which-typed-array": "^1.1.2" 567 | } 568 | }, 569 | "which-typed-array": { 570 | "version": "1.1.2", 571 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", 572 | "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", 573 | "dev": true, 574 | "requires": { 575 | "available-typed-arrays": "^1.0.2", 576 | "es-abstract": "^1.17.5", 577 | "foreach": "^2.0.5", 578 | "function-bind": "^1.1.1", 579 | "has-symbols": "^1.0.1", 580 | "is-typed-array": "^1.1.3" 581 | } 582 | } 583 | } 584 | } 585 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stk500", 3 | "version": "2.0.3", 4 | "description": "Fully javascript stk500v1 programmer. Allows you to program Arduinos straight from node (or browser for that matter). No more avrdude system calls or using the arduino IDE.", 5 | "main": "index.js", 6 | "directories": { 7 | "example": "examples" 8 | }, 9 | "scripts": { 10 | "test": "mocha --include test/*.js test/*.js --reporter spec" 11 | }, 12 | "repository": "https://github.com/jacobrosenthal/js-stk500v1", 13 | "keywords": [ 14 | "arduino", 15 | "stk500", 16 | "avrdude" 17 | ], 18 | "author": "Jacob Rosenthal", 19 | "license": "MIT", 20 | "dependencies": { 21 | "async": "^0.9.0" 22 | }, 23 | "devDependencies": { 24 | "event-stream": "^3.1.7", 25 | "mocha": "^2.0.1", 26 | "should": "^4.4.1", 27 | "intel-hex": "^0.1.1", 28 | "serialport": "^1.4.0", 29 | "sinon": "^1.12.2" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /test/receiveData.js: -------------------------------------------------------------------------------- 1 | var Statics = require('../lib/statics'); 2 | var receiveData = require('../lib/receiveData'); 3 | var es = require('event-stream'); 4 | 5 | describe('receiveData', function () { 6 | beforeEach(function () { 7 | this.port = es.through(function (data) { 8 | this.emit('data', data); 9 | }); 10 | }); 11 | 12 | it('should receive a matching buffer', function (done) { 13 | var inputBuffer = Statics.OK_RESPONSE; 14 | receiveData(this.port, 10, inputBuffer.length, function (err, data) { 15 | if (err) { 16 | return done(err); 17 | } 18 | Should.not.exist(err); 19 | var matched = data.equals(inputBuffer); 20 | Should.exist(matched); 21 | matched.should.equal(true); 22 | done(); 23 | }); 24 | this.port.write(inputBuffer); 25 | }); 26 | 27 | it('should timeout', function (done) { 28 | var inputBuffer = Statics.OK_RESPONSE; 29 | receiveData(this.port, 10, inputBuffer.length, function (err, data) { 30 | if (err) { 31 | err.message.should.equal('receiveData timeout after 10ms'); 32 | return done(); 33 | } 34 | done(new Error('Did not time out')); 35 | }); 36 | this.port.write(inputBuffer.slice(0, 1)); 37 | }); 38 | 39 | it('should receive a buffer in chunks', function (done) { 40 | var inputBuffer = Statics.OK_RESPONSE; 41 | receiveData(this.port, 10, inputBuffer.length, function (err, data) { 42 | if (err) { 43 | return done(err); 44 | } 45 | Should.not.exist(err); 46 | var matched = data.equals(inputBuffer); 47 | Should.exist(matched); 48 | matched.should.equal(true); 49 | done(); 50 | }); 51 | this.port.write(inputBuffer.slice(0, 1)); 52 | this.port.write(inputBuffer.slice(1, 2)); 53 | }); 54 | }); 55 | -------------------------------------------------------------------------------- /test/sendCommand.js: -------------------------------------------------------------------------------- 1 | var sinon = require("sinon"); 2 | var Statics = require('../lib/statics'); 3 | var sendCommand = require('../lib/sendCommand'); 4 | var es = require('event-stream'); 5 | 6 | var EventEmitter = require('events').EventEmitter; 7 | 8 | var hardware = new EventEmitter(); 9 | 10 | hardware.write = function(data, callback){ 11 | callback(null, data); 12 | }; 13 | 14 | hardware.insert = function(data){ 15 | this.emit('data', data); 16 | }; 17 | 18 | describe('sendCommands', function () { 19 | 20 | var sandbox; 21 | 22 | beforeEach(function() { 23 | sandbox = sinon.sandbox.create(); 24 | }); 25 | 26 | afterEach(function () { 27 | hardware.removeAllListeners(); 28 | sandbox.restore(); 29 | }); 30 | 31 | 32 | it('should write a buffer command', function (done) { 33 | var writeSpy = sandbox.spy(hardware, 'write'); 34 | var cmd = Buffer.from([Statics.Cmnd_STK_GET_SYNC, Statics.Sync_CRC_EOP]); 35 | var opt = { 36 | cmd: cmd, 37 | responseData: Statics.OK_RESPONSE, 38 | timeout: 10 39 | }; 40 | sendCommand(hardware, opt, function (err, data) { 41 | var matched = writeSpy.args[0][0].equals(cmd); 42 | Should.exist(matched); 43 | matched.should.equal(true); 44 | done(); 45 | }); 46 | process.nextTick(function(){ 47 | hardware.insert(Statics.OK_RESPONSE); 48 | }); 49 | }); 50 | 51 | it('should write an array command', function (done) { 52 | var writeSpy = sandbox.spy(hardware, 'write'); 53 | var opt = { 54 | cmd: [ 55 | Statics.Cmnd_STK_GET_SYNC 56 | ], 57 | responseData: Statics.OK_RESPONSE, 58 | timeout: 10 59 | }; 60 | sendCommand(hardware, opt, function (err, data) { 61 | var matched = writeSpy.args[0][0].equals(Buffer.from([Statics.Cmnd_STK_GET_SYNC, Statics.Sync_CRC_EOP])); 62 | Should.exist(matched); 63 | matched.should.equal(true); 64 | done(); 65 | }); 66 | process.nextTick(function(){ 67 | hardware.insert(Statics.OK_RESPONSE); 68 | }); 69 | }); 70 | 71 | it('should timeout', function (done) { 72 | var opt = { 73 | cmd: [ 74 | Statics.Cmnd_STK_GET_SYNC 75 | ], 76 | responseData: Statics.OK_RESPONSE, 77 | timeout: 10 78 | }; 79 | 80 | sendCommand(hardware, opt, function (err, data) { 81 | if (err) { 82 | err.message.should.equal('Sending 3020: receiveData timeout after 10ms'); 83 | return done(); 84 | } 85 | done(new Error('Did not time out')); 86 | done(); 87 | }); 88 | 89 | }); 90 | 91 | it('should get n number of bytes', function (done) { 92 | var opt = { 93 | cmd: [ 94 | Statics.Cmnd_STK_GET_SYNC 95 | ], 96 | responseLength: 2, 97 | timeout: 10 98 | }; 99 | 100 | sendCommand(hardware, opt, function (err, data) { 101 | if (err) { 102 | return done(err); 103 | } 104 | Should.not.exist(err); 105 | var matched = data.equals(Statics.OK_RESPONSE); 106 | Should.exist(matched); 107 | matched.should.equal(true); 108 | done(); 109 | 110 | }); 111 | process.nextTick(function(){ 112 | hardware.insert(Statics.OK_RESPONSE); 113 | }); 114 | }); 115 | 116 | it('should match response', function (done) { 117 | var opt = { 118 | cmd: [ 119 | Statics.Cmnd_STK_GET_SYNC 120 | ], 121 | responseData: Statics.OK_RESPONSE, 122 | timeout: 10 123 | }; 124 | 125 | sendCommand(hardware, opt, function (err, data) { 126 | if (err) { 127 | return done(err); 128 | } 129 | Should.not.exist(err); 130 | var matched = data.equals(Statics.OK_RESPONSE); 131 | Should.exist(matched); 132 | matched.should.equal(true); 133 | done(); 134 | 135 | }); 136 | process.nextTick(function(){ 137 | hardware.insert(Statics.OK_RESPONSE); 138 | }); 139 | }); 140 | 141 | }); 142 | -------------------------------------------------------------------------------- /test/setup.js: -------------------------------------------------------------------------------- 1 | require('mocha'); 2 | global.Should = require('should'); 3 | --------------------------------------------------------------------------------