From a5a043443266b18d3e4efbc6f665316237b4d62a Mon Sep 17 00:00:00 2001 From: pandacraft Date: Fri, 21 Mar 2025 16:04:17 +0100 Subject: [PATCH] first commit --- .gitattributes | 71 + .gitignore | 58 + Firmware/Archive/grove_pi_v1_1.hex | 530 + Firmware/Archive/grove_pi_v1_2_2.cpp.hex | 906 + Firmware/Archive/grove_pi_v1_2_2.hex | 906 + Firmware/Archive/grove_pi_v1_2_3.cpp.hex | 906 + Firmware/Archive/grove_pi_v1_2_4.cpp.hex | 1083 + Firmware/Archive/grove_pi_v1_2_5.cpp.hex | 1009 + Firmware/Archive/grove_pi_v1_2_6.cpp.hex | 1135 + Firmware/Archive/grove_pi_v1_2_7.cpp.hex | 865 + Firmware/Archive/grove_pi_v1_3.hex | 1180 + Firmware/Source/grovepi/.gitignore | 4 + Firmware/Source/grovepi/.travis.yml | 67 + Firmware/Source/grovepi/extra_script.py | 21 + Firmware/Source/grovepi/lib/readme.txt | 41 + Firmware/Source/grovepi/platformio.ini | 17 + Firmware/Source/grovepi/src/ChainableLED.cpp | 184 + Firmware/Source/grovepi/src/ChainableLED.h | 68 + Firmware/Source/grovepi/src/DHT.cpp | 201 + Firmware/Source/grovepi/src/DHT.h | 40 + Firmware/Source/grovepi/src/Grove_LED_Bar.cpp | 175 + Firmware/Source/grovepi/src/Grove_LED_Bar.h | 59 + Firmware/Source/grovepi/src/IRrecvDemo.ino | 38 + Firmware/Source/grovepi/src/IRremote.cpp | 200 + Firmware/Source/grovepi/src/IRremote.h | 347 + Firmware/Source/grovepi/src/IRremoteInt.h | 113 + Firmware/Source/grovepi/src/TM1637.cpp | 205 + Firmware/Source/grovepi/src/TM1637.h | 99 + Firmware/Source/grovepi/src/TimerOne.cpp | 208 + Firmware/Source/grovepi/src/TimerOne.h | 70 + Firmware/Source/grovepi/src/boarddefs.h | 595 + Firmware/Source/grovepi/src/grovepi.ino | 862 + .../Source/grovepi/src/grovepi_refactored.ino | 203 + Firmware/Source/grovepi/src/irPronto.cpp | 513 + Firmware/Source/grovepi/src/irRecv.cpp | 258 + Firmware/Source/grovepi/src/irSend.cpp | 90 + Firmware/Source/grovepi/src/ir_Aiwa.cpp | 105 + Firmware/Source/grovepi/src/ir_Denon.cpp | 94 + Firmware/Source/grovepi/src/ir_Dish.cpp | 54 + Firmware/Source/grovepi/src/ir_JVC.cpp | 101 + Firmware/Source/grovepi/src/ir_LG.cpp | 80 + Firmware/Source/grovepi/src/ir_Lego_PF.cpp | 46 + .../grovepi/src/ir_Lego_PF_BitStreamEncoder.h | 115 + Firmware/Source/grovepi/src/ir_Mitsubishi.cpp | 85 + Firmware/Source/grovepi/src/ir_NEC.cpp | 98 + Firmware/Source/grovepi/src/ir_Panasonic.cpp | 78 + Firmware/Source/grovepi/src/ir_RC5_RC6.cpp | 207 + Firmware/Source/grovepi/src/ir_Samsung.cpp | 92 + Firmware/Source/grovepi/src/ir_Sanyo.cpp | 76 + Firmware/Source/grovepi/src/ir_Sharp.cpp | 71 + Firmware/Source/grovepi/src/ir_Sony.cpp | 95 + Firmware/Source/grovepi/src/ir_Template.cpp | 179 + Firmware/Source/grovepi/src/ir_Whynter.cpp | 91 + Firmware/firmware_update.sh | 29 + Firmware/grove_pi_firmware.hex | 1247 + Firmware/grovepi_firmware_update.sh | 7 + Firmware/new_fw_search.sh | 27 + Firmware/readme.md | 5 + Firmware/version.txt | 1 + ...Dexter_Industries_For_the_Raspberry_Pi.JPG | Bin 0 -> 100572 bytes Hardware/GrovePi Graphical Datasheet.jpg | Bin 0 -> 289549 bytes Hardware/GrovePi Zero v1.4.pdf | Bin 0 -> 36875 bytes Hardware/GrovePi+ v3.0.pdf | Bin 0 -> 77532 bytes Hardware/GrovePiZero Graphical Datasheet.jpg | Bin 0 -> 146658 bytes Hardware/README.md | 30 + Hardware/gpl-3.0.txt | 674 + LICENSE | 24 + .../grovepi_lcd_dht.py | 113 + .../Button_And_Buzzer/Button_And_Buzzer.py | 54 + Projects/CO2_sensor.py | 134 + .../Candy-Counting-Robot-Costume/README.md | 32 + .../Candy-Counting-Robot-Costume/robot.py | 491 + Projects/Catch_A_Lunch_Thief/README.md | 30 + .../catch_a_lunch_thief.py | 58 + .../Catch_A_Lunch_Thief/send_email_pic.py | 59 + Projects/Holidays_Wreath/README.md | 11 + Projects/Holidays_Wreath/holidays.py | 146 + .../Home_Weather_Display.py | 85 + Projects/IOT/grove_IOT.py | 59 + Projects/LED_Fade/led_fade.py | 55 + .../MineControls/GrovePi-MineControllers.py | 150 + .../Minecraft-dexter-industries.jpg | Bin 0 -> 57516 bytes Projects/MineControls/README.md | 37 + Projects/OLED_Weather Display/weather.py | 80 + .../OLED_Weather Station/weather_station.py | 116 + Projects/Open_Wifi_Finder/README.md | 94 + Projects/Open_Wifi_Finder/wifi_finder.py | 119 + Projects/README.md | 59 + Projects/Send_Email_With_Pi/sendemailtls.py | 88 + Projects/Sensor_Twitter_Feed/README.md | 13 + Projects/Sensor_Twitter_Feed/wifi_twit.py | 93 + Projects/Street_View_Bike_Cam/README.md | 15 + Projects/Street_View_Bike_Cam/dashcam.py | 186 + .../Ultrasonic_And_Relay.py | 58 + Projects/Whos_at_the_Door/whos_at_the_door.py | 108 + .../home_temp_hum_display.py | 61 + .../ClassDiagram/Button-Rotary-Observer.png | Bin 0 -> 30849 bytes .../ClassDiagram/Button-Rotary-Observer.zargo | Bin 0 -> 15232 bytes .../Button-Rotary-Observer.zargo~ | 0 .../buttonrotarydemo/ButtonRotaryDemo.java | 125 + .../buttonrotarydemo/SampleButtonInvoker.java | 75 + .../buttonrotarydemo/SampleRotaryInvoker.java | 74 + .../com.dexterind.grovepi.jar | Bin 0 -> 17056 bytes .../grovepi/buttonrotarydemo/pi4j-core.jar | Bin 0 -> 537230 bytes .../grovepi/lib/com.dexterind.grovepi.jar | Bin 0 -> 17056 bytes .../Project/grovepi/lib/pi4j-core.jar | Bin 0 -> 537230 bytes .../grovepi/observer/AnalogInputReader.java | 89 + .../grovepi/observer/ButtonInvoker.java | 51 + .../observer/ButtonPressDistinguisher.java | 138 + .../grovepi/observer/DigitalInputReader.java | 79 + .../grovepi/observer/InputSensorObserver.java | 50 + .../grovepi/observer/InputSensorReader.java | 133 + .../observer/RotaryAngleDeterminer.java | 114 + .../grovepi/observer/RotaryInvoker.java | 49 + Projects/java/ButtonRotaryObserver/README.md | 98 + Projects/plant_monitor/plant_project.py | 130 + Projects/rain_notifier/README.md | 37 + Projects/rain_notifier/rain_notifier.py | 193 + Projects/tilt_buzzer/tilt_buzzer.py | 61 + Projects/weather_station/README.md | 35 + .../weather_station-Blue_Temp_Sensor.py | 147 + ...ather_station-Blue_Temp_Sensor_pressure.py | 147 + .../weather_station-White_Temp_Sensor.py | 148 + README.md | 66 + Script/README.md | 49 + Script/grove.pth | 12 + Script/i2c-tools-3.1.0/CHANGES | 82 + Script/i2c-tools-3.1.0/COPYING | 339 + Script/i2c-tools-3.1.0/Makefile | 40 + Script/i2c-tools-3.1.0/README | 76 + Script/i2c-tools-3.1.0/eeprom/Module.mk | 29 + Script/i2c-tools-3.1.0/eeprom/README | 18 + Script/i2c-tools-3.1.0/eeprom/ddcmon | 567 + Script/i2c-tools-3.1.0/eeprom/decode-dimms | 1987 ++ Script/i2c-tools-3.1.0/eeprom/decode-edid | 225 + Script/i2c-tools-3.1.0/eeprom/decode-vaio | 237 + Script/i2c-tools-3.1.0/eepromer/24cXX.c | 182 + Script/i2c-tools-3.1.0/eepromer/24cXX.h | 58 + Script/i2c-tools-3.1.0/eepromer/Makefile | 14 + Script/i2c-tools-3.1.0/eepromer/README | 31 + Script/i2c-tools-3.1.0/eepromer/README.eeprog | 12 + Script/i2c-tools-3.1.0/eepromer/README.eeprom | 85 + .../i2c-tools-3.1.0/eepromer/README.eepromer | 27 + Script/i2c-tools-3.1.0/eepromer/eeprog.c | 283 + Script/i2c-tools-3.1.0/eepromer/eeprom.c | 297 + Script/i2c-tools-3.1.0/eepromer/eepromer.c | 721 + Script/i2c-tools-3.1.0/include/Module.mk | 29 + .../i2c-tools-3.1.0/include/linux/i2c-dev.h | 335 + Script/i2c-tools-3.1.0/py-smbus/Module.mk | 31 + Script/i2c-tools-3.1.0/py-smbus/README | 26 + .../smbus.cpython-32mu.so | Bin 0 -> 44683 bytes .../build/temp.linux-armv7l-3.2/smbusmodule.o | Bin 0 -> 45812 bytes Script/i2c-tools-3.1.0/py-smbus/setup.py | 14 + Script/i2c-tools-3.1.0/py-smbus/smbusmodule.c | 730 + Script/i2c-tools-3.1.0/stub/Module.mk | 27 + .../i2c-tools-3.1.0/stub/i2c-stub-from-dump | 229 + .../i2c-tools-3.1.0/stub/i2c-stub-from-dump.8 | 52 + Script/i2c-tools-3.1.0/tools/Module.mk | 87 + Script/i2c-tools-3.1.0/tools/i2cbusses.c | 415 + Script/i2c-tools-3.1.0/tools/i2cbusses.h | 44 + Script/i2c-tools-3.1.0/tools/i2cdetect.8 | 87 + Script/i2c-tools-3.1.0/tools/i2cdetect.c | 357 + Script/i2c-tools-3.1.0/tools/i2cdump.8 | 84 + Script/i2c-tools-3.1.0/tools/i2cdump.c | 487 + Script/i2c-tools-3.1.0/tools/i2cget.8 | 68 + Script/i2c-tools-3.1.0/tools/i2cget.c | 256 + Script/i2c-tools-3.1.0/tools/i2cset.8 | 102 + Script/i2c-tools-3.1.0/tools/i2cset.c | 430 + Script/i2c-tools-3.1.0/tools/util.c | 58 + Script/i2c-tools-3.1.0/tools/util.h | 26 + Script/i2c-tools-3.1.0/version.h | 1 + Script/install.sh | 98 + Script/install_scratch.sh | 112 + Script/multi_grovepi_installer/README.md | 9 + .../grove_pi_v1_2_2_addr3.cpp.hex | 864 + .../grove_pi_v1_2_2_addr4.cpp.hex | 864 + .../grove_pi_v1_2_2_addr5.cpp.hex | 864 + .../grove_pi_v1_2_2_addr6.cpp.hex | 864 + .../grove_pi_v1_2_2_addr7.cpp.hex | 864 + .../grove_pi_v1_4_0_addr3.hex | 1238 + .../grove_pi_v1_4_0_addr4.hex | 1238 + .../grove_pi_v1_4_0_addr5.hex | 1238 + .../grove_pi_v1_4_0_addr6.hex | 1238 + .../grove_pi_v1_4_0_addr7.hex | 1238 + .../grove_pi_v1_4_0_addr8.hex | 1238 + .../grove_pi_v1_4_0_addr9.hex | 1238 + .../grove_pi_v1_4_0_addra.hex | 1238 + .../grove_pi_v1_4_0_addrb.hex | 1238 + .../grove_pi_v1_4_0_addrc.hex | 1238 + Script/multi_grovepi_installer/grovepi3.py | 680 + Script/multi_grovepi_installer/grovepi4.py | 680 + Script/multi_grovepi_installer/grovepi5.py | 680 + Script/multi_grovepi_installer/grovepi6.py | 680 + Script/multi_grovepi_installer/grovepi7.py | 680 + Script/multi_grovepi_installer/grovepi8.py | 680 + Script/multi_grovepi_installer/grovepi9.py | 680 + Script/multi_grovepi_installer/grovepia.py | 680 + Script/multi_grovepi_installer/grovepib.py | 680 + Script/multi_grovepi_installer/grovepic.py | 680 + .../multi_installer.sh | 26 + Script/multi_grovepi_installer/setup3.py | 14 + Script/multi_grovepi_installer/setup4.py | 14 + Script/multi_grovepi_installer/setup5.py | 14 + Script/multi_grovepi_installer/setup6.py | 14 + Script/multi_grovepi_installer/setup7.py | 14 + Script/multi_grovepi_installer/setup8.py | 14 + Script/multi_grovepi_installer/setup9.py | 14 + Script/multi_grovepi_installer/setupa.py | 14 + Script/multi_grovepi_installer/setupb.py | 14 + Script/multi_grovepi_installer/setupc.py | 14 + Script/update_grovepi.sh | 296 + Software/CSharp/.gitattributes | 17 + Software/CSharp/.gitignore | 49 + .../CSharp/Driver/Assets/Logo.scale-100.png | Bin 0 -> 801 bytes .../Driver/Assets/SmallLogo.scale-100.png | Bin 0 -> 329 bytes .../Driver/Assets/SplashScreen.scale-100.png | Bin 0 -> 2146 bytes .../Driver/Assets/StoreLogo.scale-100.png | Bin 0 -> 429 bytes .../Driver/Assets/WideLogo.scale-100.png | Bin 0 -> 2150 bytes Software/CSharp/Driver/Driver.csproj | 91 + Software/CSharp/Driver/Package.appxmanifest | 55 + .../CSharp/Driver/Properties/AssemblyInfo.cs | 30 + .../Driver/Properties/client.winU.rd.xml | 33 + Software/CSharp/Driver/SimpleDriver.cs | 34 + Software/CSharp/Driver/project.json | 12 + Software/CSharp/Driver/project.lock.json | 15020 ++++++++++ Software/CSharp/GrovePi.nuspec | 20 + Software/CSharp/GrovePi.sln | 42 + Software/CSharp/GrovePi/Common/Delay.cs | 18 + Software/CSharp/GrovePi/Constants.cs | 11 + Software/CSharp/GrovePi/DeviceFactory.cs | 430 + Software/CSharp/GrovePi/GrovePi.cs | 122 + Software/CSharp/GrovePi/GrovePi.csproj | 107 + Software/CSharp/GrovePi/GrovePi.nuspec | 20 + .../GrovePi/I2CDevices/MiniMotorDriver.cs | 61 + .../GrovePi/I2CDevices/OLEDDisplay128X64.cs | 440 + .../GrovePi/I2CDevices/OLEDDisplay9696.cs | 450 + .../GrovePi/I2CDevices/RgbLcdDisplay.cs | 78 + .../SHTTemperatureAndHumiditySensor.cs | 155 + .../SixAxisAccelerometerAndCompass.cs | 405 + .../ThreeAxisAccelerometerADXL345.cs | 91 + Software/CSharp/GrovePi/Pin.cs | 16 + Software/CSharp/GrovePi/PinMode.cs | 8 + .../CSharp/GrovePi/Properties/AssemblyInfo.cs | 29 + .../GrovePi/Properties/client.winU.rd.xml | 33 + .../GrovePi/Sensors/AccelerometerSensor.cs | 41 + .../GrovePi/Sensors/AirQualitySensor.cs | 27 + .../CSharp/GrovePi/Sensors/ButtonSensor.cs | 14 + Software/CSharp/GrovePi/Sensors/Buzzer.cs | 15 + .../CSharp/GrovePi/Sensors/ChainableRgbLed.cs | 75 + .../DHTTemperatureAndHumiditySensor .cs | 92 + .../GrovePi/Sensors/FourDigitDisplay.cs | 88 + .../CSharp/GrovePi/Sensors/GasSensorMQ2.cs | 22 + Software/CSharp/GrovePi/Sensors/Led.cs | 16 + Software/CSharp/GrovePi/Sensors/LedBar.cs | 76 + .../CSharp/GrovePi/Sensors/LightSensor.cs | 35 + .../CSharp/GrovePi/Sensors/PIRMotionSensor.cs | 28 + .../CSharp/GrovePi/Sensors/RealTimeClock.cs | 31 + Software/CSharp/GrovePi/Sensors/Relay.cs | 14 + .../GrovePi/Sensors/RotaryAngleSensor.cs | 46 + Software/CSharp/GrovePi/Sensors/Sensor.cs | 38 + .../CSharp/GrovePi/Sensors/SensorStatus.cs | 8 + .../CSharp/GrovePi/Sensors/SoundSensor.cs | 26 + .../Sensors/TemperatureAndHumiditySensor.cs | 46 + .../GrovePi/Sensors/TemperatureSensor.cs | 33 + .../GrovePi/Sensors/UltrasonicRangerSensor.cs | 40 + .../CSharp/GrovePi/Sensors/WaterAtomizer.cs | 14 + Software/CSharp/GrovePi/project.json | 12 + Software/CSharp/GrovePi/project.lock.json | 14985 ++++++++++ Software/CSharp/README-UWP.md | 63 + Software/CSharp/README.md | 10 + .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Button_Buzzer/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Samples/Button_Buzzer/ButtonBuzzer.csproj | 160 + .../Samples/Button_Buzzer/ButtonBuzzer.sln | 45 + .../Button_Buzzer/Package.appxmanifest | 35 + .../Button_Buzzer/Properties/AssemblyInfo.cs | 32 + .../Button_Buzzer/Properties/Default.rd.xml | 31 + .../CSharp/Samples/Button_Buzzer/README.md | 87 + .../Samples/Button_Buzzer/StartupTask.cs | 104 + .../CSharp/Samples/Button_Buzzer/project.json | 16 + .../Samples/Button_Buzzer/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Example-Button/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Samples/Example-Button/Button.csproj | 160 + .../CSharp/Samples/Example-Button/Button.sln | 45 + .../Example-Button/Package.appxmanifest | 35 + .../Example-Button/Properties/AssemblyInfo.cs | 32 + .../Example-Button/Properties/Default.rd.xml | 31 + .../CSharp/Samples/Example-Button/README.md | 87 + .../Samples/Example-Button/StartupTask.cs | 73 + .../Samples/Example-Button/project.json | 16 + .../Samples/Example-Button/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Example-LCD_Display/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Example-LCD_Display/LCDDisplay.csproj | 160 + .../Example-LCD_Display/LCDDisplay.sln | 45 + .../Example-LCD_Display/Package.appxmanifest | 35 + .../Properties/AssemblyInfo.cs | 32 + .../Properties/Default.rd.xml | 31 + .../Samples/Example-LCD_Display/README.md | 88 + .../Example-LCD_Display/StartupTask.cs | 84 + .../Samples/Example-LCD_Display/project.json | 16 + .../Example-LCD_Display/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Samples/Example-LED/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes Software/CSharp/Samples/Example-LED/LED.sln | 45 + .../CSharp/Samples/Example-LED/LEDTest.csproj | 160 + .../Samples/Example-LED/Package.appxmanifest | 35 + .../Example-LED/Properties/AssemblyInfo.cs | 32 + .../Example-LED/Properties/Default.rd.xml | 31 + Software/CSharp/Samples/Example-LED/README.md | 89 + .../CSharp/Samples/Example-LED/StartupTask.cs | 105 + .../CSharp/Samples/Example-LED/project.json | 16 + .../Samples/Example-LED/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Example-Light_Sensor/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Example-Light_Sensor/LightSensor.csproj | 160 + .../Example-Light_Sensor/LightSensor.sln | 45 + .../Example-Light_Sensor/Package.appxmanifest | 35 + .../Properties/AssemblyInfo.cs | 32 + .../Properties/Default.rd.xml | 31 + .../Samples/Example-Light_Sensor/README.md | 88 + .../Example-Light_Sensor/StartupTask.cs | 73 + .../Samples/Example-Light_Sensor/project.json | 16 + .../Example-Light_Sensor/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Example-Relay/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../CSharp/Samples/Example-Relay/Button.sln | 45 + .../Example-Relay/Package.appxmanifest | 35 + .../Example-Relay/Properties/AssemblyInfo.cs | 32 + .../Example-Relay/Properties/Default.rd.xml | 31 + .../CSharp/Samples/Example-Relay/README.md | 87 + .../CSharp/Samples/Example-Relay/Relay.csproj | 160 + .../Samples/Example-Relay/StartupTask.cs | 79 + .../CSharp/Samples/Example-Relay/project.json | 16 + .../Samples/Example-Relay/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Example-Sound_Sensor/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Example-Sound_Sensor/Package.appxmanifest | 35 + .../Properties/AssemblyInfo.cs | 32 + .../Properties/Default.rd.xml | 31 + .../Samples/Example-Sound_Sensor/README.md | 88 + .../Example-Sound_Sensor/SoundSensor.csproj | 160 + .../Example-Sound_Sensor/SoundSensor.sln | 45 + .../Example-Sound_Sensor/StartupTask.cs | 73 + .../Samples/Example-Sound_Sensor/project.json | 16 + .../Example-Sound_Sensor/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Package.appxmanifest | 35 + .../Properties/AssemblyInfo.cs | 32 + .../Properties/Default.rd.xml | 31 + .../Example-Temp_and_Humidity/README.md | 88 + .../Example-Temp_and_Humidity/StartupTask.cs | 89 + .../TempAndHumid.snk | Bin 0 -> 596 bytes .../TempandHumid.csproj | 160 + .../TempandHumid.sln | 45 + .../Example-Temp_and_Humidity/project.json | 16 + .../project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Example-Ultrasonic/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Example-Ultrasonic/Package.appxmanifest | 35 + .../Properties/AssemblyInfo.cs | 32 + .../Properties/Default.rd.xml | 31 + .../Samples/Example-Ultrasonic/README.md | 88 + .../Samples/Example-Ultrasonic/StartupTask.cs | 75 + .../Example-Ultrasonic/Ultrasonic.csproj | 160 + .../Samples/Example-Ultrasonic/Ultrasonic.sln | 45 + .../Samples/Example-Ultrasonic/Ultrasonic.snk | Bin 0 -> 596 bytes .../Samples/Example-Ultrasonic/project.json | 16 + .../Example-Ultrasonic/project.lock.json | 15383 ++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Samples/GasSensorMQ2/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Samples/GasSensorMQ2/GasSensorMQ2.csproj | 149 + .../Samples/GasSensorMQ2/Package.appxmanifest | 56 + .../GasSensorMQ2/Properties/AssemblyInfo.cs | 29 + .../GasSensorMQ2/Properties/Default.rd.xml | 31 + .../Samples/GasSensorMQ2/StartupTask.cs | 41 + .../CSharp/Samples/GasSensorMQ2/project.json | 16 + .../Samples/GasSensorMQ2/project.lock.json | 14681 ++++++++++ .../HelloWorldBlinky/HelloWorldBlinky.sln | 45 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../HelloWorldBlinky/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../HelloWorldBlinky/HelloWorldBlinky.csproj | 152 + .../HelloWorldBlinky/Package.appxmanifest | 56 + .../Properties/AssemblyInfo.cs | 29 + .../Properties/Default.rd.xml | 31 + .../HelloWorldBlinky/StartupTask.cs | 79 + .../HelloWorldBlinky/project.json | 16 + .../HelloWorldBlinky/project.lock.json | 15383 ++++++++++ .../CSharp/Samples/HelloWorldBlinky/README.md | 89 + .../Samples/LcdRgbDisplay/LcdRgbDisplay.sln | 40 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../LcdRgbDisplay/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../LcdRgbDisplay/LcdRgbDisplay.csproj | 148 + .../LcdRgbDisplay/Package.appxmanifest | 56 + .../LcdRgbDisplay/Properties/AssemblyInfo.cs | 29 + .../LcdRgbDisplay/Properties/Default.rd.xml | 31 + .../LcdRgbDisplay/StartupTask.cs | 105 + .../LcdRgbDisplay/LcdRgbDisplay/project.json | 16 + .../LcdRgbDisplay/project.lock.json | 15383 ++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../LedFade/Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Samples/LedFade/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../CSharp/Samples/LedFade/LedFade.csproj | 151 + Software/CSharp/Samples/LedFade/LedFade.sln | 45 + .../Samples/LedFade/Package.appxmanifest | 35 + .../LedFade/Properties/AssemblyInfo.cs | 32 + .../Samples/LedFade/Properties/Default.rd.xml | 31 + Software/CSharp/Samples/LedFade/README.md | 88 + .../CSharp/Samples/LedFade/StartupTask.cs | 101 + Software/CSharp/Samples/LedFade/project.json | 16 + .../CSharp/Samples/LedFade/project.lock.json | 15383 ++++++++++ .../.vs/config/applicationhost.config | 1019 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../LightSensorLCDDisplay.csproj | 163 + .../LightSensorLCDDisplay.sln | 45 + .../LightSensorLCDDisplay.snk | Bin 0 -> 596 bytes .../Package.appxmanifest | 35 + .../Properties/AssemblyInfo.cs | 32 + .../Properties/Default.rd.xml | 31 + .../Samples/Light_Sensor_LCDDisplay/README.md | 87 + .../Light_Sensor_LCDDisplay/StartupTask.cs | 109 + .../Light_Sensor_LCDDisplay/project.json | 16 + .../Light_Sensor_LCDDisplay/project.lock.json | 15383 ++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../MiniMotorDriver/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../MiniMotorDriver/MiniMotorDriver.csproj | 149 + .../MiniMotorDriver/Package.appxmanifest | 56 + .../Properties/AssemblyInfo.cs | 29 + .../MiniMotorDriver/Properties/Default.rd.xml | 31 + .../Samples/MiniMotorDriver/StartupTask.cs | 95 + .../Samples/MiniMotorDriver/project.json | 16 + .../Samples/MiniMotorDriver/project.lock.json | 24446 ++++++++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../OLEDDisplay128X64/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../OLEDDisplay128X64.csproj | 153 + .../OLEDDisplay128X64/Package.appxmanifest | 56 + .../Properties/AssemblyInfo.cs | 29 + .../Properties/Default.rd.xml | 31 + .../Samples/OLEDDisplay128X64/StartupTask.cs | 172 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../OLEDDisplay9696/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../OLEDDisplay9696/OLEDDisplay9696.csproj | 149 + .../OLEDDisplay9696/Package.appxmanifest | 56 + .../Properties/AssemblyInfo.cs | 29 + .../OLEDDisplay9696/Properties/Default.rd.xml | 31 + .../Samples/OLEDDisplay9696/StartupTask.cs | 164 + .../Samples/OLEDDisplay9696/project.json | 16 + .../Samples/OLEDDisplay9696/project.lock.json | 14681 ++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../PIRMotionSensor/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../PIRMotionSensor/PIRMotionSensor.csproj | 149 + .../PIRMotionSensor/Package.appxmanifest | 56 + .../Properties/AssemblyInfo.cs | 29 + .../PIRMotionSensor/Properties/Default.rd.xml | 31 + .../Samples/PIRMotionSensor/StartupTask.cs | 44 + .../Samples/PIRMotionSensor/project.json | 16 + .../Samples/PIRMotionSensor/project.lock.json | 14681 ++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Package.appxmanifest | 56 + .../Properties/AssemblyInfo.cs | 29 + .../Properties/Default.rd.xml | 31 + .../StartupTask.cs | 43 + .../ThreeAxisAccelemeterADXL345.csproj | 149 + .../ThreeAxisAccelemeterADXL345/project.json | 16 + .../project.lock.json | 14681 ++++++++++ .../CSharp/Windows_IOT_and_Dex-768x281.jpg | Bin 0 -> 34096 bytes Software/Cpp/README.md | 170 + Software/Cpp/grove_button.cpp | 73 + Software/Cpp/grove_buzzer.cpp | 74 + .../Cpp/grove_dht_pro/grove_dht_example.cpp | 89 + Software/Cpp/grove_dht_pro/grove_dht_pro.cpp | 105 + Software/Cpp/grove_dht_pro/grove_dht_pro.h | 52 + Software/Cpp/grove_led_blink.cpp | 78 + Software/Cpp/grove_led_fade.cpp | 79 + Software/Cpp/grove_light_sensor.cpp | 96 + Software/Cpp/grove_relay.cpp | 78 + Software/Cpp/grove_rgb_lcd/grove_rgb_lcd.cpp | 128 + Software/Cpp/grove_rgb_lcd/grove_rgb_lcd.h | 56 + .../grove_rgb_lcd/grove_rgb_lcd_example.cpp | 78 + Software/Cpp/grove_rotary_angle_sensor.cpp | 96 + Software/Cpp/grove_sound_sensor.cpp | 95 + Software/Cpp/grovepi.cpp | 416 + Software/Cpp/grovepi.h | 65 + Software/Cpp/grovepi_analog_read.cpp | 69 + Software/Cpp/grovepi_analog_write.cpp | 91 + Software/Cpp/grovepi_digital_read.cpp | 70 + Software/Cpp/grovepi_digital_write.cpp | 69 + Software/Cpp/grovepi_us_read.cpp | 67 + Software/Cpp/grovepicpp_0.1.1.tar.gz | Bin 0 -> 46857 bytes Software/Cpp/tar_archive.PNG | Bin 0 -> 24271 bytes Software/Go/LICENSE | 19 + Software/Go/README.md | 11 + Software/Go/grovepi/grovepi.go | 154 + Software/Go/grovepi_dht.go | 23 + Software/Go/grovepi_led.go | 28 + Software/Go/grovepi_test.go | 20 + Software/Java/.classpath | 7 + Software/Java/.project | 17 + Software/Java/README.md | 50 + Software/Java/config/default.properties | 3 + Software/Java/scripts/Test.sh | 3 + Software/Java/scripts/compile.sh | 3 + .../Java/src/com/dexterind/grovepi/Board.java | 102 + .../src/com/dexterind/grovepi/Grovepi.java | 86 + .../dexterind/grovepi/GrovepiListener.java | 9 + .../dexterind/grovepi/events/SensorEvent.java | 17 + .../dexterind/grovepi/events/StatusEvent.java | 18 + .../grovepi/sensors/DHTDigitalSensor.java | 83 + .../com/dexterind/grovepi/sensors/Led.java | 150 + .../grovepi/sensors/base/AnalogSensor.java | 30 + .../grovepi/sensors/base/DigitalSensor.java | 26 + .../grovepi/sensors/base/I2cSensor.java | 16 + .../grovepi/sensors/base/Sensor.java | 20 + .../grovepi/sensors/base/SensorStatus.java | 61 + .../com/dexterind/grovepi/utils/Commands.java | 52 + .../com/dexterind/grovepi/utils/Debug.java | 105 + .../com/dexterind/grovepi/utils/Statuses.java | 9 + Software/Java/test/Test.java | 9 + Software/Java/test/tests/BaseTest.java | 60 + Software/Java8/.gitignore | 14 + Software/Java8/.project | 17 + .../.settings/org.eclipse.m2e.core.prefs | 4 + Software/Java8/GrovePi-pi4j/.classpath | 31 + Software/Java8/GrovePi-pi4j/.project | 23 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + Software/Java8/GrovePi-pi4j/pom.xml | 26 + .../iot/raspberry/grovepi/pi4j/GrovePi4J.java | 57 + .../grovepi/pi4j/GroveRgbLcdPi4J.java | 48 + .../org/iot/raspberry/grovepi/pi4j/IO.java | 42 + Software/Java8/GrovePi-spec/.classpath | 31 + Software/Java8/GrovePi-spec/.project | 23 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + Software/Java8/GrovePi-spec/pom.xml | 13 + .../iot/raspberry/grovepi/GroveAnalogIn.java | 47 + .../grovepi/GroveAnalogInListener.java | 6 + .../iot/raspberry/grovepi/GroveAnalogOut.java | 27 + .../iot/raspberry/grovepi/GroveAnalogPin.java | 5 + .../iot/raspberry/grovepi/GroveDevices.java | 28 + .../iot/raspberry/grovepi/GroveDigitalIn.java | 47 + .../grovepi/GroveDigitalInListener.java | 6 + .../raspberry/grovepi/GroveDigitalOut.java | 22 + .../raspberry/grovepi/GroveDigitalPin.java | 5 + .../iot/raspberry/grovepi/GroveI2CPin.java | 5 + .../org/iot/raspberry/grovepi/GroveIO.java | 19 + .../org/iot/raspberry/grovepi/GrovePi.java | 33 + .../raspberry/grovepi/GrovePiCommands.java | 82 + .../raspberry/grovepi/GrovePiSequence.java | 9 + .../grovepi/GrovePiSequenceVoid.java | 9 + .../org/iot/raspberry/grovepi/GroveUtil.java | 16 + .../devices/GroveAnalogInputDevice.java | 38 + .../devices/GroveInputDeviceListener.java | 6 + .../raspberry/grovepi/devices/GroveLed.java | 34 + .../grovepi/devices/GroveLightSensor.java | 20 + .../raspberry/grovepi/devices/GroveRelay.java | 30 + .../grovepi/devices/GroveRgbLcd.java | 78 + .../grovepi/devices/GroveRotarySensor.java | 31 + .../grovepi/devices/GroveRotaryValue.java | 40 + .../grovepi/devices/GroveSoundSensor.java | 20 + .../GroveTemperatureAndHumiditySensor.java | 50 + .../GroveTemperatureAndHumidityValue.java | 26 + .../devices/GroveUltrasonicRanger.java | 29 + Software/Java8/LICENSE | 202 + Software/Java8/ProjectStub/build.xml | 73 + Software/Java8/ProjectStub/manifest.mf | 3 + .../ProjectStub/nbproject/build-impl.xml | 1420 + .../ProjectStub/nbproject/genfiles.properties | 8 + .../ProjectStub/nbproject/project.properties | 80 + .../Java8/ProjectStub/nbproject/project.xml | 15 + .../ProjectStub/src/org/iot/stub/Main.java | 23 + Software/Java8/README.md | 101 + Software/Java8/examples/build.xml | 73 + Software/Java8/examples/manifest.mf | 3 + .../Java8/examples/nbproject/build-impl.xml | 1420 + .../examples/nbproject/genfiles.properties | 8 + .../examples/nbproject/project.properties | 80 + Software/Java8/examples/nbproject/project.xml | 15 + .../iot/raspberry/examples/AutomaticAC.java | 73 + .../iot/raspberry/examples/BlinkingLed.java | 23 + .../org/iot/raspberry/examples/ButtonLed.java | 25 + .../raspberry/examples/ButtonListener.java | 28 + .../org/iot/raspberry/examples/Example.java | 9 + .../iot/raspberry/examples/LightSensor.java | 30 + .../org/iot/raspberry/examples/Monitor.java | 23 + .../src/org/iot/raspberry/examples/Relay.java | 33 + .../org/iot/raspberry/examples/RgbLcd.java | 43 + .../raspberry/examples/RotarySensor3Led.java | 50 + .../examples/RotarySensorDimLed.java | 32 + .../org/iot/raspberry/examples/Runner.java | 111 + .../iot/raspberry/examples/RunnerTest.java | 14 + .../iot/raspberry/examples/SoundSensor.java | 49 + .../examples/TemperatureAndHumidity.java | 22 + .../raspberry/examples/UltrasonicRanger.java | 30 + Software/Java8/pom.xml | 16 + Software/Java8/raspberryPi.txt | 139 + Software/NodeJS/.gitignore | 15 + Software/NodeJS/CONTRIBUTING.md | 7 + Software/NodeJS/LICENSE | 24 + Software/NodeJS/README.md | 154 + Software/NodeJS/libs/commands.js | 99 + Software/NodeJS/libs/grovepi.js | 192 + Software/NodeJS/libs/index.js | 32 + Software/NodeJS/libs/package.json | 27 + .../NodeJS/libs/sensors/DHTDigitalSensor.js | 92 + .../NodeJS/libs/sensors/IRReceiverSensor.js | 33 + Software/NodeJS/libs/sensors/SPDTRelay.js | 29 + .../libs/sensors/accelerationI2cSensor.js | 29 + .../libs/sensors/airQualityAnalogSensor.js | 14 + .../NodeJS/libs/sensors/base/analogSensor.js | 33 + .../NodeJS/libs/sensors/base/digitalSensor.js | 25 + .../NodeJS/libs/sensors/base/i2cSensor.js | 11 + Software/NodeJS/libs/sensors/base/sensor.js | 67 + .../sensors/chainableRGBLedDigitalSensor.js | 52 + Software/NodeJS/libs/sensors/digitalButton.js | 46 + .../NodeJS/libs/sensors/dustDigitalSensor.js | 85 + .../libs/sensors/encoderDigitalSensor.js | 43 + .../libs/sensors/fourDigitDigitalSensor.js | 97 + .../libs/sensors/genericDigitalInputSensor.js | 14 + .../sensors/genericDigitalOutputSensor.js | 30 + Software/NodeJS/libs/sensors/helpers.js | 16 + .../libs/sensors/ledBarDigitalSensor.js | 56 + .../NodeJS/libs/sensors/lightAnalogSensor.js | 16 + .../libs/sensors/loudnessAnalogSensor.js | 48 + .../libs/sensors/rotaryAngleAnalogSensor.js | 74 + Software/NodeJS/libs/sensors/rtcI2cSensor.js | 20 + .../libs/sensors/temperatureAnalogSensor.js | 15 + .../libs/sensors/ultrasonicDigitalSensor.js | 24 + .../libs/sensors/waterFlowDigitalSensor.js | 43 + Software/NodeJS/tests/basicTest.js | 203 + Software/NodeJS/tests/led_blink.js | 62 + Software/Python/GrovePi_Hardware_Test.py | 64 + Software/Python/README.md | 30 + .../Python/firmware_tests/digital_analog.py | 63 + .../firmware_tests/multi_analog_read.py | 51 + .../firmware_tests/multi_digital_read.py | 55 + .../Python/firmware_tests/multi_led_blink.py | 64 + .../Python/grove_2_coil_latching_relay.py | 63 + Software/Python/grove_4_digit_display.py | 158 + .../grove_6axis_accel_compass_example.py | 58 + .../Python/grove_6axis_acc_compass/lsm303d.py | 211 + .../grove_80cm_infrared_proximity_sensor.py | 64 + .../grove_accelerometer_16g/LICENSE.txt | 26 + .../Python/grove_accelerometer_16g/README.md | 24 + .../Python/grove_accelerometer_16g/adxl345.py | 112 + .../grove_accelerometer_16g/basic_example.py | 19 + .../Python/grove_accelerometer_16g/example.py | 17 + Software/Python/grove_air_quality_sensor.py | 64 + Software/Python/grove_analog_read.py | 50 + .../grove_barometer_example_BMP085.py | 42 + .../grove_barometer_lib.py | 93 + ...eadme_grove_i2c_barometic_sensor_BMP085.MD | 18 + .../barometric_sensor_bmp180/Adafruit_I2C.py | 161 + .../grove_i2c_barometic_sensor_BMP180.py | 288 + .../grove_i2c_barometic_sensor_example.py | 44 + ...eadme_grove_i2c_barometic_sensor_BMP180.MD | 3 + .../KalmanFilter.py | 73 + .../high_accuracy_barometer_example.py | 48 + .../high_accuracy_hp206c_barometer/hp206c.py | 136 + Software/Python/grove_button.py | 50 + Software/Python/grove_buzzer.py | 61 + .../direct_serial_lib/chainable_rgb_direct.py | 135 + .../chainable_rgb_direct_example.py | 83 + .../prototype_c_code/Makefile | 32 + .../prototype_c_code/P9813GPIO.c | 328 + .../prototype_c_code/P9813GPIO.h | 64 + .../prototype_c_code/P9813GPIO.h.gch | Bin 0 -> 1589572 bytes .../prototype_c_code/PN532SPI.c | 537 + .../prototype_c_code/PN532SPI.h | 99 + .../prototype_c_code/README.md | 32 + .../direct_serial_lib/prototype_c_code/main.c | 303 + .../grove_chainable_rgb_led_test.py | 174 + .../individual_led_control.py | 130 + .../old_grove_chainable_rgb_led.py | 379 + .../grove_co2_sensor/grove_co2_example.py | 46 + .../Python/grove_co2_sensor/grove_co2_lib.py | 61 + Software/Python/grove_collision_sensor.py | 50 + Software/Python/grove_compass_example.py | 43 + Software/Python/grove_compass_lib.py | 102 + Software/Python/grove_dht_pro.py | 58 + .../Python/grove_dht_pro_filter/grove_dht.py | 210 + .../grove_dht_example1.py | 56 + .../grove_dht_example2.py | 66 + .../grove_dht_example3.py | 90 + Software/Python/grove_dry_reed_relay.py | 64 + Software/Python/grove_dust_sensor.py | 65 + .../grove_earclipheartrate.py | 87 + Software/Python/grove_electricity_sensor.py | 68 + Software/Python/grove_electromagnet.py | 65 + Software/Python/grove_encoder_read.py | 63 + .../grove_fingerclip_heart_sensor.py | 65 + .../Python/grove_firmware_version_check.py | 45 + Software/Python/grove_flame_sensor.py | 50 + Software/Python/grove_flow_read.py | 66 + Software/Python/grove_gas_sensor.py | 72 + .../Python/grove_gesture_sensor/README.md | 46 + .../grove_gesture_sensor/gesture_print.py | 44 + .../grove_gesture_sensor/gesture_value.py | 68 + .../grove_gesture_sensor.py | 533 + Software/Python/grove_gps/GroveGPS.py | 74 + Software/Python/grove_gps/README.md | 74 + Software/Python/grove_gps/dextergps.py | 168 + Software/Python/grove_gps/grove_gps_data.py | 192 + .../grove_gps/grove_gps_hardware_test.py | 85 + Software/Python/grove_hcho_sensor.py | 62 + .../grove_hightemperature_sensor/README.md | 55 + .../grove_hightemperature_sensor.py | 120 + .../high_temperature_example.py | 83 + .../thermocouple_table.json | 1277 + Software/Python/grove_i2c_accelerometer.py | 49 + Software/Python/grove_i2c_adc/README.md | 5 + .../Python/grove_i2c_adc/grove_i2c_adc.py | 49 + .../Python/grove_i2c_adc/i2c_adc_example.py | 45 + .../color_sensor_example.py | 47 + .../grove_i2c_color_sensor.py | 326 + .../Adafruit_I2C.py | 161 + .../grove_i2c_digital_light_sensor.py | 310 + .../readme_grove_i2c_digital_light_sensor.MD | 12 + .../grove_i2c_motor_driver.py | 73 + .../grove_i2c_motor_driver/motor_example.py | 76 + .../multichannel_gas_sensor.py | 85 + .../grove_128_64_oled.py | 320 + .../grove_128_64_oled_test.py | 45 + Software/Python/grove_i2c_rtc.py | 49 + .../Python/grove_i2c_sunlight_sensor/I2C.py | 195 + .../grove_i2c_sunlight_sensor/Platform.py | 106 + .../grove_i2c_sunlight_sensor/README.md | 7 + .../grove_i2c_sunlight_sensor/SI1145.py | 264 + .../grove_i2c_sunlight_sensor/simpletest.py | 53 + .../grove_hdc_1000_example.py | 47 + .../grove_i2c_temp_hum_hdc1000.py | 72 + .../grove_i2c_temp_hum_mini.py | 87 + .../temp_hum_example.py | 47 + Software/Python/grove_i2c_touch/I2C.py | 195 + Software/Python/grove_i2c_touch/MPR121.py | 188 + Software/Python/grove_i2c_touch/Platform.py | 106 + Software/Python/grove_i2c_touch/README.md | 7 + Software/Python/grove_i2c_touch/touchtest.py | 77 + .../grove_infrared_distance_interrupt.py | 66 + .../grove_infrared_reflective_sensor.py | 66 + Software/Python/grove_ir_receiver.py | 51 + Software/Python/grove_ir_receiver/README.md | 18 + .../grove_ir_receiver/ir_recv_example.py | 47 + .../Python/grove_ir_receiver/script/README.md | 19 + .../script/hardware_copy.conf | 25 + .../grove_ir_receiver/script/ir_install.sh | 95 + .../grove_ir_receiver/script/lircd_keyes.conf | 268 + .../grove_ir_receiver/script/lircrc_keyes | 86 + .../script/setup_older_version.sh | 26 + Software/Python/grove_led_blink.py | 64 + Software/Python/grove_led_fade.py | 74 + Software/Python/grove_ledbar.py | 286 + Software/Python/grove_light_sensor.py | 75 + Software/Python/grove_line_finder.py | 56 + Software/Python/grove_loudness_sensor.py | 51 + Software/Python/grove_magnetic_switch.py | 50 + .../Python/grove_mini_motor_driver/README.md | 136 + .../grove_mini_motor_driver/driver_example.py | 125 + .../grove_mini_motor_driver.py | 264 + Software/Python/grove_moisture_sensor.py | 67 + Software/Python/grove_mosfet.py | 72 + Software/Python/grove_nfc_tag.py | 75 + .../grove_i2c_oled_96x96_hello_world.py | 50 + Software/Python/grove_oled/grove_oled.py | 257 + Software/Python/grove_ph_sensor.py | 59 + .../Python/grove_piezo_vibration_sensor.py | 53 + Software/Python/grove_pir_motion_sensor.py | 76 + Software/Python/grove_relay.py | 61 + .../grove_rflink433mhz_oneway_kit/README.md | 31 + .../grove_receiver_example.py | 75 + .../grove_rflink433mhz.py | 229 + .../grove_transmitter_example.py | 76 + Software/Python/grove_rgb_lcd/example.py | 47 + Software/Python/grove_rgb_lcd/example2.py | 194 + Software/Python/grove_rgb_lcd/example3.py | 46 + .../Python/grove_rgb_lcd/grove_rgb_lcd.py | 122 + Software/Python/grove_rotary_angle_sensor.py | 86 + .../Python/grove_single_axis_analog_gyro.py | 81 + Software/Python/grove_slide_potentiometer.py | 66 + Software/Python/grove_solid_state_relay.py | 66 + Software/Python/grove_sound_sensor.py | 72 + Software/Python/grove_spdt_relay.py | 67 + Software/Python/grove_switch.py | 50 + Software/Python/grove_switch_relay.py | 68 + Software/Python/grove_temperature_sensor.py | 64 + Software/Python/grove_thumb_joystick.py | 89 + Software/Python/grove_tilt_switch.py | 50 + Software/Python/grove_touch_sensor.py | 50 + Software/Python/grove_ultrasonic.py | 54 + Software/Python/grove_vibration_motor.py | 61 + Software/Python/grove_water_sensor.py | 50 + Software/Python/grovepi.py | 691 + Software/Python/package_description.rst | 16 + Software/Python/package_modules.txt | 26 + Software/Python/requirements.txt | 5 + Software/Python/setup.cfg | 2 + Software/Python/setup.py | 129 + Software/Python/temp.py | 53 + Software/Python/test_script/multi_sensor.py | 56 + Software/Python/test_script/test_suite.py | 22 + Software/README.md | 33 + Software/Ruby/README.md | 27 + Software/Ruby/grove_pi.rb | 270 + Software/Ruby/tests/test_read_analog.rb | 19 + Software/Ruby/tests/test_read_digital.rb | 19 + Software/Ruby/tests/test_write_analog.rb | 35 + Software/Ruby/tests/test_write_digital.rb | 26 + Software/Rust/README.md | 32 + Software/Rust/grove_rgb/.cargo/config | 2 + Software/Rust/grove_rgb/.vscode/launch.json | 27 + Software/Rust/grove_rgb/Cargo.lock | 74 + Software/Rust/grove_rgb/Cargo.toml | 9 + Software/Rust/grove_rgb/src/grove_rgb_lcd.rs | 184 + Software/Rust/grove_rgb/src/main.rs | 26 + Software/Scratch/GrovePiScratch.py | 400 + .../GrovePiScratch_debug.sh | 5 + .../GrovePi_Scratch_Start.desktop | 11 + .../GrovePi_Scratch_Start.sh | 2 + .../Scratch/GrovePi_Scratch_Scripts/README.md | 38 + .../GrovePi_Scratch_Scripts/Scratch_setup.txt | 28 + .../Grove_Examples/Barometer_Example.sb | Bin 0 -> 20787 bytes Software/Scratch/Grove_Examples/LCD.sb | Bin 0 -> 46603 bytes Software/Scratch/Grove_Examples/README.md | 46 + Software/Scratch/Grove_Examples/Rotary.sb | Bin 0 -> 88048 bytes .../Grove_Examples/Save_Variables_To_Text.sb | Bin 0 -> 47435 bytes .../Grove_Examples/Take_Picture_Example.sb | Bin 0 -> 45128 bytes .../Scratch/Grove_Examples/led_on_port_D7.sb | Bin 0 -> 109322 bytes .../Grove_Examples/two_buttons_in_parallel.sb | Bin 0 -> 86617 bytes .../Scratch/Grove_Examples/two_tone_buzzer.sb | Bin 0 -> 38482 bytes Software/Scratch/Local_Scratch2_Start.desktop | 12 + Software/Scratch/Local_Scratch_Start.desktop | 12 + Software/Scratch/launch_scratch2.sh | 6 + Software/Scratch/new.sb | Bin 0 -> 53850 bytes Software/Scratch/readme.md | 36 + Software/Scratch/s2pifiles/extensions.json | 5 + Software/Scratch/s2pifiles/grovepi.html | 118 + Software/Scratch/s2pifiles/grovepi.png | Bin 0 -> 4523 bytes .../Scratch/s2pifiles/piGrovePiExtension.js | 170 + Software/Scratch/s2pifiles/setup_scratch2.sh | 9 + Software/Scratch/scratch_functions.png | Bin 0 -> 119583 bytes Software/Scratch/start_local_scratch.sh | 11 + Software/Scratch/websocket_server.py | 347 + Software/Scratch/wstosgh.py | 123 + .../Shell/Grove - I2C FM Receiver/radio.sh | 98 + .../Shell/Grove - LCD RGB Backlight/lcd.sh | 81 + Software/flogo/LICENSE | 23 + Software/flogo/README.md | 50 + .../flogo/activities/grovepiDHT/activity.go | 121 + .../flogo/activities/grovepiDHT/activity.json | 26 + .../activities/grovepiDHT/activity_test.go | 67 + .../grovepiDigitalWrite/activity.go | 123 + .../grovepiDigitalWrite/activity.json | 27 + .../grovepiDigitalWrite/activity_test.go | 62 + .../flogo/screenshots/Flogo-GrovePi-Flow.png | Bin 0 -> 42812 bytes .../flogo/screenshots/Flogo-add-Activity.png | Bin 0 -> 12991 bytes .../screenshots/GrovePi-Extension-Install.png | Bin 0 -> 54703 bytes .../screenshots/GrovePi-Extension-Success.png | Bin 0 -> 3676 bytes Troubleshooting/README.md | 14 + Troubleshooting/all_tests.sh | 15 + Troubleshooting/avrdude_test.sh | 6 + Troubleshooting/complete_test.sh | 38 + Troubleshooting/firmware_version_test.sh | 6 + Troubleshooting/i2c_test1.sh | 17 + Troubleshooting/software_status.sh | 106 + docs/404.html | 432 + docs/api/complex/index.html | 1064 + docs/api/general/index.html | 724 + docs/api/gpio/index.html | 659 + docs/api/interrupt/index.html | 914 + docs/assets/fonts/font-awesome.css | 4 + docs/assets/fonts/material-icons.css | 13 + docs/assets/fonts/specimen/FontAwesome.ttf | Bin 0 -> 165548 bytes docs/assets/fonts/specimen/FontAwesome.woff | Bin 0 -> 98024 bytes docs/assets/fonts/specimen/FontAwesome.woff2 | Bin 0 -> 77160 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../specimen/MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes docs/assets/images/favicon.png | Bin 0 -> 521 bytes .../images/icons/bitbucket.1b09e088.svg | 20 + docs/assets/images/icons/github.f0b8504a.svg | 18 + docs/assets/images/icons/gitlab.6dd19c00.svg | 38 + .../javascripts/application.267712eb.js | 6 + .../javascripts/application.a59e2a89.js | 1 + .../javascripts/application.b806dc00.js | 6 + docs/assets/javascripts/lunr/lunr.da.js | 1 + docs/assets/javascripts/lunr/lunr.de.js | 1 + docs/assets/javascripts/lunr/lunr.du.js | 1 + docs/assets/javascripts/lunr/lunr.es.js | 1 + docs/assets/javascripts/lunr/lunr.fi.js | 1 + docs/assets/javascripts/lunr/lunr.fr.js | 1 + docs/assets/javascripts/lunr/lunr.hu.js | 1 + docs/assets/javascripts/lunr/lunr.it.js | 1 + docs/assets/javascripts/lunr/lunr.ja.js | 1 + docs/assets/javascripts/lunr/lunr.jp.js | 1 + docs/assets/javascripts/lunr/lunr.multi.js | 1 + docs/assets/javascripts/lunr/lunr.nl.js | 1 + docs/assets/javascripts/lunr/lunr.no.js | 1 + docs/assets/javascripts/lunr/lunr.pt.js | 1 + docs/assets/javascripts/lunr/lunr.ro.js | 1 + docs/assets/javascripts/lunr/lunr.ru.js | 1 + .../javascripts/lunr/lunr.stemmer.support.js | 1 + docs/assets/javascripts/lunr/lunr.sv.js | 1 + docs/assets/javascripts/lunr/lunr.th.js | 1 + docs/assets/javascripts/lunr/lunr.tr.js | 1 + docs/assets/javascripts/lunr/tinyseg.js | 1 + docs/assets/javascripts/lunr/wordcut.js | 1 + docs/assets/javascripts/modernizr.01ccdecf.js | 1 + docs/assets/javascripts/modernizr.1aa3b519.js | 1 + docs/assets/javascripts/modernizr.1f0bcf2b.js | 1 + .../application-palette.224b79ff.css | 1 + .../application-palette.6079476c.css | 2 + .../stylesheets/application.3020aac5.css | 1 + .../stylesheets/application.982221ab.css | 1 + .../stylesheets/application.ba0fd1a6.css | 2 + docs/dev/Dockerfile | 7 + docs/dev/index.html | 477 + docs/docs/api/complex.md | 294 + docs/docs/api/general.md | 111 + docs/docs/api/gpio.md | 72 + docs/docs/api/interrupt.md | 237 + docs/docs/dev/Dockerfile | 7 + docs/docs/dev/README.md | 19 + docs/docs/fw.md | 92 + docs/docs/hw.md | 28 + docs/docs/img/biglogo.jpg | Bin 0 -> 31755 bytes docs/docs/img/dust_sensor_characteristics.jpg | Bin 0 -> 79378 bytes docs/docs/img/favicon.ico | Bin 0 -> 318 bytes docs/docs/img/grovepi.jpg | Bin 0 -> 59155 bytes docs/docs/img/logo.bmp | Bin 0 -> 24144 bytes docs/docs/img/rpi_hw.jpg | Bin 0 -> 289549 bytes docs/docs/img/sensors.PNG | Bin 0 -> 582360 bytes docs/docs/img/stackedgrovepi.jpg | Bin 0 -> 69787 bytes docs/docs/index.md | 22 + docs/docs/quickstart.md | 74 + docs/docs/release-notes.md | 65 + docs/docs/supported.md | 10 + docs/fw/index.html | 666 + docs/hw/index.html | 587 + docs/img/biglogo.jpg | Bin 0 -> 31755 bytes docs/img/dust_sensor_characteristics.jpg | Bin 0 -> 79378 bytes docs/img/favicon.ico | Bin 0 -> 318 bytes docs/img/grovepi.jpg | Bin 0 -> 59155 bytes docs/img/logo.bmp | Bin 0 -> 24144 bytes docs/img/rpi_hw.jpg | Bin 0 -> 289549 bytes docs/img/sensors.PNG | Bin 0 -> 582360 bytes docs/img/stackedgrovepi.jpg | Bin 0 -> 69787 bytes docs/index.html | 507 + docs/mkdocs.yml | 40 + docs/quickstart/index.html | 721 + docs/release-notes/index.html | 700 + docs/search/search_index.json | 1 + docs/site/404.html | 432 + docs/site/api/complex/index.html | 1064 + docs/site/api/general/index.html | 724 + docs/site/api/gpio/index.html | 659 + docs/site/api/interrupt/index.html | 914 + docs/site/assets/fonts/font-awesome.css | 4 + docs/site/assets/fonts/material-icons.css | 13 + .../assets/fonts/specimen/FontAwesome.ttf | Bin 0 -> 165548 bytes .../assets/fonts/specimen/FontAwesome.woff | Bin 0 -> 98024 bytes .../assets/fonts/specimen/FontAwesome.woff2 | Bin 0 -> 77160 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../specimen/MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes docs/site/assets/images/favicon.png | Bin 0 -> 521 bytes .../images/icons/bitbucket.1b09e088.svg | 20 + .../assets/images/icons/github.f0b8504a.svg | 18 + .../assets/images/icons/gitlab.6dd19c00.svg | 38 + .../javascripts/application.267712eb.js | 6 + docs/site/assets/javascripts/lunr/lunr.da.js | 1 + docs/site/assets/javascripts/lunr/lunr.de.js | 1 + docs/site/assets/javascripts/lunr/lunr.du.js | 1 + docs/site/assets/javascripts/lunr/lunr.es.js | 1 + docs/site/assets/javascripts/lunr/lunr.fi.js | 1 + docs/site/assets/javascripts/lunr/lunr.fr.js | 1 + docs/site/assets/javascripts/lunr/lunr.hu.js | 1 + docs/site/assets/javascripts/lunr/lunr.it.js | 1 + docs/site/assets/javascripts/lunr/lunr.ja.js | 1 + docs/site/assets/javascripts/lunr/lunr.jp.js | 1 + .../assets/javascripts/lunr/lunr.multi.js | 1 + docs/site/assets/javascripts/lunr/lunr.nl.js | 1 + docs/site/assets/javascripts/lunr/lunr.no.js | 1 + docs/site/assets/javascripts/lunr/lunr.pt.js | 1 + docs/site/assets/javascripts/lunr/lunr.ro.js | 1 + docs/site/assets/javascripts/lunr/lunr.ru.js | 1 + .../javascripts/lunr/lunr.stemmer.support.js | 1 + docs/site/assets/javascripts/lunr/lunr.sv.js | 1 + docs/site/assets/javascripts/lunr/lunr.th.js | 1 + docs/site/assets/javascripts/lunr/lunr.tr.js | 1 + docs/site/assets/javascripts/lunr/tinyseg.js | 1 + docs/site/assets/javascripts/lunr/wordcut.js | 1 + .../assets/javascripts/modernizr.01ccdecf.js | 1 + .../application-palette.224b79ff.css | 1 + .../stylesheets/application.3020aac5.css | 1 + docs/site/dev/Dockerfile | 7 + docs/site/dev/index.html | 477 + docs/site/fw/index.html | 666 + docs/site/hw/index.html | 587 + docs/site/img/biglogo.jpg | Bin 0 -> 31755 bytes docs/site/img/dust_sensor_characteristics.jpg | Bin 0 -> 79378 bytes docs/site/img/favicon.ico | Bin 0 -> 318 bytes docs/site/img/grovepi.jpg | Bin 0 -> 59155 bytes docs/site/img/logo.bmp | Bin 0 -> 24144 bytes docs/site/img/rpi_hw.jpg | Bin 0 -> 289549 bytes docs/site/img/sensors.PNG | Bin 0 -> 582360 bytes docs/site/img/stackedgrovepi.jpg | Bin 0 -> 69787 bytes docs/site/index.html | 507 + docs/site/quickstart/index.html | 721 + docs/site/release-notes/index.html | 700 + docs/site/search/search_index.json | 1 + docs/site/sitemap.xml | 53 + docs/site/sitemap.xml.gz | Bin 0 -> 286 bytes docs/site/supported/index.html | 509 + docs/sitemap.xml | 53 + docs/sitemap.xml.gz | Bin 0 -> 286 bytes docs/supported/index.html | 509 + installer.sh | 54 + 1126 files changed, 439481 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Firmware/Archive/grove_pi_v1_1.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_2.cpp.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_2.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_3.cpp.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_4.cpp.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_5.cpp.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_6.cpp.hex create mode 100644 Firmware/Archive/grove_pi_v1_2_7.cpp.hex create mode 100644 Firmware/Archive/grove_pi_v1_3.hex create mode 100644 Firmware/Source/grovepi/.gitignore create mode 100644 Firmware/Source/grovepi/.travis.yml create mode 100644 Firmware/Source/grovepi/extra_script.py create mode 100644 Firmware/Source/grovepi/lib/readme.txt create mode 100644 Firmware/Source/grovepi/platformio.ini create mode 100644 Firmware/Source/grovepi/src/ChainableLED.cpp create mode 100644 Firmware/Source/grovepi/src/ChainableLED.h create mode 100644 Firmware/Source/grovepi/src/DHT.cpp create mode 100644 Firmware/Source/grovepi/src/DHT.h create mode 100644 Firmware/Source/grovepi/src/Grove_LED_Bar.cpp create mode 100644 Firmware/Source/grovepi/src/Grove_LED_Bar.h create mode 100644 Firmware/Source/grovepi/src/IRrecvDemo.ino create mode 100644 Firmware/Source/grovepi/src/IRremote.cpp create mode 100644 Firmware/Source/grovepi/src/IRremote.h create mode 100644 Firmware/Source/grovepi/src/IRremoteInt.h create mode 100644 Firmware/Source/grovepi/src/TM1637.cpp create mode 100644 Firmware/Source/grovepi/src/TM1637.h create mode 100644 Firmware/Source/grovepi/src/TimerOne.cpp create mode 100644 Firmware/Source/grovepi/src/TimerOne.h create mode 100644 Firmware/Source/grovepi/src/boarddefs.h create mode 100644 Firmware/Source/grovepi/src/grovepi.ino create mode 100644 Firmware/Source/grovepi/src/grovepi_refactored.ino create mode 100644 Firmware/Source/grovepi/src/irPronto.cpp create mode 100644 Firmware/Source/grovepi/src/irRecv.cpp create mode 100644 Firmware/Source/grovepi/src/irSend.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Aiwa.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Denon.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Dish.cpp create mode 100644 Firmware/Source/grovepi/src/ir_JVC.cpp create mode 100644 Firmware/Source/grovepi/src/ir_LG.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Lego_PF.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Lego_PF_BitStreamEncoder.h create mode 100644 Firmware/Source/grovepi/src/ir_Mitsubishi.cpp create mode 100644 Firmware/Source/grovepi/src/ir_NEC.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Panasonic.cpp create mode 100644 Firmware/Source/grovepi/src/ir_RC5_RC6.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Samsung.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Sanyo.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Sharp.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Sony.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Template.cpp create mode 100644 Firmware/Source/grovepi/src/ir_Whynter.cpp create mode 100755 Firmware/firmware_update.sh create mode 100644 Firmware/grove_pi_firmware.hex create mode 100644 Firmware/grovepi_firmware_update.sh create mode 100644 Firmware/new_fw_search.sh create mode 100644 Firmware/readme.md create mode 100644 Firmware/version.txt create mode 100644 GrovePi_Plus_By_Dexter_Industries_For_the_Raspberry_Pi.JPG create mode 100644 Hardware/GrovePi Graphical Datasheet.jpg create mode 100644 Hardware/GrovePi Zero v1.4.pdf create mode 100644 Hardware/GrovePi+ v3.0.pdf create mode 100644 Hardware/GrovePiZero Graphical Datasheet.jpg create mode 100644 Hardware/README.md create mode 100644 Hardware/gpl-3.0.txt create mode 100755 LICENSE create mode 100644 Projects/Advanced_RGB_LCD_TempAndHumidity/grovepi_lcd_dht.py create mode 100644 Projects/Button_And_Buzzer/Button_And_Buzzer.py create mode 100644 Projects/CO2_sensor.py create mode 100644 Projects/Candy-Counting-Robot-Costume/README.md create mode 100644 Projects/Candy-Counting-Robot-Costume/robot.py create mode 100644 Projects/Catch_A_Lunch_Thief/README.md create mode 100644 Projects/Catch_A_Lunch_Thief/catch_a_lunch_thief.py create mode 100644 Projects/Catch_A_Lunch_Thief/send_email_pic.py create mode 100644 Projects/Holidays_Wreath/README.md create mode 100644 Projects/Holidays_Wreath/holidays.py create mode 100644 Projects/Home_Weather_Display/Home_Weather_Display.py create mode 100644 Projects/IOT/grove_IOT.py create mode 100644 Projects/LED_Fade/led_fade.py create mode 100644 Projects/MineControls/GrovePi-MineControllers.py create mode 100644 Projects/MineControls/Minecraft-dexter-industries.jpg create mode 100644 Projects/MineControls/README.md create mode 100644 Projects/OLED_Weather Display/weather.py create mode 100644 Projects/OLED_Weather Station/weather_station.py create mode 100644 Projects/Open_Wifi_Finder/README.md create mode 100644 Projects/Open_Wifi_Finder/wifi_finder.py create mode 100644 Projects/README.md create mode 100644 Projects/Send_Email_With_Pi/sendemailtls.py create mode 100644 Projects/Sensor_Twitter_Feed/README.md create mode 100644 Projects/Sensor_Twitter_Feed/wifi_twit.py create mode 100644 Projects/Street_View_Bike_Cam/README.md create mode 100644 Projects/Street_View_Bike_Cam/dashcam.py create mode 100644 Projects/Ultrasonic_And_Relay/Ultrasonic_And_Relay.py create mode 100644 Projects/Whos_at_the_Door/whos_at_the_door.py create mode 100644 Projects/home_temp_humi_display/home_temp_hum_display.py create mode 100644 Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.png create mode 100644 Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.zargo create mode 100644 Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.zargo~ create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/ButtonRotaryDemo.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleButtonInvoker.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleRotaryInvoker.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/com.dexterind.grovepi.jar create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/pi4j-core.jar create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/lib/com.dexterind.grovepi.jar create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/lib/pi4j-core.jar create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/AnalogInputReader.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/ButtonInvoker.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/ButtonPressDistinguisher.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/DigitalInputReader.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/InputSensorObserver.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/InputSensorReader.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/RotaryAngleDeterminer.java create mode 100644 Projects/java/ButtonRotaryObserver/Project/grovepi/observer/RotaryInvoker.java create mode 100644 Projects/java/ButtonRotaryObserver/README.md create mode 100644 Projects/plant_monitor/plant_project.py create mode 100644 Projects/rain_notifier/README.md create mode 100644 Projects/rain_notifier/rain_notifier.py create mode 100644 Projects/tilt_buzzer/tilt_buzzer.py create mode 100644 Projects/weather_station/README.md create mode 100644 Projects/weather_station/weather_station-Blue_Temp_Sensor.py create mode 100644 Projects/weather_station/weather_station-Blue_Temp_Sensor_pressure.py create mode 100644 Projects/weather_station/weather_station-White_Temp_Sensor.py create mode 100755 README.md create mode 100644 Script/README.md create mode 100644 Script/grove.pth create mode 100644 Script/i2c-tools-3.1.0/CHANGES create mode 100644 Script/i2c-tools-3.1.0/COPYING create mode 100644 Script/i2c-tools-3.1.0/Makefile create mode 100644 Script/i2c-tools-3.1.0/README create mode 100644 Script/i2c-tools-3.1.0/eeprom/Module.mk create mode 100644 Script/i2c-tools-3.1.0/eeprom/README create mode 100644 Script/i2c-tools-3.1.0/eeprom/ddcmon create mode 100644 Script/i2c-tools-3.1.0/eeprom/decode-dimms create mode 100644 Script/i2c-tools-3.1.0/eeprom/decode-edid create mode 100644 Script/i2c-tools-3.1.0/eeprom/decode-vaio create mode 100644 Script/i2c-tools-3.1.0/eepromer/24cXX.c create mode 100644 Script/i2c-tools-3.1.0/eepromer/24cXX.h create mode 100644 Script/i2c-tools-3.1.0/eepromer/Makefile create mode 100644 Script/i2c-tools-3.1.0/eepromer/README create mode 100644 Script/i2c-tools-3.1.0/eepromer/README.eeprog create mode 100644 Script/i2c-tools-3.1.0/eepromer/README.eeprom create mode 100644 Script/i2c-tools-3.1.0/eepromer/README.eepromer create mode 100644 Script/i2c-tools-3.1.0/eepromer/eeprog.c create mode 100644 Script/i2c-tools-3.1.0/eepromer/eeprom.c create mode 100644 Script/i2c-tools-3.1.0/eepromer/eepromer.c create mode 100644 Script/i2c-tools-3.1.0/include/Module.mk create mode 100644 Script/i2c-tools-3.1.0/include/linux/i2c-dev.h create mode 100644 Script/i2c-tools-3.1.0/py-smbus/Module.mk create mode 100644 Script/i2c-tools-3.1.0/py-smbus/README create mode 100644 Script/i2c-tools-3.1.0/py-smbus/build/lib.linux-armv7l-3.2/smbus.cpython-32mu.so create mode 100644 Script/i2c-tools-3.1.0/py-smbus/build/temp.linux-armv7l-3.2/smbusmodule.o create mode 100644 Script/i2c-tools-3.1.0/py-smbus/setup.py create mode 100644 Script/i2c-tools-3.1.0/py-smbus/smbusmodule.c create mode 100644 Script/i2c-tools-3.1.0/stub/Module.mk create mode 100644 Script/i2c-tools-3.1.0/stub/i2c-stub-from-dump create mode 100644 Script/i2c-tools-3.1.0/stub/i2c-stub-from-dump.8 create mode 100644 Script/i2c-tools-3.1.0/tools/Module.mk create mode 100644 Script/i2c-tools-3.1.0/tools/i2cbusses.c create mode 100644 Script/i2c-tools-3.1.0/tools/i2cbusses.h create mode 100644 Script/i2c-tools-3.1.0/tools/i2cdetect.8 create mode 100644 Script/i2c-tools-3.1.0/tools/i2cdetect.c create mode 100644 Script/i2c-tools-3.1.0/tools/i2cdump.8 create mode 100644 Script/i2c-tools-3.1.0/tools/i2cdump.c create mode 100644 Script/i2c-tools-3.1.0/tools/i2cget.8 create mode 100644 Script/i2c-tools-3.1.0/tools/i2cget.c create mode 100644 Script/i2c-tools-3.1.0/tools/i2cset.8 create mode 100644 Script/i2c-tools-3.1.0/tools/i2cset.c create mode 100644 Script/i2c-tools-3.1.0/tools/util.c create mode 100644 Script/i2c-tools-3.1.0/tools/util.h create mode 100644 Script/i2c-tools-3.1.0/version.h create mode 100644 Script/install.sh create mode 100644 Script/install_scratch.sh create mode 100644 Script/multi_grovepi_installer/README.md create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_2_2_addr3.cpp.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_2_2_addr4.cpp.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_2_2_addr5.cpp.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_2_2_addr6.cpp.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_2_2_addr7.cpp.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr3.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr4.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr5.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr6.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr7.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr8.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addr9.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addra.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addrb.hex create mode 100644 Script/multi_grovepi_installer/grove_pi_v1_4_0_addrc.hex create mode 100644 Script/multi_grovepi_installer/grovepi3.py create mode 100644 Script/multi_grovepi_installer/grovepi4.py create mode 100644 Script/multi_grovepi_installer/grovepi5.py create mode 100644 Script/multi_grovepi_installer/grovepi6.py create mode 100644 Script/multi_grovepi_installer/grovepi7.py create mode 100644 Script/multi_grovepi_installer/grovepi8.py create mode 100644 Script/multi_grovepi_installer/grovepi9.py create mode 100644 Script/multi_grovepi_installer/grovepia.py create mode 100644 Script/multi_grovepi_installer/grovepib.py create mode 100644 Script/multi_grovepi_installer/grovepic.py create mode 100644 Script/multi_grovepi_installer/multi_installer.sh create mode 100644 Script/multi_grovepi_installer/setup3.py create mode 100644 Script/multi_grovepi_installer/setup4.py create mode 100644 Script/multi_grovepi_installer/setup5.py create mode 100644 Script/multi_grovepi_installer/setup6.py create mode 100644 Script/multi_grovepi_installer/setup7.py create mode 100644 Script/multi_grovepi_installer/setup8.py create mode 100644 Script/multi_grovepi_installer/setup9.py create mode 100644 Script/multi_grovepi_installer/setupa.py create mode 100644 Script/multi_grovepi_installer/setupb.py create mode 100644 Script/multi_grovepi_installer/setupc.py create mode 100644 Script/update_grovepi.sh create mode 100644 Software/CSharp/.gitattributes create mode 100644 Software/CSharp/.gitignore create mode 100644 Software/CSharp/Driver/Assets/Logo.scale-100.png create mode 100644 Software/CSharp/Driver/Assets/SmallLogo.scale-100.png create mode 100644 Software/CSharp/Driver/Assets/SplashScreen.scale-100.png create mode 100644 Software/CSharp/Driver/Assets/StoreLogo.scale-100.png create mode 100644 Software/CSharp/Driver/Assets/WideLogo.scale-100.png create mode 100644 Software/CSharp/Driver/Driver.csproj create mode 100644 Software/CSharp/Driver/Package.appxmanifest create mode 100644 Software/CSharp/Driver/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Driver/Properties/client.winU.rd.xml create mode 100644 Software/CSharp/Driver/SimpleDriver.cs create mode 100644 Software/CSharp/Driver/project.json create mode 100644 Software/CSharp/Driver/project.lock.json create mode 100644 Software/CSharp/GrovePi.nuspec create mode 100644 Software/CSharp/GrovePi.sln create mode 100644 Software/CSharp/GrovePi/Common/Delay.cs create mode 100644 Software/CSharp/GrovePi/Constants.cs create mode 100644 Software/CSharp/GrovePi/DeviceFactory.cs create mode 100644 Software/CSharp/GrovePi/GrovePi.cs create mode 100644 Software/CSharp/GrovePi/GrovePi.csproj create mode 100644 Software/CSharp/GrovePi/GrovePi.nuspec create mode 100644 Software/CSharp/GrovePi/I2CDevices/MiniMotorDriver.cs create mode 100644 Software/CSharp/GrovePi/I2CDevices/OLEDDisplay128X64.cs create mode 100644 Software/CSharp/GrovePi/I2CDevices/OLEDDisplay9696.cs create mode 100644 Software/CSharp/GrovePi/I2CDevices/RgbLcdDisplay.cs create mode 100644 Software/CSharp/GrovePi/I2CDevices/SHTTemperatureAndHumiditySensor.cs create mode 100644 Software/CSharp/GrovePi/I2CDevices/SixAxisAccelerometerAndCompass.cs create mode 100644 Software/CSharp/GrovePi/I2CDevices/ThreeAxisAccelerometerADXL345.cs create mode 100644 Software/CSharp/GrovePi/Pin.cs create mode 100644 Software/CSharp/GrovePi/PinMode.cs create mode 100644 Software/CSharp/GrovePi/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/GrovePi/Properties/client.winU.rd.xml create mode 100644 Software/CSharp/GrovePi/Sensors/AccelerometerSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/AirQualitySensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/ButtonSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/Buzzer.cs create mode 100644 Software/CSharp/GrovePi/Sensors/ChainableRgbLed.cs create mode 100644 Software/CSharp/GrovePi/Sensors/DHTTemperatureAndHumiditySensor .cs create mode 100644 Software/CSharp/GrovePi/Sensors/FourDigitDisplay.cs create mode 100644 Software/CSharp/GrovePi/Sensors/GasSensorMQ2.cs create mode 100644 Software/CSharp/GrovePi/Sensors/Led.cs create mode 100644 Software/CSharp/GrovePi/Sensors/LedBar.cs create mode 100644 Software/CSharp/GrovePi/Sensors/LightSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/PIRMotionSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/RealTimeClock.cs create mode 100644 Software/CSharp/GrovePi/Sensors/Relay.cs create mode 100644 Software/CSharp/GrovePi/Sensors/RotaryAngleSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/Sensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/SensorStatus.cs create mode 100644 Software/CSharp/GrovePi/Sensors/SoundSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/TemperatureAndHumiditySensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/TemperatureSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/UltrasonicRangerSensor.cs create mode 100644 Software/CSharp/GrovePi/Sensors/WaterAtomizer.cs create mode 100644 Software/CSharp/GrovePi/project.json create mode 100644 Software/CSharp/GrovePi/project.lock.json create mode 100644 Software/CSharp/README-UWP.md create mode 100644 Software/CSharp/README.md create mode 100644 Software/CSharp/Samples/Button_Buzzer/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Button_Buzzer/ButtonBuzzer.csproj create mode 100644 Software/CSharp/Samples/Button_Buzzer/ButtonBuzzer.sln create mode 100644 Software/CSharp/Samples/Button_Buzzer/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Button_Buzzer/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Button_Buzzer/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Button_Buzzer/README.md create mode 100644 Software/CSharp/Samples/Button_Buzzer/StartupTask.cs create mode 100644 Software/CSharp/Samples/Button_Buzzer/project.json create mode 100644 Software/CSharp/Samples/Button_Buzzer/project.lock.json create mode 100644 Software/CSharp/Samples/Example-Button/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-Button/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Button/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Button/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Button/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Button/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-Button/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-Button/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Button/Button.csproj create mode 100644 Software/CSharp/Samples/Example-Button/Button.sln create mode 100644 Software/CSharp/Samples/Example-Button/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-Button/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-Button/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-Button/README.md create mode 100644 Software/CSharp/Samples/Example-Button/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-Button/project.json create mode 100644 Software/CSharp/Samples/Example-Button/project.lock.json create mode 100644 Software/CSharp/Samples/Example-LCD_Display/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LCD_Display/LCDDisplay.csproj create mode 100644 Software/CSharp/Samples/Example-LCD_Display/LCDDisplay.sln create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-LCD_Display/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-LCD_Display/README.md create mode 100644 Software/CSharp/Samples/Example-LCD_Display/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-LCD_Display/project.json create mode 100644 Software/CSharp/Samples/Example-LCD_Display/project.lock.json create mode 100644 Software/CSharp/Samples/Example-LED/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-LED/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LED/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LED/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LED/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LED/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-LED/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-LED/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-LED/LED.sln create mode 100644 Software/CSharp/Samples/Example-LED/LEDTest.csproj create mode 100644 Software/CSharp/Samples/Example-LED/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-LED/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-LED/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-LED/README.md create mode 100644 Software/CSharp/Samples/Example-LED/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-LED/project.json create mode 100644 Software/CSharp/Samples/Example-LED/project.lock.json create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/LightSensor.csproj create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/LightSensor.sln create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/README.md create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/project.json create mode 100644 Software/CSharp/Samples/Example-Light_Sensor/project.lock.json create mode 100644 Software/CSharp/Samples/Example-Relay/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-Relay/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Relay/Button.sln create mode 100644 Software/CSharp/Samples/Example-Relay/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-Relay/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-Relay/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-Relay/README.md create mode 100644 Software/CSharp/Samples/Example-Relay/Relay.csproj create mode 100644 Software/CSharp/Samples/Example-Relay/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-Relay/project.json create mode 100644 Software/CSharp/Samples/Example-Relay/project.lock.json create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/README.md create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/SoundSensor.csproj create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/SoundSensor.sln create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/project.json create mode 100644 Software/CSharp/Samples/Example-Sound_Sensor/project.lock.json create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/README.md create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/TempAndHumid.snk create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/TempandHumid.csproj create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/TempandHumid.sln create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/project.json create mode 100644 Software/CSharp/Samples/Example-Temp_and_Humidity/project.lock.json create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/README.md create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/StartupTask.cs create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Ultrasonic.csproj create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Ultrasonic.sln create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/Ultrasonic.snk create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/project.json create mode 100644 Software/CSharp/Samples/Example-Ultrasonic/project.lock.json create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/GasSensorMQ2/GasSensorMQ2.csproj create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Package.appxmanifest create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/GasSensorMQ2/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/GasSensorMQ2/StartupTask.cs create mode 100644 Software/CSharp/Samples/GasSensorMQ2/project.json create mode 100644 Software/CSharp/Samples/GasSensorMQ2/project.lock.json create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky.sln create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/HelloWorldBlinky.csproj create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Package.appxmanifest create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/StartupTask.cs create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/project.json create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/HelloWorldBlinky/project.lock.json create mode 100644 Software/CSharp/Samples/HelloWorldBlinky/README.md create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay.sln create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/LcdRgbDisplay.csproj create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Package.appxmanifest create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/StartupTask.cs create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/project.json create mode 100644 Software/CSharp/Samples/LcdRgbDisplay/LcdRgbDisplay/project.lock.json create mode 100644 Software/CSharp/Samples/LedFade/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/LedFade/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/LedFade/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/LedFade/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/LedFade/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/LedFade/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/LedFade/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/LedFade/LedFade.csproj create mode 100644 Software/CSharp/Samples/LedFade/LedFade.sln create mode 100644 Software/CSharp/Samples/LedFade/Package.appxmanifest create mode 100644 Software/CSharp/Samples/LedFade/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/LedFade/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/LedFade/README.md create mode 100644 Software/CSharp/Samples/LedFade/StartupTask.cs create mode 100644 Software/CSharp/Samples/LedFade/project.json create mode 100644 Software/CSharp/Samples/LedFade/project.lock.json create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/.vs/config/applicationhost.config create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/LightSensorLCDDisplay.csproj create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/LightSensorLCDDisplay.sln create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/LightSensorLCDDisplay.snk create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Package.appxmanifest create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/README.md create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/StartupTask.cs create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/project.json create mode 100644 Software/CSharp/Samples/Light_Sensor_LCDDisplay/project.lock.json create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/MiniMotorDriver/MiniMotorDriver.csproj create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Package.appxmanifest create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/MiniMotorDriver/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/MiniMotorDriver/StartupTask.cs create mode 100644 Software/CSharp/Samples/MiniMotorDriver/project.json create mode 100644 Software/CSharp/Samples/MiniMotorDriver/project.lock.json create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/OLEDDisplay128X64.csproj create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Package.appxmanifest create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/OLEDDisplay128X64/StartupTask.cs create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/OLEDDisplay9696.csproj create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Package.appxmanifest create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/StartupTask.cs create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/project.json create mode 100644 Software/CSharp/Samples/OLEDDisplay9696/project.lock.json create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/PIRMotionSensor/PIRMotionSensor.csproj create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Package.appxmanifest create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/PIRMotionSensor/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/PIRMotionSensor/StartupTask.cs create mode 100644 Software/CSharp/Samples/PIRMotionSensor/project.json create mode 100644 Software/CSharp/Samples/PIRMotionSensor/project.lock.json create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/LockScreenLogo.scale-200.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/SplashScreen.scale-200.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/Square150x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/Square44x44Logo.scale-200.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/StoreLogo.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Assets/Wide310x150Logo.scale-200.png create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Package.appxmanifest create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Properties/AssemblyInfo.cs create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/Properties/Default.rd.xml create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/StartupTask.cs create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/ThreeAxisAccelemeterADXL345.csproj create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/project.json create mode 100644 Software/CSharp/Samples/ThreeAxisAccelemeterADXL345/project.lock.json create mode 100644 Software/CSharp/Windows_IOT_and_Dex-768x281.jpg create mode 100644 Software/Cpp/README.md create mode 100644 Software/Cpp/grove_button.cpp create mode 100644 Software/Cpp/grove_buzzer.cpp create mode 100644 Software/Cpp/grove_dht_pro/grove_dht_example.cpp create mode 100644 Software/Cpp/grove_dht_pro/grove_dht_pro.cpp create mode 100644 Software/Cpp/grove_dht_pro/grove_dht_pro.h create mode 100644 Software/Cpp/grove_led_blink.cpp create mode 100644 Software/Cpp/grove_led_fade.cpp create mode 100644 Software/Cpp/grove_light_sensor.cpp create mode 100644 Software/Cpp/grove_relay.cpp create mode 100644 Software/Cpp/grove_rgb_lcd/grove_rgb_lcd.cpp create mode 100644 Software/Cpp/grove_rgb_lcd/grove_rgb_lcd.h create mode 100644 Software/Cpp/grove_rgb_lcd/grove_rgb_lcd_example.cpp create mode 100644 Software/Cpp/grove_rotary_angle_sensor.cpp create mode 100644 Software/Cpp/grove_sound_sensor.cpp create mode 100644 Software/Cpp/grovepi.cpp create mode 100644 Software/Cpp/grovepi.h create mode 100644 Software/Cpp/grovepi_analog_read.cpp create mode 100644 Software/Cpp/grovepi_analog_write.cpp create mode 100644 Software/Cpp/grovepi_digital_read.cpp create mode 100644 Software/Cpp/grovepi_digital_write.cpp create mode 100644 Software/Cpp/grovepi_us_read.cpp create mode 100644 Software/Cpp/grovepicpp_0.1.1.tar.gz create mode 100644 Software/Cpp/tar_archive.PNG create mode 100644 Software/Go/LICENSE create mode 100755 Software/Go/README.md create mode 100644 Software/Go/grovepi/grovepi.go create mode 100644 Software/Go/grovepi_dht.go create mode 100644 Software/Go/grovepi_led.go create mode 100644 Software/Go/grovepi_test.go create mode 100644 Software/Java/.classpath create mode 100644 Software/Java/.project create mode 100644 Software/Java/README.md create mode 100644 Software/Java/config/default.properties create mode 100644 Software/Java/scripts/Test.sh create mode 100644 Software/Java/scripts/compile.sh create mode 100644 Software/Java/src/com/dexterind/grovepi/Board.java create mode 100644 Software/Java/src/com/dexterind/grovepi/Grovepi.java create mode 100644 Software/Java/src/com/dexterind/grovepi/GrovepiListener.java create mode 100644 Software/Java/src/com/dexterind/grovepi/events/SensorEvent.java create mode 100644 Software/Java/src/com/dexterind/grovepi/events/StatusEvent.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/DHTDigitalSensor.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/Led.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/base/AnalogSensor.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/base/DigitalSensor.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/base/I2cSensor.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/base/Sensor.java create mode 100644 Software/Java/src/com/dexterind/grovepi/sensors/base/SensorStatus.java create mode 100644 Software/Java/src/com/dexterind/grovepi/utils/Commands.java create mode 100644 Software/Java/src/com/dexterind/grovepi/utils/Debug.java create mode 100644 Software/Java/src/com/dexterind/grovepi/utils/Statuses.java create mode 100644 Software/Java/test/Test.java create mode 100644 Software/Java/test/tests/BaseTest.java create mode 100644 Software/Java8/.gitignore create mode 100644 Software/Java8/.project create mode 100644 Software/Java8/.settings/org.eclipse.m2e.core.prefs create mode 100644 Software/Java8/GrovePi-pi4j/.classpath create mode 100644 Software/Java8/GrovePi-pi4j/.project create mode 100644 Software/Java8/GrovePi-pi4j/.settings/org.eclipse.core.resources.prefs create mode 100644 Software/Java8/GrovePi-pi4j/.settings/org.eclipse.jdt.core.prefs create mode 100644 Software/Java8/GrovePi-pi4j/.settings/org.eclipse.m2e.core.prefs create mode 100644 Software/Java8/GrovePi-pi4j/pom.xml create mode 100644 Software/Java8/GrovePi-pi4j/src/main/java/org/iot/raspberry/grovepi/pi4j/GrovePi4J.java create mode 100644 Software/Java8/GrovePi-pi4j/src/main/java/org/iot/raspberry/grovepi/pi4j/GroveRgbLcdPi4J.java create mode 100644 Software/Java8/GrovePi-pi4j/src/main/java/org/iot/raspberry/grovepi/pi4j/IO.java create mode 100644 Software/Java8/GrovePi-spec/.classpath create mode 100644 Software/Java8/GrovePi-spec/.project create mode 100644 Software/Java8/GrovePi-spec/.settings/org.eclipse.core.resources.prefs create mode 100644 Software/Java8/GrovePi-spec/.settings/org.eclipse.jdt.core.prefs create mode 100644 Software/Java8/GrovePi-spec/.settings/org.eclipse.m2e.core.prefs create mode 100644 Software/Java8/GrovePi-spec/pom.xml create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveAnalogIn.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveAnalogInListener.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveAnalogOut.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveAnalogPin.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveDevices.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveDigitalIn.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveDigitalInListener.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveDigitalOut.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveDigitalPin.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveI2CPin.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveIO.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GrovePi.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GrovePiCommands.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GrovePiSequence.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GrovePiSequenceVoid.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/GroveUtil.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveAnalogInputDevice.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveInputDeviceListener.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveLed.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveLightSensor.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveRelay.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveRgbLcd.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveRotarySensor.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveRotaryValue.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveSoundSensor.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveTemperatureAndHumiditySensor.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveTemperatureAndHumidityValue.java create mode 100644 Software/Java8/GrovePi-spec/src/main/java/org/iot/raspberry/grovepi/devices/GroveUltrasonicRanger.java create mode 100644 Software/Java8/LICENSE create mode 100644 Software/Java8/ProjectStub/build.xml create mode 100644 Software/Java8/ProjectStub/manifest.mf create mode 100644 Software/Java8/ProjectStub/nbproject/build-impl.xml create mode 100644 Software/Java8/ProjectStub/nbproject/genfiles.properties create mode 100644 Software/Java8/ProjectStub/nbproject/project.properties create mode 100644 Software/Java8/ProjectStub/nbproject/project.xml create mode 100644 Software/Java8/ProjectStub/src/org/iot/stub/Main.java create mode 100644 Software/Java8/README.md create mode 100644 Software/Java8/examples/build.xml create mode 100644 Software/Java8/examples/manifest.mf create mode 100644 Software/Java8/examples/nbproject/build-impl.xml create mode 100644 Software/Java8/examples/nbproject/genfiles.properties create mode 100644 Software/Java8/examples/nbproject/project.properties create mode 100644 Software/Java8/examples/nbproject/project.xml create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/AutomaticAC.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/BlinkingLed.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/ButtonLed.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/ButtonListener.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/Example.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/LightSensor.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/Monitor.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/Relay.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/RgbLcd.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/RotarySensor3Led.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/RotarySensorDimLed.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/Runner.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/RunnerTest.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/SoundSensor.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/TemperatureAndHumidity.java create mode 100644 Software/Java8/examples/src/org/iot/raspberry/examples/UltrasonicRanger.java create mode 100644 Software/Java8/pom.xml create mode 100644 Software/Java8/raspberryPi.txt create mode 100644 Software/NodeJS/.gitignore create mode 100644 Software/NodeJS/CONTRIBUTING.md create mode 100644 Software/NodeJS/LICENSE create mode 100644 Software/NodeJS/README.md create mode 100644 Software/NodeJS/libs/commands.js create mode 100644 Software/NodeJS/libs/grovepi.js create mode 100644 Software/NodeJS/libs/index.js create mode 100644 Software/NodeJS/libs/package.json create mode 100644 Software/NodeJS/libs/sensors/DHTDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/IRReceiverSensor.js create mode 100644 Software/NodeJS/libs/sensors/SPDTRelay.js create mode 100644 Software/NodeJS/libs/sensors/accelerationI2cSensor.js create mode 100644 Software/NodeJS/libs/sensors/airQualityAnalogSensor.js create mode 100644 Software/NodeJS/libs/sensors/base/analogSensor.js create mode 100644 Software/NodeJS/libs/sensors/base/digitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/base/i2cSensor.js create mode 100644 Software/NodeJS/libs/sensors/base/sensor.js create mode 100644 Software/NodeJS/libs/sensors/chainableRGBLedDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/digitalButton.js create mode 100644 Software/NodeJS/libs/sensors/dustDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/encoderDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/fourDigitDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/genericDigitalInputSensor.js create mode 100644 Software/NodeJS/libs/sensors/genericDigitalOutputSensor.js create mode 100644 Software/NodeJS/libs/sensors/helpers.js create mode 100644 Software/NodeJS/libs/sensors/ledBarDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/lightAnalogSensor.js create mode 100644 Software/NodeJS/libs/sensors/loudnessAnalogSensor.js create mode 100644 Software/NodeJS/libs/sensors/rotaryAngleAnalogSensor.js create mode 100644 Software/NodeJS/libs/sensors/rtcI2cSensor.js create mode 100644 Software/NodeJS/libs/sensors/temperatureAnalogSensor.js create mode 100644 Software/NodeJS/libs/sensors/ultrasonicDigitalSensor.js create mode 100644 Software/NodeJS/libs/sensors/waterFlowDigitalSensor.js create mode 100644 Software/NodeJS/tests/basicTest.js create mode 100644 Software/NodeJS/tests/led_blink.js create mode 100644 Software/Python/GrovePi_Hardware_Test.py create mode 100755 Software/Python/README.md create mode 100644 Software/Python/firmware_tests/digital_analog.py create mode 100644 Software/Python/firmware_tests/multi_analog_read.py create mode 100644 Software/Python/firmware_tests/multi_digital_read.py create mode 100644 Software/Python/firmware_tests/multi_led_blink.py create mode 100644 Software/Python/grove_2_coil_latching_relay.py create mode 100644 Software/Python/grove_4_digit_display.py create mode 100644 Software/Python/grove_6axis_acc_compass/grove_6axis_accel_compass_example.py create mode 100644 Software/Python/grove_6axis_acc_compass/lsm303d.py create mode 100644 Software/Python/grove_80cm_infrared_proximity_sensor.py create mode 100644 Software/Python/grove_accelerometer_16g/LICENSE.txt create mode 100644 Software/Python/grove_accelerometer_16g/README.md create mode 100644 Software/Python/grove_accelerometer_16g/adxl345.py create mode 100644 Software/Python/grove_accelerometer_16g/basic_example.py create mode 100644 Software/Python/grove_accelerometer_16g/example.py create mode 100644 Software/Python/grove_air_quality_sensor.py create mode 100644 Software/Python/grove_analog_read.py create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp085/grove_barometer_example_BMP085.py create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp085/grove_barometer_lib.py create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp085/readme_grove_i2c_barometic_sensor_BMP085.MD create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp180/Adafruit_I2C.py create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp180/grove_i2c_barometic_sensor_BMP180.py create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp180/grove_i2c_barometic_sensor_example.py create mode 100644 Software/Python/grove_barometer_sensors/barometric_sensor_bmp180/readme_grove_i2c_barometic_sensor_BMP180.MD create mode 100644 Software/Python/grove_barometer_sensors/high_accuracy_hp206c_barometer/KalmanFilter.py create mode 100644 Software/Python/grove_barometer_sensors/high_accuracy_hp206c_barometer/high_accuracy_barometer_example.py create mode 100644 Software/Python/grove_barometer_sensors/high_accuracy_hp206c_barometer/hp206c.py create mode 100644 Software/Python/grove_button.py create mode 100644 Software/Python/grove_buzzer.py create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/chainable_rgb_direct.py create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/chainable_rgb_direct_example.py create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/Makefile create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/P9813GPIO.c create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/P9813GPIO.h create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/P9813GPIO.h.gch create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/PN532SPI.c create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/PN532SPI.h create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/README.md create mode 100644 Software/Python/grove_chainable_rgb_led/direct_serial_lib/prototype_c_code/main.c create mode 100644 Software/Python/grove_chainable_rgb_led/grove_chainable_rgb_led_test.py create mode 100644 Software/Python/grove_chainable_rgb_led/individual_led_control.py create mode 100644 Software/Python/grove_chainable_rgb_led/old_grove_chainable_rgb_led.py create mode 100644 Software/Python/grove_co2_sensor/grove_co2_example.py create mode 100644 Software/Python/grove_co2_sensor/grove_co2_lib.py create mode 100644 Software/Python/grove_collision_sensor.py create mode 100644 Software/Python/grove_compass_example.py create mode 100644 Software/Python/grove_compass_lib.py create mode 100644 Software/Python/grove_dht_pro.py create mode 100644 Software/Python/grove_dht_pro_filter/grove_dht.py create mode 100644 Software/Python/grove_dht_pro_filter/grove_dht_example1.py create mode 100644 Software/Python/grove_dht_pro_filter/grove_dht_example2.py create mode 100644 Software/Python/grove_dht_pro_filter/grove_dht_example3.py create mode 100644 Software/Python/grove_dry_reed_relay.py create mode 100644 Software/Python/grove_dust_sensor.py create mode 100644 Software/Python/grove_earclipheartrate/grove_earclipheartrate.py create mode 100644 Software/Python/grove_electricity_sensor.py create mode 100644 Software/Python/grove_electromagnet.py create mode 100644 Software/Python/grove_encoder_read.py create mode 100644 Software/Python/grove_fingerclip_heart_sensor/grove_fingerclip_heart_sensor.py create mode 100644 Software/Python/grove_firmware_version_check.py create mode 100644 Software/Python/grove_flame_sensor.py create mode 100644 Software/Python/grove_flow_read.py create mode 100644 Software/Python/grove_gas_sensor.py create mode 100644 Software/Python/grove_gesture_sensor/README.md create mode 100644 Software/Python/grove_gesture_sensor/gesture_print.py create mode 100644 Software/Python/grove_gesture_sensor/gesture_value.py create mode 100644 Software/Python/grove_gesture_sensor/grove_gesture_sensor.py create mode 100644 Software/Python/grove_gps/GroveGPS.py create mode 100644 Software/Python/grove_gps/README.md create mode 100644 Software/Python/grove_gps/dextergps.py create mode 100755 Software/Python/grove_gps/grove_gps_data.py create mode 100644 Software/Python/grove_gps/grove_gps_hardware_test.py create mode 100644 Software/Python/grove_hcho_sensor.py create mode 100644 Software/Python/grove_hightemperature_sensor/README.md create mode 100644 Software/Python/grove_hightemperature_sensor/grove_hightemperature_sensor.py create mode 100644 Software/Python/grove_hightemperature_sensor/high_temperature_example.py create mode 100644 Software/Python/grove_hightemperature_sensor/thermocouple_table.json create mode 100644 Software/Python/grove_i2c_accelerometer.py create mode 100644 Software/Python/grove_i2c_adc/README.md create mode 100644 Software/Python/grove_i2c_adc/grove_i2c_adc.py create mode 100644 Software/Python/grove_i2c_adc/i2c_adc_example.py create mode 100644 Software/Python/grove_i2c_color_sensor/color_sensor_example.py create mode 100644 Software/Python/grove_i2c_color_sensor/grove_i2c_color_sensor.py create mode 100644 Software/Python/grove_i2c_digital_light_sensor/Adafruit_I2C.py create mode 100644 Software/Python/grove_i2c_digital_light_sensor/grove_i2c_digital_light_sensor.py create mode 100644 Software/Python/grove_i2c_digital_light_sensor/readme_grove_i2c_digital_light_sensor.MD create mode 100644 Software/Python/grove_i2c_motor_driver/grove_i2c_motor_driver.py create mode 100644 Software/Python/grove_i2c_motor_driver/motor_example.py create mode 100644 Software/Python/grove_i2c_multichannel_gas_sensor/multichannel_gas_sensor.py create mode 100644 Software/Python/grove_i2c_oled_128_64/grove_128_64_oled.py create mode 100644 Software/Python/grove_i2c_oled_128_64/grove_128_64_oled_test.py create mode 100644 Software/Python/grove_i2c_rtc.py create mode 100644 Software/Python/grove_i2c_sunlight_sensor/I2C.py create mode 100644 Software/Python/grove_i2c_sunlight_sensor/Platform.py create mode 100644 Software/Python/grove_i2c_sunlight_sensor/README.md create mode 100644 Software/Python/grove_i2c_sunlight_sensor/SI1145.py create mode 100644 Software/Python/grove_i2c_sunlight_sensor/simpletest.py create mode 100644 Software/Python/grove_i2c_temp_hum_hdc1000/grove_hdc_1000_example.py create mode 100644 Software/Python/grove_i2c_temp_hum_hdc1000/grove_i2c_temp_hum_hdc1000.py create mode 100644 Software/Python/grove_i2c_temp_hum_sensor_mini/grove_i2c_temp_hum_mini.py create mode 100644 Software/Python/grove_i2c_temp_hum_sensor_mini/temp_hum_example.py create mode 100644 Software/Python/grove_i2c_touch/I2C.py create mode 100644 Software/Python/grove_i2c_touch/MPR121.py create mode 100644 Software/Python/grove_i2c_touch/Platform.py create mode 100644 Software/Python/grove_i2c_touch/README.md create mode 100644 Software/Python/grove_i2c_touch/touchtest.py create mode 100644 Software/Python/grove_infrared_distance_interrupt.py create mode 100644 Software/Python/grove_infrared_reflective_sensor.py create mode 100644 Software/Python/grove_ir_receiver.py create mode 100644 Software/Python/grove_ir_receiver/README.md create mode 100644 Software/Python/grove_ir_receiver/ir_recv_example.py create mode 100644 Software/Python/grove_ir_receiver/script/README.md create mode 100644 Software/Python/grove_ir_receiver/script/hardware_copy.conf create mode 100644 Software/Python/grove_ir_receiver/script/ir_install.sh create mode 100644 Software/Python/grove_ir_receiver/script/lircd_keyes.conf create mode 100644 Software/Python/grove_ir_receiver/script/lircrc_keyes create mode 100644 Software/Python/grove_ir_receiver/script/setup_older_version.sh create mode 100644 Software/Python/grove_led_blink.py create mode 100755 Software/Python/grove_led_fade.py create mode 100644 Software/Python/grove_ledbar.py create mode 100644 Software/Python/grove_light_sensor.py create mode 100644 Software/Python/grove_line_finder.py create mode 100644 Software/Python/grove_loudness_sensor.py create mode 100644 Software/Python/grove_magnetic_switch.py create mode 100644 Software/Python/grove_mini_motor_driver/README.md create mode 100644 Software/Python/grove_mini_motor_driver/driver_example.py create mode 100644 Software/Python/grove_mini_motor_driver/grove_mini_motor_driver.py create mode 100644 Software/Python/grove_moisture_sensor.py create mode 100644 Software/Python/grove_mosfet.py create mode 100644 Software/Python/grove_nfc_tag.py create mode 100644 Software/Python/grove_oled/grove_i2c_oled_96x96_hello_world.py create mode 100644 Software/Python/grove_oled/grove_oled.py create mode 100644 Software/Python/grove_ph_sensor.py create mode 100644 Software/Python/grove_piezo_vibration_sensor.py create mode 100644 Software/Python/grove_pir_motion_sensor.py create mode 100644 Software/Python/grove_relay.py create mode 100644 Software/Python/grove_rflink433mhz_oneway_kit/README.md create mode 100644 Software/Python/grove_rflink433mhz_oneway_kit/grove_receiver_example.py create mode 100644 Software/Python/grove_rflink433mhz_oneway_kit/grove_rflink433mhz.py create mode 100644 Software/Python/grove_rflink433mhz_oneway_kit/grove_transmitter_example.py create mode 100644 Software/Python/grove_rgb_lcd/example.py create mode 100644 Software/Python/grove_rgb_lcd/example2.py create mode 100644 Software/Python/grove_rgb_lcd/example3.py create mode 100644 Software/Python/grove_rgb_lcd/grove_rgb_lcd.py create mode 100755 Software/Python/grove_rotary_angle_sensor.py create mode 100644 Software/Python/grove_single_axis_analog_gyro.py create mode 100644 Software/Python/grove_slide_potentiometer.py create mode 100644 Software/Python/grove_solid_state_relay.py create mode 100644 Software/Python/grove_sound_sensor.py create mode 100644 Software/Python/grove_spdt_relay.py create mode 100644 Software/Python/grove_switch.py create mode 100644 Software/Python/grove_switch_relay.py create mode 100644 Software/Python/grove_temperature_sensor.py create mode 100644 Software/Python/grove_thumb_joystick.py create mode 100644 Software/Python/grove_tilt_switch.py create mode 100644 Software/Python/grove_touch_sensor.py create mode 100644 Software/Python/grove_ultrasonic.py create mode 100644 Software/Python/grove_vibration_motor.py create mode 100644 Software/Python/grove_water_sensor.py create mode 100755 Software/Python/grovepi.py create mode 100644 Software/Python/package_description.rst create mode 100644 Software/Python/package_modules.txt create mode 100644 Software/Python/requirements.txt create mode 100644 Software/Python/setup.cfg create mode 100755 Software/Python/setup.py create mode 100644 Software/Python/temp.py create mode 100644 Software/Python/test_script/multi_sensor.py create mode 100644 Software/Python/test_script/test_suite.py create mode 100755 Software/README.md create mode 100644 Software/Ruby/README.md create mode 100644 Software/Ruby/grove_pi.rb create mode 100755 Software/Ruby/tests/test_read_analog.rb create mode 100755 Software/Ruby/tests/test_read_digital.rb create mode 100755 Software/Ruby/tests/test_write_analog.rb create mode 100755 Software/Ruby/tests/test_write_digital.rb create mode 100644 Software/Rust/README.md create mode 100644 Software/Rust/grove_rgb/.cargo/config create mode 100644 Software/Rust/grove_rgb/.vscode/launch.json create mode 100644 Software/Rust/grove_rgb/Cargo.lock create mode 100644 Software/Rust/grove_rgb/Cargo.toml create mode 100644 Software/Rust/grove_rgb/src/grove_rgb_lcd.rs create mode 100644 Software/Rust/grove_rgb/src/main.rs create mode 100755 Software/Scratch/GrovePiScratch.py create mode 100755 Software/Scratch/GrovePi_Scratch_Scripts/GrovePiScratch_debug.sh create mode 100644 Software/Scratch/GrovePi_Scratch_Scripts/GrovePi_Scratch_Start.desktop create mode 100755 Software/Scratch/GrovePi_Scratch_Scripts/GrovePi_Scratch_Start.sh create mode 100644 Software/Scratch/GrovePi_Scratch_Scripts/README.md create mode 100644 Software/Scratch/GrovePi_Scratch_Scripts/Scratch_setup.txt create mode 100644 Software/Scratch/Grove_Examples/Barometer_Example.sb create mode 100644 Software/Scratch/Grove_Examples/LCD.sb create mode 100644 Software/Scratch/Grove_Examples/README.md create mode 100644 Software/Scratch/Grove_Examples/Rotary.sb create mode 100644 Software/Scratch/Grove_Examples/Save_Variables_To_Text.sb create mode 100644 Software/Scratch/Grove_Examples/Take_Picture_Example.sb create mode 100644 Software/Scratch/Grove_Examples/led_on_port_D7.sb create mode 100644 Software/Scratch/Grove_Examples/two_buttons_in_parallel.sb create mode 100644 Software/Scratch/Grove_Examples/two_tone_buzzer.sb create mode 100644 Software/Scratch/Local_Scratch2_Start.desktop create mode 100644 Software/Scratch/Local_Scratch_Start.desktop create mode 100755 Software/Scratch/launch_scratch2.sh create mode 100644 Software/Scratch/new.sb create mode 100644 Software/Scratch/readme.md create mode 100755 Software/Scratch/s2pifiles/extensions.json create mode 100755 Software/Scratch/s2pifiles/grovepi.html create mode 100755 Software/Scratch/s2pifiles/grovepi.png create mode 100755 Software/Scratch/s2pifiles/piGrovePiExtension.js create mode 100755 Software/Scratch/s2pifiles/setup_scratch2.sh create mode 100644 Software/Scratch/scratch_functions.png create mode 100644 Software/Scratch/start_local_scratch.sh create mode 100644 Software/Scratch/websocket_server.py create mode 100755 Software/Scratch/wstosgh.py create mode 100755 Software/Shell/Grove - I2C FM Receiver/radio.sh create mode 100755 Software/Shell/Grove - LCD RGB Backlight/lcd.sh create mode 100644 Software/flogo/LICENSE create mode 100644 Software/flogo/README.md create mode 100644 Software/flogo/activities/grovepiDHT/activity.go create mode 100644 Software/flogo/activities/grovepiDHT/activity.json create mode 100644 Software/flogo/activities/grovepiDHT/activity_test.go create mode 100644 Software/flogo/activities/grovepiDigitalWrite/activity.go create mode 100644 Software/flogo/activities/grovepiDigitalWrite/activity.json create mode 100644 Software/flogo/activities/grovepiDigitalWrite/activity_test.go create mode 100644 Software/flogo/screenshots/Flogo-GrovePi-Flow.png create mode 100644 Software/flogo/screenshots/Flogo-add-Activity.png create mode 100644 Software/flogo/screenshots/GrovePi-Extension-Install.png create mode 100644 Software/flogo/screenshots/GrovePi-Extension-Success.png create mode 100644 Troubleshooting/README.md create mode 100755 Troubleshooting/all_tests.sh create mode 100755 Troubleshooting/avrdude_test.sh create mode 100644 Troubleshooting/complete_test.sh create mode 100755 Troubleshooting/firmware_version_test.sh create mode 100755 Troubleshooting/i2c_test1.sh create mode 100755 Troubleshooting/software_status.sh create mode 100644 docs/404.html create mode 100644 docs/api/complex/index.html create mode 100644 docs/api/general/index.html create mode 100644 docs/api/gpio/index.html create mode 100644 docs/api/interrupt/index.html create mode 100644 docs/assets/fonts/font-awesome.css create mode 100644 docs/assets/fonts/material-icons.css create mode 100644 docs/assets/fonts/specimen/FontAwesome.ttf create mode 100644 docs/assets/fonts/specimen/FontAwesome.woff create mode 100644 docs/assets/fonts/specimen/FontAwesome.woff2 create mode 100644 docs/assets/fonts/specimen/MaterialIcons-Regular.ttf create mode 100644 docs/assets/fonts/specimen/MaterialIcons-Regular.woff create mode 100644 docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 create mode 100644 docs/assets/images/favicon.png create mode 100644 docs/assets/images/icons/bitbucket.1b09e088.svg create mode 100644 docs/assets/images/icons/github.f0b8504a.svg create mode 100644 docs/assets/images/icons/gitlab.6dd19c00.svg create mode 100644 docs/assets/javascripts/application.267712eb.js create mode 100644 docs/assets/javascripts/application.a59e2a89.js create mode 100644 docs/assets/javascripts/application.b806dc00.js create mode 100644 docs/assets/javascripts/lunr/lunr.da.js create mode 100644 docs/assets/javascripts/lunr/lunr.de.js create mode 100644 docs/assets/javascripts/lunr/lunr.du.js create mode 100644 docs/assets/javascripts/lunr/lunr.es.js create mode 100644 docs/assets/javascripts/lunr/lunr.fi.js create mode 100644 docs/assets/javascripts/lunr/lunr.fr.js create mode 100644 docs/assets/javascripts/lunr/lunr.hu.js create mode 100644 docs/assets/javascripts/lunr/lunr.it.js create mode 100644 docs/assets/javascripts/lunr/lunr.ja.js create mode 100644 docs/assets/javascripts/lunr/lunr.jp.js create mode 100644 docs/assets/javascripts/lunr/lunr.multi.js create mode 100644 docs/assets/javascripts/lunr/lunr.nl.js create mode 100644 docs/assets/javascripts/lunr/lunr.no.js create mode 100644 docs/assets/javascripts/lunr/lunr.pt.js create mode 100644 docs/assets/javascripts/lunr/lunr.ro.js create mode 100644 docs/assets/javascripts/lunr/lunr.ru.js create mode 100644 docs/assets/javascripts/lunr/lunr.stemmer.support.js create mode 100644 docs/assets/javascripts/lunr/lunr.sv.js create mode 100644 docs/assets/javascripts/lunr/lunr.th.js create mode 100644 docs/assets/javascripts/lunr/lunr.tr.js create mode 100644 docs/assets/javascripts/lunr/tinyseg.js create mode 100644 docs/assets/javascripts/lunr/wordcut.js create mode 100644 docs/assets/javascripts/modernizr.01ccdecf.js create mode 100644 docs/assets/javascripts/modernizr.1aa3b519.js create mode 100644 docs/assets/javascripts/modernizr.1f0bcf2b.js create mode 100644 docs/assets/stylesheets/application-palette.224b79ff.css create mode 100644 docs/assets/stylesheets/application-palette.6079476c.css create mode 100644 docs/assets/stylesheets/application.3020aac5.css create mode 100644 docs/assets/stylesheets/application.982221ab.css create mode 100644 docs/assets/stylesheets/application.ba0fd1a6.css create mode 100644 docs/dev/Dockerfile create mode 100644 docs/dev/index.html create mode 100644 docs/docs/api/complex.md create mode 100644 docs/docs/api/general.md create mode 100644 docs/docs/api/gpio.md create mode 100644 docs/docs/api/interrupt.md create mode 100644 docs/docs/dev/Dockerfile create mode 100644 docs/docs/dev/README.md create mode 100644 docs/docs/fw.md create mode 100644 docs/docs/hw.md create mode 100644 docs/docs/img/biglogo.jpg create mode 100644 docs/docs/img/dust_sensor_characteristics.jpg create mode 100644 docs/docs/img/favicon.ico create mode 100644 docs/docs/img/grovepi.jpg create mode 100644 docs/docs/img/logo.bmp create mode 100644 docs/docs/img/rpi_hw.jpg create mode 100644 docs/docs/img/sensors.PNG create mode 100644 docs/docs/img/stackedgrovepi.jpg create mode 100644 docs/docs/index.md create mode 100644 docs/docs/quickstart.md create mode 100644 docs/docs/release-notes.md create mode 100644 docs/docs/supported.md create mode 100644 docs/fw/index.html create mode 100644 docs/hw/index.html create mode 100644 docs/img/biglogo.jpg create mode 100644 docs/img/dust_sensor_characteristics.jpg create mode 100644 docs/img/favicon.ico create mode 100644 docs/img/grovepi.jpg create mode 100644 docs/img/logo.bmp create mode 100644 docs/img/rpi_hw.jpg create mode 100644 docs/img/sensors.PNG create mode 100644 docs/img/stackedgrovepi.jpg create mode 100644 docs/index.html create mode 100644 docs/mkdocs.yml create mode 100644 docs/quickstart/index.html create mode 100644 docs/release-notes/index.html create mode 100644 docs/search/search_index.json create mode 100644 docs/site/404.html create mode 100644 docs/site/api/complex/index.html create mode 100644 docs/site/api/general/index.html create mode 100644 docs/site/api/gpio/index.html create mode 100644 docs/site/api/interrupt/index.html create mode 100644 docs/site/assets/fonts/font-awesome.css create mode 100644 docs/site/assets/fonts/material-icons.css create mode 100644 docs/site/assets/fonts/specimen/FontAwesome.ttf create mode 100644 docs/site/assets/fonts/specimen/FontAwesome.woff create mode 100644 docs/site/assets/fonts/specimen/FontAwesome.woff2 create mode 100644 docs/site/assets/fonts/specimen/MaterialIcons-Regular.ttf create mode 100644 docs/site/assets/fonts/specimen/MaterialIcons-Regular.woff create mode 100644 docs/site/assets/fonts/specimen/MaterialIcons-Regular.woff2 create mode 100644 docs/site/assets/images/favicon.png create mode 100644 docs/site/assets/images/icons/bitbucket.1b09e088.svg create mode 100644 docs/site/assets/images/icons/github.f0b8504a.svg create mode 100644 docs/site/assets/images/icons/gitlab.6dd19c00.svg create mode 100644 docs/site/assets/javascripts/application.267712eb.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.da.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.de.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.du.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.es.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.fi.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.fr.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.hu.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.it.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.ja.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.jp.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.multi.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.nl.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.no.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.pt.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.ro.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.ru.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.stemmer.support.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.sv.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.th.js create mode 100644 docs/site/assets/javascripts/lunr/lunr.tr.js create mode 100644 docs/site/assets/javascripts/lunr/tinyseg.js create mode 100644 docs/site/assets/javascripts/lunr/wordcut.js create mode 100644 docs/site/assets/javascripts/modernizr.01ccdecf.js create mode 100644 docs/site/assets/stylesheets/application-palette.224b79ff.css create mode 100644 docs/site/assets/stylesheets/application.3020aac5.css create mode 100644 docs/site/dev/Dockerfile create mode 100644 docs/site/dev/index.html create mode 100644 docs/site/fw/index.html create mode 100644 docs/site/hw/index.html create mode 100644 docs/site/img/biglogo.jpg create mode 100644 docs/site/img/dust_sensor_characteristics.jpg create mode 100644 docs/site/img/favicon.ico create mode 100644 docs/site/img/grovepi.jpg create mode 100644 docs/site/img/logo.bmp create mode 100644 docs/site/img/rpi_hw.jpg create mode 100644 docs/site/img/sensors.PNG create mode 100644 docs/site/img/stackedgrovepi.jpg create mode 100644 docs/site/index.html create mode 100644 docs/site/quickstart/index.html create mode 100644 docs/site/release-notes/index.html create mode 100644 docs/site/search/search_index.json create mode 100644 docs/site/sitemap.xml create mode 100644 docs/site/sitemap.xml.gz create mode 100644 docs/site/supported/index.html create mode 100644 docs/sitemap.xml create mode 100644 docs/sitemap.xml.gz create mode 100644 docs/supported/index.html create mode 100644 installer.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..41ea20a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,71 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain + +*.sh text eol=lf +*.py text eol=lf +*.md text eol=lf +*.txt text eol=lf +*.html text eol=lf +*.java text eol=lf +*.c text eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..80c83a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,58 @@ +# For PlatformIO extension +.pio/ + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk +*.suo +Debug +bin +obj +Release +*.user + +# Visual Studio files +*.pyc +*.pfx +Firmware/Source/grovepi/\.pioenvs/ +Firmware/Source/grovepi/\.vscode/ diff --git a/Firmware/Archive/grove_pi_v1_1.hex b/Firmware/Archive/grove_pi_v1_1.hex new file mode 100644 index 0000000..3117a99 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_1.hex @@ -0,0 +1,530 @@ +:100000000C9463000C948B000C948B000C948B006C +:100010000C948B000C948B000C948B000C948B0034 +:100020000C948B000C948B000C948B000C948B0024 +:100030000C948B000C948B000C948B000C948B0014 +:100040000C94FA080C948B000C94D80C0C94140D9E +:100050000C948B000C948B000C948B000C948B00F4 +:100060000C94A6040C948B00000000070002010011 +:100070000003040600000000000000000102040864 +:100080001020408001020408102001020408102002 +:10009000040404040404040402020202020203032E +:1000A00003030303000000002300260029000000D2 +:1000B0000000250028002B0000000000240027007D +:1000C0002A00B503CF0D11241FBECFEFD8E0DEBF4D +:1000D000CDBF11E0A0E0B1E0E4ECF0E202C0059099 +:1000E0000D92A233B107D9F712E0A2E3B1E001C04B +:1000F0001D92A03EB107E1F710E0C6ECD0E004C0CD +:100100002297FE010E945C10C23CD107C9F70E94F1 +:100110002F0C0C9460100C940000CF93DF9322C03E +:100120008CE691E00E948F02049741F410924801FE +:100130001092470110924A0110924901C091490161 +:10014000D0914A018CE691E00E949802FE01EE0FE8 +:10015000FF1FE55BFE4F918380832196D0934A0178 +:10016000C09349018CE691E00E948F02892BC1F671 +:10017000DF91CF91089580914B0190914C010197AF +:1001800031F4609146018CE691E00E941A0380915F +:100190004B0190914C018330910511F0079741F488 +:1001A00043E050E06DE371E08CE691E00E94EC02E8 +:1001B00080914B0190914C01449741F444E050E010 +:1001C0006DE371E08CE691E00E94EC0280914B01BE +:1001D00090914C018E31910511F0889741F449E0DE +:1001E00050E06DE371E08CE691E00C94EC02089530 +:1001F00040E855E260E070E089E392E00E944F0D34 +:1002000064E070E08CE691E00E9477036DE870E0B6 +:100210008CE691E00E94AB036BEB70E08CE691E022 +:100220000E94B00361E071E089E392E00C941B0C42 +:10023000CF93DF93CDB7DEB728970FB6F894DEBF24 +:100240000FBECDBF8091490190914A01049709F0FA +:100250005DC18091470190914801892B09F056C1F9 +:1002600081E090E0909348018093470180914B0199 +:1002700090914C01019731F480914D010E94060B41 +:100280008093460180914B0190914C01029731F48B +:1002900060914F0180914D010E94CF0A80914B01E6 +:1002A00090914C010397A9F480914D010E94EB09B4 +:1002B00090933C0180933B019C0197FF02C0215029 +:1002C0003F4F30933E0160E071E00E94E80F809361 +:1002D0003F0180914B0190914C01049741F4609152 +:1002E0004F017091500180914D010E940C0A809144 +:1002F0004B0190914C01059731F460914F01809131 +:100300004D010E94970A80914B0190914C010797F3 +:1003100009F042C080914D0190914E0180933401CB +:100320009093350161E00E94970A60E0809134016A +:100330000E94CF0A82E090E00E94A60961E08091CD +:1003400034010E94CF0A85E090E00E94A60960E097 +:10035000809134010E94CF0A60E0809134010E94B4 +:10036000970A20E432E44FE050E061E080913401EC +:100370000E942F0B2AE330E040E050E00E941E1064 +:10038000CA01B90120E031E040E050E00E941E10B7 +:1003900020933E0160933F0180914B0190914C016D +:1003A000449709F580913A01811107C08BE691E0ED +:1003B0000E94030681E080933A0128E331E047E39D +:1003C00051E066E371E08BE691E00E9413068091B4 +:1003D000360180933E018091370180933F018091E7 +:1003E00038018093400180914B0190914C014E97D0 +:1003F00069F580913901811107C083E691E00E947F +:10040000C20681E08093390183E691E00E94C6062E +:100410008091650180933E018091640180933F014A +:100420008091630180934001809168018093410134 +:1004300080916701809342019091690190934301FB +:1004400080934401809166018093450180914B0126 +:1004500090914C01889709F059C080914F0190917B +:100460005001009719F426E04BE005C0813091055A +:1004700049F426E046E160914D0185E591E00E9456 +:100480004C0708C08230910519F426E045E1F3CF0E +:100490000397D9F360E085E591E00E9461086D83E0 +:1004A0007E838F83988785E591E00E941308698396 +:1004B0007A838B839C831092330110923201FE0168 +:1004C000359680E090E001962191DC01A35CBE4F5F +:1004D0002C9384309105BCF384E090E09093330139 +:1004E000809332010196DC01A35CBE4FE1E0F0E0B5 +:1004F000EC0FFD1FE80FF91F359720812C938830F2 +:10050000910584F3909333018093320128960FB6BE +:10051000F894DEBF0FBECDBFDF91CF91089520913B +:10052000A00130E08091A101281B3109C901089583 +:100530008091A1019091A001891750F4E82FF0E07B +:10054000EE55FE4F208130E08F5F8093A10102C005 +:100550002FEF3FEFC9010895E091A1018091A00123 +:10056000E81730F4F0E0EE55FE4F208130E002C095 +:100570002FEF3FEFC90108950895E0917801F091C0 +:1005800079013097E1F03091A1012091A00132175B +:10059000B0F040E009C0DC01A20FB31F5C91D901AB +:1005A000AE55BE4F5C934F5F242F30E026173707C0 +:1005B00094F31092A1016093A001CB0109940895D6 +:1005C000E0917A01F0917B01309729F010927E0141 +:1005D00010927D0109940895CF92DF92EF92FF92DD +:1005E0000F931F93CF93DF937C01CB018A0120915E +:1005F0007C01222391F0EB016B01C40ED51E09C0D2 +:100600006991D701ED91FC910190F081E02DC70136 +:100610000995CC15DD05A1F703C0642F0E94730472 +:10062000C801DF91CF911F910F91FF90EF90DF9064 +:10063000CF900895CF93DF931F92CDB7DEB7698334 +:1006400020917C012223D1F020917D01203240F0C5 +:1006500021E030E0FC013383228320E030E015C04C +:1006600080917E01E82FF0E0E158FE4F9981908360 +:100670008F5F80937E0180937D0105C061E0CE0194 +:1006800001960E94730421E030E0C9010F90DF91D0 +:10069000CF910895FC011382128248EE53E060E08E +:1006A00070E044835583668377838CE091E0918387 +:1006B000808308951092A1011092A00110927E01F2 +:1006C00010927D010C94B903CF93DF93EC01862F38 +:1006D0000E94D70380EE92E00E9491048DEB92E09D +:1006E0000E948C04CE01DF91CF910C945A030C949C +:1006F0006403862F413208F040E262EA71E00E9412 +:10070000DB031092A1018093A001089521E00C94D5 +:10071000790381E080937C0160939F0110927E01B8 +:1007200010927D0108950C9489030F93062F21E008 +:1007300040917D016FE771E080919F010E9420044C +:1007400010927E0110927D0110927C010F9108950C +:1007500061E00C949503709379016093780108959A +:1007600070937B0160937A0108958CE691E00C947C +:100770004A031092CB0181E08093C9011092C80115 +:1007800061E082E10E94CF0A61E083E10E94CF0A2A +:10079000E9EBF0E080818E7F808380818D7F808394 +:1007A00088E48093B80085E48093BC000895880FA6 +:1007B0008093BA000895413208F03FC09091CB0178 +:1007C0009111FCCF91E09093CB012093C9012FEFC1 +:1007D0002093C2011092C701242F21502093C601FB +:1007E0009093CA019091CA01880F892B8093CA0106 +:1007F0008091C801813041F41092C8018091CA01F2 +:100800008093BB0085EC01C085EE8093BC00809195 +:10081000CB018130E1F38091C701841710F440913E +:10082000C7012CEC31E0FB01D90102C08D9181930D +:100830008A2F821B8417D0F301C040E0842F0895D3 +:100840000F93413208F046C09091CB019111FCCF3B +:1008500092E09093CB010093C9019FEF9093C20166 +:100860001092C7014093C601FB016CEC71E0DB0103 +:1008700002C091919D939A2F961B9417D0F31092DA +:10088000CA019091CA01880F892B8093CA01809177 +:10089000C801813041F41092C8018091CA0180934F +:1008A000BB0085EC01C085EE8093BC00222321F0C3 +:1008B0008091CB018230E1F38091C2018F3F61F0E2 +:1008C0008091C201803251F08091C201803341F4A5 +:1008D00083E007C081E005C080E003C082E001C082 +:1008E00084E00F910895613298F42091CB01243077 +:1008F00089F46093C401FC018CEE91E0DC0102C03C +:1009000021912D932A2F281B2617D0F380E00895DC +:1009100081E0089582E0089590930D0280930C0287 +:10092000089590930F0280930E02089585ED8093B1 +:10093000BC008091BC0084FDFCCF1092CB010895D7 +:1009400085EC8093BC001092CB0108951F920F920A +:100950000FB60F9211242F933F934F935F936F9392 +:100960007F938F939F93AF93BF93EF93FF93809168 +:10097000B900887F803609F49FC058F5883209F4A1 +:100980005BC090F4803109F452C038F4882309F434 +:10099000F8C0883009F0F9C04AC0883109F44CC069 +:1009A000803209F0F2C05CC0803409F46BC038F4C6 +:1009B000803309F455C0883309F0E7C054C080354E +:1009C00009F454C0883509F462C0883409F0DDC0E8 +:1009D000DAC0883909F4CBC0A8F4883709F46CC0B0 +:1009E00038F4883609F468C0803709F0CEC064C096 +:1009F000883809F4BCC0803909F464C0803809F033 +:100A0000C4C060C0803B09F48AC038F4803A09F45D +:100A10006BC0883A09F0B9C082C0803C09F4ABC011 +:100A2000883C09F4A8C0883B09F0AFC08DC0809114 +:100A3000CA018093BB0012C09091C7018091C6018A +:100A4000981788F58091C701E82FF0E0E453FE4F36 +:100A500090819093BB008F5F8093C70185EC88C025 +:100A60008093C20190C08093C20156C08091C7019B +:100A70009091BB00E82FF0E0E453FE4F90838F5F2E +:100A80008093C7019091C7018091C6016DC080918C +:100A9000C7019091BB00E82FF0E0E453FE4F908334 +:100AA0008F5F8093C7018091C90181116CC081E083 +:100AB0008093C80184EA60C083E08093CB011092E8 +:100AC000C301CCCF8091C301803208F050C0809127 +:100AD000C3019091BB00E82FF0E0E05FFD4F9083F1 +:100AE0008F5F8093C301BACF8091C301803230F40D +:100AF000E091C301F0E0E05FFD4F10820E94960498 +:100B00006091C301E0910C02F0910D0270E080E170 +:100B100092E009951092C3010E94A00436C084E0BF +:100B20008093CB011092C5011092C401E0910E0296 +:100B3000F0910F0209958091C401811105C081E0F7 +:100B40008093C4011092EC018091C501E82FF0E080 +:100B5000E451FE4F90819093BB008F5F8093C5015D +:100B60009091C5018091C401981708F477CF85E86A +:100B70008093BC000AC085EC8093BC001092CB012E +:100B800004C01092C2010E949604FF91EF91BF91A0 +:100B9000AF919F918F917F916F915F914F913F9115 +:100BA0002F910F900FBE0F901F9018951F93CF930A +:100BB000DF931F92CDB7DEB7162F8CE691E0498305 +:100BC0000E945A036CE470E08CE691E00E9493036B +:100BD000612F8CE691E00E941A034981642F8CE614 +:100BE00091E00E941A038CE691E00F90DF91CF9183 +:100BF0001F910C94A803462F67E00C94D605462F4E +:100C000068E00C94D605CF93DF93EC0160E00E947E +:100C1000FB0560E0CE010E94FF0561E0CE01DF919F +:100C2000CF910C94FB054F925F926F927F928F92BF +:100C30009F92AF92BF92CF92DF92EF92FF920F936B +:100C40001F93CF93DF9300D01F92CDB7DEB75B0128 +:100C50006A01790180E48B838A8389830E94440935 +:100C60002B013C010DC00E944409641975098609D5 +:100C70009709653F71408105910514F080E06EC0D1 +:100C80008CE691E00E948F021816190664F38CE638 +:100C900091E00E94980243E050E06CE470E08CE642 +:100CA00091E00E9486030E9444092B013C018E01C1 +:100CB0000F5F1F4F48012DC0C8018819990903977C +:100CC000D4F40E9444092B013C0111C08CE691E050 +:100CD0000E949802F80180830E94440964197509F2 +:100CE0008609970963337105810591053CF6F80182 +:100CF0008081803458F70E9444090F5F1F4F6419A8 +:100D0000750986099709653F7140810591050CF0C9 +:100D1000B5CF8CE691E00E948F02892B69F699810C +:100D2000892F880F880F95FD8D5F85958595F50135 +:100D300080839A81892F880F880F95FD8D5F859517 +:100D40008595F60180839B81892F880F880F95FDFB +:100D50008D5F85958595F701808381E00F900F90D9 +:100D60000F90DF91CF911F910F91FF90EF90DF9047 +:100D7000CF90BF90AF909F908F907F906F905F903B +:100D80004F9008958CE691E00C945A03CF93DF9333 +:100D9000EC0168E670E08CE691E00E94930360E06D +:100DA0008CE691E00E941A038CE691E00E94A80371 +:100DB00047E050E068E670E08CE691E00E94860330 +:100DC0008CE691E00E949802382F3695369536953C +:100DD0003E70232F220F220F230F8F709927280F89 +:100DE00028838CE691E00E949802282F22952F708C +:100DF0008F7099273AE0239F800D112489838CE618 +:100E000091E00E949802382F3695369536953670C7 +:100E1000232F220F220F230F8F709927280F2A8349 +:100E20008CE691E00E949802282F22952F708F70F7 +:100E300099273AE0239F800D11248B838CE691E063 +:100E40000E949802282F22952F708F7099273AE0E0 +:100E5000239F800D11248C838CE691E00E949802E0 +:100E6000282F22952F708F7099273AE0239F800DAD +:100E700011248D838CE691E00E949802282F229500 +:100E80002F708F7099273AE0239F800D11248E8355 +:100E90001F82DF91CF910895CF93DF93EC01862FCE +:100EA0006E834F83288791E09D8760E00E94970AB8 +:100EB00061E08E810E94CF0A19861A861B861C86E5 +:100EC000DF91CF910895DF92EF92FF920F931F93DE +:100ED000CF93DF93EC0161E08E810E94CF0A6AEF2D +:100EE00070E080E090E00E9480090E94440909853A +:100EF0001A852B853C85601771078207930720F4BC +:100F000019861A861B861C862D85211111C009851C +:100F10001A852B853C85DC01CB01801B910BA20B34 +:100F2000B30B803D9740A105B10510F481E073C07B +:100F30001D860E94440969877A878B879C871C825B +:100F40001B821A821982188261E08E810E94970AA0 +:100F500060E08E810E94CF0A64E170E080E090E062 +:100F60000E948009F89461E08E810E94CF0A88E295 +:100F700090E00E94A60960E08E810E94970AF12C01 +:100F8000D12C81E009C0E39481E090E00E94A609A1 +:100F90008FEFE81204C009C0E12C082F10E08E8109 +:100FA0000E94060B8017910771F38E810E94060B39 +:100FB0009FEFE916C9F023E02F1590F4F0FC10C064 +:100FC0009D2D969596959695FE01E90FF11D9081C0 +:100FD000990F908328852E1510F491609083D394F7 +:100FE000F39495E5F912D8CF789427E22D1590F473 +:100FF0002C8130E04881898190E0840F911D4A81E5 +:10100000840F911D4B81840F911D99272817390753 +:1010100009F48CCF80E0DF91CF911F910F91FF9069 +:10102000EF90DF900895EF92FF920F931F93CF936D +:10103000DF93EC010E946307882391F18F818B304D +:1010400029F070F18551823058F507C0688170E051 +:1010500080E090E00E94EC0E2DC0688170E080E09E +:1010600090E00E94EC0E20E030E040E853E40E9463 +:101070007A0F7B018C01698170E080E090E00E9432 +:10108000EE0E9B01AC016E2D7F2D802F912F0E94C3 +:10109000200E20E030E040E251E40E94840E0AC0BD +:1010A00068E171E089E392E00E94FC0B60E070E08F +:1010B00080EC9FE7DF91CF911F910F91FF90EF9010 +:1010C0000895CF92DF92EF92FF920F931F93CF93E9 +:1010D000DF938C01C62F0E946307882309F477C031 +:1010E000F80187818B3039F008F471C08551823066 +:1010F00008F06DC01DC0F801628170E080E090E0F2 +:101100000E94EC0EB62FA72FF82FE92F462F572F4E +:10111000682F792FCB01BA01CC2309F462C020E0FB +:1011200030E040E151E46B2F7A2F8F2F9E2F37C094 +:10113000F801D2816D2F6F7770E080E090E00E941F +:10114000EE0E20E030E040E853E40E947A0F6B019D +:101150007C01F801638170E080E090E00E94EE0E77 +:101160009B01AC016C2D7D2D8E2D9F2D0E94200E9C +:1011700020E030E040E251E40E94840E472F382FF7 +:10118000292F862F942FA32FB22FBC01CD01D7FD7D +:101190009058CC2331F120E030E040E151E40E944E +:1011A0007A0F20E030E040EA50E40E94840E20E014 +:1011B00030E040E052E40E94200E472F382F292FC4 +:1011C000862F942FA32FB22FBC01CD010AC068E156 +:1011D00071E089E392E00E94FC0B60E070E080EC3B +:1011E0009FE7DF91CF911F910F91FF90EF90DF90DC +:1011F000CF9008951F920F920FB60F9211242F9344 +:101200003F938F939F93AF93BF93809130029091C0 +:101210003102A0913202B091330230913802232F73 +:101220002D5F2D3720F40196A11DB11D05C0232F80 +:101230002A570296A11DB11D2093380280933002D7 +:1012400090933102A0933202B09333028091340222 +:1012500090913502A0913602B09137020196A11DFE +:10126000B11D8093340290933502A0933602B0935F +:101270003702BF91AF919F918F913F912F910F9026 +:101280000FBE0F901F9018950F931F938FB7F89470 +:1012900000913002109131022091320230913302DC +:1012A0008FBFB801C9011F910F9108950F931F932C +:1012B0009FB7F894009134021091350220913602C4 +:1012C0003091370286B5A89B06C08F3F21F00F5F93 +:1012D0001F4F2F4F3F4F9FBF322F212F102F00271F +:1012E000080F111D211D311D42E0000F111F221F8B +:1012F000331F4A95D1F7B801C9011F910F91089585 +:10130000CF92DF92EF92FF92CF93DF936B017C013C +:101310000E945609EB010EC00E9456096C1B7D0B02 +:10132000683E734038F081E0C81AD108E108F1083E +:10133000C851DC4FC114D104E104F10469F7DF9115 +:10134000CF91FF90EF90DF90CF900895019739F003 +:10135000880F991F880F991F02970197F1F7089539 +:10136000789484B5826084BD84B5816084BD85B580 +:10137000826085BD85B5816085BDEEE6F0E0808147 +:1013800081608083E1E8F0E0108280818260808368 +:10139000808181608083E0E8F0E0808181608083EB +:1013A000E1EBF0E0808184608083E0EBF0E080811D +:1013B00081608083EAE7F0E08081846080838081BF +:1013C0008260808380818160808380818068808367 +:1013D0001092C10008958E3008F08E5087702091D1 +:1013E000000140E4249F90011124822B80937C0013 +:1013F00080917A00806480937A0080917A0086FDE3 +:10140000FCCF2091780030917900932F80E0AC01DF +:10141000422B9A01C90108951F93CF93DF93182F90 +:10142000EB0161E00E94970A209711F460E004C08C +:10143000CF3FD10539F461E0812FDF91CF911F912A +:101440000C94CF0AE12FF0E0E859FF4FE491E3302C +:10145000B9F028F4E13051F0E230B1F50CC0E630DB +:1014600019F1E73049F1E43079F514C084B58068AA +:1014700084BDC7BD2EC084B5806284BDC8BD29C0EF +:1014800080918000806880938000D0938900C09311 +:1014900088001FC080918000806280938000D0937C +:1014A0008B00C0938A0015C08091B0008068809343 +:1014B000B000C093B3000DC08091B00080628093F3 +:1014C000B000C093B40005C0C038D1050CF0B3CF54 +:1014D000ADCFDF91CF911F910895833069F028F44B +:1014E0008130A1F0823011F514C08630B1F0873020 +:1014F000C1F08430D9F404C0809180008F7703C09C +:10150000809180008F7D80938000089584B58F77CF +:1015100002C084B58F7D84BD08958091B0008F771F +:1015200003C08091B0008F7D8093B0000895CF9369 +:10153000DF9390E0FC01E458FF4F4491FC01E05739 +:10154000FF4F8491882341F190E0880F991FFC019F +:10155000E854FF4F25913491D90182559F4FFC01EA +:1015600085919491C82FD92F9FB7F8948C916111D0 +:1015700006C0409584238C938881842308C0623000 +:1015800041F4242F209582238C938881842B888397 +:1015900002C0842B8C939FBFDF91CF9108950F934E +:1015A0001F93CF93DF931F92CDB7DEB7282F30E084 +:1015B000F901E859FF4F8491F901E458FF4F149164 +:1015C000F901E057FF4F04910023D1F0882321F067 +:1015D00069830E946D0A6981E02FF0E0EE0FFF1F22 +:1015E000E255FF4F85919491DC019FB7F8948C915F +:1015F000611103C01095812301C0812B8C939FBF83 +:101600000F90DF91CF911F910F910895CF93DF93AA +:10161000282F30E0F901E859FF4F8491F901E4588F +:10162000FF4FD491F901E057FF4FC491CC2389F0CB +:1016300081110E946D0AEC2FF0E0EE0FFF1FEC55B8 +:10164000FF4F85919491DC018C918D2321E030E056 +:1016500011F420E030E0C901DF91CF9108958F921D +:101660009F92AF92BF92CF92DF92EF92FF920F9331 +:101670001F93CF93DF9390E0FC01E458FF4FD49188 +:10168000FC01E057FF4F7491611102C0C0E001C03E +:10169000CD2FDA01C901BF70672F70E0660F771F89 +:1016A0006C557F4F812C912C5401FB0105911491B5 +:1016B00010C0C12CD12C7601C394C80CD91CEA1CD3 +:1016C000FB1C88169906AA06BB0609F44BC0460106 +:1016D0005701F801E081ED23EC1759F310C0C12C3C +:1016E000D12C7601C394C80CD91CEA1CFB1C8816AB +:1016F0009906AA06BB06B1F14601570103C0FB01DA +:1017000005911491F801E081ED23EC13E8CF8819DD +:101710009909AA09BB0920E030E0A901FB01659104 +:10172000749109C0281739074A075B07D9F02F5F62 +:101730003F4F4F4F5F4FFB01E081ED23EC1791F3DB +:10174000A5E1B0E00E94DD0F8B019C01005F1F4FFF +:101750002F4F3F4F84E036952795179507958A952B +:10176000D1F703C000E010E09801B801C901DF9192 +:10177000CF911F910F91FF90EF90DF90CF90BF908E +:10178000AF909F908F900895CF92DF92EF92FF924B +:101790000F931F93CF93DF936C01EB017A01E60E59 +:1017A000F71E00E010E00BC06991D601ED91FC91AD +:1017B0000190F081E02DC6010995080F191FCE1583 +:1017C000DF0591F7C801DF91CF911F910F91FF9035 +:1017D000EF90DF90CF900895DB010D900020E9F7A6 +:1017E000AD0141505109461B570BDC01ED91FC91B5 +:1017F0000280F381E02D09940C94EC0BDC01ED9157 +:10180000FC910190F081E02D09940F931F93CF93E9 +:10181000DF93EC016DE00E94FE0B8C016AE0CE01CB +:101820000E94FE0B9C01200F311FC901DF91CF9157 +:101830001F910F9108950F931F93CF93DF93EC01A6 +:101840000E94EC0B8C01CE010E94050C9801280F20 +:10185000391FC901DF91CF911F910F9108950E9407 +:10186000B0090E94F800CBE0DDE00E94180120974B +:10187000E1F30E940B0DF9CFFC0184859585FC01F5 +:10188000E05CFF4F20813181FC01EE5BFF4F8081E6 +:101890009181281B390B2F733327C9010895FC014F +:1018A00084859585FC01E05CFF4F40815181FC01FE +:1018B000EE5BFF4F208131814217530741F00190C9 +:1018C000F081E02DE80FF91F208130E002C02FEFFA +:1018D0003FEFC9010895FC0184859585FC01E05C1A +:1018E000FF4F40815181FC01EE5BFF4F2081318130 +:1018F0004217530781F0A081B181A80FB91F8C91C5 +:10190000208131812F5F3F4F2F7333273183208315 +:10191000282F30E002C02FEF3FEFC9010895FC01EE +:1019200086859785FC01E05CFF4FDC01AE5BBF4F15 +:10193000408151812D913C91119742175307C1F776 +:101940000895CF93DF93FC0186859785DC01A05C29 +:10195000BF4F2D913C9111972F5F3F4F2F7333272E +:10196000EC01CE5BDF4F4881598124173507D9F34D +:101970000D90BC91A02DA80FB91F6C93A685B785BB +:10198000A05CBF4F11963C932E93A689B7892C91EA +:1019900081E090E0058C02C0880F991F0A94E2F75D +:1019A000282B2C9381E090E0DF91CF91089508954A +:1019B0001F920F920FB60F9211242F933F934F93C4 +:1019C0008F939F93EF93FF934091C6008091DC0229 +:1019D0009091DD0201968F7399272091DE0230915C +:1019E000DF028217930759F0E091DC02F091DD02EB +:1019F000E456FD4F40839093DD028093DC02FF911B +:101A0000EF919F918F914F913F912F910F900FBE2A +:101A10000F901F90189589E392E00E943C0C892B4F +:101A200011F00C94D70C08951F920F920FB60F92DD +:101A300011242F933F938F939F93EF93FF932091C4 +:101A400098023091990280919A0290919B022817F6 +:101A5000390731F48091C1008F7D8093C10014C09B +:101A6000E0919A02F0919B02E85AFD4F208180910B +:101A70009A0290919B0201968F73992790939B02F3 +:101A800080939A022093C600FF91EF919F918F91CE +:101A90003F912F910F900FBE0F901F901895CF92EE +:101AA000DF92EF92FF92CF93DF93EC016A017B010B +:101AB000411581EE580761057105F9F0EC89FD8942 +:101AC00081E090E00E8C02C0880F991F0A94E2F723 +:101AD000808360E079E08DE390E0A70196010E94A9 +:101AE000FC0F215031094109510956954795379509 +:101AF0002795211580E1380798F0EC89FD8910823F +:101B000060E874E88EE190E0A70196010E94FC0F66 +:101B10002150310941095109569547953795279527 +:101B2000E889F9893083EA89FB892083EE89FF8976 +:101B3000408181E090E09C010A8C02C0220F331F9B +:101B40000A94E2F7422B4083EE89FF8940819C0191 +:101B50000B8C02C0220F331F0A94E2F7422B408302 +:101B6000EE89FF8940819C010C8C02C0220F331F3B +:101B70000A94E2F7422B4083EE89FF8920810D8C85 +:101B800002C0880F991F0A94E2F780958223808310 +:101B9000DF91CF91FF90EF90DF90CF90089510925A +:101BA0003C0210923B0288EE93E0A0E0B0E080930C +:101BB0003D0290933E02A0933F02B093400286E222 +:101BC00091E090933A02809339028CE992E09093ED +:101BD00046028093450288E592E090934802809304 +:101BE000470285EC90E090934A028093490284EC8E +:101BF00090E090934C0280934B0280EC90E09093A5 +:101C00004E0280934D0281EC90E0909350028093BD +:101C10004F0286EC90E0909352028093510284E050 +:101C20008093530283E08093540287E080935502AF +:101C300085E08093560281E08093570208955058C2 +:101C4000BB27AA270ED01CC10DD130F012D120F035 +:101C500031F49F3F11F41EF402C10EF4E095E7FB4E +:101C6000F8C0E92F1ED180F3BA1762077307840703 +:101C7000950718F071F49EF536C10EF4E0950B2E21 +:101C8000BA2FA02D0B01B90190010C01CA01A001CE +:101C90001124FF27591B99F0593F50F4503E68F129 +:101CA0001A16F040A22F232F342F4427585FF3CF6A +:101CB000469537952795A795F0405395C9F77EF43B +:101CC0001F16BA0B620B730B840BBAF09150A1F084 +:101CD000FF0FBB1F661F771F881FC2F70EC0BA0F0A +:101CE000621F731F841F48F4879577956795B79592 +:101CF000F7959E3F08F0B3CF9395880F08F099278A +:101D0000EE0F9795879508950CD0BAC0B2D040F0E9 +:101D1000A9D030F021F45F3F19F09BC05111E4C00D +:101D20009EC0BFD098F39923C9F35523B1F3951BF7 +:101D3000550BBB27AA2762177307840738F09F5FEC +:101D40005F4F220F331F441FAA1FA9F333D00E2E5B +:101D50003AF0E0E830D091505040E695001CCAF7C8 +:101D600029D0FE2F27D0660F771F881FBB1F26178D +:101D700037074807AB07B0E809F0BB0B802DBF0160 +:101D8000FF2793585F4F2AF09E3F510568F061C0CE +:101D9000ABC05F3FECF3983EDCF386957795679593 +:101DA000B795F7959F5FC9F7880F911D9695879511 +:101DB00097F90895E1E0660F771F881FBB1F621730 +:101DC00073078407BA0720F0621B730B840BBA0BEE +:101DD000EE1F88F7E0950895E89409C097FB3EF45C +:101DE00090958095709561957F4F8F4F9F4F992368 +:101DF000A9F0F92F96E9BB279395F69587957795E6 +:101E00006795B795F111F8CFFAF4BB0F11F460FFA5 +:101E10001BC06F5F7F4F8F4F9F4F16C0882311F0FD +:101E200096E911C0772321F09EE8872F762F05C011 +:101E3000662371F096E8862F70E060E02AF09A95AC +:101E4000660F771F881FDAF7880F9695879597F9A1 +:101E5000089597F99F6780E870E060E008959FEF2C +:101E600080EC089500240A94161617061806090631 +:101E7000089500240A941216130614060506089500 +:101E8000092E0394000C11F4882352F0BB0F40F488 +:101E9000BF2B11F460FF04C06F5F7F4F8F4F9F4FC8 +:101EA000089557FD9058440F551F59F05F3F71F04A +:101EB0004795880F97FB991F61F09F3F79F08795B1 +:101EC0000895121613061406551FF2CF4695F1DF3A +:101ED00008C0161617061806991FF1CF86957105CA +:101EE000610508940895E894BB2766277727CB01FE +:101EF00097F908950BD0C4CFB5DF28F0BADF18F0FA +:101F0000952309F0A6CFABCF1124EECFCADFA0F303 +:101F1000959FD1F3950F50E0551F629FF001729F7E +:101F2000BB27F00DB11D639FAA27F00DB11DAA1F9D +:101F3000649F6627B00DA11D661F829F2227B00DEA +:101F4000A11D621F739FB00DA11D621F839FA00D75 +:101F5000611D221F749F3327A00D611D231F849FC5 +:101F6000600D211D822F762F6A2F11249F5750401C +:101F70008AF0E1F088234AF0EE0FFF1FBB1F661FB7 +:101F8000771F881F91505040A9F79E3F510570F070 +:101F900060CFAACF5F3FECF3983EDCF38695779550 +:101FA0006795B795F795E7959F5FC1F7FE2B880F6B +:101FB000911D9695879597F908950E943A10A59FCF +:101FC000900DB49F900DA49F800D911D1124089534 +:101FD00097FB072E16F4009407D077FD09D00E94D6 +:101FE000461007FC05D03EF4909581959F4F0895CB +:101FF000709561957F4F0895A1E21A2EAA1BBB1B15 +:10200000FD010DC0AA1FBB1FEE1FFF1FA217B307C4 +:10201000E407F50720F0A21BB30BE40BF50B661FDA +:10202000771F881F991F1A9469F76095709580959E +:1020300090959B01AC01BD01CF010895052E97FB42 +:1020400016F4009407D057FD0DD00E94FC0F07FC3A +:1020500009D07EF490958095709561957F4F8F4F54 +:102060009F4F089550954095309521953F4F4F4F84 +:102070005F4F0895A29FB001B39FC001A39F01D0FD +:10208000B29F700D811D1124911D0895AA1BBB1BC9 +:1020900051E107C0AA1FBB1FA617B70710F0A61B68 +:1020A000B70B881F991F5A95A9F780959095BC0189 +:1020B000CD010895EE0FFF1F0590F491E02D0994D6 +:0420C000F894FFCFC2 +:1020C4000152656164792100000000001A03EC02EA +:1020D4008F029802AC02BC02526561642066616999 +:1020E4006C0000000000A10CC40B3C0C6B0C4F0CEA +:0220F4008F0C4F +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_2.cpp.hex b/Firmware/Archive/grove_pi_v1_2_2.cpp.hex new file mode 100644 index 0000000..e778df0 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_2.cpp.hex @@ -0,0 +1,906 @@ +:100000000C9463000C948B000C948B000C948B006C +:100010000C948B000C948B000C948B000C948B0034 +:100020000C948B000C948B000C948B000C948B0024 +:100030000C948B000C948B000C948B000C948B0014 +:100040000C940E130C948B000C9407160C945516FC +:100050000C948B000C948B000C948B000C948B00F4 +:100060000C945F110C948B0000000000240027000A +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C0000000D60FC11711241FBECFEFD8E0DEBF4E +:1000D000CDBF11E0A0E0B1E0E0E4F8E302C005909C +:1000E0000D92A035B107D9F713E0A0E5B1E001C04A +:1000F0001D92A23EB107E1F710E0C6ECD0E004C0CB +:100100002297FE010E941A1CC23CD107C9F70E9427 +:1001100017180C941E1C0C9400000F931F93CF9380 +:10012000DF93689F8001699F100D789F100D112447 +:10013000C8010E94A218EC01009729F060E070E06D +:10014000A8010E94A900CE01DF91CF911F910F91CC +:100150000895DC0101C06D9341505040E0F70895CF +:10016000FC01828108950F931F938C01FC01808113 +:1001700060E00E94C31484E190E00E94BD13F80186 +:10018000808161E00E94C31484E190E00E94BD136D +:100190001F910F9108950F931F93CF93DF93EC015D +:1001A000062F10E007FF03C0898161E002C089814A +:1001B00060E00E94C314CE010E94B3001F5F18309C +:1001C00011F0000FEFCFDF91CF911F910F910895A4 +:1001D000FF920F931F93CF93DF93EC01F62E042F22 +:1001E000122F27FD02C060EE01C060EC16FF6061B7 +:1001F00007FF686006FF6460F7FE6260F6FE6160FC +:10020000CE010E94CB00CE01612F0E94CB00CE0117 +:10021000602F0E94CB00CE016F2D0E94CB00DF919A +:10022000CF911F910F91FF9008956F927F928F92BF +:100230009F92AF92BF92CF92DF92EF92FF920F9375 +:100240001F93CF93DF93EC01E62E742E822E902E17 +:1002500060E00E94CB00CE0160E00E94CB00CE01A6 +:1002600060E00E94CB00CE0160E00E94CB0083E002 +:10027000E89E8001112458010894A11CB11C92E051 +:10028000C92ED12CC00ED11EFF2483E0682E1FC0C2 +:10029000FE1479F4EB81FC81E00FF11F7082EB8199 +:1002A000FC81EA0DFB1D8082EB81FC81EC0DFD1DC4 +:1002B0009082EB81FC81F69CC0011124E80FF91FAC +:1002C000CE016081418122810E94E800F3948A81FD +:1002D000F816F0F2CE0160E00E94CB00CE0160E0A3 +:1002E0000E94CB00CE0160E00E94CB00CE0160E016 +:1002F0000E94CB00DF91CF911F910F91FF90EF9063 +:10030000DF90CF90BF90AF909F908F907F906F9035 +:1003100008950F931F93CF93DF93EC01862F68838B +:1003200049832A8361E00E948414898161E00E94EC +:1003300084149A8183E0989FC001112461E070E0E9 +:100340000E948D008B839C8310E008C0CE01612F3A +:1003500040E020E000E00E9415011F5F8A8118172D +:10036000A8F3DF91CF911F910F9108950F931F93E1 +:100370008C01862FF80166834783208791E095875B +:1003800060E00E948414F801868161E00E94C31439 +:10039000F80111861286138614861F910F91089515 +:1003A000CF92DF92EF92FF920F931F93CF93DF9341 +:1003B000EC018E8161E00E94C3146AEF70E080E07E +:1003C00090E00E9464130E9456139B01AC01898542 +:1003D0009A85AB85BC85281739074A075B0720F447 +:1003E00019861A861B861C868D85882371F489855B +:1003F0009A85AB85BC85281B390B4A0B5B0B205DAE +:1004000037404040504008F477C01D860E94561384 +:1004100069877A878B879C871C821B821A82198244 +:1004200018828E8161E00E9484148E8160E00E94B7 +:10043000C31464E170E080E090E00E946413F894DB +:100440008E8161E00E94C31488E290E00E94BD1397 +:100450008E8160E00E94841481E0EE2400E010E0D0 +:100460000AC0F39481E090E00E94BD138FEFF8166C +:1004700029F40AC0822FFF24C82EDD248E810E9419 +:1004800017158C159D0569F38E810E941715282F6D +:100490008FEFF816C9F0043090F000FD10C08E2DDB +:1004A000869586958695FE01E80FF11D9081990F3E +:1004B000908388858F1510F491609083E3940F5F8B +:1004C0001F4F05351105B1F6789487E28E1510F0AF +:1004D00030E013C030E04C8150E02981888190E009 +:1004E000820F911D2A81820F911D2B81820F911DF8 +:1004F00090704817590709F431E0832FDF91CF91AD +:100500001F910F91FF90EF90DF90CF900895EF92A1 +:10051000FF920F931F93CF93DF93EC010E94D001C2 +:100520008823A9F18F818B3031F08B3080F1855198 +:10053000823068F507C0688170E080E090E00E943A +:10054000A41A22C0688170E080E090E00E94A41AA2 +:1005500020E030E040E853E40E94321B7B018C0134 +:10056000698170E0882777FD8095982F0E94A61AF0 +:100570009B01AC01C801B7010E94D81920E030E00E +:1005800040E251E40E943C1AE62F692F0AC08CEB2E +:1005900093E060E071E00E948C18E0E070E080EC95 +:1005A0006FE72E2F372F482F562FB901CA01DF9141 +:1005B000CF911F910F91FF90EF900895CF92DF920E +:1005C000EF92FF920F931F93CF93DF93EC01C62E10 +:1005D0000E94D001882309F450C08F818B3041F0F4 +:1005E0008B3008F44AC08551823008F046C007C0FD +:1005F0006A8170E080E090E00E94A41A29C0DA804D +:100600006D2D70E06F777070882777FD8095982F3B +:100610000E94A61A20E030E040E853E40E94321B1A +:100620007B018C016B8170E0882777FD8095982F86 +:100630000E94A61A9B01AC01C801B7010E94D819FB +:1006400020E030E040E251E40E943C1AD7FC905890 +:10065000CC20E9F020E030E040E151E40E94321B80 +:1006600020E030E040EA50E40E943C1A20E030E014 +:1006700040E052E40E94D8190AC08CEB93E060E09D +:1006800071E00E948C1860E070E080EC9FE7DF91E1 +:10069000CF911F910F91FF90EF90DF90CF90089531 +:1006A000DF92EF92FF920F931F937C0101E312E020 +:1006B000C80168E670E00E94610FC80160E00E9416 +:1006C0001E10C8010E946110C80168E670E047E092 +:1006D00050E00E947210C8010E94740F282F2F77DB +:1006E00022952F703AE0D32E2D9D900111248F700A +:1006F000820FF7018083C8010E94740F282F229572 +:100700002F702D9D900111248F70820FF70181832E +:10071000C8010E94740F282F2F7322952F702D9DD2 +:10072000900111248F70820FF7018283C8010E940B +:10073000740F282F22952F702D9D900111248F70FA +:10074000820FF7018383C8010E94740F282F22951E +:100750002F702D9D900111248F70820FF7018483DB +:10076000C8010E94740F282F22952F702D9D900193 +:1007700011248F70820FF7018583C8010E94740FC6 +:10078000282F22952F702D9D900111248F70820F9C +:10079000F701868317821F910F91FF90EF90DF90F2 +:1007A000089581E392E00E9476100895FC0185810E +:1007B00096810895FC0120E080819181892B09F0C8 +:1007C00021E0822F0895FF920F931F93CF93DF9321 +:1007D000EC018B01FF24612F661F6627661F8A814B +:1007E0000E94C31488810E94171560E0892B09F4C8 +:1007F00061E088810E94C314000F111FF39480E10F +:10080000F81649F7DF91CF911F910F91FF9008954E +:100810001F93CF93DF93EC018A8160E00E94C314A1 +:100820008AE090E00E94BD1310E08A8161E00E949E +:10083000C3148A8160E00E94C3141F5F1430A9F7BB +:10084000DF91CF911F910895EF92FF920F931F9325 +:10085000CF93DF93EC017B01CB0193709E838D835B +:10086000CE0160E070E00E94E30300E010E08C81C4 +:10087000882351F0C701002E02C0880F991F0A94E7 +:10088000E2F791FD0DC009C0C701002E02C0969588 +:1008900087950A94E2F780FD03C060E070E002C033 +:1008A0006FEF70E0CE010E94E3030F5F1F4F0A302D +:1008B0001105E9F6CE0160E070E00E94E303CE018D +:1008C00060E070E00E94E303CE010E940804DF9123 +:1008D000CF911F910F91FF90EF900895FC01662337 +:1008E00011F481E004C0862F6B3008F08AE081505B +:1008F00061E070E002C0660F771F8A95E2F785819C +:1009000096816827792776836583CF010E94240426 +:100910000895FC01662311F461E003C06B3008F018 +:100920006AE0262F215085819681442351F061E0B1 +:1009300070E002C0660F771F2A95E2F7682B792BCB +:100940000BC061E070E002C0660F771F2A95E2F7E6 +:10095000609570956823792376836583CF010E9423 +:1009600024040895FC01862F6B3008F08AE06FEFB5 +:100970007FEF02C0660F771F8A95E2F7609570954A +:1009800076836583CF010E9424040895FC0164836B +:10099000658176810E94240408950F931F938C0132 +:1009A000862FF8016083118242831382248316828A +:1009B000158261E00E948414F801828161E00E9446 +:1009C00084141F910F9108958091C1019091C201EB +:1009D000019731F481E392E06091CF010E941E10F3 +:1009E0008091C1019091C2018330910529F0873037 +:1009F000910511F0C89741F481E392E060ED71E058 +:100A000043E050E00E94ED0F8091C1019091C2013E +:100A10008830910511F0449741F481E392E060ED54 +:100A200071E044E050E00E94ED0F8091C10190918F +:100A3000C2018E31910511F0889741F481E392E073 +:100A400060ED71E049E050E00E94ED0F08950F93D2 +:100A50001F9323C081E392E00E946B0F049741F43F +:100A60001092CE011092CD011092CC011092CB01C8 +:100A70000091CB011091CC0181E392E00E94740FB0 +:100A8000F801EE0FFF1FEF53FE4F918380830F5F3E +:100A90001F4F1093CC010093CB0181E392E00E94A1 +:100AA0006B0F892BB9F61F910F910895AF92BF92EA +:100AB000CF92DF92EF92FF920F931F93DF93CF932A +:100AC000CDB7DEB72C970FB6F894DEBF0FBECDBF03 +:100AD0008091CB019091CC01049709F027C78091B8 +:100AE000CD019091CE01892B09F020C781E090E0E3 +:100AF0009093CE018093CD018091C1019091C2016C +:100B0000019731F48091C3010E9417158093CF01A2 +:100B10008091C1019091C201029731F48091C3018B +:100B20006091C5010E94C3148091C1019091C201DE +:100B30000397B1F48091C3010E9402149C01909329 +:100B4000DA018093D90160E071E00E94B41B6093E8 +:100B5000D101C90160E071E00E94B41B8093D20111 +:100B60008091C1019091C201049741F46091C50147 +:100B70007091C6018091C3010E9424148091C1012B +:100B80009091C201059731F48091C3016091C50134 +:100B90000E9484148091C1019091C201079709F0CD +:100BA00052C08091C3019091C4018093E30190935E +:100BB000E40161E00E9484148091E30160E00E94FE +:100BC000C31482E090E00E94BD138091E30161E0D4 +:100BD0000E94C31485E090E00E94BD138091E30160 +:100BE00060E00E94C3148091E30160E00E948414DD +:100BF0008091E30161E020E432E44FE050E00E94A4 +:100C00006A152AE330E040E050E00E94E91B122F11 +:100C1000032FF42EE52E622F732F842F952F20E0C3 +:100C200031E040E050E00E94E91B2093D101612FA8 +:100C3000702F8F2D9E2D20E031E040E050E00E948B +:100C4000E91B6093D2018091C1019091C20188306B +:100C5000910539F481E08093D10182E08093D20143 +:100C600021C0449709F58091DB01882339F480E5A0 +:100C700091E00E94CF0D81E08093DB0180E591E05F +:100C80006DED71E04EED51E02FED31E00E94D10CA1 +:100C90008091DD018093D1018091DE018093D201AA +:100CA0008091DF018093D3018091C1019091C201B5 +:100CB0004E9769F58091DC01882339F481E591E054 +:100CC0000E94D10381E08093DC0181E591E00E94E4 +:100CD0005003809153018093D10180915201809300 +:100CE000D201809151018093D3018091560180936C +:100CF000D401909155019093D50180915701809333 +:100D0000D6019093D701809154018093D8018091AE +:100D1000C1019091C201889709F059C08091C50125 +:100D20009091C601009731F489E591E06091C3018B +:100D30004BE013C08130910531F489E591E0609179 +:100D4000C30146E10AC08230910511F0039741F4D6 +:100D500089E591E06091C30145E126E00E94B6017A +:100D600089E591E060E00E94DE0269837A838B83EB +:100D70009C8389E591E00E9487026D837E838F8347 +:100D80009887DE011196E1EDF1E020E030E004C04B +:100D90008D9181932F5F3F4F24303105CCF384E058 +:100DA00090E09093E6018093E501DE011596E5ED74 +:100DB000F1E024E030E004C08D9181932F5F3F4F3C +:100DC00028303105CCF33093E6012093E501809182 +:100DD000C1019091C201C297E9F48091C301909141 +:100DE000C401482F0297FC0153E0EE0FFF1F5A95F4 +:100DF000E1F7E81BF90BE959FE4F642F6F5F20E024 +:100E00008091C5019091C601892B09F021E0CF01A5 +:100E10000E94CD048091C1019091C201C39771F5E8 +:100E20002091C3013091C40122503040C90143E0F8 +:100E3000880F991F4A95E1F7821B930B89599E4FA2 +:100E40000E94DA038823D1F08091C3019091C401FC +:100E500002979C0103E0220F331F0A95E1F7281B3C +:100E6000390B29593E4F60E08091C5019091C60130 +:100E7000892B09F061E0C9010E94C6048091C1017B +:100E80009091C201C49741F52091C3013091C401F2 +:100E900022503040C90113E0880F991F1A95E1F7DD +:100EA000821B930B89599E4F0E94DA038823A1F07D +:100EB0002091C3013091C40122503040C901B3E0F8 +:100EC000880F991FBA95E1F7821B930B89599E4FA2 +:100ED0006091C5010E94B2048091C1019091C2014C +:100EE000C59781F52091C3013091C4012250304053 +:100EF000C901A3E0880F991FAA95E1F7821B930B04 +:100F000089599E4F0E94DA038823E1F08091C30142 +:100F10009091C40102979C01F3E0220F331FFA95D0 +:100F2000E1F7281B390B29593E4F40E08091C7015A +:100F30009091C801892B09F041E0C9016091C50178 +:100F40000E9489048091C1019091C201C69741F528 +:100F50002091C3013091C40122503040C901E3E027 +:100F6000880F991FEA95E1F7821B930B89599E4FD1 +:100F70000E94DA038823A1F02091C3013091C401BB +:100F800022503040C90173E0880F991F7A95E1F72C +:100F9000821B930B89599E4F6091C5010E946E047C +:100FA0008091C1019091C201C79779F52091C30149 +:100FB0003091C40122503040C90163E0880F991F6D +:100FC0006A95E1F7821B930B89599E4F0E94DA03C1 +:100FD0008823D9F02091C3013091C40122503040C0 +:100FE000C90153E0880F991F5A95E1F7821B930BB3 +:100FF0007091C70160E02091C5013091C601622760 +:10100000732789599E4F0E9424048091C1019091B9 +:10101000C201C89751F52091C3013091C4012250FB +:101020003040C90143E0880F991F4A95E1F7821BC0 +:10103000930B89599E4F0E94DA038823B1F02091C7 +:10104000C3013091C40122503040C90103E0880F30 +:10105000991F0A95E1F7821B930B89599E4F0E94B5 +:10106000D6038093D1019093D2018091C1019091D8 +:10107000C2018634910591F46091C3017091C4015D +:101080009B0122503040C901880F991F820F931F86 +:10109000462F4F5F8F569E4F0E94450F8091C10192 +:1010A0009091C2018734910511F52091C3013091CF +:1010B000C40122503040C901880F991F820F931F2D +:1010C0008F569E4F0E94F00D882389F02091C30116 +:1010D0003091C40122503040C901880F991F820FFE +:1010E000931F8F569E4F6091C5010E94E00D809125 +:1010F000C1019091C2018834910569F52091C30125 +:101100003091C40122503040C901880F991F820FCD +:10111000931F8F569E4F0E94F00D8823E1F020917F +:10112000C3013091C40122503040C901880F991F7A +:10113000820F931F7091C70160E02091C50130912B +:10114000C601622773278F569E4F40E024E000E0DF +:10115000EE240E94C50E8091C1019091C201893494 +:10116000910569F52091C3013091C40122503040AE +:10117000C901880F991F820F931F8F569E4F0E949F +:10118000F00D8823E1F02091C3013091C401225079 +:101190003040C901880F991F820F931F7091C701BA +:1011A00060E02091C5013091C601622773278F56F8 +:1011B0009E4F41E024E000E0EE240E94C50E8091A5 +:1011C000C1019091C2018A349105C1F52091C301FA +:1011D0003091C40122503040C901880F991F820FFD +:1011E000931F8F569E4F0E94F00D882339F1209156 +:1011F000C3013091C40122503040C901880F991FAA +:10120000820F931F8F569E4F6091C7010E94E80D79 +:1012100089832091C3013091C40122503040C9011B +:10122000880F991F820F931F8F569E4FBE016F5FCD +:101230007F4F41E02091C5010E94820E8091C10143 +:101240009091C2018B34910549F52091C3013091F1 +:10125000C40122503040C901880F991F820F931F8B +:101260008F569E4F0E94F00D8823C1F08091C701D8 +:1012700089832091C3013091C40122503040C901BB +:10128000880F991F820F931F8F569E4FBE016F5F6D +:101290007F4F41E02091C5010E94820E8091C101E3 +:1012A0009091C2018C34910509F089C02091C3014D +:1012B0003091C40122503040C901880F991F820F1C +:1012C000931F8F569E4F0E94F00D882309F477C01C +:1012D0008091C3019091C40102979C01220F331F9A +:1012E000280F391F8091C5019091C6016AE070E016 +:1012F0000E94B41BC9018F569E4F0E94E80D89833E +:101300008091C3019091C40102979C01220F331F69 +:10131000280F391F8091C5019091C6016AE070E0E5 +:101320000E94B41B682FC9018F569E4F0E94E80D82 +:1013300080688A838091C3019091C40102979C01C7 +:10134000220F331F280F391F8091C7019091C801C8 +:101350006AE070E00E94B41BC9018F569E4F0E9444 +:10136000E80D8B838091C3019091C40102979C0189 +:10137000220F331F280F391F8091C7019091C80198 +:101380006AE070E00E94B41B682FC9018F569E4F1F +:101390000E94E80D8C832091C3013091C40122503A +:1013A0003040C901880F991F820F931F8F569E4F9F +:1013B000BE016F5F7F4F44E020E00E94820E80916B +:1013C000C1019091C2018D34910509F041C0209175 +:1013D000C3013091C40122503040C901880F991FC8 +:1013E000820F931F8F569E4F0E94F00D882381F12C +:1013F000F090C501A090C701B090C801AA0CBB1C19 +:10140000AA0CBB1CCC24DD2420C08091C301909188 +:10141000C40102978C01000F111F080F191F0F56EE +:101420001E4F8F2D0E940214BC01C80140E024E031 +:1014300000E0EE240E94C50E6AEF70E080E090E0CC +:101440000E9464130894C11CD11CCA14DB04ECF282 +:101450008091C1019091C2018E34910551F5209186 +:10146000C3013091C40122503040C901880F991F37 +:10147000820F931F8F569E4F0E94F00D8823C9F054 +:101480008FEF89878A878B878C872091C301309162 +:10149000C40122503040C901880F991F820F931F49 +:1014A0008F569E4FBE01675F7F4F44E020E00E9451 +:1014B000820E8091C1019091C2018F34910549F54E +:1014C0002091C3013091C40122503040C901880FDE +:1014D000991F820F931F8F569E4F0E94F00D8823F5 +:1014E000C1F019861A861B861C862091C301309193 +:1014F000C40122503040C901880F991F820F931FE9 +:101500008F569E4FBE01675F7F4F44E020E00E94F0 +:10151000820E8091C1019091C2018A35910569F4D2 +:101520008091C3018093E0018091C5018093E10126 +:101530008091C7018093E20119C08B359105B1F408 +:101540006091C3017091C4019B0122503040C901D8 +:10155000880F991F880F991F820F931F462F4F5F87 +:101560008D559E4F2091C5010E9489018091C10136 +:101570009091C2018C35910509F055C06091C3016D +:101580007091C4019B0122503040C901880F991FFE +:10159000880F991F820F931F462F4F5F8D559E4FC7 +:1015A0002091C5010E9489012091C7013091C80195 +:1015B000C9018470907095958795959587954FEFA3 +:1015C00050E0849FC02C1124C901827090709595C1 +:1015D0008795849FD02C112421703070249F102D6A +:1015E0001124EE24FF2418C02091C3013091C401BE +:1015F00022503040C901880F991F880F991F820F10 +:10160000931F8D559E4F6E2D4C2D2D2D012F0E9419 +:1016100015010894E11CF11C8091C5019091C6014F +:10162000E816F9060CF38091C1019091C2018D3545 +:10163000910509F078C08091C5019091C601892B70 +:10164000D1F42091C3013091C40122503040C9012E +:10165000880F991F880F991F820F931F8D559E4FDA +:101660006091C7014091E0012091E1010091E20108 +:101670000E94150158C02091C3013091C40122502D +:101680003040C901880F991F880F991F820F931F3F +:101690008D559E4F0E94B000EE24FF24C82EDD24FD +:1016A0003EC08091C5019091C6018130910541F401 +:1016B0008091C7019091C801E816F906A9F42CC0E1 +:1016C0008230910541F48091C7019091C8018E1537 +:1016D0009F0554F421C00397F9F48091C7019091BC +:1016E000C801E816F906C4F02091C3013091C40185 +:1016F00022503040C901880F991F880F991F820F0F +:10170000931F8D559E4F6E2D4091E0012091E10178 +:101710000091E2010E9415010894E11CF11CEC14F7 +:10172000FD040CF4BECF8091C1019091C2018E35B1 +:10173000910509F053C08091C7019091C801181616 +:10174000190634F081E090E09093C8018093C701BE +:101750002091C3013091C40122503040C901880F4B +:10176000991F880F991F820F931F8D559E4F0E94BE +:10177000B000E090C501F090C601C82EDD242BC05A +:101780008091C5019091C6016091C7017091C80117 +:101790009701281B390BC9010E94B41B892BC1F486 +:1017A0002091C3013091C40122503040C901880FFB +:1017B000991F880F991F820F931F8D559E4F6E2D75 +:1017C0004091E0012091E1010091E2010E941501A8 +:1017D0000894E11CF11CEC14FD0494F28091C10109 +:1017E0009091C2018F35910509F0A0C02091C301ED +:1017F0003091C40122503040C901880F991F880FD1 +:10180000991F820F931F8D559E4F0E94B000682F25 +:101810008091C7019091C801892B09F03FC0EE2447 +:10182000FF24C62EDD2436C08091C5019091C601EB +:10183000E816F906BCF42091C3013091C40122508E +:101840003040C901880F991F880F991F820F931F7D +:101850008D559E4F6E2D4091E0012091E101009148 +:10186000E20113C02091C3013091C40122503040E5 +:10187000C901880F991F880F991F820F931F8D55DB +:101880009E4F6E2D40E020E000E00E94150108947C +:10189000E11CF11CEC14FD043CF248C0A62EBB2454 +:1018A000162FEE24FF2465013AC08091C501909166 +:1018B000C601A501481B590B24173507BCF0209120 +:1018C000C3013091C40122503040C901880F991FD3 +:1018D000880F991F820F931F8D559E4F612F409146 +:1018E000E0012091E1010091E20113C02091C301C8 +:1018F0003091C40122503040C901880F991F880FD0 +:10190000991F820F931F8D559E4F612F40E020E05D +:1019100000E00E9415010894E11CF11C1150960191 +:101920002E193F09EC14FD0409F0BFCF2C960FB619 +:10193000F894DEBF0FBECDBFCF91DF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF900895EF920F +:10195000FF920F931F936CEBE62E63E0F62EC70108 +:1019600040E855E260E070E00E94901601E312E06A +:10197000C80164E070E00E949510C80167E275E05C +:101980000E94CC0FC80164EE74E00E94D10FC70121 +:101990006AE071E00E948F181F910F91FF90EF9005 +:1019A00008952F923F925F926F927F928F929F92B3 +:1019B000AF92BF92CF92DF92EF92FF920F931F935D +:1019C000DF93CF93CDB7DEB727970FB6F894DEBF7E +:1019D0000FBECDBF1B015D834C833F832E830E94CE +:1019E00056137B018C010CC00E9456136E197F099F +:1019F000800B910B655F7140804090400CF08AC075 +:101A000081E392E00E946B0F181619066CF380E4D4 +:101A10008B838A83898381E392E00E94740F81E340 +:101A200092E06CE470E043E050E00E9472100E948B +:101A30005613AC01CB01DA013C014D016E01089453 +:101A4000C11CD11CAA24BB2434C083E0A816B10455 +:101A5000FCF40E9456137B018C0137014801F6010A +:101A6000808112C081E392E00E94740F582E0E9480 +:101A700056136E197F09800B910B63337105810535 +:101A800091050CF047C0852D803460F7F601808306 +:101A90000E9456130894C11CD11C66197709880945 +:101AA0009909655F714080409040A4F50894A11C9D +:101AB000B11C81E392E00E946B0F892B31F6898182 +:101AC00090E0880F991F880F991F982F87FD9D5FC1 +:101AD00095959595F10190838A8190E0880F991FE3 +:101AE000880F991F982F87FD9D5F95959595EC819F +:101AF000FD8190838B8190E0880F991F880F991F3B +:101B0000982F87FD9D5F95959595EE81FF81908338 +:101B100081E001C080E027960FB6F894DEBF0FBECB +:101B2000CDBFCF91DF911F910F91FF90EF90DF908C +:101B3000CF90BF90AF909F908F907F906F905F906D +:101B40003F902F900895EF92FF920F931F93162FBF +:101B5000042F51E3E52E52E0F52EC7010E947610C6 +:101B6000C7016CE470E00E94610FC701612F0E9401 +:101B70001E10C701602F0E941E10C7010E94611035 +:101B80001F910F91FF90EF900895462F68E00E94FB +:101B9000A30D0895462F67E00E94A30D08950F93AB +:101BA0001F938C0160E00E94CA0DC80160E00E9492 +:101BB000C50DC80161E00E94CA0D1F910F910895E3 +:101BC000FC01683010F06FE001C0685F6283089527 +:101BD000E62FF0E0EF70F070E85EFE4F8081089530 +:101BE000FC018081811181E00895FF920F931F9382 +:101BF000CF93DF93EC01162FFF24888161E00E94D0 +:101C0000841482E390E00E94BD13012F10E000FFD6 +:101C100003C0898160E002C0898161E00E94841470 +:101C200082E390E00E94BD13888160E00E948414EA +:101C300082E390E00E94BD13F39488E0F81621F04F +:101C400015950795102FD9CF888161E00E948414E3 +:101C5000898160E00E94841482E390E00E94BD13B9 +:101C6000888160E00E94841482E390E00E94BD13AA +:101C700089810E941715182F882321F4898161E03A +:101C80000E94841482E390E00E94BD13888161E089 +:101C90000E94841482E390E00E94BD13812F1111F1 +:101CA00081E0DF91CF911F910F91FF9008950F93E5 +:101CB0001F938C01FC01818161E00E94841482E306 +:101CC00090E00E94BD13F801808160E00E948414BE +:101CD00082E390E00E94BD13F801818160E00E94E0 +:101CE000841482E390E00E94BD131F910F91089528 +:101CF000FC01818161E00E94841482E390E00E94F3 +:101D0000BD130895DF92EF92FF920F931F93CF932D +:101D1000DF93EC01062FF72ED42E122F0E94780E9F +:101D2000CE0160E40E94F50DCE010E94570ECE0157 +:101D30000E94780E13701054CE01612F0E94F50D91 +:101D4000202F3F2DC9017C0110E007C0CE01F70113 +:101D500061917F010E94F50D1F5F1D15B8F3CE0143 +:101D60000E94570ECE010E94780E6A816058CE0103 +:101D70000E94F50DCE010E94570EDF91CF911F9169 +:101D80000F91FF90EF90DF9008955F926F927F9296 +:101D90008F929F92AF92BF92CF92DF92EF92FF927B +:101DA0000F931F93DF93CF9300D000D0CDB7DEB752 +:101DB0005C016B01742E922E602E8E2C2EE2E22E90 +:101DC00021E0F22E9E012F5F3F4FE1E040E09FE3D4 +:101DD000592ED7010D911C91C601B8010E94B41B68 +:101DE0006115710561F4772021F4EE2311F0433081 +:101DF00019F4D9015C9216C0D9011C9213C0E62FC8 +:101E0000F0E0EF70F070E85EFE4F8081F9018083B2 +:101E1000609FC001619F900D709F900D1124C81AA2 +:101E2000D90AE0E0882031F0413021F4D9018C91C9 +:101E300080688C934F5F8EEF9FEFE80EF91E2F5F47 +:101E40003F4F443031F684E090E089199109BE019A +:101E50006F5F7F4F680F791FC501492D262D0E94A6 +:101E6000820E0F900F900F900F90CF91DF911F91E6 +:101E70000F91FF90EF90DF90CF90BF90AF909F9029 +:101E80008F907F906F905F9008950F931F938C01B8 +:101E9000862FF8016083418360E00E948414F8017A +:101EA000818160E00E948414F801808160E00E94DA +:101EB000C314F801818160E00E94C3141F910F9147 +:101EC000089581E080932C026093090210922A0207 +:101ED00010922B0208952091080230E080910702B1 +:101EE000281B3109C9010895409107028091080219 +:101EF000481718F02FEF3FEF0AC0E42FF0E0E95148 +:101F0000FE4F8081282F30E04F5F40930702C901C8 +:101F10000895E091070280910802E81718F0EFEFAA +:101F2000FFEF06C0F0E0E951FE4F8081E82FF0E0BE +:101F3000CF0108950895AC0120912F023091300215 +:101F400021153105E1F09091070280910802981760 +:101F5000B0F090E008C0FA01EA0FFB1F8081A951A0 +:101F6000BE4F8C939F5FA92FB0E0A617B7079CF3D5 +:101F70001092070260930802CB01F90109950895B8 +:101F8000E0912D02F0912E02309729F010922A0252 +:101F900010922B02099508957093300260932F02DE +:101FA000089570932E0260932D02089510923402CA +:101FB0001092330288EE93E0A0E0B0E08093350207 +:101FC00090933602A0933702B093380284E391E0F5 +:101FD00090933202809331020895CF92DF92EF9274 +:101FE000FF920F931F93CF93DF937C016B018A01C4 +:101FF00080912C028823A1F0C0E0D0E00DC0D70171 +:10200000ED91FC91D601AC0FBD1F0190F081E02D48 +:10201000C7016C9109952196C017D10780F304C0C0 +:10202000CB01642F0E943A11C801DF91CF911F911B +:102030000F91FF90EF90DF90CF900895DF93CF93B3 +:102040000F92CDB7DEB7FC01698380912C02882303 +:10205000C9F080912B02803238F081E090E09383C8 +:10206000828320E030E015C080912A02E82FF0E062 +:10207000E65FFD4F998190838F5F80932A02809362 +:102080002B0205C0CE01019661E00E943A1121E0C9 +:1020900030E0C9010F90CF91DF9108950F93062F83 +:1020A000809109026AE072E040912B0221E00E94D7 +:1020B000E51010922A0210922B0210922C020F911E +:1020C000089561E00E944E100895413208F040E208 +:1020D000862F67EE71E00E949C1010920702809399 +:1020E0000802089521E00E946510089510920702E9 +:1020F0001092080210922A0210922B020E94F012F3 +:1021000008950F931F938C01862F0E94981080ECE6 +:102110009FE00E945A118BE99FE00E945511C8016F +:102120000E9476101F910F9108950E9481100895CA +:10213000880F8093BA000895382F413210F040E0A4 +:1021400042C080913D028823E1F791E090933D02E7 +:1021500020933F028FEF8093AA02109265024150B4 +:10216000409366024F5F90933E0280913E02330F90 +:10217000832B80933E0280914002813041F4109283 +:10218000400280913E028093BB0085EC01C085EE49 +:102190008093BC0080913D028130E1F38091650223 +:1021A000841710F44091650220E030E00AC0FB0182 +:1021B000E20FF31FD901AB5BBD4F8C9180832F5F82 +:1021C0003F4F2417A0F3842F08950F931F93582F88 +:1021D000122F413210F081E04AC080913D028823E5 +:1021E000E1F782E080933D0200933F028FEF8093FE +:1021F000AA021092650240936602A5E4B2E0FB01D8 +:1022000002C081918D938E2F861B8417D0F310927C +:102210003E0280913E02550F852B80933E028091B5 +:102220004002813041F41092400280913E0280933E +:10223000BB0085EC01C085EE8093BC00112321F02A +:1022400080913D028230E1F38091AA028F3F11F428 +:1022500080E00DC08091AA02803211F482E007C0B4 +:102260008091AA02803311F084E001C083E01F91C5 +:102270000F910895482F613210F081E00895809108 +:102280003D02843011F082E0089560938802A7E651 +:10229000B2E0842F9C01F90102C081918D938E2FB1 +:1022A000841B8617D0F380E00895909344028093B6 +:1022B00043020895909342028093410208951F9231 +:1022C0000F920FB60F9211242F933F934F935F936A +:1022D0006F937F938F939F93AF93BF93EF93FF93EE +:1022E0008091B90090E0887F90708036910509F464 +:1022F000F2C081369105CCF58832910509F47BC096 +:1023000089329105B4F48031910509F46FC08131AF +:1023100091053CF4009709F447C1089709F04FC1B3 +:1023200065C08831910509F466C0809709F047C1FE +:1023300082C08034910509F4A4C08134910544F42D +:102340008033910509F482C0C89709F038C189C06B +:102350008035910509F489C08835910509F496C046 +:102360008834910509F02BC1AEC08839910509F474 +:1023700013C189399105ECF48837910509F4ABC094 +:10238000893791054CF48836910509F4A4C080374B +:10239000910509F014C19FC08838910509F4FCC06B +:1023A0008039910509F49DC08038910509F007C175 +:1023B00098C0803B910509F4C6C0813B91054CF45F +:1023C000803A910509F49FC0883A910509F0F7C059 +:1023D000BAC0803C910509F4E3C0883C910509F43A +:1023E000DFC0883B910509F0EAC0C2C080913E027F +:1023F0008093BB00CFC090916502809166029817D0 +:1024000068F490916502E92FF0E0EB5BFD4F80816D +:102410008093BB009F5F90936502BCC080913F0298 +:10242000882309F44BC085ED8093BC008091BC00EB +:1024300084FDFCCFC2C080E28093AA0285ED809328 +:10244000BC008091BC0084FDFCCFB7C080E38093CA +:10245000AA0285ED8093BC008091BC0084FDFCCF76 +:10246000ACC088E38093AA029BC0809165029091E2 +:10247000BB00E82FF0E0EB5BFD4F90838F5F809314 +:102480006502909165028091660282C0809165022A +:102490009091BB00E82FF0E0EB5BFD4F90838F5FE6 +:1024A0008093650280913F02882341F085ED8093FF +:1024B000BC008091BC0084FDFCCF7FC081E0809394 +:1024C000400284EA6EC085ED8093BC008091BC0020 +:1024D00084FDFCCF72C083E080933D021092A9027C +:1024E00059C08091A902803208F056C08091A9029B +:1024F0009091BB00E82FF0E0E757FD4F90838F5F8E +:102500008093A90247C08091A902803230F4E09103 +:10251000A902F0E0E757FD4F108285ED8093BC00E3 +:102520008091BC0084FDFCCF10923D026091A90215 +:10253000E0914302F091440289E892E070E009954D +:102540001092A9022DC084E080933D021092870270 +:1025500010928802E0914102F09142020995809127 +:102560008802882329F481E0809388021092670210 +:1025700090918702E92FF0E0E959FD4F8081809327 +:10258000BB009F5F909387029091870280918802A1 +:10259000981710F485EC01C085E88093BC000FC04B +:1025A00085EC8093BC0009C01092AA0285ED80934F +:1025B000BC008091BC0084FDFCCF10923D02FF91D5 +:1025C000EF91BF91AF919F918F917F916F915F91AB +:1025D0004F913F912F910F900FBE0F901F90189524 +:1025E00010923D0281E080933F021092400282E10E +:1025F00061E00E94C31483E161E00E94C314E9EB2F +:10260000F0E080818E7F808380818D7F808388E46D +:102610008093B80085E48093BC0008951F920F92C8 +:102620000FB60F9211242F933F938F939F93AF93E5 +:10263000BF938091AF029091B002A091B102B0918E +:10264000B2023091B3020196A11DB11D232F2D5F5F +:102650002D3720F02D570196A11DB11D2093B302F7 +:102660008093AF029093B002A093B102B093B202F4 +:102670008091AB029091AC02A091AD02B091AE02FC +:102680000196A11DB11D8093AB029093AC02A09363 +:10269000AD02B093AE02BF91AF919F918F913F91E8 +:1026A0002F910F900FBE0F901F9018958FB7F89431 +:1026B0002091AF023091B0024091B1025091B2022C +:1026C0008FBFB901CA0108959B01AC017FB7F8948F +:1026D0008091AB029091AC02A091AD02B091AE029C +:1026E00066B5A89B05C06F3F19F00196A11DB11DED +:1026F0007FBFBA2FA92F982F8827860F911DA11D64 +:10270000B11D62E0880F991FAA1FBB1F6A95D1F700 +:10271000BC012DC0FFB7F8948091AB029091AC0240 +:10272000A091AD02B091AE02E6B5A89B05C0EF3F07 +:1027300019F00196A11DB11DFFBFBA2FA92F982F27 +:1027400088278E0F911DA11DB11DE2E0880F991FF2 +:10275000AA1FBB1FEA95D1F7861B970B885E934093 +:10276000C8F2215030404040504068517C4F211504 +:1027700031054105510571F60895019739F0880F2B +:10278000991F880F991F02970197F1F70895789480 +:1027900084B5826084BD84B5816084BD85B5826066 +:1027A00085BD85B5816085BDEEE6F0E08081816004 +:1027B0008083E1E8F0E01082808182608083808104 +:1027C00081608083E0E8F0E0808181608083E1EBDC +:1027D000F0E0808184608083E0EBF0E080818160C4 +:1027E0008083EAE7F0E0808184608083808182607A +:1027F0008083808181608083808180688083109263 +:10280000C1000895982F8E3008F09E5097708091E7 +:1028100011018295880F880F807C892B80937C0022 +:1028200080917A00806480937A0080917A0086FD9E +:10283000FCCF2091780040917900942F80E030E027 +:10284000282B392BC90108951F93CF93DF93182F9D +:10285000EB0161E00E948414209709F44AC0CF3F45 +:10286000D10509F449C0E12FF0E0E255FF4F849112 +:102870008330C1F0843028F4813051F08230B1F5DA +:102880000CC0863019F1873049F1843079F514C0D5 +:1028900084B5806884BDC7BD33C084B5806284BD03 +:1028A000C8BD2EC080918000806880938000D09346 +:1028B0008900C093880024C080918000806280934A +:1028C0008000D0938B00C0938A001AC08091B00022 +:1028D00080688093B000C093B30012C08091B000B4 +:1028E00080628093B000C093B4000AC0C038D105A4 +:1028F0001CF4812F60E002C0812F61E00E94C314AC +:10290000DF91CF911F910895CF93DF93482F50E02F +:10291000CA0186569F4FFC0134914A575F4FFA0116 +:102920008491882369F190E0880F991FFC01E85990 +:10293000FF4FA591B491FC01EE58FF4FC591D49182 +:10294000662351F42FB7F8948C91932F9095892397 +:102950008C93888189230BC0623061F42FB7F8947F +:102960008C91932F909589238C938881832B8883D6 +:102970002FBF06C09FB7F8948C91832B8C939FBF79 +:10298000DF91CF910895482F50E0CA0182559F4FA3 +:10299000FC012491CA0186569F4FFC0194914A572D +:1029A0005F4FFA013491332309F440C0222351F1DF +:1029B000233071F0243028F42130A1F0223011F5B9 +:1029C00014C02630B1F02730C1F02430D9F404C04F +:1029D000809180008F7703C0809180008F7D8093ED +:1029E000800010C084B58F7702C084B58F7D84BD10 +:1029F00009C08091B0008F7703C08091B0008F7DB7 +:102A00008093B000E32FF0E0EE0FFF1FEE58FF4F72 +:102A1000A591B4912FB7F894662321F48C919095E9 +:102A2000892302C08C91892B8C932FBF0895682F26 +:102A300070E0CB0182559F4FFC012491CB0186565B +:102A40009F4FFC0144916A577F4FFB01949199235A +:102A500019F420E030E03CC0222351F1233071F022 +:102A6000243028F42130A1F0223011F514C0263092 +:102A7000B1F02730C1F02430D9F404C08091800037 +:102A80008F7703C0809180008F7D8093800010C07D +:102A900084B58F7702C084B58F7D84BD09C08091D5 +:102AA000B0008F7703C08091B0008F7D8093B0001D +:102AB000892F90E0880F991F84589F4FFC01A591A2 +:102AC000B4918C9120E030E0842311F021E030E0DB +:102AD000C90108958F929F92AF92BF92CF92DF92D9 +:102AE000EF92FF920F931F93CF93DF93A82FB0E045 +:102AF000CD0186569F4FFC018490AA57BF4FFD0120 +:102B00008491662311F4992401C0982C6FEFA62EAE +:102B10006FEFB62E6FEFC62E6FE0D62EA222B32235 +:102B2000C422D522682F70E0660F771F64587F4F4C +:102B3000EE24FF248701FB01A591B4910BC0EA1498 +:102B4000FB040C051D0509F44EC00894E11CF11CA2 +:102B5000011D111D8C918821891589F30CC0EA147F +:102B6000FB040C051D0509F43EC00894E11CF11C92 +:102B7000011D111D03C0FB01A591B4918C91882109 +:102B8000891569F720E030E040E050E0FB01C59195 +:102B9000D4910FC0DA01C9018E0D9F1DA01FB11F76 +:102BA0008A159B05AC05BD05F1F02F5F3F4F4F4FD8 +:102BB0005F4F88818821891569F3CA01B90125E130 +:102BC00030E040E050E00E94951B9B01AC01205F8B +:102BD0003F4F4F4F5F4F84E0569547953795279568 +:102BE0008A95D1F704C020E030E040E050E0B90120 +:102BF000CA01DF91CF911F910F91FF90EF90DF906D +:102C0000CF90BF90AF909F908F90089508951F929E +:102C10000F920FB60F9211242F933F934F938F93E0 +:102C20009F93EF93FF938091C00082FD1DC0409160 +:102C3000C60020913403309135032F5F3F4F2F772B +:102C4000307080913603909137032817390771F05F +:102C5000E0913403F0913503EC54FD4F4083309301 +:102C600035032093340302C08091C600FF91EF9199 +:102C70009F918F914F913F912F910F900FBE0F9089 +:102C80001F901895E091C803F091C903E058FF4FD9 +:102C90008191919120813181821B930B8F7790706C +:102CA000892B11F00E94061608951F920F920FB6FD +:102CB0000F9211242F933F938F939F93EF93FF9342 +:102CC0002091B8033091B9038091BA039091BB036E +:102CD0002817390731F48091C1008F7D8093C1009E +:102CE00014C0E091BA03F091BB03E85CFC4F208173 +:102CF0008091BA039091BB0301968F779070909367 +:102D0000BB038093BA032093C600FF91EF919F917C +:102D10008F913F912F910F900FBE0F901F9018959C +:102D2000AF92BF92DF92EF92FF920F931F93CF93D8 +:102D3000DF93EC017A018B01DD24403081EE5807EE +:102D400080E0680780E0780711F0DD24D39491E0FB +:102D5000A92EB12CEC89FD89DD2069F0C50108A000 +:102D600002C0880F991F0A94E2F7808360E079E03F +:102D70008DE390E005C0108260E874E88EE190E099 +:102D8000A80197010E94C71B21503040404050408D +:102D9000569547953795279580E12030380720F0E4 +:102DA000DD2011F0DD24D6CFE889F9893083EA8966 +:102DB000FB89208319A2EE89FF89408121E030E060 +:102DC000C9010C8C02C0880F991F0A94E2F7482BA6 +:102DD0004083EE89FF894081C9010D8C02C0880FB4 +:102DE000991F0A94E2F7482B4083EE89FF894081BE +:102DF000C9010E8C02C0880F991F0A94E2F7482B74 +:102E00004083EE89FF8980810F8C02C0220F331F1F +:102E10000A94E2F7209528232083DF91CF911F9118 +:102E20000F91FF90EF90DF90BF90AF900895DC017D +:102E30001C96ED91FC911D97E058FF4F2191319127 +:102E400080819181281B390B2F773070C90108953B +:102E5000DC011C96ED91FC911D97E058FF4F2081FD +:102E60003181E058F040DF01AE57BF4F8D919C910A +:102E700011972817390719F42FEF3FEF07C08D91ED +:102E80009C91E80FF91F8081282F30E0C901089537 +:102E9000DC011C96ED91FC911D97E058FF4F2081BD +:102EA0003181E058F040DF01AE57BF4F8D919C91CA +:102EB00011972817390719F42FEF3FEF10C08D91A4 +:102EC0009C911197E80FF91F20818D919C9111978A +:102ED00001968F77907011969C938E9330E0C90184 +:102EE0000895DC0191968C919197882339F054963E +:102EF000ED91FC915597808186FFF9CF91961C92B8 +:102F00000895CF93DF93EC01EE85FF85E058FF4FE6 +:102F100020813181E058F0402F5F3F4F2F77307094 +:102F2000DF01AE57BF4F8D919C911197281739073C +:102F3000D1F3E058FF4F80819181E058F040E80FD5 +:102F4000F91F6083EE85FF85E058FF4F31832083B2 +:102F5000EE89FF89208181E090E00F8C02C0880F0C +:102F6000991F0A94E2F7282B208381E089A3EC893A +:102F7000FD8980818064808381E090E0DF91CF9142 +:102F800008951092BF031092BE0388EE93E0A0E074 +:102F9000B0E08093C0039093C103A093C203B093A9 +:102FA000C30384E491E09093BD038093BC0384EB5E +:102FB00092E09093C9038093C80388E393E09093D1 +:102FC000CB038093CA0385EC90E09093CD0380936C +:102FD000CC0384EC90E09093CF038093CE0380ECFD +:102FE00090E09093D1038093D00381EC90E0909394 +:102FF000D3038093D20382EC90E09093D503809327 +:10300000D40386EC90E09093D7038093D60384E0BA +:103010008093D80383E08093D90387E08093DA0319 +:1030200085E08093DB0381E08093DC030895CF93F8 +:10303000DF930E94C7130E94A70CC2E4D6E10E944E +:1030400056052097E1F30E944216F9CFCF92DF9206 +:10305000EF92FF920F931F93CF93DF937C016B014D +:103060008A01C0E0D0E00FC0D6016D916D01D7019B +:10307000ED91FC910190F081E02DC7010995C80FF9 +:10308000D91F015010400115110571F7CE01DF91D4 +:10309000CF911F910F91FF90EF90DF90CF90089507 +:1030A000EF92FF920F931F938C01DC01ED91FC9145 +:1030B0000190F081E02D6DE009957C01D801ED9142 +:1030C000FC910190F081E02DC8016AE009959C0116 +:1030D0002E0D3F1DC9011F910F91FF90EF90089594 +:1030E000CF93DF93EC016115710519F420E030E016 +:1030F0000FC0DB010D900020E9F71197A61BB70B5D +:10310000E881F9810280F381E02DAD0109959C01F0 +:10311000C901DF91CF9108950E9470180895EF9230 +:10312000FF920F931F937C010E9470188C01C701BE +:103130000E945018080F191FC8011F910F91FF908E +:10314000EF9008950F931F93CF93DF93BC018230CC +:10315000910510F462E070E0E091E003F091E1038A +:1031600040E050E0A0E0B0E024C08081918186176B +:103170009707D0F08617970771F482819381109793 +:1031800029F013969C938E9312972CC09093E10391 +:103190008093E00327C04115510519F08417950766 +:1031A00018F48D01AC01EF01DF01828193819C0154 +:1031B000F9013097D1F641155105F9F0CA01861B86 +:1031C000970B8430910580F48A819B81011511054C +:1031D00021F0F8019383828304C09093E1038093EC +:1031E000E003FE01329645C0FE01E80FF91F61932E +:1031F00071930297998388833CC08091DE039091FC +:10320000DF03892B41F48091140190911501909373 +:10321000DF038093DE0340911601509117014115A1 +:10322000510541F44DB75EB78091120190911301A1 +:10323000481B590B2091DE033091DF03241735071B +:10324000B0F4CA01821B930B8617970780F0AB017D +:103250004E5F5F4F8417950750F0420F531F5093F6 +:10326000DF034093DE03F9016193719302C0E0E054 +:10327000F0E0CF01DF91CF911F910F910895CF938F +:10328000DF939C01009709F48FC0EC0122971B8209 +:103290001A826091E0037091E1036115710581F478 +:1032A00088819981820F931F2091DE033091DF0383 +:1032B0002817390739F5D093DF03C093DE0374C0B4 +:1032C000DB0140E050E0AC17BD0708F1BB83AA83E7 +:1032D000FE0121913191E20FF31FAE17BF0779F480 +:1032E0008D919C911197280F391F2E5F3F4F398385 +:1032F000288312968D919C9113979B838A83411505 +:10330000510571F4D093E103C093E0034DC01296D0 +:103310008D919C911397AD01009711F0DC01D3CFF3 +:10332000DA011396DC93CE931297FA012191319131 +:10333000E20FF31FCE17DF0769F488819981280F08 +:10334000391F2E5F3F4FFA01318320838A819B8191 +:1033500093838283E0E0F0E0DB0112968D919C91F3 +:103360001397009719F0BC01FD01F6CFAB014E5F3A +:103370005F4FDB018D919C91840F951F2091DE039F +:103380003091DF032817390779F4309729F4109228 +:10339000E1031092E00302C01382128242505040B7 +:1033A0005093DF034093DE03DF91CF91089550588F +:1033B000BB27AA270ED01CC10DD130F012D120F0AE +:1033C00031F49F3F11F41EF402C10EF4E095E7FBC7 +:1033D000F8C0E92F1ED180F3BA176207730784077C +:1033E000950718F071F49EF536C10EF4E0950B2E9A +:1033F000BA2FA02D0B01B90190010C01CA01A00147 +:103400001124FF27591B99F0593F50F4503E68F1A1 +:103410001A16F040A22F232F342F4427585FF3CFE2 +:10342000469537952795A795F0405395C9F77EF4B3 +:103430001F16BA0B620B730B840BBAF09150A1F0FC +:10344000FF0FBB1F661F771F881FC2F70EC0BA0F82 +:10345000621F731F841F48F4879577956795B7950A +:10346000F7959E3F08F0B3CF9395880F08F0992702 +:10347000EE0F9795879508950CD0BAC0B2D040F062 +:10348000A9D030F021F45F3F19F09BC05111E4C086 +:103490009EC0BFD098F39923C9F35523B1F3951B70 +:1034A000550BBB27AA2762177307840738F09F5F65 +:1034B0005F4F220F331F441FAA1FA9F333D00E2ED4 +:1034C0003AF0E0E830D091505040E695001CCAF741 +:1034D00029D0FE2F27D0660F771F881FBB1F261706 +:1034E00037074807AB07B0E809F0BB0B802DBF01D9 +:1034F000FF2793585F4F2AF09E3F510568F061C047 +:10350000ABC05F3FECF3983EDCF38695779567950B +:10351000B795F7959F5FC9F7880F911D9695879589 +:1035200097F90895E1E0660F771F881FBB1F6217A8 +:1035300073078407BA0720F0621B730B840BBA0B66 +:10354000EE1F88F7E0950895E89409C097FB3EF4D4 +:1035500090958095709561957F4F8F4F9F4F9923E0 +:10356000A9F0F92F96E9BB279395F695879577955E +:103570006795B795F111F8CFFAF4BB0F11F460FF1E +:103580001BC06F5F7F4F8F4F9F4F16C0882311F076 +:1035900096E911C0772321F09EE8872F762F05C08A +:1035A000662371F096E8862F70E060E02AF09A9525 +:1035B000660F771F881FDAF7880F9695879597F91A +:1035C000089597F99F6780E870E060E008959FEFA5 +:1035D00080EC089500240A941616170618060906AA +:1035E000089500240A941216130614060506089579 +:1035F000092E0394000C11F4882352F0BB0F40F401 +:10360000BF2B11F460FF04C06F5F7F4F8F4F9F4F40 +:10361000089557FD9058440F551F59F05F3F71F0C2 +:103620004795880F97FB991F61F09F3F79F0879529 +:103630000895121613061406551FF2CF4695F1DFB2 +:1036400008C0161617061806991FF1CF8695710542 +:10365000610508940895E894BB2766277727CB0176 +:1036600097F908950BD0C4CFB5DF28F0BADF18F072 +:10367000952309F0A6CFABCF1124EECFCADFA0F37C +:10368000959FD1F3950F50E0551F629FF001729FF7 +:10369000BB27F00DB11D639FAA27F00DB11DAA1F16 +:1036A000649F6627B00DA11D661F829F2227B00D63 +:1036B000A11D621F739FB00DA11D621F839FA00DEE +:1036C000611D221F749F3327A00D611D231F849F3E +:1036D000600D211D822F762F6A2F11249F57504095 +:1036E0008AF0E1F088234AF0EE0FFF1FBB1F661F30 +:1036F000771F881F91505040A9F79E3F510570F0E9 +:1037000060CFAACF5F3FECF3983EDCF386957795C8 +:103710006795B795F795E7959F5FC1F7FE2B880FE3 +:10372000911D9695879597F90895629FD001739F93 +:10373000F001829FE00DF11D649FE00DF11D929F4D +:10374000F00D839FF00D749FF00D659FF00D99278C +:10375000729FB00DE11DF91F639FB00DE11DF91FB0 +:10376000BD01CF011124089597FB092E07260AD029 +:1037700077FD04D049D006D000201AF470956195E9 +:103780007F4F0895F6F7909581959F4F0895A1E298 +:103790001A2EAA1BBB1BFD010DC0AA1FBB1FEE1FCB +:1037A000FF1FA217B307E407F50720F0A21BB30B16 +:1037B000E40BF50B661F771F881F991F1A9469F792 +:1037C00060957095809590959B01AC01BD01CF01EE +:1037D000089597FB092E05260ED057FD04D0D7DF9C +:1037E0000AD0001C38F450954095309521953F4FF4 +:1037F0004F4F5F4F0895F6F79095809570956195BE +:103800007F4F8F4F9F4F0895AA1BBB1B51E107C0ED +:10381000AA1FBB1FA617B70710F0A61BB70B881F60 +:10382000991F5A95A9F780959095BC01CD010895EF +:10383000EE0FFF1F0590F491E02D0994F894FFCF4F +:1038400052656164206661696C005265616479212A +:1038500000018000E20300003F065B4F666D7D07BC +:103860007F6F777C395E797101000A006400E8039C +:10387000000000001E10ED0F6B0F740F890F9A0FE0 +:10388000000000008117261817174817281771170E +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_2.hex b/Firmware/Archive/grove_pi_v1_2_2.hex new file mode 100644 index 0000000..e778df0 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_2.hex @@ -0,0 +1,906 @@ +:100000000C9463000C948B000C948B000C948B006C +:100010000C948B000C948B000C948B000C948B0034 +:100020000C948B000C948B000C948B000C948B0024 +:100030000C948B000C948B000C948B000C948B0014 +:100040000C940E130C948B000C9407160C945516FC +:100050000C948B000C948B000C948B000C948B00F4 +:100060000C945F110C948B0000000000240027000A +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C0000000D60FC11711241FBECFEFD8E0DEBF4E +:1000D000CDBF11E0A0E0B1E0E0E4F8E302C005909C +:1000E0000D92A035B107D9F713E0A0E5B1E001C04A +:1000F0001D92A23EB107E1F710E0C6ECD0E004C0CB +:100100002297FE010E941A1CC23CD107C9F70E9427 +:1001100017180C941E1C0C9400000F931F93CF9380 +:10012000DF93689F8001699F100D789F100D112447 +:10013000C8010E94A218EC01009729F060E070E06D +:10014000A8010E94A900CE01DF91CF911F910F91CC +:100150000895DC0101C06D9341505040E0F70895CF +:10016000FC01828108950F931F938C01FC01808113 +:1001700060E00E94C31484E190E00E94BD13F80186 +:10018000808161E00E94C31484E190E00E94BD136D +:100190001F910F9108950F931F93CF93DF93EC015D +:1001A000062F10E007FF03C0898161E002C089814A +:1001B00060E00E94C314CE010E94B3001F5F18309C +:1001C00011F0000FEFCFDF91CF911F910F910895A4 +:1001D000FF920F931F93CF93DF93EC01F62E042F22 +:1001E000122F27FD02C060EE01C060EC16FF6061B7 +:1001F00007FF686006FF6460F7FE6260F6FE6160FC +:10020000CE010E94CB00CE01612F0E94CB00CE0117 +:10021000602F0E94CB00CE016F2D0E94CB00DF919A +:10022000CF911F910F91FF9008956F927F928F92BF +:100230009F92AF92BF92CF92DF92EF92FF920F9375 +:100240001F93CF93DF93EC01E62E742E822E902E17 +:1002500060E00E94CB00CE0160E00E94CB00CE01A6 +:1002600060E00E94CB00CE0160E00E94CB0083E002 +:10027000E89E8001112458010894A11CB11C92E051 +:10028000C92ED12CC00ED11EFF2483E0682E1FC0C2 +:10029000FE1479F4EB81FC81E00FF11F7082EB8199 +:1002A000FC81EA0DFB1D8082EB81FC81EC0DFD1DC4 +:1002B0009082EB81FC81F69CC0011124E80FF91FAC +:1002C000CE016081418122810E94E800F3948A81FD +:1002D000F816F0F2CE0160E00E94CB00CE0160E0A3 +:1002E0000E94CB00CE0160E00E94CB00CE0160E016 +:1002F0000E94CB00DF91CF911F910F91FF90EF9063 +:10030000DF90CF90BF90AF909F908F907F906F9035 +:1003100008950F931F93CF93DF93EC01862F68838B +:1003200049832A8361E00E948414898161E00E94EC +:1003300084149A8183E0989FC001112461E070E0E9 +:100340000E948D008B839C8310E008C0CE01612F3A +:1003500040E020E000E00E9415011F5F8A8118172D +:10036000A8F3DF91CF911F910F9108950F931F93E1 +:100370008C01862FF80166834783208791E095875B +:1003800060E00E948414F801868161E00E94C31439 +:10039000F80111861286138614861F910F91089515 +:1003A000CF92DF92EF92FF920F931F93CF93DF9341 +:1003B000EC018E8161E00E94C3146AEF70E080E07E +:1003C00090E00E9464130E9456139B01AC01898542 +:1003D0009A85AB85BC85281739074A075B0720F447 +:1003E00019861A861B861C868D85882371F489855B +:1003F0009A85AB85BC85281B390B4A0B5B0B205DAE +:1004000037404040504008F477C01D860E94561384 +:1004100069877A878B879C871C821B821A82198244 +:1004200018828E8161E00E9484148E8160E00E94B7 +:10043000C31464E170E080E090E00E946413F894DB +:100440008E8161E00E94C31488E290E00E94BD1397 +:100450008E8160E00E94841481E0EE2400E010E0D0 +:100460000AC0F39481E090E00E94BD138FEFF8166C +:1004700029F40AC0822FFF24C82EDD248E810E9419 +:1004800017158C159D0569F38E810E941715282F6D +:100490008FEFF816C9F0043090F000FD10C08E2DDB +:1004A000869586958695FE01E80FF11D9081990F3E +:1004B000908388858F1510F491609083E3940F5F8B +:1004C0001F4F05351105B1F6789487E28E1510F0AF +:1004D00030E013C030E04C8150E02981888190E009 +:1004E000820F911D2A81820F911D2B81820F911DF8 +:1004F00090704817590709F431E0832FDF91CF91AD +:100500001F910F91FF90EF90DF90CF900895EF92A1 +:10051000FF920F931F93CF93DF93EC010E94D001C2 +:100520008823A9F18F818B3031F08B3080F1855198 +:10053000823068F507C0688170E080E090E00E943A +:10054000A41A22C0688170E080E090E00E94A41AA2 +:1005500020E030E040E853E40E94321B7B018C0134 +:10056000698170E0882777FD8095982F0E94A61AF0 +:100570009B01AC01C801B7010E94D81920E030E00E +:1005800040E251E40E943C1AE62F692F0AC08CEB2E +:1005900093E060E071E00E948C18E0E070E080EC95 +:1005A0006FE72E2F372F482F562FB901CA01DF9141 +:1005B000CF911F910F91FF90EF900895CF92DF920E +:1005C000EF92FF920F931F93CF93DF93EC01C62E10 +:1005D0000E94D001882309F450C08F818B3041F0F4 +:1005E0008B3008F44AC08551823008F046C007C0FD +:1005F0006A8170E080E090E00E94A41A29C0DA804D +:100600006D2D70E06F777070882777FD8095982F3B +:100610000E94A61A20E030E040E853E40E94321B1A +:100620007B018C016B8170E0882777FD8095982F86 +:100630000E94A61A9B01AC01C801B7010E94D819FB +:1006400020E030E040E251E40E943C1AD7FC905890 +:10065000CC20E9F020E030E040E151E40E94321B80 +:1006600020E030E040EA50E40E943C1A20E030E014 +:1006700040E052E40E94D8190AC08CEB93E060E09D +:1006800071E00E948C1860E070E080EC9FE7DF91E1 +:10069000CF911F910F91FF90EF90DF90CF90089531 +:1006A000DF92EF92FF920F931F937C0101E312E020 +:1006B000C80168E670E00E94610FC80160E00E9416 +:1006C0001E10C8010E946110C80168E670E047E092 +:1006D00050E00E947210C8010E94740F282F2F77DB +:1006E00022952F703AE0D32E2D9D900111248F700A +:1006F000820FF7018083C8010E94740F282F229572 +:100700002F702D9D900111248F70820FF70181832E +:10071000C8010E94740F282F2F7322952F702D9DD2 +:10072000900111248F70820FF7018283C8010E940B +:10073000740F282F22952F702D9D900111248F70FA +:10074000820FF7018383C8010E94740F282F22951E +:100750002F702D9D900111248F70820FF7018483DB +:10076000C8010E94740F282F22952F702D9D900193 +:1007700011248F70820FF7018583C8010E94740FC6 +:10078000282F22952F702D9D900111248F70820F9C +:10079000F701868317821F910F91FF90EF90DF90F2 +:1007A000089581E392E00E9476100895FC0185810E +:1007B00096810895FC0120E080819181892B09F0C8 +:1007C00021E0822F0895FF920F931F93CF93DF9321 +:1007D000EC018B01FF24612F661F6627661F8A814B +:1007E0000E94C31488810E94171560E0892B09F4C8 +:1007F00061E088810E94C314000F111FF39480E10F +:10080000F81649F7DF91CF911F910F91FF9008954E +:100810001F93CF93DF93EC018A8160E00E94C314A1 +:100820008AE090E00E94BD1310E08A8161E00E949E +:10083000C3148A8160E00E94C3141F5F1430A9F7BB +:10084000DF91CF911F910895EF92FF920F931F9325 +:10085000CF93DF93EC017B01CB0193709E838D835B +:10086000CE0160E070E00E94E30300E010E08C81C4 +:10087000882351F0C701002E02C0880F991F0A94E7 +:10088000E2F791FD0DC009C0C701002E02C0969588 +:1008900087950A94E2F780FD03C060E070E002C033 +:1008A0006FEF70E0CE010E94E3030F5F1F4F0A302D +:1008B0001105E9F6CE0160E070E00E94E303CE018D +:1008C00060E070E00E94E303CE010E940804DF9123 +:1008D000CF911F910F91FF90EF900895FC01662337 +:1008E00011F481E004C0862F6B3008F08AE081505B +:1008F00061E070E002C0660F771F8A95E2F785819C +:1009000096816827792776836583CF010E94240426 +:100910000895FC01662311F461E003C06B3008F018 +:100920006AE0262F215085819681442351F061E0B1 +:1009300070E002C0660F771F2A95E2F7682B792BCB +:100940000BC061E070E002C0660F771F2A95E2F7E6 +:10095000609570956823792376836583CF010E9423 +:1009600024040895FC01862F6B3008F08AE06FEFB5 +:100970007FEF02C0660F771F8A95E2F7609570954A +:1009800076836583CF010E9424040895FC0164836B +:10099000658176810E94240408950F931F938C0132 +:1009A000862FF8016083118242831382248316828A +:1009B000158261E00E948414F801828161E00E9446 +:1009C00084141F910F9108958091C1019091C201EB +:1009D000019731F481E392E06091CF010E941E10F3 +:1009E0008091C1019091C2018330910529F0873037 +:1009F000910511F0C89741F481E392E060ED71E058 +:100A000043E050E00E94ED0F8091C1019091C2013E +:100A10008830910511F0449741F481E392E060ED54 +:100A200071E044E050E00E94ED0F8091C10190918F +:100A3000C2018E31910511F0889741F481E392E073 +:100A400060ED71E049E050E00E94ED0F08950F93D2 +:100A50001F9323C081E392E00E946B0F049741F43F +:100A60001092CE011092CD011092CC011092CB01C8 +:100A70000091CB011091CC0181E392E00E94740FB0 +:100A8000F801EE0FFF1FEF53FE4F918380830F5F3E +:100A90001F4F1093CC010093CB0181E392E00E94A1 +:100AA0006B0F892BB9F61F910F910895AF92BF92EA +:100AB000CF92DF92EF92FF920F931F93DF93CF932A +:100AC000CDB7DEB72C970FB6F894DEBF0FBECDBF03 +:100AD0008091CB019091CC01049709F027C78091B8 +:100AE000CD019091CE01892B09F020C781E090E0E3 +:100AF0009093CE018093CD018091C1019091C2016C +:100B0000019731F48091C3010E9417158093CF01A2 +:100B10008091C1019091C201029731F48091C3018B +:100B20006091C5010E94C3148091C1019091C201DE +:100B30000397B1F48091C3010E9402149C01909329 +:100B4000DA018093D90160E071E00E94B41B6093E8 +:100B5000D101C90160E071E00E94B41B8093D20111 +:100B60008091C1019091C201049741F46091C50147 +:100B70007091C6018091C3010E9424148091C1012B +:100B80009091C201059731F48091C3016091C50134 +:100B90000E9484148091C1019091C201079709F0CD +:100BA00052C08091C3019091C4018093E30190935E +:100BB000E40161E00E9484148091E30160E00E94FE +:100BC000C31482E090E00E94BD138091E30161E0D4 +:100BD0000E94C31485E090E00E94BD138091E30160 +:100BE00060E00E94C3148091E30160E00E948414DD +:100BF0008091E30161E020E432E44FE050E00E94A4 +:100C00006A152AE330E040E050E00E94E91B122F11 +:100C1000032FF42EE52E622F732F842F952F20E0C3 +:100C200031E040E050E00E94E91B2093D101612FA8 +:100C3000702F8F2D9E2D20E031E040E050E00E948B +:100C4000E91B6093D2018091C1019091C20188306B +:100C5000910539F481E08093D10182E08093D20143 +:100C600021C0449709F58091DB01882339F480E5A0 +:100C700091E00E94CF0D81E08093DB0180E591E05F +:100C80006DED71E04EED51E02FED31E00E94D10CA1 +:100C90008091DD018093D1018091DE018093D201AA +:100CA0008091DF018093D3018091C1019091C201B5 +:100CB0004E9769F58091DC01882339F481E591E054 +:100CC0000E94D10381E08093DC0181E591E00E94E4 +:100CD0005003809153018093D10180915201809300 +:100CE000D201809151018093D3018091560180936C +:100CF000D401909155019093D50180915701809333 +:100D0000D6019093D701809154018093D8018091AE +:100D1000C1019091C201889709F059C08091C50125 +:100D20009091C601009731F489E591E06091C3018B +:100D30004BE013C08130910531F489E591E0609179 +:100D4000C30146E10AC08230910511F0039741F4D6 +:100D500089E591E06091C30145E126E00E94B6017A +:100D600089E591E060E00E94DE0269837A838B83EB +:100D70009C8389E591E00E9487026D837E838F8347 +:100D80009887DE011196E1EDF1E020E030E004C04B +:100D90008D9181932F5F3F4F24303105CCF384E058 +:100DA00090E09093E6018093E501DE011596E5ED74 +:100DB000F1E024E030E004C08D9181932F5F3F4F3C +:100DC00028303105CCF33093E6012093E501809182 +:100DD000C1019091C201C297E9F48091C301909141 +:100DE000C401482F0297FC0153E0EE0FFF1F5A95F4 +:100DF000E1F7E81BF90BE959FE4F642F6F5F20E024 +:100E00008091C5019091C601892B09F021E0CF01A5 +:100E10000E94CD048091C1019091C201C39771F5E8 +:100E20002091C3013091C40122503040C90143E0F8 +:100E3000880F991F4A95E1F7821B930B89599E4FA2 +:100E40000E94DA038823D1F08091C3019091C401FC +:100E500002979C0103E0220F331F0A95E1F7281B3C +:100E6000390B29593E4F60E08091C5019091C60130 +:100E7000892B09F061E0C9010E94C6048091C1017B +:100E80009091C201C49741F52091C3013091C401F2 +:100E900022503040C90113E0880F991F1A95E1F7DD +:100EA000821B930B89599E4F0E94DA038823A1F07D +:100EB0002091C3013091C40122503040C901B3E0F8 +:100EC000880F991FBA95E1F7821B930B89599E4FA2 +:100ED0006091C5010E94B2048091C1019091C2014C +:100EE000C59781F52091C3013091C4012250304053 +:100EF000C901A3E0880F991FAA95E1F7821B930B04 +:100F000089599E4F0E94DA038823E1F08091C30142 +:100F10009091C40102979C01F3E0220F331FFA95D0 +:100F2000E1F7281B390B29593E4F40E08091C7015A +:100F30009091C801892B09F041E0C9016091C50178 +:100F40000E9489048091C1019091C201C69741F528 +:100F50002091C3013091C40122503040C901E3E027 +:100F6000880F991FEA95E1F7821B930B89599E4FD1 +:100F70000E94DA038823A1F02091C3013091C401BB +:100F800022503040C90173E0880F991F7A95E1F72C +:100F9000821B930B89599E4F6091C5010E946E047C +:100FA0008091C1019091C201C79779F52091C30149 +:100FB0003091C40122503040C90163E0880F991F6D +:100FC0006A95E1F7821B930B89599E4F0E94DA03C1 +:100FD0008823D9F02091C3013091C40122503040C0 +:100FE000C90153E0880F991F5A95E1F7821B930BB3 +:100FF0007091C70160E02091C5013091C601622760 +:10100000732789599E4F0E9424048091C1019091B9 +:10101000C201C89751F52091C3013091C4012250FB +:101020003040C90143E0880F991F4A95E1F7821BC0 +:10103000930B89599E4F0E94DA038823B1F02091C7 +:10104000C3013091C40122503040C90103E0880F30 +:10105000991F0A95E1F7821B930B89599E4F0E94B5 +:10106000D6038093D1019093D2018091C1019091D8 +:10107000C2018634910591F46091C3017091C4015D +:101080009B0122503040C901880F991F820F931F86 +:10109000462F4F5F8F569E4F0E94450F8091C10192 +:1010A0009091C2018734910511F52091C3013091CF +:1010B000C40122503040C901880F991F820F931F2D +:1010C0008F569E4F0E94F00D882389F02091C30116 +:1010D0003091C40122503040C901880F991F820FFE +:1010E000931F8F569E4F6091C5010E94E00D809125 +:1010F000C1019091C2018834910569F52091C30125 +:101100003091C40122503040C901880F991F820FCD +:10111000931F8F569E4F0E94F00D8823E1F020917F +:10112000C3013091C40122503040C901880F991F7A +:10113000820F931F7091C70160E02091C50130912B +:10114000C601622773278F569E4F40E024E000E0DF +:10115000EE240E94C50E8091C1019091C201893494 +:10116000910569F52091C3013091C40122503040AE +:10117000C901880F991F820F931F8F569E4F0E949F +:10118000F00D8823E1F02091C3013091C401225079 +:101190003040C901880F991F820F931F7091C701BA +:1011A00060E02091C5013091C601622773278F56F8 +:1011B0009E4F41E024E000E0EE240E94C50E8091A5 +:1011C000C1019091C2018A349105C1F52091C301FA +:1011D0003091C40122503040C901880F991F820FFD +:1011E000931F8F569E4F0E94F00D882339F1209156 +:1011F000C3013091C40122503040C901880F991FAA +:10120000820F931F8F569E4F6091C7010E94E80D79 +:1012100089832091C3013091C40122503040C9011B +:10122000880F991F820F931F8F569E4FBE016F5FCD +:101230007F4F41E02091C5010E94820E8091C10143 +:101240009091C2018B34910549F52091C3013091F1 +:10125000C40122503040C901880F991F820F931F8B +:101260008F569E4F0E94F00D8823C1F08091C701D8 +:1012700089832091C3013091C40122503040C901BB +:10128000880F991F820F931F8F569E4FBE016F5F6D +:101290007F4F41E02091C5010E94820E8091C101E3 +:1012A0009091C2018C34910509F089C02091C3014D +:1012B0003091C40122503040C901880F991F820F1C +:1012C000931F8F569E4F0E94F00D882309F477C01C +:1012D0008091C3019091C40102979C01220F331F9A +:1012E000280F391F8091C5019091C6016AE070E016 +:1012F0000E94B41BC9018F569E4F0E94E80D89833E +:101300008091C3019091C40102979C01220F331F69 +:10131000280F391F8091C5019091C6016AE070E0E5 +:101320000E94B41B682FC9018F569E4F0E94E80D82 +:1013300080688A838091C3019091C40102979C01C7 +:10134000220F331F280F391F8091C7019091C801C8 +:101350006AE070E00E94B41BC9018F569E4F0E9444 +:10136000E80D8B838091C3019091C40102979C0189 +:10137000220F331F280F391F8091C7019091C80198 +:101380006AE070E00E94B41B682FC9018F569E4F1F +:101390000E94E80D8C832091C3013091C40122503A +:1013A0003040C901880F991F820F931F8F569E4F9F +:1013B000BE016F5F7F4F44E020E00E94820E80916B +:1013C000C1019091C2018D34910509F041C0209175 +:1013D000C3013091C40122503040C901880F991FC8 +:1013E000820F931F8F569E4F0E94F00D882381F12C +:1013F000F090C501A090C701B090C801AA0CBB1C19 +:10140000AA0CBB1CCC24DD2420C08091C301909188 +:10141000C40102978C01000F111F080F191F0F56EE +:101420001E4F8F2D0E940214BC01C80140E024E031 +:1014300000E0EE240E94C50E6AEF70E080E090E0CC +:101440000E9464130894C11CD11CCA14DB04ECF282 +:101450008091C1019091C2018E34910551F5209186 +:10146000C3013091C40122503040C901880F991F37 +:10147000820F931F8F569E4F0E94F00D8823C9F054 +:101480008FEF89878A878B878C872091C301309162 +:10149000C40122503040C901880F991F820F931F49 +:1014A0008F569E4FBE01675F7F4F44E020E00E9451 +:1014B000820E8091C1019091C2018F34910549F54E +:1014C0002091C3013091C40122503040C901880FDE +:1014D000991F820F931F8F569E4F0E94F00D8823F5 +:1014E000C1F019861A861B861C862091C301309193 +:1014F000C40122503040C901880F991F820F931FE9 +:101500008F569E4FBE01675F7F4F44E020E00E94F0 +:10151000820E8091C1019091C2018A35910569F4D2 +:101520008091C3018093E0018091C5018093E10126 +:101530008091C7018093E20119C08B359105B1F408 +:101540006091C3017091C4019B0122503040C901D8 +:10155000880F991F880F991F820F931F462F4F5F87 +:101560008D559E4F2091C5010E9489018091C10136 +:101570009091C2018C35910509F055C06091C3016D +:101580007091C4019B0122503040C901880F991FFE +:10159000880F991F820F931F462F4F5F8D559E4FC7 +:1015A0002091C5010E9489012091C7013091C80195 +:1015B000C9018470907095958795959587954FEFA3 +:1015C00050E0849FC02C1124C901827090709595C1 +:1015D0008795849FD02C112421703070249F102D6A +:1015E0001124EE24FF2418C02091C3013091C401BE +:1015F00022503040C901880F991F880F991F820F10 +:10160000931F8D559E4F6E2D4C2D2D2D012F0E9419 +:1016100015010894E11CF11C8091C5019091C6014F +:10162000E816F9060CF38091C1019091C2018D3545 +:10163000910509F078C08091C5019091C601892B70 +:10164000D1F42091C3013091C40122503040C9012E +:10165000880F991F880F991F820F931F8D559E4FDA +:101660006091C7014091E0012091E1010091E20108 +:101670000E94150158C02091C3013091C40122502D +:101680003040C901880F991F880F991F820F931F3F +:101690008D559E4F0E94B000EE24FF24C82EDD24FD +:1016A0003EC08091C5019091C6018130910541F401 +:1016B0008091C7019091C801E816F906A9F42CC0E1 +:1016C0008230910541F48091C7019091C8018E1537 +:1016D0009F0554F421C00397F9F48091C7019091BC +:1016E000C801E816F906C4F02091C3013091C40185 +:1016F00022503040C901880F991F880F991F820F0F +:10170000931F8D559E4F6E2D4091E0012091E10178 +:101710000091E2010E9415010894E11CF11CEC14F7 +:10172000FD040CF4BECF8091C1019091C2018E35B1 +:10173000910509F053C08091C7019091C801181616 +:10174000190634F081E090E09093C8018093C701BE +:101750002091C3013091C40122503040C901880F4B +:10176000991F880F991F820F931F8D559E4F0E94BE +:10177000B000E090C501F090C601C82EDD242BC05A +:101780008091C5019091C6016091C7017091C80117 +:101790009701281B390BC9010E94B41B892BC1F486 +:1017A0002091C3013091C40122503040C901880FFB +:1017B000991F880F991F820F931F8D559E4F6E2D75 +:1017C0004091E0012091E1010091E2010E941501A8 +:1017D0000894E11CF11CEC14FD0494F28091C10109 +:1017E0009091C2018F35910509F0A0C02091C301ED +:1017F0003091C40122503040C901880F991F880FD1 +:10180000991F820F931F8D559E4F0E94B000682F25 +:101810008091C7019091C801892B09F03FC0EE2447 +:10182000FF24C62EDD2436C08091C5019091C601EB +:10183000E816F906BCF42091C3013091C40122508E +:101840003040C901880F991F880F991F820F931F7D +:101850008D559E4F6E2D4091E0012091E101009148 +:10186000E20113C02091C3013091C40122503040E5 +:10187000C901880F991F880F991F820F931F8D55DB +:101880009E4F6E2D40E020E000E00E94150108947C +:10189000E11CF11CEC14FD043CF248C0A62EBB2454 +:1018A000162FEE24FF2465013AC08091C501909166 +:1018B000C601A501481B590B24173507BCF0209120 +:1018C000C3013091C40122503040C901880F991FD3 +:1018D000880F991F820F931F8D559E4F612F409146 +:1018E000E0012091E1010091E20113C02091C301C8 +:1018F0003091C40122503040C901880F991F880FD0 +:10190000991F820F931F8D559E4F612F40E020E05D +:1019100000E00E9415010894E11CF11C1150960191 +:101920002E193F09EC14FD0409F0BFCF2C960FB619 +:10193000F894DEBF0FBECDBFCF91DF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF900895EF920F +:10195000FF920F931F936CEBE62E63E0F62EC70108 +:1019600040E855E260E070E00E94901601E312E06A +:10197000C80164E070E00E949510C80167E275E05C +:101980000E94CC0FC80164EE74E00E94D10FC70121 +:101990006AE071E00E948F181F910F91FF90EF9005 +:1019A00008952F923F925F926F927F928F929F92B3 +:1019B000AF92BF92CF92DF92EF92FF920F931F935D +:1019C000DF93CF93CDB7DEB727970FB6F894DEBF7E +:1019D0000FBECDBF1B015D834C833F832E830E94CE +:1019E00056137B018C010CC00E9456136E197F099F +:1019F000800B910B655F7140804090400CF08AC075 +:101A000081E392E00E946B0F181619066CF380E4D4 +:101A10008B838A83898381E392E00E94740F81E340 +:101A200092E06CE470E043E050E00E9472100E948B +:101A30005613AC01CB01DA013C014D016E01089453 +:101A4000C11CD11CAA24BB2434C083E0A816B10455 +:101A5000FCF40E9456137B018C0137014801F6010A +:101A6000808112C081E392E00E94740F582E0E9480 +:101A700056136E197F09800B910B63337105810535 +:101A800091050CF047C0852D803460F7F601808306 +:101A90000E9456130894C11CD11C66197709880945 +:101AA0009909655F714080409040A4F50894A11C9D +:101AB000B11C81E392E00E946B0F892B31F6898182 +:101AC00090E0880F991F880F991F982F87FD9D5FC1 +:101AD00095959595F10190838A8190E0880F991FE3 +:101AE000880F991F982F87FD9D5F95959595EC819F +:101AF000FD8190838B8190E0880F991F880F991F3B +:101B0000982F87FD9D5F95959595EE81FF81908338 +:101B100081E001C080E027960FB6F894DEBF0FBECB +:101B2000CDBFCF91DF911F910F91FF90EF90DF908C +:101B3000CF90BF90AF909F908F907F906F905F906D +:101B40003F902F900895EF92FF920F931F93162FBF +:101B5000042F51E3E52E52E0F52EC7010E947610C6 +:101B6000C7016CE470E00E94610FC701612F0E9401 +:101B70001E10C701602F0E941E10C7010E94611035 +:101B80001F910F91FF90EF900895462F68E00E94FB +:101B9000A30D0895462F67E00E94A30D08950F93AB +:101BA0001F938C0160E00E94CA0DC80160E00E9492 +:101BB000C50DC80161E00E94CA0D1F910F910895E3 +:101BC000FC01683010F06FE001C0685F6283089527 +:101BD000E62FF0E0EF70F070E85EFE4F8081089530 +:101BE000FC018081811181E00895FF920F931F9382 +:101BF000CF93DF93EC01162FFF24888161E00E94D0 +:101C0000841482E390E00E94BD13012F10E000FFD6 +:101C100003C0898160E002C0898161E00E94841470 +:101C200082E390E00E94BD13888160E00E948414EA +:101C300082E390E00E94BD13F39488E0F81621F04F +:101C400015950795102FD9CF888161E00E948414E3 +:101C5000898160E00E94841482E390E00E94BD13B9 +:101C6000888160E00E94841482E390E00E94BD13AA +:101C700089810E941715182F882321F4898161E03A +:101C80000E94841482E390E00E94BD13888161E089 +:101C90000E94841482E390E00E94BD13812F1111F1 +:101CA00081E0DF91CF911F910F91FF9008950F93E5 +:101CB0001F938C01FC01818161E00E94841482E306 +:101CC00090E00E94BD13F801808160E00E948414BE +:101CD00082E390E00E94BD13F801818160E00E94E0 +:101CE000841482E390E00E94BD131F910F91089528 +:101CF000FC01818161E00E94841482E390E00E94F3 +:101D0000BD130895DF92EF92FF920F931F93CF932D +:101D1000DF93EC01062FF72ED42E122F0E94780E9F +:101D2000CE0160E40E94F50DCE010E94570ECE0157 +:101D30000E94780E13701054CE01612F0E94F50D91 +:101D4000202F3F2DC9017C0110E007C0CE01F70113 +:101D500061917F010E94F50D1F5F1D15B8F3CE0143 +:101D60000E94570ECE010E94780E6A816058CE0103 +:101D70000E94F50DCE010E94570EDF91CF911F9169 +:101D80000F91FF90EF90DF9008955F926F927F9296 +:101D90008F929F92AF92BF92CF92DF92EF92FF927B +:101DA0000F931F93DF93CF9300D000D0CDB7DEB752 +:101DB0005C016B01742E922E602E8E2C2EE2E22E90 +:101DC00021E0F22E9E012F5F3F4FE1E040E09FE3D4 +:101DD000592ED7010D911C91C601B8010E94B41B68 +:101DE0006115710561F4772021F4EE2311F0433081 +:101DF00019F4D9015C9216C0D9011C9213C0E62FC8 +:101E0000F0E0EF70F070E85EFE4F8081F9018083B2 +:101E1000609FC001619F900D709F900D1124C81AA2 +:101E2000D90AE0E0882031F0413021F4D9018C91C9 +:101E300080688C934F5F8EEF9FEFE80EF91E2F5F47 +:101E40003F4F443031F684E090E089199109BE019A +:101E50006F5F7F4F680F791FC501492D262D0E94A6 +:101E6000820E0F900F900F900F90CF91DF911F91E6 +:101E70000F91FF90EF90DF90CF90BF90AF909F9029 +:101E80008F907F906F905F9008950F931F938C01B8 +:101E9000862FF8016083418360E00E948414F8017A +:101EA000818160E00E948414F801808160E00E94DA +:101EB000C314F801818160E00E94C3141F910F9147 +:101EC000089581E080932C026093090210922A0207 +:101ED00010922B0208952091080230E080910702B1 +:101EE000281B3109C9010895409107028091080219 +:101EF000481718F02FEF3FEF0AC0E42FF0E0E95148 +:101F0000FE4F8081282F30E04F5F40930702C901C8 +:101F10000895E091070280910802E81718F0EFEFAA +:101F2000FFEF06C0F0E0E951FE4F8081E82FF0E0BE +:101F3000CF0108950895AC0120912F023091300215 +:101F400021153105E1F09091070280910802981760 +:101F5000B0F090E008C0FA01EA0FFB1F8081A951A0 +:101F6000BE4F8C939F5FA92FB0E0A617B7079CF3D5 +:101F70001092070260930802CB01F90109950895B8 +:101F8000E0912D02F0912E02309729F010922A0252 +:101F900010922B02099508957093300260932F02DE +:101FA000089570932E0260932D02089510923402CA +:101FB0001092330288EE93E0A0E0B0E08093350207 +:101FC00090933602A0933702B093380284E391E0F5 +:101FD00090933202809331020895CF92DF92EF9274 +:101FE000FF920F931F93CF93DF937C016B018A01C4 +:101FF00080912C028823A1F0C0E0D0E00DC0D70171 +:10200000ED91FC91D601AC0FBD1F0190F081E02D48 +:10201000C7016C9109952196C017D10780F304C0C0 +:10202000CB01642F0E943A11C801DF91CF911F911B +:102030000F91FF90EF90DF90CF900895DF93CF93B3 +:102040000F92CDB7DEB7FC01698380912C02882303 +:10205000C9F080912B02803238F081E090E09383C8 +:10206000828320E030E015C080912A02E82FF0E062 +:10207000E65FFD4F998190838F5F80932A02809362 +:102080002B0205C0CE01019661E00E943A1121E0C9 +:1020900030E0C9010F90CF91DF9108950F93062F83 +:1020A000809109026AE072E040912B0221E00E94D7 +:1020B000E51010922A0210922B0210922C020F911E +:1020C000089561E00E944E100895413208F040E208 +:1020D000862F67EE71E00E949C1010920702809399 +:1020E0000802089521E00E946510089510920702E9 +:1020F0001092080210922A0210922B020E94F012F3 +:1021000008950F931F938C01862F0E94981080ECE6 +:102110009FE00E945A118BE99FE00E945511C8016F +:102120000E9476101F910F9108950E9481100895CA +:10213000880F8093BA000895382F413210F040E0A4 +:1021400042C080913D028823E1F791E090933D02E7 +:1021500020933F028FEF8093AA02109265024150B4 +:10216000409366024F5F90933E0280913E02330F90 +:10217000832B80933E0280914002813041F4109283 +:10218000400280913E028093BB0085EC01C085EE49 +:102190008093BC0080913D028130E1F38091650223 +:1021A000841710F44091650220E030E00AC0FB0182 +:1021B000E20FF31FD901AB5BBD4F8C9180832F5F82 +:1021C0003F4F2417A0F3842F08950F931F93582F88 +:1021D000122F413210F081E04AC080913D028823E5 +:1021E000E1F782E080933D0200933F028FEF8093FE +:1021F000AA021092650240936602A5E4B2E0FB01D8 +:1022000002C081918D938E2F861B8417D0F310927C +:102210003E0280913E02550F852B80933E028091B5 +:102220004002813041F41092400280913E0280933E +:10223000BB0085EC01C085EE8093BC00112321F02A +:1022400080913D028230E1F38091AA028F3F11F428 +:1022500080E00DC08091AA02803211F482E007C0B4 +:102260008091AA02803311F084E001C083E01F91C5 +:102270000F910895482F613210F081E00895809108 +:102280003D02843011F082E0089560938802A7E651 +:10229000B2E0842F9C01F90102C081918D938E2FB1 +:1022A000841B8617D0F380E00895909344028093B6 +:1022B00043020895909342028093410208951F9231 +:1022C0000F920FB60F9211242F933F934F935F936A +:1022D0006F937F938F939F93AF93BF93EF93FF93EE +:1022E0008091B90090E0887F90708036910509F464 +:1022F000F2C081369105CCF58832910509F47BC096 +:1023000089329105B4F48031910509F46FC08131AF +:1023100091053CF4009709F447C1089709F04FC1B3 +:1023200065C08831910509F466C0809709F047C1FE +:1023300082C08034910509F4A4C08134910544F42D +:102340008033910509F482C0C89709F038C189C06B +:102350008035910509F489C08835910509F496C046 +:102360008834910509F02BC1AEC08839910509F474 +:1023700013C189399105ECF48837910509F4ABC094 +:10238000893791054CF48836910509F4A4C080374B +:10239000910509F014C19FC08838910509F4FCC06B +:1023A0008039910509F49DC08038910509F007C175 +:1023B00098C0803B910509F4C6C0813B91054CF45F +:1023C000803A910509F49FC0883A910509F0F7C059 +:1023D000BAC0803C910509F4E3C0883C910509F43A +:1023E000DFC0883B910509F0EAC0C2C080913E027F +:1023F0008093BB00CFC090916502809166029817D0 +:1024000068F490916502E92FF0E0EB5BFD4F80816D +:102410008093BB009F5F90936502BCC080913F0298 +:10242000882309F44BC085ED8093BC008091BC00EB +:1024300084FDFCCFC2C080E28093AA0285ED809328 +:10244000BC008091BC0084FDFCCFB7C080E38093CA +:10245000AA0285ED8093BC008091BC0084FDFCCF76 +:10246000ACC088E38093AA029BC0809165029091E2 +:10247000BB00E82FF0E0EB5BFD4F90838F5F809314 +:102480006502909165028091660282C0809165022A +:102490009091BB00E82FF0E0EB5BFD4F90838F5FE6 +:1024A0008093650280913F02882341F085ED8093FF +:1024B000BC008091BC0084FDFCCF7FC081E0809394 +:1024C000400284EA6EC085ED8093BC008091BC0020 +:1024D00084FDFCCF72C083E080933D021092A9027C +:1024E00059C08091A902803208F056C08091A9029B +:1024F0009091BB00E82FF0E0E757FD4F90838F5F8E +:102500008093A90247C08091A902803230F4E09103 +:10251000A902F0E0E757FD4F108285ED8093BC00E3 +:102520008091BC0084FDFCCF10923D026091A90215 +:10253000E0914302F091440289E892E070E009954D +:102540001092A9022DC084E080933D021092870270 +:1025500010928802E0914102F09142020995809127 +:102560008802882329F481E0809388021092670210 +:1025700090918702E92FF0E0E959FD4F8081809327 +:10258000BB009F5F909387029091870280918802A1 +:10259000981710F485EC01C085E88093BC000FC04B +:1025A00085EC8093BC0009C01092AA0285ED80934F +:1025B000BC008091BC0084FDFCCF10923D02FF91D5 +:1025C000EF91BF91AF919F918F917F916F915F91AB +:1025D0004F913F912F910F900FBE0F901F90189524 +:1025E00010923D0281E080933F021092400282E10E +:1025F00061E00E94C31483E161E00E94C314E9EB2F +:10260000F0E080818E7F808380818D7F808388E46D +:102610008093B80085E48093BC0008951F920F92C8 +:102620000FB60F9211242F933F938F939F93AF93E5 +:10263000BF938091AF029091B002A091B102B0918E +:10264000B2023091B3020196A11DB11D232F2D5F5F +:102650002D3720F02D570196A11DB11D2093B302F7 +:102660008093AF029093B002A093B102B093B202F4 +:102670008091AB029091AC02A091AD02B091AE02FC +:102680000196A11DB11D8093AB029093AC02A09363 +:10269000AD02B093AE02BF91AF919F918F913F91E8 +:1026A0002F910F900FBE0F901F9018958FB7F89431 +:1026B0002091AF023091B0024091B1025091B2022C +:1026C0008FBFB901CA0108959B01AC017FB7F8948F +:1026D0008091AB029091AC02A091AD02B091AE029C +:1026E00066B5A89B05C06F3F19F00196A11DB11DED +:1026F0007FBFBA2FA92F982F8827860F911DA11D64 +:10270000B11D62E0880F991FAA1FBB1F6A95D1F700 +:10271000BC012DC0FFB7F8948091AB029091AC0240 +:10272000A091AD02B091AE02E6B5A89B05C0EF3F07 +:1027300019F00196A11DB11DFFBFBA2FA92F982F27 +:1027400088278E0F911DA11DB11DE2E0880F991FF2 +:10275000AA1FBB1FEA95D1F7861B970B885E934093 +:10276000C8F2215030404040504068517C4F211504 +:1027700031054105510571F60895019739F0880F2B +:10278000991F880F991F02970197F1F70895789480 +:1027900084B5826084BD84B5816084BD85B5826066 +:1027A00085BD85B5816085BDEEE6F0E08081816004 +:1027B0008083E1E8F0E01082808182608083808104 +:1027C00081608083E0E8F0E0808181608083E1EBDC +:1027D000F0E0808184608083E0EBF0E080818160C4 +:1027E0008083EAE7F0E0808184608083808182607A +:1027F0008083808181608083808180688083109263 +:10280000C1000895982F8E3008F09E5097708091E7 +:1028100011018295880F880F807C892B80937C0022 +:1028200080917A00806480937A0080917A0086FD9E +:10283000FCCF2091780040917900942F80E030E027 +:10284000282B392BC90108951F93CF93DF93182F9D +:10285000EB0161E00E948414209709F44AC0CF3F45 +:10286000D10509F449C0E12FF0E0E255FF4F849112 +:102870008330C1F0843028F4813051F08230B1F5DA +:102880000CC0863019F1873049F1843079F514C0D5 +:1028900084B5806884BDC7BD33C084B5806284BD03 +:1028A000C8BD2EC080918000806880938000D09346 +:1028B0008900C093880024C080918000806280934A +:1028C0008000D0938B00C0938A001AC08091B00022 +:1028D00080688093B000C093B30012C08091B000B4 +:1028E00080628093B000C093B4000AC0C038D105A4 +:1028F0001CF4812F60E002C0812F61E00E94C314AC +:10290000DF91CF911F910895CF93DF93482F50E02F +:10291000CA0186569F4FFC0134914A575F4FFA0116 +:102920008491882369F190E0880F991FFC01E85990 +:10293000FF4FA591B491FC01EE58FF4FC591D49182 +:10294000662351F42FB7F8948C91932F9095892397 +:102950008C93888189230BC0623061F42FB7F8947F +:102960008C91932F909589238C938881832B8883D6 +:102970002FBF06C09FB7F8948C91832B8C939FBF79 +:10298000DF91CF910895482F50E0CA0182559F4FA3 +:10299000FC012491CA0186569F4FFC0194914A572D +:1029A0005F4FFA013491332309F440C0222351F1DF +:1029B000233071F0243028F42130A1F0223011F5B9 +:1029C00014C02630B1F02730C1F02430D9F404C04F +:1029D000809180008F7703C0809180008F7D8093ED +:1029E000800010C084B58F7702C084B58F7D84BD10 +:1029F00009C08091B0008F7703C08091B0008F7DB7 +:102A00008093B000E32FF0E0EE0FFF1FEE58FF4F72 +:102A1000A591B4912FB7F894662321F48C919095E9 +:102A2000892302C08C91892B8C932FBF0895682F26 +:102A300070E0CB0182559F4FFC012491CB0186565B +:102A40009F4FFC0144916A577F4FFB01949199235A +:102A500019F420E030E03CC0222351F1233071F022 +:102A6000243028F42130A1F0223011F514C0263092 +:102A7000B1F02730C1F02430D9F404C08091800037 +:102A80008F7703C0809180008F7D8093800010C07D +:102A900084B58F7702C084B58F7D84BD09C08091D5 +:102AA000B0008F7703C08091B0008F7D8093B0001D +:102AB000892F90E0880F991F84589F4FFC01A591A2 +:102AC000B4918C9120E030E0842311F021E030E0DB +:102AD000C90108958F929F92AF92BF92CF92DF92D9 +:102AE000EF92FF920F931F93CF93DF93A82FB0E045 +:102AF000CD0186569F4FFC018490AA57BF4FFD0120 +:102B00008491662311F4992401C0982C6FEFA62EAE +:102B10006FEFB62E6FEFC62E6FE0D62EA222B32235 +:102B2000C422D522682F70E0660F771F64587F4F4C +:102B3000EE24FF248701FB01A591B4910BC0EA1498 +:102B4000FB040C051D0509F44EC00894E11CF11CA2 +:102B5000011D111D8C918821891589F30CC0EA147F +:102B6000FB040C051D0509F43EC00894E11CF11C92 +:102B7000011D111D03C0FB01A591B4918C91882109 +:102B8000891569F720E030E040E050E0FB01C59195 +:102B9000D4910FC0DA01C9018E0D9F1DA01FB11F76 +:102BA0008A159B05AC05BD05F1F02F5F3F4F4F4FD8 +:102BB0005F4F88818821891569F3CA01B90125E130 +:102BC00030E040E050E00E94951B9B01AC01205F8B +:102BD0003F4F4F4F5F4F84E0569547953795279568 +:102BE0008A95D1F704C020E030E040E050E0B90120 +:102BF000CA01DF91CF911F910F91FF90EF90DF906D +:102C0000CF90BF90AF909F908F90089508951F929E +:102C10000F920FB60F9211242F933F934F938F93E0 +:102C20009F93EF93FF938091C00082FD1DC0409160 +:102C3000C60020913403309135032F5F3F4F2F772B +:102C4000307080913603909137032817390771F05F +:102C5000E0913403F0913503EC54FD4F4083309301 +:102C600035032093340302C08091C600FF91EF9199 +:102C70009F918F914F913F912F910F900FBE0F9089 +:102C80001F901895E091C803F091C903E058FF4FD9 +:102C90008191919120813181821B930B8F7790706C +:102CA000892B11F00E94061608951F920F920FB6FD +:102CB0000F9211242F933F938F939F93EF93FF9342 +:102CC0002091B8033091B9038091BA039091BB036E +:102CD0002817390731F48091C1008F7D8093C1009E +:102CE00014C0E091BA03F091BB03E85CFC4F208173 +:102CF0008091BA039091BB0301968F779070909367 +:102D0000BB038093BA032093C600FF91EF919F917C +:102D10008F913F912F910F900FBE0F901F9018959C +:102D2000AF92BF92DF92EF92FF920F931F93CF93D8 +:102D3000DF93EC017A018B01DD24403081EE5807EE +:102D400080E0680780E0780711F0DD24D39491E0FB +:102D5000A92EB12CEC89FD89DD2069F0C50108A000 +:102D600002C0880F991F0A94E2F7808360E079E03F +:102D70008DE390E005C0108260E874E88EE190E099 +:102D8000A80197010E94C71B21503040404050408D +:102D9000569547953795279580E12030380720F0E4 +:102DA000DD2011F0DD24D6CFE889F9893083EA8966 +:102DB000FB89208319A2EE89FF89408121E030E060 +:102DC000C9010C8C02C0880F991F0A94E2F7482BA6 +:102DD0004083EE89FF894081C9010D8C02C0880FB4 +:102DE000991F0A94E2F7482B4083EE89FF894081BE +:102DF000C9010E8C02C0880F991F0A94E2F7482B74 +:102E00004083EE89FF8980810F8C02C0220F331F1F +:102E10000A94E2F7209528232083DF91CF911F9118 +:102E20000F91FF90EF90DF90BF90AF900895DC017D +:102E30001C96ED91FC911D97E058FF4F2191319127 +:102E400080819181281B390B2F773070C90108953B +:102E5000DC011C96ED91FC911D97E058FF4F2081FD +:102E60003181E058F040DF01AE57BF4F8D919C910A +:102E700011972817390719F42FEF3FEF07C08D91ED +:102E80009C91E80FF91F8081282F30E0C901089537 +:102E9000DC011C96ED91FC911D97E058FF4F2081BD +:102EA0003181E058F040DF01AE57BF4F8D919C91CA +:102EB00011972817390719F42FEF3FEF10C08D91A4 +:102EC0009C911197E80FF91F20818D919C9111978A +:102ED00001968F77907011969C938E9330E0C90184 +:102EE0000895DC0191968C919197882339F054963E +:102EF000ED91FC915597808186FFF9CF91961C92B8 +:102F00000895CF93DF93EC01EE85FF85E058FF4FE6 +:102F100020813181E058F0402F5F3F4F2F77307094 +:102F2000DF01AE57BF4F8D919C911197281739073C +:102F3000D1F3E058FF4F80819181E058F040E80FD5 +:102F4000F91F6083EE85FF85E058FF4F31832083B2 +:102F5000EE89FF89208181E090E00F8C02C0880F0C +:102F6000991F0A94E2F7282B208381E089A3EC893A +:102F7000FD8980818064808381E090E0DF91CF9142 +:102F800008951092BF031092BE0388EE93E0A0E074 +:102F9000B0E08093C0039093C103A093C203B093A9 +:102FA000C30384E491E09093BD038093BC0384EB5E +:102FB00092E09093C9038093C80388E393E09093D1 +:102FC000CB038093CA0385EC90E09093CD0380936C +:102FD000CC0384EC90E09093CF038093CE0380ECFD +:102FE00090E09093D1038093D00381EC90E0909394 +:102FF000D3038093D20382EC90E09093D503809327 +:10300000D40386EC90E09093D7038093D60384E0BA +:103010008093D80383E08093D90387E08093DA0319 +:1030200085E08093DB0381E08093DC030895CF93F8 +:10303000DF930E94C7130E94A70CC2E4D6E10E944E +:1030400056052097E1F30E944216F9CFCF92DF9206 +:10305000EF92FF920F931F93CF93DF937C016B014D +:103060008A01C0E0D0E00FC0D6016D916D01D7019B +:10307000ED91FC910190F081E02DC7010995C80FF9 +:10308000D91F015010400115110571F7CE01DF91D4 +:10309000CF911F910F91FF90EF90DF90CF90089507 +:1030A000EF92FF920F931F938C01DC01ED91FC9145 +:1030B0000190F081E02D6DE009957C01D801ED9142 +:1030C000FC910190F081E02DC8016AE009959C0116 +:1030D0002E0D3F1DC9011F910F91FF90EF90089594 +:1030E000CF93DF93EC016115710519F420E030E016 +:1030F0000FC0DB010D900020E9F71197A61BB70B5D +:10310000E881F9810280F381E02DAD0109959C01F0 +:10311000C901DF91CF9108950E9470180895EF9230 +:10312000FF920F931F937C010E9470188C01C701BE +:103130000E945018080F191FC8011F910F91FF908E +:10314000EF9008950F931F93CF93DF93BC018230CC +:10315000910510F462E070E0E091E003F091E1038A +:1031600040E050E0A0E0B0E024C08081918186176B +:103170009707D0F08617970771F482819381109793 +:1031800029F013969C938E9312972CC09093E10391 +:103190008093E00327C04115510519F08417950766 +:1031A00018F48D01AC01EF01DF01828193819C0154 +:1031B000F9013097D1F641155105F9F0CA01861B86 +:1031C000970B8430910580F48A819B81011511054C +:1031D00021F0F8019383828304C09093E1038093EC +:1031E000E003FE01329645C0FE01E80FF91F61932E +:1031F00071930297998388833CC08091DE039091FC +:10320000DF03892B41F48091140190911501909373 +:10321000DF038093DE0340911601509117014115A1 +:10322000510541F44DB75EB78091120190911301A1 +:10323000481B590B2091DE033091DF03241735071B +:10324000B0F4CA01821B930B8617970780F0AB017D +:103250004E5F5F4F8417950750F0420F531F5093F6 +:10326000DF034093DE03F9016193719302C0E0E054 +:10327000F0E0CF01DF91CF911F910F910895CF938F +:10328000DF939C01009709F48FC0EC0122971B8209 +:103290001A826091E0037091E1036115710581F478 +:1032A00088819981820F931F2091DE033091DF0383 +:1032B0002817390739F5D093DF03C093DE0374C0B4 +:1032C000DB0140E050E0AC17BD0708F1BB83AA83E7 +:1032D000FE0121913191E20FF31FAE17BF0779F480 +:1032E0008D919C911197280F391F2E5F3F4F398385 +:1032F000288312968D919C9113979B838A83411505 +:10330000510571F4D093E103C093E0034DC01296D0 +:103310008D919C911397AD01009711F0DC01D3CFF3 +:10332000DA011396DC93CE931297FA012191319131 +:10333000E20FF31FCE17DF0769F488819981280F08 +:10334000391F2E5F3F4FFA01318320838A819B8191 +:1033500093838283E0E0F0E0DB0112968D919C91F3 +:103360001397009719F0BC01FD01F6CFAB014E5F3A +:103370005F4FDB018D919C91840F951F2091DE039F +:103380003091DF032817390779F4309729F4109228 +:10339000E1031092E00302C01382128242505040B7 +:1033A0005093DF034093DE03DF91CF91089550588F +:1033B000BB27AA270ED01CC10DD130F012D120F0AE +:1033C00031F49F3F11F41EF402C10EF4E095E7FBC7 +:1033D000F8C0E92F1ED180F3BA176207730784077C +:1033E000950718F071F49EF536C10EF4E0950B2E9A +:1033F000BA2FA02D0B01B90190010C01CA01A00147 +:103400001124FF27591B99F0593F50F4503E68F1A1 +:103410001A16F040A22F232F342F4427585FF3CFE2 +:10342000469537952795A795F0405395C9F77EF4B3 +:103430001F16BA0B620B730B840BBAF09150A1F0FC +:10344000FF0FBB1F661F771F881FC2F70EC0BA0F82 +:10345000621F731F841F48F4879577956795B7950A +:10346000F7959E3F08F0B3CF9395880F08F0992702 +:10347000EE0F9795879508950CD0BAC0B2D040F062 +:10348000A9D030F021F45F3F19F09BC05111E4C086 +:103490009EC0BFD098F39923C9F35523B1F3951B70 +:1034A000550BBB27AA2762177307840738F09F5F65 +:1034B0005F4F220F331F441FAA1FA9F333D00E2ED4 +:1034C0003AF0E0E830D091505040E695001CCAF741 +:1034D00029D0FE2F27D0660F771F881FBB1F261706 +:1034E00037074807AB07B0E809F0BB0B802DBF01D9 +:1034F000FF2793585F4F2AF09E3F510568F061C047 +:10350000ABC05F3FECF3983EDCF38695779567950B +:10351000B795F7959F5FC9F7880F911D9695879589 +:1035200097F90895E1E0660F771F881FBB1F6217A8 +:1035300073078407BA0720F0621B730B840BBA0B66 +:10354000EE1F88F7E0950895E89409C097FB3EF4D4 +:1035500090958095709561957F4F8F4F9F4F9923E0 +:10356000A9F0F92F96E9BB279395F695879577955E +:103570006795B795F111F8CFFAF4BB0F11F460FF1E +:103580001BC06F5F7F4F8F4F9F4F16C0882311F076 +:1035900096E911C0772321F09EE8872F762F05C08A +:1035A000662371F096E8862F70E060E02AF09A9525 +:1035B000660F771F881FDAF7880F9695879597F91A +:1035C000089597F99F6780E870E060E008959FEFA5 +:1035D00080EC089500240A941616170618060906AA +:1035E000089500240A941216130614060506089579 +:1035F000092E0394000C11F4882352F0BB0F40F401 +:10360000BF2B11F460FF04C06F5F7F4F8F4F9F4F40 +:10361000089557FD9058440F551F59F05F3F71F0C2 +:103620004795880F97FB991F61F09F3F79F0879529 +:103630000895121613061406551FF2CF4695F1DFB2 +:1036400008C0161617061806991FF1CF8695710542 +:10365000610508940895E894BB2766277727CB0176 +:1036600097F908950BD0C4CFB5DF28F0BADF18F072 +:10367000952309F0A6CFABCF1124EECFCADFA0F37C +:10368000959FD1F3950F50E0551F629FF001729FF7 +:10369000BB27F00DB11D639FAA27F00DB11DAA1F16 +:1036A000649F6627B00DA11D661F829F2227B00D63 +:1036B000A11D621F739FB00DA11D621F839FA00DEE +:1036C000611D221F749F3327A00D611D231F849F3E +:1036D000600D211D822F762F6A2F11249F57504095 +:1036E0008AF0E1F088234AF0EE0FFF1FBB1F661F30 +:1036F000771F881F91505040A9F79E3F510570F0E9 +:1037000060CFAACF5F3FECF3983EDCF386957795C8 +:103710006795B795F795E7959F5FC1F7FE2B880FE3 +:10372000911D9695879597F90895629FD001739F93 +:10373000F001829FE00DF11D649FE00DF11D929F4D +:10374000F00D839FF00D749FF00D659FF00D99278C +:10375000729FB00DE11DF91F639FB00DE11DF91FB0 +:10376000BD01CF011124089597FB092E07260AD029 +:1037700077FD04D049D006D000201AF470956195E9 +:103780007F4F0895F6F7909581959F4F0895A1E298 +:103790001A2EAA1BBB1BFD010DC0AA1FBB1FEE1FCB +:1037A000FF1FA217B307E407F50720F0A21BB30B16 +:1037B000E40BF50B661F771F881F991F1A9469F792 +:1037C00060957095809590959B01AC01BD01CF01EE +:1037D000089597FB092E05260ED057FD04D0D7DF9C +:1037E0000AD0001C38F450954095309521953F4FF4 +:1037F0004F4F5F4F0895F6F79095809570956195BE +:103800007F4F8F4F9F4F0895AA1BBB1B51E107C0ED +:10381000AA1FBB1FA617B70710F0A61BB70B881F60 +:10382000991F5A95A9F780959095BC01CD010895EF +:10383000EE0FFF1F0590F491E02D0994F894FFCF4F +:1038400052656164206661696C005265616479212A +:1038500000018000E20300003F065B4F666D7D07BC +:103860007F6F777C395E797101000A006400E8039C +:10387000000000001E10ED0F6B0F740F890F9A0FE0 +:10388000000000008117261817174817281771170E +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_3.cpp.hex b/Firmware/Archive/grove_pi_v1_2_3.cpp.hex new file mode 100644 index 0000000..1338a98 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_3.cpp.hex @@ -0,0 +1,906 @@ +:100000000C9463000C948B000C948B000C948B006C +:100010000C948B000C948B000C948B000C944C1261 +:100020000C948B000C948B000C948B000C948B0024 +:100030000C948B000C948B000C948B000C948B0014 +:100040000C94C8150C948B000C949C170C94D81726 +:100050000C948B000C948B000C948B000C948B00F4 +:100060000C94F5100C948B000000000700020100B6 +:100070000003040600000000000000000102040864 +:100080001020408001020408102001020408102002 +:10009000040404040404040402020202020203032E +:1000A00003030303000000002300260029000000D2 +:1000B0000000250028002B0000000000240027007D +:1000C0002A000410131811241FBECFEFD8E0DEBFA2 +:1000D000CDBF11E0A0E0B1E0EAE3F8E302C0059093 +:1000E0000D92AA34B107D9F715E0AAE4B1E001C036 +:1000F0001D92AD3DB107E1F710E0C6ECD0E004C0C1 +:100100002297FE010E94A01AC23CD107C9F70E94A3 +:10011000F3160C941B1C0C940000CF93DF93EC019E +:1001200060E088810E94D31484E190E00E947416FC +:1001300061E088810E94D31484E190E0DF91CF9147 +:100140000C9474160F931F93CF93DF93EC01062F3B +:1001500018E007FF02C061E001C060E089810E94F1 +:10016000D314CE010E948D00000F115091F7DF9142 +:10017000CF911F910F910895EF92FF921F93CF930C +:10018000DF9300D0CDB7DEB77C01162F27FF02C06A +:1001900060EC01C060EE26FF606147FF686046FFCB +:1001A000646017FF626016FF6160C70129834A839C +:1001B0000E94A2002981622FC7010E94A2004A81E9 +:1001C000642FC7010E94A200612FC7010F900F90FA +:1001D000DF91CF911F91FF90EF900C94A2007F923E +:1001E0008F929F92AF92BF92CF92DF92EF92FF9247 +:1001F0000F931F93CF93DF93EC01162F942E822E33 +:1002000060E00E94A20060E0CE010E94A20060E0D7 +:10021000CE010E94A20060E0CE010E94A20083E015 +:10022000189F7001112467018FEFC81AD80A57016F +:1002300082E0A80EB11C712C1FC071120FC0EB819F +:10024000FC81EE0DFF1D9082EB81FC81EC0DFD1D0C +:100250008082EB81FC81EA0DFB1D0083EB81FC8138 +:1002600083E0789EE00DF11D11242281418160819F +:10027000CE010E94BC0073948A817816F0F260E08F +:10028000CE010E94A20060E0CE010E94A20060E0C8 +:10029000CE010E94A20060E0CE01DF91CF911F91BC +:1002A0000F91FF90EF90DF90CF90BF90AF909F9015 +:1002B0008F907F900C94A2000F931F93CF93DF93A6 +:1002C000EC01862F688349832A8361E00E949B1496 +:1002D00061E089810E949B148A8161E070E023E0E3 +:1002E000829FC00111240E94A41A8B839C8310E07A +:1002F00008C000E020E040E0612FCE010E94EF0046 +:100300001F5F8A811817A8F3DF91CF911F910F917A +:100310000895FC018281089584E092E00C94A90F75 +:10032000CF93DF93EC0168E670E084E092E00E94F6 +:10033000E20F60E084E092E00E94690F84E092E0C6 +:100340000E94F70F47E050E068E670E084E092E03A +:100350000E94D50F84E092E00E94E70E382F369578 +:10036000369536953E70232F220F220F230F8F7064 +:100370009927280F288384E092E00E94E70E282F17 +:1003800022952F708F7099273AE0239F800D1124BA +:10039000898384E092E00E94E70E382F36953695E7 +:1003A00036953670232F220F220F230F8F70992737 +:1003B000280F2A8384E092E00E94E70E282F2295DE +:1003C0002F708F7099273AE0239F800D11248B8323 +:1003D00084E092E00E94E70E282F22952F708F7004 +:1003E00099273AE0239F800D11248C8384E092E0CA +:1003F0000E94E70E282F22952F708F7099273AE0E0 +:10040000239F800D11248D8384E092E00E94E70EEB +:10041000282F22952F708F7099273AE0239F800D07 +:1004200011248E831F82DF91CF910895CF93DF93A4 +:10043000EC01862F688319824A831B822C831E82DB +:100440001D8261E00E949B1461E08A81DF91CF915F +:100450000C949B141F93CF93DF93EC0160E08A818F +:100460000E94D3148AE090E00E94741614E061E0C8 +:100470008A810E94D31460E08A810E94D3141150B3 +:10048000B1F7DF91CF911F910895FF920F931F93C2 +:10049000CF93DF93EC018B0190E1F92E612F661F62 +:1004A0006627661F8A810E94D31488810E940A15DC +:1004B00061E0892B09F060E088810E94D314000F6D +:1004C000111FFA9459F7DF91CF911F910F91FF906F +:1004D0000895EF92FF920F931F93CF93DF93EC0158 +:1004E0007B01CB0193709E838D8360E070E0CE0131 +:1004F0000E94450200E010E08C81882351F0C70182 +:10050000002E02C0880F991F0A94E2F791FF0DC0D8 +:1005100009C0C701002E02C0969587950A94E2F79C +:1005200080FF03C06FEF70E002C060E070E0CE01BA +:100530000E9445020F5F1F4F0A301105E9F660E087 +:1005400070E0CE010E94450260E070E0CE010E94A2 +:100550004502CE01DF91CF911F910F91FF90EF9057 +:100560000C942A02662321F06B3018F06AE001C077 +:1005700061E0262F215061E070E002C0660F771F16 +:100580002A95E2F7FC01258136816227732776835D +:1005900065830C946902662321F06B3018F06AE0E1 +:1005A00001C061E0562F5150FC012581368161E088 +:1005B00070E002C0660F771F5A95E2F7442319F0E6 +:1005C000622B732B04C06095709562237323FC012A +:1005D000768365830C9469026B3008F06AE02FEF34 +:1005E0003FEF02C0220F331F6A95E2F72095309546 +:1005F000FC0136832583B9010C946902FC016483F4 +:10060000658176810C946902FC018581968108954B +:10061000FC0181E020813181232B09F480E00895E1 +:100620008091890190918A01019731F46091820152 +:1006300084E092E00E94690F8091890190918A0183 +:100640008330910529F08730910511F0C89741F466 +:1006500043E050E06DE671E084E092E00E943B0FE1 +:100660008091890190918A018830910511F0449719 +:1006700041F444E050E06DE671E084E092E00E94D5 +:100680003B0F8091890190918A018E31910511F083 +:10069000889741F449E050E06DE671E084E092E033 +:1006A0000E943B0F8091890190918A01459751F4F6 +:1006B00045E150E06DE671E084E092E00E943B0F7E +:1006C00010926D010895CF93DF9322C084E092E0F1 +:1006D0000E94DE0E049741F410928601109285016B +:1006E0001092880110928701C0918701D0918801F2 +:1006F00084E092E00E94E70EFE01EE0FFF1FE75735 +:10070000FE4F918380832196D0938801C093870107 +:1007100084E092E00E94DE0E892BC1F6DF91CF913A +:10072000089564E070E084E092E00E94C60F63E602 +:1007300073E084E092E00E94FA0F60E173E084E0ED +:1007400092E00C94FF0FAF92BF92CF92DF92EF92A4 +:10075000FF920F931F93CF93DF93CDB7DEB72C9704 +:100760000FB6F894DEBF0FBECDBF80918701909188 +:100770008801049709F006C781E090E09093860114 +:10078000809385018091890190918A01469741F477 +:1007900060918B0170918C0188EC92E00E943C1278 +:1007A0008091890190918A01459739F08091890162 +:1007B00090918A01019751F523C088EC92E00E9444 +:1007C000CB13882399F368E571E088EC92E00E94EE +:1007D000F71281E080936D0180E090E009C0FC0198 +:1007E000E359FE4FDC01A85ABE4F2C91218301969C +:1007F00084319105A4F39093840180938301D6CF33 +:1008000080918B010E940A15809382018091890159 +:1008100090918A01029731F460918D0180918B0152 +:100820000E94D3148091890190918A010397A9F4C1 +:1008300080918B010E94EF13909357018093560192 +:100840009C0197FF02C021503F4F30936E0160E042 +:1008500071E00E942C1A80936F0180918901909120 +:100860008A01049741F460918D0170918E0180910D +:100870008B010E9410148091890190918A01059743 +:1008800031F460918D0180918B010E949B148091C5 +:10089000890190918A01079709F042C080918B01EC +:1008A00090918C0180934C0190934D0161E00E94E6 +:1008B0009B1460E080914C010E94D31482E090E090 +:1008C0000E94741661E080914C010E94D31485E06F +:1008D00090E00E94741660E080914C010E94D31455 +:1008E00060E080914C010E949B1420E432E44FE0D0 +:1008F00050E061E080914C010E9433152AE330E022 +:1009000040E050E00E94621ACA01B90120E031E0E3 +:1009100040E050E00E94621A20936E0160936F01E4 +:100920008091890190918A018830910541F481E09C +:1009300080936E0182E080936F0183E021C0449731 +:1009400009F580915501811107C083E092E00E9472 +:10095000710C81E08093550123E531E042E551E0DF +:1009600061E571E083E092E00E94810C8091510189 +:1009700080936E018091520180936F0180915301A9 +:10098000809370018091890190918A014E9769F559 +:1009900080915401811107C08BEF91E00E948C017E +:1009A00081E0809354018BEF91E00E94900180914F +:1009B000FD0180936E018091FC0180936F01809115 +:1009C000FB018093700180910002809371018091FE +:1009D000FF018093720190910102909373018093C3 +:1009E00074018091FE01809375018091890190913D +:1009F0008A01889709F059C080918D0190918E01EC +:100A0000009719F426E04BE005C08130910549F4C8 +:100A100026E046E160918B018DEE91E00E94300D61 +:100A200008C08230910519F426E045E1F3CF039721 +:100A3000D9F360E08DEE91E00E94450E69877A87D8 +:100A40008B879C878DEE91E00E94F70D6D837E83EE +:100A50008F83988710924B0110924A01FE013996BC +:100A600080E090E001962191DC01A359BE4F2C93C8 +:100A700084309105BCF384E090E090934B01809327 +:100A80004A010196DC01A359BE4FE5E0F0E0EC0F0E +:100A9000FD1FE80FF91F359720812C9388309105B1 +:100AA00084F390934B0180934A0180918901909146 +:100AB0008A01C297D9F480918B0190918C01482FC3 +:100AC00021E060918D0170918E01672B09F420E087 +:100AD000642F6F5FFC01329737E03E9FC0013F9F5C +:100AE000900D11248D539E4F0E9416028091890112 +:100AF00090918A01C39791F420918B0130918C01E0 +:100B00002250310947E0429FC001439F900D1124BC +:100B10008D539E4F0E94080381116AC38091890101 +:100B200090918A01C49791F420918B0130918C01AE +:100B30002250310917E0129FC001139F900D11241C +:100B40008D539E4F0E94080381116BC380918901D0 +:100B500090918A01C59791F420918B0130918C017D +:100B60002250310947E0429FC001439F900D11245C +:100B70008D539E4F0E940803811165C380918901A6 +:100B800090918A01C69791F420918B0130918C014C +:100B90002250310917E0129FC001139F900D1124BC +:100BA0008D539E4F0E940803811168C38091890173 +:100BB00090918A01C79791F420918B0130918C011B +:100BC0002250310917E0129FC001139F900D11248C +:100BD0008D539E4F0E940803811162C38091890149 +:100BE00090918A01C89791F420918B0130918C01EA +:100BF0002250310917E0129FC001139F900D11245C +:100C00008D539E4F0E940803811163C38091890117 +:100C100090918A018634910591F460918B017091D5 +:100C20008C01462F4F5F9B0122503109C901880F6B +:100C3000991F820F931F8F549E4F0E94D30A809159 +:100C4000890190918A018734910589F420918B0163 +:100C500030918C0122503109C901880F991F820FF0 +:100C6000931F8F549E4F0E943D0C811146C380916B +:100C7000890190918A018834910589F420918B0132 +:100C800030918C0122503109C901880F991F820FC0 +:100C9000931F8F549E4F0E943D0C811140C3809141 +:100CA000890190918A018934910589F420918B0101 +:100CB00030918C0122503109C901880F991F820F90 +:100CC000931F8F549E4F0E943D0C811145C380910C +:100CD000890190918A018A34910589F420918B01D0 +:100CE00030918C0122503109C901880F991F820F60 +:100CF000931F8F549E4F0E943D0C81114AC38091D7 +:100D0000890190918A018B34910589F420918B019E +:100D100030918C0122503109C901880F991F820F2F +:100D2000931F8F549E4F0E943D0C81115AC3809196 +:100D3000890190918A018C34910589F420918B016D +:100D400030918C0122503109C901880F991F820FFF +:100D5000931F8F549E4F0E943D0C81115BC3809165 +:100D6000890190918A018D349105A9F520918B011B +:100D700030918C0122503109C901880F991F820FCF +:100D8000931F8F549E4F0E943D0C8111BBC323C003 +:100D9000812F0E94EF13BC0120918B0130918C01B7 +:100DA00022503109C901880F991F820F931FE12C2E +:100DB00000E024E040E08F549E4F0E94BB0B6AEF9E +:100DC00070E080E090E00E944E162FEFC21AD20A27 +:100DD000CA14DB04ECF28091890190918A018E346F +:100DE000910589F420918B0130918C0122503109B9 +:100DF000C901880F991F820F931F8F549E4F0E9425 +:100E00003D0C81118CC38091890190918A018F34AE +:100E1000910589F420918B0130918C012250310988 +:100E2000C901880F991F820F931F8F549E4F0E94F4 +:100E30003D0C81118EC38091890190918A018A3580 +:100E4000910569F480918B0180934E0180918D0111 +:100E500080934F0180918F018093500118C08B3592 +:100E60009105A9F460918B0170918C01462F4F5F21 +:100E70009B012250310955E0529FC001539F900DB4 +:100E8000112420918D018D569E4F0E945C0180910E +:100E9000890190918A018C35910549F080918901F1 +:100EA00090918A018D35910509F0BDC048C06091CF +:100EB0008B0170918C01462F4F5F9B0122503109AD +:100EC00055E0529FC001539F900D112420918D0138 +:100ED0008D569E4F0E945C0100918F0110919001F0 +:100EE00002FBDD24D0F8D19401FBCC24C0F8C194DE +:100EF00001701127102F1195E12CF12CA5E0BA2ECD +:100F000016C060918B0170918C0162507109B69E80 +:100F1000C001B79E900D1124012F2C2D4D2D6E2D4B +:100F20008D569E4F0E94EF003FEFE31AF30A809127 +:100F30008D0190918E01E816F9061CF3AFCF209138 +:100F40008D0130918E0180918B0190918C01232B2A +:100F5000B1F49C012250310945E0429FC001439FFA +:100F6000900D11240091500120914F0140914E01AC +:100F700060918F018D569E4F0E94EF0054C09C01DE +:100F80002250310945E0429FC001439F900D11243A +:100F90008D569E4F0E948901E12CF12CC82ED12C38 +:100FA00015E03DC020918D0130918E012130310539 +:100FB00041F480918F0190919001E816F906B1F407 +:100FC0002BC02230310541F480918F019091900126 +:100FD0008E159F055CF420C023303105E9F4809123 +:100FE0008F0190919001E816F906B4F020918B01E1 +:100FF00030918C0122503109129FC001139F900D36 +:1010000011240091500120914F0140914E016E2D0D +:101010008D569E4F0E94EF008FEFE81AF80AEC14ED +:10102000FD040CF4BFCF8091890190918A018E3527 +:10103000910549F08091890190918A018F35910540 +:1010400009F0A0C252C080918F01909190011816B2 +:10105000190634F081E090E09093900180938F0125 +:1010600020918B0130918C012250310945E0429F43 +:10107000C001439F900D11248D569E4F0E948901FF +:10108000E0908D01F0908E01C82ED12C15E029C082 +:1010900080918D0190918E019701281B390BC90118 +:1010A00060918F01709190010E942C1A892BB1F4EC +:1010B00020918B0130918C0122503109129FC00187 +:1010C000139F900D11240091500120914F014091E8 +:1010D0004E016E2D8D569E4F0E94EF003FEFE31A9A +:1010E000F30AEC14FD04A4F2A5CF20918B013091FA +:1010F0008C012250310945E0429FC001439F900D71 +:1011000011248D569E4F0E94890120918F013091AC +:101110009001232B59F133C080918D0190918E0164 +:1011200020918B0130918C0122503109E816F9068B +:1011300064F4129FC001139F900D1124009150017F +:1011400020914F0140914E0108C0129FC001139F92 +:10115000900D112400E020E040E06E2D8D569E4F52 +:101160000E94EF008FEFE81AF80A05C0E12CF12C7D +:10117000C82ED12C15E0EC14FD0474F203C2C82E65 +:10118000D12C760115E030C080918D0190918E01B7 +:101190009601281B390B80918B0190918C01E216EE +:1011A000F3067CF09C0122503109129FC001139F6D +:1011B000900D11240091500120914F0140914E015A +:1011C0000BC09C0122503109129FC001139F900D4A +:1011D000112400E020E040E06E2D8D569E4F0E94CD +:1011E000EF0021E0E21AF108E114F10469F6CAC146 +:1011F00061E080918D0190918E01892B09F460E06E +:1012000020918B0130918C012250310947E0429F9F +:10121000C001439F900D11248D539E4F0E94FE02EA +:101220007DCC20918B0130918C0122503109129F8D +:10123000C001139F900D112460918D018D539E4F1D +:101240000E94EC0283CC41E080918F01909190014B +:10125000892B09F440E020918B0130918C012250C0 +:10126000310957E0529FC001539F900D11246091A6 +:101270008D018D539E4F0E94CB0280CC20918B011B +:1012800030918C0122503109129FC001139F900DA3 +:10129000112460918D018D539E4F0E94B20286CC25 +:1012A00090918F0180E060918D0170918E0168278F +:1012B000792720918B0130918C0122503109129FA6 +:1012C000C001139F900D11248D539E4F0E946902FF +:1012D00085CC20918B0130918C0122503109129FD5 +:1012E000C001139F900D11248D539E4F0E94040343 +:1012F00080936E0190936F0189CC20918B01309186 +:101300008C0122503109C901880F991F820F931F48 +:1013100060918D018F549E4F0E94EA0AA8CC909153 +:101320008F0180E060918D0170918E01682779278F +:1013300020918B0130918C0122503109C901880F15 +:10134000991F820F931FE12C00E024E040E08F54AE +:101350009E4F0E94BB0BA3CC90918F0180E06091C7 +:101360008D0170918E016827792720918B01309132 +:101370008C0122503109C901880F991F820F931FD8 +:10138000E12C00E024E041E08F549E4F0E94BB0B13 +:101390009ECC20918B0130918C0122503109C901E2 +:1013A000880F991F820F931F60918F018F549E4F5A +:1013B0000E94360C898320918B0130918C01225040 +:1013C0003109C901880F991F820F931F20918D0148 +:1013D00041E0BE016F5F7F4F8F549E4F0E94710BA3 +:1013E0008ECC80918F01898320918B0130918C016B +:1013F00022503109C901880F991F820F931F209134 +:101400008D0141E0BE016F5F7F4F8F549E4F0E9460 +:10141000710B8DCC80918D0190918E010AE010E0CE +:10142000B8010E942C1A20918B0130918C0122501E +:101430003109C901880F991F820F931F8F549E4F46 +:101440000E94360C898380918D0190918E01B801A4 +:101450000E942C1A20918B0130918C01225031096D +:10146000A901440F551F420F531F682FCA018F5403 +:101470009E4F0E94360C80688A8380918F019091E4 +:101480009001B8010E942C1A20918B0130918C019F +:1014900022503109C901880F991F820F931F8F5461 +:1014A0009E4F0E94360C8B8380918F01909190010A +:1014B000B8010E942C1A20918B0130918C0122508E +:1014C0003109A901440F551F420F531F682FCA014C +:1014D0008F549E4F0E94360C8C8320918B0130914B +:1014E0008C0122503109C901880F991F820F931F67 +:1014F00020E044E0BE016F5F7F4F8F549E4F0E94FB +:10150000710B2DCC10918D01A0908F01B0909001A6 +:10151000AA0CBB1CAA0CBB1CC12CD12C59CC8FEF24 +:1015200089838A838B838C8320918B0130918C01FA +:1015300022503109C901880F991F820F931F20E0A3 +:1015400044E0BE016F5F7F4F8F549E4F0E94710B2E +:101550005ACC19821A821B821C8220918B013091F5 +:101560008C0122503109C901880F991F820F931FE6 +:1015700020E044E0BE016F5F7F4F8F549E4F0E947A +:10158000710B59CC2C960FB6F894DEBF0FBECDBFB1 +:10159000DF91CF911F910F91FF90EF90DF90CF904F +:1015A000BF90AF900895CF93DF93EC01862F6883AF +:1015B000498360E00E949B1460E089810E949B1433 +:1015C00060E088810E94D31460E08981DF91CF912F +:1015D0000C94D314683010F4685F01C06FE0FC0114 +:1015E0006283089561E0FC0181810E949B1482E383 +:1015F00090E00C947416CF93DF93EC0161E0898145 +:101600000E949B1482E390E00E94741660E088813F +:101610000E949B1482E390E00E94741660E089812E +:101620000E949B1482E390E0DF91CF910C9474169A +:101630000F931F93CF93DF93EC01062F18E061E027 +:1016400088810E949B1482E390E00E94741600FF40 +:1016500002C060E001C061E089810E949B1482E3C6 +:1016600090E00E94741660E088810E949B1482E3DF +:1016700090E00E9474160695115009F761E0888188 +:101680000E949B1460E089810E949B1482E390E099 +:101690000E94741660E088810E949B1482E390E0AF +:1016A0000E94741689810E940A15182F811104C0A6 +:1016B00061E089810E949B1482E390E00E9474168D +:1016C00061E088810E949B1482E390E00E9474167E +:1016D00081E0111101C080E0DF91CF911F910F9146 +:1016E0000895CF92DF92EF92FF920F931F93CF93C3 +:1016F000DF9300D0CDB7DEB76C01F62EE42E298340 +:101700007A830E94F20A60E4C6010E94180BC601A7 +:101710000E94FB0AC6010E94F20A2981622F6370AF +:101720006054C6010E94180B0F2D7A81172F06C036 +:10173000F80161918F01C6010E94180B802F8F194B +:101740008E15B0F3C6010E94FB0AC6010E94F20A80 +:10175000F60162816058C6010E94180BC6010F9005 +:101760000F90DF91CF911F910F91FF90EF90DF903D +:10177000CF900C94FB0A4F925F926F927F928F9260 +:101780009F92AF92BF92CF92DF92EF920F931F93EF +:10179000CF93DF9300D000D0CDB7DEB73C016B0113 +:1017A000322F202F8FE0A82E81E0B82E882483943A +:1017B000912C8C0E9D1EF40101E01FE3D5015E907B +:1017C0004E905D01C601B2010E942C1A611571058F +:1017D00061F4411106C0002321F08E2F8819833057 +:1017E00011F4108313C0108211C0DB01AF70BB274E +:1017F000A15FBE4F8C918083649DC001659D900D5B +:10180000749D900D1124C81AD90A00E0EE2039F019 +:101810008E2F8819813019F48081806880833196F9 +:10182000B7E0AB16B1E0BB0649F684E090E0831B5D +:101830009109BE016F5F7F4F680F791F432FC3016E +:101840000E94710B0F900F900F900F90DF91CF912E +:101850001F910F91EF90DF90CF90BF90AF909F902E +:101860008F907F906F905F904F9008956F70E62FEC +:10187000F0E0E15FFE4F80810895FC0181E09081FE +:10188000911101C080E008951F93CF93DF931F92C1 +:10189000CDB7DEB7162F84E092E049830E94A90FEE +:1018A0006CE470E084E092E00E94E20F612F84E03B +:1018B00092E00E94690F4981642F84E092E00E94C7 +:1018C000690F84E092E00F90DF91CF911F910C940B +:1018D000F70F462F67E00C94440C462F68E00C94F9 +:1018E000440CCF93DF93EC0160E00E94690C60E050 +:1018F000CE010E946D0C61E0CE01DF91CF910C947E +:10190000690C4F925F926F927F928F929F92AF92EB +:10191000BF92CF92DF92EF92FF920F931F93CF93DC +:10192000DF9300D01F92CDB7DEB75B016A0179016A +:1019300080E48B838A8389830E9412162B013C01E9 +:101940000DC00E9412166419750986099709653F32 +:1019500071408105910514F080E06EC084E092E052 +:101960000E94DE0E1816190664F384E092E00E94CD +:10197000E70E43E050E06CE470E084E092E00E9407 +:10198000D50F0E9412162B013C018E010F5F1F4FD5 +:1019900048012DC0C801881999090397D4F40E9401 +:1019A00012162B013C0111C084E092E00E94E70E68 +:1019B000F80180830E941216641975098609970937 +:1019C00063337105810591053CF6F801808180340F +:1019D00058F70E9412160F5F1F4F64197509860988 +:1019E0009709653F7140810591050CF0B5CF84E002 +:1019F00092E00E94DE0E892B69F69981892F880F6B +:101A0000880F95FD8D5F85958595F50180839A8179 +:101A1000892F880F880F95FD8D5F85958595F60137 +:101A200080839B81892F880F880F95FD8D5F859519 +:101A30008595F701808381E00F900F900F90DF91E3 +:101A4000CF911F910F91FF90EF90DF90CF90BF90BB +:101A5000AF909F908F907F906F905F904F90089580 +:101A6000CF93DF93EC01862F6E834F83288791E01D +:101A70009D8760E00E949B1461E08E810E94D314D8 +:101A800019861A861B861C86DF91CF910895DF92F6 +:101A9000EF92FF920F931F93CF93DF93EC0161E0DE +:101AA0008E810E94D3146AEF70E080E090E00E9483 +:101AB0004E160E94121609851A852B853C856017E3 +:101AC00071078207930720F419861A861B861C86E5 +:101AD0002D85211111C009851A852B853C85DC01D6 +:101AE000CB01801B910BA20BB30B803D9740A1054E +:101AF000B10510F481E073C01D860E94121669873B +:101B00007A878B879C871C821B821A821982188293 +:101B100061E08E810E949B1460E08E810E94D3144C +:101B200064E170E080E090E00E944E16F89461E07D +:101B30008E810E94D31488E290E00E94741660E0C7 +:101B40008E810E949B14F12CD12C81E009C0E3947A +:101B500081E090E00E9474168FEFE81204C009C083 +:101B6000E12C082F10E08E810E940A158017910742 +:101B700071F38E810E940A159FEFE916C9F023E0E8 +:101B80002F1590F4F0FC10C09D2D96959695969586 +:101B9000FE01E90FF11D9081990F908328852E1584 +:101BA00010F491609083D394F39495E5F912D8CF13 +:101BB000789427E22D1590F42C8130E048818981BA +:101BC00090E0840F911D4A81840F911D4B81840FF9 +:101BD000911D99272817390709F48CCF80E0DF91F0 +:101BE000CF911F910F91FF90EF90DF900895EF92AA +:101BF000FF920F931F93CF93DF93EC010E94470D49 +:101C0000882391F18F818B3029F070F185518230DA +:101C100058F507C0688170E080E090E00E943019BC +:101C20002DC0688170E080E090E00E94301920E0D3 +:101C300030E040E853E40E94BE197B018C016981C9 +:101C400070E080E090E00E9432199B01AC016E2DA3 +:101C50007F2D802F912F0E94641820E030E040E219 +:101C600051E40E94C8180AC06FE171E082E395E078 +:101C70000E94F11660E070E080EC9FE7DF91CF9169 +:101C80001F910F91FF90EF900895CF92DF92EF9206 +:101C9000FF920F931F93CF93DF938C01C62F0E9467 +:101CA000470D882309F477C0F80187818B3039F01C +:101CB00008F471C08551823008F06DC01DC0F80174 +:101CC000628170E080E090E00E943019B62FA72F6B +:101CD000F82FE92F462F572F682F792FCB01BA0104 +:101CE000CC2309F462C020E030E040E151E46B2FE6 +:101CF0007A2F8F2F9E2F37C0F801D2816D2F6F77EB +:101D000070E080E090E00E94321920E030E040E88E +:101D100053E40E94BE196B017C01F801638170E0FD +:101D200080E090E00E9432199B01AC016C2D7D2D6A +:101D30008E2D9F2D0E94641820E030E040E251E497 +:101D40000E94C818472F382F292F862F942FA32F92 +:101D5000B22FBC01CD01D7FD9058CC2331F120E04A +:101D600030E040E151E40E94BE1920E030E040EA5A +:101D700050E40E94C81820E030E040E052E40E94A5 +:101D80006418472F382F292F862F942FA32FB22F77 +:101D9000BC01CD010AC06FE171E082E395E00E94D1 +:101DA000F11660E070E080EC9FE7DF91CF911F912A +:101DB0000F91FF90EF90DF90CF900895209138021F +:101DC00030E080913902281B3109C90108958091C2 +:101DD000390290913802891750F4E82FF0E0E65C60 +:101DE000FD4F208130E08F5F8093390202C02FEFDA +:101DF0003FEFC9010895E091390280913802E81758 +:101E000030F4F0E0E65CFD4F208130E002C02FEFBF +:101E10003FEFC90108950895E0911002F091110279 +:101E20003097E1F030913902209138023217B0F04A +:101E300040E009C0DC01A20FB31F5C91D901A65C90 +:101E4000BD4F5C934F5F242F30E02617370794F384 +:101E50001092390260933802CB0109940895E09101 +:101E60001202F0911302309729F01092160210928C +:101E7000150209940895CF92DF92EF92FF920F938B +:101E80001F93CF93DF937C01CB018A012091140231 +:101E9000222391F0EB016B01C40ED51E09C069919C +:101EA000D701ED91FC910190F081E02DC7010995DA +:101EB000CC15DD05A1F703C0642F0E94C210C80134 +:101EC000DF91CF911F910F91FF90EF90DF90CF9016 +:101ED0000895CF93DF931F92CDB7DEB7698320912A +:101EE00014022223D1F020911502203240F021E08B +:101EF00030E0FC013383228320E030E015C0809184 +:101F00001602E82FF0E0E95EFD4F998190838F5F24 +:101F1000809316028093150205C061E0CE01019600 +:101F20000E94C21021E030E0C9010F90DF91CF91F3 +:101F30000895FC011382128248EE53E060E070E0E5 +:101F400044835583668377838DE291E09183808318 +:101F500008951092390210923802109216021092CF +:101F600015020C940810CF93DF93EC01862F0E948A +:101F700026108FE29FE00E94E0108CE09FE00E941C +:101F8000DB10CE01DF91CF910C94A90F0C94B30F0D +:101F9000862F413208F040E26AE372E00E942A1084 +:101FA0001092390280933802089521E00C94C80FF2 +:101FB00081E080931402609337021092160210920F +:101FC000150208950C94D80F0F93062F21E040912D +:101FD000150267E172E0809137020E946F10109243 +:101FE000160210921502109214020F91089561E0EA +:101FF0000C94E40F70931102609310020895709393 +:10200000130260931202089584E092E00C94990FF9 +:102010001092630281E0809361021092600261E09D +:1020200082E10E94D31461E083E10E94D314E9EBC2 +:10203000F0E080818E7F808380818D7F808388E443 +:102040008093B80085E48093BC000895880F809346 +:10205000BA000895413208F03FC090916302911197 +:10206000FCCF91E090936302209361022FEF2093C5 +:102070005A0210925F02242F215020935E02909307 +:10208000620290916202880F892B80936202809194 +:102090006002813041F4109260028091620280936C +:1020A000BB0085EC01C085EE8093BC00809163028B +:1020B0008130E1F380915F02841710F440915F0258 +:1020C00024E632E0FB01D90102C08D9181938A2F71 +:1020D000821B8417D0F301C040E0842F08950F9332 +:1020E000413208F046C0909163029111FCCF92E01A +:1020F00090936302009361029FEF90935A021092B3 +:102100005F0240935E02FB0164E672E0DB0102C005 +:1021100091919D939A2F961B9417D0F3109262027F +:1021200090916202880F892B8093620280916002F5 +:10213000813041F410926002809162028093BB0072 +:1021400085EC01C085EE8093BC00222321F08091B4 +:1021500063028230E1F380915A028F3F61F08091F7 +:102160005A02803251F080915A02803341F483E068 +:1021700007C081E005C080E003C082E001C084E0C8 +:102180000F910895613298F420916302243089F40C +:1021900060935C02FC0184E892E0DC0102C02191C2 +:1021A0002D932A2F281B2617D0F380E0089581E075 +:1021B000089582E008959093A5028093A402089563 +:1021C0009093A7028093A602089585ED8093BC00AA +:1021D0008091BC0084FDFCCF10926302089585ECD1 +:1021E0008093BC001092630208951F920F920FB665 +:1021F0000F9211242F933F934F935F936F937F938D +:102200008F939F93AF93BF93EF93FF938091B90008 +:10221000887F803609F49FC058F5883209F45BC086 +:1022200090F4803109F452C038F4882309F4F8C0DE +:10223000883009F0F9C04AC0883109F44CC08032B6 +:1022400009F0F2C05CC0803409F46BC038F480330C +:1022500009F455C0883309F0E7C054C0803509F44B +:1022600054C0883509F462C0883409F0DDC0DAC092 +:10227000883909F4CBC0A8F4883709F46CC038F465 +:10228000883609F468C0803709F0CEC064C0883849 +:1022900009F4BCC0803909F464C0803809F0C4C0B6 +:1022A00060C0803B09F48AC038F4803A09F46BC0FE +:1022B000883A09F0B9C082C0803C09F4ABC0883CC0 +:1022C00009F4A8C0883B09F0AFC08DC080916202BC +:1022D0008093BB0012C090915F0280915E029817BC +:1022E00088F580915F02E82FF0E0EC59FD4F908176 +:1022F0009093BB008F5F80935F0285EC88C08093D2 +:102300005A0290C080935A0256C080915F02909109 +:10231000BB00E82FF0E0EC59FD4F90838F5F809376 +:102320005F0290915F0280915E026DC080915F02BA +:102330009091BB00E82FF0E0EC59FD4F90838F5F48 +:1023400080935F028091610281116CC081E0809373 +:10235000600284EA60C083E08093630210925B02B3 +:10236000CCCF80915B02803208F050C080915B023C +:102370009091BB00E82FF0E0E855FD4F90838F5F10 +:1023800080935B02BACF80915B02803230F4E0919F +:102390005B02F0E0E855FD4F10820E94E51060916D +:1023A0005B02E091A402F091A50270E088EA92E05D +:1023B000099510925B020E94EF1036C084E0809372 +:1023C000630210925D0210925C02E091A602F0910D +:1023D000A702099580915C02811105C081E080937C +:1023E0005C021092840280915D02E82FF0E0EC57CD +:1023F000FD4F90819093BB008F5F80935D02909121 +:102400005D0280915C02981708F477CF85E880938D +:10241000BC000AC085EC8093BC001092630204C02B +:1024200010925A020E94E510FF91EF91BF91AF9177 +:102430009F918F917F916F915F914F913F912F91DC +:102440000F900FBE0F901F901895F89482E0809324 +:10245000B0008093B10094E69093B3001092B20064 +:102460008093700078948093CD021092280580911B +:10247000CC0260E00C949B146093CC020E94251265 +:1024800064E170E080E090E00E944E1682E080936C +:10249000CD021092280508951F920F920FB60F9249 +:1024A00011242F933F934F935F936F937F938F9359 +:1024B0009F93AF93BF93EF93FF938091CC020E94C1 +:1024C0000A152091CE023091CF022F5F3F4F3093FB +:1024D000CF022093CE02909128059091CD029330A7 +:1024E000C1F020F4923009F058C006C0943059F180 +:1024F000953009F052C04BC081114FC08091CE027F +:102500009091CF028436910508F443C010922805BB +:102510001CC0813009F041C020912805E22FF0E075 +:102520008091CE029091CF02EE0FFF1FE053FD4F3E +:10253000918380832F5F209328051092CF02109201 +:10254000CE0284E021C0811117C020912805E22F1E +:10255000F0E08091CE029091CF02EE0FFF1FE0538A +:10256000FD4F918380832F5F209328051092CF0227 +:102570001092CE0283E008C08091CE029091CF02EB +:102580008536910550F085E08093CD0206C081111B +:1025900004C01092CF021092CE02FF91EF91BF9132 +:1025A000AF919F918F917F916F915F914F913F91EB +:1025B0002F910F900FBE0F901F901895FB0180ED8B +:1025C00092E0918380838091280582831382809199 +:1025D000CD02853041F482E08093CD02109228052F +:1025E00021E030E002C020E030E0C90108954F92C0 +:1025F0005F927F928F929F92AF92BF92CF92DF9223 +:10260000EF92FF920F931F93CF93DF932C01FB0167 +:10261000DC0112962D913C9113974901B4E08B1A7D +:10262000910897FE04C04901CBE08C0E911CA4E0F8 +:1026300095948794AA95E1F7D2010D911C9140E001 +:1026400050E080E090E07801B6E0EB0EF11CD7019D +:10265000A40FB51F6D917C91860F971F4C5F5F4F44 +:1026600048325105A1F76AE070E00E942C1A7B0104 +:102670005B01AA0CBB1CD801189640E050E060E05A +:1026800070E080E090E089010950110901C0A901C2 +:102690002D913C911197A216B30638F42D913C91DF +:1026A0001197820F931F6F5F7F4F6A30710549F05A +:1026B00014969A012E5F3F4F4A5F5F4F40175107B4 +:1026C00034F30E942C1A762EDF01169648E050E073 +:1026D00020E030E0CC24C394D12C2EC01C928A017F +:1026E00087E090E0E20168817981600F711FEB0162 +:1026F00068817981A616B70648F4B601082E01C094 +:10270000660F0A94EAF77C91762B09C0B601082E71 +:1027100001C0660F0A94EAF760957C9176237C935A +:1027200001970C5F1F4F8F3FDFEF9D07D9F62F5F9B +:102730003F4F1196405E5F4F281539057CF2882D7A +:102740008B5F8083E201A881B98112968D919C9163 +:1027500013978183A881B98114968D919C911597C7 +:102760008283E3827482858282E08093CD0210921C +:10277000280580818F5FDF91CF911F910F91FF908E +:10278000EF90DF90CF90BF90AF909F908F907F9011 +:102790005F904F900895CF93DF93EC01BC010E94AE +:1027A000DE12892BC1F08A819B818034910534F03F +:1027B00004979C0127703327232B31F082E080930C +:1027C000CD021092280507C0B4E095958795BA957B +:1027D000E1F78A5F01C080E0DF91CF9108958E30EC +:1027E00008F08E5087702091060140E4249F9001EC +:1027F0001124822B80937C0080917A0080648093E6 +:102800007A0080917A0086FDFCCF2091780030918B +:102810007900932F80E0AC01422B9A01C901089501 +:102820001F93CF93DF93182FEB0161E00E949B145D +:10283000209711F460E004C0CF3FD10539F461E086 +:10284000812FDF91CF911F910C94D314E12FF0E0F1 +:10285000E859FF4FE491E330B9F028F4E13051F04A +:10286000E230B1F50CC0E63019F1E73049F1E4305F +:1028700079F514C084B5806884BDC7BD2EC084B509 +:10288000806284BDC8BD29C080918000806880932B +:102890008000D0938900C09388001FC08091800081 +:1028A000806280938000D0938B00C0938A0015C013 +:1028B0008091B00080688093B000C093B3000DC0D9 +:1028C0008091B00080628093B000C093B40005C0D6 +:1028D000C038D1050CF0B3CFADCFDF91CF911F91B0 +:1028E0000895833069F028F48130A1F0823011F529 +:1028F00014C08630B1F08730C1F08430D9F404C000 +:10290000809180008F7703C0809180008F7D8093BD +:102910008000089584B58F7702C084B58F7D84BD13 +:1029200008958091B0008F7703C08091B0008F7DB3 +:102930008093B0000895CF93DF9390E0FC01E458BA +:10294000FF4F4491FC01E057FF4F8491882341F1F0 +:1029500090E0880F991FFC01E854FF4F25913491B6 +:10296000D90182559F4FFC0185919491C82FD92F91 +:102970009FB7F8948C91611106C0409584238C9385 +:102980008881842308C0623041F4242F209582235B +:102990008C938881842B888302C0842B8C939FBF67 +:1029A000DF91CF9108950F931F93CF93DF931F92E1 +:1029B000CDB7DEB7282F30E0F901E859FF4F8491F9 +:1029C000F901E458FF4F1491F901E057FF4F0491CA +:1029D0000023D1F0882321F069830E94711469815A +:1029E000E02FF0E0EE0FFF1FE255FF4F859194912D +:1029F000DC019FB7F8948C91611103C0109581237D +:102A000001C0812B8C939FBF0F90DF91CF911F91BD +:102A10000F910895CF93DF93282F30E0F901E85903 +:102A2000FF4F8491F901E458FF4FD491F901E05729 +:102A3000FF4FC491CC2389F081110E947114EC2FB7 +:102A4000F0E0EE0FFF1FEC55FF4F85919491DC01F4 +:102A50008C918D2321E030E011F420E030E0C901B9 +:102A6000DF91CF9108958F929F92AF92BF92CF92B4 +:102A7000DF92EF92FF920F931F93CF93DF9390E03B +:102A8000FC01E458FF4FD491FC01E057FF4F7491D3 +:102A9000611102C0C0E001C0CD2FDA01C901BF70D1 +:102AA000672F70E0660F771F6C557F4F812C912C3C +:102AB0005401FB010591149110C0C12CD12C760159 +:102AC000C394C80CD91CEA1CFB1C88169906AA06DC +:102AD000BB0609F44BC046015701F801E081ED2324 +:102AE000EC1759F310C0C12CD12C7601C394C80C3B +:102AF000D91CEA1CFB1C88169906AA06BB06B1F174 +:102B00004601570103C0FB0105911491F801E081D2 +:102B1000ED23EC13E8CF88199909AA09BB0920E035 +:102B200030E0A901FB016591749109C028173907AC +:102B30004A075B07D9F02F5F3F4F4F4F5F4FFB01B5 +:102B4000E081ED23EC1791F3A5E1B0E00E94211A9A +:102B50008B019C01005F1F4F2F4F3F4F84E0369544 +:102B60002795179507958A95D1F703C000E010E0E7 +:102B70009801B801C901DF91CF911F910F91FF908A +:102B8000EF90DF90CF90BF90AF909F908F9008957F +:102B90001F920F920FB60F9211242F933F938F9392 +:102BA0009F93AF93BF938091290590912A05A0919F +:102BB0002B05B0912C0530913105232F2D5F2D373A +:102BC00020F40196A11DB11D05C0232F2A5702969E +:102BD000A11DB11D209331058093290590932A05ED +:102BE000A0932B05B0932C0580912D0590912E0577 +:102BF000A0912F05B09130050196A11DB11D8093C4 +:102C00002D0590932E05A0932F05B0933005BF910D +:102C1000AF919F918F913F912F910F900FBE0F9089 +:102C20001F9018950F931F938FB7F8940091290563 +:102C300010912A0520912B0530912C058FBFB801EA +:102C4000C9011F910F9108950F931F939FB7F89497 +:102C500000912D0510912E0520912F053091300502 +:102C600086B5A89B06C08F3F21F00F5F1F4F2F4FE7 +:102C70003F4F9FBF322F212F102F0027080F111D0C +:102C8000211D311D42E0000F111F221F331F4A95E5 +:102C9000D1F7B801C9011F910F910895CF92DF922A +:102CA000EF92FF92CF93DF936B017C010E94241679 +:102CB000EB010EC00E9424166C1B7D0B683E734016 +:102CC00038F081E0C81AD108E108F108C851DC4F9A +:102CD000C114D104E104F10469F7DF91CF91FF90B1 +:102CE000EF90DF90CF900895019739F0880F991FEA +:102CF000880F991F02970197F1F70895789484B58A +:102D0000826084BD84B5816084BD85B5826085BDE7 +:102D100085B5816085BDEEE6F0E0808181608083CD +:102D2000E1E8F0E0108280818260808380818160B0 +:102D30008083E0E8F0E0808181608083E1EBF0E077 +:102D4000808184608083E0EBF0E08081816080831B +:102D5000EAE7F0E080818460808380818260808304 +:102D60008081816080838081806880831092C1002F +:102D70000895CF92DF92EF92FF920F931F93CF931C +:102D8000DF936C01EB017A01E60EF71E00E010E024 +:102D90000BC06991D601ED91FC910190F081E02D7D +:102DA000C6010995080F191FCE15DF0591F7C80157 +:102DB000DF91CF911F910F91FF90EF90DF90CF9017 +:102DC0000895DB010D900020E9F7AD014150510954 +:102DD000461B570BDC01ED91FC910280F381E02D45 +:102DE00009940C94E1160E947E160E949103CFEC88 +:102DF000D7E10E94A3032097E1F30E94CF17F9CFF8 +:102E0000FC0184859585FC01E05CFF4F20813181C8 +:102E1000FC01EE5BFF4F80819181281B390B2F73E2 +:102E20003327C9010895FC0184859585FC01E05C88 +:102E3000FF4F40815181FC01EE5BFF4F20813181CA +:102E40004217530741F00190F081E02DE80FF91F80 +:102E5000208130E002C02FEF3FEFC9010895FC014F +:102E600084859585FC01E05CFF4F40815181FC0128 +:102E7000EE5BFF4F208131814217530781F0A08123 +:102E8000B181A80FB91F8C91208131812F5F3F4FF5 +:102E90002F73332731832083282F30E002C02FEF98 +:102EA0003FEFC9010895FC0186859785FC01E05C30 +:102EB000FF4FDC01AE5BBF4F408151812D913C91B2 +:102EC000119742175307C1F70895CF93DF93FC0181 +:102ED00086859785DC01A05CBF4F2D913C911197B1 +:102EE0002F5F3F4F2F733327EC01CE5BDF4F4881BD +:102EF000598124173507D9F30D90BC91A02DA80F47 +:102F0000B91F6C93A685B785A05CBF4F11963C9303 +:102F10002E93A689B7892C9181E090E0058C02C0A0 +:102F2000880F991F0A94E2F7282B2C9381E090E0F8 +:102F3000DF91CF91089508951F920F920FB60F92CF +:102F400011242F933F934F938F939F93EF93FF936E +:102F50004091C6008091D5059091D60501968F735A +:102F600099272091D7053091D8058217930759F0FA +:102F7000E091D505F091D605EB56FA4F408390933A +:102F8000D6058093D505FF91EF919F918F914F9139 +:102F90003F912F910F900FBE0F901F90189582E3D5 +:102FA00095E00E940017892B11F00C949B1708954F +:102FB0001F920F920FB60F9211242F933F938F936E +:102FC0009F93EF93FF93209191053091920580910B +:102FD0009305909194052817390731F48091C10029 +:102FE0008F7D8093C10014C0E0919305F09194050A +:102FF000EF5AFA4F208180919305909194050196A4 +:103000008F73992790939405809393052093C6001E +:10301000FF91EF919F918F913F912F910F900FBE54 +:103020000F901F901895109235051092340588EE78 +:1030300093E0A0E0B0E08093360590933705A0932D +:103040003805B09339058DE391E090933305809373 +:10305000320585E995E090933F0580933E0581E533 +:1030600095E0909341058093400585EC90E0909326 +:1030700043058093420584EC90E09093450580934E +:10308000440580EC90E0909347058093460581ECE1 +:1030900090E0909349058093480586EC90E09093EA +:1030A0004B0580934A0584E080934C0583E0809330 +:1030B0004D0587E080934E0585E080934F0581E0C4 +:1030C0008093500508955058BB27AA270ED01CC1E5 +:1030D0000DD130F012D120F031F49F3F11F41EF4E5 +:1030E00002C10EF4E095E7FBF8C0E92F1ED180F392 +:1030F000BA17620773078407950718F071F49EF5F5 +:1031000036C10EF4E0950B2EBA2FA02D0B01B9019C +:1031100090010C01CA01A0011124FF27591B99F04D +:10312000593F50F4503E68F11A16F040A22F232F59 +:10313000342F4427585FF3CF469537952795A795A9 +:10314000F0405395C9F77EF41F16BA0B620B730B50 +:10315000840BBAF09150A1F0FF0FBB1F661F771FC1 +:10316000881FC2F70EC0BA0F621F731F841F48F476 +:10317000879577956795B795F7959E3F08F0B3CFFC +:103180009395880F08F09927EE0F979587950895E6 +:103190000CD0BAC0B2D040F0A9D030F021F45F3FDB +:1031A00019F09BC05111E4C09EC0BFD098F3992381 +:1031B000C9F35523B1F3951B550BBB27AA276217FB +:1031C0007307840738F09F5F5F4F220F331F441F40 +:1031D000AA1FA9F333D00E2E3AF0E0E830D0915078 +:1031E0005040E695001CCAF729D0FE2F27D0660F65 +:1031F000771F881FBB1F261737074807AB07B0E8A4 +:1032000009F0BB0B802DBF01FF2793585F4F2AF0B9 +:103210009E3F510568F061C0ABC05F3FECF3983E44 +:10322000DCF3869577956795B795F7959F5FC9F716 +:10323000880F911D9695879597F90895E1E0660F9F +:10324000771F881FBB1F621773078407BA0720F018 +:10325000621B730B840BBA0BEE1F88F7E095089581 +:10326000E89409C097FB3EF4909580957095619520 +:103270007F4F8F4F9F4F9923A9F0F92F96E9BB27D6 +:103280009395F695879577956795B795F111F8CF52 +:10329000FAF4BB0F11F460FF1BC06F5F7F4F8F4FBD +:1032A0009F4F16C0882311F096E911C0772321F0B3 +:1032B0009EE8872F762F05C0662371F096E8862F4B +:1032C00070E060E02AF09A95660F771F881FDAF7A2 +:1032D000880F9695879597F9089597F99F6780E8E5 +:1032E00070E060E008959FEF80EC089500240A9458 +:1032F0001616170618060906089500240A941216D1 +:103300001306140605060895092E0394000C11F403 +:10331000882352F0BB0F40F4BF2B11F460FF04C0B0 +:103320006F5F7F4F8F4F9F4F089557FD9058440F09 +:10333000551F59F05F3F71F04795880F97FB991F14 +:1033400061F09F3F79F087950895121613061406D1 +:10335000551FF2CF4695F1DF08C01616170618065E +:10336000991FF1CF86957105610508940895E89439 +:10337000BB2766277727CB0197F908950BD0C4CFD9 +:10338000B5DF28F0BADF18F0952309F0A6CFABCF50 +:103390001124EECFCADFA0F3959FD1F3950F50E033 +:1033A000551F629FF001729FBB27F00DB11D639FF7 +:1033B000AA27F00DB11DAA1F649F6627B00DA11D9D +:1033C000661F829F2227B00DA11D621F739FB00D43 +:1033D000A11D621F839FA00D611D221F749F3327B3 +:1033E000A00D611D231F849F600D211D822F762F4C +:1033F0006A2F11249F5750408AF0E1F088234AF049 +:10340000EE0FFF1FBB1F661F771F881F9150504094 +:10341000A9F79E3F510570F060CFAACF5F3FECF354 +:10342000983EDCF3869577956795B795F795E79580 +:103430009F5FC1F7FE2B880F911D9695879597F991 +:1034400008950E947E1AA59F900DB49F900DA49F91 +:10345000800D911D1124089597FB072E16F40094FA +:1034600007D077FD09D00E948A1A07FC05D03EF4E8 +:10347000909581959F4F0895709561957F4F089520 +:10348000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F68 +:10349000EE1FFF1FA217B307E407F50720F0A21BDA +:1034A000B30BE40BF50B661F771F881F991F1A9447 +:1034B00069F760957095809590959B01AC01BD0171 +:1034C000CF010895052E97FB16F4009407D057FD01 +:1034D0000DD00E94401A07FC09D07EF4909580958B +:1034E000709561957F4F8F4F9F4F089550954095F0 +:1034F000309521953F4F4F4F5F4F0895A29FB001E8 +:10350000B39FC001A39F01D0B29F700D811D1124F4 +:10351000911D0895AA1BBB1B51E107C0AA1FBB1F29 +:10352000A617B70710F0A61BB70B881F991F5A954F +:10353000A9F780959095BC01CD010895EE0FFF1F6E +:103540000590F491E02D09940F931F93CF93DF938F +:10355000689F8001699F100D789F100D1124C8018C +:103560000E94C21AC82FD92F209731F0A80160E01D +:1035700070E08C2F0E94F91BCE01DF91CF911F913B +:103580000F9108950F931F93CF93DF93823091058E +:1035900010F482E090E0E091DB05F091DC0520E0A2 +:1035A00030E0C0E0D0E023C0408151814817590786 +:1035B000A8F04817590761F482819381209719F088 +:1035C0009B838A832EC09093DC058093DB0529C002 +:1035D0002115310529F04217530710F0A90102C047 +:1035E000BE01DF0102811381EF019A01F8013097DA +:1035F000D9F62115310509F1281B390B2430310585 +:1036000090F412968D919C9113976115710521F09C +:10361000FB019383828304C09093DC058093DB05D8 +:10362000FD01329644C0FD01E20FF31F8193919397 +:10363000225031092D933C933AC02091D905309105 +:10364000DA05232B41F420910201309103013093DC +:10365000DA052093D905209100013091010121154F +:10366000310541F42DB73EB7409104015091050159 +:10367000241B350BE091D905F091DA05E217F30729 +:10368000A0F42E1B3F0B2817390778F0AC014E5FD2 +:103690005F4F2417350748F04E0F5F1F5093DA0530 +:1036A0004093D9058193919302C0E0E0F0E0CF010F +:1036B000DF91CF911F910F910895EF92FF920F9399 +:1036C0001F93CF93DF93009709F48EC0DC0112970C +:1036D00013961C921E921297E090DB05F090DC0589 +:1036E000E114F10489F42D913C911197280F391FB1 +:1036F0008091D9059091DA058217930789F5B093E7 +:10370000DA05A093D90570C0E70120E030E001C0E0 +:10371000EA01CA17DB0738F44A815B819E01411533 +:103720005105B1F722C0AC0142505109FA01D383CF +:10373000C28300811181BC01600F711F6C177D076E +:1037400061F468817981600F711F6E5F7F4F7183B3 +:1037500060836A817B81738362832115310529F43B +:10376000B093DC05A093DB053FC0F901B383A283CE +:10377000E90149915991C40FD51FAC17BD0771F4E8 +:10378000DC019E918E91840F951F02969183808318 +:1037900012968D919C91139793838283A0E0B0E061 +:1037A00002C0D7017C01F701828193810097C9F79C +:1037B000C701029620813181820F931F2091D90584 +:1037C0003091DA052817390779F4109729F4109207 +:1037D000DC051092DB0504C013961C921E92129712 +:1037E000F092DA05E092D905CDB7DEB7E6E00C94A9 +:1037F0000C1CDC0101C06D9341505040E0F708956E +:103800002A88398848885F846E847D848C849B8470 +:10381000AA84B984C884DF80EE80FD800C811B817E +:10382000AA81B981CE0FD11D0FB6F894DEBF0FBEAD +:0A383000CDBFED010895F894FFCF1D +:10383A000000DD0520000101000A006400E8033FE2 +:10384A00065B4F666D7D077F6F777C395E797152B3 +:10385A00656164206661696C0000000000690F3BC5 +:10386A000FDE0EE70EFB0E0B0F000000006517B906 +:0A387A001600172F1713175317003D +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_4.cpp.hex b/Firmware/Archive/grove_pi_v1_2_4.cpp.hex new file mode 100644 index 0000000..1bc9d6d --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_4.cpp.hex @@ -0,0 +1,1083 @@ +:100000000C94A5000C9405190C9432190C94CD0095 +:100010000C94CD000C94BB130C94CD000C94A6044E +:100020000C94CD000C94CD000C94CD000C94CD001C +:100030000C94CD000C94CF000C94CD000C94CD000A +:100040000C944F170C94CD000C943F1B0C947B1B0D +:100050000C94CD000C94CD000C94CD000C94CD00EC +:100060000C941F160C94CD0007634236B79BD8A79B +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900008000000BE922449123EABAAAA2ABECD97 +:1000A000CCCC4C3E00000080BEABAAAAAA3E000009 +:1000B0000000BF000000803F000000000008417801 +:1000C000D3BB4387D1133D190E3CC3BD4282AD2B38 +:1000D0003E68EC8276BED98FE1A93E4C80EFFFBE30 +:1000E00001C4FF7F3F000000000000000007000285 +:1000F00001000003040600000000000000000102EF +:1001000004081020408001020408102001020408A5 +:100110001020040404040404040402020202020283 +:10012000030303030303000000002300260029004B +:1001300000000000250028002B0000000000240023 +:1001400027002A0004142E15B61B11241FBECFEF62 +:10015000D8E0DEBFCDBF11E0A0E0B1E0EAE3F3E418 +:1001600002C005900D92A235B107D9F716E0A2E5BD +:10017000B1E001C01D92AF31B107E1F711E0CAE46F +:10018000D1E004C02297FE010E942020C434D10790 +:10019000C9F70E94401C0C949B210C9400001F92F4 +:1001A0000F920FB60F9211242F933F934F935F93AB +:1001B0006F937F938F939F93AF93BF93EF93FF932F +:1001C000E0915601F09157010995FF91EF91BF9190 +:1001D000AF919F918F917F916F915F914F913F91DF +:1001E0002F910F900FBE0F901F901895FC01A3E068 +:1001F000440F551F661F771FAA95D1F7411551056A +:1002000081E06807710514F481E00EC033E0759554 +:100210006795579547953A95D1F74115510581E076 +:10022000680771051CF482E0828332C023E0759573 +:100230006795579547952A95D1F74115510581E066 +:100240006807710514F483E0EFCF92E07595679528 +:10025000579547959A95D1F74115510581E0680763 +:10026000710514F484E0E0CF82E0759567955795A9 +:1002700047958A95D1F785E082834115510581E044 +:10028000680771050CF404C04FEF5FEF60E070E0A9 +:100290008FB78383F89451834083509387004093B2 +:1002A000860083818FBF80918100887F8093810049 +:1002B000809181009281892B809381000895109212 +:1002C000800020E1209381000C94F600E1E8F0E04A +:1002D0002081DC0112968C91282B208308950F93A6 +:1002E0001F93CF93DF93EC018B01BA01A901141680 +:1002F00015061606170614F40E94F6001D830C83DB +:1003000081E080936F00CE01DF91CF911F910F911B +:100310000C946601CF93DF93EC01862F68834983A9 +:1003200060E00E94891960E089810E94891960E07B +:1003300088810E94C11960E08981DF91CF910C947E +:10034000C119683010F4685F01C06FE0FC0162837E +:10035000089561E0FC0181810E94891982E390E0A7 +:100360000C94FB17CF93DF93EC0161E089810E942D +:10037000891982E390E00E94FB1760E088810E9467 +:10038000891982E390E00E94FB1760E089810E9456 +:10039000891982E390E0DF91CF910C94FB170F93C2 +:1003A0001F93CF93DF93EC01062F18E061E0888163 +:1003B0000E94891982E390E00E94FB1700FF02C0AF +:1003C00060E001C061E089810E94891982E390E0C8 +:1003D0000E94FB1760E088810E94891982E390E007 +:1003E0000E94FB170695115009F761E088810E9471 +:1003F000891960E089810E94891982E390E00E9456 +:10040000FB1760E088810E94891982E390E00E94D6 +:10041000FB1789810E94F819182F811104C061E02F +:1004200089810E94891982E390E00E94FB1761E0B4 +:1004300088810E94891982E390E00E94FB1781E085 +:10044000111101C080E0DF91CF911F910F910895AC +:10045000CF92DF92EF92FF920F931F93CF93DF9390 +:1004600000D0CDB7DEB76C01F62EE42E29837A8357 +:100470000E94A90160E4C6010E94CF01C6010E944A +:10048000B201C6010E94A9012981622F63706054E4 +:10049000C6010E94CF010F2D7A81172F06C0F801E7 +:1004A00061918F01C6010E94CF01802F8F198E1597 +:1004B000B0F3C6010E94B201C6010E94A901F60173 +:1004C00062816058C6010E94CF01C6010F900F9053 +:1004D000DF91CF911F910F91FF90EF90DF90CF9020 +:1004E0000C94B2014F925F926F927F928F929F9283 +:1004F000AF92BF92CF92DF92EF920F931F93CF9361 +:10050000DF9300D000D0CDB7DEB73C016B01322FB6 +:10051000202F87E1A82E81E0B82E88248394912C87 +:100520008C0E9D1EF40101E01FE3D5015E904E90FC +:100530005D01C601B2010E94AC1F6115710561F435 +:10054000411106C0002321F08E2F8819833011F449 +:10055000108313C0108211C0DB01AF70BB27A95EEE +:10056000BE4F8C918083649DC001659D900D749DEC +:10057000900D1124C81AD90A00E0EE2039F08E2F10 +:100580008819813019F48081806880833196BFE0BA +:10059000AB16B1E0BB0649F684E090E0831B9109FD +:1005A000BE016F5F7F4F680F791F432FC3010E9409 +:1005B00028020F900F900F900F90DF91CF911F9115 +:1005C0000F91EF90DF90CF90BF90AF909F908F9062 +:1005D0007F906F905F904F9008956F70E62FF0E0DE +:1005E000E95EFE4F80810895FC0181E090819111C8 +:1005F00001C080E00895CF93DF93EC01862F6883DC +:1006000019824A831B822C831E821D8261E00E9414 +:10061000891961E08A81DF91CF910C9489191F9328 +:10062000CF93DF93EC0160E08A810E94C1198AE0D8 +:1006300090E00E94FB1714E061E08A810E94C119DA +:1006400060E08A810E94C1191150B1F7DF91CF910A +:100650001F910895FF920F931F93CF93DF93EC01A7 +:100660008B0190E1F92E612F661F6627661F8A8134 +:100670000E94C11988810E94F81961E0892B09F054 +:1006800060E088810E94C119000F111FFA9459F788 +:10069000DF91CF911F910F91FF900895EF92FF92FC +:1006A0000F931F93CF93DF93EC017B01CB019370EA +:1006B0009E838D8360E070E0CE010E942A0300E0FB +:1006C00010E08C81882351F0C701002E02C0880FF2 +:1006D000991F0A94E2F791FF0DC009C0C701002ECF +:1006E00002C0969587950A94E2F780FF03C06FEFEA +:1006F00070E002C060E070E0CE010E942A030F5F4C +:100700001F4F0A301105E9F660E070E0CE010E944B +:100710002A0360E070E0CE010E942A03CE01DF913F +:10072000CF911F910F91FF90EF900C940F036623D0 +:1007300021F06B3018F06AE001C061E0262F2150F3 +:1007400061E070E002C0660F771F2A95E2F7FC01B6 +:100750002581368162277327768365830C944E0347 +:10076000662321F06B3018F06AE001C061E0562F7B +:100770005150FC012581368161E070E002C0660FB6 +:10078000771F5A95E2F7442319F0622B732B04C0AC +:100790006095709562237323FC01768365830C94C6 +:1007A0004E036B3008F06AE02FEF3FEF02C0220FDC +:1007B000331F6A95E2F720953095FC013683258337 +:1007C000B9010C944E03FC016483658176810C941D +:1007D0004E03FC01858196810895FC0181E0208112 +:1007E0003181232B09F480E0089583EA94E00C948E +:1007F000D314CF93DF93EC0168E670E083EA94E0D2 +:100800000E940C1560E083EA94E00E94931483EA4E +:1008100094E00E94211547E050E068E670E083EA2A +:1008200094E00E94FF1483EA94E00E941114382F90 +:100830003695369536953E70232F220F220F230FC3 +:100840008F709927280F288383EA94E00E9411145F +:10085000282F22952F708F7099273AE0239F800DC3 +:100860001124898383EA94E00E941114382F36956D +:10087000369536953670232F220F220F230F8F7057 +:100880009927280F2A8383EA94E00E941114282FC5 +:1008900022952F708F7099273AE0239F800D1124A5 +:1008A0008B8383EA94E00E941114282F22952F70E5 +:1008B0008F7099273AE0239F800D11248C8383EA5F +:1008C00094E00E941114282F22952F708F70992781 +:1008D0003AE0239F800D11248D8383EA94E00E94E7 +:1008E0001114282F22952F708F7099273AE0239F9B +:1008F000800D11248E831F82DF91CF910895F8948B +:1009000082E08093B0008093B10094E69093B300AE +:100910001092B20080937000789480935D011092E1 +:10092000B80380915C0160E00C94891960935C01CC +:100930000E947F0464E170E080E090E00E94D5179F +:1009400082E080935D011092B80308951F920F9288 +:100950000FB60F9211242F933F934F935F936F9392 +:100960007F938F939F93AF93BF93EF93FF93809168 +:100970005C010E94F81920915E0130915F012F5FA8 +:100980003F4F30935F0120935E019091B8039091A7 +:100990005D019330C1F020F4923009F058C006C0D8 +:1009A000943059F1953009F052C04BC081114FC0BD +:1009B00080915E0190915F018436910508F443C0F7 +:1009C0001092B8031CC0813009F041C02091B803D7 +:1009D000E22FF0E080915E0190915F01EE0FFF1F2A +:1009E000E05AFE4F918380832F5F2093B8031092CB +:1009F0005F0110925E0184E021C0811117C0209137 +:100A0000B803E22FF0E080915E0190915F01EE0F5C +:100A1000FF1FE05AFE4F918380832F5F2093B8031E +:100A200010925F0110925E0183E008C080915E0128 +:100A300090915F018536910550F085E080935D01CE +:100A400006C0811104C010925F0110925E01FF91F7 +:100A5000EF91BF91AF919F918F917F916F915F9136 +:100A60004F913F912F910F900FBE0F901F901895AF +:100A7000FB0180E691E0918380838091B8038283BB +:100A8000138280915D01853041F482E080935D01A5 +:100A90001092B80321E030E002C020E030E0C9014C +:100AA00008954F925F927F928F929F92AF92BF92E2 +:100AB000CF92DF92EF92FF920F931F93CF93DF932A +:100AC0002C01FB01DC0112962D913C9113974901F9 +:100AD000B4E08B1A910897FE04C04901CBE08C0E5C +:100AE000911CA4E095948794AA95E1F7D2010D9109 +:100AF0001C9140E050E080E090E07801B6E0EB0E21 +:100B0000F11CD701A40FB51F6D917C91860F971F23 +:100B10004C5F5F4F48325105A1F76AE070E00E94D8 +:100B2000AC1F7B015B01AA0CBB1CD801189640E0EE +:100B300050E060E070E080E090E089010950110928 +:100B400001C0A9012D913C911197A216B30638F46A +:100B50002D913C911197820F931F6F5F7F4F6A30E9 +:100B6000710549F014969A012E5F3F4F4A5F5F4F1F +:100B70004017510734F30E94AC1F762EDF01169602 +:100B800048E050E020E030E0CC24C394D12C2EC0CB +:100B90001C928A0187E090E0E20168817981600F10 +:100BA000711FEB0168817981A616B70648F4B6017A +:100BB000082E01C0660F0A94EAF77C91762B09C0D3 +:100BC000B601082E01C0660F0A94EAF760957C9181 +:100BD00076237C9301970C5F1F4F8F3FDFEF9D07BC +:100BE000D9F62F5F3F4F1196405E5F4F28153905AC +:100BF0007CF2882D8B5F8083E201A881B9811296F7 +:100C00008D919C9113978183A881B98114968D91C0 +:100C10009C9115978283E3827482858282E080931F +:100C20005D011092B80380818F5FDF91CF911F919A +:100C30000F91FF90EF90DF90CF90BF90AF909F907B +:100C40008F907F905F904F900895CF93DF93EC014A +:100C5000BC010E943805892BC1F08A819B818034B8 +:100C6000910534F004979C0127703327232B31F032 +:100C700082E080935D011092B80307C0B4E09595BF +:100C80008795BA95E1F78A5F01C080E0DF91CF9147 +:100C900008951F93CF93DF931F92CDB7DEB7162F22 +:100CA00083EA94E049830E94D3146CE470E083EA01 +:100CB00094E00E940C15612F83EA94E00E94931443 +:100CC0004981642F83EA94E00E94931483EA94E0BC +:100CD0000F90DF91CF911F910C942115462F67E063 +:100CE0000C944906462F68E00C944906CF93DF9395 +:100CF000EC0160E00E946E0660E0CE010E94720688 +:100D000061E0CE01DF91CF910C946E064F925F921D +:100D10006F927F928F929F92AF92BF92CF92DF920B +:100D2000EF92FF920F931F93CF93DF9300D01F9208 +:100D3000CDB7DEB75B016A01790180E48B838A83DA +:100D400089830E9499172B013C010DC00E949917BD +:100D50006419750986099709653F714081059105F8 +:100D600014F080E06EC083EA94E00E940814181624 +:100D7000190664F383EA94E00E94111443E050E002 +:100D80006CE470E083EA94E00E94FF140E949917DB +:100D90002B013C018E010F5F1F4F48012DC0C80180 +:100DA000881999090397D4F40E9499172B013C01E3 +:100DB00011C083EA94E00E941114F80180830E941C +:100DC00099176419750986099709633371058105B7 +:100DD00091053CF6F8018081803458F70E949917FC +:100DE0000F5F1F4F6419750986099709653F7140A8 +:100DF000810591050CF0B5CF83EA94E00E940814B8 +:100E0000892B69F69981892F880F880F95FD8D5F51 +:100E100085958595F50180839A81892F880F880FA4 +:100E200095FD8D5F85958595F60180839B81892F42 +:100E3000880F880F95FD8D5F85958595F7018083D7 +:100E400081E00F900F900F90DF91CF911F910F9144 +:100E5000FF90EF90DF90CF90BF90AF909F908F90DA +:100E60007F906F905F904F900895CF93DF93EC0148 +:100E7000862F6E834F83288791E09D8760E00E94D4 +:100E8000891961E08E810E94C11919861A861B8614 +:100E90001C86DF91CF910895DF92EF92FF920F931E +:100EA0001F93CF93DF93EC0161E08E810E94C11903 +:100EB0006AEF70E080E090E00E94D5170E949917D9 +:100EC00009851A852B853C85601771078207930772 +:100ED00020F419861A861B861C862D85211111C0C7 +:100EE00009851A852B853C85DC01CB01801B910B84 +:100EF000A20BB30B803D9740A105B10510F481E032 +:100F000073C01D860E94991769877A878B879C8793 +:100F10001C821B821A821982188261E08E810E94D3 +:100F2000891960E08E810E94C11964E170E080E05F +:100F300090E00E94D517F89461E08E810E94C1195B +:100F400088E290E00E94FB1760E08E810E94891980 +:100F5000F12CD12C81E009C0E39481E090E00E9463 +:100F6000FB178FEFE81204C009C0E12C082F10E036 +:100F70008E810E94F8198017910771F38E810E946B +:100F8000F8199FEFE916C9F023E02F1590F4F0FC53 +:100F900010C09D2D969596959695FE01E90FF11D31 +:100FA0009081990F908328852E1510F4916090837D +:100FB000D394F39495E5F912D8CF789427E22D15C0 +:100FC00090F42C8130E04881898190E0840F911D5C +:100FD0004A81840F911D4B81840F911D99272817F9 +:100FE000390709F48CCF80E0DF91CF911F910F91E9 +:100FF000FF90EF90DF900895EF92FF920F931F9371 +:10100000CF93DF93EC010E944C07882391F18F81ED +:101010008B3029F070F18551823058F507C0688116 +:1010200070E080E090E00E944B1D2DC0688170E070 +:1010300080E090E00E944B1D20E030E040E853E467 +:101040000E94D91D7B018C01698170E080E090E0F5 +:101050000E944D1D9B01AC016E2D7F2D802F912F85 +:101060000E944E1C20E030E040E251E40E94B21C9D +:101070000AC067E271E084E795E00E943E1C60E0F0 +:1010800070E080EC9FE7DF91CF911F910F91FF906F +:10109000EF900895CF92DF92EF92FF920F931F93FC +:1010A000CF93DF938C01C62F0E944C07882309F44D +:1010B00077C0F80187818B3039F008F471C0855111 +:1010C000823008F06DC01DC0F801628170E080E0E0 +:1010D00090E00E944B1DB62FA72FF82FE92F462F27 +:1010E000572F682F792FCB01BA01CC2309F462C0A6 +:1010F00020E030E040E151E46B2F7A2F8F2F9E2FBC +:1011000037C0F801D2816D2F6F7770E080E090E0FA +:101110000E944D1D20E030E040E853E40E94D91DBC +:101120006B017C01F801638170E080E090E00E9437 +:101130004D1D9B01AC016C2D7D2D8E2D9F2D0E9490 +:101140004E1C20E030E040E251E40E94B21C472FE8 +:10115000382F292F862F942FA32FB22FBC01CD011A +:10116000D7FD9058CC2331F120E030E040E151E44C +:101170000E94D91D20E030E040EA50E40E94B21CF9 +:1011800020E030E040E052E40E944E1C472F382F10 +:10119000292F862F942FA32FB22FBC01CD010AC077 +:1011A00067E271E084E795E00E943E1C60E070E039 +:1011B00080EC9FE7DF91CF911F910F91FF90EF900F +:1011C000DF90CF9008958091C8039091C903019654 +:1011D0009093C9038093C80308958091250490914A +:1011E0002604019731F460911E0483EA94E00E9482 +:1011F000931480912504909126048330910529F061 +:101200008730910511F0C89741F443E050E069E060 +:1012100074E083EA94E00E94651480912504909123 +:1012200026048830910511F0449741F444E050E0E1 +:1012300069E074E083EA94E00E94651480912504DB +:10124000909126048E31910511F0889741F449E080 +:1012500050E069E074E083EA94E00E9465148091B4 +:10126000250490912604459751F445E150E069E04A +:1012700074E083EA94E00E9465141092090480915E +:101280002504909126040A9751F444E050E069E067 +:1012900074E083EA94E00E9465141092090480913E +:1012A0002504909126040B9751F442E050E06CEC39 +:1012B00073E083EA94E00E9465141092CC0380915D +:1012C0002504909126040C9751F443E050E06DEB17 +:1012D00073E083EA94E00E9465141092BD030895C0 +:1012E000CF93DF9322C083EA94E00E94081404970E +:1012F00041F41092220410922104109224041092BE +:101300002304C0912304D091240483EA94E00E9432 +:101310001114FE01EE0FFF1FEB5DFB4F91838083E5 +:101320002196D0932404C093230483EA94E00E947E +:101330000814892BC1F6DF91CF91089564E070E025 +:1013400083EA94E00E94F01460E779E083EA94E095 +:101350000E9424156DEE78E083EA94E00C94291540 +:101360004F925F926F927F92AF92BF92CF92DF9235 +:10137000EF92FF920F931F93CF93DF93CDB7DEB71A +:101380002C970FB6F894DEBF0FBECDBF809123041B +:10139000909124040497A1F08091CA039091CB030B +:1013A000892B71F48091D0039091D103892B41F462 +:1013B0008091C4039091C503892B11F40C9477128A +:1013C00081E090E090932204809321048091250491 +:1013D000909126048631910549F46091270470911B +:1013E000280488E591E00E949604C5C485319105E2 +:1013F00021F588E591E00E942506882309F4BBC405 +:1014000064EF73E088E591E00E94510581E08093EC +:10141000090480E090E009C0FC01E75FFB4FDC01BC +:10142000AC50BC4F2C912183019684319105A4F3DB +:101430009093200480931F049EC48130910539F459 +:10144000809127040E94F81980931E0494C482306E +:10145000910539F460912904809127040E94C119F3 +:101460008AC483309105B1F4809127040E94211A27 +:101470009093F3038093F2039C0197FF02C02150E5 +:101480003F4F30930A0460E071E00E94AC1F8093EC +:101490000B0471C48430910549F460912904709162 +:1014A0002A04809127040E94421A65C48530910560 +:1014B00039F460912904809127040E9489195BC442 +:1014C0008730910509F043C080912704909128044A +:1014D0008093BB039093BC0361E00E94891960E094 +:1014E0008091BB030E94C11982E090E00E94FB172B +:1014F00061E08091BB030E94C11985E090E00E94E9 +:10150000FB1760E08091BB030E94C11960E08091ED +:10151000BB030E94891920E432E44FE050E061E00F +:101520008091BB030E9440182AE330E040E050E085 +:101530000E94E21FCA01B90120E031E040E050E022 +:101540000E94E21F20930A0460930B0414C48830A5 +:10155000910541F481E080930A0482E080930B04BA +:1015600084E022C08431910511F58091F10381114D +:1015700007C08FE994E00E94760681E08093F10332 +:101580002FEE33E04EEE53E06DEE73E08FE994E022 +:101590000E9486068091ED0380930A048091EE03F9 +:1015A00080930B048091EF0380930C04E4C38E318D +:1015B000910571F58091F003811107C087E994E0EE +:1015C0000E94F50381E08093F00387E994E00E9494 +:1015D000F9038091990480930A0480919804809380 +:1015E0000B048091970480930C0480919C04809359 +:1015F0000D0480919B0480930E0490919D04909320 +:101600000F048093100480919A0480931104B3C353 +:101610008832910509F05AC08091290490912A04DA +:10162000009719F426E04BE005C08130910549F49C +:1016300026E046E16091270489E894E00E9435079E +:1016400008C08230910519F426E045E1F3CF0397F5 +:10165000D9F360E089E894E00E944A0869877A87B4 +:101660008B879C8789E894E00E94FC076D837E83CA +:101670008F8398871092BA031092B903FE013996AE +:1016800080E090E001962191DC01A75FBB4F2C9395 +:1016900084309105BCF384E090E09093BA0380938A +:1016A000B9030196DC01A75FBB4FE5E0F0E0EC0F6A +:1016B000FD1FE80FF91F359720812C938830910585 +:1016C00084F39093BA038093B90355C38233910591 +:1016D000E1F48091270490912804482F21E0609143 +:1016E000290470912A04672B09F420E0642F6F5FAE +:1016F000FC01329737E03E9FC0013F9F900D1124BF +:10170000815A9B4F0E94FB0236C3C39709F01FC545 +:1017100020912704309128042250310947E0429F4C +:10172000C001439F900D1124815A9B4F0E94ED03ED +:101730008111F4C40CC52091270430912804225053 +:10174000310917E0129FC001139F900D1124815A97 +:101750009B4F0E94ED03811102C580912504909159 +:101760002604C59709F028C5209127043091280444 +:101770002250310947E0429FC001439F900D112440 +:10178000815A9B4F0E94ED038111FBC415C5209126 +:101790002704309128042250310917E0129FC0011C +:1017A000139F900D1124815A9B4F0E94ED038111CC +:1017B0000AC51BC520912704309128042250310905 +:1017C00017E0129FC001139F900D1124815A9B4F67 +:1017D0000E94ED03811110C528C520912704309186 +:1017E00028042250310917E0129FC001139F900D69 +:1017F0001124815A9B4F0E94ED0381111DC530C5F4 +:101800006091270470912804462F4F5F9B0122505E +:101810003109C901880F991F820F931F835B9B4F6A +:101820000E948A01A8C28734910509F034C520912D +:1018300027043091280422503109C901880F991FCB +:10184000820F931F835B9B4F0E94F402811111C58D +:1018500022C5209127043091280422503109C90162 +:10186000880F991F820F931F835B9B4F0E94F40286 +:10187000811119C531C520912704309128042250C7 +:101880003109C901880F991F820F931F835B9B4FFA +:101890000E94F402811128C544C52091270430918B +:1018A000280422503109C901880F991F820F931F04 +:1018B000835B9B4F0E94F40281113CC580912504FB +:1018C000909126048B34910509F058C52091270486 +:1018D0003091280422503109C901880F991F820FC5 +:1018E000931F835B9B4F0E94F402811135C546C54F +:1018F000209127043091280422503109C901880F12 +:10190000991F820F931F835B9B4F0E94F4028111EA +:101910003EC5A0C5209127043091280422503109EA +:10192000C901880F991F820F931F835B9B4F0E94F1 +:10193000F402811197C5A3C5812F0E94211ABC0111 +:10194000209127043091280422503109C901880FC1 +:10195000991F820F931FE12C00E024E040E0835B9D +:101960009B4F0E9472026AEF70E080E090E00E945C +:10197000D5172FEFC21AD20ACA14DB04ECF2FBC14E +:10198000209127043091280422503109C901880F81 +:10199000991F820F931F835B9B4F0E94F40281115A +:1019A00076C57BC520912704309128042250310947 +:1019B000C901880F991F820F931F835B9B4F0E9461 +:1019C000F402811172C58AC5809127048093EA03CD +:1019D000809129048093EB0380912B048093EC0386 +:1019E000CAC18B359105B1F4609127047091280428 +:1019F000462F4F5F9B012250310955E0529FC00195 +:101A0000539F900D112420912904815D9B4F0E94CA +:101A10005B13B1C18C35910509F048C06091270472 +:101A200070912804462F4F5F9B012250310955E0E9 +:101A3000529FC001539F900D112420912904815D74 +:101A40009B4F0E945B1300912B0410912C0402FB0E +:101A5000DD24D0F8D19401FBCC24C0F8C1940170EE +:101A60001127102F1195E12CF12CF5E0BF2E16C097 +:101A7000609127047091280462507109B69EC001DC +:101A8000B79E900D1124012F2C2D4D2D6E2D815DB3 +:101A90009B4F0E94EE123FEFE31AF30A8091290454 +:101AA00090912A04E816F9061CF365C18D3591055D +:101AB00009F075C02091290430912A0480912704EF +:101AC00090912804232BB1F49C012250310945E068 +:101AD000429FC001439F900D11240091EC0320917F +:101AE000EB034091EA0360912B04815D9B4F0E94C0 +:101AF000EE1241C19C012250310945E0429FC001D4 +:101B0000439F900D1124815D9B4F0E948813E12C0F +:101B1000F12CC82ED12C15E03DC020912904309124 +:101B20002A042130310541F480912B0490912C043A +:101B3000E816F906B1F42BC02230310541F480914A +:101B40002B0490912C048E159F055CF420C023304B +:101B50003105E9F480912B0490912C04E816F906E4 +:101B6000B4F0209127043091280422503109129FAB +:101B7000C001139F900D11240091EC032091EB0301 +:101B80004091EA036E2D815D9B4F0E94EE128FEF14 +:101B9000E81AF80AEC14FD040CF4BFCFECC08E3543 +:101BA000910509F052C080912B0490912C041816D5 +:101BB000190634F081E090E090932C0480932B047C +:101BC00020912704309128042250310945E0429F9A +:101BD000C001439F900D1124815D9B4F0E9488138B +:101BE000E0902904F0902A04C82ED12C15E029C0D9 +:101BF0008091290490912A049701281B390BC9016F +:101C000060912B0470912C040E94AC1F892BB1F4BD +:101C1000209127043091280422503109129FC001DD +:101C2000139F900D11240091EC032091EB03409140 +:101C3000EA036E2D815D9B4F0E94EE123FEFE31A87 +:101C4000F30AEC14FD04A4F296C08F35910509F057 +:101C500083C020912704309128042250310945E0A7 +:101C6000429FC001439F900D1124815D9B4F0E94B4 +:101C7000881320912B0430912C04232B59F133C06D +:101C80008091290490912A042091270430912804FE +:101C900022503109E816F90664F4129FC001139F1F +:101CA000900D11240091EC032091EB034091EA0385 +:101CB00008C0129FC001139F900D112400E020E086 +:101CC00040E06E2D815D9B4F0E94EE128FEFE81A6F +:101CD000F80A05C0E12CF12CC82ED12C15E0EC142B +:101CE000FD0474F248C0C82ED12C760115E030C036 +:101CF0008091290490912A049601281B390B809128 +:101D0000270490912804E216F3067CF09C012250EF +:101D10003109129FC001139F900D11240091EC0313 +:101D20002091EB034091EA030BC09C012250310942 +:101D3000129FC001139F900D112400E020E040E0AD +:101D40006E2D815D9B4F0E94EE1221E0E21AF10898 +:101D5000E114F10469F60FC00D9769F480E00E9468 +:101D6000F51881E090E090930701809306011092AE +:101D700026041092250480912504909126040A9748 +:101D800039F08091D0039091D103892B49F4F9C0A7 +:101D900080912704909128049093D1038093D003DD +:101DA00020E432E44FE050E060E088E00E94401818 +:101DB0006093E6037093E7038093E8039093E9034D +:101DC0000091DE031091DF032091E0033091E103E5 +:101DD000060F171F281F391F0093DE031093DF0320 +:101DE0002093E0033093E1030E949917C0900A0109 +:101DF000D0900B01E0900C01F0900D010091E203F6 +:101E00001091E3032091E4033091E503601B710B13 +:101E1000820B930BC616D706E806F90608F0B1C088 +:101E20006091DE037091DF038091E0039091E10304 +:101E30000E944B1D2B013C01C701B6010E944B1DA6 +:101E400020E030E040E251E40E94D91D9B01AC014A +:101E5000C301B2010E94B21C5B018C01862F9B2D35 +:101E6000A02FB12F8093DA039093DB03A093DC03C0 +:101E7000B093DD0320E030E040E450E46A2D7B2D98 +:101E8000802F912F0E943C1E2DEC3CEC4CE85FE330 +:101E90000E94D91D2B013C012A2D3B2D402F512F93 +:101EA0006A2D7B2D802F912F0E94D91D23E333E3D0 +:101EB00043E750E40E94D91D9B01AC01C301B2016C +:101EC0000E944D1C6B017C0120E030E042E054E4B4 +:101ED0006A2D7B2D802F912F0E94D91D9B01AC0173 +:101EE000C701B6010E944E1C22E538EB4EE15FE3CC +:101EF0000E944E1CFB01462F5F2F682F792F4093C5 +:101F0000D6035093D7036093D8037093D9031092EC +:101F1000DE031092DF031092E0031092E10320E051 +:101F200030E048EC52E4BF010E94D91D0E941A1D06 +:101F300021E020930904C12CD12C7601D394A70170 +:101F400096010E94E21F60930A042093D20330930B +:101F5000D3034093D4035093D503CA01B901A70119 +:101F600096010E94E21F60930B0420930C040E94D0 +:101F700099176093E2037093E3038093E4039093D3 +:101F8000E50380912504909126040B9739F0809108 +:101F9000CA039091CB03892B49F43EC0809127045A +:101FA000909128049093CB038093CA0380910801F9 +:101FB00090910901892B41F080EA94E00E94A813D6 +:101FC00010920901109208018091A104813021F53D +:101FD0002091A0048091CE039091CF03213051F441 +:101FE0000196893191050CF40AC01092CF0310922A +:101FF000CE0309C0019797FF02C088E190E090935B +:10200000CF038093CE0381E08093CC038091CE03F5 +:102010008093CD031092A104809125049091260411 +:102020000C9739F08091C4039091C503892B49F432 +:102030005EC280912704909128049093C5038093F9 +:10204000C4038091060190910701892BE9F060E0BB +:1020500082E00E94891943E050E063EE78E080E07E +:102060000E94D5181092C9031092C8030E949917B4 +:102070006093C0037093C1038093C2039093C30322 +:1020800010920701109206010E9499170091C00357 +:102090001091C1032091C2033091C303601B710BE7 +:1020A000820B930B613D77408105910508F41FC2B7 +:1020B0002091C8033091C9034EE1429FC001439F64 +:1020C000900D112469E470E00E94AC1FE62F472FA9 +:1020D0006093C6037093C70381E08093BD03862F8E +:1020E000972F60E071E00E94AC1F8093BE032E2FFB +:1020F000342F37FF02C021503F4F3093BF0310925F +:10210000C9031092C8030E9499176093C00370938B +:10211000C1038093C2039093C303E9C161E080913E +:10212000290490912A04892B09F460E02091270466 +:10213000309128042250310947E0429FC001439F5B +:10214000900D1124815A9B4F0E94E30314CE80917D +:10215000250490912604C49709F0FFCAECCA209187 +:1021600027043091280422503109129FC001139F87 +:10217000900D112460912904815A9B4F0E94D10334 +:10218000FACD41E080912B0490912C04892B09F425 +:1021900040E020912704309128042250310957E073 +:1021A000529FC001539F900D112460912904815AC0 +:1021B0009B4F0E94B003DFCD8091250490912604AF +:1021C000C69799F4E4CA209127043091280422503C +:1021D0003109129FC001139F900D112460912904B1 +:1021E000815A9B4F0E949703C6CD80912504909100 +:1021F0002604C797D1F4DECA90912B0480E0609149 +:10220000290470912A0468277927209127043091A6 +:10221000280422503109129FC001139F900D1124F0 +:10222000815A9B4F0E944E03A6CD80912504909128 +:102230002604C897A9F4D1CA209127043091280414 +:1022400022503109129FC001139F900D1124815A11 +:102250009B4F0E94E90380930A0490930B048BCD5B +:1022600080912504909126048634910509F0DBCAFB +:10227000C7CA209127043091280422503109C9018E +:10228000880F991F820F931F60912904835B9B4FD6 +:102290000E94A10170CD809125049091260488347C +:1022A0009105D1F4D6CA90912B0480E06091290465 +:1022B00070912A04682779272091270430912804F7 +:1022C00022503109C901880F991F820F931FE12CF9 +:1022D00000E024E040E020C0809125049091260495 +:1022E00089349105F1F4C7CA90912B0480E0609184 +:1022F000290470912A0468277927209127043091B6 +:10230000280422503109C901880F991F820F931F99 +:10231000E12C00E024E041E0835B9B4F0E947202CD +:102320002ACD80912504909126048A34910509F0E4 +:10233000C5CAB3CA2091270430912804225031091C +:10234000C901880F991F820F931F60912B04835B33 +:102350009B4F0E94ED0202C080912B048983209143 +:1023600027043091280422503109C901880F991F90 +:10237000820F931F2091290441E0A8C08091250479 +:10238000909126048C34910509F064C0B1CA809103 +:10239000290490912A040AE010E0B8010E94AC1FC1 +:1023A000209127043091280422503109C901880F57 +:1023B000991F820F931F835B9B4F0E94ED028983BD +:1023C0008091290490912A04B8010E94AC1F2091A9 +:1023D00027043091280422503109A901440F551FC8 +:1023E000420F531F682FCA01835B9B4F0E94ED026F +:1023F00080688A8380912B0490912C04B8010E94FC +:10240000AC1F209127043091280422503109C901C2 +:10241000880F991F820F931F835B9B4F0E94ED02D1 +:102420008B8380912B0490912C04B8010E94AC1FE7 +:10243000209127043091280422503109A901440F2A +:10244000551F420F531F682FCA01835B9B4F0E9489 +:10245000ED0221C080912504909126048D349105D0 +:1024600071F458CA10912904A0902B04B0902C0448 +:10247000AA0CBB1CAA0CBB1CC12CD12C7DCA809100 +:102480002504909126048E34910539F479CA8FEF92 +:1024900089838A838B838C830CC0809125049091DF +:1024A00026048F349105D1F47DCA19821A821B82C9 +:1024B0001C82209127043091280422503109C9013F +:1024C000880F991F820F931F20E044E0BE016F5FC9 +:1024D0007F4F835B9B4F0E9428024DCC8091250447 +:1024E000909126048A35910509F07BCA6DCA2C9615 +:1024F0000FB6F894DEBF0FBECDBFDF91CF911F9115 +:102500000F91FF90EF90DF90CF90BF90AF907F90B2 +:102510006F905F904F900895CF93DF93EC0160E050 +:1025200088810E94C11984E190E00E94FB1761E05C +:1025300088810E94C11984E190E0DF91CF910C94D1 +:10254000FB170F931F93CF93DF93EC01062F18E037 +:1025500007FF02C061E001C060E089810E94C119EB +:10256000CE010E948C12000F115091F7DF91CF9194 +:102570001F910F910895EF92FF921F93CF93DF93D6 +:1025800000D0CDB7DEB77C01162F27FF02C060EC6C +:1025900001C060EE26FF606147FF686046FF64602F +:1025A00017FF626016FF6160C70129834A830E949A +:1025B000A1122981622FC7010E94A1124A81642FB2 +:1025C000C7010E94A112612FC7010F900F90DF91E8 +:1025D000CF911F91FF90EF900C94A1127F928F9258 +:1025E0009F92AF92BF92CF92DF92EF92FF920F93A2 +:1025F0001F93CF93DF93EC01162F942E822E60E071 +:102600000E94A11260E0CE010E94A11260E0CE0102 +:102610000E94A11260E0CE010E94A11283E0189FE7 +:102620007001112467018FEFC81AD80A570182E0A0 +:10263000A80EB11C712C1FC071120FC0EB81FC8160 +:10264000EE0DFF1D9082EB81FC81EC0DFD1D808263 +:10265000EB81FC81EA0DFB1D0083EB81FC8183E0B3 +:10266000789EE00DF11D1124228141816081CE010F +:102670000E94BB1273948A817816F0F260E0CE015A +:102680000E94A11260E0CE010E94A11260E0CE0182 +:102690000E94A11260E0CE01DF91CF911F910F91B6 +:1026A000FF90EF90DF90CF90BF90AF909F908F9072 +:1026B0007F900C94A1120F931F93CF93DF93EC01A3 +:1026C000862F688349832A8361E00E94891961E02B +:1026D00089810E9489198A8161E070E023E0829FEC +:1026E000C00111240E9424208B839C8310E008C029 +:1026F00000E020E040E0612FCE010E94EE121F5F5B +:102700008A811817A8F3DF91CF911F910F91089537 +:10271000FC0182810895CF93DF9382E00E94F81933 +:10272000EC0183E00E94F8198C239D23019719F492 +:1027300081E08093A204DF91CF91089584E080939B +:1027400068008BB381718BBB8CE080936D00089522 +:1027500048EE53E060E070E082E591E00E945F01A6 +:102760002FEF3FEFA9016BE873E182E591E00E9452 +:102770006F01789408951F920F920FB60F92112453 +:102780001F932F933F934F935F936F937F938F93F9 +:102790009F93AF93BF93CF93DF93EF93FF931091EA +:1027A000A2041130E9F482E00E94F819EC0183E000 +:1027B0000E94F8198C179D071CF41093A0040CC0FC +:1027C00082E00E94F819EC0183E00E94F819C81712 +:1027D000D90734F41092A0041093A1041092A2041B +:1027E000FF91EF91DF91CF91BF91AF919F918F9129 +:1027F0007F916F915F914F913F912F911F910F901A +:102800000FBE0F901F90189580EA94E00C949E13D1 +:102810002091D70430E08091D804281B3109C901E8 +:1028200008958091D8049091D704891750F4E82F27 +:10283000F0E0E752FB4F208130E08F5F8093D804B7 +:1028400002C02FEF3FEFC9010895E091D8048091B5 +:10285000D704E81730F4F0E0E752FB4F208130E076 +:1028600002C02FEF3FEFC90108950895E091AF0432 +:10287000F091B0043097E1F03091D8042091D70462 +:102880003217B0F040E009C0DC01A20FB31F5C9129 +:10289000D901A752BB4F5C934F5F242F30E026171E +:1028A000370794F31092D8046093D704CB010994AE +:1028B0000895E091B104F091B204309729F010929C +:1028C000B5041092B40409940895CF92DF92EF9268 +:1028D000FF920F931F93CF93DF937C01CB018A016B +:1028E0002091B304222391F0EB016B01C40ED51E9D +:1028F00009C06991D701ED91FC910190F081E02D23 +:10290000C7010995CC15DD05A1F703C0642F0E940E +:10291000EC15C801DF91CF911F910F91FF90EF90BF +:10292000DF90CF900895CF93DF931F92CDB7DEB79E +:1029300069832091B3042223D1F02091B404203282 +:1029400040F021E030E0FC013383228320E030E0DE +:1029500015C08091B504E82FF0E0EA54FB4F99814F +:1029600090838F5F8093B5048093B40405C061E0C9 +:10297000CE0101960E94EC1521E030E0C9010F90D4 +:10298000DF91CF910895FC011382128248EE53E04B +:1029900060E070E0448355836683778385E391E04C +:1029A0009183808308951092D8041092D7041092D6 +:1029B000B5041092B4040C943215CF93DF93EC015C +:1029C000862F0E94501589E594E10E940A1686E33D +:1029D00094E10E940516CE01DF91CF910C94D3149F +:1029E0000C94DD14862F413208F040E269ED74E06A +:1029F0000E9454151092D8048093D704089521E0C2 +:102A00000C94F21481E08093B3046093D604109286 +:102A1000B5041092B40408950C9402150F93062F78 +:102A200021E04091B40466EB74E08091D6040E94EA +:102A300099151092B5041092B4041092B3040F913A +:102A4000089561E00C940E157093B0046093AF0488 +:102A500008957093B2046093B104089583EA94E0FA +:102A60000C94C3141092020581E08093000510922B +:102A7000FF0461E082E10E94C11961E083E10E94EC +:102A8000C119E9EBF0E080818E7F808380818D7FAA +:102A9000808388E48093B80085E48093BC00089527 +:102AA000880F8093BA000895413208F03FC090919A +:102AB00002059111FCCF91E090930205209300054F +:102AC0002FEF2093F9041092FE04242F215020931D +:102AD000FD049093010590910105880F892B809347 +:102AE00001058091FF04813041F41092FF04809130 +:102AF00001058093BB0085EC01C085EE8093BC008E +:102B0000809102058130E1F38091FE04841710F476 +:102B10004091FE0423E035E0FB01D90102C08D9114 +:102B200081938A2F821B8417D0F301C040E0842F49 +:102B300008950F93413208F046C09091020591111B +:102B4000FCCF92E090930205009300059FEF9093D5 +:102B5000F9041092FE044093FD04FB0163E075E06C +:102B6000DB0102C091919D939A2F961B9417D0F38D +:102B70001092010590910105880F892B8093010522 +:102B80008091FF04813041F41092FF04809101058F +:102B90008093BB0085EC01C085EE8093BC002223AE +:102BA00021F0809102058230E1F38091F9048F3F9A +:102BB00061F08091F904803251F08091F904803302 +:102BC00041F483E007C081E005C080E003C082E0FB +:102BD00001C084E00F910895613298F420910205BC +:102BE000243089F46093FB04FC0183E295E0DC016E +:102BF00002C021912D932A2F281B2617D0F380E0A5 +:102C0000089581E0089582E00895909344058093AB +:102C1000430508959093460580934505089585EDF5 +:102C20008093BC008091BC0084FDFCCF1092020513 +:102C3000089585EC8093BC001092020508951F92C0 +:102C40000F920FB60F9211242F933F934F935F93E0 +:102C50006F937F938F939F93AF93BF93EF93FF9364 +:102C60008091B900887F803609F49FC058F588327A +:102C700009F45BC090F4803109F452C038F4882321 +:102C800009F4F8C0883009F0F9C04AC0883109F465 +:102C90004CC0803209F0F2C05CC0803409F46BC0D3 +:102CA00038F4803309F455C0883309F0E7C054C0C4 +:102CB000803509F454C0883509F462C0883409F0BD +:102CC000DDC0DAC0883909F4CBC0A8F4883709F42C +:102CD0006CC038F4883609F468C0803709F0CEC07B +:102CE00064C0883809F4BCC0803909F464C08038F5 +:102CF00009F0C4C060C0803B09F48AC038F4803A4F +:102D000009F46BC0883A09F0B9C082C0803C09F46C +:102D1000ABC0883C09F4A8C0883B09F0AFC08DC0A7 +:102D2000809101058093BB0012C09091FE048091B8 +:102D3000FD04981788F58091FE04E82FF0E0ED5F20 +:102D4000FA4F90819093BB008F5F8093FE0485ECD7 +:102D500088C08093F90490C08093F90456C0809194 +:102D6000FE049091BB00E82FF0E0ED5FFA4F9083F6 +:102D70008F5F8093FE049091FE048091FD046DC0EE +:102D80008091FE049091BB00E82FF0E0ED5FFA4FD8 +:102D900090838F5F8093FE048091000581116CC049 +:102DA00081E08093FF0484EA60C083E080930205A1 +:102DB0001092FA04CCCF8091FA04803208F050C00F +:102DC0008091FA049091BB00E82FF0E0E95BFA4FA4 +:102DD00090838F5F8093FA04BACF8091FA04803297 +:102DE00030F4E091FA04F0E0E95BFA4F10820E94BF +:102DF0000F166091FA04E0914305F091440570E0EC +:102E000087E495E009951092FA040E94191636C0DD +:102E100084E0809302051092FC041092FB04E09180 +:102E20004505F091460509958091FB04811105C087 +:102E300081E08093FB04109223058091FC04E82F2D +:102E4000F0E0ED5DFA4F90819093BB008F5F80932F +:102E5000FC049091FC048091FB04981708F477CF50 +:102E600085E88093BC000AC085EC8093BC0010927A +:102E7000020504C01092F9040E940F16FF91EF9111 +:102E8000BF91AF919F918F917F916F915F914F9182 +:102E90003F912F910F900FBE0F901F9018951F928A +:102EA0000F920FB60F9211242F933F938F939F93FE +:102EB000AF93BF938091670590916805A0916905D4 +:102EC000B0916A0530916F05232F2D5F2D3720F4C7 +:102ED0000196A11DB11D05C0232F2A570296A11DE1 +:102EE000B11D20936F058093670590936805A093AB +:102EF0006905B0936A0580916B0590916C05A0916E +:102F00006D05B0916E050196A11DB11D80936B05F5 +:102F100090936C05A0936D05B0936E05BF91AF9132 +:102F20009F918F913F912F910F900FBE0F901F9007 +:102F300018950F931F938FB7F89400916705109120 +:102F400068052091690530916A058FBFB801C901F4 +:102F50001F910F9108950F931F939FB7F8940091BD +:102F60006B0510916C0520916D0530916E0586B54D +:102F7000A89B06C08F3F21F00F5F1F4F2F4F3F4F81 +:102F80009FBF322F212F102F0027080F111D211D49 +:102F9000311D42E0000F111F221F331F4A95D1F748 +:102FA000B801C9011F910F910895CF92DF92EF925E +:102FB000FF92CF93DF936B017C010E94AB17EB0173 +:102FC0000EC00E94AB176C1B7D0B683E734038F03F +:102FD00081E0C81AD108E108F108C851DC4FC114DA +:102FE000D104E104F10469F7DF91CF91FF90EF90F4 +:102FF000DF90CF900895019739F0880F991F880FBF +:10300000991F02970197F1F70895789484B582602B +:1030100084BD84B5816084BD85B5826085BD85B57C +:10302000816085BDEEE6F0E0808181608083E1E82B +:10303000F0E0108280818260808380818160808363 +:10304000E0E8F0E0808181608083E1EBF0E0808166 +:1030500084608083E0EBF0E0808181608083EAE738 +:10306000F0E08081846080838081826080838081C1 +:10307000816080838081806880831092C100089580 +:103080008F929F92AF92BF92CF92DF92EF92FF9278 +:103090000F931F93CF93DF9390E0FC01E250FF4F1B +:1030A000D491FC01EE5EFE4F7491611102C0C0E04C +:1030B00001C0CD2FDA01C901BF70672F70E0660F24 +:1030C000771F6A5D7E4F812C912C5401FB01059185 +:1030D000149110C0C12CD12C7601C394C80CD91CFA +:1030E000EA1CFB1C88169906AA06BB0609F44BC00D +:1030F00046015701F801E081ED23EC1759F310C0A8 +:10310000C12CD12C7601C394C80CD91CEA1CFB1C21 +:1031100088169906AA06BB06B1F14601570103C0FD +:10312000FB0105911491F801E081ED23EC13E8CF48 +:1031300088199909AA09BB0920E030E0A901FB011F +:103140006591749109C0281739074A075B07D9F0C0 +:103150002F5F3F4F4F4F5F4FFB01E081ED23EC1797 +:1031600091F3A5E1B0E00E94A11F8B019C01005FDB +:103170001F4F2F4F3F4F84E03695279517950795A2 +:103180008A95D1F703C000E010E09801B801C901A9 +:10319000DF91CF911F910F91FF90EF90DF90CF9033 +:1031A000BF90AF909F908F9008958230E8F4E82F01 +:1031B000F0E0EE0FFF1FE059FA4F7183608381301A +:1031C00041F0809169008C7F842B80936900E89A9C +:1031D000089580916900440F551F440F551F837F48 +:1031E000842B80936900E99A0895823068F48130D5 +:1031F00011F0E89801C0E998E82FF0E0EE0FFF1F0A +:10320000E059FA4F1182108208951F920F920FB663 +:103210000F9211242F933F934F935F936F937F935C +:103220008F939F93AF93BF93EF93FF93809170051C +:1032300090917105892B29F0E0917005F09171054D +:103240000995FF91EF91BF91AF919F918F917F91E0 +:103250006F915F914F913F912F910F900FBE0F9003 +:103260001F9018951F920F920FB60F9211242F9353 +:103270003F934F935F936F937F938F939F93AF93FE +:10328000BF93EF93FF938091720590917305892B03 +:1032900029F0E0917205F09173050995FF91EF9186 +:1032A000BF91AF919F918F917F916F915F914F915E +:1032B0003F912F910F900FBE0F901F901895833064 +:1032C00069F028F48130A1F0823011F514C0863005 +:1032D000B1F08730C1F08430D9F404C0809180000F +:1032E0008F7703C0809180008F7D80938000089548 +:1032F00084B58F7702C084B58F7D84BD0895809199 +:10330000B0008F7703C08091B0008F7D8093B000B4 +:103310000895CF93DF9390E0FC01E250FF4F44917A +:10332000FC01EE5EFE4F8491882341F190E0880F0E +:10333000991FFC01E65CFE4F25913491D901805D17 +:103340009E4FFC0185919491C82FD92F9FB7F89477 +:103350008C91611106C0409584238C9388818423CD +:1033600008C0623041F4242F209582238C938881F9 +:10337000842B888302C0842B8C939FBFDF91CF91D5 +:1033800008950F931F93CF93DF931F92CDB7DEB7AE +:10339000282F30E0F901E651FF4F8491F901E25006 +:1033A000FF4F1491F901EE5EFE4F04910023D1F01E +:1033B000882321F069830E945F196981E02FF0E082 +:1033C000EE0FFF1FE05DFE4F85919491DC019FB7EA +:1033D000F8948C91611103C01095812301C0812B59 +:1033E0008C939FBF0F90DF91CF911F910F91089504 +:1033F000CF93DF93282F30E0F901E651FF4F8491FE +:10340000F901E250FF4FD491F901EE5EFE4FC491F5 +:10341000CC2389F081110E945F19EC2FF0E0EE0FB0 +:10342000FF1FEA5DFE4F85919491DC018C918D2305 +:1034300021E030E011F420E030E0C901DF91CF91CC +:1034400008958E3008F08E50877020910E0140E470 +:10345000249F90011124822B80937C0080917A001C +:10346000806480937A0080917A0086FDFCCF209161 +:10347000780030917900932F80E0AC01422B9A01C3 +:10348000C90108951F93CF93DF93182FEB0161E0DB +:103490000E948919209711F460E004C0CF3FD10544 +:1034A00039F461E0812FDF91CF911F910C94C11904 +:1034B000E12FF0E0E651FF4FE491E330B9F028F45A +:1034C000E13051F0E230B1F50CC0E63019F1E730EF +:1034D00049F1E43079F514C084B5806884BDC7BD76 +:1034E0002EC084B5806284BDC8BD29C08091800093 +:1034F000806880938000D0938900C09388001FC0AB +:1035000080918000806280938000D0938B00C09374 +:103510008A0015C08091B00080688093B000C0938D +:10352000B3000DC08091B00080628093B000C09362 +:10353000B40005C0C038D1050CF0B3CFADCFDF91DA +:10354000CF911F910895FC0184859585FC01E05C75 +:10355000FF4F20813181FC01EE5BFF4F8081918123 +:10356000281B390B2F733327C9010895FC0184856B +:103570009585FC01E05CFF4F40815181FC01EE5BD1 +:10358000FF4F208131814217530741F00190F081B4 +:10359000E02DE80FF91F208130E002C02FEF3FEF50 +:1035A000C9010895FC0184859585FC01E05CFF4F0D +:1035B00040815181FC01EE5BFF4F20813181421738 +:1035C000530781F0A081B181A80FB91F8C91208190 +:1035D00031812F5F3F4F2F73332731832083282F73 +:1035E00030E002C02FEF3FEFC9010895FC0186854E +:1035F0009785FC01E05CFF4FDC01AE5BBF4F408173 +:1036000051812D913C91119742175307C1F70895AD +:10361000CF93DF93FC0186859785DC01A05CBF4FCB +:103620002D913C9111972F5F3F4F2F733327EC0162 +:10363000CE5BDF4F4881598124173507D9F30D90B0 +:10364000BC91A02DA80FB91F6C93A685B785A05C6F +:10365000BF4F11963C932E93A689B7892C9181E098 +:1036600090E0058C02C0880F991F0A94E2F7282B7E +:103670002C9381E090E0DF91CF91089508951F92FF +:103680000F920FB60F9211242F933F934F938F9366 +:103690009F93EF93FF934091C600809117069091FE +:1036A000180601968F7399272091190630911A06F2 +:1036B0008217930759F0E0911706F0911806E95226 +:1036C000FA4F40839093180680931706FF91EF916D +:1036D0009F918F914F913F912F910F900FBE0F901F +:1036E0001F90189584E795E00E94A31A892B11F08A +:1036F0000C943E1B08951F920F920FB60F92112447 +:103700002F933F938F939F93EF93FF932091D30534 +:103710003091D4058091D5059091D60528173907A9 +:1037200031F48091C1008F7D8093C10014C0E0917D +:10373000D505F091D605ED56FA4F20818091D5053B +:103740009091D60501968F7399279093D605809313 +:10375000D5052093C600FF91EF919F918F913F91E6 +:103760002F910F900FBE0F901F9018951092770514 +:103770001092760588EE93E0A0E0B0E080937805A3 +:1037800090937905A0937A05B0937B0585E491E049 +:10379000909375058093740587ED95E0909381056E +:1037A0008093800583E995E090938305809382055B +:1037B00085EC90E0909385058093840584EC90E0FF +:1037C000909387058093860580EC90E0909389051F +:1037D0008093880581EC90E090938B0580938A0517 +:1037E00086EC90E090938D0580938C0584E0809327 +:1037F0008E0583E080938F0587E08093900585E0B8 +:103800008093910581E0809392050895CF92DF9295 +:10381000EF92FF920F931F93CF93DF936C01EB0115 +:103820007A01E60EF71E00E010E00BC06991D601A8 +:10383000ED91FC910190F081E02DC6010995080FF2 +:10384000191FCE15DF0591F7C801DF91CF911F91A8 +:103850000F91FF90EF90DF90CF900895DB010D90D6 +:103860000020E9F7AD0141505109461B570BDC011F +:10387000ED91FC910280F381E02D09940C942E1CB3 +:103880000E9405180E949E09C2E7DBE10E94B00970 +:103890002097E1F30E94721BF9CF5058BB27AA274B +:1038A0000ED04DC13ED130F043D120F031F49F3FD6 +:1038B00011F41EF433C10EF4E095E7FB29C1E92FA2 +:1038C0004FD180F3BA17620773078407950718F082 +:1038D00071F49EF567C10EF4E0950B2EBA2FA02D62 +:1038E0000B01B90190010C01CA01A0011124FF27AD +:1038F000591B99F0593F50F4503E68F11A16F040A8 +:10390000A22F232F342F4427585FF3CF46953795A6 +:103910002795A795F0405395C9F77EF41F16BA0B6B +:10392000620B730B840BBAF09150A1F0FF0FBB1F19 +:10393000661F771F881FC2F70EC0BA0F621F731F62 +:10394000841F48F4879577956795B795F7959E3FBF +:1039500008F0B3CF9395880F08F09927EE0F97954D +:10396000879508950CD0EBC0E3D040F0DAD030F06A +:1039700021F45F3F19F0CCC0511115C1CFC0F0D078 +:1039800098F39923C9F35523B1F3951B550BBB2726 +:10399000AA2762177307840738F09F5F5F4F220FD3 +:1039A000331F441FAA1FA9F333D00E2E3AF0E0E8CC +:1039B00030D091505040E695001CCAF729D0FE2F18 +:1039C00027D0660F771F881FBB1F261737074807AA +:1039D000AB07B0E809F0BB0B802DBF01FF27935860 +:1039E0005F4F2AF09E3F510568F092C0DCC05F3FF8 +:1039F000ECF3983EDCF3869577956795B795F79548 +:103A00009F5FC9F7880F911D9695879597F908953F +:103A1000E1E0660F771F881FBB1F621773078407DB +:103A2000BA0720F0621B730B840BBA0BEE1F88F7EA +:103A3000E095089504D06894B111B5C0089598D068 +:103A400088F09F5790F0B92F9927B751A0F0D1F087 +:103A5000660F771F881F991F1AF0BA95C9F712C011 +:103A6000B13081F09FD0B1E008959CC0672F782FCE +:103A70008827B85F39F0B93FCCF38695779567957D +:103A8000B395D9F73EF490958095709561957F4FE9 +:103A90008F4F9F4F0895E89409C097FB3EF490958F +:103AA0008095709561957F4F8F4F9F4F9923A9F017 +:103AB000F92F96E9BB279395F695879577956795A6 +:103AC000B795F111F8CFFAF4BB0F11F460FF1BC0EA +:103AD0006F5F7F4F8F4F9F4F16C0882311F096E97D +:103AE00011C0772321F09EE8872F762F05C066232B +:103AF00071F096E8862F70E060E02AF09A95660FE4 +:103B0000771F881FDAF7880F9695879597F908959C +:103B100097F99F6780E870E060E008959FEF80EC80 +:103B2000089500240A941616170618060906089523 +:103B300000240A9412161306140605060895092E89 +:103B40000394000C11F4882352F0BB0F40F4BF2BF8 +:103B500011F460FF04C06F5F7F4F8F4F9F4F089538 +:103B600057FD9058440F551F59F05F3F71F047952E +:103B7000880F97FB991F61F09F3F79F08795089513 +:103B8000121613061406551FF2CF4695F1DF08C032 +:103B9000161617061806991FF1CF8695710561054F +:103BA00008940895E894BB2766277727CB0197F9F7 +:103BB00008950BD0C4CFB5DF28F0BADF18F09523F5 +:103BC00009F0A6CFABCF1124EECFCADFA0F3959FAB +:103BD000D1F3950F50E0551F629FF001729FBB27F4 +:103BE000F00DB11D639FAA27F00DB11DAA1F649FA0 +:103BF0006627B00DA11D661F829F2227B00DA11D53 +:103C0000621F739FB00DA11D621F839FA00D611DD8 +:103C1000221F749F3327A00D611D231F849F600DF9 +:103C2000211D822F762F6A2F11249F5750408AF032 +:103C3000E1F088234AF0EE0FFF1FBB1F661F771FBE +:103C4000881F91505040A9F79E3F510570F060CFFA +:103C5000AACF5F3FECF3983EDCF3869577956795A6 +:103C6000B795F795E7959F5FC1F7FE2B880F911DDC +:103C70009695879597F90895FA01EE0FFF1F3096F4 +:103C80002105310599F16115710561F48038BFE3B3 +:103C90009B0749F168949038810561F08038BFEF47 +:103CA0009B0741F0992342F5FF3FE10531052105CE +:103CB00011F1E8940894E795D901AA2329F4AB2FD0 +:103CC000BE2FF85FD0F310C0FF5F70F4A695E0F749 +:103CD000F73950F019F0FF3A38F49F779F930CD0E2 +:103CE0000F9007FC905808953EF018CF60E070E008 +:103CF00080E89FE308954FE79F775F934F933F934B +:103D00002F939ED02F913F914F915F9152DF05C02D +:103D100019F40EF0FDCE46CF01CF2ADFC8F3963856 +:103D2000C0F707F80F92E8942BE33AEA48EB5FE715 +:103D30004EDF0F920F920F924DB75EB70F92C0D029 +:103D4000E8E6F0E016D04F915F91EF91FF91E59595 +:103D5000EE1FFF1F49F0FE57E0684427EE0F441F97 +:103D6000FA95E1F74195550B32D00F9007FE26C02A +:103D70000895DF93CF931F930F93FF92EF92DF92FB +:103D80007B018C01689405C0DA2EEF011EDFFE0175 +:103D9000E894A5912591359145915591AEF3EF01A8 +:103DA0008EDDFE019701A801DA9479F7DF90EF909C +:103DB000FF900F911F91CF91DF9108959B01AC016E +:103DC00060E070E080E89FE3CDCDA2CEACC0D0DE55 +:103DD000E8F39923D9F3940F511DBBF39150504050 +:103DE00094F059F0882332F0660F771F881F9150A6 +:103DF0005040C1F79E3F510544F7880F911D96959D +:103E0000879597F908955F3FACF0983E9CF0BB27EB +:103E1000869577956795B79508F4B1609395C1F746 +:103E2000BB0F58F711F460FFE8CF6F5F7F4F8F4FE4 +:103E30009F4FE3CFB8CE0EF076C070CE689468CEB8 +:103E400097DEC8F39923D1F3C6F3DF93CF931F9383 +:103E50000F93FF92C92FDD2788232AF02197660F41 +:103E6000771F881FDAF720E030E040E85FEB9FE340 +:103E7000883920F0803E30F021968F770FDDE0E921 +:103E8000F0E003C00BDDEDEBF0E073DF8B01BE0172 +:103E9000EC01FB2E6F5771097595771F880B990BF5 +:103EA000FCDD28E132E741E35FE38FDEAF2D9801CF +:103EB000AE01FF900F911F91CF91DF9100DD3FCEBA +:103EC000FA01DC01AA0FBB1F9B01AC01BF5728F40C +:103ED00022273327442750781FC0B75188F4AB2FCF +:103EE0000024469537952795011CA395D2F3002011 +:103EF00069F0220F331F441FB395DAF30DD0CDCCF8 +:103F000061307105A0E88A07B94630F49B01AC0125 +:103F10006627772788279078309621F02083318391 +:103F20004283538308959F3F31F0915020F4879549 +:103F300077956795B795880F911D9695879597F911 +:103F400008950E94FE1FA59F900DB49F900DA49F01 +:103F5000800D911D1124089597FB072E16F40094EF +:103F600007D077FD09D00E940A2007FC05D03EF457 +:103F7000909581959F4F0895709561957F4F089515 +:103F8000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F5D +:103F9000EE1FFF1FA217B307E407F50720F0A21BCF +:103FA000B30BE40BF50B661F771F881F991F1A943C +:103FB00069F760957095809590959B01AC01BD0166 +:103FC000CF010895052E97FB16F4009407D057FDF6 +:103FD0000DD00E94C01F07FC09D07EF490958095FB +:103FE000709561957F4F8F4F9F4F089550954095E5 +:103FF000309521953F4F4F4F5F4F0895A29FB001DD +:10400000B39FC001A39F01D0B29F700D811D1124E9 +:10401000911D0895AA1BBB1B51E107C0AA1FBB1F1E +:10402000A617B70710F0A61BB70B881F991F5A9544 +:10403000A9F780959095BC01CD010895EE0FFF1F63 +:104040000590F491E02D09940F931F93CF93DF9384 +:10405000689F8001699F100D789F100D1124C80181 +:104060000E944220C82FD92F209731F0A80160E08C +:1040700070E08C2F0E947921CE01DF91CF911F91AA +:104080000F9108950F931F93CF93DF938230910583 +:1040900010F482E090E0E0911D06F0911E0620E011 +:1040A00030E0C0E0D0E023C040815181481759077B +:1040B000A8F04817590761F482819381209719F07D +:1040C0009B838A832EC090931E0680931D0629C071 +:1040D0002115310529F04217530710F0A90102C03C +:1040E000BE01DF0102811381EF019A01F8013097CF +:1040F000D9F62115310509F1281B390B243031057A +:1041000090F412968D919C9113976115710521F091 +:10411000FB019383828304C090931E0680931D0647 +:10412000FD01329644C0FD01E20FF31F819391938C +:10413000225031092D933C933AC020911B063091B7 +:104140001C06232B41F4209102013091030130938E +:104150001C0620931B0620910001309101012115BE +:10416000310541F42DB73EB740910401509105014E +:10417000241B350BE0911B06F0911C06E217F30798 +:10418000A0F42E1B3F0B2817390778F0AC014E5FC7 +:104190005F4F2417350748F04E0F5F1F50931C06E2 +:1041A00040931B068193919302C0E0E0F0E0CF01C1 +:1041B000DF91CF911F910F910895EF92FF920F938E +:1041C0001F93CF93DF93009709F48EC0DC01129701 +:1041D00013961C921E921297E0901D06F0901E06F8 +:1041E000E114F10489F42D913C911197280F391FA6 +:1041F00080911B0690911C068217930789F5B09356 +:104200001C06A0931B0670C0E70120E030E001C04F +:10421000EA01CA17DB0738F44A815B819E01411528 +:104220005105B1F722C0AC0142505109FA01D383C4 +:10423000C28300811181BC01600F711F6C177D0763 +:1042400061F468817981600F711F6E5F7F4F7183A8 +:1042500060836A817B81738362832115310529F430 +:10426000B0931E06A0931D063FC0F901B383A2833D +:10427000E90149915991C40FD51FAC17BD0771F4DD +:10428000DC019E918E91840F951F0296918380830D +:1042900012968D919C91139793838283A0E0B0E056 +:1042A00002C0D7017C01F701828193810097C9F791 +:1042B000C701029620813181820F931F20911B0636 +:1042C00030911C062817390779F4109729F41092B9 +:1042D0001E0610921D0604C013961C921E92129781 +:1042E000F0921C06E0921B06CDB7DEB7E6E00C9418 +:1042F0008C21DC0101C06D9341505040E0F70895DE +:104300002A88398848885F846E847D848C849B8465 +:10431000AA84B984C884DF80EE80FD800C811B8173 +:10432000AA81B981CE0FD11D0FB6F894DEBF0FBEA2 +:0A433000CDBFED010895F894FFCF12 +:10433A0000001F0620000100010030750000010185 +:10434A00000A006400E8033F065B4F666D7D077F45 +:10435A006F777C395E797152656164206661696C38 +:10436A000000000000931465140814111425143574 +:10437A001400000000081B061CA31AD21AB61AF66B +:02438A001A0017 +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_5.cpp.hex b/Firmware/Archive/grove_pi_v1_2_5.cpp.hex new file mode 100644 index 0000000..f73aa40 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_5.cpp.hex @@ -0,0 +1,1009 @@ +:100000000C9464000C9456170C9483170C948C0079 +:100010000C948C000C9414040C948C000C94230FFE +:100020000C948C000C948C000C948C000C948C0020 +:100030000C948C000C94B9110C948C000C948C00D2 +:100040000C94B0170C948C000C94001A0C94321A77 +:100050000C948C000C948C000C948C000C948C00F0 +:100060000C94F9150C948C000000000800020100AB +:100070000003040700000000000000000102040863 +:100080001020408001020408102001020408102002 +:10009000040404040404040402020202020203032E +:1000A00003030303000000002300260029000000D2 +:1000B0000000250028002B0000000000240027007D +:1000C0002A005D040915621A11241FBECFEFD8E083 +:1000D000DEBFCDBF11E0A0E0B1E0E4EAFEE302C084 +:1000E00005900D92AA34B107D9F726E0AAE4B1E051 +:1000F00001C01D92AC32B207E1F710E0C8ECD0E0CD +:1001000004C02297FE010E94021EC23CD107C9F71B +:100110000E94A61A0C94501F0C940000CF92DF92FC +:10012000EF92FF920F931F93E82FF92F05C0015014 +:1001300011092109310961F1908196239417B9F3CE +:1001400005C0015011092109310911F1908196234F +:100150009413F7CFC12CD12CE12CF12C0AC08FEFD6 +:10016000C81AD80AE80AF80A0C151D052E053F051D +:1001700079F080818623841791F36C2D7D2D8E2D4F +:100180009F2D1F910F91FF90EF90DF90CF900895DA +:1001900060E070E080E090E01F910F91FF90EF90A1 +:1001A000DF90CF900895CF93DF93EC0160E08881DA +:1001B0000E94751984E190E00E94511861E08881E5 +:1001C0000E94751984E190E0DF91CF910C94511851 +:1001D0000F931F93CF93DF93EC01062F18E007FFD7 +:1001E00002C061E001C060E089810E947519CE0102 +:1001F0000E94D300000F115091F7DF91CF911F9112 +:100200000F910895EF92FF921F93CF93DF9300D049 +:10021000CDB7DEB77C01162F27FF02C060EC01C00E +:1002200060EE26FF606147FF686046FF646017FF6D +:10023000626016FF6160C70129834A830E94E8005B +:100240002981622FC7010E94E8004A81642FC701FB +:100250000E94E800612FC7010F900F90DF91CF91AE +:100260001F91FF90EF900C94E8007F928F929F92E5 +:10027000AF92BF92CF92DF92EF92FF920F931F93B4 +:10028000CF93DF93EC01162F942E822E60E00E9414 +:10029000E80060E0CE010E94E80060E0CE010E942C +:1002A000E80060E0CE010E94E80083E0189F700142 +:1002B000112467018FEFC81AD80A570182E0A80EEF +:1002C000B11C712C8A81781600F571120FC0EB8178 +:1002D000FC81EE0DFF1D9082EB81FC81EC0DFD1D7C +:1002E0008082EB81FC81EA0DFB1D0083EB81FC81A8 +:1002F00083E0789EE00DF11D11242281418160810F +:10030000CE010E9402017394DDCF60E0CE010E9415 +:10031000E80060E0CE010E94E80060E0CE010E94AB +:10032000E80060E0CE01DF91CF911F910F91FF9027 +:10033000EF90DF90CF90BF90AF909F908F907F9085 +:100340000C94E8000F931F93CF93DF93EC01862F5B +:10035000688349832A8361E00E943C1961E08981B6 +:100360000E943C198A8161E070E023E0829FC00115 +:1003700011240E94061E9C838B8310E08A8118172B +:1003800048F400E020E040E0612FCE010E943501FA +:100390001F5FF4CFDF91CF911F910F910895FC0162 +:1003A00082810895CF93DF93EC01862F6E834F8374 +:1003B000288791E09D8760E00E943C1961E08E8172 +:1003C0000E94751919861A861B861C86DF91CF91AB +:1003D0000895DF92EF92FF920F931F93CF93DF93D5 +:1003E000EC0161E08E810E9475196AEF70E080E097 +:1003F00090E00E9429180E94FA1709851A852B851A +:100400003C85601771078207930720F419861A86C6 +:100410001B861C862D85211111C009851A852B8507 +:100420003C85DC01CB01801B910BA20BB30B803D03 +:100430009740A105B10510F481E071C01D860E94AE +:10044000FA1769877A878B879C871C821B821A829E +:100450001982188261E08E810E943C1960E08E81D1 +:100460000E94751964E170E080E090E00E94291814 +:10047000F89461E08E810E94751988E290E00E94F4 +:10048000511860E08E810E943C19F12CD12C81E042 +:10049000E12C082F10E08E810E94AB198017910784 +:1004A00041F4E39481E090E00E9451188FEFE8124C +:1004B000F2CF8E810E94AB199FEFE916C9F023E0BD +:1004C0002F1590F4F0FC10C09D2D9695969596955D +:1004D000FE01E90FF11D9081990F908328852E155B +:1004E00010F491609083D394F39495E5F912D0CFF2 +:1004F000789427E22D1590F42C8130E04881898191 +:1005000090E0840F911D4A81840F911D4B81840FCF +:10051000911D99272817390709F48ECF80E0DF91C4 +:10052000CF911F910F91FF90EF90DF900895CF92A0 +:10053000DF92EF92FF920F931F93CF93DF93EC0123 +:10054000162F0E94E901882309F450C08F818B3057 +:1005500031F008F44BC08551823078F047C06A8191 +:1005600070E080E090E00E94A61C112309F449C0CD +:1005700020E030E040E151E42AC00A81602F6F772B +:1005800070E080E090E00E94A81C20E030E040E8AD +:1005900053E40E94341D6B017C016B8170E080E0AC +:1005A00090E00E94A81C9B01AC01C701B6010E940B +:1005B000DA1B20E030E040E251E40E943E1C07FDDF +:1005C0009058112309F120E030E040E151E40E940D +:1005D000341D20E030E040EA50E40E943E1C20E060 +:1005E00030E040E052E40E94DA1B0EC067E071E0A8 +:1005F0008BE895E00E94F31A20E030E040EC5FE7E2 +:1006000005C09B01AC0102C09B01AC01B901CA014C +:10061000DF91CF911F910F91FF90EF90DF90CF90DE +:100620000895CF92DF92EF92FF92CF93DF93EC0188 +:100630000E94E901882379F18F818B3029F158F1EB +:100640008551823040F5688170E080E090E00E9442 +:10065000A61C20E030E040E853E40E94341D6B010A +:100660007C01698170E080E090E00E94A81C9B0101 +:10067000AC01C701B6010E94DA1B20E030E040E285 +:1006800051E40E943E1C11C0688170E080E090E05F +:100690000E94A61C0AC067E071E08BE895E00E940A +:1006A000F31A60E070E080EC9FE7DF91CF91FF905C +:1006B000EF90DF90CF9008958AEB94E00C94AE1405 +:1006C000CF93DF93EC0168E670E08AEB94E00E9440 +:1006D000E71460E08AEB94E00E946F148AEB94E0E8 +:1006E0000E94FC1447E050E068E670E08AEB94E07A +:1006F0000E94DA148AEB94E00E94F013282F2695CA +:10070000269526952E70922F990F990F920F8F7024 +:10071000980F98838AEB94E00E94F013982F92959B +:100720009F708F702AE0929F800D112489838AEB3D +:1007300094E00E94F013282F269526952695267082 +:10074000922F990F990F920F8F70980F9A838AEBBF +:1007500094E00E94F013982F92959F708F702AE07A +:10076000929F800D11248B838AEB94E00E94F013FA +:10077000982F92959F708F702AE0929F800D112480 +:100780008C838AEB94E00E94F013982F92959F70CF +:100790008F702AE0929F800D11248D838AEB94E064 +:1007A0000E94F013982F92959F708F702AE0929F6D +:1007B000800D112490E09F838E83DF91CF91089567 +:1007C000CF93DF9382E00E94AB19EC0183E00E949B +:1007D000AB198C239D23019719F481E080934C0180 +:1007E000DF91CF91089584E0809368008BB381718D +:1007F0008BBB8CE080936D00089548EE53E060E081 +:1008000070E084EB94E00E9448122FEF3FEFA901C3 +:1008100060EE73E084EB94E00E945E127894089599 +:1008200084EB94E00C944F121F920F920FB60F922C +:1008300011241F932F933F934F935F936F937F9355 +:100840008F939F93AF93BF93CF93DF93EF93FF93D8 +:1008500010914C011130E9F482E00E94AB19EC01D7 +:1008600083E00E94AB198C179D071CF410934A017A +:100870000CC082E00E94AB19EC0183E00E94AB192E +:10088000C817D90734F410924A0110934B01109203 +:100890004C01FF91EF91DF91CF91BF91AF919F916B +:1008A0008F917F916F915F914F913F912F911F9108 +:1008B0000F900FBE0F901F9018958AE491E00C9452 +:1008C000F303CF93DF93EC01862FE62FF0E0F9835B +:1008D000E88350E05B834A832C831E821D8261E0A3 +:1008E0000E943C1961E08A81DF91CF910C943C1900 +:1008F0001F93CF93DF93EC0160E08A810E9475190A +:100900008AE090E00E94511814E061E08A810E9420 +:10091000751960E08A810E9475191150B1F7DF9155 +:10092000CF911F910895FF920F931F93CF93DF9361 +:10093000EC018B0190E1F92E612F661F6627661F7F +:100940008A810E94751988810E94AB1961E0892B08 +:1009500009F060E088810E947519000F111FFA9458 +:1009600059F7DF91CF911F910F91FF900895EF926A +:10097000FF920F931F93CF93DF93EC017B01CB0189 +:1009800093709E838D8360E070E0CE010E9493049B +:1009900000E010E08C81882351F0C701002E02C0D6 +:1009A000880F991F0A94E2F791FF0DC009C0C70193 +:1009B000002E02C0969587950A94E2F780FF03C047 +:1009C0006FEF70E002C060E070E0CE010E9493041F +:1009D0000F5F1F4F0A301105E9F660E070E0CE01AD +:1009E0000E94930460E070E0CE010E949304CE0167 +:1009F000DF91CF911F910F91FF90EF900C947804AD +:100A0000FC016483658176810C94B7046B3008F037 +:100A10006AE02FEF3FEF02C0220F331F6A95E2F723 +:100A200020953095FC0136832583B9010C94B704D9 +:100A3000662321F06B3018F06AE001C061E05FEFDF +:100A4000560FFC012581368161E070E002C0660F1F +:100A5000771F5A95E2F7442319F0622B732B04C0D9 +:100A60006095709562237323FC01768365830C94F3 +:100A7000B704662321F06B3018F06AE001C061E032 +:100A80002FEF260F61E070E002C0660F771F2A95F6 +:100A9000E2F7FC012581368162277327768365831F +:100AA0000C94B704FC01858196810895FC0181E0D6 +:100AB00020813181232B09F480E0089580915C012D +:100AC00090915D01019690935D0180935C01089582 +:100AD0000E94FA17609376017093770180937801F2 +:100AE0009093790182E00E94AB1990936501809305 +:100AF0006401892BA9F060E088E00E94751980915B +:100B0000760190917701A0917801B091790180935D +:100B1000720190937301A0937401B093750114C096 +:100B20008091760190917701A0917801B09179013F +:100B300080936E0190936F01A0937001B093710147 +:100B400061E088E00E947519409172015091730133 +:100B5000609174017091750180916E0190916F01A7 +:100B6000A0917001B091710184179507A607B7078E +:100B700040F5481B590B6A0B7B0B40936A0150935D +:100B80006B0160936C0170936D0180917E01909177 +:100B90007F01A0918001B0918101840F951FA61F54 +:100BA000B71F80937E0190937F01A0938001B09343 +:100BB00081011092720110927301109274011092CF +:100BC0007501089564E070E08AEB94E00E94CB1414 +:100BD00068E27EE08AEB94E00E94FF1461E67EE02A +:100BE0008AEB94E00E94041541E050E068E675E06D +:100BF00080E00C942617AF92BF92CF92DF92EF92D3 +:100C0000FF920F931F93CF93DF93CDB7DEB7289753 +:100C10000FB6F894DEBF0FBECDBF8091D601909184 +:100C2000D701049709F03AC281E090E09093D50192 +:100C30008093D4018091D8019091D901863191059A +:100C400049F46091DA017091DB0183E592E00E9442 +:100C5000130F24C28531910521F583E592E00E94AE +:100C60009F10882309F41AC262E971E083E592E0DB +:100C70000E94CC0F81E08093BC0180E090E0843141 +:100C8000910554F4FC01E454FE4FDC01AE56BE4F16 +:100C90002C9121830196F3CF9093D3018093D201BD +:100CA000FDC18130910539F48091DA010E94AB19C0 +:100CB0008093D101F3C18230910539F46091DC0158 +:100CC0008091DA010E947519E9C183309105B1F470 +:100CD0008091DA010E94971890939101809390017E +:100CE0009C0197FF02C021503F4F3093BD0160E04F +:100CF00071E00E94971D8093BE01D0C184309105A0 +:100D000049F46091DC017091DD018091DA010E946B +:100D1000B418C4C18530910539F46091DC0180912B +:100D2000DA010E943C19BAC18730910509F043C02D +:100D30008091DA019091DB0180934F0190935001F3 +:100D400061E00E943C1960E080914F010E9475199A +:100D500082E090E00E94511861E080914F010E9472 +:100D6000751985E090E00E94511860E080914F0174 +:100D70000E94751960E080914F010E943C1920E4A7 +:100D800032E44FE050E061E080914F010E94D419BD +:100D90002AE330E040E050E00E94CD1DCA01B901D5 +:100DA00020E031E040E050E00E94CD1D2093BD01E5 +:100DB0006093BE0173C18830910541F481E0809356 +:100DC000BD0182E08093BE0185E022C0843191059F +:100DD00011F580918F01811107C082E592E00E9498 +:100DE000F01081E080938F012DE831E04CE851E074 +:100DF0006BE871E082E592E00E94001180918B0126 +:100E00008093BD0180918C018093BE0180918D0102 +:100E10008093BF0143C18E31910571F580918E01A0 +:100E2000811107C08AE492E00E945C0381E0809314 +:100E30008E018AE492E00E94600380914C028093CC +:100E4000BD0180914B028093BE0180914A02809344 +:100E5000BF0180914F028093C00180914E02809328 +:100E6000C101909150029093C2018093C30180917F +:100E70004D028093C40112C18832910509F05EC011 +:100E80008091860190918701892B09F407C1809197 +:100E9000DC019091DD01009719F426E04BE00BC0D6 +:100EA0008130910519F426E046E105C002970297CA +:100EB00040F426E045E16091DA018CE392E00E9483 +:100EC000D20160E08CE392E00E9497026D837E8302 +:100ED0008F8398878CE392E00E94110369837A8361 +:100EE0008B839C8310924E0110924D01FE0135962A +:100EF00080E090E001962191DC01A955BE4F2C9332 +:100F000084309105BCF384E090E090934E0180938F +:100F10004D010196DC01A955BE4FE1E0F0E0EC0F78 +:100F2000FD1FE80FF91F359720812C93883091051C +:100F300084F390934E0180934D015DC082339105FF +:100F4000D9F44091DA015091DB0121E08091DC017C +:100F50009091DD01892B09F420E061E0640FFA0132 +:100F6000329737E03E9FC0013F9F900D11248E5E67 +:100F70009D4F0E94610492C0C39709F041C0209127 +:100F8000DA013091DB012250310947E0429FC00174 +:100F9000439F900D11248E5E9D4F0E945605811136 +:100FA00061C12EC08A30910509F0F5C58091860196 +:100FB00090918701019709F071C08091660180933B +:100FC000BC0180917A0190917B01A0917C01B0914C +:100FD0007D018093BD01492F5A2F6B2F77274093B6 +:100FE0007A0150937B0160937C0170937D01409363 +:100FF000BE01A093BF0110928701109286014EC0DE +:101000008091D8019091D901C49709F406C18091CB +:10101000D8019091D901C59791F42091DA013091CE +:10102000DB012250310947E0429FC001439F900DF0 +:1010300011248E5E9D4F0E94560581112CC1809116 +:10104000D8019091D901C69709F440C18091D80187 +:101050009091D901C79709F45EC18091D801909110 +:10106000D901C89709F484C18091D8019091D90120 +:101070008634910509F0A3C16091DA017091DB011A +:1010800041E0460F9B0122503109C901880F991F89 +:10109000820F931F80509E4F0E94791280916801A9 +:1010A00090916901892BD9F10E94FA170091820170 +:1010B000109183012091840130918501601B710B97 +:1010C000820B930B613375478105910540F181E0F7 +:1010D00090E0909367018093660180917E019091EA +:1010E0007F01A0918001B091810180937A0190935A +:1010F0007B01A0937C01B0937D0110927E01109240 +:101100007F0110928001109281010E94FA17609372 +:101110008201709383018093840190938501809173 +:101120005E0190915F01892B39F180914B018130F3 +:1011300019F520914A01809162019091630121305B +:1011400049F401968931910554F01092630110928F +:10115000620109C0019797FF02C088E190E0909377 +:1011600063018093620181E080936001809162015C +:101170008093610110924B01809158019091590127 +:10118000892B09F454C50E94FA170091540110915B +:1011900055012091560130915701601B710B820B54 +:1011A000930B613D77408105910508F440C520917E +:1011B0005C0130915D014EE1429FC001439F900D63 +:1011C000112469E470E00E94971DE62F472F609379 +:1011D0005A0170935B0181E080935101862F972F14 +:1011E00060E071E00E94971D809352012E2F342FF2 +:1011F00037FF02C021503F4F3093530110925D01E1 +:1012000010925C010E94FA1760935401709355018B +:1012100080935601909357010AC52091DA013091CD +:10122000DB012250310917E0129FC001139F900D7E +:1012300011248E5E9D4F0E945605882309F4E7CE47 +:101240002091DA013091DB0122503109129FC00157 +:10125000139F900D11246091DC018E5E9D4F0E94C2 +:1012600006051CCF61E08091DC019091DD01892BA6 +:1012700009F460E02091DA013091DB01225031095C +:1012800047E0429FC001439F900D11248E5E9D4F09 +:101290000E94000503CF41E08091DE019091DF01C3 +:1012A000892B09F440E02091DA013091DB012250D2 +:1012B000310957E0529FC001539F900D1124609156 +:1012C000DC018E5E9D4F0E941805E8CE2091DA0168 +:1012D0003091DB012250310917E0129FC001139FAA +:1012E000900D11248E5E9D4F0E945605882309F4AF +:1012F000ADCE2091DA013091DB0122503109129FED +:10130000C001139F900D11246091DC018E5E9D4FF2 +:101310000E943905C3CE2091DA013091DB012250C1 +:10132000310917E0129FC001139F900D11248E5EAA +:101330009D4F0E945605882309F48FCE80E090E0EF +:101340009091DE016091DC017091DD0168277927C1 +:101350002091DA013091DB0122503109129FC00146 +:10136000139F900D11248E5E9D4F0E94B70496CE60 +:101370002091DA013091DB012250310917E0129FF0 +:10138000C001139F900D11248E5E9D4F0E94560543 +:10139000882309F469CE2091DA013091DB012250D3 +:1013A0003109129FC001139F900D11248E5E9D4F35 +:1013B0000E9452058093BD019093BE016FCE873489 +:1013C000910519F52091DA013091DB0122503109A4 +:1013D000C901880F991F820F931F80509E4F0E9452 +:1013E000E113882391F02091DA013091DB01225042 +:1013F0003109C901880F991F820F931F6091DC0189 +:1014000080509E4F0E94901249CE8091D8019091B9 +:10141000D9018834910559F52091DA013091DB0129 +:1014200022503109C901880F991F820F931F8050E4 +:101430009E4F0E94E1138823D1F080E090E09091CC +:10144000DE016091DC017091DD0168277927209130 +:10145000DA013091DB0122503109C901880F991F4F +:10146000820F931FE12C00E024E040E05CC08091FB +:10147000D8019091D9018934910589F42091DA013C +:101480003091DB0122503109C901880F991F820F69 +:10149000931F80509E4F0E94E11381112BC08091B9 +:1014A000D8019091D9018A34910509F041C0209169 +:1014B000DA013091DB0122503109C901880F991FEF +:1014C000820F931F80509E4F0E94E113882381F169 +:1014D0002091DA013091DB0122503109C901880FD6 +:1014E000991F820F931F6091DE0180509E4F0E94D2 +:1014F000DA1338C080E090E09091DE016091DC0169 +:101500007091DD01682779272091DA013091DB01A4 +:1015100022503109C901880F991F820F931FE12CB6 +:1015200000E024E041E080509E4F0E946413B6CD5D +:101530008091D8019091D9018B34910519F52091B2 +:10154000DA013091DB0122503109C901880F991F5E +:10155000820F931F80509E4F0E94E113882391F0C9 +:101560008091DE0189832091DA013091DB012250E4 +:101570003109C901880F991F820F931F2091DC0147 +:1015800041E00FC18091D8019091D9018C3491052F +:1015900009F075C02091DA013091DB012250310948 +:1015A000C901880F991F820F931F80509E4F0E9480 +:1015B000E113882309F463C08091DC019091DD017F +:1015C0000AE010E0B8010E94971D2091DA013091E5 +:1015D000DB0122503109C901880F991F820F931F27 +:1015E00080509E4F0E94DA1389838091DC01909194 +:1015F000DD01B8010E94971D2091DA013091DB01D5 +:1016000022503109A901440F551F420F531F682F63 +:10161000CA0180509E4F0E94DA1380688A838091AD +:10162000DE019091DF01B8010E94971D2091DA013F +:101630003091DB0122503109C901880F991F820FB7 +:10164000931F80509E4F0E94DA138B838091DE019E +:101650009091DF01B8010E94971D2091DA0130912D +:10166000DB0122503109A901440F551F420F531FBE +:10167000682FCA0180509E4F0E94DA1367C0809184 +:10168000D8019091D9018D34910589F42091DA0126 +:101690003091DB0122503109C901880F991F820F57 +:1016A000931F80509E4F0E94E11381111EC08091B4 +:1016B000D8019091D9018E34910509F049C020914B +:1016C000DA013091DB0122503109C901880F991FDD +:1016D000820F931F80509E4F0E94E1138823C1F117 +:1016E0008FEF89838A838B8331C01091DC01A090B6 +:1016F000DE01B090DF01AA0CBB1CAA0CBB1CC12CE4 +:10170000D12CCA14DB040CF0C9CC812F0E9497188D +:10171000BC012091DA013091DB0122503109C9016D +:10172000880F991F820F931FE12C00E024E040E016 +:1017300080509E4F0E9464136AEF70E080E090E05A +:101740000E9429182FEFC21AD20ADBCF8C831CC04B +:101750008091D8019091D9018F34910551F5209154 +:10176000DA013091DB0122503109C901880F991F3C +:10177000820F931F80509E4F0E94E1138823C9F06F +:1017800019821A821B821C822091DA013091DB01BE +:1017900022503109C901880F991F820F931F20E041 +:1017A00044E0BE016F5F7F4F80509E4F0E94171331 +:1017B00075CC8091D8019091D9018A35910569F451 +:1017C0008091DA01809388018091DC018093890106 +:1017D0008091DE0180938A0161CC8B359105B1F453 +:1017E0006091DA017091DB0141E0460F9B012250CC +:1017F000310955E0529FC001539F900D1124209153 +:10180000DC018E519E4F0E94A20148CC8C3591057F +:1018100009F044C06091DA017091DB0141E0460FAC +:101820009B012250310955E0529FC001539F900DFA +:1018300011242091DC018E519E4F0E94A201109133 +:10184000DE0112FBDD24D0F8D19411FBCC24C0F8CA +:10185000C19411701195E12CF12CE5E0BE2E809120 +:10186000DC019091DD01E816F9060CF017CC6091CF +:10187000DA017091DB0162507109B69EC001B79E1A +:10188000900D1124012F2C2D4D2D6E2D8E519E4F1C +:101890000E9435013FEFE31AF30AE1CF8D35910540 +:1018A00009F074C02091DC013091DD018091DA01F2 +:1018B0009091DB01232BB1F49C012250310945E0CA +:1018C000429FC001439F900D112400918A012091F5 +:1018D0008901409188016091DE018E519E4F0E94E6 +:1018E0003501DCCB9C012250310945E0429FC0010B +:1018F000439F900D11248E519E4F0E94CF01E12CE9 +:10190000F12CC82ED12C15E0EC14FD040CF0C6CB44 +:101910002091DC013091DD012130310541F48091CD +:10192000DE019091DF01E816F906B1F42BC02230F8 +:10193000310541F48091DE019091DF018E159F0504 +:101940005CF420C023303105E9F48091DE019091F0 +:10195000DF01E816F906B4F02091DA013091DB01DD +:1019600022503109129FC001139F900D1124009144 +:101970008A0120918901409188016E2D8E519E4FE0 +:101980000E9435014FEFE41AF40ABECF8E3591055F +:1019900009F052C08091DE019091DF0118161906FE +:1019A00034F081E090E09093DF018093DE0120919C +:1019B000DA013091DB012250310945E0429FC0013C +:1019C000439F900D11248E519E4F0E94CF01E090B5 +:1019D000DC01F090DD01C82ED12C15E0EC14FD04E3 +:1019E0000CF05CCB8091DC019091DD019701281B0C +:1019F000390BC9016091DE017091DF010E94971DD2 +:101A0000892BB1F42091DA013091DB0122503109A8 +:101A1000129FC001139F900D112400918A01209103 +:101A20008901409188016E2D8E519E4F0E94350193 +:101A30003FEFE31AF30AD2CF8F35910509F084C046 +:101A40002091DA013091DB012250310945E0429FBB +:101A5000C001439F900D11248E519E4F0E94CF01D3 +:101A6000182F8091DE019091DF01C12ED12CE12C45 +:101A7000F12C892B99F515E0EC14FD040CF00ECB3C +:101A80002091DC013091DD018091DA019091DB0140 +:101A9000E216F3067CF49C0122503109129FC0012A +:101AA000139F900D112400918A012091890140918A +:101AB00088010BC09C0122503109129FC001139F65 +:101AC000900D112400E020E040E06E2D8E519E4FDD +:101AD0000E9435014FEFE41AF40ACECF75E0B72E1D +:101AE00096012E193F0909F4D9CA8091DC01909121 +:101AF000DD01A601481B590BCA014091DA01509142 +:101B0000DB01612F6E19425051092817390764F023 +:101B1000B49EC001B59E900D112400918A012091C0 +:101B200089014091880108C0B49EC001B59E900D06 +:101B3000112400E020E040E08E519E4F0E943501CC +:101B40005FEFE51AF50ACCCF8E309105C1F441E084 +:101B500050E068E675E080E00E94261781E090E0A2 +:101B600090936901809368010E94FA176093820143 +:101B700070938301809384019093850153C08F30CB +:101B8000910509F00FCA80E00E9446171092690182 +:101B90001092680147C08031910559F48AE491E0C0 +:101BA0000E94FD0381E090E090935F0180935E01CD +:101BB00039C08131910549F48AE491E00E94100412 +:101BC00010925F0110925E0169CA8231910501F5A0 +:101BD00060E082E00E943C1943E050E06EE575E071 +:101BE00080E00E94261710925D0110925C010E9415 +:101BF000FA176093540170935501809356019093A6 +:101C0000570181E090E090935901809358010AC0F8 +:101C10000D9709F043CA109259011092580180E0C3 +:101C20000E9446171092D9011092D80137CA2896FF +:101C30000FB6F894DEBF0FBECDBFDF91CF911F91DD +:101C40000F91FF90EF90DF90CF90BF90AF900895ED +:101C50000F931F93CF93DF9301E010E08AEB94E0A2 +:101C60000E94E813892B41F18AEB94E00E94E8136B +:101C7000049761F41092D5011092D4011092D7010B +:101C80001092D6011093870100938601C091D6016E +:101C9000D091D701CE0101969093D7018093D601C0 +:101CA0008AEB94E00E94F013FE01EE0FFF1FE85252 +:101CB000FE4F91838083D2CFDF91CF911F910F91FF +:101CC00008958091D8019091D901019731F46091E4 +:101CD000D1018AEB94E00E946F148091D801909119 +:101CE000D9019C012B7F2330310511F0C89741F4B5 +:101CF00043E050E06CEB71E08AEB94E00E94421408 +:101D00008091D8019091D9018830910511F04497C4 +:101D100041F444E050E06CEB71E08AEB94E00E9407 +:101D200042148091D8019091D9014E9741F449E035 +:101D300050E06CEB71E08AEB94E00E9442148091D9 +:101D4000D8019091D901889741F449E050E067EAC1 +:101D500071E08AEB94E00E9442148091D801909146 +:101D6000D901459751F445E150E06CEB71E08AEB05 +:101D700094E00E9442141092BC018091D80190918D +:101D8000D9010A9781F444E050E06CEB71E08AEBF2 +:101D900094E00E9442141092670110926601109222 +:101DA000D9011092D8018091D8019091D9010B9757 +:101DB00071F442E050E060E671E08AEB94E00E944A +:101DC0004214109260011092D9011092D8018091B2 +:101DD000D8019091D9010C9771F443E050E061E58E +:101DE00071E08AEB94E00E9442141092510110922B +:101DF000D9011092D8010895F89482E08093B00040 +:101E00008093B10094E69093B3001092B200809357 +:101E100070007894809358021092B3048091570216 +:101E200060E00C943C19609357020E94FC0E64E140 +:101E300070E080E090E00E94291882E080935802D0 +:101E40001092B30408951F920F920FB60F921124AF +:101E50002F933F934F935F936F937F938F939F93B2 +:101E6000AF93BF93EF93FF93809157020E94AB19FA +:101E70002091590230915A022F5F3F4F30935A02FE +:101E8000209359029091B304909158029330B9F085 +:101E900018F4923039F056C0943051F1953009F46D +:101EA0004BC050C081114EC08091590290915A028E +:101EB0008436910508F442C01092B3041BC08130EF +:101EC00009F040C0E091B3048E0F8093B304F0E0BA +:101ED0008091590290915A02EE0FFF1FE55AFD4F73 +:101EE0009183808310925A021092590284E021C09B +:101EF000811117C0E091B30481E08E0F8093B30489 +:101F0000F0E08091590290915A02EE0FFF1FE55ABE +:101F1000FD4F9183808310925A021092590283E000 +:101F200008C08091590290915A028536910550F06F +:101F300085E08093580206C0811104C010925A02B5 +:101F400010925902FF91EF91BF91AF919F918F91A4 +:101F50007F916F915F914F913F912F910F900FBEA5 +:101F60000F901F9018958BE592E0FB019183808381 +:101F70008091B30490E093838283809158028530EE +:101F800041F482E0809358021092B30481E090E023 +:101F9000089580E090E008952F923F924F925F92D3 +:101FA0006F927F928F929F92AF92BF92CF92DF9269 +:101FB000EF92FF920F931F93CF93DF931C01FB01CE +:101FC000DC0112962D913C9113973901B4E06B1A04 +:101FD000710877FE04C03901CBE06C0E711CA4E0DF +:101FE00075946794AA95E1F7D1010D911C9140E099 +:101FF00050E080E090E07801B6E0EB0EF11CD701F4 +:10200000A40FB51F6D917C91860F971F4C5F5F4F9A +:1020100048325105A1F76AE070E00E94971D7B01EC +:102020004B01880C991CD801189640E050E060E004 +:1020300070E080E090E08901095011092D913C91F8 +:1020400011978216930638F42D913C911197820FC7 +:10205000931F6F5F7F4F6A30710559F014969A0194 +:102060002E5F3F4F4A5F5F4F4017510714F4A9019D +:10207000E5CF0E94971D562EDF01169648E050E0EE +:1020800020E030E0CC24C394D12C2615370544F54C +:102090001C928A0187E090E0E10168817981600FFC +:1020A000711FEB01A880B9804C90B601082E01C0C9 +:1020B000660F0A94EAF78A149B0410F4642902C09C +:1020C000609564216C9301970C5F1F4F8F3FDFEF8A +:1020D0009D0711F72F5F3F4F1196405E5F4FD5CFA1 +:1020E00085E0860D8083E101A881B98112968D91EA +:1020F0009C9113978183A881B98114968D919C91AD +:1021000015978283E3825482658282E0809358022D +:102110001092B30480818F5FDF91CF911F910F9157 +:10212000FF90EF90DF90CF90BF90AF909F908F90F7 +:102130007F906F905F904F903F902F900895CF9336 +:10214000DF93EC01BC010E94B30F892BC1F08A819F +:102150009B818034910534F004979C0127703327CC +:10216000232B31F082E0809358021092B30407C011 +:10217000B4E095958795BA95E1F78A5F01C080E054 +:10218000DF91CF9108951F93CF93DF931F92CDB727 +:10219000DEB7162F8AEB94E049830E94AE146CE4FC +:1021A00070E08AEB94E00E94E714612F8AEB94E0E0 +:1021B0000E946F144981642F8AEB94E00E946F148F +:1021C0008AEB94E00F90DF91CF911F910C94FC1457 +:1021D000462F67E00C94C310462F68E00C94C310A0 +:1021E000CF93DF93EC0160E00E94E81060E0CE0145 +:1021F0000E94EC1061E0CE01DF91CF910C94E810C9 +:102200004F925F926F927F928F929F92AF92BF9206 +:10221000CF92DF92EF92FF920F931F93CF93DF93B2 +:1022200000D01F92CDB7DEB75B016A01790180E46F +:102230008B838A8389830E94FA172B013C018AEBE6 +:1022400094E00E94E813181619066CF40E94FA171D +:102250006419750986099709653F714081059105E3 +:1022600074F380E072C08AEB94E00E94F01343E0C4 +:1022700050E06CE470E08AEB94E00E94DA140E9473 +:10228000FA172B013C018E010F5F1F4F48018AEBAB +:1022900094E00E94E813892B69F1C8018819990913 +:1022A0000397D4F40E94FA172B013C01F8018081B6 +:1022B000803490F08AEB94E00E94F013F801808360 +:1022C0000E94FA1764197509860997096333710525 +:1022D000810591055CF3C5CF0E94FA170F5F1F4F70 +:1022E0006419750986099709653F71408105910553 +:1022F00074F2B7CF898124E0829FC0011124282F76 +:1023000087FF02C023E0280F25952595F50120833E +:102310008A81F4E08F9FC0011124282F87FF02C01B +:1023200023E0280F25952595F60120838B81F4E085 +:102330008F9FC0011124282F87FF02C023E0280FA0 +:1023400025952595F701208381E00F900F900F9040 +:10235000DF91CF911F910F91FF90EF90DF90CF9081 +:10236000BF90AF909F908F907F906F905F904F90B5 +:1023700008951F920F920FB60F9211242F933F933F +:102380004F935F936F937F938F939F93AF93BF937D +:10239000EF93FF93E091B804F091B9040995FF9190 +:1023A000EF91BF91AF919F918F917F916F915F91CD +:1023B0004F913F912F910F900FBE0F901F90189546 +:1023C000FC01A3E0440F551F661F771FAA95D1F7A4 +:1023D0004115510581E06807710514F481E00EC0D4 +:1023E00033E075956795579547953A95D1F741151F +:1023F000510581E0680771051CF482E0828331C0D9 +:1024000023E075956795579547952A95D1F741151E +:10241000510581E06807710514F483E0EFCF92E085 +:1024200075956795579547959A95D1F7411551053B +:1024300081E06807710514F484E0E0CF82E07595CF +:102440006795579547958A95D1F785E08283411521 +:10245000510581E06807710524F04FEF5FEF60E000 +:1024600070E08FB78383F894518340835093870043 +:102470004093860083818FBF80918100887F809305 +:102480008100809181009281892B80938100089541 +:102490001092800020E1209381000C94E011EFE67F +:1024A000F0E080818E7F80830895E1E8F0E0208174 +:1024B000DC0112968C91282B208308950F931F9393 +:1024C000CF93DF93EC018B01BA01A9011416150615 +:1024D0001606170614F40E94E0111D830C8381E098 +:1024E00080936F00CE01DF91CF911F910F910C94DB +:1024F0005512CF93DF93EC01862F6883498360E008 +:102500000E943C1960E089810E943C1960E088814A +:102510000E94751960E08981DF91CF910C94751943 +:10252000683010F4685F01C06FE0FC0162830895B9 +:1025300061E0FC0181810E943C1982E390E00C94EF +:102540005118CF93DF93EC0161E089810E943C191F +:1025500082E390E00E94511860E088810E943C195B +:1025600082E390E00E94511860E089810E943C194A +:1025700082E390E0DF91CF910C9451180F931F9359 +:10258000CF93DF93EC01062F18E061E088810E9471 +:102590003C1982E390E00E94511800FF02C060E005 +:1025A00001C061E089810E943C1982E390E00E94B1 +:1025B000511860E088810E943C1982E390E00E94FB +:1025C00051180695115009F761E088810E943C1965 +:1025D00060E089810E943C1982E390E00E945118DA +:1025E00060E088810E943C1982E390E00E945118CB +:1025F00089810E94AB19182F811104C061E0898183 +:102600000E943C1982E390E00E94511861E08881A9 +:102610000E943C1982E390E00E94511881E0111160 +:1026200001C080E0DF91CF911F910F910895AF928B +:10263000BF92DF92EF92FF920F931F93CF93DF939E +:1026400000D0CDB7DEB75C01F62EE42E29837A8365 +:102650000E94981260E4C5010E94BE12C5010E944A +:10266000A112C5010E9498122981622F63706054E3 +:10267000C5010E94BE12DF2C0F2D7A81172F802FEB +:102680008D198E1538F4F80161918F01C5010E94F2 +:10269000BE12F5CFC5010E94A112C5010E94981279 +:1026A000F50162816058C5010E94BE12C5010F90FC +:1026B0000F90DF91CF911F910F91FF90EF90DF90DE +:1026C000BF90AF900C94A1124F925F926F927F9245 +:1026D0008F929F92AF92BF92CF92DF92EF920F9321 +:1026E0001F93CF93DF9300D000D0CDB7DEB73C016E +:1026F0005B01322F202F89E1882E81E0982ECE01B8 +:1027000001966C01FC0101E01FE3D4015E904E9044 +:102710004D01C501B2010E94971D6115710561F45B +:10272000411106C0002321F08E2F8C19833011F443 +:10273000108313C0108211C0A62FAF70B0E0A75E47 +:10274000BE4F8C918083649DC001659D900D749DEA +:10275000900D1124A81AB90A00E0EE2039F08E2F4E +:102760008C19813019F48081806880833196B1E1C1 +:102770008B16B1E09B0649F664E070E0631B7109BB +:102780006C0D7D1D432FC3010E9417130F900F90F6 +:102790000F900F90DF91CF911F910F91EF90DF90ED +:1027A000CF90BF90AF909F908F907F906F905F90F1 +:1027B0004F9008956F70E62FF0E0E75EFE4F808146 +:1027C0000895FC0181E09081911101C080E008959D +:1027D0008091EE0490E02091EF04821B910908950E +:1027E0002091EF048091EE04281750F4E22FF0E0DE +:1027F000E051FB4F808190E02F5F2093EF0408951C +:102800008FEF9FEF0895E091EF048091EE04E817B9 +:1028100030F4F0E0E051FB4F808190E008958FEFBD +:102820009FEF08950895E091C604F091C704309792 +:10283000E1F03091EF042091EE043217B0F040E067 +:10284000242F30E02617370754F4DC01A20FB31F02 +:102850005C91D901A051BB4F5C934F5FF1CF1092B7 +:10286000EF046093EE04CB0109940895E091C8044D +:10287000F091C904309729F01092CC041092CB0447 +:1028800009940895CF92DF92EF92FF920F931F93D6 +:10289000CF93DF937C01CB018A012091CA042223CC +:1028A00089F0EB016B01C40ED51ECC15DD0569F076 +:1028B0006991D701ED91FC910190F081E02DC70164 +:1028C0000995F3CF642F0E94C615C801DF91CF91FF +:1028D0001F910F91FF90EF90DF90CF900895CF93CD +:1028E000DF931F92CDB7DEB769832091CA042223FC +:1028F000D1F02091CB04203240F021E030E0FC0107 +:102900003383228380E090E015C08091CC04E82FCF +:10291000F0E0E353FB4F998190838F5F8093CC0469 +:102920008093CB0405C061E0CE0101960E94C615DC +:1029300081E090E00F90DF91CF910895FC01138228 +:10294000128248EE53E060E070E044835583668372 +:1029500077838DE291E09183808308951092EF0454 +:102960001092EE041092CC041092CB040C940D152E +:10297000CF93DF93EC01862F0E942B1586E394E121 +:102980000E94E41583E194E10E94DF15CE01DF91FE +:10299000CF910C94AE140C94B814862F413208F0E9 +:1029A00040E260EF74E00E942F151092EF048093D4 +:1029B000EE04089521E00C94CD1481E08093CA04C4 +:1029C0006093ED041092CC041092CB0408950C9403 +:1029D000DD140F93062F21E04091CB046DEC74E0E1 +:1029E0008091ED040E9473151092CC041092CB04D8 +:1029F0001092CA040F91089561E00C94E914709349 +:102A0000C7046093C60408957093C9046093C80412 +:102A100008958AEB94E00C949E1410927D0581E059 +:102A200080937B0510927A0561E082E10E9475191E +:102A300061E083E10E947519E9EBF0E080818E7F0F +:102A4000808380818D7F808388E48093B80085E4D3 +:102A50008093BC000895880F8093BA000895413296 +:102A600008F03FC090917D059111FCCF91E09093CB +:102A70007D0520937B052FEF2093100510925505BF +:102A8000240F2093540590937C0590917C05880F2A +:102A9000892B80937C0580917A05813041F41092D6 +:102AA0007A0580917C058093BB0085EC01C085EEA2 +:102AB0008093BC0080917D058130E1F380915505C4 +:102AC000841710F44091550526E535E0FB01D90146 +:102AD0008A2F821B841718F48D918193F9CF842F4C +:102AE000089580E008950F93413208F046C0909118 +:102AF0007D059111FCCF92E090937D0500937B05BD +:102B00009FEF909310051092550540935405FB01DB +:102B100066E575E0DB019A2F961B941718F49191E6 +:102B20009D93F9CF10927C0590917C05880F892B9D +:102B300080937C0580917A05813041F410927A056A +:102B400080917C058093BB0085EC01C085EE80936D +:102B5000BC00222321F080917D058230E1F3809139 +:102B600010058F3F61F080911005803251F0809107 +:102B70001005803341F483E007C081E005C080E0A8 +:102B800003C082E001C084E00F910895613298F49F +:102B900020917D05243089F460933205FC0184E3A3 +:102BA00095E0DC012A2F281B261718F421912D937C +:102BB000F9CF80E0089581E0089582E00895909330 +:102BC000770580937605089590937905809378052D +:102BD000089585ED8093BC008091BC0084FDFCCFFE +:102BE00010927D05089585EC8093BC0010927D05C0 +:102BF00008951F920F920FB60F9211242F933F93B7 +:102C00004F935F936F937F938F939F93AF93BF93F4 +:102C1000EF93FF938091B900887F803609F49CC0C0 +:102C200068F5883209F45BC090F4803109F454C02F +:102C300038F4882309F4F5C0883009F44DC0F5C094 +:102C4000883109F44CC0803209F45DC0EEC0803494 +:102C500009F468C048F4803309F455C0883309F09A +:102C6000E4C080931005A8C0803509F44FC08835B2 +:102C700009F45DC0883409F0D8C0D5C0883909F49A +:102C8000C6C0A8F4883709F467C038F4883609F458 +:102C900063C0803709F460C0C8C0883809F4B7C081 +:102CA000803909F45FC0803809F0BFC05BC0803B49 +:102CB00009F485C038F4803A09F466C0883A09F40A +:102CC0007EC0B3C0803C09F4A6C0883C09F4A3C010 +:102CD000883B09F489C0A9C080917C0510C09091FF +:102CE000550580915405981770F5E091550581E0E0 +:102CF0008E0F80935505F0E0EA5AFA4F8081809359 +:102D0000BB0085EC85C0809310058DC0E091550512 +:102D100081E08E0F809355058091BB00F0E0EA5A68 +:102D2000FA4F808390915505809154056DC0E091D4 +:102D3000550581E08E0F809355058091BB00F0E032 +:102D4000EA5AFA4F808380917B0581116CC081E043 +:102D500080937A0584EA60C083E080937D051092B9 +:102D60001105CFCF80911105803208F050C0E0915D +:102D7000110581E08E0F809311058091BB00F0E07A +:102D8000EE5EFA4F8083BDCF80911105803230F422 +:102D9000E0911105F0E0EE5EFA4F10820E94E91515 +:102DA0006091110570E0E0917605F091770582E180 +:102DB00095E00995109211050E94F31536C084E044 +:102DC00080937D051092330510923205E0917805CD +:102DD000F0917905099580913205811105C081E056 +:102DE0008093320510923405E091330581E08E0F17 +:102DF00080933305F0E0EC5CFA4F80818093BB0058 +:102E00009091330580913205981708F47ACF85E8C0 +:102E10008093BC000AC085EC8093BC0010927D05B5 +:102E200004C0109210050E94E915FF91EF91BF9127 +:102E3000AF919F918F917F916F915F914F913F9152 +:102E40002F910F900FBE0F901F9018958230E8F4CD +:102E5000E82FF0E0EE0FFF1FE258FA4F7183608316 +:102E6000813041F0809169008C7F842B80936900D0 +:102E7000E89A089580916900440F551F440F551F2B +:102E8000837F842B80936900E99A0895823068F4E7 +:102E9000813011F0E89801C0E998E82FF0E0EE0FDA +:102EA000FF1FE258FA4F1182108208951F920F926D +:102EB0000FB60F9211242F933F934F935F936F930D +:102EC0007F938F939F93AF93BF93EF93FF938091E3 +:102ED0007E0590917F05892B29F0E0917E05F09188 +:102EE0007F050995FF91EF91BF91AF919F918F91D0 +:102EF0007F916F915F914F913F912F910F900FBEF6 +:102F00000F901F9018951F920F920FB60F921124D9 +:102F10002F933F934F935F936F937F938F939F93E1 +:102F2000AF93BF93EF93FF938091800590918105BC +:102F3000892B29F0E0918005F09181050995FF9199 +:102F4000EF91BF91AF919F918F917F916F915F9121 +:102F50004F913F912F910F900FBE0F901F9018959A +:102F60001F920F920FB60F9211242F933F938F93BE +:102F70009F93AF93BF938091830590918405A09117 +:102F80008505B09186053091820523E0230F2D370A +:102F900020F40196A11DB11D05C026E8230F02965D +:102FA000A11DB11D20938205809383059093840514 +:102FB000A0938505B093860580918705909188053B +:102FC000A0918905B0918A050196A11DB11D80933C +:102FD000870590938805A0938905B0938A05BF91D2 +:102FE000AF919F918F913F912F910F900FBE0F90B6 +:102FF0001F9018952FB7F894609183057091840500 +:1030000080918505909186052FBF08953FB7F8946C +:103010008091870590918805A0918905B0918A05D6 +:1030200026B5A89B05C02F3F19F00196A11DB11D23 +:103030003FBF6627782F892F9A2F620F711D811D40 +:10304000911D42E0660F771F881F991F4A95D1F79F +:103050000895CF92DF92EF92FF92CF93DF936B01AF +:103060007C010E940618EB01C114D104E104F104B3 +:1030700089F00E94F51A0E9406186C1B7D0B683EB1 +:10308000734090F381E0C81AD108E108F108C851F3 +:10309000DC4FEACFDF91CF91FF90EF90DF90CF90A0 +:1030A00008958230910538F0880F991F880F991F75 +:1030B00005970197F1F70895789484B5826084BDEF +:1030C00084B5816084BD85B5826085BD85B581602C +:1030D00085BDEEE6F0E0808181608083E1E8F0E08C +:1030E0001082808182608083808181608083E0E8BB +:1030F000F0E0808181608083E1EBF0E0808184609A +:103100008083E0EBF0E0808181608083EAE7F0E09B +:1031100080818460808380818260808380818160FF +:1031200080838081806880831092C10008958E30F2 +:1031300008F08E5087702091060190E4299F90013D +:103140001124822B80937C0080917A00806480938C +:103150007A0080917A0086FDFCCF809178002091E2 +:10316000790090E0922B08951F93CF93DF93182F4F +:10317000EB0161E00E943C19209711F460E004C06B +:10318000CF3FD10539F461E0812FDF91CF911F91BD +:103190000C947519E12FF0E0E859FF4FE491E3300A +:1031A000F9F048F4E130B9F0E230A1F584B580627D +:1031B00084BDC8BD34C0E730E9F0E83019F1E4302F +:1031C00049F580918000806280938000D0938B00CD +:1031D000C0938A0024C084B5806884BDC7BD1FC069 +:1031E00080918000806880938000D0938900C09394 +:1031F000880015C08091B00080688093B000C093B3 +:10320000B3000DC08091B00080628093B000C09385 +:10321000B40005C0C038D1050CF0B5CFAFCFDF91F9 +:10322000CF911F910895833081F028F4813099F077 +:103230008230A1F008958730A9F08830B9F0843049 +:10324000D1F4809180008F7D03C0809180008F77C2 +:1032500080938000089584B58F7702C084B58F7DF8 +:1032600084BD08958091B0008F7703C08091B00035 +:103270008F7D8093B0000895CF93DF9390E0FC01A1 +:10328000E458FF4F2491FC01E057FF4F84918823BD +:1032900049F190E0880F991FFC01E854FF4FA59178 +:1032A000B49182559F4FFC01C591D4919FB7611194 +:1032B00008C0F8948C91209582238C938881822376 +:1032C0000AC0623051F4F8948C91322F30958323E8 +:1032D0008C938881822B888304C0F8948C91822BF4 +:1032E0008C939FBFDF91CF9108950F931F93CF933E +:1032F000DF931F92CDB7DEB7282F30E0F901E859F0 +:10330000FF4F8491F901E458FF4F1491F901E05700 +:10331000FF4F04910023C9F0882321F069830E94A4 +:1033200013196981E02FF0E0EE0FFF1FE255FF4F08 +:10333000A591B4919FB7F8948C91611103C0109539 +:10334000812301C0812B8C939FBF0F90DF91CF9180 +:103350001F910F910895CF93DF93282F30E0F9014B +:10336000E859FF4F8491F901E458FF4FD491F901D6 +:10337000E057FF4FC491CC2391F081110E941319A3 +:10338000EC2FF0E0EE0FFF1FEC55FF4FA591B4912D +:103390002C912D2381E090E021F480E002C080E0B8 +:1033A00090E0DF91CF9108950F931F93762F90E0D7 +:1033B000FC01E458FF4F6491FC01E057FF4FE4919A +:1033C0007111762FF0E0EE0FFF1FEC55FF4F859146 +:1033D000949189019A013F70472F0E948E006115D8 +:1033E00071058105910531F06F5F7F4F8F4F9F4FC2 +:1033F0009F7003C060E070E0CB011F910F910895B2 +:103400001F920F920FB60F9211242F938F939F93B9 +:10341000EF93FF93E0919B05F0919C058081E091F3 +:10342000A105F091A20582FD12C090818091A405B2 +:103430008F5F8F732091A505821751F0E091A4054D +:10344000F0E0E557FA4F958F8093A40501C0808185 +:10345000FF91EF919F918F912F910F900FBE0F9041 +:103460001F9018951F920F920FB60F9211242F9351 +:103470003F934F935F936F937F938F939F93AF93FC +:10348000BF93EF93FF938BE895E00E94311BFF9170 +:10349000EF91BF91AF919F918F917F916F915F91CC +:1034A0004F913F912F910F900FBE0F901F90189545 +:1034B0008BE895E00E94F61A21E0892B09F420E0C0 +:1034C000822F089510928E0510928D0588EE93E05C +:1034D000A0E0B0E080938F0590939005A0939105B4 +:1034E000B09392058DE391E090938C0580938B05CA +:1034F00085EC90E0909398058093970584EC90E09C +:1035000090939A058093990580EC90E090939C05A8 +:1035100080939B0581EC90E090939E0580939D05A0 +:1035200082EC90E09093A00580939F0586EC90E05C +:103530009093A2058093A1051092A4051092A50571 +:103540001092A6051092A705089508950E945C1890 +:103550000E94A51A0E94E205C3E2DBE10E94FB057E +:103560002097E1F30E94231BF9CFCF92DF92EF92D5 +:10357000FF920F931F93CF93DF936C017A01EB01BE +:10358000E60EF71E00E010E0CE15DF0561F0699150 +:10359000D601ED91FC910190F081E02DC6010995D5 +:1035A000080F191FF1CFC801DF91CF911F910F9123 +:1035B000FF90EF90DF90CF9008956115710581F035 +:1035C000DB010D900020E9F7AD0141505109461B88 +:1035D000570BDC01ED91FC910280F381E02D099401 +:1035E00080E090E008950C94DD1A0895FC01818D2F +:1035F000228D90E0805C9F4F821B91098F739927E9 +:103600000895FC01918D828D981731F0828DE80F1D +:10361000F11D858D90E008958FEF9FEF0895FC01D7 +:10362000918D828D981761F0828DDF01A80FB11DF9 +:103630005D968C91928D9F5F9F73928F90E008951D +:103640008FEF9FEF089588E59AE1892B49F080E09C +:1036500090E0892B29F00E94581A81110C940000E7 +:103660000895FC01848DDF01A80FB11DA35ABF4F3F +:103670002C91848D90E001968F739927848FA68971 +:10368000B7892C93A089B1898C9180648C93938D98 +:10369000848D981306C00288F389E02D80818F7D88 +:1036A00080830895CF93DF93EC01888D8823C9F040 +:1036B000EA89FB89808185FD05C0A889B9898C913B +:1036C00086FD0FC00FB607FCF5CF808185FFF2CFD6 +:1036D000A889B9898C9185FFEDCFCE010E94311B5D +:1036E000E7CFDF91CF910895CF92DF92FF920F93B2 +:1036F0001F93CF93DF931F92CDB7DEB76C0181E0AC +:10370000D60158968C9358975B969C915B975C96E4 +:103710008C915C97981307C05096ED91FC9151974E +:10372000808185FD2EC0F601038D10E00F5F1F4FD5 +:103730000F731127F02EF601848DF81211C00FB609 +:1037400007FCF9CFD6015096ED91FC9151978081FD +:1037500085FFF1CFC60169830E94311B6981EBCFE0 +:10376000838DE80FF11DE35AFF4F6083D6015B960E +:103770000C935B975296ED91FC91539780818062F8 +:103780000CC0D6015696ED91FC91579760835096E8 +:10379000ED91FC91519780818064808381E090E07D +:1037A0000F90DF91CF911F910F91FF90DF90CF90FD +:1037B00008955058BB27AA270ED01CC10DD130F058 +:1037C00012D120F031F49F3F11F41EF402C10EF427 +:1037D000E095E7FBF8C0E92F1ED180F3BA17620726 +:1037E00073078407950718F071F49EF536C10EF43F +:1037F000E0950B2EBA2FA02D0B01B90190010C0101 +:10380000CA01A0011124FF27591B99F0593F50F418 +:10381000503E68F11A16F040A22F232F342F442770 +:10382000585FF3CF469537952795A795F040539568 +:10383000C9F77EF41F16BA0B620B730B840BBAF038 +:103840009150A1F0FF0FBB1F661F771F881FC2F7A3 +:103850000EC0BA0F621F731F841F48F487957795B7 +:103860006795B795F7959E3F08F0B3CF9395880F6E +:1038700008F09927EE0F9795879508950CD0BAC058 +:10388000B2D040F0A9D030F021F45F3F19F09BC0D6 +:103890005111E4C09EC0BFD098F39923C9F35523BA +:1038A000B1F3951B550BBB27AA2762177307840733 +:1038B00038F09F5F5F4F220F331F441FAA1FA9F3E9 +:1038C00033D00E2E3AF0E0E830D091505040E695DB +:1038D000001CCAF729D0FE2F27D0660F771F881F3C +:1038E000BB1F261737074807AB07B0E809F0BB0B2B +:1038F000802DBF01FF2793585F4F2AF09E3F51054F +:1039000068F061C0ABC05F3FECF3983EDCF3869596 +:1039100077956795B795F7959F5FC9F7880F911DC4 +:103920009695879597F90895E1E0660F771F881FB0 +:10393000BB1F621773078407BA0720F0621B730B63 +:10394000840BBA0BEE1F88F7E0950895E89409C040 +:1039500097FB3EF490958095709561957F4F8F4FC2 +:103960009F4F9923A9F0F92F96E9BB279395F695D8 +:10397000879577956795B795F111F8CFFAF4BB0F56 +:1039800011F460FF1BC06F5F7F4F8F4F9F4F16C0BA +:10399000882311F096E911C0772321F09EE8872F44 +:1039A000762F05C0662371F096E8862F70E060E000 +:1039B0002AF09A95660F771F881FDAF7880F969579 +:1039C000879597F9089597F99F6780E870E060E020 +:1039D00008959FEF80EC089500240A9416161706A8 +:1039E00018060906089500240A94121613061406F0 +:1039F00005060895092E0394000C11F4882352F053 +:103A0000BB0F40F4BF2B11F460FF04C06F5F7F4F0A +:103A10008F4F9F4F089557FD9058440F551F59F0F1 +:103A20005F3F71F04795880F97FB991F61F09F3FAB +:103A300079F087950895121613061406551FF2CFD4 +:103A40004695F1DF08C0161617061806991FF1CF24 +:103A500086957105610508940895E894BB2766274B +:103A60007727CB0197F908950BD0C4CFB5DF28F0A5 +:103A7000BADF18F0952309F0A6CFABCF1124EECF13 +:103A8000CADFA0F3959FD1F3950F50E0551F629FB9 +:103A9000F001729FBB27F00DB11D639FAA27F00DA7 +:103AA000B11DAA1F649F6627B00DA11D661F829FCE +:103AB0002227B00DA11D621F739FB00DA11D621FB3 +:103AC000839FA00D611D221F749F3327A00D611DD0 +:103AD000231F849F600D211D822F762F6A2F1124B2 +:103AE0009F5750408AF0E1F088234AF0EE0FFF1F05 +:103AF000BB1F661F771F881F91505040A9F79E3F3C +:103B0000510570F060CFAACF5F3FECF3983EDCF335 +:103B1000869577956795B795F795E7959F5FC1F778 +:103B2000FE2B880F911D9695879597F9089597FB21 +:103B3000072E16F4009407D077FD09D00E94EC1DE3 +:103B400007FC05D03EF4909581959F4F08957095A0 +:103B500061957F4F0895A1E21A2EAA1BBB1BFD01A0 +:103B60000DC0AA1FBB1FEE1FFF1FA217B307E4075C +:103B7000F50720F0A21BB30BE40BF50B661F771FB4 +:103B8000881F991F1A9469F7609570958095909594 +:103B90009B01AC01BD01CF010895052E97FB1EF4DA +:103BA00000940E94E41D57FD07D00E94AB1D07FC46 +:103BB00003D04EF40C94E41D50954095309521951A +:103BC0003F4F4F4F5F4F0895909580957095619549 +:103BD0007F4F8F4F9F4F0895AA1BBB1B51E107C01A +:103BE000AA1FBB1FA617B70710F0A61BB70B881F8D +:103BF000991F5A95A9F780959095BC01CD0108951C +:103C0000EE0FFF1F0590F491E02D09940F931F9381 +:103C1000CF93DF93869F8001879F100D969F100D95 +:103C20001124C8010E94221EEC01009729F0A8016E +:103C300060E070E00E94491FCE01DF91CF911F919B +:103C40000F910895CF93DF938230910510F482E0B5 +:103C500090E0E0912A06F0912B0620E030E0A0E011 +:103C6000B0E0309739F14081518148175907B8F0D9 +:103C70004817590771F482819381109729F01396A0 +:103C80009C938E9312972CC090932B0680932A06B8 +:103C900027C02115310531F04217530718F0A9014B +:103CA000DB0101C0EF019A01BD01DF010280F38158 +:103CB000E02DD7CF21153105F9F0281B390B243021 +:103CC000310580F48A819B816115710521F0FB012A +:103CD0009383828304C090932B0680932A06FE016F +:103CE000329644C0FE01E20FF31F8193919322505C +:103CF0003109398328833AC020912806309129065A +:103D0000232B41F4209102013091030130932906C5 +:103D100020932806209100013091010121153105E1 +:103D200041F42DB73EB74091040150910501241B89 +:103D3000350BE0912806F0912906E217F307A0F46D +:103D40002E1B3F0B2817390778F0AC014E5F5F4FF1 +:103D50002417350748F04E0F5F1F509329064093F4 +:103D600028068193919302C0E0E0F0E0CF01DF915B +:103D7000CF910895CF93DF93009709F487C0FC019A +:103D8000329713821282C0912A06D0912B06209777 +:103D900081F420813181280F391F8091280690916C +:103DA00029068217930779F5F0932906E0932806F0 +:103DB0006DC0DE0120E030E0AE17BF0750F4129670 +:103DC0004D915C9113979D014115510509F1DA015F +:103DD000F3CFB383A28340815181840F951F8A174B +:103DE0009B0771F48D919C911197840F951F0296FA +:103DF0009183808312968D919C91139793838283F4 +:103E00002115310529F4F0932B06E0932A063EC0D4 +:103E1000D9011396FC93EE9312974D915D91A40FE7 +:103E2000B51FEA17FB0779F480819181840F951FF4 +:103E30000296D90111969C938E9382819381139659 +:103E40009C938E931297E0E0F0E08A819B8100972B +:103E500019F0FE01EC01F9CFCE01029628813981DB +:103E6000820F931F209128063091290628173907C1 +:103E700069F4309729F410922B0610922A0602C09A +:103E800013821282D0932906C0932806DF91CF9126 +:103E90000895DC0101C06D9341505040E0F7089552 +:043EA000F894FFCFC4 +:103EA40000002C0680000152656164206661696C23 +:103EB4000001000A006400E8033F065B4F666D7D65 +:103EC400077F6F777C395E7971000000006F1442C0 +:103ED40014E813F0130314121400000000741BB54B +:0A3EE4001AF61A0F1B011B521B00F7 +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_6.cpp.hex b/Firmware/Archive/grove_pi_v1_2_6.cpp.hex new file mode 100644 index 0000000..a143075 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_6.cpp.hex @@ -0,0 +1,1135 @@ +:100000000C9464000C949D1A0C94CA1A0C948C00E5 +:100010000C948C000C9420040C948C000C9490068E +:100020000C948C000C948C000C948C000C94E802C2 +:100030000C948C000C941F0C0C948C000C948C0071 +:100040000C94F71A0C948C000C94641F0C94A71F4A +:100050000C948C000C948C000C948C000C948C00F0 +:100060000C9440190C948C00000000070002010061 +:100070000003040600000000000000000102040864 +:100080001020408001020408102001020408102002 +:10009000040404040404040402020202020203032E +:1000A00003030303000000002300260029000000D2 +:1000B0000000250028002B0000000000240027007D +:1000C0002A0069045018E21F11241FBECFEFD8E0A8 +:1000D000DEBFCDBF11E0A0E0B1E0EAE2F6E402C08D +:1000E00005900D92AE3AB107D9F727E0AEEAB1E03C +:1000F00001C01D92A631B207E1F710E0C8ECD0E0D4 +:1001000004C02297FE010E94DD22C23CD107C9F73C +:100110000E94C51E0C9413230C9400008627082E01 +:100120008295807F8025092E982F82958F700826D2 +:10013000869598278927880F880F880F802508952E +:10014000ECE5F1E090E02191821729F09F5F90317A +:10015000D1F780E00895892F0895809300010895D4 +:100160001F93CF93DF939091D901992329F0809128 +:10017000D6018F5F8093D6012091D8018091D7015D +:10018000921759F0803510F42BE001C02DE1820F59 +:100190008093D7019093D80103C08C5E8093D701E0 +:1001A0002091D701203A08F47AC08091D101909132 +:1001B000D201969587959093D2018093D101309189 +:1001C000D601353028F098609093D2018093D10108 +:1001D000205A2093D7011092D6018091D50188230F +:1001E00009F44DC08091D0018F5F8093D0018C3095 +:1001F00008F455C0C091D101D091D2018C2F8F73DA +:100200000E94A000182FCE0126E0969587952A958A +:10021000E1F70E94A00090E1199F90011124822B28 +:100220009091B00191110EC08093B1019CEF980F95 +:100230009B3140F01092D5018091AF018F5F809388 +:10024000AF012DC0E091B00191E09E0F9093B001FD +:10025000F0E0EE54FE4F80839091B0018091B101A7 +:10026000981750F01092D5018091AE018F5F809366 +:10027000AE0181E08093D4011092D00110C0809132 +:10028000D1019091D20188339B4049F481E0809361 +:10029000D5011092D0011092B0011092D401DF91DB +:1002A000CF911F9108954F925F926F927F92BF926C +:1002B000CF92DF92EF92FF920F931F93CF93DF9332 +:1002C000CDB7DEB72E970FB6F894DEBF0FBECDBF09 +:1002D000BC018EE0EEE4F1E0DE01119601900D929A +:1002E0008A95E1F76115710509F49AC080E090E004 +:1002F0000E9476219B01AC0160E070E080E89FE302 +:100300000E94DD2020E030E040E05EE30E94042215 +:100310006B017C018E010D5F1F4FBB24B394F8016C +:10032000619171918F0180E090E00E9476219B01A4 +:10033000AC0160E074E284E79BE40E94DD209B0155 +:10034000AC0160E070E080E89FE30E94DD209B014B +:10035000AC01C701B6010E94DD200E9445212B019E +:100360003C01F2E04F1A5108610871082DEF421666 +:100370002FEF52066104710428F0B394E7E0BE1237 +:10038000CECF05C0F6E0BF1609F44AC00CC06230FB +:1003900071058105910508F443C06115710521E0DF +:1003A00082079105E8F5BB20D9F11092800028E082 +:1003B00020938100209181002B292093810070934C +:1003C00089006093880080916F00826080936F0045 +:1003D00061E0809100010E942D1E60E0809101018A +:1003E0000E942D1E61E0809102010E942D1E6091ED +:1003F000DA01809102012E960FB6F894DEBF0FBE8F +:10040000CDBFDF91CF911F910F91FF90EF90DF90C3 +:10041000CF90BF907F906F905F904F900C94661E2E +:100420002E960FB6F894DEBF0FBECDBFDF91CF91F1 +:100430001F910F91FF90EF90DF90CF90BF907F9032 +:100440006F905F904F900895CF931092E0011092BB +:10045000DF011092DE016091DA01C1E06C2780912A +:1004600002010E94661EC093DD01CF910895609144 +:10047000DA01809102010E94661E60E08091000115 +:100480000E94661E1092DD0108958091DD018111A8 +:10049000FCCF0895CF92DF92EF92FF920F931F93BC +:1004A000CF93DF93F82EE92ED62E8BE1861708F432 +:1004B00085C00E944502C3E0CD0D6C2F8FEF9FEFEA +:1004C0000E948E00AC2FB0E0F4E0B595A795FA95A8 +:1004D000E1F7A45ABE4F2C9120930B01CF70EC2F63 +:1004E000F0E0E45AFE4F208120930C010BE011E074 +:1004F000CF2CCF2DDE2D0E5F1F4F2C2F2C192D153D +:10050000D0F47E0168810E948E00A991B0E0E4E001 +:10051000B595A795EA95E1F7A45ABE4F2C91D8015D +:100520002C93D701EC91EF70F0E0E45AFE4F20815C +:10053000F8012183E0CF61E06D0D660F8095909505 +:10054000E62FF0E0E55FFE4FDC0144E0B695A795AD +:100550004A95E1F7AF70BB27A45ABE4F2C91208378 +:10056000E1E0E60FF0E0E55FFE4FDC01AF70BB2796 +:10057000A45ABE4F2C912083E2E0E60FF0E0E55F45 +:10058000FE4FDC01AB2FBB27A295AF70A45ABE4F24 +:100590002C912083A3E0A60FB0E0A55FBE4FE92F0A +:1005A000FF27EF70FF27E45AFE4F80818C93645F32 +:1005B0006093E1010E94240281E001C080E0DF91AC +:1005C000CF911F910F91FF90EF90DF90CF90089502 +:1005D0001F920F920FB60F9211242F933F934F93B8 +:1005E0005F936F937F938F939F93AF93BF93EF939B +:1005F000FF938091D301882321F08091DD0188232E +:1006000071F18091DD018823C9F08091DE0191E0D4 +:10061000980F9093DE01811111C0E091E00180916B +:10062000E101E81718F10E9437028091DB019091F7 +:10063000DC0101969093DC018093DB018091DE0167 +:10064000883010F01092DE018091D301882379F177 +:100650008091DD0181112BC00E94B00028C08091E3 +:1006600001010E949C1E8093D901CBCFF0E0ED5F89 +:10067000FE4F60812091DF0181E0820F8093DF01D6 +:1006800081E090E001C0880F2A95EAF76823809105 +:1006900000010E94661E8091DF01863078F2109280 +:1006A000DF018091E0018F5F8093E001C7CFFF9170 +:1006B000EF91BF91AF919F918F917F916F915F91DA +:1006C0004F913F912F910F900FBE0F901F90189553 +:1006D00087E995E00C94F517CF93DF93EC0168E67A +:1006E00070E087E995E00E942E1860E087E995E0C8 +:1006F0000E94B61787E995E00E94431847E050E052 +:1007000068E670E087E995E00E94211887E995E0A6 +:100710000E943717282F2695269526952E70922F02 +:10072000990F990F920F8F70980F988387E995E032 +:100730000E943717982F92959F708F702AE0929F92 +:10074000800D1124898387E995E00E943717282FAF +:100750002695269526952670922F990F990F920F20 +:100760008F70980F9A8387E995E00E943717982F2A +:1007700092959F708F702AE0929F800D11248B8339 +:1007800087E995E00E943717982F92959F708F7098 +:100790002AE0929F800D11248C8387E995E00E94C6 +:1007A0003717982F92959F708F702AE0929F800D37 +:1007B00011248D8387E995E00E943717982F929531 +:1007C0009F708F702AE0929F800D112490E09F838C +:1007D0008E83DF91CF910895CF93DF9382E00E94C3 +:1007E0009C1EEC0183E00E949C1E8C239D2301979C +:1007F00019F481E08093E401DF91CF91089584E0C2 +:10080000809368008BB381718BBB8CE080936D000B +:10081000089548EE53E060E070E086E494E00E94C2 +:10082000AE0C2FEF3FEFA9016CEE73E086E494E08D +:100830000E94C40C7894089586E494E00C94B50C5E +:100840001F920F920FB60F9211241F932F933F9375 +:100850004F935F936F937F938F939F93AF93BF93C8 +:10086000CF93DF93EF93FF931091E4011130E9F4FC +:1008700082E00E949C1EEC0183E00E949C1E8C176B +:100880009D071CF41093E2010CC082E00E949C1EA4 +:10089000EC0183E00E949C1EC817D90734F4109223 +:1008A000E2011093E3011092E401FF91EF91DF91D7 +:1008B000CF91BF91AF919F918F917F916F915F91F8 +:1008C0004F913F912F911F910F900FBE0F901F904E +:1008D000189582EE91E00C94FF03CF93DF93EC0127 +:1008E00060E088810E94661E84E190E00E94961B71 +:1008F00061E088810E94661E84E190E0DF91CF91E3 +:100900000C94961B0F931F93CF93DF93EC01062F4C +:1009100018E007FF02C061E001C060E089810E9429 +:10092000661ECE010E946D04000F115091F7DF91F9 +:10093000CF911F910F910895EF92FF921F93CF9344 +:10094000DF9300D0CDB7DEB77C01162F27FF02C0A2 +:1009500060EC01C060EE26FF606147FF686046FF03 +:10096000646017FF626016FF6160C70129834A83D4 +:100970000E9482042981622FC7010E9482044A8159 +:10098000642FC7010E948204612FC7010F900F904E +:10099000DF91CF911F91FF90EF900C9482047F9292 +:1009A0008F929F92AF92BF92CF92DF92EF92FF927F +:1009B0000F931F93CF93DF93EC01162F942E822E6B +:1009C00060E00E94820460E0CE010E94820460E048 +:1009D000CE010E94820460E0CE010E94820483E086 +:1009E000189F7001112467018FEFC81AD80A5701A8 +:1009F00082E0A80EB11C712C8A81781600F5711264 +:100A00000FC0EB81FC81EE0DFF1D9082EB81FC811C +:100A1000EC0DFD1D8082EB81FC81EA0DFB1D008346 +:100A2000EB81FC8183E0789EE00DF11D1124228191 +:100A300041816081CE010E949C047394DDCF60E00F +:100A4000CE010E94820460E0CE010E94820460E038 +:100A5000CE010E94820460E0CE01DF91CF911F9110 +:100A60000F91FF90EF90DF90CF90BF90AF909F904D +:100A70008F907F900C9482040F931F93CF93DF93FA +:100A8000EC01862F688349832A8361E00E942D1E32 +:100A900061E089810E942D1E8A8161E070E023E07F +:100AA000829FC00111240E94F0229C838B8310E05E +:100AB0008A81181748F400E020E040E0612FCE0161 +:100AC0000E94CF041F5FF4CFDF91CF911F910F9150 +:100AD0000895FC0182810895CF93DF93EC01862F66 +:100AE000E62FF0E0F983E88350E05B834A832C83B0 +:100AF0001E821D8261E00E942D1E61E08A81DF91CD +:100B0000CF910C942D1E1F93CF93DF93EC0160E0E7 +:100B10008A810E94661E8AE090E00E94961B14E083 +:100B200061E08A810E94661E60E08A810E94661EE2 +:100B30001150B1F7DF91CF911F910895FF920F935C +:100B40001F93CF93DF93EC018B0190E1F92E612F7E +:100B5000661F6627661F8A810E94661E88810E9422 +:100B60009C1E61E0892B09F060E088810E94661E6E +:100B7000000F111FFA9459F7DF91CF911F910F9138 +:100B8000FF900895EF92FF920F931F93CF93DF93FF +:100B9000EC017B01CB0193709E838D8360E070E05C +:100BA000CE010E949E0500E010E08C81882351F068 +:100BB000C701002E02C0880F991F0A94E2F791FF27 +:100BC0000DC009C0C701002E02C0969587950A94F2 +:100BD000E2F780FF03C06FEF70E002C060E070E0FA +:100BE000CE010E949E050F5F1F4F0A301105E9F6E6 +:100BF00060E070E0CE010E949E0560E070E0CE01F2 +:100C00000E949E05CE01DF91CF911F910F91FF9021 +:100C1000EF900C948305FC016483658176810C94CC +:100C2000C2056B3008F06AE02FEF3FEF02C0220FE1 +:100C3000331F6A95E2F720953095FC0136832583B2 +:100C4000B9010C94C205662321F06B3018F06AE0FC +:100C500001C061E05FEF560FFC012581368161E044 +:100C600070E002C0660F771F5A95E2F7442319F02F +:100C7000622B732B04C06095709562237323FC0173 +:100C8000768365830C94C205662321F06B3018F0DF +:100C90006AE001C061E02FEF260F61E070E002C062 +:100CA000660F771F2A95E2F7FC01258136816227BE +:100CB0007327768365830C94C205FC018581968138 +:100CC0000895FC0181E020813181232B09F480E02B +:100CD0000895F89482E08093B0008093B10094E688 +:100CE0009093B3001092B200809370007894809338 +:100CF000EA01109245048091E90160E00C942D1EF8 +:100D00006093E9010E94690664E170E080E090E090 +:100D10000E94701B82E08093EA01109245040895BE +:100D20001F920F920FB60F9211242F933F934F9360 +:100D30005F936F937F938F939F93AF93BF93EF9343 +:100D4000FF938091E9010E949C1E2091EB0130915C +:100D5000EC012F5F3F4F3093EC012093EB0190911A +:100D600045049091EA019330B9F018F4923039F0CB +:100D700056C0943051F1953009F44BC050C08111E8 +:100D80004EC08091EB019091EC018436910508F4FE +:100D900042C0109245041BC0813009F040C0E09170 +:100DA00045048E0F80934504F0E08091EB01909113 +:100DB000EC01EE0FFF1FE351FE4F918380831092F1 +:100DC000EC011092EB0184E021C0811117C0E09189 +:100DD000450481E08E0F80934504F0E08091EB01A3 +:100DE0009091EC01EE0FFF1FE351FE4F9183808342 +:100DF0001092EC011092EB0183E008C08091EB01AE +:100E00009091EC018536910550F085E08093EA01E0 +:100E100006C0811104C01092EC011092EB01FF9109 +:100E2000EF91BF91AF919F918F917F916F915F9162 +:100E30004F913F912F910F900FBE0F901F901895DB +:100E40008DEE91E0FB01918380838091450490E0D9 +:100E5000938382838091EA01853041F482E080931C +:100E6000EA011092450481E090E0089580E090E06E +:100E700008952F923F924F925F926F927F928F923E +:100E80009F92AF92BF92CF92DF92EF92FF920F9319 +:100E90001F93CF93DF931C01FB01DC0112962D9170 +:100EA0003C9113973901B4E06B1A710877FE04C0C6 +:100EB0003901CBE06C0E711CA4E075946794AA957F +:100EC000E1F7D1010D911C9140E050E080E090E00D +:100ED0007801B6E0EB0EF11CD701A40FB51F6D91A0 +:100EE0007C91860F971F4C5F5F4F48325105A1F7E9 +:100EF0006AE070E00E9467227B014B01880C991C1C +:100F0000D801189640E050E060E070E080E090E0AA +:100F10008901095011092D913C9111978216930670 +:100F200038F42D913C911197820F931F6F5F7F4F83 +:100F30006A30710559F014969A012E5F3F4F4A5F4F +:100F40005F4F4017510714F4A901E5CF0E946722B3 +:100F5000562EDF01169648E050E020E030E0CC2429 +:100F6000C394D12C2615370544F51C928A0187E0DD +:100F700090E0E10168817981600F711FEB01A88029 +:100F8000B9804C90B601082E01C0660F0A94EAF7AA +:100F90008A149B0410F4642902C0609564216C9348 +:100FA00001970C5F1F4F8F3FDFEF9D0711F72F5FFA +:100FB0003F4F1196405E5F4FD5CF85E0860D808311 +:100FC000E101A881B98112968D919C91139781833B +:100FD000A881B98114968D919C9115978283E382A3 +:100FE0005482658282E08093EA01109245048081F8 +:100FF0008F5FDF91CF911F910F91FF90EF90DF9066 +:10100000CF90BF90AF909F908F907F906F905F90A8 +:101010004F903F902F900895CF93DF93EC01BC0148 +:101020000E942007892BC1F08A819B818034910521 +:1010300034F004979C0127703327232B31F082E092 +:101040008093EA011092450407C0B4E09595879516 +:10105000BA95E1F78A5F01C080E0DF91CF910895F2 +:10106000CF93DF93EC01862F6883498360E00E9471 +:101070002D1E60E089810E942D1E60E088810E9403 +:10108000661E60E08981DF91CF910C94661E683006 +:1010900010F4685F01C06FE0FC016283089561E0B5 +:1010A000FC0181810E942D1E82E390E00C94961B2E +:1010B000CF93DF93EC0161E089810E942D1E82E3D2 +:1010C00090E00E94961B60E088810E942D1E82E3C2 +:1010D00090E00E94961B60E089810E942D1E82E3B1 +:1010E00090E0DF91CF910C94961B0F931F93CF93B9 +:1010F000DF93EC01062F18E061E088810E942D1E2D +:1011000082E390E00E94961B00FF02C060E001C0F5 +:1011100061E089810E942D1E82E390E00E94961B6F +:1011200060E088810E942D1E82E390E00E94961B61 +:101130000695115009F761E088810E942D1E60E03C +:1011400089810E942D1E82E390E00E94961B60E040 +:1011500088810E942D1E82E390E00E94961B898167 +:101160000E949C1E182F811104C061E089810E9499 +:101170002D1E82E390E00E94961B61E088810E9410 +:101180002D1E82E390E00E94961B81E0111101C0A8 +:1011900080E0DF91CF911F910F910895AF92BF92A0 +:1011A000DF92EF92FF920F931F93CF93DF9300D0C4 +:1011B000CDB7DEB75C01F62EE42E29837A830E9438 +:1011C0004F0860E4C5010E947508C5010E945808D7 +:1011D000C5010E944F082981622F63706054C501C8 +:1011E0000E947508DF2C0F2D7A81172F802F8D1903 +:1011F0008E1538F4F80161918F01C5010E947508C0 +:10120000F5CFC5010E945808C5010E944F08F5019D +:1012100062816058C5010E947508C5010F900F904A +:10122000DF91CF911F910F91FF90EF90DF90BF90D2 +:10123000AF900C9458084F925F926F927F928F926A +:101240009F92AF92BF92CF92DF92EF920F931F9334 +:10125000CF93DF9300D000D0CDB7DEB73C015B0168 +:10126000322F202F84E7882E81E0982ECE01019620 +:101270006C01FC0101E01FE3D4015E904E904D0132 +:10128000C501B2010E9467226115710561F4411127 +:1012900006C0002321F08E2F8C19833011F41083A7 +:1012A00013C0108211C0A62FAF70B0E0AC58BE4F73 +:1012B0008C918083649DC001659D900D749D900DFF +:1012C0001124A81AB90A00E0EE2039F08E2F8C19EB +:1012D000813019F48081806880833196BCE68B165A +:1012E000B1E09B0649F664E070E0631B71096C0D88 +:1012F0007D1D432FC3010E94CE080F900F900F90C9 +:101300000F90DF91CF911F910F91EF90DF90CF90D1 +:10131000BF90AF909F908F907F906F905F904F9015 +:1013200008956F70E62FF0E0EC58FE4F808108952D +:10133000FC0181E09081911101C080E00895CF937C +:10134000DF93EC01862F6E834F83288791E09D8782 +:1013500060E00E942D1E61E08E810E94661E19864B +:101360001A861B861C86DF91CF910895DF92EF923B +:10137000FF920F931F93CF93DF93EC0161E08E8177 +:101380000E94661E6AEF70E080E090E00E94701B91 +:101390000E94411B09851A852B853C8560177107C2 +:1013A0008207930720F419861A861B861C862D85D2 +:1013B000211111C009851A852B853C85DC01CB01E3 +:1013C000801B910BA20BB30B803D9740A105B1058B +:1013D00010F481E071C01D860E94411B69877A87E5 +:1013E0008B879C871C821B821A821982188261E07B +:1013F0008E810E942D1E60E08E810E94661E64E137 +:1014000070E080E090E00E94701BF89461E08E81B3 +:101410000E94661E88E290E00E94961B60E08E812A +:101420000E942D1EF12CD12C81E0E12C082F10E020 +:101430008E810E949C1E8017910741F4E39481E005 +:1014400090E00E94961B8FEFE812F2CF8E810E94EF +:101450009C1E9FEFE916C9F023E02F1590F4F0FCD5 +:1014600010C09D2D969596959695FE01E90FF11D5C +:101470009081990F908328852E1510F491609083A8 +:10148000D394F39495E5F912D0CF789427E22D15F3 +:1014900090F42C8130E04881898190E0840F911D87 +:1014A0004A81840F911D4B81840F911D9927281724 +:1014B000390709F48ECF80E0DF91CF911F910F9112 +:1014C000FF90EF90DF900895CF92DF92EF92FF921E +:1014D0000F931F93CF93DF93EC01162F0E94B60951 +:1014E000882309F450C08F818B3031F008F44BC051 +:1014F0008551823078F047C06A8170E080E090E0EA +:101500000E947621112309F449C020E030E040E137 +:1015100051E42AC00A81602F6F7770E080E090E08C +:101520000E94782120E030E040E853E40E94042249 +:101530006B017C016B8170E080E090E00E9478217B +:101540009B01AC01C701B6010E94792020E030E088 +:1015500040E251E40E94DD2007FD9058112309F17B +:1015600020E030E040E151E40E94042220E030E03D +:1015700040EA50E40E94DD2020E030E040E052E408 +:101580000E9479200EC064E871E088E696E00E942F +:10159000762020E030E040EC5FE705C09B01AC0125 +:1015A00002C09B01AC01B901CA01DF91CF911F912B +:1015B0000F91FF90EF90DF90CF900895CF92DF9240 +:1015C000EF92FF92CF93DF93EC010E94B60988233C +:1015D00079F18F818B3029F158F18551823040F5B6 +:1015E000688170E080E090E00E94762120E030E0A9 +:1015F00040E853E40E9404226B017C01698170E0A1 +:1016000080E090E00E9478219B01AC01C701B60107 +:101610000E94792020E030E040E251E40E94DD2089 +:1016200011C0688170E080E090E00E9476210AC0DD +:1016300064E871E088E696E00E94762060E070E061 +:1016400080EC9FE7DF91CF91FF90EF90DF90CF90FC +:1016500008951F93CF93DF931F92CDB7DEB7162F58 +:1016600087E995E049830E94F5176CE470E087E90B +:1016700095E00E942E18612F87E995E00E94B61729 +:101680004981642F87E995E00E94B61787E995E0C4 +:101690000F90DF91CF911F910C944318462F67E074 +:1016A0000C94290B462F68E00C94290BCF93DF9301 +:1016B000EC0160E00E944E0B60E0CE010E94520BF4 +:1016C00061E0CE01DF91CF910C944E0B4F925F926F +:1016D0006F927F928F929F92AF92BF92CF92DF9242 +:1016E000EF92FF920F931F93CF93DF9300D01F923F +:1016F000CDB7DEB75B016A01790180E48B838A8311 +:1017000089830E94411B2B013C0187E995E00E94DF +:101710002F17181619066CF40E94411B64197509DD +:1017200086099709653F71408105910574F380E052 +:1017300072C087E995E00E94371743E050E06CE4FF +:1017400070E087E995E00E9421180E94411B2B015F +:101750003C018E010F5F1F4F480187E995E00E9411 +:101760002F17892B69F1C801881999090397D4F4B7 +:101770000E94411B2B013C01F8018081803490F0D4 +:1017800087E995E00E943717F80180830E94411B8A +:1017900064197509860997096333710581059105F7 +:1017A0005CF3C5CF0E94411B0F5F1F4F6419750981 +:1017B00086099709653F71408105910574F2B7CF9D +:1017C000898124E0829FC0011124282F87FF02C055 +:1017D00023E0280F25952595F50120838A81F4E0E3 +:1017E0008F9FC0011124282F87FF02C023E0280FFC +:1017F00025952595F60120838B81F4E08F9FC0010C +:101800001124282F87FF02C023E0280F2595259556 +:10181000F701208381E00F900F900F90DF91CF911F +:101820001F910F91FF90EF90DF90CF90BF90AF90FE +:101830009F908F907F906F905F904F9008951F9230 +:101840000F920FB60F9211242F933F934F935F93F4 +:101850006F937F938F939F93AF93BF93EF93FF9378 +:10186000E0914A04F0914B040995FF91EF91BF91EB +:10187000AF919F918F917F916F915F914F913F9128 +:101880002F910F900FBE0F901F901895FC01A3E0B1 +:10189000440F551F661F771FAA95D1F741155105B3 +:1018A00081E06807710514F481E00EC033E075959E +:1018B0006795579547953A95D1F74115510581E0C0 +:1018C000680771051CF482E0828331C023E07595BE +:1018D0006795579547952A95D1F74115510581E0B0 +:1018E0006807710514F483E0EFCF92E07595679572 +:1018F000579547959A95D1F74115510581E06807AD +:10190000710514F484E0E0CF82E0759567955795F2 +:1019100047958A95D1F785E082834115510581E08D +:101920006807710524F04FEF5FEF60E070E08FB75C +:101930008383F894518340835093870040938600BB +:1019400083818FBF80918100887F80938100809107 +:1019500081009281892B80938100089510928000EC +:1019600020E1209381000C94460CEFE6F0E08081AA +:101970008E7F80830895E1E8F0E02081DC011296FB +:101980008C91282B208308950F931F93CF93DF937F +:10199000EC018B01BA01A9011416150616061706EB +:1019A00014F40E94460C1D830C8381E080936F0029 +:1019B000CE01DF91CF911F910F910C94BB0C8091C0 +:1019C0009D0490919E04019690939E0480939D04A3 +:1019D00008950E94411B6093B7047093B8048093EC +:1019E000B9049093BA0482E00E949C1E9093A604CE +:1019F0008093A504892BA9F060E088E00E94661E10 +:101A00008091B7049091B804A091B904B091BA0440 +:101A10008093B3049093B404A093B504B093B60438 +:101A200014C08091B7049091B804A091B904B0910A +:101A3000BA048093AF049093B004A093B104B09320 +:101A4000B20461E088E00E94661E4091B3045091A8 +:101A5000B4046091B5047091B6048091AF04909184 +:101A6000B004A091B104B091B20484179507A60701 +:101A7000B70740F5481B590B6A0B7B0B4093AB042F +:101A80005093AC046093AD047093AE048091BF0496 +:101A90009091C004A091C104B091C204840F951F1D +:101AA000A61FB71F8093BF049093C004A093C104E6 +:101AB000B093C2041092B3041092B4041092B5040F +:101AC0001092B604089564E070E087E995E00E9402 +:101AD000121867E476E187E995E00E94461860E80D +:101AE00076E187E995E00E944B1841E050E069EE0D +:101AF0007CE080E00C946D1AAF92BF92CF92DF929F +:101B0000EF92FF920F931F93CF93DF93CDB7DEB782 +:101B100028970FB6F894DEBF0FBECDBF80911A058F +:101B200090911B05049709F098C281E090E0909392 +:101B300019058093180580911C0590911D0586312B +:101B4000910549F460911E0570911F0585EE91E0A5 +:101B50000E94800682C28531910521F585EE91E0D3 +:101B60000E940C08882309F478C263ED74E085EEC6 +:101B700091E00E94390781E08093000580E090E0C9 +:101B80008431910554F4FC01E050FB4FDC01AD526F +:101B9000BB4F2C9121830196F3CF9093170580932F +:101BA00016055BC28130910539F480911E050E94B3 +:101BB0009C1E8093150551C28230910539F46091C5 +:101BC000200580911E050E94661E47C28330910544 +:101BD000B1F480911E050E94881D9093D2048093D9 +:101BE000D1049C0197FF02C021503F4F3093010563 +:101BF00060E071E00E946722809302052EC284306B +:101C0000910549F4609120057091210580911E0590 +:101C10000E94A51D22C28530910539F460912005EE +:101C200080911E050E942D1E18C28730910509F073 +:101C30004AC08091C7049091C804892B09F40DC251 +:101C400080911E0590911F0580934E0490934F0440 +:101C500061E00E942D1E60E080914E040E94661E8D +:101C600082E090E00E94961B61E080914E040E9409 +:101C7000661E85E090E00E94961B60E080914E0415 +:101C80000E94661E60E080914E040E942D1E20E599 +:101C900033EC40E050E061E080914E040E94031D6F +:101CA0002AE330E040E050E00E949D22CA01B901E1 +:101CB00020E031E040E050E00E949D222093E904C2 +:101CC0006093EA0466C18830910541F481E0809315 +:101CD000010582E08093020586E022C084319105EF +:101CE00011F58091D004811107C086E995E00E942A +:101CF000560B81E08093D0042EEC34E04DEC54E0A0 +:101D00006CEC74E086E995E00E94660B8091CC044F +:101D1000809301058091CD04809302058091CE04CB +:101D2000809303059AC18E31910571F58091CF049E +:101D3000811107C08EE895E00E94680381E08093DE +:101D4000CF048EE895E00E946C038091900580930B +:101D5000010580918F058093020580918E05809307 +:101D600003058091930580930405809192058093EB +:101D70000505909194059093060580930705809141 +:101D800091058093080569C18832910509F05EC00C +:101D90008091C7049091C804892B09F45EC1809199 +:101DA000200590912105009719F426E04BE00BC027 +:101DB0008130910519F426E046E105C002970297AB +:101DC00040F426E045E160911E0580E895E00E9420 +:101DD0009F0960E080E895E00E94640A6D837E833D +:101DE0008F83988780E895E00E94DE0A69837A8372 +:101DF0008B839C8310924D0410924C04FE01359607 +:101E000080E090E001962191DC01A551BB4F2C931D +:101E100084309105BCF384E090E090934D0480936E +:101E20004C040196DC01A551BB4FE1E0F0E0EC0F62 +:101E3000FD1FE80FF91F359720812C9388309105FD +:101E400084F390934D0480934C04A3C08233910596 +:101E5000D9F440911E0550911F0521E08091200585 +:101E600090912105892B09F420E061E0640FFA01CB +:101E7000329737E03E9FC0013F9F900D11248A5A50 +:101E80009A4F0E946C05E9C0C39709F087C0209162 +:101E90001E0530911F052250310947E0429FC001C5 +:101EA000439F900D11248A5A9A4F0E946106811116 +:101EB00093C174C08734910509F44DC280911C050B +:101EC00090911D058834910509F469C280911C0523 +:101ED00090911D058934910509F48DC280911C05EE +:101EE00090911D058A34910509F4B5C280911C05B5 +:101EF00090911D058B34910509F4D1C280911C0588 +:101F000090911D058C34910509F4EDC280911C055A +:101F100090911D058D34910589F420911E05309115 +:101F20001F0522503109C901880F991F820F931F85 +:101F30008C5B9A4F0E94980981115CC380911C05AB +:101F400090911D058E34910509F442C380911C05C2 +:101F500090911D058F34910509F47DC380911C0576 +:101F600090911D058A35910509F0A6C38091C7049B +:101F70009091C804892B09F470C080911E0580934C +:101F8000C904809120058093CA0480912205809322 +:101F9000CB041092C8041092C7045FC080911C0546 +:101FA00090911D05C49709F430C180911C05909152 +:101FB0001D05C59791F420911E0530911F052250F3 +:101FC000310947E0429FC001439F900D11248A5A76 +:101FD0009A4F0E94610681113DC180911C0590912C +:101FE0001D05C69709F451C180911C0590911D05EE +:101FF000C79791F420911E0530911F052250310999 +:1020000017E0129FC001139F900D11248A5A9A4F16 +:102010000E946106811185C180911C0590911D056A +:10202000C89709F457C180911C0590911D0586340D +:10203000910509F03FCF60911E0570911F0541E0A9 +:10204000460F9B0122503109C901880F991F820F49 +:10205000931F8C5B9A4F0E9430088091A904909145 +:10206000AA04892BD9F10E94411B0091C30410914D +:10207000C4042091C5043091C604601B710B820B0F +:10208000930B613375478105910540F181E090E044 +:102090009093A8048093A7048091BF049091C004FA +:1020A000A091C104B091C2048093BB049093BC047E +:1020B000A093BD04B093BE041092BF041092C0045C +:1020C0001092C1041092C2040E94411B6093C30489 +:1020D0007093C4048093C5049093C60480919F04B8 +:1020E0009091A004892B39F18091E301813019F599 +:1020F0002091E2018091A3049091A404213049F43D +:1021000001968931910554F01092A4041092A30411 +:1021100009C0019797FF02C088E190E09093A40462 +:102120008093A30481E08093A1048091A304809311 +:10213000A2041092E3018091990490919A04892B52 +:1021400009F494C50E94411B0091950410919604D6 +:102150002091970430919804601B710B820B930BB4 +:10216000613D77408105910508F480C520919D046B +:1021700030919E044EE1429FC001439F900D112477 +:1021800069E470E00E946722E62F472F60939B046A +:1021900070939C0481E080939204862F972F60E0D7 +:1021A00071E00E946722809393042E2F342F37FF13 +:1021B00002C021503F4F3093940410929E0410921D +:1021C0009D040E94411B6093950470939604809334 +:1021D0009704909398044AC561E0809120059091FE +:1021E0002105892B09F460E020911E0530911F051F +:1021F0002250310947E0429FC001439F900D1124B6 +:102200008A5A9A4F0E940B0628CF20911E053091C2 +:102210001F052250310917E0129FC001139F900D36 +:1022200011248A5A9A4F0E946106882309F4BDCE70 +:1022300020911E0530911F0522503109129FC001C7 +:10224000139F900D1124609120058A5A9A4F0E9485 +:10225000110603CF41E08091220590912305892B3F +:1022600009F440E020911E0530911F0522503109EC +:1022700057E0529FC001539F900D1124609120059B +:102280008A5A9A4F0E942306E8CE20911E0530916B +:102290001F052250310917E0129FC001139F900DB6 +:1022A00011248A5A9A4F0E946106882309F49CCE11 +:1022B00020911E0530911F0522503109129FC00147 +:1022C000139F900D1124609120058A5A9A4F0E9405 +:1022D0004406C3CE20911E0530911F0522503109BE +:1022E00017E0129FC001139F900D11248A5A9A4F34 +:1022F0000E946106882309F496CE20911E05309134 +:102300001F0522503109129FC001139F900D112407 +:102310008A5A9A4F0E945D068093010590930205A8 +:102320009CCE80E090E09091220560912005709114 +:1023300021056827792720911E0530911F0522501D +:102340003109129FC001139F900D11248A5A9A4F90 +:102350000E94C20582CE20911E0530911F05225099 +:102360003109C901880F991F820F931F8C5B9A4F07 +:102370000E949809882309F4A1CD20911E0530916F +:102380001F0522503109C901880F991F820F931F21 +:10239000609120058C5B9A4F0E9447085ECE209189 +:1023A0001E0530911F0522503109C901880F991F60 +:1023B000820F931F8C5B9A4F0E949809882309F41F +:1023C00085CD80E090E0909122056091200570918C +:1023D00021056827792720911E0530911F0522507D +:1023E0003109C901880F991F820F931FE12C00E06A +:1023F00024E040E02BC020911E0530911F052250A3 +:102400003109C901880F991F820F931F8C5B9A4F66 +:102410000E949809882309F461CD80E090E09091B2 +:102420002205609120057091210568277927209168 +:102430001E0530911F0522503109C901880F991FCF +:10244000820F931FE12C00E024E041E08C5B9A4F67 +:102450000E941B0902CE20911E0530911F052250BB +:102460003109C901880F991F820F931F8C5B9A4F06 +:102470000E949809882309F439CD20911E053091D6 +:102480001F0522503109C901880F991F820F931F20 +:10249000609122058C5B9A4F0E94910914C0209193 +:1024A0001E0530911F0522503109C901880F991F5F +:1024B000820F931F8C5B9A4F0E949809882309F41E +:1024C0001DCD80912205898320911E0530911F0525 +:1024D00022503109C901880F991F820F931F209143 +:1024E000200541E0E1C020911E0530911F052250DA +:1024F0003109C901880F991F820F931F8C5B9A4F76 +:102500000E949809882309F401CD809120059091BB +:1025100021050AE010E0B8010E94672220911E0503 +:1025200030911F0522503109C901880F991F820F70 +:10253000931F8C5B9A4F0E9491098983809120059B +:1025400090912105B8010E94672220911E053091CB +:102550001F0522503109A901440F551F420F531F77 +:10256000682FCA018C5B9A4F0E94910980688A8308 +:102570008091220590912305B8010E946722209145 +:102580001E0530911F0522503109C901880F991F7E +:10259000820F931F8C5B9A4F0E9491098B838091CD +:1025A000220590912305B8010E94672220911E0503 +:1025B00030911F0522503109A901440F551F420FC8 +:1025C000531F682FCA018C5B9A4F0E9491095EC00D +:1025D00020911E0530911F0522503109C901880F35 +:1025E000991F820F931F8C5B9A4F0E94980981114B +:1025F00049C0ACCC10912005A0902205B0902305D5 +:10260000AA0CBB1CAA0CBB1CC12CD12CCA14DB0409 +:102610000CF023CD812F0E94881DBC0120911E0546 +:1026200030911F0522503109C901880F991F820F6F +:10263000931FE12C00E024E040E08C5B9A4F0E9465 +:102640001B096AEF70E080E090E00E94701B2FEFA2 +:10265000C21AD20ADBCF20911E0530911F052250ED +:102660003109C901880F991F820F931F8C5B9A4F04 +:102670000E949809882309F471CC19821A821B825E +:102680001C8205C08FEF89838A838B838C83209182 +:102690001E0530911F0522503109C901880F991F6D +:1026A000820F931F20E044E0BE016F5F7F4F8C5B81 +:1026B0009A4F0E94CE08D1CC8B359105E9F48091D8 +:1026C000C7049091C804892B09F4C7CC60911E05FA +:1026D00070911F0541E0460F9B012250310955E0E2 +:1026E000529FC001539F900D1124209120058A5DB7 +:1026F0009A4F0E943C054DCC8C35910509F04BC09A +:102700008091C7049091C804892B09F4A6CC6091EC +:102710001E0570911F0541E0460F9B0122503109B3 +:1027200055E0529FC001539F900D11242091200528 +:102730008A5D9A4F0E943C051091220512FBDD2410 +:10274000D0F8D19411FBCC24C0F8C194117011952C +:10275000E12CF12CE5E0BE2E809120059091210521 +:10276000E816F9060CF015CC60911E0570911F0556 +:1027700062507109B69EC001B79E900D1124012FC1 +:102780002C2D4D2D6E2D8A5D9A4F0E94CF043FEF68 +:10279000E31AF30AE1CF8D35910509F07BC08091F2 +:1027A000C7049091C804892B09F457CC20912005C7 +:1027B0003091210580911E0590911F05232BB1F4C6 +:1027C0009C012250310945E0429FC001439F900D7A +:1027D00011240091CB042091CA044091C904609156 +:1027E00022058A5D9A4F0E94CF04D3CB9C012250D0 +:1027F000310945E0429FC001439F900D11248A5D3D +:102800009A4F0E946905E12CF12CC82ED12C15E0BD +:10281000EC14FD040CF0BDCB209120053091210576 +:102820002130310541F48091220590912305E8166D +:10283000F906B1F42BC02230310541F48091220514 +:10284000909123058E159F055CF420C0233031053F +:10285000E9F48091220590912305E816F906B4F079 +:1028600020911E0530911F0522503109129FC00191 +:10287000139F900D11240091CB042091CA04409124 +:10288000C9046E2D8A5D9A4F0E94CF044FEFE41A5F +:10289000F40ABECF8E35910509F059C08091C70466 +:1028A0009091C804892B09F4D8CB8091220590918E +:1028B00023051816190634F081E090E09093230563 +:1028C0008093220520911E0530911F052250310969 +:1028D00045E0429FC001439F900D11248A5D9A4FAD +:1028E0000E946905E0902005F0902105C82ED12CAA +:1028F00015E0EC14FD040CF04CCB80912005909178 +:1029000021059701281B390BC9016091220570919F +:1029100023050E946722892BB1F420911E05309176 +:102920001F0522503109129FC001139F900D1124E1 +:102930000091CB042091CA044091C9046E2D8A5D98 +:102940009A4F0E94CF043FEFE31AF30AD2CF8F359C +:10295000910509F08BC08091C7049091C804892B20 +:1029600009F47BCB20911E0530911F0522503109BF +:1029700045E0429FC001439F900D11248A5D9A4F0C +:102980000E946905182F8091220590912305C12E80 +:10299000D12CE12CF12C892B99F515E0EC14FD04D8 +:1029A0000CF0F7CA209120053091210580911E0579 +:1029B00090911F05E216F3067CF49C012250310928 +:1029C000129FC001139F900D11240091CB04209100 +:1029D000CA044091C9040BC09C0122503109129FC6 +:1029E000C001139F900D112400E020E040E06E2D07 +:1029F0008A5D9A4F0E94CF044FEFE41AF40ACECFBB +:102A000075E0B72E96012E193F0909F4C2CA8091CC +:102A1000200590912105A601481B590BCA01409140 +:102A20001E0550911F05612F6E194250510928173C +:102A3000390764F0B49EC001B59E900D1124009139 +:102A4000CB042091CA044091C90408C0B49EC001BF +:102A5000B59E900D112400E020E040E08A5D9A4F81 +:102A60000E94CF045FEFE51AF50ACCCF8E309105B6 +:102A7000C1F441E050E069EE7CE080E00E946D1A14 +:102A800081E090E09093AA048093A9040E94411BE6 +:102A90006093C3047093C4048093C5049093C604E8 +:102AA0007BC08F30910541F480E00E948D1A109216 +:102AB000AA041092A90470C08A30910531F5809162 +:102AC000C7049091C804019709F0C7CA8091A70470 +:102AD000809300058091BB049091BC04A091BD043B +:102AE000B091BE0480930105492F5A2F6B2F772791 +:102AF0004093BB045093BC046093BD047093BE0428 +:102B000040930205A093030544CA8031910559F40E +:102B100082EE91E00E94090481E090E09093A0048D +:102B200080939F0439C08131910549F482EE91E090 +:102B30000E941C041092A00410929F048ECA82313D +:102B4000910501F560E082E00E942D1E43E050E017 +:102B50006FED7CE080E00E946D1A10929E0410924E +:102B60009D040E94411B609395047093960480938A +:102B700097049093980481E090E090939A04809356 +:102B800099040AC08D30910561F410929A04109254 +:102B9000990480E00E948D1A10921D0510921C0568 +:102BA0005CCA84369105D1F58091C7049091C80420 +:102BB000019709F052CA80911E0590911F0581303E +:102BC000910549F4809120050E94AD0080ED97E0C9 +:102BD0000E945301DEC98230910579F4809120056D +:102BE00090912105813491051CF48093510402C019 +:102BF0001092510410925004CCC9039709F0C9C92E +:102C000060915104662309F4C4C98091500468138B +:102C1000C0C982E594E00E944A02BBC9853691058D +:102C200009F01BCA8091C7049091C804019709F06C +:102C300014CA8091500490915104891708F0A9C9D1 +:102C4000EEE1F5E08F5F20813296A82FB0E0AF5A19 +:102C5000BB4F2C9325E0E432F20719F48093500423 +:102C600098C98913EFCF9093500493C928960FB653 +:102C7000F894DEBF0FBECDBFDF91CF911F910F91B2 +:102C8000FF90EF90DF90CF90BF90AF9008950F939B +:102C90001F93CF93DF9301E010E087E995E00E9456 +:102CA0002F17892B41F187E995E00E942F17049790 +:102CB00061F4109219051092180510921B051092DC +:102CC0001A051093C8040093C704C0911A05D09147 +:102CD0001B05CE01019690931B0580931A0587E989 +:102CE00095E00E943717FE01EE0FFF1FE45EFA4FDA +:102CF00091838083D2CFDF91CF911F910F9108955F +:102D000080911C0590911D05019731F46091150586 +:102D100087E995E00E94B61780911C0590911D05EA +:102D20008330910511F0C89741F443E050E060E032 +:102D300075E087E995E00E94891780911C059091C4 +:102D40001D05079761F443E050E068EE74E087E901 +:102D500095E00E94891710921D0510921C05809124 +:102D60001C0590911D058830910511F0449741F4A0 +:102D700044E050E060E075E087E995E00E94891743 +:102D800080911C0590911D054E9741F449E050E05B +:102D900060E075E087E995E00E94891780911C0545 +:102DA00090911D05889761F449E050E06BEE74E066 +:102DB00087E995E00E94891710921D0510921C0565 +:102DC00080911C0590911D05459751F445E150E017 +:102DD00060E075E087E995E00E9489171092000590 +:102DE00080911C0590911D050A9781F444E050E004 +:102DF00060E075E087E995E00E9489171092A804C9 +:102E00001092A70410921D0510921C0580911C05BC +:102E100090911D050B9771F442E050E061EA74E077 +:102E200087E995E00E9489171092A10410921D0570 +:102E300010921C0580911C0590911D050C9771F452 +:102E400043E050E062E974E087E995E00E94891769 +:102E50001092920410921D0510921C050895809105 +:102E6000CB0590E02091CC05821B9109089520911B +:102E7000CC058091CB05281750F4E22FF0E0E35306 +:102E8000FA4F808190E02F5F2093CC0508958FEF5B +:102E90009FEF0895E091CC058091CB05E81730F4C1 +:102EA000F0E0E353FA4F808190E008958FEF9FEFB9 +:102EB00008950895E091A305F091A4053097E1F0FD +:102EC0003091CC052091CB053217B0F040E0242F93 +:102ED00030E02617370754F4DC01A20FB31F5C91D2 +:102EE000D901A353BA4F5C934F5FF1CF1092CC0539 +:102EF0006093CB05CB0109940895E091A505F0916D +:102F0000A605309729F01092A9051092A8050994FA +:102F10000895CF92DF92EF92FF920F931F93CF937A +:102F2000DF937C01CB018A012091A705222389F040 +:102F3000EB016B01C40ED51ECC15DD0569F069915E +:102F4000D701ED91FC910190F081E02DC701099529 +:102F5000F3CF642F0E940D19C801DF91CF911F910B +:102F60000F91FF90EF90DF90CF900895CF93DF9374 +:102F70001F92CDB7DEB769832091A7052223D1F038 +:102F80002091A805203240F021E030E0FC0133839D +:102F9000228380E090E015C08091A905E82FF0E041 +:102FA000E655FA4F998190838F5F8093A9058093AE +:102FB000A80505C061E0CE0101960E940D1981E0CF +:102FC00090E00F90DF91CF910895FC01138212825F +:102FD00048EE53E060E070E0448355836683778376 +:102FE00082E991E09183808308951092CC0510923C +:102FF000CB051092A9051092A8050C945418CF93F4 +:10300000DF93EC01862F0E9472188DE797E10E94F2 +:103010002B198AE597E10E942619CE01DF91CF9105 +:103020000C94F5170C94FF17862F413208F040E2FC +:103030006DEC75E00E9476181092CC058093CB055C +:10304000089521E00C94141881E08093A705609303 +:10305000CA051092A9051092A80508950C94241889 +:103060000F93062F21E04091A8056AEA75E0809150 +:10307000CA050E94BA181092A9051092A8051092CC +:10308000A7050F91089561E00C9430187093A40582 +:103090006093A30508957093A6056093A505089510 +:1030A00087E995E00C94E51710925A0681E0809329 +:1030B00058061092570661E082E10E94661E61E0A8 +:1030C00083E10E94661EE9EBF0E080818E7F8083C1 +:1030D00080818D7F808388E48093B80085E480932D +:1030E000BC000895880F8093BA000895413208F01B +:1030F0003FC090915A069111FCCF91E090935A06EF +:10310000209358062FEF2093ED0510923206240FDE +:10311000209331069093590690915906880F892B78 +:103120008093590680915706813041F410925706DA +:10313000809159068093BB0085EC01C085EE809399 +:10314000BC0080915A068130E1F3809132068417E9 +:1031500010F44091320623E336E0FB01D9018A2FB7 +:10316000821B841718F48D918193F9CF842F0895D1 +:1031700080E008950F93413208F046C090915A06BE +:103180009111FCCF92E090935A06009358069FEF5E +:103190009093ED051092320640933106FB0163E3F4 +:1031A00076E0DB019A2F961B941718F491919D936A +:1031B000F9CF1092590690915906880F892B809368 +:1031C000590680915706813041F41092570680913C +:1031D00059068093BB0085EC01C085EE8093BC004E +:1031E000222321F080915A068230E1F38091ED058F +:1031F0008F3F61F08091ED05803251F08091ED05B7 +:10320000803341F483E007C081E005C080E003C063 +:1032100082E001C084E00F910895613298F420911A +:103220005A06243089F460930F06FC0181E196E090 +:10323000DC012A2F281B261718F421912D93F9CF92 +:1032400080E0089581E0089582E008959093540607 +:1032500080935306089590935606809355060895DB +:1032600085ED8093BC008091BC0084FDFCCF109262 +:103270005A06089585EC8093BC0010925A06089572 +:103280001F920F920FB60F9211242F933F934F93DB +:103290005F936F937F938F939F93AF93BF93EF93BE +:1032A000FF938091B900887F803609F49CC068F54F +:1032B000883209F45BC090F4803109F454C038F4CA +:1032C000882309F4F5C0883009F44DC0F5C0883171 +:1032D00009F44CC0803209F45DC0EEC0803409F4BA +:1032E00068C048F4803309F455C0883309F0E4C05D +:1032F0008093ED05A8C0803509F44FC0883509F4E6 +:103300005DC0883409F0D8C0D5C0883909F4C6C07A +:10331000A8F4883709F467C038F4883609F463C024 +:10332000803709F460C0C8C0883809F4B7C0803954 +:1033300009F45FC0803809F0BFC05BC0803B09F46E +:1033400085C038F4803A09F466C0883A09F47EC032 +:10335000B3C0803C09F4A6C0883C09F4A3C0883BF4 +:1033600009F489C0A9C08091590610C09091320615 +:1033700080913106981770F5E091320681E08E0F4A +:1033800080933206F0E0ED5CF94F80818093BB00C2 +:1033900085EC85C08093ED058DC0E091320681E01B +:1033A0008E0F809332068091BB00F0E0ED5CF94F08 +:1033B000808390913206809131066DC0E091320693 +:1033C00081E08E0F809332068091BB00F0E0ED5CCF +:1033D000F94F80838091580681116CC081E0809301 +:1033E000570684EA60C083E080935A061092EE0587 +:1033F000CFCF8091EE05803208F050C0E091EE050D +:1034000081E08E0F8093EE058091BB00F0E0E151EA +:10341000FA4F8083BDCF8091EE05803230F4E09189 +:10342000EE05F0E0E151FA4F10820E9430196091F0 +:10343000EE0570E0E0915306F09154068FEE95E0B2 +:1034400009951092EE050E943A1936C084E08093E7 +:103450005A061092100610920F06E0915506F09150 +:103460005606099580910F06811105C081E0809371 +:103470000F0610921106E091100681E08E0F8093E6 +:103480001006F0E0EF5EF94F80818093BB009091D1 +:10349000100680910F06981708F47ACF85E880937C +:1034A000BC000AC085EC8093BC0010925A0604C090 +:1034B0001092ED050E943019FF91EF91BF91AF91ED +:1034C0009F918F917F916F915F914F913F912F913C +:1034D0000F900FBE0F901F9018958230E8F4E82FE0 +:1034E000F0E0EE0FFF1FE55AF94F718360838130E2 +:1034F00041F0809169008C7F842B80936900E89A69 +:10350000089580916900440F551F440F551F837F14 +:10351000842B80936900E99A0895823068F48130A1 +:1035200011F0E89801C0E998E82FF0E0EE0FFF1FD6 +:10353000E55AF94F1182108208951F920F920FB62B +:103540000F9211242F933F934F935F936F937F9329 +:103550008F939F93AF93BF93EF93FF9380915B06FD +:1035600090915C06892B29F0E0915B06F0915C0656 +:103570000995FF91EF91BF91AF919F918F917F91AD +:103580006F915F914F913F912F910F900FBE0F90D0 +:103590001F9018951F920F920FB60F9211242F9320 +:1035A0003F934F935F936F937F938F939F93AF93CB +:1035B000BF93EF93FF9380915D0690915E06892BF8 +:1035C00029F0E0915D06F0915E060995FF91EF917B +:1035D000BF91AF919F918F917F916F915F914F912B +:1035E0003F912F910F900FBE0F901F9018951F9233 +:1035F0000F920FB60F9211242F933F938F939F93A7 +:10360000AF93BF938091600690916106A09162068E +:10361000B091630630915F0623E0230F2D3720F42D +:103620000196A11DB11D05C026E8230F0296A11D1C +:10363000B11D20935F068093600690936106A0936E +:103640006206B09363068091640690916506A0912E +:103650006606B09167060196A11DB11D80936406B0 +:1036600090936506A0936606B0936706BF91AF91ED +:103670009F918F913F912F910F900FBE0F901F90B0 +:1036800018952FB7F894609160067091610680914B +:103690006206909163062FBF08953FB7F89480911A +:1036A000640690916506A0916606B091670626B5FE +:1036B000A89B05C02F3F19F00196A11DB11D3FBF6A +:1036C0006627782F892F9A2F620F711D811D911DFA +:1036D00042E0660F771F881F991F4A95D1F708951A +:1036E000CF92DF92EF92FF92CF93DF936B017C0139 +:1036F0000E944D1BEB01C114D104E104F10479F0E7 +:103700000E944D1B6C1B7D0B683E7340A0F381E053 +:10371000C81AD108E108F108C851DC4FECCFDF919D +:10372000CF91FF90EF90DF90CF9008950197009791 +:1037300039F0880F991F880F991F02970197F1F7A9 +:103740000895789484B5826084BD84B5816084BD19 +:1037500085B5826085BD85B5816085BDEEE6F0E00A +:10376000808181608083E1E8F0E010828081826066 +:103770008083808181608083E0E8F0E080818160E7 +:103780008083E1EBF0E0808184608083E0EBF0E017 +:10379000808181608083EAE7F0E0808184608083BB +:1037A0008081826080838081816080838081806865 +:1037B00080831092C1000895CF93DF9382309105EA +:1037C00010F482E090E0E0911407F091150720E0FA +:1037D00030E0A0E0B0E0309739F1408151814817E6 +:1037E0005907B8F04817590771F4828193811097EF +:1037F00029F013969C938E9312972CC090931507E3 +:103800008093140727C02115310531F04217530763 +:1038100018F0A901DB0101C0EF019A01BD01DF0130 +:103820000280F381E02DD7CF21153105F9F0281B57 +:10383000390B2430310580F48A819B816115710533 +:1038400021F0FB019383828304C09093150780933A +:103850001407FE01329644C0FE01E20FF31F81936C +:10386000919322503109398328833AC0209112075D +:1038700030911307232B41F42091490130914A01E3 +:10388000309313072093120720914701309148018C +:103890002115310541F42DB73EB740914B015091B0 +:1038A0004C01241B350BE0911207F0911307E2172E +:1038B000F307A0F42E1B3F0B2817390778F0AC0153 +:1038C0004E5F5F4F2417350748F04E0F5F1F509330 +:1038D0001307409312078193919302C0E0E0F0E058 +:1038E000CF01DF91CF910895CF93DF93009709F433 +:1038F00087C0FC01329713821282C0911407D091C5 +:103900001507209781F420813181280F391F80917C +:103910001207909113078217930779F5F093130715 +:10392000E09312076DC0DE0120E030E0AE17BF0764 +:1039300050F412964D915C9113979D0141155105DC +:1039400009F1DA01F3CFB383A28340815181840F5F +:10395000951F8A179B0771F48D919C911197840F85 +:10396000951F02969183808312968D919C91139757 +:10397000938382832115310529F4F0931507E09391 +:1039800014073EC0D9011396FC93EE9312974D9104 +:103990005D91A40FB51FEA17FB0779F4808191812F +:1039A000840F951F0296D90111969C938E93828164 +:1039B000938113969C938E931297E0E0F0E08A81B6 +:1039C0009B81009719F0FE01EC01F9CFCE01029620 +:1039D00028813981820F931F20911207309113079C +:1039E0002817390769F4309729F4109215071092B7 +:1039F000140702C013821282D0931307C0931207D8 +:103A0000DF91CF910895CF92DF92EF92FF920F93C3 +:103A10001F93CF93DF9390E0FC01E458FF4FD491C4 +:103A2000FC01E057FF4F7491611102C0C0E001C07A +:103A3000CD2FDA01C901BF70672F70E0660F771FC5 +:103A40006C557F4F00E010E09801FB01E590F49089 +:103A5000F70140814D234C131EC0680179014FEFDF +:103A6000C41AD40AE40AF40A081719072A073B07FC +:103A700009F442C097018601E8CF68017901FFEFA0 +:103A8000CF1ADF0AEF0AFF0A081719072A073B07B0 +:103A900099F197018601FB01E590F490F7014081CF +:103AA0004D234C13EACF801B910BA20BB30B20E0EC +:103AB00030E0A901FB01E590F490F701F080FD22D0 +:103AC000FC120AC0281739074A075B07A9F02F5FC5 +:103AD0003F4F4F4F5F4FEECFA5E1B0E00E94BC22B9 +:103AE000605F7F4F8F4F9F4F24E096958795779526 +:103AF00067952A95D1F703C060E070E0CB01DF91B4 +:103B0000CF911F910F91FF90EF90DF90CF9008958C +:103B10008E3008F08E50877020914D0190E4299FDF +:103B200090011124822B80937C0080917A00806424 +:103B300080937A0080917A0086FDFCCF8091780096 +:103B40002091790090E0922B08951F93CF93DF93FB +:103B5000182FEB0161E00E942D1E209711F460E008 +:103B600004C0CF3FD10539F461E0812FDF91CF91BF +:103B70001F910C94661EE12FF0E0E859FF4FE4918D +:103B8000E330F9F048F4E130B9F0E230A1F584B562 +:103B9000806284BDC8BD34C0E630E9F0E73019F179 +:103BA000E43049F580918000806280938000D0935A +:103BB0008B00C0938A0024C084B5806884BDC7BDD3 +:103BC0001FC080918000806880938000D09389001E +:103BD000C093880015C08091B00080688093B000C9 +:103BE000C093B3000DC08091B00080628093B0009C +:103BF000C093B40005C0C038D1050CF0B5CFAFCF2D +:103C0000DF91CF911F910895833081F028F48130A6 +:103C100099F08230A1F008958630A9F08730B9F08C +:103C20008430D1F4809180008F7D03C0809180002A +:103C30008F7780938000089584B58F7702C084B514 +:103C40008F7D84BD08958091B0008F7703C08091EF +:103C5000B0008F7D8093B0000895CF93DF9390E004 +:103C6000FC01E458FF4F2491FC01E057FF4F849181 +:103C7000882349F190E0880F991FFC01E854FF4F19 +:103C8000A591B49182559F4FFC01C591D4919FB7E6 +:103C9000611108C0F8948C91209582238C938881BF +:103CA00082230AC0623051F4F8948C91322F3095FF +:103CB00083238C938881822B888304C0F8948C9111 +:103CC000822B8C939FBFDF91CF9108950F931F9309 +:103CD000CF93DF931F92CDB7DEB7282F30E0F901E5 +:103CE000E859FF4F8491F901E458FF4F1491F9010D +:103CF000E057FF4F04910023C9F0882321F0698326 +:103D00000E94041E6981E02FF0E0EE0FFF1FE255D4 +:103D1000FF4FA591B4919FB7F8948C91611103C0A6 +:103D20001095812301C0812B8C939FBF0F90DF9151 +:103D3000CF911F910F910895CF93DF93282F30E0FB +:103D4000F901E859FF4F8491F901E458FF4FD491EC +:103D5000F901E057FF4FC491CC2391F081110E94EB +:103D6000041EEC2FF0E0EE0FFF1FEC55FF4FA59166 +:103D7000B4912C912D2381E090E021F480E002C0E9 +:103D800080E090E0DF91CF9108950E94A11B0E94F6 +:103D9000630DCEE9DFE10E947C0D2097E1F30E94E4 +:103DA0009E1FF9CFFC0124853585F901E05CFF4FAA +:103DB00080819181329620813181821B930B8F7398 +:103DC00099270895FC0184859585FC01E05CFF4FEF +:103DD000408151813296208131814217530741F051 +:103DE0000190F081E02DE80FF91F808190E00895A7 +:103DF0008FEF9FEF0895FC0184859585FC01E05CC1 +:103E0000FF4F408151813296208131814217530703 +:103E100079F0A081B181A80FB91F8C9120813181E7 +:103E20002F5F3F4F2F7333273183208390E0089516 +:103E30008FEF9FEF0895FC0181A1882329F0A489C9 +:103E4000B5898C9186FFFBCF11A20895CF93DF93A4 +:103E5000FC0126853785D901A05CBF4F8D919C91CF +:103E6000119701968F739927E901CE5BDF4F488147 +:103E7000598184179507D9F30D90BC91A02DA20FFD +:103E8000B31F6C93A685B785A05CBF4F11969C931A +:103E90008E93A689B7892C9181E090E0078C02C0AF +:103EA000880F991F0A94E2F7282B2C9381E081A3B5 +:103EB0000488F589E02D80818064808381E090E032 +:103EC000DF91CF91089508951F920F920FB60F9230 +:103ED00011242F933F934F938F939F93EF93FF93CF +:103EE0008091C00082FD1CC04091C60080910E07E9 +:103EF00090910F0701968F739927209110073091A9 +:103F000011078217930771F0E0910E07F0910F07E8 +:103F1000E253F94F408390930F0780930E0702C03E +:103F20008091C600FF91EF919F918F914F913F91AA +:103F30002F910F900FBE0F901F90189588E696E076 +:103F40000E94D21E892B11F00C94631F08951F92BA +:103F50000F920FB60F9211242F933F938F939F933D +:103F6000EF93FF932091CA063091CB068091CC0647 +:103F70009091CD062817390731F48091C1008F7DCB +:103F80008093C10014C0E091CC06F091CD06E657B5 +:103F9000F94F20818091CC069091CD0601968F73C8 +:103FA00099279093CD068093CC062093C600FF916D +:103FB000EF919F918F913F912F910F900FBE0F9096 +:103FC0001F90189510926B0610926A0688EE93E087 +:103FD000A0E0B0E080936C0690936D06A0936E060F +:103FE000B0936F0682EA91E0909369068093680629 +:103FF0008EEC96E090937506809374068AE896E0BE +:10400000909377068093760685EC90E090937906FE +:104010008093780684EC90E090937B0680937A06F8 +:1040200080EC90E090937D0680937C0681EC90E09C +:1040300090937F0680937E0682EC90E090938106B9 +:104040008093800686EC90E09093830680938206AE +:1040500084E08093840683E08093850687E08093E4 +:10406000860685E08093870681E080938806089520 +:10407000CF92DF92EF92FF920F931F93CF93DF9334 +:104080006C017A01EB01E60EF71E00E010E0CE15A0 +:10409000DF0561F06991D601ED91FC910190F0810D +:1040A000E02DC6010995080F191FF1CFC801DF9156 +:1040B000CF911F910F91FF90EF90DF90CF900895D7 +:1040C0006115710581F0DB010D900020E9F7AD016C +:1040D00041505109461B570BDC01ED91FC910280C8 +:1040E000F381E02D099480E090E008950C94602025 +:1040F0005058BB27AA270ED04DC13ED130F043D136 +:1041000020F031F49F3F11F41EF433C10EF4E0951A +:10411000E7FB29C1E92F4FD180F3BA176207730774 +:104120008407950718F071F49EF567C10EF4E095C9 +:104130000B2EBA2FA02D0B01B90190010C01CA0161 +:10414000A0011124FF27591B99F0593F50F4503E0C +:1041500068F11A16F040A22F232F342F4427585FFE +:10416000F3CF469537952795A795F0405395C9F716 +:104170007EF41F16BA0B620B730B840BBAF09150CE +:10418000A1F0FF0FBB1F661F771F881FC2F70EC06D +:10419000BA0F621F731F841F48F487957795679540 +:1041A000B795F7959E3F08F0B3CF9395880F08F029 +:1041B0009927EE0F9795879508950CD0EBC0E3D023 +:1041C00040F0DAD030F021F45F3F19F0CCC051114B +:1041D00015C1CFC0F0D098F39923C9F35523B1F39B +:1041E000951B550BBB27AA2762177307840738F066 +:1041F0009F5F5F4F220F331F441FAA1FA9F333D0C5 +:104200000E2E3AF0E0E830D091505040E695001C78 +:10421000CAF729D0FE2F27D0660F771F881FBB1F34 +:10422000261737074807AB07B0E809F0BB0B802D0E +:10423000BF01FF2793585F4F2AF09E3F510568F05A +:1042400092C0DCC05F3FECF3983EDCF38695779537 +:104250006795B795F7959F5FC9F7880F911D96955C +:10426000879597F90895E1E0660F771F881FBB1FB8 +:10427000621773078407BA0720F0621B730B840B65 +:10428000BA0BEE1F88F7E095089504D06894B11139 +:10429000B5C0089598D088F09F5790F0B92F99270E +:1042A000B751A0F0D1F0660F771F881F991F1AF041 +:1042B000BA95C9F712C0B13081F09FD0B1E008952E +:1042C0009CC0672F782F8827B85F39F0B93FCCF3AF +:1042D000869577956795B395D9F73EF49095809537 +:1042E000709561957F4F8F4F9F4F0895E89409C057 +:1042F00097FB3EF490958095709561957F4F8F4F19 +:104300009F4F9923A9F0F92F96E9BB279395F6952E +:10431000879577956795B795F111F8CFFAF4BB0FAC +:1043200011F460FF1BC06F5F7F4F8F4F9F4F16C010 +:10433000882311F096E911C0772321F09EE8872F9A +:10434000762F05C0662371F096E8862F70E060E056 +:104350002AF09A95660F771F881FDAF7880F9695CF +:10436000879597F9089597F99F6780E870E060E076 +:1043700008959FEF80EC089500240A9416161706FE +:1043800018060906089500240A9412161306140646 +:1043900005060895092E0394000C11F4882352F0A9 +:1043A000BB0F40F4BF2B11F460FF04C06F5F7F4F61 +:1043B0008F4F9F4F089557FD9058440F551F59F048 +:1043C0005F3F71F04795880F97FB991F61F09F3F02 +:1043D00079F087950895121613061406551FF2CF2B +:1043E0004695F1DF08C0161617061806991FF1CF7B +:1043F00086957105610508940895E894BB276627A2 +:104400007727CB0197F908950BD0C4CFB5DF28F0FB +:10441000BADF18F0952309F0A6CFABCF1124EECF69 +:10442000CADFA0F3959FD1F3950F50E0551F629F0F +:10443000F001729FBB27F00DB11D639FAA27F00DFD +:10444000B11DAA1F649F6627B00DA11D661F829F24 +:104450002227B00DA11D621F739FB00DA11D621F09 +:10446000839FA00D611D221F749F3327A00D611D26 +:10447000231F849F600D211D822F762F6A2F112408 +:104480009F5750408AF0E1F088234AF0EE0FFF1F5B +:10449000BB1F661F771F881F91505040A9F79E3F92 +:1044A000510570F060CFAACF5F3FECF3983EDCF38C +:1044B000869577956795B795F795E7959F5FC1F7CF +:1044C000FE2B880F911D9695879597F9089597FB78 +:1044D000072E16F4009407D077FD09D00E94C7225A +:1044E00007FC05D03EF4909581959F4F08957095F7 +:1044F00061957F4F0895A1E21A2EAA1BBB1BFD01F7 +:104500000DC0AA1FBB1FEE1FFF1FA217B307E407B2 +:10451000F50720F0A21BB30BE40BF50B661F771F0A +:10452000881F991F1A9469F76095709580959095EA +:104530009B01AC01BD01CF010895052E97FB1EF430 +:1045400000940E94B42257FD07D00E947B2207FCF2 +:1045500003D04EF40C94B42250954095309521959B +:104560003F4F4F4F5F4F089590958095709561959F +:104570007F4F8F4F9F4F08950E94E122A59F900D7E +:10458000B49F900DA49F800D911D11240895AA1B26 +:10459000BB1B51E107C0AA1FBB1FA617B70710F02E +:1045A000A61BB70B881F991F5A95A9F78095909560 +:1045B000BC01CD010895EE0FFF1F0590F491E02D91 +:1045C0000994A29FB001B39FC001A39F700D811DEC +:1045D0001124911DB29F700D811D1124911D08950C +:1045E0000F931F93CF93DF93869F8001879F100DBA +:1045F000969F100D1124C8010E94DC1BEC0100974E +:1046000029F0A80160E070E00E940C23CE01DF9148 +:10461000CF911F910F910895DC0101C06D9341501E +:0A4620005040E0F70895F894FFCF32 +:10462A000C0B0A2A2A2A2A2A2A382C0000000000FF +:10463A000000000000000000000000000000000070 +:10464A000000000000000000000000000000000060 +:10465A000000000000000000000000000000000050 +:10466A0000000000000000000016078000010000A2 +:10467A0001000800400000010004050D0D0E13158D +:10468A0016191A1C232526292A2C323401000A005D +:10469A006400E8033F065B4F666D7D077F6F777C9A +:1046AA00395E797152656164206661696C00000047 +:1046BA000000B61789172F1737174A17591700001E +:0E46CA000000261F3820D21EFB1EE21E1B1F02 +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_2_7.cpp.hex b/Firmware/Archive/grove_pi_v1_2_7.cpp.hex new file mode 100644 index 0000000..21ef8e1 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_2_7.cpp.hex @@ -0,0 +1,865 @@ +:100000000C9464000C94DB120C9408130C948C0078 +:100010000C948C000C9490030C948C000C948C0029 +:100020000C948C000C948C000C948C000C948C0020 +:100030000C948C000C94F80D0C948C000C948C0097 +:100040000C9435130C948C000C9485150C94B715F6 +:100050000C948C000C948C000C948C000C948C00F0 +:100060000C947E110C948C0000000008000201002A +:100070000003040700000000000000000102040863 +:100080001020408001020408102001020408102002 +:10009000040404040404040402020202020203032E +:1000A00003030303000000002300260029000000D2 +:1000B0000000250028002B0000000000240027007D +:1000C0002A00D9031611E71511241FBECFEFD8E07F +:1000D000DEBFCDBF11E0A0E0B1E0EEEAF5E302C083 +:1000E00005900D92AA34B107D9F723E0AAE4B1E054 +:1000F00001C01D92A53AB207E1F710E0C8ECD0E0CC +:1001000004C02297FE010E948719C23CD107C9F79B +:100110000E942B160C94D51A0C940000CF92DF92FB +:10012000EF92FF920F931F93E82FF92F05C0015014 +:1001300011092109310961F1908196239417B9F3CE +:1001400005C0015011092109310911F1908196234F +:100150009413F7CFC12CD12CE12CF12C0AC08FEFD6 +:10016000C81AD80AE80AF80A0C151D052E053F051D +:1001700079F080818623841791F36C2D7D2D8E2D4F +:100180009F2D1F910F91FF90EF90DF90CF900895DA +:1001900060E070E080E090E01F910F91FF90EF90A1 +:1001A000DF90CF900895CF93DF93EC0160E08881DA +:1001B0000E94FA1484E190E00E94D61361E08881E5 +:1001C0000E94FA1484E190E0DF91CF910C94D61351 +:1001D0000F931F93CF93DF93EC01062F18E007FFD7 +:1001E00002C061E001C060E089810E94FA14CE0182 +:1001F0000E94D300000F115091F7DF91CF911F9112 +:100200000F910895EF92FF921F93CF93DF9300D049 +:10021000CDB7DEB77C01162F27FF02C060EC01C00E +:1002200060EE26FF606147FF686046FF646017FF6D +:10023000626016FF6160C70129834A830E94E8005B +:100240002981622FC7010E94E8004A81642FC701FB +:100250000E94E800612FC7010F900F90DF91CF91AE +:100260001F91FF90EF900C94E8007F928F929F92E5 +:10027000AF92BF92CF92DF92EF92FF920F931F93B4 +:10028000CF93DF93EC01162F942E822E60E00E9414 +:10029000E80060E0CE010E94E80060E0CE010E942C +:1002A000E80060E0CE010E94E80083E0189F700142 +:1002B000112467018FEFC81AD80A570182E0A80EEF +:1002C000B11C712C8A81781600F571120FC0EB8178 +:1002D000FC81EE0DFF1D9082EB81FC81EC0DFD1D7C +:1002E0008082EB81FC81EA0DFB1D0083EB81FC81A8 +:1002F00083E0789EE00DF11D11242281418160810F +:10030000CE010E9402017394DDCF60E0CE010E9415 +:10031000E80060E0CE010E94E80060E0CE010E94AB +:10032000E80060E0CE01DF91CF911F910F91FF9027 +:10033000EF90DF90CF90BF90AF909F908F907F9085 +:100340000C94E8000F931F93CF93DF93EC01862F5B +:10035000688349832A8361E00E94C11461E0898136 +:100360000E94C1148A8161E070E023E0829FC00195 +:1003700011240E948B199C838B8310E08A811817AB +:1003800048F400E020E040E0612FCE010E943501FA +:100390001F5FF4CFDF91CF911F910F910895FC0162 +:1003A00082810895CF93DF93EC01862F6E834F8374 +:1003B000288791E09D8760E00E94C11461E08E81F2 +:1003C0000E94FA1419861A861B861C86DF91CF912B +:1003D0000895DF92EF92FF920F931F93CF93DF93D5 +:1003E000EC0161E08E810E94FA146AEF70E080E017 +:1003F00090E00E94AE130E947F1309851A852B8519 +:100400003C85601771078207930720F419861A86C6 +:100410001B861C862D85211111C009851A852B8507 +:100420003C85DC01CB01801B910BA20BB30B803D03 +:100430009740A105B10510F481E071C01D860E94AE +:100440007F1369877A878B879C871C821B821A821D +:100450001982188261E08E810E94C11460E08E8151 +:100460000E94FA1464E170E080E090E00E94AE1314 +:10047000F89461E08E810E94FA1488E290E00E9474 +:10048000D61360E08E810E94C114F12CD12C81E042 +:10049000E12C082F10E08E810E9430158017910703 +:1004A00041F4E39481E090E00E94D6138FEFE812CC +:1004B000F2CF8E810E9430159FEFE916C9F023E03C +:1004C0002F1590F4F0FC10C09D2D9695969596955D +:1004D000FE01E90FF11D9081990F908328852E155B +:1004E00010F491609083D394F39495E5F912D0CFF2 +:1004F000789427E22D1590F42C8130E04881898191 +:1005000090E0840F911D4A81840F911D4B81840FCF +:10051000911D99272817390709F48ECF80E0DF91C4 +:10052000CF911F910F91FF90EF90DF900895CF92A0 +:10053000DF92EF92FF920F931F93CF93DF93EC0123 +:10054000162F0E94E901882309F450C08F818B3057 +:1005500031F008F44BC08551823078F047C06A8191 +:1005600070E080E090E00E942B18112309F449C04C +:1005700020E030E040E151E42AC00A81602F6F772B +:1005800070E080E090E00E942D1820E030E040E82C +:1005900053E40E94B9186B017C016B8170E080E02C +:1005A00090E00E942D189B01AC01C701B6010E948A +:1005B0005F1720E030E040E251E40E94C31707FDDE +:1005C0009058112309F120E030E040E151E40E940D +:1005D000B91820E030E040EA50E40E94C31720E060 +:1005E00030E040E052E40E945F170EC067E071E027 +:1005F00084E093E00E94781620E030E040EC5FE772 +:1006000005C09B01AC0102C09B01AC01B901CA014C +:10061000DF91CF911F910F91FF90EF90DF90CF90DE +:100620000895CF92DF92EF92FF92CF93DF93EC0188 +:100630000E94E901882379F18F818B3029F158F1EB +:100640008551823040F5688170E080E090E00E9442 +:100650002B1820E030E040E853E40E94B9186B0109 +:100660007C01698170E080E090E00E942D189B0180 +:10067000AC01C701B6010E945F1720E030E040E204 +:1006800051E40E94C31711C0688170E080E090E0DF +:100690000E942B180AC067E071E084E093E00E949A +:1006A000781660E070E080EC9FE7DF91CF91FF90DB +:1006B000EF90DF90CF900895CF93DF9382E00E9478 +:1006C0003015EC0183E00E9430158C239D230197A7 +:1006D00019F481E080934C01DF91CF91089584E07B +:1006E000809368008BB381718BBB8CE080936D002D +:1006F000089548EE53E060E070E08EE292E00E94E0 +:10070000870E2FEF3FEFA9016CE573E08EE292E0D8 +:100710000E949D0E789408958EE292E00C948E0EC5 +:100720001F920F920FB60F9211241F932F933F9396 +:100730004F935F936F937F938F939F93AF93BF93E9 +:10074000CF93DF93EF93FF9310914C011130E9F4B5 +:1007500082E00E943015EC0183E00E9430158C1776 +:100760009D071CF410934A010CC082E00E943015D2 +:10077000EC0183E00E943015C817D90734F41092B9 +:100780004A0110934B0110924C01FF91EF91DF91C0 +:10079000CF91BF91AF919F918F917F916F915F9119 +:1007A0004F913F912F911F910F900FBE0F901F906F +:1007B00018958AE491E00C946F03CF93DF93EC01DA +:1007C000862FE62FF0E0F983E88350E05B834A83CD +:1007D0002C831E821D8261E00E94C11461E08A8127 +:1007E000DF91CF910C94C1141F93CF93DF93EC0151 +:1007F00060E08A810E94FA148AE090E00E94D61399 +:1008000014E061E08A810E94FA1460E08A810E940B +:10081000FA141150B1F7DF91CF911F910895FF9213 +:100820000F931F93CF93DF93EC018B0190E1F92E8F +:10083000612F661F6627661F8A810E94FA148881CD +:100840000E94301561E0892B09F060E088810E94E8 +:10085000FA14000F111FFA9459F7DF91CF911F91ED +:100860000F91FF900895EF92FF920F931F93CF93F4 +:10087000DF93EC017B01CB0193709E838D8360E05D +:1008800070E0CE010E940F0400E010E08C8188230C +:1008900051F0C701002E02C0880F991F0A94E2F799 +:1008A00091FF0DC009C0C701002E02C09695879523 +:1008B0000A94E2F780FF03C06FEF70E002C060E0CF +:1008C00070E0CE010E940F040F5F1F4F0A30110528 +:1008D000E9F660E070E0CE010E940F0460E070E095 +:1008E000CE010E940F04CE01DF91CF911F910F9195 +:1008F000FF90EF900C94F403FC0164836581768192 +:100900000C9433046B3008F06AE02FEF3FEF02C025 +:10091000220F331F6A95E2F720953095FC0136834C +:100920002583B9010C943304662321F06B3018F051 +:100930006AE001C061E05FEF560FFC01258136815E +:1009400061E070E002C0660F771F5A95E2F744231A +:1009500019F0622B732B04C060957095622373238A +:10096000FC01768365830C943304662321F06B309D +:1009700018F06AE001C061E02FEF260F61E070E03F +:1009800002C0660F771F2A95E2F7FC0125813681A8 +:1009900062277327768365830C943304FC01858179 +:1009A00096810895FC0181E020813181232B09F497 +:1009B00080E0089580915C0190915D010196909393 +:1009C0005D0180935C0108950E947F13609376011E +:1009D00070937701809378019093790182E00E946F +:1009E00030159093650180936401892BA9F060E034 +:1009F00088E00E94FA148091760190917701A0918D +:100A00007801B09179018093720190937301A09362 +:100A10007401B093750114C08091760190917701B3 +:100A2000A0917801B091790180936E0190936F014C +:100A3000A0937001B093710161E088E00E94FA1404 +:100A40004091720150917301609174017091750130 +:100A500080916E0190916F01A0917001B091710130 +:100A600084179507A607B70740F5481B590B6A0B73 +:100A70007B0B40936A0150936B0160936C01709300 +:100A80006D0180917E0190917F01A0918001B091D4 +:100A90008101840F951FA61FB71F80937E0190933D +:100AA0007F01A0938001B093810110927201109296 +:100AB00073011092740110927501089564E070E062 +:100AC00084E392E00E940A1164E27DE084E392E014 +:100AD0000E940C116DE57DE084E392E00E9411110B +:100AE00041E050E064EE74E080E00C94AB12AF9211 +:100AF000BF92CF92DF92EF92FF920F931F93CF930B +:100B0000DF93CDB7DEB728970FB6F894DEBF0FBEE0 +:100B1000CDBF8091BA019091BB01049709F0BAC191 +:100B20008091B8019091B901892B09F0B3C181E09E +:100B300090E09093B9018093B8018091BC019091AD +:100B4000BD018130910539F48091BE010E943015BC +:100B50008093B7019FC18230910539F46091C00143 +:100B60008091BE010E94FA1495C183309105B1F4C1 +:100B70008091BE010E941C1490938C0180938B0184 +:100B80009C0197FF02C021503F4F3093A30160E0CA +:100B900071E00E941C198093A4017CC184309105EE +:100BA00049F46091C0017091C1018091BE010E9421 +:100BB000391470C18530910539F46091C00180917C +:100BC000BE010E94C11466C18730910509F043C07F +:100BD0008091BE019091BF0180934F01909350018D +:100BE00061E00E94C11460E080914F010E94FA14FC +:100BF00082E090E00E94D61361E080914F010E9454 +:100C0000FA1485E090E00E94D61360E080914F01D5 +:100C10000E94FA1460E080914F010E94C11420E408 +:100C200032E44FE050E061E080914F010E9459159D +:100C30002AE330E040E050E00E945219CA01B901B5 +:100C400020E031E040E050E00E9452192093A301DF +:100C50006093A4011FC18830910551F481E0809315 +:100C6000A30182E08093A40187E08093A50112C1D3 +:100C70008832910509F05EC08091860190918701CC +:100C8000892B09F407C18091C0019091C10100979F +:100C900019F426E04BE00BC08130910519F426E0F1 +:100CA00046E105C00297029740F426E045E16091D5 +:100CB000BE0180E292E00E94D20160E080E292E018 +:100CC0000E9497026D837E838F83988780E292E0F3 +:100CD0000E94110369837A838B839C8310924E0157 +:100CE00010924D01FE01359680E090E00196219131 +:100CF000DC01A357BE4F2C9384309105BCF384E0F4 +:100D000090E090934E0180934D010196DC01A35732 +:100D1000BE4FE1E0F0E0EC0FFD1FE80FF91F359743 +:100D200020812C938830910584F390934E01809319 +:100D30004D015DC082339105D9F44091BE015091BF +:100D4000BF0121E08091C0019091C101892B09F47C +:100D500020E061E0640FFA01329737E03E9FC00166 +:100D60003F9F900D11248A509E4F0E94DD0392C038 +:100D7000C39709F041C02091BE013091BF012250BC +:100D8000310947E0429FC001439F900D11248A50D2 +:100D90009E4F0E94D204811161C12EC08A309105FC +:100DA00009F0F5C58091860190918701019709F0BE +:100DB00071C0809166018093A20180917A01909127 +:100DC0007B01A0917C01B0917D018093A301492F0B +:100DD0005A2F6B2F772740937A0150937B016093B2 +:100DE0007C0170937D014093A401A093A501109212 +:100DF0008701109286014EC08091BC019091BD0187 +:100E0000C49709F406C18091BC019091BD01C597BA +:100E100091F42091BE013091BF012250310947E089 +:100E2000429FC001439F900D11248A509E4F0E9403 +:100E3000D20481112CC18091BC019091BD01C69753 +:100E400009F440C18091BC019091BD01C79709F49C +:100E50005EC18091BC019091BD01C89709F484C125 +:100E60008091BC019091BD018634910509F0A3C128 +:100E70006091BE017091BF0141E0460F9B0122507D +:100E80003109C901880F991F820F931F8C519E4F02 +:100E90000E94B80E8091680190916901892BD9F167 +:100EA0000E947F130091820110918301209184019F +:100EB00030918501601B710B820B930B6133754779 +:100EC0008105910540F181E090E090936701809366 +:100ED000660180917E0190917F01A0918001B09187 +:100EE000810180937A0190937B01A0937C01B09360 +:100EF0007D0110927E0110927F011092800110926C +:100F000081010E947F13609382017093830180931B +:100F100084019093850180915E0190915F01892BFE +:100F200039F180914B01813019F520914A0180916E +:100F3000620190916301213049F401968931910554 +:100F400054F0109263011092620109C0019797FF5B +:100F500002C088E190E0909363018093620181E098 +:100F600080936001809162018093610110924B0136 +:100F70008091580190915901892B09F454C50E9420 +:100F80007F13009154011091550120915601309129 +:100F90005701601B710B820B930B613D77408105FC +:100FA000910508F440C520915C0130915D014EE14E +:100FB000429FC001439F900D112469E470E00E949C +:100FC0001C19E62F472F60935A0170935B0181E053 +:100FD00080935101862F972F60E071E00E941C19C9 +:100FE000809352012E2F342F37FF02C021503F4FE4 +:100FF0003093530110925D0110925C010E947F13A7 +:10100000609354017093550180935601909357015A +:101010000AC52091BE013091BF012250310917E06D +:10102000129FC001139F900D11248A509E4F0E9461 +:10103000D204882309F4E7CE2091BE013091BF018C +:1010400022503109129FC001139F900D112460910D +:10105000C0018A509E4F0E9482041CCF61E08091A3 +:10106000C0019091C101892B09F460E02091BE017B +:101070003091BF012250310947E0429FC001439F98 +:10108000900D11248A509E4F0E947C0403CF41E0B2 +:101090008091C2019091C301892B09F440E0209115 +:1010A000BE013091BF012250310957E0529FC0016B +:1010B000539F900D11246091C0018A509E4F0E9451 +:1010C0009404E8CE2091BE013091BF012250310935 +:1010D00017E0129FC001139F900D11248A509E4F5C +:1010E0000E94D204882309F4ADCE2091BE01309134 +:1010F000BF0122503109129FC001139F900D11248E +:101100006091C0018A509E4F0E94B504C3CE2091C9 +:10111000BE013091BF012250310917E0129FC0017A +:10112000139F900D11248A509E4F0E94D204882351 +:1011300009F48FCE80E090E09091C2016091C001EF +:101140007091C101682779272091BE013091BF01BC +:1011500022503109129FC001139F900D11248A5013 +:101160009E4F0E94330496CE2091BE013091BF0164 +:101170002250310917E0129FC001139F900D1124D6 +:101180008A509E4F0E94D204882309F469CE209190 +:10119000BE013091BF0122503109129FC001139F3F +:1011A000900D11248A509E4F0E94CE048093A3017B +:1011B0009093A4016FCE8734910519F52091BE015B +:1011C0003091BF0122503109C901880F991F820F48 +:1011D000931F8C519E4F0E942010882391F02091E4 +:1011E000BE013091BF0122503109C901880F991FFA +:1011F000820F931F6091C0018C519E4F0E94CF0EB1 +:1012000049CE8091BC019091BD018834910559F57A +:101210002091BE013091BF0122503109C901880FD0 +:10122000991F820F931F8C519E4F0E94201088237C +:10123000D1F080E090E09091C2016091C001709186 +:10124000C101682779272091BE013091BF0122504A +:101250003109C901880F991F820F931FE12C00E00B +:1012600024E040E05CC08091BC019091BD018934D4 +:10127000910589F42091BE013091BF0122503109BE +:10128000C901880F991F820F931F8C519E4F0E9496 +:10129000201081112BC08091BC019091BD018A3436 +:1012A000910509F041C02091BE013091BF0122504B +:1012B0003109C901880F991F820F931F8C519E4FCE +:1012C0000E942010882381F12091BE013091BF013E +:1012D00022503109C901880F991F820F931F609115 +:1012E000C2018C519E4F0E94191038C080E090E0DE +:1012F0009091C2016091C0017091C1016827792766 +:101300002091BE013091BF0122503109C901880FDF +:10131000991F820F931FE12C00E024E041E08C51E3 +:101320009E4F0E94A30FB6CD8091BC019091BD014C +:101330008B34910519F52091BE013091BF012250E7 +:101340003109C901880F991F820F931F8C519E4F3D +:101350000E942010882391F08091C20189832091FE +:10136000BE013091BF0122503109C901880F991F78 +:10137000820F931F2091C00141E00FC18091BC01F9 +:101380009091BD018C34910509F075C02091BE018A +:101390003091BF0122503109C901880F991F820F76 +:1013A000931F8C519E4F0E942010882309F463C024 +:1013B0008091C0019091C1010AE010E0B8010E9443 +:1013C0001C192091BE013091BF0122503109C90181 +:1013D000880F991F820F931F8C519E4F0E941910E6 +:1013E00089838091C0019091C101B8010E941C19AC +:1013F0002091BE013091BF0122503109A901440F53 +:10140000551F420F531F682FCA018C519E4F0E94D7 +:10141000191080688A838091C2019091C301B8013C +:101420000E941C192091BE013091BF012250310948 +:10143000C901880F991F820F931F8C519E4F0E94E4 +:1014400019108B838091C2019091C301B8010E9451 +:101450001C192091BE013091BF0122503109A90110 +:10146000440F551F420F531F682FCA018C519E4FC6 +:101470000E94191067C08091BC019091BD018D340C +:10148000910589F42091BE013091BF0122503109AC +:10149000C901880F991F820F931F8C519E4F0E9484 +:1014A000201081111EC08091BC019091BD018E342D +:1014B000910509F049C02091BE013091BF01225031 +:1014C0003109C901880F991F820F931F8C519E4FBC +:1014D0000E9420108823C1F18FEF89838A838B8338 +:1014E00031C01091C001A090C201B090C301AA0CFC +:1014F000BB1CAA0CBB1CC12CD12CCA14DB040CF0E5 +:10150000C9CC812F0E941C14BC012091BE013091D6 +:10151000BF0122503109C901880F991F820F931F03 +:10152000E12C00E024E040E08C519E4F0E94A30F8C +:101530006AEF70E080E090E00E94AE132FEFC21AD5 +:10154000D20ADBCF8C831CC08091BC019091BD017D +:101550008F34910551F52091BE013091BF01225089 +:101560003109C901880F991F820F931F8C519E4F1B +:101570000E9420108823C9F019821A821B821C82C3 +:101580002091BE013091BF0122503109C901880F5D +:10159000991F820F931F20E044E0BE016F5F7F4FD1 +:1015A0008C519E4F0E94560F75CC8091BC0190913A +:1015B000BD018A35910569F48091BE01809388014F +:1015C0008091C001809389018091C20180938A013A +:1015D00061CC8B359105B1F46091BE017091BF0172 +:1015E00041E0460F9B012250310955E0529FC00156 +:1015F000539F900D11242091C0018A539E4F0E9449 +:10160000A20148CC8C35910509F044C06091BE011F +:101610007091BF0141E0460F9B012250310955E016 +:10162000529FC001539F900D11242091C0018A53F5 +:101630009E4F0E94A2011091C20112FBDD24D0F83E +:10164000D19411FBCC24C0F8C19411701195E12CF8 +:10165000F12CE5E0BE2E8091C0019091C101E81609 +:10166000F9060CF017CC6091BE017091BF01625079 +:101670007109B69EC001B79E900D1124012F2C2D2B +:101680004D2D6E2D8A539E4F0E9435013FEFE31A78 +:10169000F30AE1CF8D35910509F074C02091C001A6 +:1016A0003091C1018091BE019091BF01232BB1F413 +:1016B0009C012250310945E0429FC001439F900D9B +:1016C000112400918A012091890140918801609143 +:1016D000C2018A539E4F0E943501DCCB9C012250EF +:1016E000310945E0429FC001439F900D11248A5368 +:1016F0009E4F0E94CF01E12CF12CC82ED12C15E079 +:10170000EC14FD040CF0C6CB2091C0013091C10156 +:101710002130310541F48091C2019091C301E81656 +:10172000F906B1F42BC02230310541F48091C20199 +:101730009091C3018E159F055CF420C023303105C4 +:10174000E9F48091C2019091C301E816F906B4F062 +:101750002091BE013091BF0122503109129FC0017A +:10176000139F900D112400918A01209189014091CD +:1017700088016E2D8A539E4F0E9435014FEFE41A67 +:10178000F40ABECF8E35910509F052C08091C20196 +:101790009091C3011816190634F081E090E09093FF +:1017A000C3018093C2012091BE013091BF0122503C +:1017B000310945E0429FC001439F900D11248A5397 +:1017C0009E4F0E94CF01E090C001F090C101C82E51 +:1017D000D12C15E0EC14FD040CF05CCB8091C00121 +:1017E0009091C1019701281B390BC9016091C20179 +:1017F0007091C3010E941C19892BB1F42091BE0184 +:101800003091BF0122503109129FC001139F900DEA +:10181000112400918A0120918901409188016E2D47 +:101820008A539E4F0E9435013FEFE31AF30AD2CF4D +:101830008F35910509F084C02091BE013091BF0120 +:101840002250310945E0429FC001439F900D112471 +:101850008A539E4F0E94CF01182F8091C201909110 +:10186000C301C12ED12CE12CF12C892B99F515E067 +:10187000EC14FD040CF00ECB2091C0013091C1019D +:101880008091BE019091BF01E216F3067CF49C01A9 +:1018900022503109129FC001139F900D1124009115 +:1018A0008A0120918901409188010BC09C0122503E +:1018B0003109129FC001139F900D112400E020E018 +:1018C00040E06E2D8A539E4F0E9435014FEFE41A7F +:1018D000F40ACECF75E0B72E96012E193F0909F410 +:1018E000D9CA8091C0019091C101A601481B590B32 +:1018F000CA014091BE015091BF01612F6E19425043 +:1019000051092817390764F0B49EC001B59E900DA7 +:10191000112400918A01209189014091880108C019 +:10192000B49EC001B59E900D112400E020E040E07F +:101930008A539E4F0E9435015FEFE51AF50ACCCF1E +:101940008E309105C1F441E050E064EE74E080E037 +:101950000E94AB1281E090E090936901809368014E +:101960000E947F13609382017093830180938401AE +:101970009093850153C08F30910509F00FCA80E024 +:101980000E94CB12109269011092680147C0803109 +:10199000910559F48AE491E00E94790381E090E096 +:1019A00090935F0180935E0139C08131910549F4C4 +:1019B0008AE491E00E948C0310925F0110925E0114 +:1019C00069CA8231910501F560E082E00E94C1148C +:1019D00043E050E06AED74E080E00E94AB121092A8 +:1019E0005D0110925C010E947F136093540170931B +:1019F0005501809356019093570181E090E09093B8 +:101A00005901809358010AC00D9709F043CA1092FA +:101A100059011092580180E00E94CB121092BD0132 +:101A20001092BC0137CA28960FB6F894DEBF0FBEDD +:101A3000CDBFDF91CF911F910F91FF90EF90DF907D +:101A4000CF90BF90AF9008950F931F93CF93DF93E4 +:101A500001E010E084E392E00E942710892B41F11D +:101A600084E392E00E942710049761F41092B90178 +:101A70001092B8011092BB011092BA011093870125 +:101A800000938601C091BA01D091BB01CE010196AD +:101A90009093BB018093BA0184E392E00E942F10DF +:101AA000FE01EE0FFF1FE454FE4F91838083D2CFDF +:101AB000DF91CF911F910F9108958091BC0190917A +:101AC000BD01019731F46091B70184E392E00E9477 +:101AD000AE108091BC019091BD019C012B7F233001 +:101AE000310511F0C89741F443E050E062EA71E03B +:101AF00084E392E00E9481108091BC019091BD012D +:101B00008830910511F0449741F444E050E062EAD6 +:101B100071E084E392E00E9481108091BC01909179 +:101B2000BD014E9741F449E050E062EA71E084E380 +:101B300092E00E9481108091BC019091BD01889734 +:101B400041F449E050E06DE871E084E392E00E94E6 +:101B500081108091BC019091BD01459751F445E100 +:101B600050E062EA71E084E392E00E9481101092FA +:101B7000A2018091BC019091BD010A9781F444E0DB +:101B800050E062EA71E084E392E00E9481101092DA +:101B90006701109266011092BD011092BC01809104 +:101BA000BC019091BD010B9771F442E050E060E6FA +:101BB00071E084E392E00E94811010926001109223 +:101BC000BD011092BC018091BC019091BD010C97A8 +:101BD00071F443E050E061E571E084E392E00E943B +:101BE0008110109251011092BD011092BC01089514 +:101BF0001F920F920FB60F9211242F933F934F9382 +:101C00005F936F937F938F939F93AF93BF93EF9364 +:101C1000FF93E0913202F09133020995FF91EF9129 +:101C2000BF91AF919F918F917F916F915F914F91F4 +:101C30003F912F910F900FBE0F901F901895FC01B0 +:101C4000A3E0440F551F661F771FAA95D1F74115D2 +:101C5000510581E06807710514F481E00EC033E09E +:101C600075956795579547953A95D1F74115510563 +:101C700081E0680771051CF482E0828331C023E0B3 +:101C800075956795579547952A95D1F74115510553 +:101C900081E06807710514F483E0EFCF92E0759559 +:101CA0006795579547959A95D1F74115510581E06C +:101CB0006807710514F484E0E0CF82E075956795BC +:101CC000579547958A95D1F785E08283411551054F +:101CD00081E06807710524F04FEF5FEF60E070E08E +:101CE0008FB78383F8945183408350938700409348 +:101CF000860083818FBF80918100887F80938100DF +:101D0000809181009281892B8093810008951092A7 +:101D1000800020E1209381000C941F0EEFE6F0E09C +:101D200080818E7F80830895E1E8F0E02081DC01EE +:101D300012968C91282B208308950F931F93CF9395 +:101D4000DF93EC018B01BA01A901141615061606E2 +:101D5000170614F40E941F0E1D830C8381E08093EC +:101D60006F00CE01DF91CF911F910F910C94940ED3 +:101D7000CF93DF93EC01862F6883498360E00E9454 +:101D8000C11460E089810E94C11460E088810E94D2 +:101D9000FA1460E08981DF91CF910C94FA146830D5 +:101DA00010F4685F01C06FE0FC016283089561E098 +:101DB000FC0181810E94C11482E390E00C94D6134F +:101DC000CF93DF93EC0161E089810E94C11482E32B +:101DD00090E00E94D61360E088810E94C11482E3E3 +:101DE00090E00E94D61360E089810E94C11482E3D2 +:101DF00090E0DF91CF910C94D6130F931F93CF9364 +:101E0000DF93EC01062F18E061E088810E94C11485 +:101E100082E390E00E94D61300FF02C060E001C0A0 +:101E200061E089810E94C11482E390E00E94D61390 +:101E300060E088810E94C11482E390E00E94D61382 +:101E40000695115009F761E088810E94C11460E095 +:101E500089810E94C11482E390E00E94D61360E061 +:101E600088810E94C11482E390E00E94D613898188 +:101E70000E943015182F811104C061E089810E94F1 +:101E8000C11482E390E00E94D61361E088810E9431 +:101E9000C11482E390E00E94D61381E0111101C0C9 +:101EA00080E0DF91CF911F910F910895AF92BF9283 +:101EB000DF92EF92FF920F931F93CF93DF9300D0A7 +:101EC000CDB7DEB75C01F62EE42E29837A830E941B +:101ED000D70E60E4C5010E94FD0EC5010E94E00E10 +:101EE000C5010E94D70E2981622F63706054C5011D +:101EF0000E94FD0EDF2C0F2D7A81172F802F8D1958 +:101F00008E1538F4F80161918F01C5010E94FD0E14 +:101F1000F5CFC5010E94E00EC5010E94D70EF50164 +:101F200062816058C5010E94FD0EC5010F900F909F +:101F3000DF91CF911F910F91FF90EF90DF90BF90B5 +:101F4000AF900C94E00E4F925F926F927F928F92BF +:101F50009F92AF92BF92CF92DF92EF920F931F9317 +:101F6000CF93DF9300D000D0CDB7DEB73C015B014B +:101F7000322F202F89E1882E81E0982ECE01019604 +:101F80006C01FC0101E01FE3D4015E904E904D0115 +:101F9000C501B2010E941C196115710561F441115E +:101FA00006C0002321F08E2F8C19833011F410838A +:101FB00013C0108211C0A62FAF70B0E0A75EBE4F55 +:101FC0008C918083649DC001659D900D749D900DE2 +:101FD0001124A81AB90A00E0EE2039F08E2F8C19CE +:101FE000813019F48081806880833196B1E18B164D +:101FF000B1E09B0649F664E070E0631B71096C0D6B +:102000007D1D432FC3010E94560F0F900F900F901C +:102010000F90DF91CF911F910F91EF90DF90CF90B4 +:10202000BF90AF909F908F907F906F905F904F90F8 +:1020300008956F70E62FF0E0E75EFE4F808108950F +:10204000FC0181E09081911101C080E008958091B0 +:10205000670290E020916802821B91090895209107 +:10206000680280916702281750F4E22FF0E0E759E8 +:10207000FD4F808190E02F5F2093680208958FEFDD +:102080009FEF0895E091680280916702E81730F4AD +:10209000F0E0E759FD4F808190E008958FEF9FEFCA +:1020A00008950895E0914002F09141023097E1F0E7 +:1020B00030916802209167023217B0F040E0242F7F +:1020C00030E02617370754F4DC01A20FB31F5C91F0 +:1020D000D901A759BD4F5C934F5FF1CF10926802B1 +:1020E00060936702CB0109940895E0914202F09158 +:1020F0004302309729F0109246021092450209944B +:102100000895CF92DF92EF92FF920F931F93CF9398 +:10211000DF937C01CB018A0120914402222389F0C4 +:10212000EB016B01C40ED51ECC15DD0569F069917C +:10213000D701ED91FC910190F081E02DC701099547 +:10214000F3CF642F0E943C11C801DF91CF911F9102 +:102150000F91FF90EF90DF90CF900895CF93DF9392 +:102160001F92CDB7DEB76983209144022223D1F0BC +:1021700020914502203240F021E030E0FC01338321 +:10218000228380E090E015C080914602E82FF0E0C5 +:10219000E95BFD4F998190838F5F80934602809326 +:1021A000450205C061E0CE0101960E943C1181E02C +:1021B00090E00F90DF91CF910895FC01138212827D +:1021C00048EE53E060E070E0448355836683778394 +:1021D0008DE291E0918380830895109268021092BD +:1021E000670210924602109245020C941A11CF9386 +:1021F000DF93EC01862F0E94381185E790E10E9461 +:10220000691182E590E10E946411CE01DF91CF91C6 +:102210000C94ED100C94F7107093410260934002FF +:1022200008957093430260934202089584E392E01C +:102230000C94DD101092F60281E08093F40210926B +:10224000F30261E082E10E94FA1461E083E10E94FE +:10225000FA14E9EBF0E080818E7F808380818D7FAE +:10226000808388E48093B80085E48093BC0008955F +:10227000880F8093BA0008954091AB02262F30E07A +:10228000240F311D21323105DCF42091F602243077 +:10229000C9F4FC0180E090E0861758F43091AB025D +:1022A0002191DC01A355BD4FA30FB11D2C930196C5 +:1022B000F3CF8091AB02860F8093AB0280E008954C +:1022C00081E0089582E008959093F0028093EF02F8 +:1022D00008959093F2028093F102089585ED809322 +:1022E000BC008091BC0084FDFCCF1092F6020895E2 +:1022F00085EC8093BC001092F60208951F920F9215 +:102300000FB60F9211242F933F934F935F936F93C8 +:102310007F938F939F93AF93BF93EF93FF9380919E +:10232000B900887F803609F49EC078F5883209F4B8 +:102330005DC090F4803109F456C038F4882309F464 +:10234000F5C0883009F44FC0F5C0883109F44EC09B +:10235000803209F45FC0EEC0803409F46AC058F4DA +:10236000803309F457C0883309F0E4C080938902B0 +:102370000E947811DFC0803509F44FC0883509F418 +:102380005DC0883409F0D6C0D3C0883909F4C4C010 +:10239000A8F4883709F467C038F4883609F463C0B4 +:1023A000803709F460C0C6C0883809F4B5C08039E8 +:1023B00009F45FC0803809F0BDC05BC0803B09F400 +:1023C00083C038F4803A09F466C0883A09F47CC0C6 +:1023D000B1C0803C09F4A4C0883C09F4A1C0883B8A +:1023E00009F487C0A7C08091F50210C09091CE0279 +:1023F0008091CD02981770F5E091CE0281E08E0FAA +:102400008093CE02F0E0E153FD4F80818093BB00CA +:1024100085EC83C0809389028BC0E091CE0281E07D +:102420008E0F8093CE028091BB00F0E0E153FD4F10 +:1024300080839091CE028091CD026BC0E091CE025C +:1024400081E08E0F8093CE028091BB00F0E0E153DB +:10245000FD4F80838091F40281116AC081E08093F6 +:10246000F30284EA5EC083E08093F60210928A024F +:10247000CFCF80918A02803208F04EC0E0918A026C +:1024800081E08E0F80938A028091BB00F0E0E557D7 +:10249000FD4F8083BDCF0E94781180918A028032E7 +:1024A00030F4E0918A02F0E0E557FD4F1082609130 +:1024B0008A0270E0E091EF02F091F0028BE892E086 +:1024C000099510928A0236C084E08093F602109239 +:1024D000AC021092AB02E091F102F091F202099588 +:1024E0008091AB02811105C081E08093AB02109214 +:1024F000AD02E091AC0281E08E0F8093AC02F0E07F +:10250000E355FD4F80818093BB009091AC02809198 +:10251000AB02981708F47CCF85E88093BC000AC012 +:1025200085EC8093BC001092F60204C010928902E0 +:102530000E946E11FF91EF91BF91AF919F918F918A +:102540007F916F915F914F913F912F910F900FBEAF +:102550000F901F9018958230E8F4E82FF0E0EE0F0E +:10256000FF1FE950FD4F71836083813041F08091FE +:1025700069008C7F842B80936900E89A089580918C +:102580006900440F551F440F551F837F842B809390 +:102590006900E99A0895823068F4813011F0E89872 +:1025A00001C0E998E82FF0E0EE0FFF1FE950FD4F62 +:1025B0001182108208951F920F920FB60F9211246C +:1025C0002F933F934F935F936F937F938F939F933B +:1025D000AF93BF93EF93FF938091F7029091F8022E +:1025E000892B29F0E091F702F091F8020995FF910B +:1025F000EF91BF91AF919F918F917F916F915F917B +:102600004F913F912F910F900FBE0F901F901895F3 +:102610001F920F920FB60F9211242F933F934F9357 +:102620005F936F937F938F939F93AF93BF93EF933A +:10263000FF938091F9029091FA02892B29F0E091A1 +:10264000F902F091FA020995FF91EF91BF91AF91D4 +:102650009F918F917F916F915F914F913F912F91BA +:102660000F900FBE0F901F9018951F920F920FB6EC +:102670000F9211242F933F938F939F93AF93BF9308 +:102680008091FC029091FD02A091FE02B091FF02A8 +:102690003091FB0223E0230F2D3720F40196A11D7A +:1026A000B11D05C026E8230F0296A11DB11D209380 +:1026B000FB028093FC029093FD02A093FE02B09374 +:1026C000FF028091000390910103A0910203B09159 +:1026D00003030196A11DB11D809300039093010394 +:1026E000A0930203B0930303BF91AF919F918F9189 +:1026F0003F912F910F900FBE0F901F9018952FB7FD +:10270000F8946091FC027091FD028091FE0290911C +:10271000FF022FBF08953FB7F89480910003909176 +:102720000103A0910203B091030326B5A89B05C045 +:102730002F3F19F00196A11DB11D3FBF6627782FCD +:10274000892F9A2F620F711D811D911D42E0660F26 +:10275000771F881F991F4A95D1F70895CF92DF926E +:10276000EF92FF92CF93DF936B017C010E948B135A +:10277000EB01C114D104E104F10489F00E947A163E +:102780000E948B136C1B7D0B683E734090F381E0BD +:10279000C81AD108E108F108C851DC4FEACFDF912F +:1027A000CF91FF90EF90DF90CF9008958230910508 +:1027B00038F0880F991F880F991F05970197F1F737 +:1027C0000895789484B5826084BD84B5816084BDA9 +:1027D00085B5826085BD85B5816085BDEEE6F0E09A +:1027E000808181608083E1E8F0E0108280818260F6 +:1027F0008083808181608083E0E8F0E08081816077 +:102800008083E1EBF0E0808184608083E0EBF0E0A6 +:10281000808181608083EAE7F0E08081846080834A +:1028200080818260808380818160808380818068F4 +:1028300080831092C10008958E3008F08E5087700A +:102840002091060190E4299F90011124822B80930E +:102850007C0080917A00806480937A0080917A0075 +:1028600086FDFCCF809178002091790090E0922B3A +:1028700008951F93CF93DF93182FEB0161E00E941F +:10288000C114209711F460E004C0CF3FD10539F4A2 +:1028900061E0812FDF91CF911F910C94FA14E12F09 +:1028A000F0E0E859FF4FE491E330F9F048F4E1300B +:1028B000B9F0E230A1F584B5806284BDC8BD34C0F2 +:1028C000E730E9F0E83019F1E43049F58091800013 +:1028D000806280938000D0938B00C0938A0024C0D4 +:1028E00084B5806884BDC7BD1FC0809180008068AA +:1028F00080938000D0938900C093880015C0809198 +:10290000B00080688093B000C093B3000DC0809188 +:10291000B00080628093B000C093B40005C0C0389E +:10292000D1050CF0B5CFAFCFDF91CF911F910895B6 +:10293000833081F028F4813099F08230A1F008953D +:102940008730A9F08830B9F08430D1F480918000CC +:102950008F7D03C0809180008F77809380000895E1 +:1029600084B58F7702C084B58F7D84BD0895809132 +:10297000B0008F7703C08091B0008F7D8093B0004E +:102980000895CF93DF9390E0FC01E458FF4F24912A +:10299000FC01E057FF4F8491882349F190E0880FB4 +:1029A000991FFC01E854FF4FA591B49182559F4FA8 +:1029B000FC01C591D4919FB7611108C0F8948C9126 +:1029C000209582238C93888182230AC0623051F43F +:1029D000F8948C91322F309583238C938881822BAD +:1029E000888304C0F8948C91822B8C939FBFDF91D5 +:1029F000CF9108950F931F93CF93DF931F92CDB77D +:102A0000DEB7282F30E0F901E859FF4F8491F90132 +:102A1000E458FF4F1491F901E057FF4F0491002350 +:102A2000C9F0882321F069830E9498146981E02FFE +:102A3000F0E0EE0FFF1FE255FF4FA591B4919FB755 +:102A4000F8948C91611103C01095812301C0812BF2 +:102A50008C939FBF0F90DF91CF911F910F9108959D +:102A6000CF93DF93282F30E0F901E859FF4F84918D +:102A7000F901E458FF4FD491F901E057FF4FC49199 +:102A8000CC2391F081110E949814EC2FF0E0EE0F0E +:102A9000FF1FEC55FF4FA591B4912C912D2381E0A0 +:102AA00090E021F480E002C080E090E0DF91CF91DF +:102AB00008950F931F93762F90E0FC01E458FF4F89 +:102AC0006491FC01E057FF4FE4917111762FF0E023 +:102AD000EE0FFF1FEC55FF4F8591949189019A01EC +:102AE0003F70472F0E948E00611571058105910589 +:102AF00031F06F5F7F4F8F4F9F4F9F7003C060E03B +:102B000070E0CB011F910F9108951F920F920FB6A5 +:102B10000F9211242F938F939F93EF93FF93E09144 +:102B20001403F09115038081E0911A03F0911B03C7 +:102B300082FD12C0908180911D038F5F8F73209161 +:102B40001E03821751F0E0911D03F0E0EC5FFC4F93 +:102B5000958F80931D0301C08081FF91EF919F911C +:102B60008F912F910F900FBE0F901F9018951F926D +:102B70000F920FB60F9211242F933F934F935F93B1 +:102B80006F937F938F939F93AF93BF93EF93FF9335 +:102B900084E093E00E94B616FF91EF91BF91AF9150 +:102BA0009F918F917F916F915F914F913F912F9165 +:102BB0000F900FBE0F901F90189584E093E00E9435 +:102BC0007B1621E0892B09F420E0822F08951092D2 +:102BD00007031092060388EE93E0A0E0B0E0809334 +:102BE000080390930903A0930A03B0930B038DE3AA +:102BF00091E0909305038093040385EC90E090931B +:102C000011038093100384EC90E09093130380935E +:102C1000120380EC90E0909315038093140381ECF1 +:102C200090E0909317038093160382EC90E09093CA +:102C300019038093180386EC90E090931B03809314 +:102C40001A0310921D0310921E0310921F0310927C +:102C50002003089508950E94E1130E942A160E94FD +:102C60005E05C8EAD6E10E9477052097E1F30E944D +:102C7000A816F9CFCF92DF92EF92FF920F931F9396 +:102C8000CF93DF936C017A01EB01E60EF71E00E0B3 +:102C900010E0CE15DF0561F06991D601ED91FC9150 +:102CA0000190F081E02DC6010995080F191FF1CFA1 +:102CB000C801DF91CF911F910F91FF90EF90DF90AE +:102CC000CF9008956115710581F0DB010D90002012 +:102CD000E9F7AD0141505109461B570BDC01ED915D +:102CE000FC910280F381E02D099480E090E008954A +:102CF0000C9462160895FC01818D228D90E0805C19 +:102D00009F4F821B91098F7399270895FC01918D24 +:102D1000828D981731F0828DE80FF11D858D90E03E +:102D200008958FEF9FEF0895FC01918D828D981784 +:102D300061F0828DDF01A80FB11D5D968C91928D9F +:102D40009F5F9F73928F90E008958FEF9FEF08959C +:102D50008DED95E1892B49F080E090E0892B29F0F9 +:102D60000E94DD1581110C9400000895FC01848DF2 +:102D7000DF01A80FB11DA35ABF4F2C91848D90E0A5 +:102D800001968F739927848FA689B7892C93A08980 +:102D9000B1898C9180648C93938D848D981306C037 +:102DA0000288F389E02D80818F7D80830895CF9301 +:102DB000DF93EC01888D8823C9F0EA89FB89808143 +:102DC00085FD05C0A889B9898C9186FD0FC00FB615 +:102DD00007FCF5CF808185FFF2CFA889B9898C9156 +:102DE00085FFEDCFCE010E94B616E7CFDF91CF91E0 +:102DF0000895CF92DF92FF920F931F93CF93DF93AB +:102E00001F92CDB7DEB76C0181E0D60158968C9346 +:102E100058975B969C915B975C968C915C97981306 +:102E200007C05096ED91FC915197808185FD2EC091 +:102E3000F601038D10E00F5F1F4F0F731127F02E67 +:102E4000F601848DF81211C00FB607FCF9CFD60138 +:102E50005096ED91FC915197808185FFF1CFC6018D +:102E600069830E94B6166981EBCF838DE80FF11D4F +:102E7000E35AFF4F6083D6015B960C935B975296A3 +:102E8000ED91FC915397808180620CC0D6015696DB +:102E9000ED91FC91579760835096ED91FC9151977D +:102EA00080818064808381E090E00F90DF91CF91FA +:102EB0001F910F91FF90DF90CF9008955058BB273E +:102EC000AA270ED01CC10DD130F012D120F031F460 +:102ED0009F3F11F41EF402C10EF4E095E7FBF8C029 +:102EE000E92F1ED180F3BA1762077307840795078D +:102EF00018F071F49EF536C10EF4E0950B2EBA2F42 +:102F0000A02D0B01B90190010C01CA01A0011124EF +:102F1000FF27591B99F0593F50F4503E68F11A169B +:102F2000F040A22F232F342F4427585FF3CF46952C +:102F300037952795A795F0405395C9F77EF41F164E +:102F4000BA0B620B730B840BBAF09150A1F0FF0F18 +:102F5000BB1F661F771F881FC2F70EC0BA0F621F04 +:102F6000731F841F48F4879577956795B795F795F4 +:102F70009E3F08F0B3CF9395880F08F09927EE0F86 +:102F80009795879508950CD0BAC0B2D040F0A9D0DB +:102F900030F021F45F3F19F09BC05111E4C09EC096 +:102FA000BFD098F39923C9F35523B1F3951B550B63 +:102FB000BB27AA2762177307840738F09F5F5F4F0C +:102FC000220F331F441FAA1FA9F333D00E2E3AF04D +:102FD000E0E830D091505040E695001CCAF729D067 +:102FE000FE2F27D0660F771F881FBB1F26173707B6 +:102FF0004807AB07B0E809F0BB0B802DBF01FF27E6 +:1030000093585F4F2AF09E3F510568F061C0ABC0F6 +:103010005F3FECF3983EDCF3869577956795B7951F +:10302000F7959F5FC9F7880F911D9695879597F93A +:103030000895E1E0660F771F881FBB1F62177307B3 +:103040008407BA0720F0621B730B840BBA0BEE1FC8 +:1030500088F7E0950895E89409C097FB3EF49095B1 +:103060008095709561957F4F8F4F9F4F9923A9F061 +:10307000F92F96E9BB279395F695879577956795F0 +:10308000B795F111F8CFFAF4BB0F11F460FF1BC034 +:103090006F5F7F4F8F4F9F4F16C0882311F096E9C7 +:1030A00011C0772321F09EE8872F762F05C0662375 +:1030B00071F096E8862F70E060E02AF09A95660F2E +:1030C000771F881FDAF7880F9695879597F90895E7 +:1030D00097F99F6780E870E060E008959FEF80ECCB +:1030E000089500240A94161617061806090608956E +:1030F00000240A9412161306140605060895092ED4 +:103100000394000C11F4882352F0BB0F40F4BF2B42 +:1031100011F460FF04C06F5F7F4F8F4F9F4F089582 +:1031200057FD9058440F551F59F05F3F71F0479578 +:10313000880F97FB991F61F09F3F79F0879508955D +:10314000121613061406551FF2CF4695F1DF08C07C +:10315000161617061806991FF1CF86957105610599 +:1031600008940895E894BB2766277727CB0197F941 +:1031700008950BD0C4CFB5DF28F0BADF18F095233F +:1031800009F0A6CFABCF1124EECFCADFA0F3959FF5 +:10319000D1F3950F50E0551F629FF001729FBB273E +:1031A000F00DB11D639FAA27F00DB11DAA1F649FEA +:1031B0006627B00DA11D661F829F2227B00DA11D9D +:1031C000621F739FB00DA11D621F839FA00D611D23 +:1031D000221F749F3327A00D611D231F849F600D44 +:1031E000211D822F762F6A2F11249F5750408AF07D +:1031F000E1F088234AF0EE0FFF1FBB1F661F771F09 +:10320000881F91505040A9F79E3F510570F060CF44 +:10321000AACF5F3FECF3983EDCF3869577956795F0 +:10322000B795F795E7959F5FC1F7FE2B880F911D26 +:103230009695879597F9089597FB072E16F40094B5 +:1032400007D077FD09D00E94711907FC05D03EF424 +:10325000909581959F4F0895709561957F4F089542 +:10326000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F8A +:10327000EE1FFF1FA217B307E407F50720F0A21BFC +:10328000B30BE40BF50B661F771F881F991F1A9469 +:1032900069F760957095809590959B01AC01BD0193 +:1032A000CF010895052E97FB1EF400940E94691922 +:1032B00057FD07D00E94301907FC03D04EF40C9440 +:1032C000691950954095309521953F4F4F4F5F4F6D +:1032D000089590958095709561957F4F8F4F9F4F82 +:1032E0000895AA1BBB1B51E107C0AA1FBB1FA6174D +:1032F000B70710F0A61BB70B881F991F5A95A9F79F +:1033000080959095BC01CD010895EE0FFF1F0590AB +:10331000F491E02D09940F931F93CF93DF93869F31 +:103320008001879F100D969F100D1124C8010E94E7 +:10333000A719EC01009729F0A80160E070E00E9455 +:10334000CE1ACE01DF91CF911F910F910895CF93A7 +:10335000DF938230910510F482E090E0E091A303C6 +:10336000F091A40320E030E0A0E0B0E0309739F124 +:103370004081518148175907B8F04817590771F42F +:1033800082819381109729F013969C938E931297C4 +:103390002CC09093A4038093A30327C0211531056B +:1033A00031F04217530718F0A901DB0101C0EF010A +:1033B0009A01BD01DF010280F381E02DD7CF2115F5 +:1033C0003105F9F0281B390B2430310580F48A814E +:1033D0009B816115710521F0FB019383828304C0F9 +:1033E0009093A4038093A303FE01329644C0FE0190 +:1033F000E20FF31F8193919322503109398328837F +:103400003AC02091A1033091A203232B41F42091D3 +:103410000201309103013093A2032093A103209174 +:103420000001309101012115310541F42DB73EB75E +:103430004091040150910501241B350BE091A1033B +:10344000F091A203E217F307A0F42E1B3F0B2817FD +:10345000390778F0AC014E5F5F4F2417350748F00D +:103460004E0F5F1F5093A2034093A103819391934A +:1034700002C0E0E0F0E0CF01DF91CF910895CF935B +:10348000DF93009709F487C0FC0132971382128200 +:10349000C091A303D091A403209781F420813181AE +:1034A000280F391F8091A1039091A20382179307DF +:1034B00079F5F093A203E093A1036DC0DE0120E053 +:1034C00030E0AE17BF0750F412964D915C91139700 +:1034D0009D014115510509F1DA01F3CFB383A283B0 +:1034E00040815181840F951F8A179B0771F48D913C +:1034F0009C911197840F951F029691838083129659 +:103500008D919C911397938382832115310529F422 +:10351000F093A403E093A3033EC0D9011396FC9358 +:10352000EE9312974D915D91A40FB51FEA17FB071B +:1035300079F480819181840F951F0296D9011196AB +:103540009C938E938281938113969C938E93129772 +:10355000E0E0F0E08A819B81009719F0FE01EC0128 +:10356000F9CFCE01029628813981820F931F2091D5 +:10357000A1033091A2032817390769F4309729F481 +:103580001092A4031092A30302C013821282D0935C +:10359000A203C093A103DF91CF910895DC0101C084 +:0E35A0006D9341505040E0F70895F894FFCF2E +:1035AE000000A50380000152656164206661696CAC +:1035BE000001000A006400E8033F065B4F666D7D64 +:1035CE00077F6F777C395E797100000000AE108145 +:1035DE001027102F104210511000000000F9163A5B +:0A35EE00167B1694168616D71600F9 +:00000001FF diff --git a/Firmware/Archive/grove_pi_v1_3.hex b/Firmware/Archive/grove_pi_v1_3.hex new file mode 100644 index 0000000..2d4e196 --- /dev/null +++ b/Firmware/Archive/grove_pi_v1_3.hex @@ -0,0 +1,1180 @@ +:100000000C9462000C94F60E0C94CF0E0C948A00A3 +:100010000C948A000C947F150C948A000C9468143C +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C94F4130C948A000C948A009B +:100040000C94850E0C948A000C94430F0C941D0F95 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C94FD110C948A0000000000240027006D +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000008000201000003040700000000000027 +:1000C0000000771F11241FBECFEFD8E0DEBFCDBFE9 +:1000D00011E0A0E0B1E0E0E5F9E402C005900D9286 +:1000E000AC35B107D9F724E0ACE5B1E001C01D9211 +:1000F000AB37B207E1F710E0C2E6D0E004C02197C9 +:10010000FE010E94F920C136D107C9F70E944F1D98 +:100110000C94A6240C9400004F925F926F927F92F1 +:100120008F929F92AF92BF92CF92DF92EF92FF9207 +:100130000F931F93CF93DF9300D000D0CDB7DEB7DE +:100140008091D9019091DA01892B09F45AC00E945B +:10015000790E0E9428226B017C016091D50170917B +:10016000D6018091D7019091D8010E9428229B014D +:10017000AC01C701B6010E940E214B015C01409009 +:100180000101509002016090030170900401C301CD +:10019000B2010E9428229B01AC01C501B4010E945A +:1001A000DA22181674F5A0913302B0913402A3013B +:1001B00092010E94A3200E942822A50194010E947E +:1001C00080210E94F9216093D1017093D201809324 +:1001D000D3019093D4011092340210923302C701DC +:1001E000B6010E94F9216093D5017093D6018093E6 +:1001F000D7019093D80181E090E090930102809321 +:1002000000028091F6019091F701049799F4809192 +:10021000F8019091F901892B09F493C00BC08091EA +:100220002C02823009F0A1C060912E0280912D0233 +:100230000E94970D80916C0190916D01892B59F16D +:1002400080917604813039F52091750480916401A4 +:1002500090916501213049F401968931910554F05E +:10026000109265011092640109C0019797FF02C0C6 +:1002700088E190E0909365018093640180912C0265 +:100280008093FD0181E08093FE0180916401809361 +:10029000FF01109276048091660190916701892B8D +:1002A00011F40C94210B0E94790E009168011091B9 +:1002B000690120916A0130916B01DC01CB01801B47 +:1002C000910BA20BB30B813D9740A105B10510F432 +:1002D0000C94210B20913102309132024EE1429F69 +:1002E000C001439F900D112469E470E00E944E20EC +:1002F000E62F472F609362017093630181E0809342 +:10030000FA01862F972F60E071E00E944E208093C3 +:10031000FB012E2F342F37FF02C021503F4F309367 +:10032000FC0110923202109231020E94790E609309 +:1003300068017093690180936A0190936B010C943A +:10034000210B81E090E09093F9018093F801809176 +:100350002C02813009F063CF80912C028093170228 +:1003600080912D020E946E0DEAC280912C02833092 +:10037000C1F480912D020E94030E9093D0018093CE +:10038000CF0120912C02209317029C0197FF02C0FD +:1003900021503F4F3093180260E071E00E944E20E0 +:1003A00080C480912C02843009F05CC000912E0240 +:1003B000E02EF12C10912D0261E0812F0E94C70DDB +:1003C000E114F10419F460E0812F32CF2FEFE2162F +:1003D000F10409F445C0E12FF0E0E255FF4FE4914C +:1003E000E330F9F048F4E130B9F0E230A1F584B53A +:1003F000806284BD08BD1ECFE730E9F0E83019F116 +:10040000E43049F580918000806280938000F09212 +:100410008B00E0928A000ECF84B5806884BD07BD52 +:1004200009CF80918000806880938000F0928900DD +:10043000E0928800FFCE8091B00080688093B00089 +:100440000093B300F7CE8091B00080628093B0003B +:100450000093B400EFCE30E8E316F1040CF4B3CF10 +:1004600061E0B2CF80912C02853029F460912E0298 +:1004700080912D020AC280912C02873009F060C061 +:10048000F0902D020F2D10E01093CE010093CD01BE +:1004900061E08F2D0E94C70D60E08F2D0E94970DA7 +:1004A00083E090E00197F1F761E08F2D0E94970DB6 +:1004B0008FE090E00197F1F760E08F2D0E94970D9B +:1004C00060E08F2D0E94C70DF801E656FF4F649142 +:1004D000F801EA57FF4FE491F0E0EE0FFF1FE458F8 +:1004E000FF4F8591949108EF14E221E030E0462F10 +:1004F0000E943F16611571058105910549F0DC01E7 +:10050000CB010196A11DB11DBC01CD019F7003C09F +:1005100060E070E0CB012AE330E040E050E00E9470 +:10052000842080912C0280931702BB2757FDBA9537 +:10053000A52F942F832F80931802209319027ACE2F +:1005400080912C02883069F480912C0280931702EC +:1005500081E08093180283E08093190210921A02BE +:1005600069CE80912C02883209F05AC18091F40141 +:100570009091F501892B09F45DCE80912E028111B5 +:1005800004C080912D026BE013C080912E02813057 +:1005900021F480912D0266E10BC080912E02823001 +:1005A00021F080912E02833029F480912D0265E1A3 +:1005B0000E94C81561E08091E9020E94970D6AEFE0 +:1005C00070E080E090E00E943F0E0E94790E009162 +:1005D000EC021091ED022091EE023091EF026017D3 +:1005E00071078207930740F41092EC021092ED021B +:1005F0001092EE021092EF022091F002211114C02D +:100600000091EC021091ED022091EE023091EF0288 +:10061000DC01CB01801B910BA20BB30B803D9740FB +:10062000A105B10508F480C01092F0020E94790E75 +:100630006093EC027093ED028093EE029093EF02D0 +:100640001092E7021092E6021092E5021092E40284 +:100650001092E30261E08091E9020E94C70D60E020 +:100660008091E9020E94970D64E170E080E090E0E3 +:100670000E943F0EF89461E08091E9020E94970D7C +:100680008BE990E00197F1F760E08091E9020E9428 +:10069000C70DF12C10E081E000E0C82ED12C809134 +:1006A000E9020E946E0D8C159D0519F40F5F0F3F36 +:1006B000B1F78091E9020E946E0D0F3FC1F0143036 +:1006C00098F010FD11C0EF2DE695E695E695F0E067 +:1006D000ED51FD4F9081990F90832091EB022017EF +:1006E00010F491609083F3941F5F1535A9F6789408 +:1006F000F7E2FF15B0F42091E70230E04091E30209 +:100700008091E40290E0840F911D4091E502840FF6 +:10071000911D4091E602840F911D992728173907F2 +:1007200019F000E010E025C08091EA028B3009F05A +:1007300009C16091E50270E080E090E00E9428220B +:100740006093F1027093F2028093F3029093F402AB +:100750006091E30270E080E090E00E9428226093C4 +:10076000F5027093F6028093F7029093F80201EF7E +:1007700012E0F80160817181828193810E94970C5F +:10078000F80164817581868197810E94970CF80138 +:1007900080810E94840CF80181810E94840CF80100 +:1007A00082810E94840CF80183810E94840CF801EC +:1007B00084810E94840CF80185810E94840CF801D8 +:1007C00086810E94840CF80187810E94840C8091AC +:1007D0002C028093020281E090E09093CC01809300 +:1007E000CB01FC013197E00FF11F2081FC01EE5F8E +:1007F000FD4F208301968530910599F7FC013197D3 +:10080000E00FF11F2081FC01EE5FFD4F2083019678 +:100810008930910599F79093CC018093CB017AC0F0 +:1008200080912C028233A1F560912E0240912D021D +:1008300080912D028F5F20912D0230E022503109EE +:1008400097E0929FF001939FF00D1124EF55FE4F1A +:10085000A82FB0E0B183A08350E05383428391E09E +:10086000611101C090E0948397E0929F8001939F73 +:10087000100D11240F551E4FF8011682158261E0EC +:100880000E94C70D61E0F80182810E94C70DD2CCA1 +:1008900080912C02833309F0DAC080912D0290E020 +:1008A000029747E0489FF001499FF00D1124EF5552 +:1008B000FE4F80819181892B09F0AAC0C8C0809128 +:1008C0002C028A3009F0A3C58091F4019091F501C2 +:1008D000019709F0AFCC80912C0280931702809190 +:1008E000000290910102809318028091D1019091B1 +:1008F000D201A091D301B091D40180931902492F64 +:100900005A2F6B2F772740931A02CD01AA27BB27B6 +:1009100080931B021092F5011092F4018BCC809110 +:100920002C02853109F439C680912C02883109F0F6 +:1009300081CC80912C02809317020E9484168093B0 +:10094000180278CC8B3008F412CF8551823008F031 +:100950000ECF1091E502612F6F7770E080E090E09C +:100960000E942A2220E030E040E853E40E94DF2287 +:100970006B017C018091E602682F70E080E090E0DE +:100980000E942A229B01AC01C701B6010E940F21DF +:1009900020E030E040E251E40E94802117FD09C0D0 +:1009A0006093F1027093F2028093F3029093F40249 +:1009B0000BC0DC01CB01B0588093F1029093F2029E +:1009C000A093F302B093F4026091E30270E080E040 +:1009D00090E00E94282220E030E040E853E40E94AA +:1009E000DF226B017C018091E402682F70E080E0DF +:1009F00090E00E942A229B01AC01C701B6010E942F +:100A00000F2120E030E040E251E40E948021A7CE97 +:100A100090912E0220912D0230E022503109429F08 +:100A2000F001439FF00D1124EF55FE4F81E091112D +:100A300001C080E0848347E0429FC001439F900D46 +:100A400011248F559E4FFC016581768132C08091C3 +:100A50002C02843389F580912D0290E0029727E0E3 +:100A6000289FF001299FF00D1124EF55FE4F808142 +:100A70009181892B09F180912E0220912D0230E085 +:100A8000225031098B3008F08AE06FEF7FEF02C00F +:100A9000660F771F8A95E2F76095709547E0429F51 +:100AA000C001439F900D11248F559E4FFC0176830A +:100AB00065830E942215BECB80912C02853381F480 +:100AC00080912D0290E0029747E0489FF001499FF6 +:100AD000F00D1124EF55FE4F80819181892BB9F4DF +:100AE00080912C02863309F08EC080912D0290E017 +:100AF000029757E0589FF001599FF00D1124EF55D0 +:100B0000FE4F80819181892B09F04FC07CC05091AC +:100B10002F0290912E0220912D0230E022503109B7 +:100B2000429FF001439FF00D1124EF55FE4F992392 +:100B3000D1F19B3008F09AE0915061E070E002C082 +:100B4000660F771F9A95E2F7552379F087E0829F29 +:100B5000D001839FB00D1124AF55BE4F15964D9116 +:100B60005C911697642B752B10C06095709587E08B +:100B7000829FD001839FB00D1124AF55BE4F1596B3 +:100B80004D915C9116976423752387E0829FD00175 +:100B9000839FB00D1124AF55BE4F16967C936E9374 +:100BA0001597CF0186CF91E0C7CF90912E0220916B +:100BB0002D0230E022503109529FB001539F700D39 +:100BC0001124AB014F555E4F9923D9F09B3008F0AB +:100BD0009AE0915061E070E002C0660F771F9A952D +:100BE000E2F787E0829FF001839FF00D1124EF551B +:100BF000FE4F258136816227732776836583CA017C +:100C000058CF91E0E6CF80912C02873319F580917F +:100C10002D0290E0029747E0489FF001499FF00DB8 +:100C20001124EF55FE4F80819181892B99F06091BD +:100C30002E0280912F0220912D0270E0782B30E05F +:100C400022503109429FC001439F900D11248F55BE +:100C50009E4F2FCF80912C02883331F580912D0249 +:100C600090E0029727E0289FF001299FF00D1124C2 +:100C7000EF55FE4F80819181892BB1F080912D023B +:100C800090E00297289FF001299FF00D1124EF5565 +:100C9000FE4F9581868120912C022093170290931C +:100CA000180280931902C6CA80912C02863429F555 +:100CB00090912D0280912D0200912D0210E00250A2 +:100CC00011099801220F331F020F131F01571E4FE6 +:100CD000F80180839F5F918360E00E94C70D60E010 +:100CE000F80181810E94C70D60E0F80180810E94B7 +:100CF000970D60E0F80181819BCA80912C028734B6 +:100D000021F580912D0290E00297FC01EE0FFF1F6C +:100D10008E0F9F1FFC01E157FE4F80818823A9F0B1 +:100D200020912E0280912D0290E00297283058F4F5 +:100D3000285FFC01EE0FFF1F8E0F9F1FFC01E15784 +:100D4000FE4F228377CA2FE0F4CF80912C028834A3 +:100D500001F580912D0290E00297FC01EE0FFF1F3C +:100D60008E0F9F1FFC01E157FE4F8081882389F081 +:100D700060912E0290912F0280912D0270E0792BCC +:100D800090E002979C01220F331F820F931F40E0D7 +:100D900023C080912C02893421F580912D0290E0AE +:100DA0000297FC01EE0FFF1F8E0F9F1FFC01E15702 +:100DB000FE4F80818823A9F060912E0290912F022E +:100DC00080912D0270E0792B90E002979C01220F18 +:100DD000331F820F931F41E081579E4F0E94E01501 +:100DE00029CA80912C028A34C9F480912D0290E0A6 +:100DF0000297FC01EE0FFF1F8E0F9F1FFC01E157B2 +:100E0000FE4F8081882351F0E0912F0280912D02C6 +:100E1000EF70F0E0E05FFE4F808115C080912C0202 +:100E20008B34F9F480912D0290E00297FC01EE0FD3 +:100E3000FF1F8E0F9F1FFC01E157FE4F808188230B +:100E400081F080912F02898320912E0280912D02C2 +:100E500090E00297AC01440F551F840F951F41E0AD +:100E6000BDC080912C028C3479F480912D0290E0E9 +:100E70000297FC01EE0FFF1F8E0F9F1FFC01E15731 +:100E8000FE4F8081811115C080912C028D3409F0B4 +:100E900045C080912D0290E00297FC01EE0FFF1FEC +:100EA0008E0F9F1FFC01E157FE4F808181114EC0C4 +:100EB00035C080912E0290912D022AE0622F0E946F +:100EC00042208F70E82FF0E0E05FFE4F8081898341 +:100ED00080912E0290912D020E944220E92FF0E095 +:100EE000E05FFE4F808180688A8380912F0290911D +:100EF0002D020E9442208F70E82FF0E0E05FFE4F4D +:100F000080818B8380912F0290912D020E9442203C +:100F1000E92FF0E0E05FFE4F80813CC080912C0221 +:100F20008E34D1F580912D0290E00297FC01EE0FF6 +:100F3000FF1F8E0F9F1FFC01E157FE4F808188230A +:100F400059F18FEF89838A838B8324C0D0902E023E +:100F5000E0902F02F4E0EF9E7001112400E010E019 +:100F60000E151F0509F466C98D2D0E94030EBC01E4 +:100F700020912D0230E022503109C901880F991FBC +:100F8000820F931F40E081579E4F0E94E0150F5F34 +:100F90001F4FE6CF8C8317C080912C028F3431F520 +:100FA00080912D0290E00297FC01EE0FFF1F8E0F43 +:100FB0009F1FFC01E157FE4F80818823B9F0198201 +:100FC0001A821B821C8280912D0290E002979C0164 +:100FD000220F331F820F931F20E044E0BE016F5F9A +:100FE0007F4F81579E4F0E941B1424C980912C0271 +:100FF0008A3569F480912D0280938C0180912E02B4 +:1010000080938D0180912F0280938E0113C980916E +:101010002C028B35B1F420912E0240912D0260916B +:101020002D02E0912D024F5FF0E0329735E03E9FB8 +:10103000C0013F9F900D112482599E4F0E944A1F6C +:10104000F9C880912C028C3509F047C020912E02FE +:1010500040912D0260912D02E0912D024F5FF0E052 +:10106000329735E03E9FC0013F9F900D1124825979 +:101070009E4F0E944A1F40912F0242FB442740F995 +:10108000E42EE19410912F02169511701195809124 +:101090002F028170F82EF194C12CD12C75E0B72E5F +:1010A00080912E0290E0C816D9060CF0C3C820919A +:1010B0002D0230E022503109B29EC001B39E900D46 +:1010C00011240F2D212F4E2D6C2D82599E4F0E94E1 +:1010D000BB1EFFEFCF1ADF0AE3CF80912C028D35C4 +:1010E00009F056C080912E02811118C060912F0224 +:1010F00020912D0230E02250310945E0429FC0018D +:10110000439F900D112400918E0120918D014091FB +:101110008C0182599E4F0E94BB1E8CC880912D026B +:1011200090E0029725E0289FF001299FF00D1124FF +:10113000E259FE4FC280E12CF12CD12C15E0EC14C9 +:10114000FD040CF077C880912E02813039F4809133 +:101150002F0290E0E816F90609F05DC280912E0298 +:10116000823039F480912F0290E08E159F050CF0AB +:1011700052C280912E02833039F480912F0290E088 +:10118000E816F9060CF047C22FEFE21AF20AD7CFA1 +:1011900080912C028E3509F043C080912F0281117D +:1011A00003C081E080932F0280912D0290E002978E +:1011B00025E0289FF001299FF00D1124E259FE4FF0 +:1011C000C280E0902E02F12CD12C15E0EC14FD042D +:1011D0000CF030C880912E0260912F02F701E81BBD +:1011E000F109CF0170E00E944E20892BA9F42091D3 +:1011F0002D0230E022503109129FC001139F900D43 +:10120000112400918E0120918D0140918C016E2D51 +:1012100082599E4F0E94BB1EFFEFEF1AFF0AD6CFE6 +:1012200080912C028F3509F073C080912D0290E0DF +:10123000029725E0289FF001299FF00D1124E25923 +:10124000FE4FC28080912F02D12C811130C0E12C41 +:10125000F12C15E0EC14FD0414F00C941A018091AB +:101260002E0290E020912D0230E022503109E81644 +:10127000F90664F4129FC001139F900D1124009190 +:101280008E0120918D0140918C0108C0129FC001F8 +:10129000139F900D112400E020E040E06E2D825954 +:1012A0009E4F0E94BB1E2FEFE21AF20AD3CF7601A7 +:1012B00015E0E114F10411F40C941A0180912E024E +:1012C000F601E81BF10920912D0230E0225031098E +:1012D000EE16FF0664F0129FC001139F900D1124BB +:1012E00000918E0120918D0140918C0108C0129FC8 +:1012F000C001139F900D112400E020E040E06E2D0E +:1013000082599E4F0E94BB1EF1E0EF1AF108D1CF27 +:1013100080912C028E3061F580912D02809309011D +:1013200080910901823031F080910901833021F0F0 +:101330008FEF03C080E001C081E041E050E06FE446 +:1013400071E10E942B1E81E090E09093DA0180937E +:10135000D90110923402109233020E94790E6093E8 +:10136000D5017093D6018093D7019093D80111C114 +:1013700080912C028F30A1F480910901823031F0EC +:1013800080910901833021F08FEF03C080E001C01C +:1013900081E00E94191E1092DA011092D901F9C061 +:1013A00080912C028930D9F420912D0280912E0257 +:1013B00090E0982F8827820F911D092E000CAA0B10 +:1013C000BB0B8093010190930201A0930301B093A2 +:1013D000040110920102109200020C941A018091F3 +:1013E0002C02863009F06BCA80912C028093170280 +:1013F0008091010190910201A0910301B09104013B +:1014000080931802892F9A2FAB2FBB274ACC80914B +:101410002C028031C9F5109280008093810021E078 +:1014200020935E018FB780935F01F89480E49FE181 +:1014300090935D0180935C01909387008093860078 +:1014400080915F018FBF80918100887F80938100B0 +:101450009091810080915E01982B909381004BEBDD +:1014600053E1509361014093600120936F0090918C +:101470008100892B80938100789481E090E09093A3 +:101480006D0180936C0185C080912C02813159F4EB +:1014900080916F008E7F80936F0010926D0110928B +:1014A0006C010C941A0180912C028231A1F51091EB +:1014B0002D0210930001123021F0133021F08FEF34 +:1014C00003C080E001C081E060E00E94C70D1230DF +:1014D00021F0133021F08FEF03C080E001C081E0E4 +:1014E00043E050E068E470E10E942B1E109232024B +:1014F000109231020E94790E609368017093690125 +:1015000080936A0190936B0181E090E09093670172 +:10151000809366013EC080912C028D3091F4109230 +:1015200067011092660180910001823021F08330C2 +:1015300021F08FEF03C080E001C081E00E94191EFE +:1015400028C080912C02863109F0E9C960912D02F2 +:1015500070E080E090E04AE00E94430C80912D0210 +:101560008093A303F89482E08093B0008093B1004D +:1015700094E69093B3001092B20080937000789438 +:101580008093A2031092A6038091A30360E00E94BF +:10159000C70D10922C020C941A010E9484162091FF +:1015A000D302892B81F180912C0280931702209322 +:1015B00018029091D5028091D602909319028093DF +:1015C0001A028091D7029091D802A091D902B091CD +:1015D000DA0280931B02492F5A2F6B2F77274093F3 +:1015E0001C02AD016627772740931D028B2F992798 +:1015F000AA27BB2780931E0282E08093A203109249 +:10160000A6030C941A0180912C0280931702209358 +:1016100018020C941A0120912D0230E02250310959 +:10162000129FC001139F900D112400918E012091F3 +:101630008D0140918C016E2D82599E4F0E94BB1EE0 +:10164000A3CD0F900F900F900F90DF91CF911F912E +:101650000F91FF90EF90DF90CF90BF90AF909F9051 +:101660008F907F906F905F904F900895833081F0BE +:1016700028F4813099F08230A1F008958730A9F0E4 +:101680008830B9F08430D1F4809180008F7D03C020 +:10169000809180008F7780938000089584B58F7744 +:1016A00002C084B58F7D84BD08958091B0008F778E +:1016B00003C08091B0008F7D8093B000089508959D +:1016C000CF92DF92EF92FF920F931F93CF93DF930E +:1016D0006C017A018B01C0E0D0E0CE15DF0589F006 +:1016E000D8016D918D01D601ED91FC910190F081B1 +:1016F000E02DC6010995892B11F47E0102C02196C7 +:10170000ECCFC701DF91CF911F910F91FF90EF9028 +:10171000DF90CF900895FC01538D448D252F30E04C +:10172000842F90E0821B930B541710F0CF960895EE +:1017300001970895FC01918D828D981761F0828D3B +:10174000DF01A80FB11D5D968C91928D9F5F9F73F5 +:10175000928F90E008958FEF9FEF0895FC01918D97 +:10176000828D981731F0828DE80FF11D858D90E004 +:1017700008958FEF9FEF0895009769F0FC010190A5 +:101780000020E9F73197AF01481B590BBC0189EFE5 +:1017900092E00C94600B80E090E008950E949A24FF +:1017A00089EF92E00E94750F21E0892B09F420E077 +:1017B000822F0895EF92FF920F931F93CF93DF93A1 +:1017C000EC0181E0888F9B8D8C8D981305C0E88992 +:1017D000F989808185FD24C0F62E0B8D10E00F5F06 +:1017E0001F4F0F731127E02E8C8DE8120CC00FB61F +:1017F00007FCFACFE889F989808185FFF5CFCE0112 +:101800000E94DC11F1CF8B8DFE01E80FF11DE35A30 +:10181000FF4FF0820B8FEA89FB898081806207C0CD +:10182000EE89FF896083E889F989808180648083FB +:1018300081E090E0DF91CF911F910F91FF90EF90A9 +:101840000895CF93DF93EC01888D8823C9F0EA894E +:10185000FB89808185FD05C0A889B9898C9186FDA9 +:101860000FC00FB607FCF5CF808185FFF2CFA889A6 +:10187000B9898C9185FFEDCFCE010E94DC11E7CFB5 +:10188000DF91CF9108958F929F92AF92BF920F9365 +:101890001F93CF93DF93CDB7DEB7A1970FB6F89420 +:1018A000DEBF0FBECDBF19A2423008F44AE08E0160 +:1018B0000F5D1F4F842E912CA12CB12CA5019401FA +:1018C0000E946220E62FB901CA0101501109EA30D5 +:1018D00014F4E05D01C0E95CD801EC93232B242BC8 +:1018E000252B61F7C8010E94BC0BA1960FB6F89496 +:1018F000DEBF0FBECDBFDF91CF911F910F91BF9083 +:10190000AF909F908F900895CF93DF93682F70E0F2 +:1019100080E090E04AE00E94430CEC018CE491E00E +:101920000E94BC0B8C0F9D1FDF91CF9108954F92A9 +:101930005F926F927F928F929F92AF92BF92CF925F +:10194000DF92EF92FF926B017C019B01AC010E9440 +:101950004C23882319F08FE491E01AC04601570107 +:10196000E894B7F82FEF3FEF4FE75FE7C501B40109 +:101970000E944C23811110C02FEF3FEF4FE75FE72C +:10198000C501B4010E947B21181634F483E591E06F +:101990000E94BC0B7C018FC02FEF3FEF4FE75FE44D +:1019A000C701B6010E94DA2218161CF487E591E0FF +:1019B000EFCF2FEF3FEF4FE75FECC701B6010E947B +:1019C0007B2187FDF3CF20E030E0A901C701B601FC +:1019D0000E947B2187FF11C0E091F902F091FA0289 +:1019E0000190F081E02D6DE289EF92E009955C01B4 +:1019F000F7FAF094F7F8F09402C0A12CB12C2AE089 +:101A000037ED43EA5BE3C701B6010E940F212B01CA +:101A10003C010E94F9216B017C010E9428229B015C +:101A2000AC01C301B2010E940E212B013C014AE02E +:101A3000C701B6010E94430C7C01EA0CFB1CE0913B +:101A4000F902F091FA020190F081E02D6EE289EF47 +:101A500092E00995E80EF91E20E030E040E251E402 +:101A6000C301B2010E94DF222B013C010E94F92137 +:101A70004B01A12CB12C4AE0C501B4010E94430CDA +:101A8000E80EF91EC501B4010E9428229B01AC0199 +:101A9000C301B2010E940E2120E030E040E251E497 +:101AA0000E94DF220E94F92180E090E04AE00E943B +:101AB000430CE80EF91E8CE491E00E94BC0B8E0DE5 +:101AC0009F1DFF90EF90DF90CF90BF90AF909F90C1 +:101AD0008F907F906F905F904F900895CF93DF939A +:101AE000282F30E0F901E255FF4F8491F901E656C5 +:101AF000FF4FD491F901EA57FF4FC491CC2391F0E5 +:101B000081110E94360BEC2FF0E0EE0FFF1FE4581E +:101B1000FF4FA591B491EC91ED2381E090E021F489 +:101B200080E002C080E090E0DF91CF9108951F93A4 +:101B3000CF93DF93282F30E0F901E255FF4F8491D6 +:101B4000F901E656FF4FD491F901EA57FF4FC491CE +:101B5000CC23C9F0162F81110E94360BEC2FF0E038 +:101B6000EE0FFF1FEE58FF4FA591B4918FB7F89479 +:101B7000111105C09C91ED2FE095E92302C0EC9175 +:101B8000ED2BEC938FBFDF91CF911F910895CF93F1 +:101B9000DF9390E0FC01E656FF4F2491FC01EA57E9 +:101BA000FF4F8491882361F190E0880F991FFC0119 +:101BB000E859FF4FC591D491FC01EE58FF4FA59114 +:101BC000B491611109C09FB7F89488812095822350 +:101BD0008883EC912E230BC0623061F49FB7F89498 +:101BE0003881822F809583238883EC912E2B2C9330 +:101BF0009FBF06C08FB7F894E8812E2B28838FBF34 +:101C0000DF91CF9108958E3008F08E5087708064F8 +:101C100080937C0080917A00806480937A00809128 +:101C20007A0086FDFCCF809178002091790090E0C9 +:101C3000922B08953FB7F8948091F0019091F101B3 +:101C4000A091F201B091F30126B5A89B05C02F3FEA +:101C500019F00196A11DB11D3FBFBA2FA92F982FD2 +:101C60008827820F911DA11DB11DBC01CD0142E04D +:101C7000660F771F881F991F4A95D1F708958F9295 +:101C80009F92AF92BF92CF92DF92EF92FF926B0141 +:101C90007C010E941A0E4B015C01C114D104E104C5 +:101CA000F104F1F00E941A0EDC01CB0188199909A8 +:101CB000AA09BB09883E9340A105B10570F321E054 +:101CC000C21AD108E108F10888EE880E83E0981E58 +:101CD000A11CB11CC114D104E104F10419F7DDCF3A +:101CE000FF90EF90DF90CF90BF90AF909F908F903C +:101CF00008952FB7F8946091EC017091ED018091F7 +:101D0000EE019091EF012FBF08951F920F920FB631 +:101D10000F9211242F933F938F939F93AF93BF9371 +:101D20008091EC019091ED01A091EE01B091EF0155 +:101D30003091EB0123E0230F2D3720F40196A11DF4 +:101D4000B11D05C026E8230F0296A11DB11D2093E9 +:101D5000EB018093EC019093ED01A093EE01B09321 +:101D6000EF018091F0019091F101A091F201B09109 +:101D7000F3010196A11DB11D8093F0019093F10133 +:101D8000A093F201B093F301BF91AF919F918F9116 +:101D90003F912F910F900FBE0F901F9018951F929B +:101DA0000F920FB60F9211242F933F934F935F938F +:101DB0006F937F938F939F93AF93BF93EF93FF9313 +:101DC000E0910701F09108010995FF91EF91BF9112 +:101DD000AF919F918F917F916F915F914F913F91C3 +:101DE0002F910F900FBE0F901F9018951F920F927A +:101DF0000FB60F9211242F933F934F935F936F93DE +:101E00007F938F939F93AF93BF93EF93FF93E09153 +:101E10000501F09106010995FF91EF91BF91AF91F6 +:101E20009F918F917F916F915F914F913F912F91F2 +:101E30000F900FBE0F901F9018951F920F920FB624 +:101E40000F9211242F933F934F935F936F937F9340 +:101E50008F939F93AF93BF93EF93FF9389EF92E09C +:101E60000E94DC11FF91EF91BF91AF919F918F91F3 +:101E70007F916F915F914F913F912F910F900FBE86 +:101E80000F901F9018951F920F920FB60F9211246A +:101E90002F938F939F93EF93FF93E0910903F0911A +:101EA0000A038081E0910F03F091100382FD12C0BC +:101EB0009081809112038F5F8F732091130382179B +:101EC00051F0E0911203F0E0E750FD4F958F8093C1 +:101ED000120301C08081FF91EF919F918F912F910B +:101EE0000F900FBE0F901F901895FC01918D228DC1 +:101EF000892F90E0805C9F4F821B91098F739927F7 +:101F0000089580E090E0892B29F00E94D00B811188 +:101F10000C940000089585ED8093BC008091BC0076 +:101F200084FDFCCF1092DD01089540918702262F99 +:101F300030E0240F311D21323105DCF42091DD0128 +:101F40002430C9F4FC0180E090E0861758F4309109 +:101F500087022191DC01A959BD4FA30FB11D2C931C +:101F60000196F3CF80918702680F6093870280E02B +:101F7000089581E0089582E00895E091E801F091EC +:101F8000E901309729F01092DF011092DE010994E7 +:101F90000895CF93DF93AC01E091E601F091E70162 +:101FA0003097F1F09091E1018091E0019817C0F035 +:101FB00090E0292F30E02617370754F4D901A95BA8 +:101FC000BD4FEA01C20FD31F88818C939F5FF1CF71 +:101FD0001092E1016093E001CB01DF91CF91099470 +:101FE000DF91CF9108950895E091E1018091E001A2 +:101FF000E81730F4F0E0E95BFD4F808190E0089550 +:102000008FEF9FEF08959091E1018091E001981783 +:1020100050F4E92FF0E0E95BFD4F208130E09F5F55 +:102020009093E10102C02FEF3FEFC9010895809125 +:10203000E00190E02091E101821B91090895CF9386 +:10204000DF9300D0CDB7DEB7CB01642F49835A832D +:102050000E94950F4981842F5A81952F0F900F90E0 +:10206000DF91CF910895CF93DF931F92CDB7DEB765 +:10207000698361E0CE0101960E94950F81E090E0B6 +:102080000F90DF91CF910895089580E090E008953A +:1020900080913102909132020196909332028093A6 +:1020A000310208958091EA0181119AC080912C0239 +:1020B000813041F442E050E067E172E086E993E06C +:1020C0000E941F1080912C02833009F48EC08091F1 +:1020D0002C02873009F489C080912C02883309F4DE +:1020E00084C080912C02883009F488C080912C0231 +:1020F000843109F483C080912C028E3141F449E08F +:1021000050E067E172E086E993E00E941F10809141 +:102110002C02883241F449E050E062E072E086E946 +:1021200093E00E941F1080912C02853151F448E009 +:1021300050E067E172E086E993E00E941F10109280 +:10214000170280912C02883141F442E050E067E1AF +:1021500072E086E993E00E941F1080912C028A3081 +:1021600071F445E050E067E172E086E993E00E9497 +:102170001F10109201021092000210922C02809106 +:102180002C02863051F443E050E067E172E086E9CA +:1021900093E00E941F1010922C0280912C028B3031 +:1021A00071F443E050E06DEF71E086E993E00E9446 +:1021B0001F101092FE011092FD0110922C028091CE +:1021C0002C028C3021F543E050E06AEF71E086E9A3 +:1021D00093E00E941F101092FA0110922C020895B1 +:1021E00067E186E993E00C94331043E050E067E147 +:1021F00072E086E993E00E941F1073CF44E050E044 +:1022000067E172E086E993E00E941F1074CF0895A1 +:102210000F931F93CF93DF938091EA0181112FC019 +:1022200001E010E08091E0012091E101821719F1B5 +:1022300090E0821B9109049761F41092F9011092C9 +:10224000F8011092F7011092F6011093F501009336 +:10225000F401C091F601D091F701CE01019690935F +:10226000F7018093F60186E993E00E940310C45DB4 +:10227000DD4F8883D7CF81E08093EA010BC0909136 +:10228000E0018091E101981729F086E993E00E942E +:102290000310F5CFDF91CF911F910F9108950F9308 +:1022A0001F930E941A0E609343027093440280931E +:1022B000450290934602809109010E946E0D909311 +:1022C000420280934102892B89F0809143029091D0 +:1022D0004402A0914502B091460280933D02909342 +:1022E0003E02A0933F02B093400210C0809143028F +:1022F00090914402A0914502B09146028093390228 +:1023000090933A02A0933B02B0933C0240913D026D +:1023100050913E0260913F027091400280913902DB +:1023200090913A02A0913B02B0913C02841795072C +:10233000A607B707F0F580913D0290913E02A0916B +:102340003F02B09140020091390210913A0220916F +:102350003B0230913C02BC01CD01601B710B820B32 +:10236000930B28EE33E040E050E00E94622020937F +:102370003502309336024093370250933802209151 +:102380003302309134028091350290913602A0914F +:102390003702B0913802820F931F909334028093DA +:1023A000330210923D0210923E0210923F021092B0 +:1023B00040021F910F910895FC01848DDF01A80F49 +:1023C000B11DA35ABF4F2C91848D90E001968F735D +:1023D0009927848FA689B7892C93A089B1898C917C +:1023E00080648C93938D848D981306C00288F38942 +:1023F000E02D80818F7D808308951F920F920FB60C +:102400000F9211242F933F934F935F936F937F937A +:102410008F939F93AF93BF93EF93FF938091B900F6 +:10242000887F803609F49CC068F5883209F45BC067 +:1024300090F4803109F454C038F4882309F4F6C0CC +:10244000883009F44DC0F6C0883109F44CC08032A0 +:1024500009F45DC0EFC0803409F468C048F48033EB +:1024600009F455C0883309F0E5C08093AA02D8C0AA +:10247000803509F44FC0883509F45DC0883409F00F +:10248000D9C0D6C0883909F4C7C0A8F4883709F480 +:1024900067C038F4883609F463C0803709F460C037 +:1024A000C9C0883809F4B8C0803909F45FC08038E1 +:1024B00009F0C0C05BC0803B09F486C038F4803AA4 +:1024C00009F466C0883A09F47FC0B4C0803C09F4BE +:1024D000A7C0883C09F4A4C0883B09F48AC0AAC0FC +:1024E0008091CD0210C09091CC028091CB029817C0 +:1024F00070F5E091CC0281E08E0F8093CC02F0E089 +:10250000E555FD4F80818093BB0085EC86C08093AC +:10251000AA028EC0E091CC0281E08E0F8093CC02A3 +:102520008091BB00F0E0E555FD4F80839091CC0297 +:102530008091CB026EC0E091CC0281E08E0F80933F +:10254000CC028091BB00F0E0E555FD4F8083809187 +:10255000DC0181116DC081E08093DB0184EA61C000 +:1025600083E08093DD011092A902CFCF8091A90270 +:10257000803208F051C0E091A90281E08E0F809373 +:10258000A9028091BB00F0E0E757FD4F8083BDCFEB +:1025900085EC8093BC001092DD018091A90280320D +:1025A00030F4E091A902F0E0E757FD4F108260910E +:1025B000A90270E0E091E201F091E30189E892E084 +:1025C00009951092A90236C084E08093DD01109233 +:1025D000880210928702E091E401F091E5010995EB +:1025E00080918702811105C081E08093870210925B +:1025F0006702E091880281E08E0F80938802F0E00C +:10260000E959FD4F80818093BB00909188028091B1 +:102610008702981708F479CF85E88093BC000AC038 +:1026200085EC8093BC001092DD0104C01092AA02D8 +:102630000E948B0FFF91EF91BF91AF919F918F916E +:102640007F916F915F914F913F912F910F900FBEAE +:102650000F901F9018950F931F93CF93DF938C01CA +:1026600061E0FC0181810E94C70DC3ECD0E0CE0186 +:102670000197F1F760E0F80180810E94C70DCE015B +:102680000197F1F760E0F80181810E94C70D219761 +:10269000F1F7DF91CF911F910F91089561E0FC0157 +:1026A00081810E94C70D83EC90E00197F1F70895B6 +:1026B000CF92DF92EF92FF920F931F93CF93DF930E +:1026C000EC01E62E88E0F82E93ECC92ED12C61E0C7 +:1026D00088810E94C70DC6010197F1F7E0FE02C094 +:1026E00060E001C061E089810E94C70D03EC10E049 +:1026F000C6010197F1F760E088810E94C70DC6010D +:102700000197F1F7E694FA94F110E1CF61E0888146 +:102710000E94C70D60E089810E94C70DC801019722 +:10272000F1F760E088810E94C70DC8010197F1F7B9 +:1027300089810E946E0DF82E811104C061E08981AB +:102740000E94C70D03EC10E0C8010197F1F761E0AA +:1027500088810E94C70DF8013197F1F781E0F110EF +:1027600001C080E0DF91CF911F910F91FF90EF901A +:10277000DF90CF900895CF93DF9382E00E946E0D9B +:10278000EC0183E00E946E0D8C239D23019719F4C8 +:1027900081E08093D202DF91CF910895EF92FF9272 +:1027A0000F931F93CF937C018B01C0E1612F661FB4 +:1027B0006627661FF70182810E94970DF7018081CD +:1027C0000E946E0D61E0892B09F060E0F7018081C5 +:1027D0000E94970D000F111FC15041F7CF911F911B +:1027E0000F91FF90EF9008951F920F920FB60F92E6 +:1027F00011242F933F934F935F936F937F938F9306 +:102800009F93AF93BF93EF93FF93E0916001F0919B +:1028100061010995FF91EF91BF91AF919F918F91C8 +:102820007F916F915F914F913F912F910F900FBECC +:102830000F901F901895AF92BF92DF92EF92FF9288 +:102840000F931F93CF93DF9300D0CDB7DEB75C011A +:10285000F62EE42E29837A830E944E1360E4C5018C +:102860000E945813C5010E942B13C5010E944E13EC +:102870002981237060EC620FC5010E945813DF2C80 +:102880000F2D7A81172F802F8D198E1538F4F801AE +:1028900061918F01C5010E945813F5CFC5010E94B7 +:1028A0002B13C5010E944E13F50162816058C501CA +:1028B0000E945813C5010F900F90DF91CF911F9187 +:1028C0000F91FF90EF90DF90BF90AF900C942B137F +:1028D0001F920F920FB60F9211242F933F934F9395 +:1028E0005F936F937F938F939F93AF93BF93EF9378 +:1028F000FF938091A3030E946E0D2091A703309156 +:10290000A8032F5F3F4F3093A8032093A703909114 +:10291000A603953618F096E09093A2039091A20337 +:102920009430C9F128F4923069F09330D1F05EC050 +:10293000953009F451C0963009F058C091E0909359 +:10294000730451C0811152C02091A7033091A80394 +:102950002436310508F442C0109273041092A60385 +:102960001CC0813009F042C0E091A60391E09E0FA7 +:102970009093A603F0E02091A7033091A803EE0FF7 +:10298000FF1FEE55FC4F308727831092A80310924B +:10299000A70394E029C0811117C0E091A60391E03C +:1029A0009E0F9093A603F0E02091A7033091A80317 +:1029B000EE0FFF1FEE55FC4F308727831092A803C0 +:1029C0001092A70393E010C02091A7033091A803B1 +:1029D0002536310558F007C0811108C01092A803B0 +:1029E0001092A70303C095E09093A2039091A503D2 +:1029F0009923B9F081110AC08091A403882321F0A2 +:102A00008091A40361E009C02D9A0BC08091A403BA +:102A1000882331F08091A40360E00E94970D01C0EB +:102A20002D98FF91EF91BF91AF919F918F917F91E1 +:102A30006F915F914F913F912F910F900FBE0F902B +:102A40001F901895EF92FF920F931F93CF93DF93F0 +:102A5000EC017B01CB0193709E838D8360E070E07D +:102A6000CE010E94CE1300E010E08C81882369F033 +:102A7000C701002E02C0880F991F0A94E2F7BC011B +:102A80006627727091FF0FC00CC0C701002E02C0F4 +:102A9000969587950A94E2F7BC016170772780FFCD +:102AA00002C06FEF70E0CE010E94CE130F5F1F4F88 +:102AB0000A301105D1F660E070E0CE010E94CE131D +:102AC00060E070E0CE010E94CE1360E08A810E9437 +:102AD000970D83E290E00197F1F714E061E08A81BD +:102AE0000E94970D60E08A810E94970D1150B1F706 +:102AF000DF91CF911F910F91FF90EF9008951F925A +:102B00000F920FB60F9211240F931F932F933F93A1 +:102B10004F935F936F937F938F939F93AF93BF93E5 +:102B2000CF93EF93FF93C091D202C130E9F482E0DA +:102B30000E946E0D8C0183E00E946E0D801791073C +:102B40001CF4C09375040CC082E00E946E0D8C01D1 +:102B500083E00E946E0D0817190734F41092750473 +:102B6000C09376041092D202FF91EF91CF91BF9162 +:102B7000AF919F918F917F916F915F914F913F9115 +:102B80002F911F910F910F900FBE0F901F901895CE +:102B9000CF93DF93C3EED2E08E836F8396E0988766 +:102BA00091E09D8760E00E94C70D61E08E810E94E8 +:102BB000970D19861A861B861C86DF91CF91089582 +:102BC0007F928F929F92AF92BF92CF92DF92EF92BD +:102BD000FF920F931F93CF93DF9300D000D0CDB718 +:102BE000DEB77C019B01942E08E211E0FE013196D4 +:102BF0007724739440E05F018FE3882ED801DE9044 +:102C0000CE908D01C901B6010E944E20CB010097E4 +:102C100051F4911004C0772011F0433011F48082F8 +:102C200013C0108211C0A62FAF70B0E0A05FBE4FDE +:102C30005C9150838C9DB0018D9D700D9C9D700D9D +:102C40001124261B370B712C4F5F31964430B1F69F +:102C500020E0B501C7010E941B140F900F900F9048 +:102C60000F90DF91CF911F910F91FF90EF90DF9028 +:102C7000CF90BF90AF909F908F907F900895CF920C +:102C8000DF92EF92FF920F931F93E82FF92F05C069 +:102C9000015011092109310961F19081962394179E +:102CA000B9F305C0015011092109310911F19081D1 +:102CB00096239413F7CFC12CD12CE12CF12C0AC010 +:102CC0008FEFC81AD80AE80AF80A0C151D052E0558 +:102CD0003F0579F080818623841791F36C2D7D2D3B +:102CE0008E2D9F2D1F910F91FF90EF90DF90CF9031 +:102CF000089560E070E080E090E01F910F91FF90F8 +:102D0000EF90DF90CF9008952F923F924F925F9275 +:102D10006F927F928F929F92AF92BF92CF92DF92EB +:102D2000EF92FF920F931F93CF93DF9300D000D0C9 +:102D300000D0CDB7DEB789EA93E09093DE028093AE +:102D4000DD028091A60390E09093E0028093DF0281 +:102D50008091730490E09093E2028093E10280916D +:102D6000A203853009F07BC38091AB039091AC0343 +:102D7000885891098D35910588F48091A603843097 +:102D800041F48091AD039091AE038097479708F48A +:102D900001C28091A603843408F0E3C18091A603A8 +:102DA0008A3108F454C08091A9039091AA03843F0A +:102DB000914080F41092DC021092DB028FEF9FEFC3 +:102DC000DC018093D7029093D802A093D902B093EC +:102DD000DA025BC08091AB039091AC0385974B976F +:102DE000B0F5EFEAF3E082E090E040E050E0BA01B5 +:102DF0008C010F5F1F4F2091A60330E002171307CD +:102E00006CF49F0122503109D9012D913C9127503A +:102E100031092730310508F4F5C1C80101979595AE +:102E200087959093DC028093DB020C972CF4109230 +:102E3000DC021092DB020BC04093D7025093D80201 +:102E40006093D9027093DA0284E090E0FCC2809132 +:102E5000A6038A3108F44DC08091A9039091AA037A +:102E60008032934008F4A6CF8091AB039091AC03DD +:102E7000C697869708F4E2C13CC04093D7025093AE +:102E8000D8026093D9027093DA028BE090E0DBC243 +:102E900020813181255231092B31310508F0DEC105 +:102EA000440F551F661F771F4160029634968C01B0 +:102EB0000F5F1F4F2091A60330E00217130764F441 +:102EC0009F0122503109D9012D913C912C5031099B +:102ED0002B303105E8F2C8010197959587959093BD +:102EE000DC028093DB020C9744F61092DC02109215 +:102EF000DB028091A603823208F44CC08091AB03C0 +:102F00009091AC030697079708F044C0EFEAF3E00E +:102F100082E090E040E050E0BA018C010F5F1F4F6B +:102F20002091A60330E002171307DCF4DF011297AB +:102F30002D913C9111972E5131092731310508F01F +:102F40009AC1440F551F661F771F41602081318150 +:102F50003496235031092530310510F40296DDCF27 +:102F6000C8010197959587959093DC028093DB02C9 +:102F700040972CF41092DC021092DB020BC04093BD +:102F8000D7025093D8026093D9027093DA028CE092 +:102F900090E059C21C821B8281E090E09A83898371 +:102FA0008091A6038D3008F46BC049E753E0BE0161 +:102FB0006D5F7F4FCE0101960E94BE1F892B09F0E5 +:102FC0005FC049E753E0BE016D5F7F4FCE010196C0 +:102FD0000E94BE1F019709F053C049E753E0BE01AC +:102FE0006D5F7F4FCE0101960E94BE1F892B09F0B5 +:102FF00047C0C12CD12C760100E010E08091A603DF +:1030000090E029813A81281739075CF549E753E0B8 +:10301000BE016D5F7F4FCE0101960E94BE1F5C0115 +:1030200049E753E0BE016D5F7F4FCE0101960E94DC +:10303000BE1FB1E0AB16B10449F4892B09F5CC0CE5 +:10304000DD1CEE1CFF1C6894C0F808C0AB28C1F45E +:103050000197B1F4CC0CDD1CEE1CFF1C0F5F1F4F61 +:10306000CDCF1093DC020093DB02C092D702D09246 +:10307000D802E092D902F092DA0281E090E0E3C156 +:103080001C821B8281E090E09A8389838091DF0219 +:103090009091E002181619060CF058C0E091DD027C +:1030A000F091DE0282E090E09A83898382819381AD +:1030B00089974E9708F04AC083E090E09A8389830D +:1030C000848195810B970A9708F040C04CEB51E042 +:1030D000BE016D5F7F4FCE0101960E94BE1F892BFE +:1030E000A9F54CEB51E0BE016D5F7F4FCE0101961B +:1030F0000E94BE1F019751F5C12CD12C760100E032 +:1031000010E029813A818091DF029091E002281736 +:1031100039070CF0F3C04CEB51E0BE016D5F7F4FFF +:10312000CE0101960E94BE1F4C010330110509F02B +:10313000AFC04CEB51E0BE016D5F7F4FCE010196F9 +:103140000E94BE1F8816990609F4A2C0E091DD0214 +:10315000F091DE0282819381C697869708F4DDC0E4 +:103160008CC18091AD039091AE03825491098E97EA +:1031700008F014CE20E030E080E090E0DC01F901BE +:10318000E155FC4F40815181495051094930510569 +:1031900088F004CE8091AF039091B003099709970E +:1031A00008F0F7CD1092DC021092DB028FEF9FEF58 +:1031B000DC0158C1F901EF54FC4F40815181475166 +:1031C00051094231510588F4880F991FAA1FBB1F6E +:1031D00081602C5F3F4F2038310589F620E230E0D6 +:1031E0003093DC022093DB023DC140815181465087 +:1031F00051094730510508F0D1CD880F991FAA1FFA +:10320000BB1FE7CF20813181235131092F30310598 +:1032100040F4440F551F661F771F41600296349695 +:10322000E7CD208131812A5031092930310508F05C +:103230000ECE440F551F661F771FF0CF8091AD0350 +:103240009091AE03C697869708F053CEE1EBF3E07A +:1032500083E090E040E050E0BA0129CE2081318146 +:103260002C5031092A30310508F043CE440F551F48 +:10327000661F771F1ACE2D913C912C5031092B30AF +:10328000310508F087CE440F551F661F771F5ECEAD +:103290004CEB51E0BE016D5F7F4FCE0101960E9465 +:1032A000BE1F5C010330110569F44CEB51E0BE0117 +:1032B0006D5F7F4FCE0101960E94BE1FA816B90612 +:1032C00009F044CF8114910459F4AA94AB2809F071 +:1032D0003DCFCC0CDD1CEE1CFF1C6894C0F80BC06D +:1032E0008A94892809F032CFAB2809F02FCFCC0C73 +:1032F000DD1CEE1CFF1C0F5F1F4F03CF1093DC0281 +:103300000093DB02C092D702D092D802E092D90299 +:10331000F092DA0282E090E096C0848195814B972A +:10332000459708F0AAC0DF0116967F0126ECE20E51 +:10333000F11C20E030E040E050E060E070E080E030 +:1033400090E00D911C911197095011090830110559 +:1033500008F093C012960D911C9113970151110919 +:103360000D30110520F501E00E94AE202160149679 +:10337000AE15BF0531F72093D7023093D8024093A2 +:10338000D9025093DA0200E20E94C9202093D502AC +:103390003093D60285E090E09093D4028093D302DC +:1033A00080E390E09093DC028093DB0250C01296A1 +:1033B0000D911C911397045011090530110508F067 +:1033C0005CC001E00E94AE20D2CF980122503109AA +:1033D000D9012D913C91295031092830310508F04F +:1033E000FAC0BC016F5F7F4FD8012D913C912750EF +:1033F00031092730310508F0EBC2440F551F4160F9 +:1034000002960C5F1F4F2091A60330E02450310933 +:1034100082179307D4F20197959587959093DC02D4 +:103420008093DB028A970CF4D6C0052E000C660B45 +:10343000770B4093D7025093D8026093D9027093D0 +:10344000DA0289E090E09093D4028093D30281E085 +:1034500090E00CC382E08093A2031092A60380E068 +:1034600090E004C38093D7029093D802A093D9022E +:10347000B093DA0283E090E0E6CF8091A60389332F +:1034800070F182819381895791098335910508F400 +:1034900040C125C0D90112966D917C911397665158 +:1034A00071096131710508F060C1D701C601880F4B +:1034B000991FAA1FBB1F6C017D016894C0F84E5F65 +:1034C0005F4F2C5F3F4F4B33510509F431C1D90198 +:1034D0006D917C916A50710969307105D8F28091C3 +:1034E000A603823231F4828193810A97099708F406 +:1034F0004CC1828193818957910983359105D0F41C +:103500008091A6038132B0F084819581CA97899712 +:1035100088F49F012A5F3F4FC12CD12C760143E0F4 +:1035200050E0D9016D917C916A5071096930710543 +:1035300008F44AC1828193818C549109C59778F42B +:103540008091A603843031F48481958180974797D8 +:1035500008F499C18091A603843408F07BC180915E +:10356000A603863460F1828193810C970B9708F44F +:10357000D8C125C0D90112966D917C9113976E51D7 +:1035800071096731710508F004C2D701C601880FBF +:10359000991FAA1FBB1F6C017D016894C0F84E5F84 +:1035A0005F4F2C5F3F4F4534510509F4D5C1D90118 +:1035B0006D917C916C5071096B307105D8F28091DE +:1035C000A603883540F082819381855891098B3517 +:1035D000910508F4EEC18091A6038032E1F4828166 +:1035E000938106970697B8F4848195810997099786 +:1035F00090F49F012A5F3F4FBF01625C7F4FC12C57 +:10360000D12C7601D9014D915C914650510946303B +:10361000510508F4EAC18091DF029091E0029E8397 +:103620008D8306970CF416CF8F010A5F1F4F73E04E +:10363000272E312CE5ECCE2EEDE9DE2EECE1EE2E40 +:10364000E1E8FE2ED8016D917C91F8013497A080BD +:10365000B18080E090E00E9428222B013C01B5015E +:1036600080E090E00E9428224B015C012DEC3CECB4 +:103670004CE45FE30E94DF229B01AC01C301B20175 +:103680000E947B2187FD17C02DEC3CEC4CE45FE3EE +:10369000C301B2010E94DF229B01AC01C501B4014C +:1036A0000E947B21E82F880FFF0BEE27FF0FEE1FF4 +:1036B000FF27319602C0E0E0F0E0A701960163E940 +:1036C00071E080E091E00E9432206F01FF0FEE0870 +:1036D000FF08C626D726E826F926BFEF2B1A3B0A95 +:1036E0000E5F1F4FED81FE812E163F0609F0AACF17 +:1036F000C092D702D092D802E092D902F092DA02B8 +:1037000080E290E09093DC028093DB028FEF9FEFEA +:103710009ACE84819581CA97899708F0E0CE9F015F +:103720002A5F3F4FC12CD12C760143E050E0CFCE31 +:103730009F012A583F4FD9012D913C912A503109C0 +:103740002930310508F0CBCE2CE130E03093DC029B +:103750002093DB02C092D702D092D802E092D90225 +:10376000F092DA028AE090E06ECED90112966D9165 +:103770007C911397665071096730710508F0AFCEE0 +:10378000CC0CDD1CEE1CFF1C9ACE2091A603CF01B1 +:10379000820F911D820F911DDC0112978D919C91DA +:1037A0000A97099708F0A5CE1092DC021092DB026E +:1037B0008FEF9FEFDC018093D7029093D802A09304 +:1037C000D902B093DA024CC1D90112966D917C9165 +:1037D0001397665171096131710588F112966D91E7 +:1037E0007C911397665071096730710508F0A2CE7D +:1037F000CC0CDD1CEE1CFF1C4E5F5F4F2C5F3F4F5F +:103800004332510509F08DCE9F012A5B3F4FD9010C +:103810002D913C912A5031092930310508F08ACE8A +:1038200020E130E03093DC022093DB02C092D7022B +:10383000D092D802E092D902F092DA0211C1D701F7 +:10384000C601880F991FAA1FBB1F6C017D016894D8 +:10385000C0F8D2CF8481958189549109C39708F02B +:103860007ECE9F012A5F3F4FBF016A577F4FC12C19 +:10387000D12C7601D9014D915C91495051094930C3 +:103880005105B8F06CCE868197810997099708F0A9 +:1038900061CE1092DC021092DB028FEF9FEFDC0111 +:1038A0008093D7029093D802A093D902B093DA0202 +:1038B000DAC0D90112964D915C9113974651510986 +:1038C00041315105F0F4D701C601880F991FAA1F95 +:1038D000BB1F6C017D016894C0F82C5F3F4F261719 +:1038E000370741F620E230E03093DC022093DB0220 +:1038F000C092D702D092D802E092D902F092DA02B6 +:10390000B2C0D90112964D915C911397465051095E +:103910004730510508F023CECC0CDD1CEE1CFF1CFB +:10392000DCCF848195810997099708F048CE86817C +:1039300097818C974F9708F042CE80859185899723 +:103940004D9708F03CCE9F01265F3F4FC12CD12CF4 +:10395000760145E050E02BCE9F0126573F4FD9011D +:103960002D913C912C5031092B30310508F027CE98 +:1039700020E230E03093DC022093DB02C092D702D9 +:10398000D092D802E092D902F092DA0288E090E078 +:103990005ACDD90112966D917C9113976950710996 +:1039A0006930710508F00BCECC0CDD1CEE1CFF1C41 +:1039B000F6CD84819581825491098E9708F00BCEC3 +:1039C0008F01045C1F4F8DE190E040E050E01BCD83 +:1039D000D8012D913C91285131092231310510F047 +:1039E000CB0119CD440F551F0BCDD90112964D9126 +:1039F0005C911397495151094331510508F5D7019D +:103A0000C601880F991FAA1FBB1F6C017D01689416 +:103A1000C0F82C5F3F4F2617370709F0F3CD2EE093 +:103A200030E03093DC022093DB02C092D702D092C8 +:103A3000D802E092D902F092DA028FE090E003CD52 +:103A4000D90112964D915C91139749505109493013 +:103A5000510508F0E0CDCC0CDD1CEE1CFF1CD9CFCD +:103A600086E090E0F0CC87E090E0EDCC26960FB6B3 +:103A7000F894DEBF0FBECDBFDF91CF911F910F91A4 +:103A8000FF90EF90DF90CF90BF90AF909F908F907E +:103A90007F906F905F904F903F902F900895789413 +:103AA00084B5826084BD84B5816084BD85B5826043 +:103AB00085BD85B5816085BD80916E0081608093F4 +:103AC0006E0010928100809181008260809381005D +:103AD000809181008160809381008091800081606D +:103AE000809380008091B10084608093B1008091C8 +:103AF000B00081608093B00080917A0084608093F0 +:103B00007A0080917A00826080937A0080917A00B6 +:103B1000816080937A0080917A00806880937A0037 +:103B20001092C100E0910903F0910A0382E08083C2 +:103B3000E0910503F09106031082E0910703F091F4 +:103B4000080383E3808310921103E0910D03F09149 +:103B50000E0386E08083E0910B03F0910C038081DB +:103B600080618083E0910B03F0910C038081886079 +:103B70008083E0910B03F0910C0380818068808347 +:103B8000E0910B03F0910C0380818F7D808388E0AE +:103B90008093BA008DEB9FE09093E5018093E40160 +:103BA00089EC9FE09093E3018093E2011092E101A0 +:103BB0001092E0011092DF011092DE011092DD01FF +:103BC00081E08093DC011092DB0161E082E10E94E0 +:103BD000970D61E083E10E94970D8091B9008E7F7F +:103BE0008093B9008091B9008D7F8093B90088E4FB +:103BF0008093B80085E48093BC0088E091E19093C5 +:103C0000E7018093E60182E590E19093E9018093DA +:103C1000E801549A5C988091EA01882329F00E9477 +:103C20008C001092EA0102C00E948C000E94810F59 +:103C3000F2CF823078F4813011F0E89801C0E99831 +:103C4000E82FF0E0EE0FFF1FEB5FFE4F8FE59BE0EC +:103C50009183808308958230E8F4E82FF0E0EE0F3E +:103C6000FF1FEB5FFE4F71836083813041F08091D5 +:103C700069008C7F482B40936900E89A08958091F1 +:103C80006900440F551F440F551F837F482B4093F5 +:103C90006900E99A0895EF92FF920F931F93CF93D3 +:103CA000DF93EC01062F18E08BE4E82EF12C07FFE0 +:103CB00002C061E001C060E089810E94970D60E070 +:103CC00088810E94970DC7010197F1F761E0888113 +:103CD0000E94970DC7010197F1F7000F115039F7B6 +:103CE000DF91CF911F910F91FF90EF900895CF92A8 +:103CF000DF92EF92FF92CF93DF93EC01072E000C3F +:103D0000880B990B0E942A226B017C0120E030E095 +:103D100040E45FE30E94DF2220E030E048E452E428 +:103D20000E9480210E94F221C617D707D4F020E01C +:103D300030E040EA5FE3C701B6010E94DF2220E0E5 +:103D400030E048E452E40E94802120E030E040E886 +:103D50005FE30E940F210E94F22121E06C177D0792 +:103D60000CF420E0822F90E0DF91CF91FF90EF9054 +:103D7000DF90CF9008954F925F926F927F928F92D3 +:103D80009F92AF92BF92CF92DF92EF92FF920F93EA +:103D90001F93CF93DF93EC01962E842E722E60E05A +:103DA0000E944B1E60E0CE010E944B1E60E0CE01DF +:103DB0000E944B1E60E0CE010E944B1E83E0989E45 +:103DC0005001112475018FEFE81AF80A650182E0AD +:103DD000C80ED11C10E08A81181708F03BC01911D9 +:103DE0000FC0EB81FC81EA0DFB1D8082EB81FC8121 +:103DF000EE0DFF1D7082EB81FC81EC0DFD1D00833B +:103E0000EB81FC8183E0189FE00DF11D11244280BD +:103E10005180608047FC02C060EE01C060EC46FE4D +:103E2000606157FE686056FE646067FE626066FE11 +:103E30006160CE010E944B1E642DCE010E944B1E7C +:103E4000652DCE010E944B1E662DCE010E944B1E99 +:103E50001F5FC1CF60E0CE010E944B1E60E0CE012B +:103E60000E944B1E60E0CE010E944B1E60E0CE011E +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF90AF909F908F907F906F905F904F907A +:103E90000C944B1E0F931F93CF93DF93EC01862F4F +:103EA000688349832A8361E00E94C70D61E08981AC +:103EB0000E94C70D8A8161E070E023E0829FC0010B +:103EC00011240E9451239C838B8310E08A81181750 +:103ED00048F400E020E040E0612FCE010E94BB1ECC +:103EE0001F5FF4CFDF91CF911F910F910895E9EFFC +:103EF000F2E01382128288EE93E0A0E0B0E08483C7 +:103F00009583A683B7832CE231E03183208325ECAF +:103F100030E03587248724EC30E03787268720EC93 +:103F200030E0318B208B21EC30E0338B228B22EC84 +:103F300030E0358B248B26EC30E0378B268B118ECE +:103F4000128E138E148EE6E9F3E0138212828483BC +:103F50009583A683B7838EE391E091838083E2EA21 +:103F6000F3E082E08183138284E0809368008BB366 +:103F700081718BBB8CE080936D0008958F929F922E +:103F8000AF92BF92CF92DF92EF92FF920F931F9367 +:103F9000CF93DF93FC01C081D1812091DF0230916A +:103FA000E002C217D3070CF04BC09E01220F331F53 +:103FB000E091DD02F091DE02E20FF31F808091803C +:103FC000C170DD27F1E0CF27209719F404E610E057 +:103FD00002C00CE91FEF7A015B016C01040F151F91 +:103FE000B801C4010E94771E892B99F40E0D1F1D84 +:103FF000B801C4010E94771E892B71F4B8016E0DBF +:104000007F1DC4010E94771E892BE9F023E030E078 +:1040100005C021E030E002C022E030E0F5018081FF +:1040200091810196821793073CF0F501118210826D +:10403000F60180819181019691838083CE0105C034 +:1040400081E090E002C08FEF9FEFDF91CF911F9151 +:104050000F91FF90EF90DF90CF90BF90AF909F9027 +:104060008F900895DB018F939F930E94A320BF91AF +:10407000AF91A29F800D911DA39F900DB29F900DB7 +:1040800011240895991B79E004C0991F961708F030 +:10409000961B881F7A95C9F78095089597FB072E80 +:1040A00016F4009407D077FD09D00E94E52007FCA4 +:1040B00005D03EF4909581959F4F08957095619538 +:1040C0007F4F0895A1E21A2EAA1BBB1BFD010DC054 +:1040D000AA1FBB1FEE1FFF1FA217B307E407F507B8 +:1040E00020F0A21BB30BE40BF50B661F771F881F94 +:1040F000991F1A9469F760957095809590959B012A +:10410000AC01BD01CF010895052E97FB1EF400946C +:104110000E949B2057FD07D00E94622007FC03D01D +:104120004EF40C949B2050954095309521953F4F2F +:104130004F4F5F4F089590958095709561957F4F93 +:104140008F4F9F4F08950E94FF20A59F900DB49F11 +:10415000900DA49F800D911D112408950F93083098 +:1041600090F0982F872F762F652F542F432F322FC3 +:1041700022270850F4CF220F331F441F551F661FFC +:10418000771F881F991F0A95B2F70F91089597FB23 +:1041900010F8169400080F93083098F00850232F59 +:1041A000342F452F562F672F782F892F902DF4CF3E +:1041B0000594979587957795679557954795379582 +:1041C00027950A95AAF70F910895AA1BBB1B51E1E9 +:1041D00007C0AA1FBB1FA617B70710F0A61BB70B77 +:1041E000881F991F5A95A9F780959095BC01CD011C +:1041F0000895EE0FFF1F0590F491E02D0994A29F02 +:10420000B001B39FC001A39F700D811D1124911DAA +:10421000B29F700D811D1124911D08955058BB2728 +:10422000AA270E9426210C94A0220E94922238F0F4 +:104230000E94992220F039F49F3F19F426F40C943F +:104240008F220EF4E095E7FB0C948922E92F0E945F +:10425000B12258F3BA17620773078407950720F055 +:1042600079F4A6F50C94D3220EF4E0950B2EBA2F18 +:10427000A02D0B01B90190010C01CA01A00111246C +:10428000FF27591B99F0593F50F4503E68F11A1618 +:10429000F040A22F232F342F4427585FF3CF4695A9 +:1042A00037952795A795F0405395C9F77EF41F16CB +:1042B000BA0B620B730B840BBAF09150A1F0FF0F95 +:1042C000BB1F661F771F881FC2F70EC0BA0F621F81 +:1042D000731F841F48F4879577956795B795F79571 +:1042E0009E3F08F0B0CF9395880F08F09927EE0F06 +:1042F0009795879508950E94652208F481E00895B6 +:104300000E9494210C94A0220E94992258F00E94AD +:10431000922240F029F45F3F29F00C948922511138 +:104320000C94D4220C948F220E94B12268F399231A +:10433000B1F3552391F3951B550BBB27AA276217A1 +:104340007307840738F09F5F5F4F220F331F441FAE +:10435000AA1FA9F335D00E2E3AF0E0E832D09150E2 +:104360005040E695001CCAF72BD0FE2F29D0660FCF +:10437000771F881FBB1F261737074807AB07B0E812 +:1043800009F0BB0B802DBF01FF2793585F4F3AF018 +:104390009E3F510578F00C9489220C94D4225F3F03 +:1043A000E4F3983ED4F3869577956795B795F7959E +:1043B0009F5FC9F7880F911D9695879597F9089586 +:1043C000E1E0660F771F881FBB1F62177307840722 +:1043D000BA0720F0621B730B840BBA0BEE1F88F731 +:1043E000E09508950E94F9216894B1110C94D422AB +:1043F00008950E94B92288F09F5798F0B92F992705 +:10440000B751B0F0E1F0660F771F881F991F1AF0BF +:10441000BA95C9F714C0B13091F00E94D322B1E02F +:1044200008950C94D322672F782F8827B85F39F02E +:10443000B93FCCF3869577956795B395D9F73EF458 +:1044400090958095709561957F4F8F4F9F4F089500 +:10445000E89409C097FB3EF490958095709561951E +:104460007F4F8F4F9F4F9923A9F0F92F96E9BB27D4 +:104470009395F695879577956795B795F111F8CF50 +:10448000FAF4BB0F11F460FF1BC06F5F7F4F8F4FBB +:104490009F4F16C0882311F096E911C0772321F0B1 +:1044A0009EE8872F762F05C0662371F096E8862F49 +:1044B00070E060E02AF09A95660F771F881FDAF7A0 +:1044C000880F9695879597F90895990F0008550FCD +:1044D000AA0BE0E8FEEF16161706E807F907C0F08A +:1044E00012161306E407F50798F0621B730B840B92 +:1044F000950B39F40A2661F0232B242B252B21F46C +:1045000008950A2609F4A140A6958FEF811D811D0B +:10451000089597F99F6780E870E060E008959FEF45 +:1045200080EC089500240A9416161706180609064A +:10453000089500240A941216130614060506089519 +:10454000092E0394000C11F4882352F0BB0F40F4A1 +:10455000BF2B11F460FF04C06F5F7F4F8F4F9F4FE1 +:10456000089557FD9058440F551F59F05F3F71F063 +:104570004795880F97FB991F61F09F3F79F08795CA +:104580000895121613061406551FF2CF4695F1DF53 +:1045900008C0161617061806991FF1CF86957105E3 +:1045A000610508940895E894BB2766277727CB0117 +:1045B00097F908950E94652208F48FEF08950E94EC +:1045C000F2220C94A0220E94922238F00E9499229A +:1045D00020F0952311F00C9489220C948F22112441 +:1045E0000C94D4220E94B12270F3959FC1F3950FD1 +:1045F00050E0551F629FF001729FBB27F00DB11D67 +:10460000639FAA27F00DB11DAA1F649F6627B00DF6 +:10461000A11D661F829F2227B00DA11D621F739FDF +:10462000B00DA11D621F839FA00D611D221F749FED +:104630003327A00D611D231F849F600D211D822F34 +:10464000762F6A2F11249F5750409AF0F1F088235B +:104650004AF0EE0FFF1FBB1F661F771F881F915088 +:104660005040A9F79E3F510580F00C9489220C948C +:10467000D4225F3FE4F3983ED4F38695779567950F +:10468000B795F795E7959F5FC1F7FE2B880F911DB2 +:104690009695879597F908950E946522880B990B46 +:1046A00008950F931F93CF93DF93869F8001879F79 +:1046B000100D969F100D1124C8010E946D23EC016E +:1046C000009729F0A80160E070E00E949F24CE01CD +:1046D000DF91CF911F910F910895CF93DF93823097 +:1046E000910510F482E090E0E0917904F0917A0471 +:1046F00020E030E0C0E0D0E0309711F140815181FE +:1047000048175907C0F04817590761F4828193810F +:10471000209719F09B838A832BC090937A0480930F +:10472000790426C02115310519F04217530718F4F2 +:104730009A01BE01DF01EF010280F381E02DDCCFA1 +:104740002115310509F1281B390B2430310590F46E +:1047500012968D919C9113976115710521F0FB01C3 +:104760009383828304C090937A0480937904FD013B +:10477000329644C0FD01E20FF31F819391932250C2 +:1047800031092D933C933AC02091770430917804FD +:10479000232B41F420910C0130910D0130937804CA +:1047A0002093770420910A0130910B0121153105E6 +:1047B00041F42DB73EB740910E0150910F01241BDB +:1047C000350BE0917704F0917804E217F307A0F439 +:1047D0002E1B3F0B2817390778F0AC014E5F5F4F57 +:1047E0002417350748F04E0F5F1F5093780440930D +:1047F00077048193919302C0E0E0F0E0CF01DF9174 +:10480000CF9108950F931F93CF93DF93009709F4EF +:104810008CC0FC01329713821282009179041091AE +:104820007A040115110581F420813181820F931FD3 +:1048300020917704309178042817390779F5F0939F +:104840007804E093770471C0D80140E050E0AE17DF +:10485000BF0750F412962D913C911397AD0121158D +:10486000310509F1D901F3CF9D01DA0133832283A8 +:1048700060817181860F971F8217930769F4EC019D +:1048800028813981260F371F2E5F3F4F31832083C8 +:104890008A819B8193838283452B29F4F0937A0448 +:1048A000E093790442C01396FC93EE931297ED01C6 +:1048B000499159919E01240F351FE217F30771F4B6 +:1048C00080819181840F951F029611969C938E93FF +:1048D0008281938113969C938E931297E0E0F0E08F +:1048E000D80112968D919C911397009719F0F801B9 +:1048F0008C01F6CF8D919C9198012E5F3F4F820FD6 +:10490000931F20917704309178042817390769F4B0 +:10491000309729F410927A041092790402C013821D +:1049200012821093780400937704DF91CF911F9146 +:104930000F91089581E090E0F8940C94A624DC0196 +:1049400001C06D9341505040E0F70895F894FFCFB7 +:1049500002307500005F0B5F0B0200007B0420003B +:104960003F065B4F666D7D077F6F777C395E79719F +:1049700001000A006400E80300000000DA0B600B8D +:104980008B0B210C750F9A0BAE0B0000000033103F +:104990001F104510F30F17100310F40F0D0A006ECF +:0C49A000616E00696E66006F76660000B4 +:00000001FF diff --git a/Firmware/Source/grovepi/.gitignore b/Firmware/Source/grovepi/.gitignore new file mode 100644 index 0000000..5dac9f5 --- /dev/null +++ b/Firmware/Source/grovepi/.gitignore @@ -0,0 +1,4 @@ +.pioenvs +.piolibdeps +.clang_complete +.gcc-flags.json diff --git a/Firmware/Source/grovepi/.travis.yml b/Firmware/Source/grovepi/.travis.yml new file mode 100644 index 0000000..9443843 --- /dev/null +++ b/Firmware/Source/grovepi/.travis.yml @@ -0,0 +1,67 @@ +# Continuous Integration (CI) is the practice, in software +# engineering, of merging all developer working copies with a shared mainline +# several times a day < http://docs.platformio.org/page/ci/index.html > +# +# Documentation: +# +# * Travis CI Embedded Builds with PlatformIO +# < https://docs.travis-ci.com/user/integration/platformio/ > +# +# * PlatformIO integration with Travis CI +# < http://docs.platformio.org/page/ci/travis.html > +# +# * User Guide for `platformio ci` command +# < http://docs.platformio.org/page/userguide/cmd_ci.html > +# +# +# Please choice one of the following templates (proposed below) and uncomment +# it (remove "# " before each line) or use own configuration according to the +# Travis CI documentation (see above). +# + + +# +# Template #1: General project. Test it using existing `platformio.ini`. +# + +# language: python +# python: +# - "2.7" +# +# sudo: false +# cache: +# directories: +# - "~/.platformio" +# +# install: +# - pip install -U platformio +# - platformio update +# +# script: +# - platformio run + + +# +# Template #2: The project is intended to by used as a library with examples +# + +# language: python +# python: +# - "2.7" +# +# sudo: false +# cache: +# directories: +# - "~/.platformio" +# +# env: +# - PLATFORMIO_CI_SRC=path/to/test/file.c +# - PLATFORMIO_CI_SRC=examples/file.ino +# - PLATFORMIO_CI_SRC=path/to/test/directory +# +# install: +# - pip install -U platformio +# - platformio update +# +# script: +# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N diff --git a/Firmware/Source/grovepi/extra_script.py b/Firmware/Source/grovepi/extra_script.py new file mode 100644 index 0000000..910d3e8 --- /dev/null +++ b/Firmware/Source/grovepi/extra_script.py @@ -0,0 +1,21 @@ +# Import('env') +# +# env.Replace(FUSESCMD="avrdude -c usbtiny -p m328p -U lfuse:w:0xFF:m -U hfuse:w:0xDA:m -U efuse:w:0xfd:m -B 3") + +from os.path import join +from SCons.Script import DefaultEnvironment + +env = DefaultEnvironment() + +env.Replace( + MYUPLOADERFLAGS=[ + "-v", + "-p", "$BOARD_MCU", + "-c", "$UPLOAD_PROTOCOL", + "-b", "115200", + "-U", "lfuse:w:0xFF:m", + "-U", "hfuse:w:0xDA:m", + "-U", "efuse:w:0xFD:m" + ], + UPLOADHEXCMD='"$UPLOADER" $MYUPLOADERFLAGS -U flash:w:$SOURCES:i' +) diff --git a/Firmware/Source/grovepi/lib/readme.txt b/Firmware/Source/grovepi/lib/readme.txt new file mode 100644 index 0000000..131f1bf --- /dev/null +++ b/Firmware/Source/grovepi/lib/readme.txt @@ -0,0 +1,41 @@ + +This directory is intended for the project specific (private) libraries. +PlatformIO will compile them to static libraries and link to executable file. + +The source code of each library should be placed in separate directory, like +"lib/private_lib/[here are source files]". + +For example, see how can be organized `Foo` and `Bar` libraries: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) http://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- readme.txt --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +Then in `src/main.c` you should use: + +#include +#include + +// rest H/C/CPP code + +PlatformIO will find your libraries automatically, configure preprocessor's +include paths and build them. + +More information about PlatformIO Library Dependency Finder +- http://docs.platformio.org/page/librarymanager/ldf.html diff --git a/Firmware/Source/grovepi/platformio.ini b/Firmware/Source/grovepi/platformio.ini new file mode 100644 index 0000000..3fd854c --- /dev/null +++ b/Firmware/Source/grovepi/platformio.ini @@ -0,0 +1,17 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; http://docs.platformio.org/page/projectconf.html + +[env:grovepi] +platform = atmelavr +framework = arduino +board = 328p16m +upload_protocol = usbtiny +upload_speed = 57600 +extra_scripts = extra_script.py diff --git a/Firmware/Source/grovepi/src/ChainableLED.cpp b/Firmware/Source/grovepi/src/ChainableLED.cpp new file mode 100644 index 0000000..caf37e9 --- /dev/null +++ b/Firmware/Source/grovepi/src/ChainableLED.cpp @@ -0,0 +1,184 @@ +/* + * Copyright (C) 2012 Paulo Marques (pjp.marques@gmail.com) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* Information about the P9813 protocol obtained from: + * http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Chainable_RGB_LED + * + * HSB to RGB routine adapted from: + * http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript + */ + + +// -------------------------------------------------------------------------------------- + +#include "ChainableLED.h" + +// Forward declaration +// float hue2rgb(float p, float q, float t); + +// -------------------------------------------------------------------------------------- + +void ChainableLED::begin(byte clk_pin, byte data_pin, byte number_of_leds) +{ + _clk_pin = clk_pin; + _data_pin = data_pin; + _num_leds = number_of_leds; + pinMode(_clk_pin, OUTPUT); + pinMode(_data_pin, OUTPUT); + + _led_state = (byte*) calloc(_num_leds*3, sizeof(byte)); + + for (byte i=0; i<_num_leds; i++) + setColorRGB(i, 0, 0, 0); +} + +//ChainableLED::~begin() +//{ +// free(_led_state); +//} + +// -------------------------------------------------------------------------------------- + +void ChainableLED::clk(void) +{ + digitalWrite(_clk_pin, LOW); + delayMicroseconds(_CLK_PULSE_DELAY); + digitalWrite(_clk_pin, HIGH); + delayMicroseconds(_CLK_PULSE_DELAY); +} + +void ChainableLED::sendByte(byte b) +{ + // Send one bit at a time, starting with the MSB + for (byte i=0; i<8; i++) + { + // If MSB is 1, write one and clock it, else write 0 and clock + if ((b & 0x80) != 0) + digitalWrite(_data_pin, HIGH); + else + digitalWrite(_data_pin, LOW); + clk(); + + // Advance to the next bit to send + b <<= 1; + } +} + +void ChainableLED::sendColor(byte red, byte green, byte blue) +{ + // Start by sending a byte with the format "1 1 /B7 /B6 /G7 /G6 /R7 /R6" + byte prefix = B11000000; + if ((blue & 0x80) == 0) prefix|= B00100000; + if ((blue & 0x40) == 0) prefix|= B00010000; + if ((green & 0x80) == 0) prefix|= B00001000; + if ((green & 0x40) == 0) prefix|= B00000100; + if ((red & 0x80) == 0) prefix|= B00000010; + if ((red & 0x40) == 0) prefix|= B00000001; + sendByte(prefix); + + // Now must send the 3 colors + sendByte(blue); + sendByte(green); + sendByte(red); +} + +void ChainableLED::setColorRGB(byte led, byte red, byte green, byte blue) +{ + // Send data frame prefix (32x "0") + sendByte(0x00); + sendByte(0x00); + sendByte(0x00); + sendByte(0x00); + + // Send color data for each one of the leds + for (byte i=0; i<_num_leds; i++) + { + if (i == led) + { + _led_state[i*3 + _CL_RED] = red; + _led_state[i*3 + _CL_GREEN] = green; + _led_state[i*3 + _CL_BLUE] = blue; + } + + sendColor(_led_state[i*3 + _CL_RED], + _led_state[i*3 + _CL_GREEN], + _led_state[i*3 + _CL_BLUE]); + } + + // Terminate data frame (32x "0") + sendByte(0x00); + sendByte(0x00); + sendByte(0x00); + sendByte(0x00); +} + +//void ChainableLED::setColorHSB(byte led, float hue, float saturation, float brightness) +//{ +// float r, g, b; +// +// constrain(hue, 0.0, 1.0); +// constrain(saturation, 0.0, 1.0); +// constrain(brightness, 0.0, 1.0); +// +// if(saturation == 0.0) +// { +// r = g = b = brightness; +// } +// else +// { +// float q = brightness < 0.5 ? +// brightness * (1.0 + saturation) : brightness + saturation - brightness * saturation; +// float p = 2.0 * brightness - q; +// r = hue2rgb(p, q, hue + 1.0/3.0); +// g = hue2rgb(p, q, hue); +// b = hue2rgb(p, q, hue - 1.0/3.0); +// } +// +// setColorRGB(led, (byte)(255.0*r), (byte)(255.0*g), (byte)(255.0*b)); +//} + +// -------------------------------------------------------------------------------------- + +//float hue2rgb(float p, float q, float t) +//{ +// if (t < 0.0) +// t += 1.0; +// if(t > 1.0) +// t -= 1.0; +// if(t < 1.0/6.0) +// return p + (q - p) * 6.0 * t; +// if(t < 1.0/2.0) +// return q; +// if(t < 2.0/3.0) +// return p + (q - p) * (2.0/3.0 - t) * 6.0; +// +// return p; +//} + +byte ChainableLED::getNumLeds() +{ + return _num_leds; +} + +bool ChainableLED::ready() +{ + return _clk_pin != 0; +} diff --git a/Firmware/Source/grovepi/src/ChainableLED.h b/Firmware/Source/grovepi/src/ChainableLED.h new file mode 100644 index 0000000..0ff6def --- /dev/null +++ b/Firmware/Source/grovepi/src/ChainableLED.h @@ -0,0 +1,68 @@ +/* +Copyright (C) 2012 Paulo Marques (pjp.marques@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * Library for controlling a chain of RGB LEDs based on the P9813 protocol. + * E.g., supports the Grove Chainable RGB LED product. + * + * Information about the P9813 protocol obtained from: + * http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Chainable_RGB_LED + */ + + + +#ifndef __ChainableLED_h__ +#define __ChainableLED_h__ + +#include "Arduino.h" + +#define _CL_RED 0 +#define _CL_GREEN 1 +#define _CL_BLUE 2 +#define _CLK_PULSE_DELAY 20 + +class ChainableLED +{ +public: + // ChainableLED(byte clk_pin, byte data_pin, byte number_of_leds); + void begin(byte clk_pin, byte data_pin, byte number_of_leds); + // ~begin(); + + void setColorRGB(byte led, byte red, byte green, byte blue); + //void setColorHSB(byte led, float hue, float saturation, float brightness); + + byte getNumLeds(); + bool ready(); + +private: + byte _clk_pin; + byte _data_pin; + byte _num_leds; + + byte* _led_state; + + void clk(void); + void sendByte(byte b); + void sendColor(byte red, byte green, byte blue); +}; + +#endif + diff --git a/Firmware/Source/grovepi/src/DHT.cpp b/Firmware/Source/grovepi/src/DHT.cpp new file mode 100644 index 0000000..c4a1fa6 --- /dev/null +++ b/Firmware/Source/grovepi/src/DHT.cpp @@ -0,0 +1,201 @@ +/* DHT library + +MIT license +written by Adafruit Industries +*/ + +#include "DHT.h" +/* +DHT::DHT(uint8_t pin, uint8_t type, uint8_t count) { + _pin = pin; + _type = type; + _count = count; + firstreading = true; +} +*/ +void DHT::begin(uint8_t pin, uint8_t type, uint8_t count) { + // set up the pins! + _pin = pin; + _type = type; + _count = count; + firstreading = true; + pinMode(_pin, INPUT); + digitalWrite(_pin, HIGH); + _lastreadtime = 0; +} + +//boolean S == Scale. True == Farenheit; False == Celcius +float DHT::readTemperature(bool S) { + float f; + + if (read()) { + switch (_type) { + case DHT11: + f = data[2]; + if(S) + f = convertCtoF(f); + + return f; + case DHT22: + case DHT21: + f = data[2] & 0x7F; + f *= 256; + f += data[3]; + f /= 10; + if (data[2] & 0x80) + f *= -1; + if(S) + f = convertCtoF(f); + + return f; + } + } + Serial.print("Read fail"); + return NAN; +} + +float DHT::convertCtoF(float c) { + return c * 9 / 5 + 32; +} + +float DHT::readHumidity(void) { + float f; + if (read()) { + switch (_type) { + case DHT11: + f = data[0]; + return f; + case DHT22: + case DHT21: + f = data[0]; + f *= 256; + f += data[1]; + f /= 10; + return f; + } + } + Serial.print("Read fail"); + return NAN; +} + + +boolean DHT::read(void) { + uint8_t laststate = HIGH; + uint8_t counter = 0; + uint8_t j = 0, i; + unsigned long currenttime; + + // pull the pin high and wait 250 milliseconds + digitalWrite(_pin, HIGH); + delay(250); + + currenttime = millis(); + if (currenttime < _lastreadtime) { + // ie there was a rollover + _lastreadtime = 0; + } + if (!firstreading && ((currenttime - _lastreadtime) < 2000)) { + return true; // return last correct measurement + //delay(2000 - (currenttime - _lastreadtime)); + } + firstreading = false; + /* + Serial.print("Currtime: "); Serial.print(currenttime); + Serial.print(" Lasttime: "); Serial.print(_lastreadtime); + */ + _lastreadtime = millis(); + + data[0] = data[1] = data[2] = data[3] = data[4] = 0; + + // now pull it low for ~20 milliseconds + pinMode(_pin, OUTPUT); + digitalWrite(_pin, LOW); + delay(20); + cli(); + digitalWrite(_pin, HIGH); + delayMicroseconds(40); + pinMode(_pin, INPUT); + + // read in timings + for ( i=0; i< MAXTIMINGS; i++) { + counter = 0; + while (digitalRead(_pin) == laststate) { + counter++; + delayMicroseconds(1); + if (counter == 255) { + break; + } + } + laststate = digitalRead(_pin); + + if (counter == 255) break; + + // ignore first 3 transitions + if ((i >= 4) && (i%2 == 0)) { + // shove each bit into the storage bytes + data[j/8] <<= 1; + if (counter > _count) + data[j/8] |= 1; + j++; + } + + } + + sei(); + + /* + Serial.println(j, DEC); + Serial.print(data[0], HEX); Serial.print(", "); + Serial.print(data[1], HEX); Serial.print(", "); + Serial.print(data[2], HEX); Serial.print(", "); + Serial.print(data[3], HEX); Serial.print(", "); + Serial.print(data[4], HEX); Serial.print(" =? "); + Serial.println(data[0] + data[1] + data[2] + data[3], HEX); + */ + + // check we read 40 bits and that the checksum matches + if ((j >= 40) && + (data[4] == ((data[0] + data[1] + data[2] + data[3]) & 0xFF)) ) { + return true; + } + + return false; +} + +float* DHT::readTempHum(bool scale) +{ + if(!read()) + return NULL; + + switch(_type) { + case DHT11: + // temperature + buffer[0] = data[2]; + if(scale) + buffer[0] = convertCtoF(buffer[0]); + + // humidity + buffer[1] = data[0]; + break; + case DHT22: + case DHT21: + // temperature + buffer[0] = data[2] & 0x7F; + buffer[0] *= 256; + buffer[0] += data[3]; + buffer[0] /= 10; + if (data[2] & 0x80) + buffer[0] *= -1; + if(scale) + buffer[0] = convertCtoF(buffer[0]); + + // humidity + buffer[1] = data[0]; + buffer[1] *= 256; + buffer[1] += data[1]; + buffer[1] /= 10; + break; + } + + return &buffer[0]; +} diff --git a/Firmware/Source/grovepi/src/DHT.h b/Firmware/Source/grovepi/src/DHT.h new file mode 100644 index 0000000..568e7f3 --- /dev/null +++ b/Firmware/Source/grovepi/src/DHT.h @@ -0,0 +1,40 @@ +#ifndef DHT_H +#define DHT_H +#if ARDUINO >= 100 + #include "Arduino.h" +#else + #include "WProgram.h" +#endif + +/* DHT library + +MIT license +written by Adafruit Industries +*/ + +// how many timing transitions we need to keep track of. 2 * number bits + extra +#define MAXTIMINGS 85 + +#define DHT11 11 +#define DHT22 22 +#define DHT21 21 +#define AM2301 21 + +class DHT { + private: + uint8_t data[6]; + uint8_t _pin, _type, _count; + boolean read(void); + unsigned long _lastreadtime; + boolean firstreading; + float buffer[2]; + + public: + //DHT(uint8_t pin, uint8_t type, uint8_t count=6); + void begin(uint8_t pin, uint8_t type, uint8_t count=6); + float readTemperature(bool S=false); + float convertCtoF(float); + float readHumidity(void); + float* readTempHum(bool scale = false); +}; +#endif diff --git a/Firmware/Source/grovepi/src/Grove_LED_Bar.cpp b/Firmware/Source/grovepi/src/Grove_LED_Bar.cpp new file mode 100644 index 0000000..36914df --- /dev/null +++ b/Firmware/Source/grovepi/src/Grove_LED_Bar.cpp @@ -0,0 +1,175 @@ +/* + LED bar library V2.0 + 2010 Copyright (c) Seeed Technology Inc. All right reserved. + + Original Author: LG + + Modify: Loovee, 2014-2-26 + User can choose which Io to be used. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include +#include "Grove_LED_Bar.h" + +// Initialise +//Grove_LED_Bar::Grove_LED_Bar(unsigned char pinClock, unsigned char pinData, bool greenToRed) +void Grove_LED_Bar::begin(unsigned char pinClock, unsigned char pinData, bool greenToRed) +{ + __pinClock = pinClock; + __pinData = pinData; + __greenToRed = greenToRed; // ascending or decending + + __state = 0x00; // persist state so individual leds can be toggled + + pinMode(__pinClock, OUTPUT); + pinMode(__pinData, OUTPUT); +} + + +// Send the latch command +void Grove_LED_Bar::latchData() +{ + digitalWrite(__pinData, LOW); + delayMicroseconds(10); + + for (unsigned char i = 0; i < 4; i++) + { + digitalWrite(__pinData, HIGH); + digitalWrite(__pinData, LOW); + } +} + + +// Send 16 bits of data +void Grove_LED_Bar::sendData(unsigned int data) +{ + for (unsigned char i = 0; i < 16; i++) + { + unsigned int state = (data & 0x8000) ? HIGH : LOW; + digitalWrite(__pinData, state); + + state = digitalRead(__pinClock) ? LOW : HIGH; + digitalWrite(__pinClock, state); + + data <<= 1; + } +} + + +// Change the orientation +// Green to red, or red to green +void Grove_LED_Bar::setGreenToRed(bool greenToRed) +{ + __greenToRed = greenToRed; + + setBits(__state); +} + + +// Set level (0-10) +// Level 0 means all leds off +// Level 10 means all leds on +void Grove_LED_Bar::setLevel(unsigned char level) +{ + level = max(0, min(10, level)); + + // Set level number of bits from the left to 1 + __state = ~(~0 << level); + + setBits(__state); +} + + +// Set a single led +// led (1-10) +// state (0=off, 1=on) +void Grove_LED_Bar::setLed(unsigned char led, bool state) +{ + led = max(1, min(10, led)); + + // Zero based index 0-9 for bitwise operations + led--; + + // Bitwise OR or bitwise AND + __state = state ? (__state | (0x01<> i) & 0x01 ? ON : OFF); + } + } + + // Two extra empty bits for padding the command to the correct length + sendData(0x00); + sendData(0x00); + + latchData(); +} + + +// Return the current state +unsigned int Grove_LED_Bar::getBits() +{ + return __state; +} + +// Has this instance been initialised? +bool Grove_LED_Bar::ready() +{ + return __pinClock != 0; +} diff --git a/Firmware/Source/grovepi/src/Grove_LED_Bar.h b/Firmware/Source/grovepi/src/Grove_LED_Bar.h new file mode 100644 index 0000000..8dc7989 --- /dev/null +++ b/Firmware/Source/grovepi/src/Grove_LED_Bar.h @@ -0,0 +1,59 @@ +/* + LED bar library V2.0 + 2010 Copyright (c) Seeed Technology Inc. All right reserved. + + Original Author: LG + + Modify: Loovee, 2014-2-26 + User can choose which Io to be used. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef Grove_LED_Bar_H +#define Grove_LED_Bar_H + +#define CMDMODE 0x00 // Work on 8-bit mode +#define ON 0xff // 8-bit 1 data +#define OFF 0x00 // 8-bit 0 data + +class Grove_LED_Bar +{ + +private: + + unsigned int __pinClock; // Clock pin + unsigned int __pinData; // Data pin + bool __greenToRed; // Orientation (0 = red to green, 1 = green to red) + unsigned int __state; // Led state + + void sendData(unsigned int data); // Send a word to led bar + void latchData(void); // Load data into the latch register + +public: + + //Grove_LED_Bar(unsigned char pinClock, unsigned char pinData, bool greenToRed); // Initialize + void begin(unsigned char pinClock, unsigned char pinData, bool greenToRed); // Initialize + + void setGreenToRed(bool greenToRed); // (Re)set orientation + void setLevel(unsigned char level); // Set level + void setLed(unsigned char led, bool state); // Set a single led + void toggleLed(unsigned char led); // Toggle a single led + void setBits(unsigned int bits); // Toggle leds to match given bits + unsigned int getBits(); // Get the current state + bool ready(); // Has this instance been initialised? +}; + +#endif diff --git a/Firmware/Source/grovepi/src/IRrecvDemo.ino b/Firmware/Source/grovepi/src/IRrecvDemo.ino new file mode 100644 index 0000000..b4ca8a0 --- /dev/null +++ b/Firmware/Source/grovepi/src/IRrecvDemo.ino @@ -0,0 +1,38 @@ +// /* +// * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv +// * An IR detector/demodulator must be connected to the input RECV_PIN. +// * Version 0.1 July, 2009 +// * Copyright 2009 Ken Shirriff +// * http://arcfn.com +// */ +// +// #include +// +// int RECV_PIN = 3; +// int BLINK_PIN = 2; +// +// IRrecv irrecv(RECV_PIN, BLINK_PIN); +// +// decode_results results; +// +// void setup() +// { +// Serial.begin(9600); +// // In case the interrupt driver crashes on setup, give a clue +// // to the user what's going on. +// Serial.println("Enabling IRin"); +// irrecv.enableIRIn(); // Start the receiver +// Serial.println("Enabled IRin"); +// } +// +// void loop() { +// if (irrecv.decode(&results)) { +// Serial.print(results.decode_type); +// Serial.print(" "); +// Serial.print(results.address, HEX); +// Serial.print(" "); +// Serial.println(results.value, HEX); +// irrecv.resume(); // Receive the next value +// } +// delay(100); +// } diff --git a/Firmware/Source/grovepi/src/IRremote.cpp b/Firmware/Source/grovepi/src/IRremote.cpp new file mode 100644 index 0000000..e811cfc --- /dev/null +++ b/Firmware/Source/grovepi/src/IRremote.cpp @@ -0,0 +1,200 @@ +//****************************************************************************** +// IRremote +// Version 2.0.1 June, 2015 +// Copyright 2009 Ken Shirriff +// For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html +// +// Modified by Paul Stoffregen to support other boards and timers +// Modified by Mitra Ardron +// Added Sanyo and Mitsubishi controllers +// Modified Sony to spot the repeat codes that some Sony's send +// +// Interrupt code based on NECIRrcv by Joe Knapp +// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 +// Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ +// +// JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) +// LG added by Darryl Smith (based on the JVC protocol) +// Whynter A/C ARC-110WD added by Francesco Meschia +//****************************************************************************** + +// Defining IR_GLOBAL here allows us to declare the instantiation of global variables +#define IR_GLOBAL +# include "IRremote.h" +# include "IRremoteInt.h" +#undef IR_GLOBAL + +#ifndef IR_TIMER_USE_ESP32 +#include +#endif + + +//+============================================================================= +// The match functions were (apparently) originally MACROs to improve code speed +// (although this would have bloated the code) hence the names being CAPS +// A later release implemented debug output and so they needed to be converted +// to functions. +// I tried to implement a dual-compile mode (DEBUG/non-DEBUG) but for some +// reason, no matter what I did I could not get them to function as macros again. +// I have found a *lot* of bugs in the Arduino compiler over the last few weeks, +// and I am currently assuming that one of these bugs is my problem. +// I may revisit this code at a later date and look at the assembler produced +// in a hope of finding out what is going on, but for now they will remain as +// functions even in non-DEBUG mode +// +int MATCH (int measured, int desired) +{ + DBG_PRINT(F("Testing: ")); + DBG_PRINT(TICKS_LOW(desired), DEC); + DBG_PRINT(F(" <= ")); + DBG_PRINT(measured, DEC); + DBG_PRINT(F(" <= ")); + DBG_PRINT(TICKS_HIGH(desired), DEC); + + bool passed = ((measured >= TICKS_LOW(desired)) && (measured <= TICKS_HIGH(desired))); + if (passed) + DBG_PRINTLN(F("?; passed")); + else + DBG_PRINTLN(F("?; FAILED")); + return passed; +} + +//+======================================================== +// Due to sensor lag, when received, Marks tend to be 100us too long +// +int MATCH_MARK (int measured_ticks, int desired_us) +{ + DBG_PRINT(F("Testing mark (actual vs desired): ")); + DBG_PRINT(measured_ticks * USECPERTICK, DEC); + DBG_PRINT(F("us vs ")); + DBG_PRINT(desired_us, DEC); + DBG_PRINT("us"); + DBG_PRINT(": "); + DBG_PRINT(TICKS_LOW(desired_us + MARK_EXCESS) * USECPERTICK, DEC); + DBG_PRINT(F(" <= ")); + DBG_PRINT(measured_ticks * USECPERTICK, DEC); + DBG_PRINT(F(" <= ")); + DBG_PRINT(TICKS_HIGH(desired_us + MARK_EXCESS) * USECPERTICK, DEC); + + bool passed = ((measured_ticks >= TICKS_LOW (desired_us + MARK_EXCESS)) + && (measured_ticks <= TICKS_HIGH(desired_us + MARK_EXCESS))); + if (passed) + DBG_PRINTLN(F("?; passed")); + else + DBG_PRINTLN(F("?; FAILED")); + return passed; +} + +//+======================================================== +// Due to sensor lag, when received, Spaces tend to be 100us too short +// +int MATCH_SPACE (int measured_ticks, int desired_us) +{ + DBG_PRINT(F("Testing space (actual vs desired): ")); + DBG_PRINT(measured_ticks * USECPERTICK, DEC); + DBG_PRINT(F("us vs ")); + DBG_PRINT(desired_us, DEC); + DBG_PRINT("us"); + DBG_PRINT(": "); + DBG_PRINT(TICKS_LOW(desired_us - MARK_EXCESS) * USECPERTICK, DEC); + DBG_PRINT(F(" <= ")); + DBG_PRINT(measured_ticks * USECPERTICK, DEC); + DBG_PRINT(F(" <= ")); + DBG_PRINT(TICKS_HIGH(desired_us - MARK_EXCESS) * USECPERTICK, DEC); + + bool passed = ((measured_ticks >= TICKS_LOW (desired_us - MARK_EXCESS)) + && (measured_ticks <= TICKS_HIGH(desired_us - MARK_EXCESS))); + if (passed) + DBG_PRINTLN(F("?; passed")); + else + DBG_PRINTLN(F("?; FAILED")); + return passed; +} + +//+============================================================================= +// Interrupt Service Routine - Fires every 50uS +// TIMER2 interrupt code to collect raw data. +// Widths of alternating SPACE, MARK are recorded in rawbuf. +// Recorded in ticks of 50uS [microseconds, 0.000050 seconds] +// 'rawlen' counts the number of entries recorded so far. +// First entry is the SPACE between transmissions. +// As soon as a the first [SPACE] entry gets long: +// Ready is set; State switches to IDLE; Timing of SPACE continues. +// As soon as first MARK arrives: +// Gap width is recorded; Ready is cleared; New logging starts +// +#ifdef IR_TIMER_USE_ESP32 +void IRTimer() +#else +ISR (TIMER_INTR_NAME) +#endif +{ + TIMER_RESET; + + // Read if IR Receiver -> SPACE [xmt LED off] or a MARK [xmt LED on] + // digitalRead() is very slow. Optimisation is possible, but makes the code unportable + uint8_t irdata = (uint8_t)digitalRead(irparams.recvpin); + + irparams.timer++; // One more 50uS tick + if (irparams.rawlen >= RAWBUF) irparams.rcvstate = STATE_OVERFLOW ; // Buffer overflow + + switch(irparams.rcvstate) { + //...................................................................... + case STATE_IDLE: // In the middle of a gap + if (irdata == MARK) { + if (irparams.timer < GAP_TICKS) { // Not big enough to be a gap. + irparams.timer = 0; + + } else { + // Gap just ended; Record duration; Start recording transmission + irparams.overflow = false; + irparams.rawlen = 0; + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_MARK; + } + } + break; + //...................................................................... + case STATE_MARK: // Timing Mark + if (irdata == SPACE) { // Mark ended; Record time + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_SPACE; + } + break; + //...................................................................... + case STATE_SPACE: // Timing Space + if (irdata == MARK) { // Space just ended; Record time + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_MARK; + + } else if (irparams.timer > GAP_TICKS) { // Space + // A long Space, indicates gap between codes + // Flag the current code as ready for processing + // Switch to STOP + // Don't reset timer; keep counting Space width + irparams.rcvstate = STATE_STOP; + } + break; + //...................................................................... + case STATE_STOP: // Waiting; Measuring Gap + if (irdata == MARK) irparams.timer = 0 ; // Reset gap timer + break; + //...................................................................... + case STATE_OVERFLOW: // Flag up a read overflow; Stop the State Machine + irparams.overflow = true; + irparams.rcvstate = STATE_STOP; + break; + } + + // If requested, flash LED while receiving IR data + if (irparams.blinkflag) { + if (irdata == MARK) + if (irparams.blinkpin) digitalWrite(irparams.blinkpin, HIGH); // Turn user defined pin LED on + else BLINKLED_ON() ; // if no user defined LED pin, turn default LED pin for the hardware on + else if (irparams.blinkpin) digitalWrite(irparams.blinkpin, LOW); // Turn user defined pin LED on + else BLINKLED_OFF() ; // if no user defined LED pin, turn default LED pin for the hardware on + } +} diff --git a/Firmware/Source/grovepi/src/IRremote.h b/Firmware/Source/grovepi/src/IRremote.h new file mode 100644 index 0000000..94ddbc9 --- /dev/null +++ b/Firmware/Source/grovepi/src/IRremote.h @@ -0,0 +1,347 @@ + +//****************************************************************************** +// IRremote +// Version 2.0.1 June, 2015 +// Copyright 2009 Ken Shirriff +// For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html +// Edited by Mitra to add new controller SANYO +// +// Interrupt code based on NECIRrcv by Joe Knapp +// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 +// Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ +// +// JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) +// LG added by Darryl Smith (based on the JVC protocol) +// Whynter A/C ARC-110WD added by Francesco Meschia +//****************************************************************************** + +#ifndef IRremote_h +#define IRremote_h + +//------------------------------------------------------------------------------ +// The ISR header contains several useful macros the user may wish to use +// +#include "IRremoteInt.h" + +//------------------------------------------------------------------------------ +// Supported IR protocols +// Each protocol you include costs memory and, during decode, costs time +// Disable (set to 0) all the protocols you do not need/want! +// +#define DECODE_RC5 1 +#define SEND_RC5 1 + +#define DECODE_RC6 1 +#define SEND_RC6 1 + +#define DECODE_NEC 1 +#define SEND_NEC 1 + +#define DECODE_SONY 1 +#define SEND_SONY 1 + +#define DECODE_PANASONIC 1 +#define SEND_PANASONIC 1 + +#define DECODE_JVC 1 +#define SEND_JVC 1 + +#define DECODE_SAMSUNG 1 +#define SEND_SAMSUNG 1 + +#define DECODE_WHYNTER 1 +#define SEND_WHYNTER 1 + +#define DECODE_AIWA_RC_T501 1 +#define SEND_AIWA_RC_T501 1 + +#define DECODE_LG 1 +#define SEND_LG 1 + +#define DECODE_SANYO 1 +#define SEND_SANYO 0 // NOT WRITTEN + +#define DECODE_MITSUBISHI 1 +#define SEND_MITSUBISHI 0 // NOT WRITTEN + +#define DECODE_DISH 0 // NOT WRITTEN +#define SEND_DISH 1 + +#define DECODE_SHARP 0 // NOT WRITTEN +#define SEND_SHARP 1 + +#define DECODE_DENON 1 +#define SEND_DENON 1 + +#define DECODE_PRONTO 0 // This function doe not logically make sense +#define SEND_PRONTO 1 + +#define DECODE_LEGO_PF 0 // NOT WRITTEN +#define SEND_LEGO_PF 1 + +//------------------------------------------------------------------------------ +// When sending a Pronto code we request to send either the "once" code +// or the "repeat" code +// If the code requested does not exist we can request to fallback on the +// other code (the one we did not explicitly request) +// +// I would suggest that "fallback" will be the standard calling method +// The last paragraph on this page discusses the rationale of this idea: +// http://www.remotecentral.com/features/irdisp2.htm +// +#define PRONTO_ONCE false +#define PRONTO_REPEAT true +#define PRONTO_FALLBACK true +#define PRONTO_NOFALLBACK false + +//------------------------------------------------------------------------------ +// An enumerated list of all supported formats +// You do NOT need to remove entries from this list when disabling protocols! +// +typedef + enum { + UNKNOWN = -1, + UNUSED = 0, + RC5, + RC6, + NEC, + SONY, + PANASONIC, + JVC, + SAMSUNG, + WHYNTER, + AIWA_RC_T501, + LG, + SANYO, + MITSUBISHI, + DISH, + SHARP, + DENON, + PRONTO, + LEGO_PF, + } +decode_type_t; + +//------------------------------------------------------------------------------ +// Set DEBUG to 1 for lots of lovely debug output +// +#define DEBUG 0 + +//------------------------------------------------------------------------------ +// Debug directives +// +#if DEBUG +# define DBG_PRINT(...) Serial.print(__VA_ARGS__) +# define DBG_PRINTLN(...) Serial.println(__VA_ARGS__) +#else +# define DBG_PRINT(...) +# define DBG_PRINTLN(...) +#endif + +//------------------------------------------------------------------------------ +// Mark & Space matching functions +// +int MATCH (int measured, int desired) ; +int MATCH_MARK (int measured_ticks, int desired_us) ; +int MATCH_SPACE (int measured_ticks, int desired_us) ; + +//------------------------------------------------------------------------------ +// Results returned from the decoder +// +class decode_results +{ + public: + decode_type_t decode_type; // UNKNOWN, NEC, SONY, RC5, ... + unsigned int address; // Used by Panasonic & Sharp [16-bits] + unsigned long value; // Decoded value [max 32-bits] + int bits; // Number of bits in decoded value + volatile unsigned int *rawbuf; // Raw intervals in 50uS ticks + int rawlen; // Number of records in rawbuf + int overflow; // true iff IR raw code too long +}; + +//------------------------------------------------------------------------------ +// Decoded value for NEC when a repeat code is received +// +#define REPEAT 0xFFFFFFFF + +//------------------------------------------------------------------------------ +// Main class for receiving IR +// +class IRrecv +{ + public: + IRrecv () ; + IRrecv (int recvpin) ; + IRrecv (int recvpin, int blinkpin); + + void blink13 (int blinkflag) ; + int decode (decode_results *results) ; + void enableIRIn ( ) ; + bool isIdle ( ) ; + void resume ( ) ; + void disableIR ( ) ; + void setRecvpin (int recvpin) ; + + private: + long decodeHash (decode_results *results) ; + int compare (unsigned int oldval, unsigned int newval) ; + + //...................................................................... +# if (DECODE_RC5 || DECODE_RC6) + // This helper function is shared by RC5 and RC6 + int getRClevel (decode_results *results, int *offset, int *used, int t1) ; +# endif +# if DECODE_RC5 + bool decodeRC5 (decode_results *results) ; +# endif +# if DECODE_RC6 + bool decodeRC6 (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_NEC + bool decodeNEC (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_SONY + bool decodeSony (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_PANASONIC + bool decodePanasonic (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_JVC + bool decodeJVC (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_SAMSUNG + bool decodeSAMSUNG (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_WHYNTER + bool decodeWhynter (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_AIWA_RC_T501 + bool decodeAiwaRCT501 (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_LG + bool decodeLG (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_SANYO + bool decodeSanyo (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_MITSUBISHI + bool decodeMitsubishi (decode_results *results) ; +# endif + //...................................................................... +# if DECODE_DISH + bool decodeDish (decode_results *results) ; // NOT WRITTEN +# endif + //...................................................................... +# if DECODE_SHARP + bool decodeSharp (decode_results *results) ; // NOT WRITTEN +# endif + //...................................................................... +# if DECODE_DENON + bool decodeDenon (decode_results *results) ; +# endif +//...................................................................... +# if DECODE_LEGO_PF + bool decodeLegoPowerFunctions (decode_results *results) ; +# endif +} ; + +//------------------------------------------------------------------------------ +// Main class for sending IR +// +class IRsend +{ + public: + IRsend () { } + + void custom_delay_usec (unsigned long uSecs); + void enableIROut (int khz) ; + void mark (unsigned int usec) ; + void space (unsigned int usec) ; + void sendRaw (const unsigned int buf[], unsigned int len, unsigned int hz) ; + + //...................................................................... +# if SEND_RC5 + void sendRC5 (unsigned long data, int nbits) ; +# endif +# if SEND_RC6 + void sendRC6 (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_NEC + void sendNEC (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_SONY + void sendSony (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_PANASONIC + void sendPanasonic (unsigned int address, unsigned long data) ; +# endif + //...................................................................... +# if SEND_JVC + // JVC does NOT repeat by sending a separate code (like NEC does). + // The JVC protocol repeats by skipping the header. + // To send a JVC repeat signal, send the original code value + // and set 'repeat' to true + void sendJVC (unsigned long data, int nbits, bool repeat) ; +# endif + //...................................................................... +# if SEND_SAMSUNG + void sendSAMSUNG (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_WHYNTER + void sendWhynter (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_AIWA_RC_T501 + void sendAiwaRCT501 (int code) ; +# endif + //...................................................................... +# if SEND_LG + void sendLG (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_SANYO + void sendSanyo ( ) ; // NOT WRITTEN +# endif + //...................................................................... +# if SEND_MISUBISHI + void sendMitsubishi ( ) ; // NOT WRITTEN +# endif + //...................................................................... +# if SEND_DISH + void sendDISH (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_SHARP + void sendSharpRaw (unsigned long data, int nbits) ; + void sendSharp (unsigned int address, unsigned int command) ; +# endif + //...................................................................... +# if SEND_DENON + void sendDenon (unsigned long data, int nbits) ; +# endif + //...................................................................... +# if SEND_PRONTO + void sendPronto (char* code, bool repeat, bool fallback) ; +# endif +//...................................................................... +# if SEND_LEGO_PF + void sendLegoPowerFunctions (uint16_t data, bool repeat = true) ; +# endif +} ; + +#endif diff --git a/Firmware/Source/grovepi/src/IRremoteInt.h b/Firmware/Source/grovepi/src/IRremoteInt.h new file mode 100644 index 0000000..1c319ac --- /dev/null +++ b/Firmware/Source/grovepi/src/IRremoteInt.h @@ -0,0 +1,113 @@ +//****************************************************************************** +// IRremote +// Version 2.0.1 June, 2015 +// Copyright 2009 Ken Shirriff +// For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html +// +// Modified by Paul Stoffregen to support other boards and timers +// +// Interrupt code based on NECIRrcv by Joe Knapp +// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 +// Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ +// +// JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) +// Whynter A/C ARC-110WD added by Francesco Meschia +//****************************************************************************** + +#ifndef IRremoteint_h +#define IRremoteint_h + +//------------------------------------------------------------------------------ +// Include the right Arduino header +// +#if defined(ARDUINO) && (ARDUINO >= 100) +# include +#else +# if !defined(IRPRONTO) +# include +# endif +#endif + +//------------------------------------------------------------------------------ +// This handles definition and access to global variables +// +#ifdef IR_GLOBAL +# define EXTERN +#else +# define EXTERN extern +#endif + +//------------------------------------------------------------------------------ +// Information for the Interrupt Service Routine +// +#define RAWBUF 101 // Maximum length of raw duration buffer + +typedef + struct { + // The fields are ordered to reduce memory over caused by struct-padding + uint8_t rcvstate; // State Machine state + uint8_t recvpin; // Pin connected to IR data from detector + uint8_t blinkpin; + uint8_t blinkflag; // true -> enable blinking of pin on IR processing + uint8_t rawlen; // counter of entries in rawbuf + unsigned int timer; // State timer, counts 50uS ticks. + unsigned int rawbuf[RAWBUF]; // raw data + uint8_t overflow; // Raw buffer overflow occurred + } +irparams_t; + +// ISR State-Machine : Receiver States +#define STATE_IDLE 2 +#define STATE_MARK 3 +#define STATE_SPACE 4 +#define STATE_STOP 5 +#define STATE_OVERFLOW 6 + +// Allow all parts of the code access to the ISR data +// NB. The data can be changed by the ISR at any time, even mid-function +// Therefore we declare it as "volatile" to stop the compiler/CPU caching it +EXTERN volatile irparams_t irparams; + +//------------------------------------------------------------------------------ +// Defines for setting and clearing register bits +// +#ifndef cbi +# define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif + +#ifndef sbi +# define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +//------------------------------------------------------------------------------ +// Pulse parms are ((X*50)-100) for the Mark and ((X*50)+100) for the Space. +// First MARK is the one after the long gap +// Pulse parameters in uSec +// + +// Due to sensor lag, when received, Marks tend to be 100us too long and +// Spaces tend to be 100us too short +#define MARK_EXCESS 100 + +// Upper and Lower percentage tolerances in measurements +#define TOLERANCE 25 +#define LTOL (1.0 - (TOLERANCE/100.)) +#define UTOL (1.0 + (TOLERANCE/100.)) + +// Minimum gap between IR transmissions +#define _GAP 5000 +#define GAP_TICKS (_GAP/USECPERTICK) + +#define TICKS_LOW(us) ((int)(((us)*LTOL/USECPERTICK))) +#define TICKS_HIGH(us) ((int)(((us)*UTOL/USECPERTICK + 1))) + +//------------------------------------------------------------------------------ +// IR detector output is active low +// +#define MARK 0 +#define SPACE 1 + +// All board specific stuff has been moved to its own file, included here. +#include "boarddefs.h" + +#endif diff --git a/Firmware/Source/grovepi/src/TM1637.cpp b/Firmware/Source/grovepi/src/TM1637.cpp new file mode 100644 index 0000000..1f01fd2 --- /dev/null +++ b/Firmware/Source/grovepi/src/TM1637.cpp @@ -0,0 +1,205 @@ +// Author: avishorp@gmail.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +extern "C" { + #include + #include + #include +} + +#include "TM1637.h" +#include + +#define TM1637_I2C_COMM1 0x40 +#define TM1637_I2C_COMM2 0xC0 +#define TM1637_I2C_COMM3 0x80 + +// +// A +// --- +// F | | B +// -G- +// E | | C +// --- +// D +const uint8_t digitToSegment[] = { + //XGFEDCBA <- one bit for each segment above and X is the colon + 0b00111111, // 0 + 0b00000110, // 1 + 0b01011011, // 2 + 0b01001111, // 3 + 0b01100110, // 4 + 0b01101101, // 5 + 0b01111101, // 6 + 0b00000111, // 7 + 0b01111111, // 8 + 0b01101111, // 9 + 0b01110111, // A + 0b01111100, // b + 0b00111001, // C + 0b01011110, // d + 0b01111001, // E + 0b01110001 // F +}; + + +//TM1637::TM1637(uint8_t pinClk, uint8_t pinDIO) +void TM1637::begin(uint8_t pinClk, uint8_t pinDIO) +{ + // Copy the pin numbers + m_pinClk = pinClk; + m_pinDIO = pinDIO; + + // Set the pin direction and default value. + // Both pins are set as inputs, allowing the pull-up resistors to pull them up + pinMode(m_pinClk, INPUT); + pinMode(m_pinDIO, INPUT); + digitalWrite(m_pinClk, LOW); + digitalWrite(m_pinDIO, LOW); +} + +void TM1637::setBrightness(uint8_t brightness) +{ + m_brightness = constrain(brightness, 0, 7) + 8; +} + +void TM1637::setSegments(const uint8_t segments[], uint8_t length, uint8_t pos) +{ + // Write COMM1 + start(); + writeByte(TM1637_I2C_COMM1); + stop(); + + // Write COMM2 + first digit address + start(); + writeByte(TM1637_I2C_COMM2 + (pos & 0x03)); + + // Write the data bytes + for (uint8_t k = 0; k < length; k++) + writeByte(segments[k]); + + stop(); + + // Write COMM3 + brightness + start(); + writeByte(TM1637_I2C_COMM3 + m_brightness); + stop(); +} + +void TM1637::showNumberDec(int num, bool leading_zero, uint8_t length, uint8_t pos, bool colon) +{ + uint8_t digits[4]; + const static int divisors[] = { 1, 10, 100, 1000 }; + bool leading = true; + + for (int8_t k = 0; k < 4; k++) { + int divisor = divisors[4 - 1 - k]; + int d = num / divisor; + + if (d == 0) { + if (leading_zero || !leading || (k == 3)) + digits[k] = encodeDigit(d); + else + digits[k] = 0; + } + else { + digits[k] = encodeDigit(d); + num -= d * divisor; + leading = false; + } + if (colon && k == 1) { + digits[k] |= 0x80; + } + } + + setSegments(digits + (4 - length), length, pos); +} + +void TM1637::bitDelay() +{ + delayMicroseconds(50); +} + +void TM1637::start() +{ + pinMode(m_pinDIO, OUTPUT); + bitDelay(); +} + +void TM1637::stop() +{ + pinMode(m_pinDIO, OUTPUT); + bitDelay(); + pinMode(m_pinClk, INPUT); + bitDelay(); + pinMode(m_pinDIO, INPUT); + bitDelay(); +} + +bool TM1637::writeByte(uint8_t b) +{ + uint8_t data = b; + + // 8 Data Bits + for (uint8_t i = 0; i < 8; i++) { + // CLK low + pinMode(m_pinClk, OUTPUT); + bitDelay(); + + // Set data bit + if (data & 0x01) + pinMode(m_pinDIO, INPUT); + else + pinMode(m_pinDIO, OUTPUT); + + bitDelay(); + + // CLK high + pinMode(m_pinClk, INPUT); + bitDelay(); + data = data >> 1; + } + + // Wait for acknowledge + // CLK to zero + pinMode(m_pinClk, OUTPUT); + pinMode(m_pinDIO, INPUT); + bitDelay(); + + // CLK to high + pinMode(m_pinClk, INPUT); + bitDelay(); + uint8_t ack = digitalRead(m_pinDIO); + if (ack == 0) + pinMode(m_pinDIO, OUTPUT); + + bitDelay(); + pinMode(m_pinClk, OUTPUT); + bitDelay(); + + return ack; +} + +uint8_t TM1637::encodeDigit(uint8_t digit) +{ + return digitToSegment[digit & 0x0f]; +} + +// Has this instance been initialised? +bool TM1637::ready() +{ + return m_pinClk != 0; +} diff --git a/Firmware/Source/grovepi/src/TM1637.h b/Firmware/Source/grovepi/src/TM1637.h new file mode 100644 index 0000000..5feeda6 --- /dev/null +++ b/Firmware/Source/grovepi/src/TM1637.h @@ -0,0 +1,99 @@ +// Author: avishorp@gmail.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +#ifndef __TM1637__ +#define __TM1637__ + +#include + +#define SEG_A 0b00000001 +#define SEG_B 0b00000010 +#define SEG_C 0b00000100 +#define SEG_D 0b00001000 +#define SEG_E 0b00010000 +#define SEG_F 0b00100000 +#define SEG_G 0b01000000 + +class TM1637 { + +public: + //! Initialize a TM1637 object, setting the clock and data pins. + //! + //! @param pinClk - The number of the digital pin connected to the clock pin of the module + //! @param pinDIO - The number of the digital pin connected to the DIO pin of the module + //TM1637(uint8_t pinClk, uint8_t pinDIO); + void begin(uint8_t pinClk, uint8_t pinDIO); + + //! Sets the brightness of the display. + //! + //! The setting takes effect when a command is given to change the data being displayed. + //! + //! @param brightness A number from 0 (lowest brightness) to 7 (highest brightness) + void setBrightness(uint8_t brightness); + + //! Display arbitrary data on the module + //! + //! This function receives raw segment values as input and displays them. The segment data + //! is given as a byte array, each byte corresponding to a single digit. Within each byte, + //! bit 0 is segment A, bit 1 is segment B etc. + //! The function may either set the entire display or any desirable part on its own. The first + //! digit is given by the @ref pos argument with 0 being the leftmost digit. The @ref length + //! argument is the number of digits to be set. Other digits are not affected. + //! + //! @param segments An array of size @ref length containing the raw segment values + //! @param length The number of digits to be modified + //! @param pos The position from which to start the modification (0 - leftmost, 3 - rightmost) + void setSegments(const uint8_t segments[], uint8_t length = 4, uint8_t pos = 0); + + //! Displays a decimal number + //! + //! Displays the given argument as a decimal number + //! + //! @param num The number to be shown + //! @param leading_zero When true, leading zeros are displayed. Otherwise unnecessary digits are blank + //! @param length The number of digits to set. The user must ensure that the number to be shown + //! fits to the number of digits requested (for example, if two digits are to be displayed, + //! the number must be between 0 to 99) + //! @param pos The position least significant digit (0 - leftmost, 3 - rightmost) + //! @param colon When true, displays two dots between the 2nd and 3rd segments + void showNumberDec(int num, bool leading_zero = false, uint8_t length = 4, uint8_t pos = 0, bool colon = false); + + //! Translate a single digit into 7 segment code + //! + //! The method accepts a number between 0 - 15 and converts it to the + //! code required to display the number on a 7 segment display. + //! Numbers between 10-15 are converted to hexadecimal digits (A-F) + //! + //! @param digit A number between 0 to 15 + //! @return A code representing the 7 segment image of the digit (LSB - segment A; + //! bit 6 - segment G; bit 7 - always zero) + uint8_t encodeDigit(uint8_t digit); + + bool ready(); + +protected: + void bitDelay(); + void start(); + void stop(); + bool writeByte(uint8_t b); + +private: + uint8_t m_pinClk; + uint8_t m_pinDIO; + uint8_t m_brightness; +}; + +#endif // __TM1637__ diff --git a/Firmware/Source/grovepi/src/TimerOne.cpp b/Firmware/Source/grovepi/src/TimerOne.cpp new file mode 100644 index 0000000..974685b --- /dev/null +++ b/Firmware/Source/grovepi/src/TimerOne.cpp @@ -0,0 +1,208 @@ +/* + * Interrupt and PWM utilities for 16 bit Timer1 on ATmega168/328 + * Original code by Jesse Tane for http://labs.ideo.com August 2008 + * Modified March 2009 by Jérôme Despatis and Jesse Tane for ATmega328 support + * Modified June 2009 by Michael Polli and Jesse Tane to fix a bug in setPeriod() which caused the timer to stop + * Modified June 2011 by Lex Talionis to add a function to read the timer + * Modified Oct 2011 by Andrew Richards to avoid certain problems: + * - Add (long) assignments and casts to TimerOne::read() to ensure calculations involving tmp, ICR1 and TCNT1 aren't truncated + * - Ensure 16 bit registers accesses are atomic - run with interrupts disabled when accessing + * - Remove global enable of interrupts (sei())- could be running within an interrupt routine) + * - Disable interrupts whilst TCTN1 == 0. Datasheet vague on this, but experiment shows that overflow interrupt + * flag gets set whilst TCNT1 == 0, resulting in a phantom interrupt. Could just set to 1, but gets inaccurate + * at very short durations + * - startBottom() added to start counter at 0 and handle all interrupt enabling. + * - start() amended to enable interrupts + * - restart() amended to point at startBottom() + * Modiied 7:26 PM Sunday, October 09, 2011 by Lex Talionis + * - renamed start() to resume() to reflect it's actual role + * - renamed startBottom() to start(). This breaks some old code that expects start to continue counting where it left off + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * See Google Code project http://code.google.com/p/arduino-timerone/ for latest + */ +#ifndef TIMERONE_cpp +#define TIMERONE_cpp + +#include "TimerOne.h" + +TimerOne Timer1; // preinstatiate + +ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt +{ + Timer1.isrCallback(); +} + + +void TimerOne::initialize(long microseconds) +{ + TCCR1A = 0; // clear control register A + TCCR1B = _BV(WGM13); // set mode 8: phase and frequency correct pwm, stop the timer + setPeriod(microseconds); +} + + +void TimerOne::setPeriod(long microseconds) // AR modified for atomic access +{ + + long cycles = (F_CPU / 10000) * microseconds; // the counter runs backwards after TOP, interrupt is at BOTTOM so divide microseconds by 2 + if(cycles < RESOLUTION) clockSelectBits = _BV(CS10); // no prescale, full xtal + else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11); // prescale by /8 + else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11) | _BV(CS10); // prescale by /64 + else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12); // prescale by /256 + else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12) | _BV(CS10); // prescale by /1024 + else cycles = RESOLUTION - 1, clockSelectBits = _BV(CS12) | _BV(CS10); // request was out of bounds, set as maximum + + oldSREG = SREG; + cli(); // Disable interrupts for 16 bit register access + ICR1 = pwmPeriod = cycles; // ICR1 is TOP in p & f correct pwm mode + SREG = oldSREG; + + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); + TCCR1B |= clockSelectBits; // reset clock select register, and starts the clock +} + +void TimerOne::setPwmDuty(char pin, int duty) +{ + unsigned long dutyCycle = pwmPeriod; + + dutyCycle *= duty; + dutyCycle >>= 10; + + oldSREG = SREG; + cli(); + if(pin == 1 || pin == 9) OCR1A = dutyCycle; + else if(pin == 2 || pin == 10) OCR1B = dutyCycle; + SREG = oldSREG; +} + +void TimerOne::pwm(char pin, int duty, long microseconds) // expects duty cycle to be 10 bit (1024) +{ + if(microseconds > 0) setPeriod(microseconds); + if(pin == 1 || pin == 9) { + DDRB |= _BV(PORTB1); // sets data direction register for pwm output pin + TCCR1A |= _BV(COM1A1); // activates the output pin + } + else if(pin == 2 || pin == 10) { + DDRB |= _BV(PORTB2); + TCCR1A |= _BV(COM1B1); + } + setPwmDuty(pin, duty); + resume(); // Lex - make sure the clock is running. We don't want to restart the count, in case we are starting the second WGM + // and the first one is in the middle of a cycle +} + +void TimerOne::disablePwm(char pin) +{ + if(pin == 1 || pin == 9) TCCR1A &= ~_BV(COM1A1); // clear the bit that enables pwm on PB1 + else if(pin == 2 || pin == 10) TCCR1A &= ~_BV(COM1B1); // clear the bit that enables pwm on PB2 +} + +void TimerOne::attachInterrupt(void (*isr)(), long microseconds) +{ + if(microseconds > 0) setPeriod(microseconds); + isrCallback = isr; // register the user's callback with the real ISR + TIMSK1 = _BV(TOIE1); // sets the timer overflow interrupt enable bit + // AR - remove sei() - might be running with interrupts disabled (eg inside an ISR), so leave unchanged +// sei(); // ensures that interrupts are globally enabled + resume(); +} + +void TimerOne::detachInterrupt() +{ + TIMSK1 &= ~_BV(TOIE1); // clears the timer overflow interrupt enable bit +} + +void TimerOne::resume() // AR suggested +{ + TCCR1B |= clockSelectBits; +} + +void TimerOne::restart() // Depricated - Public interface to start at zero - Lex 10/9/2011 +{ + start(); +} + +void TimerOne::start() // AR addition, renamed by Lex to reflect it's actual role +{ + unsigned int tcnt1; + + TIMSK1 &= ~_BV(TOIE1); // AR added + GTCCR |= _BV(PSRSYNC); // AR added - reset prescaler (NB: shared with all 16 bit timers); + + oldSREG = SREG; // AR - save status register + cli(); // AR - Disable interrupts + TCNT1 = 0; + SREG = oldSREG; // AR - Restore status register + + do { // Nothing -- wait until timer moved on from zero - otherwise get a phantom interrupt + oldSREG = SREG; + cli(); + tcnt1 = TCNT1; + SREG = oldSREG; + } while (tcnt1==0); + +// TIFR1 = 0xff; // AR - Clear interrupt flags +// TIMSK1 = _BV(TOIE1); // sets the timer overflow interrupt enable bit +} + +void TimerOne::stop() +{ + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); // clears all clock selects bits +} + +unsigned long TimerOne::read() //returns the value of the timer in microseconds +{ //rember! phase and freq correct mode counts up to then down again + unsigned long tmp; // AR amended to hold more than 65536 (could be nearly double this) + unsigned int tcnt1; // AR added + + oldSREG= SREG; + cli(); + tmp=TCNT1; + SREG = oldSREG; + + char scale=0; + switch (clockSelectBits) + { + case 1:// no prescalse + scale=0; + break; + case 2:// x8 prescale + scale=3; + break; + case 3:// x64 + scale=6; + break; + case 4:// x256 + scale=8; + break; + case 5:// x1024 + scale=10; + break; + } + + do { // Nothing -- max delay here is ~1023 cycles. AR modified + oldSREG = SREG; + cli(); + tcnt1 = TCNT1; + SREG = oldSREG; + } while (tcnt1==tmp); //if the timer has not ticked yet + + //if we are counting down add the top value to how far we have counted down + tmp = ( (tcnt1>tmp) ? (tmp) : (long)(ICR1-tcnt1)+(long)ICR1 ); // AR amended to add casts and reuse previous TCNT1 + return ((tmp*1000L)/(F_CPU /1000L))<. + * + * See Google Code project http://code.google.com/p/arduino-timerone/ for latest + */ +#ifndef TIMERONE_h +#define TIMERONE_h + +#include +#include + +#define RESOLUTION 65536 // Timer1 is 16 bit + +class TimerOne +{ + public: + + // properties + unsigned int pwmPeriod; + unsigned char clockSelectBits; + char oldSREG; // To hold Status Register while ints disabled + + // methods + void initialize(long microseconds=1000000); + void start(); + void stop(); + void restart(); + void resume(); + unsigned long read(); + void pwm(char pin, int duty, long microseconds=-1); + void disablePwm(char pin); + void attachInterrupt(void (*isr)(), long microseconds=-1); + void detachInterrupt(); + void setPeriod(long microseconds); + void setPwmDuty(char pin, int duty); + void (*isrCallback)(); +}; + +extern TimerOne Timer1; +#endif \ No newline at end of file diff --git a/Firmware/Source/grovepi/src/boarddefs.h b/Firmware/Source/grovepi/src/boarddefs.h new file mode 100644 index 0000000..a61dd85 --- /dev/null +++ b/Firmware/Source/grovepi/src/boarddefs.h @@ -0,0 +1,595 @@ +//****************************************************************************** +// IRremote +// Version 2.0.1 June, 2015 +// Copyright 2009 Ken Shirriff +// For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html + +// This file contains all board specific information. It was previously contained within +// IRremoteInt.h + +// Modified by Paul Stoffregen to support other boards and timers +// +// Interrupt code based on NECIRrcv by Joe Knapp +// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 +// Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ +// +// JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) +// Whynter A/C ARC-110WD added by Francesco Meschia + +// Sparkfun Pro Micro support by Alastair McCormack +//****************************************************************************** + +#ifndef boarddefs_h +#define boarddefs_h + +//------------------------------------------------------------------------------ +// Defines for blinking the LED +// + +#if defined(CORE_LED0_PIN) +# define BLINKLED CORE_LED0_PIN +# define BLINKLED_ON() (digitalWrite(CORE_LED0_PIN, HIGH)) +# define BLINKLED_OFF() (digitalWrite(CORE_LED0_PIN, LOW)) + +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +# define BLINKLED 13 +# define BLINKLED_ON() (PORTB |= B10000000) +# define BLINKLED_OFF() (PORTB &= B01111111) + +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +# define BLINKLED 0 +# define BLINKLED_ON() (PORTD |= B00000001) +# define BLINKLED_OFF() (PORTD &= B11111110) + +// No system LED on ESP32, disable blinking +#elif defined(ESP32) +# define BLINKLED 255 +# define BLINKLED_ON() 1 +# define BLINKLED_OFF() 1 +#else +# define BLINKLED 13 +# define BLINKLED_ON() (PORTB |= B00100000) +# define BLINKLED_OFF() (PORTB &= B11011111) +#endif + +//------------------------------------------------------------------------------ +// CPU Frequency +// +#ifdef F_CPU +# define SYSCLOCK F_CPU // main Arduino clock +#else +# define SYSCLOCK 16000000 // main Arduino clock +#endif + +// microseconds per clock interrupt tick +#define USECPERTICK 50 + +//------------------------------------------------------------------------------ +// Define which timer to use +// +// Uncomment the timer you wish to use on your board. +// If you are using another library which uses timer2, you have options to +// switch IRremote to use a different timer. +// + +// Sparkfun Pro Micro +#if defined(ARDUINO_AVR_PROMICRO) + //#define IR_USE_TIMER1 // tx = pin 9 + #define IR_USE_TIMER3 // tx = pin 5 + //#define IR_USE_TIMER4_HS // tx = pin 5 + +// Arduino Mega +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + //#define IR_USE_TIMER1 // tx = pin 11 + #define IR_USE_TIMER2 // tx = pin 9 + //#define IR_USE_TIMER3 // tx = pin 5 + //#define IR_USE_TIMER4 // tx = pin 6 + //#define IR_USE_TIMER5 // tx = pin 46 + +// Teensy 1.0 +#elif defined(__AVR_AT90USB162__) + #define IR_USE_TIMER1 // tx = pin 17 + +// Teensy 2.0 +#elif defined(__AVR_ATmega32U4__) + //#define IR_USE_TIMER1 // tx = pin 14 + //#define IR_USE_TIMER3 // tx = pin 9 + #define IR_USE_TIMER4_HS // tx = pin 10 + +// Teensy 3.0 / Teensy 3.1 +#elif defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MK64FX512__) || defined(__MK66FX1M0__) + #define IR_USE_TIMER_CMT // tx = pin 5 + +// Teensy-LC +#elif defined(__MKL26Z64__) + #define IR_USE_TIMER_TPM1 // tx = pin 16 + +// Teensy++ 1.0 & 2.0 +#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) + //#define IR_USE_TIMER1 // tx = pin 25 + #define IR_USE_TIMER2 // tx = pin 1 + //#define IR_USE_TIMER3 // tx = pin 16 + +// MightyCore - ATmega1284 +#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) + //#define IR_USE_TIMER1 // tx = pin 13 + #define IR_USE_TIMER2 // tx = pin 14 + //#define IR_USE_TIMER3 // tx = pin 6 + +// MightyCore - ATmega164, ATmega324, ATmega644 +#elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \ +|| defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \ +|| defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega164A__) \ +|| defined(__AVR_ATmega164P__) + //#define IR_USE_TIMER1 // tx = pin 13 + #define IR_USE_TIMER2 // tx = pin 14 + +//MegaCore - ATmega64, ATmega128 +#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) + #define IR_USE_TIMER1 // tx = pin 13 + +// MightyCore - ATmega8535, ATmega16, ATmega32 +#elif defined(__AVR_ATmega8535__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) + #define IR_USE_TIMER1 // tx = pin 13 + +// Atmega8 +#elif defined(__AVR_ATmega8__) + #define IR_USE_TIMER1 // tx = pin 9 + +// ATtiny84 +#elif defined(__AVR_ATtiny84__) + #define IR_USE_TIMER1 // tx = pin 6 + +//ATtiny85 +#elif defined(__AVR_ATtiny85__) + #define IR_USE_TIMER_TINY0 // tx = pin 1 + +#elif defined(ESP32) + #define IR_TIMER_USE_ESP32 +#else +// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc +// ATmega48, ATmega88, ATmega168, ATmega328 + //#define IR_USE_TIMER1 // tx = pin 9 + #define IR_USE_TIMER2 // tx = pin 3 + +#endif + +//------------------------------------------------------------------------------ +// Defines for Timer + +//--------------------------------------------------------- +// Timer2 (8 bits) +// +#if defined(IR_USE_TIMER2) + +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR2A |= _BV(COM2B1)) +#define TIMER_DISABLE_PWM (TCCR2A &= ~(_BV(COM2B1))) +#define TIMER_ENABLE_INTR (TIMSK2 = _BV(OCIE2A)) +#define TIMER_DISABLE_INTR (TIMSK2 = 0) +#define TIMER_INTR_NAME TIMER2_COMPA_vect + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint8_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR2A = _BV(WGM20); \ + TCCR2B = _BV(WGM22) | _BV(CS20); \ + OCR2A = pwmval; \ + OCR2B = pwmval / 3; \ +}) + +#define TIMER_COUNT_TOP (SYSCLOCK * USECPERTICK / 1000000) + +//----------------- +#if (TIMER_COUNT_TOP < 256) +# define TIMER_CONFIG_NORMAL() ({ \ + TCCR2A = _BV(WGM21); \ + TCCR2B = _BV(CS20); \ + OCR2A = TIMER_COUNT_TOP; \ + TCNT2 = 0; \ + }) +#else +# define TIMER_CONFIG_NORMAL() ({ \ + TCCR2A = _BV(WGM21); \ + TCCR2B = _BV(CS21); \ + OCR2A = TIMER_COUNT_TOP / 8; \ + TCNT2 = 0; \ + }) +#endif + +//----------------- +#if defined(CORE_OC2B_PIN) +# define TIMER_PWM_PIN CORE_OC2B_PIN // Teensy +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +# define TIMER_PWM_PIN 9 // Arduino Mega +#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) \ +|| defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \ +|| defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \ +|| defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega164A__) \ +|| defined(__AVR_ATmega164P__) +# define TIMER_PWM_PIN 14 // MightyCore +#else +# define TIMER_PWM_PIN 3 // Arduino Duemilanove, Diecimila, LilyPad, etc +#endif // ATmega48, ATmega88, ATmega168, ATmega328 + +//--------------------------------------------------------- +// Timer1 (16 bits) +// +#elif defined(IR_USE_TIMER1) + +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR1A |= _BV(COM1A1)) +#define TIMER_DISABLE_PWM (TCCR1A &= ~(_BV(COM1A1))) + +//----------------- +#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega8535__) \ +|| defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \ +|| defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) +# define TIMER_ENABLE_INTR (TIMSK |= _BV(OCIE1A)) +# define TIMER_DISABLE_INTR (TIMSK &= ~_BV(OCIE1A)) +#else +# define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A)) +# define TIMER_DISABLE_INTR (TIMSK1 = 0) +#endif + +//----------------- +#define TIMER_INTR_NAME TIMER1_COMPA_vect + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR1A = _BV(WGM11); \ + TCCR1B = _BV(WGM13) | _BV(CS10); \ + ICR1 = pwmval; \ + OCR1A = pwmval / 3; \ +}) + +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR1A = 0; \ + TCCR1B = _BV(WGM12) | _BV(CS10); \ + OCR1A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT1 = 0; \ +}) + +//----------------- +#if defined(CORE_OC1A_PIN) +# define TIMER_PWM_PIN CORE_OC1A_PIN // Teensy +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +# define TIMER_PWM_PIN 11 // Arduino Mega +#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) \ +|| defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \ +|| defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \ +|| defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega164A__) \ +|| defined(__AVR_ATmega164P__) || defined(__AVR_ATmega32__) \ +|| defined(__AVR_ATmega16__) || defined(__AVR_ATmega8535__) \ +|| defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) +# define TIMER_PWM_PIN 13 // MightyCore, MegaCore +#elif defined(__AVR_ATtiny84__) +# define TIMER_PWM_PIN 6 +#else +# define TIMER_PWM_PIN 9 // Arduino Duemilanove, Diecimila, LilyPad, Sparkfun Pro Micro etc +#endif // ATmega48, ATmega88, ATmega168, ATmega328 + +//--------------------------------------------------------- +// Timer3 (16 bits) +// +#elif defined(IR_USE_TIMER3) + +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR3A |= _BV(COM3A1)) +#define TIMER_DISABLE_PWM (TCCR3A &= ~(_BV(COM3A1))) +#define TIMER_ENABLE_INTR (TIMSK3 = _BV(OCIE3A)) +#define TIMER_DISABLE_INTR (TIMSK3 = 0) +#define TIMER_INTR_NAME TIMER3_COMPA_vect + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR3A = _BV(WGM31); \ + TCCR3B = _BV(WGM33) | _BV(CS30); \ + ICR3 = pwmval; \ + OCR3A = pwmval / 3; \ +}) + +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR3A = 0; \ + TCCR3B = _BV(WGM32) | _BV(CS30); \ + OCR3A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT3 = 0; \ +}) + +//----------------- +#if defined(CORE_OC3A_PIN) +# define TIMER_PWM_PIN CORE_OC3A_PIN // Teensy +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(ARDUINO_AVR_PROMICRO) +# define TIMER_PWM_PIN 5 // Arduino Mega, Sparkfun Pro Micro +#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) +# define TIMER_PWM_PIN 6 // MightyCore +#else +# error "Please add OC3A pin number here\n" +#endif + +//--------------------------------------------------------- +// Timer4 (10 bits, high speed option) +// +#elif defined(IR_USE_TIMER4_HS) + +#define TIMER_RESET + +#if defined(ARDUINO_AVR_PROMICRO) // Sparkfun Pro Micro + #define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A0)) // Use complimentary O̅C̅4̅A̅ output on pin 5 + #define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A0))) // (Pro Micro does not map PC7 (32/ICP3/CLK0/OC4A) + // of ATmega32U4 ) +#else + #define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) + #define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) +#endif + +#define TIMER_ENABLE_INTR (TIMSK4 = _BV(TOIE4)) +#define TIMER_DISABLE_INTR (TIMSK4 = 0) +#define TIMER_INTR_NAME TIMER4_OVF_vect + + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR4A = (1<> 8; \ + OCR4C = pwmval; \ + TC4H = (pwmval / 3) >> 8; \ + OCR4A = (pwmval / 3) & 255; \ +}) + +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR4A = 0; \ + TCCR4B = _BV(CS40); \ + TCCR4C = 0; \ + TCCR4D = 0; \ + TCCR4E = 0; \ + TC4H = (SYSCLOCK * USECPERTICK / 1000000) >> 8; \ + OCR4C = (SYSCLOCK * USECPERTICK / 1000000) & 255; \ + TC4H = 0; \ + TCNT4 = 0; \ +}) + +//----------------- +#if defined(CORE_OC4A_PIN) +# define TIMER_PWM_PIN CORE_OC4A_PIN // Teensy +#elif defined(ARDUINO_AVR_PROMICRO) +# define TIMER_PWM_PIN 5 // Sparkfun Pro Micro +#elif defined(__AVR_ATmega32U4__) +# define TIMER_PWM_PIN 13 // Leonardo +#else +# error "Please add OC4A pin number here\n" +#endif + +//--------------------------------------------------------- +// Timer4 (16 bits) +// +#elif defined(IR_USE_TIMER4) + +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) +#define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) +#define TIMER_ENABLE_INTR (TIMSK4 = _BV(OCIE4A)) +#define TIMER_DISABLE_INTR (TIMSK4 = 0) +#define TIMER_INTR_NAME TIMER4_COMPA_vect + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR4A = _BV(WGM41); \ + TCCR4B = _BV(WGM43) | _BV(CS40); \ + ICR4 = pwmval; \ + OCR4A = pwmval / 3; \ +}) + +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR4A = 0; \ + TCCR4B = _BV(WGM42) | _BV(CS40); \ + OCR4A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT4 = 0; \ +}) + +//----------------- +#if defined(CORE_OC4A_PIN) +# define TIMER_PWM_PIN CORE_OC4A_PIN +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +# define TIMER_PWM_PIN 6 // Arduino Mega +#else +# error "Please add OC4A pin number here\n" +#endif + +//--------------------------------------------------------- +// Timer5 (16 bits) +// +#elif defined(IR_USE_TIMER5) + +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR5A |= _BV(COM5A1)) +#define TIMER_DISABLE_PWM (TCCR5A &= ~(_BV(COM5A1))) +#define TIMER_ENABLE_INTR (TIMSK5 = _BV(OCIE5A)) +#define TIMER_DISABLE_INTR (TIMSK5 = 0) +#define TIMER_INTR_NAME TIMER5_COMPA_vect + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR5A = _BV(WGM51); \ + TCCR5B = _BV(WGM53) | _BV(CS50); \ + ICR5 = pwmval; \ + OCR5A = pwmval / 3; \ +}) + +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR5A = 0; \ + TCCR5B = _BV(WGM52) | _BV(CS50); \ + OCR5A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT5 = 0; \ +}) + +//----------------- +#if defined(CORE_OC5A_PIN) +# define TIMER_PWM_PIN CORE_OC5A_PIN +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +# define TIMER_PWM_PIN 46 // Arduino Mega +#else +# error "Please add OC5A pin number here\n" +#endif + +//--------------------------------------------------------- +// Special carrier modulator timer +// +#elif defined(IR_USE_TIMER_CMT) + +#define TIMER_RESET ({ \ + uint8_t tmp __attribute__((unused)) = CMT_MSC; \ + CMT_CMD2 = 30; \ +}) + +#define TIMER_ENABLE_PWM do { \ + CORE_PIN5_CONFIG = PORT_PCR_MUX(2) | PORT_PCR_DSE | PORT_PCR_SRE; \ +} while(0) + +#define TIMER_DISABLE_PWM do { \ + CORE_PIN5_CONFIG = PORT_PCR_MUX(1) | PORT_PCR_DSE | PORT_PCR_SRE; \ +} while(0) + +#define TIMER_ENABLE_INTR NVIC_ENABLE_IRQ(IRQ_CMT) +#define TIMER_DISABLE_INTR NVIC_DISABLE_IRQ(IRQ_CMT) +#define TIMER_INTR_NAME cmt_isr + +//----------------- +#ifdef ISR +# undef ISR +#endif +#define ISR(f) void f(void) + +//----------------- +#define CMT_PPS_DIV ((F_BUS + 7999999) / 8000000) +#if F_BUS < 8000000 +#error IRremote requires at least 8 MHz on Teensy 3.x +#endif + +//----------------- +#define TIMER_CONFIG_KHZ(val) ({ \ + SIM_SCGC4 |= SIM_SCGC4_CMT; \ + SIM_SOPT2 |= SIM_SOPT2_PTD7PAD; \ + CMT_PPS = CMT_PPS_DIV - 1; \ + CMT_CGH1 = ((F_BUS / CMT_PPS_DIV / 3000) + ((val)/2)) / (val); \ + CMT_CGL1 = ((F_BUS / CMT_PPS_DIV / 1500) + ((val)/2)) / (val); \ + CMT_CMD1 = 0; \ + CMT_CMD2 = 30; \ + CMT_CMD3 = 0; \ + CMT_CMD4 = 0; \ + CMT_OC = 0x60; \ + CMT_MSC = 0x01; \ +}) + +#define TIMER_CONFIG_NORMAL() ({ \ + SIM_SCGC4 |= SIM_SCGC4_CMT; \ + CMT_PPS = CMT_PPS_DIV - 1; \ + CMT_CGH1 = 1; \ + CMT_CGL1 = 1; \ + CMT_CMD1 = 0; \ + CMT_CMD2 = 30; \ + CMT_CMD3 = 0; \ + CMT_CMD4 = (F_BUS / 160000 + CMT_PPS_DIV / 2) / CMT_PPS_DIV - 31; \ + CMT_OC = 0; \ + CMT_MSC = 0x03; \ +}) + +#define TIMER_PWM_PIN 5 + +// defines for TPM1 timer on Teensy-LC +#elif defined(IR_USE_TIMER_TPM1) +#define TIMER_RESET FTM1_SC |= FTM_SC_TOF; +#define TIMER_ENABLE_PWM CORE_PIN16_CONFIG = PORT_PCR_MUX(3)|PORT_PCR_DSE|PORT_PCR_SRE +#define TIMER_DISABLE_PWM CORE_PIN16_CONFIG = PORT_PCR_MUX(1)|PORT_PCR_SRE +#define TIMER_ENABLE_INTR NVIC_ENABLE_IRQ(IRQ_FTM1) +#define TIMER_DISABLE_INTR NVIC_DISABLE_IRQ(IRQ_FTM1) +#define TIMER_INTR_NAME ftm1_isr +#ifdef ISR +#undef ISR +#endif +#define ISR(f) void f(void) +#define TIMER_CONFIG_KHZ(val) ({ \ + SIM_SCGC6 |= SIM_SCGC6_TPM1; \ + FTM1_SC = 0; \ + FTM1_CNT = 0; \ + FTM1_MOD = (F_PLL/2000) / val - 1; \ + FTM1_C0V = (F_PLL/6000) / val - 1; \ + FTM1_SC = FTM_SC_CLKS(1) | FTM_SC_PS(0); \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + SIM_SCGC6 |= SIM_SCGC6_TPM1; \ + FTM1_SC = 0; \ + FTM1_CNT = 0; \ + FTM1_MOD = (F_PLL/40000) - 1; \ + FTM1_C0V = 0; \ + FTM1_SC = FTM_SC_CLKS(1) | FTM_SC_PS(0) | FTM_SC_TOF | FTM_SC_TOIE; \ +}) +#define TIMER_PWM_PIN 16 + +// defines for timer_tiny0 (8 bits) +#elif defined(IR_USE_TIMER_TINY0) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR0A |= _BV(COM0B1)) +#define TIMER_DISABLE_PWM (TCCR0A &= ~(_BV(COM0B1))) +#define TIMER_ENABLE_INTR (TIMSK |= _BV(OCIE0A)) +#define TIMER_DISABLE_INTR (TIMSK &= ~(_BV(OCIE0A))) +#define TIMER_INTR_NAME TIMER0_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint8_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR0A = _BV(WGM00); \ + TCCR0B = _BV(WGM02) | _BV(CS00); \ + OCR0A = pwmval; \ + OCR0B = pwmval / 3; \ +}) +#define TIMER_COUNT_TOP (SYSCLOCK * USECPERTICK / 1000000) +#if (TIMER_COUNT_TOP < 256) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR0A = _BV(WGM01); \ + TCCR0B = _BV(CS00); \ + OCR0A = TIMER_COUNT_TOP; \ + TCNT0 = 0; \ +}) +#else +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR0A = _BV(WGM01); \ + TCCR0B = _BV(CS01); \ + OCR0A = TIMER_COUNT_TOP / 8; \ + TCNT0 = 0; \ +}) +#endif + +#define TIMER_PWM_PIN 1 /* ATtiny85 */ + +//--------------------------------------------------------- +// ESP32 (ESP8266 should likely be added here too) +// + +// ESP32 has it own timer API and does not use these macros, but to avoid ifdef'ing +// them out in the common code, they are defined to no-op. This allows the code to compile +// (which it wouldn't otherwise) but irsend will not work until ESP32 specific code is written +// for that -- merlin +// As a warning, sending timing specific code from an ESP32 can be challenging if you need 100% +// reliability because the arduino code may be interrupted and cause your sent waveform to be the +// wrong length. This is specifically an issue for neopixels which require 800Khz resolution. +// IR may just work as is with the common code since it's lower frequency, but if not, the other +// way to do this on ESP32 is using the RMT built in driver like in this incomplete library below +// https://github.com/ExploreEmbedded/ESP32_RMT +#elif defined(IR_TIMER_USE_ESP32) +#define TIMER_RESET +#define TIMER_ENABLE_PWM +#define TIMER_DISABLE_PWM Serial.println("IRsend not implemented for ESP32 yet"); +#define TIMER_ENABLE_INTR +#define TIMER_DISABLE_INTR +#define TIMER_INTR_NAME + +//--------------------------------------------------------- +// Unknown Timer +// +#else +# error "Internal code configuration error, no known IR_USE_TIMER# defined\n" +#endif + +#endif // ! boarddefs_h diff --git a/Firmware/Source/grovepi/src/grovepi.ino b/Firmware/Source/grovepi/src/grovepi.ino new file mode 100644 index 0000000..db0c683 --- /dev/null +++ b/Firmware/Source/grovepi/src/grovepi.ino @@ -0,0 +1,862 @@ +#include "ChainableLED.h" +#include "DHT.h" +#include "Grove_LED_Bar.h" +#include "TM1637.h" +#include "TimerOne.h" +#include +#include +#include + +DHT dht; +Grove_LED_Bar ledbar[6]; // 7 instances for D2-D8, however, max 4 bars, you; can't use adjacent sockets, 4 pin display +TM1637 fourdigit[6]; // 7 instances for D2-D8, however, max 4 displays, you; can't use adjacent sockets, 4 pin display +ChainableLED rgbled[6]; // 7 instances for D2-D8 + +IRrecv irrecv; // object to interface with the IR receiver +decode_results results; // results for the IR receiver + +#define SLAVE_ADDRESS 0x04 + +// #define dust_sensor_read_cmd 10 +// #define dust_sensor_en_cmd 14 +// #define dust_sensor_dis_cmd 15 +// #define dust_sensor_int_cmd 9 +// #define dust_sensor_read_int_cmd 6 + +// #define encoder_read_cmd 11 +// #define encoder_en_cmd 16 +// #define encoder_dis_cmd 17 + +// #define flow_read_cmd 12 +// #define flow_en_cmd 18 +// #define flow_dis_cmd 13 + +#define ir_read_cmd 21 +#define ir_recv_pin_cmd 22 +#define ir_read_isdata 24 + +#define isr_set_cmd 6 +#define isr_unset_cmd 9 +#define isr_read_cmd 10 +#define isr_clear_cmd 11 +#define isr_active_cmd 12 + +#define encoder_read_cmd 13 +#define encoder_en_cmd 14 +#define encoder_dis_cmd 15 + +#define data_not_available 23 + +volatile uint8_t cmd[5]; +volatile int index = 0; +volatile int flag = 0; +volatile byte b[21], float_array[4], dht_b[21]; +volatile bool need_extra_loop = false; +int pin; + +// for interrupt stuff +const uint8_t total_ports = 9; +enum ISR_Type { + COUNT_CHANGES, COUNT_LOW_DURATION +}; +typedef struct { + volatile unsigned long period, last_update; +} Tracked_time; +typedef struct { + volatile unsigned long counted_duration, pulse_end, pulse_start; +} Pulse_counter; + +volatile uint8_t pins[total_ports]; // to track the available pins (passes the address to PcInt attachInterrupt method) +volatile bool set_pcint[total_ports]; // to see which ports are being watched +volatile uint8_t func_type[total_ports]; // type of counting function - COUNT_CHANGES or COUNT_LOW_DURATION +Tracked_time tracked_time[total_ports]; // for tracking the time +Pulse_counter pulse_counter[total_ports]; // for counting pulses +volatile unsigned long change_counter[total_ports]; // for counting changes +volatile uint32_t buffer[total_ports]; // to store the calculated values for transmission + +// for encoders +typedef struct { + volatile uint8_t LOW_PIN, HIGH_PIN; + volatile int32_t value; + volatile uint8_t MAX_VAL = 32; +} GroveEncoder; +GroveEncoder ge[total_ports]; + +volatile int run_once; +unsigned char dta[21]; +int length, i; +int aRead = 0; +byte accFlag = 0, clkFlag = 0; +int8_t accv[3]; +byte rgb[] = {0, 0, 0}; + +// all user-defined functions +void processIO(); +void flushI2C(); +void receiveData(); +void sendData(); +void detachISRPin(const uint8_t); +void isr_buffer_filler(); +void isr_handler(uint8_t, bool); + +void setup() { + // Start serial + Serial.begin(38400); + + // Start I2C + Wire.begin(SLAVE_ADDRESS); + Wire.onReceive(receiveData); + Wire.onRequest(sendData); + + // Set port 4 to output and set it to LOW + DDRD |= 0x10; + PORTD &= ~0x10; + + // initialize the pins array with the ports itself + for(int i = 0; i < total_ports; i++) { + pins[i] = i; + } + + Timer1.attachInterrupt(isr_buffer_filler, 1000); // Buffer maintenance. +} + +void processIO() { + // Handles incoming data. + // Updates sensors. + // Sets output pins. + + if (index == 4 && flag == 0) { + flag = 1; + // Digital Read + if (cmd[0] == 1) + { + b[0] = cmd[0]; + b[1] = digitalRead(cmd[1]); + } + + // Digital Write + else if (cmd[0] == 2) + digitalWrite(cmd[1], cmd[2]); + + // Analog Read + else if (cmd[0] == 3) { + aRead = analogRead(cmd[1]); + b[0] = cmd[0]; + b[1] = aRead / 256; + b[2] = aRead % 256; + } + + // Set up Analog Write + else if (cmd[0] == 4) + analogWrite(cmd[1], cmd[2]); + + // Set up pinMode + else if (cmd[0] == 5) + pinMode(cmd[1], cmd[2]); + + // Ultrasonic Read + else if (cmd[0] == 7) { + pin = cmd[1]; + pinMode(pin, OUTPUT); + digitalWrite(pin, LOW); + delayMicroseconds(2); + digitalWrite(pin, HIGH); + delayMicroseconds(5); + digitalWrite(pin, LOW); + pinMode(pin, INPUT); + // setting timeout to 75000 microseconds + // which is roughly the equivalent of time needed for the sound + // to travel 10 meters from the sensor to the target + // and backwards - where the speed of sound is 343m/s + long dur = pulseIn(pin, HIGH, 75000); + long RangeCm = dur / 29 / 2; + b[0] = cmd[0]; + b[1] = RangeCm / 256; + b[2] = RangeCm % 256; + // Serial.println(b[1] * 256 + b[2]); + // Serial.println(b[1]); + // Serial.println(b[2]); + } + // Firmware version + else if (cmd[0] == 8) { + b[0] = cmd[0]; + b[1] = 1; + b[2] = 4; + b[3] = 0; + } + + // Grove temp and humidity sensor pro + // 40- Temperature + else if (cmd[0] == 40) { + if (run_once) { + if (cmd[2] == 0) + dht.begin(cmd[1], DHT11); + else if (cmd[2] == 1) + dht.begin(cmd[1], DHT22); + else if (cmd[2] == 2) + dht.begin(cmd[1], DHT21); + else if (cmd[2] == 3) + dht.begin(cmd[1], AM2301); + float *buffer; + buffer = dht.readTempHum(); + + byte *b1 = (byte *)buffer; + byte *b2 = (byte *)(buffer + 1); + + dht_b[0] = cmd[0]; + for (uint8_t j = 1; j < 5; j++) + dht_b[j] = b1[j - 1]; + for (uint8_t j = 5; j < 9; j++) + dht_b[j] = b2[j - 5]; + run_once = 0; + } + } + + // Grove LED Bar + // http://www.seeedstudio.com/wiki/Grove_-_LED_Bar + // pins: data,clock,vcc,gnd + + // Commands + // [50, pin, greenToRed, unused] initialise a LED Bar + // [51, pin, greenToRed, unused] setGreenToRed(bool greenToRed) + // [52, pin, level, unused] setLevel(unsigned char level) + // [53, pin, led, state] setLed(unsigned char led, bool state) + // [54, pin, led, unused] toggleLed(unsigned char led) + // [55, pin, bits 1-8, bits 9-10] setBits(unsigned int bits) + // [56, pin, unused, unused] getBits() + + // Initialise + // [50, pin, orientation, unused] + else if (cmd[0] == 50) { + // clock pin is always next to the data pin + ledbar[cmd[1] - 2].begin(cmd[1] + 1, cmd[1], + cmd[2]); // clock, data, orientation + } + + // Change the orientation + // Green to red, or red to green + // [51, pin, greenToRed, unused] + else if (cmd[0] == 51 && ledbar[cmd[1] - 2].ready()) { + ledbar[cmd[1] - 2].setGreenToRed(cmd[2]); + } + + // Set level (0-10) + // Level 0 means all leds off + // Level 10 means all leds on + // [52, pin, level, unused] + else if (cmd[0] == 52 && ledbar[cmd[1] - 2].ready()) { + ledbar[cmd[1] - 2].setLevel(cmd[2]); + } + + // Set a single led + // led (1-10) + // state (0=off, 1=on) + // [53, pin, led, state] + else if (cmd[0] == 53 && ledbar[cmd[1] - 2].ready()) { + ledbar[cmd[1] - 2].setLed(cmd[2], cmd[3]); + } + + // Toggle a single led + // led (1-10) + // [54, pin, led, unused] + else if (cmd[0] == 54 && ledbar[cmd[1] - 2].ready()) { + ledbar[cmd[1] - 2].toggleLed(cmd[2]); + } + + // Set the current state, one bit for each led + // 0 = 0x0 = 0b000000000000000 = all leds off + // 5 = 0x05 = 0b000000000000101 = leds 1 and 3 on, all others off + // 341 = 0x155 = 0b000000101010101 = leds 1,3,5,7,9 on, 2,4,6,8,10 off + // 1023 = 0x3ff = 0b000001111111111 = all leds on + // | | + // 10 1 + // [55, pin, bits 1-8, bits 9-10] + else if (cmd[0] == 55 && ledbar[cmd[1] - 2].ready()) { + ledbar[cmd[1] - 2].setBits(cmd[2] ^ (cmd[3] << 8)); + } + + // Return the current state + // [56, pin, unused, unused] + else if (cmd[0] == 56 && ledbar[cmd[1] - 2].ready()) { + unsigned int state = ledbar[cmd[1] - 2].getBits(); + b[0] = cmd[0]; + b[1] = state & 0xFF; + b[2] = state >> 8; + } + + // end Grove LED Bar + + // Grove 4 Digit Display (7 segment) + // http://www.seeedstudio.com/wiki/Grove_-_4-Digit_Display + // pins: clock,data,vcc,gnd + + // Commands + // [70, pin, unused, unused] initialise a 4 digit display + // [71, pin, brightness, unused] set brightness + // [72, pin, bits 1-8, bits 9-16] right aligned decimal value without + // leading zeros [73, pin, bits 1-8, bits 9-16] right aligned decimal value + // with leading zeros [74, pin, index, dec] set individual digit + // [75, pin, index, binary] set individual segment + // [76, pin, left, right] set left and right values with colon + // [77, pin, analog pin, seconds] display analog read for n seconds + // [78, pin, unused, unused] display on + // [79, pin, unused, unused] display off + + // initialise a 4 digit display + // [70, pin, unused, unused] + else if (cmd[0] == 70) { + // clock pin is always next to the data pin + fourdigit[cmd[1] - 2].begin(cmd[1], cmd[1] + 1); // clock, data + } + + // set brightness + // [71, pin, brightness, unused] + else if (cmd[0] == 71 && fourdigit[cmd[1] - 2].ready()) { + fourdigit[cmd[1] - 2].setBrightness(cmd[2]); // setBrightness(brightness) + } + + // show right aligned decimal value without leading zeros + // [72, pin, bits 1-8, bits 9-16] + else if (cmd[0] == 72 && fourdigit[cmd[1] - 2].ready()) { + fourdigit[cmd[1] - 2].showNumberDec( + cmd[2] ^ (cmd[3] << 8), false); // showNumberDec(number, leading_zero) + } + + // show right aligned decimal value with leading zeros + // [73, pin, bits 1-8, bits 9-16] + else if (cmd[0] == 73 && fourdigit[cmd[1] - 2].ready()) { + fourdigit[cmd[1] - 2].showNumberDec( + cmd[2] ^ (cmd[3] << 8), true); // showNumberDec(number, leading_zero) + } + + // set individual digit + // [74, pin, index, dec] + else if (cmd[0] == 74 && fourdigit[cmd[1] - 2].ready()) { + uint8_t data[] = {}; + data[0] = + fourdigit[cmd[1] - 2].encodeDigit(cmd[3]); // encodeDigit(number) + fourdigit[cmd[1] - 2].setSegments( + data, 1, cmd[2]); // setSegments(segments[], length, position) + } + + // set individual segment + // [75, pin, index, binary] + else if (cmd[0] == 75 && fourdigit[cmd[1] - 2].ready()) { + // 0xFF = 0b11111111 = Colon,G,F,E,D,C,B,A + // Colon only works on 2nd segment (index 1) + // -A- + // F | | B + // -G- + // E | | C + // -D- + uint8_t data[] = {}; + data[0] = cmd[3]; // byte + fourdigit[cmd[1] - 2].setSegments( + data, 1, cmd[2]); // setSegments(segments[], length, position) + } + + // set left and right with colon separator + // [76, pin, left, right] + else if (cmd[0] == 76 && fourdigit[cmd[1] - 2].ready()) { + uint8_t data[] = {}; + // 1st segment + data[0] = + fourdigit[cmd[1] - 2].encodeDigit(cmd[2] / 10); // encodeDigit(number) + // 2nd segment + data[1] = + fourdigit[cmd[1] - 2].encodeDigit(cmd[2] % 10); // encodeDigit(number) + // colon + data[1] |= 0x80; + // 3rd segment + data[2] = + fourdigit[cmd[1] - 2].encodeDigit(cmd[3] / 10); // encodeDigit(number) + // 4th segment + data[3] = + fourdigit[cmd[1] - 2].encodeDigit(cmd[3] % 10); // encodeDigit(number) + // send + fourdigit[cmd[1] - 2].setSegments( + data, 4, 0); // setSegments(segments[], length, position) + } + + // analog read + // [77, pin, analog pin, seconds] + else if (cmd[0] == 77 && fourdigit[cmd[1] - 2].ready()) { + int pin = cmd[2]; + int reads = 4 * cmd[3]; // 1000/250 * cmd[3] + + // reading analog pin 4x per second + for (int i = 0; i < reads; i++) { + fourdigit[cmd[1] - 2].showNumberDec( + analogRead(pin), false); // showNumberDec(number, leading_zero) + } + } + + // display on + // [78, pin, unused, unused] + else if (cmd[0] == 78 && fourdigit[cmd[1] - 2].ready()) { + uint8_t data[] = {0xFF, 0xFF, 0xFF, 0xFF}; + fourdigit[cmd[1] - 2].setSegments( + data, 4, 0); // setSegments(segments[], length, position) + } + + // display off + // [79, pin, unused, unused] + else if (cmd[0] == 79 && fourdigit[cmd[1] - 2].ready()) { + uint8_t data[] = {0x00, 0x00, 0x00, 0x00}; + fourdigit[cmd[1] - 2].setSegments( + data, 4, 0); // setSegments(segments[], length, position) + } + + // end Grove 4 Digit Display + + // Grove Chainable RGB LED + // http://www.seeedstudio.com/wiki/Grove_-_Chainable_RGB_LED + // pins: ci,di,vcc,gnd and co,do,vcc,gnd + + // Commands + // [90, red, green, blue] store color for later use + // [91, pin, num leds, unused] initialise a chain of leds + // [92, pin, num leds, unused] initialise a chain of leds and set + // all to a test color [93, pin, pattern, which led] set one or more + // leds to the stored color by pattern [94, pin, led offset, modulo divisor] + // set one or more leds to the stored color by modulo [95, pin, level, + // reverse] sets leds similar to a bar graph, reversible + + // Store RGB color for later use + // [90, red, green, blue] + else if (cmd[0] == 90) { + rgb[0] = cmd[1]; + rgb[1] = cmd[2]; + rgb[2] = cmd[3]; + } + + // Initialise a RGB LED chain + // [91, pin, num leds, unused] + else if (cmd[0] == 91) { + rgbled[cmd[1] - 2].begin(cmd[1], cmd[1] + 1, + cmd[2]); // clock, data, num leds + } + + // Test colors, repeating red green blue + // color code: 0 black (off), 1 blue, 2 green, 3 cyan, 4 red, 5 magenta, 6 + // yellow, 7 white [92, pin, num leds, color code] + else if (cmd[0] == 92) { + rgbled[cmd[1] - 2].begin(cmd[1], cmd[1] + 1, cmd[2]); + + // figure out which color to display, a single bit for each rgb led + byte rr = ((cmd[3] & 4) >> 2) * 255, gg = ((cmd[3] & 2) >> 1) * 255, + bb = ((cmd[3] & 1)) * 255; + + // set each led to the specified color + for (int i = 0; i < cmd[2]; i++) { + rgbled[cmd[1] - 2].setColorRGB(i, rr, gg, bb); + } + } + + // Set one or more leds to the stored color using pattern + // pattern: 0 = this led only, 1 all leds except this led, 2 this led and + // all leds inwards, 3 this led and all leds outwards which led: 0 = led + // closest to the GrovePi, 1 = second led counting outwards [93, pin, + // pattern, which led] + else if (cmd[0] == 93) { + if (cmd[2] == 0) { + // set an individual led to the stored color + rgbled[cmd[1] - 2].setColorRGB(cmd[3], rgb[0], rgb[1], + rgb[2]); // which led, red, green, blue + } else { + // set all leds to stored color + byte num_leds = rgbled[cmd[1] - 2].getNumLeds(); + + for (int i = 0; i < num_leds; i++) { + // cmd[2] == 1: set all leds other than this one to the stored color + // cmd[2] == 2: this led and all previous leds, inwards + // cmd[2] == 3: this led and all next leds, outwards + if ((cmd[2] == 1 && i != cmd[3]) || (cmd[2] == 2 && i <= cmd[3]) || + (cmd[2] == 3 && i >= cmd[3])) { + rgbled[cmd[1] - 2].setColorRGB( + i, rgb[0], rgb[1], rgb[2]); // which led, red, green, blue + } + } + } + } + + // Set one or more leds to the stored color using modulo + // led offset: 0 = led closest to the GrovePi, counting outwards + // modulo divisor: when 1 (default) sets stored color on all leds >= offset, + // when 2 sets every 2nd led >= offset and so on [94, pin, led offset, + // modulo divisor] + else if (cmd[0] == 94) { + // modulo divisor must be >= 1 + if (cmd[3] < 1) { + cmd[3] = 1; + } + + // get the chain length + byte num_leds = rgbled[cmd[1] - 2].getNumLeds(); + + // starting at the offset, step through each led and if the result of the + // modulo operator results in zero, set the stored color on the led + for (int i = cmd[2]; i < num_leds; i++) { + // use modulo to set every n led + if ((i - cmd[2]) % cmd[3] == 0) { + rgbled[cmd[1] - 2].setColorRGB(i, rgb[0], rgb[1], + rgb[2]); // which led, red, green, blue + } + } + } + + // Set level (0 to num leds), counting outwards from the GrovePi, 0 = all + // off, 1 = first led, reversible to count inwards [95, pin, level, reverse] + else if (cmd[0] == 95) { + // get the chain length + byte num_leds = rgbled[cmd[1] - 2].getNumLeds(); + + if (cmd[3] == 0) { + // outwards + for (int i = 0; i < num_leds; i++) { + if (cmd[2] > i) { + rgbled[cmd[1] - 2].setColorRGB( + i, rgb[0], rgb[1], rgb[2]); // which led, red, green, blue + } else { + rgbled[cmd[1] - 2].setColorRGB(i, 0, 0, + 0); // which led, red, green, blue + } + } + } else { + // inwards + for (int i = num_leds; i > 0; i--) { + if ((num_leds - cmd[2]) <= i) { + rgbled[cmd[1] - 2].setColorRGB( + i, rgb[0], rgb[1], rgb[2]); // which led, red, green, blue + } else { + rgbled[cmd[1] - 2].setColorRGB(i, 0, 0, + 0); // which led, red, green, blue + } + } + } + } else if (cmd[0] == ir_recv_pin_cmd) { + Serial.print(cmd[1]); + irrecv.setRecvpin(cmd[1]); + irrecv.enableIRIn(); + cmd[0] = 0; + } else if (cmd[0] == ir_read_cmd) { + if (irrecv.decode(&results)) { + b[0] = cmd[0]; + b[1] = results.decode_type; + b[2] = results.address & 0xFF; + b[3] = results.address >> 8; + b[4] = results.value & 0xFF; + b[5] = (results.value >> 8) & 0xFF; + b[6] = (results.value >> 16) & 0xFF; + b[7] = (results.value >> 24) & 0xFF; + + irrecv.resume(); // Receive the next value + } else { + b[0] = cmd[0]; + b[1] = results.decode_type; + } + } else if (cmd[0] == ir_read_isdata) { + b[0] = cmd[0]; + b[1] = irrecv.decode(&results); + } + } else if (cmd[0] == isr_set_cmd) { + + if (run_once == 1) { + uint8_t pin = cmd[1] & 0x0f; // 1st 4 bits to determine pin (D2->D8) + const uint8_t ftype = (cmd[1] >> 4) & 0x03; // take 5th & 6th bits + const uint8_t interrupt_mode = (cmd[1] >> 6) & 0x03; // take 7th and 8th bit + const uint16_t period = (cmd[2] << 8) + cmd[3]; // get period in ms (maximum 65535 sms) + + // detach pin if it's already set + if (set_pcint[pin]) { + detachISRPin(pin); + } + + pinMode(pin, INPUT_PULLUP); + set_pcint[pin] = true; + func_type[pin] = ftype; + tracked_time[pin] = Tracked_time({period, 0}); + if (ftype == COUNT_CHANGES) { + PcInt::attachInterrupt(pin, isr_handler, (uint8_t*)&pins[pin], interrupt_mode, true); + } else if (ftype == COUNT_LOW_DURATION) { + pulse_counter[pin] = Pulse_counter({0, 0, 0}); + PcInt::attachInterrupt(pin, isr_handler, (uint8_t*)&pins[pin], CHANGE, false); + } + run_once = 0; + } + + } else if (cmd[0] == isr_unset_cmd) { + + if (run_once == 1) { + // detach pin from PCINT + const uint8_t pin = cmd[1]; + detachISRPin(pin); + run_once = 0; + } + + } else if (cmd[0] == isr_read_cmd) { + + if (run_once == 1) { + const uint8_t pin = cmd[1]; // from pin D2->D8 + const uint32_t val = buffer[pin]; + b[0] = cmd[0]; + b[1] = val & 0xff; + b[2] = (val >> 8) & 0xff; + b[3] = (val >> 16) & 0xff; + b[4] = (val >> 24) & 0xff; + run_once = 0; + } + + } else if (cmd[0] == isr_clear_cmd) { + + if (run_once == 1) { + // detach all pins from PCINT + for (int idx = 0; idx < total_ports; idx++) { + if (set_pcint[idx]) { + detachISRPin(idx); + } + } + } + + } else if (cmd[0] == isr_active_cmd) { + + if (run_once == 1) { + const uint8_t pin = cmd[1]; + + if (pin > total_ports) { + uint16_t ports = 0; + for (int idx = 0; idx < total_ports; idx++) { + ports += (set_pcint[idx] & 0x01) << idx; + } + + b[0] = cmd[0]; + b[1] = ports & 0xff; + b[2] = (ports >> 8) & 0xff; + } else { + b[0] = cmd[0]; + b[1] = 0; + b[2] = (set_pcint[pin] & 0x01) << pin; + } + run_once = 0; + } + } else if (cmd[0] == encoder_en_cmd) { + + if (run_once == 1) { + const uint8_t pin = cmd[1]; + const uint8_t steps = cmd[2]; + if (pin < total_ports - 1) { + // detach pin if it's already set + if (set_pcint[pin]) { + detachISRPin(pin); + detachISRPin(pin + 1); + } + ge[pin].LOW_PIN = pin; + ge[pin].HIGH_PIN = pin + 1; + ge[pin].value = 0; + ge[pin].MAX_VAL = steps; + pinMode(ge[pin].LOW_PIN, INPUT_PULLUP); + pinMode(ge[pin].HIGH_PIN, INPUT_PULLUP); + set_pcint[pin] = set_pcint[pin + 1] = true; + PcInt::attachInterrupt(ge[pin].LOW_PIN, grove_encoder_handler, &ge[pin], FALLING, false); + PcInt::attachInterrupt(ge[pin].HIGH_PIN, grove_encoder_handler, &ge[pin], FALLING, false); + } + run_once = 0; + } + + } else if (cmd[0] == encoder_read_cmd) { + + if (run_once == 1) { + const uint8_t pin = cmd[1]; + const int value = ge[pin].value; + Serial.print(value); + Serial.print("\n"); + + b[0] = cmd[0]; + b[1] = value & 0xff; + b[2] = (value >> 8) & 0xff; + b[3] = (value >> 16) & 0xff; + b[4] = (value >> 24) & 0xff; + + run_once = 0; + } + + } else if (cmd[0] == encoder_dis_cmd) { + + if (run_once == 1) { + const uint8_t pin = cmd[1]; + if (pin < total_ports - 1) { + detachISRPin(pin); + detachISRPin(pin + 1); + } + run_once = 0; + } + + } +} + +void loop() { + if (need_extra_loop == true) { + processIO(); + need_extra_loop = false; + } else { + processIO(); + } +} + +void receiveData(int byteCount) { + if (!need_extra_loop) { + while (Wire.available()) { + if (Wire.available() == 4) { + flag = 0; + index = 0; + run_once = 1; + } + cmd[index++] = Wire.read(); + } + need_extra_loop = true; + } else { + flushI2C(); + } +} + +void flushI2C() { + while (Wire.available()) + Wire.read(); +} + +// Callback for sending data +void sendData() { + if (need_extra_loop == false) { + if (cmd[0] == 1) + Wire.write((byte *)b, 2); + if (cmd[0] == 3 || cmd[0] == 7 || cmd[0] == 56) + Wire.write((byte *)b, 3); + if (cmd[0] == 8 || cmd[0] == 20) + Wire.write((byte *)b, 4); + if (cmd[0] == 30) + Wire.write((byte *)b, 9); + if (cmd[0] == 40) + Wire.write((byte *)dht_b, 9); + if (cmd[0] == isr_read_cmd) + Wire.write((byte *)b, 5); + if (cmd[0] == isr_active_cmd) + Wire.write((byte *)b, 3); + if (cmd[0] == ir_read_cmd) { + Wire.write((byte *)b, 8); + b[0] = 0; + } + if (cmd[0] == encoder_read_cmd) { + Wire.write((byte *)b, 5); + } + if (cmd[0] == ir_read_isdata) + Wire.write((byte *)b, 2); + } + // otherwise just reply the Pi telling + // there's no data available yet + else { + Wire.write(data_not_available); + } +} + +// detaching an PCINT interrupt from a given pin +void detachISRPin(const uint8_t pin) { + // detach pin from PCINT + if (set_pcint[pin]) { + PcInt::detachInterrupt(pin); + pinMode(pin, OUTPUT); + set_pcint[pin] = false; + } +} + +// repeatedly called ISR to update values on each interrupt-enabled pin +void isr_buffer_filler() { + // PORTD |= 0x10; + + const unsigned long current = micros() / 1000; + // iterate over all possible interrupted pins + for (int idx = 0; idx < total_ports; idx++) { + // if the pin has been attached to an interrupt + if (set_pcint[idx]) { + const unsigned long elapsed_time = current - tracked_time[idx].last_update; + // if more time than the associated period has passed + if (elapsed_time >= tracked_time[idx].period) { + // save and reset depending on the selected function + switch (func_type[idx]) { + case COUNT_CHANGES: + buffer[idx] = change_counter[idx]; + change_counter[idx] = 0; + break; + case COUNT_LOW_DURATION: + buffer[idx] = pulse_counter[idx].counted_duration * tracked_time[idx].period / elapsed_time; + pulse_counter[idx].counted_duration = 0; + break; + } + // update time + tracked_time[idx].last_update = current; + } + } + } + + // PORTD &= ~0x10; +} + + // interrupt handler for COUNT_CHANGES & COUNT_LOW_DURATION operations +void isr_handler(uint8_t *userdata, bool newstate) { + + // PORTD |= 0x10; + + // const uint8_t pin = *((uint8_t*)userdata); + const uint8_t pin = *userdata; + + if (func_type[pin] == COUNT_CHANGES) { + + // count changes + change_counter[pin] ++; + + } else if (func_type[pin] == COUNT_LOW_DURATION) { + + // count duration + if (newstate == 0) { + pulse_counter[pin].pulse_start = micros(); + } else { + pulse_counter[pin].pulse_end = micros(); + } + const unsigned long pulse_end = pulse_counter[pin].pulse_end; + const unsigned long pulse_start = pulse_counter[pin].pulse_start; + if(pulse_end > pulse_start) { + const unsigned long duration = int((pulse_end - pulse_start) / 1000); // to get ms + pulse_counter[pin].counted_duration += duration; + pulse_counter[pin].pulse_end = 0; + } + + } + + // PORTD &= ~0x10; + +} + +// interrupt handler for grove encoders +void grove_encoder_handler(GroveEncoder *ge) { + // PORTD |= 0x10; + + const uint8_t valA = digitalRead(ge->LOW_PIN); + const uint8_t valB = digitalRead(ge->HIGH_PIN); + + if (valA + valB > 0 && valA + valB < 2) { + if (valA < valB) { + ge->value += 1; + } else { + ge->value -= 1; + } + } + + if (ge->value < 0) + ge->value = 0; + else if (ge->value > ge->MAX_VAL) + ge->value = ge->MAX_VAL; + + Serial.println(ge->LOW_PIN); + Serial.println(ge->HIGH_PIN); + + // PORTD &= ~0x10; +} diff --git a/Firmware/Source/grovepi/src/grovepi_refactored.ino b/Firmware/Source/grovepi/src/grovepi_refactored.ino new file mode 100644 index 0000000..5025a43 --- /dev/null +++ b/Firmware/Source/grovepi/src/grovepi_refactored.ino @@ -0,0 +1,203 @@ +// #include +// #include "DHT.h" +// #include "Grove_LED_Bar.h" +// #include "TM1637.h" +// #include "ChainableLED.h" +// #include "Encoder.h" +// #include "TimerOne.h" +// #include "Queue.h" +// +// #define SLAVE_ADDRESS 0x04 +// #define MAX_PAYLOAD 10 +// +// enum Command : uint8_t { +// DIGITALREAD = 1, +// DIGITALWRITE = 2, +// ANALOGREAD = 3, +// ANALOGWRITE = 4, +// PINMODE = 5, +// ULTRASONICREAD = 7, +// VERSION = 8, +// +// DUSTSENSOR_READ = 10, +// DUSTSENSOR_EN = 14, +// DUSTSENSOR_DIS = 15, +// ENCODER_READ = 11, +// ENCODER_EN = 16, +// ENCODER_DIS = 17, +// FLOW_READ = 12, +// FLOW_EN = 18, +// FLOW_DIS = 13, +// IR_READ = 21, +// IR_SET_PIN = 22, +// +// ACC_XYZ = 20, +// RTC_GETTIME = 30, +// DHT_TEMP = 40, +// +// LEDBAR_INIT = 50, +// LEDBAR_ORIENT = 51, +// LEDBAR_LEVEL = 52, +// LEDBAR_SETTONE = 53, +// LEDBAR_TOGGLEONE = 54, +// LEDBAR_SETALL = 55, +// LEDBAR_GETALL = 56, +// +// F4DIGIT_INIT = 70, +// F4DIGIT_SET_BRIGHTNESS = 71, +// F4DIGIT_VALUE_SET = 72, +// F4DIGIT_VALUE_SET_WZEROS = 73, +// F4DIGIT_INDIVID_DIGITS = 74, +// F4DIGIT_INDIVID_LEDS = 75, +// F4DIGIT_SCORE = 76, +// F4DIGIT_ANALOGREAD_SECONDS = 77, +// F4DIGIT_ALLON = 78, +// F4DIGIT_ALLOFF = 79, +// +// STORE_COLOR = 90, +// CHAINRGB_INIT = 91, +// CHAINRGB_TEST = 92, +// CHAINRGB_SET_PATTN = 93, +// CHAINRGB_SET_MOD = 94, +// CHAINRGB_SET_LVL = 95 +// }; +// +// struct Request{ +// uint8_t command_id; +// uint8_t no_bytes; +// uint8_t payload[MAX_PAYLOAD]; +// +// Request& operator=(const Request &d) +// { +// this->command_id = d.command_id; +// this->no_bytes = d.no_bytes; +// for(uint8_t i = 0; i < this->no_bytes; i++) +// this->payload[i] = d.payload[i]; +// +// return *this; +// } +// }; +// +// volatile Request request, response; +// uint8_t main_counter = 0; +// volatile uint8_t receive_counter = 0, send_counter = 0; +// volatile bool busy_loop = false; +// volatile bool new_request = false; +// volatile bool new_response = false; +// bool stage_response = false; +// +// uint8_t pin; +// uint8_t value8; +// uint16_t value16; +// +// void flushI2C(); +// +// void setup() +// { +// Serial.begin(38400); // start serial for output +// +// Wire.begin(SLAVE_ADDRESS); +// Wire.onReceive(receiveData); +// Wire.onRequest(sendData); +// } +// +// void loop() +// { +// if(new_request == true) +// { +// busy_loop = true; +// new_response = false; +// +// Serial.print("CID=" + String(request.command_id) + "+Bytes=" + String(request.no_bytes) + "+List="); +// main_counter = 0; +// while(main_counter < request.no_bytes) +// { +// Serial.print("" + String(request.payload[main_counter])); +// main_counter++; +// } +// Serial.println(); +// +// stage_response = false; +// response.command_id = request.command_id; +// switch(request.command_id) +// { +// case DIGITALREAD: +// response.no_bytes = 1; +// response.payload[0] = digitalRead(request.payload[0]); +// stage_response = true; +// break; +// case DIGITALWRITE: +// pin = request.payload[0]; +// value8 = request.payload[1]; +// digitalWrite(pin, value8); +// break; +// case ANALOGREAD: +// response.no_bytes = 2; +// value16 = analogRead(request.payload[0]); +// response.payload[0] = value16 >> 8; +// response.payload[1] = value16 & 0xFF; +// stage_response = true; +// break; +// case ANALOGWRITE: +// pin = request.payload[0]; +// value8 = request.payload[1]; +// analogWrite(pin, value8); +// break; +// } +// +// new_request = false; +// busy_loop = false; +// new_response = stage_response; +// } +// } +// +// void receiveData(int byteCount) +// { +// // discard any incoming data if the main loop is busy +// if(busy_loop == true) flushI2C(); +// else +// { +// if(byteCount >= 2) +// { +// request.command_id = Wire.read(); +// request.no_bytes = Wire.read(); +// byteCount -= 2; +// +// if(byteCount == request.no_bytes) +// { +// receive_counter = 0; +// while(receive_counter < byteCount) +// { +// request.payload[receive_counter] = Wire.read(); +// receive_counter++; +// } +// new_request = true; +// } +// else flushI2C(); +// } +// else flushI2C(); +// } +// } +// +// void sendData() +// { +// if(new_response == true) +// { +// Wire.write(response.command_id); +// Wire.write(response.no_bytes); +// send_counter = 0; +// while(send_counter < response.no_bytes) +// { +// Wire.write(response.payload[send_counter]); +// send_counter++; +// } +// +// new_response = false; +// } +// } +// +// void flushI2C() +// { +// while(Wire.available()) +// Wire.read(); +// } diff --git a/Firmware/Source/grovepi/src/irPronto.cpp b/Firmware/Source/grovepi/src/irPronto.cpp new file mode 100644 index 0000000..49d2685 --- /dev/null +++ b/Firmware/Source/grovepi/src/irPronto.cpp @@ -0,0 +1,513 @@ +#define TEST 0 + +#if TEST +# define SEND_PRONTO 1 +# define PRONTO_ONCE false +# define PRONTO_REPEAT true +# define PRONTO_FALLBACK true +# define PRONTO_NOFALLBACK false +#endif + +#if SEND_PRONTO + +//****************************************************************************** +#if TEST +# include + void enableIROut (int freq) { printf("\nFreq = %d KHz\n", freq); } + void mark (int t) { printf("+%d," , t); } + void space (int t) { printf("-%d, ", t); } +#else +# include "IRremote.h" +#endif // TEST + +//+============================================================================= +// Check for a valid hex digit +// +bool ishex (char ch) +{ + return ( ((ch >= '0') && (ch <= '9')) || + ((ch >= 'A') && (ch <= 'F')) || + ((ch >= 'a') && (ch <= 'f')) ) ? true : false ; +} + +//+============================================================================= +// Check for a valid "blank" ... '\0' is a valid "blank" +// +bool isblank (char ch) +{ + return ((ch == ' ') || (ch == '\t') || (ch == '\0')) ? true : false ; +} + +//+============================================================================= +// Bypass spaces +// +bool byp (char** pcp) +{ + while (isblank(**pcp)) (*pcp)++ ; +} + +//+============================================================================= +// Hex-to-Byte : Decode a hex digit +// We assume the character has already been validated +// +uint8_t htob (char ch) +{ + if ((ch >= '0') && (ch <= '9')) return ch - '0' ; + if ((ch >= 'A') && (ch <= 'F')) return ch - 'A' + 10 ; + if ((ch >= 'a') && (ch <= 'f')) return ch - 'a' + 10 ; +} + +//+============================================================================= +// Hex-to-Word : Decode a block of 4 hex digits +// We assume the string has already been validated +// and the pointer being passed points at the start of a block of 4 hex digits +// +uint16_t htow (char* cp) +{ + return ( (htob(cp[0]) << 12) | (htob(cp[1]) << 8) | + (htob(cp[2]) << 4) | (htob(cp[3]) ) ) ; +} + +//+============================================================================= +// +bool sendPronto (char* s, bool repeat, bool fallback) +{ + int i; + int len; + int skip; + char* cp; + uint16_t freq; // Frequency in KHz + uint8_t usec; // pronto uSec/tick + uint8_t once; + uint8_t rpt; + + // Validate the string + for (cp = s; *cp; cp += 4) { + byp(&cp); + if ( !ishex(cp[0]) || !ishex(cp[1]) || + !ishex(cp[2]) || !ishex(cp[3]) || !isblank(cp[4]) ) return false ; + } + + // We will use cp to traverse the string + cp = s; + + // Check mode = Oscillated/Learned + byp(&cp); + if (htow(cp) != 0000) return false; + cp += 4; + + // Extract & set frequency + byp(&cp); + freq = (int)(1000000 / (htow(cp) * 0.241246)); // Rounding errors will occur, tolerance is +/- 10% + usec = (int)(((1.0 / freq) * 1000000) + 0.5); // Another rounding error, thank Cod for analogue electronics + freq /= 1000; // This will introduce a(nother) rounding error which we do not want in the usec calcualtion + cp += 4; + + // Get length of "once" code + byp(&cp); + once = htow(cp); + cp += 4; + + // Get length of "repeat" code + byp(&cp); + rpt = htow(cp); + cp += 4; + + // Which code are we sending? + if (fallback) { // fallback on the "other" code if "this" code is not present + if (!repeat) { // requested 'once' + if (once) len = once * 2, skip = 0 ; // if once exists send it + else len = rpt * 2, skip = 0 ; // else send repeat code + } else { // requested 'repeat' + if (rpt) len = rpt * 2, skip = 0 ; // if rpt exists send it + else len = once * 2, skip = 0 ; // else send once code + } + } else { // Send what we asked for, do not fallback if the code is empty! + if (!repeat) len = once * 2, skip = 0 ; // 'once' starts at 0 + else len = rpt * 2, skip = once ; // 'repeat' starts where 'once' ends + } + + // Skip to start of code + for (i = 0; i < skip; i++, cp += 4) byp(&cp) ; + + // Send code + enableIROut(freq); + for (i = 0; i < len; i++) { + byp(&cp); + if (i & 1) space(htow(cp) * usec); + else mark (htow(cp) * usec); + cp += 4; + } +} + +//+============================================================================= +#if TEST + +int main ( ) +{ + char prontoTest[] = + "0000 0070 0000 0032 0080 0040 0010 0010 0010 0030 " // 10 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 20 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 30 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 " // 40 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 50 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 " // 60 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 70 + "0010 0010 0010 0030 0010 0010 0010 0030 0010 0010 " // 80 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0030 " // 90 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0030 " // 100 + "0010 0030 0010 0aa6"; // 104 + + sendPronto(prontoTest, PRONTO_ONCE, PRONTO_FALLBACK); // once code + sendPronto(prontoTest, PRONTO_REPEAT, PRONTO_FALLBACK); // repeat code + sendPronto(prontoTest, PRONTO_ONCE, PRONTO_NOFALLBACK); // once code + sendPronto(prontoTest, PRONTO_REPEAT, PRONTO_NOFALLBACK); // repeat code + + return 0; +} + +#endif // TEST + +#endif // SEND_PRONTO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if 0 +//****************************************************************************** +// Sources: +// http://www.remotecentral.com/features/irdisp2.htm +// http://www.hifi-remote.com/wiki/index.php?title=Working_With_Pronto_Hex +//****************************************************************************** + +#include +#include + +#define IRPRONTO +#include "IRremoteInt.h" // The Arduino IRremote library defines USECPERTICK + +//------------------------------------------------------------------------------ +// Source: https://www.google.co.uk/search?q=DENON+MASTER+IR+Hex+Command+Sheet +// -> http://assets.denon.com/documentmaster/us/denon%20master%20ir%20hex.xls +// +char prontoTest[] = + "0000 0070 0000 0032 0080 0040 0010 0010 0010 0030 " // 10 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 20 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 30 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 " // 40 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 50 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 " // 60 + "0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 " // 70 + "0010 0010 0010 0030 0010 0010 0010 0030 0010 0010 " // 80 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0030 " // 90 + "0010 0010 0010 0030 0010 0010 0010 0010 0010 0030 " // 100 + "0010 0030 0010 0aa6"; // 104 + +//------------------------------------------------------------------------------ +// This is the longest code we can support +#define CODEMAX 200 + +//------------------------------------------------------------------------------ +// This is the data we pull out of the pronto code +typedef + struct { + int freq; // Carrier frequency (in Hz) + int usec; // uSec per tick (based on freq) + + int codeLen; // Length of code + uint16_t code[CODEMAX]; // Code in hex + + int onceLen; // Length of "once" transmit + uint16_t* once; // Pointer to start within 'code' + + int rptLen; // Length of "repeat" transmit + uint16_t* rpt; // Pointer to start within 'code' + } +pronto_t; + +//------------------------------------------------------------------------------ +// From what I have seen, the only time we go over 8-bits is the 'space' +// on the end which creates the lead-out/inter-code gap. Assuming I'm right, +// we can code this up as a special case and otherwise halve the size of our +// data! +// Ignoring the first four values (the config data) and the last value +// (the lead-out), if you find a protocol that uses values greater than 00fe +// we are going to have to revisit this code! +// +// +// So, the 0th byte will be the carrier frequency in Khz (NOT Hz) +// " 1st " " " " length of the "once" code +// " 2nd " " " " length of the "repeat" code +// +// Thereafter, odd bytes will be Mark lengths as a multiple of USECPERTICK uS +// even " " " Space " " " " " " " +// +// Any occurence of "FF" in either a Mark or a Space will indicate +// "Use the 16-bit FF value" which will also be a multiple of USECPERTICK uS +// +// +// As a point of comparison, the test code (prontoTest[]) is 520 bytes +// (yes, more than 0.5KB of our Arduino's precious 32KB) ... after conversion +// to pronto hex that goes down to ((520/5)*2) = 208 bytes ... once converted to +// our format we are down to ((208/2) -1 -1 +2) = 104 bytes +// +// In fariness this is still very memory-hungry +// ...As a rough guide: +// 10 codes cost 1K of memory (this will vary depending on the protocol). +// +// So if you're building a complex remote control, you will probably need to +// keep the codes on an external memory device (not in the Arduino sketch) and +// load them as you need them. Hmmm. +// +// This dictates that "Oscillated Pronto Codes" are probably NOT the way forward +// +// For example, prontoTest[] happens to be: A 48-bit IR code in Denon format +// So we know it starts with 80/40 (Denon header) +// and ends with 10/aa6 (Denon leadout) +// and all (48) bits in between are either 10/10 (Denon 0) +// or 10/30 (Denon 1) +// So we could easily store this data in 1-byte ("Denon") +// + 1-byte (Length=48) +// + 6-bytes (IR code) +// At 8-bytes per code, we can store 128 codes in 1KB or memory - that's a lot +// better than the 2 (two) we started off with! +// +// And serendipitously, by reducing the amount of data, our program will run +// a LOT faster! +// +// Again, I repeat, even after you have spent time converting the "Oscillated +// Pronto Codes" in to IRremote format, it will be a LOT more memory-hungry +// than using sendDenon() (or whichever) ...BUT these codes are easily +// available on the internet, so we'll support them! +// +typedef + struct { + uint16_t FF; + uint8_t code[CODEMAX]; + } +irCode_t; + +//------------------------------------------------------------------------------ +#define DEBUGF(...) printf(__VA_ARGS__) + +//+============================================================================= +// String must be block of 4 hex digits separated with blanks +// +bool validate (char* cp, int* len) +{ + for (*len = 0; *cp; (*len)++, cp += 4) { + byp(&cp); + if ( !ishex(cp[0]) || !ishex(cp[1]) || + !ishex(cp[2]) || !ishex(cp[3]) || !isblank(cp[4]) ) return false ; + } + + return true; +} + +//+============================================================================= +// Hex-to-Byte : Decode a hex digit +// We assume the character has already been validated +// +uint8_t htob (char ch) +{ + if ((ch >= '0') && (ch <= '9')) return ch - '0' ; + if ((ch >= 'A') && (ch <= 'F')) return ch - 'A' + 10 ; + if ((ch >= 'a') && (ch <= 'f')) return ch - 'a' + 10 ; +} + +//+============================================================================= +// Hex-to-Word : Decode a block of 4 hex digits +// We assume the string has already been validated +// and the pointer being passed points at the start of a block of 4 hex digits +// +uint16_t htow (char* cp) +{ + return ( (htob(cp[0]) << 12) | (htob(cp[1]) << 8) | + (htob(cp[2]) << 4) | (htob(cp[3]) ) ) ; +} + +//+============================================================================= +// Convert the pronto string in to data +// +bool decode (char* s, pronto_t* p, irCode_t* ir) +{ + int i, len; + char* cp; + + // Validate the Pronto string + if (!validate(s, &p->codeLen)) { + DEBUGF("Invalid pronto string\n"); + return false ; + } + DEBUGF("Found %d hex codes\n", p->codeLen); + + // Allocate memory to store the decoded string + //if (!(p->code = malloc(p->len))) { + // DEBUGF("Memory allocation failed\n"); + // return false ; + //} + + // Check in case our code is too long + if (p->codeLen > CODEMAX) { + DEBUGF("Code too long, edit CODEMAX and recompile\n"); + return false ; + } + + // Decode the string + cp = s; + for (i = 0; i < p->codeLen; i++, cp += 4) { + byp(&cp); + p->code[i] = htow(cp); + } + + // Announce our findings + DEBUGF("Input: |%s|\n", s); + DEBUGF("Found: |"); + for (i = 0; i < p->codeLen; i++) DEBUGF("%04x ", p->code[i]) ; + DEBUGF("|\n"); + + DEBUGF("Form [%04X] : ", p->code[0]); + if (p->code[0] == 0x0000) DEBUGF("Oscillated (Learned)\n"); + else if (p->code[0] == 0x0100) DEBUGF("Unmodulated\n"); + else DEBUGF("Unknown\n"); + if (p->code[0] != 0x0000) return false ; // Can only handle Oscillated + + // Calculate the carrier frequency (+/- 10%) & uSecs per pulse + // Pronto uses a crystal which generates a timeabse of 0.241246 + p->freq = (int)(1000000 / (p->code[1] * 0.241246)); + p->usec = (int)(((1.0 / p->freq) * 1000000) + 0.5); + ir->code[0] = p->freq / 1000; + DEBUGF("Freq [%04X] : %d Hz (%d uS/pluse) -> %d KHz\n", + p->code[1], p->freq, p->usec, ir->code[0]); + + // Set the length & start pointer for the "once" code + p->onceLen = p->code[2]; + p->once = &p->code[4]; + ir->code[1] = p->onceLen; + DEBUGF("Once [%04X] : %d\n", p->code[2], p->onceLen); + + // Set the length & start pointer for the "repeat" code + p->rptLen = p->code[3]; + p->rpt = &p->code[4 + p->onceLen]; + ir->code[2] = p->rptLen; + DEBUGF("Rpt [%04X] : %d\n", p->code[3], p->rptLen); + + // Check everything tallies + if (1 + 1 + 1 + 1 + (p->onceLen * 2) + (p->rptLen * 2) != p->codeLen) { + DEBUGF("Bad code length\n"); + return false; + } + + // Convert the IR data to our new format + ir->FF = p->code[p->codeLen - 1]; + + len = (p->onceLen * 2) + (p->rptLen * 2); + DEBUGF("Encoded: |"); + for (i = 0; i < len; i++) { + if (p->code[i+4] == ir->FF) { + ir->code[i+3] = 0xFF; + } else if (p->code[i+4] > 0xFE) { + DEBUGF("\n%04X : Mark/Space overflow\n", p->code[i+4]); + return false; + } else { + ir->code[i+3] = (p->code[i+4] * p->usec) / USECPERTICK; + } + DEBUGF("%s%d", !i ? "" : (i&1 ? "," : ", "), ir->code[i+3]); + } + DEBUGF("|\n"); + + ir->FF = (ir->FF * p->usec) / USECPERTICK; + DEBUGF("FF -> %d\n", ir->FF); + + return true; +} + +//+============================================================================= +// +void irDump (irCode_t* ir) +{ + int i, len; + + printf("uint8_t buttonName[%d] = {", len); + + printf("%d,%d, ", (ir->FF >> 8), ir->FF & 0xFF); + printf("%d,%d,%d, ", ir->code[0], ir->code[1], ir->code[2]); + + len = (ir->code[1] * 2) + (ir->code[2] * 2); + for (i = 0; i < len; i++) { + printf("%s%d", !i ? "" : (i&1 ? "," : ", "), ir->code[i+3]); + } + + printf("};\n"); + +} + +//+============================================================================= +// +int main ( ) +{ + pronto_t pCode; + irCode_t irCode; + + decode(prontoTest, &pCode, &irCode); + + irDump(&irCode); + + return 0; +} + +#endif //0 diff --git a/Firmware/Source/grovepi/src/irRecv.cpp b/Firmware/Source/grovepi/src/irRecv.cpp new file mode 100644 index 0000000..dd21f12 --- /dev/null +++ b/Firmware/Source/grovepi/src/irRecv.cpp @@ -0,0 +1,258 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +#ifdef IR_TIMER_USE_ESP32 +hw_timer_t *timer; +void IRTimer(); // defined in IRremote.cpp +#endif + +//+============================================================================= +// Decodes the received IR message +// Returns 0 if no data ready, 1 if data ready. +// Results of decoding are stored in results +// +int IRrecv::decode (decode_results *results) +{ + results->rawbuf = irparams.rawbuf; + results->rawlen = irparams.rawlen; + + results->overflow = irparams.overflow; + + if (irparams.rcvstate != STATE_STOP) return false ; + +#if DECODE_NEC + DBG_PRINTLN("Attempting NEC decode"); + if (decodeNEC(results)) return true ; +#endif + +#if DECODE_SONY + DBG_PRINTLN("Attempting Sony decode"); + if (decodeSony(results)) return true ; +#endif + +#if DECODE_SANYO + DBG_PRINTLN("Attempting Sanyo decode"); + if (decodeSanyo(results)) return true ; +#endif + +#if DECODE_MITSUBISHI + DBG_PRINTLN("Attempting Mitsubishi decode"); + if (decodeMitsubishi(results)) return true ; +#endif + +#if DECODE_RC5 + DBG_PRINTLN("Attempting RC5 decode"); + if (decodeRC5(results)) return true ; +#endif + +#if DECODE_RC6 + DBG_PRINTLN("Attempting RC6 decode"); + if (decodeRC6(results)) return true ; +#endif + +#if DECODE_PANASONIC + DBG_PRINTLN("Attempting Panasonic decode"); + if (decodePanasonic(results)) return true ; +#endif + +#if DECODE_LG + DBG_PRINTLN("Attempting LG decode"); + if (decodeLG(results)) return true ; +#endif + +#if DECODE_JVC + DBG_PRINTLN("Attempting JVC decode"); + if (decodeJVC(results)) return true ; +#endif + +#if DECODE_SAMSUNG + DBG_PRINTLN("Attempting SAMSUNG decode"); + if (decodeSAMSUNG(results)) return true ; +#endif + +#if DECODE_WHYNTER + DBG_PRINTLN("Attempting Whynter decode"); + if (decodeWhynter(results)) return true ; +#endif + +#if DECODE_AIWA_RC_T501 + DBG_PRINTLN("Attempting Aiwa RC-T501 decode"); + if (decodeAiwaRCT501(results)) return true ; +#endif + +#if DECODE_DENON + DBG_PRINTLN("Attempting Denon decode"); + if (decodeDenon(results)) return true ; +#endif + +#if DECODE_LEGO_PF + DBG_PRINTLN("Attempting Lego Power Functions"); + if (decodeLegoPowerFunctions(results)) return true ; +#endif + + // decodeHash returns a hash on any input. + // Thus, it needs to be last in the list. + // If you add any decodes, add them before this. + if (decodeHash(results)) return true ; + + // Throw away and start over + resume(); + return false; +} + +//+============================================================================= +IRrecv::IRrecv () +{ + irparams.recvpin = 2; // set the port by default to 2 + irparams.blinkflag = 0; +} + +IRrecv::IRrecv (int recvpin) +{ + irparams.recvpin = recvpin; + irparams.blinkflag = 0; +} + +IRrecv::IRrecv (int recvpin, int blinkpin) +{ + irparams.recvpin = recvpin; + irparams.blinkpin = blinkpin; + pinMode(blinkpin, OUTPUT); + irparams.blinkflag = 0; +} + + + +//+============================================================================= +// initialization +// +void IRrecv::enableIRIn ( ) +{ +// Interrupt Service Routine - Fires every 50uS +#ifdef ESP32 + // ESP32 has a proper API to setup timers, no weird chip macros needed + // simply call the readable API versions :) + // 3 timers, choose #1, 80 divider nanosecond precision, 1 to count up + timer = timerBegin(1, 80, 1); + timerAttachInterrupt(timer, &IRTimer, 1); + // every 50ns, autoreload = true + timerAlarmWrite(timer, 50, true); + timerAlarmEnable(timer); +#else + cli(); + // Setup pulse clock timer interrupt + // Prescale /8 (16M/8 = 0.5 microseconds per tick) + // Therefore, the timer interval can range from 0.5 to 128 microseconds + // Depending on the reset value (255 to 0) + TIMER_CONFIG_NORMAL(); + + // Timer2 Overflow Interrupt Enable + TIMER_ENABLE_INTR; + + TIMER_RESET; + + sei(); // enable interrupts +#endif + + // Initialize state machine variables + irparams.rcvstate = STATE_IDLE; + irparams.rawlen = 0; + + // Set pin modes + pinMode(irparams.recvpin, INPUT); +} + +//+============================================================================= +// Enable/disable blinking of pin 13 on IR processing +// +void IRrecv::blink13 (int blinkflag) +{ + irparams.blinkflag = blinkflag; + if (blinkflag) pinMode(BLINKLED, OUTPUT) ; +} + +//+============================================================================= +// Return if receiving new IR signals +// +bool IRrecv::isIdle ( ) +{ + return (irparams.rcvstate == STATE_IDLE || irparams.rcvstate == STATE_STOP) ? true : false; +} +//+============================================================================= +// Restart the ISR state machine +// +void IRrecv::resume ( ) +{ + irparams.rcvstate = STATE_IDLE; + irparams.rawlen = 0; +} +//+============================================================================= +// Shutdown the ISR +// +void IRrecv::disableIR ( ) +{ + #ifdef ESP32 + #else + TIMER_DISABLE_INTR; + #endif +} +//+============================================================================= +// Set the receive pin for the IR sensor +// +void IRrecv::setRecvpin(int recvpin) +{ + irparams.recvpin = recvpin; +} + +//+============================================================================= +// hashdecode - decode an arbitrary IR code. +// Instead of decoding using a standard encoding scheme +// (e.g. Sony, NEC, RC5), the code is hashed to a 32-bit value. +// +// The algorithm: look at the sequence of MARK signals, and see if each one +// is shorter (0), the same length (1), or longer (2) than the previous. +// Do the same with the SPACE signals. Hash the resulting sequence of 0's, +// 1's, and 2's to a 32-bit value. This will give a unique value for each +// different code (probably), for most code systems. +// +// http://arcfn.com/2010/01/using-arbitrary-remotes-with-arduino.html +// +// Compare two tick values, returning 0 if newval is shorter, +// 1 if newval is equal, and 2 if newval is longer +// Use a tolerance of 20% +// +int IRrecv::compare (unsigned int oldval, unsigned int newval) +{ + if (newval < oldval * .8) return 0 ; + else if (oldval < newval * .8) return 2 ; + else return 1 ; +} + +//+============================================================================= +// Use FNV hash algorithm: http://isthe.com/chongo/tech/comp/fnv/#FNV-param +// Converts the raw code values into a 32-bit hash code. +// Hopefully this code is unique for each button. +// This isn't a "real" decoding, just an arbitrary value. +// +#define FNV_PRIME_32 16777619 +#define FNV_BASIS_32 2166136261 + +long IRrecv::decodeHash (decode_results *results) +{ + long hash = FNV_BASIS_32; + + // Require at least 6 samples to prevent triggering on noise + if (results->rawlen < 6) return false ; + + for (int i = 1; (i + 2) < results->rawlen; i++) { + int value = compare(results->rawbuf[i], results->rawbuf[i+2]); + // Add value into the hash + hash = (hash * FNV_PRIME_32) ^ value; + } + + results->value = hash; + results->bits = 32; + results->decode_type = UNKNOWN; + + return true; +} diff --git a/Firmware/Source/grovepi/src/irSend.cpp b/Firmware/Source/grovepi/src/irSend.cpp new file mode 100644 index 0000000..c3ef3ff --- /dev/null +++ b/Firmware/Source/grovepi/src/irSend.cpp @@ -0,0 +1,90 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//+============================================================================= +void IRsend::sendRaw (const unsigned int buf[], unsigned int len, unsigned int hz) +{ + // Set IR carrier frequency + enableIROut(hz); + + for (unsigned int i = 0; i < len; i++) { + if (i & 1) space(buf[i]) ; + else mark (buf[i]) ; + } + + space(0); // Always end with the LED off +} + +//+============================================================================= +// Sends an IR mark for the specified number of microseconds. +// The mark output is modulated at the PWM frequency. +// +void IRsend::mark (unsigned int time) +{ + TIMER_ENABLE_PWM; // Enable pin 3 PWM output + if (time > 0) custom_delay_usec(time); +} + +//+============================================================================= +// Leave pin off for time (given in microseconds) +// Sends an IR space for the specified number of microseconds. +// A space is no output, so the PWM output is disabled. +// +void IRsend::space (unsigned int time) +{ + TIMER_DISABLE_PWM; // Disable pin 3 PWM output + if (time > 0) IRsend::custom_delay_usec(time); +} + + + + + +//+============================================================================= +// Enables IR output. The khz value controls the modulation frequency in kilohertz. +// The IR output will be on pin 3 (OC2B). +// This routine is designed for 36-40KHz; if you use it for other values, it's up to you +// to make sure it gives reasonable results. (Watch out for overflow / underflow / rounding.) +// TIMER2 is used in phase-correct PWM mode, with OCR2A controlling the frequency and OCR2B +// controlling the duty cycle. +// There is no prescaling, so the output frequency is 16MHz / (2 * OCR2A) +// To turn the output on and off, we leave the PWM running, but connect and disconnect the output pin. +// A few hours staring at the ATmega documentation and this will all make sense. +// See my Secrets of Arduino PWM at http://arcfn.com/2009/07/secrets-of-arduino-pwm.html for details. +// +void IRsend::enableIROut (int khz) +{ +// FIXME: implement ESP32 support, see IR_TIMER_USE_ESP32 in boarddefs.h +#ifndef ESP32 + // Disable the Timer2 Interrupt (which is used for receiving IR) + TIMER_DISABLE_INTR; //Timer2 Overflow Interrupt + + pinMode(TIMER_PWM_PIN, OUTPUT); + digitalWrite(TIMER_PWM_PIN, LOW); // When not sending PWM, we want it low + + // COM2A = 00: disconnect OC2A + // COM2B = 00: disconnect OC2B; to send signal set to 10: OC2B non-inverted + // WGM2 = 101: phase-correct PWM with OCRA as top + // CS2 = 000: no prescaling + // The top value for the timer. The modulation frequency will be SYSCLOCK / 2 / OCR2A. + TIMER_CONFIG_KHZ(khz); +#endif +} + +//+============================================================================= +// Custom delay function that circumvents Arduino's delayMicroseconds limit + +void IRsend::custom_delay_usec(unsigned long uSecs) { + if (uSecs > 4) { + unsigned long start = micros(); + unsigned long endMicros = start + uSecs - 4; + if (endMicros < start) { // Check if overflow + while ( micros() > start ) {} // wait until overflow + } + while ( micros() < endMicros ) {} // normal wait + } + //else { + // __asm__("nop\n\t"); // must have or compiler optimizes out + //} +} + diff --git a/Firmware/Source/grovepi/src/ir_Aiwa.cpp b/Firmware/Source/grovepi/src/ir_Aiwa.cpp new file mode 100644 index 0000000..ee4d46e --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Aiwa.cpp @@ -0,0 +1,105 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// AAA IIIII W W AAA +// A A I W W A A +// AAAAA I W W W AAAAA +// A A I W W W A A +// A A IIIII WWW A A +//============================================================================== + +// Based off the RC-T501 RCU +// Lirc file http://lirc.sourceforge.net/remotes/aiwa/RC-T501 + +#define AIWA_RC_T501_HZ 38 +#define AIWA_RC_T501_BITS 15 +#define AIWA_RC_T501_PRE_BITS 26 +#define AIWA_RC_T501_POST_BITS 1 +#define AIWA_RC_T501_SUM_BITS (AIWA_RC_T501_PRE_BITS + AIWA_RC_T501_BITS + AIWA_RC_T501_POST_BITS) +#define AIWA_RC_T501_HDR_MARK 8800 +#define AIWA_RC_T501_HDR_SPACE 4500 +#define AIWA_RC_T501_BIT_MARK 500 +#define AIWA_RC_T501_ONE_SPACE 600 +#define AIWA_RC_T501_ZERO_SPACE 1700 + +//+============================================================================= +#if SEND_AIWA_RC_T501 +void IRsend::sendAiwaRCT501 (int code) +{ + unsigned long pre = 0x0227EEC0; // 26-bits + + // Set IR carrier frequency + enableIROut(AIWA_RC_T501_HZ); + + // Header + mark(AIWA_RC_T501_HDR_MARK); + space(AIWA_RC_T501_HDR_SPACE); + + // Send "pre" data + for (unsigned long mask = 1UL << (26 - 1); mask; mask >>= 1) { + mark(AIWA_RC_T501_BIT_MARK); + if (pre & mask) space(AIWA_RC_T501_ONE_SPACE) ; + else space(AIWA_RC_T501_ZERO_SPACE) ; + } + +//-v- THIS CODE LOOKS LIKE IT MIGHT BE WRONG - CHECK! +// it only send 15bits and ignores the top bit +// then uses TOPBIT which is 0x80000000 to check the bit code +// I suspect TOPBIT should be changed to 0x00008000 + + // Skip first code bit + code <<= 1; + // Send code + for (int i = 0; i < 15; i++) { + mark(AIWA_RC_T501_BIT_MARK); + if (code & 0x80000000) space(AIWA_RC_T501_ONE_SPACE) ; + else space(AIWA_RC_T501_ZERO_SPACE) ; + code <<= 1; + } + +//-^- THIS CODE LOOKS LIKE IT MIGHT BE WRONG - CHECK! + + // POST-DATA, 1 bit, 0x0 + mark(AIWA_RC_T501_BIT_MARK); + space(AIWA_RC_T501_ZERO_SPACE); + + mark(AIWA_RC_T501_BIT_MARK); + space(0); +} +#endif + +//+============================================================================= +#if DECODE_AIWA_RC_T501 +bool IRrecv::decodeAiwaRCT501 (decode_results *results) +{ + int data = 0; + int offset = 1; + + // Check SIZE + if (irparams.rawlen < 2 * (AIWA_RC_T501_SUM_BITS) + 4) return false ; + + // Check HDR Mark/Space + if (!MATCH_MARK (results->rawbuf[offset++], AIWA_RC_T501_HDR_MARK )) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], AIWA_RC_T501_HDR_SPACE)) return false ; + + offset += 26; // skip pre-data - optional + while(offset < irparams.rawlen - 4) { + if (MATCH_MARK(results->rawbuf[offset], AIWA_RC_T501_BIT_MARK)) offset++ ; + else return false ; + + // ONE & ZERO + if (MATCH_SPACE(results->rawbuf[offset], AIWA_RC_T501_ONE_SPACE)) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], AIWA_RC_T501_ZERO_SPACE)) data = (data << 1) | 0 ; + else break ; // End of one & zero detected + offset++; + } + + results->bits = (offset - 1) / 2; + if (results->bits < 42) return false ; + + results->value = data; + results->decode_type = AIWA_RC_T501; + return true; +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Denon.cpp b/Firmware/Source/grovepi/src/ir_Denon.cpp new file mode 100644 index 0000000..4c9a502 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Denon.cpp @@ -0,0 +1,94 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +// Reverse Engineered by looking at RAW dumps generated by IRremote + +// I have since discovered that Denon publish all their IR codes: +// https://www.google.co.uk/search?q=DENON+MASTER+IR+Hex+Command+Sheet +// -> http://assets.denon.com/documentmaster/us/denon%20master%20ir%20hex.xls + +// Having looked at the official Denon Pronto sheet and reverse engineered +// the timing values from it, it is obvious that Denon have a range of +// different timings and protocols ...the values here work for my AVR-3801 Amp! + +//============================================================================== +// DDDD EEEEE N N OOO N N +// D D E NN N O O NN N +// D D EEE N N N O O N N N +// D D E N NN O O N NN +// DDDD EEEEE N N OOO N N +//============================================================================== + +#define BITS 14 // The number of bits in the command + +#define HDR_MARK 300 // The length of the Header:Mark +#define HDR_SPACE 750 // The lenght of the Header:Space + +#define BIT_MARK 300 // The length of a Bit:Mark +#define ONE_SPACE 1800 // The length of a Bit:Space for 1's +#define ZERO_SPACE 750 // The length of a Bit:Space for 0's + +//+============================================================================= +// +#if SEND_DENON +void IRsend::sendDenon (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(38); + + // Header + mark (HDR_MARK); + space(HDR_SPACE); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark (BIT_MARK); + space(ONE_SPACE); + } else { + mark (BIT_MARK); + space(ZERO_SPACE); + } + } + + // Footer + mark(BIT_MARK); + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +// +#if DECODE_DENON +bool IRrecv::decodeDenon (decode_results *results) +{ + unsigned long data = 0; // Somewhere to build our code + int offset = 1; // Skip the Gap reading + + // Check we have the right amount of data + if (irparams.rawlen != 1 + 2 + (2 * BITS) + 1) return false ; + + // Check initial Mark+Space match + if (!MATCH_MARK (results->rawbuf[offset++], HDR_MARK )) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], HDR_SPACE)) return false ; + + // Read the bits in + for (int i = 0; i < BITS; i++) { + // Each bit looks like: MARK + SPACE_1 -> 1 + // or : MARK + SPACE_0 -> 0 + if (!MATCH_MARK(results->rawbuf[offset++], BIT_MARK)) return false ; + + // IR data is big-endian, so we shuffle it in from the right: + if (MATCH_SPACE(results->rawbuf[offset], ONE_SPACE)) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Success + results->bits = BITS; + results->value = data; + results->decode_type = DENON; + return true; +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Dish.cpp b/Firmware/Source/grovepi/src/ir_Dish.cpp new file mode 100644 index 0000000..0a17a60 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Dish.cpp @@ -0,0 +1,54 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// DDDD IIIII SSSS H H +// D D I S H H +// D D I SSS HHHHH +// D D I S H H +// DDDD IIIII SSSS H H +//============================================================================== + +// Sharp and DISH support by Todd Treece ( http://unionbridge.org/design/ircommand ) +// +// The sned function needs to be repeated 4 times +// +// Only send the last for characters of the hex. +// I.E. Use 0x1C10 instead of 0x0000000000001C10 as listed in the LIRC file. +// +// Here is the LIRC file I found that seems to match the remote codes from the +// oscilloscope: +// DISH NETWORK (echostar 301): +// http://lirc.sourceforge.net/remotes/echostar/301_501_3100_5100_58xx_59xx + +#define DISH_BITS 16 +#define DISH_HDR_MARK 400 +#define DISH_HDR_SPACE 6100 +#define DISH_BIT_MARK 400 +#define DISH_ONE_SPACE 1700 +#define DISH_ZERO_SPACE 2800 +#define DISH_RPT_SPACE 6200 + +//+============================================================================= +#if SEND_DISH +void IRsend::sendDISH (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(56); + + mark(DISH_HDR_MARK); + space(DISH_HDR_SPACE); + + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(DISH_BIT_MARK); + space(DISH_ONE_SPACE); + } else { + mark(DISH_BIT_MARK); + space(DISH_ZERO_SPACE); + } + } + mark(DISH_HDR_MARK); //added 26th March 2016, by AnalysIR ( https://www.AnalysIR.com ) +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_JVC.cpp b/Firmware/Source/grovepi/src/ir_JVC.cpp new file mode 100644 index 0000000..03d5e7c --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_JVC.cpp @@ -0,0 +1,101 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// JJJJJ V V CCCC +// J V V C +// J V V C +// J J V V C +// J V CCCC +//============================================================================== + +#define JVC_BITS 16 +#define JVC_HDR_MARK 8000 +#define JVC_HDR_SPACE 4000 +#define JVC_BIT_MARK 600 +#define JVC_ONE_SPACE 1600 +#define JVC_ZERO_SPACE 550 +#define JVC_RPT_LENGTH 60000 + +//+============================================================================= +// JVC does NOT repeat by sending a separate code (like NEC does). +// The JVC protocol repeats by skipping the header. +// To send a JVC repeat signal, send the original code value +// and set 'repeat' to true +// +#if SEND_JVC +void IRsend::sendJVC (unsigned long data, int nbits, bool repeat) +{ + // Set IR carrier frequency + enableIROut(38); + + // Only send the Header if this is NOT a repeat command + if (!repeat){ + mark(JVC_HDR_MARK); + space(JVC_HDR_SPACE); + } + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(JVC_BIT_MARK); + space(JVC_ONE_SPACE); + } else { + mark(JVC_BIT_MARK); + space(JVC_ZERO_SPACE); + } + } + + // Footer + mark(JVC_BIT_MARK); + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +#if DECODE_JVC +bool IRrecv::decodeJVC (decode_results *results) +{ + long data = 0; + int offset = 1; // Skip first space + + // Check for repeat + if ( (irparams.rawlen - 1 == 33) + && MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK) + && MATCH_MARK(results->rawbuf[irparams.rawlen-1], JVC_BIT_MARK) + ) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = JVC; + return true; + } + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset++], JVC_HDR_MARK)) return false ; + + if (irparams.rawlen < (2 * JVC_BITS) + 1 ) return false ; + + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset++], JVC_HDR_SPACE)) return false ; + + for (int i = 0; i < JVC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], JVC_BIT_MARK)) return false ; + + if (MATCH_SPACE(results->rawbuf[offset], JVC_ONE_SPACE)) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], JVC_ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Stop bit + if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)) return false ; + + // Success + results->bits = JVC_BITS; + results->value = data; + results->decode_type = JVC; + + return true; +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_LG.cpp b/Firmware/Source/grovepi/src/ir_LG.cpp new file mode 100644 index 0000000..27bea28 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_LG.cpp @@ -0,0 +1,80 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// L GGGG +// L G +// L G GG +// L G G +// LLLLL GGG +//============================================================================== + +#define LG_BITS 28 + +#define LG_HDR_MARK 8000 +#define LG_HDR_SPACE 4000 +#define LG_BIT_MARK 600 +#define LG_ONE_SPACE 1600 +#define LG_ZERO_SPACE 550 +#define LG_RPT_LENGTH 60000 + +//+============================================================================= +#if DECODE_LG +bool IRrecv::decodeLG (decode_results *results) +{ + long data = 0; + int offset = 1; // Skip first space + + // Check we have the right amount of data + if (irparams.rawlen < (2 * LG_BITS) + 1 ) return false ; + + // Initial mark/space + if (!MATCH_MARK(results->rawbuf[offset++], LG_HDR_MARK)) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], LG_HDR_SPACE)) return false ; + + for (int i = 0; i < LG_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], LG_BIT_MARK)) return false ; + + if (MATCH_SPACE(results->rawbuf[offset], LG_ONE_SPACE)) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], LG_ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Stop bit + if (!MATCH_MARK(results->rawbuf[offset], LG_BIT_MARK)) return false ; + + // Success + results->bits = LG_BITS; + results->value = data; + results->decode_type = LG; + return true; +} +#endif + +//+============================================================================= +#if SEND_LG +void IRsend::sendLG (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(38); + + // Header + mark(LG_HDR_MARK); + space(LG_HDR_SPACE); + mark(LG_BIT_MARK); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + space(LG_ONE_SPACE); + mark(LG_BIT_MARK); + } else { + space(LG_ZERO_SPACE); + mark(LG_BIT_MARK); + } + } + space(0); // Always end with the LED off +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_Lego_PF.cpp b/Firmware/Source/grovepi/src/ir_Lego_PF.cpp new file mode 100644 index 0000000..91902c5 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Lego_PF.cpp @@ -0,0 +1,46 @@ +#include "IRremote.h" +#include "IRremoteInt.h" +#include "ir_Lego_PF_BitStreamEncoder.h" + +//============================================================================== +// L EEEEEE EEEE OOOO +// L E E O O +// L EEEE E EEE O O +// L E E E O O LEGO Power Functions +// LLLLLL EEEEEE EEEE OOOO Copyright (c) 2016 Philipp Henkel +//============================================================================== + +// Supported Devices +// LEGO® Power Functions IR Receiver 8884 + +//+============================================================================= +// +#if SEND_LEGO_PF + +#if DEBUG +namespace { +void logFunctionParameters(uint16_t data, bool repeat) { + DBG_PRINT("sendLegoPowerFunctions(data="); + DBG_PRINT(data); + DBG_PRINT(", repeat="); + DBG_PRINTLN(repeat?"true)" : "false)"); +} +} // anonymous namespace +#endif // DEBUG + +void IRsend::sendLegoPowerFunctions(uint16_t data, bool repeat) +{ +#if DEBUG + ::logFunctionParameters(data, repeat); +#endif // DEBUG + + enableIROut(38); + static LegoPfBitStreamEncoder bitStreamEncoder; + bitStreamEncoder.reset(data, repeat); + do { + mark(bitStreamEncoder.getMarkDuration()); + space(bitStreamEncoder.getPauseDuration()); + } while (bitStreamEncoder.next()); +} + +#endif // SEND_LEGO_PF diff --git a/Firmware/Source/grovepi/src/ir_Lego_PF_BitStreamEncoder.h b/Firmware/Source/grovepi/src/ir_Lego_PF_BitStreamEncoder.h new file mode 100644 index 0000000..3cd6fb5 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Lego_PF_BitStreamEncoder.h @@ -0,0 +1,115 @@ + +//============================================================================== +// L EEEEEE EEEE OOOO +// L E E O O +// L EEEE E EEE O O +// L E E E O O LEGO Power Functions +// LLLLLL EEEEEE EEEE OOOO Copyright (c) 2016, 2017 Philipp Henkel +//============================================================================== + +//+============================================================================= +// + +class LegoPfBitStreamEncoder { + private: + uint16_t data; + bool repeatMessage; + uint8_t messageBitIdx; + uint8_t repeatCount; + uint16_t messageLength; + + public: + // HIGH data bit = IR mark + high pause + // LOW data bit = IR mark + low pause + static const uint16_t LOW_BIT_DURATION = 421; + static const uint16_t HIGH_BIT_DURATION = 711; + static const uint16_t START_BIT_DURATION = 1184; + static const uint16_t STOP_BIT_DURATION = 1184; + static const uint8_t IR_MARK_DURATION = 158; + static const uint16_t HIGH_PAUSE_DURATION = HIGH_BIT_DURATION - IR_MARK_DURATION; + static const uint16_t LOW_PAUSE_DURATION = LOW_BIT_DURATION - IR_MARK_DURATION; + static const uint16_t START_PAUSE_DURATION = START_BIT_DURATION - IR_MARK_DURATION; + static const uint16_t STOP_PAUSE_DURATION = STOP_BIT_DURATION - IR_MARK_DURATION; + static const uint8_t MESSAGE_BITS = 18; + static const uint16_t MAX_MESSAGE_LENGTH = 16000; + + void reset(uint16_t data, bool repeatMessage) { + this->data = data; + this->repeatMessage = repeatMessage; + messageBitIdx = 0; + repeatCount = 0; + messageLength = getMessageLength(); + } + + int getChannelId() const { return 1 + ((data >> 12) & 0x3); } + + uint16_t getMessageLength() const { + // Sum up all marks + uint16_t length = MESSAGE_BITS * IR_MARK_DURATION; + + // Sum up all pauses + length += START_PAUSE_DURATION; + for (unsigned long mask = 1UL << 15; mask; mask >>= 1) { + if (data & mask) { + length += HIGH_PAUSE_DURATION; + } else { + length += LOW_PAUSE_DURATION; + } + } + length += STOP_PAUSE_DURATION; + return length; + } + + boolean next() { + messageBitIdx++; + if (messageBitIdx >= MESSAGE_BITS) { + repeatCount++; + messageBitIdx = 0; + } + if (repeatCount >= 1 && !repeatMessage) { + return false; + } else if (repeatCount >= 5) { + return false; + } else { + return true; + } + } + + uint8_t getMarkDuration() const { return IR_MARK_DURATION; } + + uint32_t getPauseDuration() const { + if (messageBitIdx == 0) + return START_PAUSE_DURATION; + else if (messageBitIdx < MESSAGE_BITS - 1) { + return getDataBitPause(); + } else { + return getStopPause(); + } + } + + private: + uint16_t getDataBitPause() const { + const int pos = MESSAGE_BITS - 2 - messageBitIdx; + const bool isHigh = data & (1 << pos); + return isHigh ? HIGH_PAUSE_DURATION : LOW_PAUSE_DURATION; + } + + uint32_t getStopPause() const { + if (repeatMessage) { + return getRepeatStopPause(); + } else { + return STOP_PAUSE_DURATION; + } + } + + uint32_t getRepeatStopPause() const { + if (repeatCount == 0 || repeatCount == 1) { + return STOP_PAUSE_DURATION + (uint32_t)5 * MAX_MESSAGE_LENGTH - messageLength; + } else if (repeatCount == 2 || repeatCount == 3) { + return STOP_PAUSE_DURATION + + (uint32_t)(6 + 2 * getChannelId()) * MAX_MESSAGE_LENGTH - messageLength; + } else { + return STOP_PAUSE_DURATION; + } + } +}; diff --git a/Firmware/Source/grovepi/src/ir_Mitsubishi.cpp b/Firmware/Source/grovepi/src/ir_Mitsubishi.cpp new file mode 100644 index 0000000..5068a26 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Mitsubishi.cpp @@ -0,0 +1,85 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// MMMMM IIIII TTTTT SSSS U U BBBB IIIII SSSS H H IIIII +// M M M I T S U U B B I S H H I +// M M M I T SSS U U BBBB I SSS HHHHH I +// M M I T S U U B B I S H H I +// M M IIIII T SSSS UUU BBBBB IIIII SSSS H H IIIII +//============================================================================== + +// Looks like Sony except for timings, 48 chars of data and time/space different + +#define MITSUBISHI_BITS 16 + +// Mitsubishi RM 75501 +// 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7 +// #define MITSUBISHI_HDR_MARK 250 // seen range 3500 +#define MITSUBISHI_HDR_SPACE 350 // 7*50+100 +#define MITSUBISHI_ONE_MARK 1950 // 41*50-100 +#define MITSUBISHI_ZERO_MARK 750 // 17*50-100 +// #define MITSUBISHI_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround +// #define MITSUBISHI_RPT_LENGTH 45000 + +//+============================================================================= +#if DECODE_MITSUBISHI +bool IRrecv::decodeMitsubishi (decode_results *results) +{ + // Serial.print("?!? decoding Mitsubishi:");Serial.print(irparams.rawlen); Serial.print(" want "); Serial.println( 2 * MITSUBISHI_BITS + 2); + long data = 0; + if (irparams.rawlen < 2 * MITSUBISHI_BITS + 2) return false ; + int offset = 0; // Skip first space + // Initial space + +#if 0 + // Put this back in for debugging - note can't use #DEBUG as if Debug on we don't see the repeat cos of the delay + Serial.print("IR Gap: "); + Serial.println( results->rawbuf[offset]); + Serial.println( "test against:"); + Serial.println(results->rawbuf[offset]); +#endif + +#if 0 + // Not seeing double keys from Mitsubishi + if (results->rawbuf[offset] < MITSUBISHI_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = MITSUBISHI; + return true; + } +#endif + + offset++; + + // Typical + // 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7 + + // Initial Space + if (!MATCH_MARK(results->rawbuf[offset], MITSUBISHI_HDR_SPACE)) return false ; + offset++; + + while (offset + 1 < irparams.rawlen) { + if (MATCH_MARK(results->rawbuf[offset], MITSUBISHI_ONE_MARK)) data = (data << 1) | 1 ; + else if (MATCH_MARK(results->rawbuf[offset], MITSUBISHI_ZERO_MARK)) data <<= 1 ; + else return false ; + offset++; + + if (!MATCH_SPACE(results->rawbuf[offset], MITSUBISHI_HDR_SPACE)) break ; + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < MITSUBISHI_BITS) { + results->bits = 0; + return false; + } + + results->value = data; + results->decode_type = MITSUBISHI; + return true; +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_NEC.cpp b/Firmware/Source/grovepi/src/ir_NEC.cpp new file mode 100644 index 0000000..4443a4d --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_NEC.cpp @@ -0,0 +1,98 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// N N EEEEE CCCC +// NN N E C +// N N N EEE C +// N NN E C +// N N EEEEE CCCC +//============================================================================== + +#define NEC_BITS 32 +#define NEC_HDR_MARK 9000 +#define NEC_HDR_SPACE 4500 +#define NEC_BIT_MARK 560 +#define NEC_ONE_SPACE 1690 +#define NEC_ZERO_SPACE 560 +#define NEC_RPT_SPACE 2250 + +//+============================================================================= +#if SEND_NEC +void IRsend::sendNEC (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(38); + + // Header + mark(NEC_HDR_MARK); + space(NEC_HDR_SPACE); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(NEC_BIT_MARK); + space(NEC_ONE_SPACE); + } else { + mark(NEC_BIT_MARK); + space(NEC_ZERO_SPACE); + } + } + + // Footer + mark(NEC_BIT_MARK); + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +// NECs have a repeat only 4 items long +// +#if DECODE_NEC +bool IRrecv::decodeNEC (decode_results *results) +{ + long data = 0; // We decode in to here; Start with nothing + int offset = 1; // Index in to results; Skip first entry!? + + // Check header "mark" + if (!MATCH_MARK(results->rawbuf[offset], NEC_HDR_MARK)) return false ; + offset++; + + // Check for repeat + if ( (irparams.rawlen == 4) + && MATCH_SPACE(results->rawbuf[offset ], NEC_RPT_SPACE) + && MATCH_MARK (results->rawbuf[offset+1], NEC_BIT_MARK ) + ) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = NEC; + return true; + } + + // Check we have enough data + if (irparams.rawlen < (2 * NEC_BITS) + 4) return false ; + + // Check header "space" + if (!MATCH_SPACE(results->rawbuf[offset], NEC_HDR_SPACE)) return false ; + offset++; + + // Build the data + for (int i = 0; i < NEC_BITS; i++) { + // Check data "mark" + if (!MATCH_MARK(results->rawbuf[offset], NEC_BIT_MARK)) return false ; + offset++; + // Suppend this bit + if (MATCH_SPACE(results->rawbuf[offset], NEC_ONE_SPACE )) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], NEC_ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Success + results->bits = NEC_BITS; + results->value = data; + results->decode_type = NEC; + + return true; +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Panasonic.cpp b/Firmware/Source/grovepi/src/ir_Panasonic.cpp new file mode 100644 index 0000000..bef5c5c --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Panasonic.cpp @@ -0,0 +1,78 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// PPPP AAA N N AAA SSSS OOO N N IIIII CCCC +// P P A A NN N A A S O O NN N I C +// PPPP AAAAA N N N AAAAA SSS O O N N N I C +// P A A N NN A A S O O N NN I C +// P A A N N A A SSSS OOO N N IIIII CCCC +//============================================================================== + +#define PANASONIC_BITS 48 +#define PANASONIC_HDR_MARK 3502 +#define PANASONIC_HDR_SPACE 1750 +#define PANASONIC_BIT_MARK 502 +#define PANASONIC_ONE_SPACE 1244 +#define PANASONIC_ZERO_SPACE 400 + +//+============================================================================= +#if SEND_PANASONIC +void IRsend::sendPanasonic (unsigned int address, unsigned long data) +{ + // Set IR carrier frequency + enableIROut(35); + + // Header + mark(PANASONIC_HDR_MARK); + space(PANASONIC_HDR_SPACE); + + // Address + for (unsigned long mask = 1UL << (16 - 1); mask; mask >>= 1) { + mark(PANASONIC_BIT_MARK); + if (address & mask) space(PANASONIC_ONE_SPACE) ; + else space(PANASONIC_ZERO_SPACE) ; + } + + // Data + for (unsigned long mask = 1UL << (32 - 1); mask; mask >>= 1) { + mark(PANASONIC_BIT_MARK); + if (data & mask) space(PANASONIC_ONE_SPACE) ; + else space(PANASONIC_ZERO_SPACE) ; + } + + // Footer + mark(PANASONIC_BIT_MARK); + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +#if DECODE_PANASONIC +bool IRrecv::decodePanasonic (decode_results *results) +{ + unsigned long long data = 0; + int offset = 1; + + if (!MATCH_MARK(results->rawbuf[offset++], PANASONIC_HDR_MARK )) return false ; + if (!MATCH_MARK(results->rawbuf[offset++], PANASONIC_HDR_SPACE)) return false ; + + // decode address + for (int i = 0; i < PANASONIC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], PANASONIC_BIT_MARK)) return false ; + + if (MATCH_SPACE(results->rawbuf[offset],PANASONIC_ONE_SPACE )) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset],PANASONIC_ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + results->value = (unsigned long)data; + results->address = (unsigned int)(data >> 32); + results->decode_type = PANASONIC; + results->bits = PANASONIC_BITS; + + return true; +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_RC5_RC6.cpp b/Firmware/Source/grovepi/src/ir_RC5_RC6.cpp new file mode 100644 index 0000000..f7134a9 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_RC5_RC6.cpp @@ -0,0 +1,207 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//+============================================================================= +// Gets one undecoded level at a time from the raw buffer. +// The RC5/6 decoding is easier if the data is broken into time intervals. +// E.g. if the buffer has MARK for 2 time intervals and SPACE for 1, +// successive calls to getRClevel will return MARK, MARK, SPACE. +// offset and used are updated to keep track of the current position. +// t1 is the time interval for a single bit in microseconds. +// Returns -1 for error (measured time interval is not a multiple of t1). +// +#if (DECODE_RC5 || DECODE_RC6) +int IRrecv::getRClevel (decode_results *results, int *offset, int *used, int t1) +{ + int width; + int val; + int correction; + int avail; + + if (*offset >= results->rawlen) return SPACE ; // After end of recorded buffer, assume SPACE. + width = results->rawbuf[*offset]; + val = ((*offset) % 2) ? MARK : SPACE; + correction = (val == MARK) ? MARK_EXCESS : - MARK_EXCESS; + + if (MATCH(width, ( t1) + correction)) avail = 1 ; + else if (MATCH(width, (2*t1) + correction)) avail = 2 ; + else if (MATCH(width, (3*t1) + correction)) avail = 3 ; + else return -1 ; + + (*used)++; + if (*used >= avail) { + *used = 0; + (*offset)++; + } + + DBG_PRINTLN( (val == MARK) ? "MARK" : "SPACE" ); + + return val; +} +#endif + +//============================================================================== +// RRRR CCCC 55555 +// R R C 5 +// RRRR C 5555 +// R R C 5 +// R R CCCC 5555 +// +// NB: First bit must be a one (start bit) +// +#define MIN_RC5_SAMPLES 11 +#define RC5_T1 889 +#define RC5_RPT_LENGTH 46000 + +//+============================================================================= +#if SEND_RC5 +void IRsend::sendRC5 (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(36); + + // Start + mark(RC5_T1); + space(RC5_T1); + mark(RC5_T1); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + space(RC5_T1); // 1 is space, then mark + mark(RC5_T1); + } else { + mark(RC5_T1); + space(RC5_T1); + } + } + + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +#if DECODE_RC5 +bool IRrecv::decodeRC5 (decode_results *results) +{ + int nbits; + long data = 0; + int used = 0; + int offset = 1; // Skip gap space + + if (irparams.rawlen < MIN_RC5_SAMPLES + 2) return false ; + + // Get start bits + if (getRClevel(results, &offset, &used, RC5_T1) != MARK) return false ; + if (getRClevel(results, &offset, &used, RC5_T1) != SPACE) return false ; + if (getRClevel(results, &offset, &used, RC5_T1) != MARK) return false ; + + for (nbits = 0; offset < irparams.rawlen; nbits++) { + int levelA = getRClevel(results, &offset, &used, RC5_T1); + int levelB = getRClevel(results, &offset, &used, RC5_T1); + + if ((levelA == SPACE) && (levelB == MARK )) data = (data << 1) | 1 ; + else if ((levelA == MARK ) && (levelB == SPACE)) data = (data << 1) | 0 ; + else return false ; + } + + // Success + results->bits = nbits; + results->value = data; + results->decode_type = RC5; + return true; +} +#endif + +//+============================================================================= +// RRRR CCCC 6666 +// R R C 6 +// RRRR C 6666 +// R R C 6 6 +// R R CCCC 666 +// +// NB : Caller needs to take care of flipping the toggle bit +// +#define MIN_RC6_SAMPLES 1 +#define RC6_HDR_MARK 2666 +#define RC6_HDR_SPACE 889 +#define RC6_T1 444 +#define RC6_RPT_LENGTH 46000 + +#if SEND_RC6 +void IRsend::sendRC6 (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(36); + + // Header + mark(RC6_HDR_MARK); + space(RC6_HDR_SPACE); + + // Start bit + mark(RC6_T1); + space(RC6_T1); + + // Data + for (unsigned long i = 1, mask = 1UL << (nbits - 1); mask; i++, mask >>= 1) { + // The fourth bit we send is a "double width trailer bit" + int t = (i == 4) ? (RC6_T1 * 2) : (RC6_T1) ; + if (data & mask) { + mark(t); + space(t); + } else { + space(t); + mark(t); + } + } + + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +#if DECODE_RC6 +bool IRrecv::decodeRC6 (decode_results *results) +{ + int nbits; + long data = 0; + int used = 0; + int offset = 1; // Skip first space + + if (results->rawlen < MIN_RC6_SAMPLES) return false ; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset++], RC6_HDR_MARK)) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], RC6_HDR_SPACE)) return false ; + + // Get start bit (1) + if (getRClevel(results, &offset, &used, RC6_T1) != MARK) return false ; + if (getRClevel(results, &offset, &used, RC6_T1) != SPACE) return false ; + + for (nbits = 0; offset < results->rawlen; nbits++) { + int levelA, levelB; // Next two levels + + levelA = getRClevel(results, &offset, &used, RC6_T1); + if (nbits == 3) { + // T bit is double wide; make sure second half matches + if (levelA != getRClevel(results, &offset, &used, RC6_T1)) return false; + } + + levelB = getRClevel(results, &offset, &used, RC6_T1); + if (nbits == 3) { + // T bit is double wide; make sure second half matches + if (levelB != getRClevel(results, &offset, &used, RC6_T1)) return false; + } + + if ((levelA == MARK ) && (levelB == SPACE)) data = (data << 1) | 1 ; // inverted compared to RC5 + else if ((levelA == SPACE) && (levelB == MARK )) data = (data << 1) | 0 ; // ... + else return false ; // Error + } + + // Success + results->bits = nbits; + results->value = data; + results->decode_type = RC6; + return true; +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Samsung.cpp b/Firmware/Source/grovepi/src/ir_Samsung.cpp new file mode 100644 index 0000000..f36185f --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Samsung.cpp @@ -0,0 +1,92 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// SSSS AAA MMM SSSS U U N N GGGG +// S A A M M M S U U NN N G +// SSS AAAAA M M M SSS U U N N N G GG +// S A A M M S U U N NN G G +// SSSS A A M M SSSS UUU N N GGG +//============================================================================== + +#define SAMSUNG_BITS 32 +#define SAMSUNG_HDR_MARK 5000 +#define SAMSUNG_HDR_SPACE 5000 +#define SAMSUNG_BIT_MARK 560 +#define SAMSUNG_ONE_SPACE 1600 +#define SAMSUNG_ZERO_SPACE 560 +#define SAMSUNG_RPT_SPACE 2250 + +//+============================================================================= +#if SEND_SAMSUNG +void IRsend::sendSAMSUNG (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(38); + + // Header + mark(SAMSUNG_HDR_MARK); + space(SAMSUNG_HDR_SPACE); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(SAMSUNG_BIT_MARK); + space(SAMSUNG_ONE_SPACE); + } else { + mark(SAMSUNG_BIT_MARK); + space(SAMSUNG_ZERO_SPACE); + } + } + + // Footer + mark(SAMSUNG_BIT_MARK); + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +// SAMSUNGs have a repeat only 4 items long +// +#if DECODE_SAMSUNG +bool IRrecv::decodeSAMSUNG (decode_results *results) +{ + long data = 0; + int offset = 1; // Skip first space + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], SAMSUNG_HDR_MARK)) return false ; + offset++; + + // Check for repeat + if ( (irparams.rawlen == 4) + && MATCH_SPACE(results->rawbuf[offset], SAMSUNG_RPT_SPACE) + && MATCH_MARK(results->rawbuf[offset+1], SAMSUNG_BIT_MARK) + ) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = SAMSUNG; + return true; + } + if (irparams.rawlen < (2 * SAMSUNG_BITS) + 4) return false ; + + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset++], SAMSUNG_HDR_SPACE)) return false ; + + for (int i = 0; i < SAMSUNG_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], SAMSUNG_BIT_MARK)) return false ; + + if (MATCH_SPACE(results->rawbuf[offset], SAMSUNG_ONE_SPACE)) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], SAMSUNG_ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Success + results->bits = SAMSUNG_BITS; + results->value = data; + results->decode_type = SAMSUNG; + return true; +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_Sanyo.cpp b/Firmware/Source/grovepi/src/ir_Sanyo.cpp new file mode 100644 index 0000000..4a1e9fa --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Sanyo.cpp @@ -0,0 +1,76 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// SSSS AAA N N Y Y OOO +// S A A NN N Y Y O O +// SSS AAAAA N N N Y O O +// S A A N NN Y O O +// SSSS A A N N Y OOO +//============================================================================== + +// I think this is a Sanyo decoder: Serial = SA 8650B +// Looks like Sony except for timings, 48 chars of data and time/space different + +#define SANYO_BITS 12 +#define SANYO_HDR_MARK 3500 // seen range 3500 +#define SANYO_HDR_SPACE 950 // seen 950 +#define SANYO_ONE_MARK 2400 // seen 2400 +#define SANYO_ZERO_MARK 700 // seen 700 +#define SANYO_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround +#define SANYO_RPT_LENGTH 45000 + +//+============================================================================= +#if DECODE_SANYO +bool IRrecv::decodeSanyo (decode_results *results) +{ + long data = 0; + int offset = 0; // Skip first space <-- CHECK THIS! + + if (irparams.rawlen < (2 * SANYO_BITS) + 2) return false ; + +#if 0 + // Put this back in for debugging - note can't use #DEBUG as if Debug on we don't see the repeat cos of the delay + Serial.print("IR Gap: "); + Serial.println( results->rawbuf[offset]); + Serial.println( "test against:"); + Serial.println(results->rawbuf[offset]); +#endif + + // Initial space + if (results->rawbuf[offset] < SANYO_DOUBLE_SPACE_USECS) { + //Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = SANYO; + return true; + } + offset++; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset++], SANYO_HDR_MARK)) return false ; + + // Skip Second Mark + if (!MATCH_MARK(results->rawbuf[offset++], SANYO_HDR_MARK)) return false ; + + while (offset + 1 < irparams.rawlen) { + if (!MATCH_SPACE(results->rawbuf[offset++], SANYO_HDR_SPACE)) break ; + + if (MATCH_MARK(results->rawbuf[offset], SANYO_ONE_MARK)) data = (data << 1) | 1 ; + else if (MATCH_MARK(results->rawbuf[offset], SANYO_ZERO_MARK)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < 12) { + results->bits = 0; + return false; + } + + results->value = data; + results->decode_type = SANYO; + return true; +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Sharp.cpp b/Firmware/Source/grovepi/src/ir_Sharp.cpp new file mode 100644 index 0000000..f1845e0 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Sharp.cpp @@ -0,0 +1,71 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// SSSS H H AAA RRRR PPPP +// S H H A A R R P P +// SSS HHHHH AAAAA RRRR PPPP +// S H H A A R R P +// SSSS H H A A R R P +//============================================================================== + +// Sharp and DISH support by Todd Treece: http://unionbridge.org/design/ircommand +// +// The send function has the necessary repeat built in because of the need to +// invert the signal. +// +// Sharp protocol documentation: +// http://www.sbprojects.com/knowledge/ir/sharp.htm +// +// Here is the LIRC file I found that seems to match the remote codes from the +// oscilloscope: +// Sharp LCD TV: +// http://lirc.sourceforge.net/remotes/sharp/GA538WJSA + +#define SHARP_BITS 15 +#define SHARP_BIT_MARK 245 +#define SHARP_ONE_SPACE 1805 +#define SHARP_ZERO_SPACE 795 +#define SHARP_GAP 600000 +#define SHARP_RPT_SPACE 3000 + +#define SHARP_TOGGLE_MASK 0x3FF + +//+============================================================================= +#if SEND_SHARP +void IRsend::sendSharpRaw (unsigned long data, int nbits) +{ + enableIROut(38); + + // Sending codes in bursts of 3 (normal, inverted, normal) makes transmission + // much more reliable. That's the exact behaviour of CD-S6470 remote control. + for (int n = 0; n < 3; n++) { + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(SHARP_BIT_MARK); + space(SHARP_ONE_SPACE); + } else { + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + } + } + + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + delay(40); + + data = data ^ SHARP_TOGGLE_MASK; + } +} +#endif + +//+============================================================================= +// Sharp send compatible with data obtained through decodeSharp() +// ^^^^^^^^^^^^^ FUNCTION MISSING! +// +#if SEND_SHARP +void IRsend::sendSharp (unsigned int address, unsigned int command) +{ + sendSharpRaw((address << 10) | (command << 2) | 2, SHARP_BITS); +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Sony.cpp b/Firmware/Source/grovepi/src/ir_Sony.cpp new file mode 100644 index 0000000..95b710e --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Sony.cpp @@ -0,0 +1,95 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// SSSS OOO N N Y Y +// S O O NN N Y Y +// SSS O O N N N Y +// S O O N NN Y +// SSSS OOO N N Y +//============================================================================== + +#define SONY_BITS 12 +#define SONY_HDR_MARK 2400 +#define SONY_HDR_SPACE 600 +#define SONY_ONE_MARK 1200 +#define SONY_ZERO_MARK 600 +#define SONY_RPT_LENGTH 45000 +#define SONY_DOUBLE_SPACE_USECS 500 // usually ssee 713 - not using ticks as get number wrapround + +//+============================================================================= +#if SEND_SONY +void IRsend::sendSony (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(40); + + // Header + mark(SONY_HDR_MARK); + space(SONY_HDR_SPACE); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(SONY_ONE_MARK); + space(SONY_HDR_SPACE); + } else { + mark(SONY_ZERO_MARK); + space(SONY_HDR_SPACE); + } + } + + // We will have ended with LED off +} +#endif + +//+============================================================================= +#if DECODE_SONY +bool IRrecv::decodeSony (decode_results *results) +{ + long data = 0; + int offset = 0; // Dont skip first space, check its size + + if (irparams.rawlen < (2 * SONY_BITS) + 2) return false ; + + // Some Sony's deliver repeats fast after first + // unfortunately can't spot difference from of repeat from two fast clicks + if (results->rawbuf[offset] < SONY_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + +# ifdef DECODE_SANYO + results->decode_type = SANYO; +# else + results->decode_type = UNKNOWN; +# endif + + return true; + } + offset++; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset++], SONY_HDR_MARK)) return false ; + + while (offset + 1 < irparams.rawlen) { + if (!MATCH_SPACE(results->rawbuf[offset++], SONY_HDR_SPACE)) break ; + + if (MATCH_MARK(results->rawbuf[offset], SONY_ONE_MARK)) data = (data << 1) | 1 ; + else if (MATCH_MARK(results->rawbuf[offset], SONY_ZERO_MARK)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < 12) { + results->bits = 0; + return false; + } + results->value = data; + results->decode_type = SONY; + return true; +} +#endif + diff --git a/Firmware/Source/grovepi/src/ir_Template.cpp b/Firmware/Source/grovepi/src/ir_Template.cpp new file mode 100644 index 0000000..09630c0 --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Template.cpp @@ -0,0 +1,179 @@ +/* +Assuming the protocol we are adding is for the (imaginary) manufacturer: Shuzu + +Our fantasy protocol is a standard protocol, so we can use this standard +template without too much work. Some protocols are quite unique and will require +considerably more work in this file! It is way beyond the scope of this text to +explain how to reverse engineer "unusual" IR protocols. But, unless you own an +oscilloscope, the starting point is probably to use the rawDump.ino sketch and +try to spot the pattern! + +Before you start, make sure the IR library is working OK: + # Open up the Arduino IDE + # Load up the rawDump.ino example sketch + # Run it + +Now we can start to add our new protocol... + +1. Copy this file to : ir_Shuzu.cpp + +2. Replace all occurrences of "Shuzu" with the name of your protocol. + +3. Tweak the #defines to suit your protocol. + +4. If you're lucky, tweaking the #defines will make the default send() function + work. + +5. Again, if you're lucky, tweaking the #defines will have made the default + decode() function work. + +You have written the code to support your new protocol! + +Now you must do a few things to add it to the IRremote system: + +1. Open IRremote.h and make the following changes: + REMEMEBER to change occurences of "SHUZU" with the name of your protocol + + A. At the top, in the section "Supported Protocols", add: + #define DECODE_SHUZU 1 + #define SEND_SHUZU 1 + + B. In the section "enumerated list of all supported formats", add: + SHUZU, + to the end of the list (notice there is a comma after the protocol name) + + C. Further down in "Main class for receiving IR", add: + //...................................................................... + #if DECODE_SHUZU + bool decodeShuzu (decode_results *results) ; + #endif + + D. Further down in "Main class for sending IR", add: + //...................................................................... + #if SEND_SHUZU + void sendShuzu (unsigned long data, int nbits) ; + #endif + + E. Save your changes and close the file + +2. Now open irRecv.cpp and make the following change: + + A. In the function IRrecv::decode(), add: + #ifdef DECODE_NEC + DBG_PRINTLN("Attempting Shuzu decode"); + if (decodeShuzu(results)) return true ; + #endif + + B. Save your changes and close the file + +You will probably want to add your new protocol to the example sketch + +3. Open MyDocuments\Arduino\libraries\IRremote\examples\IRrecvDumpV2.ino + + A. In the encoding() function, add: + case SHUZU: Serial.print("SHUZU"); break ; + +Now open the Arduino IDE, load up the rawDump.ino sketch, and run it. +Hopefully it will compile and upload. +If it doesn't, you've done something wrong. Check your work. +If you can't get it to work - seek help from somewhere. + +If you get this far, I will assume you have successfully added your new protocol +There is one last thing to do. + +1. Delete this giant instructional comment. + +2. Send a copy of your work to us so we can include it in the library and + others may benefit from your hard work and maybe even write a song about how + great you are for helping them! :) + +Regards, + BlueChip +*/ + +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// +// +// S H U Z U +// +// +//============================================================================== + +#define BITS 32 // The number of bits in the command + +#define HDR_MARK 1000 // The length of the Header:Mark +#define HDR_SPACE 2000 // The lenght of the Header:Space + +#define BIT_MARK 3000 // The length of a Bit:Mark +#define ONE_SPACE 4000 // The length of a Bit:Space for 1's +#define ZERO_SPACE 5000 // The length of a Bit:Space for 0's + +#define OTHER 1234 // Other things you may need to define + +//+============================================================================= +// +#if SEND_SHUZU +void IRsend::sendShuzu (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(38); + + // Header + mark (HDR_MARK); + space(HDR_SPACE); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark (BIT_MARK); + space(ONE_SPACE); + } else { + mark (BIT_MARK); + space(ZERO_SPACE); + } + } + + // Footer + mark(BIT_MARK); + space(0); // Always end with the LED off +} +#endif + +//+============================================================================= +// +#if DECODE_SHUZU +bool IRrecv::decodeShuzu (decode_results *results) +{ + unsigned long data = 0; // Somewhere to build our code + int offset = 1; // Skip the Gap reading + + // Check we have the right amount of data + if (irparams.rawlen != 1 + 2 + (2 * BITS) + 1) return false ; + + // Check initial Mark+Space match + if (!MATCH_MARK (results->rawbuf[offset++], HDR_MARK )) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], HDR_SPACE)) return false ; + + // Read the bits in + for (int i = 0; i < SHUZU_BITS; i++) { + // Each bit looks like: MARK + SPACE_1 -> 1 + // or : MARK + SPACE_0 -> 0 + if (!MATCH_MARK(results->rawbuf[offset++], BIT_MARK)) return false ; + + // IR data is big-endian, so we shuffle it in from the right: + if (MATCH_SPACE(results->rawbuf[offset], ONE_SPACE)) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // Success + results->bits = BITS; + results->value = data; + results->decode_type = SHUZU; + return true; +} +#endif diff --git a/Firmware/Source/grovepi/src/ir_Whynter.cpp b/Firmware/Source/grovepi/src/ir_Whynter.cpp new file mode 100644 index 0000000..8b7bf0e --- /dev/null +++ b/Firmware/Source/grovepi/src/ir_Whynter.cpp @@ -0,0 +1,91 @@ +#include "IRremote.h" +#include "IRremoteInt.h" + +//============================================================================== +// W W H H Y Y N N TTTTT EEEEE RRRRR +// W W H H Y Y NN N T E R R +// W W W HHHHH Y N N N T EEE RRRR +// W W W H H Y N NN T E R R +// WWW H H Y N N T EEEEE R R +//============================================================================== + +#define WHYNTER_BITS 32 +#define WHYNTER_HDR_MARK 2850 +#define WHYNTER_HDR_SPACE 2850 +#define WHYNTER_BIT_MARK 750 +#define WHYNTER_ONE_MARK 750 +#define WHYNTER_ONE_SPACE 2150 +#define WHYNTER_ZERO_MARK 750 +#define WHYNTER_ZERO_SPACE 750 + +//+============================================================================= +#if SEND_WHYNTER +void IRsend::sendWhynter (unsigned long data, int nbits) +{ + // Set IR carrier frequency + enableIROut(38); + + // Start + mark(WHYNTER_ZERO_MARK); + space(WHYNTER_ZERO_SPACE); + + // Header + mark(WHYNTER_HDR_MARK); + space(WHYNTER_HDR_SPACE); + + // Data + for (unsigned long mask = 1UL << (nbits - 1); mask; mask >>= 1) { + if (data & mask) { + mark(WHYNTER_ONE_MARK); + space(WHYNTER_ONE_SPACE); + } else { + mark(WHYNTER_ZERO_MARK); + space(WHYNTER_ZERO_SPACE); + } + } + + // Footer + mark(WHYNTER_ZERO_MARK); + space(WHYNTER_ZERO_SPACE); // Always end with the LED off +} +#endif + +//+============================================================================= +#if DECODE_WHYNTER +bool IRrecv::decodeWhynter (decode_results *results) +{ + long data = 0; + int offset = 1; // skip initial space + + // Check we have the right amount of data + if (irparams.rawlen < (2 * WHYNTER_BITS) + 6) return false ; + + // Sequence begins with a bit mark and a zero space + if (!MATCH_MARK (results->rawbuf[offset++], WHYNTER_BIT_MARK )) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], WHYNTER_ZERO_SPACE)) return false ; + + // header mark and space + if (!MATCH_MARK (results->rawbuf[offset++], WHYNTER_HDR_MARK )) return false ; + if (!MATCH_SPACE(results->rawbuf[offset++], WHYNTER_HDR_SPACE)) return false ; + + // data bits + for (int i = 0; i < WHYNTER_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], WHYNTER_BIT_MARK)) return false ; + + if (MATCH_SPACE(results->rawbuf[offset], WHYNTER_ONE_SPACE )) data = (data << 1) | 1 ; + else if (MATCH_SPACE(results->rawbuf[offset], WHYNTER_ZERO_SPACE)) data = (data << 1) | 0 ; + else return false ; + offset++; + } + + // trailing mark + if (!MATCH_MARK(results->rawbuf[offset], WHYNTER_BIT_MARK)) return false ; + + // Success + results->bits = WHYNTER_BITS; + results->value = data; + results->decode_type = WHYNTER; + return true; +} +#endif + diff --git a/Firmware/firmware_update.sh b/Firmware/firmware_update.sh new file mode 100755 index 0000000..b6ba564 --- /dev/null +++ b/Firmware/firmware_update.sh @@ -0,0 +1,29 @@ +#! /bin/bash +REPO_PATH=$(readlink -f $(dirname $0) | grep -E -o "^(.*?\\GrovePi)") +echo "Updating the GrovePi firmware" +echo "=============================" +echo " http://www.dexterindustries.com/grovepi " +echo " Run this program: " +echo " sudo ./firmware_update.sh" +echo " " +echo "=============================" + +read -n1 -p "Do you want to update the firmware? [y,n]" input +if [[ $input == "Y" || $input == "y" ]]; then + printf "\nMake sure that GrovePi is connected to Raspberry Pi" +else + printf "\nExiting..." + exit 0 +fi +if [ $(find $pwd -name "grove_pi_firmware.hex") ]; then + printf "\nFirmware found" +else + printf "\nFirmware not found\nCheck if firmware is there or run again\nPress any key to exit" + read + exit 0 +fi + +printf "\nPress any key to start firmware update\n. . ."; +read -n1 +source $REPO_PATH/Firmware/grovepi_firmware_update.sh +update_grovepi_firmware diff --git a/Firmware/grove_pi_firmware.hex b/Firmware/grove_pi_firmware.hex new file mode 100644 index 0000000..d384ba8 --- /dev/null +++ b/Firmware/grove_pi_firmware.hex @@ -0,0 +1,1247 @@ +:100000000C9462000C948A000C948A000C944C0EA0 +:100010000C94A20D0C94F80C0C948A000C94AD1561 +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C9439150C948A000C948A0054 +:100040000C94E8120C948A000C9458130C943213FC +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C94F60E0C948A00000000002400270077 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000008000201000003040700000000000027 +:1000C00000007E2111241FBECFEFD8E0DEBFCDBFE0 +:1000D00011E0A0E0B1E0E2E8FDE402C005900D927D +:1000E000AC34B107D9F725E0ACE4B1E001C01D9212 +:1000F000AD3EB207E1F710E0C2E6D0E004C02197C0 +:10010000FE010E941C23C136D107C9F70E940B20B3 +:100110000C94BF260C9400008F929F92AF92BF92D6 +:10012000CF92DF92EF92FF920F931F93CF93DF93C3 +:1001300000D000D0CDB7DEB78091B6059091B7055D +:10014000049739F48091B8059091B905892B09F489 +:10015000E4C18091E405863009F07BC08091B4054C +:100160009091B505019711F00C94A30A8091E505D3 +:100170008F70F82E2091E50530E0B4E03595279595 +:10018000BA95E1F7822F8370E82ED090E505409173 +:10019000E6058091E70550E0542F44275A01A80E48 +:1001A000B11C0F2D10E0F801E75EFD4F4F0180817B +:1001B000882319F08F2D0E94241062E08F2D0E9459 +:1001C000361281E0F4018083F801E257FD4FE082AE +:1001D000A50160E070E0F801A3E0EE0FFF1FAA9513 +:1001E000E1F7EF52FE4F40835183628373831482A1 +:1001F000158216821782E1100AC02D2D22952695B0 +:1002000026952370A80140545C4F01E01CC0F1E02A +:10021000EF127DC18CE0809FF001819FF00D1124D1 +:10022000EE5DFD4F108211821282138214821582BC +:10023000168217821086118612861386A8014054F2 +:100240005C4F00E021E061ED7BE08F2D0E948A137E +:100250005EC18091E405893059F48091B405909194 +:10026000B505019711F00C94A30A8091E5054DC1E5 +:100270008091E4058A3051F58091B4059091B505DF +:10028000019711F00C94A30AE091E50524E0E29FA8 +:10029000F0011124E355FE4F80819181A281B38149 +:1002A0002091E4052093CF058093D005492F5A2F44 +:1002B0006B2F77274093D105AD01662777274093B1 +:1002C000D2058B2F9927AA27BB2705C18091E4056A +:1002D0008B30D1F48091B4059091B505019711F060 +:1002E0000C94A30A00E010E0F801E75EFD4F808166 +:1002F000882319F0802F0E9424100F5F1F4F0930B0 +:10030000110591F70C94A30A8091E4058C30E1F576 +:100310008091B4059091B505019711F00C94A30A52 +:100320002091E5052A30F0F080E090E040E050E0D8 +:10033000FC01E75EFD4F208130E0082E02C0220F55 +:10034000331F0A94E2F7420F531F0196893091053B +:1003500079F78091E4058093CF054093D0055093C1 +:10036000D105D5C08091E4058093CF051092D005CA +:10037000E22FF0E0E75EFD4F808101C0880F2A95F3 +:10038000EAF78093D105C3C08091E4058E3009F06F +:1003900053C08091B4059091B505019711F00C946C +:1003A000A30A1091E5059090E605183008F0AFC05B +:1003B000C12ED12CC601875E9D4F5C01FC0180815E +:1003C00001E0010F882331F0812F0E942410802F3B +:1003D0000E94241027E02C9DC0012D9D900D11241A +:1003E0009C012C583A4F7901F90110830183128244 +:1003F0001382148215829682808162E00E943612F6 +:10040000F701818162E00E943612F601E65EFD4F3F +:1004100081E08083F5018083F701808100E022E0A4 +:10042000A70161E77BE00E948A13F701818122E046 +:10043000A70161E77BE00ACF8091E4058D3009F0E8 +:100440004DC08091B4059091B505019711F00C94C1 +:10045000A30AE091E50527E0E29FF0011124EC58A2 +:10046000FA4F82809380A480B5806401092C000C2F +:10047000EE08FF08F7FE14C0E091F903F091FA03CB +:100480000190F081E02D6DE289EF93E009956627F8 +:100490007727CB016C197D098E099F094AE003C0BB +:1004A0004AE0C701B6010E94DC1789E491E00E948E +:1004B000CA178091E4058093CF058092D005892DDD +:1004C00099278093D105990F880B982F8093D20597 +:1004D000990F880B982F8093D30519C08091E4055C +:1004E0008F3011F00C94A30A8091B4059091B5055A +:1004F000019711F00C94A30A1091E505183038F417 +:10050000812F0E94241081E0810F0E9424101092FC +:10051000B5051092B4050C94A30A81E090E0909385 +:10052000B9058093B8058091E405813049F4809144 +:10053000E4058093CF058091E5050E94DD119DC201 +:100540008091E405823029F46091E6058091E5050B +:1005500030C08091E4058330C1F48091E5050E94AC +:1005600072129093AC018093AB012091E40520932B +:10057000CF059C0197FF02C021503F4F3093D0051B +:1005800060E071E00E9471222EC48091E405843005 +:1005900009F05EC00091E605E02EF12C1091E50512 +:1005A00061E0812F0E943612E114F10429F460E029 +:1005B000812F0E940612C7C72FEFE216F10409F43B +:1005C00045C0E12FF0E0E255FF4FE491E330F9F050 +:1005D00048F4E130B9F0E230A1F584B5806284BD21 +:1005E00008BDB1C7E730E9F0E83019F1E43049F56A +:1005F00080918000806280938000F0928B00E09276 +:100600008A00A1C784B5806884BD07BD9CC780915E +:100610008000806880938000F0928900E0928800DA +:1006200092C78091B00080688093B0000093B300BF +:100630008AC78091B00080628093B0000093B400BC +:1006400082C730E8E316F1040CF4B1CF61E0B0CF1B +:100650008091E405853029F46091E6058091E505F7 +:10066000E2C18091E405873009F060C0F090E505B3 +:100670000F2D10E01093AA010093A90161E08F2DC6 +:100680000E94361260E08F2D0E94061283E090E0F7 +:100690000197F1F761E08F2D0E9406128FE090E044 +:1006A0000197F1F760E08F2D0E94061260E08F2D18 +:1006B0000E943612F801E656FF4F6491F801EA579E +:1006C000FF4FE491F0E0EE0FFF1FE458FF4F8591DC +:1006D000949108EF14E221E030E0462F0E94FB18CD +:1006E000611571058105910549F0DC01CB01019689 +:1006F000A11DB11DBC01CD019F7003C060E070E081 +:10070000CB012AE330E040E050E00E94A722809134 +:10071000E4058093CF05BB2757FDBA95A52F942FED +:10072000832F8093D0052093D1050DC78091E405D8 +:10073000883069F48091E4058093CF0581E080934F +:10074000D00584E08093D1051092D205FCC680913B +:10075000E405883209F032C18091B4059091B50565 +:10076000892B09F4F0C68091E605811104C08091BF +:10077000E5056BE013C08091E605813021F480919E +:10078000E50566E10BC08091E605823021F080919D +:10079000E605833029F48091E50565E10E94531751 +:1007A00061E08091E9030E9406126AEF70E080E048 +:1007B00090E00E94AE122FB7F8948091CA039091F6 +:1007C000CB03A091CC03B091CD032FBF4091EC039C +:1007D0005091ED036091EE037091EF03841795073C +:1007E000A607B70740F41092EC031092ED031092A5 +:1007F000EE031092EF032091F003211112C04091FB +:10080000EC035091ED036091EE037091EF03841BB4 +:10081000950BA60BB70B803D9740A105B10508F4D9 +:1008200089C01092F0032FB7F8948091CA03909179 +:10083000CB03A091CC03B091CD032FBF8093EC03E9 +:100840009093ED03A093EE03B093EF031092E703B0 +:100850001092E6031092E5031092E4031092E30372 +:1008600061E08091E9030E94361260E08091E90323 +:100870000E94061264E170E080E090E00E94AE12F7 +:10088000F89461E08091E9030E9406128BE990E000 +:100890000197F1F760E08091E9030E943612F12C94 +:1008A00010E081E000E0C82ED12C8091E9030E9485 +:1008B000DD118C159D0519F40F5F0F3FB1F7809185 +:1008C000E9030E94DD110F3FC1F0143098F010FDD4 +:1008D00011C0EF2DE695E695E695F0E0ED51FC4F61 +:1008E0009081990F90832091EB03201710F4916071 +:1008F0009083F3941F5F1535A9F67894F7E2FF15FE +:10090000B0F42091E70330E04091E3038091E403E9 +:1009100090E0840F911D4091E503840F911D40915B +:10092000E603840F911D99272817390719F080E0F5 +:1009300090E025C08091EA038B3009F0A1C060915E +:10094000E50370E080E090E00E944B246093F103A7 +:100950007093F2038093F3039093F4036091E303A5 +:1009600070E080E090E00E944B246093F503709368 +:10097000F6038093F7039093F80381EF93E02091BF +:10098000E4052093BA05FC0120E030E02F5F3F4FE3 +:100990004191D901A654BA4F4C9324303105B1F797 +:1009A000FC01349685E090E02191DC01A654BA4F19 +:1009B0002C93019689309105B9F7A9CD8091E40572 +:1009C0008233A1F56091E6054091E5058091E5054A +:1009D0008F5F2091E50530E02250310997E0929F2A +:1009E000F001939FF00D1124E158FE4FA82FB0E0C5 +:1009F000B183A08350E05383428391E0611101C031 +:100A000090E0948397E0929F8001939F100D1124B2 +:100A100001581E4FF8011682158261E00E943612BD +:100A200061E0F80182810E9436128DC58091E40553 +:100A3000833309F0AAC08091E50590E0029747E072 +:100A4000489FF001499FF00D1124E158FE4F80812D +:100A50009181892B09F07AC098C08091E405853195 +:100A600009F408C58091E405883109F06CC58091CE +:100A7000E4058093CF050E9440198093D00563C59B +:100A80008B3008F47ACF8551823008F076CF109100 +:100A9000E503612F6F7770E080E090E00E944D24C5 +:100AA00020E030E040E853E40E94FD246B017C012B +:100AB0008091E603682F70E080E090E00E944D2472 +:100AC0009B01AC01C701B6010E94322320E030E057 +:100AD00040E251E40E94A32317FD09C06093F10393 +:100AE0007093F2038093F3039093F4030BC0DC0143 +:100AF000CB01B0588093F1039093F203A093F303DA +:100B0000B093F4036091E30370E080E090E00E9412 +:100B10004B2420E030E040E853E40E94FD246B01C8 +:100B20007C018091E403682F70E080E090E00E94F7 +:100B30004D249B01AC01C701B6010E94322320E085 +:100B400030E040E251E40E94A3230FCF9091E605EC +:100B50002091E50530E022503109429FF001439F8A +:100B6000F00D1124E158FE4F81E0911101C080E0A9 +:100B7000848347E0429FC001439F900D1124815818 +:100B80009E4FFC01658176812BC18091E405843301 +:100B900079F58091E50590E0029727E0289FF00124 +:100BA000299FF00D1124E158FE4F80819181892BFE +:100BB000F9F08091E6052091E50530E022503109F9 +:100BC0008B3008F08AE06FEF7FEF02C0660F771F6F +:100BD0008A95E2F76095709547E0429FC001439F78 +:100BE000900D112481589E4FFC0176836583F8C0D7 +:100BF0008091E405853381F48091E50590E00297CA +:100C000027E0289FF001299FF00D1124E158FE4FA5 +:100C100080819181892BB9F48091E405863309F0B4 +:100C200060C08091E50590E0029757E0589FF00181 +:100C3000599FF00D1124E158FE4F80819181892B3D +:100C400009F066C04EC03091E7059091E6054091ED +:100C5000E50550E042505109249FF001259FF00D19 +:100C60001124E158FE4F9923D1F19B3008F09AE00E +:100C7000915061E070E002C0660F771F9A95E2F72D +:100C8000332379F087E0849FD001859FB00D112434 +:100C9000A158BE4F15962D913C911697622B732B40 +:100CA00010C06095709587E0849FD001859FB00D3E +:100CB0001124A158BE4F15962D913C911697622391 +:100CC000732387E0849FD001859FB00D1124A15824 +:100CD000BE4F16967C936E931597CF0181C091E01D +:100CE000C7CF8091E405873309F040C08091E505C6 +:100CF00090E0029747E0489FF001499FF00D1124D2 +:100D0000E158FE4F80819181892B09F057C02EC098 +:100D10009091E6052091E50530E022503109529F7F +:100D2000B001539F700D1124AB0141585E4F9923C0 +:100D3000D9F09B3008F09AE0915061E070E002C079 +:100D4000660F771F9A95E2F787E0829FF001839FF5 +:100D5000F00D1124E158FE4F25813681622773275B +:100D600076836583CA013CC091E0E6CF8091E405BB +:100D70008833E1F58091E50590E0029727E0289F10 +:100D8000F001299FF00D1124E158FE4F80819181DF +:100D9000892B61F18091E50590E00297289FF00191 +:100DA000299FF00D1124E158FE4F958186812091F5 +:100DB000E4052093CF059093D00515C06091E6051A +:100DC0008091E7052091E50570E0782B30E0225016 +:100DD0003109429FC001439F900D112481589E4FBD +:100DE0000E946716B0C38093D105ADC38091E4051E +:100DF000863429F59091E5058091E5050091E5059A +:100E000010E0025011099801220F331F020F131F27 +:100E100003591E4FF80180839F5F918360E00E9419 +:100E2000361260E0F80181810E94361260E0F8011C +:100E300080810E94061260E0F8018181BACB809126 +:100E4000E405873479F48091E50590E00297FC0190 +:100E5000EE0FFF1F8E0F9F1FFC01E359FE4F808195 +:100E6000811124C08091E4058834A9F58091E505BD +:100E700090E00297FC01EE0FFF1F8E0F9F1FFC01F9 +:100E8000E359FE4F8081882331F16091E60590910E +:100E9000E7058091E50570E0792B90E002979C01D1 +:100EA000220F331F820F931F40E038C02091E605C8 +:100EB0008091E50590E00297283058F4285FFC0106 +:100EC000EE0FFF1F8E0F9F1FFC01E359FE4F228381 +:100ED0003AC32FE0F4CF8091E405893421F5809165 +:100EE000E50590E00297FC01EE0FFF1F8E0F9F1F9C +:100EF000FC01E359FE4F80818823A9F06091E6054B +:100F00009091E7058091E50570E0792B90E00297DC +:100F10009C01220F331F820F931F41E083599E4F84 +:100F20000E946B1710C38091E4058A34C9F4809144 +:100F3000E50590E00297FC01EE0FFF1F8E0F9F1F4B +:100F4000FC01E359FE4F8081882351F0E091E705D1 +:100F50008091E505EF70F0E0E45FFE4F808115C001 +:100F60008091E4058B34F9F48091E50590E00297D7 +:100F7000FC01EE0FFF1F8E0F9F1FFC01E359FE4F78 +:100F80008081882381F08091E70589832091E6059F +:100F90008091E50590E00297AC01440F551F840F46 +:100FA000951F41E0B2C28091E4058C3409F044C041 +:100FB0008091E50590E00297FC01EE0FFF1F8E0F78 +:100FC0009F1FFC01E359FE4F80818823A9F1809186 +:100FD000E6059091E5052AE0622F0E9465228F7058 +:100FE000E82FF0E0E45FFE4F808189838091E60581 +:100FF0009091E5050E946522E92FF0E0E45FFE4F45 +:10100000808180688A838091E7059091E5050E9440 +:1010100065228F70E82FF0E0E45FFE4F80818B83C4 +:101020008091E7059091E5050E946522E92FF0E0A7 +:10103000E45FFE4F80814EC08091E4058D3499F5C8 +:101040008091E50590E00297FC01EE0FFF1F8E0FE7 +:101050009F1FFC01E359FE4F8081882321F1D0902E +:10106000E605E090E705F4E0EF9E7001112400E052 +:1010700010E00E151F0509F466C28D2D0E94721234 +:10108000BC012091E50530E022503109C901880FEB +:10109000991F820F931F40E083599E4F0E946B1748 +:1010A0000F5F1F4FE6CF8091E4058E34A9F4809145 +:1010B000E50590E00297FC01EE0FFF1F8E0F9F1FCA +:1010C000FC01E359FE4F8081882331F08FEF898343 +:1010D0008A838B838C830EC28091E4058F3479F4EC +:1010E0008091E50590E00297FC01EE0FFF1F8E0F47 +:1010F0009F1FFC01E359FE4F80818111F7C1809150 +:10110000E4058A3569F48091E50580936A01809150 +:10111000E60580936B018091E70580936C0113C213 +:101120008091E4058B35B1F42091E6054091E50509 +:101130006091E505E091E5054F5FF0E0329735E01D +:101140003E9FC0013F9F900D1124845B9E4F0E94E3 +:101150005121F9C18091E4058C3509F047C02091F7 +:10116000E6054091E5056091E505E091E5054F5FF5 +:10117000F0E0329735E03E9FC0013F9F900D112473 +:10118000845B9E4F0E9451214091E70542FB44271A +:1011900040F9E42EE1941091E70516951170119530 +:1011A0008091E7058170F82EF194C12CD12C45E097 +:1011B000B42E8091E60590E0C816D9060CF0C3C1A4 +:1011C0002091E50530E022503109B29EC001B39E66 +:1011D000900D11240F2D212F4E2D6C2D845B9E4FD1 +:1011E0000E94C416FFEFCF1ADF0AE3CF8091E40517 +:1011F0008D3509F056C08091E605811118C06091C7 +:10120000E7052091E50530E02250310945E0429F95 +:10121000C001439F900D112400916C0120916B013E +:1012200040916A01845B9E4F0E94C4168CC18091DC +:10123000E50590E0029725E0289FF001299FF00D39 +:101240001124E45BFE4FC280E12CF12CD12C15E07F +:10125000EC14FD040CF077C18091E605813039F47F +:101260008091E70590E0E816F90609F056C18091F3 +:10127000E605823039F48091E70590E08E159F05F0 +:101280000CF04BC18091E605833039F48091E7057D +:1012900090E0E816F9060CF040C12FEFE21AF20ACE +:1012A000D7CF8091E4058E3509F043C08091E705E2 +:1012B000811103C081E08093E7058091E50590E00E +:1012C000029725E0289FF001299FF00D1124E45B8F +:1012D000FE4FC280E090E605F12CD12C15E0EC1415 +:1012E000FD040CF030C18091E6056091E705F7013F +:1012F000E81BF109CF0170E00E947122892BA9F44B +:101300002091E50530E022503109129FC001139F62 +:10131000900D112400916C0120916B0140916A01A4 +:101320006E2D845B9E4F0E94C416FFEFEF1AFF0ADA +:10133000D6CF8091E4058F3509F071C08091E50525 +:1013400090E0029725E0289FF001299FF00D1124DD +:10135000E45BFE4FC2808091E705D12C81112FC044 +:10136000E12CF12C15E0EC14FD040CF0ECC08091A4 +:10137000E60590E02091E50530E022503109E816BD +:10138000F90664F4129FC001139F900D112400917F +:101390006C0120916B0140916A0108C0129FC0014D +:1013A000139F900D112400E020E040E06E2D845B3F +:1013B0009E4F0E94C4162FEFE21AF20AD4CF760194 +:1013C00015E0E114F10409F4BEC08091E605F601D0 +:1013D000E81BF1092091E50530E022503109EE16B5 +:1013E000FF0664F0129FC001139F900D112400911D +:1013F0006C0120916B0140916A0108C0129FC001ED +:10140000139F900D112400E020E040E06E2D845BDE +:101410009E4F0E94C416F1E0EF1AF108D2CF8091DE +:10142000E405863109F019CB6091E50570E080E0B4 +:1014300090E04AE00E94DC178091E5058093A304C8 +:10144000F89482E08093B0008093B10094E690938A +:10145000B3001092B2008093700078948093A2043D +:101460001092A6048091A30460E00E9436121092AC +:10147000E40569C00E9440192091D303892B79F1BA +:101480008091E4058093CF052093D0059091D503FA +:101490008091D6039093D1058093D2058091D70394 +:1014A0009091D803A091D903B091DA038093D3052A +:1014B000492F5A2F6B2F77274093D405AD0166270C +:1014C00077274093D5058B2F9927AA27BB27809391 +:1014D000D60582E08093A2041092A60434C08091C5 +:1014E000E4058093CF052093D0052DC019821A8280 +:1014F0001B821C828091E50590E002979C01220FDF +:10150000331F820F931F20E044E0BE016F5F7F4FC7 +:1015100083599E4F0E94601516C02091E50530E06A +:1015200022503109129FC001139F900D1124009188 +:101530006C0120916B0140916A016E2D845B9E4F7E +:101540000E94C416AACE0F900F900F900F90DF91BB +:10155000CF911F910F91FF90EF90DF90CF90BF90B0 +:10156000AF909F908F90089585ED8093BC008091FF +:10157000BC0084FDFCCF1092AD0308954091FB02A6 +:10158000262F30E0240F311D21323105DCF420916B +:10159000AD032430C9F4FC0180E090E0861758F4D4 +:1015A0003091FB022191DC01A552BD4FA30FB11D6B +:1015B0002C930196F3CF8091FB02680F6093FB029E +:1015C00080E0089581E0089582E00895E091B803F5 +:1015D000F091B903309729F01092AF031092AE0347 +:1015E00009940895CF93DF93AC01E091B603F09195 +:1015F000B7033097F1F09091B1038091B003981741 +:10160000C0F090E0292F30E02617370754F4D901B5 +:10161000A554BD4FEA01C20FD31F88818C939F5FF1 +:10162000F1CF1092B1036093B003CB01DF91CF9162 +:101630000994DF91CF9108950895E091B1038091CD +:10164000B003E81730F4F0E0E554FD4F808190E0FE +:1016500008958FEF9FEF08959091B1038091B003AB +:10166000981750F4E92FF0E0E554FD4F208130E069 +:101670009F5F9093B10302C02FEF3FEFC901089520 +:101680008091B00390E02091B103821B91090895ED +:10169000CF93DF9300D0CDB7DEB7CB01642F498362 +:1016A0005A830E94BE0A4981842F5A81952F0F9038 +:1016B0000F90DF91CF910895CF93DF931F92CDB715 +:1016C000DEB7698361E0CE0101960E94BE0A81E027 +:1016D00090E00F90DF91CF910895089580E090E021 +:1016E00008951F93CF93DF93EC0188810E94DD1151 +:1016F000182F89810E94DD119C013327210F311D94 +:1017000021303105A9F4181740F48A819B81AC81FE +:10171000BD810196A11DB11D07C08A819B81AC814D +:10172000BD810197A109B1098A839B83AC83BD83E5 +:101730008A819B81AC81BD81B7FF05C01A821B8263 +:101740001C821D8215C04A815B816C817D818E81E6 +:1017500090E0A0E0B0E084179507A607B70744F42F +:101760008E8190E0A0E0B0E08A839B83AC83BD8350 +:10177000688170E080E090E04AE00E94DC1788E435 +:1017800091E00E94CA17698170E080E090E04AE031 +:101790000E94DC1788E491E0DF91CF911F910C94B7 +:1017A000CA17CF92DF92EF92FF920F931F93CF93BE +:1017B000DF93FC01C081D0E0FE01E257FD4F808144 +:1017C000811112C0CC0FDD1FCC0FDD1FC956DD4FBC +:1017D00088819981AA81BB810196A11DB11D888351 +:1017E0009983AA83BB8359C08081813009F055C099 +:1017F00061110FC00E9489122CE02C9FF0012D9FD7 +:10180000F00D1124EE5DFD4F60877187828793870D +:101810000EC00E9489122CE02C9FF0012D9FF00D2C +:101820001124EE5DFD4F64837583868397832CE0DE +:101830002C9FC0012D9F900D1124EC01CE5DDD4F3A +:101840008C819D81AE81BF81088519852A853B8564 +:10185000081719072A073B0700F5C880D980EA80D6 +:10186000FB80BC01CD01601B710B820B930B28EE3A +:1018700033E040E050E00E948522C901330FAA0BFB +:10188000BB0BC80ED91EEA1EFB1EC882D982EA8293 +:10189000FB821C821D821E821F82DF91CF911F91CD +:1018A0000F91FF90EF90DF90CF9008954F925F924D +:1018B0006F927F928F929F92AF92BF92DF92EF9240 +:1018C000FF920F931F93CF93DF930E94891228EE0C +:1018D00033E040E050E00E94852249015A01C0E017 +:1018E000D0E04CE0D42EFE01E75EFD4F80818823DE +:1018F00009F469C08E0133E0000F111F3A95E1F73A +:10190000F801EF52FE4F84819581A681B7812401B1 +:101910003501481A590A6A0A7B0A80819181A2819D +:10192000B381481659066A067B0608F44CC0DE01EE +:10193000A257BD4F8C91882339F18130E9F5DC9EA7 +:10194000C001DD9E900D11249C012E5D3D4F79015B +:10195000D9016D917D918D919C9120813181428140 +:1019600053810E945522A30192010E948522FE010B +:10197000EE0FFF1FEE0FFF1FE355FE4F2083318355 +:1019800042835383F70114C0CE01880F991F880F3B +:10199000991FFC01E956FD4F40815181628173819D +:1019A000DC01A355BE4F4D935D936D937C931397CC +:1019B0001082118212821382F801EF52FE4F84824C +:1019C0009582A682B7822196C930D10509F08BCFC6 +:1019D000DF91CF911F910F91FF90EF90DF90BF901B +:1019E000AF909F908F907F906F905F904F900895F1 +:1019F0001F920F920FB60F9211242F933F934F9384 +:101A00005F936F937F938F939F93AF93BF93CF9386 +:101A1000DF93EF93FF93C9B120916D00DC2FD09538 +:101A200080916403D823909163039C238D2F892B8D +:101A3000D0916203DC27D223D823C0936203D0FF66 +:101A40000BC0E0914203F09143036C2F61708091D1 +:101A50004403909145030995D1FF0CC0C1FB662753 +:101A600060F9E0914603F09147038091480390911B +:101A700049030995D2FF0CC0C2FB662760F9E091CB +:101A80004A03F0914B0380914C0390914D030995CB +:101A9000D3FF0CC0C3FB662760F9E0914E03F091C1 +:101AA0004F0380915003909151030995D4FF0CC0CE +:101AB000C4FB662760F9E0915203F09153038091D3 +:101AC0005403909155030995D5FF0CC0C5FB6627BB +:101AD00060F9E0915603F09157038091580390917B +:101AE00059030995D6FF0CC0C6FB662760F9E09143 +:101AF0005A03F0915B0380915C0390915D0309951B +:101B0000D7FF0DC06C2F661F6627661FE0915E032E +:101B1000F0915F0380916003909161030995FF91BB +:101B2000EF91DF91CF91BF91AF919F918F917F9175 +:101B30006F915F914F913F912F910F900FBE0F903A +:101B40001F9018951F920F920FB60F9211242F938A +:101B50003F934F935F936F937F938F939F93AF9335 +:101B6000BF93CF93DF93EF93FF93C6B120916C00A7 +:101B7000DC2FD09580918703D823909186039C23F6 +:101B80008D2F892BD0918503DC27D223D823C093B6 +:101B90008503D0FF0BC0E0916503F09166036C2FC5 +:101BA000617080916703909168030995D1FF0CC023 +:101BB000C1FB662760F9E0916903F0916A038091A7 +:101BC0006B0390916C030995D2FF0CC0C2FB662792 +:101BD00060F9E0916D03F0916E0380916F03909135 +:101BE00070030995D3FF0CC0C3FB662760F9E09131 +:101BF0007103F091720380917303909174030995BE +:101C0000D4FF0CC0C4FB662760F9E0917503F09126 +:101C1000760380917703909178030995D5FF0CC0E6 +:101C2000C5FB662760F9E0917903F0917A03809112 +:101C30007B0390917C030995D6FF0CC0C6FB6627F9 +:101C400060F9E0917D03F0917E0380917F03909194 +:101C500080030995D7FF0DC06C2F661F6627661F8E +:101C6000E0918103F091820380918303909184033A +:101C70000995FF91EF91DF91CF91BF91AF919F9126 +:101C80008F917F916F915F914F913F912F910F9025 +:101C90000FBE0F901F9018951F920F920FB60F92C4 +:101CA00011242F933F934F935F936F937F938F9361 +:101CB0009F93AF93BF93CF93DF93EF93FF93C3B102 +:101CC00020916B00DC2FD0958091AA03D8239091AE +:101CD000A9039C238D2F892BD091A803DC27D22325 +:101CE000D823C093A803D0FF0BC0E0918803F091E4 +:101CF00089036C2F617080918A0390918B03099501 +:101D0000D1FF0CC0C1FB662760F9E0918C03F09114 +:101D10008D0380918E0390918F030995D2FF0CC0A3 +:101D2000C2FB662760F9E0919003F09191038091E6 +:101D30009203909193030995D3FF0CC0C3FB6627D0 +:101D400060F9E0919403F09195038091960390914E +:101D500097030995D4FF0CC0C4FB662760F9E09196 +:101D60009803F091990380919A0390919B030995B0 +:101D7000D5FF0CC0C5FB662760F9E0919C03F0918C +:101D80009D0380919E0390919F030995D6FF0CC0FF +:101D9000C6FB662760F9E091A003F091A103809152 +:101DA000A2039091A3030995D7FF0DC06C2F661F66 +:101DB0006627661FE091A403F091A5038091A60316 +:101DC0009091A7030995FF91EF91DF91CF91BF917A +:101DD000AF919F918F917F916F915F914F913F91C3 +:101DE0002F910F900FBE0F901F9018951F920F927A +:101DF0000FB60F9211242F933F934F935F936F93DE +:101E00007F938F939F93AF93BF93EF93FF938091B3 +:101E1000B900887F803609F49CC068F5883209F4DF +:101E20005BC090F4803109F454C038F4882309F47D +:101E3000F6C0883009F44DC0F6C0883109F44CC0B2 +:101E4000803209F45DC0EFC0803409F468C048F402 +:101E5000803309F455C0883309F0E5C080931E0330 +:101E6000D8C0803509F44FC0883509F45DC0883486 +:101E700009F0D9C0D6C0883909F4C7C0A8F488379A +:101E800009F467C038F4883609F463C0803709F470 +:101E900060C0C9C0883809F4B8C0803909F45FC08F +:101EA000803809F0C0C05BC0803B09F486C038F4BC +:101EB000803A09F466C0883A09F47FC0B4C0803C17 +:101EC00009F4A7C0883C09F4A4C0883B09F48AC07F +:101ED000AAC08091410310C09091400380913F03BC +:101EE000981770F5E091400381E08E0F80934003D6 +:101EF000F0E0E15EFC4F80818093BB0085EC86C002 +:101F000080931E038EC0E091400381E08E0F80938A +:101F100040038091BB00F0E0E15EFC4F8083909134 +:101F2000400380913F036EC0E091400381E08E0F3B +:101F3000809340038091BB00F0E0E15EFC4F808322 +:101F40008091AC0381116DC081E08093AB0384EA82 +:101F500061C083E08093AD0310921D03CFCF8091C9 +:101F60001D03803208F051C0E0911D0381E08E0F07 +:101F700080931D038091BB00F0E0E350FD4F808310 +:101F8000BDCF85EC8093BC001092AD0380911D0302 +:101F9000803230F4E0911D03F0E0E350FD4F1082F9 +:101FA00060911D0370E0E091B203F091B3038DEFF7 +:101FB00092E0099510921D0336C084E08093AD0332 +:101FC0001092FC021092FB02E091B403F091B50371 +:101FD00009958091FB02811105C081E08093FB028D +:101FE0001092DB02E091FC0281E08E0F8093FC02F4 +:101FF000F0E0E552FD4F80818093BB009091FC02A0 +:102000008091FB02981708F479CF85E88093BC0093 +:102010000AC085EC8093BC001092AD0304C01092FE +:102020001E030E94B40AFF91EF91BF91AF919F915F +:102030008F917F916F915F914F913F912F910F9071 +:102040000FBE0F901F9018950F931F93CF93DF93A0 +:10205000C82FD0E08E01075E1D4FE80198819923BB +:1020600009F475C0863108F06FC0883058F048E632 +:1020700050E08E3008F458C0863108F458C0A0E013 +:10208000B0E057C0982FADE6B0E048E650E0E2E09F +:10209000F0E0EE0FFF1FEA5FFE4F0190F081E02DB0 +:1020A00041155105D9F11097C9F13097B9F1292F90 +:1020B00030E06FB7F894220F331F220F331F2E0F1B +:1020C0003F1FE901198218821B821A8221E030E049 +:1020D00001C0220F9A95EAF7209591A1922391A32E +:1020E00092A1922392A39C9129232C939C919111CC +:1020F00014C0FA019081883060F071E08E3008F4ED +:1021000070E021E030E001C0220F7A95EAF72095D7 +:1021100001C02BEF2923EA0128836FBF61E00E94F1 +:102120003612F801108213C0ABE6B0E002C0ACE694 +:10213000B0E0E1E08E3008F4E0E08E3010F498EF8B +:1021400001C092EF980FA4CF40E050E095CFDF910F +:10215000CF911F910F910895833081F028F4813041 +:1021600099F08230A1F008958730A9F08830B9F055 +:102170008430D1F4809180008F7D03C080918000F5 +:102180008F7780938000089584B58F7702C084B5DF +:102190008F7D84BD08958091B0008F7703C08091BA +:1021A000B0008F7D8093B0000895CF92DF92EF92C0 +:1021B000FF920F931F93CF93DF936C017A018B01F2 +:1021C000C0E0D0E0CE15DF0589F0D8016D918D011A +:1021D000D601ED91FC910190F081E02DC6010995A9 +:1021E000892B11F47E0102C02196ECCFC701DF914B +:1021F000CF911F910F91FF90EF90DF90CF900895B6 +:10220000FC01538D448D252F30E0842F90E0821BFC +:10221000930B541710F0CF96089501970895FC0181 +:10222000918D828D981761F0828DDF01A80FB11D0D +:102230005D968C91928D9F5F9F73928F90E0089531 +:102240008FEF9FEF0895FC01918D828D981731F0EB +:10225000828DE80FF11D858D90E008958FEF9FEF3F +:102260000895FC01918D228D892F90E0805C9F4F15 +:10227000821B91098F739927089589EF93E00E943B +:10228000311121E0892B09F420E0822F0895FC010F +:10229000848DDF01A80FB11DA35ABF4F2C91848DEF +:1022A00090E001968F739927848FA689B7892C9324 +:1022B000A089B1898C9180648C93938D848D9813BF +:1022C00006C00288F389E02D80818F7D8083089588 +:1022D000EF92FF920F931F93CF93DF93EC0181E076 +:1022E000888F9B8D8C8D981305C0E889F989808132 +:1022F00085FD24C0F62E0B8D10E00F5F1F4F0F736E +:102300001127E02E8C8DE8120CC00FB607FCFACF17 +:10231000E889F989808185FFF5CFCE010E944711B8 +:10232000F1CF8B8DFE01E80FF11DE35AFF4FF082D4 +:102330000B8FEA89FB898081806207C0EE89FF8963 +:102340006083E889F98980818064808381E090E0FE +:10235000DF91CF911F910F91FF90EF900895CF9350 +:10236000DF93EC01888D8823C9F0EA89FB8980819D +:1023700085FD05C0A889B9898C9186FD0FC00FB66F +:1023800007FCF5CF808185FFF2CFA889B9898C91B0 +:1023900085FFEDCFCE010E944711E7CFDF91CF91AE +:1023A000089580E090E0892B29F00E943D11811171 +:1023B0000C94000008950E94B326CF93DF93282F3A +:1023C00030E0F901E255FF4F8491F901E656FF4FE5 +:1023D000D491F901EA57FF4FC491CC2391F08111B8 +:1023E0000E94AC10EC2FF0E0EE0FFF1FE458FF4FFF +:1023F000A591B491EC91ED2381E090E021F480E08F +:1024000002C080E090E0DF91CF9108951F93CF93B9 +:10241000DF93282F30E0F901E255FF4F8491F90155 +:10242000E656FF4FD491F901EA57FF4FC491CC23F0 +:10243000C9F0162F81110E94AC10EC2FF0E0EE0FC6 +:10244000FF1FEE58FF4FA591B4918FB7F89411116B +:1024500005C09C91ED2FE095E92302C0EC91ED2B96 +:10246000EC938FBFDF91CF911F910895CF93DF93AE +:1024700090E0FC01E656FF4F2491FC01EA57FF4F24 +:102480008491882361F190E0880F991FFC01E8593D +:10249000FF4FC591D491FC01EE58FF4FA591B49127 +:1024A000611109C09FB7F8948881209582238883A1 +:1024B000EC912E230BC0623061F49FB7F894388101 +:1024C000822F809583238883EC912E2B2C939FBFA2 +:1024D00006C08FB7F894E8812E2B28838FBFDF9139 +:1024E000CF9108958E3008F08E508770806480936D +:1024F0007C0080917A00806480937A0080917A00D9 +:1025000086FDFCCF809178002091790090E0922B9D +:1025100008953FB7F8948091CF039091D003A09194 +:10252000D103B091D20326B5A89B05C02F3F19F067 +:102530000196A11DB11D3FBFBA2FA92F982F882743 +:10254000820F911DA11DB11DBC01CD0142E0660F9E +:10255000771F881F991F4A95D1F708958F929F92F0 +:10256000AF92BF92CF92DF92EF92FF926B017C010C +:102570000E9489124B015C01C114D104E104F104F1 +:10258000F1F00E948912DC01CB0188199909AA098E +:10259000BB09883E9340A105B10570F321E0C21A42 +:1025A000D108E108F10888EE880E83E0981EA11C8E +:1025B000B11CC114D104E104F10419F7DDCFFF907F +:1025C000EF90DF90CF90BF90AF909F908F90089545 +:1025D0001F920F920FB60F9211242F933F938F9358 +:1025E0009F93AF93BF938091CA039091CB03A09127 +:1025F000CC03B091CD033091CE0323E0230F2D37D0 +:1026000020F40196A11DB11D05C026E8230F0296F6 +:10261000A11DB11D2093CE038093CA039093CB03D9 +:10262000A093CC03B093CD038091CF039091D003BE +:10263000A091D103B091D2030196A11DB11D809349 +:10264000CF039093D003A093D103B093D203BF9153 +:10265000AF919F918F913F912F910F900FBE0F904F +:102660001F9018951F920F920FB60F9211242F935F +:102670003F934F935F936F937F938F939F93AF930A +:10268000BF93EF93FF9389EF93E00E944711FF916F +:10269000EF91BF91AF919F918F917F916F915F91DA +:1026A0004F913F912F910F900FBE0F901F90189553 +:1026B0001F920F920FB60F9211242F938F939F9317 +:1026C000EF93FF93E0910904F0910A048081E09177 +:1026D0000F04F091100482FD12C0908180911204C9 +:1026E0008F5F8F7320911304821751F0E0911204D1 +:1026F000F0E0E750FC4F958F8093120401C0808179 +:10270000FF91EF919F918F912F910F900FBE0F909E +:102710001F9018958F929F92AF92BF92CF92DF92A7 +:10272000EF92FF920F931F93CF93DF935B0186315C +:1027300008F0ADC0883060F0C8E6CC2ED12C8E30C9 +:1027400008F495C0863108F495C060E070E094C04C +:10275000382F92E06DE670E0B8E6CB2ED12CE92F51 +:10276000F0E0EE0FFF1FEA5FFE4F0190F081E02DD9 +:10277000C114D10409F48EC06115710509F48AC031 +:10278000309709F487C0A114B10409F483C0C32FA2 +:10279000D0E0A1E0B0E002C0AA0FBB1F3A95E2F77B +:1027A0001FB7F8944E01880C991C880C991C7F0166 +:1027B000E80CF91CE701B982A8825B834A8331A146 +:1027C0004A2F4095522F5D7F513011F43A2B01C0B2 +:1027D000342331A33FEF320F22A1323010F42A2BE1 +:1027E00001C0242322A3EB0128812A2B2883E601A0 +:1027F0003881883050F051E08E3008F450E021E00C +:1028000001C0220F5A95EAF701C024E0232BE6010C +:10281000288380A18423913021F0923021F043B1AC +:1028200003C046B101C049B14A23482B40A300234D +:10283000E1F0842F90E08095909522A130E08223F2 +:10284000932321A12423822B8A239B23892B69F0A4 +:10285000A42361E009F460E0E401CE0FDF1FD7019B +:10286000ED91FC918A819B8109951FBF13C06BE696 +:1028700070E002C06CE670E091E08E3008F490E009 +:102880008E3010F438EF01C032EF380F68CFC12C12 +:10289000D12C58CFDF91CF911F910F91FF90EF90E6 +:1028A000DF90CF90BF90AF909F908F9008950F933F +:1028B0001F93CF93DF938C0161E0FC0181810E9423 +:1028C0003612C3ECD0E0CE010197F1F760E0F801D9 +:1028D00080810E943612CE010197F1F760E0F80185 +:1028E00081810E9436122197F1F7DF91CF911F91DC +:1028F0000F91089561E0FC0181810E94361283EC02 +:1029000090E00197F1F70895CF92DF92EF92FF9256 +:102910000F931F93CF93DF93EC01E62E88E0F82E00 +:1029200093ECC92ED12C61E088810E943612C60139 +:102930000197F1F7E0FE02C060E001C061E089812B +:102940000E94361203EC10E0C6010197F1F760E037 +:1029500088810E943612C6010197F1F7E694FA9435 +:10296000F110E1CF61E088810E94361260E0898138 +:102970000E943612C8010197F1F760E088810E9439 +:102980003612C8010197F1F789810E94DD11F82EF6 +:10299000811104C061E089810E94361203EC10E0CD +:1029A000C8010197F1F761E088810E943612F801B1 +:1029B0003197F1F781E0F11001C080E0DF91CF9114 +:1029C0001F910F91FF90EF90DF90CF900895EF92BD +:1029D000FF920F931F93CF937C018B01C0E1612F76 +:1029E000661F6627661FF70182810E940612F701A3 +:1029F00080810E94DD1161E0892B09F060E0F70120 +:102A000080810E940612000F111FC15041F7CF9123 +:102A10001F910F91FF90EF900895EF92FF920F9307 +:102A20001F93CF93DF93EC01062F18E08BE4E82E81 +:102A3000F12C07FF02C061E001C060E089810E94C3 +:102A4000061260E088810E940612C7010197F1F723 +:102A500061E088810E940612C7010197F1F7000F1B +:102A6000115039F7DF91CF911F910F91FF90EF90A7 +:102A700008951F920F920FB60F9211242F933F9338 +:102A80004F935F936F937F938F939F93AF93BF9376 +:102A9000EF93FF93E091BE03F091BF030995FF917F +:102AA000EF91BF91AF919F918F917F916F915F91C6 +:102AB0004F913F912F910F900FBE0F901F9018953F +:102AC000AF92BF92DF92EF92FF920F931F93CF933B +:102AD000DF9300D0CDB7DEB75C01F62EE42E29835C +:102AE0007A830E947A1460E4C5010E948414C501AF +:102AF0000E945714C5010E947A142981237060EC4A +:102B0000620FC5010E948414DF2C0F2D7A81172FCC +:102B1000802F8D198E1538F4F80161918F01C50150 +:102B20000E948414F5CFC5010E945714C5010E946C +:102B30007A14F50162816058C5010E948414C501B0 +:102B40000F900F90DF91CF911F910F91FF90EF9019 +:102B5000DF90BF90AF900C9457141F920F920FB656 +:102B60000F9211242F933F934F935F936F937F9313 +:102B70008F939F93AF93BF93EF93FF938091A304A1 +:102B80000E94DD112091A7043091A8042F5F3F4FD0 +:102B90003093A8042093A7049091A604953618F0CA +:102BA00096E09093A2049091A2049430C9F128F485 +:102BB000923069F09330D1F05EC0953009F451C085 +:102BC000963009F058C091E09093730551C081117F +:102BD00052C02091A7043091A8042436310508F48E +:102BE00042C0109273051092A6041CC0813009F0F7 +:102BF00042C0E091A60491E09E0F9093A604F0E0FD +:102C00002091A7043091A804EE0FFF1FEE55FB4F53 +:102C1000308727831092A8041092A70494E029C05B +:102C2000811117C0E091A60491E09E0F9093A60435 +:102C3000F0E02091A7043091A804EE0FFF1FEE559D +:102C4000FB4F308727831092A8041092A70493E0CB +:102C500010C02091A7043091A8042536310558F002 +:102C600007C0811108C01092A8041092A70403C0E5 +:102C700095E09093A2049091A5049923B9F0811155 +:102C80000AC08091A404882321F08091A40461E00B +:102C900009C02D9A0BC08091A404882331F0809143 +:102CA000A40460E00E94061201C02D98FF91EF91EC +:102CB000BF91AF919F918F917F916F915F914F9154 +:102CC0003F912F910F900FBE0F901F901895EF928C +:102CD000FF920F931F93CF93DF93EC017B01CB0106 +:102CE00093709E838D8360E070E0CE010E94E714B4 +:102CF00000E010E08C81882369F0C701002E02C03B +:102D0000880F991F0A94E2F7BC016627727091FF41 +:102D10000FC00CC0C701002E02C0969587950A947B +:102D2000E2F7BC016170772780FF02C06FEF70E0AF +:102D3000CE010E94E7140F5F1F4F0A301105D1F634 +:102D400060E070E0CE010E94E71460E070E0CE0128 +:102D50000E94E71460E08A810E94061283E290E0FC +:102D60000197F1F714E061E08A810E94061260E0A9 +:102D70008A810E9406121150B1F7DF91CF911F9105 +:102D80000F91FF90EF9008954F925F926F927F9214 +:102D90008F929F92AF92BF92CF92DF92EF92FF926B +:102DA0000F931F93CF93DF93EC01962E842E722EF8 +:102DB00060E00E940D1560E0CE010E940D1560E0FC +:102DC000CE010E940D1560E0CE010E940D1583E03A +:102DD000989E5001112475018FEFE81AF80A6501D9 +:102DE00082E0C80ED11C10E08A81181708F03BC0A1 +:102DF00019110FC0EB81FC81EA0DFB1D8082EB8174 +:102E0000FC81EE0DFF1D7082EB81FC81EC0DFD1D40 +:102E10000083EB81FC8183E0189FE00DF11D1124FC +:102E200042805180608047FC02C060EE01C060ECCF +:102E300046FE606157FE686056FE646067FE626031 +:102E400066FE6160CE010E940D15642DCE010E94C8 +:102E50000D15652DCE010E940D15662DCE010E9427 +:102E60000D151F5FC1CF60E0CE010E940D1560E01F +:102E7000CE010E940D1560E0CE010E940D1560E0AC +:102E8000CE01DF91CF911F910F91FF90EF90DF90D6 +:102E9000CF90BF90AF909F908F907F906F905F90FA +:102EA0004F900C940D15CF93DF93C3EED3E08E8338 +:102EB0006F8396E0988791E09D8760E00E943612CC +:102EC00061E08E810E94061219861A861B861C8676 +:102ED000DF91CF9108957F928F929F92AF92BF9290 +:102EE000CF92DF92EF92FF920F931F93CF93DF93D6 +:102EF00000D000D0CDB7DEB77C019B01942E04E258 +:102F000011E0FE0131967724739440E05F018FE376 +:102F1000882ED801DE90CE908D01C901B6010E94A5 +:102F20007122CB01009751F4911004C0772011F069 +:102F3000433011F4808213C0108211C0A62FAF70ED +:102F4000B0E0A45FBE4F5C9150838C9DB0018D9D1D +:102F5000700D9C9D700D1124261B370B712C4F5F3B +:102F600031964430B1F620E0B501C7010E946015EA +:102F70000F900F900F900F90DF91CF911F910F91B5 +:102F8000FF90EF90DF90CF90BF90AF909F908F9089 +:102F90007F900895009769F0FC0101900020E9F707 +:102FA0003197AF01481B590BBC0189EF93E00C949A +:102FB000D51080E090E008958F929F92AF92BF92DB +:102FC0000F931F93CF93DF93CDB7DEB7A1970FB6C3 +:102FD000F894DEBF0FBECDBF19A2423008F44AE01C +:102FE0008E010F5D1F4F842E912CA12CB12CA501B9 +:102FF00094010E948522E62FB901CA0101501109EE +:10300000EA3014F4E05D01C0E95CD801EC93232BB5 +:10301000242B252B61F7C8010E94CA17A1960FB671 +:10302000F894DEBF0FBECDBFDF91CF911F910F91FE +:10303000BF90AF909F908F9008958091C9038111A8 +:103040007BC08091E405813041F442E050E06FECB8 +:1030500075E086E994E00E94480B8091E405833096 +:1030600009F46FC08091E405873009F46AC080914B +:10307000E405883309F465C08091E405883009F4DB +:1030800069C08091E405843109F464C08091E4054D +:103090008E3141F449E050E06FEC75E086E994E050 +:1030A0000E94480B8091E405883241F449E050E0E9 +:1030B0006AEB75E086E994E00E94480B8091E40594 +:1030C0008A3041F445E050E06FEC75E086E994E029 +:1030D0000E94480B8091E4058C3041F443E050E0BD +:1030E0006FEC75E086E994E00E94480B8091E4055E +:1030F000853151F448E050E06FEC75E086E994E0EA +:103100000E94480B1092CF058091E4058D3041F468 +:1031100045E050E06FEC75E086E994E00E94480BD2 +:103120008091E4058831F9F442E050E06FEC75E0FD +:1031300086E994E00C94480B67E186E994E00C94EE +:103140005C0B43E050E06FEC75E086E994E00E9490 +:10315000480B92CF44E050E06FEC75E086E994E0D4 +:103160000E94480B93CF08950F931F93CF93DF9343 +:103170008091C90381112FC001E010E08091B0035C +:103180002091B103821719F190E0821B91090497F5 +:1031900061F41092B9051092B8051092B70510921B +:1031A000B6051093B5050093B405C091B605D0914E +:1031B000B705CE0101969093B7058093B60586E9D1 +:1031C00094E00E942C0BCC51DA4F8883D7CF81E05A +:1031D0008093C9030BC09091B0038091B1039817FD +:1031E00029F086E994E00E942C0BF5CFDF91CF9176 +:1031F0001F910F910895CF92DF92EF92FF920F935C +:103200001F93E82FF92F05C0015011092109310939 +:1032100061F1908196239417B9F305C0015011090B +:103220002109310911F1908196239413F7CFC12C14 +:10323000D12CE12CF12C0AC08FEFC81AD80AE80A69 +:10324000F80A0C151D052E053F0579F080818623AF +:10325000841791F36C2D7D2D8E2D9F2D1F910F9135 +:10326000FF90EF90DF90CF90089560E070E080E0F5 +:1032700090E01F910F91FF90EF90DF90CF90089515 +:103280002F923F924F925F926F927F928F929F9276 +:10329000AF92BF92CF92DF92EF92FF920F931F9364 +:1032A000CF93DF9300D000D000D0CDB7DEB789EA4E +:1032B00094E09093DE038093DD038091A60490E078 +:1032C0009093E0038093DF038091730590E09093E7 +:1032D000E2038093E1038091A204853009F07BC36F +:1032E0008091AB049091AC04885891098D3591057B +:1032F00088F48091A604843041F48091AD049091CB +:10330000AE048097479708F401C28091A6048434E4 +:1033100008F0E3C18091A6048A3108F454C080917A +:10332000A9049091AA04843F914080F41092DC0398 +:103330001092DB038FEF9FEFDC018093D703909314 +:10334000D803A093D903B093DA035BC08091AB0498 +:103350009091AC0485974B97B0F5EFEAF4E082E0EA +:1033600090E040E050E0BA018C010F5F1F4F2091C8 +:10337000A60430E0021713076CF49F0122503109B4 +:10338000D9012D913C91275031092730310508F49E +:10339000F5C1C8010197959587959093DC038093BB +:1033A000DB030C972CF41092DC031092DB030BC0B0 +:1033B0004093D7035093D8036093D9037093DA03F3 +:1033C00084E090E0FCC28091A6048A3108F44DC0EC +:1033D0008091A9049091AA048032934008F4A6CF6A +:1033E0008091AB049091AC04C697869708F4E2C133 +:1033F0003CC04093D7035093D8036093D903709394 +:10340000DA038BE090E0DBC2208131812552310963 +:103410002B31310508F0DEC1440F551F661F771FA1 +:103420004160029634968C010F5F1F4F2091A604D5 +:1034300030E00217130764F49F0122503109D901CB +:103440002D913C912C5031092B303105E8F2C80107 +:103450000197959587959093DC038093DB030C97F8 +:1034600044F61092DC031092DB038091A6048232B2 +:1034700008F44CC08091AB049091AC040697079778 +:1034800008F044C0EFEAF4E082E090E040E050E071 +:10349000BA018C010F5F1F4F2091A60430E0021784 +:1034A0001307DCF4DF0112972D913C9111972E51F7 +:1034B00031092731310508F09AC1440F551F661FA5 +:1034C000771F4160208131813496235031092530A6 +:1034D000310510F40296DDCFC801019795958795C7 +:1034E0009093DC038093DB0340972CF41092DC0371 +:1034F0001092DB030BC04093D7035093D803609323 +:10350000D9037093DA038CE090E059C21C821B82CD +:1035100081E090E09A8389838091A6048D3008F43D +:103520006BC049E753E0BE016D5F7F4FCE0101964E +:103530000E94E121892B09F05FC049E753E0BE01F9 +:103540006D5F7F4FCE0101960E94E121019709F046 +:1035500053C049E753E0BE016D5F7F4FCE01019636 +:103560000E94E121892B09F047C0C12CD12C7601A2 +:1035700000E010E08091A60490E029813A812817AC +:1035800039075CF549E753E0BE016D5F7F4FCE011F +:1035900001960E94E1215C0149E753E0BE016D5FA5 +:1035A0007F4FCE0101960E94E121B1E0AB16B1043C +:1035B00049F4892B09F5CC0CDD1CEE1CFF1C68942A +:1035C000C0F808C0AB28C1F40197B1F4CC0CDD1CE5 +:1035D000EE1CFF1C0F5F1F4FCDCF1093DC03009339 +:1035E000DB03C092D703D092D803E092D903F092C4 +:1035F000DA0381E090E0E3C11C821B8281E090E06D +:103600009A8389838091DF039091E003181619064D +:103610000CF058C0E091DD03F091DE0382E090E011 +:103620009A8389838281938189974E9708F04AC053 +:1036300083E090E09A838983848195810B970A9730 +:1036400008F040C04CEB51E0BE016D5F7F4FCE01F2 +:1036500001960E94E121892BA9F54CEB51E0BE01B6 +:103660006D5F7F4FCE0101960E94E121019751F5D8 +:10367000C12CD12C760100E010E029813A818091A3 +:10368000DF039091E003281739070CF0F3C04CEBEF +:1036900051E0BE016D5F7F4FCE0101960E94E12196 +:1036A0004C010330110509F0AFC04CEB51E0BE01F5 +:1036B0006D5F7F4FCE0101960E94E1218816990629 +:1036C00009F4A2C0E091DD03F091DE0382819381D1 +:1036D000C697869708F4DDC08CC18091AD049091A7 +:1036E000AE04825491098E9708F014CE20E030E0A9 +:1036F00080E090E0DC01F901E155FB4F4081518110 +:10370000495051094930510588F004CE8091AF04E9 +:103710009091B0040997099708F0F7CD1092DC0357 +:103720001092DB038FEF9FEFDC0158C1F901EF54DA +:10373000FB4F40815181475151094231510588F475 +:10374000880F991FAA1FBB1F81602C5F3F4F203835 +:10375000310589F620E230E03093DC032093DB036F +:103760003DC140815181465051094730510508F013 +:10377000D1CD880F991FAA1FBB1FE7CF20813181B0 +:10378000235131092F30310540F4440F551F661F76 +:10379000771F416002963496E7CD208131812A500F +:1037A00031092930310508F00ECE440F551F661F30 +:1037B000771FF0CF8091AD049091AE04C6978697A5 +:1037C00008F053CEE1EBF4E083E090E040E050E01D +:1037D000BA0129CE208131812C5031092A3031059E +:1037E00008F043CE440F551F661F771F1ACE2D9148 +:1037F0003C912C5031092B30310508F087CE440F15 +:10380000551F661F771F5ECE4CEB51E0BE016D5F0A +:103810007F4FCE0101960E94E1215C01033011052A +:1038200069F44CEB51E0BE016D5F7F4FCE01019614 +:103830000E94E121A816B90609F044CF8114910431 +:1038400059F4AA94AB2809F03DCFCC0CDD1CEE1C3A +:10385000FF1C6894C0F80BC08A94892809F032CF05 +:10386000AB2809F02FCFCC0CDD1CEE1CFF1C0F5F2A +:103870001F4F03CF1093DC030093DB03C092D703E9 +:10388000D092D803E092D903F092DA0382E090E07C +:1038900096C0848195814B97459708F0AAC0DF01B7 +:1038A00016967F0126ECE20EF11C20E030E040E0AD +:1038B00050E060E070E080E090E00D911C91119785 +:1038C000095011090830110508F093C012960D91A6 +:1038D0001C911397015111090D30110520F501E0DC +:1038E0000E94D12221601496AE15BF0531F72093B6 +:1038F000D7033093D8034093D9035093DA0300E2FF +:103900000E94EC222093D5033093D60385E090E00B +:103910009093D4038093D30380E390E09093DC03EF +:103920008093DB0350C012960D911C9113970450A5 +:1039300011090530110508F05CC001E00E94D12298 +:10394000D2CF980122503109D9012D913C912950B3 +:1039500031092830310508F0FAC0BC016F5F7F4F94 +:10396000D8012D913C91275031092730310508F0BD +:10397000EBC2440F551F416002960C5F1F4F209110 +:10398000A60430E02450310982179307D4F201973E +:10399000959587959093DC038093DB038A970CF4CD +:1039A000D6C0052E000C660B770B4093D7035093BF +:1039B000D8036093D9037093DA0389E090E0909381 +:1039C000D4038093D30381E090E00CC382E0809322 +:1039D000A2041092A60480E090E004C38093D70371 +:1039E0009093D803A093D903B093DA0383E090E0D7 +:1039F000E6CF8091A604893370F182819381895743 +:103A000091098335910508F440C125C0D90112966A +:103A10006D917C911397665171096131710508F0C0 +:103A200060C1D701C601880F991FAA1FBB1F6C0177 +:103A30007D016894C0F84E5F5F4F2C5F3F4F4B3362 +:103A4000510509F431C1D9016D917C916A50710918 +:103A500069307105D8F28091A604823231F48281F6 +:103A600093810A97099708F44CC182819381895701 +:103A7000910983359105D0F48091A6048132B0F08C +:103A800084819581CA97899788F49F012A5F3F4F67 +:103A9000C12CD12C760143E050E0D9016D917C918D +:103AA0006A5071096930710508F44AC182819381B5 +:103AB0008C549109C59778F48091A604843031F430 +:103AC000848195818097479708F499C18091A604D5 +:103AD000843408F07BC18091A604863460F1828131 +:103AE00093810C970B9708F4D8C125C0D901129681 +:103AF0006D917C9113976E5171096731710508F0D2 +:103B000004C2D701C601880F991FAA1FBB1F6C01F1 +:103B10007D016894C0F84E5F5F4F2C5F3F4F453486 +:103B2000510509F4D5C1D9016D917C916C50710991 +:103B30006B307105D8F28091A604883540F08281FF +:103B40009381855891098B35910508F4EEC18091D8 +:103B5000A6048032E1F48281938106970697B8F437 +:103B6000848195810997099790F49F012A5F3F4FBF +:103B7000BF01625C7F4FC12CD12C7601D9014D91E0 +:103B80005C91465051094630510508F4EAC18091D4 +:103B9000DF039091E0039E838D8306970CF416CF8C +:103BA0008F010A5F1F4F73E0272E312CE5ECCE2EDC +:103BB000EDE9DE2EECE1EE2EE1E8FE2ED8016D916E +:103BC0007C91F8013497A080B18080E090E00E9461 +:103BD0004B242B013C01B50180E090E00E944B2476 +:103BE0004B015C012DEC3CEC4CE45FE30E94FD24B6 +:103BF0009B01AC01C301B2010E949E2387FD17C047 +:103C00002DEC3CEC4CE45FE3C301B2010E94FD24C7 +:103C10009B01AC01C501B4010E949E23E82F880FCF +:103C2000FF0BEE27FF0FEE1FFF27319602C0E0E0EB +:103C3000F0E0A701960163E971E080E091E00E9465 +:103C400055226F01FF0FEE08FF08C626D726E8268B +:103C5000F926BFEF2B1A3B0A0E5F1F4FED81FE8145 +:103C60002E163F0609F0AACFC092D703D092D803F0 +:103C7000E092D903F092DA0380E290E09093DC03C3 +:103C80008093DB038FEF9FEF9ACE84819581CA9753 +:103C9000899708F0E0CE9F012A5F3F4FC12CD12CBD +:103CA000760143E050E0CFCE9F012A583F4FD90123 +:103CB0002D913C912A5031092930310508F0CBCEA5 +:103CC0002CE130E03093DC032093DB03C092D70378 +:103CD000D092D803E092D903F092DA038AE090E020 +:103CE0006ECED90112966D917C9113976650710931 +:103CF0006730710508F0AFCECC0CDD1CEE1CFF1C4C +:103D00009ACE2091A604CF01820F911D820F911DA2 +:103D1000DC0112978D919C910A97099708F0A5CE26 +:103D20001092DC031092DB038FEF9FEFDC01809396 +:103D3000D7039093D803A093D903B093DA034CC16F +:103D4000D90112966D917C91139766517109613179 +:103D5000710588F112966D917C91139766507109E7 +:103D60006730710508F0A2CECC0CDD1CEE1CFF1CE8 +:103D70004E5F5F4F2C5F3F4F4332510509F08DCEB0 +:103D80009F012A5B3F4FD9012D913C912A50310967 +:103D90002930310508F08ACE20E130E03093DC0391 +:103DA0002093DB03C092D703D092D803E092D903CB +:103DB000F092DA0311C1D701C601880F991FAA1F1B +:103DC000BB1F6C017D016894C0F8D2CF84819581BE +:103DD00089549109C39708F07ECE9F012A5F3F4F17 +:103DE000BF016A577F4FC12CD12C7601D9014D916B +:103DF0005C914950510949305105B8F06CCE86812B +:103E000097810997099708F061CE1092DC03109210 +:103E1000DB038FEF9FEFDC018093D7039093D803F0 +:103E2000A093D903B093DA03DAC0D90112964D9169 +:103E30005C9113974651510941315105F0F4D70176 +:103E4000C601880F991FAA1FBB1F6C017D016894D2 +:103E5000C0F82C5F3F4F2617370741F620E230E0CD +:103E60003093DC032093DB03C092D703D092D803B6 +:103E7000E092D903F092DA03B2C0D90112964D91C3 +:103E80005C911397465051094730510508F023CEF5 +:103E9000CC0CDD1CEE1CFF1CDCCF848195810997C6 +:103EA000099708F048CE868197818C974F9708F044 +:103EB00042CE8085918589974D9708F03CCE9F0131 +:103EC000265F3F4FC12CD12C760145E050E02BCE30 +:103ED0009F0126573F4FD9012D913C912C5031091C +:103EE0002B30310508F027CE20E230E03093DC03A0 +:103EF0002093DB03C092D703D092D803E092D9037A +:103F0000F092DA0388E090E05ACDD90112966D91D3 +:103F10007C911397695071096930710508F00BCED7 +:103F2000CC0CDD1CEE1CFF1CF6CD848195818254E7 +:103F300091098E9708F00BCE8F01045C1F4F8DE125 +:103F400090E040E050E01BCDD8012D913C912851EC +:103F500031092231310510F0CB0119CD440F551F25 +:103F60000BCDD90112964D915C911397495151098E +:103F70004331510508F5D701C601880F991FAA1FC3 +:103F8000BB1F6C017D016894C0F82C5F3F4F261762 +:103F9000370709F0F3CD2EE030E03093DC032093B7 +:103FA000DB03C092D703D092D803E092D903F092FA +:103FB000DA038FE090E003CDD90112964D915C9128 +:103FC0001397495051094930510508F0E0CDCC0C08 +:103FD000DD1CEE1CFF1CD9CF86E090E0F0CC87E022 +:103FE00090E0EDCC26960FB6F894DEBF0FBECDBFA5 +:103FF000DF91CF911F910F91FF90EF90DF90CF90C5 +:10400000BF90AF909F908F907F906F905F904F90F8 +:104010003F902F900895789484B5826084BD84B5D4 +:10402000816084BD85B5826085BD85B5816085BDB3 +:1040300080916E00816080936E001092810080916B +:1040400081008260809381008091810081608093F3 +:104050008100809180008160809380008091B10018 +:1040600084608093B1008091B00081608093B00043 +:1040700080917A00846080937A0080917A008260D7 +:1040800080937A0080917A00816080937A00809199 +:104090007A00806880937A001092C100E091090450 +:1040A000F0910A0482E08083E0910504F091060417 +:1040B0001082E0910704F091080483E3808310925A +:1040C0001104E0910D04F0910E0486E08083E091EC +:1040D0000B04F0910C04808180618083E0910B04DB +:1040E000F0910C04808188608083E0910B04F09152 +:1040F0000C04808180688083E0910B04F0910C04B3 +:1041000080818F7D808388E08093BA0086EE9AE07C +:104110009093B5038093B40382EF9AE09093B30336 +:104120008093B2031092B1031092B0031092AF03C8 +:104130001092AE031092AD0381E08093AC03109215 +:10414000AB0361E082E10E94061261E083E10E941C +:1041500006128091B9008E7F8093B9008091B900DA +:104160008D7F8093B90088E48093B80085E48093C4 +:10417000BC0084EB98E19093B7038093B6038DE184 +:1041800098E19093B9038093B803549A5C9880E0C7 +:1041900090E0FC01E054FC4F80830196893091054A +:1041A000C1F783E08093BC038FB78093BD03F8947D +:1041B00088EA91E69093BB038093BA0390938700BB +:1041C000809386008091BD038FBF80918100887F9E +:1041D00080938100909181008091BC03982B9093F3 +:1041E000810026E53CE03093BF032093BE0391E0BD +:1041F00090936F0090918100892B80938100809132 +:10420000C903882329F00E948C001092C90302C0C0 +:104210000E948C000E94D111F2CFCF92DF92EF92D8 +:10422000FF92CF93DF93EC01072E000C880B990BC4 +:104230000E944D246B017C0120E030E040E45FE30C +:104240000E94FD2420E030E048E452E40E94A323D1 +:104250000E941524C617D707D4F020E030E040EACA +:104260005FE3C701B6010E94FD2420E030E048E48E +:1042700052E40E94A32320E030E040E85FE30E9484 +:1042800032230E94152421E06C177D070CF420E0F6 +:10429000822F90E0DF91CF91FF90EF90DF90CF9051 +:1042A00008950F931F93CF93DF93EC01862F6883BC +:1042B00049832A8361E00E94361261E089810E946D +:1042C00036128A8161E070E023E0829FC0011124F0 +:1042D0000E946A259C838B8310E08A81181748F41A +:1042E00000E020E040E0612FCE010E94C4161F5F75 +:1042F000F4CFDF91CF911F910F9108951092FC039D +:104300001092FB0388EE93E0A0E0B0E08093FD0301 +:104310009093FE03A093FF03B093000428E231E0E2 +:104320003093FA032093F90325EC30E03093060430 +:104330002093050424EC30E0309308042093070414 +:1043400020EC30E030930A042093090421EC30E0A3 +:1043500030930C0420930B0422EC30E030930E04D5 +:1043600020930D0426EC30E03093100420930F04CA +:104370001092120410921304109214041092150457 +:10438000109299041092980480939A0490939B043D +:10439000A0939C04B0939D048AE391E090939704CA +:1043A0008093960482E08093A3041092A504E4E72E +:1043B000F5E080E28683379695E0E33BF907D1F795 +:1043C00008958F929F92AF92BF92CF92DF92EF9219 +:1043D000FF920F931F93CF93DF93FC01C081D18194 +:1043E0002091DF033091E003C217D3070CF04BC0DC +:1043F0009E01220F331FE091DD03F091DE03E20FF7 +:10440000F31F80809180C170DD27F1E0CF272097D6 +:1044100019F404E610E002C00CE91FEF7A015B0119 +:104420006C01040F151FB801C4010E940D21892BD6 +:1044300099F40E0D1F1DB801C4010E940D21892B96 +:1044400071F4B8016E0D7F1DC4010E940D21892BEE +:10445000E9F023E030E005C021E030E002C022E0D6 +:1044600030E0F501808191810196821793073CF03D +:10447000F50111821082F60180819181019691836C +:104480008083CE0105C081E090E002C08FEF9FEFF6 +:10449000DF91CF911F910F91FF90EF90DF90CF9020 +:1044A000BF90AF909F908F900895DB018F939F9363 +:1044B0000E94C622BF91AF91A29F800D911DA39F24 +:1044C000900DB29F900D11240895991B79E004C0BE +:1044D000991F961708F0961B881F7A95C9F7809543 +:1044E000089597FB072E16F4009407D077FD09D0A6 +:1044F0000E94082307FC05D03EF4909581959F4FBC +:104500000895709561957F4F0895A1E21A2EAA1B18 +:10451000BB1BFD010DC0AA1FBB1FEE1FFF1FA21773 +:10452000B307E407F50720F0A21BB30BE40BF50B70 +:10453000661F771F881F991F1A9469F760957095F9 +:10454000809590959B01AC01BD01CF010895052E8A +:1045500097FB1EF400940E94BE2257FD07D00E94D4 +:10456000852207FC03D04EF40C94BE225095409552 +:10457000309521953F4F4F4F5F4F0895909580950F +:10458000709561957F4F8F4F9F4F08950E94222312 +:10459000A59F900DB49F900DA49F800D911D112497 +:1045A00008950F93083090F0982F872F762F652F5E +:1045B000542F432F322F22270850F4CF220F331FBE +:1045C000441F551F661F771F881F991F0A95B2F752 +:1045D0000F91089597FB10F8169400080F93083078 +:1045E00098F00850232F342F452F562F672F782F00 +:1045F000892F902DF4CF059497958795779567959A +:1046000057954795379527950A95AAF70F910895DD +:10461000AA1BBB1B51E107C0AA1FBB1FA617B707E8 +:1046200010F0A61BB70B881F991F5A95A9F7809504 +:104630009095BC01CD010895EE0FFF1F0590F491F8 +:10464000E02D0994A29FB001B39FC001A39F700DFC +:10465000811D1124911DB29F700D811D1124911D8A +:1046600008955058BB27AA270E9449230C94C324BD +:104670000E94B52438F00E94BC2420F039F49F3FFA +:1046800019F426F40C94B2240EF4E095E7FB0C9494 +:10469000AC24E92F0E94D42458F3BA176207730799 +:1046A0008407950720F079F4A6F50C94F6240EF40F +:1046B000E0950B2EBA2FA02D0B01B90190010C0132 +:1046C000CA01A0011124FF27591B99F0593F50F44A +:1046D000503E68F11A16F040A22F232F342F4427A2 +:1046E000585FF3CF469537952795A795F04053959A +:1046F000C9F77EF41F16BA0B620B730B840BBAF06A +:104700009150A1F0FF0FBB1F661F771F881FC2F7D4 +:104710000EC0BA0F621F731F841F48F487957795E8 +:104720006795B795F7959E3F08F0B0CF9395880FA2 +:1047300008F09927EE0F9795879508950E94882491 +:1047400008F481E008950E94B7230C94C3240E94CA +:10475000BC2458F00E94B52440F029F45F3F29F0B2 +:104760000C94AC2451110C94F7240C94B2240E94A4 +:10477000D42468F39923B1F3552391F3951B550B7A +:10478000BB27AA2762177307840738F09F5F5F4F24 +:10479000220F331F441FAA1FA9F335D00E2E3AF063 +:1047A000E0E832D091505040E695001CCAF72BD07B +:1047B000FE2F29D0660F771F881FBB1F26173707CC +:1047C0004807AB07B0E809F0BB0B802DBF01FF27FE +:1047D00093585F4F3AF09E3F510578F00C94AC240B +:1047E0000C94F7245F3FE4F3983ED4F386957795D5 +:1047F0006795B795F7959F5FC9F7880F911D9695B7 +:10480000879597F90895E1E0660F771F881FBB1F12 +:10481000621773078407BA0720F0621B730B840BBF +:10482000BA0BEE1F88F7E09508950E941C24689447 +:10483000B1110C94F72408950E94DC2488F09F574E +:1048400098F0B92F9927B751B0F0E1F0660F771FB4 +:10485000881F991F1AF0BA95C9F714C0B13091F0AA +:104860000E94F624B1E008950C94F624672F782F67 +:104870008827B85F39F0B93FCCF38695779567956F +:10488000B395D9F73EF490958095709561957F4FDB +:104890008F4F9F4F0895E89409C097FB3EF4909581 +:1048A0008095709561957F4F8F4F9F4F9923A9F009 +:1048B000F92F96E9BB279395F69587957795679598 +:1048C000B795F111F8CFFAF4BB0F11F460FF1BC0DC +:1048D0006F5F7F4F8F4F9F4F16C0882311F096E96F +:1048E00011C0772321F09EE8872F762F05C066231D +:1048F00071F096E8862F70E060E02AF09A95660FD6 +:10490000771F881FDAF7880F9695879597F908958E +:10491000990F0008550FAA0BE0E8FEEF16161706D0 +:10492000E807F907C0F012161306E407F50798F038 +:10493000621B730B840B950B39F40A2661F0232B51 +:10494000242B252B21F408950A2609F4A140A695CD +:104950008FEF811D811D089597F99F6780E870E0B2 +:1049600060E008959FEF80EC089500240A941616E5 +:10497000170618060906089500240A94121613064D +:10498000140605060895092E0394000C11F48823DB +:1049900052F0BB0F40F4BF2B11F460FF04C06F5FF7 +:1049A0007F4F8F4F9F4F089557FD9058440F551FCD +:1049B00059F05F3F71F04795880F97FB991F61F0A1 +:1049C0009F3F79F087950895121613061406551F18 +:1049D000F2CF4695F1DF08C0161617061806991F84 +:1049E000F1CF86957105610508940895E894BB2779 +:1049F00066277727CB0197F908950E9410250C941C +:104A0000C3240E94B52438F00E94BC2420F09523D2 +:104A100011F00C94AC240C94B22411240C94F724BF +:104A20000E94D42470F3959FC1F3950F50E0551F59 +:104A3000629FF001729FBB27F00DB11D639FAA27F3 +:104A4000F00DB11DAA1F649F6627B00DA11D661F42 +:104A5000829F2227B00DA11D621F739FB00DA11D63 +:104A6000621F839FA00D611D221F749F3327A00D1D +:104A7000611D231F849F600D211D822F762F6A2FB9 +:104A800011249F5750409AF0F1F088234AF0EE0F1E +:104A9000FF1FBB1F661F771F881F91505040A9F74B +:104AA0009E3F510580F00C94AC240C94F7245F3F9A +:104AB000E4F3983ED4F3869577956795B795F79587 +:104AC000E7959F5FC1F7FE2B880F911D96958795FF +:104AD00097F908950F931F93CF93DF93869F8001DB +:104AE000879F100D969F100D1124C8010E948625E6 +:104AF000EC01009729F0A80160E070E00E94B82660 +:104B0000CE01DF91CF911F910F910895CF93DF9345 +:104B10008230910510F482E090E0E091EB05F09195 +:104B2000EC0520E030E0C0E0D0E0309711F14081AA +:104B3000518148175907C0F04817590761F482811D +:104B40009381209719F09B838A832BC09093EC0567 +:104B50008093EB0526C02115310519F04217530744 +:104B600018F49A01BE01DF01EF010280F381E02D0C +:104B7000DCCF2115310509F1281B390B2430310513 +:104B800090F412968D919C9113976115710521F007 +:104B9000FB019383828304C09093EC058093EB0523 +:104BA000FD01329644C0FD01E20FF31F8193919302 +:104BB000225031092D933C933AC02091E905309160 +:104BC000EA05232B41F42091020130910301309337 +:104BD000EA052093E905209100013091010121159A +:104BE000310541F42DB73EB74091040150910501C4 +:104BF000241B350BE091E905F091EA05E217F30774 +:104C0000A0F42E1B3F0B2817390778F0AC014E5F3C +:104C10005F4F2417350748F04E0F5F1F5093EA058A +:104C20004093E9058193919302C0E0E0F0E0CF0169 +:104C3000DF91CF9108950F931F93CF93DF93009748 +:104C400009F48CC0FC013297138212820091EB05AB +:104C50001091EC050115110581F420813181820F3D +:104C6000931F2091E9053091EA052817390779F556 +:104C7000F093EA05E093E90571C0D80140E050E007 +:104C8000AE17BF0750F412962D913C911397AD01CA +:104C90002115310509F1D901F3CF9D01DA013383E3 +:104CA000228360817181860F971F8217930769F4B1 +:104CB000EC0128813981260F371F2E5F3F4F31834A +:104CC00020838A819B8193838283452B29F4F093EF +:104CD000EC05E093EB0542C01396FC93EE9312971C +:104CE000ED01499159919E01240F351FE217F307F9 +:104CF00071F480819181840F951F029611969C9387 +:104D00008E938281938113969C938E931297E0E009 +:104D1000F0E0D80112968D919C911397009719F0AD +:104D2000F8018C01F6CF8D919C9198012E5F3F4F39 +:104D3000820F931F2091E9053091EA052817390762 +:104D400069F4309729F41092EC051092EB0502C03B +:104D5000138212821093EA050093E905DF91CF9147 +:104D60001F910F91089581E090E0F8940C94BF2674 +:104D7000DC0101C06D9341505040E0F70895F89474 +:024D8000FFCF63 +:104D82000000ED0520008803650342033F065B4FE8 +:104D9200666D7D077F6F777C395E797101000A004D +:104DA2006400E803000000006811D5100011AF1183 +:104DB20031110F112311000000005C0B480B6E0B28 +:0C4DC2001C0B400B2C0B1D0B0D0A0000FD +:00000001FF diff --git a/Firmware/grovepi_firmware_update.sh b/Firmware/grovepi_firmware_update.sh new file mode 100644 index 0000000..a0cf370 --- /dev/null +++ b/Firmware/grovepi_firmware_update.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +update_grovepi_firmware(){ + avrdude -c gpio -p m328p -U lfuse:w:0xFF:m + avrdude -c gpio -p m328p -U hfuse:w:0xDA:m + avrdude -c gpio -p m328p -U efuse:w:0x05:m + avrdude -c gpio -p m328p -U flash:w:grove_pi_firmware.hex +} diff --git a/Firmware/new_fw_search.sh b/Firmware/new_fw_search.sh new file mode 100644 index 0000000..a448be8 --- /dev/null +++ b/Firmware/new_fw_search.sh @@ -0,0 +1,27 @@ +#! /bin/bash +printf "Welcome to GrovePi Firmware Update Check.\n=========================================\nPlease ensure internet connectivity before running this script.\n" +echo "Must be running as Root user" +echo "Press any key to begin..." +read + +echo "Check for internet connectivity..." +echo "==================================" +wget -q --tries=2 --timeout=20 --output-document=/dev/null http://raspberrypi.org +if [[ $? -eq 0 ]];then + echo "Connected" +else + echo "Unable to Connect, try again !!!" + exit 0 +fi + +wget https://raw.github.com/DexterInd/GrovePi/master/Firmware/version.txt -O temp_f &>/dev/null +diff -q version.txt temp_f +if [[ $? == "0" ]] +then + echo "You have the latest firmware" +else + printf "\nNew firmware available. \n\nDownload the new version from Dexter Industries Github Repo and follow the update guide on the GrovePi Homepage to update the firmware.\n" + printf "\nTo download the latest firmware, simply open a terminal session, change directories to the Github on your Raspberry Pi, and type 'git remote update'. This will pull the latest files from Github. Then run this script again." + printf "\nSee the complete update guide here: http://www.dexterindustries.com/GrovePi/get-started-with-the-grovepi/updating-firmware/" +fi +rm temp_f diff --git a/Firmware/readme.md b/Firmware/readme.md new file mode 100644 index 0000000..62a43eb --- /dev/null +++ b/Firmware/readme.md @@ -0,0 +1,5 @@ +To update the firmware to the latest version (Currently version 1.4) +``` +cd /home/pi/Dexter/GrovePi/Firmware +sudo bash firmware_update.sh +``` diff --git a/Firmware/version.txt b/Firmware/version.txt new file mode 100644 index 0000000..88c5fb8 --- /dev/null +++ b/Firmware/version.txt @@ -0,0 +1 @@ +1.4.0 diff --git a/GrovePi_Plus_By_Dexter_Industries_For_the_Raspberry_Pi.JPG b/GrovePi_Plus_By_Dexter_Industries_For_the_Raspberry_Pi.JPG new file mode 100644 index 0000000000000000000000000000000000000000..895949469fb19caf160052204aa3ca3458a616fb GIT binary patch literal 100572 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%0A19mWiz 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 F`ae>ma3cT! literal 0 HcmV?d00001 diff --git a/Hardware/GrovePi Graphical Datasheet.jpg b/Hardware/GrovePi Graphical Datasheet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f2f1b83662a3d5fad2dd7579db89b55a94038b6f GIT binary patch literal 289549 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

*KxX9RPZpYT|D^%e->nf`U=||(V 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 z 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 Q8gYoGMi*v{J=};_bKR*XZknDS$%P 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

9J9(46uMobvg7gPO{QuToF0GHU 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 literal 0 HcmV?d00001 diff --git a/Hardware/GrovePi+ v3.0.pdf b/Hardware/GrovePi+ v3.0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cf98e3580d518a9f40cd96208718a41ba26d0be3 GIT binary patch literal 77532 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�uJ24~Z2!x^TzS~M2zl?hl1QbFUQi;U6& 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 literal 0 HcmV?d00001 diff --git a/Hardware/README.md b/Hardware/README.md new file mode 100644 index 0000000..d3f8132 --- /dev/null +++ b/Hardware/README.md @@ -0,0 +1,30 @@ +#GrovePi+ +GrovePi+ is an electronics board designed by Dexter Industries that you can connect to hundreds of different sensors, so you can program them to monitor, control, and automate devices in your life. + +![GrovePi+](https://github.com/DexterInd/GrovePi/blob/master/Hardware/GrovePi%20Graphical%20Datasheet.jpg) + +#GrovePi Zero +GrovePi+ is an electronics board designed by Dexter Industries that makes electronics prototyping with the Raspberry Pi Zero easy and fast. With the GrovePi Zero you can start your connected device projects in minutes. + +![GrovePi Zero](https://github.com/DexterInd/GrovePi/blob/master/Hardware/GrovePiZero%20Graphical%20Datasheet.jpg) + +See more about the GrovePi here: http://www.dexterindustries.com/grovepi/ +Copyright (C) 2016 Dexter Industries + + +## License + +GNU General Public License v3.0 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/Hardware/gpl-3.0.txt b/Hardware/gpl-3.0.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/Hardware/gpl-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..b34bb1f --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2019 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Projects/Advanced_RGB_LCD_TempAndHumidity/grovepi_lcd_dht.py b/Projects/Advanced_RGB_LCD_TempAndHumidity/grovepi_lcd_dht.py new file mode 100644 index 0000000..b39c92e --- /dev/null +++ b/Projects/Advanced_RGB_LCD_TempAndHumidity/grovepi_lcd_dht.py @@ -0,0 +1,113 @@ +# grovepi_lcd_dht.py +# +# This is an project for using the Grove RGB_LED Display and the Grove DHT Sensor from the GrovePi starter kit +# +# In this project, the Temperature and humidity from the DHT sensor is printed on the RGB_LCD Display +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +import decimal +from grovepi import * +from grove_rgb_lcd import * + +dht_sensor_port = 7 # Connect the DHt sensor to port 7 +lastTemp = 0.1 # initialize a floating point temp variable +lastHum = 0.1 # initialize a floating Point humidity variable +tooLow = 62.0 # Lower limit in fahrenheit +justRight = 68.0 # Perfect Temp in fahrenheit +tooHigh = 74.0 # Temp Too high + + +# Function Definitions +def CtoF( tempc ): + "This converts celcius to fahrenheit" + tempf = round((tempc * 1.8) + 32, 2); + return tempf; + +def FtoC( tempf ): + "This converts fahrenheit to celcius" + tempc = round((tempf - 32) / 1.8, 2) + return tempc; + +def calcColorAdj(variance): # Calc the adjustment value of the background color + "Because there is 6 degrees mapping to 255 values, 42.5 is the factor for 12 degree spread" + factor = 42.5; + adj = abs(int(factor * variance)); + if adj > 255: + adj = 255; + return adj; + +def calcBG(ftemp): + "This calculates the color value for the background" + variance = ftemp - justRight; # Calculate the variance + adj = calcColorAdj(variance); # Scale it to 8 bit int + bgList = [0,0,0] # initialize the color array + if(variance < 0): + bgR = 0; # too cold, no red + bgB = adj; # green and blue slide equally with adj + bgG = 255 - adj; + + elif(variance == 0): # perfect, all on green + bgR = 0; + bgB = 0; + bgG = 255; + + elif(variance > 0): #too hot - no blue + bgB = 0; + bgR = adj; # Red and Green slide equally with Adj + bgG = 255 - adj; + + bgList = [bgR,bgG,bgB] #build list of color values to return + return bgList; + +while True: + + try: + temp = 0.01 + hum = 0.01 + [ temp,hum ] = dht(dht_sensor_port,1) #Get the temperature and Humidity from the DHT sensor + #Change the second parameter to 0 when using DHT (instead of DHT Pro) + #You will get very large number values if you don't! + if (CtoF(temp) != lastTemp) and (hum != lastHum) and not math.isnan(temp) and not math.isnan(hum): + print("lowC : ",FtoC(tooLow),"C\t\t","rightC : ", FtoC(justRight),"C\t\t","highC : ",FtoC(tooHigh),"C") # comment these three lines + print("lowF : ",tooLow,"F\t\tjustRight : ",justRight,"F\t\ttoHigh : ",tooHigh,"F") # if no monitor display + print("tempC : ", temp, "C\t\ttempF : ",CtoF(temp),"F\t\tHumidity =", hum,"%\r\n") + + lastHum = hum # save temp & humidity values so that there is no update to the RGB LCD + ftemp = CtoF(temp) # unless the value changes + lastTemp = ftemp # this reduces the flashing of the display + # print "ftemp = ",ftemp," temp = ",temp # this was just for test and debug + + bgList = calcBG(ftemp) # Calculate background colors + + t = str(ftemp) # "stringify" the display values + h = str(hum) + # print "(",bgList[0],",",bgList[1],",",bgList[2],")" # this was to test and debug color value list + setRGB(bgList[0],bgList[1],bgList[2]) # parse our list into the color settings + setText("Temp:" + t + "F " + "Humidity :" + h + "%") # update the RGB LCD display + + except (IOError,TypeError) as e: + print("Error" + str(e)) + diff --git a/Projects/Button_And_Buzzer/Button_And_Buzzer.py b/Projects/Button_And_Buzzer/Button_And_Buzzer.py new file mode 100644 index 0000000..68b6faa --- /dev/null +++ b/Projects/Button_And_Buzzer/Button_And_Buzzer.py @@ -0,0 +1,54 @@ +# button_buzzer.py +# +# This is an project using the Grove Button, Buzzer from the GrovePi starter kit +# +# In this project, the buzzer starts making a sound when the the button is hold + +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +import time +from grovepi import * +import math + +buzzer_pin = 2 #Port for buzzer +button = 4 #Port for Button + +pinMode(buzzer_pin,"OUTPUT") # Assign mode for buzzer as output +pinMode(button,"INPUT") # Assign mode for Button as input +while True: + try: + button_status= digitalRead(button) #Read the Button status + if button_status: #If the Button is in HIGH position, run the program + digitalWrite(buzzer_pin,1) + # print "\tBuzzing" + else: #If Button is in Off position, print "Off" on the screen + digitalWrite(buzzer_pin,0) + # print "Off" + except KeyboardInterrupt: # Stop the buzzer before stopping + digitalWrite(buzzer_pin,0) + break + except (IOError,TypeError) as e: + print("Error") \ No newline at end of file diff --git a/Projects/CO2_sensor.py b/Projects/CO2_sensor.py new file mode 100644 index 0000000..f173149 --- /dev/null +++ b/Projects/CO2_sensor.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python +######################################################################## +# Calibration and read of the CO2 sensor MH-Z16 +# according to the datasheet : http://www.seeedstudio.com/wiki/images/c/ca/MH-Z16_CO2_datasheet_EN.pdf +# output value directly in ppm +# Doms made +# History +# ------------------------------------------------ +# Author Date Comments +# Doms 13 04 15 Initial Authoring +# +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +''' +# +######################################################################## +import os +import serial, time +import smbus +import math +import RPi.GPIO as GPIO +import struct +import sys +import datetime +import grovepi +import struct +from grovepi import * + +# +__author__ = 'Doms Genoud' + +#co2 sensor +#use an external usb to serial adapter +ser = serial.Serial('/dev/ttyUSB0', 9600, timeout = 1) #Open the serial port at 9600 baud + +#To open the raspberry serial port +#ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 1) #Open the serial port at 9600 baud + +#init serial +ser.flush() + + +############# carbon dioxid CO2 ##################### +class CO2: +#inspired from c code of http://www.seeedstudio.com/wiki/Grove_-_CO2_Sensor +#Gas concentration= high level *256+low level + inp =[] + cmd_zero_sensor = "\xff\x87\x87\x00\x00\x00\x00\x00\xf2" + cmd_span_sensor = "\xff\x87\x87\x00\x00\x00\x00\x00\xf2" + cmd_get_sensor = "\xff\x01\x86\x00\x00\x00\x00\x00\x79" + def read(self): + try: + while True: + ser.write(CO2.cmd_get_sensor) + CO2.inp = ser.read(9) + high_level = struct.unpack('B',CO2.inp[2])[0] + low_level = struct.unpack('B',CO2.inp[3])[0] + temp_co2 = struct.unpack('B',CO2.inp[4])[0] - 40 + + #output in ppm + conc = high_level*256+low_level + return [conc,temp_co2] + + except IOError: + return [-1,-1] + + def calibrateZero(self): + try: + ser.write(CO2.cmd_zero_sensor) + print("CO2 sensor zero calibrated") + + except IOError: + print("CO2 sensor calibration error") + + def calibrateSpan(self): + try: + while True: + #ser.write(CO2.cmd_zero_sensor) + print("CO2 sensor span calibrated") + break + + except IOError: + print("CO2 sensor calibration error") + +######################################################################################################## +############# MAIN +######################################################################################################## +# following the specs of the sensor : +# read the sensor, wait 3 minutes, set the zero, read the sensor +c = CO2() + +while True: + try: + #CO2 sensor calib + print("wait 3 minutes to warm up CO2 sensor") + time.sleep(180) + print("Read before calibration-->",c.read()) + + print("calibrating...") + co2 = c.calibrateZero() + time.sleep(5) + + print("Read after calibration-->",c.read()) + + print("DONE") + break + + except IndexError: + print("Unable to read") + except KeyboardInterrupt: + print("Exiting") + sys.exit(0) diff --git a/Projects/Candy-Counting-Robot-Costume/README.md b/Projects/Candy-Counting-Robot-Costume/README.md new file mode 100644 index 0000000..d9a1dcc --- /dev/null +++ b/Projects/Candy-Counting-Robot-Costume/README.md @@ -0,0 +1,32 @@ +## **Candy Counting Raspberry Pi Robot Costume** + +In this project, we took the tried-and-true robot costume and gave it some life with the Raspberry Pi, GrovePi, and a handful of sensors. The costume is a standard robot costume, but with a candy-counting machine attached that talks! + +When a piece of candy is placed in the robot, it flashes it's LEDs, thanks the candy donor for the piece of candy, and announces the candy count. We use the Raspberry Pi for brains, the GrovePi and assorted sensors to detect candy, and a battery powered speaker to do the talking. The whole project takes about 2 hours to build. + +### How to use + + +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2016 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN diff --git a/Projects/Candy-Counting-Robot-Costume/robot.py b/Projects/Candy-Counting-Robot-Costume/robot.py new file mode 100644 index 0000000..c762292 --- /dev/null +++ b/Projects/Candy-Counting-Robot-Costume/robot.py @@ -0,0 +1,491 @@ +#!/usr/bin/env python +# +# Raspberry Pi Robot Costume +''' +In this project, we're making a Raspberry Pi Robot Costume. The costume will count candy placed in a bin, and speak out loud to the giver. +Well use the GrovePi, with an Ultrasonic Sensor, an LED Bar graph, 4 Chainable LED's, and the RGB LCD Display. We'll also use a small +portable speaker to give the robot a voice. + +Each time a piece of candy is placed in the robot, it says "Thank you for the candy" and reads aloud the count of candy. +''' +# + +import os +import random +import time +import grovepi +import sys +import random +from subprocess import call +from grove_rgb_lcd import * + +candy_count = 10 +bar_level = 0 + +led1 = 14 +led2 = 15 +led3 = 16 + +grovepi.pinMode(led1,"OUTPUT") +grovepi.pinMode(led2,"OUTPUT") +grovepi.pinMode(led3,"OUTPUT") + +# Connect the Grove LED Bar to digital port D5 +# DI,DCKI,VCC,GND +ledbar = 5 + +grovepi.pinMode(ledbar,"OUTPUT") +time.sleep(1) +i = 0 + +# Connect the Grove Ultrasonic Ranger to digital port D4 +# SIG,NC,VCC,GND +ultrasonic_ranger = 4 + +# Connect first LED in Chainable RGB LED chain to digital port D7 +# In: CI,DI,VCC,GND +# Out: CO,DO,VCC,GND +ledpin = 7 # RGB LED's are on D7 +# First LED input socket connected to GrovePi, output socket connected to second LED input and so on +numleds = 4 #If you only plug 1 LED, change to 1 +grovepi.pinMode(ledpin,"OUTPUT") +time.sleep(1) + +# Connect the Grove 4 Digit Display to digital port D2 +# CLK,DIO,VCC,GND +display = 2 +grovepi.pinMode(display,"OUTPUT") + +# test colors used in grovepi.chainableRgbLed_test() +testColorBlack = 0 # 0b000 #000000 +testColorBlue = 1 # 0b001 #0000FF +testColorGreen = 2 # 0b010 #00FF00 +testColorCyan = 3 # 0b011 #00FFFF +testColorRed = 4 # 0b100 #FF0000 +testColorMagenta = 5 # 0b101 #FF00FF +testColorYellow = 6 # 0b110 #FFFF00 +testColorWhite = 7 # 0b111 #FFFFFF + +# patterns used in grovepi.chainableRgbLed_pattern() +thisLedOnly = 0 +allLedsExceptThis = 1 +thisLedAndInwards = 2 +thisLedAndOutwards = 3 + +def initalize_chained_led(): + print("Test 1) Initialise") + + # init chain of leds + grovepi.chainableRgbLed_init(ledpin, numleds) + time.sleep(.5) + + grovepi.chainableRgbLed_test(ledpin, numleds, random.randint(0,7)) + time.sleep(.5) + + +def chained_led(): + try: + + # set led 1 to green + grovepi.chainableRgbLed_pattern(pin, thisLedOnly, 0) + time.sleep(.5) + + # change color to red + grovepi.storeColor(255,0,0) + time.sleep(.5) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + print ("Test 2b) Test Patterns - blue") + + # test pattern 1 blue + grovepi.chainableRgbLed_test(pin, numleds, testColorBlue) + time.sleep(1) + + print ("Test 2c) Test Patterns - green") + + # test pattern 2 green + grovepi.chainableRgbLed_test(pin, numleds, testColorGreen) + time.sleep(1) + + + print ("Test 2d) Test Patterns - cyan") + + # test pattern 3 cyan + grovepi.chainableRgbLed_test(pin, numleds, testColorCyan) + time.sleep(1) + + + print ("Test 2e) Test Patterns - red") + + # test pattern 4 red + grovepi.chainableRgbLed_test(pin, numleds, testColorRed) + time.sleep(1) + + + print ("Test 2f) Test Patterns - magenta") + + # test pattern 5 magenta + grovepi.chainableRgbLed_test(pin, numleds, testColorMagenta) + time.sleep(1) + + + print ("Test 2g) Test Patterns - yellow") + + # test pattern 6 yellow + grovepi.chainableRgbLed_test(pin, numleds, testColorYellow) + time.sleep(1) + + + print ("Test 2h) Test Patterns - white") + + # test pattern 7 white + grovepi.chainableRgbLed_test(pin, numleds, testColorWhite) + time.sleep(1) + + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 3a) Set using pattern - this led only") + + # change color to red + grovepi.storeColor(255,0,0) + time.sleep(.5) + + # set led 3 to red + grovepi.chainableRgbLed_pattern(pin, thisLedOnly, 2) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 3b) Set using pattern - all leds except this") + + # change color to blue + grovepi.storeColor(0,0,255) + time.sleep(.5) + + # set all leds except for 3 to blue + grovepi.chainableRgbLed_pattern(pin, allLedsExceptThis, 3) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 3c) Set using pattern - this led and inwards") + + # change color to green + grovepi.storeColor(0,255,0) + time.sleep(.5) + + # set leds 1-3 to green + grovepi.chainableRgbLed_pattern(pin, thisLedAndInwards, 2) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 3d) Set using pattern - this led and outwards") + + # change color to green + grovepi.storeColor(0,255,0) + time.sleep(.5) + + # set leds 7-10 to green + grovepi.chainableRgbLed_pattern(pin, thisLedAndOutwards, 6) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 4a) Set using modulo - all leds") + + # change color to black (fully off) + grovepi.storeColor(0,0,0) + time.sleep(.5) + + # set all leds black + # offset 0 means start at first led + # divisor 1 means every led + grovepi.chainableRgbLed_modulo(pin, 0, 1) + time.sleep(.5) + + # change color to white (fully on) + grovepi.storeColor(255,255,255) + time.sleep(.5) + + # set all leds white + grovepi.chainableRgbLed_modulo(pin, 0, 1) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 4b) Set using modulo - every 2") + + # change color to red + grovepi.storeColor(255,0,0) + time.sleep(.5) + + # set every 2nd led to red + grovepi.chainableRgbLed_modulo(pin, 0, 2) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + + print ("Test 4c) Set using modulo - every 2, offset 1") + + # change color to green + grovepi.storeColor(0,255,0) + time.sleep(.5) + + # set every 2nd led to green, offset 1 + grovepi.chainableRgbLed_modulo(pin, 1, 2) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 4d) Set using modulo - every 3, offset 0") + + # change color to red + grovepi.storeColor(255,0,0) + time.sleep(.5) + + # set every 3nd led to red + grovepi.chainableRgbLed_modulo(pin, 0, 3) + time.sleep(.5) + + # change color to green + grovepi.storeColor(0,255,0) + time.sleep(.5) + + # set every 3nd led to green, offset 1 + grovepi.chainableRgbLed_modulo(pin, 1, 3) + time.sleep(.5) + + # change color to blue + grovepi.storeColor(0,0,255) + time.sleep(.5) + + # set every 3nd led to blue, offset 2 + grovepi.chainableRgbLed_modulo(pin, 2, 3) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 4e) Set using modulo - every 3, offset 1") + + # change color to yellow + grovepi.storeColor(255,255,0) + time.sleep(.5) + + # set every 4nd led to yellow + grovepi.chainableRgbLed_modulo(pin, 1, 3) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + + print ("Test 4f) Set using modulo - every 3, offset 2") + + # change color to magenta + grovepi.storeColor(255,0,255) + time.sleep(.5) + + # set every 4nd led to magenta + grovepi.chainableRgbLed_modulo(pin, 2, 3) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 5a) Set level 6") + + # change color to green + grovepi.storeColor(0,255,0) + time.sleep(.5) + + # set leds 1-6 to green + grovepi.write_i2c_block(0x04,[95,pin,6,0]) + time.sleep(.5) + + # pause so you can see what happened + time.sleep(2) + + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + time.sleep(.5) + + + print ("Test 5b) Set level 7 - reverse") + + # change color to red + grovepi.storeColor(255,0,0) + time.sleep(.5) + + # set leds 4-10 to red + grovepi.write_i2c_block(0x04,[95,pin,7,1]) + time.sleep(.5) + + + except KeyboardInterrupt: + # reset (all off) + grovepi.chainableRgbLed_test(pin, numleds, testColorBlack) + except IOError: + print ("Error") + + +def led_random(): + #print "Change LED Color" + # test pattern 1 blue + try: + grovepi.chainableRgbLed_test(ledpin, numleds, random.randint(0,7)) + # time.sleep(1) + except: + print "led_random failure" + + +def lcd_rgb(text): + c = random.randint(0,255) + setRGB(c,255-c,0) + setText(text) + +def lcd_rgb_blue_blank(): + setRGB(0,0,255) + +#Calls the Espeak TTS Engine to read aloud a sentence +def sound(spk): + # -ven+m7: Male voice + # -s180: set reading to 180 Words per minute + # -k20: Emphasis on Capital letters + cmd_beg=" espeak -ven+m7 -a 200 -s180 -k20 --stdout '" + cmd_end="' | aplay" + print cmd_beg+spk+cmd_end + call ([cmd_beg+spk+cmd_end], shell=True) + + +def LEDBarGraph(level): + + grovepi.ledBar_setLevel(ledbar,level) + time.sleep(0.1) + +def random_bar(): + global bar_level + # print "Random bar! " + str(bar_level) + try: + ran_bar_sign = random.randint(0,1) + if ran_bar_sign > 0: + bar_level = bar_level + 1 + else: + bar_level = bar_level - 1 + if bar_level < 0: + bar_level = 0 + if bar_level > 10: + bar_level = 10 + LEDBarGraph(bar_level) + except: + print "Random Bar Failure" + +def random_led(): + try: + grovepi.digitalWrite(led1,random.randint(0,1)) + grovepi.digitalWrite(led2,random.randint(0,1)) + grovepi.digitalWrite(led3,random.randint(0,1)) + except: + print "LED Failure!" + +def candy_detection(): + global candy_count + dist = 100 + try: + while dist > 8: + # Read distance value from Ultrasonic + # print(grovepi.ultrasonicRead(ultrasonic_ranger)) + dist = grovepi.ultrasonicRead(ultrasonic_ranger) + random_bar() + led_random() + print("Distance Detected: " + str(dist)) + candy_count = candy_count + 1 + thanks = "Thank you for the candy! " + "I now have " + str(candy_count) + " pieces of candy!" + lcd_rgb(str(thanks)) + led_random() + sound(thanks) + except TypeError: + print ("Ultrasonic Error! Error!") + except IOError: + print ("Ultrasonic Error! Error!") + + + +initalize_chained_led() #Starts LED's sets to green. +grovepi.ledBar_init(ledbar, 0) +time.sleep(.5) + +while True: + led_random() + random_bar() + + try: + led_random() + candy_detection() + except: + print "Error." + lcd_rgb_blue_blank() + random_bar() + random_led() + led_random() + + led_random() \ No newline at end of file diff --git a/Projects/Catch_A_Lunch_Thief/README.md b/Projects/Catch_A_Lunch_Thief/README.md new file mode 100644 index 0000000..e953b40 --- /dev/null +++ b/Projects/Catch_A_Lunch_Thief/README.md @@ -0,0 +1,30 @@ +## **Catch a Lunch Thief** + +Have you ever had your lunch stolen? This project will help you find the culprit! Using the GrovePi, a Raspberry Pi, and a Raspberry Pi camera this project will e-mail you when your lunch is moved, taking a picture of the offender and helping you nab the lunch thief. + +See more at the [GrovePi Site](http://dexterindustries.com/GrovePi/) + +## License +. +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Projects/Catch_A_Lunch_Thief/catch_a_lunch_thief.py b/Projects/Catch_A_Lunch_Thief/catch_a_lunch_thief.py new file mode 100644 index 0000000..f8bae55 --- /dev/null +++ b/Projects/Catch_A_Lunch_Thief/catch_a_lunch_thief.py @@ -0,0 +1,58 @@ +#! /usr/local/bin/python +# This project by Dexter Industries will help you figure out who's stealing your lunch! In +# this project, we will use the GrovePi to take a picture of the culprit when the light in +# your fridge turns on. We will use the light detector for Grove to detect when the fridge +# door has been opened. +# +# Hardware Setup: +# - Use the Raspberry Pi and GrovePi. (http://www.dexterindustries.com/shop/grovepi-starter-kit-2/) +# - Use the Raspberry Pi camera. (http://www.dexterindustries.com/shop/raspberry-pi-camera/) +# - Connect the light sensor to A0. (http://www.dexterindustries.com/shop/grove-light-sensor/) +# You can adjust the threshold value if you have a bright environment. +# Change the email_destination to change the destination you send an e-mail to. + +import time +import datetime +import grovepi +import picamera +import send_email_pic + +email_destination = 'examples@dexterindustries.com' # Change this to the destination e-mail. +destination = [email_destination] # We put it into an array. + +# Connect the Grove Light Sensor to analog port A0 +# SIG,NC,VCC,GND +light_sensor = 0 # Connect the light sensor to A0 Port. +grovepi.pinMode(light_sensor,"INPUT") # Set the A0 port to input. + +# Send a picture once sensor exceeds threshold resistance +threshold = 600 # Adjust this threshold higher or lower + # Depending on how bright your fridge is. + +camera = picamera.PiCamera() # Setup the Pi Camera + +# Simple function to get the date as a string. +def get_time_string(): + dateString = '%Y-%m-%d_%H-%M-%S' + return_string = datetime.datetime.now().strftime(dateString) + return return_string + +while True: + try: + # Get sensor value. Read the light sensor. + sensor_value = grovepi.analogRead(light_sensor) + + # Sense the light coming on, within the target range + if sensor_value > threshold: + print ('The fridget light is on!') # Print a note to let us know how it goes. + file_name = "lunch_status-"+str(get_time_string())+".jpg" + camera.capture(file_name) # Take a picture and save it to file_name + # Now send an e-mail + send_email_pic.send_email("The fridge has been opened!", destination, "The fridge has been opened!", file_name) + else: + print ('.') # Do nothing! It's still dark. + + time.sleep(.5) # If your hold time is less than this, you might not see as many detections + + except IOError: + print ("Error") diff --git a/Projects/Catch_A_Lunch_Thief/send_email_pic.py b/Projects/Catch_A_Lunch_Thief/send_email_pic.py new file mode 100644 index 0000000..478865c --- /dev/null +++ b/Projects/Catch_A_Lunch_Thief/send_email_pic.py @@ -0,0 +1,59 @@ +#! /usr/local/bin/python +# This example will show you how to send an email in python, with a picture +# attachment. This example uses outlook.com to send an e-mail. + +SMTPserver = 'smtp.live.com' +sender = 'dexterexamples@outlook.com' + +USERNAME = "dexterexamples@outlook.com" +PASSWORD = "password" + +text_subtype = 'plain' # typical values for text_subtype are plain, html, xml +content="""\ Test message """ +import sys +import os +import re + +# from smtplib import SMTP_SSL as SMTP # this invokes the secure SMTP +# protocol (port 465, uses SSL) + +from smtplib import * +from smtplib import SMTP # use this for standard SMTP protocol (port 25, no encryption) +from email.MIMEText import MIMEText +# Here are the email package modules we'll need for images. +from email.mime.image import MIMEImage +from email.mime.multipart import MIMEMultipart + +def send_email(content, destination, subject, file): + try: + msg = MIMEMultipart() + msg['Subject']= subject + msg['From'] = sender # some SMTP servers will do this automatically, not all + + fp = open(file, 'rb') # Open File name "file" + img = MIMEImage(fp.read()) # Read the file. + fp.close() # Good housekeeping: close the file. + msg.attach(img) # Attach the file to the message. + + conn = SMTP(SMTPserver, port = 587, timeout = 60) # timeout is critical here for long term health. + conn.ehlo() + conn.starttls() + conn.ehlo() + conn.login(USERNAME, PASSWORD) + conn.set_debuglevel(1) + try: + conn.sendmail(sender, destination, msg.as_string()) + finally: + conn.close() + except Exception as exc: + # Print a message error! + print("Mail failed; %s" % str(exc)) + print("Moving on!") + +# Example function call! This is what calling the function would look like! +# send_email(content, destination, subject, file) where "content" is the content of the email, destination is the destination +# of the e-mail (who you're emailing to) and subject is the subject of the e-mail. file is the filename of the image file +# you want to attach. It's usually best to include the full path of the file! +file = "/home/pi/test.jpg" +destination = ['examples@dexterindustries.com'] # Enter the destination e-mail address here, between the '' +send_email("Hello from my Raspberry Pi!", destination, "Hello from Dex!", file) diff --git a/Projects/Holidays_Wreath/README.md b/Projects/Holidays_Wreath/README.md new file mode 100644 index 0000000..4186c4e --- /dev/null +++ b/Projects/Holidays_Wreath/README.md @@ -0,0 +1,11 @@ +This folder contains the code to create a smart Holidays wreath, using a string of holiday lights from yesteryear. +The wreath lights will turn on when it's dark and wait for sunrise to turn off. +The lights will blink whenever a movement is detected, whether it's day or not. + +Use: +- the PIR sensor on port D8, +- the light sensor on port A0 +- and the relay on port D2 + +Write-up with explanations can be found here: +http://www.dexterindustries.com/projects/holiday-wreath/ diff --git a/Projects/Holidays_Wreath/holidays.py b/Projects/Holidays_Wreath/holidays.py new file mode 100644 index 0000000..d459840 --- /dev/null +++ b/Projects/Holidays_Wreath/holidays.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python +# +# GrovePi Example for using the Grove Relay (http://www.seeedstudio.com/wiki/Grove_-_Relay) +# +# The GrovePi connects the Raspberry Pi and Grove sensors. You can learn more about GrovePi here: http://www.dexterindustries.com/GrovePi +# +# Have a question about this example? Ask on the forums here: http://forum.dexterindustries.com/c/grovepi +# +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' +# NOTE: Relay is normally open. LED will illuminate when closed and you will hear a definitive click sound +import time +import grovepi + +# Connect the Grove Relay to digital port D2 +# SIG,NC,VCC,GND +relay = 2 + +# connect the PIR sensor to digital port D8 +pir_sensor = 8 + +# connect the light sensor to analog port A0 +light_sensor = 0 + +# how dark must it be before the lights turn on +# you may want to adjust this if you have a street lamp or a porch light nearby +light_threshold = 500 + +# delay when blinking lights. Currently on for 1 second, off for 1 second +blink_delay = 1 + +# how long should the wreath be on after sunset (in hours) +hours_after_sunset = 5 + +# how long should the wreath sleep till sunrise (in hours) +hours_of_sleep = 6 + +# initial status +lights_on = False +start_sleeptime = time.time() + +def sleeptime(): + """ + Calculates if it's time for the wreath to turn off for the night, and go to sleep + Contains a rather long sleep time (technically the whole night) + """ + global lights_on + now = time.time() + go_to_sleep_time = start_sleeptime + (hours_after_sunset*60*60) + # print now, start_sleeptime, "(", now-start_sleeptime,")", go_to_sleep_time, "(",go_to_sleep_time-now,")" + if now >= go_to_sleep_time: + print("Sleep time!!!") + print("Will wake up in ", hours_of_sleep, " hours") + grovepi.digitalWrite(relay,0) + lights_on = False + for i in range(60): + time.sleep(hours_of_sleep * 60 ) # long sleep time!!! + print("Wake up!") + +def blink(in_time): + """ + blinks the wreath lights a certain number of times + variable blink_delay determines how quick or slow the blink is + in_time determines how many times the lights will blink + """ + for i in range(in_time): + grovepi.digitalWrite(relay,1) + time.sleep(blink_delay) + grovepi.digitalWrite(relay,0) + time.sleep(blink_delay) + if lights_on == True: + grovepi.digitalWrite(relay,1) + + + +grovepi.pinMode(relay,"OUTPUT") +grovepi.pinMode(pir_sensor,"INPUT") +grovepi.pinMode(light_sensor,"INPUT") + +########################## +# main loop +########################## +while True: + try: + # if the lights are on, test whether it's time for a long nappy + if lights_on==True: + sleeptime() # test included in this function call. + + if grovepi.digitalRead(pir_sensor): + # switch on for 5 seconds + print ("blink on") + blink(5) + print ("blink off") + + light_sensor_value = grovepi.analogRead(light_sensor) + + # is it getting dark? + if light_sensor_value < light_threshold: + # turn lights on + if lights_on == False: + lights_on = True + start_sleeptime = time.time() + print("turning lights on ") + grovepi.digitalWrite(relay,1) + + # is it getting light? + else: + # turn lights off + if lights_on == True: + lights_on = False + print("turning lights off", light_sensor_value) + grovepi.digitalWrite(relay,0) + + + except KeyboardInterrupt: + grovepi.digitalWrite(relay,0) + break + except IOError as e: + pass + # print ("I/O error({0}): {1}".format(e.errno, e.strerror)) + + time.sleep(2) diff --git a/Projects/Home_Weather_Display/Home_Weather_Display.py b/Projects/Home_Weather_Display/Home_Weather_Display.py new file mode 100644 index 0000000..a2856ae --- /dev/null +++ b/Projects/Home_Weather_Display/Home_Weather_Display.py @@ -0,0 +1,85 @@ +# Home_Weather_Display.py +# +# This is an project for using the Grove RGB LCD Display and the Grove DHT Sensor from the GrovePi starter kit +# +# In this project, the Temperature and humidity from the DHT sensor is printed on the RGB-LCD Display +# +# +# Note the dht_sensor_type below may need to be changed depending on which DHT sensor you have: +# 0 - DHT11 - blue one - comes with the GrovePi+ Starter Kit +# 1 - DHT22 - white one, aka DHT Pro or AM2302 +# 2 - DHT21 - black one, aka AM2301 +# +# For more info please see: http://www.dexterindustries.com/topic/537-6c-displayed-in-home-weather-project/ +# +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +from grovepi import * +from grove_rgb_lcd import * +from time import sleep +from math import isnan + +dht_sensor_port = 7 # connect the DHt sensor to port 7 +dht_sensor_type = 0 # use 0 for the blue-colored sensor and 1 for the white-colored sensor + +# set green as backlight color +# we need to do it just once +# setting the backlight color once reduces the amount of data transfer over the I2C line +setRGB(0,255,0) + +while True: + try: + # get the temperature and Humidity from the DHT sensor + [ temp,hum ] = dht(dht_sensor_port,dht_sensor_type) + print("temp =", temp, "C\thumidity =", hum,"%") + + # check if we have nans + # if so, then raise a type error exception + if isnan(temp) is True or isnan(hum) is True: + raise TypeError('nan error') + + t = str(temp) + h = str(hum) + + # instead of inserting a bunch of whitespace, we can just insert a \n + # we're ensuring that if we get some strange strings on one line, the 2nd one won't be affected + setText_norefresh("Temp:" + t + "C\n" + "Humidity :" + h + "%") + + except (IOError, TypeError) as e: + print(str(e)) + # and since we got a type error + # then reset the LCD's text + setText("") + + except KeyboardInterrupt as e: + print(str(e)) + # since we're exiting the program + # it's better to leave the LCD with a blank text + setText("") + break + + # wait some time before re-updating the LCD + sleep(0.05) diff --git a/Projects/IOT/grove_IOT.py b/Projects/IOT/grove_IOT.py new file mode 100644 index 0000000..3eb0ac7 --- /dev/null +++ b/Projects/IOT/grove_IOT.py @@ -0,0 +1,59 @@ +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +import xively +import datetime +import sys +import time +import grovepi + +sensor = 4 + +XIVELY_API_KEY = "xmvAR7Y2KxAd00B8AFS1smKCsMigYheWFCybsx58sc2DmFOJ" +XIVELY_FEED_ID = "631205699" + +api = xively.XivelyAPIClient(XIVELY_API_KEY) +feed = api.feeds.get(XIVELY_FEED_ID) + +while True: + try: + now = datetime.datetime.utcnow() + + [temp,humidity] = grovepi.dht(sensor,1) + light=int(grovepi.analogRead(0)/10.24) + sound=int(grovepi.analogRead(1)/10.24) + + print(temp,humidity,light,sound) + + feed.datastreams = [ + xively.Datastream(id='temp', current_value=temp, at=now), + xively.Datastream(id='humidity', current_value=humidity, at=now), + xively.Datastream(id='light', current_value=light, at=now), + xively.Datastream(id='sound', current_value=sound, at=now), + ] + feed.update() + time.sleep(10) + except: + print("Error") \ No newline at end of file diff --git a/Projects/LED_Fade/led_fade.py b/Projects/LED_Fade/led_fade.py new file mode 100644 index 0000000..4792de4 --- /dev/null +++ b/Projects/LED_Fade/led_fade.py @@ -0,0 +1,55 @@ +# Adjust LED brightness by rotating Potentiometer + +# GrovePi + Rotary Angle Sensor (Potentiometer) + LED +# http://www.seeedstudio.com/wiki/Grove_-_Rotary_Angle_Sensor +# http://www.seeedstudio.com/wiki/Grove_-_LED_Socket_Kit + +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +import time +import grovepi + +# Connect the Rotary Angle Sensor to analog port A2 +potentiometer = 2 + +# Connect the LED to digital port D5 +led = 5 + +grovepi.pinMode(led,"OUTPUT") +time.sleep(1) +i = 0 + +while True: + try: + # Read resistance from Potentiometer + i = grovepi.analogRead(potentiometer) + print(i) + + # Send PWM signal to LED + grovepi.analogWrite(led,i//4) + + except IOError: + print("Error") diff --git a/Projects/MineControls/GrovePi-MineControllers.py b/Projects/MineControls/GrovePi-MineControllers.py new file mode 100644 index 0000000..1fe91f1 --- /dev/null +++ b/Projects/MineControls/GrovePi-MineControllers.py @@ -0,0 +1,150 @@ +# GrovePi Minecraft Controller +# This is a custom controller for Minecraft, made using the GrovePi. +# In this example, we show you how to build your own custom Minecraft controller +# with the GrovePi. +# See more about the GrovePi at http://dexterindustries.com/grovepi +# A great reference we used is the MagPi's Essentials Minecraft Guide: https://www.raspberrypi.org/magpi-issues/Essentials_Minecraft_v1.pdf +''' +Software Setup: + Before we begin, run the following commands to setup: + sudo apt-get install minecraft-pi + sudo pip3 install python3-xlib + sudo pip3 install pyautogui + +Hardware Setup: + Setup the GrovePi on the Raspberry Pi. + Connect a touch Sensor to port A0. + Connect a Joystick to port A2. + Connect a touch sensor to Port D3. + Connect a touch sensor to Port D4. + +To run: + 1. Start Minecraft on the Pi. + 2. Start a world. + 3. Start Python3 (IDLE). + 4. Open this file (GrovePi-Controller.py) + 5. Click "Run" --> "Run Module" + 6. Click back into Minecraft. +''' + +import mcpi.minecraft as minecraft +import grovepi +import time +import mcpi.block as block +import pyautogui as pag + +# Setup the four sensors. +touch_sensor1 = 4 # This will be the Build Key +touch_sensor2 = 3 # This will be the Destroy Key +touch_sensor3 = 14 # This will be the Fly Key. + +# This will be the joystick. +xPin = 16 # Port A2 +yPin = 17 # Port A2 + +grovepi.pinMode(xPin, "INPUT") +grovepi.pinMode(yPin, "INPUT") + +grovepi.pinMode(touch_sensor1, "INPUT") +grovepi.pinMode(touch_sensor2, "INPUT") +grovepi.pinMode(touch_sensor3, "INPUT") + +flying = 0; + +# Creat a minecraft entity. We'll reference this through the entire program. +mc = minecraft.Minecraft.create() + +# unpress() - This function unpresses all keys. +def unpress(): + for key in ['s','w','a','d',' ']: + pag.keyUp(key) + +# move() - This function presses the key "direction" +def move(direction): + unpress() + pag.keyDown(direction) + +#build - This function builds a square block of "size" size. +def build(p): + size = 5 + mc.setBlocks(p.x+1, p.y+1, p.z+1, (p.x + size), (p.y + size), (p.z + size), block.STONE.id) + print("Build!") + +#destroy - This function destroys a square block of "size" size. +def destroy(p): + size = 5 + mc.setBlocks(p.x+1, p.y+1, p.z+1, (p.x + size), (p.y + size), (p.z + size), block.AIR.id) + print("Destroy!") + +# fly - This starts and stops the flying mode. +def fly(): + pag.keyDown(' ') + pag.keyUp(' ') + pag.keyDown(' ') + pag.keyUp(' ') + print("Flying!") + +# We do the following loop over and over. +while True: + + p = mc.player.getTilePos() # Get the position of our person in Minecraft. + + try: + + # Read the three keys. + # Touch Sensor 1: Build something if it's touched. + if(grovepi.digitalRead(touch_sensor1)): + build(p) + # Touch Sensor 2: Destroy something if it's touched. + if(grovepi.digitalRead(touch_sensor2)): + destroy(p) + # Touch Sensor 3: Start or stop flying if it's been touched. + if(grovepi.digitalRead(touch_sensor3)): + #The variable flying is whether we're flying or not. + if(flying == 0): + flying = 1 + fly() + else: + flying = 0 + + + # Read the joystick. We do that with the two pins x and y. + x = grovepi.analogRead(xPin) + y = grovepi.analogRead(yPin) + + # Check to see if the joystick has been pressed down. + click = 1 if x >= 1020 else 0 + print(str(x) + ", " + str(y)) + + # Check to see if we've been put into flying mode. If we have, we can teleport ourselves! + if(flying): + jump = 5 # This is the jump size, how far we're going to jump in each direction. + playerPosition = mc.player.getPos() # Get our persons position in Minecraft. + + # Now we'll take the joystick values and jump in the direction it tells us to. + if(x < 400): + mc.player.setPos(playerPosition.x+jump, playerPosition.y, playerPosition.z) + + # Here we will make sure that the click and the x-axis reading are not confused. + elif(x > 600 and (click == 0)): + mc.player.setPos(playerPosition.x-jump, playerPosition.y, playerPosition.z) + + elif(y > 600): + mc.player.setPos(playerPosition.x, playerPosition.y+jump, playerPosition.z) + + elif(y < 400): + mc.player.setPos(playerPosition.x, playerPosition.y-jump, playerPosition.z) + + # If we didn't read anything, unpress the buttons. + else: + unpress() + + # If the joystick is clicked, we fly up one spot. + if(click): + pag.keyUp(' ') + pag.keyDown(' ') + + + except IOError: + print("Error") + diff --git a/Projects/MineControls/Minecraft-dexter-industries.jpg b/Projects/MineControls/Minecraft-dexter-industries.jpg new file mode 100644 index 0000000000000000000000000000000000000000..852ec7520f4af6b37273b60384304ca8fd03c20c GIT binary patch literal 57516 zcmeFY2UwKL(jfejl^~)ZIS2>>k|l>xQKE=siKAr6NRFeTphN)y$w`tDBxgn>XUUSo z5F}?9nDoDRj_025?)|=h@9zHpv->>T(ssQas;fFwS5^1me&FVSi>it$iU1xS9-s{V z190=KJ@>qxS^32u!HIg7yA{$qMi&0sLPz0N@ke#b5Aw@VgZ6 z5LcZ7ez^-*|#)WO3i0HW~#(m!az{~nG17ycj71b^kvMHBu7|BNR3tIkd|$vSI{xobr~aBw@Eay8NGJLYlZ#~1{#hTK)vP~w2Nw(ge8m4V{|qMh8%*>k z%nIfc|1F>G7d>R)>}sts181uW4~IJz0@Jf_hLQ!0Q((0CSF`!A^1xP0aSFqS^*lcvlI`=w8Q(O{ZDY~xq#cL z6c2D`0>SM+%3=C=z{2Jqu#p}f5S@Sr$l2m>!e|`sU>JwX=D`E3!QvgTX|xXx7Xado zPB{Oc#waR0;CIAh#|M5#sz2eg6#vb+|E=N~jlXF=OMlb+zZ;$Zv-F(t^{;UJ=J%h= z|Ni~E&e`1mD;)oCdB5BLXZ8Nx*T1Us|5f=VaF?9*cZUBr{LlUWSG1qC`5oCkNr1EX z&$RyY_dnPF-R5j>T>Uei<(<|0SACz&!SB9)r@!m{eI5T-?fkI7ltRs$Y@ z#R0&a3m)*~6b}@!ctH8XGa2&lh0`~G$Q_nAJYZz>4>%Hpt6KhmZD0IHoSC4^q6YhV z56Y|$f5M6Xo$$Xync{85+n}HXKr)0L0>i*I*!V2Z@=qjMoL!q_UrPZ60PwrbaqlXb zWi>D*3b<);`o@tnH37ofKrlP|jxM=$7f_H1L<_TTydqy12C^OiA2m5GRWIB@05xua zhuHNC0^}8cr)(I=9R>pb+x)-R`TrCCVIIt$Me*D;<^mI&$wPr-N*gm3((nEs6d8Bo&! z)xm!b;6MPSVE_L!K^klfvhzy?`8ys4a6BCi4@Vn;!n$(IM0IJW31^YRJ&(eoNpk5^`EH0)fEUtN9>5h<)_8l={Ma6rHcke3R zzInzR-Y*6TwWK7^zW&gULG9@entnA?RumG}zVi#;8BTx@|E!lk!g(;`Y@opeMD>@Y zfyV|aP-l~k2Y@s1udNI6#eY~AHOu*f<5a+1PJzFfm=1;JG0reDmf_ zR&FUdNfB8A(VHS?Nbt^|KTl3ZPDepOCvuhPs>r_`a9;tcbASPmPJnk6z^B3^pu)qo z0HC6bM+91HX9nA!0W>ZMiHJ$gohKy&D^!4n7#;xuJ|O`S5h2Jdp8uKgK}bb(>8kK; z;>(&(NZ4JdMP5W@oa4At(nO;*u)`^8_Uz?((krxd^bFUyxUci@-V_s;kd%^ExO-1g zNm)fzTSr$<|B->AxrL>bwarsoS2uSLPcLtuz*nz>g5SIiiH><68yEi}Au%)SV|Gq% zUjC=jvhs?`s_L5BZ_O>OZS5VMU4uizBco$K#wX?%5Q|I8D?eA)cK7xV4v&tJC#Pq8 zftJP}Z2iUAKk-Ec@`X=GNI*z(#upyGCm0E+2#Kx=6JNTmN%F+yGP}r&bJTaDGD@1x zbBJo~(3m|NAictQbN<@y8Ed~d`|o4y<^K?8e=+tCz9s;2P_E)r5l{gTU`N?usoJdM zsu{7ymp(`WO%3IXdNt>a7}a+?Z1`Jmq*jMR;w1~|PK<_OXf{)heNx8j3Pj|$>w}-W z_Rk*Ognc7g5Ii}o!~tKC5M*t(w|&}F$Fq>>;`(Sv@XXbBb4@mZBgGlm2wOCitRg}F zDC6TjEM^q;PRuw4tABiX^C=DxK@B`ca}UQ7h}UHR4}`d5BNsWut|JxlqoRtDFdTr- zi31RBm{^S^n6s}Bw5M^8FYPr$cmbFG*iA*v;d`8e5}3V`OEA3KNX>lwW|Y(26Ge?} zE3lFAkPa`rw9_k*Zm|cT4+hga7h1KaDCGJeyK7LL zVl+Gi2MC=Wv7W$5unI}@dhevY;E-c-7*-(DDTv|m>OwF?T@nZEcENNCCwIBmhh?JD zf)br&y`r^ofHMxjjz3h{SsrjLGmdS1Omccfatk)kmo+vpOwBP*qfxfG_3qB$RmLB+UY}g!d1=4(Ufo&ByYPeYD?JW) z3U8~TArpTTt>J2;y{bR3c_^6Dv2~=O3JHR>CuSq{6Im{#x)+FFM?uw&G^% zris$IR9)`a&0AL+b#Jyl>{gKdq(EC?)qAlmq}qvgT{lnK{<@Ln4j#?bR$o(ik{`<;<>bBcdF;Sbn zj@T=Y8#!IV_KI9MA~VDY)FJ4j80@Loij@3H1)b8D0e6qIXUmrTSy2yY;zeOt{_wl~+o)8_;BsXjL4H07_$35;i{%H?kW5lY8s{V3gw&cC` zxQR<--8?(NFUw zh7;}y1V5dxJ~vpZG!qrM$2wSXUw18Zeb}i$ZaT6AzgU6;&Xb#? zD!V8#2P54fSo-M~Se~*uqP}2Z9FQA_1HS9kNe+dy#eWMeMk^X9uL_#ufVb}b7#F8S zJI7#YWYjlV_dzdh^|IP8wRWM8xLllXi73(`%ucal-9akD!v`)7pClBA8<_`X^Et5{ zU#v-$r|pBQ2CFZ1^!40uJ0OgvHn{gXEY{fP1;<| zHT!8lyQ;Qx`R%CZ-U#M(!IrquIO&i{!_`DL<^1X>YkJN!<3L?`-C%7^{e!!M%W=Fq zQz`LDd_UuMX6&vU?LYb<>-b;^MXeyI1*_XMDMoWh3u5p#AUpJsZ^h^7h6A6eZ7CYO zT2ajm;~Y&Hk6kdKR4e<=oj7~HEaaZow|ZyZs03=~TgOFOl1ka;p<(7XGYd0@o+sz3 z)X1!3m3-5`LB4EOZ_J)jeeR{K@YF`qW-N_hZ!{QOzPG9QAsGFrW>F(tD@cAUnMgY?4t&W!_#bHK6Is(UmR(v|it7>W!l4^{JI*_2;2kGV|w zeH24}<>!2=ypLy5=r{cX;`)@^z!|^C**hK3CB9)3v&k@*dDRfRVa^TzKst{ zJ{|V#&a`#DArY@Ps90E!=UPQV=uYU9Smg6Swn~qCe1W=V*aSmb=>rWaa2#Bo@Y1vB z8+0;w-qC)i#ZBysz(!K`6v-+Z*r~JITp{CSJ+U=;+qbjd+jotc1%tM(NSS-gQhoaZ z*&DD63lZ?qzrvHNX;iYhwCj>Nw0+9a@cnFYU4ygEfMXF3wOOxB``SP$QoMU@tw+wh zg~2p}bgGZx2@benc9K@5IT@JhVtk=^0b`^YqF@tlZCgN-$nI&ehZivGhM+^p*+o*l zSvoeanSJ%m)p!3#$DmkJAs1GvC1RH{PWi{8NGd!s+X^{qQzUEPeN%vi=L(k|bJJVC zn3P(-;+olwVLMlW*+n-Pg$2L0Kcz(!be|BmQSnn)kfs9inu+c;s?8{z*YyfA1ycV} z|Blpn7b~SLclH;^ju^849#sM%| zwC%l}w$C^~KJA1G*7iC${|C$@13eqaA}jm})}Mg`8pqH!kQO~{gb*(9Ys_=Yi>#M+3AkVyW52R zcJCXNB2K*)6_u2DyP659+Ro+kmwU{T! zZFv>&vb>yeveUgzCvIyVajmrQDjPc7_+U-F*CgdIZ%Aj!rZA$?!R*_ZX0S%$+_mAa zbchL+$0`KL=6PaSrmt)j)juA|az*I3jK%AnhN%&?l;ppZ&@vwO)g~rV-u92%Gk=@#yEbv%0t{;wHfqYD_%og@iW=w~dr;t*- zl0_#a^&6G(@!O){D3&COeS=vOr*ZlARsD&7|$QaiJ!@<=X>MN6D1X zq#@?@PPt+4)bM!}MmN!yKI3irV^7%+ywgg+CHV%)A`a6_kyN&3{;AG&@c})X)AcL# zn>q`_f&=ez>2+L;vOXcL*$gVKqe|OmkSgQC?5DoT5mhSk`>EShKvosv)eQJoBFROTF@@z5Fil zQ1vWX)Xln{?Ha%Ps4trqQ1D_17GzjE{oJ*0ERPPVH>m)rr|wFZVJ~^4{lTegE8OC{@Tcm1n`y#;7Kam^LZi zydqU)uA-*C^37DeP0u^WtI01?YMNGt3cak~9#;D)6foa?l%(gb8+CW`7!kHYKtjhX zqfa1b;laQX{N!;aN~5;MYm0;RMg(cp@FjpLa)_&*RWE5%y7vI%H~E%z-^|WuK=Y;Y zVsmHT$K)z$%3v*r(IRcs=pyz$9ATPR`?{VZerhJPmwNHNyKqafpWV8jU$y4x2xIsi zsrPT`Dt#ryL_Z};MVqLe7rC{3_r7&C-Nz(7-XA>uaIt>gPJRl8rw$nmYj0Gy9#HN& z&S_0S6-RqGET*woNW55Ri-6Ii?XbjdIoo- zlYZkz+Ehh+aqEHyLG>rNMnx=LU)G zJqe_mB##O$BRs?OwR^J^Me;I__*YY<)iyac;w9AW3jDe(g(CSMY@J_!5k}Bn=yM@B zOCaWPi8s}4m?ZJfZ!I6gMEA)L`i%jgPmX6Kzc1?N_pFU#jLkF1MOkHzC^r=S_C^KS zQ;7GHN~wgRF{ogzAeH;?CwA;agnKf5UrTi;j~n73)_PRCKN)7tF_vS?!?lv(zL=#x zn?Ke$E4H`W_snPXLu#-**`{A;EzRB|sBFZNE`lemg>}{Bj@@XB^(Iy1=NHD&P8sg` zHL5@LM>D;WEPE^tPK>Sc~zEVQO+j;6!0U2-oK+e2O zo~b$cv&+ldodn#D&J~D#L!K4vh~?g_E&Hu%*n6fGS%R4LL$TqXO?)3cwR0*BX^Y}F z4Bb2-PgSzr`Io%CNYgLLJ3jMuJ4D;t^ZV0$6y*~|xC&p@&*z{!V6H{!xn`X^=A}+4 zrZuZ=_d5+c8XcVI3Sr9n)Ey6yKlb2;++MRa@}AyUPShsnA|%R6Y4qf@wtXoD(bn!L z^ew5E0qwqkkJ`4!4<}?1%JArEJT8y0le@%|DL>jIT+&Q=e+&iIzp%E@ZelZM8F9_- z8MI$0RMMFWJ)*R>be*48#E$lqyE5AST)yw5*i{fl30`7tZNW4i4<9l*NcV0#k!Ox4 zbErNqQ%HSvN{-0!30ad)Kom^mzI9I-6tUI%D)iv4neqsHj++ExYWKasZCzbtI-@MO zD?G{Dq_yTNbLRogKyc)QHH(1nZ4qXzd54>mpW{$pTJ~7KUWVSJ(thhpNn9Rf7+2Hx zwU-)5M`WuVeSZ0Zd~cJ4%}J6tHc)dJyYZZ2YVkr~kF4g=dcFCkHe#sf=GVv7@gDcX zG~^!m9HQ5z471lnO4Wl*>K+WV&7{PC8^sGDUez@35&BKO}V)Lc!(8T0> z>D#IHR1?s%xg5y(uQ7*<(O(;XSI6iTDF5thl{Rwh9!a>xTfpw(O5?S!5abrjF#dC` zXo>`X0y}c~-q_XQ*Ux)6Y}=Q2%fl`{m`eQ^dB?VVMrfGRzyVQR7tz`|Zez{QAn=Tu z2N5CMZkx?LoJ|-PbQ~n>l=W2TBz{!i$*16}+6AG9FPezH9&WCh&?8GSSmF}nF{hC@ zAhf8~>y4s#Nvl4Ymg{n@=ppPagM4=8tUvwMVORArXs+Y<>%Se(L9jh5(NZ-qUE z_%Cl3J|5oL-=Beih~O*`gPs&35@OKB1;%sd$SGpq(;MT^&t=9>-BCPazucAaw1Ippn zP}LZx!T5C4u&dD0U8uD&WtOa&7V-u9DVgAL{C?(!)WZQ%(D#(IBzSClYdx|a zp28T9>OL9BGa%o4&swKyZtRx*lor*kQq8g!5EQNu>&Ey6=B8O$ppe_|f-Rz71RIOM zvW)_p5_{(`eKDWZCKt=2;O}yKH26gFNucOYgu7ax9WoEWpk|uEdtFSv)oP6U_1N?BlYX9krR_;E#$U6O&!CYOG4?G z&gC}2sJXUJ*7?h!r_`Ah4zRgbtQE0yCjpeRMX;5es_b?gkYOBBWX2r%?q?g{Mjm`_ zc6MUH5-~4p2i_Nk-n@zRjD0qXrC7!k=Fr1}YE2qpa0CT40((+>^W>cg>*Wxa;u_FC z4s?Ur=12C=;Q)$B8~|S^l!717tD6L3DZXNI7f};}f%Bk!*is2j?rpC4@<y*J5pzbhW+;z05$TSrkbiXk znsD@PORMfXGAIPKZvqnVtWnwvdbfVKLgSJj_s{`Go-1{28DU(bT!_$&^K>eEqJtN$ zVY?E*hy$8Pu^fI+hPMjp`F6SIoZb`_Jh?ojljml58hMjANaRoy)48rivOJMF^hlWr;*g;*4q$4c1gLaCn$I8>)-tDU~0 z8#%iY-%fJ&w9K9i7boZ%dB~ev5eH~_^%H7tW=s_+9?8?J@qE;uBEX(w-F=&cRn!Q2 z?ACu23r-@tzR7$sQhXA@`sTpMZfSSy+nXn~>ObLj!{g77aloCnfM6Pda@vP(i&aW1 zu>vA|2ho#QiezM-;%XzipM)k3xZjGx0WvPyRcJZ`>s-xFut>F9b=6Y=qFIh z;5-6SU*Pn2t>?DxuyEY#X!3PZPIA#KUi ze7VSL^ZXL+X>@*qnRb^=CRcqL^PQ|c`SXZv7NTzzbWjpKmjVups|sA}9yBj_3n$I#8i>gX$$vA3$L6&Y2N7XdtyEPQ_saM7cwhK_=eS@WTC zcDHv-WAaudni~5(DMN31gqRd{{9s=%`^>|9TT4d&MF| z58PZ8-WTnz>gqZ#^>E|-;|%Nn@=*yIc@z+D@bG9eC_u*51qE0w~ zkQMXMP&|6&8sNVrzz+Ae?Sn_+h|j@S>+MZ5@izlwQ+4)vFp&=xz`p?up}%7eoj zAw3h}!`<{A6G>rueYD&;F5gq1C!%~Nk3J(`Q`9M9*`wW~JS39r2=K)>Ax*3OW2w0} zaRBmZF|)e2i}S=jpNVALtx9Kmt8*nUsdMlqLWgPt#}e0bn@@UDmUumIKoz`WF28MD z6=@Esf$b@E@PX@g+s{gPvdjxU&+DK2q3qMF_-@!DO&PD(N?@N?o*!s`6VmT`ek%_4 zl;_`#Y%PA($h z@zVzxmE+k4!3m0f#qo)_j- zZBIV`yx+{bSP?0e-HL)3**^4Q5Zej!>5o4;9E1%7j4wG+og@j@IVEt34*B|w>E`*V z?#frVK9O5_b2yoQ&`Cb3r3T}ZOMb0-B`mH>Sno+}Qxiu&h zJWH?v)+Af?02Eb^?YB}b(vDt!G2quVbPxP?$Na*^=5*2$Uow*g`RGv$I2%<+%Y_KF z$Vi{qZ^{`X={s(kpNk|cF8htst;i>jDP8&OcO!1vNg#Sg=#C=S6NaVO2wF*c3xz{n zxmzDApW4rel1GxY$=?aD$f9F=9PxoLLgunj`%9N%KUMJ73o@6yx64S{$Rq=P#Gg>x z!{#OgUwKr1mRo7-r!j8%-q0a_s#{=*P|~p?@J;3`&7Yh9aG|1t1kLyYCHr(D&~Ob( zgS~oVH>*QIc}8uZW=o7zjb(>YnQu4;fQu`-n(AiEY*20D@HI>bGmEEBkVdt ziaS1N+(6f_Vs0f@!>5KO6G3NEASpJ)f|q8j1~LspnJ1cZ36=#xk*qkt)-90|eX;*Y zDE@9)V~pl*!MkbB;`m()ksATp)G@9~06_tQ;Z3AQ3|(n*u*1c(T$IPufJRM4U?IUNyHPL+C@ z(TiUqW2LbpKhKm*la`uNd(_EZk6~M>LMBGBv7syK{p54Us03^1x?4^$Lc6H()hlT` zs{KfAq?JKES#Dc*^#YW3UHu&%=aL}le)*g==Nw*~@!BKsG~~tsj~Tn6B9sJ3OM|SL z92mp8aOsL#l6^H}k_t4~NA&+8lfB?sF z8N>dO6egiu@QqJwBw7RqJg+FGoM@#TuTVrr6&m#BDGy{R&*(UbWPVPdb)@zmlBuLZ@D$IbY(&-P!m$>}~B$7 zLH29JWFcQDHyCXKph0kQjT|Q@POK}#j%BE2 z8xj1>f!Q@R_S4P^$!Iwa*n{qg2Jo8KY6fFLb+nW9&N`$_VnfLx9ZJUf8cvKIKk_E3 zk!QL@CD2^9t*A89Zc5>I6{YSK*)nquxwH_@H?Oo|iMobN`kLrJ8=Gl6k^5>hy!8N& zcIBPifs)5U^N09c4XFK|h;$WVCi#oS=$D-pppiEQ2HxH7acS*pi>#`qO$%a`Pw^+e z;ee8gp!bD>U*UnCv|lFg?iD~O?ZaGqx{^jkMps_n80U|;xH%h@P{@IaSZD-wy>Ed? zC31f1yWlP*omG9zJQA7#<$%;pd{XXPhQ;%e>Gv)3x3gg1ZIM(c(CSY?{l4R8=zol@E$eZkOzj74C7&&a?9hTUOtsERhL%C_YpoazH(vKs z9B?XLjy5PLPvISyd%pcxyqhD~zboVI;|q@>#tZvNy}D-Sb3UBPr|}<$6h5&@oYft> zQ;2Szu0M=5@0uqbU}1b`XHN0mC%O2#1or3L9duAO4)ncdi z6DK|5>e4#tjUo?in+0p$qnGyZBgnlVe8k-~$m3!)j+@Ruj56C9K0P0t4-7agRYrZC z_vN9NY40{J`zl2cYaSu<(hEa!(kqs};#wt1abkIb;ZsJszY{!ph68p$opw)AWLNYJ z%Lr(&R9(dZ9Vz9ktlOE5R!JHa(Zf!pQFR~Fw@%KRDYwl~c8LT$d9gR=4-Erb@dA;!Tyw+(BU-P?dlA&Q9{gkNabBk>f}E zfR~NlC~*=em)jLn7nB10Kf5=1^MYcOY&-ts19+)x09tqP+c*I4Z1eaortN6&#f49x?M6hu>lztzdndQ@XORYWlx99>;Fg^Ca;BXC8&;#>xc46H5}sq25MEG@Fnb~naG zgQM`$#O}~!V*Ixg4OJ@COIc`A!+OWzDr7F5MV=oAuwWS<%7lXF1){=KV-m4IP_&KA z)phB@JU;~OiuI0(p7{QQMQy{$$o6Cg=vto+e3=E}EWq2FhHg>Yma}r2Y+ksq9j8tL zzR-i9c#F9=$9FHX9wzdFw);CT$-`~aM@P?jrZ;;Pcjm6NS05G3QY^s^C@E_g1h{%( zKiOf(%W`*|CO54 zhn{@UeM(9+5kvdiG81eG1bsd=3ACh}cgdD|MM!KUWk^w$O!^x}s%w`+ctTT*mhKu#7;~uzDbmtVmL^ z$V&KctOKk~J#oNg@L`gJL_5Pw+U}Ej``Xt-$Y?dW0HOm%Peee-|SOJpltPq?|JJ;}EtVlf}?{q+IZYKZ`Dce_56p?r*607zcQXkM=ET zNmT{1ZM8pOq#=(3JrC0a@-H(My`9j=U@ShoqxdlNrrk^nC~^s4%f9U!H4FV0{Y;TD z-o8caq3ll!Dfa2J!qvnFF5YFMyg_sO-A97`OLTSC(_)=jHKXX2kpi=q%#B(!L6&p) zDm|d~MXMQjth0E)3QQZUO3ZK%JsA`DST^`Wbx4JFmTo+}J}gyvCCBx!cPAx2XnD6Y z*l<|P4od!(laIgPMG?IRMbb0WqphzToaB{K#liiOisAOgpR}T1**AX=233*g z`~GQ&+(6EsmrY8!Sr2z&PhZB3hnIB+yoB>%=}a(z3((+|)x|ZB{u9;QQ~h;zBL{L| zyMv81Ii*g;hlP^i+9nU2`;@+9e5uNR;QMZ?22GiH3G=6kNe4z>x7Ah^8aVxAze~ue zs&$jvopT#IS@6Bj&IT64-wm%2L`WZO>p!XJp1a`hV)DL+Q!nD{N@RMkQB~=bw9DbT zp2MckR(lnb?uX3|4tQ0C``wi&P5zpbI;Mr3D|Pn_BPKn2$7=F3Dz9qXfuy+KZPVww z_GLP4`+`Q{4UZ6nd@#hYj=9n2`a-ty$=Cj+!OGB*u!63qwoO5jrmbXdbLW7`w zg4vluC3|I5gYVc~3$tRVS*tFw>GtH)58eDly8zxx#_J>X|rJmwS8&LGbgUo$|QqYXR7jh?%pt4{s2sydb$c>C$_zb1?sxxh&6J#X0i z?Ran6J|H`Z3-SHvFjpm4b%@|B)B~kVHe7USc+(EKEEO5ol@NE`xLgMl#%9TvDZU%-)U5;hGw(VZY>Vo z4>#Y4EVa1sOg>FjzP|>W(pXbSS>~5JTTC5JOu6gM+<*g44^Md^+)>G+8H=lJw=qh{ zp(|tLQd(YfM{WH(VwvCVpM?36jr)A0VUU*_Gzi4%i*=IS~%X;o%P4p4;tQ`3WA(8hgBN8-t!!cs$IC zvs|fs20>X0Zze!{$fg>VVD+;o-pID{?1~>twVR!YYQi+kdu@uSw&|L$6O_gGR`#6w zp4VDA{qSfTco(4g#RGdWtta(>(P16i&4gIfI57Nf^i0zrNMm+&!{{XHL_4)V1>QU~ zi-IGRO~{8U+k3i1ew_ zt3JEz4FjqsZ+vNu*O2xL}o5!j0dMja? zJ@$z|ttv8_-43{!^CKM}KqlHXhxHOF@im$&?(9BB98$Z|u!?f|+B4zx`BJVvOtMeQ zwrwb)Jhr8GIDV1*LTgd%@`47Ek0kOijo8HN%B++Dg9Q$0dnv@V87|WtTaTza2*F^i(o%5G-yL>E<0UZbqil)-RGe zD9+C5?_Z*NH$LyJt-<7a z$n+h|d`Jm%u9UsC*a)%p^+Ub_RtdvI8K?Khrm-T1F>C|}pp>jUiD!L4or8*I7 zR{0GxJDL+Rb$!EjaN+{5P2m?>R#QHkj+NLb)rEyIwZNX*>Z*#+tDfDwnJYt_h|zQw zfdTDpJ3~o1sm3?3jghv1QE6ATotKIeq|Lr$kS{0k;0y4*!xmqYpphH;8LJ_?uCjYx z(v5vWjqy{b_v3@+Bb!lA)!X$d5BB9pS!8$C{0bK+NchI2U&+D{BhMf-s{~GH_416= zwAB*Ow$j~6`UXTU8DB>*_c!P!3Qohj-}R;@G!@IayuQ~U272JX%0(iB50)yd!2`H> zUmn~Puj=kWKddt-w?hwpz>%Mxd37r&;DD=ztP$|l0hhy*&-)8@#xiDNQ=e0P%+aSK zdT$75x7wjGk^2V=pD`YZpyICvYW~l)c9xT?ia?Ww25bHElUKjOG>D~_b@k{c4EZSr zds&Xq5q$Kx9MTZsG>-t)@#5ZbD!-f)-I|lgT-698xgqf%ScjUn8F13zV_l(G<6<}# zPjjaY)cHRI|DqP6s^6AK8piAjdP%+_t8qa4r{3Jqn?|d8lJ4PLPZ?vCx6Q1a(kXfa zo|LjFAGKAJkSZ@l=Hh@)nbprl)KS^=5XnCLQ?p3q8&RVHD3TV9hXY!8K&iic4b%!j zM{+boJ6^L?8waq)c^&SLp=~wu3_!ImvK!(wn+qun(79pD37yWr>O~Z=b9k6XPTG;J zy)-*~!3UINhk9wdRN!cQfT2Mpy@C??%Ebrs6vWGlsX1+C#>BYSmw{Jcomer!qwrM9 zQ{9BqzBB|hCTharvg2z{q3-Z{wpK|aHepuom*-98aR4)Tqt&7kj{(IPc&UiVgODJc zj^Suv9^GL+Sg(5vg7a(CkOf@g?iw|PZfDJm$CffUgDwH z%$OzhjM5(3Efz^8pHuA#VzuZ({H@7vRrK`hhk1nyqWKSWu*J1@3*a<5rqDspKT#~_ z^MBf?m)6vf0y5OErpqNa$SW?QpB6KliyT;VQo<~I&#hpr53sr(d=O#t$z#{!vTk4P z-s*8So~mJU8DhSD?IY%L(TVRTaNlGHeoXV~I`ko|>4v5mGHIb$I7OX!3bX*I2Ysax!(uWjm>NnKiDzo*T4uC*~NHV<3g=`KUJUwhiCyvE>0x3Uh6 z&KyuvL&Z*g?lON4=^uPu8XiYc5}v*wTP(Oa6oO&IvYUgqc}{4MfC>mVDETEQPswmV z7Yv-gR)L1>7I_D?2d0w5Yv3comBcvaJA=Ch^R*R;VrF%SltQ$7VOr+wcLpVP+HJHXOv_WsBwTFu7}yh4m#mu zdY_Y76D@Io#VKkSGMQ-jX=~VR=i_tNXMrgArvBo1#a`iujXQNGlBircX`N7~1Z3pO zz^o&BbVNU_b}&?Nc?ZSsE4qJy(Z#*sES<+>d8CclOYeZ?HqpUDA#lfKP*d znmZ}gjP<(nvG&dn3LRxUx=&+H^q0+yKHp$8YiGUMzK=Ei@cH4_tiFlBw8Lco+1$Mq z_=*zxu3@n)xFzvniwZk&FJ~|QAz4;$!f0eUTp{tSp|X6O!IHWoh2xFYls`ou#4kW! z$800hnr%fi(60;IvHj3wR;#Ijtw?0R1Iqrx{LLmRmAzCib5NaYKPco_AhHI%zxv=4 z?2bNDnkQqRl@IzapvwVoC0Zj%ilJA$9>ILET%dK2Hc_0VL(?_*8O*0OYX_c+`QgVE zF0<{8H4dx^p9VDW+GOxCUaZ!W{0Y(6yN&})*C8ivjYlB*i~W?$>uOs{Gg@f79n%H) zPOJ^HRO^8Q#nJ zpx6cz>~<7`AnN?K8L5`CzrB1HjuP{*L>oXazj;kd_&(7@LqdGcSe){__GN}>N1n#u zVW?F%%#dZ4ARCGjpd`qZe;;m_whndR*tglRN;1I#Tc{!RB8~g+_-;);d749hwB9~g zW>q3;$~4D>HP&&saK24+Of2VUc14W#-H$~Jl)h|umVekd|1p=(g|?){m9Z(7!_3j9 zh$#yeZ0u!22b$#YD5Wkl@vz;&#CMVN5RA`vy9WXLF58;*bWH?@3#C!zdbJ75fN*=& zgII=1M=LqT!Ey$C#ar7aT4eUc2d%dY?yqi^L=-tPK(NHKpIJLo=u#j5zSCZ_E?@(sg+ z-p8trNs=ITNsAP+EnI?e5& zT*FJ`a3`M{YGVt3zSY&N{d_Wt#yQE)&aIIeeJKuC7LDBx*b6x&`DPnk2J6h8Tz%`* z-^1HANe-jh>{Vg%Cff_cNRLz(ei4pn;PWb@XD`1}=YO(L&`j*>uOesbwK*0BJ6-G1 ztC4dxYFUXg<%1r>zvUSD?S|=o4D{I%X`U>+Upag4xadt8J)gaIvA=|P5VvVlL#49fPDE!%%dQD0_gw@i#&Q5$(l7v~~1Z`_kfmzr-c_d)+;LkN@TNw;)4 zR+2r%8b3U$)+35vrZavVbb7Ro9DQk!5h1*k3SI0vK4!+IV`(@Hmbgyz34&RE{Dj2Y z7HRI&t2@drc$0-mNv&@pPlxU7m7z(?9lQLJWcPD$!u-7wN- z#(vfv$|}hW9AVwaxQJP&cd~?+yq(N9!8gM-Dps;_-Wm--)34|jG+>~a$nVJl4fET8 zygH?9A1$Xyw}@YCmwXp^?CUalqBAi5B}&(vm6thvC2Bj>$7keOLS-3X1Y zX_xhN9N_nzU-BgRrra9>&QsRrG4NfPA*+RMIU{1KuJ*<3PZ_t>2vDCZp-xEZnq=RZ za;`r-T1mYp@USL@rjF!xS4X<2;MKyy1aE!_BJzdL-o zZ$X)x8CK|a7mVvV_MnOKVJL}i zEPLWnm<*-DrXi>VO@Y5?O}O@@zqq&|pne=lYDm{>e`}6XqwRx(f;dciIC^aPAg3Zt zEIHxh{oL{<$h@YSQxodPsa|ZD~g%yM&yeL6Z`Zc12F~ zDN`DFCe3*j2Y~8fstKm*XlZu{=CWb7j+rF0#Kz7k!kPQBdm{?5+(;SL0dI1xZs&DW z6b=}Cn9xd1aL-%mlVbfc+yrh#L(5uL{M@3?)5}#u%XR3=K;$Yk>biIF80C)%#O7>i z`*YB=$h%3kkL}>Y@QroBLNJt3h-=t>63q7ZgX@pGJ=Vtt%lYR>XBw+>KJwLNFpaD~ za;-ypqg(yeMfX+Y12+r5g&m!`eReULd-1*4$G=`~2S!>(ZSWWtJX33?z)@8-GvdLg zS?xbRNxg1EyoC)+<=voiJuF0UTzT`PT&Dl$y+c7?e5EygP)8iB9oTboNpZ*vtn!~;-(x}HRjIg-<9!1IzRt0Shg#MO; zCdBH*v*hRosQjuzf?kiqD&*M&h9cvk5VT_yY%T^$0j`=4V=b24Ibz`Nnn$3zoi+^C z2h-qD#NR%-3N2US?4CI=Kjt_Y!dUgjqgyn#t-CJ6n%L!;jPHDdQ2D99{&2CNb`R7v zi7zMnjz0T;SbFQYCcpoG7)8YbEJ|W12-4CaFcU;#3eqv98IoH`a&w9NEZ{k#Dn)ktBS$+b@Hyi~J6u$9^Zim=m zWthH{>3N3pg;Z#_1#n9yW%D%LVr%z4b}i5myb!I**okX}M06w1!lwb~tFg_t#6Y># zy_nk^ebLM9MxYT9nZ3CyH65O@$HDNcDI)4Yweqg=GMC}(TjNVM7d@($BZ$l=zo>7?I&iz{fgKcR_(DtV)j1f-&9ayMlmv+| zvrkfqNQ!I2R1)NH)f4P@#p3bciK>zhdKf_+?X0Y|Mkv(uJMhF zht!BJhswP}D+jv%IpHg~O=vo{9JdScA#2&EaLHSMDu(nlQZ&F`p2Nx43SzdZ+Gl98 z3kR3z`Md2sx+2znRxM5{D+rMOd_o;xio3W+_)5(E*FR0x6aIL4?plvw9H#_;rPp#H zP?nyi#V|x=Xoow=kp8Sk)3QtpuZBOx#u6=awonO5M?|Yx6x-UCN zP6GR)(erif^59`C$`f>D=Po2NgF~OLbkw=Ak@VzfSn;&YMO~(`&ryPb+k^}(Iq4*p zxHZqst}KtMDFU>+L2SggyExkAq0(q99#dz$iP%YXgJIm|iFg8D zGITog7)~Jz3 z6-m!7i!K>-kusn_5QuOVQSIb#n4@Es(SpDi8jS74$?Y~+e&&u?RVQuJ{Hk4S*3@t9 zzKQZR`%tz8@TKL()2$a@=X#Ahp^q+ZBJ03;=xjhxL@GTihl$tNQ1{R7e26$v^#f-x ztU|%26OZDalk2;iTnmXXSpt}H`xJ<6ML=7J`~vj%Tz;4@3 zM{J4`V-$u33$QJKl>g!+*zSxi3=^CkHe98KFwPxxEO zmdaR5E+480*G^koxv9u;zfG$D=6rTW*B$C}AE;2W~56~sOpk)w3> zH?#^ti?Ahk=BL1bT>k}>Z>p%L+U)^E4xfn}I)dw=g;2b2#!5+k^NDK3r^^As1IH@DvSEAIRTK*o4{lX0`T|a7 zGASyOb#U)o8A-q6eb@TgJA*-&W#Ct1XsM&3vi(=!6DvCluB5PZ8ZWHye&!E^%U^%v zwrHIdcC0cy>PIQAIiGsb4h6XZ`_gzw9W^4MyJ_bVl&=nSv?h*X6<-Xn3WWb~q*gil8^S z;&yh7p38r|3F@lgv+Z(lOY_c;n-&?Kmvwv$O{D-vQ^R1p`>y#-#kp)Fv4i^zT>E30&D8p9w71Nd>nA;)v9X`jPb&2iNid2@aX+9)(Z?5*~wKM?X z2MlF>AAJ>GS4pa=gzT$esb1Gr#Rs&afz(Z}2&aE!N53jEfHX2d%v2Y;Nt+rvnz>fq zOh%+&AHCgyO}k@lpsD-O^$P9tM_XWFanz5e_edpg_Bf~>!zBH02bYp~<6TkNrB;W* z9-w^&w3&5)2XVXt21skAFLAs23-!-iS>ZSC4eacA2@I?DGDW0>{$gc+U}; zOr1SZS3VrA`_K*qFQvFhLI=gV@i9|WYz4B7## zcd8TNjI2q9rMuI`cRBpEZ`qwK`SC=dqrX^sszC}$&Bp)ez$;_9lh{ts`q-}% ztf1Cj|54_zV!Z_rQPlj*Ebt9cI=7%q!%d7jxs#<_`N4f&F}&6jx41Yqwp}U3Db{35 zI~}H+oQ(sSTKWM+j&UH<(aok8aQ&BTSkF=VI7y900^BQpOp+;QXUe)n{a{qRGFA=RBHjNvnCb!Pma` zZA}30hH#DgiAjO)cGlii6Hvx`^#x%Qo}ElU7b%4%PTIMZi*IFfOaX!@W%p9Xx}v%t zpFnk#$B=YXg8U8ADjO`Mx8L+$V%z(&4ag=hInXzRB}W2AZ28hN(`Oj~ef26WT`6EZ zg%U)~uVWy~PP!eaVXm8eZ^UmJ{HhwUyI^g}`>DXarTWEgtpZE0LAg*{muq+Jz*fs* z!FWopnz(Mzt=h+S-{PrrD*hwlRf@~8+fYe|dAwo&clivvDH#Zl@iIH;Lq$BCdgMM; zK>+~k#n(j067r_e=3mIIO%z7_Tph5k;`0 zi6q9gABLU}aufRDz8=SY3fph4!RPV_y!xc~)MfG6qUsAgOb%l2XM^s>j*hq!ST@Wv zv=i4C)ORJ}R1{f_^0Y=T)?>;1^#|lh@hZ^z$nues#}ZE_wRCy*(-C^Af-}5~c3cEU zS;odgqb#%ihhc6<;H;8?)y&H$nunZGgKE8V$aI!|Z%_N@9Hc@5n0CcRVj65!&*A~t z<>TX}%d~0M|L7(Q51YYQXdVdvs0z>a+9=ug)FT*YHhe$Id;)4axL>BjXTeM;IC^hJPq)8`;uoi)5rP1P|T`x7Pn}A^S)`^bGF`& z^iym ziq?62f=*tt$p#}gg2w4(0pJfBX{*94Hq;^a;n4O!iPIj`RSTt)x10abZJ|U8;e?36 z<8=-)_H_sfXqbGzAk3MPzzD;bU2= zFHIs9<9{p=VxVwXWavHHni151On1j}Iv?Q4x~esn74EDt+}uF*cn7BK+|}d zeU@Li^~-P`iY0U^%QR>{)Y%|u&(;!o!QqybcYHRc*o6;F7L#n?@`dTtFhx*KOTzx6 z+o>2pHN1Q!)(DPPxwtD(>Ac$CjJVzfb7Lg>o~~M6JOm$2W_IVXP@-rdT=BdM%&3y=&#ni|H z@+$PHiN~+52a-<6#oS1^No9%0aXu?!)$YE!WO@vPJ~gF*+i5DH4G3Mg%%7XLnAbX* znK2`N>T@XOw-xQ%8%(sd<&V?gkAuhpL2qkxh+7&(jOaMI7bpTy@bNZIC+Uej*nToVZ)Dh@C_%VuNL;T})pR zeHO$(`u{A)#w&Ta%POldmX{y!ziJWUjs2m1A%?JlwIk5pT?=Z-z8cNH_qSn1tF$Uy z+)&p5=KSX*P?yuZCENa*Gia&z-e*8&K$#wK)#dn4uQ0DZ#WeOp)QvccTX8(fXF#&A|usRzM{ z=HQzhP_DRKkO%T;c&K578Y!yUkLQ_R1=rPAS!JyA+8wk7`nWmOfa)K*l77r!oUvpHhgZOO@SGK*z>$pI1O35og!^@ek1l{ba1;Zdz2ZeunUkokJYz~u4i8PlH2+H zYXk*aIGezS0JlWx$^@il1UYu$kgKmOn>u?x5>yyPVG-~qX|Ury(G+$8O23`NNzqsg za6eJx2dhxOF20MWKvem3+pbcP9@4SN)*bZ~;gXW~qtVdWy3 zPK6HAS9VvnvH&gr(Oy)wfyLIVeQ03@Bax6raiJ!AG2h+TU2UNvd>-_c#(Sm&^?a1p zxR#-)H}FGVM8xX4$Z-ruFSQwd{US==t={P{RwA!>~FyT;L3KPucvEYRLZuGGG-WJmXY>D_Kjvu4*AXS_6or<1BSrHZI}!w2SJj zWbyDY6s6ww03I%GO?R{LT*q3&=~u>{3jBDCm@<;p>1ypO)5-752QWZ%%W!I3(spPW zrG-x5A+-kRzf>KIH5Qk7#c2vJVx6Y_0{=aJA5;UNm@$;ljbzik_%De#2(X)vc+bgEu$G*;D1>wK{xDB9D%cNdrKpZd<az(_*oJz=2fi8xzeVP0dK~Qvel0n3^K7(82^Md| zolxhJ+qlM_`6TR5vb-G2lkQs(vr`n1TyO)0hu>W{7|ya);23_t0=p{Gb-&~Te}I+t z1WBD+$%8=qxms>@i&E3LPTf#?UgbA)e}w0o2~V8MM=GCY=B#g#yJS2%AvaRmKA*WgAacD~bS)%MLwX zcm;sDjKt4>upW!Jb~$7TcAt6if$vXmvDNm#%4sb6z>Xrc)TgCotY~(riJg9`GA7^` z9Jucayr3FvrmVU=y98_$p+r14%4tze29+utUcxPZK8Bl8`b{K zqyKCQ|I2xz?)~{mNc2Wf^oXIOhJMt@`2Mvt%kZjd^+EUdJcT?y9c2eEXUBxQe3xQ81lK1!P^Lx`ufL) zUn-)0pjupFy_Y`%Ys;zOM+wXG-{ib^!%*8N?3D}4{(cf4PIZn zogY=sArOz^uE9%p^#oF?l5Q02(nST6W5AvL=z8a>ctDy%VgYTOkFAl!30Q4jr`?qP zOehvA8tY3vQO>sPojlPpLW(u)&s7_-JZwU!(+q2FHM?bsivb z{6P<~c-`%y8q8OhBM^V|yTt}%O}-)RDpcsED_)rS5q!XD4+)=fhsp>f^9VqNetKPg zMIC2|-$uBNm!(2NtPSi}T)K}aEzoFJnnGhTe>Xr~)2Y{{IG>)KZ^NcZGMl6FlAGmJ2O|B^(lm2k$Sw{#QzB zm;2p6OLd>|&^)=^Q>2^=nhmR2@ra6#Nym1`YDP#)kVr&zO4RBi?J1C20UtU5621D! z|11T~UC!>=g@Di28{o<$zHM?$#_=lfVZR(!IZ~T^x(dA090${=%s-`v8jPJDkeHa( z%xYN~`cCL$s?H9!_2>E}<;m)+;90Jq<#`OlFg}y&(1T46>ZSn4-xALX_z1Y$0rg#G{n zLI|ErSO9MO(;g(Ze|5WX^|R^e!3_oyAs61#RVTNkGRJyw;|M|@XiV{=8Sg^xRTO-S zXXLdw|CMP~L7}tn38n2)x0CwO`6ds+&L(ymk9(RwJX)|V8F3_0%|LlxgrEgsDOaIu zPPFkkMGW;Xu=uDF?NcuGz0u#3eitJiR15`+D8#LH=j$4>r(M6r^pwETXF9!K9eQf) z68fHl)P8Oq3mMV>{%}1Ve`SvKMJ< zy|gnyx1OqEE`G`U*3!cG)I`$2Tp%h`F(~!13RF9ldS=O=x}7RN^{9|9qc!s7m6!Rm68QL-pfjSz^0aL|gYwVc&eY zrIXFAq+}}4WgdU0q@?i6*C^|Ftl`!vcBMZy>M?P8suufs{vVoH|FFCGN3$P1OOlI|&I(&WGgO2ab zYZuPQ^Qv5NH#*Y-E2z90^dhdCF$u)M|EWh*1bFdR16VsKbBbiabPyZ=W~li*-@hcq zi~)aV+v}M$zmDLz+zVb7A9{m04kMbr&d&mAS2G|vwr%ja@;&urIVHvjb5$ut-AW~M zJ=-7Bh@FZcp9J7@5i*m?d$cp&PQ^o|7Id__LH{oO*<_17hoX-ioeA@7IH(eA`Y$Juh1 z+OdY3$DsIb^J|IW)d6_n)$)7wRZRsa-Ndy({nb|CM1g)#av7!~;TKu^mF6lQThjMC1n_VE=r*mt5Ws5usN zs_rV1HUhgyR5u?HsHqze6&H6+&q{n=D<#bp_c0)4v8P0;?WvlWh-z+GtnCP%#YQ;1 z;=wQg7{x=5C-#-kFWl%Vze`F>nCjW@4B4Y=Qu+gl7Sw zG@$FKzge$8O-Cl!f;{161P+|ck$u6CRS$_-ZL1E>M)X8iO`p)==>_Kw&KGhwUK?4S zr<%(E=s~rPfe&+L7~b&V`+s!Wk!zI2Tw4AzwiXz4@^IO~V{e8sflA6b${!-rk+>Tf|PhVBXXLJOvQd9{`|V zJ%}>JqoWkvOFrk;r_*z3lq2F0Ag#O4LH*zdH~t~kl4$4qqZo6n;@9G1zLdq{4&dO| zi7MdRE@A>#SF1=^X15Keo%a8`lm2AocE)|ucXr8;U|=Q+83?!vMWCZm1NTMaz?a3B z-j=gQ+{We3f^rza1Sn`SXah|QZNx8bAq~S5WM+sU9!xs>egbz zAiwuPdF}m>tT^ogjpm0Bex2xFL_Cpl+KC04$;=K+@s<*k4D=c6Y{&S@X@NAEN%%tQ zT_-l{1Dj(P-WEF@H3s0BFtsBHc03JT_SDyXvOY$- zgZ6F`WoZ2$U7dm6;dh)kyp|LM7Cr-Jd?7{Yhj!!=N@gWVa7S0DQxV)Aq;x}+2DR2szVn|A$)mkH;*hAt!5gDL4gZ{emWe6yg zkZ00bkqO#YeIQ z!rOCfwpMW_P6<;Ao8-)hq!!=;(g}?~dtcQr5MT%ea53LnnPdAwM|^bXb&X|eEI>HU zw9$wM!f^$bs$_X_(bxE z+R2wio6pugm~~umpuVINRz-L>hIkhj`OgQ46Wyf1J4nkr|6FQZx_V=DmdS&|+r${5 z=FU1IY;T6UnnpjZQVo6%eFDt*h3$hO(Nxz!8FIrG>Ucuyy8Ext%{Se^8^nX-PsNwM zb)91bJnQqyeRTVvqoO&@7=WHZ_T+a-u2+^b$&%fu8jy$kGm&DOcdh%ZVqsJA;Mlhqa$RQ+fho=Z66woE%{1 zl+3x>B`$Bbx=-SvZjUCN@DanWK2(yemHTAu#rZ~ZvzrFwNIz1eRqrCmpr+OwtzrDqW>e8FEYcPuqzhJLJY(2vh&E#E?o0Q$A$g!9X*?tgTpMt6ocSGuEl z{PnEEm}VdQ>$iuBbO_cz+x`MI?t!_n7ia6SGUOHuA$TqqK7NGlO4)GN>v3UEPHF!G z^gbSEOTs*woSbYvnlXd$#ysSEVmvz;!=nF`KZA|~$Y$7wtL+s?KhY&hrD0_~&^nj#Jl%j>Z|wV!J62`js9aO-P+Xk~HlzALb2 zpUkkuFL+#kvAMMGS)8zwGC5zI;yg%Lr`*=0T~+Zocz#00?_yhb1)EM;8+g@*0v~^r z3B&kW($ow>cGrF=ciDLv86`_6MXg+HqJFQ^?K7^n>J-2xgT8~A>mUbg?W|LF!Ja_@ ztvtNf1-_2IC`;KpxU6_f_(k^jA?e!R?Vm)>xQMq8eA;}FWkBb+eN{eRk2eF90QVeq zD%wiAS)=ON+Z+Ko8>syIB)d6?v=bdreVz8wKcP@50V*9(c2f1h;Z5ea& zu2qMU@_aRjmIDzF^#<&@tl zDui#tc)96J-|sdrt%A*AMlqRE<(t}!nY(eo^CxR7(Zgsf#k{A|Cvm8lzcNMc;YLfD z$ob0zmUuBtZ<-xKC*cghC>M{ZVW4K3OgV9Mkt|2+KDeEOT>5aw8kLPVd+s?GDfRG~ z@A+3>_{)DAuAxRA>wrNhdva!uRGq7JFDUsCXtY1y_U1jF=dXWYK|{T{I-z(-Ov;q} zYj@$hW@LEG#8UXR$H*saaX}%bR6rcD!G^&YsTp2wtd4WHN6XF6Pib1mEx*+-|74xc za=zuBu_=E{*b}Y{k=LG%+L#Mdrqh4YonIAD=zjA8^zC)M{rYQ$OIKk0)7Ph1<#ITHo5Ok2ANc(4fudcE6GdX1CVX@Q~XluY{^Q&F-9`5cxD2+9U>arQyMr z1vjGQ5un}LhLtH})+D3@0W9G2pk9JkkHuYNubF~3t|4TtW zT>xwwT@hFm`OPYUv9@?Hto=#T>Dh3l&=K4ETg=Mxb)`e?n@d_PfW&c;1_X5TNFqQ{ zK9nQ_#MHMRf*1Zy84v*6wq=^dVFp$Eq(ajXK@nBR_M1>P8s8?3t71S_M3HcLJ=QL9 zkw@k*bFT5TbicD<>)_wI4JopBdJB2w{lPI>pBm{)&7+9=NXt(WZVuDZQwboX?0nL} zCAngOJ6o?e%QGUYSJurq6F%T&od$D8GFiv#1q&>k$wR7+o+~4dR$@k#K2~UJ<^Y6?$p*RpZU+n4hjB zxQT=4BvnN?R!#vKjxCo6fiZ0xc;6+gwpH{VUs~f$?B{*R`9bmRmm~LHk8rXhMb>MU zTKXxq`f)jl`k0atjPmWL+|kAaLh=1`k3DTk5cu(T8dQg{z@K=8-#0sZ+=)1I z^u9KC8O2yYB2XVvWQ3o{H zjrnt6hjhq-K)RQkL)PY5NO89C>+Q!%U4QgHU+wyMNdqjEQ7?kN(x&I7+sdCg3#Cl1 z+rl`9zH`@I$QDj9)@biH_xiUHG^c03qWh>x(F`WDt0GW8ypaCKmo|8-6LVpim&@)T zH>?p_OJLuG+Vy1QQPPJUCPId}&-8d6aZY7fn&NX3I&s@ijJ}}-ff}OxZ1>9S_W%$b z%c;S``-J@>-roOs<1WIj%gARp0%?Z^%G!UagL22RrX=rKQ+)I0luFpha|w4!0oeCC zHARh|83gY8Wf*03m~VDbdHD5Ci^$Cw^$L+xHNpOQcI-kH@(S#B_#cFY8;j%HRaozD z-WoG<-|MERgTvaJ)TtxLr1a8hGn^=d+eKv&eU_41fFPTg@EZ7f?ny=acJ;Dqz;n+* zKhyCpjjWgKSDQxmk1na&08}oNLJwGOY-CNxO$WD?4H!QVRqso$kmPa_0ml?x#DL=q2WB-w26T!`*F_`>yD}|Lt-efKtGScn<0oP ziFQzM!`*{#ngYq7aG4D^T8q-7sxlvFhQKrVKt#2V)pfe}uXvLyAQ3>KSj@%xS4=dY zGql4RIn-e8;u)l!PEaPqr8+pcdwF7QVjKjXaRio&cB#WuL%{q<}6W%H3CC}CDi#}hU~mNB8!k1B>tmYE1LZZ&>4Oa&PcpF^u*hI z_IA@d=$(8c*0um3Y&Z)@YjC8Rx8)oImbm{yUy{1!?TP6HC zc*d|f4p$Bo>qLxG3*n9&%5TZ^8~@Q=_Y#QHq_VXoVro1aZ7iBx+@8O{jVW4dHx%-6 zT|j$?^wg(ct#a6XSnEGcp!6s7{R6v1{fWt{h|26;LuZn}Ed#`f7zZJUOu`cA#bcK{ z7klqS{*!jv?kDoGtWRQ{RGz7VhXQ52K&r#j^0aQ~y;C&M|36j=C(i@Fy$$_v z`=IkKDMUHL9NdgtYtji99G3kY>6Yo8b zQI{3nr(+TZZ;6^!7+BS!Wiy>v^)}z#w*d3}Ef;H?QF%NzC>6lQ`()a2MCgzzTz4&D z9kFd-#RVr68vW`h1<`??>H+FYf+3{-ct7PwM@f6nw1LdUhAy&0%JY*{`g(J;p7wa{3E5`ZtS%-pBU0dpXxYCwa z89PAw_Cd!aC9=m*$!b`zz*1Jp3J~#*$*8#fM_un1Z6CUa0LbGQ zIB=9{{;*t&RlVjGez@aX|V%uR-*q_zDi z(~g}hYyVR^VxCy8YO7E_fMq6m7CXHNaq+bz>z7(*oj&2vLHq9Ft8{kY`!1*Pm^d_ zFPaUn7>3V5lb79ZHyDQj`U6%VXqoMNJ`vqk}bZlSFT3KGU84LoG8= zp%eV%ieLohWU2*F9)L-QzQephbst6#*Of0Rb9&)w75G3+IQ zvN&^1YbR-qv^ybif76c)zUKng`4~8OlEK+nyap7J!HD;1te0<6O2jZCA}XT&w@g)3 zHT|YE|L}&q#faKUR-KjL;CdwJWnw~jPuax~99iLIt}U7^NVI-a7VXm4H6g3R)n%wU zr@#MNNl&^7$HDDjxJDBVI2+%=DDRo8pF=u6OI7+PWL%0kNoybJ|LHJhuv;jF0>E4^deZbeJwD` za~+h+vZ(SF-ztIs3Urr1D#OlW75gi2|FbO~(!MRsN;&c%02kqXOJFQ)fBznVy03#> z=ShG%`Eh=+nQC=gVFA1+KFn~btfc;YqHE^*W1ZzR&-DyHKn{(yBw6W$>-szDKd&>4 zfU_DE!gSHgd|qH`yde#h_JeMqk3L}1 z1SHp(p^%Yx#lO;1`=Pbb%S1nNW)#h9I=DyVLvBB0Sg*VHpP9Io`oz-hiv1kK*$7!} z`ecn55O6z2-DaWc029@OtE$p`!iI%2sRa%|SVImZC zW;7Bwx;|^JtG130+oZizN>IrVnA)`&@7FsjzPIrDoqd4w#eL4o)Qu!o^oEoVNtWG|Bx_M#7pjZ7ZK}=KD(anl|HrFuXV$h2sCSW*$W%>c z1*eAUf0=7Q*l~= z5=G^km`i+vTd+4o7pZf9krPwN`U~3Z5*I>eGmmbo{`kFb;p!5Getu1OM9ga*qqpJf z#t_oBoEh3SE97G5;!}3$PucMVGl1=xzk~65Zd1cea~FvT3xz1bXFp~IBHi6k|IB** zJBmsm_wQSBymt-sa^AnrNp3;@DIiuE4=*m0P|;3ub@<8;e^5W7)$q!Fy9$4%+T~q=rM>|8{H$o+ zyB#fhq<5R$CWz6+t>{lx+@Z0-3#JRNZ=+p3%nm2!B&wqqxZTJirbgyi53j=;{+DRC zso=Z272VTt=1tvsN46UdXMucDX0xwKTG)ZVKbi;ug%_N_E)N}VvLyEMd#y{w3&81t zn&MC--jMkVP=(A#wsi8YX~;!6rHI$*R4kIyb9c`Wqm zEhj~|sq&~7m=eYJ-^49zgueOmA!Ck>6!lVn=AxQto~HHReBN76RwtQfDZ+If>XnY( z26EA|-0BWWwn(3~pxQSnZAqNxO*mR&NTek0+Pi1{3s}mnPvc8$-;R+t9icbwrD~1t zX4ZaH0YStq7oKA0nCq(aK z99|eq!)*1h&u^>G31GEdFTr`fV*zn-VOjfyKq}t54IW|cxEMNMB>W$p9J;vYWBJ2{ z0;P|dI&%)7j1{9D3qk3u!jYd90T`Ft0nRWB%xjmUcDSUrYzWik(L3!4HlTldL3im_2ouZIKL znxQuHlKLpjj>(2|Q5e0~eQ3AS~JQ_?pj5FaW2(~vl=m)HhiuNz~ z!&5{2w9(w0|Ln`7j5n^1EqAf_)ox9_7%^?Bn z-!`hFuk-4v#%`LG?4f)cnsWu_HZ>Jzv9reyh#)@Pz-DCFFYb zI%s{UE?8%9FLwZDZ$0xiA;6l8R?SdC)8DYTMm+MvZ#R3NnHIW<7ImvzZi)kAD zm;ys_7wZwty+6n2^-owi8ZUm`1RyujXq$T$c-fat?agsU)WT6F(l>I2pHW;_+sYu^ z!8u%g%fqC0wFKF4IbZ75tvwM)3gGKc>xyCe_zF)^aZAyE>vP}?3|V9PiE&dtvnvo( z?)GTt^P8Be2&3;VF`7xVptwAx(tml~3|kBWypH+u7 zOy!u~*C4&_qkE2|kW_B$%(;jS;uvNtn`1DpcJUu{j2!(7_PM%;tFG#HwW)9l-Euiqwg z$LSTA#nRVC3@3;#x0`M%FYA^2Q_a%We<5q4p0BouaXUa2xdonf%w8Ag0_t(DBU^oT zZ`8ldl`EkUZe9gWwE%%P?V@#sLok4>d25%_s zt&5PEm!__iWlv1QG~@cE=J%69t;hEfR@QW;uJYxUl zUjAxQma)d%{D9mkF}Los#C+!nEfod3D~I^#5-_XoREORN&p5%PEq&%4Kl}sszwsUy zGik(UR|RkfuKWIo6Md{$w~{Kbik__U@bQri|B(bq{>x~O6m|!XKssXD3lJ+jpS#y` z7z^_c&owkGuteHUrwx4C>rL;CbIB8XX|^J(T&*VGSZqk=_pe({`vIUBpGxzqFR{Hx z2kDqP+KhoEp8D^Z+!ZVP!+$ouUPOX0@`pmz_;45_(ex@9>E6MSpUp1W*MS^2B#cTyr-jiqB zqtcJAM!fVxN4dh}WXC)5Xj4778X0U{yX$zfpXiBPy&^lXYCqFR9)JcAf*1OhIi%7| z^p;<(?gf~^8_Rus8RFMs#1Ag;SxNP?)dTYvqw>k|LxF*CK^*P;Uq>9G!4fEVqbzjE z5k&{hNG?4a?Wkkfehp=nV`L^N{R%v4V3W0_i=RW39;=-)-9n`b{Alekc?MjHgS8bK z%r?NN+s;=x3x1h*Pb{V78!(DBn#?*u>gAjgKMcM|2k6g^LJ4^!a{_W}F82*C|6|$E z0RDu^`aiPAr&oa_h7B&Y$;e!XptAiDO7zw0cCDa;`e;gd*u!g_v+_VGo^cvK`=T2M zdkD;7^UN2`Uii2*2k8!-pC^t-jJF0EB&cW$BQ+hSa* zWtUIxt)#4frld#m;nOiEhWLkNI|}f~atp1-8EWM07z?^lmQo_~A`Rqjxi918Z z4D79L@I7ufo}S|@v_QVa)~@VK#!IDk`wStCT~1F=#D!Of+$-3;Wav*)K%c-xoKr9% z8P&{>+Tt-WT#MM5xvxJqWfm6Y`<|jX0Qrc;#CSbOa#iO=uk5nzM7e8a#d?1nvr*6r zbrsJ<$HlPMc;S4tVyTHi?D~G9_1xl@Dq>m36Xu;wYFG!U8E5mao!=%hwFIAQ6LhO!>(2fm|rZO4}r*D-k0MMsfUtHUn z79fnv^K*74HKKbiD=gZ5M%+%-d~7VT%s6CXy57I#25_e;euE(4pRCgmRybMv4_+^I zP}~%QTg`Mj_aCZ?@k{D>O1wpoA-=%>sFDqDB}cp6L&<=eq!uZ6cV#Hhib)cU=K|N; z1tPI>8Aj_d2e(8zDF3${MwVcdX|Gw(9u(*({7L~bAB$X4-4d_Jp^{gb?Ht4h;z%ky zQzwEgiJhTo{50C%5w0pJc;rPIdmp^(7B#2QqFzUvo*#eiSp`(~4*-Gv@6uuT+jutr zl0n=vj8$sSFxMN*D8OKTkv~jX;M(uubGPXh#YO;FN?D)pmsVa9C1k>TJo9U zu3h?V%qJKq@vJgB_P{ro*dQmMeOl4IT3EShG5j8NrFX;wh**$mFe+qUW)V>$?s$$R zQ-6`Ygq%w5S6glZR3DDt(HR zwTO_RGH(g8z?nbG7&F@0+h|MAn z#YWsFWmuZmA8IO=QRT@+vChkeuSPI{uOsq{4z(|M9>lKe>z4t6HO1a=pV(wkwQA=Wi!X!?7q0$0nTeZxc8LmL|AXg>BjtwBdUCFdzsimdg3Eb!) z^1zrUYg^JPxswP+C)$QQt}KjukCo&tS3+aXP&+peIh2(}7E9(j9K8kW8ld|{iy1Qd z1L)arpOs?O9(TT1QrHAIQg>JLoaJTD0ns%~Al9Rf>CqR%d58bVWG`9VrG_DQta!y2 znLE?D-(!VVTyMX*ZYtl&eP29*mf-@>Wl=GH$Rs@>icMUA9mkF;Ja#tqSpOqC5WITV zhz5UUu0+M-|f4umJ9j=rSb-O9qI)}jY0SrLZ;=7%Lp=$PASLYH%q+x68 zz!@)s-11#9Tqx%51T=TKC(t|p(xnNo6==?hj%#oBs-D`lBG+Ln^XPzJy)Nd+^dL&WZ8axV zuEy^3n**Xb6~X})9IhUuyNEIQ-k^sC?9)sK;Yv>xjR_v3*r4gxm$B{XjC+wu91EWU zkw5m#6e@eR_scW)v4``0TU>u=cb&egcbiFoV#{rR%QSDCSZeT&_48l5tx8F$BqVsW z8kc-8d1xAxomIbv6ax^&joGGaup)Sq_C%RW-@i_MxZu_y=&fzCtvGdlC_>y)TKt<^ zRZMXWs>7L?XAJffa&PC{#RF0=W0s-R_D&mj_Ge3pV47j`!BlS}Cm?V`bsF8S2Pd`5 zReEA8zj$}BKqPFeEv?lgf4tae4%4Tklqf>>HD1}SB0}Bl=3U+RQh(l;aPc~nIkCyw zWKsI?FLJU7BC~WgP^43zWR8$5Td>+~*PC_aJ@!l3@aI`3<5WhHDxz1TfO}6Q36)_l16pL3wO*KbY*{d>X^K(qsMwZz0roh6DMdD|KA#N+E9aGFalz z#N6EC(>wSX2U?!jE(d%?DO+_$H;XllQrf(gT2^U$;_pEp;vEa{zKX&82i}uDX1r#e zet(YP{_c0)!Wdcv4!~>C?iK{G7r{*jk4H&hYw1Gef*^)qE02|1@HSZ2(LQVHnvO{^schv-Pm)Vx zv+*%zKQG*+o11*J+=tG;R6F%>HxLqZ=O>Vb5OGkxzf~W*-W+RZ#}<-I!R`&3eBhko zNjV?D^3k25G$~kUJf7io5q*I!ZV!&9LMn6gOeT9@_ymeNb);-f{zt|I1F2w+bmRKQ z`#9cP87>*{-1$`Xg5`#uAe#tcftscc3%zL@Cw<{tJZkBpoR8cy71b>$cy8t(-gPMZ zXe$dR2gHz=xm^2a438#XxHOH387_)19u~Pj>)U~}if>!lXPSDV``}BSEab#zX`0*T zaT4Wx<2_9@+a-+q_16jkuj6o`nK-JVq75B7J9$D&0QhuN8FBWur^6|M+0)Fcp@Fcx z#V`HXTa(1Cp_1uQ5so@jO{dZa~_ZpCv$dRf(=ZMT>cw)A*`Q5!5JWMPV z=_b*Hb^JQRwT*)d9z?Yx5Wq@9oXURK_c$_v9qfz!kjFVMzniJL4t}_h_ z2VOgEJUA4-m@k>{JdX8$T(crAK6~q%eeVPWczq5o2s8WtgVW<3b@4uKZs`BWSX{A! z!%w~=1~inPt9GV6oSgu)OrZxL@Qnq*x%z_U9SzeHfo_-Gr_7g(d&@IzgJO4gQtbH& z-k!oQ)%UjYo{+Pksd$b&w$+r|<1G5*;~0zTHoeBDvofvgn

!QK7+YVvZ5rs+lIx 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 M#8a|7xkFR`*{5l6^#A|> literal 0 HcmV?d00001 diff --git a/Projects/MineControls/README.md b/Projects/MineControls/README.md new file mode 100644 index 0000000..0f54405 --- /dev/null +++ b/Projects/MineControls/README.md @@ -0,0 +1,37 @@ +## **Mine Controls.** + +![Picture](Minecraft-dexter-industries.jpg) + +### What is it? +Mine Controls are custom hardware controls for Minecraft and the Raspberry Pi! In this project we show you how to build a custom controller for Minecraft using the Raspberry Pi and the GrovePi. You can get [all the hardware for this project from the Dexter Industries website.](http://dexterindustries.com/grovepi) + + +### Setup +See the [full project description for making a custom Minecraft controller for your Raspberry Pi here](http://www.dexterindustries.com/projects/custom-minecraft-controller/). + +Software Setup: + Before we begin, run the following commands to setup: + `sudo apt-get install minecraft-pi ` + + `sudo pip3 install python3-xlib` + + `sudo pip3 install pyautogui` + + +Hardware Setup: + Setup the GrovePi on the Raspberry Pi. + Connect a touch Sensor to port A0. + Connect a Joystick to port A2. + Connect a touch sensor to Port D3. + Connect a touch sensor to Port D4. + +To run: + 1. Start Minecraft on the Pi. + 2. Start a world. + 3. Start Python3 (IDLE). + 4. Open this file (GrovePi-Controller.py) + 5. Click "Run" --> "Run Module" + 6. Click back into Minecraft. + + +See more at the [Dexter Industries](http://dexterindustries.com/). diff --git a/Projects/OLED_Weather Display/weather.py b/Projects/OLED_Weather Display/weather.py new file mode 100644 index 0000000..825929a --- /dev/null +++ b/Projects/OLED_Weather Display/weather.py @@ -0,0 +1,80 @@ +#This is an example for the using the Grove OLED as a weather display +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +from grove_oled import * +import json +import urllib + +#Get the weather +city="Chennai" +url="http://api.openweathermap.org/data/2.5/weather?q="+city +jsonurl = urllib.urlopen(url) +text = json.loads(jsonurl.read()) + +weather_desc=text["weather"][0]["description"] # General description of the weather +temp=float(text["main"]["temp"])-273.15 # Temperature in C +pressure=text["main"]["pressure"] # Pressure in hPa +humidity=text["main"]["humidity"] # Humidity % +wind_speed=text["wind"]["speed"] # Wind speed mps + +print(weather_desc,temp,pressure,humidity,wind_speed) + +#Print the data on the OLED + +#Initialize the OLED +oled_init() +oled_clearDisplay() +oled_setNormalDisplay() +oled_setVerticalMode() +time.sleep(.1) + +line=0 +oled_setTextXY(line,0) +oled_putString("WEATHER:") +line+=2 + +oled_setTextXY(line,0) +oled_putString(weather_desc[:12]) +line+=1 + +oled_setTextXY(line,0) +oled_putString("Temp:"+str(temp)+"C") +line+=1 + +oled_setTextXY(line,0) +oled_putString("Hum:"+str(humidity)+"%") +line+=1 + +oled_setTextXY(line,0) +oled_putString("Wind:"+str(wind_speed)+"mps") +line+=2 + +oled_setTextXY(line,0) +oled_putString("Pressure:") +line+=1 + +oled_setTextXY(line,0) +oled_putString(str(pressure)+"hPa") diff --git a/Projects/OLED_Weather Station/weather_station.py b/Projects/OLED_Weather Station/weather_station.py new file mode 100644 index 0000000..0f411d1 --- /dev/null +++ b/Projects/OLED_Weather Station/weather_station.py @@ -0,0 +1,116 @@ +# Adapted from home_temp_hum_display.py +''' + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +''' + +from grovepi import * +from grove_oled import * + +import threading + +dht_sensor_port = 7 # Connect the DHt sensor to port 7 + +#Start and initialize the OLED +oled_init() +oled_clearDisplay() +oled_setNormalDisplay() +oled_setVerticalMode() +time.sleep(.1) + + +def get_outside_weather(location='Bucharest,ro'): + import pyowm # Do a 'sudo pip install pyowm' to get this module + + owm = pyowm.OWM() + + #forecast = owm.daily_forecast(location) + + observation = owm.weather_at_place(location) + weather = observation.get_weather() + + return weather + + +def update_outside_weather(): + # This uses OpenWeatherMap via the PyOWM module; + # pywom module needs to be installed via pip, + # see https://github.com/csparpa/pyowm + weather = get_outside_weather() + # by default location is Bucharest,ro; change it to your own + + oled_setTextXY(5, 1) + oled_putString("OUTSIDE") + + oled_setTextXY(7, 0) + oled_putString("Temp:") + oled_putString(str(weather.get_temperature("celsius")['temp']) + "C") + + oled_setTextXY(8, 0) + oled_putString("Hum :") + oled_putString(str(weather.get_humidity()) + "%") + + oled_setTextXY(9, 0) + oled_putString("Rain:") + + rain = weather.get_rain() + if len(rain) > 0: + pass + else: + oled_putString("0%") + + print(("Weather: ", weather.get_temperature("celsius"))) + print(("Humidity: ", weather.get_humidity())) + +while True: + try: + # Get the temperature and Humidity from the DHT sensor + [temp, hum] = dht(dht_sensor_port, 1) + print(("Temp =", temp, "C\tHumidity =", hum, "%")) + t = str(temp) + h = str(hum) + + #outside_thread = threading.Thread(target=update_outside_weather) + #outside_thread.start() + + oled_setTextXY(0, 1) # Print "INSIDE" at line 1 + oled_putString("INSIDE") + + oled_setTextXY(2, 0) # Print "TEMP" and the temperature in line 3 + oled_putString("Temp:") + oled_putString(t + "C") + + oled_setTextXY(3, 0) # Print "HUM :" and the humidity in line 4 + oled_putString("Hum :") + oled_putString(h + "%") + + #outside_thread.join() + update_outside_weather() + + except (IOError, TypeError, Exception) as e: + print(("Error:" + str(e))) + finally: + #outside_thread.join() + pass diff --git a/Projects/Open_Wifi_Finder/README.md b/Projects/Open_Wifi_Finder/README.md new file mode 100644 index 0000000..4b0b146 --- /dev/null +++ b/Projects/Open_Wifi_Finder/README.md @@ -0,0 +1,94 @@ +## **GrovePi Open Wifi Finder** + +GrovePi is an open source platform for connecting Grove Sensors to the Raspberry Pi. Create your Internet of Things devices and inventions, no soldering! + +Scan for open wifi networks! This is a portable wifi hotspot finder. See our project [here](http://www.dexterindustries.com/GrovePi) for more information on turning this into a portable wifi hotspot finder. + +### How Does it Work? +The GrovePi board slips over the Raspberry Pi. Connect the Grove Sensors to the GrovePi board. + +####Software Setup Notes: + * This example uses [wifi library](https://wifi.readthedocs.org/en/latest/wifi_command.html). Install with pip install wifi + * Wifi dongle must be on wlan0 ; Check this with the command "ifconfig" on the command line. + +####Hardware Setup Notes: + * Buzzer goes on port D2 of the GrovePi. + * LED Goes on port D3 of the GrovePi. + * The LCD goes on I2C-1. Check this with the command "sudo i2cdetect -y 1" + +The GrovePi connects the Raspberry Pi and Grove sensors. You can learn [more about GrovePi here.](http://www.dexterindustries.com/GrovePi) + +### Make This Start at Boot! +If you're going to take this outside, make sure you can start this at boot. + +First, the files in this directory are copied into the home directory. + +Make a script "start.sh" and put a command to start the wifi_finder.py script. + +``` +sudo nano start.sh +``` + +The contents of start.sh are going to be: + +``` +#!/bin/bash +sudo python /home/pi/wifi_finder.py +``` + +And then open up rc.local + +``` +sudo nano /etc/rc.local +``` + +and add the last few lines of this file should be: + +``` +sudo sh /home/pi/start.sh +exit 0 +``` + +Then that's it! Reboot and test! + +Have a question about this example? [Ask on the forums here.](http://forum.dexterindustries.com/c/grovepi) + +LICENSE: +These files have been made available online through a [Creative Commons Attribution-ShareAlike 3.0](http://creativecommons.org/licenses/by-sa/3.0/) license. + + +### Raspberry Pi Compatibility +The GrovePi is compatible with the Raspberry Pi models A, A+, B, B+, and 2. + +### Programming the GrovePi +The GrovePi can be programmed in Python, C, C#, Go, and NodeJS on the Raspberry Pi. Simply start with one of our [example projects](http://www.dexterindustries.com/GrovePi/projects-for-the-raspberry-pi/) or [example code](https://github.com/DexterInd/GrovePi/tree/master/Software). +The GrovePi uses an Arduino to interface between the Raspberry Pi and the Grove Sensors, and comes programmed with a standard firmware. The firmware can be rewritten from the Raspberry Pi. + +### Getting Help +Need help? We [have a forum here where you can ask questions or make suggestions](http://www.dexterindustries.com/GrovePi/projects-for-the-raspberry-pi/). + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +See more at the [GrovePi Site](http://dexterindustries.com/GrovePi/) diff --git a/Projects/Open_Wifi_Finder/wifi_finder.py b/Projects/Open_Wifi_Finder/wifi_finder.py new file mode 100644 index 0000000..03b2aca --- /dev/null +++ b/Projects/Open_Wifi_Finder/wifi_finder.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python +''' + wifi_finder.py + Scan for open wifi networks! This is a portable wifi hotspot finder. See our project at www.dexterindustries.com/GrovePi for more information on turning this into a portable wifi hotspot finder. + + Software Setup Notes: + * This example uses https://wifi.readthedocs.org/en/latest/wifi_command.html. Install with pip install wifi + * Wifi dongle must be on wlan0 ; Check this with the command "ifconfig" on the command line. + Hardware Setup Notes: + * Buzzer goes on port 8 of the GrovePi. + * LED Goes on port 4 of the GrovePi. + * The LCD goes on I2C-1. Check this with the command "sudo i2cdetect -y 1" + + The GrovePi connects the Raspberry Pi and Grove sensors. You can learn more about GrovePi here: http://www.dexterindustries.com/GrovePi + + Have a question about this example? Ask on the forums here: http://forum.dexterindustries.com/c/grovepi +''' +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +''' + + +from wifi import * +import time +import grovepi +from grove_rgb_lcd import * + +## Connections +# LCD Goes on I2C-1 +buzzer = 2 # Connect the Grove Buzzer to digital port D8 +led = 3 # Connect the Grove LED to digital port D3 + +grovepi.pinMode(buzzer, "OUTPUT") +grovepi.pinMode(led, "OUTPUT") + +def check_open_ssids(): + open_ssids = [] + for cell in Cell.all('wlan0'): + if cell.encrypted == False: + # print cell.ssid + open_ssids.append(cell.ssid) + return open_ssids + +def alert_user(): + # Buzz for 0.1 seconds + grovepi.digitalWrite(buzzer,1) + grovepi.digitalWrite(led,1) # Send HIGH to switch on LED + time.sleep(0.5) + # Don't buzz for 0.1 seconds + grovepi.digitalWrite(buzzer,0) + grovepi.digitalWrite(led,0) # Send LOW to switch off LED + time.sleep(0.5) + +# Print the ssid name to the LCD, beep and turn the LED on and off. +def display_ssid(ssid): + alert_user() + string_out = "SSID Available: " + str(ssid) + + try: + setText(string_out) + setRGB(0,128,64) + + alert_user() + + for c in range(0,255): + setRGB(c,255-c,0) + time.sleep(0.01) + + time.sleep(3) + setRGB(0,0,0) + except: + print("Failed on something or other!") + + +try: + while True: + + list_of_open = [] + + # 1). Test for any open ssids + list_of_open = check_open_ssids() + print(list_of_open) + + # 2). If we find open ssids turn light and buzzer on, print to SSID. + for ssid in list_of_open: + display_ssid(ssid) + + # 3). Look around ever 5 seconds. + time.sleep(5) +except: + pass +finally: + setText("") + setRGB(0,0,0) + grovepi.digitalWrite(buzzer,0) + grovepi.digitalWrite(led,0) + diff --git a/Projects/README.md b/Projects/README.md new file mode 100644 index 0000000..9f3d9e9 --- /dev/null +++ b/Projects/README.md @@ -0,0 +1,59 @@ +## **GrovePi Projects Readme** +GrovePi is an electronics board that you can connect to hundreds of different sensors, so you can program them to monitor, control, and automate devices in your life. [View Product Details here.](http://www.dexterindustries.com/grovepi/) + +- **Advanced_RGB_LCD_TempAndHumidity**: Changes the color of the RGB color LCD depending on the temperature. (Works with the GrovePi starter kit) + +- **Button_And_Buzzer**: The buzzer makes a sound when the button is pressed. (Works with the GrovePi starter kit) + +- **home_temp_humi_display**: Shows the temperature and humidity on Grove I2C OLED. + +- **Home_Weather_Display**: Shows the temperature and humidity on Grove RGB LCD. (Works with the GrovePi starter kit) + +- **IOT**: Plots the data from various grove sensors on Xively. (Works with the GrovePi starter kit) + +- **LED Fade**: Changed the brightness of a LED from the value read from a potentiometer.(Works with the GrovePi starter kit) + +- **OLED_Weather Display**: Fetch the live weather data from the internet and print on the OLED display + +- **OLED_Weather Station**: Get weather data from the internet and the DHT sensor and print on the OLED + +- **Open_Wifi_Finder**: Finds open WiFi networks and prints on the Grove RGB LCD. (Works with the GrovePi starter kit) + +- **rain_notifier**: Get rain data from the internet and blink a LED if it'g going to rain. (Works with the GrovePi starter kit) + +- **Sensor_Twitter_Feed**: Get Sensor data from GrovePi sensors and post the data on twitter. (Works with the GrovePi starter kit) + +- **tilt_buzzer**: Turn the buzzer on/off deping on the values read from the accelerometer + +- **Ultrasonic_And_Relay**: Read the ultrasonic ranger and turn the relay on/off depending on the values read + +- **Whos_at_the_Door**: Checks if someone is at the door, if there is someone then it takes a photo and mails it + +- **CO2_sensor**: Read the data from the CO2 Sensor and print it in the terminal + +See more at the [GrovePi Site](http://dexterindustries.com/GrovePi/) + +## License +. +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Projects/Send_Email_With_Pi/sendemailtls.py b/Projects/Send_Email_With_Pi/sendemailtls.py new file mode 100644 index 0000000..00eb47b --- /dev/null +++ b/Projects/Send_Email_With_Pi/sendemailtls.py @@ -0,0 +1,88 @@ +#! /usr/local/bin/python + +# This is an example of sending an e-mail with the Raspberry Pi. This is a very +# useful example, if you want to send an e-mail or alert on some hardware change! +# In this example we use a hotmail/outlook account. Settings may vary depending +# on the e-mail provider you are using. +# +# The GrovePi connects the Raspberry Pi and Grove sensors. +# You can learn more about GrovePi here: http://www.dexterindustries.com/GrovePi +# +# Have a question about this example? +# Ask on the forums here: http://forum.dexterindustries.com/c/grovepi +# +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +SMTPserver = 'smtp.live.com' # This is the SMTP server. In our example, we use Microsoft Outlook. +sender = 'dex@outlook.com' # This is your login email. +destination = ['dex@dexterindustries.com'] # This is the e-mail address you want to send an e-mail to. + # You can send to multiple e-mails. The e-mail address is a string. + +USERNAME = "dex@outlook.com" +PASSWORD = "my_password" + +# typical values for text_subtype are plain, html, xml +text_subtype = 'plain' + +content="""\ +Test message +""" + +import sys +import os +import re + +# from smtplib import SMTP_SSL as SMTP # this invokes the secure SMTP protocol (port 465, uses SSL) +from smtplib import * +from smtplib import SMTP # use this for standard SMTP protocol (port 25, no encryption) +from email.MIMEText import MIMEText + +# +def send_email(content, destination, subject): + try: + msg = MIMEText(content, text_subtype) + msg['Subject']= subject + msg['From'] = sender # some SMTP servers will do this automatically, not all + + # timeout is critical here for long term health. + conn = SMTP(SMTPserver, port = 587, timeout = 60) + + conn.ehlo() + conn.starttls() + conn.ehlo() + conn.login(USERNAME, PASSWORD) + conn.set_debuglevel(1) + try: + conn.sendmail(sender, destination, msg.as_string()) + finally: + conn.close() + + except Exception as exc: + # sys.exit( "mail failed; %s" % str(exc) ) # give a error message + print("Mail failed; %s" % str(exc)) + print("Moving on!") diff --git a/Projects/Sensor_Twitter_Feed/README.md b/Projects/Sensor_Twitter_Feed/README.md new file mode 100644 index 0000000..ef1b182 --- /dev/null +++ b/Projects/Sensor_Twitter_Feed/README.md @@ -0,0 +1,13 @@ +#TWEET YOUR VALUES + +This folder contains the code necessary to tweet your sensor values once a minute. + +It requires python-twitter library which you can get by + +**sudo pip install python-twitter** + +Sensors used in this code are: +* light sensor on port A1 +* sound sensor on port A0 +* temperature and humidity sensor on port D2 +* LED for visual feedback on port D3 (with PWM) diff --git a/Projects/Sensor_Twitter_Feed/wifi_twit.py b/Projects/Sensor_Twitter_Feed/wifi_twit.py new file mode 100644 index 0000000..ed021fc --- /dev/null +++ b/Projects/Sensor_Twitter_Feed/wifi_twit.py @@ -0,0 +1,93 @@ +# Tweet the temperature, light, and sound levels with our Raspberry Pi +# http://www.dexterindustries.com/GrovePi/projects-for-the-raspberry-pi/raspberry-pi-twitter-sensor-feed/ + +# GrovePi + Sound Sensor + Light Sensor + Temperature Sensor + LED +# http://www.seeedstudio.com/wiki/Grove_-_Sound_Sensor +# http://www.seeedstudio.com/wiki/Grove_-_Light_Sensor +# http://www.seeedstudio.com/wiki/Grove_-_Temperature_and_Humidity_Sensor_Pro +# http://www.seeedstudio.com/wiki/Grove_-_LED_Socket_Kit + +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +''' + +import twitter +import time +import grovepi +import math + +# Connections +sound_sensor = 0 # port A0 +light_sensor = 1 # port A1 +temperature_sensor = 2 # port D2 +led = 3 # port D3 + +intro_str = "DI Lab's" + +# Connect to Twitter +api = twitter.Api( + consumer_key='YourKey', + consumer_secret='YourKey', + access_token_key='YourKey', + access_token_secret='YourKey' + ) + +grovepi.pinMode(led,"OUTPUT") +grovepi.analogWrite(led,255) #turn led to max to show readiness + + +while True: + + + # Error handling in case of problems communicating with the GrovePi + try: + + # Get value from light sensor + light_intensity = grovepi.analogRead(light_sensor) + + # Give PWM output to LED + grovepi.analogWrite(led,light_intensity/4) + + # Get sound level + sound_level = grovepi.analogRead(sound_sensor) + + time.sleep(0.5) + + # Get value from temperature sensor + [t,h]=[0,0] + [t,h] = grovepi.dht(temperature_sensor,0) + + # Post a tweet + out_str ="%s Temp: %d C, Humidity: %d, Light: %d, Sound: %d" %(intro_str,t,h,light_intensity/10,sound_level) + print (out_str) + api.PostUpdate(out_str) + except IOError: + print("Error") + except KeyboardInterrupt: + exit() + except Exception as e: + print("Duplicate Tweet or Twitter Refusal: {}".format(e)) + + time.sleep(60) diff --git a/Projects/Street_View_Bike_Cam/README.md b/Projects/Street_View_Bike_Cam/README.md new file mode 100644 index 0000000..60c9a06 --- /dev/null +++ b/Projects/Street_View_Bike_Cam/README.md @@ -0,0 +1,15 @@ +This project was created for the GrovePi0 as an example of a portable project + +![alt text](http://32414320wji53mwwch1u68ce.wpengine.netdna-cdn.com/wp-content/uploads/2016/07/20160703_144803-1024x576.jpg "Pi on a Bike") +You can equip your bike with a GPS logger, which will take a photo every minute, +and stamp it with the GPS coordinates, and temperature/humidity data. +Project is documented at http://www.dexterindustries.com/projects/take-grovepizero-bike-trip/ + +You will need a Pizero with a Pi camera (it requires a special cable for the pizero), +you will need to run Cinch on your SD card +The GPS sensor goes into port RPISER +The temperature/humidity sensor goes into port D3 +An optional LCD screen goes into one of the I2C ports. + +You will also need to make a copy of the dextergps.py library into this folder. +You can find that file in **GrovePi/Software/Python/grove_gps/** diff --git a/Projects/Street_View_Bike_Cam/dashcam.py b/Projects/Street_View_Bike_Cam/dashcam.py new file mode 100644 index 0000000..b6abc26 --- /dev/null +++ b/Projects/Street_View_Bike_Cam/dashcam.py @@ -0,0 +1,186 @@ +# -*- coding: utf-8 -*- + +import grovepi +import grove_rgb_lcd as lcd +import dextergps +import time +import picamera +import atexit,sys +from PIL import Image, ImageDraw, ImageFont +from datetime import datetime,timedelta + +############################################### +@atexit.register +def cleanup(): + print ("Cleanup") + try: + grovepi.digitalWrite(led,0) + lcd.setRGB(0,0,0) + lcd.setText("") + fobj.close() + except: + pass +############################################### + +############################################### +# LED on D7 # only for big brother GrovePi +# DHT on D3 +# LCD on I2C +# GPS on RPISER +############################################### +# Variables - adapt as needed +############################################### +photo_location = "/media/KINGSTON/" +logfile=photo_location+"trip.csv" +led = 7 +dht_sensor_port = 3 +dht_sensor_type = 0 +temp = 0 +hum = 0 +use_lcd = True # if lcd display is used for feedback +overlay_txt_ypos = 440 +#degree_sign= u'\N{DEGREE SIGN}' +################################### + + +def display(in_str,bgcol=(255,255,255),in_lcd=use_lcd): + print(in_str) + try: + if in_lcd: + lcd.setRGB(bgcol[0],bgcol[1],bgcol[2]) + lcd.setText(in_str) + except KeyboardInterrupt: + sys.exit() + except: + pass + +def format_coord(in_lat, in_lon): + ''' + TBD: + takes in a latitude and a longitude in + returns a nicely formatted string in degrees minutes seconds + ''' + out_lat = in_lat + out_lon = in_lon + return (out_lat, out_lon) + +def handlegpsdata(): + ''' + Read GPS + if we get valid data, blink the LED, return True + and save the info + else return False + ''' + + try: + g.read() + if g.lat != -1.0: + display( "valid GPS data",in_lcd=False) + return True + + except KeyboardInterrupt: + sys.exit() + except: + pass + display( "invalid GPS data",in_lcd=True) + return False + +def handledhtdata(): + global temp, hum + [ temp, hum ] = grovepi.dht(dht_sensor_port,dht_sensor_type) + if temp != -1 and hum != -1: + display("temp = {}C humidity={}%".format(temp,hum),(0,255,0)) + else: + display("Error reading DTH sensor") + +def logtofile(): + try: + fobj = open( logfile,"a") + fobj.write("#{:3d},{:.4f}, {:.4f}, {}, {:.2f}, {:.2f}%\n".format( + count,g.latitude,g.longitude, g.timestamp, temp,hum)) + fobj.flush() + fobj.close() + except KeyboardInterrupt: + sys.exit() + except: + display("Error writing to USB Drive",in_lcd=True) + time.sleep(3) + + # handle time. Convert according to timezone + # convert timestamp to struct_time + #my_time = time.strptime(g.timestamp,"%H%M%S.000") + #print my_time + +def savephoto(): + try: + photoname = photo_location+str(g.timestamp)+".jpg" + display( photoname,in_lcd=False) + cam.capture(photoname) + grovepi.digitalWrite(led,0) + time.sleep(1) + grovepi.digitalWrite(led,255) + + # Get ready to watermark the image + + # 1. grab the image + base = Image.open(photoname).convert('RGBA') + + # 2. create overlay + txt = Image.new('RGBA', base.size, (255,255,255,50)) + # get a drawing context + d = ImageDraw.Draw(txt) + + # 3. prepare text to overlay + d.text((20,overlay_txt_ypos), + "#{}: lon: {:.4f} lat: {:.4f} temp: {:.1f}C humidity: {:.1f}%".format( + count,g.longitude,g.latitude, temp,hum), font=fnt, fill=(255,255,255,255)) + + # 4. do composite and save + out = Image.alpha_composite(base, txt) + out.save(photoname) + grovepi.digitalWrite(led,255) + except KeyboardInterrupt: + sys.exit() + except: + display("Error saving photo",in_lcd=True) + time.sleep(3) + + + + +############################################################### + + +try: + display("Starting up...",in_lcd=True) + grovepi.digitalWrite(led,0) +except: + pass + +# check camera +try: + g = grovegps.GROVEGPS() + cam = picamera.PiCamera(sensor_mode=3) + display("Camera working",in_lcd=True) +except: + display("Camera NOT working!!",in_lcd=True) + +# get a font +fnt = ImageFont.truetype('/usr/share/fonts/truetype/roboto/Roboto-Thin.ttf', 20) +count = 0 +while True: + + if handlegpsdata(): + count += 1 + grovepi.digitalWrite(led,255) + display("{} {}, {} {}, {}, {}".format(g.lat,g.NS,g.lon,g.EW, g.latitude,g.longitude), + in_lcd=False) + handledhtdata() + savephoto() + logtofile() + time.sleep(5) + display("lon: {:11.7f}lat: {:11.7f}".format(g.longitude,g.latitude),(0,0,255)) + time.sleep(5) + grovepi.digitalWrite(led,0) + + diff --git a/Projects/Ultrasonic_And_Relay/Ultrasonic_And_Relay.py b/Projects/Ultrasonic_And_Relay/Ultrasonic_And_Relay.py new file mode 100644 index 0000000..616b8d1 --- /dev/null +++ b/Projects/Ultrasonic_And_Relay/Ultrasonic_And_Relay.py @@ -0,0 +1,58 @@ +# GrovePi + Grove Ultrasonic Ranger +# http://www.seeedstudio.com/wiki/Grove_-_Ultrasonic_Ranger + +# This is an project using the Grove Ultrasonic Ranger and Relay from GrovePi start kit +# +# In this project, the ultrasonic can figure out the distance of object in front, +# when object close to it within 10cm, the relay will turn on + +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +''' + +from grovepi import * + +# Connect the Grove Ultrasonic Ranger to digital port D4 +# SIG,NC,VCC,GND + +ultrasonic_ranger = 4 +Relay_pin = 2 + +pinMode(Relay_pin,"OUTPUT") + +while True: + try: + # Read distance value from Ultrasonic + distant = ultrasonicRead(ultrasonic_ranger) + print(distant,'cm') + if distant <= 10: + digitalWrite(Relay_pin,1) + else: + digitalWrite(Relay_pin,0) + + except TypeError: + print("Error") + except IOError: + print("Error") diff --git a/Projects/Whos_at_the_Door/whos_at_the_door.py b/Projects/Whos_at_the_Door/whos_at_the_door.py new file mode 100644 index 0000000..3670472 --- /dev/null +++ b/Projects/Whos_at_the_Door/whos_at_the_door.py @@ -0,0 +1,108 @@ +# Detects motion, triggers Buzzer, LED and Relay, takes picture from RPi Camera, sends as attachment via Gmail +# http://www.dexterindustries.com/GrovePi/projects-for-the-raspberry-pi/whos-at-the-door/ + +# GrovePi + Ultrasonic Ranger + Buzzer + Switch + Relay + LED + RPi Camera +# http://www.seeedstudio.com/wiki/Grove_-_Ultrasonic_Ranger +# http://www.seeedstudio.com/wiki/Grove_-_Buzzer +# http://www.seeedstudio.com/wiki/Grove_-_Switch(P) +# http://www.seeedstudio.com/wiki/Grove_-_Solid_State_Relay +# http://www.seeedstudio.com/wiki/Grove_-_LED_Socket_Kit +# http://www.raspberrypi.org/camera + +''' +## License + +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +''' + +import grovepi +# Import smtplib for the actual sending function +import smtplib, string, subprocess, time + +# Here are the email package modules we'll need +from email.mime.image import MIMEImage +from email.mime.multipart import MIMEMultipart +from subprocess import call + +print("System Working") +switch = 4 +led_status = 3 +relay = 2 +buzzer = 5 + +SMTP_USERNAME = '' # Mail id of the sender +SMTP_PASSWORD = '' # Pasword of the sender +SMTP_RECIPIENT = '' # Mail id of the reciever +SMTP_SERVER = 'smtp.gmail.com' # Address of the SMTP server +SSL_PORT = 465 + +while True: # in case of IO error, restart + try: + grovepi.pinMode(switch,"INPUT") + while True: + if grovepi.digitalRead(switch) == 1: # If the system is ON + if grovepi.ultrasonicRead() < 100: # If a person walks through the door + print("Welcome") + grovepi.analogWrite(buzzer,100) # Make a sound on the Buzzer + time.sleep(.5) + grovepi.analogWrite(buzzer,0) # Turn off the Buzzer + grovepi.digitalWrite(led_status,1) # Turn on the status LED to indicate that someone has arrived + grovepi.digitalWrite(relay,1) # turn on the Relay to activate an electrical device + + # Take a picture from the Raspberry Pi camera + call (["raspistill -o i1.jpg -w 640 -h 480 -t 0"], shell=True) + print("Image Shot") + p = subprocess.Popen(["runlevel"], stdout=subprocess.PIPE) + out, err=p.communicate() # Connect to the mail server + if out[2] == '0': + print('Halt detected') + exit(0) + if out [2] == '6': + print('Shutdown detected') + exit(0) + print("Connected to mail") + + # Create the container (outer) email message + TO = SMTP_RECIPIENT + FROM = SMTP_USERNAME + msg = MIMEMultipart() + msg.preamble = 'Rpi Sends image' + + # Attach the image + fp = open('i1.jpg', 'rb') + img = MIMEImage(fp.read()) + fp.close() + msg.attach(img) + + # Send the email via Gmail + print("Sending the mail") + server = smtplib.SMTP_SSL(SMTP_SERVER, SSL_PORT) + server.login(SMTP_USERNAME, SMTP_PASSWORD) + server.sendmail(FROM, [TO], msg.as_string()) + server.quit() + print("Mail sent") + + grovepi.digitalWrite(led_status,0) # Turn off the LED + grovepi.digitalWrite(relay,0) # Turn off the Relay + except IOError: + print("Error") diff --git a/Projects/home_temp_humi_display/home_temp_hum_display.py b/Projects/home_temp_humi_display/home_temp_hum_display.py new file mode 100644 index 0000000..03ab485 --- /dev/null +++ b/Projects/home_temp_humi_display/home_temp_hum_display.py @@ -0,0 +1,61 @@ +# home_temp_hum_display.py.py +# +# This is an project for using the Grove OLED Display and the Grove DHT Sensor from the GrovePi starter kit +# +# In this project, the Temperature and humidity from the DHT sensor is printed on the DHT sensor +''' +The MIT License (MIT) + +GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. +Copyright (C) 2017 Dexter Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +''' + +from grovepi import * +from grove_oled import * + +dht_sensor_port = 7 # Connect the DHt sensor to port 7 + +#Start and initialize the OLED +oled_init() +oled_clearDisplay() +oled_setNormalDisplay() +oled_setVerticalMode() +time.sleep(.1) + +while True: + try: + [ temp,hum ] = dht(dht_sensor_port,1) #Get the temperature and Humidity from the DHT sensor + print("temp =", temp, "C\thumidity =", hum,"%") + t = str(temp) + h = str(hum) + + oled_setTextXY(0,1) #Print "WEATHER" at line 1 + oled_putString("WEATHER") + + oled_setTextXY(2,0) #Print "TEMP" and the temperature in line 3 + oled_putString("Temp:") + oled_putString(t+'C') + + oled_setTextXY(3,0) #Print "HUM :" and the humidity in line 4 + oled_putString("Hum :") + oled_putString(h+"%") + except (IOError,TypeError) as e: + print("Error") diff --git a/Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.png b/Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3d151cf36ac58060b8a21fc0689fe10409e6ac GIT binary patch literal 30849 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 E04G__zyJUM literal 0 HcmV?d00001 diff --git a/Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.zargo~ b/Projects/java/ButtonRotaryObserver/ClassDiagram/Button-Rotary-Observer.zargo~ new file mode 100644 index 0000000..e69de29 diff --git a/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/ButtonRotaryDemo.java b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/ButtonRotaryDemo.java new file mode 100644 index 0000000..ab85966 --- /dev/null +++ b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/ButtonRotaryDemo.java @@ -0,0 +1,125 @@ +package grovepi.buttonrotarydemo; + +/* + * ********************************************************************** + * PROJECT : GrovePi Java Library + * + * This file is part of the GrovePi Java Library project. More information about + * this project can be found here: https://github.com/DexterInd/GrovePi + * ********************************************************************** + * + * ## License + * + * The MIT License (MIT) + * GrovePi for the Raspberry Pi: an open source platform for connecting Grove + * Sensors to the Raspberry Pi. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +import grovepi.observer.ButtonInvoker; +import grovepi.observer.ButtonPressDistinguisher; +import grovepi.observer.DigitalInputReader; + +import grovepi.observer.RotaryInvoker; +import grovepi.observer.RotaryAngleDeterminer; +import grovepi.observer.AnalogInputReader; + + + +/** + * ButtonRotaryDemo + * This GrovePi sensor demonstration is part of a coursework project + * for CS505 Design Patterns, at Central Connecticut State University, + * Fall 2017, with Dr. Chad Williams. + * + * The main method creates a BottonInvoker object and begins listening for button events: + * singlePress, doublePress, and longPress. Each of these events will invoke methods + * implemented in SampleButtonInvoker. Write your own class that implements ButtonInvoker interface. + * (SampleButtonInvoker is quite boring) + * + * @see SampleButtonInvoker + * @see grovepi.observer.ButtonInvoker + * + * The main method also creates a RotaryInvoker object and begins reading the + * angle of the rotary sensor. Each time the angle is read, the method + * invokeWithDegrees(degrees) of SampleRotaryInvoker is executed. Write your own class that + * implements RotaryInvoker interface. (SampleRotaryInvoker is even more boring) + * + * @see SampleRotaryInvoker + * @see grovepi.observer.RotaryInvoker + * + * @author James Luczynski + * @author Jeff Blankenship + */ +public class ButtonRotaryDemo{ + /** + * @param args the command line arguments + * @throws java.lang.InterruptedException + * @throws java.lang.Exception + */ + public static void main(String[] args){ + + //button can be connected to D2-D8. + int buttonPin = 6; + //rotary can be connected to A0, A1, A2 + int rotaryPin = 2; + + //instantiate a ButtonInvoker + SampleButtonInvoker invoker = new SampleButtonInvoker(); + initButton(invoker, buttonPin); + + //instantiate a RotaryInvoker + SampleRotaryInvoker rotaryInvoker = new SampleRotaryInvoker(); + initRotary(rotaryInvoker,rotaryPin); + } + /** + * Initializes DigitalInputReader and ButtonPressDistinguisher objects. + * Button presses will invoke the methods defined in the ButtonInvoker parameter. + * @param invoker any object of a class that implements ButtonInvoker interface + * @param pin the GrovePi port number the button sensor is plugged into + */ + public static void initButton(ButtonInvoker invoker, int pin) { + try { + DigitalInputReader buttonReader = new DigitalInputReader(pin); + ButtonPressDistinguisher distinguisher = new ButtonPressDistinguisher(invoker); + buttonReader.addObserver(distinguisher); + buttonReader.startReading(); + }catch(Exception e){ + e.printStackTrace(); + } + } + /** + * Initializes AnalogInputReader and RotaryAngleDeterminer objects. + * Rotations of the rotary sensor will invoke the method defined in the RotaryInvoker parameter. + * @param invoker any object of a class that implements RotaryInvoker interface + * @param pin the GrovePi port number the rotary sensor is plugged into + */ + public static void initRotary(RotaryInvoker invoker, int pin){ + try { + AnalogInputReader rotaryReader = new AnalogInputReader(pin); + RotaryAngleDeterminer determiner = new RotaryAngleDeterminer(invoker); + rotaryReader.addObserver(determiner); + rotaryReader.startReading(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleButtonInvoker.java b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleButtonInvoker.java new file mode 100644 index 0000000..1cbab96 --- /dev/null +++ b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleButtonInvoker.java @@ -0,0 +1,75 @@ +package grovepi.buttonrotarydemo; + +/* + * ********************************************************************** + * PROJECT : GrovePi Java Library + * + * This file is part of the GrovePi Java Library project. More information about + * this project can be found here: https://github.com/DexterInd/GrovePi + * ********************************************************************** + * + * ## License + * + * The MIT License (MIT) + * GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import grovepi.observer.ButtonInvoker; + +/** + * ButtonInvoker Sample. + * This GrovePi sensor demonstration is part of a coursework project + * for CS505 Design Patterns, at Central Connecticut State University, + * Fall 2017, with Dr. Chad Williams. + * + * ButtonInvokerdemo realizes the ButtonInvoker interface and provides + * a sample implementation for each of its methods. + * + * You can write your own class that implements ButtonInvoker interface (this one is very boring) + * to determine what happens for each different press + * + * @see grovepi.observer.ButtonInvoker + * @author James Luczynski + * @author Jeff Blankenship + */ +public class SampleButtonInvoker implements ButtonInvoker{ + + + @Override + public void singlePress(){ + //singlePress code + System.out.println("Single Press"); + } + + + @Override + public void doublePress(){ + //doublePress code + System.out.println("Double Press"); + } + + + @Override + public void longPress(){ + //longPress code + System.out.println("Long Press"); + } +} diff --git a/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleRotaryInvoker.java b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleRotaryInvoker.java new file mode 100644 index 0000000..85896b6 --- /dev/null +++ b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/SampleRotaryInvoker.java @@ -0,0 +1,74 @@ +package grovepi.buttonrotarydemo; + +/* + * ********************************************************************** + * PROJECT : GrovePi Java Library + * + * This file is part of the GrovePi Java Library project. More information about + * this project can be found here: https://github.com/DexterInd/GrovePi + * ********************************************************************** + * + * ## License + * + * The MIT License (MIT) + * GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +import grovepi.observer.RotaryInvoker; +import java.text.DecimalFormat; +/** + * This GrovePi sensor demonstration is part of a coursework project + * for CS505 Design Patterns, at Central Connecticut State University, + * Fall 2017, with Dr. Chad Williams. + * + * This class provides a sample implementation of the RotaryInvoker interface. + * + * You can write your own class that implements RotaryInvoker interface (this one is very boring) + * to determine what happens on based on the angle of the rotary sensor. + * + * @see grovepi.observer.ButtonInvoker + * @author James Luczynski + * @author Jeff Blankenship + */ +public class SampleRotaryInvoker implements RotaryInvoker{ + /** + * Angle from the previous reading of the rotary sensor. + * NOTE: the rotary sensor has only 300 degrees of rotation. + */ + private double degrees; + /** + * A somewhat arbitrary number. If the difference in degrees from the previous + * reading and the most recent reading is less than the tolerance, don't do anything. + */ + private double tolerance = 4; + /** + * Prints current angle of rotary sensor if different from last reading + * @param degrees most recent reading of rotary sensor angle + */ + public void invokeWithDegrees(double degrees){ + if (Math.abs(this.degrees - degrees) > tolerance) + { + this.degrees = degrees; + DecimalFormat df = new DecimalFormat("###.#"); + String output = df.format(this.degrees); + System.out.println("Rotary sensor position (degrees): " + output); + } + } +} \ No newline at end of file diff --git a/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/com.dexterind.grovepi.jar b/Projects/java/ButtonRotaryObserver/Project/grovepi/buttonrotarydemo/com.dexterind.grovepi.jar new file mode 100644 index 0000000000000000000000000000000000000000..b183cf7545e66af3c5a84f86294327f69095f23e GIT binary patch literal 17056 zcma)D1yr3$vL?8@yF0<%-7UDg6Wk#X+#$HTyAy)DySuwvaCywm%w{HUvb+D~o_jc_ z>#Os3Rd-i^RV6101PloP01g09mJ=xn@RtVy02n}8SdpJbTtq!#rM)8(qa6P-E{CGXWmbN?1u!lzCMdfRu`&G zK|!oZOf{DAiLnEvlU~-PKAown?pH90Ti(TqXq%Xlr|k>j%1cj?mL{nYz~RiU*4A~0 zNpj?gE0-&43nM8_PQ9F9Xhd7F;18Ylda*1v3lDyE$=rigzR1rr*w!+}lu|c-r86Z5 zeR?h~9;dqPi6hBfCQ=Yw?*jPVom20$oJc250=BNO=V#8W3C?{H8_)!HrD#R;f*&In zNIkJ~lr6#XT6yU+%bP*_^QHg)`~bhbw1M?U+Fy@={bPiok&AzZuV-)cACzPN62Q^H%<_k7 z@PGNF@~cg22N(cA#M^Wd{8CcDTF=h#y@92ky}iH6qad~l%1gk)idp~x0X(^%Xy$em zwO^UphqCcRYWOCKN>%U%{S??Hpd>?`)8Xj#rp4m2di65vGIhMWpt=JCK?#XZDkWZ_ zZI6uB=skry81*03P;`3c zkhu!hT~R*XHO@Z;_@E(sC6!m`~_-eU5BF0pJ_CXL4kiuXAIpicl zf0fILK!2BTcfyd^$-!`XA$Re#Xny-!@ZJ9Wx4VU;q8diT+(N&HsMM|g^qDDPLE}YY zh$gO?d17XNWW-p7oSeuAY1z;`Ssz{_YUBjs>r;RV(-bo*2Fh6AemzEuMKa?4tX4IM z)+o)8Am_*wHG}FzH9APf2Z7}1-V4nSvSWuJ3Z+_EURkC+AAqs9#2=f@g7rww3U$U4 zzKf}ky%)~^_<+`GSS)E;79VapkuC6CTSi7Jv+vr+Q^MCFOHyc%5F@h6k^~RJ8zcAC zaGpNW|2eC*=^VaUk?tdr6O(v**1alThXmJ7n7qO0^VV90^h4K#7wdPE!BVwvnbea?>>IP-=?s9XCo7ki@8@nMQSWtHB$+qa* zZRJI}%VB)!Xo%qK(-7+3YUm2N;U$s5Au!)7BWj`n$~`G~@xWOU2$~&VKW&+p)P6qi zLzv#(1^KR7HE`|J>F}Pf)K}T?%hmFg4bhbeYUQ1Uwe8oiWK&i!MN{AO3CvPigl!9D zUch=NVBj`=AwA1C&{UPqEnwO@gh|DL(|LrWnV(SGh>j2AverWa81J~PCvg&I&mmtj zH^4!euMIv6nYo~-FgFLxF>^)OW3INRU`jOP>q>VyHj`|$r=5bAOuSbQ$kW4NJX5*?z3Nd(+vcSSJxVID##Io%Q&XPOHE>ZWgpsmba9Q2Cd?Oa zFLM{T*Ts6B-umD{1SP+5#hrZd`8_4yI{gI^Qic=gs$+c_pI*}Sah|Q~l*N#5s6)o# zonq==sclgNt$Yiu4n8~E^c&q-xiy=qad+|S)rSpT2y17Jzv{r+_S`BJ?M=B&j-n{5 z4mIy_e(hB6Wj$==ZFCyH)+XTRPBV6|FIu8>C}Dm-VG~j>7j&AtJ_iNzN!S6upx}PW zSi}Lj6$4#zDFUGIz(I8ryk|FuzTnfnQ0Q`WcfC^A@cm^ut%JyZy>fn}`!~t#XSiS* zmZ3uQ6ano7JNKk7r=y{ZPTH7^Alzn_NsHRI5q9IFACRp;gR-R1WmZzf2@mf|bN}J>8uo7!^v03d6NI`rYBe@u5hE)rd??u+~jGlJ}abykj-z}};MZsFJ+BOK^C&6hT|(&CgtO}*uNhK*pc z-^vDS=4r=>HzKAX&yA*N4qhvjHewSxx|rN&VCLv-rwDH1eYzHyD{Dq?{$0K3f#{@6 z<8F4O?lc<(3S)&k@EWAda8Y{cTEaxP>1DrsU6JS)NlzhF9!kgauA7qpCfO@OxRDc9 zA0)sEYd+lhhKLr=VVLFg(ikQiNNHk8{G<1H*K$k-qXg5U=DZ=mvdWE5=vr}FqmA!1 zx&~pG3Ba}>blkZ%&VtAQ?VA1KsnX{@D=-vLHP^YVs$bZC%~iiZH(6@Az!@tzuOGJG zG*oz;vS=`gt1Zi+p|^o~T>W;4jdt+S5yH%N|C8UCxI~|t5)v`#>AS+6HKg&h2lLBJ zCcO@C!sznMT|E$S+nEoB)nOYbn}}gJ&QLzLMOwX-u#puxF?9>f6KxUCfQrr#+@-PZ zWJL>0nb;H?x)?^>7PSUTD=GQZ{0GoepW;CnLVbzxho|ujszEmC((0=Up{WsV6F(US zPY+C=86ofCH1(~JYaS~=4r^O!whJeep$+(eI~NZt`({d#YF(0Q*;|!SkzixO)p%hi zTX12!U}gC&pEY^Ge42vLX=~%UxCKic!0gnhQ<8Zw@OxnM^5gEHb6|%y>#Zc8D#Q;Ds zbx-2QNqs&mku`NO92gs?rS0gqOskiDY*9RdDXGgdZ`L4JlgOEOGt1~}>+HDR-R3=&TJCDTY*Z|tv_0YTMh=R^LhVZQn@g%N@ zU{oBQRQraaCuBSCDAGUnI5lT)m`t`6Z!m+bI6<}^nUBsu#2F5bWu#J^)Y*0ne^*_(4pqn%Dj1631}W>jZO<$_%kmu{mD)xo)4=*{}8Um3m=61+A`1D|2t zj$9)}Cf>JGVu)ZydqZv%)8(nx#AlQ$H}JC9jA1&@2+P?^?oQU=Ah*TsKI!XS1KO$t z(dtb^p9ttTlS*!t8Iv-?aVi;5QGd}b-79v}P$|qG-&LE^Ecs^1ZsM*?a+$7*6X#P` zH9$di0(P2QT0NdjVyG&TqVu6kDV;H!=M=T2*0DPt5-UzDKzObl0h^i5=M(6S0bYrX zYyiczym131W2)no(=1MTB1&ilmJ4_eqy^PXU7F=|7{_dnDZYb`0B;{H)6---urV}t zyC^aTDnXjJ&PHKpz>aGHUFD{M$$Ac(>3Y}v5U1XP#E59^7fVdfkL#>=G?8Q7u0u81 zXd?pC4%yIy-*MOeb1XXAcnJ>WWEk+jIxM_g!q1$d_ZIgL1QxlbTr2VX1QAf z@tg)Xw%BsR7RcHlf{XE->}jF>2lQN}7ATVP2l|d3it^<{j3Hrz|yf!MfW! zRL~diTV&-qc-jm=<-*<&;*rEw$pWpa>9jhCQALAMlDZ~?fu67K39dYM95k-ZBW<)L zmzp=e7Pg&?JFO*9E>8@$iN?@Y6BTWqvaya_L#en$ocNAIkm|Z@eS+hbyI1jDrU9su z7v*`7L}m@NPR8Fpt~d`#LZ($UfrtXvO{eWg5`!>*`w+7SD}xF+>O@1xf*QA7xazeCOBrm9)HKu7Dhts+cwQ`@K5coEXS>#BMA6rk z2}HUu&t(EoUT8~|s4c3ZMLdJw6%4q&U|7$28#2_fl8j>SE%kF#F6hlg%uG1z@I*o| zjv+)MZMx@ex%l+MbjUDyGb!>m{FowfXUr>Ln&TS)zZvhQZp7$Lcnj;{o8WfiX`121YiE&`m9k;v%9=*_Z0%_!}*_c;hw zEa=V=t&jaAy1y@2V4j|viGR>ZEej^DQnRX7^**QXqNx3$pk$U2<)}sfirXO}&9aO= z7(`|eTofFpUpE}viY(B*e>FL0wK!)rB&Ui`;k#Tooc=-H^o>JjA4hN5Y)Bu!n-4I{D&850e)~4RUIEn{IE00Hx%xPv^a-A|VU~9s! zD76((Fs;5X8ZMRZ822|f%c)GEP@PvgPeHk+GL3m$isJ8{iQy>w>_1aPMhl@*oH6c@ zCGFamPKLT5)5c6!d>O8Y8U>U}{T5N34;aYjTn9O!BtvSHJ z`Uodu)?fdcB1e%5H)#3#(~)Y=d(PPSc9mv&<8G*ad8Pj2NR=|PcQCRtvisv`{X!4f z$pyFgPWMTwjkK`pMPnh3@O) z4y0~KL}a_@kZ8*Igt>uWO5Rm!97$MUi5Q;nu*r}}vFdU7=shtA+LfY5d(Fhnfk~YC zRmCez!i#PWBhrNcsnkAA#<@g(JW9#{!LVTG`fV?5;y8^>l%F~6Y!i^^X{slMkuqua zut$d@VAf{wABUc8$Iy2z zgi7o-0p7ej&Yc?y@0Io)8la!og~-$iuF3dc1J{>7>)pattl?!#PvLa2qo{YQC)#E% z)$|i&2!pDDKDIesYYZ0#Bc>ZrG6Efs`*t715f&196QjpV#b*bJBqkmN*P@bJe8A1( zmM>}h%$;N(I$K+G7&xk%lzmwWC0q(XsxBOio~)E!Q(j0W;Vx1`Sodrq)aLDKA4{g| zT^a9fHMZE6nZ&Lrs;*p8j?wu*_IE3K_yi$3y;)K7f3l*3o`a+PPgd;YL-rp#r;^(i z<>!}j2uz$uU&*qRLz2p&Cw~M)!v3H>B@-;Wz3NYIy8(2E%;PPY(8~!VkEGS`tz~aC z?JQMFhbKM#-LV08I2)x|x16|q5ouMtP&fgejn2GG*zH5T{XpJvZx@dMfvN zq|3XbM?EL&+tY9YegzEB+8F{{d`$uk=)6Ye`hxm{`O|)`v&efsmalHmRrRdf(Cm^8 zPt>W`-@MFjagvc~toh1WTw~JV3@+8-zv;m=2eWT~jn4iiXus{Q;7KIKvr`T|Tn=kf zDx|P;A>fr6+=fUO``SMv-!ZB6=|qTp?Fnu>Vv+SrPqsHSbijjG*Ep4Fg&btxbW9Qf z%R$T5HPY`EM6H#O7e#F}8H_TIPz-hOYYpzbA)0UD8B>rxG7C@zg`AEv(ID4{7++zK z=$0$JOm*bvly{V@A`D*y%3f<1{uE23o4yVLvyxcm#m{J8c&Mm~;wX%y%=_-|77XX= z@9zM8V^^WxwxeIJ!#_z$Au&ZEGZQlhJiu+a(on{?U` zal9!pNtI=RbV`G`p`>!DazygHqdYVdm6-umRIPwIJA~f{@^L;3@UQVK{`JcrGGj@Z z?7$?ZzyjXo({-J9(lvJ?(GH&jFk-B8QmI9y4ME@BrM`N;yz;KK^|d{Zjje*%(8h01 zSn)+PcN&Euk|26N=Lj_q33>UR>(UMmx^MZ)eveJpQ6%g)ntgqd^->{x5i&k7-EDfso zC}9VTMuI-EU)GC_zXO`7jP_6O65mCu)u4}J6wu^E)9!TIqu6(l?{zU#=@bSSbeanJ zuq1_WCu4hYvCwlf5oa-)#}~(IR~ugojM#*vmsVonqB5A}S&H>zJ6H{hkOex!ED96= zJ5q8;sMQMhB(}7HLs@#EF_OHF0a#2mSg4>tLcp(O;tTOPqBW(9E;A&R zvY4nM1z3?tgpu(>bZ>7kSm9;BakqWrvAW>&Dk=&q^qDFZD^P;&w%h~Ze5Me-opjeTMOxM+2KtSJ@ zNgHTdQy2J0ren0B&<6YtFHUOV5q){uonlOe`GQRnn6>V&OwH7r%|0s3#PmfQY~X{A ztm2wIUzt6?*5Ygu%4qiUzMaSR`0nWO4-_Rc7DQRpJkoIO`)&f9=I#N-L8_49s(Blep)!C`Ql0k5!I@M!rW6zmzN zzQABtww>^(i&ZOr*6==Uy3F+*(iL(a34ADs0pL3pCru263V8Swt9Q5bS)`aO%OW%# zpNgZuhIQL0cV|cgpU{eR(6PZ3186G5fQMk5ST!XwDvd%b7$}{HdH4mYHZu#-URny% zCWIqKE?|h2w@yc`!({JrPfc`vOJOQj`V^7)9n^{`FMNps%K$wC}`bv#JYVo$8jtK)j_lWG$U6!i;HT;## zs;RI}!UEkIZbQRSvrD|R5#4jHCM~Jowx4T7kmYiBeIVQHqzq2t~ z&*KJu)CfK@#@=uvGpg-E&Ob3x>B>pWS|#A&8!?sdcd9M_sNHX`O-|Ngld`7*c5Dqb zKLh#p*B@mK91FT0AhF^vO)C&bE8uh*@4kbU>F*ILc`mme>RQzsDzmmZP>QDI>8>GJ z&R=##<2Lcga*87Xp;NAt&53iiv@%RDs5-osu9{=ZDQpB{(S0ppiMxUWQzz7z5*1*<#aD7ZG(yR&*isGy?T$qm?9xd58EsLY9;%ieL zVYhYVx>$3QCK$tLJxB$uJ1SbY#5tRQifW}!(-jwc%6Q|HQ;Rt2xk;&KC0c?%ngF|w1jUzMk(q%RW2HR##i$l+hn)uQbImYb;^p7g7ro1Cum7Cx}|_*iFEjcqa;J zh&&Sblm^Em;tyJR;6<_FEsphUO|z#QihvVDVDIr2-xsRbZ2%~VQ^BSpcp>kk4D>n` zXTE&dNxEHazF%csOIh%GdA_0rs8OAyPw8coDL8+>`vKmCcI1uXS(S}_0nK$}k#D6b zvrUb1-J84vxH4168=Q%BpazEyjKXmg^p2?uXwzd((}+T9(4H~}dC8x$EgQcO-~}&Z z=5#1+v^z8(QuD6L^Or48c&{?1(@@>4S^*VQ%$I-c4*We^scFTL>GD%I!=C0?_$~;d zzqxIk!h$si;1=_oeS8y^g^W#)wgqE!**#2Ci#b^N^_DK7y0bX_D{u&Nf%pgYzVE=3 zpWu&O?jn+j*N0WH+nke9?L+{GsHF=fDc>)WI;*n;y@^d>|xiwsj>0JFB zR?aS=QB)W(vxLa37E|imqsYw7bRk1IC_zUJCfoh6rLY-okX?Z)1~vdm9Tj0TyGelh z#`5iiHmOL#2%lTxYt2Nh(%dauX=yI|@E?KB4Me6c@MPeWE_S59m!%wDG zoFQ??#PoH$P%l-S-^+?KT0P;pj>ajo|Jb$CvrA*mBg&fY3Knsm7I6gvb0PX{h9iW^ zE&^A$4~3q^?T=>G)-48uNu%4DnvU%9ncxbymiNn@mJ!}I8|Xcu zVk~iAJBgoC{3b{ZthsfE!O$QR#cNW;j69AFUp$Xg9K`yKlnqGSG%2hq5D8Cm_@G2f zX39A#)Lq{k?n`TKF2)hmdp=E!bA!+LtsvNc?!S1jcgZv2;So=puQ6v&xP>Y8ZxtN^9+rFV&j z&_vs4MEMTVEB5%#VUW+&OB`A^rE59VC4g&Jh)?Z9Pejk0Kpfj{9NW{r2M2WdCwfm2 z*-nSNe~)u<1CGAOyxmfg-pU4;|LdauR|1{iO3%{T()V#Xd-M ze0)6cf-8_{3 z$>ZVU;nW(&tvBBO71##JnZ~d(u>(FnS2cb!Bp3w>1UZj9slj{`(|7d-2y~YrH-*rY z*d3ZecA5hwpvR8el0BVGOlTV{eJZH))5J}h%qFYBUKDhrsM+mvyDYApdWT~uCv>m! zK19GoHC~WOnzFRem}{AMda#}9-Utrv{p2ZoxZzkN#;i<7h%kJh{PDC4b!y-{>wxf& zJA~UCCw_BlTst3?LU6lvxp@jhoi+pcEjJs3m5^WsNfDQqJQBbG86bOBqzNBcE|DN~ zY(gvgm-j|slV+XfgAX@@X^X<)Hp^OfAD4T{t>!CjMgwSiFlRC1N6n{{=glwLi8!!W zV0Pofmm0d(pZ4rALSDaIu(D7MaCq)F#CZy$@5X)|@D11kRU|#EMcRM?Hk1VfZFb|A zVOD~2-KHN-XDF0*l@=UGvmK#(OP`m|?KB=Y3afJ}z!vP;nz5*6YK@Ge9?=;Vh))^T z95B&^Avg*i`O{xU#(Yn=OdH*qWUY+$1TQnh6`$wm4uPn*$CG?BNoIK5mEhM`u1IZvh7ti{gn8p_oIyF)R=1L`0{ zNn@K+1bIw+7$E~iit5zqt7YV4m^ls+U@cI?G?170da{QJ-ZIy_vF{z>vY&`0d-e)N zw6mlfuO4xd3uK*4;jQ_NbY6h|?&VzU2?z9VUJm=_0?;b87M$-z1>|>*V&|9ut){xt#>jU7YukJLI~QX_g$<^c_gkEjAV>;5^m2359G$> zc6R4c8*I{B`+mD3Cicl#F@}}U*fhf@#P!XsEx#`(YH;e~BhIZ!eiUL!$G*8IN6>>m zGTk>lG^Ix-I(19Cg@`ng9Px#Pxqgobk>PZgJRN)#Db9S;X*<0qE4;XZH^aKth&0#j zy38W)r?&}v%21k77kOgC<^U9_zQClXH`L8ti&6jLOc$`rn~UA2Y?u=dPO~&n-ytVi z)`|s9&6&wC;Sy_O{XWwUkpCf4cZ7BZOoMVs2I8wY4hnHT^YHiR5P--PHgl%#jm zBB?U_7U8{QQzIC;TD7~e=;F*(zl(IGGIKg%{ks!J_4bFVy^%t~Z;r_Dzd4~egTdeS zS$Qoq#(bF&^~RiY8y_QpO?AAg_`@aJPN1>zwQ+ zjU-xrdYdzDlhGEFfXADcOUQNPG6pFo3A)OUdVQVmeG$ZZ+ARZ`$$AI;HVV%UDQ>&D zP_qMI*$pxh)peR8 zcN|o;%eWUVGHAhjKuNkkcls%Rs%c8O} zHgYw9e*mP?aVTZb*|#;rt3jZ87sxUXQ;s7An)nVO?{!sF{0PPW}B4H>Cs;jd4F zRU=U)WD+hD2S0viIYd`YS*NF3&?vTxHLXV0oFu*Y@Kc~0*5)zR{$?onw_um{e>2oy ztrY%2+8T)-8T-ttTDo!k%emI#2c8(zDm0nTZs33vAB5n9x!VVt9+5TkoVFb$?q#vp zKl6cK0Nu$4?Ma&w5mUk*-5PV@MxH$1A1%QFMB20kV=AXKc-MgvmiEmD*(zklW0*mC z*XdcoPWeROsO5z^7>*!FD=ywn$pRnB#wlBg;ve7KfMlEG<9o+tOwPQn7J7z55)cgC&IbVs}JM422r~e9@qMG3WKu(cwwcZPWa=V&UG%!2dBo z`rR26{zdEl&IG0@YA8(cp>r?gN-u&!A{1*j=j026C-@{Nx9jOn7diBrnxJP)vP|oy z&`A&8g?j8}Z|?7(A4l3fv5e4xJPKT$pLjl|aqoF7t-RbnZn1vGR^EcAPx&0d4q*my z1(93X-bGlk?V`G=r`G!=OcWxSCq8S?g>ZvHFt@gcPN%d{y2bd@Wm){m^tId2%GVpq zl^X1^kFIV#*VHTEh+VAD^$8~M5-BOr^tAmL)0^ertPf$PijD$gsU17T6n6G{oUuT= zIv;t6^&gFMJ|eiv3|-ggXgXV<3KpAk&MG&lRjFH#Ncbw}er~Aks?2&mq@xTyPv=0x#m)d$lR6o23dvn^1Efa{%UJ9MN~2ve{^t-06>IYA2jb){H6 zg~geESu1_#8dBumSB&ayE6LRPAkYDvPSFsI0-{2ftqa}-sR(_=x^>=3^8)U)j|h`~ z7C@l>u_40of=eP!tK=}|BJWhku0_vHyLFC+YfR#CvgK4ZznMkWnnU;%baN5i8DhNf zGKx?QETH#ZO%C_1l+zXl+8}l%E6OXFsM0zpRe&usOplB2GFjvfLMq@6o3O)N0HtOP zf!n|TBFg^m2ssWGlC^QCF44j?!fnqxkTM?roGaTT7aQn3gd|5n}+j);-Qw| zDyhXo;R;h=D`bekglly0wJh1!dJthg4))_?S$PVUJZaoP*lI|Fn_mJC(r@GAz|VBx zhl_g2zyG3Pph3LWOFzG{5IJ#?Mv$P!p%{M6c_O=|M>qQP({h*)fS3hyIvoG$~`Q`{!G=6N<+(ua~FLAeJI-K_tak z(+Z(B@Z@ShGgTiyBGc7lC)fwIf(*lxE)T#NfpIenDjUKg2gscON|i*u7<#K@A%&b% z4NL_-u3{<(N)iTeoHd11P?#yHjJA1YE-KUaLBrGW@|f(7E6>%LW+k9QZi22_%@xY39=4F`DKPZh;hEjPO%n`~4WSQ53&{Xwy+Zb?bOOG!Gx;D}P z>D+ckX|l0I?+{0zV4dR2k;sCi@qPo2nT2z8^4K502I8)D=fcadz;W-gpOXe7+k;TQ zugp?cqTzuh4?AC;zSiQEn_xjTo`vpXq?})AFE6|gyFJ_qE{lS8Jfh-Hcv&irsL&IN zg1)xYhH7-NL$K02ekk6BxjEZTzIYb1#Yw}*q47kanqZ2l-Pre@t&~;9*5AuTdl1cI zY*6D$Xmop*;9C%%1E+_eqToil8kqw&ylEU>&A&$y#v>7clK_%d)c7*nFo#WA>dT*i z(oB`y_2AkZSA`b%0S)Q8VITRK%!hQ=n$(AM#EPm9dnG%@J@Ap!m3Gi+QA~N+iqV2h ztwIhrAm-V*$2$|ts-{WDYNze{mG*>LoU{AN?R|yteWgw<+@P_u7w=ImEUq56-fiXF zaEbpR7q59kO+w4q?mmr?Px)&GnO>h#f*t44ar|>yOY=g3g+s`6wAB=QaxO(3!}o9@ z5|`wAXs#|Us4@DnE~w$qbHpo#=FTSsk9b!UZG#u|7r%S#mr+KY&$J9WKD3NF-W3cw zzPv^+(5<6S>>j@NP%dfrq#mL7l6O?bbzaViL+5kDYwgZStn1Rd?&qI&!OjJDtvAjR z@j4=t+5$7^UIAYFE!$Cyk?IpkG>z&vFl&H#jXXh{h8^b(ZZ<%#WNq59I}z-m$%Zw~ z?RU}6S*|4SP_8WQVC+L){oGj3zxn2thOdolc)gJ#2}~ER>Va6(A9UXN0uCOSJcpbe z7CXNJ{ypa0LiQWHdt0h$Z$)aq=Inl7u0lrojwXMsRTT@D-wM^p7FHIdK-E!AA&?ur zQKP>YmMFh}hhV2BhJ`3G$s|`Im`GwE<)6HPr)*lspAl%G2f-rJpY-Pru*O z$(Y^&wxahYD0;Am#b6#@piJBq?|VwOQ=sU~!6Ts^MyXuDz*xuS;q{s!@RF^k0FHv+ z#ec2=Y^7P}q#P}B(dH*Nf`dzm@X6Bx3zH{`w=Ywaa#40;o81{;p(sROtXRKcVBAz5 zT-M8tp|DmbUtL(4SSsKv+3q=NKeF!&0O0tqMpt}Q-OpML7H z=adB)>)_Pq4h%;rhc{o})Ks&Ch<$z=$G{wyhNz>{S}zi zX$W18B(x=iLM?Nc1G&R@*Tm-3v~^2T+t@=mDK#-oYlDOO5bnhBOp$U!5@ZHl5!~j+ z)YjiEOSSYV^z30w<{gUSE;JkRx`Ay69W;lA?exbbOzcjvU;R4TlX}5-uH3YUY;6jn zE&#XUmZ7+mDYdu7<>)&OO;#uia}AdB%WFKYeJSjxrRepDj9Dz8CH>q_Qe)_zkIm9o zMzV{y-XSYW9kNB99nObqgRu6Az=#U4o|HxKERW5EDHbPL;yeqyr`#hl*x38fBgv6( z<83Z(-`}6N|Gg|vjmp+T{llh+#i#@cNy>)itV424e9o4;iyFUU={NRWYXqX1)T9OV zKB@-t7wG*v9#4E+E&X+eCwP!q_avW5TeVa#r9O+hs0bRD0>GAO5gguL6dYcJx5QR? zW&jx1Ado((<`PDz`huwsY=d#Na?hB<6E+ancU#}$fkF#3fB9bOTA>{T<}<%#RCaaLKk8Q|Tx^Bbipp8Fg%B0-rcKIo5qL4H|% zsD3VSIIAkPuuCw<9oGL8L7}Qut`m3UNI(=rKP3(#{hA;?X>u9J3jQF{U6ih~sAC=8hMU96U+U;tV7E&3^UmH=@ zpczTuzLb6&vKg+`KpvmuOZyrxW9D&_9u%+f@h0S)3G|uI9gRT?Z}Ve(UJ5@y_8Esn z3|{4=Aj=B7C7T)TMHcmAg~6p`b&@P8pQyhB+PCfs>RIAl`Y3F5eef<;%DSp zoZ@Q=0&9|uC4Q^ojZJ>11T7_gt&w;dO@TFW?gn1Ain#`eryC`kw!m4J3sr4;h!TQ3 zu8LBb)dYx%e3b-<$)7p=&(p;fPZS%87F`wF0&IlFkiaJp6FZx^6%xlVScR=f3qFHH zf%8lARr&*iP$ze9p7!PgTA7)KEvvUjUlm44V-iV<_ltx_8R6!$w1k|bx@h2PXaH9C zhH%ZI&=1Z&RC5{|N^1BR(w;AP}Y=0MP;1$CzQ_#j|%0esG) z77hQ#oZNRBSL#dWPbuhoOCGRFE`YL|6s@)@n{2)8>78b&6q6vvrr2aH7l7|K5${1( zEd+Fw+~PcWbd8opJxOk&-TkrGS%543lvI4d;}JC?$dzq+)Jusx;FJl1Ic>p9?r*fZ zKFv;skS^My(U|p4c@XgmdSE-Ubrf8R56a4WCO0$2X5>AAY=T_Ue({RBBe|rF@$$br zdaAIA<9voWx^T8^=dDC|?I0xyqLE-cn-8BawiGPs3{iHg^3|@T0@|0uC2WPWHG*G? z)0=(rz22sO5mxPU^F%9Q<{R>H0Y4*k(g)?_^woN=PjKoHq8obj(W3p0`7GD(e+QoE4p7TPUL(LxXa4K!$GhaB@1k5>{s_1f2A)@4%v-_+F8R;@&aqRW? z;K41dXd3N}2T6SU{Y6CO5O-oIYtN7zc?3#h zmHTW!(gew5eplO$`1v~AxoDBN()H6F$flx)t~_KoZqZ! zf-B)^9@gm-Mgmmp=EvFzg48Dyq^vy=)!vy@;TnH2=!lIDrAu2sOu%{La(v8q*15ZY zoigTDGwbcu`UWEuWn26P7myaksPY~+5|)XY`48~+<>oNU-k^M`Ie|Mbz z8tS*6(;rYPzl5^?cL(aPv3_d=`GJM;#vA=Mkw2#8&sX~s>yM7qUjzQulllWt{g;4$ zcBuY|^v^x2e`4i&$Nm!OFCD8tT;`u!Uj732=G6cErhjXI`5Ex%g5Mv2dkFsp@bBfn zKLh_&WB=(( z|6GLlvxc9mIDTmGe_K=kS;N0;I(`QIIg9)QRGr|zf&L<={IiOmQ+PjA@Dcw{D*hp% z_p^?lGc-SR^pO5fI)2L6{EYu|V&MnA75V>!|2wn%`yKsf@Sln5AK>n9hxdOr?7wXA zJNRE|>z`HpO#b~)5km7T75_v9{*3!GOYsAjo&G=L{)Myn8T9Aq98`ySux)ySuwfaED+)gS)!~cXxO9;O-LK5+M9!X5RmsckT>x@3$^z z9nOJOwRctR>ZhNo?pBZn27vP+L0U;UF?xkJF%$rZx0lRc z#8Cb$CMzf>DJH6{LMJO0nIvtu$^bKT0rrd=ffEc;j7l!85BJfc4Nr|kc-poDE^MON z8h0#ykL>$>{#n1r;|v~c82`1rR9+EJ4=BaA&QB^7NSl}pQ;p}fBoRF?fK)LlCurKoGLqLZh9KqJr$H|Lcy4Kic92n_a~Ar!{ejgJfq7ZG&w(5^+Sh!0q4;LHOHoWDlQsM{5`vDIk`|Ns zD%!yWat)Q{MR!Kka0FfcMUWS9L~`2gA9Yy=$mO6#o$e|-{g3zVN(>^B!aU2)+b>+u zXc@x<@G|4(c5rYIcdX?l#{{YK(_&nh^5^aQ)e+i)7mUXzenJ(N*zA)M$+6xIeqa?R zne?eUzCO$?bAXi3m}0SUvNTWUTHMlJx()lfGy$#UVR0%HUlD2dV?bpUJD{cGdmbuz zG{?lxGC^t|)RU=mN*l}ZPu8eG`?pkPHhdf2ukO8W7nYCra0fcy;~AlH z6TolD8TRLCik4)7xxyJJ4;+v9f-eRy!aRKGEn8Q<`YK3+LxjtNfYkv30C++G0Q^e& z-^YgJUy>f=E$NNzYrw`BS7j@Yl!^MA#R?QD%*934$-`d_Sp{j)V6 zY~S-0>Cd9})`rezc8>2s$bZ@HSKWR9=hsM7E@4sdL-J-uZ@pk=xH3|BU+t`^n+F6>s6U$#H z^2?q-1pnQbUyt)o3jb=!uk`&T?`Y^`Z)ED|=<)9J`h`({mHu~|e$5Df)%ufRzcbdq zPTrhvN`E)!ikO-ix>!4lx|xB$8k>q48o&MFLBdF9Y;EY|l&P|+ge-`_ z8xO*k3~B^0K#fjJMo31GL*On*2Suh}8bkHPOM?xVhOBPh4E+wc{94{?fvTmrAe!${ zHfgCYRDhu1sBiN2-Z`6ZeU5k2*XIXR4!#p03jt}eGlI`8)e&^>=ToIQd?8{m6d0+A zNCI0UiV(v!C?k-3C|m00K82$6sA^23R2Lg%Y3@cviPOSq+_9ZrIjcrZmfPEuHdC1z zuHNb964X2)>TAk5stY}wnz}JK*2VfQx9QeF@-NRi<-wPJZxIJNiCHZp`g=DhhM{H&8sj; z!CbT;Y$MU@l|tt(48+*Ok711sUhK<59c|<3Th0}lahlj*Gu4g6pD6r-Gb)a!>Q;io z&()skP&3a%2nim;nY2q^wx991g(Plb9|=vD;|N~V_ET~Tl8{v=Ds#l5o~WCL5XMuZ zL`7gBXYYn+l#u+w*eP%QHS=oCTRO}RP$Np3qa9F-5EN%3&`>K<4379T;U!NcQDq^@ zj(SalF9GLT_FXDhsR}OzdW2EuQgTa6+yh~1)ME!|gkOEv!1sSVB$ebTo!3(>TwtF* znFE2;jYh-uDnt%OWm|K!Gd8suGdo%l9WlmcqqPo%>qIf*PECKo%Nc8BreH~c%hoou zAe)l8tFg{X9Fu_`^8c^OfcTFWXp^vi8f^MO7p7#e}k1E=q;h5cl&aUa*F z%sn%AkXwaXG;#tXS*0l6DBzZ74owrg=1*P&Y)5njc!rI|-`9k(B)G2qxP*4H8DD^I zQxB$_;SqKVVlJr!8LeOshi=g&p%2gFc@(JLLkjv0imO{-amwK!A0soTt)xC;cV;N6FGnF@xknTl8F;;t{u}J)&D0;Bbg-$`NUa?NsU7 z{0MDA$^wc?g?WUE^=2tb$sLt$d0KfqDJ750$A*c4g8gk-qgjMtx0sYI6l(4flF?IZXJXR>J+Rh0e@U9j*e1M^) zd=UB+mxn^h0f85zbtOQ7K9Yx8@}pA|end>$uAvdwOKkuc72XQ~KM14EFAst!CZ+&) z>TI0T-0bkQX-Xe}r@s{*KKVoQ*)CM&kLKV7Q5A>vK3I5IKLZJ}4Ig=`sdD6I?8rTh zV2?uCV(UD|LyD1Jd`MnL;|dGqoYn&5OkTtkJDW3Tl~y(~zXA#JTQ2^i_|mC?HLWOLIgg^sjhcDO({hT7VV=>Cvf%xjRxhALx|mQcTF z49^a{)@uWA1$dr=nG-DPxBj{w((U-&UW_cjzKEYF5t8T894*UFC2Y2S`Pdl*uPIM? zUhlw}X=&~8CHM>$cf=j2&)8;sjo4>AF>u4B087bBsnx0iF+|H3_!S&>PJ1+<>iQno z-!1!a(%0$vD&K*`fZl|9iEix)#6d+bd%sQ#EPDqhyGIfzNx@vZZ**$M%%czUuEls9 zKmQsLTAXy5QY;yfKA{=iA**6)hALb$_!ak8E>TfPsSX1I0OY;p)BiLa{tDl^|G(yv zx}%}}8}IpZN;N2r$*l^Y@WuynVBA>y@wuZGDE8(ZG*F*_SqO$1Afog;GG(zL!)94n z7hP(GfI^V)eTo+9U^^BrF73^0WLbQ0Kge*pSbO@M&JBRA;ks=w*i#;^?*5JFGkYJ! zPDKDG_zeuPO-X?9SevdTCeg#&+R;(ZXLs8I!svG0RS7ztY=p^ZG`_t@O#0wGji zqhWO`+2GzrNRmEx-Joj%P8&(je(kiFl2$|=_7+vk4RB}&ZBdwuF6YGMZ?WCTKRYvd z^8@A+n(%{XZLRP`gE;TnKGfY54d8xHB>zDZ~^>X3qjoy^Zj!I)96%CRuW z%cxd(J~!~%xRgf04d&sBzRd_sVWX#IWiSgLY^Fy_RKZs@t&Bp!7IG=gSX$>%evHmY z+mQ9=j~5M7z*Xq@>6&zjThf|s;SE~c;jtUwD5FTbU!B^6dVHB$qID!+9M;dZ56umi zIcFc^bLbpTDPokIA+48iCENP>8~*g!pFWqo<&5#WIrG26A7x_;Qxg|!QxjES3=j0^!82qQ_QaoY5%Y5&{ZNGp%l9DT7b+K+&K{Ab|j z{D?)SV8#dwqxAMu-HY>^mNqwjAD<_M&TDjAaOWo)ED{^c_W1Bn(+XcN75b0@ zIAccFUnoS8zzG9P;lDFB#Vsi(L3qUm=H42QAp#$hNk#GEV&ZuU*)r_0^KORgGs>u2 z=?1U4Zb=2_ef#dn&v`Od-S-qmL&}Yy@zTGZa8#U{{;EOGQwg6Z{=b|%3x#?!k~|oL;KV>e6mlb zJ6JNX(K0l~L57T`YSEK`r;aF^`Yy66)ur1tp{y#hC!M=Whb09Q9QN@Y`>l-We_B-s)J;b-2r|Xi) z6r^b32FfW+roZDl6wcSX-2d#*U_SGWKmlg`!;KvQ*=34*ZjH!l?%Yp?6?80kZ`m2? z8`3eCS(>91@boR+Hr`FQ{~bjAQ@Z^vM6JF-6asI0 zIBo=CjNYdtr7)$0+gvgoJ%XK}#t)=r-V%u+LlYlYt?QR&R>Z!Ui+TezDDl6+RD>*u zQjk`0AniBz$&Zs6oN0A8*)hT&?II>%Zl`+qOZP;VJ)fea+4e zry6q@IvrJt(b4)`42)B%mi*0S*+U6`0+FG`dJE?FzMvQf9XlIq1i}2{!+OiSTN^U+ zDt2r)8cWw2sdVePH0BkX+R#p@+qkR1<^&HE%z^7NH(s2AAvTB^H+dQkbX9MYVP;jHd+7Z59pFG_u88k8`IenU_Re!kkMpc|ryu5GzkTY)^L*;*9RKzC zn)(y)Bh@Feh_P)K&J1V+bh2lQ0S|sH`<`eso!ec^cEs*a3nLy;zfQdsjWt(jW=^BK6>{2KWr8oAS`%S9GguAX^uS@rc8^(Th>u=u zX~j>z#hV(2Y%krpH^>(=q$$r~w(Qfg2&Tz^u<{uqRc? zvgme9i|qLREC+4(0E_e@_3Jmoxv#X!(rS(w0`l6P9>!EP2ra3@RwA-n41QxJ9bm-U zZpjqqBr)2DjZ$36>MoJDrniy_6A>8?7*~zufnUtzKIb*z+CHY(qAmUeS%`edHl_E=EVW>Tkb>*ZZz zQi%pUqcUhzfl)i0rcV3CTZtA`+(Bl5ustUap1ySHb9I=NyZV4gp`9p5mGc5V%mbC65sJWse})vrSZd zeTP(?-8O~FtZ=GVPpLhlb@&xtPqS>})wn zlC<9tbC0qc&^1We^3!*P;nM=H#l6xdU&M1ZgkC(0!)g02I_ZBCJWbU8fE$Mwg`F8q zcy?H92Ko4d_o%yO`5+}d1G)PN0Q=kljkH}{VkEdF&M`mznuBtAKwXK-c2rR5J}LjU zg_8Koo_9<>PGGVtV0!XaG>_PpP_Z#$k0+=V@T6se%5KzvcHR8^8ENR$4f2s2&Yfe= zy*KBOM{*8YZ0#&Esn5;9GnsvDjtArg8M|F6%|!{&h1Hj&71pmaX=$W<8u&SlyNFrW z26_1qjhL)BRm{+~Ie1M{;~&QTeo&fxs*Ekopxf)yot2mb7V!?`QbVaZ1@#diMu!FJ z%5@-_Zwaa3e|<8yfW)ihfRtnM{D8B~Z2@hcj@a6l&_1Rwrq2x8m5a2AhGJ1U`#ZJ|XrC|QATfPUhFLNP_Yb${sE;SLvRmRH&F*P09TaU*dcd8#kGyP( z-@u+#2Hji2I0oT4GxBo3evTFDMJe;=a}~GnP>mSHA-q`{EzNOT^S~t9Pff&>0k6yn zjINpdTrfA2<^Q3HzyE${$-xkj8$a*f$B#O_FLS;)ysR#2Qt_ick0MYK7q+5dJTe@{cal@6hfYJtfsA zfG}uoCG+7$o!%dXrw9)wk6qrs0$q?{_Q{o*1iP`#ur7T?{bmdJQDKJ#6)L#3nwxpt ztIO{G^l29vz;>I)e-0uTMvSvn1trBJXn7Ae$ZfFD0-G|XN0!Hj&Z7_c;)_(^Os{tM z3TYe31NM$G>BN`Z9yrDg(KCNKRyySpry#o^(T#Q6%aBCT9$YgRI=v28M?YrGv6f!& zipX6#EL~=fO%1Bb8IHK$*xUpduwi-`gRFQBc&fQ`U%{M27G$ zac=wkU5}~^7`Eu{smT;N!=D7F0!tvS1C4Ik+E6FC3&7 zaJ3(F7wdT&O4()lnq+ndVoRQ~cGdbm5eet@+niT0m(%DluxT5|u;B(&8>8B$S3R4p zJG(WsipmdCM^$RFPV5`u@+P!{*)f-^Iv15RKA!Y++289_EHLR(u`Wk7GPFmAHL!T< zuV2|{1B9)bQ!nky-oS>^n1NH!JY`*k6%MNyDA&OTkJNF%IP}%m8-q2IJ1TOI#d0joCRP@>gWHI7e^ zTv%(lf-m-oYxa3exILb0Rv>ZtL}H~;7bj+^;F}KJf_g{-pipY45e6zfAY?(QikAR4 zP-qNO3Xjp)dHO1S4={)M9RsU*r0ZL@^E*M6yusGlnx`H34$*WMBu9I5^knn119;^6 zJ*>5qS{+{w8GqnU>~{t1UvDBj35{V44i_?rxTXrJQ8a&IsbJc6)fwVIa3`W&7s-ph zl_RN86w&EF>?BIcPEV3!Kp8r;-2nLpmIeCVF$PG9Tpx-(qzA|jiXB)BYOY!I$rc>* z9HcxoWZ}qElF;f1rELDQ3woWmhSMJPOk3N$1lr6+ytot6%;~&A>d!esUSe5tIfP`- zdRvg^g`8RE11g1r#knKisSd8F`#CpjID~{BZmY*Lakz5 zawnv$Ed>!&@2DsV^%WoqBbUW*c14ZdFsNY6b`3f?drRJ75S}Z4PSE_ejeqotmpr{X zW}QTZ8?GAFt~5f^)gcPD*))7}CzhO`HP=ztBuF$e6=vkF;FqF5oS~U z`Atsj40pjOg-#`+!&xsw-Gn~C|(w7d8LW$boKaiRHf6-I8N$-O4$*qXD>mCnk3_c zijZ<62Hh}t?T1Bkm4Mqy@|&Nj)FqyyT%_!M4tZ?em{Akm*9l0U4=^hm8A+ni;Hjk& zku?<&e4F+Y9-5DJ1X>(x3q#$-UKW#avJzpc!mK+WoO1#D7~ES6#TP#6+SRj7BuNpK zOw|==%J-^|wMh+3*57oQtuuvi^%%`oWlbb}V{)8<4_30JO3GhuZ%HR8ksgK&Zb)Lx z5+ezS>P@?Cuto15|6Wl`DYsa5@-zs&pH+B8yE`+5nI<-)0Bz>ws)cSx9PSoc1=^>( z8FZ#WzJKWBz1itK36E`0R8Ix*ugX{2dHS!)~ua0$aJ3$YOnwhxV#r)!-uOA$MkT(GV-3c+DXUpO- zY7l5;A6T|KbQH>BNCO=aINUrxTp36rHqaV~^44iXizH@YmV2FlrRz)69^f#?;1;uk z;GZ#H60Y8%)NdC=D4N~Ky@SUFyiAqET8QH$wJ6k0D+O z{tkhUya7p^{XNj^LqwfF<1W)=HYAN6^muy9M0d9tmZ6EI$Ph5+ell$dr}h+(z~R+# zs`bP!UZmWp67jPP!hudNuJa7O4TWGzGZN<@wytc3X-_Ir#q8qNnG@&t5O!gS2zO=? z9-mv##~J}+E?D30@VY_#gA*yi8<7* z^S!myOZq^2$EAV(S+`p&urCIpEGT`Y)gG6>L1!1z!u9;ynseCOhJt@)71V#`Z*Ti& ze%nMN^xOKgg5|FT3I#_ySIhsq91;1)azuLIl8dgE41Ik)0v)MjE@KcMibHH#m>MFP z29#7*(+Eg_}S$1^W6*hry_SF11M@P zTRB5iE3i~;Fxz~Sx6a^)=AzxsU>8_;mIO?wiS?!`Oq#L{PEG@Qft;h>_EaEvsdD2GRO{_@a(fyTc{Jtqr!# zZU&sB2#6P&>Z29kq)6#whj(Or;o;&RVG&9NW$_}-qkv2#HYR;$aWqBo@R47|{mF22 zw@yae)Kh)(%pHTrM(zpYgs%6TfE3f~OoNh$8YYp+bfz+x&J-ncwzji}tr#yCTs4nG z1z9I(HNEtKWrh)osxK=*4qqBu<{pdCjtO65=@HCqzmwnj#^P$*(6i6+K_EY$`^+rYWa2t$aPh(rXJ|tlVy}a{u<{udFJ>T?-76 zBI$wcVWWhQm9RAi5<;O<48k4xGv2w6uHO2AJZbc3)5O9b*9=x2Tamyc5Fx|K*-M1k zk2mci*rj3ng+CJ2&p=>9@(S@ms-p6C2K+EwN1mCeHYY%2AGen_owPmeG2melYWRXj zWp$z`XsHCWQa!HJQ8Q_fV%B6z&2f$?i-9O##EFFqLF(v4K>{==A;b=xU?Z0#!AFan z=IqR|P<${lr(O5;Dq4)_#WgdDO-hTwAW)W<5$kPN>@lrTT8k5%ixKkbM9!;(%9)nt zy`M^SqCJJ6+0cw$jUY93rE$2lQq8xL3c8A;)Exm4cc+2!QQa1^1yvLL6{*kdq;4tH zRCGOgl>Vf{6@DQuE>Pe``BwtPV_Ow!xZ=LB^!hzEOO%Elliahi!TfmK)*!+TC*GsF zlWz4qtT_hobkZ6zk%;V@k@%=OJ@Pyk=4f3MAv;Xavql(d_UII25J)s)#|Poh3p{RB z{&3b3E$vWjg%wz!nU-a0g6b=!%F~&RC#cp^+OSX`XVvn7;>WDz+S1k@ReS6nb$jq> ze)j7_2`yC_NPkqS1H#uncQEUBE$bsG?0}0ezUP$LIdMx7aZT?dX?%f;KZ4_s*=buh zWMgE`<3GAYY{;$G6rOjj)?{1IPO(X`E9`hWt<_0A^`J19{|H?iZ#E8d_bs`)H`Pm6 z1Rpb3WO<{e`&Ppwv?B|A;kB!5Pp0K|;C$A&Sta znHi~a(uJ87`5Ho9bSuY)UwIO)Wr-^iE>gPXpxbE98tvnQc+qSd?ZbokpqsRotPHb* ze4v{&m+ZDb1+CKJ)Y}jD;sTiq?zn~TeKYZZAni@1rWfK8AB8z1N~O<8Y!3Ls#0ThR z)Kq<>TH~)BD}Dp0Ii{_V7mE=Dnm}TAM>dCXvOfL#5E0F(P<3UT z@Y->}YXO7I#7X`Cp}EX&kk`Wvj=o~mHv%4XZ zl-cD5WX~=R)T6KoXmTiGccKX5kW|#t3rCNB84XT2^B7K=!U026NauPcSDzC5UHI$I zkvXY2g&~I30!yJ(X61D11ds14Ub$;qU(p~6RKB7?nZ~A7B|?4^Td1Iw+bLvBD64JU z<4MXInvkTCHu{dCRt&mAi>!vo}V`3Gzn8K5$?;AjxtBnPm)WWe7skP3Ly_yEKQfJxAUp zycAo!)V%)I;t%v;tjT+80ExWY0HS#Z@g42nV-Oq;x>`cg78ZnST1C?-Lil0L60)GG zfs(ZTafddwffYEbwTl%$)VqOIc-|TjC`Q&o5K=MIqs&=joXl;^o4#HzU|WcIClq-~ z-3>%)HHGobmAhc2T(&z&!Kj&^SgI20W{$id&e zH^WgLR6e)W7!30#W~oeJ)|yoaPkVRCZ-8ol%tM8b7I{puUk(c(@eT$qFIC(kwm%`2t)kkvZH6QPR$aP&)8AP?yQ7?#JA!56*qRbn2zL z+3Y-WiXSM=tV>+!UHAS;CO#Z%3fPAw7JGP8*auka+{zxNOMq3F)7M2ZVUM#aJdTOJ zlWYl_usrJcNnFm6=`BQ;F1Excx5P+?XO?{kleFpE1c*Kkg~o`4%ee7Tj++NrTJzgJ z1?#hhBMv(_Oto*m=CiwICfSA#I}20AK#Jp{LW=r+5DS=nm7KgOmQ&-$x~blzX>-R% zsVhPQf~_{PE4qEeeTLCHK*Sy;oaL)^oik;ams@CRAG&)-=CrQr%! z6>3uR1ODO=%bS6)KGb=+wBOPx}kOCgYr@=)Cf)(`iMZ3 za*QyDLKV!ycE>sNu+6M7C{`b82kyN$A4Dxv@4f3ftT!Kg9@>hEF1XiPoG`&=@v`0u zchB?hNuHffo!n6*Li2I8qJwRMT$|j1Lvw>#8*p#x=8brOS{rij>IRO0hvMmftnMa`h=$@x z3Manefam7;oOxyylFdtaNwTX9B+pC+l4aFI=BeB zVPI}o>n^=zGw255%GgPLiMRU%gwNnZaf!G)1eDF-LsgxA#q2kQ*@f^p8&s9z^R1Vi z&a14ap}x*W)XuaZIM3C$eyU@jeB+EQ|9lz^i)%t6prhZIxoV=+TFs^oD}7)lOK$wAgQoUG!_a;i=^nBWI6fb^3h~GuUf8 z;nVu&G+ga-!Te~q0|DU^F_;fQmU6kas_o71QmG0vafmowMG>P;GA)rr` zDPP4Lh&%Zb=P1BczTGO|&XD>cRM?K9*t?q%*aojl69Iec_B<|e?kNJ9`L3Z~#W#5~ zYg{X0*GOwOk+_xm++GhxIBK@CbaT7OdjO;c_}C#92FVI!B;)%nUc=?CHDuuyurPpc^vW-tu{ zVvI$$dQ;#fFC8!M+<%!FOqm+D^WwJciOatwuJ?cp&wt8+ym=*XW}T70tCLZ*>!s7( z7v%hu_$sBhT4fB%6|ankYkoDaSVCD9l}M>tkWXDu>QXLMf`z+Isalp#UVwJQ!BueL z{Oqsq@;umg@hChbxm3EFG9UI4w@kAocrH&R+C@UjDN1O&zxgX6<%kQMq~<*r zNkI!AX$PKM5L@?Q3h@IrPTblPZrmF9+b8(jr=7FJN^p$uET6Tb#79eJ(iYjN9~V#M z#>}fS_)X|Hu#w|_gnpb*_X?2XZ9ndNp>@$Np&?=jz&9}jzU(mp4 zV6>WNdSimpX;^62%I%3*&U0AqV;zw{1R@{sz}kSvdL!gAipwSuOXc&m18Cd(E6uOd z?24Jpd=wZiFF}Pg;m$90`8s?nWwFbWB|N3vz) zs|n{TPU&0FM{VN^n#6BLzKe40UYf}|mGQQiQZ_!Rz!<;GPONR3G{smEL-c~$idz+9 z_j$ZYe|x-!jhKCX?&NhTqHa)@hJJm0#Q}M2AAY_ViJXCPUDiM(bQ!}$2EWmHw*>O& zcyK710dJBpnLi}SA@n1V33<#^V_M%mi1lujSuhUtY#&S%L>(-8iFX@^M=&dw2aYK9 zL|hOghHy#(ttrqGoM9KFqc5v+0x>x?(*S8WYAV$pi>Oot4ySGnFidhru0{#r-gst8 z12Q-n1Gis5uzhtbH9RJ#s@dL%V}nl=qoNuG+v4;-&%gop_t^@K0!0GeFpo$f%>s=E z!(ps}50NkX{vap83U(+X!l+gZWMg6jXjsZ7@kXEDb|2Ueq(zq0iq?n@vb1Q_kcx#` zt6G;Z>f+^Uq%#WB#fz8T2p>0IR7>0Q-Erplhq0m~-4w4*3|Uk4@~GsY;o-p1C(Zay zl_|)smxsY=!@4ADoe;3jgP~0ql;$%lMStT!Sl-ua2%o&Pt>5yb z>CM)N=&AMJacc3o5rotA6w&te4ZS?%3{8iGGM;1ik?Q_)*hZYr3cn0a8meN6j zOq<7GFHoB(w4iwE6=tr8XPRJ|t6wGiiT?Vj9U)?{AAIwU9rJEdAp#PRU(fcu!}FZe z{CuNoliwT69=@rrIm{~G-hnq9#n!~0Ilv=0H0wwTPdslmUdx7m)xcm1b5Kg_4yiIO zWXOB_=i|Mj`RiDE6U=!x3xr7bt#FCSb%>!0r}YisgK?$SPqTd5G)YG56W%W3#g)!^ zpEBWGq3s}*fk?0Z7^-7+k$C6=q=lb)!p>Ihh|1m|Gyuo+zUyKM; z9A$7R@J^E&bXG{|^Q=43Fmcu`uuqWbj+Mo!f?MXkF=beV=JO(atogT_O180*7G;>q|tRDI7cZ>YiJc?Mr>Eb`6ebA~+V0>N7Od_KV%-J-O7 zz=wkIYUhTMTU!5)MAd$ei@0#5MGyV z=0Uls;MhXj=;M4OjcuG5N?PFtf+;z!ra2jv|CKr6AjZePR`5dJB{$svnmHnt=9bQe z*2-^(Gyb2cQ=p>#D|LPrHkmpgmKW=&mQy5*g?$=cFHC4Op&eAy8)=joov&T3hYt0X z*o&UXKw(3*VYPKACZo>C|~MG5+)M`#0`S9wg5Fj0>>1b6l+q`Nn94 zQRFG{eae>Ui`6-XvAI<}r@fWuS09C&C)3Z+fL9HVBwOYB>TvC*D)DX@wBU^);um&d z`qV~vnXHU*ji4537A@RKGuoXinF1dLQw4-Ob5OoRAZsE=U9w@gl9h*f8>OqRQl_^J zK+$`YB?Hf~C{#xux~-4!mS#A^7duvw;$(62QC)xRp;H?{YFI?CURG5l^^jokkZLUn&CxC&UQ5OzP?zQCM9OdzqEa55T}^hCol(@j zmg$QNKEz7GY#m)2YudxhOleoLkIbPg_$~o%qJ4MX?x{n6Wka|ct-HQiekRoy=BHYY z*&ONu+;K$w5sYomZMmB)4@_@(8!Qhd{FQ`+v4yKL@}!M|xle%H0~3rJ>Hz&~QZaL) z6IPHLtI(aD>D;nV@5&T9Qqa5)Q~Yp&GR$tK+-&wtJ#5e`&kdjC!ts>J9A>LlRo!=M zI@uv3ZbMC$K8$sbOj~;d;G;oS28?>B9B{>!0+#4eSQQ8{?sfTHS}kvp5Iq94>@-_{ zZ&3n1r!WJr!q92YBiTTHf?1J0lofMSFYSUj!Z8(l(8Zc4aA&Ra7}5>i4lSY}D`kT#ZV;jIW9Lf8kEwMB+PMJll}X8)fyu*IqoalHNR>1~qwsXREZ z{#)b=l_uzlgEj-h7Jw@e7Ek-*O{(@PtT$%RzwM05ssuhJhjmO7ujy@3s2tCT{FT`}17jxL!(TSyKt zYi%}=d=$1T8X@*)e!>Ai4aaQ2nQDJmQhm-#PPr00( z2l3+_Sr9K2DIq(i^_)xQ=YI61w!uCZOG*jl%PHE%sMK&#Fq~Oi8_qsGkbg!@=tm*YDIax-Cpt=5-}ds z)d7<5klg6IwuTg^&h;{EjEo`v9uRlaZIYW3_zj+ zSi~^V@EDQ$zF-#Qi)^Jzx#5+Hx69@FbN-NV_+f}v7%PATBU~SDh=Ht?b`4o!i*O4u ztb~)l4ryquRd;?Z&)~KX#rQCRT7FT;EzW2@xftS&OKGiep&g+-@a-P)g2bSfl7~<& z({dnXq`pwiE6ki%G+He(tc@R`tvy*XWhW`uwe=GotGCm*2#fYBdsnpeB=-DG*Dpl0 z1@Vm=eM3b5cMp+u*$9H z*}OfKrtu6FF)+jj|MBNf<2>2pJ8|>v^F$rx{k0-uU=4fEIxqe*@iZ^vUN6o$NH6oX z^X*99EDI4ZKm>O`I72;-fBclxEEyq-0}}%yBQP@q02Bj5 zBN*xLhWf2Tl9WC%`S~rs3*O%UJOY^hbp-s!!QV;4?>j7$tn41kQx z3_KW`7?>Iu8iF)nY`@|G_gg%=TUaHl-@K)Id+7fh59a^Z@%UpZ{5>F%F&$970tkWT z#xg8y_l-naN2pqs$NI<$5KGw(q3A|PJE@=Re(hMf0xF^LAE1M-+nlVvn7RQqh{_6& z3a^BYW@sP1jl1MiUsf!@Mx~^U7m%K?$`@&;+|PVQYI92=oaG?SBmI<2;xa!F_S-B}AZ6roBO~ zg=AY<02y+IKL3qP2CXqq{R#-(y8(HJO-hQXsHn&qTA4cjVv)9{)+)cB&;Ao;W+tpE zy>0CYewB5yuu>I~6TSRY#D)W8!-;xZ_$h#hss4VjtlmUQN-~9Ie~=r$hddUOd(wRy z*!>uov$6v_rx4KWXkdk!`!)NeqQUIpVKci6z~qW5ii1hf#5ja-s1FD}oQLMBdb}?z ztUXLM_-Em^xD9ZNSYOCd2$<&Cfk;@!)5q~0I$~Z>S5SF60N7V0lQF;e*U5{nuQysd6}hM| zuE!}_hA?GPHLTwTT>Q^HWV+*n0gI@-nVUSee0{vlaRKNc_&#-IWaF;B$xbhIZV z%$5&O0EW@#5Nk^OhJAT-x?tVP@Y!| zb7*3LjR@5~W`_P;quq%tK*@1%u_5aTF)!mZ5KLV;_?*k;YPbpkBW1QC1rH&wFOh zT_HsGXN%!QOOA;Qo}M6MR?!eK>7|n}>1EO|>1Drt&y_lt}U zsv|%^!u5;pzJ!?)9{(`?OgI1RUwXzW9&pg1;6yc#1DVDjlr}f*<&-twZWqQTTE_+3 zOx?@7rkL@d+kg=CroJ8OZbH#&=a=bnj#P<@DT?p_p|V@UpYgTA>z3iw}8Yn6QVg zcw|ZCOsArVtZpq;1GmeuG0eQWFNxK+T-4xrZd6b1?DlQGC=>kguXPJ^-xJU ziQ)a>dXwBy8(^$te*b;U+i3#`5O}yfWUR|fp*l183ie+!DmSavaqgR^Ki=N|46tnf z9E-Q^>3fxFqSEGDd4cdV>9he2J}if#m;fkPZ3mN8Ldm!}AuO#f2H;`E`n1s6>5T1L zL+ESJGcpMuX6PUY(uVt0(CaXRr;fXz&m&W6>dQg8o!Q~k=8G@@{S`?#xcd@3HnQdy zhSZ*Xm_m$Tt~^=~j1X7x4-MZ9Q~kV6Feoe+LYu>Y@LYplzCCWuP0lRpg0-0=fe;z| zh*V+vIL5$#$nFu{MyL+!*6 zTN~L5b~~Dq+0vrRY_BBZfFu*D%?Mmy_)TCQxr&Je?||@nNI_DgL;yv4GEqQ*m8`I* z94>Fe7bA?9CYfMtSO+d{!ozD8>(|!v#?zflmNYUt>mTFwqgyormg5{4-Q@x4_83{O zRbIg(;nGO`x2PeJ^t4LcJE}asZwCt9f10&ueY{Xr8-=M$rnxOoVXJZdHr0V<$k&a6 zn{S&$s6XBJk&7xL%?*0g$Q@ z{eIdoC>0S>5l*1~4VyJWq20(GI#sNx`Z@|vcw;{RUk%E*JPEeBh zh(dQ^rPQ%`k=KZ2nc~uTs5klynEUnxbC`{(#8qr2B!(5^@FRb z#=dNu7INhcOASN zVl_fT!S=PYnC1}6tD-=6PyR}K#4;w59KG6R8o2DzUpq|`Xp1a(CX>(n(H~%Mo7g_c zSt~7kX_Hmumfc=D^=$KKORKv!trd}N65!REr#zN59$rOc4Q`2-{N}xSWpaY5h?1qM zh8o8$G9@R89t+?4J#O67pQDAU*YN1-;uD$lG88?&CaS2gZl6sQH;x-88pcXkW3o+z zyM@=zJfV|+;d})w^_sd-Qtw=U8MXI$%=eCGm9;VP=56T&k}T2JglikjCHx3)16kG{-fUOp$`bHnni$gz)xvRlG(~f(Kt4#_CO&)Cqyc zL~_-I8*ZK&ry8yod#nv+4O&7>v9Y_YVVlszLTaF=qbMIRJ;R$-`r&YMthkIs_O7OW`I)Wa`nhDN|avg zW(^R0^e9kT;lR?54xZP*X_ZfQA{b*#K``T343tPTpZ!qEHI$&Xsjs>mX&l7zm#2Oz z4thc>hJ`!}qIO-IR+)G&miD=Vr%fB^Pvw`T zIwqLY7Du@%l+%Wcp9gl0&8N#?eLq)8{rrvRFg1a}L=}@K5U(=!8|ptjuuPz4&B+#Ie#$QJSb+i=wanXdw2ns<~6Zd z#KU7IsVvb_vP$56Hc*Z>?6Yk-u%9O<>FUMJwVq2Q<yf)Yrr6O!BjA#%>jbseT zoLw!&!iM4!<6S({lp(b9)7lruV+aS9aj|2R(DGm}E=9Ry;x5I5FEj{KQ5PpJ64oxDAkm$`-_24Jk_B{Nfdb_owK&1fW zBq9JS^Pj6X^55p9|14Vndy}B^k0!x9paHV@tHB`(jtZCi_twWPFn&CA!tCeruis&f zjJKdC>1ZTnUB<>GOaPmH$wy8@@-bo5~MQtB2_*z20EQhJ_;%p zO!E$Q^|A(HCNVr~OlbyeA`l`FWCSLVj_%>!;qKmUXhVitAPG`%*FU-fNDy*0zlzp% z!1K?;{_pk2|2VDvb*v)d4(J6riTvy9ze@Lid1Pp3fi?$Em&mlt@1GDis8Z|%5E7FY zQ%0BzOA!<6vQAQ3?^V)x1&!)mb$|8;EeA!y>pr|11~EJXjSzR=GO^`yIv79me!V`1 z@t3K@{wDvSZvaQt&<3?OLh7qXf&ZAtp2I-53dkZxL_8$Py(VE)QBBS{kFkC%rfIVe zsztSPq!&m$#m4*Hf!F>yr4VIYME;unYbWxs7LVAIEF1nzl4T@;ml|dHC4=(WF~tI! zkmu?pWau1Rd4Hln7fr9w#vQq$A3qy^;@LVb~j#dwL9^y?O};f)%^q2WGx2O&~C*k&XIh@MNq&kCn2*! zugl5V8|S=+ zvq-*AO0MmP)bPOhoUm4|yLLNT3*po5Xe;8^dlp^m$knF97Jf+s^mcOJ6=!-INNG4b zxN&jmgG{mlCDhn6-JO{E;BuF4f3QnA=Cq@WD}dHo=Jw>^8I>eq5$fO(3R#AoF+^#; z5;G#b(RE%eliw&yOnl%kxdUo(>)Ni9xN-$H zia{ErcgB_Y{+RnKudDZ^x4Z!Iy47#X?uEkNgBY8_0 z-=~SDq0M4H(d`oY;t$b#&f-CjAj!Mw)8C!LIBrYDFRg)EXl%J47~vP&XLYNmev{k12U~OtDWY~4S56v9f3l#D^?o-ZWEl2 z5Gl$lmJYNueu18gj0T0)d4>fMnF`mf;oOr9Ymb-tm?>m?IU$OXyzew=wS~FjZJkpl znFj0C?;Mg<-1}H^Vr`>xg3nd7_sl|~Ulh>#+Ie)OL|{r;EM^@{kEsJNsdr(eTj!RS zG75R7k#^YD!6y^5$WBR+_JAr!$!gKb(kO^S#Z^Cx$72!t02eC0`j5ALa}3zSQTfme z>4!|UBp6@00|^qT4!ol_A6bn@GK%fuXoxMYvO)CY4qcnmbtA@LT%i{ubXzdXkgWBxtlBy3#`tSyXxRTck$RxE+=o#W#?PM0la zli724xn00zTduI4z_3&f+A7bD#MMSDG1!(}m|_9}1E7lJ6M}u3u+0FA*fczQwKUbp zHV}ic!=KNvXADA?izy&eNxEYVq1=v&udW$yZ<8jF9D;<0YkgG==4a^~x z48oU?6zy%WQX$6_1873-ix-ZeEunGVc1w0n_vy<`kR!}zA1xRFdvPF)JKb=gzCmI< zzq#!gvAXD1ob;3<#UO|-dXkc%j*^5-I+S-3_OEvE>mU8dmA|~8%Rk%&0zO#IZuE0thVDB+TpXA=JPi!yirc z=&`F0wU}* zn119u%}jJ^p9ofzGva6#*FqPRi(8Ae$8763BPJ<2K?o%9fv?0e3SDIo# z}8vq_YNjCkSP$HL*vyU{A??wi=uNx_V>js1;&K`i{|v&^sq? zL>Z0Z2|4zjDmCmQ!EJfW&(eu5cGJZ}X8IUp^sh#pixEB{V2IOvtI^zaHD4Z|o^2d!Grpf`B z<}hu)Kx9%4#_n4$Aqa5{79AtIUvo_nquCY;So2x{^Zn0770d7E8jyMZCGYv)6Rq?o z&mc6VsR3p_Vhu&3y=lMBQK=ov%o8FKO4i6hhy6$9kztJX#2?PbZ!jLA*w$JB_taEi@Tz(7v?)JdEu% zHGLPt3mQU16LMoTONAAaKF8{1h5i_xREq?gF{@%kdUIpNq(v-8Y;kDLnn+6Ac5yq3t6+d(H$DXKxE3!Q zH0rJCwm&a10iIPq;tfWt6cMpuekNz^jAVL_geNr7t%d<*yS(5SQvm_iNnrB)qPq}SqTh-tJwMRRlBLg%R|6x8(9z1ra84_F<{Y&>>uGODLz z{--897%bhg)8nX|DoGt>XC+D9f&^88)TW$$mT#Wq+%=alElw1^3VjI?mm|cJ0hD*y z67_q4?bH}n>r7!j`fWyO+UqDF=;i@^! z`n?`rEScJ*&Zawyb%YSjW(L)vPb`}}L*qPg&9v|yPDe3cf;Z@;8ZNLWJY|i-e67>o z+CO8oheG-so*FmiMLHKG-i8^@iy%mRlej_CxE#5gZoztozPrPqL7YNtClWI+CfZSY zf_i}+g^t7E70{Z1PGA>2!qD{ILpZwEFmMp`DoQNJYjFNJ+hi*)~zEMx_tm z!oHEzmf)WS-J`;~-z*>#l}l?rD|-vLy>Y4?!Q#njO-b0}J~M^Fu(S z=L7byXt;E;X88h$1peQ4d;TxcpknLfVsCHf=xkyvXlLMP{O?_UvOcMO@?27ddo0|&2A&={62P( z?ZdM=mHv#_C#g>w-` zn;(H=hp$O0Q8+v(>mpYb)izNoz5walSK?4c>rztxhHh~v%PZbHQMcOE|V`v!#8t2-DVXSF*n82uiW3_r3rX**m2uUlKr*^E$D{Z%o zJwHF{@#|S{n#LpOuPFmUCL@&xB(P_|^Un#4_xB0xZ&UWK-pv2r9A+#1NwyQpr!fJl z@{Z)p6VwVuo$n93761*hh=XJ%82oJFMlICDl)0`kkG}cBmq9Kp10YQSy+>b9D$YPY zZH;AnO>J=8pS7g_;@Sb(gTR1kQwMA-BCh2i^Q86f6IL(nSVHlnorprsfhj|mF=j~! zQ+L!7>c!&$5MT6QlOYuP@TDC9vIVm#>=& z8|YMsgudvM7qtx0YjSiHujn6X&j#op)ku+ipZy*a#@3M?7w4$+Tr@x=qTJjgTTg`? z%0>3rFQq3OYTTwpDN!gsBnrxG?4d`VNd5j|X~Ghs(cCLWxzHs+XLH1SHxSVvMD{+y z-h6oO1>1LLFC@pZ4u>qY(4IR=kMK3fsch!mCc*yA-sdL++1!H?1k*QFz)1(kH`too zYyQY!DjRn%)$e3=8j-(x0e|xs251Gp=$r`9l{43YC6b z^~7(bNu39%F}tV{Hmiv?6xhaj!fK`hoRX|&uA^W^jH7SMf(Sd!-{&Jg#Nbw5>V}w} z>d!)J+!04na5#CKqEWFJ1pU@KOzUR^-2F8mPBY$u$bbaLoL(U4&*a}tdGnriMCpaU z#?l6!<#cnG)cPA#gvON72P)u?or!yT6CZec?V-Juhhv3byyG@52STqneOHA8cRkkdDE^*xJuv znr1aTrrJYT5UQqIZ>cAfFB^LuT&IbAF`a&og9r}6#u!v8XQ9Vo%R)*^rV|8p1bawA z4F+l)Lal{9(bmD?G%yq|pJAEOCk~=p z4KBlF+KyEpl=3Z^-s0V#raf&KqNq&2(`YcU`KS%A6qb~!wR|B8(ZK3Ob1~yyRrfKN z){WA^y{9iV&>aFs!@ThlT{y@gu-SxU!h8dQueDSNJ-mu=Cvjg`TCmSm?J6~billt1 zi$RP!!RTY}TYHy@^$q6x*<~%M$Na`B%4nI(Fy`>Bk`aZm_{Tb}$*S`92lEu7?1QzH zf!2k*#~9<4^%1%S8$MWvP1_y}Q7#pwL1Nq~{A?Xi3s{3R+Ed^T&$y!40})5XXlj0W zN^Rndl0_{~u`s$l-hlJ00y0bv0p@q04p?GhBjFO+JPHokJy4%g@x7a&qbV6&AwP8E z7L@*2B$@*LQoVla1B*lCA_mQC2TV18e#M`){EDbQ z0GrqHr^he+UgKi_eTs|D&AIbap6$yYyNAXFH$qzgt{Z=gYtjD~T+6#yTPvD40a|tj zwnqPZFHx*~D*LOM5}IO5F;=xrx}hp;17p&d=MQGoja||cDupcc@U_7Rvo3r6Y~W#4 zjp1!k7~gUSk%p_E_e14i(uslK|uQPOCYNTy*w%3LUtINNd@1@6^rrfxei zxtY|0jevWQax1jx((bRODareWTP#|3lUEjoDN{UEV9G!6k{qDwD(Vg+77j;tJNgnX zpKUg|@cp*)=ZYbQ!e|4H1`8Xo-0+Db`5E-RbChAq@Cq?nRO!G1I=IdErSA^t_srwR zX+yw5wnJs?Yivcx7!w(ywL@^JmRMwMtlp`q15`a!gH55&&YxYK_rB&uP@iD*$Hf># z(R07()nN|Gf@{K?;9L6nMitGAglSZdnS>BzQf7VP%e8f2!6e9lSfvRPC|s!0U@7pW zUw|fCd+16XMu5)(_ctih(Ie3=OkI|;;|yfD&Cks_|B%fYSA^#v?y5MW9-G$|3PU_} zbel4XIQt{LMxQQrIz9@Akn<5U8`hZEh`8iqJ_VQT4uX!DxG^dGbapzY|JzsHeM26< zB;$`7PkJK;XimC@N-RB{Y3b$GrvbKkx2+CFLiX z#|D}RjuOSQ1Nkl&guWVBvsn1oAz@d_Mui^$@<_ie8~-m|9014P!WdwrZ})$6aTF$K zK@>1}npa|AizOrL^h-rP*AlIxK&7jjyZA+C-mx;dWjyv6eN9kz|3C$AXhYG-RfW|0 zHSO|n{Be>a(c{tG6TJ4b3bF1TCbN-Em}3)FPLD8E*~jvLY@1%&|vGEly|uAs)eU_ z)MyF7R^5if5^>Lk=y6?4hHH(uI?aCW`%WcvE*vW%y2TucC5;q7-ejC!KfrM5({m$+ zwkJZqL-oqzB40wxo`Anq#l#s;vU7iwC}&UU(Pw>Sx9<<1k53)kD?e_tNK2bF$;rR# zx-=m7Mz640~asO038?(q?AHm9U95FS#zaISlY5@z`**ZJgSzG^$Z90&yrM9Mw;(t%EI2*}d zRjd-J`6Z|-%I2%;=UHGS%_Dj9(gHy`a8hGIp@aiq5gXLg#LjOiV~yT-Y!7=ueBF5a zH^ydUP6X-1Lg4OOnTc6GJYKn3=`YWlo9`dGNgm2!e9reOMG-JkI68C&saS+mL$hggO9G0C~m@~0I z+2FaEZ>T1D6;NcRep*uxA=ibm!qvx=-5PZMN)KLsV*04MpbeK&Xhn(OI!sL_$p#1^J6<7j+D7-y;*ISTR5?y(|JeXcdTYC$vm6r--dlK(I z+i+mj_a1mNuic7tlh%X(9!?`63v&+WTKz(1UJltPJr^pXM8iZ(d(lVi`9=N+Db`q? ztpRR1iKT|$)Mg;TWp$cGX>SGN1+}R^MnAj_sr?=OdoUcq7s!evnwt;G6z;kYL^ZZf z&_^LFqt&iiZbP{;tsSMZZ!1r0q%OxID;`oO-IqOWXPxNtWAt5j^O2<##$@FaL*Ybn zmIisg=)E$q&AFSJD})kiee2qo)}>1%6Hj@?$>~dIc&ug&O}&7n!e8Jh_9T!e>-UlplUrPy5>rDEE#{s*x)*!J2{!bq zn7gT6Q}N?xgQX$o8tNwDy-_)b7egZiPqkw8m8FwF>=&J6x5gW;uV2Vb9Yuvu22pZl z@+-dl+($}vZgk!k*PK_aTFKzmE_X3|7~*}UM|I)dR^Z;8+I0E$O6GM>Bs&a3yI>DZ z@%Eu-;U^az>S&Y7Eb9Wt`p!>dR`2VbiD=JUCjuqZ>);ZK0t5;r$OH>{SHzRs;FBHi zfoS?iCm88aI_qGj*GVcCyHo_J7e>96fbqD~0-F&@S4AZhhXD;2U1*5Nx+3Tln=n{W z!IJ3EOq{V9t#+(LSX$Bzkd}gN=>(co7@Wq172L04tR0#I&E=CYWOH59O7qr6B3TL9 zZlXgtEQuMGn6g=ewMOYZ`gx6`%-|iU=!Yqb?tz?`^z0udH!Yu88w9vM)PXER=?vSl zi=S;9+e3cbeSnjK<1F=W)fYuf36xe06@WuiUw_N_hhz^jTFicY%P4DT zi_u%KUGOF80h2)theVeohM=a$Wry7%kX>RN*$$yJj4i%dKZ9MUU4|OLEZi;3so!Hy z=bIQc(j_vV7;QItKV7&UB6_$~KSclMezD=9D;5QOT4c2_k^*sU63Jo4kyMFJ=^K*- zx9S zrt2=z9Tm)s0+b3i&M2N?(-LEo(b^ZM^Zl$qlktF6rB4-x1nXk1c3Qk;1V07GYgPSz zR;*yoNdTDS{fw&0z((anshByG~IwbPN~wWjT%ld*w&5Y_q`+xR^FLea;Vi zg%~{Yw(upC??L+t$cHRU=2;DvYB-*j?zAqSqjER)R<%Xxo{WvBNAeoPStCg5N1jMl z5@tedft(ntw<`Rt7^{uc2N`bZ$AuZ-UTjM3j_mG(#Jz-761Bj7I`}FrYFk4=eTJtkLPEI-g87p)%UYNX>zB9E4 zG68Iu)2z>a;YW(`>c7`dyQHSsKYd9yWbPdXs%jso>PQ1c#=!4{6~vDEVeN(~pc5BB zqkRm2nA0Jy2vc||4p@{3_BRvX=7{$QAjl;=B`ur7_?UO_D&)U`OMH*-Cw77zOqqbf zN@Rnm7$4kGLF9rs3pv?PR&ZmgVkfcCCRAYwUOdu1qpDI+Ln%{HL@6AR+0sr%iwC)F zq`rVLDQb_H+2Tz|n+xwy&LYv@A{to&ti>3mUF??t#!oH0^AU(faT#QV=MvA+;14=d zYkS{7A)rcu`t8*spZ*E*fQHwfr_zn8e_YvfEWE0GS4_)m$;HG?6cSGeFgGDKDM!;fz%61q;f!DHkUeQ#<`yO^7Oh(_JKPz8^yYG z3pJ==Y@v<+yGRHGY)RGQdL4Ju7sLHwv{~0L4|m|332`pqJPM&#n9^y1GeHdHabKDz z8O-QS&p&av4Bg>uHcC+MUqMsGH4pqj$#+$)-+@ZMvw={#RaG3s2=IBA@w2!VwP29If+XtbDgb;eT~ z!Qex({S;FHwzRmQ>X)B5i#^PUab=`&7`+RZ%yR)cF;Js^i+W|Jf=Ldpl;VJNXB?s= zw@7=1%|o(Z#@^U`K&J8}@=YkVT@d=?jsU;2a(q8)Nkw%ae!XXHA0Cm|1yiLfBuMPa%u+evctR5<6tT)I9 z6z&6dF1JOoBB!tNtTy#<4Zg^k)8o|ZLT>Jz?;x~WGMJh+rXPtB;rB-~P0>m*>Kh;i zJbvr%N&K4__`hqWVs7UX{?JH?f}6t0p#Mz)g_9Q-=Otk3%Ws-vq-!Ya+p4Q-s6j{+ zr2U`rsQ}&xN>Om2IL_Cs{&r`d_oB-AJpii;O51Y@0}}%?%|8wEh*=a3APoaoMTiW5 z6K7;$7T0_(NJJTCQsNAK?W2m`qK_0b6f|DCVC;E=N`%gf6fhn=ojgmw1G*xqBhO6`k^VVhT+LJDeoo=?=!Zhuu0%2xOO(a=9R__?vhE@cEgzGy6cccJ zSW)9S}TuumR0oo+5lOw_L% zXDyR0Wd7Uk24{wpeJRRT<|WmA7f zPUl5y1ZW>2rCt*26cYmk9UokF6h1H{MaKuk2S7olW2*c6niv`w>zn8s>3^6z<44SM z6WD>x`UBfTbokxXfH8jj?E%g|ZnOc**MG?Sd}6=a0_1(dX3^J}2?#~Z7XIIvwFO!m z!is8>#4l!XQ(P)dYEkhc$ZYfd~ocB_h~*%0ADS z4lmIQrd@P+l!CN5Kr+)7#Socer(tW|N!4~Lw;{P1S!MMlA+M&}V}F9MUU`;id6umw zK^Nrfkf6N|q~TH;cl-g+wr7S~MbTUH>!ejJ;Chg+azd$7Y)G?LO*lYN{kJCxQIdVL}ib*^*!cD@XU@0*M^%cg3 z@job5hLsft{G$=kGI{-x5 ziP0YDSQLK(PPu2e8-zF=!~GAMzB;Pa?jqoIMf~=4F#vw!e{MAVd)fbQ5Xk^;HngyJ zakRH{`iq(!5+wlLOOGOasAkh(+a7@3hBPi1iw|J^Zb2DBZKo~;XSlPYf9e(rKL#pd zqW^M#@WZDA$eIBi0az&@onL^wn%1?Ew-z7`ovClLZ!_x?Saxa%@HuM-2=5DXB5JGG zbv!p%60(`YQ{GW~3sQ?zs^S-_W?b+q!9U7Y#X?a*)KZ4_?}G}aaQ0&OKqfX|-uzMZ z8F`{qCIZHD33&c_N%*g}tbZ*De*xt0*`qjl6|g8Egqoq2n~8AaU2C`3qI;?VlVV9j zLXnoCyQ^3#p)EG`RCQ*e^ZLV^;53;=N9YL76=mAp=lYp8o!`Cg{)GD=i(k{z2@ZjU z1K7cdH+h@$a1pOftSquWvBdPSTawAMfF=f(63fBl#B)=z z6M1~(c&6fo`H_GQN++p{)K2Xoay8|xp`P4M>aKGWx+OEBHO#Su=Ch{{ad@Rirh3Qw zM-=2;LbbI4B0%@I5=WxnM8V&(MRfcG;C2O+kf{a+i@Azum+e8HiY;pAMf`|7NT84i zY&8bl-e3#TqQnaynqO!j*(l0aEuIz$&5C^n@ShJCpCSC6a5%4UaM&>zZ;=dgpwo#9 z(wJ}_3+bcL5b2_oUqq=$42fJ=O^;-a6GTd=LHia$>+qv~MjhS|?koNvF72Z>`@w}Y zk#kKF?NoT&Fat~WHs+dLXcn5^)x?$Lq%^lh2PfOiqSSbaW>|s_*j8wrSQY#BT0E;1 zbIq6_MrxIlL)K*6lGi^|(@kiY_-{XKuKXkn6*yNC(dfm~Rf3K&+?+RLqHj2|n(JFe z3ktziWGzR-IfcV@2HL^>Mzuk-VdwsiUg~8S`-XXE#rOdJD>J{)eeyv8ykulRx%tn5 z_q$T_?-BR!oD2}=|92Mxg1=Py@3RSkvq*o5>s$U##COgE_CZnkZltFFO?+OjhM2wA^P9|XUFioBc6pOxglhX5!xKK{#Lpb1bd``>8) zQ7g;+tycc!tKj?Bi1OP1DwLi7vz}1J%MXqh_)sMNZ>c~F;0xeX@P9cdfOCe&hr|bj z1fcdC>VqUm!=C*yDvvhP#a~7WRlgk-+3!d7_v!JG`%BHcSV>CBsv4+Y8m)DNiSh*$ z>=`4amS6;2=GGSNSMsMTLQYbH{ow)f!;>%P!*>h`ccjjKenWBlnpWsb4gu=BG2|Y* zM*>PDnX8zl&VElTM$$wb3u|-erl3~JQ_E!0<}mtLn`+5=iR7=8+fh#+kp^XyP1Y&` zohpn{O8hn;0T&Ie9w9+~)Po2#;|QD%fuSD-Up{ByeEMTG;IwvEEdmVd@wWpf{msCY z{<`Df&pCC8W032kM+v@6o()D54``xBVGwAI17c+bSC1$w(`PF;K?38F#Mx?QxB_`l zfE+?a3F+@^+wOET>zJy!hyP%<9ByObMx!XaMxgFQ?cUy;c)o?0doVAg%pZOl>tIwd?ALEN(I zkz|#OD0@<tYj4<-6=4^oB(0d{{9o=!;4M z{z)6VnK>7_L%!ywftzCcNRK~+=vHm0%O}dCj0;o{X5VQwn56-z@bpOCWlM9Nf6)>? zQ?7)onZF+5d21*q z+v9$Hd7baD%NJy6KntPkc*Nh~0H{{A>1h--7t6=6PjJwMp3$TnF7Tz!KuEXDQ zAO1Q2`~?v~gMSsD+3Ha4%8M>kp8Dq6;jq(diszp1o#TGZ>E}SRo+oBEV=Kyk>@5KNd?qi5= z`}u%O1&X@}Ie|x3y!W|>w<3PXlf^XYwI$OC6>l=_O+-1kLsqC6jlUAM zPQ8`xP5#SexK+DwS8Xx*{F6p6^M zVMN}Mfy@}2;WHwPmhJ`xO2pgyF`~ecJb@``#zM$~TS6pki=W5vx98NKZ*Q36bHqVH zeKeV@wmT2cE{p!GhF1eOWa+hQ?HW?}(?YOnK1+zwnGr>%!um_S)2rwkGRiHe=hHX2 zfq)sSrn=?iuxwZeA*gC=WxzHx=89N8(7YW8bh(I zcSe4-JN!bvfM^pFTkS)m?CTpwi7&W8%v!Ve9G?(41U#GI<3TY0y(%N%sGqq_N0nu9lkU&Jq&xPap2-rNq}S_qhkfOZBFl;ac!sJ zQbdNv*OwXnm1(xd-3)&;$F@UojF1AI8aniOH^5j9&n%<2W7`3rnDi)5|Q&6i{aw+P}%e-ZWHNM|pUt%;gN4>!e zKVJR>YyF~$-wzM@TR0?!6wKyz4DuRp{%Vgf&V8nM-ewZl6)kdCpc`i0Y?4adN)k)m z_c)i5H3~P1N%%~6zRBx`bj8n~Ww^uTGTad^(WvpxpXYe;-5GHrzc&ec?DPs;EO9fM zN_JGT83$2do3IF3WG#3VzJfS##d1Be6oWKd-8*&@eE1ci%TW7XdUUm2St zkB?S^u)+ru3Gh%APi8oV>a=Xw?L$Z}Q%B#v=X+XR`Ri}w-{@1%>wStQ8N(gl*GyE0 z5!XnZ%}g>y?jq5WUZy++bCX-T85hp#=^2t31!Lu$sN~g=MMZDAYqgBo zVv_yYB)PeVHB5LCU`ahq;ZM`*eCDGB(Zd$yyGwE6pp)jh4Ewb>4EtrEX&sD8F%;{b z+MW$iJ1pm5(oiD|F77oHK1ilF4Ex_E*U1nAr;-b$Ir3dUp@Q!gxJ{OjR&R0i;2KHA z#IK;Jj3<3tqf=+NJ6Yq9Lw7oznnP(XD*r+(ay@ymoBzplz+?B|lfbfi;~eCVl%|+Y z;j<*A>(U2XiHb`@sM1bXmlWe%T^h$rJV;^p&*Nq06W|u8SG<7k28w%lmRP$m7Yo8k2XXTj0I?qHO}=mVz8=Hyg|NQL)LFhayb zZHnF9h2lyj@^&YDOgwQ)beUZT?)0XTY<8Clm71ra`6-qT4J(YkN;RLhyL0;kHD2V=YBOMf1ht*78^{ne=(8(CkgS%-=AG9wmZU^j69I^)0^@*EbW;%%% z^Cu`KPttpA&||&ZuJ_#tbBN=5p9Re-gP2%$KGfqyv?N_*Y?aAS{GV&yP;S@sjR5Y$TQjz?4X#*Ot* z{j82>q~_yZJ;ZoTD{MKIsP3Z4o?c*S1@VIhif*970NtgC)FMSw@jOVSN!ur-X@5rM z9cD3UEtttIAX^g6?i;NJS{K(9X*iFUY;B%kiNFeh2XKYk$}cU`v$YGetaB+1jT#;I zTOC>V=IO^r*u)SK#o>7LikvB549b284t+u;cD9MYDcWa5BA8J8GRi(okfrO$SZu;T2p$$^*;Oj?6j6Kd4040bM{2wq^XmmU5ea~dY>Oa7k2^|t}z*SGOG?T zZM#`BT)YQQ+j5wb&`;)^=T@N%U0*ygVB9Ikq|iSaA`YSdD7|H6O={Q4)00|)H9R&^ zjyi3WHk&Y|52%SS^ajnmasYoNn+}&tINFqTnpZ%7Q&?0GW5R8ez#Ui|5yn+X=d^7q zO#Q+SGB%OwNiq`%t`}O zqCw2QzY7J#(&q=6(B9^>hpq|Z_jTq&JGZZPZnfwI9Oo$RJ-409`ou6qj}{PDr%8ZH z)Bwgl`w;r#){A;Lb1=XgJu^aJKKXln;Z0$WlV^tsFc)?m$m6qgFJB%HpD?y>Kh+r- zdvI>a<94mpn870a=W9%EAuZUm`pTQ4O3V5x&RCcjl~Rh*tfW=jTDnTZ*CqBa8F-#U zd#`&ZjkUL^Bi~7DCy;tji?x(C_fZ{NGczZyG0|(U2Oo$5Y}t0aam>pvtCqU_eI5@F z^^cg97|CK*IGWhYa%)op+GYwRIvw z71zx4((~?BsV7HiFro+$Cm$<@kksK=6`{F}K{pIbo+YbPQ!Ume_~x($a5m1de3>(; zN2c47`!*L@`$bRdEy2lIa;qhP1RNZlAzH_GtirbD+g;a$i>2Qp`7@pwLCWgN5U$nz zv}TtXcNE4ovG4RSnaOPpt21%xi zWExtyNR9EB>FNF1U!P==AR0cwK3I3(0GFbk?rE*GoSmKGc=WLL-m5ExTZ+iY?`jJ_ zR&Wd0>@l;s%zyk+uOT?h?6Gs{2-@B)dML}b)P|j6JUXUPU7@Q}^8|1%9Mk31wF>%e zBgj#6_cRW|?n+Q!p-<9>+RLZnRQynVq|6V-!!;lBp_r*b+eLXy~AFIjQMyeA+9Vq z%n>`HJ*OC1lO^f&tY9?2f;n7a$J8-&iH+JGzbmq#=%dC~BwQNkyyNo%2Gip;>M#*0 z3tp?H>!_x?BdPUfLIz?jw7vR7sIZ9f%`-7j7o_GJ2>9Fh3GB=mTlrifZ}~E}U4Q1M zSE5GbWjb~>T`5m-yK%^4X*XIdheHCmp9VO`6|;ipM+m?k-|T;6mg8_Mp^hn_NU^C( z!DoM!t%=(>Si-S%isu^dGw;z*?+034Bu^|BxG-wXU9&|E z>Y0gTnDiK)bCA*>gwDtyQ_>a=F>Fs*Bgf1IL&C2?^~M^u_3I#i=O85ys;Y+i^_gTj z�Yd%uh(nb;`Z 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¬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�tz{gWk|z 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]Qv#o@C!i&8Nb>zM^ZHyTB8* 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 GuJ*0SgX_F?m>v3{1*7;D-J9Ae#(N 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 joz#GeZHf_uV7$K0 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