├── Arduino └── hardware │ └── blend │ └── avr │ ├── boards.txt │ ├── bootloaders │ └── caterina │ │ ├── Caterina-Blend.hex │ │ ├── Caterina-BlendMicro.hex │ │ ├── Caterina.c │ │ ├── Caterina.h │ │ ├── Descriptors.c │ │ ├── Descriptors.h │ │ ├── Makefile │ │ └── README.TXT │ ├── platform.txt │ └── variants │ ├── Blend │ └── pins_arduino.h │ ├── BlendMicro-16MHz │ ├── main.cpp │ └── pins_arduino.h │ └── BlendMicro-8MHz │ ├── main.cpp │ └── pins_arduino.h ├── BlendMicro_Pins.png ├── Blend_Pins.png ├── Docs ├── BoardsManager.pdf └── LibraryManager.pdf ├── PCB ├── Blend_Micro.dxf ├── Blend_Micro_V1.0_Bottom_Silkscreen.pdf ├── Blend_Micro_V1.0_SCH_20140328.pdf ├── Blend_Micro_V1.0_Top_Silkscreen.pdf ├── Blend_V1.0_SCH_20140425.pdf └── RBT04_Module_SCH_20140213.pdf ├── RBL_Windows_Driver_Installer.zip └── README.md /Arduino/hardware/blend/avr/boards.txt: -------------------------------------------------------------------------------- 1 | # RedBearLab Blend Boards Configuration 2 | # 3 | # For more information see: 4 | # - https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification 5 | # - https://github.com/arduino/Arduino/wiki/Arduino-Hardware-Cores-migration-guide-from-1.0-to-1.6 6 | # 7 | 8 | ############################################################## 9 | 10 | blend.name=Blend 11 | blend.vid.0=0x2341 12 | blend.pid.0=0x0036 13 | blend.vid.1=0x2341 14 | blend.pid.1=0x8036 15 | 16 | blend.upload.tool=arduino:avrdude 17 | blend.upload.protocol=avr109 18 | blend.upload.maximum_size=28672 19 | blend.upload.maximum_data_size=2560 20 | blend.upload.speed=57600 21 | blend.upload.disable_flushing=true 22 | blend.upload.use_1200bps_touch=true 23 | blend.upload.wait_for_upload_port=true 24 | 25 | blend.bootloader.tool=arduino:avrdude 26 | blend.bootloader.low_fuses=0xff 27 | blend.bootloader.high_fuses=0xd8 blend.bootloader.extended_fuses=0xcb 28 | blend.bootloader.file=caterina/Caterina-Blend.hex blend.bootloader.unlock_bits=0x3F 29 | blend.bootloader.lock_bits=0x2F blend.build.mcu=atmega32u4 blend.build.f_cpu=16000000L blend.build.vid=0x2341 blend.build.pid=0x8036 30 | blend.build.usb_product="Blend" 31 | blend.build.board=BLEND blend.build.core=arduino:arduino blend.build.variant=Blend 32 | blend.build.extra_flags={build.usb_flags} 33 | 34 | ############################################################## 35 | 36 | blendmicro8.name=Blend Micro 3.3V/8MHz 37 | blendmicro8.vid.0=0x03EB 38 | blendmicro8.pid.0=0x2404 39 | 40 | blendmicro8.upload.tool=arduino:avrdude 41 | blendmicro8.upload.protocol=avr109 42 | blendmicro8.upload.maximum_size=28672 43 | blendmicro8.upload.maximum_data_size=2560 44 | blendmicro8.upload.speed=57600 45 | blendmicro8.upload.disable_flushing=true 46 | blendmicro8.upload.use_1200bps_touch=true 47 | blendmicro8.upload.wait_for_upload_port=true 48 | 49 | blendmicro8.bootloader.tool=arduino:avrdude 50 | blendmicro8.bootloader.low_fuses=0xff 51 | blendmicro8.bootloader.high_fuses=0xd8 52 | blendmicro8.bootloader.extended_fuses=0xcf 53 | blendmicro8.bootloader.file=caterina/Caterina-BlendMicro.hex 54 | blendmicro8.bootloader.unlock_bits=0x3F 55 | blendmicro8.bootloader.lock_bits=0x2F 56 | 57 | blendmicro8.build.mcu=atmega32u4 58 | blendmicro8.build.f_cpu=8000000L 59 | blendmicro8.build.vid=0x03EB 60 | blendmicro8.build.pid=0x2404 61 | blendmicro8.build.usb_product="BlendMicro 8MHz" 62 | blendmicro8.build.board=BLEND_MICRO_8MHZ 63 | blendmicro8.build.core=arduino:arduino 64 | blendmicro8.build.variant=BlendMicro-8MHz 65 | blendmicro8.build.extra_flags={build.usb_flags} 66 | 67 | ############################################################## 68 | 69 | blendmicro16.name=Blend Micro 3.3V/16MHz (overclock) 70 | blendmicro16.vid.0=0x03EB 71 | blendmicro16.pid.0=0x2404 72 | 73 | blendmicro16.upload.tool=arduino:avrdude 74 | blendmicro16.upload.protocol=avr109 75 | blendmicro16.upload.maximum_size=28672 76 | blendmicro16.upload.maximum_data_size=2560 77 | blendmicro16.upload.speed=57600 78 | blendmicro16.upload.disable_flushing=true 79 | blendmicro16.upload.use_1200bps_touch=true 80 | blendmicro16.upload.wait_for_upload_port=true 81 | 82 | blendmicro16.bootloader.tool=arduino:avrdude 83 | blendmicro16.bootloader.low_fuses=0xff 84 | blendmicro16.bootloader.high_fuses=0xd8 85 | blendmicro16.bootloader.extended_fuses=0xcf 86 | blendmicro16.bootloader.file=caterina/Caterina-BlendMicro.hex 87 | blendmicro16.bootloader.unlock_bits=0x3F 88 | blendmicro16.bootloader.lock_bits=0x2F 89 | 90 | blendmicro16.build.mcu=atmega32u4 91 | blendmicro16.build.f_cpu=16000000L 92 | blendmicro16.build.vid=0x03EB 93 | blendmicro16.build.pid=0x2404 94 | blendmicro16.build.usb_product="BlendMicro 16MHz" 95 | blendmicro16.build.board=BLEND_MICRO_16MHZ 96 | blendmicro16.build.core=arduino:arduino 97 | blendmicro16.build.variant=BlendMicro-16MHz 98 | blendmicro16.build.extra_flags={build.usb_flags} 99 | 100 | ############################################################## 101 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Caterina-Blend.hex: -------------------------------------------------------------------------------- 1 | :200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150 2 | :200020000C9496010C9496010C94F6040C947D050C9496010C9496010C9496010C949601BA 3 | :200040000C9496010C9496010C9496010C9496010C9496010C9496010C9496010C94B501C9 4 | :200060000C9496010C9496010C9496010C9496010C9496010C9496010C9496010C949601C8 5 | :200080000C9496010C9496010C9496010C9496010C9496010C9496010C9496010C949601A8 6 | :2000A0000C9496010C9496010C94960100000000240027002A002D003000000000002500A4 7 | :2000C00028002B002E003100000000002300260029002C002F00040404040403040502027D 8 | :2000E0000202040302020202060606060606040402020204040802011040804010204080A8 9 | :200100004080080204018040201002011080102040400000000200080E0000030401000BB2 10 | :200120000000070605040100080A0B0C0D09040309042203410072006400750069006E00CD 11 | :200140006F0020004C0065006F006E006100720064006F00180341007200640075006900CC 12 | :200160006E006F0020004C004C004300120100020000004041233680000101020001120120 13 | :200180000002020000404123368000010102000100C18081C1080B00020202010009040052 14 | :2001A000000102020000052400100105240101010424020605240600010705810310004094 15 | :2001C00009040100020A000000070502024000000705830240000005010902A1010901A186 16 | :2001E000008501050919012903150025019503750181029501750581030501093009310943 17 | :20020000381581257F750895038106C0C005010906A1018502050719E029E715002501754D 18 | :20022000019508810295017508810395067508150025650507190029658100C0090402004C 19 | :2002400001030000000921010100012265000705840340000100000000000000002A2B2895 20 | :200260000000000000000000000000000000000000000000002C9EB4A0A1A2A434A6A7A553 21 | :20028000AE362D3738271E1F20212223242526B333B62EB7B89F8485868788898A8B8C8D58 22 | :2002A0008E8F909192939495969798999A9B9C9D2F3130A3AD350405060708090A0B0C0D7C 23 | :2002C0000E0F101112131415161718191A1B1C1DAFB1B0B5000032041007150811241FBE85 24 | :2002E000CFEFDAE0DEBFCDBF11E0A0E0B1E0E0EAF2E102C005900D92AC32B107D9F711E071 25 | :20030000ACE2B1E001C01D92AD39B107E1F712E0CCEDD2E004C02297FE010E944A09C63D07 26 | :20032000D107C9F70E946C030C944E090C9400008091000161E00E94390368EE73E080E043 27 | :2003400090E00E94FD018091000160E00E94390368EE73E080E090E00E94FD010895809196 28 | :20036000000161E00E94AC0208951F920F920FB60F9211242F933F938F939F93AF93BF93E5 29 | :200380008091300190913101A0913201B0913301309134010196A11DB11D232F2D5F2D3794 30 | :2003A00020F02D570196A11DB11D209334018093300190933101A0933201B0933301809117 31 | :2003C0002C0190912D01A0912E01B0912F010196A11DB11D80932C0190932D01A0932E01BA 32 | :2003E000B0932F01BF91AF919F918F913F912F910F900FBE0F901F9018959B01AC017FB734 33 | :20040000F89480912C0190912D01A0912E01B0912F0166B5A89B05C06F3F19F00196A11DC3 34 | :20042000B11D7FBFBA2FA92F982F8827860F911DA11DB11D62E0880F991FAA1FBB1F6A9577 35 | :20044000D1F7BC012DC0FFB7F89480912C0190912D01A0912E01B0912F01E6B5A89B05C0E7 36 | :20046000EF3F19F00196A11DB11DFFBFBA2FA92F982F88278E0F911DA11DB11DE2E0880FFD 37 | :20048000991FAA1FBB1FEA95D1F7861B970B885E9340C8F2215030404040504068517C4F8F 38 | :2004A000211531054105510571F60895789484B5826084BD84B5816084BD85B5826085BD0F 39 | :2004C00085B5816085BDEEE6F0E0808181608083E1E8F0E010828081826080838081816043 40 | :2004E0008083E0E8F0E0808181608083E1E9F0E0808182608083808181608083E0E9F0E07E 41 | :20050000808181608083E1ECF0E0808184608083808182608083808181608083E3ECF0E007 42 | :20052000808181608083E0ECF0E0808182608083E2ECF0E0808181608083EAE7F0E080812F 43 | :20054000846080838081826080838081816080838081806880830895CF93DF93482F50E0E5 44 | :20056000CA018C509F4FFC0134914A525F4FFA018491882369F190E0880F991FFC01E455D0 45 | :20058000FF4FA591B491FC01E654FF4FC591D491662351F42FB7F8948C91932F9095892362 46 | :2005A0008C93888189230BC0623061F42FB7F8948C91932F909589238C938881832B8883B2 47 | :2005C0002FBF06C09FB7F8948C91832B8C939FBFDF91CF910895883071F1893068F48230EF 48 | :2005E00031F1833020F4813009F042C01DC0833089F08430E9F512C08B3059F18C3028F41C 49 | :200600008930E9F08A30A1F51EC08C3031F18E3079F529C0809180008F7703C0809180003C 50 | :200620008F7D80938000089584B58F7702C084B58F7D84BD0895809190008F7707C08091DB 51 | :2006400090008F7D03C080919000877F8093900008958091C0008F7703C08091C0008F7DDD 52 | :200660008093C00008958091C200877F8093C2000895FF920F931F93F62E482F50E0CA0144 53 | :200680008E5E9E4FFC012491CA018C509F4FFC0114914A525F4FFA0104910023C9F022239D 54 | :2006A00019F0822F0E94EB02E02FF0E0EE0FFF1FE654FF4FA591B4919FB7F894FF2021F4DE 55 | :2006C0008C911095812302C08C91812B8C939FBF1F910F91FF900895CF93DF930E94560262 56 | :2006E0008DE391E00E9433040E94AF01C0E0D0E00E9498012097E1F30E940000F9CF282F17 57 | :20070000809137018823C1F057FF1AC015C02898909336018091F1008193E217F307B9F75C 58 | :200720004115510539F08091F200882319F48BE68093E800AFBF02C04FEF5FEFCA01089599 59 | :20074000AFB7F89427702093E9008091F200282F30E0241735070CF4A901FB019B01240F1E 60 | :20076000311D94E6DACFDF93CF930F92CDB7DEB7BE016F5F7F4F41E050E00E947F03019712 61 | :2007800019F02FEF3FEF03C08981282F30E0C9010F90CF91DF910895FF920F931F93F82EEF 62 | :2007A000142F052F40913A0150913B01212F302FC901DC01FB016EEF29C0F7FE02C0949125 63 | :2007C00001C09081209138013091390124173507ACF48091E8008570E1F38091E80082FF0F 64 | :2007E00003C02FEF3FEF17C09093F100C90101968F739070892B11F46093E8002F5F3F4FEC 65 | :200800003093390120933801119731961097A9F6812F902F9C01C9011F910F91FF900895E8 66 | :200820009C018091E80082FFFCCFF901260F311D03C08091F1008193E217F307D1F7289805 67 | :2008400084E6809336018BEF8093E800CB0108958093E9008091F200882319F08AE38093D3 68 | :20086000E800089508951092370181E08093D70080EA8093D80082E189BD09B400FEFDCFAC 69 | :2008800061E070E080E090E00E94FD0180E98093D8008CE08093E2001092E000559A209A77 70 | :2008A00008955F926F927F928F929F92AF92BF92CF92DF92EF92FF920F931F93CF93DF93A8 71 | :2008C000E82E842E752E80913701882371F18B01242F352FC901EC017AEFF72E67E0962EC4 72 | :2008E0009E2050E4552E8E2D90E040E2A42EB12CA822B9223AE3632E20E4C22ED12CC82259 73 | :20090000D92258C09FB7F8949092E9008091E80085FD02C020E004C08091F200252D281B3E 74 | :200920009FBF222361F4FA9419F42FEF3FEF4DC061E070E080E090E00E94FD013BC0822F1E 75 | :2009400090E0C817D9070CF42C2FC21BD1094FB7F8949092E900A114B10421F406C01092D2 76 | :20096000F10021502223D9F719C0E7FC03C0F801922F10C0C801322F06C0FC010196E491FE 77 | :20098000E093F10031503323C1F706C081918093F10091509923D1F7020F111D8091E800EB 78 | :2009A00085FF05C0209729F4C114D10411F06092E8004FBF209709F0A5CF5D9884E68093F1 79 | :2009C0003501282D372DC9019C01C901DF91CF911F910F91FF90EF90DF90CF90BF90AF906D 80 | :2009E0009F908F907F906F905F9008951F920F920FB60F9211242F933F934F935F936F93B8 81 | :200A00007F938F939F93AF93BF93EF93FF938091E1001092E100982F83FF0FC01092E900B0 82 | :200A200081E08093EB001092EC0082E38093ED001092370188E08093F00092FF34C083E037 83 | :200A40008093E9008091F200882319F08AE38093E8008FB7F89492E09093E9009091F20018 84 | :200A60008FBF992321F082E891E00E94530780913501882351F080913501815080933501F0 85 | :200A800080913501882309F45D9A80913601882351F0809136018150809336018091360191 86 | :200AA000882309F4289AFF91EF91BF91AF919F918F917F916F915F914F913F912F910F90CD 87 | :200AC0000FBE0F901F9018950F931F93DF93CF930F92CDB7DEB719828E010F5F1F4FC8019D 88 | :200AE0000E947907C8010E941209898190E00F90CF91DF911F910F9108951F920F920FB661 89 | :200B00000F921124EF92FF921F932F933F934F935F936F937F938F939F93AF93BF93EF9355 90 | :200B2000FF93DF93CF93CDB7DEB76197DEBFCDBF1092E9008091E80083FF0FC1FE01319679 91 | :200B40009E01275F3F4F03C08091F1008193E217F307D1F7289884E68093360182EF809356 92 | :200B6000E800998197FF05C08091E80080FFFCCF03C08EEF8093E800292F30E0C901807672 93 | :200B80009070892B09F0C2C08A81882329F41092F1001092F100D6C0813009F4D3C08330A3 94 | :200BA00009F4D0C0853049F48091E80080FFFCCF8B8180688093E300C5C0863009F07CC019 95 | :200BC0001C81EF80F8841230C1F51092E900109239011092380110923B0110923A010E94F6 96 | :200BE000640599E0FE013996DF01292F1D922A95E9F799871A8791E09E8790E8988B9AEF44 97 | :200C0000998B2091380130913901275F3F4F3C872B878D871092E9001092390110923801EC 98 | :200C2000F0923B01E0923A0180E0BF0149E050E00E94CC030E94640585C01092E9001092E2 99 | :200C4000390110923801F0923B01E0923A01123241F482E290E00E940A09892B09F476C02B 100 | :200C600071C0113079F488E0E816F10419F481E080933C0180913C01882309F06BC0ECE68D 101 | :200C8000F1E013C0133009F061C08B81882319F4EEE2F1E00AC0823019F4E2E3F1E005C00A 102 | :200CA000813009F053C0E4E5F1E0449180E8BF0150E00E94CC0346C0873009F447C08830C6 103 | :200CC00021F481E08093F1003DC08930D9F523703070232BD9F5E1E9F1E091E031E026E3A1 104 | :200CE0009093E9003093EB0084918093EC002093ED009F5F3196953099F78EE78093EA00FA 105 | :200D00001092EA008B81809337011CC08F8198851092E900109239011092380190933B0146 106 | :200D200080933A018D81882329F4CE0101960E94850706C0823051F4CE0101960E94DB0754 107 | :200D4000882321F08EEF8093E80007C081E28093EB0003C0EEE7F1E0A8CF6196DEBFCDBF37 108 | :200D6000CF91DF91FF91EF91BF91AF919F918F917F916F915F914F913F912F911F91FF9004 109 | :200D8000EF900F900FBE0F901F90189520917E0130917F018091800190918101281B390B40 110 | :200DA0002F733070C901089520917E0130917F0180918001909181012817390719F42FEF3A 111 | :200DC0003FEF09C0E0918001F0918101E25CFE4F8081282F30E0C901089520917E013091DC 112 | :200DE0007F0180918001909181012817390719F42FEF3FEF13C0E0918001F0918101E25C60 113 | :200E0000FE4F2081809180019091810101968F739070909381018093800130E0C901089566 114 | :200E2000109285011092840188EE93E0A0E0B0E08093860190938701A0938801B09389019C 115 | :200E400080E191E0909383018093820108950F931F93DF93CF930F92CDB7DEB78C0169838B 116 | :200E600080910901882369F083E0BE016F5F7F4F41E050E00E9451041816190614F49C015B 117 | :200E800007C081E090E0F8019383828320E030E0C9010F90CF91DF911F910F91089583E00D 118 | :200EA0000E9428040895CF93DF9312C082E00E94B3032FEF8F3F9207C9F0E0917E01F091B8 119 | :200EC0007F01E25CFE4F8083D0937F01C0937E01C0917E01D0917F012196CF73D070809154 120 | :200EE000800190918101C817D90701F7DF91CF910895FC0180818E5F808380E865E971E0B5 121 | :200F000042E450E00E94CC030895FC0181819081913A59F4813209F04CC080E062E071E09A 122 | :200F200047E050E00E94CC0342C0913209F041C0803239F482E091E067E070E00E9410042B 123 | :200F400036C0823209F035C08281809309018091020190910301A0910401B0910501805B48 124 | :200F60009440A040B04019F58091090180FD12C087E797E790930108809300082BE088E1AE 125 | :200F800090E00FB6F894A895809360000FBE209360000DC088E10FB6F89480936000109264 126 | :200FA00060000FBEA895109201081092000881E0089580E00895FC0191818081813A31F487 127 | :200FC000913089F080E0933089F40DC0813269F49B3021F4828180930A0105C09A3029F4AD 128 | :200FE000828180930B0181E0089580E00895EF92FF920F931F938C01E62EDC01ED91FC91E5 129 | :201000000480F581E02D0995F82ED801ED91FC910680F781E02DC8016E2D09958F2D90E0E8 130 | :201020001F910F91FF90EF90089510929001109294011092930182E291E090939201809377 131 | :2010400091010895EF92FF920F931F93DF93CF930F92CDB7DEB789838B017A0184E0BE0137 132 | :201060006F5F7F4F41E050E00E94510484E4B801A7010E9451040F90CF91DF911F910F910D 133 | :20108000FF90EF90089582E048E050E00E9422080895FC01168217821086118612861386F6 134 | :2010A00014823496BF010E9443080895DC01683810F0685829C0E62FF0E067FF13C0E0580A 135 | :2010C000F04081E090E002C0880F991FEA95E2F7809514962C911497282314962C93149720 136 | :2010E00060E012C0EB5AFD4F6491662319F420E030E01DC067FF08C014968C9114978D7F29 137 | :2011000014968C9314976F77FD0190E0662321F08681861709F416829F5F31969630B1F701 138 | :20112000CD011496BD010E94430821E030E0C9010895CF93DF93DC01683810F0685825C01E 139 | :20114000E62FF0E067FF12C0E058F04081E090E002C0880F991FEA95E2F714962C911497BE 140 | :20116000282B14962C93149760E00FC0EB5AFD4F64916623D9F167FF08C014968C91149780 141 | :20118000826014968C9314976F7716968C9116978617A9F117968C911797861781F1189631 142 | :2011A0008C911897861759F119968C911997861731F11A968C911A97861709F11B968C915E 143 | :2011C0001B978617E1F0ED01E0E0F0E09E2F8E81882321F4EA0FFB1F668306C09F5F31964E 144 | :2011E0002196E630F10591F7963049F481E090E013969C938E93129720E030E007C0CD0189 145 | :201200001496BD010E94430821E030E0C901DF91CF91089580E867ED71E045E650E00E9427 146 | :20122000CC030895FC0180818F5F808380E86CE372E049E150E00E94CC030895CF92DF9210 147 | :20124000EF92FF920F931F93CF93DF937C016B018A01C0E0D0E00FC0D6016D916D01D701A6 148 | :20126000ED91FC910190F081E02DC7010995C80FD91F015010400115110571F7CE01DF91AB 149 | :20128000CF911F910F91FF90EF90DF90CF900895EE0FFF1F0590F491E02D0994F894FFCFEC 150 | :2012A0000D0000E100000000000001010000000027071E09C606ED06D4064F0753070000A0 151 | :2012C0000000F7071E09990856084908FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD 152 | :2012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E 153 | :20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED 154 | :20132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD 155 | :20134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD 156 | :20136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D 157 | :20138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D 158 | :2013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D 159 | :2013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D 160 | :2013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D 161 | :20140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC 162 | :20142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC 163 | :20144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC 164 | :20146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C 165 | :20148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C 166 | :2014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C 167 | :2014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C 168 | :2014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C 169 | :20150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB 170 | :20152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB 171 | :20154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB 172 | :20156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B 173 | :20158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B 174 | :2015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B 175 | :2015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B 176 | :2015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B 177 | :20160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA 178 | :20162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA 179 | :20164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA 180 | :20166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A 181 | :20168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A 182 | :2016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A 183 | :2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A 184 | :2016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A 185 | :20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 186 | :20172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 187 | :20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 188 | :20176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 189 | :20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 190 | :2017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 191 | :2017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 192 | :2017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 193 | :20180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 194 | :20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 195 | :20184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 196 | :20186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 197 | :20188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 198 | :2018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 199 | :2018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 200 | :2018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 201 | :20190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 202 | :20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 203 | :20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 204 | :20196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 205 | :20198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 206 | :2019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 207 | :2019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 208 | :2019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 209 | :201A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 210 | :201A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 211 | :201A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 212 | :201A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 213 | :201A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 214 | :201AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 215 | :201AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 216 | :201AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 217 | :201B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 218 | :201B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 219 | :201B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 220 | :201B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 221 | :201B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 222 | :201BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 223 | :201BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 224 | :201BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 225 | :201C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 226 | :201C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 227 | :201C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 228 | :201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 229 | :201C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 230 | :201CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 231 | :201CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 232 | :201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 233 | :201D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 234 | :201D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 235 | :201D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 236 | :201D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 237 | :201D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 238 | :201DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 239 | :201DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 240 | :201DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 241 | :201E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 242 | :201E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 243 | :201E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 244 | :201E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 245 | :201E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 246 | :201EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 247 | :201EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 248 | :201EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 249 | :201F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 250 | :201F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 251 | :201F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 252 | :201F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 253 | :201F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 254 | :201FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 255 | :201FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 256 | :201FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 257 | :20200000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 258 | :20202000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 259 | :20204000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 260 | :20206000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 261 | :20208000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 262 | :2020A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 263 | :2020C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 264 | :2020E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 265 | :20210000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF 266 | :20212000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF 267 | :20214000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F 268 | :20216000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F 269 | :20218000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F 270 | :2021A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F 271 | :2021C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F 272 | :2021E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 273 | :20220000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE 274 | :20222000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE 275 | :20224000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E 276 | :20226000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E 277 | :20228000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E 278 | :2022A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E 279 | :2022C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E 280 | :2022E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 281 | :20230000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD 282 | :20232000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD 283 | :20234000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D 284 | :20236000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D 285 | :20238000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D 286 | :2023A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D 287 | :2023C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D 288 | :2023E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD 289 | :20240000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC 290 | :20242000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC 291 | :20244000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C 292 | :20246000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C 293 | :20248000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C 294 | :2024A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C 295 | :2024C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C 296 | :2024E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC 297 | :20250000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB 298 | :20252000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 299 | :20254000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B 300 | :20256000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B 301 | :20258000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B 302 | :2025A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B 303 | :2025C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B 304 | :2025E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB 305 | :20260000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA 306 | :20262000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA 307 | :20264000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A 308 | :20266000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A 309 | :20268000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A 310 | :2026A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A 311 | :2026C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A 312 | :2026E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA 313 | :20270000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 314 | :20272000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 315 | :20274000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 316 | :20276000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 317 | :20278000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 318 | :2027A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 319 | :2027C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 320 | :2027E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 321 | :20280000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 322 | :20282000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 323 | :20284000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 324 | :20286000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 325 | :20288000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 326 | :2028A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 327 | :2028C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 328 | :2028E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 329 | :20290000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 330 | :20292000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 331 | :20294000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 332 | :20296000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 333 | :20298000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 334 | :2029A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 335 | :2029C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 336 | :2029E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 337 | :202A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 338 | :202A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 339 | :202A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 340 | :202A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 341 | :202A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 342 | :202AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 343 | :202AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 344 | :202AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 345 | :202B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 346 | :202B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 347 | :202B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 348 | :202B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 349 | :202B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 350 | :202BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 351 | :202BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 352 | :202BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 353 | :202C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 354 | :202C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 355 | :202C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 356 | :202C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 357 | :202C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 358 | :202CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 359 | :202CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 360 | :202CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 361 | :202D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 362 | :202D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 363 | :202D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 364 | :202D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 365 | :202D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 366 | :202DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 367 | :202DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 368 | :202DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 369 | :202E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 370 | :202E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 371 | :202E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 372 | :202E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 373 | :202E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 374 | :202EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 375 | :202EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 376 | :202EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 377 | :202F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 378 | :202F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 379 | :202F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 380 | :202F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 381 | :202F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 382 | :202FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 383 | :202FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 384 | :202FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 385 | :20300000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 386 | :20302000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 387 | :20304000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 388 | :20306000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 389 | :20308000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 390 | :2030A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 391 | :2030C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 392 | :2030E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 393 | :20310000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF 394 | :20312000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF 395 | :20314000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F 396 | :20316000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F 397 | :20318000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F 398 | :2031A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F 399 | :2031C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F 400 | :2031E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF 401 | :20320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE 402 | :20322000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE 403 | :20324000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E 404 | :20326000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E 405 | :20328000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E 406 | :2032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E 407 | :2032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E 408 | :2032E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE 409 | :20330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD 410 | :20332000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD 411 | :20334000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D 412 | :20336000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D 413 | :20338000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D 414 | :2033A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D 415 | :2033C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D 416 | :2033E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED 417 | :20340000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC 418 | :20342000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC 419 | :20344000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C 420 | :20346000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C 421 | :20348000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C 422 | :2034A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C 423 | :2034C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C 424 | :2034E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC 425 | :20350000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB 426 | :20352000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB 427 | :20354000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B 428 | :20356000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B 429 | :20358000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B 430 | :2035A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B 431 | :2035C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B 432 | :2035E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB 433 | :20360000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA 434 | :20362000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA 435 | :20364000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A 436 | :20366000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A 437 | :20368000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A 438 | :2036A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A 439 | :2036C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A 440 | :2036E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA 441 | :20370000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 442 | :20372000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 443 | :20374000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 444 | :20376000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 445 | :20378000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 446 | :2037A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 447 | :2037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 448 | :2037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 449 | :20380000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 450 | :20382000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 451 | :20384000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 452 | :20386000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 453 | :20388000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 454 | :2038A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 455 | :2038C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 456 | :2038E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 457 | :20390000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 458 | :20392000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 459 | :20394000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 460 | :20396000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 461 | :20398000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 462 | :2039A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 463 | :2039C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 464 | :2039E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 465 | :203A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 466 | :203A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 467 | :203A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 468 | :203A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 469 | :203A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 470 | :203AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 471 | :203AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 472 | :203AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 473 | :203B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 474 | :203B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 475 | :203B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 476 | :203B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 477 | :203B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 478 | :203BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 479 | :203BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 480 | :203BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 481 | :203C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 482 | :203C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 483 | :203C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 484 | :203C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 485 | :203C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 486 | :203CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 487 | :203CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 488 | :203CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 489 | :203D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 490 | :203D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 491 | :203D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 492 | :203D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 493 | :203D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 494 | :203DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 495 | :203DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 496 | :203DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 497 | :203E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 498 | :203E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 499 | :203E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 500 | :203E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 501 | :203E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 502 | :203EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 503 | :203EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 504 | :203EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 505 | :203F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 506 | :203F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 507 | :203F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 508 | :203F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 509 | :203F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 510 | :203FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 511 | :203FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 512 | :203FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 513 | :20400000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 514 | :20402000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 515 | :20404000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 516 | :20406000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 517 | :20408000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 518 | :2040A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 519 | :2040C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 520 | :2040E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 521 | :20410000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF 522 | :20412000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F 523 | :20414000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F 524 | :20416000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F 525 | :20418000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F 526 | :2041A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F 527 | :2041C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 528 | :2041E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF 529 | :20420000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE 530 | :20422000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E 531 | :20424000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E 532 | :20426000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E 533 | :20428000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E 534 | :2042A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E 535 | :2042C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 536 | :2042E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE 537 | :20430000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD 538 | :20432000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D 539 | :20434000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D 540 | :20436000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D 541 | :20438000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D 542 | :2043A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D 543 | :2043C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD 544 | :2043E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD 545 | :20440000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC 546 | :20442000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C 547 | :20444000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C 548 | :20446000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C 549 | :20448000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C 550 | :2044A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C 551 | :2044C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC 552 | :2044E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC 553 | :20450000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 554 | :20452000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B 555 | :20454000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B 556 | :20456000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B 557 | :20458000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B 558 | :2045A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B 559 | :2045C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB 560 | :2045E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB 561 | :20460000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA 562 | :20462000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A 563 | :20464000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A 564 | :20466000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A 565 | :20468000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A 566 | :2046A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A 567 | :2046C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA 568 | :2046E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA 569 | :20470000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 570 | :20472000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 571 | :20474000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 572 | :20476000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 573 | :20478000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 574 | :2047A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 575 | :2047C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 576 | :2047E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 577 | :20480000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 578 | :20482000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 579 | :20484000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 580 | :20486000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 581 | :20488000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 582 | :2048A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 583 | :2048C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 584 | :2048E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 585 | :20490000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 586 | :20492000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 587 | :20494000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 588 | :20496000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 589 | :20498000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 590 | :2049A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 591 | :2049C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 592 | :2049E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 593 | :204A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 594 | :204A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 595 | :204A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 596 | :204A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 597 | :204A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 598 | :204AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 599 | :204AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 600 | :204AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 601 | :204B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 602 | :204B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 603 | :204B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 604 | :204B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 605 | :204B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 606 | :204BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 607 | :204BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 608 | :204BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 609 | :204C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 610 | :204C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 611 | :204C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 612 | :204C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 613 | :204C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 614 | :204CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 615 | :204CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 616 | :204CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 617 | :204D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 618 | :204D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 619 | :204D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 620 | :204D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 621 | :204D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 622 | :204DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 623 | :204DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 624 | :204DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 625 | :204E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 626 | :204E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 627 | :204E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 628 | :204E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 629 | :204E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 630 | :204EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 631 | :204EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 632 | :204EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 633 | :204F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 634 | :204F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 635 | :204F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 636 | :204F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 637 | :204F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 638 | :204FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 639 | :204FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 640 | :204FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 641 | :20500000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 642 | :20502000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 643 | :20504000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 644 | :20506000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 645 | :20508000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 646 | :2050A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 647 | :2050C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 648 | :2050E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 649 | :20510000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF 650 | :20512000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F 651 | :20514000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F 652 | :20516000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F 653 | :20518000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F 654 | :2051A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F 655 | :2051C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF 656 | :2051E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF 657 | :20520000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE 658 | :20522000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E 659 | :20524000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E 660 | :20526000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E 661 | :20528000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E 662 | :2052A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E 663 | :2052C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE 664 | :2052E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE 665 | :20530000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD 666 | :20532000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D 667 | :20534000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D 668 | :20536000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D 669 | :20538000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D 670 | :2053A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D 671 | :2053C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED 672 | :2053E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD 673 | :20540000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC 674 | :20542000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C 675 | :20544000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C 676 | :20546000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C 677 | :20548000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C 678 | :2054A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C 679 | :2054C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC 680 | :2054E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC 681 | :20550000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB 682 | :20552000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B 683 | :20554000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B 684 | :20556000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B 685 | :20558000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B 686 | :2055A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B 687 | :2055C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB 688 | :2055E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB 689 | :20560000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA 690 | :20562000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A 691 | :20564000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A 692 | :20566000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A 693 | :20568000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A 694 | :2056A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A 695 | :2056C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA 696 | :2056E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA 697 | :20570000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 698 | :20572000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 699 | :20574000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 700 | :20576000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 701 | :20578000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 702 | :2057A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 703 | :2057C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 704 | :2057E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 705 | :20580000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 706 | :20582000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 707 | :20584000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 708 | :20586000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 709 | :20588000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 710 | :2058A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 711 | :2058C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 712 | :2058E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 713 | :20590000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 714 | :20592000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 715 | :20594000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 716 | :20596000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 717 | :20598000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 718 | :2059A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 719 | :2059C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 720 | :2059E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 721 | :205A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 722 | :205A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 723 | :205A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 724 | :205A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 725 | :205A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 726 | :205AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 727 | :205AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 728 | :205AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 729 | :205B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 730 | :205B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 731 | :205B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 732 | :205B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 733 | :205B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 734 | :205BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 735 | :205BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 736 | :205BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 737 | :205C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 738 | :205C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 739 | :205C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 740 | :205C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 741 | :205C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 742 | :205CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 743 | :205CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 744 | :205CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 745 | :205D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 746 | :205D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 747 | :205D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 748 | :205D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 749 | :205D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 750 | :205DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 751 | :205DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 752 | :205DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 753 | :205E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 754 | :205E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 755 | :205E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 756 | :205E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 757 | :205E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 758 | :205EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 759 | :205EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 760 | :205EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 761 | :205F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 762 | :205F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 763 | :205F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 764 | :205F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 765 | :205F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 766 | :205FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 767 | :205FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 768 | :205FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 769 | :20600000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 770 | :20602000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 771 | :20604000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 772 | :20606000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 773 | :20608000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 774 | :2060A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 775 | :2060C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 776 | :2060E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 777 | :20610000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F 778 | :20612000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F 779 | :20614000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F 780 | :20616000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F 781 | :20618000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F 782 | :2061A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 783 | :2061C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF 784 | :2061E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF 785 | :20620000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E 786 | :20622000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E 787 | :20624000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E 788 | :20626000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E 789 | :20628000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E 790 | :2062A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 791 | :2062C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE 792 | :2062E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE 793 | :20630000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D 794 | :20632000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D 795 | :20634000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D 796 | :20636000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D 797 | :20638000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D 798 | :2063A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD 799 | :2063C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD 800 | :2063E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD 801 | :20640000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C 802 | :20642000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C 803 | :20644000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C 804 | :20646000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C 805 | :20648000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C 806 | :2064A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC 807 | :2064C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC 808 | :2064E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC 809 | :20650000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B 810 | :20652000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B 811 | :20654000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B 812 | :20656000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B 813 | :20658000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B 814 | :2065A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB 815 | :2065C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB 816 | :2065E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 817 | :20660000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A 818 | :20662000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A 819 | :20664000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A 820 | :20666000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A 821 | :20668000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A 822 | :2066A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA 823 | :2066C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA 824 | :2066E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA 825 | :20670000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 826 | :20672000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 827 | :20674000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 828 | :20676000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 829 | :20678000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 830 | :2067A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 831 | :2067C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 832 | :2067E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 833 | :20680000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 834 | :20682000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 835 | :20684000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 836 | :20686000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 837 | :20688000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 838 | :2068A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 839 | :2068C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 840 | :2068E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 841 | :20690000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 842 | :20692000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 843 | :20694000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 844 | :20696000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 845 | :20698000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 846 | :2069A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 847 | :2069C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 848 | :2069E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 849 | :206A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 850 | :206A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 851 | :206A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 852 | :206A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 853 | :206A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 854 | :206AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 855 | :206AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 856 | :206AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 857 | :206B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 858 | :206B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 859 | :206B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 860 | :206B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 861 | :206B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 862 | :206BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 863 | :206BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 864 | :206BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 865 | :206C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 866 | :206C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 867 | :206C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 868 | :206C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 869 | :206C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 870 | :206CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 871 | :206CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 872 | :206CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 873 | :206D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 874 | :206D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 875 | :206D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 876 | :206D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 877 | :206D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 878 | :206DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 879 | :206DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 880 | :206DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 881 | :206E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 882 | :206E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 883 | :206E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 884 | :206E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 885 | :206E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 886 | :206EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 887 | :206EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 888 | :206EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 889 | :206F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 890 | :206F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 891 | :206F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 892 | :206F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 893 | :206F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 894 | :206FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 895 | :206FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 896 | :206FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 897 | :2070000055C000006EC000006CC000006AC0000068C0000066C0000064C0000062C0000043 898 | :2070200060C000005EC00000F2C400005AC0000058C0000056C0000054C0000052C00000EE 899 | :2070400050C0000078C000004CC000004AC0000048C0000046C0000044C0000042C00000BE 900 | :2070600040C000003EC000003CC000003AC0000038C0000036C0000034C0000032C0000048 901 | :2070800030C000002EC000002CC000002AC0000028C0000026C0000024C0000022C00000A8 902 | :2070A00020C000001EC000001CC0000011241FBECFEFDAE0DEBFCDBF11E0A0E0B1E0E2E3BC 903 | :2070C000FFE702C005900D92A83AB107D9F711E0A8EAB1E001C01D92AE3BB107E1F78FD30B 904 | :2070E00026C78ECFF89410926F0010928100109285001092840081E085BF15BE47985D9AEB 905 | :20710000289A0C94000008952091B2013091B3012F5F3F4F3093B3012093B201932F37FFA6 906 | :2071200003C08EEF831B982F990F921710F447980895479A08951F920F920FB60F9211246E 907 | :207140002F938F939F93EF93FF9310928500109284008091A8019091A901009741F00197D3 908 | :207160009093A9018093A801892B09F45D9A8091AA019091AB01009741F001979093AB0126 909 | :207180008093AA01892B09F4289AE0E0F0E0859194918F5F9F4F49F08091AC019091AD0151 910 | :2071A00001969093AD018093AC01FF91EF919F918F912F910F900FBE0F901F90189584E0BC 911 | :2071C0008093E9000DC08091E8008B778093E80003C08EB3882351F08091E80082FFF9CFBE 912 | :2071E0008091E80085FFEFCF8091F1000895982F83E08093E9008091E80085FD0DC0809136 913 | :20720000E8008E778093E80003C08EB3882369F08091E80080FFF9CF9093F1005D9884E6CB 914 | :2072200090E09093A9018093A80108954F925F926F927F928F929F92AF92BF92CF92DF921E 915 | :20724000EF92FF920F931F93CF93DF9384E08093E9008091E80082FF57C2289884E690E067 916 | :207260009093AB018093AA01AADF182F853481F48CE49DE19093AD018093AC0107B600FC4B 917 | :20728000FDCFF999FECF81E180935700E89503C0843519F494DF8DE00DC28C34E1F38035F9 918 | :2072A000D1F3843721F484E4A2DF80E003C2813611F489E5FFC18134B1F481DF182F7FDFE3 919 | :2072C00090E0880F991FAA2797FDA095BA2F312F330F20E0442737FD4095542F822B932B68 920 | :2072E000A42BB52BB8C1803711F483E5E3C1833549F4C0E0D1E089917ADF21E0C730D20714 921 | :20730000D1F7D9C1863521F481E371DF80E3D2C1833731F487E86BDF85E969DF8EE1CAC149 922 | :207320008536B9F4E0E0F0E093E085E090935700E89507B600FCFDCF80935700E89507B65D 923 | :2073400000FCFDCFE058FF4FA0E7E030FA0771F7A2CF823739F4E1E0F0E089E08093570024 924 | :207360008491A8C1863439F4E0E0F0E089E08093570084919FC18E3439F4E3E0F0E089E0E5 925 | :2073800080935700849196C1813539F4E2E0F0E089E08093570084918DC1823631F489E521 926 | :2073A00026DF80E024DF80E885C1823419F0873609F0E5C01092AD011092AC0100DF082FE8 927 | :2073C000FEDEF82EFCDE682E8554823008F071C1902F80E0CF2DD0E0C82BD92B10926F00B3 928 | :2073E000173609F04BC081E180935700E895DD24CC24C3943FC0E090AE01F090AF010091CC 929 | :20740000B0011091B101B6E46B16D9F4ED2DF0E0EE29FF29E4918E2FEADEDD2081F082E08D 930 | :2074200090E0A0E0B0E0E80EF91E0A1F1B1FE092AE01F092AF010093B0011093B101DC2470 931 | :2074400018C0D801C701B695A7959795879559D5CEDE82E090E0A0E0B0E0E80EF91E0A1FF2 932 | :207460001B1FE092AE01F092AF010093B0011093B1012197209709F0BECF7DC08090AE01F5 933 | :207480009090AF01A090B001B090B10196E4691609F05DC083E0F40180935700E89507B63E 934 | :2074A00000FCFDCF54C0F6E46F1661F5772031F1E090AE01F090AF010091B0011091B1019E 935 | :2074C0007EDED82ECC24852D90E08C299D29F7010C0140925700E895112482E090E0A0E08B 936 | :2074E000B0E0E80EF91E0A1F1B1FE092AE01F092AF010093B0011093B10102C060DE582E1A 937 | :20750000742423C0E090AE01F090AF010091B0011091B10116950795F794E79450DE682FFA 938 | :20752000C701F7D48091AE019091AF01A091B001B091B1010296A11DB11D8093AE01909349 939 | :20754000AF01A093B001B093B101219704C05524772444244394209709F0A5CF96E46916B6 940 | :2075600041F485E0F40180935700E89507B600FCFDCF8DE03CDE82E080936F009CC0833492 941 | :2075800071F40091AE011091AF0119DE90E021E0F8010C0120935700E89511247CCE8336C8 942 | :2075A00019F5E090AE01F090AF010091B0011091B10105DEF701E16090E021E00C0120938C 943 | :2075C0005700E895112482E090E0A0E0B0E0E80EF91E0A1F1B1FE092AE01F092AF0100936A 944 | :2075E000B0011093B10157CE8D3661F4E091AE01F091AF0185E080935700E89507B600FCF2 945 | :20760000FDCF49CE823551F4E091AE01F091AF0105911491812FEBDD802F4CC0843421F5FE 946 | :20762000E090AE01F090AF010091B0011091B10116950795F794E794C2DD682FC70169D4DE 947 | :207640008091AE019091AF01A091B001B091B1010296A11DB11D8093AE019093AF01A093D8 948 | :20766000B001B093B10117CE843609F5E090AE01F090AF010091B0011091B101D801C70142 949 | :20768000B695A795979587953CD4B1DD82E090E0A0E0B0E0E80EF91E0A1F1B1FE092AE010A 950 | :2076A000F092AF010093B0011093B10104C08B3111F08FE39CDD83E08093E9009091E8002B 951 | :2076C0008091E8008E778093E80095FF04C010C08EB38823C9F08091E80080FFF9CF809193 952 | :2076E000E8008E778093E80003C08EB3882361F08091E80080FFF9CF84E08093E9008091F1 953 | :20770000E8008B778093E800DF91CF911F910F91FF90EF90DF90CF90BF90AF909F908F90AC 954 | :207720007F906F905F904F9008959091B601892F8F77813249F58091B7018032A1F081328A 955 | :2077400019F5913A09F58091E800877F8093E8008DE091E067E070E00BD28091E8008B770B 956 | :207760008093E8000895913279F48091E800877F8093E8008DE091E067E070E05DD2809192 957 | :20778000E8008E778093E800089582E061EC42E0B5D083E061E842E1B1D084E060E842E1EF 958 | :2077A000ADC084B7877F84BF88E10FB6F89480936000109260000FBE20E880E090E00FB63F 959 | :2077C000F89420936100809361000FBE81E085BF92E095BF3F9A209A559AE1E6F0E02083A1 960 | :2077E000108247985D9A289A109289008AEF8093880090936F0083E080938100F0C0409116 961 | :20780000000850910108109201081092000894B714BE88E10FB6F8948093600010926000D5 962 | :207820000FBE292F30E0F901E270F07091FD18C090FF05C0859194918F5F9F4F81F423FFFF 963 | :207840000FC08091090190910A014817590741F0E0E0F0E0859194918F5F9F4F09F042DC64 964 | :20786000A0DF78941092AD011092AC010CC0DEDC36D38091AC019091AD0181549F4110F00D 965 | :207880001092140141DC80911401882381F78091E00081608093E00025DC80E090E0089598 966 | :2078A000FA01923049F0933061F09130F9F485E191E022E130E01EC087E291E02EE330E04D 967 | :2078C00019C0882329F485E691E024E030E012C0813029F489E691E022E230E00BC0823006 968 | :2078E00029F48DE891E028E130E004C080E090E020E030E091838083C90108958093E9004E 969 | :207900008091EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881F62 970 | :2079200008958091B60188238CF403C08EB38823B1F08091E80082FFF9CF8091E8008B772A 971 | :207940008093E80008958EB3882349F08091E80080FFF9CF8091E8008E778093E800089594 972 | :20796000EF92FF920F931F9345D04CD008ED10E0F80180818F77808380818068808380819B 973 | :207980008F7D808319BC1EBA1092B40180EEE82EF12CF70180818B7F8083F8018081816052 974 | :2079A000808380E060E042E0A9DFE1EEF0E080818E7F8083E2EEF0E0808181608083808144 975 | :2079C00088608083F70180818E7F8083F8018081806180831F910F91FF90EF900895E7ED06 976 | :2079E000F0E08081816080838AE482BF81E08093B501B6CFE8EDF0E080818E7F808310921C 977 | :207A0000E20008951092DA001092E10008951F920F920FB60F9211242F933F934F935F93F6 978 | :207A20006F937F938F939F93AF93BF93EF93FF938091DA0080FF1BC08091D80080FF17C0B2 979 | :207A40008091DA008E7F8093DA008091D90080FF0BC080E189BD82E189BD09B400FEFDCF36 980 | :207A600081E08EBB3BD203C019BC1EBA37D28091E10080FF17C08091E20080FF13C0809138 981 | :207A8000E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC85E049 982 | :207AA0008EBB1CD28091E10084FF2CC08091E20084FF28C080E189BD82E189BD09B400FEC5 983 | :207AC000FDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093E20012 984 | :207AE0008091E20081608093E2008091B401882331F48091E30087FD02C081E001C084E067 985 | :207B00008EBBECD18091E10083FF21C08091E20083FF1DC08091E100877F8093E10082E06A 986 | :207B20008EBB1092B4018091E1008E7F8093E1008091E2008E7F8093E2008091E2008061E9 987 | :207B40008093E20080E060E042E0D8DEC7D1FF91EF91BF91AF919F918F917F916F915F9130 988 | :207B60004F913F912F910F900FBE0F901F9018959C014091BC015091BD014617570718F49D 989 | :207B8000F90190E044C06115710511F0AB01F8CF8091E8008E778093E80040E050E0F0CF0F 990 | :207BA0008EB3882309F444C0853009F443C08091E80083FF02C081E008958091E80082FD70 991 | :207BC00031C08091E80080FF22C08091F3009091F200782F60E0292F30E0262B372B07C07A 992 | :207BE00081918093F100415050402F5F3F4F4115510519F02830310598F390E02830310566 993 | :207C000009F491E08091E8008E778093E8004115510531F6992321F605C08EB3882341F075 994 | :207C2000853041F08091E80082FFF7CF80E0089582E0089583E008959C016115710529F47C 995 | :207C40008091E8008B778093E800F90126C08EB3882391F1853091F18091E80083FF02C06C 996 | :207C600081E008958091E80082FFF1CF06C08091F10081936150704059F02091F300809191 997 | :207C8000F200322F20E090E0822B932B892B79F78091E8008B778093E80061157105B9F601 998 | :207CA00005C08EB3882341F0853041F08091E80080FFF7CF80E0089582E0089583E00895C2 999 | :207CC0000F931F93DF93CF9300D0CDB7DEB7E6EBF1E08091F100819381E0EE3BF807C9F792 1000 | :207CE00024DD8091E80083FFE4C08091B6019091B701953009F46DC0963040F4913081F1A7 1001 | :207D0000913070F0933009F0D4C02AC0983009F4A3C0993009F4B2C0963009F0CAC07CC023 1002 | :207D2000803809F4C6C0823809F0C3C08091BA0187708093E9008091EB001092E9002091DB 1003 | :207D4000E800277F2093E80090E025E0969587952A95E1F781708093F1001092F10087C0D8 1004 | :207D6000882319F0823009F0A4C08F71823009F0A0C08091B801882331F52091BA01277097 1005 | :207D800009F497C02093E9008091EB0080FF1BC0933021F48091EB00806213C08091EB0018 1006 | :207DA00080618093EB0081E090E002C0880F991F2A95E2F78093EA001092EA008091EB00E5 1007 | :207DC00088608093EB001092E9008091E800877F51C0882309F06DC01091B8011F770FB79B 1008 | :207DE000F8948091E800877F8093E8009ADD8091E80080FFFCCF8091E3008078812B809398 1009 | :207E0000E30080688093E300112311F482E001C083E08EBB0FBF4DC08058823008F049C033 1010 | :207E20008091B8019091B9016091BA01AE014F5F5F4F36DDBC01009709F43BC08091E8008E 1011 | :207E4000877F8093E80089819A8192DE8091E8008B778093E8002DC0803859F58091E800AA 1012 | :207E6000877F8093E8008091B4018093F1008091E8008E778093E80054DD1BC08823C9F4CA 1013 | :207E80009091B8019230A8F48091E800877F8093E8009093B40145DD8091B401882331F420 1014 | :207EA0008091E30087FD02C081E001C084E08EBB6CDC8091E80083FF0AC08091EB0080624E 1015 | :207EC0008093EB008091E800877F8093E8000F900F90CF91DF911F910F91089508951F9360 1016 | :207EE0008EB3882361F01091E9001092E9008091E80083FF01C0E4DE17701093E9001F916F 1017 | :207F00000895F999FECF92BD81BDF89A992780B50895262FF999FECF1FBA92BD81BD20BDBD 1018 | :207F20000FB6F894FA9AF99A0FBE01960895F894FFCF4341544552494E4100777700080031 1019 | :207F40000000000000080112011001020000084123360001000201000109023E00020100FF 1020 | :207F600080320904000001020201000524001001042402040524060001070582030800FF0C 1021 | :207F800009040100020A000000070504021000010705830210000104030904220341007216 1022 | :207FA000006400750069006E006F0020004C0065006F006E006100720064006F0000001836 1023 | :1A7FC00003410072006400750069006E006F0020004C004C004300000000D7 1024 | :00000001FF 1025 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Caterina-BlendMicro.hex: -------------------------------------------------------------------------------- 1 | :1070000055C000006EC000006CC000006AC00000E7 2 | :1070100068C0000066C0000064C0000062C00000DC 3 | :1070200060C000005EC00000EAC400005AC000005A 4 | :1070300058C0000056C0000054C0000052C00000FC 5 | :1070400050C000007DC000004CC000004AC00000DD 6 | :1070500048C0000046C0000044C0000042C000001C 7 | :1070600040C000003EC000003CC000003AC000002C 8 | :1070700038C0000036C0000034C0000032C000003C 9 | :1070800030C000002EC000002CC000002AC000004C 10 | :1070900028C0000026C0000024C0000022C000005C 11 | :1070A00020C000001EC000001CC0000011241FBE34 12 | :1070B000CFEFDAE0DEBFCDBF11E0A0E0B1E0E6EF58 13 | :1070C000FEE702C005900D92A83AB107D9F711E08A 14 | :1070D000A8EAB1E001C01D92AE3BB107E1F787D34A 15 | :1070E00008C78ECFE1E6F0E080E8808381E080830E 16 | :1070F000F89410926F001092810010928500109207 17 | :10710000840085BF15BE47985D9A289A0C940000AC 18 | :1071100008952091B2013091B3012E5F3F4F30931B 19 | :10712000B3012093B201932F37FF03C08EEF831B6F 20 | :10713000982F990F921710F447980895479A089539 21 | :107140001F920F920FB60F9211242F938F939F933C 22 | :10715000EF93FF9310928500109284008091A80114 23 | :107160009091A901009741F001979093A901809314 24 | :10717000A801892B09F45D9A8091AA019091AB0135 25 | :10718000009741F001979093AB018093AA01892B5E 26 | :1071900009F4289AE0E0F0E0859194918F5F9F4F89 27 | :1071A00049F08091AC019091AD0101969093AD01B1 28 | :1071B0008093AC01FF91EF919F918F912F910F9050 29 | :1071C0000FBE0F901F90189584E08093E9000DC0CA 30 | :1071D0008091E8008B778093E80003C08EB388230A 31 | :1071E00051F08091E80082FFF9CF8091E80085FF9F 32 | :1071F000EFCF8091F1000895982F83E08093E9000C 33 | :107200008091E80085FD0DC08091E8008E77809325 34 | :10721000E80003C08EB3882369F08091E80080FF06 35 | :10722000F9CF9093F1005D9884E690E09093A901E6 36 | :107230008093A80108954F925F926F927F928F92F0 37 | :107240009F92AF92BF92CF92DF92EF92FF920F93F5 38 | :107250001F93CF93DF9384E08093E9008091E8004F 39 | :1072600082FF4AC2289884E690E09093AB01809315 40 | :10727000AA01AADF182F853481F48CEA9DE090934F 41 | :10728000AD018093AC0107B600FCFDCFF999FECFAC 42 | :1072900081E180935700E89503C0843519F494DFA9 43 | :1072A0008DE000C28C34E1F38035D1F3843721F4D2 44 | :1072B00084E4A2DF80E0F6C1813611F489E5F2C1F1 45 | :1072C0008134F1F481DF182F7FDF90E0880F991F60 46 | :1072D000AA2797FDA095BA2F312F330F20E044271E 47 | :1072E00037FD4095542F822B932BA42BB52B8093E5 48 | :1072F000AE019093AF01A093B001B093B101D0CF94 49 | :10730000803711F483E5CEC1833549F4C0E0D1E084 50 | :10731000899172DF21E0C730D207D1F7C4C1863529 51 | :1073200021F481E369DF80E3BDC1833731F487E86D 52 | :1073300063DF85E961DF8EE1B5C18536B9F4E0E050 53 | :10734000F0E093E085E090935700E89507B600FCE5 54 | :10735000FDCF80935700E89507B600FCFDCFE058BD 55 | :10736000FF4FA0E7E030FA0771F79ACF823739F480 56 | :1073700089E0E1E0F0E080935700849193C1863486 57 | :1073800039F489E0E0E0F0E08093570084918AC10D 58 | :107390008E3439F489E0E3E0F0E080935700849183 59 | :1073A00081C1813539F489E0E2E0F0E08093570053 60 | :1073B000849178C1823631F489E51EDF80E01CDFDC 61 | :1073C00080E870C1823419F0873609F0D3C010927A 62 | :1073D000AD011092AC01F8DE082FF6DEF82EF4DED7 63 | :1073E000682E8554823008F05CC1902F80E08F2C8D 64 | :1073F0009924882A992A10926F00A090AE01B0902B 65 | :10740000AF01C090B001D090B101173609F044C06F 66 | :1074100081E180935700E89586017501DD24CC2435 67 | :10742000C3942EC0B6E46B1699F4ED2DF0E0EE296E 68 | :10743000FF29E4918E2FE0DEDD2041F082E090E034 69 | :10744000A0E0B0E0E80EF91E0A1F1B1FDC2415C0E7 70 | :10745000F999FECFD801C701B695A795979587955D 71 | :1074600092BD81BDF89A80B5C7DE82E090E0A0E0D1 72 | :10747000B0E0E80EF91E0A1F1B1F0894810891084E 73 | :107480008114910479F6E092AE01F092AF0100937D 74 | :10749000B0011093B1016AC096E4691609F047C0C3 75 | :1074A00083E0F50180935700E89507B600FCFDCF17 76 | :1074B0003EC0F6E46F16E1F47720B1F085DED82FF8 77 | :1074C000C0E0852D90E08C2B9D2BF7010C014092A4 78 | :1074D0005700E895112482E090E0A0E0B0E0E80ECB 79 | :1074E000F91E0A1F1B1F02C06FDE582E74241BC01A 80 | :1074F0006BDE282FF999FECF1FBAD801C701B695C8 81 | :10750000A7959795879592BD81BD20BD0FB6F8943C 82 | :10751000FA9AF99A0FBE82E090E0A0E0B0E0E80E9F 83 | :10752000F91E0A1F1B1F08948108910806C08601D6 84 | :10753000750155247724442443948114910409F05F 85 | :10754000B8CFE092AE01F092AF010093B00110937A 86 | :10755000B10196E4691641F485E0F5018093570086 87 | :10756000E89507B600FCFDCF8DE046DE82E0809313 88 | :107570006F0099C0833471F40091AE011091AF0196 89 | :1075800023DE90E021E0F8010C0120935700E895FC 90 | :10759000112486CE833699F4E090AE01F090AF01CD 91 | :1075A0000091B0011091B1010FDEF701E16090E0B0 92 | :1075B00021E00C0120935700E895112437C08D3647 93 | :1075C00061F4E091AE01F091AF0185E08093570046 94 | :1075D000E89507B600FCFDCF63CE823551F4E0910B 95 | :1075E000AE01F091AF0105911491812F05DE802F3E 96 | :1075F00059C0843461F5E090AE01F090AF01009184 97 | :10760000B0011091B101E0DD282FF999FECF1FBA2A 98 | :10761000D801C701B695A7959795879592BD81BD6D 99 | :1076200020BD0FB6F894FA9AF99A0FBE82E090E066 100 | :10763000A0E0B0E0E80EF91E0A1F1B1FE092AE01A9 101 | :10764000F092AF010093B0011093B10129CE8436BE 102 | :1076500031F5E090AE01F090AF010091B0011091D2 103 | :10766000B101F999FECFD801C701B695A7959795B5 104 | :10767000879592BD81BDF89A80B5BEDD82E090E02D 105 | :10768000A0E0B0E0E80EF91E0A1F1B1FE092AE0159 106 | :10769000F092AF010093B0011093B10104C08B319F 107 | :1076A00011F08FE3A9DD83E08093E9009091E80079 108 | :1076B0008091E8008E778093E80095FF04C010C0A9 109 | :1076C0008EB38823C9F08091E80080FFF9CF8091C4 110 | :1076D000E8008E778093E80003C08EB3882361F0C2 111 | :1076E0008091E80080FFF9CF84E08093E9008091E9 112 | :1076F000E8008B778093E800DF91CF911F910F9185 113 | :10770000FF90EF90DF90CF90BF90AF909F908F90C1 114 | :107710007F906F905F904F9008959091B601892F60 115 | :107720008F77813249F58091B7018032A1F08132A3 116 | :1077300019F5913A09F58091E800877F8093E80078 117 | :107740008DE091E067E070E00BD28091E8008B77EC 118 | :107750008093E8000895913279F48091E800877F62 119 | :107760008093E8008DE091E067E070E05DD2809169 120 | :10777000E8008E778093E800089582E061EC42E0B3 121 | :10778000B5D083E061E842E1B1D084E060E842E155 122 | :10779000ADC084B7877F84BF88E10FB6F89480932B 123 | :1077A0006000109260000FBE20E881E090E00FB60C 124 | :1077B000F89420936100809361000FBE81E085BF43 125 | :1077C00092E095BF3F9A209A559AE1E6F0E0208337 126 | :1077D000808347985D9A289A109289008AEF809357 127 | :1077E000880090936F0083E080938100F0C0409107 128 | :1077F000000850910108109201081092000894B7F7 129 | :1078000014BE88E10FB6F894809360001092600077 130 | :107810000FBE292F30E0F901E270F07091FD18C021 131 | :1078200090FF05C0859194918F5F9F4F81F423FF56 132 | :107830000FC08091090190910A014817590741F042 133 | :10784000E0E0F0E0859194918F5F9F4F09F04ADC72 134 | :10785000A0DF78941092AD011092AC010CC0EBDC6B 135 | :1078600036D38091AC019091AD01815A9F4010F0C8 136 | :10787000109214014EDC80911401882381F78091CD 137 | :10788000E00081608093E0002DDC80E090E00895CE 138 | :10789000FA01923049F0933061F09130F9F485E1CA 139 | :1078A00091E022E130E01EC087E291E02EE330E07B 140 | :1078B00019C0882329F485E691E024E030E012C065 141 | :1078C000813029F489E691E022E230E00BC0823079 142 | :1078D00029F48DE891E028E130E004C080E090E0F8 143 | :1078E00020E030E091838083C90108958093E9000E 144 | :1078F0008091EB0081608093EB001092ED0060932B 145 | :10790000EC004093ED008091EE00881F8827881FCF 146 | :1079100008958091B60188238CF403C08EB3882328 147 | :10792000B1F08091E80082FFF9CF8091E8008B7779 148 | :107930008093E80008958EB3882349F08091E80091 149 | :1079400080FFF9CF8091E8008E778093E80008955A 150 | :10795000EF92FF920F931F9345D04CD008ED10E0AB 151 | :10796000F80180818F778083808180688083808127 152 | :107970008F7D808319BC1EBA1092B40180EEE82E70 153 | :10798000F12CF70180818B7F8083F80180818160F9 154 | :10799000808380E060E042E0A9DFE1EEF0E08081FA 155 | :1079A0008E7F8083E2EEF0E0808181608083808141 156 | :1079B00088608083F70180818E7F8083F8018081D9 157 | :1079C000806180831F910F91FF90EF900895E7ED04 158 | :1079D000F0E08081816080838AE482BF81E08093CF 159 | :1079E000B501B6CFE8EDF0E080818E7F8083109204 160 | :1079F000E20008951092DA001092E10008951F92BB 161 | :107A00000F920FB60F9211242F933F934F935F93D2 162 | :107A10006F937F938F939F93AF93BF93EF93FF9356 163 | :107A20008091DA0080FF1BC08091D80080FF17C0D2 164 | :107A30008091DA008E7F8093DA008091D90080FFF8 165 | :107A40000BC080E189BD82E189BD09B400FEFDCF94 166 | :107A500081E08EBB3BD203C019BC1EBA37D28091E5 167 | :107A6000E10080FF17C08091E20080FF13C0809189 168 | :107A7000E2008E7F8093E2008091E200806180933B 169 | :107A8000E2008091D80080628093D80019BC85E024 170 | :107A90008EBB1CD28091E10084FF2CC08091E2005B 171 | :107AA00084FF28C080E189BD82E189BD09B400FE60 172 | :107AB000FDCF8091D8008F7D8093D8008091E10028 173 | :107AC0008F7E8093E1008091E2008F7E8093E200C0 174 | :107AD0008091E20081608093E2008091B40188236C 175 | :107AE00031F48091E30087FD02C081E001C084E0B1 176 | :107AF0008EBBECD18091E10083FF21C08091E20038 177 | :107B000083FF1DC08091E100877F8093E10082E0C8 178 | :107B10008EBB1092B4018091E1008E7F8093E100D2 179 | :107B20008091E2008E7F8093E2008091E20080618C 180 | :107B30008093E20080E060E042E0D8DEC7D1FF91B0 181 | :107B4000EF91BF91AF919F918F917F916F915F91D5 182 | :107B50004F913F912F910F900FBE0F901F9018954E 183 | :107B60009C014091BC015091BD014617570718F484 184 | :107B7000F90190E044C06115710511F0AB01F8CF37 185 | :107B80008091E8008E778093E80040E050E0F0CFED 186 | :107B90008EB3882309F444C0853009F443C0809132 187 | :107BA000E80083FF02C081E008958091E80082FD33 188 | :107BB00031C08091E80080FF22C08091F300909155 189 | :107BC000F200782F60E0292F30E0262B372B07C0FA 190 | :107BD00081918093F100415050402F5F3F4F4115FC 191 | :107BE000510519F02830310598F390E0283031051F 192 | :107BF00009F491E08091E8008E778093E8004115C8 193 | :107C0000510531F6992321F605C08EB3882341F042 194 | :107C1000853041F08091E80082FFF7CF80E0089541 195 | :107C200082E0089583E008959C016115710529F4AF 196 | :107C30008091E8008B778093E800F90126C08EB32D 197 | :107C4000882391F1853091F18091E80083FF02C093 198 | :107C500081E008958091E80082FFF1CF06C0809115 199 | :107C6000F10081936150704059F02091F3008091B0 200 | :107C7000F200322F20E090E0822B932B892B79F7B2 201 | :107C80008091E8008B778093E80061157105B9F663 202 | :107C900005C08EB3882341F0853041F08091E80023 203 | :107CA00080FFF7CF80E0089582E0089583E0089593 204 | :107CB0000F931F93DF93CF9300D0CDB7DEB7E6EBE2 205 | :107CC000F1E08091F100819381E0EE3BF807C9F784 206 | :107CD00024DD8091E80083FFE4C08091B60190919B 207 | :107CE000B701953009F46DC0963040F4913081F1C0 208 | :107CF000913070F0933009F0D4C02AC0983009F464 209 | :107D0000A3C0993009F4B2C0963009F0CAC07CC053 210 | :107D1000803809F4C6C0823809F0C3C08091BA0126 211 | :107D200087708093E9008091EB001092E900209128 212 | :107D3000E800277F2093E80090E025E0969587955E 213 | :107D40002A95E1F781708093F1001092F10087C0CD 214 | :107D5000882319F0823009F0A4C08F71823009F0B5 215 | :107D6000A0C08091B801882331F52091BA01277015 216 | :107D700009F497C02093E9008091EB0080FF1BC0BD 217 | :107D8000933021F48091EB00806213C08091EB006E 218 | :107D900080618093EB0081E090E002C0880F991F22 219 | :107DA0002A95E2F78093EA001092EA008091EB00B6 220 | :107DB00088608093EB001092E9008091E800877F53 221 | :107DC00051C0882309F06DC01091B8011F770FB71B 222 | :107DD000F8948091E800877F8093E8009ADD809195 223 | :107DE000E80080FFFCCF8091E3008078812B8093B6 224 | :107DF000E30080688093E300112311F482E001C066 225 | :107E000083E08EBB0FBF4DC08058823008F049C060 226 | :107E10008091B8019091B9016091BA01AE014F5FB4 227 | :107E20005F4F36DDBC01009709F43BC08091E8004C 228 | :107E3000877F8093E80089819A8192DE8091E800B3 229 | :107E40008B778093E8002DC0803859F58091E80049 230 | :107E5000877F8093E8008091B4018093F100809146 231 | :107E6000E8008E778093E80054DD1BC08823C9F4B6 232 | :107E70009091B8019230A8F48091E800877F8093B8 233 | :107E8000E8009093B40145DD8091B401882331F47A 234 | :107E90008091E30087FD02C081E001C084E08EBBD9 235 | :107EA0006CDC8091E80083FF0AC08091EB00806267 236 | :107EB0008093EB008091E800877F8093E8000F902B 237 | :107EC0000F90CF91DF911F910F91089508951F9307 238 | :107ED0008EB3882361F01091E9001092E90080913F 239 | :107EE000E80083FF01C0E4DE17701093E9001F91E2 240 | :067EF0000895F894FFCF95 241 | :107EF6004341544552494E4100777700080000003F 242 | :107F060000000008011201100102000008EB030442 243 | :107F16002401000201000109023E00020100803234 244 | :107F260009040000010202010005240010010424D6 245 | :107F360002040524060001070582030800FF090460 246 | :107F46000100020A000000070504021000010705EF 247 | :107F5600830210000104030904220342006C006539 248 | :107F6600006E00640020004D006900630072006F1F 249 | :107F760000200020002000200020000000180352EE 250 | :107F86000042004C0020002000200020002000209D 251 | :087F96000020002000000000A3 252 | :040000030000700089 253 | :00000001FF 254 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Caterina.c: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2011. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaim all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * 33 | * Main source file for the CDC class bootloader. This file contains the complete bootloader logic. 34 | */ 35 | 36 | #define INCLUDE_FROM_CATERINA_C 37 | #include "Caterina.h" 38 | 39 | /** Contains the current baud rate and other settings of the first virtual serial port. This must be retained as some 40 | * operating systems will not open the port unless the settings can be set successfully. 41 | */ 42 | static CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 0, 43 | .CharFormat = CDC_LINEENCODING_OneStopBit, 44 | .ParityType = CDC_PARITY_None, 45 | .DataBits = 8 }; 46 | 47 | /** Current address counter. This stores the current address of the FLASH or EEPROM as set by the host, 48 | * and is used when reading or writing to the AVRs memory (either FLASH or EEPROM depending on the issued 49 | * command.) 50 | */ 51 | static uint32_t CurrAddress; 52 | 53 | /** Flag to indicate if the bootloader should be running, or should exit and allow the application code to run 54 | * via a watchdog reset. When cleared the bootloader will exit, starting the watchdog and entering an infinite 55 | * loop until the AVR restarts and the application runs. 56 | */ 57 | static bool RunBootloader = true; 58 | 59 | /* Pulse generation counters to keep track of the time remaining for each pulse type */ 60 | #define TX_RX_LED_PULSE_PERIOD 100 61 | uint16_t TxLEDPulse = 0; // time remaining for Tx LED pulse 62 | uint16_t RxLEDPulse = 0; // time remaining for Rx LED pulse 63 | 64 | /* Bootloader timeout timer */ 65 | #define TIMEOUT_PERIOD 4000 66 | uint16_t Timeout = 0; 67 | 68 | uint16_t bootKey = 0x7777; 69 | volatile uint16_t *const bootKeyPtr = (volatile uint16_t *)0x0800; 70 | 71 | void StartSketch(void) 72 | { 73 | CPU_PRESCALE(1); 74 | 75 | cli(); 76 | 77 | /* Undo TIMER1 setup and clear the count before running the sketch */ 78 | TIMSK1 = 0; 79 | TCCR1B = 0; 80 | TCNT1H = 0; // 16-bit write to TCNT1 requires high byte be written first 81 | TCNT1L = 0; 82 | 83 | /* Relocate the interrupt vector table to the application section */ 84 | MCUCR = (1 << IVCE); 85 | MCUCR = 0; 86 | 87 | L_LED_OFF(); 88 | TX_LED_OFF(); 89 | RX_LED_OFF(); 90 | 91 | /* jump to beginning of application space */ 92 | __asm__ volatile("jmp 0x0000"); 93 | } 94 | 95 | /* Breathing animation on L LED indicates bootloader is running */ 96 | uint16_t LLEDPulse; 97 | void LEDPulse(void) 98 | { 99 | LLEDPulse+=2; 100 | uint8_t p = LLEDPulse >> 8; 101 | if (p > 127) 102 | p = 254-p; 103 | p += p; 104 | if (((uint8_t)LLEDPulse) > p) 105 | L_LED_OFF(); 106 | else 107 | L_LED_ON(); 108 | } 109 | 110 | /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously 111 | * runs the bootloader processing routine until it times out or is instructed to exit. 112 | */ 113 | int main(void) 114 | { 115 | /* Save the value of the boot key memory before it is overwritten */ 116 | uint16_t bootKeyPtrVal = *bootKeyPtr; 117 | *bootKeyPtr = 0; 118 | 119 | /* Check the reason for the reset so we can act accordingly */ 120 | uint8_t mcusr_state = MCUSR; // store the initial state of the Status register 121 | MCUSR = 0; // clear all reset flags 122 | 123 | /* Watchdog may be configured with a 15 ms period so must disable it before going any further */ 124 | wdt_disable(); 125 | 126 | if (mcusr_state & (1< TIMEOUT_PERIOD) 151 | RunBootloader = false; 152 | 153 | LEDPulse(); 154 | } 155 | 156 | /* Disconnect from the host - USB interface will be reset later along with the AVR */ 157 | USB_Detach(); 158 | 159 | /* Jump to beginning of application space to run the sketch - do not reset */ 160 | StartSketch(); 161 | } 162 | 163 | /** Configures all hardware required for the bootloader. */ 164 | void SetupHardware(void) 165 | { 166 | /* Disable watchdog if enabled by bootloader/fuses */ 167 | MCUSR &= ~(1 << WDRF); 168 | wdt_disable(); 169 | 170 | /* Disable clock division */ 171 | clock_prescale_set(clock_div_2); 172 | 173 | /* Relocate the interrupt vector table to the bootloader section */ 174 | MCUCR = (1 << IVCE); 175 | MCUCR = (1 << IVSEL); 176 | 177 | LED_SETUP(); 178 | CPU_PRESCALE(1); 179 | L_LED_OFF(); 180 | TX_LED_OFF(); 181 | RX_LED_OFF(); 182 | 183 | /* Initialize TIMER1 to handle bootloader timeout and LED tasks. 184 | * With 16 MHz clock and 1/64 prescaler, timer 1 is clocked at 250 kHz 185 | * Our chosen compare match generates an interrupt every 1 ms. 186 | * This interrupt is disabled selectively when doing memory reading, erasing, 187 | * or writing since SPM has tight timing requirements. 188 | */ 189 | OCR1AH = 0; 190 | OCR1AL = 250; 191 | TIMSK1 = (1 << OCIE1A); // enable timer 1 output compare A match interrupt 192 | TCCR1B = ((1 << CS11) | (1 << CS10)); // 1/64 prescaler on timer 1 input 193 | 194 | /* Initialize USB Subsystem */ 195 | USB_Init(); 196 | } 197 | 198 | //uint16_t ctr = 0; 199 | ISR(TIMER1_COMPA_vect, ISR_BLOCK) 200 | { 201 | /* Reset counter */ 202 | TCNT1H = 0; 203 | TCNT1L = 0; 204 | 205 | /* Check whether the TX or RX LED one-shot period has elapsed. if so, turn off the LED */ 206 | if (TxLEDPulse && !(--TxLEDPulse)) 207 | TX_LED_OFF(); 208 | if (RxLEDPulse && !(--RxLEDPulse)) 209 | RX_LED_OFF(); 210 | 211 | if (pgm_read_word(0) != 0xFFFF) 212 | Timeout++; 213 | } 214 | 215 | /** Event handler for the USB_ConfigurationChanged event. This configures the device's endpoints ready 216 | * to relay data to and from the attached USB host. 217 | */ 218 | void EVENT_USB_Device_ConfigurationChanged(void) 219 | { 220 | /* Setup CDC Notification, Rx and Tx Endpoints */ 221 | Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPNUM, EP_TYPE_INTERRUPT, 222 | ENDPOINT_DIR_IN, CDC_NOTIFICATION_EPSIZE, 223 | ENDPOINT_BANK_SINGLE); 224 | 225 | Endpoint_ConfigureEndpoint(CDC_TX_EPNUM, EP_TYPE_BULK, 226 | ENDPOINT_DIR_IN, CDC_TXRX_EPSIZE, 227 | ENDPOINT_BANK_SINGLE); 228 | 229 | Endpoint_ConfigureEndpoint(CDC_RX_EPNUM, EP_TYPE_BULK, 230 | ENDPOINT_DIR_OUT, CDC_TXRX_EPSIZE, 231 | ENDPOINT_BANK_SINGLE); 232 | } 233 | 234 | /** Event handler for the USB_ControlRequest event. This is used to catch and process control requests sent to 235 | * the device from the USB host before passing along unhandled control requests to the library for processing 236 | * internally. 237 | */ 238 | void EVENT_USB_Device_ControlRequest(void) 239 | { 240 | /* Ignore any requests that aren't directed to the CDC interface */ 241 | if ((USB_ControlRequest.bmRequestType & (CONTROL_REQTYPE_TYPE | CONTROL_REQTYPE_RECIPIENT)) != 242 | (REQTYPE_CLASS | REQREC_INTERFACE)) 243 | { 244 | return; 245 | } 246 | 247 | /* Process CDC specific control requests */ 248 | switch (USB_ControlRequest.bRequest) 249 | { 250 | case CDC_REQ_GetLineEncoding: 251 | if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) 252 | { 253 | Endpoint_ClearSETUP(); 254 | 255 | /* Write the line coding data to the control endpoint */ 256 | Endpoint_Write_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); 257 | Endpoint_ClearOUT(); 258 | } 259 | 260 | break; 261 | case CDC_REQ_SetLineEncoding: 262 | if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) 263 | { 264 | Endpoint_ClearSETUP(); 265 | 266 | /* Read the line coding data in from the host into the global struct */ 267 | Endpoint_Read_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); 268 | Endpoint_ClearIN(); 269 | } 270 | 271 | break; 272 | } 273 | } 274 | 275 | #if !defined(NO_BLOCK_SUPPORT) 276 | /** Reads or writes a block of EEPROM or FLASH memory to or from the appropriate CDC data endpoint, depending 277 | * on the AVR910 protocol command issued. 278 | * 279 | * \param[in] Command Single character AVR910 protocol command indicating what memory operation to perform 280 | */ 281 | static void ReadWriteMemoryBlock(const uint8_t Command) 282 | { 283 | uint16_t BlockSize; 284 | char MemoryType; 285 | 286 | bool HighByte = false; 287 | uint8_t LowByte = 0; 288 | 289 | BlockSize = (FetchNextCommandByte() << 8); 290 | BlockSize |= FetchNextCommandByte(); 291 | 292 | MemoryType = FetchNextCommandByte(); 293 | 294 | if ((MemoryType != 'E') && (MemoryType != 'F')) 295 | { 296 | /* Send error byte back to the host */ 297 | WriteNextResponseByte('?'); 298 | 299 | return; 300 | } 301 | 302 | /* Disable timer 1 interrupt - can't afford to process nonessential interrupts 303 | * while doing SPM tasks */ 304 | TIMSK1 = 0; 305 | 306 | /* Check if command is to read memory */ 307 | if (Command == 'g') 308 | { 309 | /* Re-enable RWW section */ 310 | boot_rww_enable(); 311 | 312 | while (BlockSize--) 313 | { 314 | if (MemoryType == 'F') 315 | { 316 | /* Read the next FLASH byte from the current FLASH page */ 317 | #if (FLASHEND > 0xFFFF) 318 | WriteNextResponseByte(pgm_read_byte_far(CurrAddress | HighByte)); 319 | #else 320 | WriteNextResponseByte(pgm_read_byte(CurrAddress | HighByte)); 321 | #endif 322 | 323 | /* If both bytes in current word have been read, increment the address counter */ 324 | if (HighByte) 325 | CurrAddress += 2; 326 | 327 | HighByte = !HighByte; 328 | } 329 | else 330 | { 331 | /* Read the next EEPROM byte into the endpoint */ 332 | WriteNextResponseByte(eeprom_read_byte((uint8_t*)(intptr_t)(CurrAddress >> 1))); 333 | 334 | /* Increment the address counter after use */ 335 | CurrAddress += 2; 336 | } 337 | } 338 | } 339 | else 340 | { 341 | uint32_t PageStartAddress = CurrAddress; 342 | 343 | if (MemoryType == 'F') 344 | { 345 | boot_page_erase(PageStartAddress); 346 | boot_spm_busy_wait(); 347 | } 348 | 349 | while (BlockSize--) 350 | { 351 | if (MemoryType == 'F') 352 | { 353 | /* If both bytes in current word have been written, increment the address counter */ 354 | if (HighByte) 355 | { 356 | /* Write the next FLASH word to the current FLASH page */ 357 | boot_page_fill(CurrAddress, ((FetchNextCommandByte() << 8) | LowByte)); 358 | 359 | /* Increment the address counter after use */ 360 | CurrAddress += 2; 361 | } 362 | else 363 | { 364 | LowByte = FetchNextCommandByte(); 365 | } 366 | 367 | HighByte = !HighByte; 368 | } 369 | else 370 | { 371 | /* Write the next EEPROM byte from the endpoint */ 372 | eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); 373 | 374 | /* Increment the address counter after use */ 375 | CurrAddress += 2; 376 | } 377 | } 378 | 379 | /* If in FLASH programming mode, commit the page after writing */ 380 | if (MemoryType == 'F') 381 | { 382 | /* Commit the flash page to memory */ 383 | boot_page_write(PageStartAddress); 384 | 385 | /* Wait until write operation has completed */ 386 | boot_spm_busy_wait(); 387 | } 388 | 389 | /* Send response byte back to the host */ 390 | WriteNextResponseByte('\r'); 391 | } 392 | 393 | /* Re-enable timer 1 interrupt disabled earlier in this routine */ 394 | TIMSK1 = (1 << OCIE1A); 395 | } 396 | #endif 397 | 398 | /** Retrieves the next byte from the host in the CDC data OUT endpoint, and clears the endpoint bank if needed 399 | * to allow reception of the next data packet from the host. 400 | * 401 | * \return Next received byte from the host in the CDC data OUT endpoint 402 | */ 403 | static uint8_t FetchNextCommandByte(void) 404 | { 405 | /* Select the OUT endpoint so that the next data byte can be read */ 406 | Endpoint_SelectEndpoint(CDC_RX_EPNUM); 407 | 408 | /* If OUT endpoint empty, clear it and wait for the next packet from the host */ 409 | while (!(Endpoint_IsReadWriteAllowed())) 410 | { 411 | Endpoint_ClearOUT(); 412 | 413 | while (!(Endpoint_IsOUTReceived())) 414 | { 415 | if (USB_DeviceState == DEVICE_STATE_Unattached) 416 | return 0; 417 | } 418 | } 419 | 420 | /* Fetch the next byte from the OUT endpoint */ 421 | return Endpoint_Read_8(); 422 | } 423 | 424 | /** Writes the next response byte to the CDC data IN endpoint, and sends the endpoint back if needed to free up the 425 | * bank when full ready for the next byte in the packet to the host. 426 | * 427 | * \param[in] Response Next response byte to send to the host 428 | */ 429 | static void WriteNextResponseByte(const uint8_t Response) 430 | { 431 | /* Select the IN endpoint so that the next data byte can be written */ 432 | Endpoint_SelectEndpoint(CDC_TX_EPNUM); 433 | 434 | /* If IN endpoint full, clear it and wait until ready for the next packet to the host */ 435 | if (!(Endpoint_IsReadWriteAllowed())) 436 | { 437 | Endpoint_ClearIN(); 438 | 439 | while (!(Endpoint_IsINReady())) 440 | { 441 | if (USB_DeviceState == DEVICE_STATE_Unattached) 442 | return; 443 | } 444 | } 445 | 446 | /* Write the next byte to the IN endpoint */ 447 | Endpoint_Write_8(Response); 448 | 449 | TX_LED_ON(); 450 | TxLEDPulse = TX_RX_LED_PULSE_PERIOD; 451 | } 452 | 453 | #define STK_OK 0x10 454 | #define STK_INSYNC 0x14 // ' ' 455 | #define CRC_EOP 0x20 // 'SPACE' 456 | #define STK_GET_SYNC 0x30 // '0' 457 | 458 | #define STK_GET_PARAMETER 0x41 // 'A' 459 | #define STK_SET_DEVICE 0x42 // 'B' 460 | #define STK_SET_DEVICE_EXT 0x45 // 'E' 461 | #define STK_LOAD_ADDRESS 0x55 // 'U' 462 | #define STK_UNIVERSAL 0x56 // 'V' 463 | #define STK_PROG_PAGE 0x64 // 'd' 464 | #define STK_READ_PAGE 0x74 // 't' 465 | #define STK_READ_SIGN 0x75 // 'u' 466 | 467 | /** Task to read in AVR910 commands from the CDC data OUT endpoint, process them, perform the required actions 468 | * and send the appropriate response back to the host. 469 | */ 470 | void CDC_Task(void) 471 | { 472 | /* Select the OUT endpoint */ 473 | Endpoint_SelectEndpoint(CDC_RX_EPNUM); 474 | 475 | /* Check if endpoint has a command in it sent from the host */ 476 | if (!(Endpoint_IsOUTReceived())) 477 | return; 478 | 479 | RX_LED_ON(); 480 | RxLEDPulse = TX_RX_LED_PULSE_PERIOD; 481 | 482 | /* Read in the bootloader command (first byte sent from host) */ 483 | uint8_t Command = FetchNextCommandByte(); 484 | 485 | if (Command == 'E') 486 | { 487 | /* We nearly run out the bootloader timeout clock, 488 | * leaving just a few hundred milliseconds so the 489 | * bootloder has time to respond and service any 490 | * subsequent requests */ 491 | Timeout = TIMEOUT_PERIOD - 500; 492 | 493 | /* Re-enable RWW section - must be done here in case 494 | * user has disabled verification on upload. */ 495 | boot_rww_enable_safe(); 496 | 497 | // Send confirmation byte back to the host 498 | WriteNextResponseByte('\r'); 499 | } 500 | else if (Command == 'T') 501 | { 502 | FetchNextCommandByte(); 503 | 504 | // Send confirmation byte back to the host 505 | WriteNextResponseByte('\r'); 506 | } 507 | else if ((Command == 'L') || (Command == 'P')) 508 | { 509 | // Send confirmation byte back to the host 510 | WriteNextResponseByte('\r'); 511 | } 512 | else if (Command == 't') 513 | { 514 | // Return ATMEGA128 part code - this is only to allow AVRProg to use the bootloader 515 | WriteNextResponseByte(0x44); 516 | WriteNextResponseByte(0x00); 517 | } 518 | else if (Command == 'a') 519 | { 520 | // Indicate auto-address increment is supported 521 | WriteNextResponseByte('Y'); 522 | } 523 | else if (Command == 'A') 524 | { 525 | // Set the current address to that given by the host 526 | CurrAddress = (FetchNextCommandByte() << 9); 527 | CurrAddress |= (FetchNextCommandByte() << 1); 528 | 529 | // Send confirmation byte back to the host 530 | WriteNextResponseByte('\r'); 531 | } 532 | else if (Command == 'p') 533 | { 534 | // Indicate serial programmer back to the host 535 | WriteNextResponseByte('S'); 536 | } 537 | else if (Command == 'S') 538 | { 539 | // Write the 7-byte software identifier to the endpoint 540 | for (uint8_t CurrByte = 0; CurrByte < 7; CurrByte++) 541 | WriteNextResponseByte(SOFTWARE_IDENTIFIER[CurrByte]); 542 | } 543 | else if (Command == 'V') 544 | { 545 | WriteNextResponseByte('0' + BOOTLOADER_VERSION_MAJOR); 546 | WriteNextResponseByte('0' + BOOTLOADER_VERSION_MINOR); 547 | } 548 | else if (Command == 's') 549 | { 550 | WriteNextResponseByte(AVR_SIGNATURE_3); 551 | WriteNextResponseByte(AVR_SIGNATURE_2); 552 | WriteNextResponseByte(AVR_SIGNATURE_1); 553 | } 554 | else if (Command == 'e') 555 | { 556 | // Clear the application section of flash 557 | for (uint32_t CurrFlashAddress = 0; CurrFlashAddress < BOOT_START_ADDR; CurrFlashAddress += SPM_PAGESIZE) 558 | { 559 | boot_page_erase(CurrFlashAddress); 560 | boot_spm_busy_wait(); 561 | boot_page_write(CurrFlashAddress); 562 | boot_spm_busy_wait(); 563 | } 564 | 565 | // Send confirmation byte back to the host 566 | WriteNextResponseByte('\r'); 567 | } 568 | #if !defined(NO_LOCK_BYTE_WRITE_SUPPORT) 569 | else if (Command == 'l') 570 | { 571 | // Set the lock bits to those given by the host 572 | boot_lock_bits_set(FetchNextCommandByte()); 573 | 574 | // Send confirmation byte back to the host 575 | WriteNextResponseByte('\r'); 576 | } 577 | #endif 578 | else if (Command == 'r') 579 | { 580 | WriteNextResponseByte(boot_lock_fuse_bits_get(GET_LOCK_BITS)); 581 | } 582 | else if (Command == 'F') 583 | { 584 | WriteNextResponseByte(boot_lock_fuse_bits_get(GET_LOW_FUSE_BITS)); 585 | } 586 | else if (Command == 'N') 587 | { 588 | WriteNextResponseByte(boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS)); 589 | } 590 | else if (Command == 'Q') 591 | { 592 | WriteNextResponseByte(boot_lock_fuse_bits_get(GET_EXTENDED_FUSE_BITS)); 593 | } 594 | #if !defined(NO_BLOCK_SUPPORT) 595 | else if (Command == 'b') 596 | { 597 | WriteNextResponseByte('Y'); 598 | 599 | // Send block size to the host 600 | WriteNextResponseByte(SPM_PAGESIZE >> 8); 601 | WriteNextResponseByte(SPM_PAGESIZE & 0xFF); 602 | } 603 | else if ((Command == 'B') || (Command == 'g')) 604 | { 605 | // Keep resetting the timeout counter if we're receiving self-programming instructions 606 | Timeout = 0; 607 | // Delegate the block write/read to a separate function for clarity 608 | ReadWriteMemoryBlock(Command); 609 | } 610 | #endif 611 | #if !defined(NO_FLASH_BYTE_SUPPORT) 612 | else if (Command == 'C') 613 | { 614 | // Write the high byte to the current flash page 615 | boot_page_fill(CurrAddress, FetchNextCommandByte()); 616 | 617 | // Send confirmation byte back to the host 618 | WriteNextResponseByte('\r'); 619 | } 620 | else if (Command == 'c') 621 | { 622 | // Write the low byte to the current flash page 623 | boot_page_fill(CurrAddress | 0x01, FetchNextCommandByte()); 624 | 625 | // Increment the address 626 | CurrAddress += 2; 627 | 628 | // Send confirmation byte back to the host 629 | WriteNextResponseByte('\r'); 630 | } 631 | else if (Command == 'm') 632 | { 633 | // Commit the flash page to memory 634 | boot_page_write(CurrAddress); 635 | 636 | // Wait until write operation has completed 637 | boot_spm_busy_wait(); 638 | 639 | // Send confirmation byte back to the host 640 | WriteNextResponseByte('\r'); 641 | } 642 | else if (Command == 'R') 643 | { 644 | #if (FLASHEND > 0xFFFF) 645 | uint16_t ProgramWord = pgm_read_word_far(CurrAddress); 646 | #else 647 | uint16_t ProgramWord = pgm_read_word(CurrAddress); 648 | #endif 649 | 650 | WriteNextResponseByte(ProgramWord >> 8); 651 | WriteNextResponseByte(ProgramWord & 0xFF); 652 | } 653 | #endif 654 | #if !defined(NO_EEPROM_BYTE_SUPPORT) 655 | else if (Command == 'D') 656 | { 657 | // Read the byte from the endpoint and write it to the EEPROM 658 | eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); 659 | 660 | // Increment the address after use 661 | CurrAddress += 2; 662 | 663 | // Send confirmation byte back to the host 664 | WriteNextResponseByte('\r'); 665 | } 666 | else if (Command == 'd') 667 | { 668 | // Read the EEPROM byte and write it to the endpoint 669 | WriteNextResponseByte(eeprom_read_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)))); 670 | 671 | // Increment the address after use 672 | CurrAddress += 2; 673 | } 674 | #endif 675 | else if (Command != 27) 676 | { 677 | // Unknown (non-sync) command, return fail code 678 | WriteNextResponseByte('?'); 679 | } 680 | 681 | 682 | /* Select the IN endpoint */ 683 | Endpoint_SelectEndpoint(CDC_TX_EPNUM); 684 | 685 | /* Remember if the endpoint is completely full before clearing it */ 686 | bool IsEndpointFull = !(Endpoint_IsReadWriteAllowed()); 687 | 688 | /* Send the endpoint data to the host */ 689 | Endpoint_ClearIN(); 690 | 691 | /* If a full endpoint's worth of data was sent, we need to send an empty packet afterwards to signal end of transfer */ 692 | if (IsEndpointFull) 693 | { 694 | while (!(Endpoint_IsINReady())) 695 | { 696 | if (USB_DeviceState == DEVICE_STATE_Unattached) 697 | return; 698 | } 699 | 700 | Endpoint_ClearIN(); 701 | } 702 | 703 | /* Wait until the data has been sent to the host */ 704 | while (!(Endpoint_IsINReady())) 705 | { 706 | if (USB_DeviceState == DEVICE_STATE_Unattached) 707 | return; 708 | } 709 | 710 | /* Select the OUT endpoint */ 711 | Endpoint_SelectEndpoint(CDC_RX_EPNUM); 712 | 713 | /* Acknowledge the command from the host */ 714 | Endpoint_ClearOUT(); 715 | } 716 | 717 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Caterina.h: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2011. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaim all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * 33 | * Header file for BootloaderCDC.c. 34 | */ 35 | 36 | #ifndef _CDC_H_ 37 | #define _CDC_H_ 38 | 39 | /* Includes: */ 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | 48 | #include "Descriptors.h" 49 | 50 | #include 51 | /* Macros: */ 52 | /** Version major of the CDC bootloader. */ 53 | #define BOOTLOADER_VERSION_MAJOR 0x01 54 | 55 | /** Version minor of the CDC bootloader. */ 56 | #define BOOTLOADER_VERSION_MINOR 0x00 57 | 58 | /** Hardware version major of the CDC bootloader. */ 59 | #define BOOTLOADER_HWVERSION_MAJOR 0x01 60 | 61 | /** Hardware version minor of the CDC bootloader. */ 62 | #define BOOTLOADER_HWVERSION_MINOR 0x00 63 | 64 | /** Eight character bootloader firmware identifier reported to the host when requested */ 65 | #define SOFTWARE_IDENTIFIER "CATERINA" 66 | 67 | #define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) 68 | #define LED_SETUP() DDRC |= (1<<7); DDRB |= (1<<0); DDRD |= (1<<5); 69 | #define L_LED_OFF() PORTC &= ~(1<<7) 70 | #define L_LED_ON() PORTC |= (1<<7) 71 | #define L_LED_TOGGLE() PORTC ^= (1<<7) 72 | #if DEVICE_PID == 0x0037 // polarity of the RX and TX LEDs is reversed on the Micro 73 | #define TX_LED_OFF() PORTD &= ~(1<<5) 74 | #define TX_LED_ON() PORTD |= (1<<5) 75 | #define RX_LED_OFF() PORTB &= ~(1<<0) 76 | #define RX_LED_ON() PORTB |= (1<<0) 77 | #else 78 | #define TX_LED_OFF() PORTD |= (1<<5) 79 | #define TX_LED_ON() PORTD &= ~(1<<5) 80 | #define RX_LED_OFF() PORTB |= (1<<0) 81 | #define RX_LED_ON() PORTB &= ~(1<<0) 82 | #endif 83 | 84 | /* Type Defines: */ 85 | /** Type define for a non-returning pointer to the start of the loaded application in flash memory. */ 86 | typedef void (*AppPtr_t)(void) ATTR_NO_RETURN; 87 | 88 | /* Function Prototypes: */ 89 | void StartSketch(void); 90 | void LEDPulse(void); 91 | 92 | void CDC_Task(void); 93 | void SetupHardware(void); 94 | 95 | void EVENT_USB_Device_ConfigurationChanged(void); 96 | 97 | #if defined(INCLUDE_FROM_CATERINA_C) || defined(__DOXYGEN__) 98 | #if !defined(NO_BLOCK_SUPPORT) 99 | static void ReadWriteMemoryBlock(const uint8_t Command); 100 | #endif 101 | static uint8_t FetchNextCommandByte(void); 102 | static void WriteNextResponseByte(const uint8_t Response); 103 | #endif 104 | 105 | #endif 106 | 107 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Descriptors.c: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2011. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaim all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * 33 | * USB Device Descriptors, for library use when in USB device mode. Descriptors are special 34 | * computer-readable structures which the host requests upon device enumeration, to determine 35 | * the device's capabilities and functions. 36 | */ 37 | 38 | #include "Descriptors.h" 39 | 40 | /** Device descriptor structure. This descriptor, located in SRAM memory, describes the overall 41 | * device characteristics, including the supported USB version, control endpoint size and the 42 | * number of device configurations. The descriptor is read out by the USB host when the enumeration 43 | * process begins. 44 | */ 45 | const USB_Descriptor_Device_t DeviceDescriptor = 46 | { 47 | .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, 48 | 49 | .USBSpecification = VERSION_BCD(01.10), 50 | .Class = CDC_CSCP_CDCClass, 51 | .SubClass = CDC_CSCP_NoSpecificSubclass, 52 | .Protocol = CDC_CSCP_NoSpecificProtocol, 53 | 54 | .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, 55 | 56 | .VendorID = DEVICE_VID, 57 | .ProductID = DEVICE_PID, 58 | .ReleaseNumber = VERSION_BCD(00.01), 59 | 60 | .ManufacturerStrIndex = 0x02, 61 | .ProductStrIndex = 0x01, 62 | .SerialNumStrIndex = NO_DESCRIPTOR, 63 | 64 | .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS 65 | }; 66 | 67 | /** Configuration descriptor structure. This descriptor, located in SRAM memory, describes the usage 68 | * of the device in one of its supported configurations, including information about any device interfaces 69 | * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting 70 | * a configuration so that the host may correctly communicate with the USB device. 71 | */ 72 | const USB_Descriptor_Configuration_t ConfigurationDescriptor = 73 | { 74 | .Config = 75 | { 76 | .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, 77 | 78 | .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), 79 | .TotalInterfaces = 2, 80 | 81 | .ConfigurationNumber = 1, 82 | .ConfigurationStrIndex = NO_DESCRIPTOR, 83 | 84 | .ConfigAttributes = USB_CONFIG_ATTR_BUSPOWERED, 85 | 86 | .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) 87 | }, 88 | 89 | .CDC_CCI_Interface = 90 | { 91 | .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, 92 | 93 | .InterfaceNumber = 0, 94 | .AlternateSetting = 0, 95 | 96 | .TotalEndpoints = 1, 97 | 98 | .Class = CDC_CSCP_CDCClass, 99 | .SubClass = CDC_CSCP_ACMSubclass, 100 | .Protocol = CDC_CSCP_ATCommandProtocol, 101 | 102 | .InterfaceStrIndex = NO_DESCRIPTOR 103 | }, 104 | 105 | .CDC_Functional_Header = 106 | { 107 | .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalHeader_t), .Type = DTYPE_CSInterface}, 108 | .Subtype = 0x00, 109 | 110 | .CDCSpecification = VERSION_BCD(01.10), 111 | }, 112 | 113 | .CDC_Functional_ACM = 114 | { 115 | .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalACM_t), .Type = DTYPE_CSInterface}, 116 | .Subtype = 0x02, 117 | 118 | .Capabilities = 0x04, 119 | }, 120 | 121 | .CDC_Functional_Union = 122 | { 123 | .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, 124 | .Subtype = 0x06, 125 | 126 | .MasterInterfaceNumber = 0, 127 | .SlaveInterfaceNumber = 1, 128 | }, 129 | 130 | .CDC_NotificationEndpoint = 131 | { 132 | .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, 133 | 134 | .EndpointAddress = (ENDPOINT_DIR_IN | CDC_NOTIFICATION_EPNUM), 135 | .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), 136 | .EndpointSize = CDC_NOTIFICATION_EPSIZE, 137 | .PollingIntervalMS = 0xFF 138 | }, 139 | 140 | .CDC_DCI_Interface = 141 | { 142 | .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, 143 | 144 | .InterfaceNumber = 1, 145 | .AlternateSetting = 0, 146 | 147 | .TotalEndpoints = 2, 148 | 149 | .Class = CDC_CSCP_CDCDataClass, 150 | .SubClass = CDC_CSCP_NoDataSubclass, 151 | .Protocol = CDC_CSCP_NoDataProtocol, 152 | 153 | .InterfaceStrIndex = NO_DESCRIPTOR 154 | }, 155 | 156 | .CDC_DataOutEndpoint = 157 | { 158 | .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, 159 | 160 | .EndpointAddress = (ENDPOINT_DIR_OUT | CDC_RX_EPNUM), 161 | .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), 162 | .EndpointSize = CDC_TXRX_EPSIZE, 163 | .PollingIntervalMS = 0x01 164 | }, 165 | 166 | .CDC_DataInEndpoint = 167 | { 168 | .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, 169 | 170 | .EndpointAddress = (ENDPOINT_DIR_IN | CDC_TX_EPNUM), 171 | .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), 172 | .EndpointSize = CDC_TXRX_EPSIZE, 173 | .PollingIntervalMS = 0x01 174 | } 175 | }; 176 | 177 | /** Language descriptor structure. This descriptor, located in SRAM memory, is returned when the host requests 178 | * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate 179 | * via the language ID table available at USB.org what languages the device supports for its string descriptors. 180 | */ 181 | const USB_Descriptor_String_t LanguageString = 182 | { 183 | .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, 184 | 185 | .UnicodeString = {LANGUAGE_ID_ENG} 186 | }; 187 | 188 | /** Product descriptor string. This is a Unicode string containing the product's details in human readable form, 189 | * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device 190 | * Descriptor. 191 | */ 192 | const USB_Descriptor_String_t ProductString = 193 | { 194 | .Header = {.Size = USB_STRING_LEN(16), .Type = DTYPE_String}, 195 | 196 | #if DEVICE_PID == 0x0036 197 | .UnicodeString = L"Arduino Leonardo" 198 | #elif DEVICE_PID == 0x0037 199 | .UnicodeString = L"Arduino Micro " 200 | #elif DEVICE_PID == 0x003C 201 | .UnicodeString = L"Arduino Esplora " 202 | #elif DEVICE_PID == 0x2404 203 | .UnicodeString = L"Blend Micro " 204 | #else 205 | .UnicodeString = L"USB IO board " 206 | #endif 207 | }; 208 | 209 | const USB_Descriptor_String_t ManufNameString = 210 | { 211 | .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String}, 212 | 213 | #if DEVICE_VID == 0x2341 214 | .UnicodeString = L"Arduino LLC" 215 | #elif DEVICE_VID == 0x03EB 216 | .UnicodeString = L"RBL " 217 | #else 218 | .UnicodeString = L"Unknown " 219 | #endif 220 | }; 221 | 222 | /** This function is called by the library when in device mode, and must be overridden (see LUFA library "USB Descriptors" 223 | * documentation) by the application code so that the address and size of a requested descriptor can be given 224 | * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function 225 | * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the 226 | * USB host. 227 | */ 228 | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, 229 | const uint8_t wIndex, 230 | const void** const DescriptorAddress) 231 | { 232 | const uint8_t DescriptorType = (wValue >> 8); 233 | const uint8_t DescriptorNumber = (wValue & 0xFF); 234 | 235 | const void* Address = NULL; 236 | uint16_t Size = NO_DESCRIPTOR; 237 | 238 | switch (DescriptorType) 239 | { 240 | case DTYPE_Device: 241 | Address = &DeviceDescriptor; 242 | Size = sizeof(USB_Descriptor_Device_t); 243 | break; 244 | case DTYPE_Configuration: 245 | Address = &ConfigurationDescriptor; 246 | Size = sizeof(USB_Descriptor_Configuration_t); 247 | break; 248 | case DTYPE_String: 249 | if (!(DescriptorNumber)) 250 | { 251 | Address = &LanguageString; 252 | Size = LanguageString.Header.Size; 253 | } 254 | else if (DescriptorNumber == DeviceDescriptor.ProductStrIndex) 255 | { 256 | Address = &ProductString; 257 | Size = ProductString.Header.Size; 258 | } else if (DescriptorNumber == DeviceDescriptor.ManufacturerStrIndex) 259 | { 260 | Address = &ManufNameString; 261 | Size = ManufNameString.Header.Size; 262 | } 263 | 264 | break; 265 | } 266 | 267 | *DescriptorAddress = Address; 268 | return Size; 269 | } 270 | 271 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Descriptors.h: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2011. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaim all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * 33 | * Header file for Descriptors.c. 34 | */ 35 | 36 | #ifndef _DESCRIPTORS_H_ 37 | #define _DESCRIPTORS_H_ 38 | 39 | /* Includes: */ 40 | #include 41 | 42 | /* Macros: */ 43 | #if defined(__AVR_AT90USB1287__) 44 | #define AVR_SIGNATURE_1 0x1E 45 | #define AVR_SIGNATURE_2 0x97 46 | #define AVR_SIGNATURE_3 0x82 47 | #elif defined(__AVR_AT90USB647__) 48 | #define AVR_SIGNATURE_1 0x1E 49 | #define AVR_SIGNATURE_2 0x96 50 | #define AVR_SIGNATURE_3 0x82 51 | #elif defined(__AVR_AT90USB1286__) 52 | #define AVR_SIGNATURE_1 0x1E 53 | #define AVR_SIGNATURE_2 0x97 54 | #define AVR_SIGNATURE_3 0x82 55 | #elif defined(__AVR_AT90USB646__) 56 | #define AVR_SIGNATURE_1 0x1E 57 | #define AVR_SIGNATURE_2 0x96 58 | #define AVR_SIGNATURE_3 0x82 59 | #elif defined(__AVR_ATmega32U6__) 60 | #define AVR_SIGNATURE_1 0x1E 61 | #define AVR_SIGNATURE_2 0x95 62 | #define AVR_SIGNATURE_3 0x88 63 | #elif defined(__AVR_ATmega32U4__) 64 | #define AVR_SIGNATURE_1 0x1E 65 | #define AVR_SIGNATURE_2 0x95 66 | #define AVR_SIGNATURE_3 0x87 67 | #elif defined(__AVR_ATmega16U4__) 68 | #define AVR_SIGNATURE_1 0x1E 69 | #define AVR_SIGNATURE_2 0x94 70 | #define AVR_SIGNATURE_3 0x88 71 | #elif defined(__AVR_ATmega32U2__) 72 | #define AVR_SIGNATURE_1 0x1E 73 | #define AVR_SIGNATURE_2 0x95 74 | #define AVR_SIGNATURE_3 0x8A 75 | #elif defined(__AVR_ATmega16U2__) 76 | #define AVR_SIGNATURE_1 0x1E 77 | #define AVR_SIGNATURE_2 0x94 78 | #define AVR_SIGNATURE_3 0x89 79 | #elif defined(__AVR_AT90USB162__) 80 | #define AVR_SIGNATURE_1 0x1E 81 | #define AVR_SIGNATURE_2 0x94 82 | #define AVR_SIGNATURE_3 0x82 83 | #elif defined(__AVR_ATmega8U2__) 84 | #define AVR_SIGNATURE_1 0x1E 85 | #define AVR_SIGNATURE_2 0x93 86 | #define AVR_SIGNATURE_3 0x89 87 | #elif defined(__AVR_AT90USB82__) 88 | #define AVR_SIGNATURE_1 0x1E 89 | #define AVR_SIGNATURE_2 0x94 90 | #define AVR_SIGNATURE_3 0x82 91 | #else 92 | #error The selected AVR part is not currently supported by this bootloader. 93 | #endif 94 | 95 | /** Endpoint number for the CDC control interface event notification endpoint. */ 96 | #define CDC_NOTIFICATION_EPNUM 2 97 | 98 | /** Endpoint number for the CDC data interface TX (data IN) endpoint. */ 99 | #define CDC_TX_EPNUM 3 100 | 101 | /** Endpoint number for the CDC data interface RX (data OUT) endpoint. */ 102 | #define CDC_RX_EPNUM 4 103 | 104 | /** Size of the CDC data interface TX and RX data endpoint banks, in bytes. */ 105 | #define CDC_TXRX_EPSIZE 16 106 | 107 | /** Size of the CDC control interface notification endpoint bank, in bytes. */ 108 | #define CDC_NOTIFICATION_EPSIZE 8 109 | 110 | /* Type Defines: */ 111 | /** Type define for the device configuration descriptor structure. This must be defined in the 112 | * application code, as the configuration descriptor contains several sub-descriptors which 113 | * vary between devices, and which describe the device's usage to the host. 114 | */ 115 | typedef struct 116 | { 117 | USB_Descriptor_Configuration_Header_t Config; 118 | 119 | // CDC Control Interface 120 | USB_Descriptor_Interface_t CDC_CCI_Interface; 121 | USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header; 122 | USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM; 123 | USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union; 124 | USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; 125 | 126 | // CDC Data Interface 127 | USB_Descriptor_Interface_t CDC_DCI_Interface; 128 | USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; 129 | USB_Descriptor_Endpoint_t CDC_DataInEndpoint; 130 | } USB_Descriptor_Configuration_t; 131 | 132 | /* Function Prototypes: */ 133 | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, 134 | const uint8_t wIndex, 135 | const void** const DescriptorAddress) 136 | ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); 137 | 138 | #endif 139 | 140 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedBearLab/Blend/80788b13ad8b57cc0d076d0089b6b5382dce686d/Arduino/hardware/blend/avr/bootloaders/caterina/Makefile -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/bootloaders/caterina/README.TXT: -------------------------------------------------------------------------------- 1 | The source file - Caterina.c was modified for the Blend Micro board only. 2 | For Blend, it is the same as Arduino Leonardo board. 3 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/platform.txt: -------------------------------------------------------------------------------- 1 | # RedBearLab Blend, BlenMicro Platform Configuration 2 | # 3 | # For more information see: 4 | # - https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification 5 | # - https://github.com/arduino/Arduino/wiki/Arduino-Hardware-Cores-migration-guide-from-1.0-to-1.6 6 | # 7 | name=RedBearLab AVR Boards 8 | version=1.0.1 9 | 10 | # AVR compile variables 11 | # --------------------- 12 | 13 | compiler.warning_flags=-w 14 | compiler.warning_flags.none=-w 15 | compiler.warning_flags.default= 16 | compiler.warning_flags.more=-Wall 17 | compiler.warning_flags.all=-Wall -Wextra 18 | 19 | # Default "compiler.path" is correct, change only if you want to overidde the initial value 20 | compiler.path={runtime.tools.avr-gcc.path}/bin/ 21 | compiler.c.cmd=avr-gcc 22 | compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD 23 | # -w flag added to avoid printing a wrong warning http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396 24 | # This is fixed in gcc 4.8.3 and will be removed as soon as we update the toolchain 25 | compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,--gc-sections 26 | compiler.c.elf.cmd=avr-gcc 27 | compiler.S.flags=-c -g -x assembler-with-cpp 28 | compiler.cpp.cmd=avr-g++ 29 | compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD 30 | compiler.ar.cmd=avr-ar 31 | compiler.ar.flags=rcs 32 | compiler.objcopy.cmd=avr-objcopy 33 | compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 34 | compiler.elf2hex.flags=-O ihex -R .eeprom 35 | compiler.elf2hex.cmd=avr-objcopy 36 | compiler.ldflags= 37 | compiler.size.cmd=avr-size 38 | 39 | # This can be overriden in boards.txt 40 | build.extra_flags= 41 | 42 | # These can be overridden in platform.local.txt 43 | compiler.c.extra_flags= 44 | compiler.c.elf.extra_flags= 45 | compiler.S.extra_flags= 46 | compiler.cpp.extra_flags= 47 | compiler.ar.extra_flags= 48 | compiler.objcopy.eep.extra_flags= 49 | compiler.elf2hex.extra_flags= 50 | 51 | # AVR compile patterns 52 | # -------------------- 53 | 54 | ## Compile c files 55 | recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" 56 | 57 | ## Compile c++ files 58 | recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" 59 | 60 | ## Compile S files 61 | recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" 62 | 63 | ## Create archives 64 | recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" 65 | 66 | ## Combine gc-sections, archives, and objects 67 | recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm 68 | 69 | ## Create output files (.eep and .hex) 70 | recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" 71 | recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex" 72 | 73 | ## Save hex 74 | recipe.output.tmp_file={build.project_name}.hex 75 | recipe.output.save_file={build.project_name}.{build.variant}.hex 76 | 77 | ## Compute size 78 | recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf" 79 | recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).* 80 | recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).* 81 | recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).* 82 | 83 | ## Preprocessor 84 | preproc.includes.flags=-w -x c++ -M -MG -MP 85 | recipe.preproc.includes="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {preproc.includes.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" 86 | 87 | preproc.macros.flags=-w -x c++ -E -CC 88 | recipe.preproc.macros="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {preproc.macros.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" 89 | 90 | # AVR Uploader/Programmers tools 91 | # ------------------------------ 92 | 93 | tools.avrdude.path={runtime.tools.avrdude.path} 94 | tools.avrdude.cmd.path={path}/bin/avrdude 95 | tools.avrdude.config.path={path}/etc/avrdude.conf 96 | 97 | tools.avrdude.upload.params.verbose=-v 98 | tools.avrdude.upload.params.quiet=-q -q 99 | tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i" 100 | 101 | tools.avrdude.program.params.verbose=-v 102 | tools.avrdude.program.params.quiet=-q -q 103 | tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i" 104 | 105 | tools.avrdude.erase.params.verbose=-v 106 | tools.avrdude.erase.params.quiet=-q -q 107 | tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m 108 | 109 | tools.avrdude.bootloader.params.verbose=-v 110 | tools.avrdude.bootloader.params.quiet=-q -q 111 | tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m 112 | 113 | 114 | # USB Default Flags 115 | # Default blank usb manufacturer will be filled it at compile time 116 | # - from numeric vendor ID, set to Unknown otherwise 117 | build.usb_manufacturer="Unknown" 118 | build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' 119 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/variants/Blend/pins_arduino.h: -------------------------------------------------------------------------------- 1 | /* 2 | pins_arduino.h - Pin definition functions for Arduino 3 | Part of Arduino - http://www.arduino.cc/ 4 | 5 | Copyright (c) 2007 David A. Mellis 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General 18 | Public License along with this library; if not, write to the 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20 | Boston, MA 02111-1307 USA 21 | 22 | $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ 23 | */ 24 | 25 | #include "../../variants/leonardo/pins_arduino.h" 26 | 27 | #define BLEND 28 | -------------------------------------------------------------------------------- /Arduino/hardware/blend/avr/variants/BlendMicro-16MHz/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | main.cpp - Main loop for Arduino sketches 3 | Copyright (c) 2005-2013 Arduino Team. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #include 21 | 22 | //Declared weak in Arduino.h to allow user redefinitions. 23 | int atexit(void (*func)()) { return 0; } 24 | 25 | // Weak empty variant initialization function. 26 | // May be redefined by variant files. 27 | void initVariant() __attribute__((weak)); 28 | void initVariant() { } 29 | 30 | int main(void) 31 | { 32 | init(); 33 | 34 | initVariant(); 35 | 36 | #if defined(USBCON) 37 | USBDevice.attach(); 38 | #endif 39 | 40 | #if defined(BLEND_MICRO_8MHZ) 41 | // As the F_CPU = 8000000UL, the USB core make the PLLCSR = 0x02 42 | // But the external xtal is 16000000Hz, so correct it here. 43 | PLLCSR |= 0x10; // Need 16 MHz xtal 44 | while (!(PLLCSR & (1< 21 | 22 | //Declared weak in Arduino.h to allow user redefinitions. 23 | int atexit(void (*func)()) { return 0; } 24 | 25 | // Weak empty variant initialization function. 26 | // May be redefined by variant files. 27 | void initVariant() __attribute__((weak)); 28 | void initVariant() { } 29 | 30 | int main(void) 31 | { 32 | init(); 33 | 34 | initVariant(); 35 | 36 | #if defined(USBCON) 37 | USBDevice.attach(); 38 | #endif 39 | 40 | #if defined(BLEND_MICRO_8MHZ) 41 | // As the F_CPU = 8000000UL, the USB core make the PLLCSR = 0x02 42 | // But the external xtal is 16000000Hz, so correct it here. 43 | PLLCSR |= 0x10; // Need 16 MHz xtal 44 | while (!(PLLCSR & (1< 55 | 56 | Installation 57 | 58 | Do not connect the Blend board to any USB port before the device driver is installed. To install, unzip the file, run the .exe and follow the instructions. After that, connect your Blend board to one of USB ports. 59 | 60 | For Mac OSX and Linux, no driver is required. 61 | 62 | Fritzing 63 | ======== 64 | 65 | Blend Micro 66 | 67 | [Fritzing file for the Blend Micro](https://github.com/makenai/FritzingParts) 68 | 69 | 70 | Credits 71 | ======= 72 | 73 | 1. [@sandeepmistry](https://github.com/sandeepmistry) provides another useful library for the Blend boards. 74 | 2. [@makenai](https://github.com/makenai) made a [Fritzing file for the Blend Micro](https://github.com/makenai/FritzingParts). 75 | 76 | 77 | Troubleshooting 78 | =============== 79 | 80 | Recovery Procedure for Blend Micro sketch upload failing 81 | 82 | 1. Open the Blink sketch 83 | 84 | 2. Reset the board, it will enter to bootloader mode for 8 seconds (the LED - L will be flashing). 85 | 86 | 3. During this 8-second period, select the COM port of the board in the Arduino IDE (Menu -> Tools -> Serial Port) 87 | 88 | 4. Press "Compile and Upload" and then press the reset button on the board again, it should be able to load the sketch and fix the issue. 89 | 90 | 91 | Potential reasons for sketch upload failure 92 | 93 | 1. Fail to upload a complete sketch last time. (e.g. uploading and suddenly removing power source, then the board's USB will not work since the firmware inside the board is invalid) 94 | 95 | 96 | If you have any issue with install Arduino libraries, please read this: 97 | 98 | https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ 99 | 100 | 101 | Resources 102 | ========= 103 | 104 | 1. [Blend Micro Forum](https://redbearlab.zendesk.com/forums/23046987-Blend-Micro) 105 | 106 | 2. [Nordic nRF8001 SDK for Arduino - Library](https://github.com/cheong2k/ble-sdk-arduino) 107 | 108 | 3. [Nordic nRF8001 SDK for Arduino - Forum](https://redbearlab.zendesk.com/forums/21921933-Nordic-nRF8001-SDK-for-Arduino) 109 | 110 | 4. [RBL nRF8001 Library](https://github.com/RedBearLab/nRF8001) 111 | 112 | 5. [Nordic Developer Zone](https://devzone.nordicsemi.com/) 113 | 114 | 6. [Bluetooth SIG](https://www.bluetooth.org/en-us) 115 | 116 | 7. Thanks [@makenai](https://github.com/makenai), made a [Fritzing file for the Blend Micro](https://github.com/makenai/FritzingParts). 117 | 118 | 119 | Other Tutorials 120 | ================ 121 | 122 | https://lilyhack.wordpress.com/2014/02/03/ble-read-write-arduino-raspberry-pi/ 123 | 124 | 125 | License 126 | ======= 127 | 128 | Copyright (c) 2014-2016 RedBearLab 129 | 130 | Permission is hereby granted, free of charge, to any person obtaining a copy 131 | of this software and associated documentation files (the "Software"), to deal 132 | in the Software without restriction, including without limitation the rights 133 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 134 | copies of the Software, and to permit persons to whom the Software is 135 | furnished to do so, subject to the following conditions: 136 | 137 | The above copyright notice and this permission notice shall be included in all 138 | copies or substantial portions of the Software. 139 | 140 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 141 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 142 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 143 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 144 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 145 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 146 | SOFTWARE. 147 | --------------------------------------------------------------------------------