diff --git a/AntennaTracker/ReleaseNotes.txt b/AntennaTracker/ReleaseNotes.txt index d0164fe728..8dc637d1a0 100644 --- a/AntennaTracker/ReleaseNotes.txt +++ b/AntennaTracker/ReleaseNotes.txt @@ -23,6 +23,74 @@ Changes from 4.5.0-beta3 ------------------------------------------------------------------ Release 4.5.5 1st Aug 2024 +No changes from 4.5.5-beta2 +------------------------------------------------------------------ +Release 4.5.6-beta1 20 Aug 2024 + +Changes from 4.5.5 + +1) Board specific enhancements and bug fixes + +- 3DR Control Zero H7 Rev G support +- CUAV-7-Nano support +- FoxeerF405v2 servo outputs increased from 9 to 11 +- Holybro Pixhawk6C hi-power peripheral overcurrent reporting fixed +- iFlight 2RAW H7 support +- MFT-SEMA100 support +- TMotorH743 support BMI270 baro +- ZeroOneX6 support + +2) Minor enhancements and bug fixes + +- Cameras using MAVLink report vendor and model name correctly +- DroneCAN fix to remove occasional NodeID registration error +- GPS NMEA and GSoF driver ground course corrected (now always 0 ~ 360 deg) +- ICP101XX barometer slowed to avoid I2C communication errors +- IMU temp cal param (INSn_ACCSCAL_Z) stored correctly when bootloader is flashed +- IMU gyro/accel duplicate id registration fixed to avoid possible pre-arm failure +- Logging to flash timestamp fix +- OSD displays ESC temp instead of motor temp +- PID controller error calculation bug fix (was using target from prev iteration) +- Relay on MAIN pins fixed +------------------------------------------------------------------ +Release 4.5.5 1st Aug 2024 + +No changes from 4.5.5-beta2 +------------------------------------------------------------------ +Release 4.5.6 03 Sep 2024 + +No changes from 4.5.6-beta1 +------------------------------------------------------------------ +Release 4.5.6-beta1 20 Aug 2024 + +Changes from 4.5.5 + +1) Board specific enhancements and bug fixes + +- 3DR Control Zero H7 Rev G support +- CUAV-7-Nano support +- FoxeerF405v2 servo outputs increased from 9 to 11 +- Holybro Pixhawk6C hi-power peripheral overcurrent reporting fixed +- iFlight 2RAW H7 support +- MFT-SEMA100 support +- TMotorH743 support BMI270 baro +- ZeroOneX6 support + +2) Minor enhancements and bug fixes + +- Cameras using MAVLink report vendor and model name correctly +- DroneCAN fix to remove occasional NodeID registration error +- GPS NMEA and GSoF driver ground course corrected (now always 0 ~ 360 deg) +- ICP101XX barometer slowed to avoid I2C communication errors +- IMU temp cal param (INSn_ACCSCAL_Z) stored correctly when bootloader is flashed +- IMU gyro/accel duplicate id registration fixed to avoid possible pre-arm failure +- Logging to flash timestamp fix +- OSD displays ESC temp instead of motor temp +- PID controller error calculation bug fix (was using target from prev iteration) +- Relay on MAIN pins fixed +------------------------------------------------------------------ +Release 4.5.5 1st Aug 2024 + No changes from 4.5.5-beta2 ------------------------------------------------------------------ Release 4.5.5-beta2 27 July 2024 @@ -165,6 +233,14 @@ No changes from 4.5.0-beta4 ------------------------------------------------------------------ Release 4.5.0 2nd April 2024 +No changes from 4.5.0-beta4 +------------------------------------------------------------------ +Release 4.5.0 2nd April 2024 + +No changes from 4.5.0-beta4 +------------------------------------------------------------------ +Release 4.5.0 2nd April 2024 + No changes from 4.5.0-beta4 ------------------------------------------------------------------ Release 4.5.0-beta4 22nd March 2024 diff --git a/AntennaTracker/version.h b/AntennaTracker/version.h index e1f741c705..962137e0d0 100644 --- a/AntennaTracker/version.h +++ b/AntennaTracker/version.h @@ -6,14 +6,14 @@ #include "ap_version.h" -#define THISFIRMWARE "AntennaTracker V4.5.5" +#define THISFIRMWARE "AntennaTracker V4.5.6" // the following line is parsed by the autotest scripts -#define FIRMWARE_VERSION 4,5,5,FIRMWARE_VERSION_TYPE_OFFICIAL +#define FIRMWARE_VERSION 4,5,6,FIRMWARE_VERSION_TYPE_OFFICIAL #define FW_MAJOR 4 #define FW_MINOR 5 -#define FW_PATCH 5 +#define FW_PATCH 6 #define FW_TYPE FIRMWARE_VERSION_TYPE_OFFICIAL #include diff --git a/ArduCopter/ReleaseNotes.txt b/ArduCopter/ReleaseNotes.txt index f42035bd3f..ed3bf0ea1a 100644 --- a/ArduCopter/ReleaseNotes.txt +++ b/ArduCopter/ReleaseNotes.txt @@ -1,4 +1,41 @@ ArduPilot Copter Release Notes: +------------------------------------------------------------------ +Release 4.5.6 03 Sep 2024 + +No changes from 4.5.6-beta1 +------------------------------------------------------------------ +Release 4.5.6-beta1 20 Aug 2024 + +Changes from 4.5.5 + +1) Board specific enhancements and bug fixes + +- 3DR Control Zero H7 Rev G support +- CUAV-7-Nano support +- FoxeerF405v2 servo outputs increased from 9 to 11 +- Holybro Pixhawk6C hi-power peripheral overcurrent reporting fixed +- iFlight 2RAW H7 support +- MFT-SEMA100 support +- TMotorH743 support BMI270 baro +- ZeroOneX6 support + +2) Minor enhancements and bug fixes + +- Cameras using MAVLink report vendor and model name correctly +- DroneCAN fix to remove occasional NodeID registration error +- GPS NMEA and GSoF driver ground course corrected (now always 0 ~ 360 deg) +- ICP101XX barometer slowed to avoid I2C communication errors +- IMU temp cal param (INSn_ACCSCAL_Z) stored correctly when bootloader is flashed +- IMU gyro/accel duplicate id registration fixed to avoid possible pre-arm failure +- Logging to flash timestamp fix +- OSD displays ESC temp instead of motor temp +- PID controller error calculation bug fix (was using target from prev iteration) +- Relay on MAIN pins fixed + +3) Copter specific fixes + +- Payload place bug fix (calimb rate after releasing payload was unreliable) + ------------------------------------------------------------------ Release 4.5.5 1st Aug 2024 diff --git a/ArduCopter/mode.h b/ArduCopter/mode.h index dd06ee0149..86eeed0b15 100644 --- a/ArduCopter/mode.h +++ b/ArduCopter/mode.h @@ -1507,6 +1507,10 @@ class ModeSmartRTL : public ModeRTL { // point while following our path home. If we take too long we // may choose to land the vehicle. uint32_t path_follow_last_pop_fail_ms; + + // backup last popped point so that it can be restored to the path + // if vehicle exits SmartRTL mode before reaching home. invalid if zero + Vector3f dest_NED_backup; }; diff --git a/ArduCopter/mode_auto.cpp b/ArduCopter/mode_auto.cpp index 6a2b336b82..f07a6c363c 100644 --- a/ArduCopter/mode_auto.cpp +++ b/ArduCopter/mode_auto.cpp @@ -1395,8 +1395,7 @@ void PayloadPlace::run() copter.flightmode->land_run_horizontal_control(); // update altitude target and call position controller pos_control->land_at_climb_rate_cm(-descent_speed_cms, true); - pos_control->update_z_controller(); - return; + break; case State::Release: case State::Releasing: case State::Delay: @@ -1404,8 +1403,7 @@ void PayloadPlace::run() copter.flightmode->land_run_horizontal_control(); // update altitude target and call position controller pos_control->land_at_climb_rate_cm(0.0, false); - pos_control->update_z_controller(); - return; + break; case State::Ascent: case State::Done: float vel = 0.0; @@ -1413,6 +1411,7 @@ void PayloadPlace::run() pos_control->input_pos_vel_accel_z(descent_start_altitude_cm, vel, 0.0); break; } + pos_control->update_z_controller(); } #endif diff --git a/ArduCopter/mode_smart_rtl.cpp b/ArduCopter/mode_smart_rtl.cpp index dacd7cc5f2..8c2b1988c3 100644 --- a/ArduCopter/mode_smart_rtl.cpp +++ b/ArduCopter/mode_smart_rtl.cpp @@ -35,6 +35,14 @@ bool ModeSmartRTL::init(bool ignore_checks) // perform cleanup required when leaving smart_rtl void ModeSmartRTL::exit() { + // restore last point if we hadn't reached it + if (smart_rtl_state == SubMode::PATH_FOLLOW && !dest_NED_backup.is_zero()) { + if (!g2.smart_rtl.add_point(dest_NED_backup)) { + GCS_SEND_TEXT(MAV_SEVERITY_ERROR, "SmartRTL: lost one point"); + } + } + dest_NED_backup.zero(); + g2.smart_rtl.cancel_request_for_thorough_cleanup(); } @@ -83,10 +91,16 @@ void ModeSmartRTL::path_follow_run() { // if we are close to current target point, switch the next point to be our target. if (wp_nav->reached_wp_destination()) { - Vector3f dest_NED; + + // clear destination backup so that it cannot be restored + dest_NED_backup.zero(); + // this pop_point can fail if the IO task currently has the // path semaphore. + Vector3f dest_NED; if (g2.smart_rtl.pop_point(dest_NED)) { + // backup destination in case we exit smart_rtl mode and need to restore it to the path + dest_NED_backup = dest_NED; path_follow_last_pop_fail_ms = 0; if (g2.smart_rtl.get_num_points() == 0) { // this is the very last point, add 2m to the target alt and move to pre-land state diff --git a/ArduCopter/version.h b/ArduCopter/version.h index 673015e188..8a12e4d835 100644 --- a/ArduCopter/version.h +++ b/ArduCopter/version.h @@ -6,14 +6,14 @@ #include "ap_version.h" -#define THISFIRMWARE "ArduCopter V4.5.5" +#define THISFIRMWARE "ArduCopter V4.5.6" // the following line is parsed by the autotest scripts -#define FIRMWARE_VERSION 4,5,5,FIRMWARE_VERSION_TYPE_OFFICIAL +#define FIRMWARE_VERSION 4,5,6,FIRMWARE_VERSION_TYPE_OFFICIAL #define FW_MAJOR 4 #define FW_MINOR 5 -#define FW_PATCH 5 +#define FW_PATCH 6 #define FW_TYPE FIRMWARE_VERSION_TYPE_OFFICIAL #include diff --git a/ArduPlane/ReleaseNotes.txt b/ArduPlane/ReleaseNotes.txt index 84674f8abc..2f2827aef8 100644 --- a/ArduPlane/ReleaseNotes.txt +++ b/ArduPlane/ReleaseNotes.txt @@ -1,5 +1,37 @@ ArduPilot Plane Release Notes: ------------------------------------------------------------------ +Release 4.5.6 03 Sep 2024 + +No changes from 4.5.6-beta1 +------------------------------------------------------------------ +Release 4.5.6-beta1 20 Aug 2024 + +Changes from 4.5.5 + +1) Board specific enhancements and bug fixes + +- 3DR Control Zero H7 Rev G support +- CUAV-7-Nano support +- FoxeerF405v2 servo outputs increased from 9 to 11 +- Holybro Pixhawk6C hi-power peripheral overcurrent reporting fixed +- iFlight 2RAW H7 support +- MFT-SEMA100 support +- TMotorH743 support BMI270 baro +- ZeroOneX6 support + +2) Minor enhancements and bug fixes + +- Cameras using MAVLink report vendor and model name correctly +- DroneCAN fix to remove occasional NodeID registration error +- GPS NMEA and GSoF driver ground course corrected (now always 0 ~ 360 deg) +- ICP101XX barometer slowed to avoid I2C communication errors +- IMU temp cal param (INSn_ACCSCAL_Z) stored correctly when bootloader is flashed +- IMU gyro/accel duplicate id registration fixed to avoid possible pre-arm failure +- Logging to flash timestamp fix +- OSD displays ESC temp instead of motor temp +- PID controller error calculation bug fix (was using target from prev iteration) +- Relay on MAIN pins fixed +------------------------------------------------------------------ Release 4.5.5 1st Aug 2024 No changes from 4.5.5-beta2 diff --git a/ArduPlane/version.h b/ArduPlane/version.h index e749abdd77..c5a10de301 100644 --- a/ArduPlane/version.h +++ b/ArduPlane/version.h @@ -6,14 +6,14 @@ #include "ap_version.h" -#define THISFIRMWARE "ArduPlane V4.5.5" +#define THISFIRMWARE "ArduPlane V4.5.6" // the following line is parsed by the autotest scripts -#define FIRMWARE_VERSION 4,5,5,FIRMWARE_VERSION_TYPE_OFFICIAL +#define FIRMWARE_VERSION 4,5,6,FIRMWARE_VERSION_TYPE_OFFICIAL #define FW_MAJOR 4 #define FW_MINOR 5 -#define FW_PATCH 5 +#define FW_PATCH 6 #define FW_TYPE FIRMWARE_VERSION_TYPE_OFFICIAL #include diff --git a/Rover/ReleaseNotes.txt b/Rover/ReleaseNotes.txt index eae250a33c..7ade5052c0 100644 --- a/Rover/ReleaseNotes.txt +++ b/Rover/ReleaseNotes.txt @@ -1,5 +1,37 @@ Rover Release Notes: ------------------------------------------------------------------ +Release 4.5.6 03 Sep 2024 + +No changes from 4.5.6-beta1 +------------------------------------------------------------------ +Release 4.5.6-beta1 20 Aug 2024 + +Changes from 4.5.5 + +1) Board specific enhancements and bug fixes + +- 3DR Control Zero H7 Rev G support +- CUAV-7-Nano support +- FoxeerF405v2 servo outputs increased from 9 to 11 +- Holybro Pixhawk6C hi-power peripheral overcurrent reporting fixed +- iFlight 2RAW H7 support +- MFT-SEMA100 support +- TMotorH743 support BMI270 baro +- ZeroOneX6 support + +2) Minor enhancements and bug fixes + +- Cameras using MAVLink report vendor and model name correctly +- DroneCAN fix to remove occasional NodeID registration error +- GPS NMEA and GSoF driver ground course corrected (now always 0 ~ 360 deg) +- ICP101XX barometer slowed to avoid I2C communication errors +- IMU temp cal param (INSn_ACCSCAL_Z) stored correctly when bootloader is flashed +- IMU gyro/accel duplicate id registration fixed to avoid possible pre-arm failure +- Logging to flash timestamp fix +- OSD displays ESC temp instead of motor temp +- PID controller error calculation bug fix (was using target from prev iteration) +- Relay on MAIN pins fixed +------------------------------------------------------------------ Release 4.5.5 1st Aug 2024 No changes from 4.5.5-beta2 diff --git a/Rover/version.h b/Rover/version.h index 490a27cf7d..b329eb2a22 100644 --- a/Rover/version.h +++ b/Rover/version.h @@ -6,14 +6,14 @@ #include "ap_version.h" -#define THISFIRMWARE "ArduRover V4.5.5" +#define THISFIRMWARE "ArduRover V4.5.6" // the following line is parsed by the autotest scripts -#define FIRMWARE_VERSION 4,5,5,FIRMWARE_VERSION_TYPE_OFFICIAL +#define FIRMWARE_VERSION 4,5,6,FIRMWARE_VERSION_TYPE_OFFICIAL #define FW_MAJOR 4 #define FW_MINOR 5 -#define FW_PATCH 5 +#define FW_PATCH 6 #define FW_TYPE FIRMWARE_VERSION_TYPE_OFFICIAL #include diff --git a/Tools/AP_Bootloader/board_types.txt b/Tools/AP_Bootloader/board_types.txt index 1348e0926e..084d5a072d 100644 --- a/Tools/AP_Bootloader/board_types.txt +++ b/Tools/AP_Bootloader/board_types.txt @@ -279,6 +279,7 @@ AP_HW_SDMODELH7V2 1167 AP_HW_JHEMCUF405WING 1169 AP_HW_MatekG474 1170 +AP_HW_2RAWH743 1173 AP_HW_ESP32_PERIPH 1205 AP_HW_ESP32S3_PERIPH 1206 @@ -303,6 +304,8 @@ AP_HW_LongbowF405 1422 AP_HW_MountainEagleH743 1444 +AP_HW_MFT-SEMA100 2000 + AP_HW_SakuraRC-H743 2714 # IDs 5000-5099 reserved for Carbonix diff --git a/Tools/ardupilotwaf/boards.py b/Tools/ardupilotwaf/boards.py index cf9458bc7b..be8cdae54a 100644 --- a/Tools/ardupilotwaf/boards.py +++ b/Tools/ardupilotwaf/boards.py @@ -432,9 +432,14 @@ def configure_env(self, cfg, env): ] if cfg.env.DEST_OS == 'darwin': - env.LINKFLAGS += [ - '-Wl,-dead_strip', - ] + if self.cc_version_gte(cfg, 15, 0): + env.LINKFLAGS += [ + '-Wl,-dead_strip,-ld_classic', + ] + else: + env.LINKFLAGS += [ + '-Wl,-dead_strip', + ] else: env.LINKFLAGS += [ '-fno-exceptions', diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index f4e140f98d..35bac4f454 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -1491,6 +1491,16 @@ def __str__(self): return ret +class ValgrindFailedResult(Result): + '''a custom Result to allow passing of Vaglrind failures around''' + def __init__(self): + super(ValgrindFailedResult, self).__init__(None) + self.passed = False + + def __str__(self): + return "Valgrind error detected" + + class TestSuite(ABC): """Base abstract class. It implements the common function for all vehicle types. @@ -3017,26 +3027,6 @@ def stop_SITL(self): util.pexpect_close(self.sitl) self.sitl = None - def close(self): - """Tidy up after running all tests.""" - - if self.mav is not None: - self.mav.close() - self.mav = None - self.stop_SITL() - - valgrind_log = util.valgrind_log_filepath(binary=self.binary, - model=self.frame) - files = glob.glob("*" + valgrind_log) - for valgrind_log in files: - os.chmod(valgrind_log, 0o644) - if os.path.getsize(valgrind_log) > 0: - target = self.buildlogs_path("%s-%s" % ( - self.log_name(), - os.path.basename(valgrind_log))) - self.progress("Valgrind log: moving %s to %s" % (valgrind_log, target)) - shutil.move(valgrind_log, target) - def start_test(self, description): self.progress("##################################################################################") self.progress("########## %s ##########" % description) @@ -11656,7 +11646,28 @@ def run_tests(self, tests) -> List[Result]: self.rc_thread_should_quit = True self.rc_thread.join() self.rc_thread = None - self.close() + + if self.mav is not None: + self.mav.close() + self.mav = None + + self.stop_SITL() + + valgrind_log = util.valgrind_log_filepath(binary=self.binary, + model=self.frame) + files = glob.glob("*" + valgrind_log) + valgrind_failed = False + for valgrind_log in files: + os.chmod(valgrind_log, 0o644) + if os.path.getsize(valgrind_log) > 0: + target = self.buildlogs_path("%s-%s" % ( + self.log_name(), + os.path.basename(valgrind_log))) + self.progress("Valgrind log: moving %s to %s" % (valgrind_log, target)) + shutil.move(valgrind_log, target) + valgrind_failed = True + if valgrind_failed: + result_list.append(ValgrindFailedResult()) return result_list diff --git a/Tools/bootloaders/3DRControlZeroG_bl.bin b/Tools/bootloaders/3DRControlZeroG_bl.bin new file mode 100644 index 0000000000..51184c0a0b Binary files /dev/null and b/Tools/bootloaders/3DRControlZeroG_bl.bin differ diff --git a/Tools/bootloaders/3DRControlZeroG_bl.hex b/Tools/bootloaders/3DRControlZeroG_bl.hex new file mode 100644 index 0000000000..ca781103d1 --- /dev/null +++ b/Tools/bootloaders/3DRControlZeroG_bl.hex @@ -0,0 +1,1212 @@ +:020000040800F2 +:1000000000060020E1020008E3020008E302000805 +:10001000E3020008E3020008E3020008E30200082C +:10002000E3020008E3020008E3020008D92E0008FA +:10003000E3020008E3020008E3020008E30200080C +:10004000E3020008E3020008E3020008E3020008FC +:10005000E3020008E3020008414400086D44000880 +:1000600099440008C5440008F14400082D11000817 +:100070005511000881110008AD110008D9110008C0 +:10008000011200082D120008E3020008E302000834 +:10009000E3020008E3020008E30200081D4500082F +:1000A000E3020008E3020008E3020008E30200089C +:1000B000E3020008E3020008E3020008E30200088C +:1000C000E3020008E3020008E3020008E30200087C +:1000D000E3020008E3020008F5450008E302000817 +:1000E00081450008E3020008E3020008E30200087B +:1000F000E3020008E3020008E302000859120008C6 +:10010000E3020008E302000809460008E3020008D1 +:10011000E3020008E3020008E3020008E30200082B +:1001200085120008AD120008D91200080513000856 +:1001300031130008E3020008E3020008E3020008AC +:10014000E3020008E3020008E3020008E3020008FB +:100150005913000885130008B1130008E3020008D2 +:10016000E3020008E3020008E3020008E3020008DB +:10017000E3020008C53A0008E3020008E3020008B1 +:10018000E3020008E3020008E3020008E3020008BB +:10019000E3020008E3020008E3020008E3020008AB +:1001A000E3020008E3020008E3020008E30200089B +:1001B000E3020008E3020008E3020008E30200088B +:1001C000E3020008E3020008E3020008E30200087B +:1001D000E3020008B13A0008E3020008E302000865 +:1001E000E3020008E3020008E3020008E30200085B +:1001F000E3020008E3020008E3020008E30200084B +:10020000E3020008E3020008E3020008E30200083A +:10021000E3020008E3020008E3020008E30200082A +:10022000E3020008E3020008E3020008E30200081A +:10023000E3020008E3020008E3020008E30200080A +:10024000E3020008E3020008E3020008E3020008FA +:10025000E3020008E3020008E3020008E3020008EA +:10026000E3020008E3020008E3020008E3020008DA +:10027000E3020008E3020008E3020008E3020008CA +:10028000E3020008E3020008E3020008E3020008BA +:10029000E3020008E3020008E3020008E3020008AA +:1002A000E3020008E3020008E3020008E30200089A +:1002B000E3020008E3020008E3020008E30200088A +:1002C000E3020008E3020008E3020008E30200087A +:1002D000E3020008E3020008E3020008E30200086A +:1002E00002E000F000F8FEE772B6374880F30888B5 +:1002F000364880F3098836483649086040F20000E5 +:10030000CCF200004EF63471CEF200010860BFF36B +:100310004F8FBFF36F8F40F20000C0F2F0004EF637 +:100320008851CEF200010860BFF34F8FBFF36F8F8B +:100330004FF00000E1EE100A4EF63C71CEF20001E3 +:100340000860062080F31488BFF36F8F02F026FE4A +:1003500003F034FE4FF055301F491B4A91423CBF19 +:1003600041F8040BFAE71D49184A91423CBF41F895 +:10037000040BFAE71A491B4A1B4B9A423EBF51F83D +:10038000040B42F8040BF8E700201849184A914280 +:100390003CBF41F8040BFAE702F03EFE03F092FE88 +:1003A000144C154DAC4203DA54F8041B8847F9E7A6 +:1003B00000F042F8114C124DAC4203DA54F8041B21 +:1003C0008847F9E702F026BE000600200022002040 +:1003D0000000000808ED00E00000002000060020FA +:1003E000304B0008002200206422002068220020F8 +:1003F00044480020E0020008E0020008E002000893 +:10040000E00200082DE9F04F2DED108AC1F80CD064 +:10041000D0F80CD0BDEC108ABDE8F08F002383F338 +:1004200011882846A047002002F0DAF8FEE702F023 +:1004300069F800DFFEE7000038B500F045FC00F089 +:1004400009FE02F009FD054602F03CFD0446C0B974 +:100450000E4B9D4217D001339D4241F2883512BFA9 +:10046000044600250124002002F000FD0CB100F03C +:1004700075F800F08DFD284600F01EF900F06EF8CA +:10048000F9E70025EFE70546EDE700BF010007B0FB +:1004900008B500F0E5FBA0F120035842584108BD23 +:1004A00007B541F21203022101A8ADF8043000F0B3 +:1004B000F5FB03B05DF804FB38B5302383F31188F6 +:1004C000174803680BB102F057F90023154A4FF49F +:1004D0007A71134802F046F9002383F31188124C15 +:1004E000236813B12368013B2360636813B1636819 +:1004F000013B63600D4D2B7833B963687BB90220F3 +:1005000000F0A8FC322363602B78032B07D16368CB +:100510002BB9022000F09EFC4FF47A73636038BD63 +:1005200068220020B90400088823002080220020CF +:10053000084B187003280CD8DFE800F00805020803 +:10054000022000F079BC022000F066BC024B0022C1 +:100550005A6070478022002088230020F8B5504B55 +:10056000504A1C461968013100F0998004339342C7 +:10057000F8D162684C4B9A4240F291804B4B9B6899 +:1005800003F1006303F500339A4280F08880002075 +:1005900000F0B4FB0220FFF7CBFF454B0021D3F85E +:1005A000E820C3F8E810D3F81021C3F81011D3F8ED +:1005B0001021D3F8EC20C3F8EC10D3F81421C3F8C1 +:1005C0001411D3F81421D3F8F020C3F8F010D3F8A5 +:1005D0001821C3F81811D3F81821D3F8802042F05D +:1005E0000062C3F88020D3F8802022F00062C3F8B4 +:1005F0008020D3F88020D3F8802042F00072C3F826 +:100600008020D3F8802022F00072C3F88020D3F835 +:10061000803072B64FF0E023C3F8084DD4E90004EF +:10062000BFF34F8FBFF36F8F224AC2F88410BFF31E +:100630004F8F536923F480335361BFF34F8FD2F848 +:10064000803043F6E076C3F3C905C3F34E335B0154 +:1006500003EA060C29464CEA81770139C2F8747224 +:10066000F9D2203B13F1200FF2D1BFF34F8FBFF32C +:100670006F8FBFF34F8FBFF36F8F536923F4003336 +:1006800053610023C2F85032BFF34F8FBFF36F8F17 +:10069000302383F31188854680F308882047F8BD0E +:1006A0000000020820000208FFFF010800220020CD +:1006B0000044025800ED00E02DE9F04F93B0B44B38 +:1006C0002022FF2100900AA89D6800F00BFCB14A8F +:1006D0001378A3B90121B04811700360302383F36C +:1006E000118803680BB102F047F80023AB4A4FF4BE +:1006F0007A71A94802F036F8002383F31188009B31 +:1007000013B1A74B009A1A60A64A1378032B03D0A3 +:1007100000231370A24A53604FF0000A009CD34696 +:100720005646D146012000F087FB24B19C4B1B6844 +:10073000002B00F02682002000F092FA0390039B29 +:10074000002BF2DB012000F067FB039B213B1F2BFA +:10075000E8D801A252F823F0D907000801080008E0 +:100760009508000825070008250700082507000848 +:1007700027090008F70A0008110A0008730A000890 +:100780009B0A0008C10A000825070008D30A0008D0 +:1007900025070008450B0008790800082507000810 +:1007A000890B0008E50700087908000825070008FC +:1007B000730A000825070008250700082507000818 +:1007C0002507000825070008250700082507000859 +:1007D00025070008950800080220FFF759FE0028A9 +:1007E00040F0F981009B022105A8BAF1000F08BF73 +:1007F0001C4641F21233ADF8143000F04FFA91E785 +:100800004FF47A7000F02CFA071EEBDB0220FFF7A2 +:100810003FFE0028E6D0013F052F00F2DE81DFE831 +:1008200007F0030A0D1013360523042105A80593CC +:1008300000F034FA17E004215548F9E704215A483A +:10084000F6E704215948F3E74FF01C08404608F149 +:10085000040800F055FA0421059005A800F01EFADE +:10086000B8F12C0FF2D101204FF0000900FA07F780 +:1008700047EA0B0B5FFA8BFB00F080FB26B10BF015 +:100880000B030B2B08BF0024FFF70AFE4AE70421E5 +:100890004748CDE7002EA5D00BF00B030B2BA1D1C1 +:1008A0000220FFF7F5FD074600289BD00120002617 +:1008B00000F024FA0220FFF73BFE1FFA86F84046BC +:1008C00000F02CFA0446B0B1039940460136A1F17C +:1008D00040025142514100F031FA0028EDD1BA46B0 +:1008E000044641F21213022105A83E46ADF8143029 +:1008F00000F0D4F916E725460120FFF719FE244B36 +:100900009B68AB4207D9284600F0FAF9013040F065 +:1009100067810435F3E70025224BBA463E461D7039 +:100920001F4B5D60A8E7002E3FF45CAF0BF00B039C +:100930000B2B7FF457AF0220FFF7FAFD322000F0B7 +:100940008FF9B0F10008FFF64DAF18F003077FF400 +:1009500049AF0F4A08EB0503926893423FF642AF56 +:10096000B8F5807F3FF73EAF124BB845019323DDCA +:100970004FF47A7000F074F90390039A002AFFF69E +:1009800031AF039A0137019B03F8012BEDE700BF5C +:10099000002200208423002068220020B9040008DF +:1009A000882300208022002004220020082200202A +:1009B0000C22002084220020C820FFF769FD074692 +:1009C00000283FF40FAF1F2D11D8C5F120020AAB4C +:1009D00025F0030084494245184428BF424601924D +:1009E00000F05AFA019AFF217F4800F07BFA4FEAA3 +:1009F000A803C8F387027C492846019300F07AFADD +:100A0000064600283FF46DAF019B05EB830533E7F5 +:100A10000220FFF73DFD00283FF4E4AE00F0ACF902 +:100A200000283FF4DFAE0027B846704B9B68BB42FE +:100A300018D91F2F11D80A9B01330ED027F00303BA +:100A400012AA134453F8203C05934046042205A9FA +:100A5000043700F055FB8046E7E7384600F050F9D0 +:100A60000590F2E7CDF81480042105A800F016F9EE +:100A700002E70023642104A8049300F005F900288C +:100A80007FF4B0AE0220FFF703FD00283FF4AAAECA +:100A9000049800F067F90590E6E70023642104A8B4 +:100AA000049300F0F1F800287FF49CAE0220FFF7D9 +:100AB000EFFC00283FF496AE049800F055F9EAE701 +:100AC0000220FFF7E5FC00283FF48CAE00F064F94B +:100AD000E1E70220FFF7DCFC00283FF483AE05A924 +:100AE000142000F05FF907460421049004A800F0E8 +:100AF000D5F83946B9E7322000F0B2F8071EFFF604 +:100B000071AEBB077FF46EAE384A07EB09039268FB +:100B100093423FF667AE0220FFF7BAFC00283FF48D +:100B200061AE27F003074F44B9453FF4A5AE4846F0 +:100B300009F1040900F0E4F80421059005A800F08B +:100B4000ADF8F1E74FF47A70FFF7A2FC00283FF40C +:100B500049AE00F011F9002844D00A9B01330BD0B4 +:100B600008220AA9002000F0C5F900283AD0202266 +:100B7000FF210AA800F0B6F9FFF792FC1C4801F02B +:100B800035FD13B0BDE8F08F002E3FF42BAE0BF017 +:100B90000B030B2B7FF426AE0023642105A80593DD +:100BA00000F072F8074600287FF41CAE0220FFF721 +:100BB0006FFC804600283FF415AEFFF771FC41F250 +:100BC000883001F013FD059800F022FA46463C46B5 +:100BD00000F0D4F9A6E506464EE64FF0000901E61E +:100BE000BA467EE637467CE68422002000220020BA +:100BF000A08601002DE9F84F4FF47A7306460D46A2 +:100C0000002402FB03F7DFF85080DFF8509098F9DA +:100C100000305FFA84FA5A1C01D0A34212D159F86D +:100C200024002A4631460368D3F820B03B46D84713 +:100C3000854207D1074B012083F800A0BDE8F88F5B +:100C40000124E4E7002CFBD04FF4FA7001F0CEFC55 +:100C50000020F3E7D42300201022002014220020DB +:100C6000002307B5024601210DF107008DF807307A +:100C7000FFF7C0FF20B19DF8070003B05DF804FB4B +:100C80004FF0FF30F9E700000A46042108B5FFF7EE +:100C9000B1FF80F00100C0B2404208BD074B0A46D8 +:100CA00030B41978064B53F821400146236820469A +:100CB000DD69044BAC4630BC604700BFD423002044 +:100CC00014220020A086010070B50A4E00240A4DAF +:100CD00001F0AAFF308028683388834208D901F0E8 +:100CE0009FFF2B6804440133B4F5003F2B60F2D31F +:100CF00070BD00BFD62300209023002002F062B810 +:100D000000F1006000F500300068704700F10060FD +:100D1000920000F5003001F0E3BF0000054B1A68B7 +:100D2000054B1B889B1A834202D9104401F078BFFF +:100D30000020704790230020D623002038B50446B9 +:100D4000074D29B128682044BDE8384001F080BF34 +:100D50002868204401F06AFF0028F3D038BD00BFA6 +:100D6000902300200020704700F1FF5000F58F1005 +:100D7000D0F8000870470000064991F8243033B1DC +:100D800000230822086A81F82430FFF7BFBF012042 +:100D9000704700BF94230020014B1868704700BFC4 +:100DA0000010005C194B01380322084470B51D681F +:100DB000174BC5F30B042D0C1E88A6420BD15C68A3 +:100DC0000A46013C824213460FD214F9016F4EB11C +:100DD00002F8016BF6E7013A03F10803ECD1814216 +:100DE0000B4602D22C2203F8012B0424094A168850 +:100DF000AE4204D1984284BF967803F8016B013C5F +:100E000002F10402F3D1581A70BD00BF0010005C5B +:100E10001C2200200C470008022804D1054B4FF08B +:100E200000629A6170470128FCD1024B4FF40032F6 +:100E3000F7E700BF00040258022804D1044B4FF426 +:100E400000629A6170470128FCD1014B0222F8E749 +:100E500000040258022805D1064A536983F400634E +:100E6000536170470128FCD1024A536983F00203A1 +:100E7000F6E700BF0004025870B504464FF47A76D6 +:100E80004CB1412C254628BF412506FB05F0641BCB +:100E900001F0ACFBF4E770BD002310B5934203D022 +:100EA000CC5CC4540133F9E710BD0000013810B523 +:100EB00010F9013F3BB191F900409C4203D11AB1B6 +:100EC0000131013AF4E71AB191F90020981A10BDE6 +:100ED0001046FCE703460246D01A12F9011B00290E +:100EE000FAD1704702440346934202D003F8011B33 +:100EF000FAE770472DE9F8431F4D14460746884628 +:100F000095F8242052BBDFF870909CB395F82430FC +:100F10002BB92022FF2148462F62FFF7E3FF95F807 +:100F200024004146C0F1080205EB8000A24228BF20 +:100F30002246D6B29200FFF7AFFF95F82430A41BEB +:100F400017441E449044E4B2F6B2082E85F824609B +:100F5000DBD1FFF711FF0028D7D108E02B6A03EBA4 +:100F600082038342CFD0FFF707FF0028CBD10020B8 +:100F7000BDE8F8830120FBE794230020024B1A7898 +:100F8000024B1A70704700BFD423002010220020AB +:100F900038B51A4C1A4D204600F07CFE29462046F2 +:100FA00000F0A4FE2D684FF47A70D5F89020D2F8A6 +:100FB000043843F00203C2F80438FFF75DFF11491B +:100FC000284600F0A1FFD5F890200F4DD2F8043844 +:100FD000286823F002030D49A042C2F804384FF4F8 +:100FE000E1330B6001D000F0B3FD6868A04204D08B +:100FF0000649BDE8384000F0ABBD38BD382B0020B5 +:10100000004900080849000814220020BC230020E1 +:101010000C4B70B50C4D04461E780C4B55F8262031 +:101020009A420DD00A4B002118221846FFF75AFFAA +:101030000460014655F82600BDE8704000F088BD08 +:1010400070BD00BFD423002014220020382B0020C4 +:10105000BC230020F0B5A1B071B60023012000240C +:1010600080261A46194600F04BFA4FF4D067214A01 +:101070003D25136923BBD2F810310BBB036804F183 +:10108000006199600368C3F80CD003685E60036870 +:101090001F6001680B6843F001030B6001680B6877 +:1010A00023F01E030B6001680B68DB07FCD4037B95 +:1010B0008034416805FA03F3B4F5001F0B60D8D102 +:1010C00000F05EFAB4F5001F11D000240A4E0B4D5B +:1010D000012001F077FE3388A34205D92868204417 +:1010E000013401F0B5FDF6E7002001F06BFE61B6BA +:1010F00021B0F0BD00200052D62300209023002014 +:1011000030B50A44084D91420DD011F8013B5840CA +:10111000082340F30004013B2C4013F0FF0384EA52 +:101120005000F6D1EFE730BD2083B8ED08B5074B8E +:10113000074A196801F03D01996053680BB1906846 +:101140009847BDE8084001F0FFBE00BF0000024024 +:10115000D823002008B5084B1968890901F03D0122 +:101160008A019A60054AD3680BB110699847BDE8B7 +:10117000084001F0E9BE00BF00000240D823002073 +:1011800008B5084B1968090C01F03D010A049A6082 +:10119000054A53690BB190699847BDE8084001F0D2 +:1011A000D3BE00BF00000240D823002008B5084B82 +:1011B0001968890D01F03D018A059A60054AD369D5 +:1011C0000BB1106A9847BDE8084001F0BDBE00BFF2 +:1011D00000000240D823002008B5074B074A596891 +:1011E00001F03D01D960536A0BB1906A9847BDE8A0 +:1011F000084001F0A9BE00BF00000240D823002033 +:1012000008B5084B5968890901F03D018A01DA6087 +:10121000054AD36A0BB1106B9847BDE8084001F04E +:1012200093BE00BF00000240D823002008B5084B41 +:101230005968090C01F03D010A04DA60054A536B54 +:101240000BB1906B9847BDE8084001F07DBE00BF30 +:1012500000000240D823002008B5084B5968890DCA +:1012600001F03D018A05DA60054AD36B0BB1106CC1 +:101270009847BDE8084001F067BE00BF000002408B +:10128000D823002008B5074B074A196801F03D0133 +:101290009960536C0BB1906C9847BDE8084001F021 +:1012A00053BE00BF00040240D823002008B5084BFD +:1012B0001968890901F03D018A019A60054AD36CD9 +:1012C0000BB1106D9847BDE8084001F03DBE00BF6E +:1012D00000040240D823002008B5084B1968090C07 +:1012E00001F03D010A049A60054A536D0BB1906DFF +:1012F0009847BDE8084001F027BE00BF0004024047 +:10130000D823002008B5084B1968890D01F03D016C +:101310008A059A60054AD36D0BB1106E9847BDE8F7 +:10132000084001F011BE00BF00040240D823002095 +:1013300008B5074B074A596801F03D01D960536E63 +:101340000BB1906E9847BDE8084001F0FDBD00BFAD +:1013500000040240D823002008B5084B59688909C9 +:1013600001F03D018A01DA60054AD36E0BB1106FBE +:101370009847BDE8084001F0E7BD00BF0004024007 +:10138000D823002008B5084B5968090C01F03D012D +:101390000A04DA60054A536F0BB1906F9847BDE8B5 +:1013A000084001F0D1BD00BF00040240D823002056 +:1013B00008B5084B5968890D01F03D018A05DA60CE +:1013C000054AD36F13B1D2F880009847BDE80840B2 +:1013D00001F0BABD00040240D823002000230C49CC +:1013E00010B51A460B4C0B6054F82300026001EB59 +:1013F000430004334260402BF6D1074A4FF0FF33DD +:101400009360D360C2F80834C2F80C3410BD00BF3A +:10141000D82300201C470008000002400F28F8B520 +:1014200010D9102810D0112811D0122808D10F245B +:101430000720DFF8C8E00126DEF80050A04208D9F6 +:10144000002653E00446F4E70F240020F1E70724C8 +:10145000FBE706FA00F73D424AD1264C4FEA001C52 +:101460003D4304EB00160EEBC000CEF80050C0E97F +:101470000123FBB273B12048D0F8D83043F0010308 +:10148000C0F8D830D0F8003143F00103C0F8003183 +:10149000D0F8003117F47F4F0ED01748D0F8D8306D +:1014A00043F00203C0F8D830D0F8003143F0020313 +:1014B000C0F80031D0F8003154F80C00036823F074 +:1014C0001F030360056815F00105FBD104EB0C0355 +:1014D0003D2493F80CC05F6804FA0CF43C602124AE +:1014E0000560446112B1987B00F066F93046F8BDA2 +:1014F0000130A3E71C47000800440258D82300200D +:1015000010B5302484F31188FFF788FF002383F39C +:10151000118810BD10B50446807B00F063F90123EB +:101520001549627B03FA02F20B6823EA0203DAB27E +:101530000B6072B9114AD2F8D81021F00101C2F83B +:10154000D810D2F8001121F00101C2F80011D2F830 +:10155000002113F47F4F0ED1084BD3F8D82022F08E +:101560000202C3F8D820D3F8002122F00202C3F807 +:101570000021D3F8003110BDD823002000440258C8 +:1015800008B5302383F31188FFF7C4FF002383F3EA +:10159000118808BD026843681143016003B1184710 +:1015A00070470000024A136843F0C003136070479D +:1015B0000044004013B50E4C204600F0BDFA04F183 +:1015C000140000234FF400720A49009400F07AF9E5 +:1015D000094B4FF40072094904F13800009400F0FF +:1015E000F3F9074A074BC4E9172302B010BD00BF47 +:1015F0005C240020C8240020A5150008C82600206F +:101600000044004000E1F505037C30B5244C00297E +:1016100018BF0C46012B11D1224B98420ED1224B00 +:10162000D3F8E82042F40032C3F8E820D3F81021C0 +:1016300042F40032C3F81021D3F810312268036E4F +:10164000C16D03EB52038466B3FBF2F362681504C9 +:1016500042BF23F0070503F0070343EA4503CB60CD +:10166000A36843F040034B60E36843F001038B60E1 +:1016700042F4967343F001030B604FF0FF330B62AB +:10168000510505D512F0102205D0B2F1805F04D0CB +:1016900080F8643030BD7F23FAE73F23F8E700BFCE +:1016A0001C4800085C240020004402582DE9F04743 +:1016B000C66D05463768F469210734621AD014F004 +:1016C000080118BF4FF48071E20748BF41F02001C4 +:1016D000A3074FF0300348BF41F04001600748BF07 +:1016E00041F0800183F31188281DFFF753FF002389 +:1016F00083F31188E2050AD5302383F311884FF470 +:101700008061281DFFF746FF002383F311884FF007 +:1017100030094FF0000A14F0200838D13B0616D5E6 +:101720004FF0300905F1380A200610D589F31188E9 +:10173000504600F07DF9002836DA0821281DFFF711 +:1017400029FF27F080033360002383F31188790693 +:1017500014D5620612D5302383F31188D5E91323FB +:101760009A4208D12B6C33B127F040071021281D75 +:10177000FFF710FF3760002383F31188E30618D5C5 +:10178000AA6E1369ABB15069BDE8F047184789F3F9 +:101790001188736A284695F86410194000F0E6F93C +:1017A0008AF31188F469B6E7B06288F31188F469A6 +:1017B000BAE7BDE8F0870000090100F160430122AB +:1017C00003F56143C9B283F8001300F01F039A4088 +:1017D00043099B0003F1604303F56143C3F8802193 +:1017E0001A60704700F01F0301229A40430900F17C +:1017F00060409B0000F5614003F1604303F56143E5 +:10180000C3F88020C3F88021002380F8003370479C +:10181000F8B51546826804460B46AA4200D2856890 +:10182000A1692669761AB5420BD218462A46FFF7F7 +:1018300033FBA3692B44A3612846A3685B1BA36009 +:10184000F8BD0CD9AF1B18463246FFF725FB3A46C8 +:10185000E1683044FFF720FBE3683B44EBE71846C0 +:101860002A46FFF719FBE368E5E700008368934227 +:10187000F7B50446154600D28568D4E90460361AE7 +:10188000B5420BD22A46FFF707FB63692B4463611D +:101890002846A3685B1BA36003B0F0BD0DD9324698 +:1018A000AF1B0191FFF7F8FA01993A46E06831441D +:1018B000FFF7F2FAE3683B44E9E72A46FFF7ECFA60 +:1018C000E368E4E710B50A440024C361029B846026 +:1018D000C16002610362C0E90000C0E9051110BDEA +:1018E00008B5D0E90532934201D1826882B9826895 +:1018F000013282605A1C426119700021D0E9043221 +:101900009A4224BFC368436100F08CFE002008BDEA +:101910004FF0FF30FBE7000070B5302304460E4661 +:1019200083F31188A568A5B1A368A269013BA360F0 +:10193000531CA36115782269934224BFE368A36115 +:10194000E3690BB120469847002383F311882846AA +:1019500007E03146204600F055FE0028E2DA85F324 +:10196000118870BD2DE9F74F04460E46174698467C +:10197000D0F81C904FF0300A8AF311884FF0000B1A +:10198000154665B12A4631462046FFF741FF03461A +:1019900060B94146204600F035FE0028F1D0002312 +:1019A00083F31188781B03B0BDE8F08FB9F1000F05 +:1019B00003D001902046C847019B8BF31188ED1A94 +:1019C0001E448AF31188DCE7C160C361009B82601A +:1019D0000362C0E905111144C0E9000001617047CC +:1019E000F8B504460D461646302383F31188A768E0 +:1019F000A7B1A368013BA36063695A1C62611D70B3 +:101A0000D4E904329A4224BFE3686361E3690BB10D +:101A100020469847002080F3118807E03146204691 +:101A200000F0F0FD0028E2DA87F31188F8BD00002D +:101A3000D0E9052310B59A4201D182687AB982684B +:101A40000021013282605A1C82611C7803699A422B +:101A500024BFC368836100F0E5FD204610BD4FF050 +:101A6000FF30FBE72DE9F74F04460E461746984630 +:101A7000D0F81C904FF0300A8AF311884FF0000B19 +:101A8000154665B12A4631462046FFF7EFFE03466C +:101A900060B94146204600F0B5FD0028F1D0002392 +:101AA00083F31188781B03B0BDE8F08FB9F1000F04 +:101AB00003D001902046C847019B8BF31188ED1A93 +:101AC0001E448AF31188DCE7026843681143016011 +:101AD00003B11847704700001430FFF743BF000000 +:101AE0004FF0FF331430FFF73DBF00003830FFF7F1 +:101AF000B9BF00004FF0FF333830FFF7B3BF00002D +:101B00001430FFF709BF00004FF0FF311430FFF72A +:101B100003BF00003830FFF763BF00004FF0FF3213 +:101B20003830FFF75DBF0000012914BF6FF01300CC +:101B300000207047FFF73EBD044B03600023436065 +:101B4000C0E9023301230374704700BF3448000822 +:101B500010B53023044683F31188FFF755FD0223A7 +:101B60000020237480F3118810BD000038B5C369CC +:101B700004460D461BB904210844FFF7A5FF29467A +:101B800004F11400FFF7ACFE002806DA201D4FF424 +:101B90000061BDE83840FFF797BF38BD0268436871 +:101BA0001143016003B118477047000013B5406B43 +:101BB00000F58054D4F8A4381A681178042914D197 +:101BC000017C022911D11979012312898B4013421A +:101BD0000BD101A94C3002F0A7F8D4F8A448024672 +:101BE000019B2179206800F0DFF902B010BD0000F0 +:101BF000143002F029B800004FF0FF33143002F027 +:101C000023B800004C3002F0FBB800004FF0FF3367 +:101C10004C3002F0F5B80000143001F0F7BF0000BE +:101C20004FF0FF31143001F0F1BF00004C3002F0F2 +:101C3000C7B800004FF0FF324C3002F0C1B80000CE +:101C40000020704710B500F58054D4F8A4381A6805 +:101C50001178042917D1017C022914D15979012363 +:101C600052898B4013420ED1143001F089FF024695 +:101C700048B1D4F8A4484FF4407361792068BDE8B6 +:101C8000104000F07FB910BD406BFFF7DBBF0000D4 +:101C9000704700007FB5124B0125042604460360FF +:101CA0000023057400F1840243602946C0E9023331 +:101CB0000C4B0290143001934FF44073009601F0E6 +:101CC0003BFF094B04F69442294604F14C00029470 +:101CD000CDE900634FF4407302F002F804B070BD28 +:101CE0005C480008891C0008AD1B00080A68302306 +:101CF00083F311880B790B3342F823004B791333AC +:101D000042F823008B7913B10B3342F8230000F51E +:101D10008053C3F8A41802230374002080F31188B1 +:101D20007047000038B5037F044613B190F8543073 +:101D3000ABB90125201D0221FFF730FF04F114008B +:101D40006FF00101257700F079FC04F14C0084F874 +:101D500054506FF00101BDE8384000F06FBC38BD51 +:101D600010B5012104460430FFF718FF0023237744 +:101D700084F8543010BD000038B5044600251430F6 +:101D800001F0F2FE04F14C00257701F0C1FF201DA7 +:101D900084F854500121FFF701FF2046BDE8384088 +:101DA000FFF750BF90F8803003F06003202B06D17E +:101DB00090F881200023212A03D81F2A06D800206A +:101DC0007047222AFBD1C0E91D3303E0034A426772 +:101DD00007228267C3670120704700BF34220020BA +:101DE00037B500F58055D5F8A4381A68117804295C +:101DF0001AD1017C022917D11979012312898B404C +:101E0000134211D100F14C04204602F041F858B1C0 +:101E100001A9204601F088FFD5F8A4480246019B9D +:101E20002179206800F0C0F803B030BD01F10B0348 +:101E3000F0B550F8236085B004460D46FEB130235E +:101E400083F3118804EB8507301D0821FFF7A6FEF8 +:101E5000FB6806F14C005B691B681BB1019001F047 +:101E600071FF019803A901F05FFF024648B1039B8F +:101E70002946204600F098F8002383F3118805B026 +:101E8000F0BDFB685A691268002AF5D01B8A013B35 +:101E90001340F1D104F18002EAE70000133138B5B4 +:101EA00050F82140ECB1302383F3118804F58053BE +:101EB000D3F8A4281368527903EB8203DB689B698B +:101EC0005D6845B104216018FFF768FE294604F1FA +:101ED000140001F05FFE2046FFF7B4FE002383F3F9 +:101EE000118838BD7047000001F02CB90123402251 +:101EF000002110B5044600F8303BFEF7F3FF002345 +:101F0000C4E9013310BD000010B53023044683F34B +:101F100011882422416000210C30FEF7E3FF2046A7 +:101F200001F032F902230020237080F3118810BDE4 +:101F300070B500EB8103054650690E461446DA6021 +:101F400018B110220021FEF7CDFFA06918B11022B0 +:101F50000021FEF7C7FF31462846BDE8704001F07A +:101F600019BA000083682022002103F0011310B584 +:101F7000044683601030FEF7B5FF2046BDE81040F0 +:101F800001F094BAF0B4012500EB810447898D403B +:101F9000E4683D43A469458123600023A260636037 +:101FA000F0BC01F0B1BA0000F0B4012500EB8104EF +:101FB00007898D40E4683D436469058123600023FF +:101FC000A2606360F0BC01F027BB000070B5022383 +:101FD00000250446242203702946C0F888500C309E +:101FE00040F8045CFEF77EFF204684F8705001F054 +:101FF00065F963681B6823B129462046BDE8704037 +:10200000184770BD0378052B10B504460AD080F838 +:102010008C300523037043681B680BB1042198477B +:102020000023A36010BD00000178052906D190F8B7 +:102030008C20436802701B6803B11847704700008A +:1020400070B590F87030044613B1002380F87030FA +:1020500004F18002204601F04DFA63689B68B3B931 +:1020600094F8803013F0600535D00021204601F04F +:102070003FFD0021204601F02FFD63681B6813B16E +:10208000062120469847062384F8703070BD20460C +:1020900098470028E4D0B4F88630A26F9A4288BFEF +:1020A000A36794F98030A56F002B4FF0300380F2C6 +:1020B0000381002D00F0F280092284F8702083F360 +:1020C000118800212046D4E91D23FFF76DFF00236E +:1020D00083F31188DAE794F8812003F07F0343EA61 +:1020E000022340F20232934200F0C58021D8B3F5BA +:1020F000807F48D00DD8012B3FD0022B00F0938079 +:10210000002BB2D104F1880262670222A267E36762 +:10211000C1E7B3F5817F00F09B80B3F5407FA4D188 +:1021200094F88230012BA0D1B4F8883043F0020338 +:1021300032E0B3F5006F4DD017D8B3F5A06F31D0B2 +:10214000A3F5C063012B90D86368204694F88220E1 +:102150005E6894F88310B4F88430B047002884D0C7 +:10216000436863670368A3671AE0B3F5106F36D05E +:1021700040F6024293427FF478AF5C4B63670223E0 +:10218000A3670023C3E794F88230012B7FF46DAF7F +:10219000B4F8883023F00203A4F88830C4E91D5550 +:1021A000E56778E7B4F88030B3F5A06F0ED194F806 +:1021B0008230204684F88A3001F0DEF863681B68BC +:1021C00013B1012120469847032323700023C4E95B +:1021D0001D339CE704F18B0363670123C3E7237876 +:1021E000042B10D1302383F311882046FFF7BAFE69 +:1021F00085F311880321636884F88B5021701B6874 +:102200000BB12046984794F88230002BDED084F83A +:102210008B300423237063681B68002BD6D0022107 +:1022200020469847D2E794F8843020461D0603F0F4 +:102230000F010AD501F050F9012804D002287FF4DB +:1022400014AF2B4B9AE72B4B98E701F037F9F3E7E4 +:1022500094F88230002B7FF408AF94F8843013F0A8 +:102260000F01B3D01A06204602D501F059FCADE7A4 +:1022700001F04AFCAAE794F88230002B7FF4F5AE17 +:1022800094F8843013F00F01A0D01B06204602D52D +:1022900001F02EFC9AE701F01FFC97E7142284F866 +:1022A000702083F311882B462A4629462046FFF7E3 +:1022B00069FE85F31188E9E65DB1152284F8702086 +:1022C00083F3118800212046D4E91D23FFF75AFE2D +:1022D000FDE60B2284F8702083F311882B462A46F2 +:1022E00029462046FFF760FEE3E700BF8C48000860 +:1022F000844800088848000838B590F870300446D3 +:10230000002B3ED0063BDAB20F2A34D80F2B32D83E +:10231000DFE803F0373131082232313131313131E8 +:1023200031313737856FB0F886309D4214D2C3689B +:102330001B8AB5FBF3F203FB12556DB9302383F30F +:1023400011882B462A462946FFF72EFE85F3118871 +:102350000A2384F870300EE0142384F870303023A0 +:1023600083F31188002320461A461946FFF70AFE18 +:10237000002383F3118838BDC36F03B1984700234E +:10238000E7E70021204601F0B3FB0021204601F0E1 +:10239000A3FB63681B6813B10621204698470623F8 +:1023A000D7E7000010B590F870300446142B29D000 +:1023B00017D8062B05D001D81BB110BD093B022B45 +:1023C000FBD80021204601F093FB0021204601F0BC +:1023D00083FB63681B6813B10621204698470623D8 +:1023E00019E0152BE9D10B2380F87030302383F3EB +:1023F000118800231A461946FFF7D6FD002383F300 +:102400001188DAE7C3689B695B68002BD5D1C36F7D +:1024100003B19847002384F87030CEE70023826828 +:10242000037503691B6899689142FBD25A6803607F +:10243000426010605860704700238268037503692A +:102440001B6899689142FBD85A680360426010602B +:102450005860704708B50846302383F311880B7D18 +:10246000032B05D0042B0DD02BB983F3118808BDA5 +:102470008B6900221A604FF0FF338361FFF7CEFFB4 +:102480000023F2E7D1E9003213605A60F3E700005D +:10249000FFF7C4BF054BD968087518680268536018 +:1024A0001A600122D8600275FDF7ACBFC828002071 +:1024B0000C4B30B5DD684B1C87B004460FD02B4663 +:1024C000094A684600F04EF92046FFF7E3FF009BFB +:1024D00013B1684600F050F9A86907B030BDFFF7A6 +:1024E000D9FFF9E7C828002055240008044B1A68D2 +:1024F000DB6890689B68984294BF00200120704779 +:10250000C8280020084B10B51C68D86822685360A2 +:102510001A600122DC602275FFF78EFF014620461B +:10252000BDE81040FDF76EBFC828002038B5074C45 +:1025300001230025064907482370656001F0E6FC89 +:102540000223237085F3118838BD00BF302B002093 +:1025500094480008C828002000F044B9034A516894 +:1025600053685B1A9842FBD8704700BF001000E028 +:102570008B600223086108468B8270478368A3F151 +:10258000840243F8142C026943F8442C426943F84E +:10259000402C094A43F8242CC268A3F1200043F8D8 +:1025A000182C022203F80C2C002203F80B2C034AEF +:1025B00043F8102C704700BF1D040008C8280020F5 +:1025C00008B5FFF7DBFFBDE80840FFF761BF00007B +:1025D000024BDB6898610F20FFF75CBFC828002022 +:1025E000302383F31188FFF7F3BF000008B50146DD +:1025F000302383F311880820FFF75AFF002383F369 +:10260000118808BD064BDB6839B1426818605A6012 +:10261000136043600420FFF74BBF4FF0FF3070475B +:10262000C82800200368984206D01A6802605060EB +:1026300018469961FFF72CBF7047000038B5044673 +:102640000D462068844200D138BD036823605C6079 +:102650008561FFF71DFFF4E7036810B59C68A2428F +:102660000CD85C688A600B604C6021605960996886 +:102670008A1A9A604FF0FF33836010BD121B1B68EB +:10268000ECE700000A2938BF0A2170B504460D4660 +:102690000A26601901F032FC01F01AFC041BA54265 +:1026A00003D8751C04462E46F3E70A2E04D90120F0 +:1026B000BDE8704001F06ABC70BD0000F8B5144B75 +:1026C0000D460A2A4FF00A07D96103F11001826012 +:1026D00038BF0A22416019691446016048601861D8 +:1026E000A81801F0FBFB01F0F3FB431B0646A342D5 +:1026F00006D37C1C28192746354601F0FFFBF2E77C +:102700000A2F04D90120BDE8F84001F03FBCF8BD14 +:10271000C8280020F8B506460D4601F0D9FB0F4A3F +:10272000134653F8107F9F4206D12A460146304691 +:10273000BDE8F840FFF7C2BFD169BB68441A2C1945 +:1027400028BF2C46A34202D92946FFF79BFF224609 +:1027500031460348BDE8F840FFF77EBFC828002097 +:10276000D8280020C0E90323002310B45DF8044BEF +:102770004361FFF7CFBF000010B5194C23699842A1 +:102780000DD08168D0E9003213605A609A680A441B +:102790009A60002303604FF0FF33A36110BD02680D +:1027A000234643F8102F53600022026022699A42A8 +:1027B00003D1BDE8104001F09BBB936881680B44D6 +:1027C000936001F085FB2269E1699268441AA24294 +:1027D000E4D91144BDE81040091AFFF753BF00BF08 +:1027E000C82800202DE9F047DFF8BC8008F1100769 +:1027F0002C4ED8F8105001F06BFBD8F81C40AA689A +:10280000031B9A423ED814444FF00009D5E9003228 +:10281000C8F81C4013605A60C5F80090D8F8103012 +:10282000B34201D101F064FB89F31188D5E903318A +:1028300028469847302383F311886B69002BD8D042 +:1028400001F046FB6A69A0EB040982464A450DD2B5 +:10285000022001F09BFB0022D8F81030B34208D1CF +:1028600051462846BDE8F047FFF728BF121A224418 +:10287000F2E712EB09092946384638BF4A46FFF706 +:10288000EBFEB5E7D8F81030B34208D01444C8F8CE +:102890001C00211AA960BDE8F047FFF7F3BEBDE8B0 +:1028A000F08700BFD8280020C828002000207047EB +:1028B000FEE70000704700004FF0FF307047000057 +:1028C00002290CD0032904D00129074818BF002091 +:1028D0007047032A05D8054800EBC200704704483A +:1028E00070470020704700BF644900084422002060 +:1028F0001849000870B59AB005460846144601A963 +:1029000000F0C2F801A8FEF7E5FA431C0022C6B2A7 +:102910005B001046C5E9003423700323023404F839 +:10292000013C01ABD1B202348E4201D81AB070BD65 +:1029300013F8011B013204F8010C04F8021CF1E742 +:1029400008B5302383F311880348FFF749FA0023C1 +:1029500083F3118808BD00BF382B002090F8803029 +:1029600003F01F02012A07D190F881200B2A03D11E +:102970000023C0E91D3315E003F06003202B08D1CC +:10298000B0F884302BB990F88120212A03D81F2A6F +:1029900004D8FFF707BA222AEBD0FAE7034A4267C6 +:1029A00007228267C3670120704700BF3B220020D7 +:1029B00007B5052917D8DFE801F019160319192002 +:1029C000302383F31188104A01210190FFF7B0FAF8 +:1029D000019802210D4AFFF7ABFA0D48FFF7CCF939 +:1029E000002383F3118803B05DF804FB302383F3E5 +:1029F00011880748FFF796F9F2E7302383F311882F +:102A00000348FFF7ADF9EBE7B8480008DC480008D9 +:102A1000382B002038B50C4D0C4C2A460C4904F1DB +:102A20000800FFF767FF05F1CA0204F11000094929 +:102A3000FFF760FF05F5CA7204F118000649BDE80A +:102A40003840FFF757BF00BF104400204422002049 +:102A5000A0480008A4480008AE48000870B5044625 +:102A600008460D46FEF736FAC6B220460134037812 +:102A70000BB9184670BD32462946FEF717FA0028F2 +:102A8000F3D10120F6E700002DE9F04705460C469A +:102A9000FEF720FA2C49C6B22846FFF7DFFF08B13F +:102AA0000836F6B229492846FFF7D8FF08B1103694 +:102AB000F6B2632E0BD8DFF89080DFF89090244FA9 +:102AC000DFF898A02E7846B92670BDE8F087294631 +:102AD0002046BDE8F04701F0FBBD252E30D107228E +:102AE00041462846FEF7E2F980B91A4B224603F127 +:102AF0000C0153F8040B8B4242F8040BF9D11988EE +:102B000007359B780F3411809370DBE70822494624 +:102B10002846FEF7CBF998B9A21C0F4B1978023260 +:102B20000909C95D02F8041C13F8011B01F00F012B +:102B30005345C95D02F8031CF0D118340835C1E7CC +:102B4000013504F8016BBDE784490008AE48000870 +:102B50009C4900088C49000800E8F11F0CE8F11FAF +:102B6000BFF34F8F044B1A695107FCD1D3F81021E2 +:102B70005207F8D1704700BF0020005208B50D4B36 +:102B80001B78ABB9FFF7ECFF0B4BDA68D10704D524 +:102B90000A4A5A6002F188325A60D3F80C21D207EF +:102BA00006D5064AC3F8042102F18832C3F804218D +:102BB00008BD00BF6E46002000200052230167457B +:102BC00008B5114B1B78F3B9104B1A69510703D59F +:102BD000DA6842F04002DA60D3F81021520705D5D6 +:102BE000D3F80C2142F04002C3F80C21FFF7B8FFE4 +:102BF000064BDA6842F00102DA60D3F80C2142F0A9 +:102C00000102C3F80C2108BD6E46002000200052CE +:102C10000F289ABF00F58060400400207047000034 +:102C20004FF4003070470000102070470F2808B59F +:102C30000BD8FFF7EDFF00F500330268013204D135 +:102C400004308342F9D1012008BD0020FCE70000D8 +:102C50000F2838B505463FD8FFF782FF1F4CFFF716 +:102C60008DFF4FF0FF3307286361C4F814311DD87E +:102C70002361FFF775FF030243F02403E360E36879 +:102C800043F08003E36023695A07FCD42846FFF72A +:102C900067FFFFF7BDFF4FF4003100F0F5F828465D +:102CA000FFF78EFFBDE83840FFF7C0BFC4F8103112 +:102CB000FFF756FFA0F108031B0243F02403C4F8FA +:102CC0000C31D4F80C3143F08003C4F80C31D4F843 +:102CD00010315B07FBD4D9E7002038BD002000523B +:102CE0002DE9F84F05460C46104645EA0203DE067C +:102CF00002D00020BDE8F88F20F01F00DFF8BCB044 +:102D0000DFF8BCA0FFF73AFF04EB0008444503D10D +:102D10000120FFF755FFEDE720222946204601F06C +:102D2000C7FC10B920352034F0E72B4605F120020E +:102D30001F68791CDDD104339A42F9D105F178433B +:102D40001B481C4EB3F5801F1B4B38BF184603F1C0 +:102D5000F80332BFD946D1461E46FFF701FF076090 +:102D6000A5EB040C336804F11C0143F0020333604B +:102D7000231FD9F8007017F00507FAD153F8042F74 +:102D80008B424CF80320F4D1BFF34F8FFFF7E8FEDE +:102D90004FF0FF332022214603602846336823F09A +:102DA0000203336001F084FC0028BBD03846B0E752 +:102DB000142100520C200052142000521020005206 +:102DC0001021005210B5084C237828B11BB9FFF729 +:102DD000D5FE0123237010BD002BFCD02070BDE870 +:102DE0001040FFF7EDBE00BF6E4600200244074BC7 +:102DF000D2B210B5904200D110BD441C00B253F8BD +:102E0000200041F8040BE0B2F4E700BF5040005846 +:102E10000E4B30B51C6F240405D41C6F1C671C6F4F +:102E200044F400441C670A4C02442368D2B243F4C1 +:102E300080732360074B904200D130BD441C51F891 +:102E4000045B00B243F82050E0B2F4E700440258BB +:102E5000004802585040005807B5012201A900203F +:102E6000FFF7C4FF019803B05DF804FB13B50446F7 +:102E7000FFF7F2FFA04205D0012201A90020019432 +:102E8000FFF7C6FF02B010BD0144BFF34F8F064BE2 +:102E9000884204D3BFF34F8FBFF36F8F7047C3F8DF +:102EA0005C022030F4E700BF00ED00E0034B1A683D +:102EB0001AB9034AD2F8D0241A607047704600202D +:102EC0000040025808B5FFF7F1FF024B1868C0F345 +:102ED000806008BD70460020EFF309830549683320 +:102EE0004A6B22F001024A6383F30988002383F3CB +:102EF0001188704700EF00E0302080F3118862B63F +:102F00000D4B0E4AD96821F4E0610904090C0A430B +:102F10000B49DA60D3F8FC2042F08072C3F8FC2041 +:102F2000084AC2F8B01F116841F001011160202267 +:102F3000DA7783F82200704700ED00E00003FA051D +:102F400055CEACC5001000E0302310B583F31188D6 +:102F50000E4B5B6813F4006314D0F1EE103AEFF3FC +:102F600009844FF08073683CE361094BDB6B236697 +:102F700084F30988FFF7BAFA10B1064BA36110BDBC +:102F8000054BFBE783F31188F9E700BF00ED00E094 +:102F900000EF00E02F0400083204000870B5BFF312 +:102FA0004F8FBFF36F8F1A4A0021C2F85012BFF340 +:102FB0004F8FBFF36F8F536943F400335361BFF3F7 +:102FC0004F8FBFF36F8FC2F88410BFF34F8FD2F8CB +:102FD000803043F6E074C3F3C900C3F34E335B01A2 +:102FE00003EA0406014646EA81750139C2F86052D7 +:102FF000F9D2203B13F1200FF2D1BFF34F8F536969 +:1030000043F480335361BFF34F8FBFF36F8F70BDB5 +:1030100000ED00E0FEE70000214B2248224A70B597 +:10302000904237D3214BC11EDA1C121A22F0030240 +:103030008B4238BF00220021FDF754FF1C4A0023B9 +:10304000C2F88430BFF34F8FD2F8803043F6E0747B +:10305000C3F3C900C3F34E335B0103EA0406014620 +:1030600046EA81750139C2F86C52F9D2203B13F15E +:10307000200FF2D1BFF34F8FBFF36F8FBFF34F8F8E +:10308000BFF36F8F0023C2F85032BFF34F8FBFF3EF +:103090006F8F70BD53F8041B40F8041BC0E700BFDE +:1030A000944B000844480020444800204448002035 +:1030B00000ED00E0074BD3F8D81021EA0001C3F877 +:1030C000D810D3F8002122EA0002C3F80021D3F877 +:1030D000003170470044025870B5D0E92443002203 +:1030E0004FF0FF359E6804EB42135101D3F80009FD +:1030F000002805DAD3F8000940F08040C3F8000941 +:10310000D3F8000B002805DAD3F8000B40F080401C +:10311000C3F8000B013263189642C3F80859C3F88C +:10312000085BE0D24FF00113C4F81C3870BD0000FA +:10313000890141F02001016103699B06FCD4122042 +:10314000FFF70CBA10B50A4C2046FEF7CFFE094B2C +:10315000C4F89030084BC4F89430084C2046FEF771 +:10316000C5FE074BC4F89030064BC4F8943010BD30 +:103170007446002000000840D44900081047002091 +:1031800000000440E049000870B503780546012BB3 +:103190005CD1434BD0F89040984258D1414B0E211E +:1031A0006520D3F8D82042F00062C3F8D820D3F8C5 +:1031B000002142F00062C3F80021D3F80021D3F8C7 +:1031C000802042F00062C3F88020D3F8802022F0F3 +:1031D0000062C3F88020D3F88030FEF7EDFA324B5E +:1031E000E360324BC4F800380023D5F89060C4F88F +:1031F000003EC02323604FF40413A3633369002B04 +:10320000FCDA01230C203361FFF7A8F93369DB07EF +:10321000FCD41220FFF7A2F93369002BFCDA002658 +:103220002846A660FFF758FF6B68C4F81068DB6893 +:10323000C4F81468C4F81C6883BB1D4BA3614FF02D +:10324000FF336361A36843F00103A36070BD194BB2 +:103250009842C9D1134B4FF08060D3F8D82042F088 +:103260000072C3F8D820D3F8002142F00072C3F8EE +:103270000021D3F80021D3F8802042F00072C3F877 +:103280008020D3F8802022F00072C3F88020D3F889 +:103290008030FFF70FFF0E214D209EE7064BCDE754 +:1032A00074460020004402584014004003002002ED +:1032B000003C30C010470020083C30C0F8B5D0F8C2 +:1032C0009040054600214FF000662046FFF730FF92 +:1032D000D5F8941000234FF001128F684FF0FF30A3 +:1032E000C4F83438C4F81C2804EB431201339F425D +:1032F000C2F80069C2F8006BC2F80809C2F8080BEE +:10330000F2D20B68D5F89020C5F89830636210238C +:103310001361166916F01006FBD11220FFF71EF993 +:10332000D4F8003823F4FE63C4F80038A36943F4EA +:10333000402343F01003A3610923C4F81038C4F8F4 +:1033400014380B4BEB604FF0C043C4F8103B094BF3 +:10335000C4F8003BC4F81069C4F80039D5F89830B7 +:1033600003F1100243F48013C5F89820A362F8BD5E +:10337000B049000840800010D0F8902090F88A10E2 +:10338000D2F8003823F4FE6343EA0113C2F8003890 +:10339000704700002DE9F84300EB8103D0F890500E +:1033A0000C468046DA680FFA81F94801166806F083 +:1033B0000306731E022B05EB41134FF0000194BF6F +:1033C000B604384EC3F8101B4FF0010104F110038E +:1033D00098BF06F1805601FA03F3916998BF06F58C +:1033E000004600293AD0578A04F158013743490171 +:1033F0006F50D5F81C180B430021C5F81C382B184A +:103400000127C3F81019A7405369611E9BB3138AA3 +:10341000928B9B08012A88BF5343D8F898209818AC +:1034200042EA034301F140022146C8F898002846C9 +:1034300005EB82025360FFF77BFE08EB8900C3684F +:103440001B8A43EA845348341E4364012E51D5F845 +:103450001C381F43C5F81C78BDE8F88305EB4917F5 +:10346000D7F8001B21F40041C7F8001BD5F81C1841 +:1034700021EA0303C0E704F13F030B4A2846214633 +:1034800005EB83035A60FFF753FE05EB4910D0F8B4 +:10349000003923F40043C0F80039D5F81C3823EA7A +:1034A0000707D7E70080001000040002D0F894203E +:1034B0001268C0F89820FFF70FBE00005831D0F80E +:1034C000903049015B5813F4004004D013F4001FFE +:1034D0000CBF0220012070474831D0F890304901DC +:1034E0005B5813F4004004D013F4001F0CBF0220FB +:1034F0000120704700EB8101CB68196A0B681360EB +:103500004B6853607047000000EB810330B5DD6805 +:10351000AA691368D36019B9402B84BF4023136094 +:103520006B8A1468D0F890201C4402EB4110013CD7 +:1035300009B2B4FBF3F46343033323F0030343EA18 +:10354000C44343F0C043C0F8103B2B6803F00303AF +:10355000012B0ED1D2F8083802EB411013F4807F12 +:10356000D0F8003B14BF43F0805343F00053C0F841 +:10357000003B02EB4112D2F8003B43F00443C2F897 +:10358000003B30BD2DE9F041D0F8906005460C4677 +:1035900006EB4113D3F8087B3A07C3F8087B08D53C +:1035A000D6F814381B0704D500EB8103DB685B6891 +:1035B0009847FA071FD5D6F81438DB071BD505EB5B +:1035C0008403D968CCB98B69488A5A68B2FBF0F693 +:1035D00000FB16228AB91868DA6890420DD2121AD6 +:1035E000C3E90024302383F3118821462846FFF7DE +:1035F0008BFF84F31188BDE8F081012303FA04F204 +:103600006B8923EA02036B81CB68002BF3D0214640 +:103610002846BDE8F041184700EB81034A0170B528 +:10362000DD68D0F890306C692668E66056BB1A44B5 +:103630004FF40020C2F810092A6802F00302012AA0 +:103640000AB20ED1D3F8080803EB421410F4807FBD +:10365000D4F8000914BF40F0805040F00050C4F886 +:10366000000903EB4212D2F8000940F00440C2F80E +:1036700000090122D3F8340802FA01F10143C3F82A +:10368000341870BD19B9402E84BF402020602068D6 +:103690001A442E8A8419013CB4FBF6F440EAC44073 +:1036A00040F00050C6E700002DE9F843D0F89060E4 +:1036B00005460C464F0106EB4113D3F8088918F074 +:1036C000010FC3F808891CD0D6F81038DB0718D5CD +:1036D00000EB8103D3F80CC0DCF81430D3F800E021 +:1036E000DA68964530D2A2EB0E024FF000091A605C +:1036F000C3F80490302383F31188FFF78DFF89F31B +:10370000118818F0800F1DD0D6F834380126A64055 +:10371000334217D005EB84030134D5F89050D3F829 +:103720000CC0E4B22F44DCF8142005EB0434D2F8CA +:1037300000E05168714514D3D5F8343823EA060601 +:10374000C5F83468BDE8F883012303FA01F2038960 +:1037500023EA02030381DCF80830002BD1D098471C +:10376000CFE7AEEB0103BCF81000834228BF03464D +:10377000D7F8180980B2B3EB800FE3D89068A0F1B6 +:10378000040959F8048FC4F80080A0EB0908984494 +:10379000B8F1040FF5D818440B4490605360C8E7A3 +:1037A0002DE9F84FD0F8905004466E69AB691E4081 +:1037B00016F480586E6103D0BDE8F84FFEF706BCE2 +:1037C000002E12DAD5F8003E9B0705D0D5F8003E52 +:1037D00023F00303C5F8003ED5F80438204623F053 +:1037E0000103C5F80438FEF71FFC370505D5204650 +:1037F000FFF772FC2046FEF705FCB0040CD5D5F8A7 +:10380000083813F0060FEB6823F470530CBF43F431 +:10381000105343F4A053EB6031071BD56368DB689A +:103820001BB9AB6923F00803AB612378052B0CD1DE +:10383000D5F8003E9A0705D0D5F8003E23F00303E3 +:10384000C5F8003E2046FEF7EFFB6368DB680BB16E +:1038500020469847F30200F1BA80B70226D5D4F883 +:10386000909000274FF0010A09EB4712D2F8003B75 +:1038700003F44023B3F5802F11D1D2F8003B002B85 +:103880000DDA62890AFA07F322EA0303638104EB83 +:103890008703DB68DB6813B1394620469847013758 +:1038A000D4F89430FFB29B689F42DDD9F00619D559 +:1038B000D4F89000026AC2F30A1702F00F0302F470 +:1038C000F012B2F5802F00F0CA80B2F5402F09D176 +:1038D00004EB8303002200F58050DB681B6A9742EB +:1038E00040F0B0803003D5F8185835D5E90303D53A +:1038F00000212046FFF746FEAA0303D501212046FA +:10390000FFF740FE6B0303D502212046FFF73AFE86 +:103910002F0303D503212046FFF734FEE80203D529 +:1039200004212046FFF72EFEA90203D505212046DB +:10393000FFF728FE6A0203D506212046FFF722FE84 +:103940002B0203D507212046FFF71CFEEF0103D50C +:1039500008212046FFF716FE700340F1A780E90713 +:1039600003D500212046FFF79FFEAA0703D50121BA +:103970002046FFF799FE6B0703D502212046FFF78B +:1039800093FE2F0703D503212046FFF78DFEEE0699 +:1039900003D504212046FFF787FEA80603D505219D +:1039A0002046FFF781FE690603D506212046FFF772 +:1039B0007BFE2A0603D507212046FFF775FEEB059F +:1039C00074D520460821BDE8F84FFFF76DBED4F846 +:1039D00090904FF0000B4FF0010AD4F894305FFA4A +:1039E0008BF79B689F423FF638AF09EB4713D3F83C +:1039F000002902F44022B2F5802F20D1D3F800290B +:103A0000002A1CDAD3F8002942F09042C3F80029BA +:103A1000D3F80029002AFBDB3946D4F89000FFF7E1 +:103A200087FB22890AFA07F322EA0303238104EBC6 +:103A30008703DB689B6813B13946204698470BF132 +:103A4000010BCAE7910701D1D0F80080072A02F1E3 +:103A500001029CBF03F8018B4FEA18283FE704EBF3 +:103A6000830300F58050DA68D2F818C0DCF808202B +:103A7000DCE9001CA1EB0C0C00218F4208D1DB68B3 +:103A80009B699A683A449A605A683A445A6029E7AE +:103A900011F0030F01D1D0F800808C4501F1010134 +:103AA00084BF02F8018B4FEA1828E6E7BDE8F88FDB +:103AB00008B50348FFF774FEBDE80840FFF744BAB5 +:103AC0007446002008B50348FFF76AFEBDE80840C9 +:103AD000FFF73ABA10470020D0F8903003EB4111BD +:103AE000D1F8003B43F40013C1F8003B70470000DD +:103AF000D0F8903003EB4111D1F8003943F40013B2 +:103B0000C1F8003970470000D0F8903003EB411144 +:103B1000D1F8003B23F40013C1F8003B70470000CC +:103B2000D0F8903003EB4111D1F8003923F40013A1 +:103B3000C1F800397047000030B50433039C0172AE +:103B4000002104FB0325C160C0E90653049B036305 +:103B5000059BC0E90000C0E90422C0E90842C0E9B1 +:103B60000A11436330BD00000022416AC260C0E90F +:103B70000411C0E90A226FF00101FEF75FBD0000E9 +:103B8000D0E90432934201D1C2680AB9181D7047C6 +:103B900000207047036919600021C2680132C260C9 +:103BA000C269134482699342036124BF436A03617B +:103BB000FEF738BD38B504460D46E3683BB162698F +:103BC0000020131D1268A3621344E36207E0237A06 +:103BD00033B929462046FEF715FD0028EDDA38BD39 +:103BE0006FF00100FBE70000C368C269013BC360DE +:103BF0004369134482699342436124BF436A43612A +:103C000000238362036B03B11847704770B53023FC +:103C1000044683F31188866A3EB9FFF7CBFF054659 +:103C200018B186F31188284670BDA36AE26A13F8BA +:103C3000015B9342A36202D32046FFF7D5FF002326 +:103C400083F31188EFE700002DE9F84F04460E4694 +:103C5000174698464FF0300989F311880025AA4687 +:103C6000D4F828B0BBF1000F09D141462046FFF738 +:103C7000A1FF20B18BF311882846BDE8F88FD4E965 +:103C80000A12A7EB050B521A934528BF9346BBF1C6 +:103C9000400F1BD9334601F1400251F8040B914209 +:103CA00043F8040BF9D1A36A403640354033A36290 +:103CB000D4E90A239A4202D32046FFF795FF8AF3FC +:103CC0001188BD42D8D289F31188C9E730465A46D7 +:103CD000FDF7E2F8A36A5E445D445B44A362E7E754 +:103CE00010B5029C0433017203FB0421C460C0E9D7 +:103CF00006130023C0E90A33039B0363049BC0E956 +:103D00000000C0E90422C0E90842436310BD00007E +:103D1000026A6FF00101C260426AC0E90422002217 +:103D2000C0E90A22FEF78ABCD0E904239A4201D1F5 +:103D3000C26822B9184650F8043B0B607047002354 +:103D40001846FAE7C3680021C2690133C3604369BA +:103D5000134482699342436124BF436A4361FEF77F +:103D600061BC000038B504460D46E3683BB12369E9 +:103D700000201A1DA262E2691344E36207E0237A7D +:103D800033B929462046FEF73DFC0028EDDA38BD60 +:103D90006FF00100FBE7000003691960C268013A97 +:103DA000C260C269134482699342036124BF436ABB +:103DB000036100238362036B03B11847704700005F +:103DC00070B530230D460446114683F31188866A88 +:103DD0002EB9FFF7C7FF10B186F3118870BDA36A33 +:103DE0001D70A36AE26A01339342A36204D3E169BE +:103DF00020460439FFF7D0FF002080F31188EDE75B +:103E00002DE9F84F04460D46904699464FF0300A8A +:103E10008AF311880026B346A76A4FB9494620465F +:103E2000FFF7A0FF20B187F311883046BDE8F88F77 +:103E3000D4E90A073A1AA8EB0607974228BF1746A3 +:103E4000402F1BD905F1400355F8042B9D4240F843 +:103E5000042BF9D1A36A40364033A362D4E90A2384 +:103E60009A4204D3E16920460439FFF795FF8BF3AA +:103E700011884645D9D28AF31188CDE729463A46BA +:103E8000FDF70AF8A36A3D443E443B44A362E5E7DC +:103E9000D0E904239A4217D1C3689BB1836A8BB1DE +:103EA000043B9B1A0ED01360C368013BC360C36917 +:103EB0001A4483699A42026124BF436A0361002362 +:103EC00083620123184670470023FBE700F024B902 +:103ED000014B586A704700BF000C0040034B0022A2 +:103EE00058631A610222DA60704700BF000C00407C +:103EF000014B0022DA607047000C0040014B586310 +:103F0000704700BF000C0040FEE7000070B51B4B7F +:103F10000025044686B058600E4685620163FEF7B0 +:103F2000EBFF04F11003A560E562C4E904334FF030 +:103F3000FF33C4E90044C4E90635FFF7C9FF2B4647 +:103F4000024604F134012046C4E9082380230C4AC8 +:103F50002565FEF70DFB01230A4AE0600092037518 +:103F6000684672680192B268CDE90223064BCDE93A +:103F70000435FEF725FB06B070BD00BF302B0020D6 +:103F8000EC490008F1490008093F0008024AD36AD9 +:103F90001843D062704700BFC82800204B684360B8 +:103FA0008B688360CB68C3600B6943614B690362B4 +:103FB0008B6943620B6803607047000008B53C4B97 +:103FC00040F2FF713B48D3F888200A43C3F88820A9 +:103FD000D3F8882022F4FF6222F00702C3F8882079 +:103FE000D3F88820D3F8E0200A43C3F8E020D3F8C0 +:103FF00008210A43C3F808212F4AD3F80831114693 +:10400000FFF7CCFF00F5806002F11C01FFF7C6FF4F +:1040100000F5806002F13801FFF7C0FF00F5806015 +:1040200002F15401FFF7BAFF00F5806002F1700160 +:10403000FFF7B4FF00F5806002F18C01FFF7AEFFDF +:1040400000F5806002F1A801FFF7A8FF00F580608D +:1040500002F1C401FFF7A2FF00F5806002F1E00168 +:10406000FFF79CFF00F5806002F1FC01FFF796FF6F +:1040700002F58C7100F58060FFF790FF00F018F9F1 +:104080000E4BD3F8902242F00102C3F89022D3F8ED +:10409000942242F00102C3F894220522C3F898202A +:1040A0004FF06052C3F89C20054AC3F8A02008BD19 +:1040B0000044025800000258F849000800ED00E0F2 +:1040C0001F00080308B500F0D3FAFEF72FFA0F4BD4 +:1040D000D3F8DC2042F04002C3F8DC20D3F80421FE +:1040E00022F04002C3F80421D3F80431084B1A68C7 +:1040F00042F008021A601A6842F004021A60FEF7E1 +:10410000D5FEBDE80840FEF785BC00BF004402585C +:104110000018024870470000114BD3F8E82042F025 +:104120000802C3F8E820D3F8102142F00802C3F8CF +:1041300010210C4AD3F81031D36B43F00803D3633A +:10414000C722094B9A624FF0FF32DA6200229A616D +:104150005A63DA605A6001225A611A60704700BFE0 +:10416000004402580010005C000C0040094A08B5E9 +:104170001169D3680B40D9B29B076FEA0101116145 +:1041800007D5302383F31188FEF7E6F9002383F384 +:10419000118808BD000C0040064BD3F8DC20024318 +:1041A000C3F8DC20D3F804211043C3F80401D3F88A +:1041B000043170470044025808B53C4B4FF0FF31C2 +:1041C000D3F8802062F00042C3F88020D3F880202A +:1041D00002F00042C3F88020D3F88020D3F8842076 +:1041E000C3F88410D3F884200022C3F88420D3F8C5 +:1041F0008400D86F40F0FF4040F4FF0040F4DF40FF +:1042000040F07F00D867D86F20F0FF4020F4FF0017 +:1042100020F4DF4020F07F00D867D86FD3F8880003 +:104220006FEA40506FEA5050C3F88800D3F8880016 +:10423000C0F30A00C3F88800D3F88800D3F89000D0 +:10424000C3F89010D3F89000C3F89020D3F89000F2 +:10425000D3F89400C3F89410D3F89400C3F89420D2 +:10426000D3F89400D3F89800C3F89810D3F89800C6 +:10427000C3F89820D3F89800D3F88C00C3F88C10BA +:10428000D3F88C00C3F88C20D3F88C00D3F89C00B2 +:10429000C3F89C10D3F89C10C3F89C20D3F89C3032 +:1042A000FDF79CF8BDE8084000F0B6B9004402589C +:1042B00008B50121534BC3F80811534BD3F8F42030 +:1042C00042F00202C3F8F420D3F81C2142F00202AB +:1042D000C3F81C21D3F81C314C4BD9605A689104A7 +:1042E000FCD54B4A1A6001229A6002F18072DA60B2 +:1042F00000221A614FF440429A61444B9A69920439 +:10430000FCD51A6842F480721A603F4B1A6F12F49F +:10431000407F04D04FF480321A6700221A671A686F +:1043200042F001021A60384B1A685007FCD500228F +:104330001A611A6912F03802FBD1012119604FF09D +:10434000804159605A67334ADA62334A1A611A68FF +:1043500042F4A0221A602C4B1A689103FCD51A680B +:1043600042F480521A601A689204FCD52B4A2C49F8 +:104370009A6200225A63196301F57C01DA6301F540 +:10438000E77199635A64274A1A64274ADA621A68FD +:1043900042F0A8521A601C4B1A6802F02852B2F17F +:1043A000285FF9D148229A614FF48862DA6140228D +:1043B0001A621E4ADA641E4A1A651E4A5A651E4A65 +:1043C0009A6532231D4A1360136803F00F03022B12 +:1043D000FAD10D4A136943F003031361136903F023 +:1043E0003803182BFAD14FF00050FFF7D5FE4FF0ED +:1043F0008040FFF7D1FE4FF00040BDE80840FFF7D6 +:10440000CBBE00BF00800051004402580048025853 +:1044100000C000F00000FF0100889008322060001A +:1044200063020901470E0508DD0BBF0120000020D3 +:10443000000001100910E0000001011000200052EE +:104440004FF0B04208B5D2F8883003F00103C2F84B +:10445000883023B1044A13680BB150689847BDE80F +:104460000840FEF771BD00BFC44700204FF0B042C6 +:1044700008B5D2F8883003F00203C2F8883023B1BF +:10448000044A93680BB1D0689847BDE80840FEF72E +:104490005BBD00BFC44700204FF0B04208B5D2F862 +:1044A000883003F00403C2F8883023B1044A13694A +:1044B0000BB150699847BDE80840FEF745BD00BF05 +:1044C000C44700204FF0B04208B5D2F8883003F05E +:1044D0000803C2F8883023B1044A93690BB1D0694C +:1044E0009847BDE80840FEF72FBD00BFC447002035 +:1044F0004FF0B04208B5D2F8883003F01003C2F88C +:10450000883023B1044A136A0BB1506A9847BDE85A +:104510000840FEF719BD00BFC44700204FF0B0436C +:1045200010B5D3F8884004F47872C3F88820A30645 +:1045300004D5124A936A0BB1D06A9847600604D535 +:104540000E4A136B0BB1506B9847210604D50B4AEA +:10455000936B0BB1D06B9847E20504D5074A136CF7 +:104560000BB1506C9847A30504D5044A936C0BB16A +:10457000D06C9847BDE81040FEF7E6BCC447002069 +:104580004FF0B04310B5D3F8884004F47C42C3F830 +:104590008820620504D5164A136D0BB1506D9847FB +:1045A000230504D5124A936D0BB1D06D9847E004F2 +:1045B00004D50F4A136E0BB1506E9847A10404D571 +:1045C0000B4A936E0BB1D06E9847620404D5084A2B +:1045D000136F0BB1506F9847230404D5044A936FAF +:1045E0000BB1D06F9847BDE81040FEF7ADBC00BFDF +:1045F000C447002008B50348FDF758F8BDE8084057 +:10460000FEF7A2BC5C24002008B5FFF7AFFDBDE8B3 +:104610000840FEF799BC0000062108B50846FDF7E2 +:10462000CBF806210720FDF7C7F806210820FDF783 +:10463000C3F806210920FDF7BFF806210A20FDF77F +:10464000BBF806211720FDF7B7F806212820FDF753 +:10465000B3F809217A20FDF7AFF807213220FDF7E2 +:10466000ABF80C212620BDE80840FDF7A5B80000F6 +:1046700008B5FFF7A1FD00F00DF8FDF75BFAFDF7B7 +:1046800033FCFDF705FBFFF745FDBDE80840FFF7EC +:104690001DBC00000023054A19460133102BC2E956 +:1046A000001102F10802F8D1704700BFC447002092 +:1046B00010B501390244904201D1002005E0037891 +:1046C00011F8014FA34201D0181B10BD0130F2E7D1 +:1046D000034611F8012B03F8012B002AF9D170478A +:1046E00053544D333248373F3F3F0053544D3332DC +:1046F000483733782F3732780053544D33324837A8 +:1047000034332F3735332F373530000001105A003E +:1047100003105900012058000320560010000240E9 +:10472000080002400008024000000B002800024080 +:10473000080002400408024006010C00400002404C +:10474000080002400808024010020D005800024014 +:10475000080002400C08024016030E0070000240E0 +:104760000C0002401008024000040F0088000240C4 +:104770000C0002401408024006051000A000024090 +:104780000C0002401808024010061100B800024058 +:104790000C0002401C08024016072F0010040240C3 +:1047A00008040240200802400008380028040240A3 +:1047B000080402402408024006093900400402406F +:1047C0000804024028080240100A3A005804024037 +:1047D000080402402C080240160B3B007004024003 +:1047E0000C04024030080240000C3C0088040240E7 +:1047F0000C04024034080240060D4400A0040240AC +:104800000C04024038080240100E4500B804024073 +:104810000C0402403C080240160F460000960000BF +:104820000000000000000000000000000000000088 +:104830000000000000000000F51A0008E11A00085E +:104840001D1B0008091B0008151B0008011B0008A0 +:10485000ED1A0008D91A0008291B00080000000002 +:104860000D1C0008F91B0008351C0008211C00085D +:104870002D1C0008191C0008051C0008F11B00086D +:10488000411C0008000000000100000000000000C2 +:10489000633000009048000820290020302B0020C1 +:1048A00033445200435A4F454D72657647002553B5 +:1048B000455249414C250000020000000000000064 +:1048C0002D1E00089D1E000840004000E04300200F +:1048D000F043002002000000000000000300000080 +:1048E00000000000E51E00080000000010000000AD +:1048F0000044002000000000010000000000000053 +:104900007446002001010200B1290008C1280008F6 +:104910005D290008412900084300000020490008E3 +:1049200009024300020100C0320904000001020232 +:1049300001000524001001052401000104240202E5 +:104940000524060001070582030800FF0904010091 +:10495000020A00000007050102400000070581026D +:1049600040000000120000006C4900081201100114 +:1049700002000040AC2624110002010203010000E5 +:104980000403090425424F41524425003344524355 +:104990006F6E74726F6C5A65726F470030313233CC +:1049A000343536373839414243444546000000002B +:1049B0000000000041200008F9220008A52300089B +:1049C00040004000AC470020AC4700200100000040 +:1049D000BC470020800000004001000008000000EB +:1049E0000001000000100000080000006D61696E09 +:1049F0000069646C650000000000802A000000006F +:104A0000AAAAAAAA00000024FFFF000000000000DC +:104A100000A00A004400400000000000AAAAAAAAC0 +:104A200000000000FFFF0000000000000000000088 +:104A30001000000000000000AAAAAAAA10000000AE +:104A4000FFFF00000000000000000000806910006F +:104A500000000000AAAA8AAA40561000FFFF00002A +:104A6000007070070000000000000040000000001F +:104A7000AAAAAAAA00000040FFFF00000000000050 +:104A8000000000000010100000000000AAAAAAAA5E +:104A900000101000FFFF00000000000000000000F8 +:104AA0000000040000000000AAAAAAAA0000040056 +:104AB000FFFF0000000000000000000000000000F8 +:104AC00000000000AAAAAAAA00000000FFFF000040 +:104AD00000000000000000000000000000000000D6 +:104AE000AAAAAAAA00000000FFFF00000000000020 +:104AF000000000000000000000000000AAAAAAAA0E +:104B000000000000FFFF00000000000000000000A7 +:104B10000000000000000000AAAAAAAA00000000ED +:104B2000FFFF000000000000000000000000000087 +:104B3000640400000000000000001E0000000000EF +:104B4000FF000000382B00205C2400200000000043 +:104B5000E046000883040000EB4600085004000013 +:104B6000F9460008009600000000080096000000CA +:104B70000008000004000000804900080000000058 +:104B80000000000000000000000000000000000025 +:044B90000000000021 +:00000001FF diff --git a/Tools/bootloaders/CUAV-7-Nano_bl.bin b/Tools/bootloaders/CUAV-7-Nano_bl.bin new file mode 100644 index 0000000000..60b99e1b3d Binary files /dev/null and b/Tools/bootloaders/CUAV-7-Nano_bl.bin differ diff --git a/Tools/bootloaders/CUAV-7-Nano_bl.hex b/Tools/bootloaders/CUAV-7-Nano_bl.hex new file mode 100644 index 0000000000..863c1db590 --- /dev/null +++ b/Tools/bootloaders/CUAV-7-Nano_bl.hex @@ -0,0 +1,2517 @@ +:020000040800F2 +:1000000000060020E1020008E3020008E302000805 +:10001000E3020008E3020008E3020008E30200082C +:10002000E3020008E3020008E30200080D7700087D +:10003000E3020008E3020008E3020008E30200080C +:10004000E3020008E3020008E3020008E3020008FC +:10005000E3020008E302000819860008458600084C +:10006000718600089D860008C986000819460008A8 +:10007000414600086D46000899460008C54600083C +:10008000ED46000819470008E3020008E3020008F3 +:10009000E3020008E3020008E3020008F586000816 +:1000A000E3020008E3020008E3020008E30200089C +:1000B000E3020008E3020008E3020008E30200088C +:1000C000E3020008E3020008E3020008E30200087C +:1000D000E3020008E3020008E3020008E1870008E9 +:1000E00059870008E3020008E3020008E302000861 +:1000F000E3020008E3020008E302000845470008A5 +:10010000E3020008E30200081D880008E30200087B +:10011000E3020008F5870008E3020008E302000894 +:100120007147000899470008C5470008F1470008D3 +:100130001D480008E3020008E3020008E30200088B +:10014000E3020008E3020008E3020008E3020008FB +:1001500045480008714800089D480008E30200086F +:10016000E3020008E3020008E3020008E3020008DB +:10017000E3020008F9820008E3020008E302000835 +:10018000E3020008E302000809880008E30200080F +:10019000E3020008E3020008E3020008E3020008AB +:1001A000E3020008E3020008E3020008E30200089B +:1001B000E3020008E3020008E3020008E30200088B +:1001C000E3020008E3020008E3020008E30200087B +:1001D000E3020008E5820008E3020008E3020008E9 +:1001E000E3020008E3020008E3020008E30200085B +:1001F000E3020008E3020008E3020008E30200084B +:10020000E3020008E3020008E3020008E30200083A +:10021000E3020008E3020008E3020008E30200082A +:10022000E3020008E3020008E3020008E30200081A +:10023000CD870008E3020008E3020008E30200089B +:10024000E3020008E3020008E3020008E3020008FA +:10025000E3020008E3020008E3020008E3020008EA +:10026000E3020008E3020008E3020008E3020008DA +:10027000E3020008E3020008E3020008E3020008CA +:10028000E3020008E3020008E3020008E3020008BA +:10029000E3020008E3020008E3020008E3020008AA +:1002A000E3020008E3020008E3020008E30200089A +:1002B000E3020008E3020008E3020008E30200088A +:1002C000E3020008E3020008E3020008E30200087A +:1002D000E3020008E3020008E3020008E30200086A +:1002E00002E000F000F8FEE772B6374880F30888B5 +:1002F000364880F3098836483649086040F20000E5 +:10030000CCF200004EF63471CEF200010860BFF36B +:100310004F8FBFF36F8F40F20000C0F2F0004EF637 +:100320008851CEF200010860BFF34F8FBFF36F8F8B +:100330004FF00000E1EE100A4EF63C71CEF20001E3 +:100340000860062080F31488BFF36F8F07F040FA2F +:1003500006F0ACFB4FF055301F491B4A91423CBFA1 +:1003600041F8040BFAE71D49184A91423CBF41F895 +:10037000040BFAE71A491B4A1B4B9A423EBF51F83D +:10038000040B42F8040BF8E700201849184A914280 +:100390003CBF41F8040BFAE707F058FA06F00AFCF4 +:1003A000144C154DAC4203DA54F8041B8847F9E7A6 +:1003B00000F0C4F9114C124DAC4203DA54F8041B9E +:1003C0008847F9E707F040BA000600200022002025 +:1003D0000000000808ED00E00000002000060020FA +:1003E000B89C0008002200207422002078220020FF +:1003F00034670020E0020008E0020008E002000884 +:10040000E00200082DE9F04F2DED108AC1F80CD064 +:10041000D0F80CD0BDEC108ABDE8F08F002383F338 +:1004200011882846A047002006F022F9FEE706F0D2 +:100430007BF800DFFEE7000053B94AB9002908BF86 +:1004400000281CBF4FF0FF314FF0FF3000F074B9AF +:10045000ADF1080C6DE904CE00F006F8DDF804E01B +:10046000DDE9022304B070472DE9F047089D0446FA +:100470008E46002B4DD18A42944669D9B2FA82F257 +:1004800052B101FA02F3C2F1200120FA01F10CFA93 +:1004900002FC41EA030E94404FEA1C48210CBEFBCB +:1004A000F8F61FFA8CF708FB16E341EA034306FB54 +:1004B00007F199420AD91CEB030306F1FF3080F0E3 +:1004C0001F81994240F21C81023E63445B1AA4B230 +:1004D000B3FBF8F008FB103344EA034400FB07F7D2 +:1004E000A7420AD91CEB040400F1FF3380F00A8113 +:1004F000A74240F207816444023840EA0640E41B08 +:1005000000261DB1D4400023C5E900433146BDE8B3 +:10051000F0878B4209D9002D00F0EF800026C5E955 +:10052000000130463146BDE8F087B3FA83F6002E6D +:100530004AD18B4202D3824200F2F980841A61EBE5 +:10054000030301209E46002DE0D0C5E9004EDDE703 +:1005500002B9FFDEB2FA82F2002A40F09280A1EBEB +:100560000C014FEA1C471FFA8CFE0126200CB1FB40 +:10057000F7F307FB131140EA01410EFB03F0884239 +:1005800008D91CEB010103F1FF3802D2884200F2C6 +:10059000CB804346091AA4B2B1FBF7F007FB101158 +:1005A00044EA01440EFB00FEA64508D91CEB0404F6 +:1005B00000F1FF3102D2A64500F2BB800846A4EB51 +:1005C0000E0440EA03409CE7C6F12007B34022FA3C +:1005D00007FC4CEA030C20FA07F401FA06F31C436B +:1005E000F9404FEA1C4900FA06F3B1FBF9F8200C78 +:1005F0001FFA8CFE09FB181140EA014108FB0EF0BE +:10060000884202FA06F20BD91CEB010108F1FF3A0D +:1006100080F08880884240F28580A8F10208614419 +:10062000091AA4B2B1FBF9F009FB101144EA014127 +:1006300000FB0EFE8E4508D91CEB010100F1FF34D2 +:100640006CD28E456AD90238614440EA0840A0FB6A +:100650000294A1EB0E01A142C846A64656D353D040 +:100660005DB1B3EB080261EB0E0101FA07F722FA64 +:1006700006F3F1401F43C5E9007100263146BDE88D +:10068000F087C2F12003D8400CFA02FC21FA03F3F0 +:10069000914001434FEA1C471FFA8CFEB3FBF7F071 +:1006A00007FB10360B0C43EA064300FB0EF69E4296 +:1006B00004FA02F408D91CEB030300F1FF382FD22F +:1006C0009E422DD9023863449B1B89B2B3FBF7F6D7 +:1006D00007FB163341EA034106FB0EF38B4208D9B0 +:1006E0001CEB010106F1FF3816D28B4214D9023EF1 +:1006F0006144C91A46EA004638E72E46284605E70F +:100700000646E3E61846F8E64B45A9D2B9EB0208DF +:1007100064EB0C0E0138A3E74646EAE7204694E76F +:100720004046D1E7D0467BE7023B614432E73046A2 +:1007300009E76444023842E7704700BF38B501F06A +:10074000FFF901F0C1FB06F0CBFE054606F0D4FF31 +:100750000446D0B90F4B9D4219D001339D4241F25E +:10076000883504BF01240025002006F0C3FE0CB12B +:1007700000F078F801F048FB00F026FD08B100F029 +:1007800071F8284600F01CF9F9E70025ECE705466A +:10079000EAE700BF010007B008B501F09DF9A0F13C +:1007A00020035842584108BD07B541F21203022107 +:1007B00001A8ADF8043001F0ADF903B05DF804FB19 +:1007C00038B5302383F31188174803680BB106F05E +:1007D00033F80023154A4FF47A71134806F022F8D3 +:1007E000002383F31188124C236813B12368013B63 +:1007F0002360636813B16368013B63600D4D2B7820 +:1008000033B963687BB9022001F060FA3223636078 +:100810002B78032B07D163682BB9022001F056FA1D +:100820004FF47A73636038BD78220020C107000856 +:100830009823002090220020084B187003280CD821 +:10084000DFE800F008050208022001F031BA0220BA +:1008500001F01EBA024B00225A607047902200201D +:1008600098230020F8B5504B504A1C4619680131B6 +:1008700000F0998004339342F8D162684C4B9A425D +:1008800040F291804B4B9B6803F1006303F500330A +:100890009A4280F08880002001F06CF90220FFF776 +:1008A000CBFF454B0021D3F8E820C3F8E810D3F87C +:1008B0001021C3F81011D3F81021D3F8EC20C3F89D +:1008C000EC10D3F81421C3F81411D3F81421D3F881 +:1008D000F020C3F8F010D3F81821C3F81811D3F89A +:1008E0001821D3F8802042F00062C3F88020D3F8AA +:1008F000802022F00062C3F88020D3F88020D3F853 +:10090000802042F00072C3F88020D3F8802022F0CB +:100910000072C3F88020D3F8803072B64FF0E02325 +:10092000C3F8084DD4E90004BFF34F8FBFF36F8FB6 +:10093000224AC2F88410BFF34F8F536923F48033E7 +:100940005361BFF34F8FD2F8803043F6E076C3F3A4 +:10095000C905C3F34E335B0103EA060C29464CEA92 +:1009600081770139C2F87472F9D2203B13F1200F5C +:10097000F2D1BFF34F8FBFF36F8FBFF34F8FBFF332 +:100980006F8F536923F4003353610023C2F8503250 +:10099000BFF34F8FBFF36F8F302383F311888546EA +:1009A00080F308882047F8BD0000020820000208F4 +:1009B000FFFF0108002200200044025800ED00E083 +:1009C0002DE9F04F93B0B44B2022FF2100900AA8EC +:1009D0009D6801F0C3F9B14A1378A3B90121B04869 +:1009E00011700360302383F3118803680BB105F0A5 +:1009F00023FF0023AB4A4FF47A71A94805F012FF98 +:100A0000002383F31188009B13B1A74B009A1A604F +:100A1000A64A1378032B03D000231370A24A536015 +:100A20004FF0000A009CD3465646D146012001F003 +:100A30003FF924B19C4B1B68002B00F0268200205C +:100A400001F04AF80390039B002BF2DB012001F038 +:100A50001FF9039B213B1F2BE8D801A252F823F07A +:100A6000E10A0008090B00089D0B00082D0A000888 +:100A70002D0A00082D0A00082F0C0008FF0D0008A1 +:100A8000190D00087B0D0008A30D0008C90D000812 +:100A90002D0A0008DB0D00082D0A00084D0E000885 +:100AA000810B00082D0A0008910E0008ED0A0008CD +:100AB000810B00082D0A00087B0D00082D0A000894 +:100AC0002D0A00082D0A00082D0A00082D0A00082A +:100AD0002D0A00082D0A00082D0A00089D0B0008A9 +:100AE0000220FFF759FE002840F0F981009B022107 +:100AF00005A8BAF1000F08BF1C4641F21233ADF849 +:100B0000143001F007F891E74FF47A7000F0E4FF39 +:100B1000071EEBDB0220FFF73FFE0028E6D0013F77 +:100B2000052F00F2DE81DFE807F0030A0D1013360F +:100B30000523042105A8059300F0ECFF17E004212C +:100B40005548F9E704215A48F6E704215948F3E7E4 +:100B50004FF01C08404608F1040801F00DF804218C +:100B6000059005A800F0D6FFB8F12C0FF2D10120B6 +:100B70004FF0000900FA07F747EA0B0B5FFA8BFB0F +:100B800001F038F926B10BF00B030B2B08BF002442 +:100B9000FFF70AFE4AE704214748CDE7002EA5D01B +:100BA0000BF00B030B2BA1D10220FFF7F5FD07463D +:100BB00000289BD00120002600F0DCFF0220FFF778 +:100BC0003BFE1FFA86F8404600F0E4FF0446B0B151 +:100BD000039940460136A1F140025142514100F0D3 +:100BE000E9FF0028EDD1BA46044641F21213022172 +:100BF00005A83E46ADF8143000F08CFF16E72546F8 +:100C00000120FFF719FE244B9B68AB4207D9284609 +:100C100000F0B2FF013040F067810435F3E70025B2 +:100C2000224BBA463E461D701F4B5D60A8E7002E62 +:100C30003FF45CAF0BF00B030B2B7FF457AF02209C +:100C4000FFF7FAFD322000F047FFB0F10008FFF691 +:100C50004DAF18F003077FF449AF0F4A08EB0503C7 +:100C6000926893423FF642AFB8F5807F3FF73EAFC0 +:100C7000124BB845019323DD4FF47A7000F02CFF3E +:100C80000390039A002AFFF631AF039A0137019BC4 +:100C900003F8012BEDE700BF002200209423002081 +:100CA00078220020C107000898230020902200200D +:100CB00004220020082200200C2200209422002080 +:100CC000C820FFF769FD074600283FF40FAF1F2D2E +:100CD00011D8C5F120020AAB25F003008449424532 +:100CE000184428BF4246019201F012F8019AFF21F0 +:100CF0007F4801F033F84FEAA803C8F387027C4924 +:100D00002846019301F032F8064600283FF46DAF03 +:100D1000019B05EB830533E70220FFF73DFD00282B +:100D20003FF4E4AE00F064FF00283FF4DFAE00279C +:100D3000B846704B9B68BB4218D91F2F11D80A9B2D +:100D400001330ED027F0030312AA134453F8203CBA +:100D500005934046042205A9043701F00BF98046AB +:100D6000E7E7384600F008FF0590F2E7CDF8148079 +:100D7000042105A800F0CEFE02E70023642104A8A8 +:100D8000049300F0BDFE00287FF4B0AE0220FFF710 +:100D900003FD00283FF4AAAE049800F01FFF059061 +:100DA000E6E70023642104A8049300F0A9FE0028CC +:100DB0007FF49CAE0220FFF7EFFC00283FF496AED4 +:100DC000049800F00DFFEAE70220FFF7E5FC002899 +:100DD0003FF48CAE00F01CFFE1E70220FFF7DCFCE3 +:100DE00000283FF483AE05A9142000F017FF074642 +:100DF0000421049004A800F08DFE3946B9E73220A2 +:100E000000F06AFE071EFFF671AEBB077FF46EAE00 +:100E1000384A07EB0903926893423FF667AE022017 +:100E2000FFF7BAFC00283FF461AE27F003074F44F8 +:100E3000B9453FF4A5AE484609F1040900F09CFE0F +:100E40000421059005A800F065FEF1E74FF47A70E3 +:100E5000FFF7A2FC00283FF449AE00F0C9FE0028CD +:100E600044D00A9B01330BD008220AA9002000F0CD +:100E70007DFF00283AD02022FF210AA800F06EFF53 +:100E8000FFF792FC1C4805F0F9FB13B0BDE8F08FAA +:100E9000002E3FF42BAE0BF00B030B2B7FF426AE92 +:100EA0000023642105A8059300F02AFE07460028C8 +:100EB0007FF41CAE0220FFF76FFC804600283FF451 +:100EC00015AEFFF771FC41F2883005F0D7FB0598AD +:100ED00000F0D8FF46463C4600F08CFFA6E50646EB +:100EE0004EE64FF0000901E6BA467EE637467CE65C +:100EF0009422002000220020A086010070470000FC +:100F000070470000704700002DE9F04100F5803780 +:100F1000044616463B7C5BB9C0681030204400F0A4 +:100F2000F7FEE5683544B5F5004FE56002D816B127 +:100F3000BDE8F081DEB905F07F0605F11000002163 +:100F4000C6F180062044F6B232462E4400F006FF79 +:100F5000A06804F11008324600F10060414600F537 +:100F6000003006F069F830B901233B74E0E74FF434 +:100F700000463546ECE7A26805F1100140463244D0 +:100F80002144A260E268521BE26000F0C1FE022030 +:100F9000BDE8F04100F09ABE183000F0E9BC000056 +:100FA00010B5044601F002F8204610BD10B5044605 +:100FB00000F0FCFF204610BDC3B280B2A3F1410295 +:100FC000052A02D8373800B27047613B052B94BF21 +:100FD00057383038F7E70000F8B50446154608469C +:100FE00003220C4900F09EFE014688B908346F1CAC +:100FF00015F91100FFF7E0FF064617F9110001315E +:10100000FFF7DAFF102940EA061004F8010BEFD1D0 +:10101000F8BD00BF709200082DE9F04FADF53F7D9F +:101020000746416801222AA802F0A2FE002840F0EB +:1010300087800646824681461125DFF80C81DFF85D +:101040000CB101AB4FF4805241462AA802F0F0FFE8 +:10105000002875D1019AB2F5805F71D8002A65D059 +:101060000446019A9442ECD2282D0FD008DC132DAF +:101070002DD01E2D39D0112D13D00134A4B2F0E79C +:10108000322D2DD0372D2FD02D2DF6D13B68121BB0 +:1010900008EB040138461B692D259847BDF804402C +:1010A000EBE7121B022A09D9594608EB040000F0AD +:1010B00039FE18B902342825A4B2DEE718F8043046 +:1010C0003A2B3DD00A2B1CBFA1461325D5E718F8B3 +:1010D00004300A2B34D03A2B04BFA2463225CCE789 +:1010E00018F80430202BC8D0264618F804300A2BF4 +:1010F0001AD1AAEB090208EB090102A811254F2A0F +:1011000028BF4F2208F0A0F8A21B08EB060116A882 +:101110004F2A28BF4F2208F097F83B6816AA02A969 +:10112000DB6838469847A8E71E25A6E73B6838469F +:1011300004491B69984701200DF53F7DBDE8F08FFC +:101140000020F9E772930008A023002074920008A1 +:1011500000F1180110B5044686B00846019100F070 +:10116000F1FB2046FFF758FF60B1019902A800F09B +:1011700049FC102204F1080102A808F025F8B0FA91 +:1011800080F0400906B010BD70B504460025EEB2EF +:10119000304600F0FFFC58B100213046013500F028 +:1011A00009FD08B9002070BD022000F08FFDEEE7B8 +:1011B0002046FFF731FF0028F4D004F58034207C6E +:1011C00080F00100EFE70000F0B5C9B006F0A0F92B +:1011D00000F008FF18B90025284649B0F0BD69465F +:1011E0002A4802F0E7FF00284BD1294C204603F0A3 +:1011F00011F8284803F00EF8274803F00BF82146B1 +:10120000224803F083F80028E5D1702000F0C8FEE2 +:10121000064610B1214B44600360336830469B683A +:101220009847054600282ED01A4F1948394603F032 +:101230006DF805460028CED1194800F0B1FE0446ED +:1012400038B1184B4760036000F58033C0E90255A0 +:101250001D74236820469B689847054628B10E49AF +:101260000C4803F053F80028B5D1336830465B686A +:1012700098471CB1236820465B68984700F09AFEA7 +:10128000AAE70025FAE70446EFE700BF78920008D6 +:10129000889200089F920008B5920008D892000832 +:1012A00014000100F49200082DE9F04FD44A8DB0EB +:1012B0000B68D0F804A001931A440368D14E1A4475 +:1012C000D1F81C90DFF8B4C3DFF8B4B3D0E902342E +:1012D000634003EA0A03634013444A6802920AEB3C +:1012E0007363029CC84A2244C468224484688AEA20 +:1012F00004051D40654015448A68039203EB35558B +:10130000039CC24A2244846822448AEA03042C4093 +:1013100084EA0A041444CA6805EBF43404921644BF +:1013200083EA0502224056445A4032440E6905962B +:1013300004EBB222059FB64E3E441E4485EA0403E8 +:1013400013406B4033444E69069602EB7363069F6D +:10135000B04E3E442E4484EA02051D4065403544AB +:101360008E69079603EB3555079FAB4E3E442644E6 +:1013700082EA03042C4054403444A84E4E4405EB0A +:10138000F434164483EA050222405A4032440E6A7D +:10139000089604EBB222089FA14E3E441E4485EA03 +:1013A000040313406B4033444E6A099602EB7363A7 +:1013B000099F9C4ED1F830E03E44D1F83880F34488 +:1013C0002E4484EA02051D40654035448E6AA6F528 +:1013D000244703EB35550A964F3F274482EA03041E +:1013E0002C4054403C44CF6A0B9705EBF4340B9EE1 +:1013F0008D4F3744029E174483EA050222405A402B +:101400003A448A4F774404EBB2221F4485EA04032E +:1014100013406B403B444F6BBC4402EB7363654429 +:1014200084EA020C0CEA030C8CEA040C6544DFF835 +:1014300054C2C44403EB3555A44482EA03042C404F +:1014400054406444D1F83CC0794905EBF43461441C +:10145000114483EA050222405A400A44754904EBCC +:10146000B2223144079E194484EA02032B406340B0 +:101470000B44714902EBF36331440B9E0D4482EA45 +:1014800003012140514029446C4D03EBF151354497 +:10149000019E254483EA010414405C402C44684DBD +:1014A00001EBB4443544069E154481EA04021A4017 +:1014B0004A402A44634D04EB323235440A9E1D44AF +:1014C00084EA02030B4063402B445F4D02EBF3635D +:1014D0003544059E0D4482EA0301214051402944D0 +:1014E0005A4D03EBF1516544254483EA010414404D +:1014F0005C402C44564D01EBB4443544099E1544E0 +:1015000081EA04021A404A402A44524D04EB323226 +:101510003544049E1D4484EA02030B4063402B447F +:101520004D4D02EBF36345440D4482EA0301214033 +:1015300051402944494D03EBF1513544089E2C4458 +:1015400083EA010515405D402C44454D01EBB44450 +:101550003544039E2A4481EA04051D404D402A4437 +:10156000404D04EB32323D442B4484EA020593445F +:101570000D4065402B443C4D02EBF3633544069E21 +:10158000294482EA0305254055402944374D03EBA1 +:10159000F1514D442C4483EA010515405D4025443A +:1015A00001EBB54581EA050404EA03024A405A44C6 +:1015B000A6F5B82B089E05EB3232ABF2BE6B544059 +:1015C0005B4423442A4C344402EB33730B9E0C449B +:1015D00085EA020159402144264C344403EB715101 +:1015E000029E254482EA03044C402544224C444494 +:1015F00001EB3545144483EA01026A40224443E08A +:1016000078A46AD7EECEBDC156B7C7E8DB702024F8 +:10161000AF0F7CF52AC68747134630A8019546FDD3 +:10162000D8988069AFF7448BBED75C892211906B44 +:101630002108B44962251EF640B340C0515A5E26C7 +:10164000AAC7B6E95D102FD65314440281E6A1D88B +:10165000C8FBD3E7E6CDE121D60737C3870DD5F424 +:10166000ED145A4505E9E3A9F8A3EFFCD9026F6729 +:1016700081F6718722619D6D0C38E5FD937198FDAF +:101680008A4C2A8D8E4379A6934C344405EB722202 +:10169000059E1C4481EA0503534023448F4C344487 +:1016A00002EB33730A9E0C4485EA0201594021443F +:1016B0008B4C4C4403EB7151254482EA03044C40AB +:1016C0002C44884D354401EB3444019E154483EA93 +:1016D000010262402A44844D3D4404EB72221D44C1 +:1016E00081EA040353402B44804D354402EB3373AD +:1016F000049E294484EA02055D4029447C4D35441A +:1017000003EB7151079E254482EA03044C402C44AC +:10171000784D354401EB3444099E2A4483EA01059F +:1017200065401544744A324404EB7525039E134406 +:1017300081EA04026A401A44704B734405EB32722A +:101740000B4484EA0501514019446D4B634402EB9C +:1017500071511C4485EA02034B401C44694B3344DD +:1017600001EB3444019E1D4482EA010363402B4493 +:10177000654D04EB73233544069E154463EA01026C +:1017800062402A44614D03EBB2624D4462EA0409AF +:1017900029445F4D89EA0309454449442C445D4D81 +:1017A00002EBB1513544049E61EA03081D4488EA06 +:1017B0000208444401EB744464EA02034B402B44A6 +:1017C000554D04EBF323754463EA010E15448EEA8C +:1017D000040E0EEB0502514D03EBB262354462EA92 +:1017E000040E29440A9D8EEA030EA5F580164C4D81 +:1017F0007144A6F6833602EBB151264461EA030434 +:1018000054403444029E01EB7444354464EA0206B9 +:101810001D444E407319089E424D04EBF32335449A +:1018200063EA01061544664072193F4D03EBB2624C +:10183000654462EA040629443C4D5E403144079EFB +:1018400002EBB151354461EA03062C44384D564051 +:101850003D443444059E1D4401EB744464EA020394 +:101860004B402B44334D04EBF32335440B9E15447E +:1018700063EA010262402A442F4D03EBB262354411 +:10188000039E0D4462EA0401594029442B4D02EBAA +:10189000B15135442A4E254461EA030454402C4496 +:1018A000099D01EB74442E4464EA02051E4485EA56 +:1018B00001039D1903681A440AEB040303EBF523A3 +:1018C0000260436083681C44C36819448460C1603B +:1018D0000DB0BDE8F08F00BF44EABEA4A9CFDE4B37 +:1018E000604BBBF670BCBFBEC67E9B28FA27A1EA40 +:1018F0008530EFD4051D880439D0D4D9E599DBE6CD +:10190000F87CA21F6556ACC4442229F497FF2A43F1 +:10191000A72394AB39A093FCC3595B6592CC0C8F81 +:10192000D15D84854F7EA86FE0E62CFE144301A3B1 +:10193000A111084E827E53F735F23ABDBBD2D72AA9 +:1019400091D386EB094B036003F18833436003F1C5 +:101950002943A3F59613A3F68B638360A3F1883321 +:10196000C3600023C0E90433704700BF012345670B +:101970002DE9F8431446026905460E46E300C2F31A +:10198000C50800F118079B18036122BF43690133A2 +:10199000436112F4FC7F436903EB5473436114D039 +:1019A000C8F1400907EB08004C4504D22246BDE8C7 +:1019B000F84307F019BC403C4A464E4407F014FC7B +:1019C000444439462846FFF76FFCA04606EB04095D +:1019D000B8F13F0FA9EB08010AD94022384607F0B9 +:1019E00003FC39462846A8F14008FFF75DFCEFE705 +:1019F000A1096FF03F02384602FB014206EB81115C +:101A0000D5E7000070B50B6901F1180506460C46D4 +:101A1000C3F3C503EA18501C8022EA54C3F13F0205 +:101A2000072A1FD8002100F099F929462046FFF720 +:101A30003BFC38220021284600F090F92369294612 +:101A40002046236563696365FFF72EFC214610225B +:101A5000304607F0C9FB204658220021BDE87040FF +:101A600000F07CB9C3F137020021E5E72DE9F84F1A +:101A70004FF47A7306460D46002402FB03F7DFF8A5 +:101A80005080DFF8509098F900305FFA84FA5A1CC1 +:101A900001D0A34210D159F824002A4631460368E8 +:101AA000D3F820B03B46D847854205D1074B0120EB +:101AB00083F800A0BDE8F88F0134042CE3D14FF483 +:101AC000FA7004F0DBFD0020F4E700BFE4330020EF +:101AD0001022002014220020002307B50246012115 +:101AE0000DF107008DF80730FFF7C0FF20B19DF81A +:101AF000070003B05DF804FB4FF0FF30F9E700008A +:101B00000A46042108B5FFF7B1FF80F00100C0B21A +:101B1000404208BD074B0A4630B41978064B53F8CB +:101B20002140014623682046DD69044BAC4630BCA9 +:101B3000604700BFE433002014220020A08601008B +:101B400070B50A4E00240A4D05F01AFA3080286854 +:101B50003388834208D905F00FFA2B680444013317 +:101B6000B4F5003F2B60F2D370BD00BFE633002018 +:101B7000A033002005F0D2BA00F1006000F500307B +:101B80000068704700F10060920000F5003005F039 +:101B900053BA0000054B1A68054B1B889B1A8342F9 +:101BA00002D9104405F0E8B900207047A0330020A6 +:101BB000E633002038B50446074D29B12868204493 +:101BC000BDE8384005F0F0B92868204405F0DAF99E +:101BD0000028F3D038BD00BFA0330020002070479C +:101BE00000F1FF5000F58F10D0F80008704700009A +:101BF000064991F8243033B100230822086A81F89D +:101C00002430FFF7BFBF0120704700BFA43300207E +:101C1000014B1868704700BF0010005C194B013879 +:101C20000322084470B51D68174BC5F30B042D0C37 +:101C30001E88A6420BD15C680A46013C82421346CC +:101C40000FD214F9016F4EB102F8016BF6E7013AB9 +:101C500003F10803ECD181420B4602D22C2203F897 +:101C6000012B0424094A1688AE4204D1984284BF4D +:101C7000967803F8016B013C02F10402F3D1581A83 +:101C800070BD00BF0010005C2422002034930008C7 +:101C9000022804D1054B4FF400129A6170470128C5 +:101CA000FCD1024B4FF48012F7E700BF001002583E +:101CB000022803D1044B20229A6170470128FCD1ED +:101CC000014B1022F8E700BF00100258022805D18E +:101CD000064A536983F02003536170470128FCD101 +:101CE000024A536983F01003F6E700BF0010025860 +:101CF00070B504464FF47A764CB1412C254628BF86 +:101D0000412506FB05F0641B04F0B8FCF4E770BD48 +:101D1000002310B5934203D0CC5CC4540133F9E7DF +:101D200010BD0000013810B510F9013F3BB191F929 +:101D300000409C4203D11AB10131013AF4E71AB1D3 +:101D400091F90020981A10BD1046FCE703460246A0 +:101D5000D01A12F9011B0029FAD170470244034638 +:101D6000934202D003F8011BFAE770472DE9F843CC +:101D70001F4D14460746884695F8242052BBDFF8CD +:101D800070909CB395F824302BB92022FF2148464F +:101D90002F62FFF7E3FF95F824004146C0F10802E7 +:101DA00005EB8000A24228BF2246D6B29200FFF780 +:101DB000AFFF95F82430A41B17441E449044E4B2AE +:101DC000F6B2082E85F82460DBD1FFF711FF00285A +:101DD000D7D108E02B6A03EB82038342CFD0FFF711 +:101DE00007FF0028CBD10020BDE8F8830120FBE7E6 +:101DF000A4330020024B1A78024B1A70704700BFC0 +:101E0000E433002010220020F8B5194C194803F0E3 +:101E10003DFF2146174803F065FF24684FF47A70B0 +:101E2000154ED4F89020154DD2F80438114F43F0D8 +:101E30000203C2F80438FFF75BFF2046104904F0A4 +:101E40005FF8D4F890200424D2F8043823F0020379 +:101E5000C2F804384FF4E133336055F8040BB8424C +:101E600002D0314603F070FE013CF6D1F8BD00BF50 +:101E7000309B000818490020CC3300201422002099 +:101E8000389B00080C4B70B50C4D04461E780C4B6B +:101E900055F826209A420DD00A4B002118221846E8 +:101EA000FFF75CFF0460014655F82600BDE870406E +:101EB00003F04ABE70BD00BFE433002014220020AE +:101EC00018490020CC330020F0B5A1B071B6002332 +:101ED0000120002480261A46194602F087FD4FF49F +:101EE000D067214A3D25136923BBD2F810310BBBC3 +:101EF000036804F1006199600368C3F80CD00368BB +:101F00005E6003681F6001680B6843F001030B60AB +:101F100001680B6823F01E030B6001680B68DB0788 +:101F2000FCD4037B8034416805FA03F3B4F5001F49 +:101F30000B60D8D102F09AFDB4F5001F11D0002437 +:101F40000A4E0B4D012005F0E9F83388A34205D96C +:101F500028682044013405F027F8F6E7002005F052 +:101F6000DDF861B621B0F0BD00200052E63300205C +:101F7000A033002030B50A44084D91420DD011F82D +:101F8000013B5840082340F30004013B2C4013F070 +:101F9000FF0384EA5000F6D1EFE730BD2083B8EDAF +:101FA0000121884238BF084605F090B908B105F014 +:101FB00091B9704710B5084C01220849002001F082 +:101FC000B3FE23783BB1064803F036FD044803F026 +:101FD00069FD0023237010BDE833002044930008FE +:101FE000C83600201D482DE9F041036D2BB90122B0 +:101FF0004FF48051503005F0D1FA194E33780BB1BF +:10200000FFF7D8FF0324174F4FF00008134D154971 +:102010002846C7F8048003F037FD284603F070FB1C +:1020200048B1013C284603F03DFD14F0FF04EED119 +:10203000204634700FE00C4901220C4801F074FE78 +:10204000014618B1284603F0F7FCEAE7084800F01B +:1020500011F801203070BDE8F08100BFC8360020C3 +:10206000E83300203C22002044930008EC33002099 +:10207000489300080FB4002004B070470068704710 +:1020800003460068596870470B0A017043700B0CD7 +:10209000090E8370C1707047110A0270037141709C +:1020A000110C120E8170C2701A0A42711A0C1B0EAA +:1020B0008271C37170470000C36A0239023B8B42D0 +:1020C00083BF4389006C01FB0300002070470000C0 +:1020D000C2F307238A76CB760378032B01BF120C59 +:1020E0000A75120A4A75704700F10B010022D301EC +:1020F00043EA520310F8012B52FA83F38842DAB212 +:10210000F5D110467047000010B541780446002014 +:10211000013102464901022A16BFA35C032203EBE8 +:10212000C03302F101021EBF9BB203EB500398B211 +:102130009142F0D810BD000002684AB1134613F86E +:10214000011B1F290DD93A29F9D1911C8B4202D0CC +:102150004FF0FF3070471278302AF9D10360002029 +:102160007047014B187870473836002038B50D4657 +:10217000044618B9092000232B6038BD0368002BE2 +:10218000F8D01A78002AF5D08188DA889142F1D106 +:10219000587804F00FFC10F00100EBD12368EBE756 +:1021A00038B50D4640F25231144602F0B9F9FF2815 +:1021B00007D9012C0BD9030A022468702B70204622 +:1021C00038BD30B1002CFAD001242870F7E7002484 +:1021D000F5E70446F3E700002DE9F8430026D0F8C0 +:1021E000008005460C468E76836B002B4AD098F80B +:1021F0000030042B4BD133463546402720E0B7F55D +:10220000187F80F0C480F90606F1010608BF023786 +:10221000D05B02372BB900F5205292B2B2F5006FB5 +:102220000DD305F11A01C5F1FF0240EA0340214434 +:10223000FFF7B6FF002800F0AA80054400200346FF +:10224000D8F8102092F82310B142D8D8002B40F0D3 +:102250009E80002D00F09B8000232544AB766373A5 +:10226000D8F81020137903F03701DB0621730BD463 +:1022700002F13800FFF704FFC4E90001938963818C +:10228000D3892381BDE8F88300200146F4E7C36CBD +:1022900001335ED1EA6B00232E26551E184615F831 +:1022A000011F013020290CD0052908BFE52109288C +:1022B00004D10B2B9EBFE71801337E73E71801335F +:1022C00079730B28EBD1E11800204873A17E002917 +:1022D0004BD1002B40D06FF00C0604F10D00082507 +:1022E000361B331810F8011B002938D02E298BB269 +:1022F0004AD0A3F14101192903D8117B0D4200D026 +:1023000020330373EDE7B9F1000F05D100F5205339 +:102310009BB2B3F5006F0BD307F11A01C7F1FF02AF +:1023200040EA09402144FFF73BFF48B10744002041 +:1023300002368146D8F80C30985B0028E3D1384645 +:10234000B9F1000F4FF0000218BF002023189A7651 +:10235000A0E7B1463746EDE73F23A37601232344A8 +:1023600000219976137B03B96373D37A02F11C00C1 +:1023700003F03F0323730023FFF780FE20606360B8 +:10238000D38A6381138B7CE710250B46B9E73F2383 +:102390000125A37660E7000038B50546002435F82E +:1023A000020B08B9204638BD02F0EEF86308C2B24D +:1023B00003EBC43312FA83F39AB2C0F3072303EB9F +:1023C000520303EBC2339CB2E9E7000037B5C37890 +:1023D00004461BB90025284603B030BD00F14C016E +:1023E000826C01234078019104F00AFB054680B914 +:1023F000A36BE070A06C226BC31A9342EAD2A3785D +:102400000199022BE6D102440123607804F0F8FA26 +:10241000E1E70125DFE7000038B5836C05460C468F +:102420008B4210D0FFF7D2FF60B92246012305F19D +:102430004C01687804F0C0FA00281CBF4FF0FF344C +:102440000120AC6438BD0020FCE7000038B5002353 +:102450000446C3704FF0FF338364FFF7DDFF0028AD +:102460004BD1B4F84A524AF655239D4207D10B226C +:10247000254904F14C0006F0A7FE00283FD094F84F +:102480004C30EB2B03D01833DBB2012B2ED84AF69D +:1024900055239D4206D108221C4904F19E0006F0F6 +:1024A00093FE48B3B4F85730B3F5007F1ED194F8CB +:1024B0005930DBB15A1E1A4218D1B4F85A30ABB1B8 +:1024C00094F85C30013B012B10D8B4F85D306BB14F +:1024D000B4F85F307F2B06D804F16C00FFF7CEFD17 +:1024E000B0F5803F02D3B4F8623053B94AF65520B4 +:1024F00085420CBF0220032038BD0420FCE70120E8 +:10250000FAE70020F8E700BF749300088093000802 +:1025100002392DE9F04701F007044FF0010A466C3B +:1025200005460AFA04F41746984606EB1136C1F33D +:10253000C809E4B2314628460136FFF76DFF18B1ED +:102540000120BDE8F087994605EB090292F84C306E +:10255000234214BF01210021414513D06340013FB4 +:1025600082F84C3085F803A0EBD0640014F0FF042F +:10257000EAD109F1010301244FF00009B3F5007F0E +:10258000E1D1D7E70220DCE701290246F8B50C4685 +:1025900040F28C800668F36A8B4240F28780337881 +:1025A000013B032B00F28280DFE803F00229384B65 +:1025B00004EB5405B16B304601EB5521FFF72CFFBE +:1025C00010B14FF0FF30F8BD6F1CC5F30805B16BBB +:1025D0003046354401EB572195F84C50FFF71CFF6E +:1025E0000028EED1C7F30807E3073E4496F84C00F5 +:1025F00045EA00204CBF0009C0F30B00E3E7B16BD4 +:10260000304601EB1421FFF707FF0028D9D1640001 +:1026100004F4FF742644B6F84C00D4E7B16B30469E +:1026200001EBD411FFF7F8FE0028CAD1A40006F18F +:102630004C0004F4FE742044FFF720FD20F07040AD +:10264000C1E7D0E90430D57953EA000101D091689F +:1026500001B95DBB9168022DA4EB01010DD1013BD5 +:10266000728940F1FF305B0A43EAC053B3FBF2F3D7 +:1026700099421BD81CD0601CA5E7032D02D1936999 +:102680008B42F8D8D3699BB9B16B304601EBD411BA +:10269000FFF7C2FE002894D1A0004C3600F4FE7073 +:1026A0003044FFF7EBFC20F000408CE701208AE784 +:1026B0006FF0004087E70000F8B5066804460D4655 +:1026C0003378042B0CBF4FF080524FF400128A4233 +:1026D00001D80220F8BDCA06FBD182680163D2B9D5 +:1026E000022B13D83389B3EB551FF2D9F36BA363D5 +:1026F000A36B6263002BECD003EB55234C36C5F380 +:1027000008050020A3633544E563E3E7F36BC2717A +:10271000002BE7D01A4677897F02BD42114604D2CA +:102720003046FFF7C9FCA063E2E72046FFF72CFF25 +:10273000431C024606D00128CBD9F36A8342C8D98C +:10274000ED1BEAE70120C5E701292DE9F047064620 +:102750000C46174608D9C36A8B4205D90378022B69 +:1027600062D003D8012B22D0022552E0033B012B7B +:10277000FAD8816B01EBD411FFF74EFE0546002815 +:1027800047D1A40006F14C0304F4FE741C443378D2 +:10279000042B07D0204627F07047FFF76FFC00F0AE +:1027A0007040074339462046FFF76EFC2FE001EBEF +:1027B0005108816B01EB5821FFF72EFE054640BB07 +:1027C00014F0010406F14C0908F1010AC8F30808E5 +:1027D00008BFFBB230461FBF19F8083003F00F02E4 +:1027E0003B0103F0F00318BF134309F8083001233D +:1027F000B16BF37001EB5A21FFF70EFE054640B9AD +:10280000CAF3080A44B1C7F3071709F80A7001238D +:10281000F3702846BDE8F08719F80A30C7F303279C +:1028200023F00F031F43F0E7816B01EB1421FFF747 +:10283000F3FD05460028ECD1640006F14C0304F4D6 +:10284000FF741F551919C7F307274F70DFE7000002 +:10285000F8B504460E461746E3690BB91846F8BDAD +:10286000012BA6EB0305206814BFAA1C3A46691C7D +:10287000FFF76AFF0028F2D1E369013BE361EBE770 +:1028800001292DE9F84306460C461746056802D88B +:102890000220BDE8F883EB6A8B42F9D97AB9A146E8 +:1028A00021463046A046FFF76FFE0446B0B92B78AC +:1028B000042B02D1002F43D1F7710020E9E72B78D8 +:1028C000042B02D1C379022BE9D04FF0FF323946F5 +:1028D0002846FFF739FF0028E1D0DAE70128D7D0F2 +:1028E000421C01D10120D4E72B78042B19D1EA6ACC +:1028F000AB69023A93421CD308F10102A2420CD008 +:102900002B78042B08D10023A2EB09024946284664 +:10291000FFF7FEFD0028BCD1A146EB6AA342BFD859 +:10292000C5E7002241462846FFF70EFF0028DED00B +:10293000AFE70133AB612B7943F001032B71DBE788 +:10294000F3798BB9B468BC4202D10223F371B4E7C6 +:1029500021463046FFF718FE012899D9431CC1D003 +:1029600001348442EFD0A8E7032BA6D1B368BB4261 +:10297000A3D8B2691344BB429FD3E6E770B5C379CD +:102980000446032B06D181688369CD18A94203D17F +:102990000023E371002070BD4E1C20683246FFF713 +:1029A000D3FE0028F7D13146F0E700002DE9F743C8 +:1029B00005460191FFF70AFD0446002849D105F1BB +:1029C0004C09019928464FF40072FFF775FB214628 +:1029D000A86407464846FFF7C1F96C896402B4F55C +:1029E000004F28BF4FF40044B4F5007F2FD9204694 +:1029F00004F074FC804630B122460021640A0026AF +:102A0000FFF7ACF909E06408EEE72346BA1941463E +:102A1000687803F0F5FF18B926446B899E42F4D319 +:102A2000404604F06BFC6889801B18BF012003B08E +:102A3000BDE8F08301366B899E42F4D20123BA19B6 +:102A40004946687803F0DCFF0028F3D0EBE7002666 +:102A5000F1E70120EBE70000F8B50446FFF7B6FC0C +:102A60000546002842D12378032B37D12779012F3F +:102A700034D104F14C0601464FF400723046FFF7A2 +:102A80006DF955234122722184F84A32AA2304F5B4 +:102A90000D7084F84F2084F84B32522384F83012A2 +:102AA00084F84C3084F84D30612384F8311284F876 +:102AB0004E3084F83332A16984F83222FFF7E4FA09 +:102AC000616904F50E70FFF7DFFA626B3B46314631 +:102AD00001326078A26403F093FF257100226078D0 +:102AE000114603F0B1FF003818BF0120F8BD000007 +:102AF00000232DE9F0430B6085B00F461546FFF724 +:102B00001BFB061EC0F2B281804B53F82640002CFE +:102B100000F0AE813C6005F0FE0523786BB1607873 +:102B200003F048FFC70708D41DB110F0040500D01A +:102B30000A25284605B0BDE8F0830023F0B22370D3 +:102B4000607003F023FFC10700F194810DB14207CB +:102B5000EED400212046FFF779FC022840F099804E +:102B60006E4604F2122304F2522132461846103304 +:102B7000FFF784FA42F8040B8B42F7D1002556F890 +:102B8000041B00297DD02046FFF760FC012879D87E +:102B90000128A26C40F0C08004F1570304F18C01BD +:102BA00013F8015B002D7BD18B42F9D1B4F8B4301E +:102BB000B3F5807F74D194F8B830092B70D104F14B +:102BC0009400FFF75DFA4FF0FF33171841F1000151 +:102BD000BB4275EB010363D304F1A000FFF74EFA8B +:102BE00094F8BA302063012BA37059D194F8B990AE +:102BF00003FA09F91FFA89F36381002B50D0444B83 +:102C000004F1A800FFF73AFA0646984248D8831C18 +:102C1000626304F1A400E362FFF730FA00EB0208FC +:102C200004F19C00C4F84080FFF728FA10441FFA12 +:102C300089F2A06306FB02F313EB080345EB0502E0 +:102C40009F4271EB02032BD32E4604F1AC00FFF739 +:102C500015FAE06365B96389B34221D9E16B204677 +:102C6000FFF72AFA81192046FFF7D6FB98B90136FB +:102C7000631993F84C30812B14D02035C5F3080527 +:102C8000E8E703200135042D7FF479AF042807D14C +:102C900001E0042801D101254BE701287FF678AF38 +:102CA0000D2546E705F1140004F14C063044FFF70A +:102CB000E5F901280546F3D9E36A8342F0D9618931 +:102CC000821E236C02FB01336364A16B204601EB7F +:102CD000D511FFF7A1FB0028DDD105F07F0006EB41 +:102CE0008000FFF7CBF9431C03D00135A842ECD09C +:102CF000D6E70425C4E90500064A25700025138897 +:102D0000E56101339BB21380E38012E73C3600207B +:102D1000FDFFFF7F40360020B4F85730B3F5007F49 +:102D2000BED1B4F8626026B904F17000FFF7A6F9CD +:102D3000064694F85C302663591EA3700129AFD86B +:102D400094F859506581002DAAD0691E2942A7D157 +:102D5000B4F85D8018F00F0FA4F80880A0D1B4F883 +:102D60005F0018B904F16C00FFF788F9B4F85A1045 +:102D7000002995D006FB03FE01EB181CF4446045C6 +:102D80008ED3A0EB0C00A842B0FBF5F388D33E48ED +:102D9000834285D84FF6F57083426DD903259F1C79 +:102DA000114402EB0C03032DE7626263A163236409 +:102DB0004CD1B4F8763053EA08037FF471AFBB000E +:102DC00004F17800FFF75AF9E06303F2FF13B6EB62 +:102DD000532FFFF465AF4FF0FF33032DC4E90533E4 +:102DE0004FF08003237187D1B4F87C30012B83D15D +:102DF000511C2046FFF710FB00287FF47DAFB4F88C +:102E00004A224AF6552320719A427FF475AF1F4B30 +:102E100004F14C00FFF732F998427FF46DAF03F1F3 +:102E2000FF5304F50C70FFF729F903F50053203325 +:102E300098427FF461AF04F50D70FFF71FF9A061B0 +:102E400004F50E70FFF71AF9606155E7B8F1000F4D +:102E50003FF426AF7144022D4FEA4703E1631EBFE2 +:102E6000D91907F0010303EB5103AEE70B2560E628 +:102E70000C255EE603255CE640F6F575AB428CBF9B +:102E8000022501258BE700BFF5FFFF0F525261417C +:102E90002DE9F84F07460568884649B96E69C6B1FD +:102EA000EB6AB34298BF0126AB69A3B9002405E0E1 +:102EB000FFF76AFB0128044603D801242046BDE839 +:102EC000F88F421C00F0D280EB6A8342F6D8464667 +:102ED000EAE70126E8E72A78EB6A042A40F08380D3 +:102EE000A6F1020A023B4FF0010B9A4528BF4FF0B2 +:102EF000000AD146696C284601EB1931FFF78CFABC +:102F000000283BD109F00703EA6AC9F3C8010BFAAC +:102F100003F3901EDBB26A184C4609F1010992F8DE +:102F20004C20814502EA030233BF5B0000234FF4CB +:102F30000071DBB228BF9946B2B90234631E033375 +:102F4000BCD80123214628461A46FFF7E1FA022899 +:102F5000B3D0012800F08A80B8F1000F13D102230A +:102F6000FB710028A9D130E0CA450AD0002BD2D18C +:102F70000131B1F5007FBDD20123CCE74FF0FF3422 +:102F8000DCE70024DAE7FB79022B07D1731CA342AC +:102F9000E7D0BB68F31ABB610323FB7108F10102A0 +:102FA000FB69A24205D113B10133FB61D9E70223CA +:102FB000FBE70BB90123FB61224641463846FFF788 +:102FC00047FC00284FD10123FB61EA6AAB69023A52 +:102FD0006C6193429CBF03F1FF33AB612B7943F0EB +:102FE00001032B716AE7464514D1741C3846A3428D +:102FF00098BF02242146FFF7C7FA01283FF45DAFCE +:10300000431C33D0E0B16B69012B03D9EA6A9342C8 +:1030100038BF1E4634460134EB6AA34203D8012E62 +:103020007FF644AF022421463846FFF7ADFA48B197 +:1030300001283FF442AF013018D0B442EBD135E75C +:10304000002CE7D04FF0FF3221462846FFF77CFBEB +:1030500048B9B8F1000FB8D0224641462846FFF7DC +:1030600073FB0028B1D001287FF427AF4FF0FF3465 +:1030700024E700002DE9F84306680446076B8946FB +:1030800033782037042B0CBF4FF080534FF40013DC +:10309000BB429CBF00238363836B73B1C7F30808F3 +:1030A000B8F1000F3CD10133416B836339B93389E7 +:1030B000B3EB571F34D80023A36304200AE07389BD +:1030C000013B13EA57232BD1FFF75EFA012805468F +:1030D00002D80220BDE8F883421C01D10120F9E7A3 +:1030E000F36A834216D8B9F1000FE4D0616B204631 +:1030F000FFF7CEFE0546C8B10128EAD0431CEDD04B +:1031000001463046FFF752FC0028E7D1E37943F04F +:103110000403E371294630466563FEF7CDFFA063E3 +:103120004C36002027634644E663D3E70720D1E707 +:10313000F8B50E46002104460768FFF7BDFA98B9B6 +:103140000546A16B3846FFF767F968B93A78E36B33 +:10315000042A1B780CD11B060ED5054601212046FA +:10316000FFF788FF0028ECD0042808BF072006E0FE +:10317000E52B01D0002BF0D10135B542EED1F8BDE1 +:10318000C16C4B1C2DE9F04104460568066B1FD14C +:10319000E5274FF00108A16B2846FFF73DF998B9E4 +:1031A0002A78E36B042A09BF1A781F7002F07F02A5 +:1031B0001A7085F80380236BB3420DD2002120469C +:1031C000FFF758FF0028E6D0042808BF022003E0DC +:1031D000FFF772FA0028DBD0BDE8F0812DE9F0415D +:1031E00005460068A96B0669FFF716F9044620B981 +:1031F000EB6B1A78852A03D002242046BDE8F081C3 +:10320000324603F1200153F8040B8B4242F8040BC1 +:10321000F9D1777801377F01A7F16003B3F5007F1B +:10322000EAD800212846FFF725FF04280446E3D00A +:103230000028E2D1A96B2868FFF7EEF804460028C1 +:10324000DBD1EB6B1A78C02AD6D106F1200203F14C +:10325000200153F8040B8B4242F8040BF9D196F885 +:1032600023300F222C33B3FBF2F3B7EB431FC3D34E +:103270004FF0400800212846FFF7FCFE04280446D2 +:10328000BAD00028B9D1A96B2868FFF7C5F8044661 +:103290000028B2D1EB6B1A78C12AADD1B8F5187FEE +:1032A00009D206EB080203F1200153F8040B8B420C +:1032B00042F8040BF9D108F120084745DAD8B8F5EF +:1032C000187F9AD83046FEF71FFF7388834294D048 +:1032D00092E700000B68002210B5036004460B6AF9 +:1032E00083604B6AC261C37123F0FF03896AC0E93E +:1032F0000432C164FFF7E0F920B92046BDE8104070 +:10330000FFF76CBF10BD0000F8B503680546012744 +:103310001C692046FEF7F8FEA070000A6678E0708F +:103320002846E96CFFF7C8F920B1022828BF02201F +:10333000C0B2F8BDA96B2868FFF76EF80028F4D179 +:10334000EB6B04F1200254F8041B944243F8041B75 +:10335000F9D12B68DF70002EE7D000212846013E0E +:10336000FFF788FEE0E700002DE9F8434FF0FF0883 +:1033700006460768042445464FF6FF79B16B11B93C +:10338000002C73D063E03846FFF746F80446002867 +:103390005DD1F06B0378002B6ED03A78042A11D1FE +:1033A000852B4DD1336B3046F364FFF717FF04468E +:1033B00000284CD13B691B7903F03F03B3712046D1 +:1033C000BDE8F883C27AE52B02F03F02B27143D028 +:1033D0002E2B41D022F0200108293DD00F2A40D1C8 +:1033E000590637D503F0BF05336B90F80D80F364B1 +:1033F000437B434530D1428B72BB03780D21FC687F +:1034000023F04003DFF874E0013B4B4301211EF839 +:1034100001CB30F80CC009B3FF2B1DD824F813C022 +:103420006146013301320D2AF1D10278520605D5E9 +:1034300021B1FF2B10D8002224F81320013DEDB25A +:1034400000213046FFF716FE0446002896D00023E0 +:10345000B363B4E7AB42CBD0FF25F1E7CC45E1D075 +:10346000FAE72DB9FEF740FE404501D10024A6E75A +:103470004FF0FF33F364A2E70424E8E71C9400084C +:103480002DE9F04F002187B00446D0F80090FFF7F7 +:1034900013F9804670B999F80030042B33D1D9F86C +:1034A0000C00FEF779FF07462046FFF75DFF054653 +:1034B00020B18046404607B0BDE8F08FD9F8103003 +:1034C0009A8CBA42F0D193F823B040265D4506D1DC +:1034D000D9F80C3033F81530002BE5D1EAE7F106C6 +:1034E000D9F8103008BF0236985B01F04DF8D9F8D2 +:1034F0000C30824633F8150001F046F88245D3D1EE +:1035000002360135E2E74FF0FF0A4FF0FF3B554628 +:10351000C4F84CB0A16B4846FEF77EFF00285CD192 +:10352000E66B3778002F77D0F27AE52F02F03F0371 +:10353000A37103D0120704D50F2B04D0C4F84CB0EC +:103540004FE00F2B54D194F84B3058063FD47906F6 +:1035500045D5236B07F0BF0796F80DA0E364737B96 +:1035600053453ED1738B002B3BD135780121D9F8DF +:103570000C3005F03F0501930D23013D5D43284BC1 +:1035800013F8012BB25A71B3FF2D059329D81046B9 +:10359000049200F0F9FF6B1C03900293019B33F837 +:1035A000150000F0F1FF039981421AD1049A029D9F +:1035B0001146059B1B4A9342E2D133785A0604D543 +:1035C00019B1019B33F815305BB97D1EEDB20021B6 +:1035D0002046FFF74FFD00289CD080466AE7BD4299 +:1035E000BDD0FF25F3E74FF6FF708242E2D0F8E747 +:1035F0002DB93046FEF778FD50453FF45BAF94F8A7 +:103600004B30DB079AD40B2204F14001304605F021 +:10361000DBFD002892D14DE74FF004084AE700BFD8 +:103620001C940008299400082DE9F04F90F84BB045 +:1036300099B004461BF0A00540F068810668F26866 +:1036400032F81530002B4AD13378042B40F08780B4 +:103650000F230E352046B5FBF3F5A91CFFF768FDD7 +:103660008146002877D1236B0135A3EB4515E3791B +:103670005A07E56435D523F004032046E371FFF7CC +:103680007DF950BB4FF0FF32616B2046FFF7E0F849 +:1036900018BBA3682BB3214604A8FFF71BFEE0B9B3 +:1036A00070894FF40071D4E90423E0FB01233069F1 +:1036B000C4E904233830FEF7EFFC3069D4E9042371 +:1036C0002830FEF7E9FCE379326904A843F00103EE +:1036D00082F82130FFF718FE18B181463BE0013532 +:1036E000AEE7D6E90354402200212046FEF736FB20 +:1036F0008523012140222370C0234FF0C10C04EB2D +:10370000010884F8203000231E469E46571C04F80A +:1037100002C0F0B2023204F807E021B135F813100C +:1037200009B10133DBB20F0AA15408F8027002326A +:10373000D706F2D135F813700136002FE6D184F8A0 +:103740002330831C28466370FEF726FE84F824008D +:10375000000A84F82500484619B0BDE8F08F04F14E +:1037600040070DF1100A1BF0010F97E807008AE8E7 +:10377000070000F0D38040234FF0010884F84B305D +:10378000BC46F368B8F1050F9AE80700ACE80300FF +:103790002CF8022B4FEA12428CF8002059D9981EBF +:1037A000424630F8021F002942D10DF10F0C0721CB +:1037B00002F00F0E914612090EF13000392888BF31 +:1037C0000EF1370001390CF8010902D0B9F10F0FE1 +:1037D000EED818AB7E205A1802F8580C3846002252 +:1037E000914206D010F801CB02F1010EBCF1200F7E +:1037F00031D104F13F0C072902F1010297BF18AB48 +:1038000020205818013198BF10F8580C072A0CF8DE +:103810000200F0D92046FFF733FE8146002878D118 +:1038200008F10108B8F1640FAAD14FF0070992E737 +:103830004FF0100C01F0010E49080EEB4202D303C9 +:1038400044BF82F4883282F02102BCF1010CF1D134 +:10385000A7E74246A9E77246C2E7216B2046A1EBE3 +:103860004511FEF729FF814600287FF474AF4FF61B +:10387000FF783846FEF738FC0190A16B3046FEF722 +:10388000CBFD814600287FF466AFE36BE9B2019A75 +:103890004FF00D0CD6F80CE05A734FF00F02DFF822 +:1038A000E0A0DA724A1E18730CFB02F28446987686 +:1038B000D87640451AF8019B0CF1010C18BF3EF870 +:1038C000120003EB090B18BF013203F809004FEA9D +:1038D0001029002808BF4046BCF10D0F8BF801905D +:1038E000E7D1404502D03EF812200AB941F040012C +:1038F0001970012300212046F370FFF7BBFB8146BE +:1039000000287FF428AF013DB7D11BE04FF0060936 +:1039100021E704287FF41FAF84F84BB01BF0020F9F +:1039200020461BBF0C350D210125B5FBF1F518BF55 +:1039300001352946FFF7FCFB814600287FF40BAFD9 +:10394000013D8AD1A16B3046FEF766FD8146002815 +:103950007FF401AF01462022E06BFEF7FFF9E36B35 +:1039600003CF18605960BA7839889A72198194F82F +:103970004B30E26B03F0180313730123F370EAE694 +:103980001C94000810B504460A463430FEF776FB56 +:10399000886004F13800FEF773FBC2E9040194F873 +:1039A000213003F00203D3710023D36110BD000066 +:1039B00003284B8B04BF8A8A43EA024318467047A8 +:1039C0002DE9F04F0B7899B0044689462F2BD0F89B +:1039D00000B001D05C2B09D14A46137891460132E0 +:1039E0002F2BFAD05C2BF8D0002301E0DBF81C3041 +:1039F000A3600023E3619BF80030042B1ED1A36871 +:103A0000E3B1DBF82030214604A82362DBF8243040 +:103A10006362DBF82830A362FFF75CFC03460028F2 +:103A200054D1DBF8102002F13800FEF727FBC4E97F +:103A3000040392F8213003F00203E37199F8003097 +:103A40001F2B00F2358180230021204684F84B3063 +:103A500019B0BDE8F04FFEF72FBE49460B788946F6 +:103A600001312F2BFAD05C2BF8D01F2B8CBF0025F7 +:103A70000425012F2FD113882E2B31D1002322F8BA +:103A8000173004F140029F428CBF2E2120210133C8 +:103A90000B2B02F8011BF6D145F02005204684F8D7 +:103AA0004B50FFF7EDFC94F84B30002800F0E78016 +:103AB00004280BD1990603F0040240F1DC80002AAF +:103AC00000F0F6808023002084F84B3019B0BDE868 +:103AD000F08F0425CDE7022F02D153882E2BCAD0B8 +:103AE000911E87BB002322F81730002F00F01181B0 +:103AF00032F81300194601332028F9D009B92E28CD +:103B000001D145F00305901E30F817302E2B01D05F +:103B1000013FF9D14FF020334FF0000A6364D046E3 +:103B20002364C4F847300823481C32F81160009021 +:103B3000F6B1202E03D02E2E0DD1B84210D045F074 +:103B400003050099F0E731F81730202B01D02E2B18 +:103B5000C8D1013FC5E79A4505D20099B9423BD18A +:103B60000B2B30D101E00B2B27D145F003050B23A4 +:103B700094F84020E52A04BF052284F84020082B51 +:103B800004BF4FEA88085FFA88F808F00C030C2B92 +:103B900003D008F00303032B01D145F00205A80769 +:103BA0003FF57CAF18F0010F18BF45F0100518F075 +:103BB000040F18BF45F0080570E70099B94202D01C +:103BC00045F00305D4D84FEA88080B234FF0080AC4 +:103BD00000975FFA88F8B4E77F2E15D9304640F297 +:103BE0005231CDE9022345F00203019300F098FC25 +:103BF00010F0800F0646DDE9022316D000F07F06A4 +:103C000046498E5D019D46B331464548CDE90123C5 +:103C100005F004FBDDE90123F8B9A6F1410189B201 +:103C200019291ED848F0020810E0FF28EAD9591EC9 +:103C30008A4503D345F003059A4682E704EB0A015F +:103C4000000A0AF1010A019D81F8400004EB0A0113 +:103C50000AF1010A81F8406073E745F003055F2629 +:103C6000F4E7A6F1610189B219299EBF203E48F010 +:103C70000108B6B2EAE7002A08BF052026E75A077E +:103C80003FF524AFA379DB0645D59BF80000042857 +:103C900035D1A3682146E27923622369DBF810005D +:103CA00023F0FF0313436362E36CA362FFF76AFE32 +:103CB00023680027DA6819F8010B00283FF409AFE0 +:103CC00040F25231009200F04BFC054608B31F2829 +:103CD000009A7FF6FEAE2F283FF4BFAE5C283FF47B +:103CE000BCAE7F2805D801460E4805F097FA009A29 +:103CF00078B9FF2F0DD022F817500137DBE7216B81 +:103D00000BF14C03C1F308011944FFF751FEA06009 +:103D1000CEE70620DAE60520D8E600BF9C9300082F +:103D2000959300088C9300081FB5CDE9001003A8F7 +:103D300014460391FEF700FA002815DB0B4A52F8EF +:103D400020300BB100211970019B0BB100211970BB +:103D500042F820302CB1002201A96846FEF7C8FEC7 +:103D60000446204604B010BD0B24FAE73C36002080 +:103D70002DE9F04798B0904605460191002800F0E3 +:103D8000528102F03F0603A901A83246FEF7B0FEB9 +:103D9000002840F04681039B4FF48C60049303F0AD +:103DA0009DFA0746002800F04081039B00F5007251 +:103DB0000199D86004A81A61FFF702FE044620B9F1 +:103DC0009DF95B30002BB8BF062418F01C0F00F0E3 +:103DD000CD80002C4CD0042C40D104A8FFF724FC4B +:103DE000044600283AD146F00806039B1A78042AB4 +:103DF00040F08380186929462B60FFF7C3FD039BC1 +:103E00001E22002118690230FDF7A8FF039C002143 +:103E10001A2220692630FDF7A1FF236920221A719A +:103E2000246903F095FA0146012208342046FEF782 +:103E30002BF9039B04A81B6983F82120FFF764FA80 +:103E4000044658B9A96801B302462846FEF718FD92 +:103E5000AB68039A0446013B5361B4B1384603F0A2 +:103E60004DFA0CB100232B60204618B0BDE8F08756 +:103E70009DF8163013F0110F40F0848018F0040FF5 +:103E800040F0C98018F0080FAFD1039A3107139999 +:103E9000936C48BF46F04006E964AB641078042890 +:103EA00072D1069B9DF817102B62089B106923F0B6 +:103EB000FF030B4329466B62179BAB62FFF762FD62 +:103EC000DDF80CA00024002205F15008BAF80630F5 +:103ED00021464046C5F800A0AB80002385F830603D +:103EE00085F831406C64C5E90E234FF40072FDF78C +:103EF00035FFB20653D40024B0E703F029FA014697 +:103F0000009013980E30FEF7BFF813980099163002 +:103F1000FEF7BAF8039C13992078FFF749FD202398 +:103F200000228046CB7220461399FEF7D1F8139BEE +:103F3000002201211A775A779A77DA77039BD97092 +:103F4000B8F1000FA1D0414604A8D3F84890FEF77D +:103F500097FC0446002881D149460398FEF75CFA95 +:103F6000039B044608F1FF30586176E7002C7FF48C +:103F700075AF9DF81630DC064FD418F0020F84D0D0 +:103F8000D80782D5072469E7FFF712FD0023A86050 +:103F900001F11C00FEF772F86B61286190E7D5E92A +:103FA000046956EA0903A6D0BAF80AA0A9684FEA3C +:103FB0004A2AC5E90E69B24574EB09031BD30024F4 +:103FC0002964002C7FF44AAFC6F30803002B92D07B +:103FD000039C2046FEF770F808B3760A0123414699 +:103FE00046EAC95682196A64607802F0E5FC041E4C +:103FF00018BF012432E72846FEF7C6FAB6EB0A06D8 +:10400000014669F10009012803D9431CD3D10124D9 +:10401000D6E70224D4E7082420E704241EE702247C +:104020001CE704461EE709241EE711241CE70000D4 +:104030002DE9F04F994685B00023884603A9044630 +:10404000C9F800301646FEF791F8054680BB94F893 +:1040500031506DBB94F8303013F00103009300F041 +:10406000A68004F1500AD4E90432D4E90E011B1AE7 +:1040700062EB0102B34272F1000238BF1E46BEB1CC +:10408000D4E90E10C1F30803002B40F08280039B9B +:104090005A894B0A013A43EAC0531A401BD151EAEC +:1040A000000309D1A06801280DD8022584F83150F9 +:1040B000284605B0BDE8F08F216C20460192FEF73E +:1040C00063FA019AEFE7431C04D10123009D84F8B1 +:1040D0003130EDE72064DDF80CB0216C5846FDF777 +:1040E000EBFF0028E1D0B6F5007F02EB000731D3EB +:1040F000BBF80A1002EB5620730A88429BF80100B5 +:1041000088BF8B1A3A464146019302F055FC0028BD +:10411000DBD194F93020019B002A0BDA606CC01BC4 +:10412000984207D24FF40072514608EB4020FDF749 +:10413000EFFD019B5F02D9F80030F61BB8443B4409 +:10414000C9F80030D4E90E32DB1942F10002C4E9AB +:104150000E3294E7626CBA421AD094F93030002BD8 +:104160000DDA012351469BF8010002F049FC0028BA +:10417000ABD194F8303003F07F0384F830300398EB +:1041800001233A465146407802F016FC00289CD1A3 +:104190006764A16B4046C1F30801C1F50077514443 +:1041A000B74228BF37463A46FDF7B2FDC3E70725B9 +:1041B0007EE7000070B596B00E460022019002A97D +:1041C00001A8FEF795FC0446E0B94FF48C6003F0BB +:1041D00085F80546D8B1029B00F500720199D860B8 +:1041E00002A81A61FFF7ECFB044640B99DF9533071 +:1041F000002B0ADB1EB1314602A8FDF7EDFF284671 +:1042000003F07CF8204616B070BD0624F7E71124B1 +:10421000F8E7000070B5B8B00222019003A901A828 +:10422000FEF766FC044608BB039B4FF48C601093BA +:1042300003F054F80546002866D0039B00F5007291 +:104240000199D86010A81A61FFF7BAFB044650B96B +:104250009DF88B30980655D4190653D49DF84630F6 +:10426000DA0706D50724284603F048F8204638B078 +:1042700070BD039B04931878042814D104A918690D +:10428000FFF780FB069E9DF84630DB0610D410A891 +:10429000FEF776FF04460028E5D156BB0398FEF7EB +:1042A000DBFB0446DFE71F99FFF782FB0646EAE7E0 +:1042B000039BDA69B242D5D024930021269624A824 +:1042C0001B78042B01BFDDE90823CDE928239DF8E5 +:1042D00017308DF89730FEF7EFF904460028C2D169 +:1042E00024A8FFF741F804460028BBD00428BAD11F +:1042F000CDE70246314604A8FEF7C2FA044600287C +:10430000B1D1CBE70624AEE71124AFE7F0B5BDB0DD +:10431000CDE900106846FDF70FFF022203A901A8AE +:10432000FEF7E6FB0446002841D1039B4FF48C6066 +:10433000149302F0D3FF0546002800F0EE80039BA3 +:1043400000F5007214AE0199D8601A613046FFF78B +:1043500037FB044640BB9DF89B3013F0A00F40F0A4 +:10436000D880039B009F1A78042A68D11B6904AC8B +:1043700003F1400C1868083353F8041C22466345C7 +:1043800003C21446F6D15022314628A8FDF7C0FCDE +:10439000394628A8FFF714FB044600284CD12A9A76 +:1043A000169B9A4206D00824284602F0A7FF204612 +:1043B0003DB0F0BD349A209B9A42F4D128A8FFF773 +:1043C00033F904460028EFD1039B04AF1B6993F82F +:1043D00001E093F823C09C8C3A46083303CAB242EA +:1043E00043F8080C43F8041C1746F5D1039B28A892 +:1043F0001B6983F801E0039B1A6982F823C01A69DC +:1044000082F82440240A82F825401A691379D906D3 +:104410005CBF43F020031371FEF776FF04460028CB +:10442000C2D13046FEF7ACFE04460028BCD103984A +:10443000FEF712FB0446B7E70428B5D1BEE7239A7E +:1044400004AB02F1200C1068083252F8041C1C4620 +:10445000624503C42346F6D15022314628A8FDF711 +:1044600057FC394628A8FFF7ABFA044600284CD180 +:104470002A9A169B9A4296D1349A209B9A4292D1BC +:1044800028A8FFF7D1F8044600288DD137990DF1FF +:104490001D030DF12D0001F10D0253F8044B834271 +:1044A00042F8044BF9D11888012710809B7893704B +:1044B0009DF81B30039CDA0658BF43F02003CB72F3 +:1044C000E770CB7ADB06ACD5169A2A9B9A42A8D025 +:1044D0002078FFF76DFA01462046FDF7EDFD014615 +:1044E000C8B12046FDF798FF044600287FF45CAF72 +:1044F000039890F86D302E2B93D12A9A00F16C011D +:10450000FDF7E6FD039BDF708BE704287FF44CAFDB +:10451000B6E7062448E7022446E7112447E70000EF +:104520007F2810B501D880B210BDB0F5803F13D2FE +:1045300040F2523399420FD10849002231F8024B20 +:1045400093B2844203D103F18000C0B2ECE70132A0 +:10455000802AF3D11346F6E70020E5E7DC96000851 +:104560007F280DD940F25233994208D1FF2806D84E +:1045700000F10040034B803833F8100070470020F2 +:10458000704700BFDC960008B0F5803FF0B522D23E +:104590001F4A83B21F49B0F5805F28BF0A46141D29 +:1045A00034F8042C2146AAB1934213D334F8025CA8 +:1045B0002E0AEFB252FA85F5A84222DA082E09D85F +:1045C000DFE806F0050A10121416181A1C00801AEB +:1045D00034F810301846F0BD981A00F001001B1A8C +:1045E0009BB2F7E7103BFBE7203BF9E7303BF7E7EF +:1045F0001A3BF5E70833F3E7503BF1E7A3F5E35344 +:10460000EEE70434002ECBD101EB4702C7E700BF31 +:104610002C9400082096000808B5074B074A196833 +:1046200001F03D01996053680BB190689847BDE86F +:10463000084003F0A3B800BF000002404436002049 +:1046400008B5084B1968890901F03D018A019A6093 +:10465000054AD3680BB110699847BDE8084003F0DC +:104660008DB800BF000002404436002008B5084B5A +:104670001968090C01F03D010A049A60054A536962 +:104680000BB190699847BDE8084003F077B800BFC8 +:10469000000002404436002008B5084B1968890D17 +:1046A00001F03D018A059A60054AD3690BB1106A91 +:1046B0009847BDE8084003F061B800BF0000024021 +:1046C0004436002008B5074B074A596801F03D0100 +:1046D000D960536A0BB1906A9847BDE8084003F06F +:1046E0004DB800BF000002404436002008B5084B1A +:1046F0005968890901F03D018A01DA60054AD36AE7 +:104700000BB1106B9847BDE8084003F037B800BF05 +:10471000000002404436002008B5084B5968090CD7 +:1047200001F03D010A04DA60054A536B0BB1906B4E +:104730009847BDE8084003F021B800BF00000240E0 +:104740004436002008B5084B5968890D01F03D0139 +:104750008A05DA60054AD36B0BB1106C9847BDE847 +:10476000084003F00BB800BF0000024044360020B0 +:1047700008B5074B074A196801F03D019960536C71 +:104780000BB1906C9847BDE8084002F0F7BF00BF3E +:10479000000402404436002008B5084B1968890916 +:1047A00001F03D018A019A60054AD36C0BB1106D8E +:1047B0009847BDE8084002F0E1BF00BF0004024096 +:1047C0004436002008B5084B1968090C01F03D017A +:1047D0000A049A60054A536D0BB1906D9847BDE885 +:1047E000084002F0CBBF00BF000402404436002066 +:1047F00008B5084B1968890D01F03D018A059A60DA +:10480000054AD36D0BB1106E9847BDE8084002F021 +:10481000B5BF00BF000402404436002008B5074B76 +:10482000074A596801F03D01D960536E0BB1906E93 +:104830009847BDE8084002F0A1BF00BF0004024055 +:104840004436002008B5084B5968890901F03D013C +:104850008A01DA60054AD36E0BB1106F9847BDE844 +:10486000084002F08BBF00BF000402404436002025 +:1048700008B5084B5968090C01F03D010A04DA60DB +:10488000054A536F0BB1906F9847BDE8084002F09E +:1048900075BF00BF000402404436002008B5084B35 +:1048A0005968890D01F03D018A05DA60054AD36F28 +:1048B00013B1D2F880009847BDE8084002F05EBF0F +:1048C000000402404436002000230C4910B51A466B +:1048D0000B4C0B6054F82300026001EB43000433DF +:1048E0004260402BF6D1074A4FF0FF339360D3600C +:1048F000C2F80834C2F80C3410BD00BF44360020A2 +:10490000DC970008000002400F28F8B510D91028E5 +:1049100010D0112811D0122808D10F240720DFF859 +:10492000C8E00126DEF80050A04208D9002653E076 +:104930000446F4E70F240020F1E70724FBE706FA1A +:1049400000F73D424AD1264C4FEA001C3D4304EBA0 +:1049500000160EEBC000CEF80050C0E90123FBB2F8 +:1049600073B12048D0F8D83043F00103C0F8D830F4 +:10497000D0F8003143F00103C0F80031D0F8003125 +:1049800017F47F4F0ED01748D0F8D83043F0020309 +:10499000C0F8D830D0F8003143F00203C0F800313D +:1049A000D0F8003154F80C00036823F01F030360B3 +:1049B000056815F00105FBD104EB0C033D2493F8C9 +:1049C0000CC05F6804FA0CF43C602124056044616B +:1049D00012B1987B00F0CAFC3046F8BD0130A3E765 +:1049E000DC970008004402584436002010B53024FB +:1049F00084F31188FFF788FF002383F3118810BD2B +:104A000010B50446807B00F0C7FC01231549627B8A +:104A100003FA02F20B6823EA0203DAB20B6072B9FE +:104A2000114AD2F8D81021F00101C2F8D810D2F8FA +:104A3000001121F00101C2F80011D2F8002113F495 +:104A40007F4F0ED1084BD3F8D82022F00202C3F8D2 +:104A5000D820D3F8002122F00202C3F80021D3F8B5 +:104A6000003110BD443600200044025808B5302300 +:104A700083F31188FFF7C4FF002383F3118808BD77 +:104A8000836CC26A8B42506810B506D95A1E4C001E +:104A900002EB4103B3FBF4F3184410BD01F0010332 +:104AA0008A0748BF43F002034A0748BF43F00803A0 +:104AB0000A0748BF43F00403CA0648BF43F0100387 +:104AC0008A06426B48BF43F0200313434363704799 +:104AD00010B5074C204600F0CBFF064B0022C4E97E +:104AE0001023054BA364054BE363054BE36410BD42 +:104AF000C83600200024024800B4C4041C3700203B +:104B00001C390020C36A0BB9104BC3620379012B17 +:104B100011D10F4B98420ED10E4BD3F8DC2042F44A +:104B20000072C3F8DC20D3F8042142F40072C3F809 +:104B30000421D3F80431436C00221A65DA621A604A +:104B40005A605A624FF0FF329A637047DC9800084F +:104B5000C8360020004402580379012B1BD0436C57 +:104B600000221A65DA621A605A605A624FF0FF3208 +:104B70009A63094B98420ED1084BD3F8DC2022F4FB +:104B80000072C3F8DC20D3F8042122F40072C3F8C9 +:104B90000421D3F804317047C8360020004402587D +:104BA00010B5446C0649FFF76BFF6060236842F262 +:104BB000107043F003032360BDE8104001F05EBDB8 +:104BC000801A06000129F8B5466C0B4F09D17568AB +:104BD0000A493D40FFF754FF054345F48055756091 +:104BE000F8BD746806493C40FFF74AFF044344F4AB +:104BF00080547460F4E700BF00ECFFFF80F0FA021D +:104C000040787D01436C00225A601A6070470000B2 +:104C1000426C0129536823F4404304D0022905D093 +:104C200001B95360704743F48043FAE743F400430B +:104C3000F7E70000436C41F480519A60D9605A6BE9 +:104C40001206FCD580229A637047000010B541F42B +:104C50008851446CA260E160616B11F04502FBD0A9 +:104C6000A26311F0040203D0FFF718FF012010BD6A +:104C7000616910461960FAE710B541F48851446C37 +:104C8000A260E160616B11F04502FBD0A26311F0FC +:104C9000050203D0FFF702FF012010BD6169104635 +:104CA0001960FAE773B5134604460E46302282F3C4 +:104CB0001188426CD26B32B14FF0FF31403001931A +:104CC00001F0E8FC019B606C00220265C263C262D5 +:104CD000456B15F4807504D185F31188012002B06D +:104CE00070BD4FF0FF31816382F31188012E06D928 +:104CF0000C21204602B0BDE87040FFF7BDBF104652 +:104D0000EDE7000073B5446C0E4600250192616B1F +:104D1000A1632565E562FFF7C1FE012E07D9019B5E +:104D20002A460C2102B0BDE87040FFF7A5BF02B0D3 +:104D300070BD000010B541F49851446CA260E16070 +:104D4000616B11F04502FBD0A26311F03F0203D06A +:104D5000FFF7A4FE012010BD216A10461960E16929 +:104D60005960A16999606169D960F4E72DE9F74359 +:104D700004460191006D01A91746984602F026FCF1 +:104D8000064600284AD0626C2046DDF8049055683B +:104D9000C5F3090501356B00A56CB5FBF3F54FF4C0 +:104DA0007A73B5FBF3F55D43556200F027FE50BB07 +:104DB000636C4FF0FF3201254146C3F858902046FE +:104DC0001D659A634FF49572DA6342F207029F629F +:104DD000DA62E36C0A9AFFF74FFFA0B9E26C104B5E +:104DE00011680B407BB929462046FFF75BFF05465B +:104DF00048B92E463A460199206D02F01FFC304614 +:104E000003B0BDE8F0833A460199206D02F016FC2C +:104E1000E26C01212046FFF775FFF0E70126EEE77F +:104E200008E0FFFD2DE9F7431F46436C01924FF464 +:104E30007A725D6804468846C5F3090501356E003F +:104E4000856CB5FBF6F5B5FBF2F555435D6200F0F8 +:104E5000D5FD20B10125284603B0BDE8F0837E02D0 +:104E600001A9206D324602F0B1FB05460028F1D0C1 +:104E7000636C019AD4F84C909A6501221A654FF040 +:104E8000FF329A634FF49572DA639E62236BDB06FE +:104E90004B4658BF4FEA4828012F42461BD91221E2 +:104EA0002046FFF7E9FEC0B9D9F80020104B1340A7 +:104EB0009BB9636C42F2930239462046DA62E26C97 +:104EC000FFF7F0FE804640B932460199206D454615 +:104ED00002F0B4FBBFE71121E2E732460199206DF1 +:104EE00002F0ACFBE26C39462046FFF70BFFB2E75D +:104EF00008E0FFFD2DE9F3411F46436C01924FF49A +:104F00007A725D6804468846C5F3090501356E006E +:104F1000856CB5FBF6F5B5FBF2F555435D6200F027 +:104F20006DFD20B10125284602B0BDE8F0817E026A +:104F300001A9206D324602F08FFB05460028F1D012 +:104F4000636C019A9A6501221A654FF0FF329A63E9 +:104F50004FF48D72DA639E62236BE66CDB06334698 +:104F600058BF4FEA4828012F424619D91921204637 +:104F7000FFF782FEB0B932680F4B134093B9636CF0 +:104F800042F2910239462046DA62E26CFFF78AFE6D +:104F9000064638B901993546206D02F099FBC2E703 +:104FA0001821E4E70199206D02F092FBE26C39468A +:104FB0002046FFF7A7FEB6E708E0FFFD12F0030F5B +:104FC0002DE9F04107460C4615461E4617D00E4403 +:104FD000B44202D10020BDE8F0810123FA6B2146E2 +:104FE0003846FFF71FFF0028F5D128464FF400721E +:104FF000F96B05F500750134FCF78AFEE8E7BDE8BA +:10500000F041FFF70FBF000012F0030F2DE9F04150 +:1050100007460C4615461E4617D00E44B44202D130 +:105020000020BDE8F08129464FF40072F86B05F5C9 +:105030000075FCF76DFE0123FA6B21463846FFF739 +:1050400059FF0028EDD10134E8E7BDE8F041FFF752 +:1050500051BF000000207047302310B583F3118842 +:105060000024436C40302146DC6301F021FB84F3D3 +:10507000118810BD026843681143016003B11847ED +:1050800070470000024A136843F0C0031360704782 +:1050900000480040024A136843F0C00313607047A1 +:1050A00000500040024A136843F0C0031360704789 +:1050B00000780040064BD3F8E8200243C3F8E8200C +:1050C000D3F810211043C3F81001D3F81031704702 +:1050D0000044025837B5274C274D204600F028FDE4 +:1050E00004F11400009400234FF40072234900F0EF +:1050F000C3F94FF40072224904F138000094214BA7 +:1051000000F03CFA204BC4E91735204C204600F053 +:105110000FFD04F11400009400234FF400721C49A9 +:1051200000F0AAF94FF400721A4904F13800009413 +:10513000194B00F023FA194BC4E91735184C2046D7 +:1051400000F0F6FC04F1140000234FF4007215493E +:10515000009400F091F9144B4FF40072134904F1DC +:105160003800009400F00AFA114BC4E9173503B077 +:1051700030BD00BF2039002000E1F505643A002071 +:105180006440002085500008004800408C39002011 +:10519000643C00206442002095500008005000400C +:1051A000F8390020643E0020A55000086444002027 +:1051B0000078004038B5264D0446037C002918BF0E +:1051C0000D46012B06D1234B984230D14FF480205D +:1051D000FFF770FF2A68236EE16D03EB5203A566AB +:1051E000B3FBF2F36A68100442BF23F0070003F038 +:1051F000070343EA4003CB60AB6843F040034B60D6 +:10520000EB6843F001038B6042F4967343F00103B3 +:105210000B604FF0FF330B62510505D512F01022E1 +:1052200011D0B2F1805F10D084F8643038BD0A4BE1 +:10523000984205D0094B9842CCD14FF08040C7E747 +:105240004FF48010C4E77F23EEE73F23ECE700BF75 +:10525000E4980008203900208C390020F83900201B +:105260002DE9F047C66D05463768F46921073462B9 +:105270001AD014F0080118BF4FF48071E20748BF3C +:1052800041F02001A3074FF0300348BF41F0400137 +:10529000600748BF41F0800183F31188281DFFF7A4 +:1052A000E9FE002383F31188E2050AD5302383F356 +:1052B00011884FF48061281DFFF7DCFE002383F383 +:1052C00011884FF030094FF0000A14F0200838D14F +:1052D0003B0616D54FF0300905F1380A200610D5E7 +:1052E00089F31188504600F07DF9002836DA08214C +:1052F000281DFFF7BFFE27F080033360002383F3F0 +:105300001188790614D5620612D5302383F31188EB +:10531000D5E913239A4208D12B6C33B127F040070B +:105320001021281DFFF7A6FE3760002383F31188A4 +:10533000E30618D5AA6E1369ABB15069BDE8F04712 +:10534000184789F31188736A284695F86410194044 +:1053500000F008FC8AF31188F469B6E7B06288F3BC +:105360001188F469BAE7BDE8F0870000090100F18F +:105370006043012203F56143C9B283F8001300F0D2 +:105380001F039A4043099B0003F1604303F5614307 +:10539000C3F880211A60704700F01F0301229A4071 +:1053A000430900F160409B0000F5614003F1604358 +:1053B00003F56143C3F88020C3F88021002380F8FF +:1053C00000337047F8B51546826804460B46AA427A +:1053D00000D28568A1692669761AB5420BD21846B3 +:1053E0002A46FCF795FCA3692B44A3612846A368D1 +:1053F0005B1BA360F8BD0CD9AF1B18463246FCF707 +:1054000087FC3A46E1683044FCF782FCE3683B44A1 +:10541000EBE718462A46FCF77BFCE368E5E700006B +:1054200083689342F7B50446154600D28568D4E9EF +:105430000460361AB5420BD22A46FCF769FC636950 +:105440002B4463612846A3685B1BA36003B0F0BDD7 +:105450000DD93246AF1B0191FCF75AFC01993A462F +:10546000E0683144FCF754FCE3683B44E9E72A4632 +:10547000FCF74EFCE368E4E710B50A440024C3617E +:10548000029B8460C16002610362C0E90000C0E960 +:10549000051110BD08B5D0E90532934201D18268EB +:1054A00082B98268013282605A1C426119700021FF +:1054B000D0E904329A4224BFC368436101F012F973 +:1054C000002008BD4FF0FF30FBE7000070B530232F +:1054D00004460E4683F31188A568A5B1A368A269A6 +:1054E000013BA360531CA36115782269934224BF3A +:1054F000E368A361E3690BB120469847002383F377 +:105500001188284607E03146204601F0DBF80028E4 +:10551000E2DA85F3118870BD2DE9F74F04460E4697 +:1055200017469846D0F81C904FF0300A8AF311883D +:105530004FF0000B154665B12A4631462046FFF76D +:1055400041FF034660B94146204601F0BBF8002800 +:10555000F1D0002383F31188781B03B0BDE8F08FEE +:10556000B9F1000F03D001902046C847019B8BF38F +:105570001188ED1A1E448AF31188DCE7C160C3610B +:10558000009B82600362C0E905111144C0E900007C +:1055900001617047F8B504460D461646302383F383 +:1055A0001188A768A7B1A368013BA36063695A1C6F +:1055B00062611D70D4E904329A4224BFE3686361DA +:1055C000E3690BB120469847002080F3118807E07B +:1055D0003146204601F076F80028E2DA87F3118898 +:1055E000F8BD0000D0E9052310B59A4201D18268C8 +:1055F0007AB982680021013282605A1C82611C786B +:1056000003699A4224BFC368836101F06BF82046A6 +:1056100010BD4FF0FF30FBE72DE9F74F04460E4673 +:1056200017469846D0F81C904FF0300A8AF311883C +:105630004FF0000B154665B12A4631462046FFF76C +:10564000EFFE034660B94146204601F03BF80028D2 +:10565000F1D0002383F31188781B03B0BDE8F08FED +:10566000B9F1000F03D001902046C847019B8BF38E +:105670001188ED1A1E448AF31188DCE70379052BA3 +:1056800005BF836A002001204B6004BF4FF4007304 +:105690000B60704770B55D1E866A04460D44B542C6 +:1056A00005D9436B43F080034363012070BD062599 +:1056B0000571FFF783FC05232371F7E770B55D1EC5 +:1056C000866A04460D44B54205D9436B43F0800316 +:1056D0004363012070BD07250571FFF795FC052385 +:1056E0002371F7E738B505790446052D05D1082360 +:1056F0000371FFF7AFFC257138BD0120FCE7000006 +:105700000323F0B5037185B00446FFF749FA002280 +:1057100020461146FFF78EFA4FF4D57203AB0821ED +:105720002046FFF7A9FA0246B8B901232363039B79 +:10573000C3F30323012B09D103AB37212046FFF725 +:105740009BFA18B9A44B039A1340ABB1204601252C +:10575000FFF758FA0223237137E103AB0022372108 +:105760002046FFF789FA28B99B4A039B1A40002A72 +:1057700000F0A78002232363236B03F00F03022BA7 +:1057800040F0A9806425954E42F2107000F076FF3B +:1057900003AB324601212046FFF758FA0028D5D145 +:1057A000039B002B80F293805A0003D5236B43F0B8 +:1057B00010032363002204F1080302212046FFF7AF +:1057C000B9FA02460028C1D104F13803032120466A +:1057D000FFF752FA0028B9D104F11805A26B09218C +:1057E00020462B46FFF7A6FA0028AFD102ABA26BEA +:1057F00007212046FFF740FA06460028A6D1236B72 +:1058000003F00F03022B40F08F807E227F21284679 +:1058100003F022FA012840F28780E76B42F2107011 +:1058200000F02CFF08234FF4007239462046009602 +:10583000FFF79CFA002889D1384603F05BFA236B06 +:10584000A06203F00F03022B72D103AB644A06215E +:105850002046FFF711FA002871D15F49039B1940D8 +:10586000B1FA81F149092046FFF7ACF902AB4FF4D8 +:10587000007210212046FFF7FFF9054600287FF44B +:1058800065AF554E029B33427FF460AF236B13F03C +:105890000E0F03F00F0273D0022A7FF457AFE36AB2 +:1058A0001978012900F09480022900F093800029E2 +:1058B00000F089804B4F2046FFF7AAF903AB3A4628 +:1058C00076E0114620462263FFF7B4F954E7013D24 +:1058D0007FF45AAF3AE7444D6426444A3E4F012BC9 +:1058E00018BF154603AB002237212046FFF7C4F945 +:1058F00000287FF42BAF039B3B427FF427AF03AB21 +:105900002A4629212046FFF7A1F900287FF41EAF7F +:10591000039B002BFFF648AF013E3FF417AF42F266 +:10592000107000F0ABFEDDE7284603F0B7F986E71C +:105930007E227F212846E66B03F08EF908B900210C +:1059400091E7002340223146204600930623FFF7CB +:105950000DFA0028F3D1B3895BBA9B07EFD5244B2E +:1059600040223146204600930623FFF7FFF9002826 +:10597000E5D1317C01F00F010F3918BF012172E729 +:10598000E36A1978F9B101297FF4E0AE2046FFF708 +:105990003FF903ABA26B37212046FFF76DF90028D2 +:1059A0007FF4D4AE039B33427FF4D0AE03AB02222C +:1059B00006212046FFF760F900287FF4C7AE039B5D +:1059C00033427FF4C3AE05232371284605B0F0BDF2 +:1059D000084F70E7084F6EE708E0FFFD0080FFC04A +:1059E0000001B9030000B7030080FF5000001080E1 +:1059F000F1FFFF800001B7030002B70337B504468B +:105A00000C4D01ABA26B0D212046FFF735F978B99B +:105A1000019B2B420BD1C3F34323042B08D0053B3E +:105A2000022B04D84FF47A7000F028FEE9E7012039 +:105A300003B030BD08E0FFFD70B53023054683F3A9 +:105A4000118803790024022B03D184F311882046A6 +:105A500070BD0423037184F311880226FFF7CEFF83 +:105A600004462846FFF7CEF82E71F0E7FFF730B86E +:105A7000044B03600123037100234363C0E90A332D +:105A8000704700BFFC98000810B53023044683F32C +:105A90001188C162FFF736F802230020237180F3DA +:105AA000118810BD10B53023044683F31188FFF729 +:105AB00053F800230122E362227183F3118810BDA1 +:105AC000026843681143016003B118477047000042 +:105AD0001430FFF721BD00004FF0FF331430FFF703 +:105AE0001BBD00003830FFF797BD00004FF0FF33BB +:105AF0003830FFF791BD00001430FFF7E7BC00001D +:105B00004FF0FF311430FFF7E1BC00003830FFF7F1 +:105B100041BD00004FF0FF323830FFF73BBD0000C1 +:105B2000012914BF6FF0130000207047FFF7D2BAAD +:105B3000044B036000234360C0E902330123037474 +:105B4000704700BF2099000810B53023044683F346 +:105B50001188FFF72FFB02230020237480F31188A4 +:105B600010BD000038B5C36904460D461BB90421B9 +:105B70000844FFF7A5FF294604F11400FFF78AFC4B +:105B8000002806DA201D4FF40061BDE83840FFF719 +:105B900097BF38BD026843681143016003B11847DD +:105BA0007047000013B5406B00F58054D4F8A4385A +:105BB0001A681178042914D1017C022911D11979AC +:105BC000012312898B4013420BD101A94C3002F002 +:105BD00071FFD4F8A4480246019B2179206800F0A7 +:105BE000DFF902B010BD0000143002F0F3BE000077 +:105BF0004FF0FF33143002F0EDBE00004C3002F0E5 +:105C0000C5BF00004FF0FF334C3002F0BFBF0000B3 +:105C1000143002F0C1BE00004FF0FF31143002F02A +:105C2000BBBE00004C3002F091BF00004FF0FF32CD +:105C30004C3002F08BBF00000020704710B500F51B +:105C40008054D4F8A4381A681178042917D1017C3B +:105C5000022914D15979012352898B4013420ED164 +:105C6000143002F053FE024648B1D4F8A4484FF471 +:105C7000407361792068BDE8104000F07FB910BD25 +:105C8000406BFFF7DBBF0000704700007FB5124B91 +:105C900001250426044603600023057400F18402F4 +:105CA00043602946C0E902330C4B02901430019343 +:105CB0004FF44073009602F005FE094B04F694423F +:105CC000294604F14C000294CDE900634FF440737F +:105CD00002F0CCFE04B070BD48990008815C000859 +:105CE000A55B00080A68302383F311880B790B3316 +:105CF00042F823004B79133342F823008B7913B118 +:105D00000B3342F8230000F58053C3F8A418022394 +:105D10000374002080F311887047000038B5037FBA +:105D2000044613B190F85430ABB90125201D02216F +:105D3000FFF730FF04F114006FF00101257700F048 +:105D4000DDFC04F14C0084F854506FF00101BDE813 +:105D5000384000F0D3BC38BD10B5012104460430F2 +:105D6000FFF718FF0023237784F8543010BD00009C +:105D700038B504460025143002F0BCFD04F14C0097 +:105D8000257702F08BFE201D84F854500121FFF787 +:105D900001FF2046BDE83840FFF750BF90F8803043 +:105DA00003F06003202B06D190F881200023212AE4 +:105DB00003D81F2A06D800207047222AFBD1C0E949 +:105DC0001D3303E0034A426707228267C36701204D +:105DD000704700BF4422002037B500F58055D5F844 +:105DE000A4381A68117804291AD1017C022917D124 +:105DF0001979012312898B40134211D100F14C040F +:105E0000204602F00BFF58B101A9204602F052FED5 +:105E1000D5F8A4480246019B2179206800F0C0F81B +:105E200003B030BD01F10B03F0B550F8236085B02D +:105E300004460D46FEB1302383F3118804EB850739 +:105E4000301D0821FFF7A6FEFB6806F14C005B69D8 +:105E50001B681BB1019002F03BFE019803A902F000 +:105E600029FE024648B1039B2946204600F098F8D7 +:105E7000002383F3118805B0F0BDFB685A691268EE +:105E8000002AF5D01B8A013B1340F1D104F18002B6 +:105E9000EAE70000133138B550F82140ECB1302367 +:105EA00083F3118804F58053D3F8A428136852793A +:105EB00003EB8203DB689B695D6845B104216018D0 +:105EC000FFF768FE294604F1140002F029FD204680 +:105ED000FFF7B4FE002383F3118838BD704700003C +:105EE00001F04ABD01234022002110B5044600F80C +:105EF000303BFBF733FF0023C4E9013310BD000042 +:105F000010B53023044683F3118824224160002118 +:105F10000C30FBF723FF204601F050FD0223002048 +:105F2000237080F3118810BD70B500EB8103054626 +:105F300050690E461446DA6018B110220021FBF7B2 +:105F40000DFFA06918B110220021FBF707FF3146B1 +:105F50002846BDE8704001F037BE0000836820226B +:105F6000002103F0011310B5044683601030FBF7E5 +:105F7000F5FE2046BDE8104001F0B2BEF0B40125A8 +:105F800000EB810447898D40E4683D43A469458165 +:105F900023600023A2606360F0BC01F0CFBE00006C +:105FA000F0B4012500EB810407898D40E4683D438E +:105FB0006469058123600023A2606360F0BC01F086 +:105FC00045BF000070B5022300250446242203705B +:105FD0002946C0F888500C3040F8045CFBF7BEFE40 +:105FE000204684F8705001F083FD63681B6823B17C +:105FF00029462046BDE87040184770BD0378052B40 +:1060000010B504460AD080F88C300523037043682D +:106010001B680BB1042198470023A36010BD00004A +:106020000178052906D190F88C20436802701B681E +:1060300003B118477047000070B590F870300446FF +:1060400013B1002380F8703004F18002204601F083 +:106050006BFE63689B68B3B994F8803013F06005F9 +:1060600035D00021204602F05DF90021204602F0E3 +:106070004DF963681B6813B1062120469847062333 +:1060800084F8703070BD204698470028E4D0B4F8FA +:106090008630A26F9A4288BFA36794F98030A56FBB +:1060A000002B4FF0300380F20381002D00F0F280CE +:1060B000092284F8702083F3118800212046D4E956 +:1060C0001D23FFF76DFF002383F31188DAE794F8AF +:1060D000812003F07F0343EA022340F2023293421D +:1060E00000F0C58021D8B3F5807F48D00DD8012BB2 +:1060F0003FD0022B00F09380002BB2D104F1880234 +:1061000062670222A267E367C1E7B3F5817F00F00F +:106110009B80B3F5407FA4D194F88230012BA0D1AD +:10612000B4F8883043F0020332E0B3F5006F4DD08D +:1061300017D8B3F5A06F31D0A3F5C063012B90D869 +:106140006368204694F882205E6894F88310B4F85F +:106150008430B047002884D0436863670368A3672E +:106160001AE0B3F5106F36D040F6024293427FF446 +:1061700078AF5C4B63670223A3670023C3E794F8FF +:106180008230012B7FF46DAFB4F8883023F0020326 +:10619000A4F88830C4E91D55E56778E7B4F8803085 +:1061A000B3F5A06F0ED194F88230204684F88A307F +:1061B00001F0FCFC63681B6813B10121204698477D +:1061C000032323700023C4E91D339CE704F18B03F0 +:1061D00063670123C3E72378042B10D1302383F3B3 +:1061E00011882046FFF7BAFE85F311880321636802 +:1061F00084F88B5021701B680BB12046984794F8A7 +:106200008230002BDED084F88B3004232370636847 +:106210001B68002BD6D0022120469847D2E794F87D +:10622000843020461D0603F00F010AD501F06EFDF3 +:10623000012804D002287FF414AF2B4B9AE72B4B94 +:1062400098E701F055FDF3E794F88230002B7FF4D6 +:1062500008AF94F8843013F00F01B3D01A0620462B +:1062600002D502F077F8ADE702F068F8AAE794F8F3 +:106270008230002B7FF4F5AE94F8843013F00F01D8 +:10628000A0D01B06204602D502F04CF89AE702F097 +:106290003DF897E7142284F8702083F311882B4689 +:1062A0002A4629462046FFF769FE85F31188E9E66C +:1062B0005DB1152284F8702083F3118800212046F7 +:1062C000D4E91D23FFF75AFEFDE60B2284F8702067 +:1062D00083F311882B462A4629462046FFF760FEA5 +:1062E000E3E700BF789900087099000874990008E6 +:1062F00038B590F870300446002B3ED0063BDAB239 +:106300000F2A34D80F2B32D8DFE803F037313108A9 +:10631000223231313131313131313737856FB0F897 +:1063200086309D4214D2C3681B8AB5FBF3F203FB8F +:1063300012556DB9302383F311882B462A4629461E +:10634000FFF72EFE85F311880A2384F870300EE0E3 +:10635000142384F87030302383F3118800232046FF +:106360001A461946FFF70AFE002383F3118838BD49 +:10637000C36F03B198470023E7E70021204601F0EF +:10638000D1FF0021204601F0C1FF63681B6813B1F3 +:106390000621204698470623D7E7000010B590F85D +:1063A00070300446142B29D017D8062B05D001D8FD +:1063B0001BB110BD093B022BFBD80021204601F088 +:1063C000B1FF0021204601F0A1FF63681B6813B1F3 +:1063D000062120469847062319E0152BE9D10B2307 +:1063E00080F87030302383F3118800231A46194651 +:1063F000FFF7D6FD002383F31188DAE7C3689B69B2 +:106400005B68002BD5D1C36F03B19847002384F894 +:106410007030CEE70023826880F8243083691B68DF +:1064200099689142FBD25A680360426010605860DC +:10643000704700000023826880F8243083691B685D +:1064400099689142FBD85A680360426010605860B6 +:106450007047000008B50846302383F3118891F88F +:106460002430032B05D0042B0DD02BB983F31188D6 +:1064700008BD8B6A00221A604FF0FF338362FFF77A +:10648000C9FF0023F2E7D1E9003213605A60F3E755 +:10649000034610B51B68984203D09C688A689442F2 +:1064A000F8D25A680B604A601160596010BD000054 +:1064B000FFF7B0BF064BD96881F82400186802685E +:1064C00053601A600122D86080F82420F9F79ABF3F +:1064D000684600200C4B30B5DD684B1C87B0044685 +:1064E0000FD02B46094A684600F09CF92046FFF77A +:1064F000E1FF009B13B1684600F09EF9A86A07B05F +:1065000030BDFFF7D7FFF9E7684600205564000863 +:10651000044B1A68DB6890689B68984294BF00201F +:106520000120704768460020094B10B51C68D868E8 +:10653000226853601A600122DC6084F82420FFF78F +:1065400079FF01462046BDE81040F9F75BBF00BF68 +:1065500068460020044B1A68DB6892689B689A4280 +:1065600001D9FFF7E1BF70476846002038B5012325 +:10657000084C00252370656002F0EAFB02F010FC75 +:106580000549064802F0E6FC0223237085F31188D2 +:1065900038BD00BF104900208099000868460020DF +:1065A00000F080B9034A516853685B1A9842FBD8DF +:1065B000704700BF001000E08B604B630023CA618E +:1065C00000F128020B6302230A618B840123886196 +:1065D00081F8263001F11003C26A4A611360C36278 +:1065E00001F12C030846CB6270470000D0E901316D +:1065F000026841F8183CA1F19C033839CB6003696B +:1066000041F8243C436941F8203C034B41F8043CE9 +:10661000C3680248FFF7D0BF1D0400086846002089 +:1066200008B5FFF7E3FFBDE80840FFF741BF0000F2 +:1066300038B50E4BDC6804F12C05A062E06AA84274 +:106640000FD194F826303BB994F825309B0702BF50 +:10665000D4E9043213605A600F20BDE83840FFF7D8 +:1066600029BF0368E362FFF723FFE7E768460020DE +:10667000302383F31188FFF7DBBF000008B5014624 +:10668000302383F311880820FFF724FF002383F3CE +:10669000118808BD054BDB6821B1036098620320B7 +:1066A000FFF718BF4FF0FF30704700BF684600206B +:1066B00003682BB10022026018469962FFF7F8BE0A +:1066C00070470000064BDB6839B1426818605A60B9 +:1066D000136043600420FFF7FDBE4FF0FF307047AA +:1066E000684600200368984206D01A68026050602D +:1066F00018469962FFF7DCBE7047000038B50446C3 +:106700000D462068844200D138BD036823605C6078 +:106710008562FFF7CDFEF4E7036810B59C68A242DE +:106720000CD85C688A600B604C6021605960996885 +:106730008A1A9A604FF0FF33836010BD121B1B68EA +:10674000ECE700000A2938BF0A2170B504460D465F +:106750000A26601902F0F6FA02F0DEFA041BA542DE +:1067600003D8751C04462E46F3E70A2E04D90120EF +:10677000BDE8704002F0B6BC70BD0000F8B5144B27 +:106780000D460A2A4FF00A07D96103F11001826011 +:1067900038BF0A22416019691446016048601861D7 +:1067A000A81802F0BFFA02F0B7FA431B0646A3424C +:1067B00006D37C1C28192746354602F0C3FAF2E7B7 +:1067C0000A2F04D90120BDE8F84002F08BBCF8BDC7 +:1067D00068460020F8B506460D4602F09DFA0F4ABD +:1067E000134653F8107F9F4206D12A460146304691 +:1067F000BDE8F840FFF7C2BFD169BB68441A2C1945 +:1068000028BF2C46A34202D92946FFF79BFF224608 +:1068100031460348BDE8F840FFF77EBF68460020D8 +:1068200078460020C0E90323002310B45DF8044B30 +:106830004361FFF7CFBF000010B5194C23699842A0 +:106840000DD08168D0E9003213605A609A680A441A +:106850009A60002303604FF0FF33A36110BD02680C +:10686000234643F8102F53600022026022699A42A7 +:1068700003D1BDE8104002F05FBA936881680B4411 +:10688000936002F049FA2269E1699268441AA242CF +:10689000E4D91144BDE81040091AFFF753BF00BF07 +:1068A000684600202DE9F047DFF8BC8008F11007AA +:1068B0002C4ED8F8105002F02FFAD8F81C40AA68D5 +:1068C000031B9A423ED814444FF00009D5E9003228 +:1068D000C8F81C4013605A60C5F80090D8F8103012 +:1068E000B34201D102F028FA89F31188D5E90331C6 +:1068F00028469847302383F311886B69002BD8D042 +:1069000002F00AFA6A69A0EB040982464A450DD2F0 +:10691000022002F0E7FB0022D8F81030B34208D181 +:1069200051462846BDE8F047FFF728BF121A224417 +:10693000F2E712EB09092946384638BF4A46FFF705 +:10694000EBFEB5E7D8F81030B34208D01444C8F8CD +:106950001C00211AA960BDE8F047FFF7F3BEBDE8AF +:10696000F08700BF784600206846002038B502F066 +:10697000D3F9054AD2E90845031B181945F100016E +:10698000C2E9080138BD00BF6846002010B560B9F3 +:10699000074804790368053C9B6818BF01249847A1 +:1069A00008B144F00404204610BD0124FBE700BFF9 +:1069B000C8360020FFF7EABF2DE9F04788461746A2 +:1069C0009A460446B0B90D4E3579052D05D00324FD +:1069D0000DE0013D15F0FF050ED0326853463946F3 +:1069E0003046D2F814904246C8470028F1D12046DC +:1069F000BDE8F0870424FAE70124F8E7C836002050 +:106A00002DE9F047884617469A460446B0B90D4E20 +:106A10003579052D05D003240DE0013D15F0FF0566 +:106A20000ED03268534639463046D2F81890424666 +:106A3000C8470028F1D12046BDE8F0870424FAE7D2 +:106A40000124F8E7C836002037B50C46154670B962 +:106A500051B101290BD10748694603681B6A984761 +:106A600010B9019B04462B60204603B030BD0424BE +:106A7000FAE700BFC836002000207047FEE700009C +:106A8000704700004FF0FF30704700004B684360D4 +:106A90008B688360CB68C3600B6943614B69036299 +:106AA0008B6943620B6803607047000008B53C4B7C +:106AB00040F2FF713B48D3F888200A43C3F888208E +:106AC000D3F8882022F4FF6222F00702C3F888205E +:106AD000D3F88820D3F8E0200A43C3F8E020D3F8A5 +:106AE00008210A43C3F808212F4AD3F80831114678 +:106AF000FFF7CCFF00F5806002F11C01FFF7C6FF35 +:106B000000F5806002F13801FFF7C0FF00F58060FA +:106B100002F15401FFF7BAFF00F5806002F1700145 +:106B2000FFF7B4FF00F5806002F18C01FFF7AEFFC4 +:106B300000F5806002F1A801FFF7A8FF00F5806072 +:106B400002F1C401FFF7A2FF00F5806002F1E0014D +:106B5000FFF79CFF00F5806002F1FC01FFF796FF54 +:106B600002F58C7100F58060FFF790FF01F08AFC60 +:106B70000E4BD3F8902242F00102C3F89022D3F8D2 +:106B8000942242F00102C3F894220522C3F898200F +:106B90004FF06052C3F89C20054AC3F8A02008BDFE +:106BA00000440258000002589499000800ED00E0EB +:106BB0001F00080308B501F071FEFFF7D7FC104B6A +:106BC000D3F8DC2042F04002C3F8DC20D3F80421E3 +:106BD00022F04002C3F80421D3F80431094B1A68AB +:106BE00042F008021A601A6842F004021A6000F0CB +:106BF00077FD00F037FBBDE8084000F0B5B800BFF6 +:106C000000440258001802480120704700207047D5 +:106C10007047000002290CD0032904D0012907483D +:106C200018BF00207047032A05D8054800EBC200B2 +:106C30007047044870470020704700BF949B0008CD +:106C400054220020489B000870B59AB005460846BB +:106C5000144601A900F0C2F801A8FBF777F8431C1D +:106C60000022C6B25B001046C5E90034237003233E +:106C7000023404F8013C01ABD1B202348E4201D897 +:106C80001AB070BD13F8011B013204F8010C04F8AE +:106C9000021CF1E708B5302383F311880348FFF79E +:106CA0009BF8002383F3118808BD00BF184900201A +:106CB00090F8803003F01F02012A07D190F881205C +:106CC0000B2A03D10023C0E91D3315E003F0600354 +:106CD000202B08D1B0F884302BB990F88120212ADC +:106CE00003D81F2A04D8FFF759B8222AEBD0FAE7B5 +:106CF000034A426707228267C3670120704700BFCB +:106D00004B22002007B5052917D8DFE801F0191636 +:106D100003191920302383F31188104A01210190AF +:106D2000FFF702F9019802210D4AFFF7FDF80D481F +:106D3000FFF71EF8002383F3118803B05DF804FB0E +:106D4000302383F311880748FEF7E8FFF2E730238A +:106D500083F311880348FEF7FFFFEBE7E89A00088A +:106D60000C9B00081849002038B50C4D0C4C2A46E5 +:106D70000C4904F10800FFF767FF05F1CA0204F1AE +:106D800010000949FFF760FF05F5CA7204F1180009 +:106D90000649BDE83840FFF757BF00BFF06100204B +:106DA00054220020C89A0008D29A0008DD9A0008F0 +:106DB00070B5044608460D46FAF7C8FFC6B220462D +:106DC000013403780BB9184670BD32462946FAF7EC +:106DD000A9FF0028F3D10120F6E700002DE9F84FC4 +:106DE00005460C46FAF7B2FF2D49C6B22846FFF712 +:106DF000DFFF08B10436F6B22A492846FFF7D8FF6C +:106E000008B11036F6B2632E0DD8DFF89490DFF893 +:106E100094A0DFF89C80DFF89CB0234F2E7846B911 +:106E20002670BDE8F88F29462046BDE8F84F02F0ED +:106E300003BA252E30D1072249462846FAF772FFB9 +:106E400070B93B6807350B3444F80B3C7B6844F859 +:106E5000073C3B8924F8033CBB7A04F8013CDDE79E +:106E6000082251462846FAF75DFFA8B9A21C0F4B2D +:106E700019780232090911F8081002F8041C13F8F5 +:106E8000011B01F00F015B4511F8081002F8031C0B +:106E9000EED118340835C1E7013504F8016BBDE7C0 +:106EA000B49B0008DD9A0008BC9B000800E8F11FB5 +:106EB000C89B00080CE8F11FBFF34F8F044B1A6901 +:106EC0005107FCD1D3F810215207F8D1704700BF09 +:106ED0000020005208B50D4B1B78ABB9FFF7ECFF53 +:106EE0000B4BDA68D10704D50A4A5A6002F188329E +:106EF0005A60D3F80C21D20706D5064AC3F80421FC +:106F000002F18832C3F8042108BD00BF4E6400209E +:106F1000002000522301674508B5114B1B78F3B9D7 +:106F2000104B1A69510703D5DA6842F04002DA6063 +:106F3000D3F81021520705D5D3F80C2142F04002B6 +:106F4000C3F80C21FFF7B8FF064BDA6842F00102E4 +:106F5000DA60D3F80C2142F00102C3F80C2108BD1D +:106F60004E640020002000520F289ABF00F5806078 +:106F700040040020704700004FF4003070470000CC +:106F8000102070470F2808B50BD8FFF7EDFF00F56C +:106F900000330268013204D104308342F9D1012068 +:106FA00008BD0020FCE700000F2838B505463FD893 +:106FB000FFF782FF1F4CFFF78DFF4FF0FF330728CD +:106FC0006361C4F814311DD82361FFF775FF030214 +:106FD00043F02403E360E36843F08003E360236944 +:106FE0005A07FCD42846FFF767FFFFF7BDFF4FF4B1 +:106FF000003100F0AFFA2846FFF78EFFBDE83840B9 +:10700000FFF7C0BFC4F81031FFF756FFA0F1080327 +:107010001B0243F02403C4F80C31D4F80C3143F0C4 +:107020008003C4F80C31D4F810315B07FBD4D9E7E6 +:10703000002038BD002000522DE9F84F05460C46CF +:10704000104645EA0203DE0602D00020BDE8F88FB4 +:1070500020F01F00DFF8BCB0DFF8BCA0FFF73AFF5C +:1070600004EB0008444503D10120FFF755FFEDE78D +:1070700020222946204602F0A7F810B920352034F6 +:10708000F0E72B4605F120021F68791CDDD104339F +:107090009A42F9D105F178431B481C4EB3F5801F85 +:1070A0001B4B38BF184603F1F80332BFD946D1460F +:1070B0001E46FFF701FF0760A5EB040C336804F1DF +:1070C0001C0143F002033360231FD9F8007017F04E +:1070D0000507FAD153F8042F8B424CF80320F4D162 +:1070E000BFF34F8FFFF7E8FE4FF0FF33202221461A +:1070F00003602846336823F00203336002F064F82B +:107100000028BBD03846B0E7142100520C200052B2 +:1071100014200052102000521021005210B5084CCB +:10712000237828B11BB9FFF7D5FE0123237010BDCA +:10713000002BFCD02070BDE81040FFF7EDBE00BF73 +:107140004E6400202DE9F04F0D4685B0814658B1C0 +:1071500011F00D0614BF2022082211F0080301933C +:1071600004D0431E034269D0002435E0002E37D0FE +:1071700009F11F0121F01F094FF00108314F05F0FF +:107180000403DFF8CCA005EA080BBBF1000F32D0F6 +:107190007869C0072FD408F101080C37B8F1060F41 +:1071A000F3D19EB9284D4946A819019201F01AFE63 +:1071B0000446002839D12036019AA02EF3D1494641 +:1071C00001F010FE044600282FD1019A49461F48BD +:1071D00001F008FE044660BB204605B0BDE8F08F14 +:1071E0000029C9D101462846029201F0FBFD044660 +:1071F000D8B9029AC0E713B178694107CBD5AC077B +:1072000002D578698007C6D5019911B1786901075F +:10721000C1D549460AEB4810CDE9022301F0E2FD51 +:107220000446DDE902230028B5D04A460021204665 +:1072300001E04A460021FAF791FDCDE70246002E13 +:1072400096D199E7DC9B00089064002050640020F0 +:10725000706400200021FFF775BF00000121FFF7D7 +:1072600071BF000070B5144D0124144E40F2FF327E +:1072700000210120FAF772FD06EB441001342A695F +:1072800055F80C1F01F09AFD062CF5D137254FF467 +:10729000C0542046FFF7E2FF014628B122460848C5 +:1072A000BDE8704001F08ABDC4EBC404013D4FEA63 +:1072B000D404EED170BD00BFDC9B000870640020D8 +:1072C000506400200421FFF73DBF00004843FFF752 +:1072D000C1BF000008B101F0F7BD7047B0F5805F95 +:1072E00010B5044607D8FFF7EDFF28B92046BDE8E2 +:1072F0001040FFF7AFBF002010BD0000FFF7EABF4E +:1073000070B5AAB140EA010313F01F030FD1094C75 +:107310000144A5686D0706D52568A84203D36668B1 +:107320003544A94204D903330C34122BF1D1002285 +:10733000104670BDDC9B000808B501F0DBFE034A77 +:10734000D2E90032C01842EB010108BD30650020CF +:10735000434BD3E900232DE9F34113437CD0FFF7DE +:10736000EBFF404A00230027F9F766F806460D4672 +:107370003D4A0023F9F760F80023144630462946B9 +:10738000394AF9F759F84FF461613C23ADF80170BF +:10739000B4FBF1F5B4FBF3F601FB154103FB164614 +:1073A0004624B1FBF3F1314BF6B28DF80040984220 +:1073B0003CD84FF0640C4FF4C87EA30704F26C7203 +:1073C00025D1B2FBFCF30CFB132313BBB2FBFEF382 +:1073D0000EFB1322B2FA82F35B0903F26D18621CF2 +:1073E0008045D2B217D90FB18DF800400022204C51 +:1073F0004FF00C0C17460CFB0343D4B2013213F8C8 +:1074000004C084450CD8A0EB0C000127F5E700234D +:10741000E3E70123E1E7A0EB080014460127CCE7EE +:107420000FB18DF80140431C8DF802309DF801002A +:10743000431C9DF800005038400640EA43509DF838 +:10744000023040EA034040EA560040EAC52040EAE4 +:10745000411002B0BDE8F0814FF40410F9E700BF1D +:107460003065002040420F008051010090230B0046 +:10747000249C00080244074BD2B210B5904200D1C0 +:1074800010BD441C00B253F8200041F8040BE0B2D8 +:10749000F4E700BF504000580E4B30B51C6F240479 +:1074A00005D41C6F1C671C6F44F400441C670A4C15 +:1074B00002442368D2B243F480732360074B9042A6 +:1074C00000D130BD441C51F8045B00B243F8205099 +:1074D000E0B2F4E700440258004802585040005817 +:1074E00007B5012201A90020FFF7C4FF019803B0EE +:1074F0005DF804FB13B50446FFF7F2FFA04205D088 +:10750000012201A900200194FFF7C6FF02B010BDBF +:1075100010B56424013C4FF47A70FFF7AFF814F013 +:10752000FF04F7D10A4B102214249A614FF48062B1 +:107530009A61A3F580534FF400529A61013C4FF4D5 +:107540007A70FFF79BF814F0FF04F7D110BD00BF6D +:10755000001802580144BFF34F8F064B884204D3F2 +:10756000BFF34F8FBFF36F8F7047C3F85C022030BB +:10757000F4E700BF00ED00E00144BFF34F8F064B7E +:10758000884204D3BFF34F8FBFF36F8F7047C3F8A8 +:1075900070022030F4E700BF00ED00E070B5054652 +:1075A00016460C4601201021FFF790FE2860467316 +:1075B0003CB1204636B1FFF785FE2B68186000B15C +:1075C0009C6070BDFFF74AFEF7E70000F8B50F4674 +:1075D0001546044648B905F11F010126386821F017 +:1075E0001F01FFF7B7FF3046F8BD427B29463868D8 +:1075F000FFF786FE06460028EDD13B686360A3686E +:10760000AB4210D213B12068FFF764FE637B2846BB +:107610002BB1FFF757FE206020B9A060E3E7FFF72A +:107620001DFEF8E7A560206805F11F01012621F085 +:107630001F013860FFF78EFF2673D4E710B50446AC +:1076400040B10068884205D1606808B1FAF760FB74 +:107650000023237310BD0000F8B50F4614460546FD +:1076600048B904F11F010126386821F01F01FFF716 +:1076700083FF3046F8BD427B21463868FFF740FE65 +:1076800006460028EDD1AB68A34210D213B128689A +:10769000FFF720FE6B7B20462BB1FFF713FE28601F +:1076A00020B9A860E5E7FFF7D9FDF8E7AC603968D5 +:1076B00019B122462868FAF72BFB286804F11F014C +:1076C000012621F01F013860FFF756FF2E73D0E727 +:1076D00020B103688B4204BF00230373704700008E +:1076E000034B1A681AB9034AD2F8D0241A607047BB +:1076F000386500200040025808B5FFF7F1FF024B43 +:107700001868C0F3806008BD38650020EFF3098376 +:10771000054968334A6B22F001024A6383F3098802 +:10772000002383F31188704700EF00E0302080F3DE +:10773000118862B60D4B0E4AD96821F4E061090444 +:10774000090C0A430B49DA60D3F8FC2042F080723E +:10775000C3F8FC20084AC2F8B01F116841F00101CB +:1077600011602022DA7783F82200704700ED00E0F4 +:107770000003FA0555CEACC5001000E0302310B56B +:1077800083F311880E4B5B6813F4006314D0F1EEA1 +:10779000103AEFF309844FF08073683CE361094BC2 +:1077A000DB6B236684F30988FEF7B2FE10B1064B4B +:1077B000A36110BD054BFBE783F31188F9E700BF18 +:1077C00000ED00E000EF00E02F04000832040008A4 +:1077D00070B5BFF34F8FBFF36F8F1A4A0021C2F805 +:1077E0005012BFF34F8FBFF36F8F536943F40033D1 +:1077F0005361BFF34F8FBFF36F8FC2F88410BFF395 +:107800004F8FD2F8803043F6E074C3F3C900C3F35E +:107810004E335B0103EA0406014646EA81750139ED +:10782000C2F86052F9D2203B13F1200FF2D1BFF31E +:107830004F8F536943F480335361BFF34F8FBFF3CE +:107840006F8F70BD00ED00E0FEE70000214B224885 +:10785000224A70B5904237D3214BC11EDA1C121A4E +:1078600022F003028B4238BF00220021FAF776FA99 +:107870001C4A0023C2F88430BFF34F8FD2F8803007 +:1078800043F6E074C3F3C900C3F34E335B0103EA6C +:107890000406014646EA81750139C2F86C52F9D2F4 +:1078A000203B13F1200FF2D1BFF34F8FBFF36F8F47 +:1078B000BFF34F8FBFF36F8F0023C2F85032BFF377 +:1078C0004F8FBFF36F8F70BD53F8041B40F8041B3C +:1078D000C0E700BF2C9D00083467002034670020FB +:1078E0003467002000ED00E0074BD3F8D81021EA00 +:1078F0000001C3F8D810D3F8002122EA0002C3F82F +:107900000021D3F8003170470044025870B5D0E927 +:10791000244300224FF0FF359E6804EB42135101CF +:10792000D3F80009002805DAD3F8000940F08040B8 +:10793000C3F80009D3F8000B002805DAD3F8000BD0 +:1079400040F08040C3F8000B013263189642C3F840 +:107950000859C3F8085BE0D24FF00113C4F81C3893 +:1079600070BD0000890141F02001016103699B069F +:10797000FCD41220FEF716BE10B50A4C2046FEF7C6 +:10798000B1FA094BC4F89030084BC4F89430084C55 +:107990002046FEF7A7FA074BC4F89030064BC4F810 +:1079A000943010BD3C65002000000840609C000839 +:1079B000D8650020000004406C9C000870B5037876 +:1079C0000546012B5CD1434BD0F89040984258D1EA +:1079D000414B0E216520D3F8D82042F00062C3F855 +:1079E000D820D3F8002142F00062C3F80021D3F878 +:1079F0000021D3F8802042F00062C3F88020D3F841 +:107A0000802022F00062C3F88020D3F88030FDF798 +:107A1000ADFC324BE360324BC4F800380023D5F89C +:107A20009060C4F8003EC02323604FF40413A363A6 +:107A30003369002BFCDA01230C203361FEF7B2FD21 +:107A40003369DB07FCD41220FEF7ACFD3369002B51 +:107A5000FCDA00262846A660FFF758FF6B68C4F8DA +:107A60001068DB68C4F81468C4F81C6883BB1D4B3D +:107A7000A3614FF0FF336361A36843F00103A36088 +:107A800070BD194B9842C9D1134B4FF08060D3F8A9 +:107A9000D82042F00072C3F8D820D3F8002142F079 +:107AA0000072C3F80021D3F80021D3F8802042F0FF +:107AB0000072C3F88020D3F8802022F00072C3F84F +:107AC0008020D3F88030FFF70FFF0E214D209EE776 +:107AD000064BCDE73C6500200044025840140040AE +:107AE00003002002003C30C0D8650020083C30C0B4 +:107AF000F8B5D0F89040054600214FF000662046CA +:107B0000FFF730FFD5F8941000234FF001128F6873 +:107B10004FF0FF30C4F83438C4F81C2804EB43128B +:107B200001339F42C2F80069C2F8006BC2F808092D +:107B3000C2F8080BF2D20B68D5F89020C5F898303F +:107B4000636210231361166916F01006FBD1122030 +:107B5000FEF728FDD4F8003823F4FE63C4F800389B +:107B6000A36943F4402343F01003A3610923C4F83D +:107B70001038C4F814380B4BEB604FF0C043C4F816 +:107B8000103B094BC4F8003BC4F81069C4F8003935 +:107B9000D5F8983003F1100243F48013C5F898200B +:107BA000A362F8BD3C9C000840800010D0F89020F3 +:107BB00090F88A10D2F8003823F4FE6343EA0113E8 +:107BC000C2F80038704700002DE9F84300EB81034C +:107BD000D0F890500C468046DA680FFA81F94801D7 +:107BE000166806F00306731E022B05EB41134FF0D7 +:107BF000000194BFB604384EC3F8101B4FF00101CA +:107C000004F1100398BF06F1805601FA03F391695D +:107C100098BF06F5004600293AD0578A04F158016A +:107C2000374349016F50D5F81C180B430021C5F8A4 +:107C30001C382B180127C3F81019A7405369611E7F +:107C40009BB3138A928B9B08012A88BF5343D8F8B1 +:107C50009820981842EA034301F140022146C8F8EF +:107C60009800284605EB82025360FFF77BFE08EB85 +:107C70008900C3681B8A43EA845348341E43640165 +:107C80002E51D5F81C381F43C5F81C78BDE8F88381 +:107C900005EB4917D7F8001B21F40041C7F8001B7A +:107CA000D5F81C1821EA0303C0E704F13F030B4A8F +:107CB0002846214605EB83035A60FFF753FE05EB88 +:107CC0004910D0F8003923F40043C0F80039D5F842 +:107CD0001C3823EA0707D7E70080001000040002E1 +:107CE000D0F894201268C0F89820FFF70FBE00006B +:107CF0005831D0F8903049015B5813F4004004D05B +:107D000013F4001F0CBF0220012070474831D0F847 +:107D1000903049015B5813F4004004D013F4001F65 +:107D20000CBF02200120704700EB8101CB68196A6B +:107D30000B6813604B6853607047000000EB8103D1 +:107D400030B5DD68AA691368D36019B9402B84BFC8 +:107D5000402313606B8A1468D0F890201C4402EB17 +:107D60004110013C09B2B4FBF3F46343033323F045 +:107D7000030343EAC44343F0C043C0F8103B2B68FD +:107D800003F00303012B0ED1D2F8083802EB4110A7 +:107D900013F4807FD0F8003B14BF43F0805343F0CE +:107DA0000053C0F8003B02EB4112D2F8003B43F015 +:107DB0000443C2F8003B30BD2DE9F041D0F890609B +:107DC00005460C4606EB4113D3F8087B3A07C3F887 +:107DD000087B08D5D6F814381B0704D500EB8103BF +:107DE000DB685B689847FA071FD5D6F81438DB07BD +:107DF0001BD505EB8403D968CCB98B69488A5A68CE +:107E0000B2FBF0F600FB16228AB91868DA689042D5 +:107E10000DD2121AC3E90024302383F311882146BE +:107E20002846FFF78BFF84F31188BDE8F08101231A +:107E300003FA04F26B8923EA02036B81CB68002BFF +:107E4000F3D021462846BDE8F041184700EB8103F6 +:107E50004A0170B5DD68D0F890306C692668E6603C +:107E600056BB1A444FF40020C2F810092A6802F0E9 +:107E70000302012A0AB20ED1D3F8080803EB421418 +:107E800010F4807FD4F8000914BF40F0805040F017 +:107E90000050C4F8000903EB4212D2F8000940F088 +:107EA0000440C2F800090122D3F8340802FA01F1B3 +:107EB0000143C3F8341870BD19B9402E84BF402067 +:107EC000206020681A442E8A8419013CB4FBF6F421 +:107ED00040EAC44040F00050C6E700002DE9F843F6 +:107EE000D0F8906005460C464F0106EB4113D3F8DD +:107EF000088918F0010FC3F808891CD0D6F810388B +:107F0000DB0718D500EB8103D3F80CC0DCF8143084 +:107F1000D3F800E0DA68964530D2A2EB0E024FF0BB +:107F200000091A60C3F80490302383F31188FFF727 +:107F30008DFF89F3118818F0800F1DD0D6F83438E2 +:107F40000126A640334217D005EB84030134D5F84F +:107F50009050D3F80CC0E4B22F44DCF8142005EBA9 +:107F60000434D2F800E05168714514D3D5F83438A0 +:107F700023EA0606C5F83468BDE8F883012303FA4E +:107F800001F2038923EA02030381DCF80830002BA5 +:107F9000D1D09847CFE7AEEB0103BCF81000834285 +:107FA00028BF0346D7F8180980B2B3EB800FE3D897 +:107FB0009068A0F1040959F8048FC4F80080A0EB80 +:107FC00009089844B8F1040FF5D818440B449060A0 +:107FD0005360C8E72DE9F84FD0F8905004466E6919 +:107FE000AB691E4016F480586E6103D0BDE8F84FAF +:107FF000FDF7E8BF002E12DAD5F8003E9B0705D04A +:10800000D5F8003E23F00303C5F8003ED5F8043848 +:10801000204623F00103C5F80438FEF701F83705C0 +:1080200005D52046FFF772FC2046FDF7E7FFB004B8 +:108030000CD5D5F8083813F0060FEB6823F470530D +:108040000CBF43F4105343F4A053EB6031071BD52E +:108050006368DB681BB9AB6923F00803AB61237865 +:10806000052B0CD1D5F8003E9A0705D0D5F8003E77 +:1080700023F00303C5F8003E2046FDF7D1FF6368F7 +:10808000DB680BB120469847F30200F1BA80B702D3 +:1080900026D5D4F8909000274FF0010A09EB47123B +:1080A000D2F8003B03F44023B3F5802F11D1D2F86E +:1080B000003B002B0DDA62890AFA07F322EA030378 +:1080C000638104EB8703DB68DB6813B13946204624 +:1080D00098470137D4F89430FFB29B689F42DDD9AE +:1080E000F00619D5D4F89000026AC2F30A1702F01C +:1080F0000F0302F4F012B2F5802F00F0CA80B2F53F +:10810000402F09D104EB8303002200F58050DB6887 +:108110001B6A974240F0B0803003D5F8185835D527 +:10812000E90303D500212046FFF746FEAA0303D545 +:1081300001212046FFF740FE6B0303D502212046B4 +:10814000FFF73AFE2F0303D503212046FFF734FE45 +:10815000E80203D504212046FFF72EFEA90203D52D +:1081600005212046FFF728FE6A0203D50621204696 +:10817000FFF722FE2B0203D507212046FFF71CFE46 +:10818000EF0103D508212046FFF716FE700340F1EA +:10819000A780E90703D500212046FFF79FFEAA0725 +:1081A00003D501212046FFF799FE6B0703D5022175 +:1081B0002046FFF793FE2F0703D503212046FFF744 +:1081C0008DFEEE0603D504212046FFF787FEA806A4 +:1081D00003D505212046FFF781FE690603D5062158 +:1081E0002046FFF77BFE2A0603D507212046FFF72E +:1081F00075FEEB0574D520460821BDE8F84FFFF762 +:108200006DBED4F890904FF0000B4FF0010AD4F8F7 +:1082100094305FFA8BF79B689F423FF638AF09EBCB +:108220004713D3F8002902F44022B2F5802F20D161 +:10823000D3F80029002A1CDAD3F8002942F0904232 +:10824000C3F80029D3F80029002AFBDB3946D4F80B +:108250009000FFF787FB22890AFA07F322EA03035B +:10826000238104EB8703DB689B6813B13946204602 +:1082700098470BF1010BCAE7910701D1D0F80080B4 +:10828000072A02F101029CBF03F8018B4FEA18286C +:108290003FE704EB830300F58050DA68D2F818C09A +:1082A000DCF80820DCE9001CA1EB0C0C00218F425B +:1082B00008D1DB689B699A683A449A605A683A44E4 +:1082C0005A6029E711F0030F01D1D0F800808C45E6 +:1082D00001F1010184BF02F8018B4FEA1828E6E79B +:1082E000BDE8F88F08B50348FFF774FEBDE8084005 +:1082F000FFF744BA3C65002008B50348FFF76AFE63 +:10830000BDE80840FFF73ABAD8650020D0F89030B1 +:1083100003EB4111D1F8003B43F40013C1F8003BDB +:1083200070470000D0F8903003EB4111D1F80039CC +:1083300043F40013C1F8003970470000D0F89030C2 +:1083400003EB4111D1F8003B23F40013C1F8003BCB +:1083500070470000D0F8903003EB4111D1F800399C +:1083600023F40013C1F8003970470000064BD3F81E +:10837000DC200243C3F8DC20D3F804211043C3F807 +:108380000401D3F8043170470044025808B53C4B4F +:108390004FF0FF31D3F8802062F00042C3F8802014 +:1083A000D3F8802002F00042C3F88020D3F8802068 +:1083B000D3F88420C3F88410D3F884200022C3F8B3 +:1083C0008420D3F88400D86F40F0FF4040F4FF00D1 +:1083D00040F4DF4040F07F00D867D86F20F0FF40C6 +:1083E00020F4FF0020F4DF4020F07F00D867D86F32 +:1083F000D3F888006FEA40506FEA5050C3F8880005 +:10840000D3F88800C0F30A00C3F88800D3F88800C6 +:10841000D3F89000C3F89010D3F89000C3F89020E0 +:10842000D3F89000D3F89400C3F89410D3F89400D4 +:10843000C3F89420D3F89400D3F89800C3F89810A8 +:10844000D3F89800C3F89820D3F89800D3F88C009C +:10845000C3F88C10D3F88C00C3F88C20D3F88C00B0 +:10846000D3F89C00C3F89C10D3F89C10C3F89C2050 +:10847000D3F89C30FCF728FABDE8084000F0D6B9E4 +:108480000044025808B50122534BC3F80821534B4E +:10849000D3F8F42042F00202C3F8F420D3F81C21F0 +:1084A00042F00202C3F81C210222D3F81C314C4BCB +:1084B000DA605A689104FCD54A4A1A6001229A602F +:1084C000494ADA6000221A614FF440429A61444BF3 +:1084D0009A699204FCD51A6842F480721A603F4B84 +:1084E0001A6F12F4407F04D04FF480321A670022D2 +:1084F0001A671A6842F001021A60384B1A6850076E +:10850000FCD500221A611A6912F03802FBD1012150 +:1085100019604FF0804159605A67344ADA62344A30 +:108520001A611A6842F480321A602C4B1A6891035F +:10853000FCD51A6842F480521A601A689204FCD57D +:108540002C4A2D499A6200225A63196301F57C0175 +:10855000DA6301F2E71199635A64284A1A64284AD7 +:10856000DA621A6842F0A8521A601C4B1A6802F0CC +:108570002852B2F1285FF9D148229A614FF48862FB +:10858000DA6140221A621F4ADA641F4A1A651F4ADA +:108590005A651F4A9A6532231E4A1360136803F016 +:1085A0000F03022BFAD10D4A136943F00303136141 +:1085B000136903F03803182BFAD14FF00050FFF77E +:1085C000D5FE4FF08040FFF7D1FE4FF00040BDE8F0 +:1085D0000840FFF7CBBE00BF0080005100440258A6 +:1085E0000048025800C000F0020000010000FF0136 +:1085F000008890082220400063020901470E050808 +:10860000DD0BBF0120000020000001100910E00078 +:1086100000010110002000524FF0B04208B5D2F81E +:10862000883003F00103C2F8883023B1044A13688C +:108630000BB150689847BDE80840FFF79FB800BFEE +:10864000B46600204FF0B04208B5D2F8883003F08D +:108650000203C2F8883023B1044A93680BB1D06892 +:108660009847BDE80840FFF789B800BFB46600200E +:108670004FF0B04208B5D2F8883003F00403C2F8D6 +:10868000883023B1044A13690BB150699847BDE89B +:108690000840FFF773B800BFB46600204FF0B04247 +:1086A00008B5D2F8883003F00803C2F8883023B147 +:1086B000044A93690BB1D0699847BDE80840FFF7B9 +:1086C0005DB800BFB46600204FF0B04208B5D2F8E4 +:1086D000883003F01003C2F8883023B1044A136ACB +:1086E0000BB1506A9847BDE80840FFF747B800BF94 +:1086F000B46600204FF0B04310B5D3F8884004F4BE +:108700007872C3F88820A30604D5124A936A0BB185 +:10871000D06A9847600604D50E4A136B0BB1506BB4 +:108720009847210604D50B4A936B0BB1D06B984741 +:10873000E20504D5074A136C0BB1506C9847A305AA +:1087400004D5044A936C0BB1D06C9847BDE8104037 +:10875000FFF714B8B46600204FF0B04310B5D3F85B +:10876000884004F47C42C3F88820620504D5164A88 +:10877000136D0BB1506D9847230504D5124A936DC4 +:108780000BB1D06D9847E00404D50F4A136E0BB1BE +:10879000506E9847A10404D50B4A936E0BB1D06E6E +:1087A0009847620404D5084A136F0BB1506F98477D +:1087B000230404D5044A936F0BB1D06F9847BDE8EA +:1087C0001040FEF7DBBF00BFB466002008B50348C9 +:1087D000FCF742FCBDE80840FEF7D0BFC8360020D9 +:1087E00008B50348FCF73CFDBDE80840FEF7C6BFEE +:1087F0002039002008B50348FCF732FDBDE80840E9 +:10880000FEF7BCBF8C39002008B50348FCF728FDF3 +:10881000BDE80840FEF7B2BFF839002008B500F007 +:10882000BDFCBDE80840FEF7A9BF0000062108B561 +:108830000846FCF79BFD06210720FCF797FD062163 +:108840000820FCF793FD06210920FCF78FFD062187 +:108850000A20FCF78BFD06211720FCF787FD062177 +:108860002820FCF783FD09217A20FCF77FFD0921F0 +:108870007C20FCF77BFD07213220FCF777FD0C21E3 +:108880002720FCF773FD0C213520FCF76FFD0C2130 +:108890005220BDE80840FCF769BD000008B5FFF7AD +:1088A00075FD00F043FCFDF741F9FDF7DFF8FDF73A +:1088B00017FBFDF7E9F9FEF7ABF9BDE8084000F05A +:1088C00029BA000030B50433039C0172002104FB77 +:1088D0000325C160C0E90653049B0363059BC0E9FF +:1088E0000000C0E90422C0E90842C0E90A1143635C +:1088F00030BD00000022416AC260C0E90411C0E935 +:108900000A226FF00101FDF7F9BE0000D0E9043240 +:10891000934201D1C2680AB9181D70470020704700 +:10892000036919600021C2680132C260C269134440 +:1089300082699342036124BF436A0361FDF7D2BE9B +:1089400038B504460D46E3683BB162690020131D4B +:108950001268A3621344E36207E0237A33B929461D +:108960002046FDF7AFFE0028EDDA38BD6FF00100BC +:10897000FBE70000C368C269013BC360436913445D +:1089800082699342436124BF436A43610023836247 +:10899000036B03B11847704770B53023044683F367 +:1089A0001188866A3EB9FFF7CBFF054618B186F3FA +:1089B0001188284670BDA36AE26A13F8015B9342EE +:1089C000A36202D32046FFF7D5FF002383F311886B +:1089D000EFE700002DE9F84F04460E46174698468B +:1089E0004FF0300989F311880025AA46D4F828B041 +:1089F000BBF1000F09D141462046FFF7A1FF20B18E +:108A00008BF311882846BDE8F88FD4E90A12A7EB4A +:108A1000050B521A934528BF9346BBF1400F1BD953 +:108A2000334601F1400251F8040B914243F8040B24 +:108A3000F9D1A36A403640354033A362D4E90A2312 +:108A40009A4202D32046FFF795FF8AF31188BD4270 +:108A5000D8D289F31188C9E730465A46F9F758F950 +:108A6000A36A5E445D445B44A362E7E710B5029CE1 +:108A70000433017203FB0421C460C0E90613002320 +:108A8000C0E90A33039B0363049BC0E90000C0E90B +:108A90000422C0E90842436310BD0000026A6FF07F +:108AA0000101C260426AC0E904220022C0E90A2230 +:108AB000FDF724BED0E904239A4201D1C26822B94D +:108AC000184650F8043B0B60704700231846FAE73D +:108AD000C3680021C2690133C360436913448269DA +:108AE0009342436124BF436A4361FDF7FBBD00002D +:108AF00038B504460D46E3683BB1236900201A1DD2 +:108B0000A262E2691344E36207E0237A33B929469B +:108B10002046FDF7D7FD0028EDDA38BD6FF00100E3 +:108B2000FBE7000003691960C268013AC260C269CC +:108B3000134482699342036124BF436A03610023A3 +:108B40008362036B03B118477047000070B5302390 +:108B50000D460446114683F31188866A2EB9FFF745 +:108B6000C7FF10B186F3118870BDA36A1D70A36A98 +:108B7000E26A01339342A36204D3E16920460439D7 +:108B8000FFF7D0FF002080F31188EDE72DE9F84FC3 +:108B900004460D46904699464FF0300A8AF31188F4 +:108BA0000026B346A76A4FB949462046FFF7A0FF03 +:108BB00020B187F311883046BDE8F88FD4E90A0761 +:108BC0003A1AA8EB0607974228BF1746402F1BD931 +:108BD00005F1400355F8042B9D4240F8042BF9D1D0 +:108BE000A36A40364033A362D4E90A239A4204D3ED +:108BF000E16920460439FFF795FF8BF3118846455C +:108C0000D9D28AF31188CDE729463A46F9F780F898 +:108C1000A36A3D443E443B44A362E5E7D0E9042314 +:108C20009A4217D1C3689BB1836A8BB1043B9B1AEC +:108C30000ED01360C368013BC360C3691A448369E3 +:108C40009A42026124BF436A0361002383620123C5 +:108C5000184670470023FBE701F01F03F0B502F050 +:108C60001F0456095A1C0123B6EB511F50F8265019 +:108C700003FA02F34FEA511703F1FF333DBF50F8F7 +:108C80002720C4F12000134003EA05003BBF03FA8C +:108C900000F225FA04F0E0401043F0BD70B57E22EA +:108CA0007F210546FFF7D8FF18B1012819D0002011 +:108CB00070BD3E2249212846FFF7CEFF2F220446F1 +:108CC00031212846FFF7C8FF0646013450220236FC +:108CD00053212846B440FFF7BFFF093804FA00F0DB +:108CE000E6E7302245212846FFF7B6FF0130800233 +:108CF000DEE7000090F8D63090F8D7201B0403EB95 +:108D0000026390F8D42090F8D500134403EB0020C0 +:108D10007047000000F018BA014B586A704700BF56 +:108D2000000C0040034B002258631A610222DA60F3 +:108D3000704700BF000C0040014B0022DA60704712 +:108D4000000C0040014B5863704700BF000C00400E +:108D5000024B034A1A60034A5A6070478C6600202F +:108D60003867002000000220074B494210B55C68BC +:108D7000201A08401968821A8A4203D3A24201D8F5 +:108D80005A6010BD0020FCE78C66002008B5302337 +:108D900083F31188FFF7E8FF002383F3118808BDF0 +:108DA0000448054B03600023C0E901330C3000F098 +:108DB00017B900BF946600208D8D0008CB1D083ABE +:108DC00023F00703591A521A10B4D2080024C0E93C +:108DD000004384600C301C605A605DF8044B00F066 +:108DE000FFB800002DE9F74F364FCD1D884600280B +:108DF00018BF0746082A4FEAD50538BF082207F1F1 +:108E00000C003C1D9146019000F02CF9019809F1ED +:108E10000701C9F1000E2246246864B900F02CF95C +:108E20003B68CBB308224946E8009847044698B30C +:108E300040E9027830E004EB010CD4F804A00CEA1D +:108E40000E0C0AF10106ACF1080304EBC6069E42C3 +:108E5000E1D9A6EB0C0CB5EBEC0F4FEAEC0BDAD832 +:108E60009C421DD204F10802AB45A3EB02024FEA7B +:108E7000E202626009D9691CED4303EBC1025D4463 +:108E80005560256843F8315022601C46C3F80480C1 +:108E900044F8087B00F0F0F8204603B0BDE8F08FFE +:108EA000AA45216802D111602346EEE7013504EBA3 +:108EB000C50344F8351003F10801761AF6105E6018 +:108EC0001360F1E79466002073B50446A0F108052D +:108ED00050F8080C54F8043C061D0C300733019080 +:108EE000DB0844F8043C00F0BDF8334601989E428C +:108EF0001A6801D0AB4228D20AB1954225D244F873 +:108F0000082C54F8042C1D60013254F8081C05EBA1 +:108F1000C206B14206D14E68324444F8042C0A68B5 +:108F200044F8082C5E68711C03EBC1018D4207D127 +:108F300054F8042C013232445A6054F8082C1A6058 +:108F400002B0BDE8704000F097B81346CFE70000CC +:108F5000FEE7000070B51E4B0025044686B0586041 +:108F60000E4605638163FEF7E1FB04F12803A5606B +:108F70006563C4E90A3304F11003C4E904334FF014 +:108F8000FF33C4E90044C4E90635FFF7C5FE2B46AC +:108F9000024604F13C012046C4E9082380230D4A1F +:108FA0006567FDF709FB7368E0600B4A0362012304 +:108FB000009280F824306846F26801923269CDE967 +:108FC0000223064BCDE90435FDF72AFB06B070BD40 +:108FD00010490020809C0008789C0008518F0008F0 +:108FE0000023C0E9000083600361704770B51C4B2B +:108FF00005468468DE685CB3B44213D1036901336B +:10900000036170BDA36094F8243083B1062B15D1A1 +:10901000A06A2146D4E9003213605A60FDF738FA9D +:10902000A36A9C68B368A2689A42EBD306E0D4E9CD +:109030000032204613605A60FDF73AFA284631465E +:10904000FDF726FAB5620620BDE87040FDF732BA9A +:109050000369866001330361336BC3603063D0E71B +:109060006846002008B5302383F31188FFF7BEFF60 +:10907000002383F3118808BD194BD96883688B429C +:1090800010B520D1302383F311880269013A0261BF +:10909000B2B90468C368A0420B631ED04A6B9BB987 +:1090A00001238A60036103681A68026050601A6BCA +:1090B0008360C26018631846FDF7FAF9FDF74AFAB3 +:1090C000002383F3118810BD1C68A34203D0A46859 +:1090D000A24238BF2246DB68E1E78260F0E700BFCA +:1090E00068460020024A536B18435063704700BF24 +:1090F0006846002038B5EFF311859DB9EFF305847C +:10910000C4F30804302334B183F31188FDF72EFC37 +:1091100085F3118838BD83F31188FDF727FC84F3AC +:10912000118838BDBDE83840FDF720BC0023054A52 +:1091300019460133102BC2E9001102F10802F8D1DF +:10914000704700BFB4660020114BD3F8E82042F00E +:109150000802C3F8E820D3F8102142F00802C3F84F +:1091600010210C4AD3F81031D36B43F00803D363BA +:10917000C722094B9A624FF0FF32DA6200229A61ED +:109180005A63DA605A6001225A611A60704700BF60 +:10919000004402580010005C000C0040094A08B569 +:1091A0001169D3680B40D9B29B076FEA01011161C5 +:1091B00007D5302383F31188FDF7F2F9002383F3F9 +:1091C000118808BD000C004010B5013902449042DE +:1091D00001D1002005E0037811F8014FA34201D02E +:1091E000181B10BD0130F2E7884210B501EB0204F4 +:1091F00002D98442234607D8431EA14208D011F861 +:10920000012B03F8012FF8E7024401468A4200D1FE +:1092100010BD13F8014D02F8014DF7E7C9B203463E +:1092200010F8012B1AB18A42F9D11846704700296B +:1092300018BF0023F9E70000034611F8012B03F8DB +:10924000012B002AF9D1704710B50139034632B11C +:1092500011F8014F03F8014B013A002CF7D11A44E1 +:109260000021934200D110BD03F8011BF9E7000073 +:109270004D4435002D2D0A002F6172647570696CA4 +:109280006F742E6162696E002F6172647570696C13 +:109290006F742D7665726966792E6162696E002F32 +:1092A0006172647570696C6F742D666C6173682E81 +:1092B0006162696E002F6172647570696C6F742DE4 +:1092C000666C61736865642E6162696E00000000FF +:1092D0000000000000000000050F0008A10F0008BA +:1092E00051110008D90F0008990F00080000000074 +:1092F00000000000010F0008AD0F000889110008F0 +:10930000FD0E0008090F000853544D333248373F13 +:109310003F3F0053544D3332483733782F3732783C +:109320000053544D3332483734332F3735332F37CA +:109330003530000001105A00031059000120580078 +:10934000032056002F000000537563636573736636 +:10935000756C6C79206D6F756E7465642053444331 +:109360006172642028736C6F77646F776E3D25752A +:10937000290A0000EB7690455846415420202000F1 +:109380004641543332202020000000002A3A3C3E5F +:109390007C223F7F002B2C3B3D5B5D0043554541CC +:1093A0004141414345454549494941414592924FD3 +:1093B0004F4F5555594F554F9C4F9E9F41494F55C3 +:1093C000A5A5A6A7A8A9AAABACADAEAFB0B1B2B3E4 +:1093D000B4414141B8B9BABBBCBDBEBFC0C1C2C334 +:1093E000C4C54141C8C9CACBCCCDCECFD1D14545EA +:1093F0004549494949D9DADBDCDD49DF4FE14F4FC7 +:109400004F4FE6E8E85555555959EEEFF0F1F2F3B4 +:10941000F4F5F6F7F8F9FAFBFCFDFEFF010305078A +:10942000090E10121416181C1E00000061001A0309 +:10943000E0001703F8000703FF00010078010001B6 +:10944000300132010601390110014A012E01790172 +:10945000060180014D0043028101820182018401E5 +:10946000840186018701870189018A018B018B01B3 +:109470008D018E018F019001910191019301940161 +:10948000F60196019701980198013D029B019C010C +:109490009D0120029F01A001A001A201A201A4013F +:1094A000A401A601A701A701A901AA01AB01AC0172 +:1094B000AC01AE01AF01AF01B101B201B301B30123 +:1094C000B501B501B701B801B801BA01BB01BC01D2 +:1094D000BC01BE01F701C001C101C201C301C40149 +:1094E000C501C401C701C801C701CA01CB01CA0136 +:1094F000CD011001DD0101008E01DE011201F30139 +:109500000300F101F401F401F80128012202120123 +:109510003A020900652C3B023B023D02662C3F02E9 +:1095200040024102410246020A0153024000810109 +:109530008601550289018A0158028F015A02900161 +:109540005C025D025E025F029301610262029401AD +:109550006402650266026702970196016A02622C44 +:109560006C026D026E029C01700271029D01730219 +:1095700074029F0176027702780279027A027B02F6 +:109580007C02642C7E027F02A60181028202A90174 +:109590008402850286028702AE014402B101B20153 +:1095A00045028D028E028F0290029102B7017B0369 +:1095B0000300FD03FE03FF03AC03040086038803DE +:1095C00089038A03B1031103C2030200A303A303A7 +:1095D000C4030803CC0303008C038E038F03D8035A +:1095E0001801F2030A00F903F303F403F503F60389 +:1095F000F703F703F903FA03FA03300420035004D6 +:109600001007600422018A043601C1040E01CF0450 +:109610000100C004D00444016105260400000000DC +:109620007D1D0100632C001E9601A01E5A01001F23 +:109630000806101F0606201F0806301F0806401FD8 +:109640000606511F0700591F521F5B1F541F5D1F45 +:10965000561F5F1F601F0806701F0E00BA1FBB1F3A +:10966000C81FC91FCA1FCB1FDA1FDB1FF81FF91F36 +:10967000EA1FEB1FFA1FFB1F801F0806901F08063A +:10968000A01F0806B01F0400B81FB91FB21FBC1FDF +:10969000CC1F0100C31FD01F0206E01F0206E51FFA +:1096A0000100EC1FF31F0100FC1F4E2101003221BD +:1096B00070211002842101008321D0241A05302C4E +:1096C0002F04602C0201672C0601752C0201802CEE +:1096D0006401002D260841FF1A030000C700FC00AA +:1096E000E900E200E400E000E500E700EA00EB004A +:1096F000E800EF00EE00EC00C400C500C900E60081 +:10970000C600F400F600F200FB00F900FF00D600EE +:10971000DC00F800A300D800D7009201E100ED00C2 +:10972000F300FA00F100D100AA00BA00BF00AE00B9 +:10973000AC00BD00BC00A100AB00BB009125922590 +:10974000932502252425C100C200C000A90063257D +:10975000512557255D25A200A50010251425342587 +:109760002C251C2500253C25E300C3005A25542543 +:1097700069256625602550256C25A400F000D000E1 +:10978000CA00CB00C8003101CD00CE00CF001825A3 +:109790000C2588258425A600CC008025D300DF0079 +:1097A000D400D200F500D500B500FE00DE00DA00DE +:1097B000DB00D900FD00DD00AF00B400AD00B1005A +:1097C0001720BE00B600A700F700B800B000A80040 +:1097D000B700B900B300B200A025A00010000240FD +:1097E000080002400008024000000B002800024070 +:1097F000080002400408024006010C00400002403C +:10980000080002400808024010020D005800024003 +:10981000080002400C08024016030E0070000240CF +:109820000C0002401008024000040F0088000240B3 +:109830000C0002401408024006051000A00002407F +:109840000C0002401808024010061100B800024047 +:109850000C0002401C08024016072F0010040240B2 +:109860000804024020080240000838002804024092 +:10987000080402402408024006093900400402405E +:109880000804024028080240100A3A005804024026 +:10989000080402402C080240160B3B0070040240F2 +:1098A0000C04024030080240000C3C0088040240D6 +:1098B0000C04024034080240060D4400A00402409B +:1098C0000C04024038080240100E4500B804024063 +:1098D0000C0402403C080240160F46000100000044 +:1098E00000000000009600000000000000000000E2 +:1098F0000000000000000000000000000000000068 +:10990000096C00080D6C000801570008395A00085E +:1099100095560008BD560008E55600087D5600081B +:1099200000000000ED5A0008D95A0008155B000835 +:10993000015B00080D5B0008F95A0008E55A0008B1 +:10994000D15A0008215B000800000000055C0008F7 +:10995000F15B00082D5C0008195C0008255C00081C +:10996000115C0008FD5B0008E95B0008395C000839 +:109970000000000001000000000000006330000053 +:109980007C9900080000000000000000E046002074 +:10999000104900200000802A00020000AAAAAAAAFA +:1099A00000000024FFFF00000000000000A00A00EB +:1099B000000200A000000000AAAAAAAA000100500C +:1099C000FFFF0000000009000000009900000006F1 +:1099D00000000000AAAAAAAA00000001FFFF0000E0 +:1099E000000000000000080020A00A400000000065 +:1099F000AAAAAAAA10400540FFFF0000000800BB69 +:109A0000770000004045020000000000AAAAAAAAB0 +:109A100000000100C7FF0000000000000700000078 +:109A20000020000000000000AAAAAAAA001000005E +:109A3000FFFF000000000007000000001041900040 +:109A400000000000AAAAAAAA10404000FFFF0000E0 +:109A50000000000000A00000000400000000000062 +:109A6000AAAAAAAA00040000FFFF0000000000004C +:109A7000000000000000040000000000AAAAAAAA3A +:109A800000000400FFFF00000000000000000000D4 +:109A90000000000000000000AAAAAAAA000000001E +:109AA000FFFF0000000000000000000000000000B8 +:109AB00000000000AAAAAAAA00000000FFFF000000 +:109AC00000000000000000004172647550696C6F76 +:109AD000740025424F415244252D424C00255345E8 +:109AE0005249414C25000000020000000000000027 +:109AF000255E0008955E000840004000C06100201F +:109B0000D0610020020000000000000003000000FF +:109B100000000000DD5E00080000000010000000F2 +:109B2000E0610020000000000100000000000000D3 +:109B30003C65002001010200056D0008156C00085D +:109B4000B16C0008956C000843000000509B0008B1 +:109B500009024300020100C03209040000010202B0 +:109B60000100052400100105240100010424020263 +:109B70000524060001070582030800FF090401000F +:109B8000020A0000000705010240000007058102EB +:109B900040000000120000009C9B00081201100110 +:109BA00002000040091241570002010203010000B7 +:109BB0000403090425424F415244250043554156B0 +:109BC0002D372D4E616E6F003031323334353637DC +:109BD000383941424344454600000000000000205F +:109BE000000002000200000000000030000004003D +:109BF000080000000000002400000800040000002D +:109C00000004000000FC000002000000000004301E +:109C10000080000008000000000000380000010083 +:109C2000010000001F1C1F1E1F1E1F1F1E1F1E1FC6 +:109C30001F1D1F1E1F1E1F1F1E1F1E1F00000000B6 +:109C400039600008F16200089D6300084000400090 +:109C50007466002074660020010000008466002005 +:109C6000800000004001000008000000000100002A +:109C7000001000000800000069646C65000000002E +:109C80006D61696E002C0438040438080C10141C33 +:109C900020242526000000000000640401000400C8 +:109CA00000000000000C001028303400BC67FF7F6B +:109CB0000100000000000000581B00000000000030 +:109CC00000001E0000000000FF00000018490020F6 +:109CD000F83900208C3900202039002000000000D5 +:109CE0000893000883040000139300085004000048 +:109CF0002193000801000000000000000096000011 +:109D000000000800960000000008000004000000A9 +:109D1000B09B0008000000000000000000000000F0 +:0C9D200000000000000000000000000037 +:00000001FF diff --git a/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.bin b/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.bin new file mode 100644 index 0000000000..de8588a9bd Binary files /dev/null and b/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.bin differ diff --git a/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.hex b/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.hex new file mode 100644 index 0000000000..ac2e6a8f8a --- /dev/null +++ b/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.hex @@ -0,0 +1,1103 @@ +:020000040800F2 +:1000000000060020E1020008E3020008E302000805 +:10001000E3020008E3020008E3020008E30200082C +:10002000E3020008E3020008E30200086D2800086C +:10003000E3020008E3020008E3020008E30200080C +:10004000E3020008E3020008E3020008E3020008FC +:10005000E3020008E3020008D93D0008053E00085D +:10006000313E00085D3E0008893E0008711000081E +:1000700099100008C5100008F11000081D110008B3 +:100080004511000871110008E3020008E3020008AE +:10009000E3020008E3020008E3020008B53E00089E +:1000A000E3020008E3020008E3020008E30200089C +:1000B000E3020008E3020008E3020008E30200088C +:1000C000E3020008E3020008E3020008E30200087C +:1000D000E3020008E3020008E3020008E30200086C +:1000E000193F0008E3020008E3020008E3020008E9 +:1000F000E3020008E3020008E30200089D11000883 +:10010000E3020008E30200088D3F0008E302000854 +:10011000E3020008E3020008E3020008E30200082B +:10012000C9110008F11100081D1200084912000849 +:1001300075120008E3020008E3020008E302000869 +:10014000E3020008E3020008E3020008E3020008FB +:100150009D120008C9120008F5120008E302000809 +:10016000E3020008E3020008E3020008E3020008DB +:10017000E302000859340008E3020008E302000823 +:10018000E3020008E3020008E3020008E3020008BB +:10019000E3020008E3020008E3020008E3020008AB +:1001A000E3020008E3020008E3020008E30200089B +:1001B000E3020008E3020008E3020008E30200088B +:1001C000E3020008E3020008E3020008E30200087B +:1001D000E302000845340008E3020008E3020008D7 +:1001E000E3020008E3020008E3020008E30200085B +:1001F000E3020008E3020008E3020008E30200084B +:10020000E3020008E3020008E3020008E30200083A +:10021000E3020008E3020008E3020008E30200082A +:10022000E3020008E3020008E3020008E30200081A +:10023000E3020008E3020008E3020008E30200080A +:10024000E3020008E3020008E3020008E3020008FA +:10025000E3020008E3020008E3020008E3020008EA +:10026000E3020008E3020008E3020008E3020008DA +:10027000E3020008E3020008E3020008E3020008CA +:10028000E3020008E3020008E3020008E3020008BA +:10029000E3020008E3020008E3020008E3020008AA +:1002A000E3020008E3020008E3020008E30200089A +:1002B000E3020008E3020008E3020008E30200088A +:1002C000E3020008E3020008E3020008E30200087A +:1002D000E3020008E3020008E3020008E30200086A +:1002E00002E000F000F8FEE772B6374880F30888B5 +:1002F000364880F3098836483649086040F20000E5 +:10030000CCF200004EF63471CEF200010860BFF36B +:100310004F8FBFF36F8F40F20000C0F2F0004EF637 +:100320008851CEF200010860BFF34F8FBFF36F8F8B +:100330004FF00000E1EE100A4EF63C71CEF20001E3 +:100340000860062080F31488BFF36F8F02F0F0FA84 +:1003500003F0FEFA4FF055301F491B4A91423CBF53 +:1003600041F8040BFAE71D49184A91423CBF41F895 +:10037000040BFAE71A491B4A1B4B9A423EBF51F83D +:10038000040B42F8040BF8E700201849184A914280 +:100390003CBF41F8040BFAE702F008FB03F05CFBFA +:1003A000144C154DAC4203DA54F8041B8847F9E7A6 +:1003B00000F042F8114C124DAC4203DA54F8041B21 +:1003C0008847F9E702F0F0BA00060020002200207A +:1003D0000000000808ED00E00000002000060020FA +:1003E00070440008002200205C22002060220020CF +:1003F000BC430020E0020008E0020008E002000820 +:10040000E00200082DE9F04F2DED108AC1F80CD064 +:10041000D0F80CD0BDEC108ABDE8F08F002383F338 +:1004200011882846A047002001F0A4FDFEE701F056 +:1004300033FD00DFFEE7000038B500F02FFC00F0D0 +:10044000ABFD02F0D3F9054602F006FA0446C0B946 +:100450000E4B9D4217D001339D4241F2883512BFA9 +:10046000044600250124002002F0CAF90CB100F076 +:1004700075F800F065FD284600F01EF900F06EF8F2 +:10048000F9E70025EFE70546EDE700BF010007B0FB +:1004900008B500F0D5FBA0F120035842584108BD33 +:1004A00007B541F21203022101A8ADF8043000F0B3 +:1004B000E5FB03B05DF804FB38B5302383F3118806 +:1004C000174803680BB101F021FE0023154A4FF4D1 +:1004D0007A71134801F010FE002383F31188124C47 +:1004E000236813B12368013B2360636813B1636819 +:1004F000013B63600D4D2B7833B963687BB90220F3 +:1005000000F088FC322363602B78032B07D16368EB +:100510002BB9022000F07EFC4FF47A73636038BD83 +:1005200060220020B90400088023002078220020E7 +:10053000084B187003280CD8DFE800F00805020803 +:10054000022000F05DBC022000F050BC024B0022F3 +:100550005A6070477822002080230020F8B5504B65 +:10056000504A1C461968013100F0998004339342C7 +:10057000F8D162684C4B9A4240F291804B4B9B6899 +:1005800003F1006303F5C0239A4280F088800020C5 +:1005900000F09EFB0220FFF7CBFF454B0021D3F874 +:1005A000E820C3F8E810D3F81021C3F81011D3F8ED +:1005B0001021D3F8EC20C3F8EC10D3F81421C3F8C1 +:1005C0001411D3F81421D3F8F020C3F8F010D3F8A5 +:1005D0001821C3F81811D3F81821D3F8802042F05D +:1005E0000062C3F88020D3F8802022F00062C3F8B4 +:1005F0008020D3F88020D3F8802042F00072C3F826 +:100600008020D3F8802022F00072C3F88020D3F835 +:10061000803072B64FF0E023C3F8084DD4E90004EF +:10062000BFF34F8FBFF36F8F224AC2F88410BFF31E +:100630004F8F536923F480335361BFF34F8FD2F848 +:10064000803043F6E076C3F3C905C3F34E335B0154 +:1006500003EA060C29464CEA81770139C2F8747224 +:10066000F9D2203B13F1200FF2D1BFF34F8FBFF32C +:100670006F8FBFF34F8FBFF36F8F536923F4003336 +:1006800053610023C2F85032BFF34F8FBFF36F8F17 +:10069000302383F31188854680F308882047F8BD0E +:1006A0000000060820000608FFFF050800220020C1 +:1006B0000044025800ED00E02DE9F04F93B0B44B38 +:1006C0002022FF2100900AA89D6800F0E3FBB14AB8 +:1006D0001378A3B90121B04811700360302383F36C +:1006E000118803680BB101F011FD0023AB4A4FF4F0 +:1006F0007A71A94801F000FD002383F31188009B63 +:1007000013B1A74B009A1A60A64A1378032B03D0A3 +:1007100000231370A24A53604FF0000A009CD34696 +:100720005646D146012000F06BFB24B19C4B1B6860 +:10073000002B00F02682002000F082FA0390039B39 +:10074000002BF2DB012000F051FB039B213B1F2B10 +:10075000E8D801A252F823F0D907000801080008E0 +:100760009508000825070008250700082507000848 +:1007700027090008F70A0008110A0008730A000890 +:100780009B0A0008C10A000825070008D30A0008D0 +:1007900025070008450B0008790800082507000810 +:1007A000890B0008E50700087908000825070008FC +:1007B000730A000825070008250700082507000818 +:1007C0002507000825070008250700082507000859 +:1007D00025070008950800080220FFF759FE0028A9 +:1007E00040F0F981009B022105A8BAF1000F08BF73 +:1007F0001C4641F21233ADF8143000F03FFA91E795 +:100800004FF47A7000F01CFA071EEBDB0220FFF7B2 +:100810003FFE0028E6D0013F052F00F2DE81DFE831 +:1008200007F0030A0D1013360523042105A80593CC +:1008300000F024FA17E004215548F9E704215A484A +:10084000F6E704215948F3E74FF01C08404608F149 +:10085000040800F03FFA0421059005A800F00EFA04 +:10086000B8F12C0FF2D101204FF0000900FA07F780 +:1008700047EA0B0B5FFA8BFB00F058FB26B10BF03D +:100880000B030B2B08BF0024FFF70AFE4AE70421E5 +:100890004748CDE7002EA5D00BF00B030B2BA1D1C1 +:1008A0000220FFF7F5FD074600289BD00120002617 +:1008B00000F00EFA0220FFF73BFE1FFA86F84046D2 +:1008C00000F016FA0446B0B1039940460136A1F192 +:1008D00040025142514100F01BFA0028EDD1BA46C6 +:1008E000044641F21213022105A83E46ADF8143029 +:1008F00000F0C4F916E725460120FFF719FE244B46 +:100900009B68AB4207D9284600F0E4F9013040F07B +:1009100067810435F3E70025224BBA463E461D7039 +:100920001F4B5D60A8E7002E3FF45CAF0BF00B039C +:100930000B2B7FF457AF0220FFF7FAFD322000F0B7 +:100940007FF9B0F10008FFF64DAF18F003077FF410 +:1009500049AF0F4A08EB0503926893423FF642AF56 +:10096000B8F5807F3FF73EAF124BB845019323DDCA +:100970004FF47A7000F064F90390039A002AFFF6AE +:1009800031AF039A0137019B03F8012BEDE700BF5C +:10099000002200207C23002060220020B9040008EF +:1009A000802300207822002004220020082200203A +:1009B0000C2200207C220020C820FFF769FD07469A +:1009C00000283FF40FAF1F2D11D8C5F120020AAB4C +:1009D00025F0030084494245184428BF424601924D +:1009E00000F032FA019AFF217F4800F053FA4FEAF3 +:1009F000A803C8F387027C492846019300F052FA05 +:100A0000064600283FF46DAF019B05EB830533E7F5 +:100A10000220FFF73DFD00283FF4E4AE00F096F918 +:100A200000283FF4DFAE0027B846704B9B68BB42FE +:100A300018D91F2F11D80A9B01330ED027F00303BA +:100A400012AA134453F8203C05934046042205A9FA +:100A5000043700F0F7FA8046E7E7384600F03AF945 +:100A60000590F2E7CDF81480042105A800F006F9FE +:100A700002E70023642104A8049300F0F5F800289D +:100A80007FF4B0AE0220FFF703FD00283FF4AAAECA +:100A9000049800F051F90590E6E70023642104A8CA +:100AA000049300F0E1F800287FF49CAE0220FFF7E9 +:100AB000EFFC00283FF496AE049800F03FF9EAE717 +:100AC0000220FFF7E5FC00283FF48CAE00F04EF961 +:100AD000E1E70220FFF7DCFC00283FF483AE05A924 +:100AE000142000F049F907460421049004A800F0FE +:100AF000C5F83946B9E7322000F0A2F8071EFFF624 +:100B000071AEBB077FF46EAE384A07EB09039268FB +:100B100093423FF667AE0220FFF7BAFC00283FF48D +:100B200061AE27F003074F44B9453FF4A5AE4846F0 +:100B300009F1040900F0CEF80421059005A800F0A1 +:100B40009DF8F1E74FF47A70FFF7A2FC00283FF41C +:100B500049AE00F0FBF8002844D00A9B01330BD0CB +:100B600008220AA9002000F09DF900283AD020228E +:100B7000FF210AA800F08EF9FFF792FC1C4801F053 +:100B8000FFF913B0BDE8F08F002E3FF42BAE0BF051 +:100B90000B030B2B7FF426AE0023642105A80593DD +:100BA00000F062F8074600287FF41CAE0220FFF731 +:100BB0006FFC804600283FF415AEFFF771FC41F250 +:100BC000883001F0DDF9059800F0E4F946463C462E +:100BD00000F0ACF9A6E506464EE64FF0000901E646 +:100BE000BA467EE637467CE67C22002000220020C2 +:100BF000A08601000F4B70B51B780C460133DBB2A9 +:100C0000012B11D80C4D4FF47A732968A2FB0332E3 +:100C100022460E6A01462846B047844204D1074B5B +:100C2000002201201A7070BD4FF4FA7001F0A8F98B +:100C30000020F8E710220020B0260020B423002076 +:100C4000002307B5024601210DF107008DF807309A +:100C5000FFF7D0FF20B19DF8070003B05DF804FB5B +:100C60004FF0FF30F9E700000A46042108B5FFF70E +:100C7000C1FF80F00100C0B2404208BD30B4054C55 +:100C80000A46014623682046DD69034BAC4630BC6A +:100C9000604700BFB0260020A086010070B50A4E54 +:100CA00000240A4D01F08AFC308028683388834292 +:100CB00008D901F07FFC2B6804440133B4F5C02F40 +:100CC0002B60F2D370BD00BFB62300208823002024 +:100CD00001F042BD00F1006000F5C02000687047DF +:100CE00000F10060920000F5C02001F0C3BC0000DC +:100CF000054B1A68054B1B889B1A834202D9104486 +:100D000001F058BC0020704788230020B623002043 +:100D100038B50446074D29B128682044BDE838405D +:100D200001F060BC2868204401F04AFC0028F3D0A0 +:100D300038BD00BF882300200020704700F1FF501D +:100D400000F58F10D0F8000870470000064991F8B0 +:100D5000243033B100230822086A81F82430FFF7D9 +:100D6000BFBF0120704700BF8C230020014B1868D3 +:100D7000704700BF0010005C194B01380322084483 +:100D800070B51D68174BC5F30B042D0C1E88A642C9 +:100D90000BD15C680A46013C824213460FD214F91B +:100DA000016F4EB102F8016BF6E7013A03F1080357 +:100DB000ECD181420B4602D22C2203F8012B0424F1 +:100DC000094A1688AE4204D1984284BF967803F847 +:100DD000016B013C02F10402F3D1581A70BD00BF4F +:100DE0000010005C1422002084400008022803D177 +:100DF000024B4FF080729A61704700BF00000258AA +:100E0000022803D1024B4FF480729A61704700BFF1 +:100E100000000258022804D1024A536983F4807307 +:100E2000536170470000025870B504464FF47A765B +:100E30004CB1412C254628BF412506FB05F0641B1B +:100E400001F09EF8F4E770BD002310B5934203D083 +:100E5000CC5CC4540133F9E710BD0000013810B573 +:100E600010F9013F3BB191F900409C4203D11AB106 +:100E70000131013AF4E71AB191F90020981A10BD36 +:100E80001046FCE703460246D01A12F9011B00295E +:100E9000FAD1704702440346934202D003F8011B83 +:100EA000FAE770472DE9F8431F4D14460746884678 +:100EB00095F8242052BBDFF870909CB395F824304D +:100EC0002BB92022FF2148462F62FFF7E3FF95F858 +:100ED00024004146C0F1080205EB8000A24228BF71 +:100EE0002246D6B29200FFF7AFFF95F82430A41B3C +:100EF00017441E449044E4B2F6B2082E85F82460EC +:100F0000DBD1FFF723FF0028D7D108E02B6A03EBE2 +:100F100082038342CFD0FFF719FF0028CBD10020F6 +:100F2000BDE8F8830120FBE78C230020024B1A78F0 +:100F3000024B1A70704700BFB4230020102200201B +:100F400010B5114C114800F06FFB21460F4800F01E +:100F500097FB24684FF47A70D4F89020D2F80438C4 +:100F600043F00203C2F80438FFF75EFF0849204649 +:100F700000F094FCD4F89020D2F8043823F0020357 +:100F8000C2F8043810BD00BF40420008B02600205F +:100F90004842000870470000F0B5A1B071B60023C8 +:100FA0000120002480261A46194600F04BFA4FF41F +:100FB000D067214A3D25136923BBD2F810310BBB02 +:100FC000036804F1006199600368C3F80CD00368FA +:100FD0005E6003681F6001680B6843F001030B60EB +:100FE00001680B6823F01E030B6001680B68DB07C8 +:100FF000FCD4037B8034416805FA03F3B4F5001F89 +:101000000B60D8D100F05EFAB4F5001F11D00024B7 +:101010000A4E0B4D012001F09FFB3388A34205D9F6 +:1010200028682044013401F0DDFAF6E7002001F0E1 +:1010300093FB61B621B0F0BD00200052B623002022 +:101040008823002030B50A44084D91420DD011F894 +:10105000013B5840082340F30004013B2C4013F0AF +:10106000FF0384EA5000F6D1EFE730BD2083B8EDEE +:1010700008B5074B074A196801F03D0199605368AC +:101080000BB190689847BDE8084001F027BC00BF4D +:1010900000000240B823002008B5084B19688909F0 +:1010A00001F03D018A019A60054AD3680BB11069CD +:1010B0009847BDE8084001F011BC00BF00000240A5 +:1010C000B823002008B5084B1968090C01F03D0150 +:1010D0000A049A60054A53690BB190699847BDE8C4 +:1010E000084001F0FBBB00BF00000240B823002015 +:1010F00008B5084B1968890D01F03D018A059A6011 +:10110000054AD3690BB1106A9847BDE8084001F061 +:10111000E5BB00BF00000240B823002008B5074B24 +:10112000074A596801F03D01D960536A0BB1906AD2 +:101130009847BDE8084001F0D1BB00BF0000024065 +:10114000B823002008B5084B5968890901F03D0112 +:101150008A01DA60054AD36A0BB1106B9847BDE883 +:10116000084001F0BBBB00BF00000240B8230020D4 +:1011700008B5084B5968090C01F03D010A04DA6012 +:10118000054A536B0BB1906B9847BDE8084001F0DE +:10119000A5BB00BF00000240B823002008B5084BE3 +:1011A0005968890D01F03D018A05DA60054AD36B63 +:1011B0000BB1106C9847BDE8084001F08FBB00BF31 +:1011C00000000240B823002008B5074B074A196801 +:1011D00001F03D019960536C0BB1906C9847BDE8EC +:1011E000084001F07BBB00BF00040240B823002090 +:1011F00008B5084B1968890901F03D018A019A6018 +:10120000054AD36C0BB1106D9847BDE8084001F05A +:1012100065BB00BF00040240B823002008B5084B9E +:101220001968090C01F03D010A049A60054A536DE2 +:101230000BB1906D9847BDE8084001F04FBB00BF6F +:1012400000040240B823002008B5084B1968890D36 +:1012500001F03D018A059A60054AD36D0BB1106E0D +:101260009847BDE8084001F039BB00BF00040240C8 +:10127000B823002008B5074B074A596801F03D0123 +:10128000D960536E0BB1906E9847BDE8084001F0ED +:1012900025BB00BF00040240B823002008B5084B5E +:1012A0005968890901F03D018A01DA60054AD36E67 +:1012B0000BB1106F9847BDE8084001F00FBB00BFAD +:1012C00000040240B823002008B5084B5968090CF7 +:1012D00001F03D010A04DA60054A536F0BB1906FCB +:1012E0009847BDE8084001F0F9BA00BF0004024089 +:1012F000B823002008B5084B5968890D01F03D015D +:101300008A05DA60054AD36F13B1D2F88000984796 +:10131000BDE8084001F0E2BA00040240B823002012 +:1013200000230C4910B51A460B4C0B6054F82300EF +:10133000026001EB430004334260402BF6D1074AC0 +:101340004FF0FF339360D360C2F80834C2F80C3416 +:1013500010BD00BFB82300209440000800000240E8 +:101360000F28F8B510D9102810D0112811D0122844 +:1013700008D10F240720DFF8C8E00126DEF800506E +:10138000A04208D9002653E00446F4E70F240020C9 +:10139000F1E70724FBE706FA00F73D424AD1264C65 +:1013A0004FEA001C3D4304EB00160EEBC000CEF8E4 +:1013B0000050C0E90123FBB273B12048D0F8D83007 +:1013C00043F00103C0F8D830D0F8003143F00103F6 +:1013D000C0F80031D0F8003117F47F4F0ED0174815 +:1013E000D0F8D83043F00203C0F8D830D0F800313C +:1013F00043F00203C0F80031D0F8003154F80C007B +:10140000036823F01F030360056815F00105FBD195 +:1014100004EB0C033D2493F80CC05F6804FA0CF451 +:101420003C6021240560446112B1987B00F054F8BF +:101430003046F8BD0130A3E794400008004402584C +:10144000B823002010B5302484F31188FFF788FFFB +:10145000002383F3118810BD10B50446807B00F093 +:1014600051F801231549627B03FA02F20B6823EA63 +:101470000203DAB20B6072B9114AD2F8D81021F027 +:101480000101C2F8D810D2F8001121F00101C2F810 +:101490000011D2F8002113F47F4F0ED1084BD3F87E +:1014A000D82022F00202C3F8D820D3F8002122F07D +:1014B0000202C3F80021D3F8003110BDB823002088 +:1014C0000044025808B5302383F31188FFF7C4FFA6 +:1014D000002383F3118808BD090100F16043012254 +:1014E00003F56143C9B283F8001300F01F039A406B +:1014F00043099B0003F1604303F56143C3F8802176 +:101500001A60704700F01F0301229A40430900F15E +:1015100060409B0000F5614003F1604303F56143C7 +:10152000C3F88020C3F88021002380F8003370477F +:10153000026843681143016003B118477047000017 +:1015400013B5406B00F58054D4F8A4381A681178AC +:10155000042914D1017C022911D11979012312899E +:101560008B4013420BD101A94C3002F0A7F8D4F8FC +:10157000A4480246019B2179206800F0DFF902B0FF +:1015800010BD0000143002F029B800004FF0FF3306 +:10159000143002F023B800004C3002F0FBB8000019 +:1015A0004FF0FF334C3002F0F5B80000143001F07A +:1015B000F7BF00004FF0FF31143001F0F1BF000021 +:1015C0004C3002F0C7B800004FF0FF324C3002F050 +:1015D000C1B800000020704710B500F58054D4F861 +:1015E000A4381A681178042917D1017C022914D172 +:1015F0005979012352898B4013420ED1143001F0E6 +:1016000089FF024648B1D4F8A4484FF44073617989 +:101610002068BDE8104000F07FB910BD406BFFF7B7 +:10162000DBBF0000704700007FB5124B0125042688 +:10163000044603600023057400F1840243602946D8 +:10164000C0E902330C4B0290143001934FF4407305 +:10165000009601F03BFF094B04F69442294604F141 +:101660004C000294CDE900634FF4407302F002F89D +:1016700004B070BD944100081D1600084115000813 +:101680000A68302383F311880B790B3342F8230067 +:101690004B79133342F823008B7913B10B3342F8A3 +:1016A000230000F58053C3F8A4180223037400201C +:1016B00080F311887047000038B5037F044613B1EA +:1016C00090F85430ABB90125201D0221FFF730FFFF +:1016D00004F114006FF00101257700F079FC04F1AA +:1016E0004C0084F854506FF00101BDE8384000F020 +:1016F0006FBC38BD10B5012104460430FFF718FF58 +:101700000023237784F8543010BD000038B5044618 +:101710000025143001F0F2FE04F14C00257701F0B1 +:10172000C1FF201D84F854500121FFF701FF20461E +:10173000BDE83840FFF750BF90F8803003F06003F9 +:10174000202B06D190F881200023212A03D81F2ABC +:1017500006D800207047222AFBD1C0E91D3303E0E0 +:10176000034A426707228267C3670120704700BFB0 +:101770002C22002037B500F58055D5F8A4381A681A +:10178000117804291AD1017C022917D11979012372 +:1017900012898B40134211D100F14C04204602F013 +:1017A00041F858B101A9204601F088FFD5F8A448B6 +:1017B0000246019B2179206800F0C0F803B030BDDB +:1017C00001F10B03F0B550F8236085B004460D46D7 +:1017D000FEB1302383F3118804EB8507301D082107 +:1017E000FFF7A6FEFB6806F14C005B691B681BB1A6 +:1017F000019001F071FF019803A901F05FFF02461B +:1018000048B1039B2946204600F098F8002383F353 +:10181000118805B0F0BDFB685A691268002AF5D03E +:101820001B8A013B1340F1D104F18002EAE700007A +:10183000133138B550F82140ECB1302383F31188CF +:1018400004F58053D3F8A4281368527903EB82037C +:10185000DB689B695D6845B104216018FFF768FE8D +:10186000294604F1140001F05FFE2046FFF7B4FEA4 +:10187000002383F3118838BD7047000001F02CB9B4 +:1018800001234022002110B5044600F8303BFFF749 +:1018900001FB0023C4E9013310BD000010B5302363 +:1018A000044683F311882422416000210C30FFF7A5 +:1018B000F1FA204601F032F902230020237080F370 +:1018C000118810BD70B500EB8103054650690E46C6 +:1018D0001446DA6018B110220021FFF7DBFAA06984 +:1018E00018B110220021FFF7D5FA31462846BDE88D +:1018F000704001F019BA000083682022002103F033 +:10190000011310B5044683601030FFF7C3FA204678 +:10191000BDE8104001F094BAF0B4012500EB810459 +:1019200047898D40E4683D43A469458123600023D5 +:10193000A2606360F0BC01F0B1BA0000F0B4012510 +:1019400000EB810407898D40E4683D4364690581AB +:1019500023600023A2606360F0BC01F027BB00009D +:1019600070B5022300250446242203702946C0F8DE +:1019700088500C3040F8045CFFF78CFA204684F85D +:10198000705001F065F963681B6823B12946204651 +:10199000BDE87040184770BD0378052B10B50446AC +:1019A0000AD080F88C300523037043681B680BB1A4 +:1019B000042198470023A36010BD00000178052989 +:1019C00006D190F88C20436802701B6803B1184759 +:1019D0007047000070B590F87030044613B10023D2 +:1019E00080F8703004F18002204601F04DFA6368FF +:1019F0009B68B3B994F8803013F0600535D00021AE +:101A0000204601F03FFD0021204601F02FFD6368D4 +:101A10001B6813B1062120469847062384F87030CE +:101A200070BD204698470028E4D0B4F88630A26FF5 +:101A30009A4288BFA36794F98030A56F002B4FF0BE +:101A4000300380F20381002D00F0F280092284F837 +:101A5000702083F3118800212046D4E91D23FFF76D +:101A60006DFF002383F31188DAE794F8812003F0F7 +:101A70007F0343EA022340F20232934200F0C58022 +:101A800021D8B3F5807F48D00DD8012B3FD0022B51 +:101A900000F09380002BB2D104F188026267022229 +:101AA000A267E367C1E7B3F5817F00F09B80B3F5E0 +:101AB000407FA4D194F88230012BA0D1B4F88830B3 +:101AC00043F0020332E0B3F5006F4DD017D8B3F501 +:101AD000A06F31D0A3F5C063012B90D86368204676 +:101AE00094F882205E6894F88310B4F88430B0478C +:101AF000002884D0436863670368A3671AE0B3F5DE +:101B0000106F36D040F6024293427FF478AF5C4BC0 +:101B100063670223A3670023C3E794F88230012B95 +:101B20007FF46DAFB4F8883023F00203A4F8883056 +:101B3000C4E91D55E56778E7B4F88030B3F5A06FC8 +:101B40000ED194F88230204684F88A3001F0DEF815 +:101B500063681B6813B10121204698470323237053 +:101B60000023C4E91D339CE704F18B036367012361 +:101B7000C3E72378042B10D1302383F31188204648 +:101B8000FFF7BAFE85F311880321636884F88B5050 +:101B900021701B680BB12046984794F88230002BC7 +:101BA000DED084F88B300423237063681B68002B1D +:101BB000D6D0022120469847D2E794F884302046B8 +:101BC0001D0603F00F010AD501F050F9012804D0D9 +:101BD00002287FF414AF2B4B9AE72B4B98E701F0C8 +:101BE00037F9F3E794F88230002B7FF408AF94F8CC +:101BF000843013F00F01B3D01A06204602D501F04D +:101C000059FCADE701F04AFCAAE794F88230002BBA +:101C10007FF4F5AE94F8843013F00F01A0D01B06CA +:101C2000204602D501F02EFC9AE701F01FFC97E751 +:101C3000142284F8702083F311882B462A46294603 +:101C40002046FFF769FE85F31188E9E65DB11522AC +:101C500084F8702083F3118800212046D4E91D23E5 +:101C6000FFF75AFEFDE60B2284F8702083F31188FB +:101C70002B462A4629462046FFF760FEE3E700BFD1 +:101C8000C4410008BC410008C041000838B590F8C4 +:101C900070300446002B3ED0063BDAB20F2A34D80F +:101CA0000F2B32D8DFE803F03731310822323131DF +:101CB0003131313131313737856FB0F886309D425F +:101CC00014D2C3681B8AB5FBF3F203FB12556DB93E +:101CD000302383F311882B462A462946FFF72EFE30 +:101CE00085F311880A2384F870300EE0142384F8F9 +:101CF0007030302383F31188002320461A4619469A +:101D0000FFF70AFE002383F3118838BDC36F03B1C8 +:101D100098470023E7E70021204601F0B3FB0021AC +:101D2000204601F0A3FB63681B6813B1062120461F +:101D300098470623D7E7000010B590F870300446A6 +:101D4000142B29D017D8062B05D001D81BB110BDF4 +:101D5000093B022BFBD80021204601F093FB002118 +:101D6000204601F083FB63681B6813B106212046FF +:101D70009847062319E0152BE9D10B2380F8703022 +:101D8000302383F3118800231A461946FFF7D6FD46 +:101D9000002383F31188DAE7C3689B695B68002B33 +:101DA000D5D1C36F03B19847002384F87030CEE7D4 +:101DB00000238268037503691B6899689142FBD20E +:101DC0005A68036042601060586070470023826860 +:101DD000037503691B6899689142FBD85A680360D0 +:101DE000426010605860704708B50846302383F39E +:101DF00011880B7D032B05D0042B0DD02BB983F359 +:101E0000118808BD8B6900221A604FF0FF3383618F +:101E1000FFF7CEFF0023F2E7D1E9003213605A60EA +:101E2000F3E70000FFF7C4BF054BD96808751868D1 +:101E3000026853601A600122D8600275FEF7E2BAA8 +:101E4000402400200C4B30B5DD684B1C87B00446A5 +:101E50000FD02B46094A684600F04EF92046FFF79E +:101E6000E3FF009B13B1684600F050F9A86907B082 +:101E700030BDFFF7D9FFF9E740240020E91D000835 +:101E8000044B1A68DB6890689B68984294BF0020F6 +:101E90000120704740240020084B10B51C68D8680A +:101EA000226853601A600122DC602275FFF78EFF02 +:101EB00001462046BDE81040FEF7A4BA40240020A9 +:101EC00038B5074C01230025064907482370656093 +:101ED00001F0E6FC0223237085F3118838BD00BFB2 +:101EE000A8260020CC4100084024002000F044B97E +:101EF000034A516853685B1A9842FBD8704700BF89 +:101F0000001000E08B600223086108468B82704756 +:101F10008368A3F1840243F8142C026943F8442C2B +:101F2000426943F8402C094A43F8242CC268A3F1C3 +:101F3000200043F8182C022203F80C2C002203F88E +:101F40000B2C034A43F8102C704700BF1D040008F7 +:101F50004024002008B5FFF7DBFFBDE80840FFF78D +:101F600061BF0000024BDB6898610F20FFF75CBF88 +:101F700040240020302383F31188FFF7F3BF0000D3 +:101F800008B50146302383F311880820FFF75AFF74 +:101F9000002383F3118808BD064BDB6839B1426822 +:101FA00018605A60136043600420FFF74BBF4FF086 +:101FB000FF307047402400200368984206D01A681A +:101FC0000260506018469961FFF72CBF704700000F +:101FD00038B504460D462068844200D138BD0368F8 +:101FE00023605C608561FFF71DFFF4E7036810B5AF +:101FF0009C68A2420CD85C688A600B604C602160CF +:10200000596099688A1A9A604FF0FF33836010BD57 +:10201000121B1B68ECE700000A2938BF0A2170B5C3 +:1020200004460D460A26601901F032FC01F01AFC44 +:10203000041BA54203D8751C04462E46F3E70A2E5E +:1020400004D90120BDE8704001F06ABC70BD0000F9 +:10205000F8B5144B0D460A2A4FF00A07D96103F16F +:102060001001826038BF0A2241601969144601607C +:1020700048601861A81801F0FBFB01F0F3FB431B5B +:102080000646A34206D37C1C28192746354601F094 +:10209000FFFBF2E70A2F04D90120BDE8F84001F068 +:1020A0003FBCF8BD40240020F8B506460D4601F0BF +:1020B000D9FB0F4A134653F8107F9F4206D12A4698 +:1020C00001463046BDE8F840FFF7C2BFD169BB68A2 +:1020D000441A2C1928BF2C46A34202D92946FFF7DF +:1020E0009BFF224631460348BDE8F840FFF77EBF1C +:1020F0004024002050240020C0E90323002310B412 +:102100005DF8044B4361FFF7CFBF000010B5194CD9 +:10211000236998420DD08168D0E9003213605A607B +:102120009A680A449A60002303604FF0FF33A3616A +:1021300010BD0268234643F8102F5360002202604E +:1021400022699A4203D1BDE8104001F09BBB93681D +:1021500081680B44936001F085FB2269E169926814 +:10216000441AA242E4D91144BDE81040091AFFF70D +:1021700053BF00BF402400202DE9F047DFF8BC80AA +:1021800008F110072C4ED8F8105001F06BFBD8F86E +:102190001C40AA68031B9A423ED814444FF0000921 +:1021A000D5E90032C8F81C4013605A60C5F80090A9 +:1021B000D8F81030B34201D101F064FB89F31188E3 +:1021C000D5E9033128469847302383F311886B699A +:1021D000002BD8D001F046FB6A69A0EB04098246C7 +:1021E0004A450DD2022001F09BFB0022D8F81030A6 +:1021F000B34208D151462846BDE8F047FFF728BF53 +:10220000121A2244F2E712EB09092946384638BF70 +:102210004A46FFF7EBFEB5E7D8F81030B34208D0D6 +:102220001444C8F81C00211AA960BDE8F047FFF764 +:10223000F3BEBDE8F08700BF5024002040240020FA +:1022400000207047FEE70000704700004FF0FF30AD +:102250007047000002290CD0032904D00129074847 +:1022600018BF00207047032A05D8054800EBC200BC +:102270007047044870470020704700BFA442000820 +:102280003C2200205842000870B59AB00546084626 +:10229000144601A900F0C2F801A8FEF7F3FD431CA3 +:1022A0000022C6B25B001046C5E900342370032348 +:1022B000023404F8013C01ABD1B202348E4201D8A1 +:1022C0001AB070BD13F8011B013204F8010C04F8B8 +:1022D000021CF1E708B5302383F311880348FFF7A8 +:1022E00049FA002383F3118808BD00BFB0260020FF +:1022F00090F8803003F01F02012A07D190F8812066 +:102300000B2A03D10023C0E91D3315E003F060035D +:10231000202B08D1B0F884302BB990F88120212AE5 +:1023200003D81F2A04D8FFF707BA222AEBD0FAE70E +:10233000034A426707228267C3670120704700BFD4 +:102340003322002007B5052917D8DFE801F0191658 +:1023500003191920302383F31188104A01210190B9 +:10236000FFF7B0FA019802210D4AFFF7ABFA0D48CA +:10237000FFF7CCF9002383F3118803B05DF804FB69 +:10238000302383F311880748FFF796F9F2E73023EB +:1023900083F311880348FFF7ADF9EBE7F841000834 +:1023A0001C420008B026002038B50C4D0C4C2A46C3 +:1023B0000C4904F10800FFF767FF05F1CA0204F1B8 +:1023C00010000949FFF760FF05F5CA7204F1180013 +:1023D0000649BDE83840FFF757BF00BF883F0020DF +:1023E0003C220020D8410008E2410008ED410008ED +:1023F00070B5044608460D46FEF744FDC6B22046B9 +:10240000013403780BB9184670BD32462946FEF7F1 +:1024100025FD0028F3D10120F6E700002DE9F04763 +:1024200005460C46FEF72EFD2C49C6B22846FFF79E +:10243000DFFF08B10836F6B229492846FFF7D8FF72 +:1024400008B11036F6B2632E0BD8DFF89080DFF8B3 +:102450009090244FDFF898A02E7846B92670BDE8FA +:10246000F08729462046BDE8F04701F0EDBD252E56 +:1024700030D1072241462846FEF7F0FC80B91A4BBE +:10248000224603F10C0153F8040B8B4242F8040B73 +:10249000F9D1198807359B780F3411809370DBE7E9 +:1024A000082249462846FEF7D9FC98B9A21C0F4BD2 +:1024B000197802320909C95D02F8041C13F8011BDE +:1024C00001F00F015345C95D02F8031CF0D1183427 +:1024D0000835C1E7013504F8016BBDE7C4420008C7 +:1024E000ED410008DC420008CC42000800E8F11F82 +:1024F0000CE8F11FBFF34F8F044B1A695107FCD151 +:10250000D3F810215207F8D1704700BF00200052C5 +:1025100008B50D4B1B78ABB9FFF7ECFF0B4BDA6836 +:10252000D10704D50A4A5A6002F188325A60D3F8BA +:102530000C21D20706D5064AC3F8042102F18832DD +:10254000C3F8042108BD00BFE6410020002000526E +:102550002301674508B5114B1B78F3B9104B1A6975 +:10256000510703D5DA6842F04002DA60D3F810214F +:10257000520705D5D3F80C2142F04002C3F80C21D4 +:10258000FFF7B8FF064BDA6842F00102DA60D3F8D1 +:102590000C2142F00102C3F80C2108BDE6410020E5 +:1025A000002000520F289ABF00F5806040040020F0 +:1025B000704700004FF40030704700001020704753 +:1025C0000F2808B50BD8FFF7EDFF00F500330268C0 +:1025D000013204D104308342F9D1012008BD00202A +:1025E000FCE700000F2838B505463FD8FFF782FF0B +:1025F0001F4CFFF78DFF4FF0FF3307286361C4F8CE +:1026000014311DD82361FFF775FF030243F0240343 +:10261000E360E36843F08003E36023695A07FCD476 +:102620002846FFF767FFFFF7BDFF4FF4003100F0CA +:10263000F5F82846FFF78EFFBDE83840FFF7C0BF2A +:10264000C4F81031FFF756FFA0F108031B0243F056 +:102650002403C4F80C31D4F80C3143F08003C4F8DF +:102660000C31D4F810315B07FBD4D9E7002038BD1A +:10267000002000522DE9F84F05460C46104645EA69 +:102680000203DE0602D00020BDE8F88F20F01F0014 +:10269000DFF8BCB0DFF8BCA0FFF73AFF04EB00089E +:1026A000444503D10120FFF755FFEDE720222946DD +:1026B000204601F0B9FC10B920352034F0E72B4654 +:1026C00005F120021F68791CDDD104339A42F9D14B +:1026D00005F178431B481C4EB3F5801F1B4B38BFD8 +:1026E000184603F1F80332BFD946D1461E46FFF71C +:1026F00001FF0760A5EB040C336804F11C0143F0F3 +:1027000002033360231FD9F8007017F00507FAD1D0 +:1027100053F8042F8B424CF80320F4D1BFF34F8FB2 +:10272000FFF7E8FE4FF0FF332022214603602846E2 +:10273000336823F00203336001F076FC0028BBD03D +:102740003846B0E7142100520C20005214200052E9 +:10275000102000521021005210B5084C237828B1E7 +:102760001BB9FFF7D5FE0123237010BD002BFCD051 +:102770002070BDE81040FFF7EDBE00BFE64100202D +:102780000244074BD2B210B5904200D110BD441C98 +:1027900000B253F8200041F8040BE0B2F4E700BFA8 +:1027A000504000580E4B30B51C6F240405D41C6FEC +:1027B0001C671C6F44F400441C670A4C02442368E5 +:1027C000D2B243F480732360074B904200D130BDF6 +:1027D000441C51F8045B00B243F82050E0B2F4E727 +:1027E00000440258004802585040005807B50122E2 +:1027F00001A90020FFF7C4FF019803B05DF804FBB6 +:1028000013B50446FFF7F2FFA04205D0012201A94B +:1028100000200194FFF7C6FF02B010BD0144BFF3D2 +:102820004F8F064B884204D3BFF34F8FBFF36F8F98 +:102830007047C3F85C022030F4E700BF00ED00E011 +:10284000034B1A681AB9034AD2F8D0241A607047A9 +:10285000E84100200040025808B5FFF7F1FF024BA5 +:102860001868C0F3806008BDE8410020EFF30983D9 +:10287000054968334A6B22F001024A6383F30988F1 +:10288000002383F31188704700EF00E0302080F3CD +:10289000118862B60D4B0E4AD96821F4E061090433 +:1028A000090C0A430B49DA60D3F8FC2042F080722D +:1028B000C3F8FC20084AC2F8B01F116841F00101BA +:1028C00011602022DA7783F82200704700ED00E0E3 +:1028D0000003FA0555CEACC5001000E0302310B55A +:1028E00083F311880E4B5B6813F4006314D0F1EE90 +:1028F000103AEFF309844FF08073683CE361094BB1 +:10290000DB6B236684F30988FFF7BAFA10B1064B34 +:10291000A36110BD054BFBE783F31188F9E700BF06 +:1029200000ED00E000EF00E02F0400083204000892 +:1029300070B5BFF34F8FBFF36F8F1A4A0021C2F8F3 +:102940005012BFF34F8FBFF36F8F536943F40033BF +:102950005361BFF34F8FBFF36F8FC2F88410BFF383 +:102960004F8FD2F8803043F6E074C3F3C900C3F34D +:102970004E335B0103EA0406014646EA81750139DC +:10298000C2F86052F9D2203B13F1200FF2D1BFF30D +:102990004F8F536943F480335361BFF34F8FBFF3BD +:1029A0006F8F70BD00ED00E0FEE70000214B224874 +:1029B000224A70B5904237D3214BC11EDA1C121A3D +:1029C00022F003028B4238BF00220021FEF762FA98 +:1029D0001C4A0023C2F88430BFF34F8FD2F88030F6 +:1029E00043F6E074C3F3C900C3F34E335B0103EA5B +:1029F0000406014646EA81750139C2F86C52F9D2E3 +:102A0000203B13F1200FF2D1BFF34F8FBFF36F8F35 +:102A1000BFF34F8FBFF36F8F0023C2F85032BFF365 +:102A20004F8FBFF36F8F70BD53F8041B40F8041B2A +:102A3000C0E700BFCC440008BC430020BC430020DA +:102A4000BC43002000ED00E0074BD3F8D81021EA8A +:102A50000001C3F8D810D3F8002122EA0002C3F81D +:102A60000021D3F8003170470044025870B5D0E916 +:102A7000244300224FF0FF359E6804EB42135101BE +:102A8000D3F80009002805DAD3F8000940F08040A7 +:102A9000C3F80009D3F8000B002805DAD3F8000BBF +:102AA00040F08040C3F8000B013263189642C3F82F +:102AB0000859C3F8085BE0D24FF00113C4F81C3882 +:102AC00070BD0000890141F02001016103699B068E +:102AD000FCD41220FFF70CBA10B50A4C2046FEF7C2 +:102AE000CFFE094BC4F89030084BC4F89430084C22 +:102AF0002046FEF7C5FE074BC4F89030064BC4F8DD +:102B0000943010BDEC410020000008401443000840 +:102B100088420020000004402043000870B503787C +:102B20000546012B5CD1434BD0F89040984258D1D8 +:102B3000414B0E216520D3F8D82042F00062C3F843 +:102B4000D820D3F8002142F00062C3F80021D3F866 +:102B50000021D3F8802042F00062C3F88020D3F82F +:102B6000802022F00062C3F88020D3F88030FEF786 +:102B7000B3FC324BE360324BC4F800380023D5F885 +:102B80009060C4F8003EC02323604FF40413A36395 +:102B90003369002BFCDA01230C203361FFF7A8F91D +:102BA0003369DB07FCD41220FFF7A2F93369002B4D +:102BB000FCDA00262846A660FFF758FF6B68C4F8C9 +:102BC0001068DB68C4F81468C4F81C6883BB1D4B2C +:102BD000A3614FF0FF336361A36843F00103A36077 +:102BE00070BD194B9842C9D1134B4FF08060D3F898 +:102BF000D82042F00072C3F8D820D3F8002142F068 +:102C00000072C3F80021D3F80021D3F8802042F0ED +:102C10000072C3F88020D3F8802022F00072C3F83D +:102C20008020D3F88030FFF70FFF0E214D209EE764 +:102C3000064BCDE7EC410020004402584014004010 +:102C400003002002003C30C088420020083C30C015 +:102C5000F8B5D0F89040054600214FF000662046B8 +:102C6000FFF730FFD5F8941000234FF001128F6862 +:102C70004FF0FF30C4F83438C4F81C2804EB43127A +:102C800001339F42C2F80069C2F8006BC2F808091C +:102C9000C2F8080BF2D20B68D5F89020C5F898302E +:102CA000636210231361166916F01006FBD112201F +:102CB000FFF71EF9D4F8003823F4FE63C4F8003897 +:102CC000A36943F4402343F01003A3610923C4F82C +:102CD0001038C4F814380B4BEB604FF0C043C4F805 +:102CE000103B094BC4F8003BC4F81069C4F8003924 +:102CF000D5F8983003F1100243F48013C5F89820FA +:102D0000A362F8BDF042000840800010D0F8902087 +:102D100090F88A10D2F8003823F4FE6343EA0113D6 +:102D2000C2F80038704700002DE9F84300EB81033A +:102D3000D0F890500C468046DA680FFA81F94801C5 +:102D4000166806F00306731E022B05EB41134FF0C5 +:102D5000000194BFB604384EC3F8101B4FF00101B8 +:102D600004F1100398BF06F1805601FA03F391694C +:102D700098BF06F5004600293AD0578A04F1580159 +:102D8000374349016F50D5F81C180B430021C5F893 +:102D90001C382B180127C3F81019A7405369611E6E +:102DA0009BB3138A928B9B08012A88BF5343D8F8A0 +:102DB0009820981842EA034301F140022146C8F8DE +:102DC0009800284605EB82025360FFF77BFE08EB74 +:102DD0008900C3681B8A43EA845348341E43640154 +:102DE0002E51D5F81C381F43C5F81C78BDE8F88370 +:102DF00005EB4917D7F8001B21F40041C7F8001B69 +:102E0000D5F81C1821EA0303C0E704F13F030B4A7D +:102E10002846214605EB83035A60FFF753FE05EB76 +:102E20004910D0F8003923F40043C0F80039D5F830 +:102E30001C3823EA0707D7E70080001000040002CF +:102E4000D0F894201268C0F89820FFF70FBE000059 +:102E50005831D0F8903049015B5813F4004004D049 +:102E600013F4001F0CBF0220012070474831D0F836 +:102E7000903049015B5813F4004004D013F4001F54 +:102E80000CBF02200120704700EB8101CB68196A5A +:102E90000B6813604B6853607047000000EB8103C0 +:102EA00030B5DD68AA691368D36019B9402B84BFB7 +:102EB000402313606B8A1468D0F890201C4402EB06 +:102EC0004110013C09B2B4FBF3F46343033323F034 +:102ED000030343EAC44343F0C043C0F8103B2B68EC +:102EE00003F00303012B0ED1D2F8083802EB411096 +:102EF00013F4807FD0F8003B14BF43F0805343F0BD +:102F00000053C0F8003B02EB4112D2F8003B43F003 +:102F10000443C2F8003B30BD2DE9F041D0F8906089 +:102F200005460C4606EB4113D3F8087B3A07C3F875 +:102F3000087B08D5D6F814381B0704D500EB8103AD +:102F4000DB685B689847FA071FD5D6F81438DB07AB +:102F50001BD505EB8403D968CCB98B69488A5A68BC +:102F6000B2FBF0F600FB16228AB91868DA689042C4 +:102F70000DD2121AC3E90024302383F311882146AD +:102F80002846FFF78BFF84F31188BDE8F081012309 +:102F900003FA04F26B8923EA02036B81CB68002BEE +:102FA000F3D021462846BDE8F041184700EB8103E5 +:102FB0004A0170B5DD68D0F890306C692668E6602B +:102FC00056BB1A444FF40020C2F810092A6802F0D8 +:102FD0000302012A0AB20ED1D3F8080803EB421407 +:102FE00010F4807FD4F8000914BF40F0805040F006 +:102FF0000050C4F8000903EB4212D2F8000940F077 +:103000000440C2F800090122D3F8340802FA01F1A1 +:103010000143C3F8341870BD19B9402E84BF402055 +:10302000206020681A442E8A8419013CB4FBF6F40F +:1030300040EAC44040F00050C6E700002DE9F843E4 +:10304000D0F8906005460C464F0106EB4113D3F8CB +:10305000088918F0010FC3F808891CD0D6F8103879 +:10306000DB0718D500EB8103D3F80CC0DCF8143073 +:10307000D3F800E0DA68964530D2A2EB0E024FF0AA +:1030800000091A60C3F80490302383F31188FFF716 +:103090008DFF89F3118818F0800F1DD0D6F83438D1 +:1030A0000126A640334217D005EB84030134D5F83E +:1030B0009050D3F80CC0E4B22F44DCF8142005EB98 +:1030C0000434D2F800E05168714514D3D5F834388F +:1030D00023EA0606C5F83468BDE8F883012303FA3D +:1030E00001F2038923EA02030381DCF80830002B94 +:1030F000D1D09847CFE7AEEB0103BCF81000834274 +:1031000028BF0346D7F8180980B2B3EB800FE3D885 +:103110009068A0F1040959F8048FC4F80080A0EB6E +:1031200009089844B8F1040FF5D818440B4490608E +:103130005360C8E72DE9F84FD0F8905004466E6907 +:10314000AB691E4016F480586E6103D0BDE8F84F9D +:10315000FEF706BC002E12DAD5F8003E9B0705D01C +:10316000D5F8003E23F00303C5F8003ED5F8043837 +:10317000204623F00103C5F80438FEF71FFC37058D +:1031800005D52046FFF772FC2046FEF705FCB0048B +:103190000CD5D5F8083813F0060FEB6823F47053FC +:1031A0000CBF43F4105343F4A053EB6031071BD51D +:1031B0006368DB681BB9AB6923F00803AB61237854 +:1031C000052B0CD1D5F8003E9A0705D0D5F8003E66 +:1031D00023F00303C5F8003E2046FEF7EFFB6368CB +:1031E000DB680BB120469847F30200F1BA80B702C2 +:1031F00026D5D4F8909000274FF0010A09EB47122A +:10320000D2F8003B03F44023B3F5802F11D1D2F85C +:10321000003B002B0DDA62890AFA07F322EA030366 +:10322000638104EB8703DB68DB6813B13946204612 +:1032300098470137D4F89430FFB29B689F42DDD99C +:10324000F00619D5D4F89000026AC2F30A1702F00A +:103250000F0302F4F012B2F5802F00F0CA80B2F52D +:10326000402F09D104EB8303002200F58050DB6876 +:103270001B6A974240F0B0803003D5F8185835D516 +:10328000E90303D500212046FFF746FEAA0303D534 +:1032900001212046FFF740FE6B0303D502212046A3 +:1032A000FFF73AFE2F0303D503212046FFF734FE34 +:1032B000E80203D504212046FFF72EFEA90203D51C +:1032C00005212046FFF728FE6A0203D50621204685 +:1032D000FFF722FE2B0203D507212046FFF71CFE35 +:1032E000EF0103D508212046FFF716FE700340F1D9 +:1032F000A780E90703D500212046FFF79FFEAA0714 +:1033000003D501212046FFF799FE6B0703D5022163 +:103310002046FFF793FE2F0703D503212046FFF732 +:103320008DFEEE0603D504212046FFF787FEA80692 +:1033300003D505212046FFF781FE690603D5062146 +:103340002046FFF77BFE2A0603D507212046FFF71C +:1033500075FEEB0574D520460821BDE8F84FFFF750 +:103360006DBED4F890904FF0000B4FF0010AD4F8E6 +:1033700094305FFA8BF79B689F423FF638AF09EBBA +:103380004713D3F8002902F44022B2F5802F20D150 +:10339000D3F80029002A1CDAD3F8002942F0904221 +:1033A000C3F80029D3F80029002AFBDB3946D4F8FA +:1033B0009000FFF787FB22890AFA07F322EA03034A +:1033C000238104EB8703DB689B6813B139462046F1 +:1033D00098470BF1010BCAE7910701D1D0F80080A3 +:1033E000072A02F101029CBF03F8018B4FEA18285B +:1033F0003FE704EB830300F58050DA68D2F818C089 +:10340000DCF80820DCE9001CA1EB0C0C00218F4249 +:1034100008D1DB689B699A683A449A605A683A44D2 +:103420005A6029E711F0030F01D1D0F800808C45D4 +:1034300001F1010184BF02F8018B4FEA1828E6E789 +:10344000BDE8F88F08B50348FFF774FEBDE80840F3 +:10345000FFF744BAEC41002008B50348FFF76AFEC5 +:10346000BDE80840FFF73ABA88420020D0F8903013 +:1034700003EB4111D1F8003B43F40013C1F8003BCA +:1034800070470000D0F8903003EB4111D1F80039BB +:1034900043F40013C1F8003970470000D0F89030B1 +:1034A00003EB4111D1F8003B23F40013C1F8003BBA +:1034B00070470000D0F8903003EB4111D1F800398B +:1034C00023F40013C1F800397047000030B504330D +:1034D000039C0172002104FB0325C160C0E906536F +:1034E000049B0363059BC0E90000C0E90422C0E916 +:1034F0000842C0E90A11436330BD00000022416A5E +:10350000C260C0E90411C0E90A226FF00101FEF7B0 +:103510005FBD0000D0E90432934201D1C2680AB90C +:10352000181D704700207047036919600021C268A8 +:103530000132C260C269134482699342036124BFAD +:10354000436A0361FEF738BD38B504460D46E368AB +:103550003BB162690020131D1268A3621344E36249 +:1035600007E0237A33B929462046FEF715FD0028E7 +:10357000EDDA38BD6FF00100FBE70000C368C269F7 +:10358000013BC3604369134482699342436124BF92 +:10359000436A436100238362036B03B1184770479A +:1035A00070B53023044683F31188866A3EB9FFF76D +:1035B000CBFF054618B186F31188284670BDA36A73 +:1035C000E26A13F8015B9342A36202D32046FFF73D +:1035D000D5FF002383F31188EFE700002DE9F84FB2 +:1035E00004460E46174698464FF0300989F3118875 +:1035F0000025AA46D4F828B0BBF1000F09D14146F6 +:103600002046FFF7A1FF20B18BF311882846BDE8C3 +:10361000F88FD4E90A12A7EB050B521A934528BF7D +:103620009346BBF1400F1BD9334601F1400251F8DC +:10363000040B914243F8040BF9D1A36A403640359C +:103640004033A362D4E90A239A4202D32046FFF70B +:1036500095FF8AF31188BD42D8D289F31188C9E752 +:1036600030465A46FDF7F0FBA36A5E445D445B4476 +:10367000A362E7E710B5029C0433017203FB042147 +:10368000C460C0E906130023C0E90A33039B036347 +:10369000049BC0E90000C0E90422C0E9084243637A +:1036A00010BD0000026A6FF00101C260426AC0E909 +:1036B00004220022C0E90A22FEF78ABCD0E90423D2 +:1036C0009A4201D1C26822B9184650F8043B0B60F7 +:1036D000704700231846FAE7C3680021C269013326 +:1036E000C3604369134482699342436124BF436AC0 +:1036F0004361FEF761BC000038B504460D46E3683F +:103700003BB1236900201A1DA262E2691344E362FF +:1037100007E0237A33B929462046FEF73DFC00280E +:10372000EDDA38BD6FF00100FBE7000003691960B6 +:10373000C268013AC260C26913448269934203615C +:1037400024BF436A036100238362036B03B11847FC +:103750007047000070B530230D460446114683F3D0 +:103760001188866A2EB9FFF7C7FF10B186F311885A +:1037700070BDA36A1D70A36AE26A01339342A3621B +:1037800004D3E16920460439FFF7D0FF002080F31D +:103790001188EDE72DE9F84F04460D46904699460D +:1037A0004FF0300A8AF311880026B346A76A4FB952 +:1037B00049462046FFF7A0FF20B187F31188304625 +:1037C000BDE8F88FD4E90A073A1AA8EB0607974232 +:1037D00028BF1746402F1BD905F1400355F8042B8D +:1037E0009D4240F8042BF9D1A36A40364033A362CE +:1037F000D4E90A239A4204D3E16920460439FFF749 +:1038000095FF8BF311884645D9D28AF31188CDE70D +:1038100029463A46FDF718FBA36A3D443E443B4423 +:10382000A362E5E7D0E904239A4217D1C3689BB1AC +:10383000836A8BB1043B9B1A0ED01360C368013BB3 +:10384000C360C3691A4483699A42026124BF436A10 +:103850000361002383620123184670470023FBE7BE +:1038600000F024B9014B586A704700BF000C0040BB +:10387000034B002258631A610222DA60704700BFCE +:10388000000C0040014B0022DA607047000C004041 +:10389000014B5863704700BF000C0040FEE700007A +:1038A00070B51B4B0025044686B058600E468562F5 +:1038B0000163FEF7EBFF04F11003A560E562C4E9C4 +:1038C00004334FF0FF33C4E90044C4E90635FFF781 +:1038D000C9FF2B46024604F134012046C4E90823FF +:1038E00080230C4A2565FEF70DFB01230A4AE060A0 +:1038F00000920375684672680192B268CDE90223AE +:10390000064BCDE90435FEF725FB06B070BD00BFC0 +:10391000A82600202C430008314300089D380008E9 +:10392000024AD36A1843D062704700BF4024002087 +:103930004B6843608B688360CB68C3600B694361ED +:103940004B6903628B6943620B6803607047000038 +:1039500008B53C4B40F2FF713B48D3F888200A433E +:10396000C3F88820D3F8882022F4FF6222F00702EF +:10397000C3F88820D3F88820D3F8E0200A43C3F89E +:10398000E020D3F808210A43C3F808212F4AD3F8CE +:1039900008311146FFF7CCFF00F5806002F11C01F1 +:1039A000FFF7C6FF00F5806002F13801FFF7C0FFA6 +:1039B00000F5806002F15401FFF7BAFF00F5806066 +:1039C00002F17001FFF7B4FF00F5806002F18C0195 +:1039D000FFF7AEFF00F5806002F1A801FFF7A8FF36 +:1039E00000F5806002F1C401FFF7A2FF00F58060DE +:1039F00002F1E001FFF79CFF00F5806002F1FC019D +:103A0000FFF796FF02F58C7100F58060FFF790FFDD +:103A100000F018F90E4BD3F8902242F00102C3F8DF +:103A20009022D3F8942242F00102C3F89422052296 +:103A3000C3F898204FF06052C3F89C20054AC3F8A1 +:103A4000A02008BD00440258000002583843000876 +:103A500000ED00E01F00080308B500F0C7FAFEF70C +:103A60002FFA0F4BD3F8DC2042F04002C3F8DC20E1 +:103A7000D3F8042122F04002C3F80421D3F8043122 +:103A8000084B1A6842F008021A601A6842F00402F1 +:103A90001A60FEF7D5FEBDE80840FEF785BC00BF02 +:103AA000004402580018024870470000114BD3F838 +:103AB000E82042F00802C3F8E820D3F8102142F0D1 +:103AC0000802C3F810210C4AD3F81031D36B43F02D +:103AD0000803D363C722094B9A624FF0FF32DA62C0 +:103AE00000229A615A63DA605A6001225A611A60B0 +:103AF000704700BF004402580010005C000C0040FA +:103B0000094A08B51169D3680B40D9B29B076FEA1F +:103B10000101116107D5302383F31188FEF7E6F91F +:103B2000002383F3118808BD000C0040064BD3F836 +:103B3000DC200243C3F8DC20D3F804211043C3F88F +:103B40000401D3F8043170470044025808B53C4BD7 +:103B50004FF0FF31D3F8802062F00042C3F880209C +:103B6000D3F8802002F00042C3F88020D3F88020F0 +:103B7000D3F88420C3F88410D3F884200022C3F83B +:103B80008420D3F88400D86F40F0FF4040F4FF0059 +:103B900040F4DF4040F07F00D867D86F20F0FF404E +:103BA00020F4FF0020F4DF4020F07F00D867D86FBA +:103BB000D3F888006FEA40506FEA5050C3F888008D +:103BC000D3F88800C0F30A00C3F88800D3F888004F +:103BD000D3F89000C3F89010D3F89000C3F8902069 +:103BE000D3F89000D3F89400C3F89410D3F894005D +:103BF000C3F89420D3F89400D3F89800C3F8981031 +:103C0000D3F89800C3F89820D3F89800D3F88C0024 +:103C1000C3F88C10D3F88C00C3F88C20D3F88C0038 +:103C2000D3F89C00C3F89C10D3F89C10C3F89C20D8 +:103C3000D3F89C30FDF774FBBDE8084000F0AEB946 +:103C40000044025808B50122534BC3F80821534BD6 +:103C5000D3F8F42042F00202C3F8F420D3F81C2178 +:103C600042F00202C3F81C210222D3F81C314C4B53 +:103C7000DA605A689104FCD54A4A1A6001229A60B7 +:103C8000494ADA6000221A614FF440429A61444B7B +:103C90009A699204FCD51A6842F480721A603F4B0C +:103CA0001A6F12F4407F04D04FF480321A6700225A +:103CB0001A671A6842F001021A60384B1A685007F6 +:103CC000FCD500221A611A6912F03802FBD10121D9 +:103CD00019604FF0804159605A67344ADA62344AB9 +:103CE0001A611A6842F480321A602C4B1A689103E8 +:103CF000FCD51A6842F480521A601A689204FCD506 +:103D00002C4A2D499A6200225A63196301F57C01FD +:103D1000DA6301F2E71199635A64284A1A64284A5F +:103D2000DA621A6842F0A8521A601C4B1A6802F054 +:103D30002852B2F1285FF9D148229A614FF4886283 +:103D4000DA6140221A621F4ADA641F4A1A651F4A62 +:103D50005A651F4A9A6532231E4A1360136803F09E +:103D60000F03022BFAD10D4A136943F003031361C9 +:103D7000136903F03803182BFAD14FF00050FFF706 +:103D8000D5FE4FF08040FFF7D1FE4FF00040BDE878 +:103D90000840FFF7CBBE00BF00800051004402582E +:103DA0000048025800C000F0020000010000FF01BE +:103DB000008890081210200063020901470E0508D0 +:103DC000DD0BBF0120000020000001100910E00001 +:103DD00000010110002000524FF0B04208B5D2F8A7 +:103DE000883003F00103C2F8883023B1044A136815 +:103DF0000BB150689847BDE80840FEF76FBD00BFA3 +:103E00003C4300204FF0B04208B5D2F8883003F0B0 +:103E10000203C2F8883023B1044A93680BB1D0681A +:103E20009847BDE80840FEF759BD00BF3C4300205D +:103E30004FF0B04208B5D2F8883003F00403C2F85E +:103E4000883023B1044A13690BB150699847BDE823 +:103E50000840FEF743BD00BF3C4300204FF0B04296 +:103E600008B5D2F8883003F00803C2F8883023B1CF +:103E7000044A93690BB1D0699847BDE80840FEF742 +:103E80002DBD00BF3C4300204FF0B04208B5D2F832 +:103E9000883003F01003C2F8883023B1044A136A53 +:103EA0000BB1506A9847BDE80840FEF717BD00BF48 +:103EB0003C4300204FF0B04310B5D3F8884004F4E1 +:103EC0007872C3F88820A30604D5124A936A0BB10E +:103ED000D06A9847600604D50E4A136B0BB1506B3D +:103EE0009847210604D50B4A936B0BB1D06B9847CA +:103EF000E20504D5074A136C0BB1506C9847A30533 +:103F000004D5044A936C0BB1D06C9847BDE81040BF +:103F1000FEF7E4BC3C4300204FF0B04310B5D3F8AB +:103F2000884004F47C42C3F88820620504D5164A10 +:103F3000136D0BB1506D9847230504D5124A936D4C +:103F40000BB1D06D9847E00404D50F4A136E0BB146 +:103F5000506E9847A10404D50B4A936E0BB1D06EF6 +:103F60009847620404D5084A136F0BB1506F984705 +:103F7000230404D5044A936F0BB1D06F9847BDE872 +:103F80001040FEF7ABBC00BF3C43002008B5FFF774 +:103F9000B7FDBDE80840FEF7A1BC0000062108B54A +:103FA0000846FDF799FA06210720FDF795FA062144 +:103FB0000820FDF791FA06210920FDF78DFA062168 +:103FC0000A20FDF789FA06211720FDF785FA062158 +:103FD0002820FDF781FA09217A20FDF77DFA0721D3 +:103FE0003220BDE80840FDF777BA000008B5FFF7BA +:103FF000ADFD00F00BF8FDF741FCFDF713FBFFF7FB +:1040000053FDBDE80840FFF72BBC00000023054A24 +:1040100019460133102BC2E9001102F10802F8D150 +:10402000704700BF3C43002010B501390244904264 +:1040300001D1002005E0037811F8014FA34201D01F +:10404000181B10BD0130F2E7034611F8012B03F8ED +:10405000012B002AF9D1704753544D333248373F72 +:104060003F3F0053544D3332483733782F3732783F +:104070000053544D3332483734332F3735332F37CD +:104080003530000001105A0003105900012058007B +:1040900003205600100002400800024000080240C1 +:1040A00000000B0028000240080002400408024003 +:1040B00006010C00400002400800024008080240CF +:1040C00010020D0058000240080002400C08024097 +:1040D00016030E00700002400C000240100802405F +:1040E00000040F00880002400C0002401408024047 +:1040F00006051000A00002400C0002401808024013 +:1041000010061100B80002400C0002401C080240DA +:1041100016072F0010040240080402402008024045 +:104120000008380028040240080402402408024025 +:1041300006093900400402400804024028080240F1 +:10414000100A3A0058040240080402402C080240B9 +:10415000160B3B00700402400C0402403008024081 +:10416000000C3C00880402400C0402403408024069 +:10417000060D4400A00402400C040240380802402E +:10418000100E4500B80402400C0402403C080240F6 +:10419000160F460000000000A11500088D1500084C +:1041A000C9150008B5150008C1150008AD150008AF +:1041B0009915000885150008D515000800000000B5 +:1041C000010000000000000063300000C84100084A +:1041D00098240020A82600204172647550696C6FF5 +:1041E000740025424F415244252D424C0025534531 +:1041F0005249414C25000000020000000000000070 +:10420000C11700083118000840004000583F002046 +:10421000683F0020020000000000000003000000D2 +:1042200000000000791800080000000010000000E5 +:10423000783F0020000000000100000000000000A6 +:10424000EC4100200101020045230008552200082E +:10425000F1220008D5220008430000006042000857 +:1042600009024300020100C03209040000010202F9 +:1042700001000524001001052401000104240202AC +:104280000524060001070582030800FF0904010058 +:10429000020A000000070501024000000705810234 +:1042A0004000000012000000AC42000812011001A2 +:1042B0000200004009124157000201020301000000 +:1042C0000403090425424F415244250049464C4904 +:1042D0004748545F325241575F48370030313233DC +:1042E00034353637383941424344454600000000F2 +:1042F00000000000D51900088D1C0008391D0008B9 +:10430000400040002443002024430020010000001E +:10431000344300208000000040010000080000003D +:104320000001000000100000080000006D61696ECF +:104330000069646C650000000000816A00000000F4 +:10434000AAAAAAAA00000064FFFE00000000000064 +:1043500000A00A000000000100000000AAAAAAAA0A +:1043600000000001FFFF000000000000000000004E +:104370000000004000000000AAAAAAAA0000004015 +:10438000FFFF0000000000000000000000005000DF +:1043900000000000AAAAAAAA00000000FFF700007F +:1043A000000000000000000000000000000000000D +:1043B000AAAAAAAA00000000FFFF00000000000057 +:1043C000000000000000000000000000AAAAAAAA45 +:1043D00000000000FFFF00000000000000000000DF +:1043E0000000000000000000AAAAAAAA0000000025 +:1043F000FFFF0000000000000000000000000000BF +:1044000000000000AAAAAAAA00000000FFFF000006 +:10441000000000000000000000000000000000009C +:10442000AAAAAAAA00000000FFFF000000000000E6 +:10443000000000000000000000000000AAAAAAAAD4 +:1044400000000000FFFF000000000000000000006E +:104450000000000000000000AAAAAAAA00000000B4 +:10446000FFFF00000000000000000000000000004E +:10447000950400000000000000001A000000000089 +:10448000FF00000000000000584000088304000006 +:1044900063400008500400007140000800960000CE +:1044A0000000080096000000000800000400000062 +:1044B000C0420008000000000000000000000000F2 +:0C44C000000000000000000000000000F0 +:00000001FF diff --git a/Tools/bootloaders/MFT-SEMA100_bl.bin b/Tools/bootloaders/MFT-SEMA100_bl.bin new file mode 100755 index 0000000000..5ecc178361 Binary files /dev/null and b/Tools/bootloaders/MFT-SEMA100_bl.bin differ diff --git a/Tools/bootloaders/ZeroOneX6_bl.bin b/Tools/bootloaders/ZeroOneX6_bl.bin new file mode 100644 index 0000000000..d011831d18 Binary files /dev/null and b/Tools/bootloaders/ZeroOneX6_bl.bin differ diff --git a/Tools/bootloaders/ZeroOneX6_bl.hex b/Tools/bootloaders/ZeroOneX6_bl.hex new file mode 100644 index 0000000000..cc28597753 --- /dev/null +++ b/Tools/bootloaders/ZeroOneX6_bl.hex @@ -0,0 +1,2611 @@ +:020000040800F2 +:1000000000060020E1020008E3020008E302000805 +:10001000E3020008E3020008E3020008E30200082C +:10002000E3020008E3020008E3020008FD7C000888 +:10003000E3020008E3020008E3020008E30200080C +:10004000E3020008E3020008E3020008E3020008FC +:10005000E3020008E3020008098C0008358C000860 +:10006000618C00088D8C0008B98C0008FD4B0008DD +:10007000254C0008514C00087D4C0008A94C000894 +:10008000D14C0008FD4C0008E3020008E302000820 +:10009000E3020008E3020008E3020008E58C000820 +:1000A000E3020008E3020008E3020008E30200089C +:1000B000E3020008E3020008E3020008E30200088C +:1000C000E3020008E3020008E3020008E30200087C +:1000D000E3020008E3020008E3020008D18D0008F3 +:1000E000498D0008E3020008E3020008E30200086B +:1000F000E3020008E3020008E3020008294D0008BB +:10010000E3020008E30200080D8E0008E302000885 +:10011000E3020008E58D0008E3020008E30200089E +:10012000554D00087D4D0008A94D0008D54D00082B +:10013000014E0008E3020008E3020008E3020008A1 +:10014000E3020008E3020008E3020008E3020008FB +:10015000294E0008554E0008814E0008E3020008B1 +:10016000E3020008E3020008E3020008E3020008DB +:10017000E3020008E9880008E3020008E30200083F +:10018000E3020008E3020008F98D0008E30200081A +:10019000E3020008E3020008E3020008E3020008AB +:1001A000E3020008E3020008E3020008E30200089B +:1001B000E3020008E3020008E3020008E30200088B +:1001C000E3020008E3020008E3020008E30200087B +:1001D000E3020008D5880008E3020008E3020008F3 +:1001E000E3020008E3020008E3020008E30200085B +:1001F000E3020008E3020008E3020008E30200084B +:10020000E3020008E3020008E3020008E30200083A +:10021000E3020008E3020008E3020008E30200082A +:10022000E3020008E3020008E3020008E30200081A +:10023000BD8D0008E3020008E3020008E3020008A5 +:10024000E3020008E3020008E3020008E3020008FA +:10025000E3020008E3020008E3020008E3020008EA +:10026000E3020008E3020008E3020008E3020008DA +:10027000E3020008E3020008E3020008E3020008CA +:10028000E3020008E3020008E3020008E3020008BA +:10029000E3020008E3020008E3020008E3020008AA +:1002A000E3020008E3020008E3020008E30200089A +:1002B000E3020008E3020008E3020008E30200088A +:1002C000E3020008E3020008E3020008E30200087A +:1002D000E3020008E3020008E3020008E30200086A +:1002E00002E000F000F8FEE772B6374880F30888B5 +:1002F000364880F3098836483649086040F20000E5 +:10030000CCF200004EF63471CEF200010860BFF36B +:100310004F8FBFF36F8F40F20000C0F2F0004EF637 +:100320008851CEF200010860BFF34F8FBFF36F8F8B +:100330004FF00000E1EE100A4EF63C71CEF20001E3 +:100340000860062080F31488BFF36F8F07F038FD34 +:1003500006F09EFE4FF055301F491B4A91423CBFAC +:1003600041F8040BFAE71D49184A91423CBF41F895 +:10037000040BFAE71A491B4A1B4B9A423EBF51F83D +:10038000040B42F8040BF8E700201849184A914280 +:100390003CBF41F8040BFAE707F050FD06F0FCFE05 +:1003A000144C154DAC4203DA54F8041B8847F9E7A6 +:1003B00000F0BCFC114C124DAC4203DA54F8041BA3 +:1003C0008847F9E707F038BD00060020002200202A +:1003D0000000000808ED00E00000002000060020FA +:1003E00030A2000800220020D8220020D8220020BD +:1003F00098670020E0020008E0020008E002000820 +:10040000E00200082DE9F04F2DED108AC1F80CD064 +:10041000D0F80CD0BDEC108ABDE8F08F002383F338 +:1004200011882846A047002006F014FCFEE706F0DD +:100430006DFB00DFFEE7000053B94AB9002908BF91 +:1004400000281CBF4FF0FF314FF0FF3000F074B9AF +:10045000ADF1080C6DE904CE00F006F8DDF804E01B +:10046000DDE9022304B070472DE9F047089D0446FA +:100470008E46002B4DD18A42944669D9B2FA82F257 +:1004800052B101FA02F3C2F1200120FA01F10CFA93 +:1004900002FC41EA030E94404FEA1C48210CBEFBCB +:1004A000F8F61FFA8CF708FB16E341EA034306FB54 +:1004B00007F199420AD91CEB030306F1FF3080F0E3 +:1004C0001F81994240F21C81023E63445B1AA4B230 +:1004D000B3FBF8F008FB103344EA034400FB07F7D2 +:1004E000A7420AD91CEB040400F1FF3380F00A8113 +:1004F000A74240F207816444023840EA0640E41B08 +:1005000000261DB1D4400023C5E900433146BDE8B3 +:10051000F0878B4209D9002D00F0EF800026C5E955 +:10052000000130463146BDE8F087B3FA83F6002E6D +:100530004AD18B4202D3824200F2F980841A61EBE5 +:10054000030301209E46002DE0D0C5E9004EDDE703 +:1005500002B9FFDEB2FA82F2002A40F09280A1EBEB +:100560000C014FEA1C471FFA8CFE0126200CB1FB40 +:10057000F7F307FB131140EA01410EFB03F0884239 +:1005800008D91CEB010103F1FF3802D2884200F2C6 +:10059000CB804346091AA4B2B1FBF7F007FB101158 +:1005A00044EA01440EFB00FEA64508D91CEB0404F6 +:1005B00000F1FF3102D2A64500F2BB800846A4EB51 +:1005C0000E0440EA03409CE7C6F12007B34022FA3C +:1005D00007FC4CEA030C20FA07F401FA06F31C436B +:1005E000F9404FEA1C4900FA06F3B1FBF9F8200C78 +:1005F0001FFA8CFE09FB181140EA014108FB0EF0BE +:10060000884202FA06F20BD91CEB010108F1FF3A0D +:1006100080F08880884240F28580A8F10208614419 +:10062000091AA4B2B1FBF9F009FB101144EA014127 +:1006300000FB0EFE8E4508D91CEB010100F1FF34D2 +:100640006CD28E456AD90238614440EA0840A0FB6A +:100650000294A1EB0E01A142C846A64656D353D040 +:100660005DB1B3EB080261EB0E0101FA07F722FA64 +:1006700006F3F1401F43C5E9007100263146BDE88D +:10068000F087C2F12003D8400CFA02FC21FA03F3F0 +:10069000914001434FEA1C471FFA8CFEB3FBF7F071 +:1006A00007FB10360B0C43EA064300FB0EF69E4296 +:1006B00004FA02F408D91CEB030300F1FF382FD22F +:1006C0009E422DD9023863449B1B89B2B3FBF7F6D7 +:1006D00007FB163341EA034106FB0EF38B4208D9B0 +:1006E0001CEB010106F1FF3816D28B4214D9023EF1 +:1006F0006144C91A46EA004638E72E46284605E70F +:100700000646E3E61846F8E64B45A9D2B9EB0208DF +:1007100064EB0C0E0138A3E74646EAE7204694E76F +:100720004046D1E7D0467BE7023B614432E73046A2 +:1007300009E76444023842E7704700BF08B5062065 +:1007400000F046F9012006F08BFC00BF032A70B5CB +:1007500015D940EA010C1CF0030F04460B4621D1C9 +:10076000194620460E680568B54204F1040403F1F9 +:10077000040317D1043A032A20461946F0D8541E20 +:10078000A2B100F1FF3C013901E0C3180CD01CF804 +:1007900001EF11F8012F9645A4EB0C03F5D0AEEB59 +:1007A000020070BD541EECE7184670BD104670BDC7 +:1007B00088420DD98B1883420AD900EB020CBAB1DA +:1007C000624613F801CD02F801CD9942F9D1704784 +:1007D0000F2A0ED8034602F1FF3C4AB10CF1010C7E +:1007E000013B8C4411F8012B03F8012F6145F9D12D +:1007F000704740EA01039B0750D1A2F1100370B586 +:1008000001F1200C23F00F0501F1100E00F110048E +:10081000AC441B095EF8105C44F8105C5EF80C5C9C +:1008200044F80C5C5EF8085C44F8085C5EF8045C14 +:1008300044F8045C0EF1100EE64504F11004E9D111 +:10084000013312F00C0F01EB031102F00F0400EB67 +:10085000031327D0043C24F003064FEA940C1E44F3 +:100860001C1F8E465EF8045B44F8045FB442F9D165 +:100870000CF1010402F0030203EB840301EB840199 +:1008800002F1FF3C4AB10CF1010C013B8C4411F820 +:10089000012B03F8012F6145F9D170BD02F1FF3C36 +:1008A00003469BE72246EBE738B5446C0CB10020C9 +:1008B00038BD8021054607F001F80246686430B172 +:1008C000031F7C3243F8044F9342FBD1EFE74FF014 +:1008D000FF3038BD1F29F8B5054608D8466C0C46D0 +:1008E00017464EB156F8240046F82470F8BD16237A +:1008F00003604FF0FF30F8BD802106F0DFFF0646B1 +:10090000686440B1031F00F17C05002143F8041F17 +:100910009D42FBD1E6E74FF0FF30F8BD1F2938B507 +:10092000054620D8426C0C466AB152F8213053B1CA +:10093000012B16D0591C10D00025204642F8245017 +:100940009847284638BD284600F0F8F82246014668 +:100950002846BDE8384000F0DBB8162303600120CC +:1009600038BD002038BD162303604FF0FF3038BD7E +:100970001F292AD8426C38B50C46054682B152F878 +:10098000243002EB84024BB1591C19D0012B15D035 +:100990000025204615609847284638BD012038BDFF +:1009A000802106F08BFF0246686458B1031F0021C6 +:1009B0007C3043F8041F9842FBD1E0E7032038BDA8 +:1009C000022038BD4FF0FF3038BD4FF0FF30704788 +:1009D00038B5144B1F281D681FD86A6C044662B1D5 +:1009E00052F820304BB1012B15D0591C0FD00025E7 +:1009F00042F820509847284638BD284600F09EF817 +:100A0000224601462846BDE8384000F081B816234A +:100A10002B60012038BD002038BD16232B604FF01D +:100A2000FF3038BD00220020124B1F2870B51E6811 +:100A300008D80D46716C044649B151F8240041F8BC +:100A4000245070BD162333604FF0FF3070BD8021FD +:100A5000304606F033FF0146706440B1031F00F1D9 +:100A60007C0C002243F8042F6345FBD1E5E74FF0EF +:100A7000FF3070BD0022002038B50B4B1D686C6C38 +:100A80000CB1002038BD8021284606F017FF6864AD +:100A900038B1031F00F17C0243F8044F9342FBD1AD +:100AA000EFE74FF0FF3038BD0022002038B5174B7C +:100AB0001F281D6826D86A6C044682B152F824307B +:100AC00002EB84024BB1591C1AD0012B16D0002521 +:100AD000204615609847284638BD012038BD802142 +:100AE000284606F0EBFE0246686458B1031F002159 +:100AF0007C3043F8041F8342FBD1DFE7032038BD7D +:100B0000022038BD4FF0FF3038BD00BF002200206A +:100B100070B50C46084D03460026204611461C467B +:100B20002E6006F0A1FA431C00D070BD2B68002B8C +:100B3000FBD0236070BD00BFD822002006F08EBA23 +:100B400011F0FF01034644D0820732D110B504688A +:100B500041EA012E4EEA0E4E8EEA0402A2F1013362 +:100B600023EA0203A4F1013222EA0402134313F040 +:100B7000803F0FD150F8044F84EA0E0CA4F10133EA +:100B8000ACF1013223EA040322EA0C02134313F00E +:100B9000803FEFD0037823B936E010F8013F002BF7 +:100BA00032D09942F9D110BD8A4211D09A07184625 +:100BB000CCD0184613F8012B002AF5D11046704707 +:100BC0009907184607D0184601330278002AF7D152 +:100BD00070478207F7D10268A2F1013323EA0203CA +:100BE00013F0803F08D150F8042FA2F1013323EA1B +:100BF000020313F0803FF6D00378002BE8D010F802 +:100C0000013F002BFBD17047184610BD80EA01025E +:100C1000844612F0030F4FD111F0030F32D14DF87B +:100C2000044D11F0040F51F8043B0BD0A3F1013235 +:100C30009A4312F0803F04BF4CF8043B51F8043B48 +:100C400016D100BF51F8044BA3F101329A4312F0C0 +:100C5000803FA4F101320BD14CF8043BA24312F0C7 +:100C6000803F04BF51F8043B4CF8044BEAD02346C4 +:100C70000CF8013B13F0FF0F4FEA3323F8D15DF876 +:100C8000044B704711F0010F06D011F8012B0CF83E +:100C9000012B002A08BF704711F0020FBFD031F8B6 +:100CA000022B12F0FF0F16BF2CF8022B8CF800203D +:100CB00012F47F4FB3D1704711F8012B0CF8012BC0 +:100CC000002AF9D1704700BF30B540EA0104A307FC +:100CD00001D1032A0FD8844601F1FF3E07E01EF838 +:100CE000011F03F8011B541EC1B19C4622466346F6 +:100CF000002AF4D130BD0B468446194653F8045BF4 +:100D0000A5F1013424EA050414F0803FE4D1043A4B +:100D1000032A4CF8045B1946EFD8DDE76244002C47 +:100D2000E8D003F8011B9342FBD130BD38B501F088 +:100D3000FFF901F0C1FB06F0C7FE054606F0D4FF3F +:100D40000446D0B90F4B9D4219D001339D4241F268 +:100D5000883504BF01240025002006F0BFFE0CB139 +:100D600000F078F801F048FB00F026FD08B100F033 +:100D700071F8284600F01CF9F9E70025ECE7054674 +:100D8000EAE700BF010007B008B501F09DF9A0F146 +:100D900020035842584108BD07B541F21203022111 +:100DA00001A8ADF8043001F0ADF903B05DF804FB23 +:100DB00038B5302383F31188174803680BB106F068 +:100DC0002DF80023154A4FF47A71134806F01CF8E9 +:100DD000002383F31188124C236813B12368013B6D +:100DE0002360636813B16368013B63600D4D2B782A +:100DF00033B963687BB9022001F060FA3223636083 +:100E00002B78032B07D163682BB9022001F056FA27 +:100E10004FF47A73636038BDDC220020B10D000806 +:100E2000FC230020F4220020084B187003280CD863 +:100E3000DFE800F008050208022001F031BA0220C4 +:100E400001F01EBA024B00225A607047F4220020C3 +:100E5000FC230020F8B5504B504A1C46196801315C +:100E600000F0998004339342F8D162684C4B9A4267 +:100E700040F291804B4B9B6803F1006303F5003314 +:100E80009A4280F08880002001F06CF90220FFF780 +:100E9000CBFF454B0021D3F8E820C3F8E810D3F886 +:100EA0001021C3F81011D3F81021D3F8EC20C3F8A7 +:100EB000EC10D3F81421C3F81411D3F81421D3F88B +:100EC000F020C3F8F010D3F81821C3F81811D3F8A4 +:100ED0001821D3F8802042F00062C3F88020D3F8B4 +:100EE000802022F00062C3F88020D3F88020D3F85D +:100EF000802042F00072C3F88020D3F8802022F0D6 +:100F00000072C3F88020D3F8803072B64FF0E0232F +:100F1000C3F8084DD4E90004BFF34F8FBFF36F8FC0 +:100F2000224AC2F88410BFF34F8F536923F48033F1 +:100F30005361BFF34F8FD2F8803043F6E076C3F3AE +:100F4000C905C3F34E335B0103EA060C29464CEA9C +:100F500081770139C2F87472F9D2203B13F1200F66 +:100F6000F2D1BFF34F8FBFF36F8FBFF34F8FBFF33C +:100F70006F8F536923F4003353610023C2F850325A +:100F8000BFF34F8FBFF36F8F302383F311888546F4 +:100F900080F308882047F8BD0000020820000208FE +:100FA000FFFF0108642200200044025800ED00E029 +:100FB0002DE9F04F93B0B44B2022FF2100900AA8F6 +:100FC0009D6801F0C3F9B14A1378A3B90121B04873 +:100FD00011700360302383F3118803680BB105F0AF +:100FE0001DFF0023AB4A4FF47A71A94805F00CFFAE +:100FF000002383F31188009B13B1A74B009A1A605A +:10100000A64A1378032B03D000231370A24A53601F +:101010004FF0000A009CD3465646D146012001F00D +:101020003FF924B19C4B1B68002B00F02682002066 +:1010300001F04AF80390039B002BF2DB012001F042 +:101040001FF9039B213B1F2BE8D801A252F823F084 +:10105000D1100008F91000088D1100081D100008BB +:101060001D1000081D1000081F120008EF130008D3 +:10107000091300086B13000893130008B913000844 +:101080001D100008CB1300081D1000083D140008B7 +:10109000711100081D10000881140008DD100008FF +:1010A000711100081D1000086B1300081D100008C6 +:1010B0001D1000081D1000081D1000081D1000085C +:1010C0001D1000081D1000081D1000088D110008DB +:1010D0000220FFF759FE002840F0F981009B022111 +:1010E00005A8BAF1000F08BF1C4641F21233ADF853 +:1010F000143001F007F891E74FF47A7000F0E4FF44 +:10110000071EEBDB0220FFF73FFE0028E6D0013F81 +:10111000052F00F2DE81DFE807F0030A0D10133619 +:101120000523042105A8059300F0ECFF17E0042136 +:101130005548F9E704215A48F6E704215948F3E7EE +:101140004FF01C08404608F1040801F00DF8042196 +:10115000059005A800F0D6FFB8F12C0FF2D10120C0 +:101160004FF0000900FA07F747EA0B0B5FFA8BFB19 +:1011700001F038F926B10BF00B030B2B08BF00244C +:10118000FFF70AFE4AE704214748CDE7002EA5D025 +:101190000BF00B030B2BA1D10220FFF7F5FD074647 +:1011A00000289BD00120002600F0DCFF0220FFF782 +:1011B0003BFE1FFA86F8404600F0E4FF0446B0B15B +:1011C000039940460136A1F140025142514100F0DD +:1011D000E9FF0028EDD1BA46044641F2121302217C +:1011E00005A83E46ADF8143000F08CFF16E7254602 +:1011F0000120FFF719FE244B9B68AB4207D9284614 +:1012000000F0B2FF013040F067810435F3E70025BC +:10121000224BBA463E461D701F4B5D60A8E7002E6C +:101220003FF45CAF0BF00B030B2B7FF457AF0220A6 +:10123000FFF7FAFD322000F047FFB0F10008FFF69B +:101240004DAF18F003077FF449AF0F4A08EB0503D1 +:10125000926893423FF642AFB8F5807F3FF73EAFCA +:10126000124BB845019323DD4FF47A7000F02CFF48 +:101270000390039A002AFFF631AF039A0137019BCE +:1012800003F8012BEDE700BF64220020F8230020C3 +:10129000DC220020B10D0008FC230020F4220020F5 +:1012A000682200206C22002070220020F8220020FA +:1012B000C820FFF769FD074600283FF40FAF1F2D38 +:1012C00011D8C5F120020AAB25F00300844942453C +:1012D000184428BF4246019201F012F8019AFF21FA +:1012E0007F4801F033F84FEAA803C8F387027C492E +:1012F0002846019301F032F8064600283FF46DAF0E +:10130000019B05EB830533E70220FFF73DFD002835 +:101310003FF4E4AE00F064FF00283FF4DFAE0027A6 +:10132000B846704B9B68BB4218D91F2F11D80A9B37 +:1013300001330ED027F0030348336B4453F8203CAD +:1013400005934046042205A9043701F00BF98046B5 +:10135000E7E7384600F008FF0590F2E7CDF8148083 +:10136000042105A800F0CEFE02E70023642104A8B2 +:10137000049300F0BDFE00287FF4B0AE0220FFF71A +:1013800003FD00283FF4AAAE049800F01FFF05906B +:10139000E6E70023642104A8049300F0A9FE0028D6 +:1013A0007FF49CAE0220FFF7EFFC00283FF496AEDE +:1013B000049800F00DFFEAE70220FFF7E5FC0028A3 +:1013C0003FF48CAE00F01CFFE1E70220FFF7DCFCED +:1013D00000283FF483AE05A9142000F017FF07464C +:1013E0000421049004A800F08DFE3946B9E73220AC +:1013F00000F06AFE071EFFF671AEBB077FF46EAE0B +:10140000384A07EB0903926893423FF667AE022021 +:10141000FFF7BAFC00283FF461AE27F003074F4402 +:10142000B9453FF4A5AE484609F1040900F09CFE19 +:101430000421059005A800F065FEF1E74FF47A70ED +:10144000FFF7A2FC00283FF449AE00F0C9FE0028D7 +:1014500044D00A9B01330BD008220AA9002000F0D7 +:101460007DFF00283AD02022FF210AA800F06EFF5D +:10147000FFF792FC1C4805F0F3FB13B0BDE8F08FBA +:10148000002E3FF42BAE0BF00B030B2B7FF426AE9C +:101490000023642105A8059300F02AFE07460028D2 +:1014A0007FF41CAE0220FFF76FFC804600283FF45B +:1014B00015AEFFF771FC41F2883005F0D1FB0598BD +:1014C00000F0D8FF46463C4600F08CFFA6E50646F5 +:1014D0004EE64FF0000901E6BA467EE637467CE666 +:1014E000F822002064220020A0860100704700003E +:1014F00070470000704700002DE9F04100F580378B +:10150000044616463B7C5BB9C0681030204400F0AE +:10151000F7FEE5683544B5F5004FE56002D816B131 +:10152000BDE8F081DEB905F07F0605F1100000216D +:10153000C6F180062044F6B232462E4400F006FF83 +:10154000A06804F11008324600F10060414600F541 +:10155000003006F061F830B901233B74E0E74FF446 +:1015600000463546ECE7A26805F1100140463244DA +:101570002144A260E268521BE26000F0C1FE02203A +:10158000BDE8F04100F09ABE183000F0E9BC000060 +:1015900010B5044608F010F9204610BD10B50446F9 +:1015A00008F00AF9204610BDC3B280B2A3F141028F +:1015B000052A02D8373800B27047613B052B94BF2B +:1015C00057383038F7E70000F8B5044615460846A6 +:1015D00003220C4900F09EFE014688B908346F1CB6 +:1015E00015F91100FFF7E0FF064617F91100013168 +:1015F000FFF7DAFF102940EA061004F8010BEFD1DB +:10160000F8BD00BFF09700082DE9F04FADF53F7D24 +:101610000746416801222AA802F09CFE002840F0FB +:1016200087800646824681461125DFF80C81DFF867 +:101630000CB101AB4FF4805241462AA802F0EAFFF8 +:10164000002875D1019AB2F5805F71D8002A65D063 +:101650000446019A9442ECD2282D0FD008DC132DB9 +:101660002DD01E2D39D0112D13D00134A4B2F0E7A6 +:10167000322D2DD0372D2FD02D2DF6D13B68121BBA +:1016800008EB040138461B692D259847BDF8044036 +:10169000EBE7121B022A09D9594608EB040000F0B7 +:1016A00039FE18B902342825A4B2DEE718F8043050 +:1016B0003A2B3DD00A2B1CBFA1461325D5E718F8BD +:1016C00004300A2B34D03A2B04BFA2463225CCE793 +:1016D00018F80430202BC8D0264618F804300A2BFE +:1016E0001AD1AAEB090208EB090102A811254F2A19 +:1016F00028BF4F22FFF7E8FAA21B08EB060116A845 +:101700004F2A28BF4F22FFF7DFFA3B6816AA02A92B +:10171000DB6838469847A8E71E25A6E73B683846A9 +:1017200004491B69984701200DF53F7DBDE8F08F06 +:101730000020F9E7F298000804240020F49700083C +:1017400000F1180110B5044686B00846019100F07A +:10175000F1FB2046FFF758FF60B1019902A800F0A5 +:1017600049FC102204F1080102A8FEF7EFFFB0FACD +:1017700080F0400906B010BD70B504460025EEB2F9 +:10178000304600F0FFFC58B100213046013500F032 +:1017900009FD08B9002070BD022000F08FFDEEE7C2 +:1017A0002046FFF731FF0028F4D004F58034207C78 +:1017B00080F00100EFE70000F0B5C9B006F09CF939 +:1017C00000F0FEFE18B90025284649B0F0BD694674 +:1017D0002A4802F0E1FF00284BD1294C204603F0B3 +:1017E0000BF8284803F008F8274803F005F82146CD +:1017F000224803F07DF80028E5D1702007F0DEFFD5 +:10180000064610B1214B44600360336830469B6844 +:101810009847054600282ED01A4F1948394603F03C +:1018200067F805460028CED1194807F0C7FF0446DF +:1018300038B1184B4760036000F58033C0E90255AA +:101840001D74236820469B689847054628B10E49B9 +:101850000C4803F04DF80028B5D1336830465B687A +:1018600098471CB1236820465B68984700F090FEBB +:10187000AAE70025FAE70446EFE700BFF89700085B +:10188000089800081F980008359800085898000824 +:1018900014000100749800082DE9F04FD44A8DB06F +:1018A0000B68D0F804A001931A440368D14E1A447F +:1018B000D1F81C90DFF8B4C3DFF8B4B3D0E9023438 +:1018C000634003EA0A03634013444A6802920AEB46 +:1018D0007363029CC84A2244C468224484688AEA2A +:1018E00004051D40654015448A68039203EB355595 +:1018F000039CC24A2244846822448AEA03042C409E +:1019000084EA0A041444CA6805EBF43404921644C9 +:1019100083EA0502224056445A4032440E69059635 +:1019200004EBB222059FB64E3E441E4485EA0403F2 +:1019300013406B4033444E69069602EB7363069F77 +:10194000B04E3E442E4484EA02051D4065403544B5 +:101950008E69079603EB3555079FAB4E3E442644F0 +:1019600082EA03042C4054403444A84E4E4405EB14 +:10197000F434164483EA050222405A4032440E6A87 +:10198000089604EBB222089FA14E3E441E4485EA0D +:10199000040313406B4033444E6A099602EB7363B1 +:1019A000099F9C4ED1F830E03E44D1F83880F34492 +:1019B0002E4484EA02051D40654035448E6AA6F532 +:1019C000244703EB35550A964F3F274482EA030428 +:1019D0002C4054403C44CF6A0B9705EBF4340B9EEB +:1019E0008D4F3744029E174483EA050222405A4035 +:1019F0003A448A4F774404EBB2221F4485EA040339 +:101A000013406B403B444F6BBC4402EB7363654433 +:101A100084EA020C0CEA030C8CEA040C6544DFF83F +:101A200054C2C44403EB3555A44482EA03042C4059 +:101A300054406444D1F83CC0794905EBF434614426 +:101A4000114483EA050222405A400A44754904EBD6 +:101A5000B2223144079E194484EA02032B406340BA +:101A60000B44714902EBF36331440B9E0D4482EA4F +:101A700003012140514029446C4D03EBF1513544A1 +:101A8000019E254483EA010414405C402C44684DC7 +:101A900001EBB4443544069E154481EA04021A4021 +:101AA0004A402A44634D04EB323235440A9E1D44B9 +:101AB00084EA02030B4063402B445F4D02EBF36367 +:101AC0003544059E0D4482EA0301214051402944DA +:101AD0005A4D03EBF1516544254483EA0104144057 +:101AE0005C402C44564D01EBB4443544099E1544EA +:101AF00081EA04021A404A402A44524D04EB323231 +:101B00003544049E1D4484EA02030B4063402B4489 +:101B10004D4D02EBF36345440D4482EA030121403D +:101B200051402944494D03EBF1513544089E2C4462 +:101B300083EA010515405D402C44454D01EBB4445A +:101B40003544039E2A4481EA04051D404D402A4441 +:101B5000404D04EB32323D442B4484EA0205934469 +:101B60000D4065402B443C4D02EBF3633544069E2B +:101B7000294482EA0305254055402944374D03EBAB +:101B8000F1514D442C4483EA010515405D40254444 +:101B900001EBB54581EA050404EA03024A405A44D0 +:101BA000A6F5B82B089E05EB3232ABF2BE6B544063 +:101BB0005B4423442A4C344402EB33730B9E0C44A5 +:101BC00085EA020159402144264C344403EB71510B +:101BD000029E254482EA03044C402544224C44449E +:101BE00001EB3545144483EA01026A40224443E094 +:101BF00078A46AD7EECEBDC156B7C7E8DB70202403 +:101C0000AF0F7CF52AC68747134630A8019546FDDD +:101C1000D8988069AFF7448BBED75C892211906B4E +:101C20002108B44962251EF640B340C0515A5E26D1 +:101C3000AAC7B6E95D102FD65314440281E6A1D895 +:101C4000C8FBD3E7E6CDE121D60737C3870DD5F42E +:101C5000ED145A4505E9E3A9F8A3EFFCD9026F6733 +:101C600081F6718722619D6D0C38E5FD937198FDB9 +:101C70008A4C2A8D8E4379A6934C344405EB72220C +:101C8000059E1C4481EA0503534023448F4C344491 +:101C900002EB33730A9E0C4485EA02015940214449 +:101CA0008B4C4C4403EB7151254482EA03044C40B5 +:101CB0002C44884D354401EB3444019E154483EA9D +:101CC000010262402A44844D3D4404EB72221D44CB +:101CD00081EA040353402B44804D354402EB3373B7 +:101CE000049E294484EA02055D4029447C4D354424 +:101CF00003EB7151079E254482EA03044C402C44B7 +:101D0000784D354401EB3444099E2A4483EA0105A9 +:101D100065401544744A324404EB7525039E134410 +:101D200081EA04026A401A44704B734405EB327234 +:101D30000B4484EA0501514019446D4B634402EBA6 +:101D400071511C4485EA02034B401C44694B3344E7 +:101D500001EB3444019E1D4482EA010363402B449D +:101D6000654D04EB73233544069E154463EA010276 +:101D700062402A44614D03EBB2624D4462EA0409B9 +:101D800029445F4D89EA0309454449442C445D4D8B +:101D900002EBB1513544049E61EA03081D4488EA10 +:101DA0000208444401EB744464EA02034B402B44B0 +:101DB000554D04EBF323754463EA010E15448EEA96 +:101DC000040E0EEB0502514D03EBB262354462EA9C +:101DD000040E29440A9D8EEA030EA5F580164C4D8B +:101DE0007144A6F6833602EBB151264461EA03043E +:101DF00054403444029E01EB7444354464EA0206C4 +:101E00001D444E407319089E424D04EBF3233544A4 +:101E100063EA01061544664072193F4D03EBB26256 +:101E2000654462EA040629443C4D5E403144079E05 +:101E300002EBB151354461EA03062C44384D56405B +:101E40003D443444059E1D4401EB744464EA02039E +:101E50004B402B44334D04EBF32335440B9E154488 +:101E600063EA010262402A442F4D03EBB26235441B +:101E7000039E0D4462EA0401594029442B4D02EBB4 +:101E8000B15135442A4E254461EA030454402C44A0 +:101E9000099D01EB74442E4464EA02051E4485EA60 +:101EA00001039D1903681A440AEB040303EBF523AD +:101EB0000260436083681C44C36819448460C16045 +:101EC0000DB0BDE8F08F00BF44EABEA4A9CFDE4B41 +:101ED000604BBBF670BCBFBEC67E9B28FA27A1EA4A +:101EE0008530EFD4051D880439D0D4D9E599DBE6D7 +:101EF000F87CA21F6556ACC4442229F497FF2A43FC +:101F0000A72394AB39A093FCC3595B6592CC0C8F8B +:101F1000D15D84854F7EA86FE0E62CFE144301A3BB +:101F2000A111084E827E53F735F23ABDBBD2D72AB3 +:101F300091D386EB094B036003F18833436003F1CF +:101F40002943A3F59613A3F68B638360A3F188332B +:101F5000C3600023C0E90433704700BF0123456715 +:101F60002DE9F8431446026905460E46E300C2F324 +:101F7000C50800F118079B18036122BF43690133AC +:101F8000436112F4FC7F436903EB5473436114D043 +:101F9000C8F1400907EB08004C4504D22246BDE8D1 +:101FA000F843FEF705BC403C4A464E44FEF700FCB1 +:101FB000444439462846FFF76FFCA04606EB040967 +:101FC000B8F13F0FA9EB08010AD940223846FEF7C5 +:101FD000EFFB39462846A8F14008FFF75DFCEFE724 +:101FE000A1096FF03F02384602FB014206EB811166 +:101FF000D5E7000070B50B6901F1180506460C46DF +:10200000C3F3C503EA18501C8022EA54C3F13F020F +:10201000072A1FD8002100F099F929462046FFF72A +:102020003BFC38220021284600F090F9236929461C +:102030002046236563696365FFF72EFC2146102265 +:102040003046FEF7B5FB204658220021BDE870401F +:1020500000F07CB9C3F137020021E5E72DE9F84F24 +:102060004FF47A7306460D46002402FB03F7DFF8AF +:102070005080DFF8509098F900305FFA84FA5A1CCB +:1020800001D0A34210D159F824002A4631460368F2 +:10209000D3F820B03B46D847854205D1074B0120F5 +:1020A00083F800A0BDE8F88F0134042CE3D14FF48D +:1020B000FA7004F0D5FD0020F4E700BF483400209A +:1020C0007422002078220020002307B50246012157 +:1020D0000DF107008DF80730FFF7C0FF20B19DF824 +:1020E000070003B05DF804FB4FF0FF30F9E7000094 +:1020F0000A46042108B5FFF7B1FF80F00100C0B225 +:10210000404208BD074B0A4630B41978064B53F8D5 +:102110002140014623682046DD69044BAC4630BCB3 +:10212000604700BF4834002078220020A0860100CC +:1021300070B50A4E00240A4D05F012FA3080286866 +:102140003388834208D905F007FA2B680444013329 +:10215000B4F5003F2B60F2D370BD00BF4A340020BD +:102160000434002005F0CABA00F1006000F5003028 +:102170000068704700F10060920000F5003005F043 +:102180004BBA0000054B1A68054B1B889B1A83420B +:1021900002D9104405F0E0B9002070470434002053 +:1021A0004A34002038B50446074D29B12868204438 +:1021B000BDE8384005F0E8B92868204405F0D2F9B8 +:1021C0000028F3D038BD00BF043400200020704741 +:1021D00000F1FF5000F58F10D0F8000870470000A4 +:1021E000064991F8243033B100230822086A81F8A7 +:1021F0002430FFF7BFBF0120704700BF0834002024 +:10220000014B1868704700BF0010005C194B013883 +:102210000322084470B51D68174BC5F30B042D0C41 +:102220001E88A6420BD15C680A46013C82421346D6 +:102230000FD214F9016F4EB102F8016BF6E7013AC3 +:1022400003F10803ECD181420B4602D22C2203F8A1 +:10225000012B0424094A1688AE4204D1984284BF57 +:10226000967803F8016B013C02F10402F3D1581A8D +:1022700070BD00BF0010005C88220020B4980008E8 +:10228000022804D1054B4FF400129A6170470128CF +:10229000FCD1024B4FF40022F7E700BF00100258B8 +:1022A000022803D1044B20229A6170470128FCD1F7 +:1022B000014B0822F8E700BF00100258022805D1A0 +:1022C000064A536983F02003536170470128FCD10B +:1022D000024A536983F00803F6E700BF0010025872 +:1022E00070B504464FF47A764CB1412C254628BF90 +:1022F000412506FB05F0641B04F0B2FCF4E770BD59 +:10230000002310B5934203D0CC5CC4540133F9E7E9 +:1023100010BD0000013810B510F9013F3BB191F933 +:1023200000409C4203D11AB10131013AF4E71AB1DD +:1023300091F90020981A10BD1046FCE703460246AA +:10234000D01A12F9011B0029FAD170470244034642 +:10235000934202D003F8011BFAE770472DE9F843D6 +:102360001F4D14460746884695F8242052BBDFF8D7 +:1023700070909CB395F824302BB92022FF21484659 +:102380002F62FFF7E3FF95F824004146C0F10802F1 +:1023900005EB8000A24228BF2246D6B29200FFF78A +:1023A000AFFF95F82430A41B17441E449044E4B2B8 +:1023B000F6B2082E85F82460DBD1FFF711FF002864 +:1023C000D7D108E02B6A03EB82038342CFD0FFF71B +:1023D00007FF0028CBD10020BDE8F8830120FBE7F0 +:1023E00008340020024B1A78024B1A70704700BF65 +:1023F0004834002074220020F8B5194C194803F025 +:1024000037FF2146174803F05FFF24684FF47A70C6 +:10241000154ED4F89020154DD2F80438114F43F0E2 +:102420000203C2F80438FFF75BFF2046104904F0AE +:1024300059F8D4F890200424D2F8043823F0020389 +:10244000C2F804384FF4E133336055F8040BB84256 +:1024500002D0314603F06AFE013CF6D1F8BD00BF60 +:10246000B0A00008784900203034002078220020F5 +:10247000B8A000080C4B70B50C4D04461E780C4BF0 +:1024800055F826209A420DD00A4B002118221846F2 +:10249000FFF75CFF0460014655F82600BDE8704078 +:1024A00003F044BE70BD00BF4834002078220020F5 +:1024B0007849002030340020F0B5A1B071B6002377 +:1024C0000120002480261A46194602F081FD4FF4AF +:1024D000D067214A3D25136923BBD2F810310BBBCD +:1024E000036804F1006199600368C3F80CD00368C5 +:1024F0005E6003681F6001680B6843F001030B60B6 +:1025000001680B6823F01E030B6001680B68DB0792 +:10251000FCD4037B8034416805FA03F3B4F5001F53 +:102520000B60D8D102F094FDB4F5001F11D0002447 +:102530000A4E0B4D012005F0E1F83388A34205D97E +:1025400028682044013405F01FF8F6E7002005F064 +:10255000D5F861B621B0F0BD002000524A34002009 +:102560000434002030B50A44084D91420DD011F8D2 +:10257000013B5840082340F30004013B2C4013F07A +:10258000FF0384EA5000F6D1EFE730BD2083B8EDB9 +:1025900010B5084C01220849002001F0B7FE23784D +:1025A0003BB1064803F03AFD044803F06DFD0023FB +:1025B000237010BD4C340020C49800082C37002034 +:1025C0001D482DE9F041036D2BB901224FF48051D4 +:1025D000503005F0DBFA194E33780BB1FFF7D8FF16 +:1025E0000324174F4FF00008134D15492846C7F82C +:1025F000048003F03BFD284603F074FB48B1013C26 +:10260000284603F041FD14F0FF04EED1204634705B +:102610000FE00C4901220C4801F078FE014618B188 +:10262000284603F0FBFCEAE7084800F011F8012017 +:102630003070BDE8F08100BF2C3700204C34002002 +:10264000A0220020C498000850340020C898000838 +:102650000FB4002004B0704700687047034600685C +:10266000596870470B0A017043700B0C090E837098 +:10267000C1707047110A027003714170110C120E83 +:102680008170C2701A0A42711A0C1B0E8271C371DA +:1026900070470000C36A0239023B8B4283BF438903 +:1026A000006C01FB0300002070470000C2F3072309 +:1026B0008A76CB760378032B01BF120C0A75120AB7 +:1026C0004A75704700F10B010022D30143EA52031F +:1026D00010F8012B52FA83F38842DAB2F5D1104692 +:1026E0007047000010B541780446002001310246D1 +:1026F0004901022A16BFA35C032203EBC03302F197 +:1027000001021EBF9BB203EB500398B29142F0D876 +:1027100010BD000002684AB1134613F8011B1F29BF +:102720000DD93A29F9D1911C8B4202D04FF0FF30DC +:1027300070471278302AF9D1036000207047014BAE +:10274000187870479C36002038B50D46044618B9F5 +:10275000092000232B6038BD0368002BF8D01A78BD +:10276000002AF5D08188DA889142F1D1587804F0B6 +:1027700013FC10F00100EBD12368EBE738B50D46F0 +:1027800040F25231144602F0BDF9FF2807D9012C5E +:102790000BD9030A022468702B70204638BD30B173 +:1027A000002CFAD001242870F7E70024F5E704464E +:1027B000F3E700002DE9F8430026D0F80080054635 +:1027C0000C468E76836B002B4AD098F80030042B91 +:1027D0004BD133463546402720E0B7F5187F80F0CF +:1027E000C480F90606F1010608BF0237D05B023744 +:1027F0002BB900F5205292B2B2F5006F0DD305F15E +:102800001A01C5F1FF0240EA03402144FFF7B6FF79 +:10281000002800F0AA80054400200346D8F81020C4 +:1028200092F82310B142D8D8002B40F09E80002DA2 +:1028300000F09B8000232544AB766373D8F810200A +:10284000137903F03701DB0621730BD402F1380052 +:10285000FFF704FFC4E9000193896381D3892381D1 +:10286000BDE8F88300200146F4E7C36C01335ED174 +:10287000EA6B00232E26551E184615F8011F01305D +:1028800020290CD0052908BFE521092804D10B2BEC +:102890009EBFE71801337E73E718013379730B2865 +:1028A000EBD1E11800204873A17E00294BD1002B09 +:1028B00040D06FF00C0604F10D000825361B3318CC +:1028C00010F8011B002938D02E298BB24AD0A3F171 +:1028D0004101192903D8117B0D4200D02033037325 +:1028E000EDE7B9F1000F05D100F520539BB2B3F528 +:1028F000006F0BD307F11A01C7F1FF0240EA09404C +:102900002144FFF73BFF48B10744002002368146CF +:10291000D8F80C30985B0028E3D13846B9F1000FA5 +:102920004FF0000218BF002023189A76A0E7B146A6 +:102930003746EDE73F23A376012323440021997610 +:10294000137B03B96373D37A02F11C0003F03F03D6 +:1029500023730023FFF780FE20606360D38A6381C6 +:10296000138B7CE710250B46B9E73F230125A3769F +:1029700060E7000038B50546002435F8020B08B9B9 +:10298000204638BD02F0F2F86308C2B203EBC4334C +:1029900012FA83F39AB2C0F3072303EB520303EB5B +:1029A000C2339CB2E9E7000037B5C37804461BB9CF +:1029B0000025284603B030BD00F14C01826C012394 +:1029C0004078019104F00EFB054680B9A36BE070DE +:1029D000A06C226BC31A9342EAD2A3780199022B0E +:1029E000E6D102440123607804F0FCFAE1E7012516 +:1029F000DFE7000038B5836C05460C468B4210D0EB +:102A0000FFF7D2FF60B92246012305F14C01687837 +:102A100004F0C4FA00281CBF4FF0FF340120AC645E +:102A200038BD0020FCE7000038B500230446C37021 +:102A30004FF0FF338364FFF7DDFF00284BD1B4F87C +:102A40004A524AF655239D4207D10B22254904F1EB +:102A50004C00FDF77BFE00283FD094F84C30EB2B68 +:102A600003D01833DBB2012B2ED84AF655239D42F2 +:102A700006D108221C4904F19E00FDF767FE48B309 +:102A8000B4F85730B3F5007F1ED194F85930DBB15C +:102A90005A1E1A4218D1B4F85A30ABB194F85C30CF +:102AA000013B012B10D8B4F85D306BB1B4F85F3046 +:102AB0007F2B06D804F16C00FFF7CEFDB0F5803F08 +:102AC00002D3B4F8623053B94AF6552085420CBFA0 +:102AD0000220032038BD0420FCE70120FAE7002093 +:102AE000F8E700BFF49800080099000802392DE9C2 +:102AF000F04701F007044FF0010A466C05460AFA58 +:102B000004F41746984606EB1136C1F3C809E4B23F +:102B1000314628460136FFF76DFF18B10120BDE8A8 +:102B2000F087994605EB090292F84C30234214BF16 +:102B300001210021414513D06340013F82F84C3010 +:102B400085F803A0EBD0640014F0FF04EAD109F18A +:102B5000010301244FF00009B3F5007FE1D1D7E76D +:102B60000220DCE701290246F8B50C4640F28C80D1 +:102B70000668F36A8B4240F287803378013B032B6F +:102B800000F28280DFE803F00229384B04EB5405A1 +:102B9000B16B304601EB5521FFF72CFF10B14FF020 +:102BA000FF30F8BD6F1CC5F30805B16B30463544E6 +:102BB00001EB572195F84C50FFF71CFF0028EED190 +:102BC000C7F30807E3073E4496F84C0045EA0020A7 +:102BD0004CBF0009C0F30B00E3E7B16B304601EBDB +:102BE0001421FFF707FF0028D9D1640004F4FF7413 +:102BF0002644B6F84C00D4E7B16B304601EBD41153 +:102C0000FFF7F8FE0028CAD1A40006F14C0004F436 +:102C1000FE742044FFF720FD20F07040C1E7D0E9AA +:102C20000430D57953EA000101D0916801B95DBB48 +:102C30009168022DA4EB01010DD1013B728940F195 +:102C4000FF305B0A43EAC053B3FBF2F399421BD84F +:102C50001CD0601CA5E7032D02D193698B42F8D8E4 +:102C6000D3699BB9B16B304601EBD411FFF7C2FEBB +:102C7000002894D1A0004C3600F4FE703044FFF7D9 +:102C8000EBFC20F000408CE701208AE76FF0004069 +:102C900087E70000F8B5066804460D463378042B34 +:102CA0000CBF4FF080524FF400128A4201D802202C +:102CB000F8BDCA06FBD182680163D2B9022B13D8D2 +:102CC0003389B3EB551FF2D9F36BA363A36B626334 +:102CD000002BECD003EB55234C36C5F30805002040 +:102CE000A3633544E563E3E7F36BC271002BE7D0E0 +:102CF0001A4677897F02BD42114604D23046FFF75B +:102D0000C9FCA063E2E72046FFF72CFF431C024604 +:102D100006D00128CBD9F36A8342C8D9ED1BEAE774 +:102D20000120C5E701292DE9F04706460C46174664 +:102D300008D9C36A8B4205D90378022B62D003D825 +:102D4000012B22D0022552E0033B012BFAD8816BE4 +:102D500001EBD411FFF74EFE0546002847D1A40031 +:102D600006F14C0304F4FE741C443378042B07D0A2 +:102D7000204627F07047FFF76FFC00F070400743D4 +:102D800039462046FFF76EFC2FE001EB5108816BBE +:102D900001EB5821FFF72EFE054640BB14F001045D +:102DA00006F14C0908F1010AC8F3080808BFFBB294 +:102DB00030461FBF19F8083003F00F023B0103F043 +:102DC000F00318BF134309F808300123B16BF37007 +:102DD00001EB5A21FFF70EFE054640B9CAF3080A77 +:102DE00044B1C7F3071709F80A700123F3702846A6 +:102DF000BDE8F08719F80A30C7F3032723F00F0363 +:102E00001F43F0E7816B01EB1421FFF7F3FD05464B +:102E10000028ECD1640006F14C0304F4FF741F5544 +:102E20001919C7F307274F70DFE70000F8B504460C +:102E30000E461746E3690BB91846F8BD012BA6EB01 +:102E40000305206814BFAA1C3A46691CFFF76AFFF5 +:102E50000028F2D1E369013BE361EBE701292DE9A9 +:102E6000F84306460C461746056802D80220BDE81E +:102E7000F883EB6A8B42F9D97AB9A14621463046EC +:102E8000A046FFF76FFE0446B0B92B78042B02D1A1 +:102E9000002F43D1F7710020E9E72B78042B02D1F2 +:102EA000C379022BE9D04FF0FF3239462846FFF7AD +:102EB00039FF0028E1D0DAE70128D7D0421C01D140 +:102EC0000120D4E72B78042B19D1EA6AAB69023AC6 +:102ED00093421CD308F10102A2420CD02B78042BA0 +:102EE00008D10023A2EB090249462846FFF7FEFD60 +:102EF0000028BCD1A146EB6AA342BFD8C5E7002297 +:102F000041462846FFF70EFF0028DED0AFE7013329 +:102F1000AB612B7943F001032B71DBE7F3798BB9BC +:102F2000B468BC4202D10223F371B4E721463046B3 +:102F3000FFF718FE012899D9431CC1D001348442FF +:102F4000EFD0A8E7032BA6D1B368BB42A3D8B269E0 +:102F50001344BB429FD3E6E770B5C3790446032B05 +:102F600006D181688369CD18A94203D10023E3719A +:102F7000002070BD4E1C20683246FFF7D3FE0028AB +:102F8000F7D13146F0E700002DE9F74305460191FE +:102F9000FFF70AFD0446002849D105F14C090199C3 +:102FA00028464FF40072FFF775FB2146A8640746D8 +:102FB0004846FFF7CBF96C896402B4F5004F28BF8F +:102FC0004FF40044B4F5007F2FD9204604F07AFC7A +:102FD000804630B122460021640A0026FFF7B6F988 +:102FE00009E06408EEE72346BA194146687803F021 +:102FF000F9FF18B926446B899E42F4D3404604F089 +:1030000071FC6889801B18BF012003B0BDE8F08304 +:1030100001366B899E42F4D20123BA194946687879 +:1030200003F0E0FF0028F3D0EBE70026F1E70120F2 +:10303000EBE70000F8B50446FFF7B6FC05460028AC +:1030400042D12378032B37D12779012F34D104F1D2 +:103050004C0601464FF400723046FFF777F95523CE +:103060004122722184F84A32AA2304F50D7084F8B3 +:103070004F2084F84B32522384F8301284F84C30BD +:1030800084F84D30612384F8311284F84E3084F88E +:103090003332A16984F83222FFF7E4FA616904F55A +:1030A0000E70FFF7DFFA626B3B4631460132607803 +:1030B000A26403F097FF257100226078114603F0A7 +:1030C000B5FF003818BF0120F8BD000000232DE92E +:1030D000F0430B6085B00F461546FFF71BFB061E3D +:1030E000C0F2B281804B53F82640002C00F0AE8134 +:1030F0003C6005F0FE0523786BB1607803F04CFF6F +:10310000C70708D41DB110F0040500D00A252846D1 +:1031100005B0BDE8F0830023F0B22370607003F0C7 +:1031200027FFC10700F194810DB14207EED40021C1 +:103130002046FFF779FC022840F099806E4604F2A1 +:10314000122304F25221324618461033FFF784FA54 +:1031500042F8040B8B42F7D1002556F8041B0029D6 +:103160007DD02046FFF760FC012879D80128A26CA9 +:1031700040F0C08004F1570304F18C0113F8015BA7 +:10318000002D7BD18B42F9D1B4F8B430B3F5807FF8 +:1031900074D194F8B830092B70D104F19400FFF782 +:1031A0005DFA4FF0FF33171841F10001BB4275EB98 +:1031B000010363D304F1A000FFF74EFA94F8BA308C +:1031C0002063012BA37059D194F8B99003FA09F93F +:1031D0001FFA89F36381002B50D0444B04F1A800FF +:1031E000FFF73AFA0646984248D8831C626304F116 +:1031F000A400E362FFF730FA00EB020804F19C0040 +:10320000C4F84080FFF728FA10441FFA89F2A0633F +:1032100006FB02F313EB080345EB05029F4271EB3B +:1032200002032BD32E4604F1AC00FFF715FAE0633E +:1032300065B96389B34221D9E16B2046FFF72AFAC9 +:1032400081192046FFF7D6FB98B90136631993F828 +:103250004C30812B14D02035C5F30805E8E7032056 +:103260000135042D7FF479AF042807D101E004284B +:1032700001D101254BE701287FF678AF0D2546E700 +:1032800005F1140004F14C063044FFF7E5F901287C +:103290000546F3D9E36A8342F0D96189821E236C23 +:1032A00002FB01336364A16B204601EBD511FFF7EC +:1032B000A1FB0028DDD105F07F0006EB8000FFF7C1 +:1032C000CBF9431C03D00135A842ECD0D6E7042546 +:1032D000C4E90500064A257000251388E56101331D +:1032E0009BB21380E38012E7A0360020FDFFFF7F32 +:1032F000A4360020B4F85730B3F5007FBED1B4F83F +:10330000626026B904F17000FFF7A6F9064694F84A +:103310005C302663591EA3700129AFD894F8595028 +:103320006581002DAAD0691E2942A7D1B4F85D801D +:1033300018F00F0FA4F80880A0D1B4F85F0018B9F6 +:1033400004F16C00FFF788F9B4F85A10002995D001 +:1033500006FB03FE01EB181CF44460458ED3A0EB82 +:103360000C00A842B0FBF5F388D33E48834285D8D1 +:103370004FF6F57083426DD903259F1C114402EB73 +:103380000C03032DE7626263A16323644CD1B4F89C +:10339000763053EA08037FF471AFBB0004F1780084 +:1033A000FFF75AF9E06303F2FF13B6EB532FFFF474 +:1033B00065AF4FF0FF33032DC4E905334FF08003B1 +:1033C000237187D1B4F87C30012B83D1511C204666 +:1033D000FFF710FB00287FF47DAFB4F84A224AF6CD +:1033E000552320719A427FF475AF1F4B04F14C00B6 +:1033F000FFF732F998427FF46DAF03F1FF5304F504 +:103400000C70FFF729F903F50053203398427FF43D +:1034100061AF04F50D70FFF71FF9A06104F50E70A0 +:10342000FFF71AF9606155E7B8F1000F3FF426AFD6 +:103430007144022D4FEA4703E1631EBFD91907F01B +:10344000010303EB5103AEE70B2560E60C255EE6B6 +:1034500003255CE640F6F575AB428CBF02250125DD +:103460008BE700BFF5FFFF0F525261412DE9F84F86 +:1034700007460568884649B96E69C6B1EB6AB3422A +:1034800098BF0126AB69A3B9002405E0FFF76AFBEA +:103490000128044603D801242046BDE8F88F421CC9 +:1034A00000F0D280EB6A8342F6D84646EAE701266E +:1034B000E8E72A78EB6A042A40F08380A6F1020A42 +:1034C000023B4FF0010B9A4528BF4FF0000AD1464E +:1034D000696C284601EB1931FFF78CFA00283BD1C3 +:1034E00009F00703EA6AC9F3C8010BFA03F3901E57 +:1034F000DBB26A184C4609F1010992F84C2081456B +:1035000002EA030233BF5B0000234FF40071DBB219 +:1035100028BF9946B2B90234631E0333BCD80123D5 +:10352000214628461A46FFF7E1FA0228B3D00128BF +:1035300000F08A80B8F1000F13D10223FB7100283C +:10354000A9D130E0CA450AD0002BD2D10131B1F562 +:10355000007FBDD20123CCE74FF0FF34DCE700242D +:10356000DAE7FB79022B07D1731CA342E7D0BB68D3 +:10357000F31ABB610323FB7108F10102FB69A2424C +:1035800005D113B10133FB61D9E70223FBE70BB986 +:103590000123FB61224641463846FFF747FC0028DD +:1035A0004FD10123FB61EA6AAB69023A6C61934235 +:1035B0009CBF03F1FF33AB612B7943F001032B7107 +:1035C0006AE7464514D1741C38469C4228BF022441 +:1035D0002146FFF7C7FA01283FF45DAF431C33D003 +:1035E000E0B16B69012B03D9EA6A934238BF1E46EA +:1035F00034460134EB6AA34203D8012E7FF644AF70 +:10360000022421463846FFF7ADFA48B101283FF4BD +:1036100042AF013018D0B442EBD135E7002CE7D0EF +:103620004FF0FF3221462846FFF77CFB48B9B8F13E +:10363000000FB8D0224641462846FFF773FB00280A +:10364000B1D001287FF427AF4FF0FF3424E700000A +:103650002DE9F84306680446076B8946337820371E +:10366000042B0CBF4FF080534FF40013BB429CBFA0 +:1036700000238363836B73B1C7F30808B8F1000FAD +:103680003CD10133416B836339B93389B3EB571FA5 +:1036900034D80023A36304200AE07389013B13EAB2 +:1036A00057232BD1FFF75EFA0128054602D80220E6 +:1036B000BDE8F883421C01D10120F9E7F36A834297 +:1036C00016D8B9F1000FE4D0616B2046FFF7CEFEAB +:1036D0000546C8B10128EAD0431CEDD0014630466A +:1036E000FFF752FC0028E7D1E37943F00403E371CC +:1036F000294630466563FEF7CDFFA0634C360020B7 +:1037000027634644E663D3E70720D1E7F8B50E46C2 +:10371000002104460768FFF7BDFA98B90546A16B7A +:103720003846FFF767F968B93A78E36B042A1B78E3 +:103730000CD11B060ED5054601212046FFF788FF58 +:103740000028ECD0042808BF072006E0E52B01D0B4 +:10375000002BF0D10135B542EED1F8BDC16C4B1C48 +:103760002DE9F04104460568066B1FD1E5274FF0AF +:103770000108A16B2846FFF73DF998B92A78E36B59 +:10378000042A09BF1A781F7002F07F021A7085F8A8 +:103790000380236BB3420DD200212046FFF758FF70 +:1037A0000028E6D0042808BF022003E0FFF772FAE1 +:1037B0000028DBD0BDE8F0812DE9F0410546006826 +:1037C000A96B0669FFF716F9044620B9EB6B1A7866 +:1037D000852A03D002242046BDE8F081324603F159 +:1037E000200153F8040B8B4242F8040BF9D177788F +:1037F00001377F01A7F16003B3F5007FEAD800210C +:103800002846FFF725FF04280446E3D00028E2D12C +:10381000A96B2868FFF7EEF804460028DBD1EB6BB4 +:103820001A78C02AD6D106F1200203F1200153F8FC +:10383000040B8B4242F8040BF9D196F823300F2287 +:103840002C33B3FBF2F3B7EB431FC3D34FF0400865 +:1038500000212846FFF7FCFE04280446BAD00028C1 +:10386000B9D1A96B2868FFF7C5F804460028B2D182 +:10387000EB6B1A78C12AADD1B8F5187F09D206EBE7 +:10388000080203F1200153F8040B8B4242F8040BA9 +:10389000F9D108F120084745DAD8B8F5187F9AD849 +:1038A0003046FEF71FFF7388834294D092E70000F2 +:1038B0000B68002210B5036004460B6A83604B6AF4 +:1038C000C261C37123F0FF03896AC0E90432C16495 +:1038D000FFF7E0F920B92046BDE81040FFF76CBFC4 +:1038E00010BD0000F8B50368054601271C69204695 +:1038F000FEF7F8FEA070000A6678E0702846E96CD2 +:10390000FFF7C8F920B1022828BF0220C0B2F8BDD5 +:10391000A96B2868FFF76EF80028F4D1EB6B04F16F +:10392000200254F8041B944243F8041BF9D12B687D +:10393000DF70002EE7D000212846013EFFF788FE09 +:10394000E0E700002DE9F8434FF0FF08064607685E +:10395000042445464FF6FF79B16B11B9002C73D0A2 +:1039600063E03846FFF746F8044600285DD1F06B67 +:103970000378002B6ED03A78042A11D1852B4DD1D3 +:10398000336B3046F364FFF717FF044600284CD131 +:103990003B691B7903F03F03B3712046BDE8F88310 +:1039A000C27AE52B02F03F02B27143D02E2B41D0F8 +:1039B00022F0200108293DD00F2A40D1590637D5E1 +:1039C00003F0BF05336B90F80D80F364437B4345F0 +:1039D00030D1428B72BB03780D21FC6823F0400389 +:1039E000DFF874E0013B4B4301211EF801CB30F8B6 +:1039F0000CC009B3FF2B1DD824F813C06146013356 +:103A000001320D2AF1D10278520605D521B1FF2BE2 +:103A100010D8002224F81320013DEDB200213046D9 +:103A2000FFF716FE0446002896D00023B363B4E7E0 +:103A3000AB42CBD0FF25F1E7CC45E1D0FAE72DB979 +:103A4000FEF740FE404501D10024A6E74FF0FF33CA +:103A5000F364A2E70424E8E79C9900082DE9F04FFD +:103A6000002187B00446D0F80090FFF713F9804694 +:103A700070B999F80030042B33D1D9F80C00FEF757 +:103A800079FF07462046FFF75DFF054620B18046D7 +:103A9000404607B0BDE8F08FD9F810309A8CBA4292 +:103AA000F0D193F823B040265D4506D1D9F80C300B +:103AB00033F81530002BE5D1EAE7F106D9F81030DC +:103AC00008BF0236985B01F051F8D9F80C308246F5 +:103AD00033F8150001F04AF88245D3D1023601359A +:103AE000E2E74FF0FF0A4FF0FF3B5546C4F84CB0F9 +:103AF000A16B4846FEF77EFF00285CD1E66B377865 +:103B0000002F77D0F27AE52F02F03F03A37103D0A4 +:103B1000120704D50F2B04D0C4F84CB04FE00F2B84 +:103B200054D194F84B3058063FD4790645D5236BD1 +:103B300007F0BF0796F80DA0E364737B53453ED1B1 +:103B4000738B002B3BD135780121D9F80C3005F06F +:103B50003F0501930D23013D5D43284B13F8012BD5 +:103B6000B25A71B3FF2D059329D81046049200F084 +:103B7000FDFF6B1C03900293019B33F8150000F0CE +:103B8000F5FF039981421AD1049A029D1146059BC3 +:103B90001B4A9342E2D133785A0604D519B1019BEE +:103BA00033F815305BB97D1EEDB200212046FFF7DA +:103BB0004FFD00289CD080466AE7BD42BDD0FF255E +:103BC000F3E74FF6FF708242E2D0F8E72DB93046B6 +:103BD000FEF778FD50453FF45BAF94F84B30DB07C0 +:103BE0009AD40B2204F140013046FCF7AFFD0028C7 +:103BF00092D14DE74FF004084AE700BF9C990008B6 +:103C0000A99900082DE9F04F90F84BB099B00446FF +:103C10001BF0A00540F06C810668F26832F81530A0 +:103C2000002B4AD13378042B40F087800F230E35C8 +:103C30002046B5FBF3F5A91CFFF768FD8146002877 +:103C400077D1236B0135A3EB4515E3795A07E5647A +:103C500035D523F004032046E371FFF77DF950BB0F +:103C60004FF0FF32616B2046FFF7E0F818BBA36806 +:103C70002BB3214604A8FFF71BFEE0B970894FF46F +:103C80000071D4E90423E0FB01233069C4E9042373 +:103C90003830FEF7EFFC3069D4E904232830FEF712 +:103CA000E9FCE379326904A843F0010382F821308A +:103CB000FFF718FE18B181463BE00135AEE7D6E9C3 +:103CC0000354402200212046FEF740FB85230121BA +:103CD00040222370C0234FF0C10C04EB010884F88C +:103CE000203000231E469E46571C04F802C0F0B246 +:103CF000023204F807E021B135F8131009B101339D +:103D0000DBB20F0AA15408F802700232D706F2D1D2 +:103D100035F813700136002FE6D184F82330831C68 +:103D200028466370FEF726FE84F82400000A84F813 +:103D30002500484619B0BDE8F08F04F140070DF1A9 +:103D4000100A1BF0010F97E807008AE8070000F04F +:103D5000D78040234FF0010884F84B30BC46F3680D +:103D6000B8F1050F9AE80700ACE803002CF8022B25 +:103D70004FEA12428CF800205DD9981E424630F876 +:103D8000021F002946D10DF10F0C072102F00F0E82 +:103D9000914612090EF13000392888BF0EF1370024 +:103DA00001390CF8010902D0B9F10F0FEED801F179 +:103DB00060037E200DEB030202F8580C3846002207 +:103DC000914206D010F801CB02F1010EBCF1200F98 +:103DD00033D104F13F0C072902F1010297BF01F131 +:103DE0006003202001310DEB030098BF10F8580C40 +:103DF000072A0CF80200EED92046FFF72FFE814675 +:103E0000002878D108F10108B8F1640FA6D14FF06D +:103E100007098EE74FF0100C01F0010E49080EEB78 +:103E20004202D30344BF82F4883282F02102BCF103 +:103E3000010CF1D1A3E74246A5E77246C0E7216B2A +:103E40002046A1EB4511FEF725FF814600287FF4AF +:103E500070AF4FF6FF783846FEF734FC0190A16B47 +:103E60003046FEF7C7FD814600287FF462AFE36B62 +:103E7000E9B2019A4FF00D0CD6F80CE05A734FF0EE +:103E80000F02DFF8E0A0DA724A1E18730CFB02F290 +:103E900084469876D87640451AF8019B0CF1010CBF +:103EA00018BF3EF8120003EB090B18BF013203F8EC +:103EB00009004FEA1029002808BF4046BCF10D0F49 +:103EC0008BF80190E7D1404502D03EF812200AB9A4 +:103ED00041F040011970012300212046F370FFF7E3 +:103EE000B7FB814600287FF424AF013DB7D11BE02A +:103EF0004FF006091DE704287FF41BAF84F84BB090 +:103F00001BF0020F20461BBF0C350D210125B5FB10 +:103F1000F1F518BF01352946FFF7F8FB8146002867 +:103F20007FF407AF013D8AD1A16B3046FEF762FDF9 +:103F3000814600287FF4FDAE01462022E06BFEF7AB +:103F400005FAE36B03CF18605960BA7839889A7222 +:103F5000198194F84B30E26B03F0180313730123BB +:103F6000F370E6E69C99000810B504460A46343022 +:103F7000FEF772FB886004F13800FEF76FFBC2E9C0 +:103F8000040194F8213003F00203D3710023D361BC +:103F900010BD000003284B8B04BF8A8A43EA02430A +:103FA000184670472DE9F04F0B7899B004468946C2 +:103FB0002F2BD0F800B001D05C2B09D14A461378E2 +:103FC000914601322F2BFAD05C2BF8D0002301E070 +:103FD000DBF81C30A3600023E3619BF80030042B66 +:103FE0001ED1A368E3B1DBF82030214604A8236288 +:103FF000DBF824306362DBF82830A362FFF758FC5B +:104000000346002854D1DBF8102002F13800FEF7F7 +:1040100023FBC4E9040392F8213003F00203E371A7 +:1040200099F800301F2B00F23581802300212046B3 +:1040300084F84B3019B0BDE8F04FFEF72BBE49466F +:104040000B78894601312F2BFAD05C2BF8D01F2B2F +:104050008CBF00250425012F2FD113882E2B31D1A1 +:10406000002322F8173004F140029F428CBF2E211A +:10407000202101330B2B02F8011BF6D145F020055E +:10408000204684F84B50FFF7E9FC94F84B300028A9 +:1040900000F0E78004280BD1990603F0040240F1F8 +:1040A000DC80002A00F0F6808023002084F84B306A +:1040B00019B0BDE8F08F0425CDE7022F02D1538857 +:1040C0002E2BCAD0911E87BB002322F81730002F59 +:1040D00000F0118132F81300194601332028F9D07D +:1040E00009B92E2801D145F00305901E30F817308C +:1040F0002E2B01D0013FF9D14FF020334FF0000AB1 +:104100006364D0462364C4F847300823481C32F85F +:1041100011600090F6B1202E03D02E2E0DD1B842A2 +:1041200010D045F003050099F0E731F81730202B47 +:1041300001D02E2BC8D1013FC5E79A4505D2009981 +:10414000B9423BD10B2B30D101E00B2B27D145F0ED +:1041500003050B2394F84020E52A04BF052284F8C8 +:104160004020082B04BF4FEA88085FFA88F808F05F +:104170000C030C2B03D008F00303032B01D145F0F3 +:104180000205A8073FF57CAF18F0010F18BF45F0F6 +:10419000100518F0040F18BF45F0080570E70099E6 +:1041A000B94202D045F00305D4D84FEA88080B2362 +:1041B0004FF0080A00975FFA88F8B4E77F2E15D908 +:1041C000304640F25231CDE9022345F0020301931B +:1041D00000F098FC10F0800F0646DDE9022316D0AF +:1041E00000F07F0646498E5D019D46B33146454845 +:1041F000CDE90123FCF7A4FCDDE90123F8B9A6F120 +:10420000410189B219291ED848F0020810E0FF28A0 +:10421000EAD9591E8A4503D345F003059A4682E739 +:1042200004EB0A01000A0AF1010A019D81F840002D +:1042300004EB0A010AF1010A81F8406073E745F0D6 +:1042400003055F26F4E7A6F1610189B219299EBF33 +:10425000203E48F00108B6B2EAE7002A08BF052070 +:1042600026E75A073FF524AFA379DB0645D59BF82F +:104270000000042835D1A3682146E279236223692E +:10428000DBF8100023F0FF0313436362E36CA362C7 +:10429000FFF76AFE23680027DA6819F8010B002887 +:1042A0003FF409AF40F25231009200F04BFC05465A +:1042B00008B31F28009A7FF6FEAE2F283FF4BFAE4A +:1042C0005C283FF4BCAE7F2805D801460E48FCF7B9 +:1042D00037FC009A78B9FF2F0DD022F8175001371C +:1042E000DBE7216B0BF14C03C1F308011944FFF725 +:1042F00051FEA060CEE70620DAE60520D8E600BF32 +:104300001C990008159900080C9900081FB5CDE903 +:10431000001003A814460391FEF7FCF9002815DBF2 +:104320000B4A52F820300BB100211970019B0BB1E0 +:104330000021197042F820302CB1002201A96846F2 +:10434000FEF7C4FE0446204604B010BD0B24FAE775 +:10435000A03600202DE9F04798B09046054601911F +:10436000002800F0528102F03F0603A901A832465E +:10437000FEF7ACFE002840F04681039B4FF48C60B2 +:10438000049303F09FFA0746002800F04081039B46 +:1043900000F500720199D86004A81A61FFF702FEC7 +:1043A000044620B99DF95B30002BB8BF062418F0F5 +:1043B0001C0F00F0CD80002C4CD0042C40D104A860 +:1043C000FFF720FC044600283AD146F00806039B7C +:1043D0001A78042A40F08380186929462B60FFF779 +:1043E000C3FD039B1E22002118690230FDF7AEFFBA +:1043F000039C00211A2220692630FDF7A7FF2369BC +:1044000020221A71246903F097FA01460122083428 +:104410002046FEF727F9039B04A81B6983F8212097 +:10442000FFF760FA044658B9A96801B30246284666 +:10443000FEF714FDAB68039A0446013B5361B4B127 +:10444000384603F04FFA0CB100232B60204618B019 +:10445000BDE8F0879DF8163013F0110F40F084800E +:1044600018F0040F40F0C98018F0080FAFD1039A7C +:1044700031071399936C48BF46F04006E964AB647A +:104480001078042872D1069B9DF817102B62089BA8 +:10449000106923F0FF030B4329466B62179BAB6245 +:1044A000FFF762FDDDF80CA00024002205F15008A2 +:1044B000BAF8063021464046C5F800A0AB8000237C +:1044C00085F8306085F831406C64C5E90E234FF4FF +:1044D0000072FDF73BFFB20653D40024B0E703F0AF +:1044E0002BFA0146009013980E30FEF7BBF8139894 +:1044F00000991630FEF7B6F8039C13992078FFF761 +:1045000049FD202300228046CB7220461399FEF7F6 +:10451000CDF8139B002201211A775A779A77DA7720 +:10452000039BD970B8F1000FA1D0414604A8D3F87D +:104530004890FEF793FC0446002881D14946039831 +:10454000FEF758FA039B044608F1FF30586176E7FE +:10455000002C7FF475AF9DF81630DC064FD418F0B0 +:10456000020F84D0D80782D5072469E7FFF712FD30 +:104570000023A86001F11C00FEF76EF86B61286152 +:1045800090E7D5E9046956EA0903A6D0BAF80AA06B +:10459000A9684FEA4A2AC5E90E69B24574EB0903D6 +:1045A0001BD300242964002C7FF44AAFC6F3080310 +:1045B000002B92D0039C2046FEF76CF808B3760AD5 +:1045C0000123414646EAC95682196A64607802F0BE +:1045D000E5FC041E18BF012432E72846FEF7C2FAA4 +:1045E000B6EB0A06014669F10009012803D9431C0C +:1045F000D3D10124D6E70224D4E7082420E70424F9 +:104600001EE702241CE704461EE709241EE71124C6 +:104610001CE700002DE9F04F994685B0002388463D +:1046200003A90446C9F800301646FEF78DF8054682 +:1046300080BB94F831506DBB94F8303013F0010317 +:10464000009300F0A68004F1500AD4E90432D4E9C2 +:104650000E011B1A62EB0102B34272F1000238BF75 +:104660001E46BEB1D4E90E10C1F30803002B40F082 +:104670008280039B5A894B0A013A43EAC0531A408D +:104680001BD151EA000309D1A06801280DD80225E9 +:1046900084F83150284605B0BDE8F08F216C2046E3 +:1046A0000192FEF75FFA019AEFE7431C04D1012360 +:1046B000009D84F83130EDE72064DDF80CB0216C0A +:1046C0005846FDF7E7FF0028E1D0B6F5007F02EB82 +:1046D000000731D3BBF80A1002EB5620730A884258 +:1046E0009BF8010088BF8B1A3A464146019302F0BD +:1046F00055FC0028DBD194F93020019B002A0BDA0D +:10470000606CC01B984207D24FF40072514608EB10 +:104710004020FDF7F5FD019B5F02D9F80030F61B44 +:10472000B8443B44C9F80030D4E90E32DB1942F1F9 +:104730000002C4E90E3294E7626CBA421AD094F9CE +:104740003030002B0DDA012351469BF8010002F0B6 +:1047500049FC0028ABD194F8303003F07F0384F893 +:104760003030039801233A465146407802F016FC57 +:1047700000289CD16764A16B4046C1F30801C1F5D4 +:1047800000775144B74228BF37463A46FDF7B8FD97 +:10479000C3E707257EE7000070B596B00E460022FD +:1047A000019002A901A8FEF791FC0446E0B94FF47C +:1047B0008C6003F087F80546D8B1029B00F50072C3 +:1047C0000199D86002A81A61FFF7ECFB044640B9D2 +:1047D0009DF95330002B0ADB1EB1314602A8FDF7CC +:1047E000E9FF284603F07EF8204616B070BD062487 +:1047F000F7E71124F8E7000070B5B8B00222019085 +:1048000003A901A8FEF762FC044608BB039B4FF412 +:104810008C60109303F056F80546002866D0039B81 +:1048200000F500720199D86010A81A61FFF7BAFB71 +:10483000044650B99DF88B30980655D4190653D4C8 +:104840009DF84630DA0706D50724284603F04AF8D3 +:10485000204638B070BD039B04931878042814D107 +:1048600004A91869FFF780FB069E9DF84630DB0619 +:1048700010D410A8FEF772FF04460028E5D156BBFD +:104880000398FEF7D7FB0446DFE71F99FFF782FB8B +:104890000646EAE7039BDA69B242D5D024930021A9 +:1048A000269624A81B78042B01BFDDE90823CDE957 +:1048B00028239DF817308DF89730FEF7EBF9044662 +:1048C0000028C2D124A8FFF73DF804460028BBD039 +:1048D0000428BAD1CDE70246314604A8FEF7BEFA55 +:1048E00004460028B1D1CBE70624AEE71124AFE798 +:1048F000F0B5BDB0CDE900106846FDF70BFF022210 +:1049000003A901A8FEF7E2FB0446002841D1039B5E +:104910004FF48C60149302F0D5FF0546002800F098 +:10492000EE80039B00F5007214AE0199D8601A6105 +:104930003046FFF737FB044640BB9DF89B3013F031 +:10494000A00F40F0D880039B009F1A78042A68D1FA +:104950001B6904AC03F1400C1868083353F8041CBD +:104960002246634503C21446F6D15022314628A898 +:10497000FDF7C6FC394628A8FFF714FB04460028BB +:104980004CD12A9A169B9A4206D00824284602F057 +:10499000A9FF20463DB0F0BD349A209B9A42F4D145 +:1049A00028A8FFF72FF904460028EFD1039B04AF96 +:1049B0001B6993F801E093F823C09C8C3A460833B6 +:1049C00003CAB24243F8080C43F8041C1746F5D159 +:1049D000039B28A81B6983F801E0039B1A6982F8EE +:1049E00023C01A6982F82440240A82F825401A69F3 +:1049F0001379D9065CBF43F020031371FEF772FFF1 +:104A000004460028C2D13046FEF7A8FE044600281E +:104A1000BCD10398FEF70EFB0446B7E70428B5D1D6 +:104A2000BEE7239A04AB02F1200C1068083252F85A +:104A3000041C1C46624503C42346F6D1502231466D +:104A400028A8FDF75DFC394628A8FFF7ABFA044615 +:104A500000284CD12A9A169B9A4296D1349A209BD0 +:104A60009A4292D128A8FFF7CDF8044600288DD1AC +:104A700037990DF11D030DF12D0001F10D0253F8D1 +:104A8000044B834242F8044BF9D118880127108067 +:104A90009B7893709DF81B30039CDA0658BF43F057 +:104AA0002003CB72E770CB7ADB06ACD5169A2A9B33 +:104AB0009A42A8D02078FFF76DFA01462046FDF70C +:104AC000E9FD0146C8B12046FDF794FF04460028E1 +:104AD0007FF45CAF039890F86D302E2B93D12A9A17 +:104AE00000F16C01FDF7E2FD039BDF708BE704280A +:104AF0007FF44CAFB6E7062448E7022446E71124CA +:104B000047E700007F2810B501D880B210BDB0F58E +:104B1000803F13D240F2523399420FD1084900220C +:104B200031F8024B93B2844203D103F18000C0B24A +:104B3000ECE70132802AF3D11346F6E70020E5E7DF +:104B40005C9C00087F280DD940F25233994208D16D +:104B5000FF2806D800F10040034B803833F81000DE +:104B600070470020704700BF5C9C0008B0F5803F94 +:104B7000F0B522D21F4A83B21F49B0F5805F28BF2B +:104B80000A46141D34F8042C2146AAB1934213D3CB +:104B900034F8025C2E0AEFB252FA85F5A84222DA06 +:104BA000082E09D8DFE806F0050A10121416181AA4 +:104BB0001C00801A34F810301846F0BD981A00F026 +:104BC00001001B1A9BB2F7E7103BFBE7203BF9E71C +:104BD000303BF7E71A3BF5E70833F3E7503BF1E7E3 +:104BE000A3F5E353EEE70434002ECBD101EB4702EB +:104BF000C7E700BFAC990008A09B000808B5074BA9 +:104C0000074A196801F03D01996053680BB190683B +:104C10009847BDE8084003F0A9B800BF0000024073 +:104C2000A836002008B5084B1968890901F03D0134 +:104C30008A019A60054AD3680BB110699847BDE8AC +:104C4000084003F093B800BF00000240A8360020DF +:104C500008B5084B1968090C01F03D010A049A6077 +:104C6000054A53690BB190699847BDE8084003F0C5 +:104C70007DB800BF00000240A836002008B5084BF0 +:104C80001968890D01F03D018A059A60054AD369CA +:104C90000BB1106A9847BDE8084003F067B800BF41 +:104CA00000000240A836002008B5074B074A5968A3 +:104CB00001F03D01D960536A0BB1906A9847BDE895 +:104CC000084003F053B800BF00000240A83600209F +:104CD00008B5084B5968890901F03D018A01DA607D +:104CE000054AD36A0BB1106B9847BDE8084003F042 +:104CF0003DB800BF00000240A836002008B5084BB0 +:104D00005968090C01F03D010A04DA60054A536B49 +:104D10000BB1906B9847BDE8084003F027B800BF7F +:104D200000000240A836002008B5084B5968890DDC +:104D300001F03D018A05DA60054AD36B0BB1106CB6 +:104D40009847BDE8084003F011B800BF00000240DA +:104D5000A836002008B5074B074A196801F03D0145 +:104D60009960536C0BB1906C9847BDE8084002F015 +:104D7000FDBF00BF00040240A836002008B5084B64 +:104D80001968890901F03D018A019A60054AD36CCE +:104D90000BB1106D9847BDE8084002F0E7BF00BFB7 +:104DA00000040240A836002008B5084B1968090C19 +:104DB00001F03D010A049A60054A536D0BB1906DF4 +:104DC0009847BDE8084002F0D1BF00BF0004024090 +:104DD000A836002008B5084B1968890D01F03D017F +:104DE0008A059A60054AD36D0BB1106E9847BDE8ED +:104DF000084002F0BBBF00BF00040240A8360020FC +:104E000008B5074B074A596801F03D01D960536E58 +:104E10000BB1906E9847BDE8084002F0A7BF00BFF5 +:104E200000040240A836002008B5084B59688909DB +:104E300001F03D018A01DA60054AD36E0BB1106FB3 +:104E40009847BDE8084002F091BF00BF000402404F +:104E5000A836002008B5084B5968090C01F03D013F +:104E60000A04DA60054A536F0BB1906F9847BDE8AA +:104E7000084002F07BBF00BF00040240A8360020BB +:104E800008B5084B5968890D01F03D018A05DA60C3 +:104E9000054AD36F13B1D2F880009847BDE80840A7 +:104EA00002F064BF00040240A836002000230C4931 +:104EB00010B51A460B4C0B6054F82300026001EB4E +:104EC000430004334260402BF6D1074A4FF0FF33D2 +:104ED0009360D360C2F80834C2F80C3410BD00BF30 +:104EE000A83600205C9D0008000002400F28F8B59D +:104EF00010D9102810D0112811D0122808D10F2451 +:104F00000720DFF8C8E00126DEF80050A04208D9EB +:104F1000002653E00446F4E70F240020F1E70724BD +:104F2000FBE706FA00F73D424AD1264C4FEA001C47 +:104F30003D4304EB00160EEBC000CEF80050C0E974 +:104F40000123FBB273B12048D0F8D83043F00103FD +:104F5000C0F8D830D0F8003143F00103C0F8003178 +:104F6000D0F8003117F47F4F0ED01748D0F8D83062 +:104F700043F00203C0F8D830D0F8003143F0020308 +:104F8000C0F80031D0F8003154F80C00036823F069 +:104F90001F030360056815F00105FBD104EB0C034A +:104FA0003D2493F80CC05F6804FA0CF43C602124A3 +:104FB0000560446112B1987B00F0CAFC3046F8BD30 +:104FC0000130A3E75C9D000800440258A836002089 +:104FD00010B5302484F31188FFF788FF002383F392 +:104FE000118810BD10B50446807B00F0C7FC01237A +:104FF0001549627B03FA02F20B6823EA0203DAB274 +:105000000B6072B9114AD2F8D81021F00101C2F830 +:10501000D810D2F8001121F00101C2F80011D2F825 +:10502000002113F47F4F0ED1084BD3F8D82022F083 +:105030000202C3F8D820D3F8002122F00202C3F8FC +:105040000021D3F8003110BDA836002000440258DA +:1050500008B5302383F31188FFF7C4FF002383F3DF +:10506000118808BD836CC26A8B42506810B506D99E +:105070005A1E4C0002EB4103B3FBF4F3184410BD7D +:1050800001F001038A0748BF43F002034A0748BF03 +:1050900043F008030A0748BF43F00403CA0648BFA9 +:1050A00043F010038A06426B48BF43F020031343CA +:1050B0004363704710B5074C204600F0CBFF064B0A +:1050C0000022C4E91023054BA364054BE363054BA1 +:1050D000E36410BD2C3700200024024800B4C4044F +:1050E0008037002080390020C36A0BB9104BC3629F +:1050F0000379012B11D10F4B98420ED10E4BD3F8EF +:10510000DC2042F40072C3F8DC20D3F8042142F41E +:105110000072C3F80421D3F80431436C00221A65ED +:10512000DA621A605A605A624FF0FF329A6370472F +:105130005C9E00082C370020004402580379012BA4 +:105140001BD0436C00221A65DA621A605A605A62F8 +:105150004FF0FF329A63094B98420ED1084BD3F8B7 +:10516000DC2022F40072C3F8DC20D3F8042122F4FE +:105170000072C3F80421D3F8043170472C370020A3 +:105180000044025810B5446C0649FFF76BFF60609D +:10519000236842F2107043F003032360BDE810401F +:1051A00001F05EBD801A06000129F8B5466C0B4F70 +:1051B00009D175680A493D40FFF754FF054345F49E +:1051C00080557560F8BD746806493C40FFF74AFF9A +:1051D000044344F480547460F4E700BF00ECFFFF24 +:1051E00080F0FA0240787D01436C00225A601A6018 +:1051F00070470000426C0129536823F4404304D0F7 +:10520000022905D001B95360704743F48043FAE79F +:1052100043F40043F7E70000436C41F480519A6087 +:10522000D9605A6B1206FCD580229A637047000041 +:1052300010B541F48851446CA260E160616B11F0DB +:105240004502FBD0A26311F0040203D0FFF718FF60 +:10525000012010BD616910461960FAE710B541F4EC +:105260008851446CA260E160616B11F04502FBD093 +:10527000A26311F0050203D0FFF702FF012010BD69 +:10528000616910461960FAE773B5134604460E4685 +:10529000302282F31188426CD26B32B14FF0FF3171 +:1052A0004030019301F0E8FC019B606C0022026534 +:1052B000C263C262456B15F4807504D185F3118811 +:1052C000012002B070BD4FF0FF31816382F311887D +:1052D000012E06D90C21204602B0BDE87040FFF730 +:1052E000BDBF1046EDE7000073B5446C0E460025C7 +:1052F0000192616BA1632565E562FFF7C1FE012E96 +:1053000007D9019B2A460C2102B0BDE87040FFF787 +:10531000A5BF02B070BD000010B541F49851446CB7 +:10532000A260E160616B11F04502FBD0A26311F055 +:105330003F0203D0FFF7A4FE012010BD216A1046F2 +:105340001960E1695960A16999606169D960F4E700 +:105350002DE9F74304460191006D01A917469846CF +:1053600002F02CFC064600284AD0626C2046DDF88C +:1053700004905568C5F3090501356B00A56CB5FBB4 +:10538000F3F54FF47A73B5FBF3F55D43556200F026 +:1053900027FE50BB636C4FF0FF3201254146C3F836 +:1053A000589020461D659A634FF49572DA6342F275 +:1053B00007029F62DA62E36C0A9AFFF74FFFA0B917 +:1053C000E26C104B11680B407BB929462046FFF771 +:1053D0005BFF054648B92E463A460199206D02F01A +:1053E00025FC304603B0BDE8F0833A460199206DB4 +:1053F00002F01CFCE26C01212046FFF775FFF0E78C +:105400000126EEE708E0FFFD2DE9F7431F46436C58 +:1054100001924FF47A725D6804468846C5F3090527 +:1054200001356E00856CB5FBF6F5B5FBF2F555431D +:105430005D6200F0D5FD20B10125284603B0BDE82E +:10544000F0837E0201A9206D324602F0B7FB0546CB +:105450000028F1D0636C019AD4F84C909A6501222F +:105460001A654FF0FF329A634FF49572DA639E62C9 +:10547000236BDB064B4658BF4FEA4828012F4246B4 +:105480001BD912212046FFF7E9FEC0B9D9F8002048 +:10549000104B13409BB9636C42F29302394620468D +:1054A000DA62E26CFFF7F0FE804640B932460199BD +:1054B000206D454602F0BAFBBFE71121E2E7324614 +:1054C0000199206D02F0B2FBE26C39462046FFF7ED +:1054D0000BFFB2E708E0FFFD2DE9F3411F46436CE7 +:1054E00001924FF47A725D6804468846C5F3090557 +:1054F00001356E00856CB5FBF6F5B5FBF2F555434D +:105500005D6200F06DFD20B10125284602B0BDE8C6 +:10551000F0817E0201A9206D324602F095FB05461E +:105520000028F1D0636C019A9A6501221A654FF048 +:10553000FF329A634FF48D72DA639E62236BE66CDE +:10554000DB06334658BF4FEA4828012F424619D997 +:1055500019212046FFF782FEB0B932680F4B134085 +:1055600093B9636C42F2910239462046DA62E26CEA +:10557000FFF78AFE064638B901993546206D02F0DC +:105580009FFBC2E71821E4E70199206D02F098FB28 +:10559000E26C39462046FFF7A7FEB6E708E0FFFDBC +:1055A00012F0030F2DE9F04107460C4615461E4642 +:1055B00017D00E44B44202D10020BDE8F08101238F +:1055C000FA6B21463846FFF71FFF0028F5D1284621 +:1055D0004FF40072F96B05F500750134FCF790FE8D +:1055E000E8E7BDE8F041FFF70FBF000012F0030F3E +:1055F0002DE9F04107460C4615461E4617D00E44CD +:10560000B44202D10020BDE8F08129464FF4007277 +:10561000F86B05F50075FCF773FE0123FA6B214664 +:105620003846FFF759FF0028EDD10134E8E7BDE81F +:10563000F041FFF751BF000000207047302310B544 +:1056400083F311880024436C40302146DC6301F071 +:1056500021FB84F3118810BD026843681143016087 +:1056600003B1184770470000024A136843F0C003B3 +:105670001360704700480040024A136843F0C003BB +:105680001360704700500040024A136843F0C003A3 +:105690001360704700780040064BD3F8E8200243BF +:1056A000C3F8E820D3F810211043C3F81001D3F851 +:1056B000103170470044025837B5274C274D20461B +:1056C00000F028FD04F11400009400234FF4007250 +:1056D000234900F0C3F94FF40072224904F1380065 +:1056E0000094214B00F03CFA204BC4E91735204CC4 +:1056F000204600F00FFD04F11400009400234FF445 +:1057000000721C4900F0AAF94FF400721A4904F122 +:1057100038000094194B00F023FA194BC4E91735EF +:10572000184C204600F0F6FC04F1140000234FF45E +:1057300000721549009400F091F9144B4FF4007277 +:10574000134904F13800009400F00AFA114BC4E93F +:10575000173503B030BD00BF8439002000E1F505E6 +:10576000C83A0020C84000206956000800480040A0 +:10577000F0390020C83C0020C842002079560008BB +:10578000005000405C3A0020C83E002089560008C6 +:10579000C84400200078004038B5264D0446037CFC +:1057A000002918BF0D46012B06D1234B984230D15A +:1057B0004FF48020FFF770FF2A68236EE16D03EB42 +:1057C0005203A566B3FBF2F36A68100442BF23F0EC +:1057D000070003F0070343EA4003CB60AB6843F0E4 +:1057E00040034B60EB6843F001038B6042F4967317 +:1057F00043F001030B604FF0FF330B62510505D5F9 +:1058000012F0102211D0B2F1805F10D084F8643011 +:1058100038BD0A4B984205D0094B9842CCD14FF085 +:105820008040C7E74FF48010C4E77F23EEE73F23B3 +:10583000ECE700BF649E000884390020F0390020A6 +:105840005C3A00202DE9F047C66D05463768F469DB +:10585000210734621AD014F0080118BF4FF4807188 +:10586000E20748BF41F02001A3074FF0300348BFD3 +:1058700041F04001600748BF41F0800183F3118887 +:10588000281DFFF7E9FE002383F31188E2050AD5FE +:10589000302383F311884FF48061281DFFF7DCFE6D +:1058A000002383F311884FF030094FF0000A14F001 +:1058B000200838D13B0616D54FF0300905F1380ADB +:1058C000200610D589F31188504600F07DF9002894 +:1058D00036DA0821281DFFF7BFFE27F0800333606A +:1058E000002383F31188790614D5620612D530237C +:1058F00083F31188D5E913239A4208D12B6C33B175 +:1059000027F040071021281DFFF7A6FE376000236F +:1059100083F31188E30618D5AA6E1369ABB15069F9 +:10592000BDE8F047184789F31188736A284695F84F +:105930006410194000F008FC8AF31188F469B6E796 +:10594000B06288F31188F469BAE7BDE8F087000017 +:10595000090100F16043012203F56143C9B283F8F4 +:10596000001300F01F039A4043099B0003F16043BA +:1059700003F56143C3F880211A60704700F01F03EC +:1059800001229A40430900F160409B0000F561400C +:1059900003F1604303F56143C3F88020C3F880211D +:1059A000002380F800337047F8B515468268044636 +:1059B0000B46AA4200D28568A1692669761AB542CB +:1059C0000BD218462A46FCF79BFCA3692B44A36123 +:1059D0002846A3685B1BA360F8BD0CD9AF1B184613 +:1059E0003246FCF78DFC3A46E1683044FCF788FC0F +:1059F000E3683B44EBE718462A46FCF781FCE36882 +:105A0000E5E7000083689342F7B50446154600D2E7 +:105A10008568D4E90460361AB5420BD22A46FCF7F1 +:105A20006FFC63692B4463612846A3685B1BA3601A +:105A300003B0F0BD0DD93246AF1B0191FCF760FCFD +:105A400001993A46E0683144FCF75AFCE3683B446C +:105A5000E9E72A46FCF754FCE368E4E710B50A449A +:105A60000024C361029B8460C16002610362C0E9DB +:105A70000000C0E9051110BD08B5D0E90532934218 +:105A800001D1826882B98268013282605A1C426107 +:105A900019700021D0E904329A4224BFC3684361DF +:105AA00001F012F9002008BD4FF0FF30FBE70000C5 +:105AB00070B5302304460E4683F31188A568A5B15E +:105AC000A368A269013BA360531CA36115782269F6 +:105AD000934224BFE368A361E3690BB12046984772 +:105AE000002383F31188284607E03146204601F061 +:105AF000DBF80028E2DA85F3118870BD2DE9F74F55 +:105B000004460E4617469846D0F81C904FF0300ACF +:105B10008AF311884FF0000B154665B12A463146CD +:105B20002046FFF741FF034660B94146204601F099 +:105B3000BBF80028F1D0002383F31188781B03B051 +:105B4000BDE8F08FB9F1000F03D001902046C8479F +:105B5000019B8BF31188ED1A1E448AF31188DCE750 +:105B6000C160C361009B82600362C0E905111144FA +:105B7000C0E9000001617047F8B504460D461646BD +:105B8000302383F31188A768A7B1A368013BA36002 +:105B900063695A1C62611D70D4E904329A4224BFC1 +:105BA000E3686361E3690BB120469847002080F306 +:105BB000118807E03146204601F076F80028E2DA45 +:105BC00087F31188F8BD0000D0E9052310B59A428B +:105BD00001D182687AB982680021013282605A1C40 +:105BE00082611C7803699A4224BFC368836101F013 +:105BF0006BF8204610BD4FF0FF30FBE72DE9F74F63 +:105C000004460E4617469846D0F81C904FF0300ACE +:105C10008AF311884FF0000B154665B12A463146CC +:105C20002046FFF7EFFE034660B94146204601F0EB +:105C30003BF80028F1D0002383F31188781B03B0D0 +:105C4000BDE8F08FB9F1000F03D001902046C8479E +:105C5000019B8BF31188ED1A1E448AF31188DCE74F +:105C60000379052B05BF836A002001204B6004BF28 +:105C70004FF400730B60704770B55D1E866A044672 +:105C80000D44B54205D9436B43F0800343630120C3 +:105C900070BD06250571FFF783FC05232371F7E727 +:105CA00070B55D1E866A04460D44B54205D9436B46 +:105CB00043F080034363012070BD07250571FFF7A2 +:105CC00095FC05232371F7E738B505790446052DC2 +:105CD00005D108230371FFF7AFFC257138BD012002 +:105CE000FCE700000323F0B5037185B00446FFF71D +:105CF00049FA002220461146FFF78EFA4FF4D5727A +:105D000003AB08212046FFF7A9FA0246B8B90123E0 +:105D10002363039BC3F30323012B09D103AB372177 +:105D20002046FFF79BFA18B9A44B039A1340ABB176 +:105D300020460125FFF758FA0223237137E103AB10 +:105D4000002237212046FFF789FA28B99B4A039B96 +:105D50001A40002A00F0A78002232363236B03F07C +:105D60000F03022B40F0A9806425954E42F210707B +:105D700000F076FF03AB324601212046FFF758FAC8 +:105D80000028D5D1039B002B80F293805A0003D5C5 +:105D9000236B43F010032363002204F10803022164 +:105DA0002046FFF7B9FA02460028C1D104F13803B2 +:105DB00003212046FFF752FA0028B9D104F1180553 +:105DC000A26B092120462B46FFF7A6FA0028AFD187 +:105DD00002ABA26B07212046FFF740FA06460028D7 +:105DE000A6D1236B03F00F03022B40F08F807E229D +:105DF0007F21284603F028FA012840F28780E76BCC +:105E000042F2107000F02CFF08234FF40072394664 +:105E100020460096FFF79CFA002889D1384603F007 +:105E200061FA236BA06203F00F03022B72D103AB64 +:105E3000644A06212046FFF711FA002871D15F4914 +:105E4000039B1940B1FA81F149092046FFF7ACF9EB +:105E500002AB4FF4007210212046FFF7FFF9054610 +:105E600000287FF465AF554E029B33427FF460AF4C +:105E7000236B13F00E0F03F00F0273D0022A7FF48E +:105E800057AFE36A1978012900F09480022900F0E5 +:105E90009380002900F089804B4F2046FFF7AAF934 +:105EA00003AB3A4676E0114620462263FFF7B4F989 +:105EB00054E7013D7FF45AAF3AE7444D6426444A23 +:105EC0003E4F012B18BF154603AB00223721204659 +:105ED000FFF7C4F900287FF42BAF039B3B427FF40C +:105EE00027AF03AB2A4629212046FFF7A1F9002856 +:105EF0007FF41EAF039B002BFFF648AF013E3FF43B +:105F000017AF42F2107000F0ABFEDDE7284603F059 +:105F1000BDF986E77E227F212846E66B03F094F9DF +:105F200008B9002191E70023402231462046009322 +:105F30000623FFF70DFA0028F3D1B3895BBA9B075C +:105F4000EFD5244B40223146204600930623FFF72D +:105F5000FFF90028E5D1317C01F00F010F3918BF9E +:105F6000012172E7E36A1978F9B101297FF4E0AE03 +:105F70002046FFF73FF903ABA26B37212046FFF71E +:105F80006DF900287FF4D4AE039B33427FF4D0AE8A +:105F900003AB022206212046FFF760F900287FF4B8 +:105FA000C7AE039B33427FF4C3AE0523237128465B +:105FB00005B0F0BD084F70E7084F6EE708E0FFFD41 +:105FC0000080FFC00001B9030000B7030080FF504C +:105FD00000001080F1FFFF800001B7030002B7034B +:105FE00037B504460C4D01ABA26B0D212046FFF7DF +:105FF00035F978B9019B2B420BD1C3F34323042B12 +:1060000008D0053B022B04D84FF47A7000F028FE2C +:10601000E9E7012003B030BD08E0FFFD70B5302393 +:10602000054683F3118803790024022B03D184F3FE +:106030001188204670BD0423037184F31188022661 +:10604000FFF7CEFF04462846FFF7CEF82E71F0E7A3 +:10605000FFF730B8044B036001230371002343634F +:10606000C0E90A33704700BF7C9E000810B530239A +:10607000044683F31188C162FFF736F8022300203B +:10608000237180F3118810BD10B53023044683F3CB +:106090001188FFF753F800230122E362227183F392 +:1060A000118810BD026843681143016003B11847AD +:1060B000704700001430FFF721BD00004FF0FF33A0 +:1060C0001430FFF71BBD00003830FFF797BD00000C +:1060D0004FF0FF333830FFF791BD00001430FFF769 +:1060E000E7BC00004FF0FF311430FFF7E1BC0000C7 +:1060F0003830FFF741BD00004FF0FF323830FFF776 +:106100003BBD0000012914BF6FF013000020704751 +:10611000FFF7D2BA044B036000234360C0E90233A7 +:1061200001230374704700BFA09E000810B5302300 +:10613000044683F31188FFF72FFB0223002023740A +:1061400080F3118810BD000038B5C36904460D46C0 +:106150001BB904210844FFF7A5FF294604F11400E8 +:10616000FFF78AFC002806DA201D4FF40061BDE825 +:106170003840FFF797BF38BD02684368114301609C +:1061800003B118477047000013B5406B00F5805409 +:10619000D4F8A4381A681178042914D1017C022992 +:1061A00011D11979012312898B4013420BD101A916 +:1061B0004C3002F077FFD4F8A4480246019B2179C5 +:1061C000206800F0DFF902B010BD0000143002F0CA +:1061D000F9BE00004FF0FF33143002F0F3BE0000B0 +:1061E0004C3002F0CBBF00004FF0FF334C3002F0D8 +:1061F000C5BF0000143002F0C7BE00004FF0FF31F1 +:10620000143002F0C1BE00004C3002F097BF000015 +:106210004FF0FF324C3002F091BF00000020704779 +:1062200010B500F58054D4F8A4381A681178042900 +:1062300017D1017C022914D15979012352898B404D +:1062400013420ED1143002F059FE024648B1D4F880 +:10625000A4484FF4407361792068BDE8104000F015 +:106260007FB910BD406BFFF7DBBF00007047000037 +:106270007FB5124B012504260446036000230574F4 +:1062800000F1840243602946C0E902330C4B0290BE +:10629000143001934FF44073009602F00BFE094B4B +:1062A00004F69442294604F14C000294CDE90063BF +:1062B0004FF4407302F0D2FE04B070BDC89E0008D7 +:1062C00065620008896100080A68302383F3118839 +:1062D0000B790B3342F823004B79133342F8230038 +:1062E0008B7913B10B3342F8230000F58053C3F8C8 +:1062F000A41802230374002080F311887047000063 +:1063000038B5037F044613B190F85430ABB901257A +:10631000201D0221FFF730FF04F114006FF001018E +:10632000257700F0DDFC04F14C0084F854506FF048 +:106330000101BDE8384000F0D3BC38BD10B50121E3 +:1063400004460430FFF718FF0023237784F8543005 +:1063500010BD000038B504460025143002F0C2FD1F +:1063600004F14C00257702F091FE201D84F8545072 +:106370000121FFF701FF2046BDE83840FFF750BF7D +:1063800090F8803003F06003202B06D190F8812034 +:106390000023212A03D81F2A06D800207047222A6A +:1063A000FBD1C0E91D3303E0034A4267072282673D +:1063B000C3670120704700BFA822002037B500F551 +:1063C0008055D5F8A4381A68117804291AD1017CAF +:1063D000022917D11979012312898B40134211D157 +:1063E00000F14C04204602F011FF58B101A92046EB +:1063F00002F058FED5F8A4480246019B2179206896 +:1064000000F0C0F803B030BD01F10B03F0B550F857 +:10641000236085B004460D46FEB1302383F3118816 +:1064200004EB8507301D0821FFF7A6FEFB6806F187 +:106430004C005B691B681BB1019002F041FE0198A2 +:1064400003A902F02FFE024648B1039B29462046CD +:1064500000F098F8002383F3118805B0F0BDFB68C5 +:106460005A691268002AF5D01B8A013B1340F1D10A +:1064700004F18002EAE70000133138B550F82140FA +:10648000ECB1302383F3118804F58053D3F8A428AA +:106490001368527903EB8203DB689B695D6845B141 +:1064A00004216018FFF768FE294604F1140002F089 +:1064B0002FFD2046FFF7B4FE002383F3118838BD7B +:1064C0007047000001F050BD01234022002110B5AB +:1064D000044600F8303BFBF739FF0023C4E90133E1 +:1064E00010BD000010B53023044683F31188242228 +:1064F000416000210C30FBF729FF204601F056FDDA +:1065000002230020237080F3118810BD70B500EBCA +:106510008103054650690E461446DA6018B1102210 +:106520000021FBF713FFA06918B110220021FBF72F +:106530000DFF31462846BDE8704001F03DBE000029 +:1065400083682022002103F0011310B50446836004 +:106550001030FBF7FBFE2046BDE8104001F0B8BE4E +:10656000F0B4012500EB810447898D40E4683D4388 +:10657000A469458123600023A2606360F0BC01F040 +:10658000D5BE0000F0B4012500EB810407898D40E1 +:10659000E4683D436469058123600023A260636071 +:1065A000F0BC01F04BBF000070B50223002504468B +:1065B000242203702946C0F888500C3040F8045C4F +:1065C000FBF7C4FE204684F8705001F089FD636833 +:1065D0001B6823B129462046BDE87040184770BDAE +:1065E0000378052B10B504460AD080F88C300523BB +:1065F000037043681B680BB1042198470023A36014 +:1066000010BD00000178052906D190F88C20436860 +:1066100002701B6803B118477047000070B590F80E +:106620007030044613B1002380F8703004F180020A +:10663000204601F071FE63689B68B3B994F880301E +:1066400013F0600535D00021204602F063F90021E7 +:10665000204602F053F963681B6813B106212046F7 +:106660009847062384F8703070BD2046984700286C +:10667000E4D0B4F88630A26F9A4288BFA36794F939 +:106680008030A56F002B4FF0300380F20381002D86 +:1066900000F0F280092284F8702083F31188002131 +:1066A0002046D4E91D23FFF76DFF002383F31188F3 +:1066B000DAE794F8812003F07F0343EA022340F2F3 +:1066C0000232934200F0C58021D8B3F5807F48D0D4 +:1066D0000DD8012B3FD0022B00F09380002BB2D1BC +:1066E00004F1880262670222A267E367C1E7B3F59B +:1066F000817F00F09B80B3F5407FA4D194F8823075 +:10670000012BA0D1B4F8883043F0020332E0B3F596 +:10671000006F4DD017D8B3F5A06F31D0A3F5C0638B +:10672000012B90D86368204694F882205E6894F824 +:106730008310B4F88430B047002884D0436863677E +:106740000368A3671AE0B3F5106F36D040F6024233 +:1067500093427FF478AF5C4B63670223A367002307 +:10676000C3E794F88230012B7FF46DAFB4F8883022 +:1067700023F00203A4F88830C4E91D55E56778E7E3 +:10678000B4F88030B3F5A06F0ED194F88230204673 +:1067900084F88A3001F002FD63681B6813B101219F +:1067A00020469847032323700023C4E91D339CE748 +:1067B00004F18B0363670123C3E72378042B10D113 +:1067C000302383F311882046FFF7BAFE85F3118842 +:1067D0000321636884F88B5021701B680BB120463D +:1067E000984794F88230002BDED084F88B30042355 +:1067F000237063681B68002BD6D00221204698477F +:10680000D2E794F8843020461D0603F00F010AD524 +:1068100001F074FD012804D002287FF414AF2B4B43 +:106820009AE72B4B98E701F05BFDF3E794F8823091 +:10683000002B7FF408AF94F8843013F00F01B3D02D +:106840001A06204602D502F07DF8ADE702F06EF898 +:10685000AAE794F88230002B7FF4F5AE94F88430E8 +:1068600013F00F01A0D01B06204602D502F052F80B +:106870009AE702F043F897E7142284F8702083F334 +:1068800011882B462A4629462046FFF769FE85F3E4 +:106890001188E9E65DB1152284F8702083F3118830 +:1068A00000212046D4E91D23FFF75AFEFDE60B2206 +:1068B00084F8702083F311882B462A462946204607 +:1068C000FFF760FEE3E700BFF89E0008F09E0008B7 +:1068D000F49E000838B590F870300446002B3ED086 +:1068E000063BDAB20F2A34D80F2B32D8DFE803F098 +:1068F00037313108223231313131313131313737AD +:10690000856FB0F886309D4214D2C3681B8AB5FBF0 +:10691000F3F203FB12556DB9302383F311882B4634 +:106920002A462946FFF72EFE85F311880A2384F8AC +:1069300070300EE0142384F87030302383F3118814 +:10694000002320461A461946FFF70AFE002383F368 +:10695000118838BDC36F03B198470023E7E70021D2 +:10696000204601F0D7FF0021204601F0C7FF6368F1 +:106970001B6813B10621204698470623D7E700007D +:1069800010B590F870300446142B29D017D8062B78 +:1069900005D001D81BB110BD093B022BFBD800214B +:1069A000204601F0B7FF0021204601F0A7FF6368F1 +:1069B0001B6813B1062120469847062319E0152BC2 +:1069C000E9D10B2380F87030302383F31188002342 +:1069D0001A461946FFF7D6FD002383F31188DAE73C +:1069E000C3689B695B68002BD5D1C36F03B198471F +:1069F000002384F87030CEE70023826880F82430CA +:106A000083691B6899689142FBD25A6803604260AF +:106A100010605860704700000023826880F82430BE +:106A200083691B6899689142FBD85A680360426089 +:106A3000106058607047000008B50846302383F3A3 +:106A4000118891F82430032B05D0042B0DD02BB9DD +:106A500083F3118808BD8B6A00221A604FF0FF3360 +:106A60008362FFF7C9FF0023F2E7D1E90032136028 +:106A70005A60F3E7034610B51B68984203D09C6840 +:106A80008A689442F8D25A680B604A601160596073 +:106A900010BD0000FFF7B0BF064BD96881F8240095 +:106AA0001868026853601A600122D86080F82420B8 +:106AB000F9F7A8BCC84600200C4B30B5DD684B1C6C +:106AC00087B004460FD02B46094A684600F09CF96F +:106AD0002046FFF7E1FF009B13B1684600F09EF9E6 +:106AE000A86A07B030BDFFF7D7FFF9E7C846002016 +:106AF000396A0008044B1A68DB6890689B68984202 +:106B000094BF002001207047C8460020094B10B5F3 +:106B10001C68D868226853601A600122DC6084F81F +:106B20002420FFF779FF01462046BDE81040F9F721 +:106B300069BC00BFC8460020044B1A68DB68926835 +:106B40009B689A4201D9FFF7E1BF7047C846002011 +:106B500038B50123084C00252370656002F0F0FB76 +:106B600002F016FC0549064802F0ECFC02232370F3 +:106B700085F3118838BD00BF70490020009F0008D0 +:106B8000C846002000F080B9034A516853685B1A78 +:106B90009842FBD8704700BF001000E08B604B6349 +:106BA0000023CA6100F128020B6302230A618B846F +:106BB0000123886181F8263001F11003C26A4A611D +:106BC0001360C36201F12C030846CB6270470000DA +:106BD000D0E90131026841F8183CA1F19C03383931 +:106BE000CB60036941F8243C436941F8203C034BE6 +:106BF00041F8043CC3680248FFF7D0BF1D040008F9 +:106C0000C846002008B5FFF7E3FFBDE80840FFF7DE +:106C100041BF000038B50E4BDC6804F12C05A062C2 +:106C2000E06AA8420FD194F826303BB994F8253099 +:106C30009B0702BFD4E9043213605A600F20BDE8FD +:106C40003840FFF729BF0368E362FFF723FFE7E758 +:106C5000C8460020302383F31188FFF7DBBF000014 +:106C600008B50146302383F311880820FFF724FF7D +:106C7000002383F3118808BD054BDB6821B1036055 +:106C800098620320FFF718BF4FF0FF30704700BF36 +:106C9000C846002003682BB10022026018469962A2 +:106CA000FFF7F8BE70470000064BDB6839B1426859 +:106CB00018605A60136043600420FFF7FDBE4FF078 +:106CC000FF307047C84600200368984206D01A6813 +:106CD0000260506018469962FFF7DCBE7047000002 +:106CE00038B504460D462068844200D138BD03689B +:106CF00023605C608562FFF7CDFEF4E7036810B5A2 +:106D00009C68A2420CD85C688A600B604C60216071 +:106D1000596099688A1A9A604FF0FF33836010BDFA +:106D2000121B1B68ECE700000A2938BF0A2170B566 +:106D300004460D460A26601902F0FCFA02F0E4FA55 +:106D4000041BA54203D8751C04462E46F3E70A2E01 +:106D500004D90120BDE8704002F0BCBC70BD000049 +:106D6000F8B5144B0D460A2A4FF00A07D96103F112 +:106D70001001826038BF0A2241601969144601601F +:106D800048601861A81802F0C5FA02F0BDFA431B6A +:106D90000646A34206D37C1C28192746354602F036 +:106DA000C9FAF2E70A2F04D90120BDE8F84002F041 +:106DB00091BCF8BDC8460020F8B506460D4602F065 +:106DC000A3FA0F4A134653F8107F9F4206D12A4672 +:106DD00001463046BDE8F840FFF7C2BFD169BB6845 +:106DE000441A2C1928BF2C46A34202D92946FFF782 +:106DF0009BFF224631460348BDE8F840FFF77EBFBF +:106E0000C8460020D8460020C0E90323002310B460 +:106E10005DF8044B4361FFF7CFBF000010B5194C7C +:106E2000236998420DD08168D0E9003213605A601E +:106E30009A680A449A60002303604FF0FF33A3610D +:106E400010BD0268234643F8102F536000220260F1 +:106E500022699A4203D1BDE8104002F065BA9368F6 +:106E600081680B44936002F04FFA2269E1699268ED +:106E7000441AA242E4D91144BDE81040091AFFF7B0 +:106E800053BF00BFC84600202DE9F047DFF8BC80A3 +:106E900008F110072C4ED8F8105002F035FAD8F847 +:106EA0001C40AA68031B9A423ED814444FF00009C4 +:106EB000D5E90032C8F81C4013605A60C5F800904C +:106EC000D8F81030B34201D102F02EFA89F31188BC +:106ED000D5E9033128469847302383F311886B693D +:106EE000002BD8D002F010FA6A69A0EB04098246A0 +:106EF0004A450DD2022002F0EDFB0022D8F81030F6 +:106F0000B34208D151462846BDE8F047FFF728BFF5 +:106F1000121A2244F2E712EB09092946384638BF13 +:106F20004A46FFF7EBFEB5E7D8F81030B34208D079 +:106F30001444C8F81C00211AA960BDE8F047FFF707 +:106F4000F3BEBDE8F08700BFD8460020C846002049 +:106F500038B502F0D9F9054AD2E90845031B1819DA +:106F600045F10001C2E9080138BD00BFC846002054 +:106F700010B560B9074804790368053C9B6818BFE1 +:106F80000124984708B144F00404204610BD0124B0 +:106F9000FBE700BF2C370020FFF7EABF2DE9F047E1 +:106FA000884617469A460446B0B90D4E3579052DE8 +:106FB00005D003240DE0013D15F0FF050ED0326829 +:106FC000534639463046D2F814904246C847002806 +:106FD000F1D12046BDE8F0870424FAE70124F8E760 +:106FE0002C3700202DE9F047884617469A4604467C +:106FF000B0B90D4E3579052D05D003240DE0013DC6 +:1070000015F0FF050ED03268534639463046D2F8A7 +:1070100018904246C8470028F1D12046BDE8F087C5 +:107020000424FAE70124F8E72C37002037B50C4692 +:10703000154670B951B101290BD10748694603685B +:107040001B6A984710B9019B04462B60204603B089 +:1070500030BD0424FAE700BF2C3700200020704721 +:10706000FEE70000704700004FF0FF30704700005F +:107070004B6843608B688360CB68C3600B69436176 +:107080004B6903628B6943620B68036070470000C1 +:1070900008B53C4B40F2FF713B48D3F888200A43C7 +:1070A000C3F88820D3F8882022F4FF6222F0070278 +:1070B000C3F88820D3F88820D3F8E0200A43C3F827 +:1070C000E020D3F808210A43C3F808212F4AD3F857 +:1070D00008311146FFF7CCFF00F5806002F11C017A +:1070E000FFF7C6FF00F5806002F13801FFF7C0FF2F +:1070F00000F5806002F15401FFF7BAFF00F58060EF +:1071000002F17001FFF7B4FF00F5806002F18C011D +:10711000FFF7AEFF00F5806002F1A801FFF7A8FFBE +:1071200000F5806002F1C401FFF7A2FF00F5806066 +:1071300002F1E001FFF79CFF00F5806002F1FC0125 +:10714000FFF796FF02F58C7100F58060FFF790FF66 +:1071500001F090FC0E4BD3F8902242F00102C3F8EC +:107160009022D3F8942242F00102C3F8942205221F +:10717000C3F898204FF06052C3F89C20054AC3F82A +:10718000A02008BD0044025800000258149F0008C7 +:1071900000ED00E01F00080308B501F077FEFFF7DF +:1071A000D7FC104BD3F8DC2042F04002C3F8DC20BF +:1071B000D3F8042122F04002C3F80421D3F80431AB +:1071C000094B1A6842F008021A601A6842F0040279 +:1071D0001A6000F07DFD00F035FBBDE8084000F0CE +:1071E000B5B800BF0044025800180248012070479B +:1071F000002070477047000002290CD0032904D0FA +:107200000129074818BF00207047032A05D8054800 +:1072100000EBC2007047044870470020704700BF71 +:1072200014A10008B8220020C8A0000870B59AB0C8 +:1072300005460846144601A900F0C2F801A8FBF76C +:107240007DF8431C0022C6B25B001046C5E900343D +:1072500023700323023404F8013C01ABD1B20234A1 +:107260008E4201D81AB070BD13F8011B013204F828 +:10727000010C04F8021CF1E708B5302383F31188F0 +:107280000348FFF79BF8002383F3118808BD00BF74 +:107290007849002090F8803003F01F02012A07D1BE +:1072A00090F881200B2A03D10023C0E91D3315E09B +:1072B00003F06003202B08D1B0F884302BB990F88C +:1072C0008120212A03D81F2A04D8FFF759B8222A7F +:1072D000EBD0FAE7034A426707228267C3670120BF +:1072E000704700BFAF22002007B5052917D8DFE897 +:1072F00001F0191603191920302383F31188104A5D +:1073000001210190FFF702F9019802210D4AFFF7D0 +:10731000FDF80D48FFF71EF8002383F3118803B032 +:107320005DF804FB302383F311880748FEF7E8FF7C +:10733000F2E7302383F311880348FEF7FFFFEBE702 +:1073400068A000088CA000087849002038B50C4DD2 +:107350000C4C2A460C4904F10800FFF767FF05F1C1 +:10736000CA0204F110000949FFF760FF05F5CA726F +:1073700004F118000649BDE83840FFF757BF00BFC9 +:1073800050620020B822002048A0000852A0000847 +:107390005DA0000870B5044608460D46FAF7CEFF1A +:1073A000C6B22046013403780BB9184670BD324688 +:1073B0002946FAF7AFFF0028F3D10120F6E70000D5 +:1073C0002DE9F84F05460C46FAF7B8FF2C49C6B22E +:1073D0002846FFF7DFFF08B10236F6B229492846F2 +:1073E000FFF7D8FF08B11036F6B2632E0DD8DFF8DC +:1073F0009080DFF89090244FDFF894A0DFF894B0ED +:107400002E7846B92670BDE8F88F29462046BDE89B +:10741000F84FF9F7FBBB252E2ED10722414628460F +:10742000FAF778FF70B9DBF800300735093444F813 +:10743000093CDBF8043044F8053C9BF8083004F8BC +:10744000013CDDE7082249462846FAF763FF98B970 +:10745000A21C0E4B197802320909C95D02F8041CFE +:1074600013F8011B01F00F015345C95D02F8031C1D +:10747000F0D118340835C3E7013504F8016BBFE7D4 +:1074800034A100085DA0000846A1000800E8F11F33 +:107490000CE8F11F3CA10008BFF34F8F044B1A69A1 +:1074A0005107FCD1D3F810215207F8D1704700BF23 +:1074B0000020005208B50D4B1B78ABB9FFF7ECFF6D +:1074C0000B4BDA68D10704D50A4A5A6002F18832B8 +:1074D0005A60D3F80C21D20706D5064AC3F8042116 +:1074E00002F18832C3F8042108BD00BFAE64002059 +:1074F000002000522301674508B5114B1B78F3B9F2 +:10750000104B1A69510703D5DA6842F04002DA607D +:10751000D3F81021520705D5D3F80C2142F04002D0 +:10752000C3F80C21FFF7B8FF064BDA6842F00102FE +:10753000DA60D3F80C2142F00102C3F80C2108BD37 +:10754000AE640020002000520F289ABF00F5806032 +:1075500040040020704700004FF4003070470000E6 +:10756000102070470F2808B50BD8FFF7EDFF00F586 +:1075700000330268013204D104308342F9D1012082 +:1075800008BD0020FCE700000F2838B505463FD8AD +:10759000FFF782FF1F4CFFF78DFF4FF0FF330728E7 +:1075A0006361C4F814311DD82361FFF775FF03022E +:1075B00043F02403E360E36843F08003E36023695E +:1075C0005A07FCD42846FFF767FFFFF7BDFF4FF4CB +:1075D000003100F0B7FA2846FFF78EFFBDE83840CB +:1075E000FFF7C0BFC4F81031FFF756FFA0F1080342 +:1075F0001B0243F02403C4F80C31D4F80C3143F0DF +:107600008003C4F80C31D4F810315B07FBD4D9E700 +:10761000002038BD002000522DE9F84F05460C46E9 +:10762000104645EA0203DE0602D00020BDE8F88FCE +:1076300020F01F00DFF8BCB0DFF8BCA0FFF73AFF76 +:1076400004EB0008444503D10120FFF755FFEDE7A7 +:10765000202229462046F9F779F810B92035203440 +:10766000F0E72B4605F120021F68791CDDD10433B9 +:107670009A42F9D105F178431B481C4EB3F5801F9F +:107680001B4B38BF184603F1F80332BFD946D14629 +:107690001E46FFF701FF0760A5EB040C336804F1F9 +:1076A0001C0143F002033360231FD9F8007017F068 +:1076B0000507FAD153F8042F8B424CF80320F4D17C +:1076C000BFF34F8FFFF7E8FE4FF0FF332022214634 +:1076D00003602846336823F002033360F9F736F875 +:1076E0000028BBD03846B0E7142100520C200052CD +:1076F00014200052102000521021005210B5084CE6 +:10770000237828B11BB9FFF7D5FE0123237010BDE4 +:10771000002BFCD02070BDE81040FFF7EDBE00BF8D +:10772000AE6400202DE9F04F0D4685B0814658B17A +:1077300011F00D0614BF2022082211F00803019356 +:1077400004D0431E034269D0002435E0002E37D018 +:1077500009F11F0121F01F094FF00108314F05F019 +:107760000403DFF8CCA005EA080BBBF1000F32D010 +:107770007869C0072FD408F101080C37B8F1060F5B +:10778000F3D19EB9284D4946A819019201F022FE75 +:107790000446002839D12036019AA02EF3D149465B +:1077A00001F018FE044600282FD1019A49461F48CF +:1077B00001F010FE044660BB204605B0BDE8F08F26 +:1077C0000029C9D101462846029201F003FE044671 +:1077D000D8B9029AC0E713B178694107CBD5AC0795 +:1077E00002D578698007C6D5019911B1786901077A +:1077F000C1D549460AEB4810CDE9022301F0EAFD64 +:107800000446DDE902230028B5D04A46002120467F +:1078100001E04A460021FAF799FDCDE70246002E25 +:1078200096D199E758A10008F0640020B0640020C8 +:10783000D06400200021FFF775BF00000121FFF791 +:1078400071BF000070B5144D0124144E40F2FF3298 +:1078500000210120FAF77AFD06EB441001342A6971 +:1078600055F80C1F01F0A2FD062CF5D137254FF479 +:10787000C0542046FFF7E2FF014628B122460848DF +:10788000BDE8704001F092BDC4EBC404013D4FEA75 +:10789000D404EED170BD00BF58A10008D064002010 +:1078A000B06400200421FFF73DBF00004843FFF70C +:1078B000C1BF000008B101F0FFBD70470846FFF7E7 +:1078C000B9BF0000B0F5805F10B5044607D8FFF7D8 +:1078D000E9FF28B92046BDE81040FFF7ABBF002004 +:1078E00010BD0000FFF7E6BF70B5AAB140EA010382 +:1078F00013F01F030FD1094C0144A5686D0706D58D +:107900002568A84203D366683544A94204D90333E5 +:107910000C34122BF1D10022104670BD58A1000882 +:1079200008B501F0DFFE034AD2E90032C01842EB8D +:10793000010108BD90650020434BD3E900232DE9E8 +:10794000F34113437CD0FFF7EBFF404A00230027AD +:10795000F8F772FD06460D463D4A0023F8F76CFD28 +:107960000023144630462946394AF8F765FD4FF49E +:1079700061613C23ADF80170B4FBF1F5B4FBF3F6A3 +:1079800001FB154103FB16464624B1FBF3F1314BD5 +:10799000F6B28DF8004098423CD84FF0640C4FF49A +:1079A000C87EA30704F26C7225D1B2FBFCF30CFB7A +:1079B000132313BBB2FBFEF30EFB1322B2FA82F3C6 +:1079C0005B0903F26D18621C8045D2B217D90FB162 +:1079D0008DF800400022204C4FF00C0C17460CFB99 +:1079E0000343D4B2013213F804C084450CD8A0EB91 +:1079F0000C000127F5E70023E3E70123E1E7A0EB13 +:107A0000080014460127CCE70FB18DF80140431C54 +:107A10008DF802309DF80100431C9DF8000050389D +:107A2000400640EA43509DF8023040EA034040EAF5 +:107A3000560040EAC52040EA411002B0BDE8F0819E +:107A40004FF40410F9E700BF9065002040420F009A +:107A50008051010090230B00A0A100080244074BB5 +:107A6000D2B210B5904200D110BD441C00B253F800 +:107A7000200041F8040BE0B2F4E700BF504000588A +:107A80000E4B30B51C6F240405D41C6F1C671C6F93 +:107A900044F400441C670A4C02442368D2B243F405 +:107AA00080732360074B904200D130BD441C51F8D5 +:107AB000045B00B243F82050E0B2F4E700440258FF +:107AC000004802585040005807B5012201A9002083 +:107AD000FFF7C4FF019803B05DF804FB13B504463B +:107AE000FFF7F2FFA04205D0012201A90020019476 +:107AF000FFF7C6FF02B010BD10B56424013C4FF47F +:107B00007A70FFF7ADF814F0FF04F7D10C4B4FF487 +:107B1000801214249A61A3F580634FF08052A3F57C +:107B20004063C3F8182C4FF400529A61013C4FF4A3 +:107B30007A70FFF795F814F0FF04F7D110BD00BF7D +:107B4000001802580144BFF34F8F064B884204D3FC +:107B5000BFF34F8FBFF36F8F7047C3F85C022030C5 +:107B6000F4E700BF00ED00E00144BFF34F8F064B88 +:107B7000884204D3BFF34F8FBFF36F8F7047C3F8B2 +:107B800070022030F4E700BF00ED00E070B505465C +:107B900016460C4601201021FFF788FE2860467328 +:107BA0003CB1204636B1FFF77DFE2B68186000B16E +:107BB0009C6070BDFFF742FEF7E70000F8B50F4686 +:107BC0001546044648B905F11F010126386821F021 +:107BD0001F01FFF7B7FF3046F8BD427B29463868E2 +:107BE000FFF782FE06460028EDD13B686360A3687C +:107BF000AB4210D213B12068FFF75CFE637B2846CE +:107C00002BB1FFF74FFE206020B9A060E3E7FFF73C +:107C100015FEF8E7A560206805F11F01012621F097 +:107C20001F013860FFF78EFF2673D4E710B50446B6 +:107C300040B10068884205D1606808B1FAF760FB7E +:107C40000023237310BD0000F8B50F461446054607 +:107C500048B904F11F010126386821F01F01FFF720 +:107C600083FF3046F8BD427B21463868FFF73CFE73 +:107C700006460028EDD1AB68A34210D213B12868A4 +:107C8000FFF718FE6B7B20462BB1FFF70BFE286039 +:107C900020B9A860E5E7FFF7D1FDF8E7AC603968E7 +:107CA00019B122462868FAF72BFB286804F11F0156 +:107CB000012621F01F013860FFF756FF2E73D0E731 +:107CC00020B103688B4204BF002303737047000098 +:107CD000034B1A681AB9034AD2F8D0241A607047C5 +:107CE000986500200040025808B5FFF7F1FF024BED +:107CF0001868C0F3806008BD98650020EFF3098321 +:107D0000054968334A6B22F001024A6383F309880C +:107D1000002383F31188704700EF00E0302080F3E8 +:107D2000118862B60D4B0E4AD96821F4E06109044E +:107D3000090C0A430B49DA60D3F8FC2042F0807248 +:107D4000C3F8FC20084AC2F8B01F116841F00101D5 +:107D500011602022DA7783F82200704700ED00E0FE +:107D60000003FA0555CEACC5001000E0302310B575 +:107D700083F311880E4B5B6813F4006314D0F1EEAB +:107D8000103AEFF309844FF08073683CE361094BCC +:107D9000DB6B236684F30988FEF7ACFE10B1064B5B +:107DA000A36110BD054BFBE783F31188F9E700BF22 +:107DB00000ED00E000EF00E02F04000832040008AE +:107DC00070B5BFF34F8FBFF36F8F1A4A0021C2F80F +:107DD0005012BFF34F8FBFF36F8F536943F40033DB +:107DE0005361BFF34F8FBFF36F8FC2F88410BFF39F +:107DF0004F8FD2F8803043F6E074C3F3C900C3F369 +:107E00004E335B0103EA0406014646EA81750139F7 +:107E1000C2F86052F9D2203B13F1200FF2D1BFF328 +:107E20004F8F536943F480335361BFF34F8FBFF3D8 +:107E30006F8F70BD00ED00E0FEE70000214B22488F +:107E4000224A70B5904237D3214BC11EDA1C121A58 +:107E500022F003028B4238BF00220021FAF776FAA3 +:107E60001C4A0023C2F88430BFF34F8FD2F8803011 +:107E700043F6E074C3F3C900C3F34E335B0103EA76 +:107E80000406014646EA81750139C2F86C52F9D2FE +:107E9000203B13F1200FF2D1BFF34F8FBFF36F8F51 +:107EA000BFF34F8FBFF36F8F0023C2F85032BFF381 +:107EB0004F8FBFF36F8F70BD53F8041B40F8041B46 +:107EC000C0E700BF08A3000898670020986700205B +:107ED0009867002000ED00E0074BD3F8D81021EAA6 +:107EE0000001C3F8D810D3F8002122EA0002C3F839 +:107EF0000021D3F8003170470044025870B5D0E932 +:107F0000244300224FF0FF359E6804EB42135101D9 +:107F1000D3F80009002805DAD3F8000940F08040C2 +:107F2000C3F80009D3F8000B002805DAD3F8000BDA +:107F300040F08040C3F8000B013263189642C3F84A +:107F40000859C3F8085BE0D24FF00113C4F81C389D +:107F500070BD0000890141F02001016103699B06A9 +:107F6000FCD41220FEF710BE10B50A4C2046FEF7D6 +:107F7000ABFA094BC4F89030084BC4F89430084C65 +:107F80002046FEF7A1FA074BC4F89030064BC4F820 +:107F9000943010BD9C65002000000840DCA1000862 +:107FA0003866002000000440E8A1000870B503789E +:107FB0000546012B5CD1434BD0F89040984258D1F4 +:107FC000414B0E216520D3F8D82042F00062C3F85F +:107FD000D820D3F8002142F00062C3F80021D3F882 +:107FE0000021D3F8802042F00062C3F88020D3F84B +:107FF000802022F00062C3F88020D3F88030FDF7A3 +:10800000A7FC324BE360324BC4F800380023D5F8AC +:108010009060C4F8003EC02323604FF40413A363B0 +:108020003369002BFCDA01230C203361FEF7ACFD31 +:108030003369DB07FCD41220FEF7A6FD3369002B61 +:10804000FCDA00262846A660FFF758FF6B68C4F8E4 +:108050001068DB68C4F81468C4F81C6883BB1D4B47 +:10806000A3614FF0FF336361A36843F00103A36092 +:1080700070BD194B9842C9D1134B4FF08060D3F8B3 +:10808000D82042F00072C3F8D820D3F8002142F083 +:108090000072C3F80021D3F80021D3F8802042F009 +:1080A0000072C3F88020D3F8802022F00072C3F859 +:1080B0008020D3F88030FFF70FFF0E214D209EE780 +:1080C000064BCDE79C650020004402584014004058 +:1080D00003002002003C30C038660020083C30C05D +:1080E000F8B5D0F89040054600214FF000662046D4 +:1080F000FFF730FFD5F8941000234FF001128F687E +:108100004FF0FF30C4F83438C4F81C2804EB431295 +:1081100001339F42C2F80069C2F8006BC2F8080937 +:10812000C2F8080BF2D20B68D5F89020C5F8983049 +:10813000636210231361166916F01006FBD112203A +:10814000FEF722FDD4F8003823F4FE63C4F80038AB +:10815000A36943F4402343F01003A3610923C4F847 +:108160001038C4F814380B4BEB604FF0C043C4F820 +:10817000103B094BC4F8003BC4F81069C4F800393F +:10818000D5F8983003F1100243F48013C5F8982015 +:10819000A362F8BDB8A1000840800010D0F890207C +:1081A00090F88A10D2F8003823F4FE6343EA0113F2 +:1081B000C2F80038704700002DE9F84300EB810356 +:1081C000D0F890500C468046DA680FFA81F94801E1 +:1081D000166806F00306731E022B05EB41134FF0E1 +:1081E000000194BFB604384EC3F8101B4FF00101D4 +:1081F00004F1100398BF06F1805601FA03F3916968 +:1082000098BF06F5004600293AD0578A04F1580174 +:10821000374349016F50D5F81C180B430021C5F8AE +:108220001C382B180127C3F81019A7405369611E89 +:108230009BB3138A928B9B08012A88BF5343D8F8BB +:108240009820981842EA034301F140022146C8F8F9 +:108250009800284605EB82025360FFF77BFE08EB8F +:108260008900C3681B8A43EA845348341E4364016F +:108270002E51D5F81C381F43C5F81C78BDE8F8838B +:1082800005EB4917D7F8001B21F40041C7F8001B84 +:10829000D5F81C1821EA0303C0E704F13F030B4A99 +:1082A0002846214605EB83035A60FFF753FE05EB92 +:1082B0004910D0F8003923F40043C0F80039D5F84C +:1082C0001C3823EA0707D7E70080001000040002EB +:1082D000D0F894201268C0F89820FFF70FBE000075 +:1082E0005831D0F8903049015B5813F4004004D065 +:1082F00013F4001F0CBF0220012070474831D0F852 +:10830000903049015B5813F4004004D013F4001F6F +:108310000CBF02200120704700EB8101CB68196A75 +:108320000B6813604B6853607047000000EB8103DB +:1083300030B5DD68AA691368D36019B9402B84BFD2 +:10834000402313606B8A1468D0F890201C4402EB21 +:108350004110013C09B2B4FBF3F46343033323F04F +:10836000030343EAC44343F0C043C0F8103B2B6807 +:1083700003F00303012B0ED1D2F8083802EB4110B1 +:1083800013F4807FD0F8003B14BF43F0805343F0D8 +:108390000053C0F8003B02EB4112D2F8003B43F01F +:1083A0000443C2F8003B30BD2DE9F041D0F89060A5 +:1083B00005460C4606EB4113D3F8087B3A07C3F891 +:1083C000087B08D5D6F814381B0704D500EB8103C9 +:1083D000DB685B689847FA071FD5D6F81438DB07C7 +:1083E0001BD505EB8403D968CCB98B69488A5A68D8 +:1083F000B2FBF0F600FB16228AB91868DA689042E0 +:108400000DD2121AC3E90024302383F311882146C8 +:108410002846FFF78BFF84F31188BDE8F081012324 +:1084200003FA04F26B8923EA02036B81CB68002B09 +:10843000F3D021462846BDE8F041184700EB810300 +:108440004A0170B5DD68D0F890306C692668E66046 +:1084500056BB1A444FF40020C2F810092A6802F0F3 +:108460000302012A0AB20ED1D3F8080803EB421422 +:1084700010F4807FD4F8000914BF40F0805040F021 +:108480000050C4F8000903EB4212D2F8000940F092 +:108490000440C2F800090122D3F8340802FA01F1BD +:1084A0000143C3F8341870BD19B9402E84BF402071 +:1084B000206020681A442E8A8419013CB4FBF6F42B +:1084C00040EAC44040F00050C6E700002DE9F84300 +:1084D000D0F8906005460C464F0106EB4113D3F8E7 +:1084E000088918F0010FC3F808891CD0D6F8103895 +:1084F000DB0718D500EB8103D3F80CC0DCF814308F +:10850000D3F800E0DA68964530D2A2EB0E024FF0C5 +:1085100000091A60C3F80490302383F31188FFF731 +:108520008DFF89F3118818F0800F1DD0D6F83438EC +:108530000126A640334217D005EB84030134D5F859 +:108540009050D3F80CC0E4B22F44DCF8142005EBB3 +:108550000434D2F800E05168714514D3D5F83438AA +:1085600023EA0606C5F83468BDE8F883012303FA58 +:1085700001F2038923EA02030381DCF80830002BAF +:10858000D1D09847CFE7AEEB0103BCF8100083428F +:1085900028BF0346D7F8180980B2B3EB800FE3D8A1 +:1085A0009068A0F1040959F8048FC4F80080A0EB8A +:1085B00009089844B8F1040FF5D818440B449060AA +:1085C0005360C8E72DE9F84FD0F8905004466E6923 +:1085D000AB691E4016F480586E6103D0BDE8F84FB9 +:1085E000FDF7E2BF002E12DAD5F8003E9B0705D05A +:1085F000D5F8003E23F00303C5F8003ED5F8043853 +:10860000204623F00103C5F80438FDF7FBFF3705CA +:1086100005D52046FFF772FC2046FDF7E1FFB004C8 +:108620000CD5D5F8083813F0060FEB6823F4705317 +:108630000CBF43F4105343F4A053EB6031071BD538 +:108640006368DB681BB9AB6923F00803AB6123786F +:10865000052B0CD1D5F8003E9A0705D0D5F8003E81 +:1086600023F00303C5F8003E2046FDF7CBFF636807 +:10867000DB680BB120469847F30200F1BA80B702DD +:1086800026D5D4F8909000274FF0010A09EB471245 +:10869000D2F8003B03F44023B3F5802F11D1D2F878 +:1086A000003B002B0DDA62890AFA07F322EA030382 +:1086B000638104EB8703DB68DB6813B1394620462E +:1086C00098470137D4F89430FFB29B689F42DDD9B8 +:1086D000F00619D5D4F89000026AC2F30A1702F026 +:1086E0000F0302F4F012B2F5802F00F0CA80B2F549 +:1086F000402F09D104EB8303002200F58050DB6892 +:108700001B6A974240F0B0803003D5F8185835D531 +:10871000E90303D500212046FFF746FEAA0303D54F +:1087200001212046FFF740FE6B0303D502212046BE +:10873000FFF73AFE2F0303D503212046FFF734FE4F +:10874000E80203D504212046FFF72EFEA90203D537 +:1087500005212046FFF728FE6A0203D506212046A0 +:10876000FFF722FE2B0203D507212046FFF71CFE50 +:10877000EF0103D508212046FFF716FE700340F1F4 +:10878000A780E90703D500212046FFF79FFEAA072F +:1087900003D501212046FFF799FE6B0703D502217F +:1087A0002046FFF793FE2F0703D503212046FFF74E +:1087B0008DFEEE0603D504212046FFF787FEA806AE +:1087C00003D505212046FFF781FE690603D5062162 +:1087D0002046FFF77BFE2A0603D507212046FFF738 +:1087E00075FEEB0574D520460821BDE8F84FFFF76C +:1087F0006DBED4F890904FF0000B4FF0010AD4F802 +:1088000094305FFA8BF79B689F423FF638AF09EBD5 +:108810004713D3F8002902F44022B2F5802F20D16B +:10882000D3F80029002A1CDAD3F8002942F090423C +:10883000C3F80029D3F80029002AFBDB3946D4F815 +:108840009000FFF787FB22890AFA07F322EA030365 +:10885000238104EB8703DB689B6813B1394620460C +:1088600098470BF1010BCAE7910701D1D0F80080BE +:10887000072A02F101029CBF03F8018B4FEA182876 +:108880003FE704EB830300F58050DA68D2F818C0A4 +:10889000DCF80820DCE9001CA1EB0C0C00218F4265 +:1088A00008D1DB689B699A683A449A605A683A44EE +:1088B0005A6029E711F0030F01D1D0F800808C45F0 +:1088C00001F1010184BF02F8018B4FEA1828E6E7A5 +:1088D000BDE8F88F08B50348FFF774FEBDE808400F +:1088E000FFF744BA9C65002008B50348FFF76AFE0D +:1088F000BDE80840FFF73ABA38660020D0F890305B +:1089000003EB4111D1F8003B43F40013C1F8003BE5 +:1089100070470000D0F8903003EB4111D1F80039D6 +:1089200043F40013C1F8003970470000D0F89030CC +:1089300003EB4111D1F8003B23F40013C1F8003BD5 +:1089400070470000D0F8903003EB4111D1F80039A6 +:1089500023F40013C1F8003970470000064BD3F828 +:10896000DC200243C3F8DC20D3F804211043C3F811 +:108970000401D3F8043170470044025808B53C4B59 +:108980004FF0FF31D3F8802062F00042C3F880201E +:10899000D3F8802002F00042C3F88020D3F8802072 +:1089A000D3F88420C3F88410D3F884200022C3F8BD +:1089B0008420D3F88400D86F40F0FF4040F4FF00DB +:1089C00040F4DF4040F07F00D867D86F20F0FF40D0 +:1089D00020F4FF0020F4DF4020F07F00D867D86F3C +:1089E000D3F888006FEA40506FEA5050C3F888000F +:1089F000D3F88800C0F30A00C3F88800D3F88800D1 +:108A0000D3F89000C3F89010D3F89000C3F89020EA +:108A1000D3F89000D3F89400C3F89410D3F89400DE +:108A2000C3F89420D3F89400D3F89800C3F89810B2 +:108A3000D3F89800C3F89820D3F89800D3F88C00A6 +:108A4000C3F88C10D3F88C00C3F88C20D3F88C00BA +:108A5000D3F89C00C3F89C10D3F89C10C3F89C205A +:108A6000D3F89C30FCF722FABDE8084000F0D6B9F4 +:108A70000044025808B50122534BC3F80821534B58 +:108A8000D3F8F42042F00202C3F8F420D3F81C21FA +:108A900042F00202C3F81C210222D3F81C314C4BD5 +:108AA000DA605A689104FCD54A4A1A6001229A6039 +:108AB000494ADA6000221A614FF440429A61444BFD +:108AC0009A699204FCD51A6842F480721A603F4B8E +:108AD0001A6F12F4407F04D04FF480321A670022DC +:108AE0001A671A6842F001021A60384B1A68500778 +:108AF000FCD500221A611A6912F03802FBD101215B +:108B000019604FF0804159605A67344ADA62344A3A +:108B10001A611A6842F480321A602C4B1A68910369 +:108B2000FCD51A6842F480521A601A689204FCD587 +:108B30002C4A2D499A6200225A63196301F57C017F +:108B4000DA6301F2E71199635A64284A1A64284AE1 +:108B5000DA621A6842F0A8521A601C4B1A6802F0D6 +:108B60002852B2F1285FF9D148229A614FF4886205 +:108B7000DA6140221A621F4ADA641F4A1A651F4AE4 +:108B80005A651F4A9A6532231E4A1360136803F020 +:108B90000F03022BFAD10D4A136943F0030313614B +:108BA000136903F03803182BFAD14FF00050FFF788 +:108BB000D5FE4FF08040FFF7D1FE4FF00040BDE8FA +:108BC0000840FFF7CBBE00BF0080005100440258B0 +:108BD0000048025800C000F0020000010000FF0140 +:108BE000008890082220400063020901470E050812 +:108BF000DD0BBF0120000020000001100910E00083 +:108C000000010110002000524FF0B04208B5D2F828 +:108C1000883003F00103C2F8883023B1044A136896 +:108C20000BB150689847BDE80840FFF79FB800BFF8 +:108C3000146700204FF0B04208B5D2F8883003F036 +:108C40000203C2F8883023B1044A93680BB1D0689C +:108C50009847BDE80840FFF789B800BF14670020B7 +:108C60004FF0B04208B5D2F8883003F00403C2F8E0 +:108C7000883023B1044A13690BB150699847BDE8A5 +:108C80000840FFF773B800BF146700204FF0B042F0 +:108C900008B5D2F8883003F00803C2F8883023B151 +:108CA000044A93690BB1D0699847BDE80840FFF7C3 +:108CB0005DB800BF146700204FF0B04208B5D2F88D +:108CC000883003F01003C2F8883023B1044A136AD5 +:108CD0000BB1506A9847BDE80840FFF747B800BF9E +:108CE000146700204FF0B04310B5D3F8884004F467 +:108CF0007872C3F88820A30604D5124A936A0BB190 +:108D0000D06A9847600604D50E4A136B0BB1506BBE +:108D10009847210604D50B4A936B0BB1D06B98474B +:108D2000E20504D5074A136C0BB1506C9847A305B4 +:108D300004D5044A936C0BB1D06C9847BDE8104041 +:108D4000FFF714B8146700204FF0B04310B5D3F804 +:108D5000884004F47C42C3F88820620504D5164A92 +:108D6000136D0BB1506D9847230504D5124A936DCE +:108D70000BB1D06D9847E00404D50F4A136E0BB1C8 +:108D8000506E9847A10404D50B4A936E0BB1D06E78 +:108D90009847620404D5084A136F0BB1506F984787 +:108DA000230404D5044A936F0BB1D06F9847BDE8F4 +:108DB0001040FEF7DBBF00BF1467002008B5034872 +:108DC000FCF73CFCBDE80840FEF7D0BF2C37002084 +:108DD00008B50348FCF736FDBDE80840FEF7C6BFFE +:108DE0008439002008B50348FCF72CFDBDE8084095 +:108DF000FEF7BCBFF039002008B50348FCF722FDA0 +:108E0000BDE80840FEF7B2BF5C3A002008B500F0AC +:108E1000BDFCBDE80840FEF7A9BF0000062108B56B +:108E20000846FCF795FD06210720FCF791FD062179 +:108E30000820FCF78DFD06210920FCF789FD06219D +:108E40000A20FCF785FD06211720FCF781FD06218D +:108E50002820FCF77DFD09217A20FCF779FD092106 +:108E60007C20FCF775FD07213220FCF771FD0C21F9 +:108E70002720FCF76DFD0C213520FCF769FD0C2146 +:108E80005220BDE80840FCF763BD000008B5FFF7BD +:108E900075FD00F043FCFDF73BF9FDF7D9F8FDF750 +:108EA00011FBFDF7E3F9FEF7A5F9BDE8084000F076 +:108EB00029BA000030B50433039C0172002104FB81 +:108EC0000325C160C0E90653049B0363059BC0E909 +:108ED0000000C0E90422C0E90842C0E90A11436366 +:108EE00030BD00000022416AC260C0E90411C0E93F +:108EF0000A226FF00101FDF7F3BE0000D0E9043251 +:108F0000934201D1C2680AB9181D7047002070470A +:108F1000036919600021C2680132C260C26913444A +:108F200082699342036124BF436A0361FDF7CCBEAB +:108F300038B504460D46E3683BB162690020131D55 +:108F40001268A3621344E36207E0237A33B9294627 +:108F50002046FDF7A9FE0028EDDA38BD6FF00100CC +:108F6000FBE70000C368C269013BC3604369134467 +:108F700082699342436124BF436A43610023836251 +:108F8000036B03B11847704770B53023044683F371 +:108F90001188866A3EB9FFF7CBFF054618B186F304 +:108FA0001188284670BDA36AE26A13F8015B9342F8 +:108FB000A36202D32046FFF7D5FF002383F3118875 +:108FC000EFE700002DE9F84F04460E461746984695 +:108FD0004FF0300989F311880025AA46D4F828B04B +:108FE000BBF1000F09D141462046FFF7A1FF20B198 +:108FF0008BF311882846BDE8F88FD4E90A12A7EB55 +:10900000050B521A934528BF9346BBF1400F1BD95D +:10901000334601F1400251F8040B914243F8040B2E +:10902000F9D1A36A403640354033A362D4E90A231C +:109030009A4202D32046FFF795FF8AF31188BD427A +:10904000D8D289F31188C9E730465A46F9F758F95A +:10905000A36A5E445D445B44A362E7E710B5029CEB +:109060000433017203FB0421C460C0E9061300232A +:10907000C0E90A33039B0363049BC0E90000C0E915 +:109080000422C0E90842436310BD0000026A6FF089 +:109090000101C260426AC0E904220022C0E90A223A +:1090A000FDF71EBED0E904239A4201D1C26822B95D +:1090B000184650F8043B0B60704700231846FAE747 +:1090C000C3680021C2690133C360436913448269E4 +:1090D0009342436124BF436A4361FDF7F5BD00003D +:1090E00038B504460D46E3683BB1236900201A1DDC +:1090F000A262E2691344E36207E0237A33B92946A6 +:109100002046FDF7D1FD0028EDDA38BD6FF00100F3 +:10911000FBE7000003691960C268013AC260C269D6 +:10912000134482699342036124BF436A03610023AD +:109130008362036B03B118477047000070B530239A +:109140000D460446114683F31188866A2EB9FFF74F +:10915000C7FF10B186F3118870BDA36A1D70A36AA2 +:10916000E26A01339342A36204D3E16920460439E1 +:10917000FFF7D0FF002080F31188EDE72DE9F84FCD +:1091800004460D46904699464FF0300A8AF31188FE +:109190000026B346A76A4FB949462046FFF7A0FF0D +:1091A00020B187F311883046BDE8F88FD4E90A076B +:1091B0003A1AA8EB0607974228BF1746402F1BD93B +:1091C00005F1400355F8042B9D4240F8042BF9D1DA +:1091D000A36A40364033A362D4E90A239A4204D3F7 +:1091E000E16920460439FFF795FF8BF31188464566 +:1091F000D9D28AF31188CDE729463A46F9F780F8A3 +:10920000A36A3D443E443B44A362E5E7D0E904231E +:109210009A4217D1C3689BB1836A8BB1043B9B1AF6 +:109220000ED01360C368013BC360C3691A448369ED +:109230009A42026124BF436A0361002383620123CF +:10924000184670470023FBE701F01F03F0B502F05A +:109250001F0456095A1C0123B6EB511F50F8265023 +:1092600003FA02F34FEA511703F1FF333DBF50F801 +:109270002720C4F12000134003EA05003BBF03FA96 +:1092800000F225FA04F0E0401043F0BD70B57E22F4 +:109290007F210546FFF7D8FF18B1012819D000201B +:1092A00070BD3E2249212846FFF7CEFF2F220446FB +:1092B00031212846FFF7C8FF064601345022023606 +:1092C00053212846B440FFF7BFFF093804FA00F0E5 +:1092D000E6E7302245212846FFF7B6FF013080023D +:1092E000DEE7000090F8D63090F8D7201B0403EB9F +:1092F000026390F8D42090F8D500134403EB0020CB +:109300007047000000F018BA014B586A704700BF60 +:10931000000C0040034B002258631A610222DA60FD +:10932000704700BF000C0040014B0022DA6070471C +:10933000000C0040014B5863704700BF000C004018 +:10934000024B034A1A60034A5A607047EC660020D9 +:109350009867002000000220074B494210B55C6866 +:10936000201A08401968821A8A4203D3A24201D8FF +:109370005A6010BD0020FCE7EC66002008B53023E1 +:1093800083F31188FFF7E8FF002383F3118808BDFA +:109390000448054B03600023C0E901330C3000F0A2 +:1093A00017B900BFF46600207D930008CB1D083A72 +:1093B00023F00703591A521A10B4D2080024C0E946 +:1093C000004384600C301C605A605DF8044B00F070 +:1093D000FFB800002DE9F74F364FCD1D8846002815 +:1093E00018BF0746082A4FEAD50538BF082207F1FB +:1093F0000C003C1D9146019000F02CF9019809F1F8 +:109400000701C9F1000E2246246864B900F02CF966 +:109410003B68CBB308224946E8009847044698B316 +:1094200040E9027830E004EB010CD4F804A00CEA27 +:109430000E0C0AF10106ACF1080304EBC6069E42CD +:10944000E1D9A6EB0C0CB5EBEC0F4FEAEC0BDAD83C +:109450009C421DD204F10802AB45A3EB02024FEA85 +:10946000E202626009D9691CED4303EBC1025D446D +:109470005560256843F8315022601C46C3F80480CB +:1094800044F8087B00F0F0F8204603B0BDE8F08F08 +:10949000AA45216802D111602346EEE7013504EBAD +:1094A000C50344F8351003F10801761AF6105E6022 +:1094B0001360F1E7F466002073B50446A0F10805D7 +:1094C00050F8080C54F8043C061D0C30073301908A +:1094D000DB0844F8043C00F0BDF8334601989E4296 +:1094E0001A6801D0AB4228D20AB1954225D244F87D +:1094F000082C54F8042C1D60013254F8081C05EBAC +:10950000C206B14206D14E68324444F8042C0A68BF +:1095100044F8082C5E68711C03EBC1018D4207D131 +:1095200054F8042C013232445A6054F8082C1A6062 +:1095300002B0BDE8704000F097B81346CFE70000D6 +:10954000FEE7000070B51E4B0025044686B058604B +:109550000E4605638163FEF7E1FB04F12803A56075 +:109560006563C4E90A3304F11003C4E904334FF01E +:10957000FF33C4E90044C4E90635FFF7C5FE2B46B6 +:10958000024604F13C012046C4E9082380230D4A29 +:109590006567FDF703FB7368E0600B4A0362012314 +:1095A000009280F824306846F26801923269CDE971 +:1095B0000223064BCDE90435FDF724FB06B070BD50 +:1095C00070490020FCA10008F4A1000841950008A2 +:1095D0000023C0E9000083600361704770B51C4B35 +:1095E00005468468DE685CB3B44213D10369013375 +:1095F000036170BDA36094F8243083B1062B15D1AC +:10960000A06A2146D4E9003213605A60FDF732FAAD +:10961000A36A9C68B368A2689A42EBD306E0D4E9D7 +:109620000032204613605A60FDF734FA284631466E +:10963000FDF720FAB5620620BDE87040FDF72CBAB0 +:109640000369866001330361336BC3603063D0E725 +:10965000C846002008B5302383F31188FFF7BEFF0A +:10966000002383F3118808BD194BD96883688B42A6 +:1096700010B520D1302383F311880269013A0261C9 +:10968000B2B90468C368A0420B631ED04A6B9BB991 +:1096900001238A60036103681A68026050601A6BD4 +:1096A0008360C26018631846FDF7F4F9FDF744FAC9 +:1096B000002383F3118810BD1C68A34203D0A46863 +:1096C000A24238BF2246DB68E1E78260F0E700BFD4 +:1096D000C8460020024A536B18435063704700BFCE +:1096E000C846002038B5EFF311859DB9EFF3058426 +:1096F000C4F30804302334B183F31188FDF728FC48 +:1097000085F3118838BD83F31188FDF721FC84F3BC +:10971000118838BDBDE83840FDF71ABC0023054A62 +:1097200019460133102BC2E9001102F10802F8D1E9 +:10973000704700BF14670020114BD3F8E82042F0B7 +:109740000802C3F8E820D3F8102142F00802C3F859 +:1097500010210C4AD3F81031D36B43F00803D363C4 +:10976000C722094B9A624FF0FF32DA6200229A61F7 +:109770005A63DA605A6001225A611A60704700BF6A +:10978000004402580010005C000C0040094A08B573 +:109790001169D3680B40D9B29B076FEA01011161CF +:1097A00007D5302383F31188FDF7ECF9002383F309 +:1097B000118808BD000C0040FEF77CB8012838BFB6 +:1097C000012010B504462046FEF734F830B900F009 +:1097D00007F808B9F6F7B2FF8047F4E710BD0000BC +:1097E000024B1868BFF35B8F704700BF946700207F +:1097F0004D4435002D2D0A002F6172647570696C1F +:109800006F742E6162696E002F6172647570696C8D +:109810006F742D7665726966792E6162696E002FAC +:109820006172647570696C6F742D666C6173682EFB +:109830006162696E002F6172647570696C6F742D5E +:10984000666C61736865642E6162696E0000000079 +:109850000000000000000000F51400089115000849 +:1098600041170008C915000889150008000000000C +:1098700000000000F11400089D1500087917000889 +:10988000ED140008F914000853544D333248373FA3 +:109890003F3F0053544D3332483733782F373278B7 +:1098A0000053544D3332483734332F3735332F3745 +:1098B0003530000001105A000310590001205800F3 +:1098C000032056002F0000005375636365737366B1 +:1098D000756C6C79206D6F756E74656420534443AC +:1098E0006172642028736C6F77646F776E3D2575A5 +:1098F000290A0000EB76904558464154202020006C +:109900004641543332202020000000002A3A3C3ED9 +:109910007C223F7F002B2C3B3D5B5D004355454146 +:109920004141414345454549494941414592924F4D +:109930004F4F5555594F554F9C4F9E9F41494F553D +:10994000A5A5A6A7A8A9AAABACADAEAFB0B1B2B35E +:10995000B4414141B8B9BABBBCBDBEBFC0C1C2C3AE +:10996000C4C54141C8C9CACBCCCDCECFD1D1454564 +:109970004549494949D9DADBDCDD49DF4FE14F4F41 +:109980004F4FE6E8E85555555959EEEFF0F1F2F32F +:10999000F4F5F6F7F8F9FAFBFCFDFEFF0103050705 +:1099A000090E10121416181C1E00000061001A0384 +:1099B000E0001703F8000703FF0001007801000131 +:1099C000300132010601390110014A012E017901ED +:1099D000060180014D004302810182018201840160 +:1099E000840186018701870189018A018B018B012E +:1099F0008D018E018F0190019101910193019401DC +:109A0000F60196019701980198013D029B019C0186 +:109A10009D0120029F01A001A001A201A201A401B9 +:109A2000A401A601A701A701A901AA01AB01AC01EC +:109A3000AC01AE01AF01AF01B101B201B301B3019D +:109A4000B501B501B701B801B801BA01BB01BC014C +:109A5000BC01BE01F701C001C101C201C301C401C3 +:109A6000C501C401C701C801C701CA01CB01CA01B0 +:109A7000CD011001DD0101008E01DE011201F301B3 +:109A80000300F101F401F401F8012801220212019E +:109A90003A020900652C3B023B023D02662C3F0264 +:109AA00040024102410246020A0153024000810184 +:109AB0008601550289018A0158028F015A029001DC +:109AC0005C025D025E025F02930161026202940128 +:109AD0006402650266026702970196016A02622CBF +:109AE0006C026D026E029C01700271029D01730294 +:109AF00074029F0176027702780279027A027B0271 +:109B00007C02642C7E027F02A60181028202A901EE +:109B10008402850286028702AE014402B101B201CD +:109B200045028D028E028F0290029102B7017B03E3 +:109B30000300FD03FE03FF03AC0304008603880358 +:109B400089038A03B1031103C2030200A303A30321 +:109B5000C4030803CC0303008C038E038F03D803D4 +:109B60001801F2030A00F903F303F403F503F60303 +:109B7000F703F703F903FA03FA0330042003500450 +:109B80001007600422018A043601C1040E01CF04CB +:109B90000100C004D0044401610526040000000057 +:109BA0007D1D0100632C001E9601A01E5A01001F9E +:109BB0000806101F0606201F0806301F0806401F53 +:109BC0000606511F0700591F521F5B1F541F5D1FC0 +:109BD000561F5F1F601F0806701F0E00BA1FBB1FB5 +:109BE000C81FC91FCA1FCB1FDA1FDB1FF81FF91FB1 +:109BF000EA1FEB1FFA1FFB1F801F0806901F0806B5 +:109C0000A01F0806B01F0400B81FB91FB21FBC1F59 +:109C1000CC1F0100C31FD01F0206E01F0206E51F74 +:109C20000100EC1FF31F0100FC1F4E210100322137 +:109C300070211002842101008321D0241A05302CC8 +:109C40002F04602C0201672C0601752C0201802C68 +:109C50006401002D260841FF1A030000C700FC0024 +:109C6000E900E200E400E000E500E700EA00EB00C4 +:109C7000E800EF00EE00EC00C400C500C900E600FB +:109C8000C600F400F600F200FB00F900FF00D60069 +:109C9000DC00F800A300D800D7009201E100ED003D +:109CA000F300FA00F100D100AA00BA00BF00AE0034 +:109CB000AC00BD00BC00A100AB00BB00912592250B +:109CC000932502252425C100C200C000A9006325F8 +:109CD000512557255D25A200A50010251425342502 +:109CE0002C251C2500253C25E300C3005A255425BE +:109CF00069256625602550256C25A400F000D0005C +:109D0000CA00CB00C8003101CD00CE00CF0018251D +:109D10000C2588258425A600CC008025D300DF00F3 +:109D2000D400D200F500D500B500FE00DE00DA0058 +:109D3000DB00D900FD00DD00AF00B400AD00B100D4 +:109D40001720BE00B600A700F700B800B000A800BA +:109D5000B700B900B300B200A025A0001000024077 +:109D6000080002400008024000000B0028000240EA +:109D7000080002400408024006010C0040000240B6 +:109D8000080002400808024010020D00580002407E +:109D9000080002400C08024016030E00700002404A +:109DA0000C0002401008024000040F00880002402E +:109DB0000C0002401408024006051000A0000240FA +:109DC0000C0002401808024010061100B8000240C2 +:109DD0000C0002401C08024016072F00100402402D +:109DE000080402402008024000083800280402400D +:109DF00008040240240802400609390040040240D9 +:109E00000804024028080240100A3A0058040240A0 +:109E1000080402402C080240160B3B00700402406C +:109E20000C04024030080240000C3C008804024050 +:109E30000C04024034080240060D4400A004024015 +:109E40000C04024038080240100E4500B8040240DD +:109E50000C0402403C080240160F460001000000BE +:109E6000000000000096000000000000000000005C +:109E700000000000000000000000000000000000E2 +:109E8000ED710008F1710008E55C00081D60000834 +:109E9000795C0008A15C0008C95C0008615C0008EE +:109EA00000000000D1600008BD600008F9600008F3 +:109EB000E5600008F1600008DD600008C960000886 +:109EC000B56000080561000800000000E9610008B5 +:109ED000D561000811620008FD61000809620008F0 +:109EE000F5610008E1610008CD6100081D6200080D +:109EF00000000000010000000000000063300000CE +:109F0000FC9E000800000000000000004047002008 +:109F1000704900200000802A00020000AAAAAAAA14 +:109F200000000024FFFF00000000000000A00A0065 +:109F3000000200A000000000AAAAAAAA0001005086 +:109F4000FFFF00000000090000000099000000066B +:109F500000000000AAAAAAAA00000001FFFF00005A +:109F6000000000000000080020A00A00000000001F +:109F7000AAAAAAAA10400500FFFF0000000800BB23 +:109F8000770000004014020028000000AAAAAAAA34 +:109F900000000100FFFF00000000000007000000BB +:109FA0000020000100000000AAAAAAAA00100000D8 +:109FB000FFFF0000000000070000000000518000CB +:109FC00000000000AAAAAAAA00404000FFFF00006B +:109FD0000000000000A0000000040040000000009D +:109FE000AAAAAAAA00040040FFFF00000000000087 +:109FF000000000000001150000000000AAAAAAAAA3 +:10A0000000011500FFFF000000000000000000003C +:10A010000000000000000000AAAAAAAA0000000098 +:10A02000FFFF000000000000000000000000000032 +:10A0300000000000AAAAAAAA00000000FFFF00007A +:10A0400000000000000000004172647550696C6FF0 +:10A05000740025424F415244252D424C0025534562 +:10A060005249414C250000000200000000000000A1 +:10A070000964000879640008400040002062002064 +:10A080003062002002000000000000000300000019 +:10A0900000000000C1640008000000001000000083 +:10A0A00040620020000000000100000000000000ED +:10A0B0009C65002001010200E9720008F9710008A6 +:10A0C000957200087972000843000000D0A00008D3 +:10A0D00009024300020100C032090400000102022B +:10A0E00001000524001001052401000104240202DE +:10A0F0000524060001070582030800FF090401008A +:10A10000020A000000070501024000000705810265 +:10A1100040000000120000001CA100081201100104 +:10A120000200004009124157000201020301000031 +:10A130000403090425424F41524425005A65726FB9 +:10A140004F6E655836003031323334353637383952 +:10A150004142434445460000000000200000020048 +:10A1600002000000000000300000040008000000B1 +:10A1700000000024000008000400000000040000AB +:10A1800000FC00000200000000000430008000001D +:10A19000080000000000003800000100010000007D +:10A1A0001F1C1F1E1F1E1F1F1E1F1E1F1F1D1F1EC9 +:10A1B0001F1E1F1F1E1F1E1F000000001D6600081F +:10A1C000D56800088169000840004000D46600207E +:10A1D000D466002001000000E4660020800000003A +:10A1E0004001000008000000000100000010000015 +:10A1F0000800000069646C65000000006D61696E14 +:10A20000002C0438040438080C10141C20242526C3 +:10A2100000000000000064040100040000000000D1 +:10A22000000C0010283034004062FF7F0100000065 +:10A2300004220020000000000000000000000000D8 +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000E01500000000000000001E00AB +:10A2A00000000000FF000000784900205C3A002018 +:10A2B000F039002084390020000000008898000850 +:10A2C000830400009398000850040000A19800083F +:10A2D00001000000000000000096000000000800DF +:10A2E00096000000000800000400000030A10008F3 +:10A2F000000000000000000000000000000000005E +:08A30000000000000000000055 +:00000001FF diff --git a/Tools/scripts/build_options.py b/Tools/scripts/build_options.py index 1a49c670f9..4ad745c89a 100644 --- a/Tools/scripts/build_options.py +++ b/Tools/scripts/build_options.py @@ -271,6 +271,7 @@ def __init__(self, Feature('Baro', 'BMP085', 'AP_BARO_BMP085_ENABLED', 'Enable BMP085 Barometric Sensor', 1, None), Feature('Baro', 'BMP280', 'AP_BARO_BMP280_ENABLED', 'Enable BMP280 Barometric Sensor', 1, None), Feature('Baro', 'BMP388', 'AP_BARO_BMP388_ENABLED', 'Enable BMP388 Barometric Sensor', 1, None), + Feature('Baro', 'BMP581', 'AP_BARO_BMP581_ENABLED', 'Enable BMP581 Barometric Sensor', 1, None), Feature('Baro', 'DPS280', 'AP_BARO_DPS280_ENABLED', 'Enable DPS280/DPS310 Barometric Sensor', 1, None), Feature('Baro', 'DUMMY', 'AP_BARO_DUMMY_ENABLED', 'Enable DUMMY Barometric Sensor', 0, None), Feature('Baro', 'EXTERNALAHRS', 'AP_BARO_EXTERNALAHRS_ENABLED', 'Enable EXTERNALAHRS Barometric Sensor', 0, 'AHRS_EXT'), diff --git a/Tools/scripts/decode_devid.py b/Tools/scripts/decode_devid.py index 04cf8b1738..2ff1b999b6 100755 --- a/Tools/scripts/decode_devid.py +++ b/Tools/scripts/decode_devid.py @@ -125,6 +125,7 @@ def num(s): 0x12 : "DEVTYPE_BARO_MS5837", 0x13 : "DEVTYPE_BARO_MS5637", 0x14 : "DEVTYPE_BARO_BMP390", + 0x15 : "DEVTYPE_BARO_BMP581", } airspeed_types = { diff --git a/Tools/scripts/extract_features.py b/Tools/scripts/extract_features.py index 01db41fdf7..77e6912e18 100755 --- a/Tools/scripts/extract_features.py +++ b/Tools/scripts/extract_features.py @@ -243,7 +243,7 @@ def __init__(self, filename, nm="arm-none-eabi-nm", strings="strings"): ('AP_NETWORKING_BACKEND_PPP', 'AP_Networking_PPP::init'), ('FORCE_APJ_DEFAULT_PARAMETERS', 'AP_Param::param_defaults_data'), ('HAL_BUTTON_ENABLED', 'AP_Button::update'), - ('HAL_LOGGING_ENABLED', 'AP_Logger::init'), + ('HAL_LOGGING_ENABLED', 'AP_Logger::Init'), ('HAL_ENABLE_DRONECAN_DRIVERS', r'AP_DroneCAN::init'), ('AP_OSD_LINK_STATS_EXTENSIONS_ENABLED', r'AP_OSD_Screen::draw_rc_tx_power'), ] diff --git a/libraries/AC_PID/AC_PID.cpp b/libraries/AC_PID/AC_PID.cpp index 166be7b7b3..0248fd0bef 100644 --- a/libraries/AC_PID/AC_PID.cpp +++ b/libraries/AC_PID/AC_PID.cpp @@ -201,34 +201,48 @@ float AC_PID::update_all(float target, float measurement, float dt, bool limit, _pid_info.reset = _flags._reset_filter; if (_flags._reset_filter) { _flags._reset_filter = false; + + // Reset target filter _target = target; - _error = _target - measurement; - _derivative = 0.0f; - _target_derivative = 0.0f; #if AP_FILTER_ENABLED if (_target_notch != nullptr) { _target_notch->reset(); _target = _target_notch->apply(_target); } +#endif + + // Calculate error and reset error filter + _error = _target - measurement; +#if AP_FILTER_ENABLED if (_error_notch != nullptr) { _error_notch->reset(); _error = _error_notch->apply(_error); } #endif + // Zero derivatives + _derivative = 0.0f; + _target_derivative = 0.0f; + } else { - float error_last = _error; - float target_last = _target; - float error = _target - measurement; + + // Apply target filters + const float target_last = _target; #if AP_FILTER_ENABLED // apply notch filters before FTLD/FLTE to avoid shot noise if (_target_notch != nullptr) { target = _target_notch->apply(target); } +#endif + _target += get_filt_T_alpha(dt) * (target - _target); + + // Calculate error and apply error filter + const float error_last = _error; + float error = _target - measurement; +#if AP_FILTER_ENABLED if (_error_notch != nullptr) { error = _error_notch->apply(error); } #endif - _target += get_filt_T_alpha(dt) * (target - _target); _error += get_filt_E_alpha(dt) * (error - _error); // calculate and filter derivative diff --git a/libraries/AP_Baro/AP_Baro.cpp b/libraries/AP_Baro/AP_Baro.cpp index 84bfbadc9f..6910faf21e 100644 --- a/libraries/AP_Baro/AP_Baro.cpp +++ b/libraries/AP_Baro/AP_Baro.cpp @@ -48,6 +48,7 @@ #include "AP_Baro_ExternalAHRS.h" #include "AP_Baro_ICP101XX.h" #include "AP_Baro_ICP201XX.h" +#include "AP_Baro_BMP581.h" #include #include @@ -173,7 +174,7 @@ const AP_Param::GroupInfo AP_Baro::var_info[] = { // @Param: _PROBE_EXT // @DisplayName: External barometers to probe // @Description: This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on BARO_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in BARO_EXT_BUS. - // @Bitmask: 0:BMP085,1:BMP280,2:MS5611,3:MS5607,4:MS5637,5:FBM320,6:DPS280,7:LPS25H,8:Keller,9:MS5837,10:BMP388,11:SPL06,12:MSP + // @Bitmask: 0:BMP085,1:BMP280,2:MS5611,3:MS5607,4:MS5637,5:FBM320,6:DPS280,7:LPS25H,8:Keller,9:MS5837,10:BMP388,11:SPL06,12:MSP,13:BMP581 // @User: Advanced AP_GROUPINFO("_PROBE_EXT", 14, AP_Baro, _baro_probe_ext, HAL_BARO_PROBE_EXT_DEFAULT), #endif @@ -835,6 +836,10 @@ void AP_Baro::_probe_i2c_barometers(void) { PROBE_BMP388, AP_Baro_BMP388::probe, HAL_BARO_BMP388_I2C_ADDR }, { PROBE_BMP388, AP_Baro_BMP388::probe, HAL_BARO_BMP388_I2C_ADDR2 }, #endif +#if AP_BARO_BMP581_ENABLED + { PROBE_BMP581, AP_Baro_BMP581::probe, HAL_BARO_BMP581_I2C_ADDR }, + { PROBE_BMP581, AP_Baro_BMP581::probe, HAL_BARO_BMP581_I2C_ADDR2 }, +#endif #if AP_BARO_MS56XX_ENABLED { PROBE_MS5611, AP_Baro_MS56XX::probe_5611, HAL_BARO_MS5611_I2C_ADDR }, { PROBE_MS5611, AP_Baro_MS56XX::probe_5611, HAL_BARO_MS5611_I2C_ADDR2 }, diff --git a/libraries/AP_Baro/AP_Baro.h b/libraries/AP_Baro/AP_Baro.h index 4b1055fff9..5e50597ec8 100644 --- a/libraries/AP_Baro/AP_Baro.h +++ b/libraries/AP_Baro/AP_Baro.h @@ -244,6 +244,7 @@ class AP_Baro PROBE_BMP388=(1<<10), PROBE_SPL06 =(1<<11), PROBE_MSP =(1<<12), + PROBE_BMP581=(1<<13), }; #if HAL_BARO_WIND_COMP_ENABLED diff --git a/libraries/AP_Baro/AP_Baro_BMP581.cpp b/libraries/AP_Baro/AP_Baro_BMP581.cpp new file mode 100644 index 0000000000..aa8ff86695 --- /dev/null +++ b/libraries/AP_Baro/AP_Baro_BMP581.cpp @@ -0,0 +1,193 @@ +/* + 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 . + */ +#include "AP_Baro_BMP581.h" + +#if AP_BARO_BMP581_ENABLED + +#include +#include + +extern const AP_HAL::HAL &hal; + +#define BMP581_ID 0x50 + +#define BMP581_REG_CHIP_ID 0x01 +#define BMP581_REG_REV_ID 0x02 +#define BMP581_REG_CHIP_STATUS 0x11 +#define BMP581_REG_DRIVE_CONFIG 0x13 +#define BMP581_REG_INT_CONFIG 0x14 +#define BMP581_REG_INT_SOURCE 0x15 +#define BMP581_REG_FIFO_CONFIG 0x16 +#define BMP581_REG_FIFO_COUNT 0x17 +#define BMP581_REG_FIFO_SEL 0x18 +#define BMP581_REG_TEMP_DATA_XLSB 0x1D +#define BMP581_REG_TEMP_DATA_LSB 0x1E +#define BMP581_REG_TEMP_DATA_MSB 0x1F +#define BMP581_REG_PRESS_DATA_XLSB 0x20 +#define BMP581_REG_PRESS_DATA_LSB 0x21 +#define BMP581_REG_PRESS_DATA_MSB 0x22 +#define BMP581_REG_INT_STATUS 0x27 +#define BMP581_REG_STATUS 0x28 +#define BMP581_REG_FIFO_DATA 0x29 +#define BMP581_REG_NVM_ADDR 0x2B +#define BMP581_REG_NVM_DATA_LSB 0x2C +#define BMP581_REG_NVM_DATA_MSB 0x2D +#define BMP581_REG_DSP_CONFIG 0x30 +#define BMP581_REG_DSP_IIR 0x31 +#define BMP581_REG_OOR_THR_P_LSB 0x32 +#define BMP581_REG_OOR_THR_P_MSB 0x33 +#define BMP581_REG_OOR_RANGE 0x34 +#define BMP581_REG_OOR_CONFIG 0x35 +#define BMP581_REG_OSR_CONFIG 0x36 +#define BMP581_REG_ODR_CONFIG 0x37 +#define BMP581_REG_OSR_EFF 0x38 +#define BMP581_REG_CMD 0x7E + +AP_Baro_BMP581::AP_Baro_BMP581(AP_Baro &baro, AP_HAL::OwnPtr dev) + : AP_Baro_Backend(baro) + , _dev(std::move(dev)) +{ +} + +AP_Baro_Backend *AP_Baro_BMP581::probe(AP_Baro &baro, + AP_HAL::OwnPtr dev) +{ + if (!dev) { + return nullptr; + } + + AP_Baro_BMP581 *sensor = new AP_Baro_BMP581(baro, std::move(dev)); + if (!sensor || !sensor->init()) { + delete sensor; + return nullptr; + } + return sensor; +} + +bool AP_Baro_BMP581::init() +{ + if (!_dev) { + return false; + } + + WITH_SEMAPHORE(_dev->get_semaphore()); + + _dev->set_speed(AP_HAL::Device::SPEED_HIGH); + + uint8_t whoami; + + // setup to allow reads on SPI + if (_dev->bus_type() == AP_HAL::Device::BUS_TYPE_SPI) { + _dev->set_read_flag(0x80); + + if (!_dev->read_registers(BMP581_REG_CHIP_ID, &whoami, 1)) { + return false; + } + } + + if (!_dev->read_registers(BMP581_REG_CHIP_ID, &whoami, 1)) { + return false; + } + + switch (whoami) { + case BMP581_ID: + _dev->set_device_type(DEVTYPE_BARO_BMP581); + break; + default: + return false; + } + + uint8_t status; + if (!_dev->read_registers(BMP581_REG_STATUS, &status, 1)) { + return false; + } + + if ((status & 0b10) == 0 || (status & 0b100) == 1) { + return false; + } + + uint8_t int_status; + if (!_dev->read_registers(BMP581_REG_INT_STATUS, &int_status, 1)) { + return false; + } + + if ((int_status & 0x10) == 0) { + return false; + } + + _dev->setup_checked_registers(4); + + // Standby mode + _dev->write_register(BMP581_REG_ODR_CONFIG, 0, true); + + // Press EN | osr_p 64X | osr_t 4X + _dev->write_register(BMP581_REG_OSR_CONFIG, 0b01110010, true); + + // ORD 50Hz | Normal Mode + _dev->write_register(BMP581_REG_ODR_CONFIG, 0b0111101, true); + + instance = _frontend.register_sensor(); + + set_bus_id(instance, _dev->get_bus_id()); + + // request 50Hz update + _dev->register_periodic_callback(20 * AP_USEC_PER_MSEC, FUNCTOR_BIND_MEMBER(&AP_Baro_BMP581::timer, void)); + + return true; +} + +// acumulate a new sensor reading +void AP_Baro_BMP581::timer(void) +{ + uint8_t buf[6]; + + if (!_dev->read_registers(BMP581_REG_TEMP_DATA_XLSB, buf, sizeof(buf))) { + return; + } + + WITH_SEMAPHORE(_sem); + + if (buf[0] != 0x7f || buf[1] != 0x7f || buf[2] != 0x7f) { + // we have temperature data + temperature = (float)((int32_t)(((uint32_t)buf[2] << 24) | ((uint32_t)buf[1] << 16) | ((uint32_t)buf[0] << 8)) >> 8) * (1.0f / 65536.0f); + } + + if (buf[3] != 0x7f || buf[4] != 0x7f || buf[5] != 0x7f) { + // we have pressure data + pressure_sum += (float)(((uint32_t)buf[5] << 16) | ((uint32_t)buf[4] << 8) | (uint32_t)buf[3]) * (1.0f / 64.0f); + pressure_count++; + } + + _dev->check_next_register(); +} + +// transfer data to the frontend +void AP_Baro_BMP581::update(void) +{ + WITH_SEMAPHORE(_sem); + + if (pressure_count == 0) { + return; + } + + _copy_to_frontend(instance, + pressure_sum/pressure_count, + temperature); + + pressure_sum = 0; + pressure_count = 0; +} + +#endif // AP_BARO_BMP581_ENABLED diff --git a/libraries/AP_Baro/AP_Baro_BMP581.h b/libraries/AP_Baro/AP_Baro_BMP581.h new file mode 100644 index 0000000000..0c50f1ab98 --- /dev/null +++ b/libraries/AP_Baro/AP_Baro_BMP581.h @@ -0,0 +1,41 @@ +#pragma once + +#include "AP_Baro_Backend.h" + +#if AP_BARO_BMP581_ENABLED + +#include +#include +#include + +#ifndef HAL_BARO_BMP581_I2C_ADDR + #define HAL_BARO_BMP581_I2C_ADDR (0x46) +#endif +#ifndef HAL_BARO_BMP581_I2C_ADDR2 + #define HAL_BARO_BMP581_I2C_ADDR2 (0x47) +#endif + +class AP_Baro_BMP581 : public AP_Baro_Backend +{ +public: + AP_Baro_BMP581(AP_Baro &baro, AP_HAL::OwnPtr dev); + + /* AP_Baro public interface: */ + void update() override; + + static AP_Baro_Backend *probe(AP_Baro &baro, AP_HAL::OwnPtr dev); + +private: + + bool init(void); + void timer(void); + + AP_HAL::OwnPtr _dev; + + uint8_t instance; + float pressure_sum; + uint32_t pressure_count; + float temperature; +}; + +#endif // AP_BARO_BMP581_ENABLED diff --git a/libraries/AP_Baro/AP_Baro_Backend.h b/libraries/AP_Baro/AP_Baro_Backend.h index 94b155e483..2652f8f556 100644 --- a/libraries/AP_Baro/AP_Baro_Backend.h +++ b/libraries/AP_Baro/AP_Baro_Backend.h @@ -58,6 +58,7 @@ class AP_Baro_Backend DEVTYPE_BARO_MS5837 = 0x12, DEVTYPE_BARO_MS5637 = 0x13, DEVTYPE_BARO_BMP390 = 0x14, + DEVTYPE_BARO_BMP581 = 0x15, }; protected: diff --git a/libraries/AP_Baro/AP_Baro_ICP101XX.cpp b/libraries/AP_Baro/AP_Baro_ICP101XX.cpp index f06df354d0..592bf73095 100644 --- a/libraries/AP_Baro/AP_Baro_ICP101XX.cpp +++ b/libraries/AP_Baro/AP_Baro_ICP101XX.cpp @@ -109,7 +109,7 @@ bool AP_Baro_ICP101XX::init() dev->get_semaphore()->give(); - dev->register_periodic_callback(measure_interval/2, FUNCTOR_BIND_MEMBER(&AP_Baro_ICP101XX::timer, void)); + dev->register_periodic_callback(measure_interval, FUNCTOR_BIND_MEMBER(&AP_Baro_ICP101XX::timer, void)); return true; @@ -312,4 +312,4 @@ void AP_Baro_ICP101XX::update() } } -#endif // AP_BARO_ICP101XX_ENABLED \ No newline at end of file +#endif // AP_BARO_ICP101XX_ENABLED diff --git a/libraries/AP_Baro/AP_Baro_config.h b/libraries/AP_Baro/AP_Baro_config.h index 0da6757a73..a5c9e0db2f 100644 --- a/libraries/AP_Baro/AP_Baro_config.h +++ b/libraries/AP_Baro/AP_Baro_config.h @@ -29,6 +29,10 @@ #define AP_BARO_BMP388_ENABLED AP_BARO_BACKEND_DEFAULT_ENABLED #endif +#ifndef AP_BARO_BMP581_ENABLED +#define AP_BARO_BMP581_ENABLED AP_BARO_BACKEND_DEFAULT_ENABLED +#endif + #ifndef AP_BARO_DPS280_ENABLED #define AP_BARO_DPS280_ENABLED AP_BARO_BACKEND_DEFAULT_ENABLED #endif diff --git a/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp b/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp index 7a1caa214f..25027cf3b8 100644 --- a/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp +++ b/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp @@ -141,7 +141,7 @@ void AP_Camera_MAVLinkCamV2::handle_message(mavlink_channel_t chan, const mavlin const uint8_t fw_ver_build = (_cam_info.firmware_version & 0xFF000000) >> 24; // display camera info to user - gcs().send_text(MAV_SEVERITY_INFO, "Camera: %s.32 %s.32 fw:%u.%u.%u.%u", + gcs().send_text(MAV_SEVERITY_INFO, "Camera: %.32s %.32s fw:%u.%u.%u.%u", _cam_info.vendor_name, _cam_info.model_name, (unsigned)fw_ver_major, diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp b/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp index 4678c9ae9c..4d8555dffe 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp @@ -262,13 +262,13 @@ bool AP_ESC_Telem::get_motor_temperature(uint8_t esc_index, int16_t& temp) const } // get the highest ESC temperature in centi-degrees if available, returns true if there is valid data for at least one ESC -bool AP_ESC_Telem::get_highest_motor_temperature(int16_t& temp) const +bool AP_ESC_Telem::get_highest_temperature(int16_t& temp) const { uint8_t valid_escs = 0; for (uint8_t i = 0; i < ESC_TELEM_MAX_ESCS; i++) { int16_t temp_temp; - if (get_motor_temperature(i, temp_temp)) { + if (get_temperature(i, temp_temp)) { temp = MAX(temp, temp_temp); valid_escs++; } diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem.h b/libraries/AP_ESC_Telem/AP_ESC_Telem.h index 3e6b8e5d53..751657d041 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem.h +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem.h @@ -53,7 +53,7 @@ class AP_ESC_Telem { bool get_motor_temperature(uint8_t esc_index, int16_t& temp) const; // get the highest ESC temperature in centi-degrees if available, returns true if there is valid data for at least one ESC - bool get_highest_motor_temperature(int16_t& temp) const; + bool get_highest_temperature(int16_t& temp) const; // get an individual ESC's current in Ampere if available, returns true on success bool get_current(uint8_t esc_index, float& amps) const; diff --git a/libraries/AP_Filesystem/AP_Filesystem.h b/libraries/AP_Filesystem/AP_Filesystem.h index b139713a75..9a5e01e693 100644 --- a/libraries/AP_Filesystem/AP_Filesystem.h +++ b/libraries/AP_Filesystem/AP_Filesystem.h @@ -84,7 +84,7 @@ class AP_Filesystem { int stat(const char *pathname, struct stat *stbuf); // stat variant for scripting - typedef struct { + typedef struct Stat { uint32_t size; int32_t mode; uint32_t mtime; diff --git a/libraries/AP_GPS/AP_GPS.h b/libraries/AP_GPS/AP_GPS.h index 04b47a6513..d4b0611f4f 100644 --- a/libraries/AP_GPS/AP_GPS.h +++ b/libraries/AP_GPS/AP_GPS.h @@ -192,7 +192,7 @@ class AP_GPS uint16_t time_week; ///< GPS week number Location location; ///< last fix location float ground_speed; ///< ground speed in m/s - float ground_course; ///< ground course in degrees + float ground_course; ///< ground course in degrees, wrapped 0-360 float gps_yaw; ///< GPS derived yaw information, if available (degrees) uint32_t gps_yaw_time_ms; ///< timestamp of last GPS yaw reading bool gps_yaw_configured; ///< GPS is configured to provide yaw diff --git a/libraries/AP_GPS/AP_GPS_GSOF.cpp b/libraries/AP_GPS/AP_GPS_GSOF.cpp index 42616a6af8..f943e1c82f 100644 --- a/libraries/AP_GPS/AP_GPS_GSOF.cpp +++ b/libraries/AP_GPS/AP_GPS_GSOF.cpp @@ -324,7 +324,7 @@ AP_GPS_GSOF::process_message(void) if ((vflag & 1) == 1) { state.ground_speed = SwapFloat(msg.data, a + 1); - state.ground_course = degrees(SwapFloat(msg.data, a + 5)); + state.ground_course = wrap_360(degrees(SwapFloat(msg.data, a + 5))); fill_3d_velocity(); state.velocity.z = -SwapFloat(msg.data, a + 9); state.have_vertical_velocity = true; diff --git a/libraries/AP_HAL_ChibiOS/GPIO.cpp b/libraries/AP_HAL_ChibiOS/GPIO.cpp index f62bd73c27..44db584c1d 100644 --- a/libraries/AP_HAL_ChibiOS/GPIO.cpp +++ b/libraries/AP_HAL_ChibiOS/GPIO.cpp @@ -241,17 +241,16 @@ uint8_t GPIO::read(uint8_t pin) if (g) { return palReadLine(g->pal_line); } +#if HAL_WITH_IO_MCU + if (AP_BoardConfig::io_enabled() && iomcu.valid_GPIO_pin(pin)) { + return iomcu.read_virtual_GPIO(pin); + } +#endif return 0; } void GPIO::write(uint8_t pin, uint8_t value) { -#if HAL_WITH_IO_MCU - if (AP_BoardConfig::io_enabled() && iomcu.valid_GPIO_pin(pin)) { - iomcu.write_GPIO(pin, value); - return; - } -#endif struct gpio_entry *g = gpio_by_pin_num(pin); if (g) { if (g->is_input) { @@ -263,36 +262,42 @@ void GPIO::write(uint8_t pin, uint8_t value) } else { palSetLine(g->pal_line); } + return; + } +#if HAL_WITH_IO_MCU + if (AP_BoardConfig::io_enabled() && iomcu.valid_GPIO_pin(pin)) { + iomcu.write_GPIO(pin, value); } +#endif } void GPIO::toggle(uint8_t pin) { + struct gpio_entry *g = gpio_by_pin_num(pin); + if (g) { + palToggleLine(g->pal_line); + return; + } #if HAL_WITH_IO_MCU if (AP_BoardConfig::io_enabled() && iomcu.valid_GPIO_pin(pin)) { iomcu.toggle_GPIO(pin); - return; } #endif - struct gpio_entry *g = gpio_by_pin_num(pin); - if (g) { - palToggleLine(g->pal_line); - } } /* Alternative interface: */ AP_HAL::DigitalSource* GPIO::channel(uint16_t pin) { + struct gpio_entry *g = gpio_by_pin_num(pin); + if (g != nullptr) { + return new DigitalSource(g->pal_line); + } #if HAL_WITH_IO_MCU if (AP_BoardConfig::io_enabled() && iomcu.valid_GPIO_pin(pin)) { return new IOMCU_DigitalSource(pin); } #endif - struct gpio_entry *g = gpio_by_pin_num(pin); - if (!g) { - return nullptr; - } - return new DigitalSource(g->pal_line); + return nullptr; } extern const AP_HAL::HAL& hal; @@ -526,12 +531,15 @@ bool GPIO::wait_pin(uint8_t pin, INTERRUPT_TRIGGER_TYPE mode, uint32_t timeout_u // check if a pin number is valid bool GPIO::valid_pin(uint8_t pin) const { + if (gpio_by_pin_num(pin) != nullptr) { + return true; + } #if HAL_WITH_IO_MCU if (AP_BoardConfig::io_enabled() && iomcu.valid_GPIO_pin(pin)) { return true; } #endif - return gpio_by_pin_num(pin) != nullptr; + return false; } // return servo channel associated with GPIO pin. Returns true on success and fills in servo_ch argument diff --git a/libraries/AP_HAL_ChibiOS/RCOutput.cpp b/libraries/AP_HAL_ChibiOS/RCOutput.cpp index 4c995188b6..851f39f94b 100644 --- a/libraries/AP_HAL_ChibiOS/RCOutput.cpp +++ b/libraries/AP_HAL_ChibiOS/RCOutput.cpp @@ -1266,9 +1266,13 @@ bool RCOutput::get_output_mode_banner(char banner_msg[], uint8_t banner_msg_len) if (iomcu_enabled) { uint8_t iomcu_mask; const output_mode iomcu_mode = iomcu.get_output_mode(iomcu_mask); + const uint8_t gpio_mask = iomcu.get_GPIO_mask(); for (uint8_t i = 0; i < chan_offset; i++ ) { - if (iomcu_mask & 1U< USB1, for GCS connection + +- SERIAL1 -> USART2 (TELEM 1) DMA Enabled + +- SERIAL2 -> USART3 (TELEM 2) DMA Enabled + +- SERIAL3 -> UART4 (GPS) DMA Enabled + +- SERIAL4 -> UART8 (GPS 2) DMA Enabled + +- SERIAL5 -> UART7 (DEBUG) DMA Enabled + +- SERIAL6 -> USART6 (Additional USART) DMA Enabled + +- SERIAL7 -> USB2, MAVLink interface + +## RC Input + +RC input is configured on the RC_IN pin. These are the supported RC input protocols: + +Spektrum DSM / DSM2 / DSM-X® Satellite compatible input and binding. +Futaba S.BUS® & S.BUS2® compatible input. +Graupner SUMD. Yuneec ST24. + +## Analog Inputs + +The Control Zero H7 OEM revision G has 4 ADC inputs: + +- ADC1 Pin11 -> RSSI IN +- ADC1 Pin14 -> Battery Voltage +- ADC1 Pin15 -> Battery Current +- ADC1 Pin18 -> 5V Sensor + +## PWM Output + +The Control Zero H7 OEM revision G supports up to 8 PWM outputs. All DShot and BiDirDShot capable. + +The PWM outputs are distributed in 3 groups: + +- PWM 1-4 in group 1 +- PWM 5-6 in group 4 +- PWM 7-8 in group 8 + +Channels within the same group must use only one output rate. If any channel is using DShot or BiDirDShot the rest of the group will use the said output type. + +## Power Supply + +This board requires a 5V, 1 Amps power supply. + +## Battery Monitoring + +This board has a built-in voltage and current sensors. The following settings need to be present already on the board to work with a Power Zero Module (M10077): + +- BATT_MONITOR 4 +- BATT_VOLT_PIN 14 +- BATT_CURR_PIN 15 +- BATT_VOLT_SCALE 15.3 +- BATT_CURR_SCALE 50.0 + +*Other Power Module needs to be adjusted accordingly* + +## Build + +`./waf configure --board=3DRControlZeroG` + +`./waf copter` (check ArduPilot's docs for more info about the available targets) + +The compiled binary will be located in `build/3DRControlZeroG/bin/arducopter.apj`. + +## Uploading Firmware + +Any Control Zero H7 OEM revision G has a preloaded Ardupilot bootloader, which allows the user to use a compatible Ground Station software to upload the `.apj` file. diff --git a/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/defaults.parm new file mode 100644 index 0000000000..689afeaab0 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/defaults.parm @@ -0,0 +1,4 @@ +#Default Parameters for the mRo Control Zero OEM H7 + +CAN_P1_DRIVER 1 +CAN_P2_DRIVER 2 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/hwdef-bl.dat new file mode 100644 index 0000000000..f9032408a4 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/hwdef-bl.dat @@ -0,0 +1,58 @@ +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# USB setup +USB_VENDOR 0x26ac +USB_PRODUCT 0x1124 +USB_STRING_MANUFACTURER "3DR" +USB_STRING_PRODUCT "CZOEMrevG" + +# crystal frequency +OSCILLATOR_HZ 24000000 +define STM32_HSE_BYPASS +define SMPS_EXT + +# board ID for firmware load +APJ_BOARD_ID 1124 + +FLASH_SIZE_KB 2048 + +# bootloader is installed at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 128 + +PB11 LED_BOOTLOADER OUTPUT + +PH5 VDD_1V2_CORE_EN OUTPUT HIGH + +# define all 3 to make LED output White. +PB1 LED_ACTIVITY OUTPUT +PB3 LED_ACTIVITY2 OUTPUT +# PB11 LED_ACTIVITY3 OUTPUT + +define HAL_LED_ON 0 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 USART2 + +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 +PD3 USART2_CTS USART2 +PD4 USART2_RTS USART2 + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# Add CS pins to ensure they are high in bootloader +PC2 ICM_20602_CS CS +PD7 BARO_CS CS +PD10 FRAM_CS CS SPEED_VERYLOW NODMA +PE15 ICM_20948_CS CS +PF6 BMI088_ACCEL_CS CS +PF10 BMI088_GYRO_CS CS +#PG9 EXTERNAL CS diff --git a/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/hwdef.dat new file mode 100644 index 0000000000..dd11ad1d5c --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/3DRControlZeroG/hwdef.dat @@ -0,0 +1,266 @@ +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# board ID for firmware load +APJ_BOARD_ID 1124 + +# crystal frequency +OSCILLATOR_HZ 24000000 +define STM32_HSE_BYPASS +define SMPS_EXT + +FLASH_SIZE_KB 2048 + +# with 2M flash we can afford to optimize for speed +env OPTIMIZE -O2 + +# start on 2th sector (1st sector for bootloader) +FLASH_RESERVE_START_KB 128 + +define HAL_STORAGE_SIZE 32768 + +# USB setup +USB_VENDOR 0x26ac +USB_PRODUCT 0x1124 +USB_STRING_MANUFACTURER "3DR" +USB_STRING_PRODUCT "CZOEMrevG" + +PA8 RCC_MCO_1 OUTPUT LOW + +PH5 VDD_1V2_CORE_EN OUTPUT HIGH + +# RC Input set for Interrupt not DMA +PC7 TIM3_CH2 TIM3 RCININT PULLDOWN LOW + +# GPIO(70) # also USART6_RX for serial RC + +# Control of Spektrum power pin +PE4 SPEKTRUM_PWR OUTPUT LOW GPIO(70) +define HAL_GPIO_SPEKTRUM_PWR 70 + +# Spektrum Power is Active High +define HAL_SPEKTRUM_PWR_ENABLED 0 + +# Spektrum RC Input pin, used as GPIO for bind for Satellite Receivers +PB0 SPEKTRUM_RC INPUT PULLUP GPIO(71) +define HAL_GPIO_SPEKTRUM_RC 71 + +# Order of I2C buses +I2C_ORDER I2C1 I2C3 I2C4 + +# this board has no internal I2C buses so mark them all external +define HAL_I2C_INTERNAL_MASK 0 + +# order of UARTs and suggested uses +# USART2 TELEM1 +# USART3 TELEM2 +# UART4 GPS +# UART8 GPS2 +# UART7 DEBUG + +# USART6 RC input (Only RX pin is connected) + +# OTG1 and OTG2 are USB devices (1x physical USB connection enumerated as 2x logical ports) + +SERIAL_ORDER OTG1 USART2 USART3 UART4 UART8 UART7 USART6 OTG2 + +# Another USART, this one for telem1. This one has RTS and CTS lines. +# USART2 telem1 +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 +PD3 USART2_CTS USART2 +PD4 USART2_RTS USART2 + +# The telem2 USART, with RTS and CTS lines. +# USART3 telem2 +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 +PD11 USART3_CTS USART3 +PD12 USART3_RTS USART3 + +# UART4 GPS +PA0 UART4_TX UART4 +PA1 UART4_RX UART4 + +# UART7 +PE8 UART7_TX UART7 NODMA +PE7 UART7_RX UART7 NODMA + +# USART6 +PG14 USART6_TX USART6 +PG9 USART6_RX USART6 +PG13 USART6_CTS USART6 +PG12 USART6_RTS USART6 + +# UART8 GPS2 +PE1 UART8_TX UART8 +PE0 UART8_RX UART8 + +# RSSI Analog Input +PC1 RSSI_IN ADC1 + +# Safety Switch Input +PC4 SAFETY_IN INPUT PULLDOWN +define HAL_HAVE_SAFETY_SWITCH 1 + +# Battery Analog Sense Pins +PA2 BATT_VOLTAGE_SENS ADC1 SCALE(1) +PA3 BATT_CURRENT_SENS ADC1 SCALE(1) + +# Now the VDD sense pin. This is used to sense primary board voltage. +PA4 VDD_5V_SENS ADC1 SCALE(2) + +# Now setup the default battery pins driver analog pins and default +# scaling for the power brick (Adjusted for Power Zero - M10077). +define HAL_BATT_VOLT_PIN 14 +define HAL_BATT_CURR_PIN 15 +define HAL_BATT_VOLT_SCALE 15.3 +define HAL_BATT_CURR_SCALE 50.0 + +#SPI1 ICM_20602 / ICM_20948 +PA5 SPI1_SCK SPI1 +PA6 SPI1_MISO SPI1 +PA7 SPI1_MOSI SPI1 + +#SPI2 FRAM / DPS310 +PB10 SPI2_SCK SPI2 +PB14 SPI2_MISO SPI2 +PB15 SPI2_MOSI SPI2 + +#SPI5 BMI088 +PF7 SPI5_SCK SPI5 +PF8 SPI5_MISO SPI5 +PF9 SPI5_MOSI SPI5 + +#SPI6 External +#PG13 SPI6_SCK SPI6 +#PG12 SPI6_MISO SPI6 +#PG14 SPI6_MOSI SPI6 + +# This is the pin that senses USB being connected. It is an input pin +# setup as OPENDRAIN. +PA9 VBUS INPUT OPENDRAIN + +# This input pin is used to detect that power is valid on USB. +PC0 VBUS_VALID INPUT PULLDOWN + +# Now we define the pins that USB is connected on. +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# These are the pins for SWD debugging with a STlinkv2 or black-magic probe. +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# PWM output for buzzer +PA15 TIM2_CH1 TIM2 GPIO(77) ALARM + +# First I2C bus. +PB8 I2C1_SCL I2C1 +PB9 I2C1_SDA I2C1 + +# Second I2C bus. +PH7 I2C3_SCL I2C3 +PH8 I2C3_SDA I2C3 + +# Third I2C bus. +PB6 I2C4_SCL I2C4 +PB7 I2C4_SDA I2C4 + +# microSD card +PC8 SDMMC1_D0 SDMMC1 +PC9 SDMMC1_D1 SDMMC1 +PC10 SDMMC1_D2 SDMMC1 +PC11 SDMMC1_D3 SDMMC1 +PC12 SDMMC1_CK SDMMC1 +PD2 SDMMC1_CMD SDMMC1 + +# CS pins for SPI sensors. The labels for all CS pins need to +# match the SPI device table later in this file. +PC2 ICM_20602_CS CS +PD7 BARO_CS CS +PD10 FRAM_CS CS SPEED_VERYLOW NODMA +PE15 ICM_20948_CS CS +PF6 BMI088_ACCEL_CS CS +PF10 BMI088_GYRO_CS CS +#PG9 EXTERNAL CS + +# CAN Busses +PD0 CAN1_RX CAN1 +PD1 CAN1_TX CAN1 + +PB13 CAN2_TX CAN2 +PB12 CAN2_RX CAN2 + +# CAN Silent Pins LOW Enable +PF5 GPIO_CAN_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(72) + +# Now we start defining some PWM pins. We also map these pins to GPIO +# values, so users can set BRD_PWM_COUNT to choose how many of the PWM +# outputs on the primary MCU are setup as PWM and how many as +# GPIOs. To match HAL_PX4 we number the GPIOs for the PWM outputs +# starting at 50. +PE14 TIM1_CH4 TIM1 PWM(1) GPIO(50) BIDIR +PE13 TIM1_CH3 TIM1 PWM(2) GPIO(51) +PE11 TIM1_CH2 TIM1 PWM(3) GPIO(52) BIDIR +PE9 TIM1_CH1 TIM1 PWM(4) GPIO(53) +PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) BIDIR +PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55) BIDIR +PI5 TIM8_CH1 TIM8 PWM(7) GPIO(56) BIDIR +PI6 TIM8_CH2 TIM8 PWM(8) GPIO(57) + +# This is the invensense 20602 data-ready pin. +PD15 MPU_DRDY INPUT + +# Power Supply Enable +PE3 VDD_1V8_3V3_SENSORS_EN OUTPUT HIGH + +# Power Supply Enable 3.3v Periph/Spektrum +PC5 VDD_3V3_PERIPH_EN OUTPUT HIGH + +# Power flag pins: these tell the MCU the status of the various power +# supplies that are available. The pin names need to exactly match the +# names used in AnalogIn.cpp. +PB5 VDD_BRICK_VALID INPUT PULLDOWN + +SPIDEV dps310 SPI2 DEVID3 BARO_CS MODE3 5*MHZ 5*MHZ +SPIDEV ramtron SPI2 DEVID10 FRAM_CS MODE3 8*MHZ 8*MHZ +SPIDEV bmi088_g SPI5 DEVID1 BMI088_GYRO_CS MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_a SPI5 DEVID2 BMI088_ACCEL_CS MODE3 10*MHZ 10*MHZ +SPIDEV icm20608 SPI1 DEVID2 ICM_20602_CS MODE3 2*MHZ 7*MHZ +SPIDEV icm20948 SPI1 DEVID1 ICM_20948_CS MODE3 2*MHZ 7*MHZ + +# Enable RAMTROM parameter storage. +define HAL_WITH_RAMTRON 1 + +# Enable FAT filesystem support (needs a microSD defined via SDMMC). +define HAL_OS_FATFS_IO 1 + +# Control Zero has a TriColor LED, Red, Green, Blue +define HAL_HAVE_PIXRACER_LED + +# LED setup for PixracerLED driver +PB11 LED_R OUTPUT HIGH GPIO(0) +PB1 LED_G OUTPUT HIGH GPIO(1) +PB3 LED_B OUTPUT HIGH GPIO(2) + +define HAL_GPIO_A_LED_PIN 0 +define HAL_GPIO_B_LED_PIN 1 +define HAL_GPIO_C_LED_PIN 2 + +# DMA_PRIORITY SDMMC* +DMA_NOSHARE SPI1* SPI5* + +# 3 IMUs +IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_NONE +IMU Invensense SPI:icm20608 ROTATION_ROLL_180_YAW_90 +IMU Invensensev2 SPI:icm20948 ROTATION_ROLL_180_YAW_90 + +define HAL_DEFAULT_INS_FAST_SAMPLE 7 + +# 1 baro +BARO DPS280 SPI:dps310 + +# 1 compass +COMPASS AK09916:probe_ICM20948 0 ROTATION_ROLL_180 +define HAL_PROBE_EXTERNAL_I2C_COMPASSES diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png new file mode 100644 index 0000000000..fe2ea5b482 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md new file mode 100644 index 0000000000..ffdce53289 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md @@ -0,0 +1,80 @@ +# CUAV-7-Nano Flight Controller + +The CUAV-7-Nano flight controller produced by [CUAV](https://www.cuav.net). + +## Features + +- STM32H753 microcontroller +- 2 IMUs: IIM42652 and BMI088 +- builtin IST8310 magnetometer +- 2 barometers: BMP581 and ICP20100 +- microSD card slot +- USB-TypeC port +- 1 ETH network interface +- 5 UARTs plus USB +- 14 PWM outputs +- 3 I2C ports +- 3 CAN ports (two of which share a CAN bus and one is an independent CAN bus) +- Analog RSSI input +- 3.3V/5V configurable PWM ouput voltage + +## Pinout + +![CUAV-7-Nano_interface_definition.png](CUAV-7-Nano-pinout.png) + +## UART Mapping + +- SERIAL0 -> USB +- SERIAL1 -> UART7 (TELEM1) +- SERIAL2 -> UART5 (TELEM2) +- SERIAL3 -> USART1 (GPS&SAFETY) +- SERIAL4 -> UART8 (GPS2) +- SERIAL5 -> USART3 (FMU DEBUG) + +The TELEM1 and TELEM2 ports have RTS/CTS pins, the other UARTs do not have RTS/CTS. All have full DMA capability. + +## RC Input + +RC input is configured on the RCIN pin, at one end of the servo rail, marked RCIN in the above diagram. All ArduPilot supported unidirectional RC protocols can be input here including PPM. For bi-directional or half-duplex protocols, such as CRSF/ELRS a full UART will have to be used. + +## PWM Output + +The CUAV-7-Nano flight controller supports up to 14 PWM outputs. + +The 14 PWM outputs are in 6 groups: + +- PWM 1-4 in group1 (TIM5) +- PWM 5 and 6 in group2 (TIM4) +- PWM 7 and 8 in group3 (TIM1) +- PWM 9, 10 and 11 in group4 (TIM8) +- PWM 12 in group5 (TIM15) +- PWM 13 and 14 in group6 (TIM12) + +Channels within the same group need to use the same output rate. If any channel in a group uses DShot then all channels in the group need to use DShot. Outputs 1-4 support BDShot. + +First first 8 PWM outputs of CUAV-7-Nano flight controller support switching between 3.3V voltage and 5V voltage output. It can be switched to 5V by setting GPIO 80 high by setting up a Voltage-Level Translator to control it. + +## Battery Monitoring + +The board has a dedicated power monitor ports on 6 pin connectors(POWER A). The correct battery setting parameters are dependent on the type of power brick which is connected. + +## Compass + +The CUAV-7-Nano has an IST8310 builtin compass, but due to interference the board is usually used with an external I2C compass as part of a GPS/Compass combination. + +## Analog inputs + +The CUAV-7-Nano has 6 analog inputs. + +- ADC Pin9 -> Battery Voltage +- ADC Pin8 -> Battery Current Sensor +- ADC Pin5 -> Vdd 5V supply sense +- ADC Pin13 -> ADC 3.3V Sense +- ADC Pin12 -> ADC 6.6V Sense +- ADC Pin10 -> RSSI voltage monitoring + +## Loading Firmware + +Firmware for these boards can be found at https://firmware.ardupilot.org in sub-folders labeled "CUAV-7-Nano". + +The board comes pre-installed with an ArduPilot compatible bootloader, allowing the loading of *.apj firmware files with any ArduPilot compatible ground station. diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm new file mode 100644 index 0000000000..f46b1f17c1 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm @@ -0,0 +1,2 @@ +INS_ACCEL_FILTER 10 +CAN_P1_DRIVER 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat new file mode 100644 index 0000000000..62d0bae710 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat @@ -0,0 +1,101 @@ +# hw definition file for processing by chibios_hwdef.py +# for CUAV-7-Nano board + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# board ID for firmware load +APJ_BOARD_ID 7000 + +# bootloader is installed at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 128 + +# flash size +FLASH_SIZE_KB 2048 + +env OPTIMIZE -Os + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 UART7 UART5 USART3 + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PA9 VBUS INPUT OPENDRAIN + +# pins for SWD debugging +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# CS pins +PI9 ICM42652_CS CS +PH5 BMI088_A_CS CS +PG2 BMI088_G_CS CS +PD15 BMP581_CS CS +PG7 FRAM_CS CS + +# telem1 +PE8 UART7_TX UART7 +PF6 UART7_RX UART7 + +# telem2 +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 + +# debug uart +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 + +# armed indication +PE7 nARMED OUTPUT HIGH + +# start peripheral power off +PG4 VDD_5V_PERIPH_EN OUTPUT HIGH +PG10 VDD_5V_HIPOWER_EN OUTPUT HIGH + +# LEDs +PE3 LED_RED OUTPUT LOW # red +PE4 LED_ACTIVITY OUTPUT LOW # green +PE5 LED_BOOTLOADER OUTPUT LOW # blue +define HAL_LED_ON 0 + +define HAL_USE_EMPTY_STORAGE 1 +define HAL_STORAGE_SIZE 16384 + +# enable DFU by default +ENABLE_DFU_BOOT 1 + +# support flashing from SD card: +# power enable pins +PC13 VDD_3V3_SD_CARD_EN OUTPUT HIGH + +# FATFS support: +define CH_CFG_USE_MEMCORE 1 +define CH_CFG_USE_HEAP 1 +define CH_CFG_USE_SEMAPHORES 0 +define CH_CFG_USE_MUTEXES 1 +define CH_CFG_USE_DYNAMIC 1 +define CH_CFG_USE_WAITEXIT 1 +define CH_CFG_USE_REGISTRY 1 + +# microSD support +PD6 SDMMC2_CK SDMMC2 +PD7 SDMMC2_CMD SDMMC2 +PB14 SDMMC2_D0 SDMMC2 +PB15 SDMMC2_D1 SDMMC2 +PG11 SDMMC2_D2 SDMMC2 +PB4 SDMMC2_D3 SDMMC2 +define FATFS_HAL_DEVICE SDCD2 + +DMA_PRIORITY SDMMC* USART6* ADC* UART* USART* SPI* TIM* + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +define AP_BOOTLOADER_FLASH_FROM_SD_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat new file mode 100644 index 0000000000..eea49e50f0 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat @@ -0,0 +1,294 @@ +# hw definition file for processing by chibios_hwdef.py +# for CUAV-7-Nano board + +# default to all pins low to avoid ESD issues +DEFAULTGPIO OUTPUT LOW PULLDOWN + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# ChibiOS system timer +STM32_ST_USE_TIMER 2 + +# board ID for firmware load +APJ_BOARD_ID 7000 + +# bootloader takes first sector +FLASH_RESERVE_START_KB 128 + +# to be compatible with the px4 bootloader we need +# to use a different RAM_MAP +env USE_ALT_RAM_MAP 1 + +# flash size +FLASH_SIZE_KB 2048 + +# with 2M flash we can afford to optimize for speed +env OPTIMIZE -O2 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 UART7 UART5 USART1 UART8 USART3 OTG2 + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PA9 VBUS INPUT OPENDRAIN + +# pins for SWD debugging +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# telem1 +PE8 UART7_TX UART7 +PF6 UART7_RX UART7 +PF8 UART7_RTS UART7 +PE10 UART7_CTS UART7 + +# telem2 +PC8 UART5_RTS UART5 +PC9 UART5_CTS UART5 +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 + +# GPS1 +PB6 USART1_TX USART1 +PB7 USART1_RX USART1 + +# GPS2 +PE0 UART8_RX UART8 +PE1 UART8_TX UART8 + +# debug uart +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 + +# uart6, RX only, RC input, if no IOMCU +PC7 USART6_RX USART6 + +# ethernet +PC1 ETH_MDC ETH1 +PA2 ETH_MDIO ETH1 +PC4 ETH_RMII_RXD0 ETH1 +PC5 ETH_RMII_RXD1 ETH1 +PG13 ETH_RMII_TXD0 ETH1 +PG12 ETH_RMII_TXD1 ETH1 +PB11 ETH_RMII_TX_EN ETH1 +PA7 ETH_RMII_CRS_DV ETH1 +PA1 ETH_RMII_REF_CLK ETH1 +#PG15 ETH_POWER_EN ETH1 + +PG15 Ethernet_PWR_EN OUTPUT HIGH # disable power on ethernet + +define BOARD_PHY_ID MII_LAN8742A_ID +define BOARD_PHY_RMII + +# ADC +PA0 SCALED1_V3V3 ADC1 SCALE(2) +PA4 SCALED2_V3V3 ADC1 SCALE(2) +PB1 VDD_5V_SENS ADC1 SCALE(2) +PC0 RSSI_IN ADC1 SCALE(1) +PF12 FMU_SERVORAIL_VCC_SENS ADC1 SCALE(3) + +# analog in +PC2 BATT_VOLTAGE_SENS ADC1 SCALE(1) ANALOG(9) +PB0 BATT_CURRENT_SENS ADC1 SCALE(1) ANALOG(8) + +# pin7 on AD&IO, analog 12 +PF3 ADC3_6V6 ADC3 SCALE(2) ANALOG(12) + +# pin6 on AD&IO, analog 13 +PC3 ADC1_3V3 ADC1 SCALE(1) ANALOG(13) + +define HAL_BATT_VOLT_PIN 9 +define HAL_BATT_CURR_PIN 8 +define HAL_BATT_VOLT_SCALE 10.1 +define HAL_BATT_CURR_SCALE 17.0 + +# SPI1 - IIM42652 +PA5 SPI1_SCK SPI1 +PB5 SPI1_MOSI SPI1 +PG9 SPI1_MISO SPI1 +PI9 IIM42652_CS CS +PF2 IIM42652_DRDY INPUT + +# SPI2 - BMI088 +PI1 SPI2_SCK SPI2 +PI2 SPI2_MISO SPI2 +PI3 SPI2_MOSI SPI2 +PH5 BMI088_A_CS CS +PG2 BMI088_G_CS CS +PG3 BMI088_DRDY_GYR INPUT +PA10 BMI088_DRDY_ACC INPUT + +# SPI4 - BMP581 +PE12 SPI4_SCK SPI4 +PE13 SPI4_MISO SPI4 +PE14 SPI4_MOSI SPI4 +PD15 BMP581_CS CS +PG1 BMP581_DRDY INPUT + +# SPI5 - FRAM +PF7 SPI5_SCK SPI5 +PH7 SPI5_MISO SPI5 +PF11 SPI5_MOSI SPI5 +PG7 FRAM_CS CS + +# SPI devices +SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ +SPIDEV iim42652 SPI1 DEVID1 IIM42652_CS MODE3 2*MHZ 8*MHZ +SPIDEV ramtron SPI5 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ +SPIDEV bmp581 SPI4 DEVID1 BMP581_CS MODE3 7.5*MHZ 12*MHZ + +# PWM output pins +PI0 TIM5_CH4 TIM5 PWM(1) GPIO(50) BIDIR +PH12 TIM5_CH3 TIM5 PWM(2) GPIO(51) +PH11 TIM5_CH2 TIM5 PWM(3) GPIO(52) BIDIR +PH10 TIM5_CH1 TIM5 PWM(4) GPIO(53) +PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) +PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55) +PE11 TIM1_CH2 TIM1 PWM(7) GPIO(56) +PE9 TIM1_CH1 TIM1 PWM(8) GPIO(57) +PI6 TIM8_CH2 TIM8 PWM(9) GPIO(58) +PI7 TIM8_CH3 TIM8 PWM(10) GPIO(59) +PI5 TIM8_CH1 TIM8 PWM(11) GPIO(60) +PE6 TIM15_CH2 TIM15 PWM(12) GPIO(61) + +# we need to disable DMA on the last 2 FMU channels +# as timer 12 doesn't have a TIMn_UP DMA option +PH6 TIM12_CH1 TIM12 PWM(13) GPIO(62) NODMA +PH9 TIM12_CH2 TIM12 PWM(14) GPIO(63) NODMA + +# CAN bus +PD0 CAN1_RX CAN1 +PD1 CAN1_TX CAN1 + +PB12 CAN2_RX CAN2 +PB13 CAN2_TX CAN2 + +# control for silent (no output) for CAN +PE2 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(70) +PI8 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(71) + +# I2C buses + +# I2C1, GPS+MAG +PB9 I2C1_SDA I2C1 +PB8 I2C1_SCL I2C1 + +# I2C2, GPS2+MAG +PF1 I2C2_SCL I2C2 +PF0 I2C2_SDA I2C2 + +# I2C3, IST8310 +PA8 I2C3_SCL I2C3 +PH8 I2C3_SDA I2C3 + +# I2C4, ICM20100 +PF14 I2C4_SCL I2C4 +PF15 I2C4_SDA I2C4 +PG5 DRDY1_ICP20100 INPUT + +# order of I2C buses +I2C_ORDER I2C3 I2C4 I2C1 I2C2 +define HAL_I2C_INTERNAL_MASK 3 + +# armed indication +PE7 nARMED OUTPUT HIGH + +# power enable pins +PC13 VDD_3V3_SD_CARD_EN OUTPUT HIGH +PI11 VDD_3V3_SENSORS1_EN OUTPUT HIGH +PF4 VDD_3V3_SENSORS2_EN OUTPUT HIGH +PH2 VDD_3V3_SENSORS3_EN OUTPUT HIGH + +# start peripheral power off, then enable after init +# this prevents a problem with radios that use RTS for +# bootloader hold +PG10 VDD_5V_HIPOWER_EN OUTPUT HIGH +PG4 VDD_5V_PERIPH_EN OUTPUT HIGH + +# power sensing +PE15 VDD_5V_PERIPH_nOC INPUT PULLUP +PF13 VDD_5V_HIPOWER_nOC INPUT PULLUP + +# Pin for PWM Voltage Selection, 0 means 3.3v, 1 means 5v, 3.3v default +PG8 PWM_VOLT_SEL OUTPUT LOW GPIO(80) +define HAL_GPIO_PWM_VOLT_PIN 80 +define HAL_GPIO_PWM_VOLT_3v3 0 + +# microSD support +PD6 SDMMC2_CK SDMMC2 +PD7 SDMMC2_CMD SDMMC2 +PB14 SDMMC2_D0 SDMMC2 +PB15 SDMMC2_D1 SDMMC2 +PG11 SDMMC2_D2 SDMMC2 +PB4 SDMMC2_D3 SDMMC2 +define FATFS_HAL_DEVICE SDCD2 + +# safety +PD10 LED_SAFETY OUTPUT +PF5 SAFETY_IN INPUT PULLDOWN + +# LEDs +PE3 LED_RED OUTPUT GPIO(90) LOW +PE4 LED_GREEN OUTPUT GPIO(91) LOW +PE5 LED_BLUE OUTPUT GPIO(92) LOW + +# setup for "pixracer" RGB LEDs +define AP_NOTIFY_GPIO_LED_RGB_RED_PIN 90 +define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 91 +define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 92 + +define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 + +# ID pins +PG0 HW_VER_REV_DRIVE OUTPUT LOW +# PH3 HW_VER_SENS ADC3 SCALE(1) +# PH4 HW_REV_SENS ADC3 SCALE(1) + +# PWM output for buzzer +PF9 TIM14_CH1 TIM14 GPIO(77) ALARM + +# RC input +PC6 TIM3_CH1 TIM3 RCININT PULLDOWN LOW + +# other I2C devices +# 24LC64T eeprom 64Kbit, address 0x50 on I2C4 + +BARO BMP581 SPI:bmp581 +BARO ICP201XX I2C:1:0x63 + +# compass +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_SKIP_AUTO_INTERNAL_I2C_PROBE +define HAL_COMPASS_DISABLE_IST8310_INTERNAL_PROBE +define AP_COMPASS_IST8310_DEFAULT_ROTATION ROTATION_ROLL_180_YAW_90 +COMPASS IST8310 I2C:0:0x0E false ROTATION_ROLL_90_YAW_90 +COMPASS IST8310 I2C:ALL_EXTERNAL:0x0E true ROTATION_ROLL_180_YAW_90 + +# IMUs +IMU Invensensev3 SPI:iim42652 ROTATION_ROLL_90_YAW_90 +IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_90 + +define HAL_DEFAULT_INS_FAST_SAMPLE 3 + +# enable RAMTROM parameter storage +define HAL_STORAGE_SIZE 32768 +define HAL_WITH_RAMTRON 1 + +# allow to have have a dedicated safety switch pin +define HAL_HAVE_SAFETY_SWITCH 1 + +DMA_PRIORITY TIM5* SDMMC* USART6* ADC* UART* USART* SPI* TIM* + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +# enable DFU reboot for installing bootloader +# note that if firmware is build with --secure-bl then DFU is +# disabled +ENABLE_DFU_BOOT 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat index 31b8c0a884..787ddce67e 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat @@ -92,8 +92,6 @@ PB8 I2C1_SCL I2C1 PB9 I2C1_SDA I2C1 # Servos -PB1 SERVO1 OUTPUT GPIO(70) LOW -define RELAY2_PIN_DEFAULT 70 PB14 CAMERA1 OUTPUT GPIO(71) LOW define RELAY3_PIN_DEFAULT 71 @@ -122,6 +120,10 @@ PB10 TIM2_CH3 TIM2 PWM(8) GPIO(57) # M8 PB7 TIM4_CH2 TIM4 PWM(9) GPIO(58) # LED +# Servos +PB1 TIM3_CH4 TIM3 PWM(10) GPIO(70) NODMA # S1 / M10 +PB0 TIM3_CH3 TIM3 PWM(11) GPIO(72) NODMA # S2 / M11 + # LEDs PA13 LED0 OUTPUT LOW GPIO(90) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md new file mode 100644 index 0000000000..9cb60c8180 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md @@ -0,0 +1,105 @@ +# iFlight 2RAW H743 Flight Controller + +The iFlight 2RAW H743 is a flight controller produced by [iFlight](https://shop.iflight.com/Thunder-H7-Flight-Controller-Pro2200). + +## Features + + - MCU - STM32H743 32-bit processor running at 480 MHz + - IMU - ICM42688P + - Barometer - SPL06-001 + - Onboard Flash: 1GBit exposed as microSD card + - 6x UARTs + - 9x PWM Outputs (8 Motor Output, 1 LED) + - Battery input voltage: 2S-6S + - BEC 5V 1.5A + - BEC 10V 1.5A + +## Pinout + +![iFlight 2RAW H743 Board Top](Thunder-H7-1.png "iFlight 2RAW H743 Top") +![iFlight 2RAW H743 Board Bottom](Thunder-H7-2.png "iFlight 2RAW H743 Bottom") + +## UART Mapping + +The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the +receive pin for UARTn. The Tn pin is the transmit pin for UARTn. + + - SERIAL0 -> USB + - SERIAL1 -> UART1 (VTX HD, DMA-enabled) + - SERIAL2 -> UART2 (RX, DMA-enabled) + - SERIAL3 -> UART3 (GPS, DMA-enabled) + - SERIAL4 -> UART4 (GPS, DMA-enabled) + - SERIAL6 -> UART6 (ESC Telemetry) + +## RC Input + +RC input is configured on the R2 (UART2_RX) pin. It supports all serial RC +protocols. For protocols requiring half-duplex serial to transmit +telemetry (such as FPort) you should setup SERIAL3 as an RC input serial port, +with half-duplex, pin-swap and inversion enabled. + +## FrSky Telemetry + +FrSky Telemetry is supported using the T3 pin (UART3 transmit). You need to set the following parameters to enable support for FrSky S.PORT + + - SERIAL3_PROTOCOL 10 + - SERIAL3_OPTIONS 7 + +## OSD Support + +The iFlight 2RAW H743 supports MSP DisplayPort OSD using OSD_TYPE 5 + +## PWM Output + +The iFlight 2RAW H743 supports up to 9 PWM outputs. The pads for motor output +M1 to M8 are provided in the motor connector, plus M9 on a separate pad for LED strip +or another PWM output. + +The PWM is in 5 groups: + + - PWM 1-2 in group1 + - PWM 3-6 in group2 + - PWM 7-8 in group3 + - PWM 9 in group4 + +Channels within the same group need to use the same output rate. If +any channel in a group uses DShot then all channels in the group need +to use DShot. Channels 1-8 support bi-directional dshot. + +## Battery Monitoring + +The board has a builting voltage and current sensor. The current +sensor can read up to 130 Amps. The voltage sensor can handle up to 6S +LiPo batteries. + +The correct battery setting parameters are: + + - BATT_MONITOR 4 + - BATT_VOLT_PIN 11 + - BATT_CURR_PIN 13 + - BATT_VOLT_MULT 11.1 + - BATT_AMP_PERVLT 64 + +## Compass + +The iFlight 2RAW H743 does not have a builtin compass, but you can attach an external compass using I2C on the SDA and SCL pads. + +## VTX power control +GPIO 81 controls the VTX BEC output to pins marked "10V". Setting this GPIO low removes voltage supply to pins. +By default RELAY2 is configured to control this pin and sets the GPIO high. + +## Logging + +Logging is via a 1GBit flash chip exposed via a microSD interface. In order to be used you must format the card using mission planner +after the first time you have loaded the firmware + +## Loading Firmware + +Initial firmware load can be done with DFU by plugging in USB with the +bootloader button pressed. Then you should load the "with_bl.hex" +firmware, using your favourite DFU loading tool. + +Once the initial firmware is loaded you can update the firmware using +any ArduPilot ground station software. Updates should be done with the +*.apj firmware files. + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-1.png b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-1.png new file mode 100644 index 0000000000..75ff0f8d10 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-1.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-2.png b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-2.png new file mode 100644 index 0000000000..29d2020f2c Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-2.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/defaults.parm new file mode 100644 index 0000000000..a328b10088 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/defaults.parm @@ -0,0 +1,4 @@ +# setup for LEDs on chan9 +SERVO9_FUNCTION 120 +# Default VTX power to on +RELAY2_DEFAULT 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef-bl.dat new file mode 100644 index 0000000000..0c899d3251 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef-bl.dat @@ -0,0 +1,42 @@ + +# hw definition file for processing by chibios_hwdef.py +# for IFLIGHT_2RAW_H743 hardware. +# thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# board ID for firmware load +APJ_BOARD_ID AP_HW_2RAWH743 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +FLASH_SIZE_KB 2048 + +# bootloader starts at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 384 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 + +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PD11 CAM_SW OUTPUT LOW +PD10 VTX_PWR OUTPUT HIGH + +# Chip select pins +PA15 SDCARD1_CS CS +PB12 OSD1_CS CS +PC15 GYRO1_CS CS + +PA8 LED_BOOTLOADER OUTPUT LOW +define HAL_LED_ON 0 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef.dat new file mode 100644 index 0000000000..99306d4d2f --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef.dat @@ -0,0 +1,149 @@ + +# hw definition file for processing by chibios_hwdef.py +# for IFLIGHT_2RAW_H743 hardware. +# thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# board ID for firmware load +APJ_BOARD_ID AP_HW_2RAWH743 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +MCU_CLOCKRATE_MHZ 480 + +FLASH_SIZE_KB 2048 + +# bootloader takes first sector +FLASH_RESERVE_START_KB 384 + +define HAL_STORAGE_SIZE 16384 +define STORAGE_FLASH_PAGE 1 + +STM32_ST_USE_TIMER 2 + +# SPI devices + +# SPI1 +PA5 SPI1_SCK SPI1 +PA6 SPI1_MISO SPI1 +PD7 SPI1_MOSI SPI1 + +# SPI2 +PB13 SPI2_SCK SPI2 +PB14 SPI2_MISO SPI2 +PB15 SPI2_MOSI SPI2 + +# SPI3 +PC12 SPI3_MOSI SPI3 +PC11 SPI3_MISO SPI3 +PC10 SPI3_SCK SPI3 + +# Chip select pins +PA15 SDCARD1_CS CS +PB12 OSD1_CS CS +PC15 GYRO1_CS CS + +# SERIAL ports +SERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 EMPTY USART6 OTG2 +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# USART1 (VTX HD) +PA10 USART1_RX USART1 +PA9 USART1_TX USART1 +define DEFAULT_SERIAL1_PROTOCOL SerialProtocol_MSP_DisplayPort +define OSD_ENABLED 1 +define HAL_OSD_TYPE_DEFAULT 5 + +# USART2 (RX) +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 +define DEFAULT_SERIAL2_PROTOCOL SerialProtocol_RCIN + +# USART3 (GPS) +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 +define DEFAULT_SERIAL3_PROTOCOL SerialProtocol_GPS + +# UART4 (GPS) +PB8 UART4_RX UART4 +PB9 UART4_TX UART4 +define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_GPS + +# USART6 +PC6 USART6_TX USART6 NODMA +PC7 USART6_RX USART6 NODMA +define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_ESCTelemetry + +# I2C ports +I2C_ORDER I2C1 I2C2 +# I2C1 +PB6 I2C1_SCL I2C1 +PB7 I2C1_SDA I2C1 + +# I2C2 +PB10 I2C2_SCL I2C2 +PB11 I2C2_SDA I2C2 + +# ADC ports + +# ADC1 +PC0 BATT_VOLTAGE_SENS ADC1 SCALE(1) +define HAL_BATT_VOLT_PIN 10 +define HAL_BATT_VOLT_SCALE 11.0 +PC1 BATT_CURRENT_SENS ADC1 SCALE(1) +define HAL_BATT_CURR_PIN 11 +define HAL_BATT_CURR_SCALE 40.0 +PC5 RSSI_ADC ADC1 +define BOARD_RSSI_ANA_PIN 8 +define HAL_BATT_MONITOR_DEFAULT 4 + +# MOTORS +PB0 TIM3_CH3 TIM3 PWM(1) GPIO(50) BIDIR # M1 +PB1 TIM3_CH4 TIM3 PWM(2) GPIO(51) # M2 +PA0 TIM5_CH1 TIM5 PWM(3) GPIO(52) BIDIR # M3 +PA1 TIM5_CH2 TIM5 PWM(4) GPIO(53) # M4 +PA2 TIM5_CH3 TIM5 PWM(5) GPIO(54) BIDIR # M5 +PA3 TIM5_CH4 TIM5 PWM(6) GPIO(55) # M6 +PD12 TIM4_CH1 TIM4 PWM(7) GPIO(56) BIDIR # M7 +PD13 TIM4_CH2 TIM4 PWM(8) GPIO(57) # M8 + +# LEDs +PA8 TIM1_CH1 TIM1 PWM(9) GPIO(58) # M9 + +# VTX power switch +PD10 VTX_PWR OUTPUT LOW GPIO(81) +define RELAY2_PIN_DEFAULT 81 + +PE3 LED0 OUTPUT LOW GPIO(90) +define HAL_GPIO_A_LED_PIN 90 + +PE4 LED1 OUTPUT LOW GPIO(91) +define HAL_GPIO_B_LED_PIN 91 + +BARO SPL06 I2C:1:0x76 + +# SPI setup +SPIDEV imu1 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 16*MHZ +SPIDEV sdcard SPI3 DEVID1 SDCARD1_CS MODE0 400*KHZ 25*MHZ + +# IMU setup +IMU Invensensev3 SPI:imu1 ROTATION_ROLL_180 + +DMA_NOSHARE TIM3_UP TIM5_UP TIM4_UP SPI1* +DMA_PRIORITY TIM3_UP TIM5_UP TIM4_UP SPI1* + +# no built-in compass, but probe the i2c bus for all possible +# external compass types +define ALLOW_ARM_NO_COMPASS +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_I2C_INTERNAL_MASK 0 +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 +define HAL_DEFAULT_INS_FAST_SAMPLE 1 +# Motor order implies Betaflight/X for standard ESCs +define HAL_FRAME_TYPE_DEFAULT 12 +define HAL_OS_FATFS_IO 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/MFT-SEMA100_BottomView.jpeg b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/MFT-SEMA100_BottomView.jpeg new file mode 100644 index 0000000000..d29fe9d108 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/MFT-SEMA100_BottomView.jpeg differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/MFT-SEMA100_TopView.jpeg b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/MFT-SEMA100_TopView.jpeg new file mode 100644 index 0000000000..7f53e471f7 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/MFT-SEMA100_TopView.jpeg differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/README.md b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/README.md new file mode 100644 index 0000000000..0c8b397380 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/README.md @@ -0,0 +1,111 @@ +# MFT-SEMA100 Flight Controller + +The MFT-SEMA100 is a flight controller designed and produced by MFT Savunma ve Havacılık LTD. ŞTİ. + +## Features + + - STM32H743 microcontroller + - BMI088 IMU + - BMP390 barometer + - LIB3MDL magnetometer + - MicroSD Card Slot + - 5 UARTs + - 12 PWM outputs + - 2 CANs + - 2 I2Cs + +## Physical + +![MFT-SEMA100_Top_View](MFT-SEMA100_TopView.jpeg) + +![MFT-SEMA100_Bottom_View](MFT-SEMA100_BottomView.jpeg) + +## UART Mapping + + - SERIAL0 -> USB + - SERIAL1 -> UART1 (MAVLink2, DMA-enabled) + - SERIAL2 -> UART2 (MAVLink2, DMA-enabled) + - SERIAL3 -> UART3 (GPS, DMA-enabled) + - SERIAL4 -> UART5 (GPS2, DMA-enabled) + - SERIAL5 -> UART7 (DMA-enabled) + - SERIAL6 -> UART8 (RX only) + +## Connectors + +All pins are 2.54 mm Pin Headers + +## Power Connector + +XT30-PW 5V Input for powering the board + +## RC Input + +The default RC input is configured on the UART8 RCIN pin. + + +## PWM Output + +The MFT-SEMA100 supports up to 12 PWM outputs. + +PWM outputs are grouped and every group must use the same output protocol: + +1, 2 are Group 1; + +3, 4 are Group 2; + +5, 6, 7, 8 are Group 3; + +9, 10 are Group 4; + +11, 12 are Group 5; + +Channels within the same group need to use the same output rate. + +## GPIOs +The numbering of the GPIOs for PIN variables in ArduPilot is: + +PWM1 50 +PWM2 51 +PWM3 52 +PWM4 53 +PWM5 54 +PWM6 55 +PWM7 56 +PWM8 57 + +PWM9 58 +PWM10 59 +PWM11 60 +PWM12 61 + + +## Battery Monitoring + +The board has a internal voltage sensor and connections on the ESC connector for an external current sensor input. +The voltage sensor can handle up to 6S LiPo batteries. + +The default battery parameters are: + + - BATT_MONITOR 4 + - BATT_VOLT_PIN 19 + - BATT_CURR_PIN 8 + - BATT_VOLT_MULT 10 + - BATT_CURR_SCALE 10 + +## Compass + +The MFT-SEMA100 has a built-in compass sensor (LIB3MDL), and you can also attach an external compass using I2C on the SDA and SCL connector. + +## IMU Heater + +The IMU heater in the MFT-SEMA100 can be controlled with the BRD_HEAT_TARG parameter, which is in degrees C. + +## Mechanical + + - Mounting: 55 x 56 mm, Φ4 mm + - Dimensions: 64 x 65 x 10 mm + - Weight: 15g + +## Loading Firmware + +The board comes pre-installed with an ArduPilot compatible bootloader, allowing the loading of *.apj firmware files with any ArduPilot compatible ground station. diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/defaults.parm new file mode 100644 index 0000000000..8fbf2c05bc --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/defaults.parm @@ -0,0 +1,4 @@ +# setup the temperature compensation +BRD_HEAT_TARG 45 +BRD_HEAT_P 50 +BRD_HEAT_I 0.07 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/hwdef-bl.dat new file mode 100644 index 0000000000..3d0ffb248a --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/hwdef-bl.dat @@ -0,0 +1,51 @@ +# hw definition file for processing by chibios_hwdef.py +# for MFT-SEMA100 board + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# board ID for firmware load +APJ_BOARD_ID 2000 + +FLASH_SIZE_KB 2048 + +# bootloader is installed at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +# the H743 has 128k sectors +FLASH_BOOTLOADER_LOAD_KB 128 + +# ChibiOS system timer +STM32_ST_USE_TIMER 2 + + + +PC13 LED_BOOTLOADER OUTPUT HIGH GPIO(0) +PC6 LED_ACTIVITY OUTPUT HIGH GPIO(1) # optional + + +define HAL_LED_ON 1 + + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PB3 SPI1_SCK SPI1 +PB4 SPI1_MISO SPI1 +PD7 SPI1_MOSI SPI1 +PC4 SDCARD_DETECT INPUT + +# Add CS pins to ensure they are high in bootloader +PE3 BMI088_A_CS CS +PE4 BMI088_G_CS CS +PA15 SDCARD_CS CS diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/hwdef.dat new file mode 100644 index 0000000000..01406f2bf2 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100/hwdef.dat @@ -0,0 +1,217 @@ +# hw definition file for processing by chibios_hwdef.py for MFT-SEMA100 + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# board ID for firmware load +APJ_BOARD_ID 2000 + +FLASH_SIZE_KB 2048 + +# with 2M flash we can afford to optimize for speed +env OPTIMIZE -O2 + +# ChibiOS system timer +STM32_ST_USE_TIMER 2 + +USB__STRING_MANUFACTURER "MFT" +USB_STRING_PRODUCT "MFT-SEMA100" + +# bootloader takes first sector +FLASH_RESERVE_START_KB 128 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 USART1 USART2 USART3 UART5 UART7 UART8 OTG2 + +# now we define the pins that USB is connected on +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# Port switching for USB HS and FS,high = USB_FS , LOW = USB_HS +PH15 USB_HS_ENABLE OUTPUT HIGH +define USB_HW_ENABLE_HS 0 + +# these are the pins for SWD debugging with a STlinkv2 or black-magic probe +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# SPI1 - SD CARD +PB3 SPI1_SCK SPI1 +PB4 SPI1_MISO SPI1 +PD7 SPI1_MOSI SPI1 +PA15 SDCARD_CS CS +PC4 SDCARD_DETECT INPUT + +# SPI2 - External +PD3 SPI2_SCK SPI2 +PC2 SPI2_MISO SPI2 +PC3 SPI2_MOSI SPI2 + + +# SPI4 - GYRO +PE2 SPI4_SCK SPI4 +PE5 SPI4_MISO SPI4 +PE6 SPI4_MOSI SPI4 + +# sensor +PE3 BMI088_A_CS CS +PE4 BMI088_G_CS CS + + +# I2C buses + + +#I2C1 is External +PB8 I2C1_SCL I2C1 +PB7 I2C1_SDA I2C1 + +# I2C2 for onboard mag +PB10 I2C2_SCL I2C2 +PB11 I2C2_SDA I2C2 + +# I2C3 for onboard BAROMETER +PA8 I2C3_SCL I2C3 +PC9 I2C3_SDA I2C3 + +# I2C4 is External +PD12 I2C4_SCL I2C4 +PD13 I2C4_SDA I2C4 + +# order of I2C buses +I2C_ORDER I2C2 I2C3 I2C4 I2C1 + + +define HAL_I2C_INTERNAL_MASK 1 + +# drdy pins +PE11 DRDY1_LIS3MDL INPUT + + +# UARTs +#USART1 TX RX 1 +PA10 USART1_RX USART1 +PA9 USART1_TX USART1 + +# USART2 is TX RX 2 +PD6 USART2_RX USART2 +PD5 USART2_TX USART2 + +# USART3 is TX RX 3 +PD9 USART3_RX USART3 NODMA +PD8 USART3_TX USART3 NODMA + +# UART5 is TX RX 4 +PD2 UART5_RX UART5 NODMA +PC12 UART5_TX UART5 NODMA + +# UART7 is TX RX 5 +PE7 UART7_RX UART7 +PE8 UART7_TX UART7 +PE10 UART7_CTS UART7 +PE9 UART7_RTS UART7 + + +# SBUS, DSM port +PE0 UART8_RX UART8 +define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN + + + +# PWM AUX channels +PB0 TIM1_CH2N TIM1 PWM(1) GPIO(50) +PB1 TIM1_CH3N TIM1 PWM(2) GPIO(51) +PC7 TIM8_CH2 TIM8 PWM(3) GPIO(52) +PC8 TIM8_CH3 TIM8 PWM(4) GPIO(53) +PA0 TIM5_CH1 TIM5 PWM(5) GPIO(54) +PA1 TIM5_CH2 TIM5 PWM(6) GPIO(55) +PA2 TIM5_CH3 TIM5 PWM(7) GPIO(56) +PA3 TIM5_CH4 TIM5 PWM(8) GPIO(57) + +PD14 TIM4_CH3 TIM4 PWM(9) GPIO(58) +PD15 TIM4_CH4 TIM4 PWM(10) GPIO(59) +PA6 TIM3_CH1 TIM3 PWM(11) GPIO(60) +PA7 TIM3_CH2 TIM3 PWM(12) GPIO(61) + + +# allow for 14 PWMs by default + +# PWM output for buzzer +PB15 TIM12_CH2 TIM12 GPIO(77) ALARM + + +# analog in +PA5 BATT_VOLTAGE_SENS ADC1 SCALE(1) +PC5 BATT_CURRENT_SENS ADC1 SCALE(1) + + +define HAL_BATT_MONITOR_DEFAULT 4 +define HAL_BATT_VOLT_PIN 19 +define HAL_BATT_VOLT_SCALE 10 + +#define HAL_BATT2_VOLT_PIN 15 +#define HAL_BATT2_VOLT_SCALE 9 + +define HAL_BATT_CURR_PIN 8 +define HAL_BATT_CURR_SCALE 10 + + + +# CAN bus +PD0 CAN1_RX CAN1 +PD1 CAN1_TX CAN1 + +# 2nd CAN bus +PB5 CAN2_RX CAN2 +PB6 CAN2_TX CAN2 + +# control for silent (no output) for CAN +PD4 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(70) +PD11 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(71) + +# GPIOs + +PD10 HEATER_EN OUTPUT LOW GPIO(80) +define HAL_HEATER_GPIO_PIN 80 +define HAL_HAVE_IMU_HEATER 1 + + +#BARO +BARO BMP388 I2C:1:0x77 + +# SPI devices +SPIDEV bmi088_a SPI4 DEVID1 BMI088_A_CS MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_g SPI4 DEVID2 BMI088_G_CS MODE3 10*MHZ 10*MHZ +SPIDEV sdcard SPI1 DEVID1 SDCARD_CS MODE0 400*KHZ 25*MHZ + + +# IMU +IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_180_YAW_270 + +define HAL_DEFAULT_INS_FAST_SAMPLE 7 + +# compasses +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +COMPASS LIS3MDL I2C:ALL_INTERNAL:0x1C false ROTATION_NONE + + +#LEDs +PC13 LED_BOOTLOADER OUTPUT HIGH GPIO(0) +PC6 LED_ACTIVITY OUTPUT LOW GPIO(1) # optional + +define HAL_GPIO_A_LED_PIN 0 +define HAL_GPIO_B_LED_PIN 1 + +#STORAGE +STORAGE_FLASH_PAGE 14 +define HAL_STORAGE_SIZE 32768 + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +DMA_PRIORITY ADC* SPI4* TIM*UP* +DMA_NOSHARE SPI4* TIM*UP* + +define DEFAULT_NTF_LED_TYPES 743 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat index 7872fc8e50..b35390b3aa 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat @@ -177,7 +177,7 @@ define HAL_SPEKTRUM_PWR_ENABLED 1 # power sensing PE3 VDD_5V_PERIPH_nOC INPUT PULLUP -PF13 VDD_5V_HIPOWER_nOC INPUT PULLUP +PC11 VDD_5V_HIPOWER_nOC INPUT PULLUP PA15 VDD_BRICK_nVALID INPUT PULLUP PB12 VDD_BRICK2_nVALID INPUT PULLUP diff --git a/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat index 211d73b8e5..c6df75e578 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat @@ -146,9 +146,9 @@ ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin # IMU setup SPIDEV icm42688 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 16*MHZ -SPIDEV bmi270 SPI4 DEVID1 GYRO2_CS MODE3 1*MHZ 8*MHZ +SPIDEV bmi270 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 8*MHZ -IMU BMI270 SPI:bmi270 ROTATION_PITCH_180_YAW_90 +IMU BMI270 SPI:bmi270 ROTATION_PITCH_180 IMU Invensensev3 SPI:icm42688 ROTATION_PITCH_180_YAW_90 DMA_NOSHARE TIM5_UP TIM3_UP TIM8_UP SPI1* SPI4* diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/README.md b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/README.md new file mode 100644 index 0000000000..ff9a42c1f4 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/README.md @@ -0,0 +1,101 @@ +## ZeroOneX6 Flight Controller +The ZeroOne X6 is a flight controller manufactured by ZeroOne, which is based on the open-source FMU v6X architecture and Pixhawk Autopilot Bus open source specifications. + +## Features: +- Separate flight control core design. +- MCU + STM32H753IIK6 32-bit processor running at 480MHz + 2MB Flash + 1MB RAM +- IO MCU + STM32F103 +- Sensors +- IMU: + Internal Vibration Isolation for IMUs + IMU constant temperature heating(1 W heating power). + With Triple Synced IMUs, BalancedGyro technology, low noise and more shock-resistant: + IMU1-ICM45686(With vibration isolation) + IMU2-BMI088(With vibration isolation) + IMU3- ICM45686(No vibration isolation) +- Baro: + Two barometers:2 x ICP20100 + Magnetometer: Builtin RM3100 magnetometer + +## Pinout +![ZeroOneX6 Pinout](https://github.com/ZeroOne-Aero/ardupilot/blob/zeroOneBootLoader/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/ZeroOneX6Pinout.jpg "ZeroOneX6") + + +## UART Mapping +The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the receive pin for UARTn. The Tn pin is the transmit pin for UARTn. +| Name | Function | MCU PINS | DMA | +| :-----: | :------: | :------: | :------:| +| SERIAL0 | OTG1 | USB | +| SERIAL1 | Telem1 | UART7 |DMA Enabled | +| SERIAL2 | Telem2 | UART5 |DMA Enabled | +| SERIAL3 | GPS1 | USART1 |DMA Enabled | +| SERIAL4 | GPS2 | UART8 |DMA Enabled | +| SERIAL5 | Telem3 | USART2 |DMA Enabled | +| SERIAL6 | UART4 | UART4 |DMA Enabled | +| SERIAL7 |FMU DEBUG | USART3 |DMA Enabled | +| SERIAL8 | OTG-SLCAN| USB | + +## RC Input +The remote control signal should be connected to the SBUS RC IN port or DSM/PPM RC Port.It will support ALL unidirectional RC protocols. + +## PWM Output +The X6 flight controller supports up to 16 PWM outputs. +First 8 outputs (labelled 1 to 8) are controlled by a dedicated STM32F103 IO controller. +The remaining 8 outputs (labelled 9 to 16) are the "auxiliary" outputs. These are directly attached to the STM32H753 FMU controller . +All 16 outputs support normal PWM output formats. All 16 outputs support DShot, except 15 and 16. + +The 8 IO PWM outputs are in 4 groups: +- Outputs 1 and 2 in group1 +- Outputs 3 and 4 in group2 +- Outputs 5, 6, 7 and 8 in group3 + +The 8 FMU PWM outputs are in 4 groups: +- Outputs 1, 2, 3 and 4 in group1 +- Outputs 5 and 6 in group2 +- Outputs 7 and 8 in group3 + +Channels within the same group need to use the same output rate. If any channel in a group uses DShot then all channels in the group need to use DShot. + +## GPIO +All PWM outputs can be used as GPIOs (relays, camera, RPM etc). To use them you need to set the output’s SERVOx_FUNCTION to -1. The numbering of the GPIOs for PIN variables in ArduPilot is: + + + + + + + + + + + + + + + + + +
IO Pins FMU Pins
Name Value Option Name Value Option
M1 101 MainOut1 M9 50 AuxOut1
M2 102 MainOut2 M10 51 AuxOut2
M3 103 MainOut3 M11 52 AuxOut3
M4 104 MainOut4 M12 53 AuxOut4
M5 105 MainOut5 M13 54 AuxOut5
M6 106 MainOut6 M14 55 AuxOut6
M7 107 MainOut7 M15 56
M8 108 MainOut8 M16 57 BB Blue GPo pin 3
FCU CAP 58
+ +## Battery Monitoring +The X6 flight controller has two six-pin power connectors, supporting CAN interface power supply. +These are set by default in the firmware and shouldn't need to be adjusted. + +## Compass +The X6 flight controller built-in industrial-grade electronic compass chip RM3100. + +## Analog inputs +The X6 flight controller has 2 analog inputs. +- ADC Pin12 -> ADC 6.6V Sense +- ADC Pin13 -> ADC 3.3V Sense +- RSSI input pin = 103 + +## 5V PWM Voltage  +The X6 flight controller supports switching between 5V and 3.3V PWM levels. Switch PWM output pulse level by configuring parameter BRD_PWM_VOL_SEL. 0 for 3.3V and 1 for 5V output. + +## Where to Buy +https://www.01aero.cn diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/ZeroOneX6Pinout.jpg b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/ZeroOneX6Pinout.jpg new file mode 100644 index 0000000000..568a6686c5 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/ZeroOneX6Pinout.jpg differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/defaults.parm new file mode 100644 index 0000000000..ffd8b6947c --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/defaults.parm @@ -0,0 +1,5 @@ +CAN_P1_DRIVER 1 +CAN_P2_DRIVER 1 + +BATT_MONITOR 8 +GPS1_TYPE 9 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/hwdef-bl.dat new file mode 100644 index 0000000000..0df8267ef4 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/hwdef-bl.dat @@ -0,0 +1,106 @@ +# hw definition file for processing by chibios_hwdef.py +# for the ZeroOneX6 hardware + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# board ID for firmware load +APJ_BOARD_ID 5600 + +# bootloader is installed at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 128 + +# flash size +FLASH_SIZE_KB 2048 + +env OPTIMIZE -Os + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 UART7 UART5 USART3 + +# Pin for PWM Voltage Selection +PG6 PWM_VOLT_SEL OUTPUT HIGH GPIO(3) + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PA9 VBUS INPUT OPENDRAIN + +# pins for SWD debugging +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# CS pins +PI9 IMU1_CS CS +PH5 ICM42688_CS CS +PI4 BMI088_A_CS CS +PI8 BMI088_G_CS CS +PH15 BMM150_CS CS +PG7 FRAM_CS CS +PI10 EXT1_CS CS + +# telem1 +PE8 UART7_TX UART7 +PF6 UART7_RX UART7 + +# telem2 +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 + +# debug uart +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 + +# armed indication +PE6 nARMED OUTPUT HIGH + +# start peripheral power off +PF12 nVDD_5V_HIPOWER_EN OUTPUT HIGH +PG4 nVDD_5V_PERIPH_EN OUTPUT HIGH + +# LEDs +PE3 LED_ACTIVITY OUTPUT OPENDRAIN HIGH # red +PE5 LED_BOOTLOADER OUTPUT OPENDRAIN HIGH # blue +define HAL_LED_ON 0 + +define HAL_USE_EMPTY_STORAGE 1 +define HAL_STORAGE_SIZE 16384 + +# enable DFU by default +ENABLE_DFU_BOOT 1 + +# support flashing from SD card: +# power enable pins +PC13 VDD_3V3_SD_CARD_EN OUTPUT HIGH + +# FATFS support: +define CH_CFG_USE_MEMCORE 1 +define CH_CFG_USE_HEAP 1 +define CH_CFG_USE_SEMAPHORES 0 +define CH_CFG_USE_MUTEXES 1 +define CH_CFG_USE_DYNAMIC 1 +define CH_CFG_USE_WAITEXIT 1 +define CH_CFG_USE_REGISTRY 1 + +# microSD support +PD6 SDMMC2_CK SDMMC2 +PD7 SDMMC2_CMD SDMMC2 +PB14 SDMMC2_D0 SDMMC2 +PB15 SDMMC2_D1 SDMMC2 +PG11 SDMMC2_D2 SDMMC2 +PB4 SDMMC2_D3 SDMMC2 +define FATFS_HAL_DEVICE SDCD2 + +DMA_PRIORITY SDMMC* USART6* ADC* UART* USART* SPI* TIM* + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +define AP_BOOTLOADER_FLASH_FROM_SD_ENABLED 1 + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/hwdef.dat new file mode 100644 index 0000000000..4473816a1b --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/ZeroOneX6/hwdef.dat @@ -0,0 +1,343 @@ +# hw definition file for processing by chibios_hwdef.py +# for the ZeroOne X6 hardware + +# default to all pins low to avoid ESD issues +DEFAULTGPIO OUTPUT LOW PULLDOWN + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# ChibiOS system timer +STM32_ST_USE_TIMER 2 + +# board ID for firmware load +APJ_BOARD_ID 5600 + +FLASH_RESERVE_START_KB 128 + +# to be compatible with the px4 bootloader we need +# to use a different RAM_MAP +env USE_ALT_RAM_MAP 1 + +# flash size +FLASH_SIZE_KB 2048 + +# supports upto 8MBits/s +CANFD_SUPPORTED 8 + +env OPTIMIZE -O2 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 UART7 UART5 USART1 UART8 USART2 UART4 USART3 OTG2 + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PA9 VBUS INPUT OPENDRAIN + +# pins for SWD debugging +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# telem1 +PE8 UART7_TX UART7 +PF6 UART7_RX UART7 +PF8 UART7_RTS UART7 +PE10 UART7_CTS UART7 + +# telem2 +PC8 UART5_RTS UART5 +PC9 UART5_CTS UART5 +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 + +# telem3 +PA3 USART2_RX USART2 +PD5 USART2_TX USART2 +PD3 USART2_CTS USART2 +PD4 USART2_RTS USART2 +#define DEFAULT_SERIAL5_PROTOCOL SerialProtocol_MAVLink2 + +# GPS1 +PB6 USART1_TX USART1 +PB7 USART1_RX USART1 + +# GPS2 +PE0 UART8_RX UART8 +PE1 UART8_TX UART8 + +# uart4 +PH13 UART4_TX UART4 +PH14 UART4_RX UART4 + +# debug uart +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 + +# USART6 is for IOMCU +PC6 USART6_TX USART6 +PC7 USART6_RX USART6 +IOMCU_UART USART6 + +# Ethernet +PC1 ETH_MDC ETH1 +PA2 ETH_MDIO ETH1 +PC4 ETH_RMII_RXD0 ETH1 +PC5 ETH_RMII_RXD1 ETH1 +PG13 ETH_RMII_TXD0 ETH1 +PG12 ETH_RMII_TXD1 ETH1 +PB11 ETH_RMII_TX_EN ETH1 +PA7 ETH_RMII_CRS_DV ETH1 +PA1 ETH_RMII_REF_CLK ETH1 +#PG15 ETH_POWER_EN ETH1 + +PG15 Ethernet_PWR_EN OUTPUT HIGH # disable power on ethernet + +define BOARD_PHY_ID MII_LAN8742A_ID +define BOARD_PHY_RMII + +# ADC +PA0 SCALED1_V3V3 ADC1 SCALE(2) +PA4 SCALED2_V3V3 ADC1 SCALE(2) +PB0 SCALED3_V3V3 ADC1 SCALE(2) +PF12 SCALED4_V3V3 ADC1 SCALE(2) + +PB1 VDD_5V_SENS ADC1 SCALE(2) + +# pin7 on AD&IO, analog 12 +PC2 ADC1_6V6 ADC1 SCALE(2) + +# pin6 on AD&IO, analog 13 +PC3 ADC1_3V3 ADC1 SCALE(1) + +# SPI1 - IMU3 ICM45686 +PA5 SPI1_SCK SPI1 +PB5 SPI1_MOSI SPI1 +PG9 SPI1_MISO SPI1 +PI9 SP1_CS1 CS + +# SPI2 -IMU1 ICM45686 +PI1 SPI2_SCK SPI2 +PI2 SPI2_MISO SPI2 +PI3 SPI2_MOSI SPI2 +PH5 SP2_CS1 CS +PA10 SP2_DRDY2 INPUT + +# SPI3 -IMU2 BMI088 +PB2 SPI3_MOSI SPI3 +PC10 SPI3_SCK SPI3 +PC11 SPI3_MISO SPI3 +PI4 SP3_CS1 CS +PI8 SP3_CS2 CS +PI6 SP3_DRDY1 INPUT +PI7 SP3_DRDY2 INPUT GPIO(93) +define SP3_DRDY2 93 + +# SPI4 - unused +#PE12 SPI4_SCK SPI4 +#PE13 SPI4_MISO SPI4 +#PE14 SPI4_MOSI SPI4 +#PF3 SP4_DRDY1 INPUT +PH15 SP4_CS1 CS + +# SPI5 - FRAM +PF7 SPI5_SCK SPI5 +PH7 SPI5_MISO SPI5 +PF11 SPI5_MOSI SPI5 +PG7 FRAM_CS CS + +# SPI6 - external1 (disabled to save DMA channels) +# PB3 SPI6_SCK SPI6 +# PA6 SPI6_MISO SPI6 +# PG14 SPI6_MOSI SPI6 +# PI10 EXT1_CS CS + +# PWM output pins +PI0 TIM5_CH4 TIM5 PWM(1) GPIO(50) +PH12 TIM5_CH3 TIM5 PWM(2) GPIO(51) +PH11 TIM5_CH2 TIM5 PWM(3) GPIO(52) +PH10 TIM5_CH1 TIM5 PWM(4) GPIO(53) +PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) +PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55) + +# Pin for PWM Voltage Selection, 0 means 3.3v, 1 means 5v +PG6 PWM_VOLT_SEL OUTPUT HIGH GPIO(3) +define HAL_GPIO_PWM_VOLT_PIN 3 +define HAL_GPIO_PWM_VOLT_3v3 0 + +# we need to disable DMA on the last 2 FMU channels +# as timer 12 doesn't have a TIMn_UP DMA option +PH6 TIM12_CH1 TIM12 PWM(7) GPIO(56) NODMA +PH9 TIM12_CH2 TIM12 PWM(8) GPIO(57) NODMA + +# GPIOs +PE11 FMU_CAP1 INPUT GPIO(58) +PC0 NFC_GPIO INPUT GPIO(60) + +# CAN bus +PD0 CAN1_RX CAN1 +PD1 CAN1_TX CAN1 + +PB12 CAN2_RX CAN2 +PB13 CAN2_TX CAN2 + +# I2C buses + +# I2C1, GPS+MAG +PB9 I2C1_SDA I2C1 +PB8 I2C1_SCL I2C1 + +# I2C2, GPS2+MAG +PF1 I2C2_SCL I2C2 +PF0 I2C2_SDA I2C2 +PG5 DRDY1_BMP388 INPUT + +# I2C3, MS5611, external +PA8 I2C3_SCL I2C3 +PH8 I2C3_SDA I2C3 + +# I2C4 internal +PF14 I2C4_SCL I2C4 +PF15 I2C4_SDA I2C4 + +# order of I2C buses +I2C_ORDER I2C4 I2C1 I2C2 I2C3 +define HAL_I2C_INTERNAL_MASK 1 + +# heater +PB10 HEATER_EN OUTPUT LOW GPIO(80) +define HAL_HEATER_GPIO_PIN 80 + +# Setup the IMU heater +define HAL_HAVE_IMU_HEATER 1 +define HAL_IMU_TEMP_DEFAULT 45 +define HAL_IMUHEAT_P_DEFAULT 50 +define HAL_IMUHEAT_I_DEFAULT 0.07 + +# armed indication +PE6 nARMED OUTPUT HIGH + +# power enable pins +PC13 VDD_3V3_SD_CARD_EN OUTPUT HIGH +PI11 VDD_3V3_SENSORS1_EN OUTPUT HIGH +PF4 VDD_3V3_SENSORS2_EN OUTPUT HIGH +PE7 VDD_3V3_SENSORS3_EN OUTPUT HIGH +PG8 VDD_3V3_SENSORS4_EN OUTPUT HIGH + +# start peripheral power on +PG10 nVDD_5V_HIPOWER_EN OUTPUT LOW +PG4 nVDD_5V_PERIPH_EN OUTPUT LOW + +# Control of Spektrum power pin +PH2 SPEKTRUM_PWR OUTPUT HIGH GPIO(73) +define HAL_GPIO_SPEKTRUM_PWR 73 + +# Spektrum Power is Active High +define HAL_SPEKTRUM_PWR_ENABLED 1 + +# power sensing +PE15 VDD_5V_PERIPH_nOC INPUT PULLUP +PF13 VDD_5V_HIPOWER_nOC INPUT PULLUP + +PG1 VDD_BRICK_nVALID INPUT PULLUP +PG2 VDD_BRICK2_nVALID INPUT PULLUP +PG3 VDD_BRICK3_nVALID INPUT PULLUP + +# microSD support +PD6 SDMMC2_CK SDMMC2 +PD7 SDMMC2_CMD SDMMC2 +PB14 SDMMC2_D0 SDMMC2 +PB15 SDMMC2_D1 SDMMC2 +PG11 SDMMC2_D2 SDMMC2 +PB4 SDMMC2_D3 SDMMC2 +define FATFS_HAL_DEVICE SDCD2 + +# safety +PD10 LED_SAFETY OUTPUT +PF5 SAFETY_IN INPUT PULLDOWN + +# GPIO LEDs +PE3 LED_RED OUTPUT OPENDRAIN GPIO(90) HIGH +PE4 LED_GREEN OUTPUT OPENDRAIN GPIO(91) HIGH +PE5 LED_BLUE OUTPUT OPENDRAIN GPIO(92) HIGH + +define HAL_GPIO_A_LED_PIN 90 +define HAL_GPIO_B_LED_PIN 91 +define HAL_GPIO_C_LED_PIN 92 + +define HAL_HAVE_PIXRACER_LED + +# ID pins +PG0 HW_VER_REV_DRIVE OUTPUT LOW +# PH3 HW_VER_SENS ADC3 SCALE(1) +# PH4 HW_REV_SENS ADC3 SCALE(1) + +# PWM output for buzzer +PF9 TIM14_CH1 TIM14 GPIO(77) ALARM + +# RC input +PI5 TIM8_CH1 TIM8 RCININT PULLDOWN LOW + +# barometers (ZeroOne X6) +BARO ICP201XX I2C:0:0x64 +BARO ICP201XX I2C:2:0x63 + +# compass +define HAL_PROBE_EXTERNAL_I2C_COMPASSES + +# builtin compass on ZeroOne X6 +COMPASS RM3100 I2C:0:0x20 false ROTATION_PITCH_180 + +# compensate for magnetic field generated by the heater on ZeroOne X6 RM3100 +define HAL_HEATER_MAG_OFFSET_RM3100 AP_HAL::Device::make_bus_id(AP_HAL::Device::BUS_TYPE_I2C,0,0x20,0x11),Vector3f(0,0,0) + +#define HAL_HEATER_MAG_OFFSET HAL_HEATER_MAG_OFFSET_RM3100 + +# IMU devices for ZeroOne X6 +SPIDEV icm45686_1 SPI2 DEVID1 SP2_CS1 MODE3 2*MHZ 16*MHZ +SPIDEV bmi088_g SPI3 DEVID1 SP3_CS2 MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_a SPI3 DEVID2 SP3_CS1 MODE3 10*MHZ 10*MHZ +SPIDEV icm45686_2 SPI1 DEVID1 SP1_CS1 MODE3 2*MHZ 16*MHZ + +SPIDEV ramtron SPI5 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ + +# ZeroOne X6 3 IMUs +IMU Invensensev3 SPI:icm45686_1 ROTATION_ROLL_180_YAW_270 +IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_180 +IMU Invensensev3 SPI:icm45686_2 ROTATION_NONE + +define HAL_INS_HIGHRES_SAMPLE 7 +define HAL_DEFAULT_INS_FAST_SAMPLE 7 + +# enable RAMTROM parameter storage +define HAL_STORAGE_SIZE 32768 +define HAL_WITH_RAMTRON 1 + +# allow to have have a dedicated safety switch pin +define HAL_HAVE_SAFETY_SWITCH 1 + +DMA_PRIORITY TIM5* TIM4* SPI1* SPI2* SPI3* SDMMC* USART6* ADC* UART* USART* + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_f103_lowpolh.bin + +# enable DFU reboot for installing bootloader +# note that if firmware is build with --secure-bl then DFU is +# disabled +ENABLE_DFU_BOOT 1 + +# build ABIN for flash-from-bootloader support: +env BUILD_ABIN True + +# enable support for dshot on iomcu +#github suggestion +ROMFS io_firmware_dshot.bin Tools/IO_Firmware/iofirmware_dshot_highpolh.bin +define HAL_WITH_IO_MCU_DSHOT 1 +#V6X +#ROMFS io_firmware_dshot.bin Tools/IO_Firmware/iofirmware_f103_dshot_lowpolh.bin +#define HAL_WITH_IO_MCU_BIDIR_DSHOT 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/common/stm32h7_mcuconf.h b/libraries/AP_HAL_ChibiOS/hwdef/common/stm32h7_mcuconf.h index aeae4a3f7b..8fe0066cc1 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/common/stm32h7_mcuconf.h +++ b/libraries/AP_HAL_ChibiOS/hwdef/common/stm32h7_mcuconf.h @@ -85,6 +85,8 @@ #define STM32_PWR_CR2 (PWR_CR2_BREN) #ifdef SMPS_PWR #define STM32_PWR_CR3 (PWR_CR3_SMPSEN | PWR_CR3_USB33DEN) +#elif defined(SMPS_EXT) +#define STM32_PWR_CR3 (PWR_CR3_BYPASS | PWR_CR3_USB33DEN) #else #define STM32_PWR_CR3 (PWR_CR3_LDOEN | PWR_CR3_USB33DEN) #endif diff --git a/libraries/AP_IOMCU/AP_IOMCU.cpp b/libraries/AP_IOMCU/AP_IOMCU.cpp index 96c1c04549..8107f737af 100644 --- a/libraries/AP_IOMCU/AP_IOMCU.cpp +++ b/libraries/AP_IOMCU/AP_IOMCU.cpp @@ -1360,6 +1360,12 @@ void AP_IOMCU::set_GPIO_mask(uint8_t mask) trigger_event(IOEVENT_GPIO); } +// Get GPIO mask of channels setup for output +uint8_t AP_IOMCU::get_GPIO_mask() const +{ + return GPIO.channel_mask; +} + // write to a output pin void AP_IOMCU::write_GPIO(uint8_t pin, bool value) { @@ -1377,6 +1383,17 @@ void AP_IOMCU::write_GPIO(uint8_t pin, bool value) trigger_event(IOEVENT_GPIO); } +// Read the last output value send to the GPIO pin +// This is not a real read of the actual pin +// This allows callers to check for state change +uint8_t AP_IOMCU::read_virtual_GPIO(uint8_t pin) const +{ + if (!convert_pin_number(pin)) { + return 0; + } + return (GPIO.output_mask & (1U << pin)) != 0; +} + // toggle a output pin void AP_IOMCU::toggle_GPIO(uint8_t pin) { diff --git a/libraries/AP_IOMCU/AP_IOMCU.h b/libraries/AP_IOMCU/AP_IOMCU.h index 5199c5fb3d..5092bf26fa 100644 --- a/libraries/AP_IOMCU/AP_IOMCU.h +++ b/libraries/AP_IOMCU/AP_IOMCU.h @@ -157,9 +157,17 @@ class AP_IOMCU // set GPIO mask of channels setup for output void set_GPIO_mask(uint8_t mask); + // Get GPIO mask of channels setup for output + uint8_t get_GPIO_mask() const; + // write to a output pin void write_GPIO(uint8_t pin, bool value); + // Read the last output value send to the GPIO pin + // This is not a real read of the actual pin + // This allows callers to check for state change + uint8_t read_virtual_GPIO(uint8_t pin) const; + // toggle a output pin void toggle_GPIO(uint8_t pin); diff --git a/libraries/AP_InertialSensor/AP_InertialSensor.cpp b/libraries/AP_InertialSensor/AP_InertialSensor.cpp index afb4df645c..b0bc11aaca 100644 --- a/libraries/AP_InertialSensor/AP_InertialSensor.cpp +++ b/libraries/AP_InertialSensor/AP_InertialSensor.cpp @@ -734,6 +734,14 @@ bool AP_InertialSensor::register_gyro(uint8_t &instance, uint16_t raw_sample_rat return false; } + // Loop over the existing instances and check if the instance already exists + for (uint8_t instance_to_check = 0; instance_to_check < _gyro_count; instance_to_check++) { + if ((uint32_t)_gyro_id(instance_to_check) == id) { + // if it does, then bail + return false; + } + } + _gyro_raw_sample_rates[_gyro_count] = raw_sample_rate_hz; _gyro_over_sampling[_gyro_count] = 1; _gyro_raw_sampling_multiplier[_gyro_count] = INT16_MAX/radians(2000); @@ -794,6 +802,14 @@ bool AP_InertialSensor::register_accel(uint8_t &instance, uint16_t raw_sample_ra return false; } + // Loop over the existing instances and check if the instance already exists + for (uint8_t instance_to_check = 0; instance_to_check < _accel_count; instance_to_check++) { + if ((uint32_t)_accel_id(instance_to_check) == id) { + // if it does, then bail + return false; + } + } + _accel_raw_sample_rates[_accel_count] = raw_sample_rate_hz; _accel_over_sampling[_accel_count] = 1; _accel_raw_sampling_multiplier[_accel_count] = INT16_MAX/(16*GRAVITY_MSS); diff --git a/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp b/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp index ef5062cb93..3b7201876b 100644 --- a/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp +++ b/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp @@ -526,6 +526,7 @@ void AP_InertialSensor::get_persistent_params(ExpandingString &str) const str.printf("INS%u_ACCOFFS_Z=%f\n", imu, aoff.z); str.printf("INS%u_ACCSCAL_X=%f\n", imu, ascl.x); str.printf("INS%u_ACCSCAL_Y=%f\n", imu, ascl.y); + str.printf("INS%u_ACCSCAL_Z=%f\n", imu, ascl.z); str.printf("INS%u_ACC_CALTEMP=%.2f\n", imu, params[i].caltemp_accel.get()); } #endif diff --git a/libraries/AP_Logger/AP_Logger_Block.cpp b/libraries/AP_Logger/AP_Logger_Block.cpp index a06e07bcaf..f766a66693 100644 --- a/libraries/AP_Logger/AP_Logger_Block.cpp +++ b/libraries/AP_Logger/AP_Logger_Block.cpp @@ -205,7 +205,7 @@ uint16_t AP_Logger_Block::ReadHeaders() // we are at the start of a file, read the file header if (df_FilePage == 1) { struct FileHeader fh; - BlockRead(0, &fh, sizeof(fh)); + BlockRead(sizeof(ph), &fh, sizeof(fh)); df_FileTime = fh.utc_secs; df_Read_BufferIdx += sizeof(fh); } diff --git a/libraries/AP_Logger/AP_Logger_File.h b/libraries/AP_Logger/AP_Logger_File.h index 07709d3e93..038324e92e 100644 --- a/libraries/AP_Logger/AP_Logger_File.h +++ b/libraries/AP_Logger/AP_Logger_File.h @@ -72,7 +72,7 @@ class AP_Logger_File : public AP_Logger_Backend char *_write_filename; bool last_log_is_marked_discard; uint32_t _last_write_ms; -#if AP_RTC_ENABLED +#if AP_RTC_ENABLED && CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS bool _need_rtc_update; #endif diff --git a/libraries/AP_MSP/AP_MSP_Telem_DJI.cpp b/libraries/AP_MSP/AP_MSP_Telem_DJI.cpp index bafa921bd0..f01bf7b0be 100644 --- a/libraries/AP_MSP/AP_MSP_Telem_DJI.cpp +++ b/libraries/AP_MSP/AP_MSP_Telem_DJI.cpp @@ -91,7 +91,7 @@ MSPCommandResult AP_MSP_Telem_DJI::msp_process_out_esc_sensor_data(sbuf_t *dst) int16_t highest_temperature = 0; AP_ESC_Telem& telem = AP::esc_telem(); if (!displaying_stats_screen()) { - telem.get_highest_motor_temperature(highest_temperature); + telem.get_highest_temperature(highest_temperature); } else { #if OSD_ENABLED AP_OSD *osd = AP::osd(); diff --git a/libraries/AP_Mount/AP_Mount_Siyi.h b/libraries/AP_Mount/AP_Mount_Siyi.h index 50caf9ba98..381b18b86e 100644 --- a/libraries/AP_Mount/AP_Mount_Siyi.h +++ b/libraries/AP_Mount/AP_Mount_Siyi.h @@ -209,7 +209,7 @@ class AP_Mount_Siyi : public AP_Mount_Backend GimbalMountingDirection mounting_dir; VideoOutputStatus video_mode; } GimbalConfigInfo; - static_assert(sizeof(GimbalConfigInfo) == 7); + static_assert(sizeof(GimbalConfigInfo) == 7, "GimbalConfigInfo must be 7 bytes"); // camera image types (aka lens) enum class CameraImageType : uint8_t { diff --git a/libraries/AP_Mount/AP_Mount_Xacti.h b/libraries/AP_Mount/AP_Mount_Xacti.h index fc4b20db03..31a6684023 100644 --- a/libraries/AP_Mount/AP_Mount_Xacti.h +++ b/libraries/AP_Mount/AP_Mount_Xacti.h @@ -256,7 +256,7 @@ class AP_Mount_Xacti : public AP_Mount_Backend uint16_t apeture; // cameras' aperture * 100 uint16_t iso_sensitivity; // camera's iso sensitivity } _status; // latest status received - static_assert(sizeof(_status) == 48); // status should be 48 bytes + static_assert(sizeof(_status) == 48, "status must be 48 bytes"); // status should be 48 bytes struct { uint32_t last_request_ms; // system time that status was last requested uint32_t last_error_status; // last error status reported to user diff --git a/libraries/AP_OSD/AP_OSD.cpp b/libraries/AP_OSD/AP_OSD.cpp index 2544776fc9..8de15370b9 100644 --- a/libraries/AP_OSD/AP_OSD.cpp +++ b/libraries/AP_OSD/AP_OSD.cpp @@ -488,7 +488,7 @@ void AP_OSD::update_stats() // max esc temp AP_ESC_Telem& telem = AP::esc_telem(); int16_t highest_temperature = 0; - telem.get_highest_motor_temperature(highest_temperature); + telem.get_highest_temperature(highest_temperature); _stats.max_esc_temp = MAX(_stats.max_esc_temp, highest_temperature); #endif } diff --git a/libraries/AP_OSD/AP_OSD_Screen.cpp b/libraries/AP_OSD/AP_OSD_Screen.cpp index 96a5ead301..e7c7a3f26a 100644 --- a/libraries/AP_OSD/AP_OSD_Screen.cpp +++ b/libraries/AP_OSD/AP_OSD_Screen.cpp @@ -2003,11 +2003,11 @@ void AP_OSD_Screen::draw_esc_temp(uint8_t x, uint8_t y) int16_t etemp; if (esc_index > 0) { - if (!AP::esc_telem().get_motor_temperature(esc_index-1, etemp)) { + if (!AP::esc_telem().get_temperature(esc_index-1, etemp)) { return; } } - else if (!AP::esc_telem().get_highest_motor_temperature(etemp)) { + else if (!AP::esc_telem().get_highest_temperature(etemp)) { return; } diff --git a/libraries/AP_Param/AP_Param.cpp b/libraries/AP_Param/AP_Param.cpp index a9d21710db..eb155ef7c5 100644 --- a/libraries/AP_Param/AP_Param.cpp +++ b/libraries/AP_Param/AP_Param.cpp @@ -972,7 +972,6 @@ AP_Param::find_by_index(uint16_t idx, enum ap_var_type *ptype, ParamToken *token AP_Param* AP_Param::find_by_name(const char* name, enum ap_var_type *ptype, ParamToken *token) { AP_Param *ap; - uint16_t count = 0; for (ap = AP_Param::first(token, ptype); ap && *ptype != AP_PARAM_GROUP && *ptype != AP_PARAM_NONE; ap = AP_Param::next_scalar(token, ptype)) { @@ -984,7 +983,6 @@ AP_Param* AP_Param::find_by_name(const char* name, enum ap_var_type *ptype, Para break; } } - count++; } return ap; } diff --git a/libraries/AP_RCProtocol/AP_RCProtocol_Backend.cpp b/libraries/AP_RCProtocol/AP_RCProtocol_Backend.cpp index 7c61f5355d..75e84ade9a 100644 --- a/libraries/AP_RCProtocol/AP_RCProtocol_Backend.cpp +++ b/libraries/AP_RCProtocol/AP_RCProtocol_Backend.cpp @@ -181,7 +181,7 @@ void AP_RCProtocol_Backend::log_data(AP_RCProtocol::rcprotocol_t prot, uint32_t #if HAL_LOGGING_ENABLED && AP_RC_CHANNEL_ENABLED #if (CONFIG_HAL_BOARD == HAL_BOARD_SITL || CONFIG_HAL_BOARD == HAL_BOARD_LINUX) - if (&rc() == nullptr) { // allow running without RC_Channels if we are doing the examples + if (RC_Channels::get_singleton() == nullptr) { // allow running without RC_Channels if we are doing the examples return; } #endif diff --git a/libraries/AP_RCProtocol/AP_RCProtocol_GHST.h b/libraries/AP_RCProtocol/AP_RCProtocol_GHST.h index 248fb3f179..8b439c97c3 100644 --- a/libraries/AP_RCProtocol/AP_RCProtocol_GHST.h +++ b/libraries/AP_RCProtocol/AP_RCProtocol_GHST.h @@ -180,7 +180,6 @@ class AP_RCProtocol_GHST : public AP_RCProtocol_Backend { uint32_t _last_frame_time_us; uint32_t _last_tx_frame_time_us; - uint32_t _last_uart_start_time_ms; uint32_t _last_rx_frame_time_us; uint32_t _start_frame_time_us; bool telem_available; diff --git a/libraries/AP_SmartRTL/AP_SmartRTL.h b/libraries/AP_SmartRTL/AP_SmartRTL.h index 144762e512..924637fed2 100644 --- a/libraries/AP_SmartRTL/AP_SmartRTL.h +++ b/libraries/AP_SmartRTL/AP_SmartRTL.h @@ -41,6 +41,9 @@ class AP_SmartRTL { // get a point on the path const Vector3f& get_point(uint16_t index) const { return _path[index]; } + // add point to end of path. returns true on success, false on failure (due to failure to take the semaphore) + bool add_point(const Vector3f& point); + // get next point on the path to home, returns true on success bool pop_point(Vector3f& point); @@ -109,9 +112,6 @@ class AP_SmartRTL { IgnorePilotYaw = (1U << 2), }; - // add point to end of path - bool add_point(const Vector3f& point); - // routine cleanup attempts to remove 10 points (see SMARTRTL_CLEANUP_POINT_MIN definition) by simplification or loop pruning void routine_cleanup(uint16_t path_points_count, uint16_t path_points_complete_limit); diff --git a/libraries/SITL/SIM_GPS.cpp b/libraries/SITL/SIM_GPS.cpp index 53f858a946..9ecb13dcce 100644 --- a/libraries/SITL/SIM_GPS.cpp +++ b/libraries/SITL/SIM_GPS.cpp @@ -457,10 +457,9 @@ GPS_Data GPS::interpolate_data(const GPS_Data &d, uint32_t delay_ms) return _gps_history[N-1]; } -float GPS_Data::heading() const +float GPS_Data::ground_track_rad() const { - const auto velocity = Vector2d{speedE, speedN}; - return velocity.angle(); + return atan2f(speedE, speedN); } float GPS_Data::speed_2d() const diff --git a/libraries/SITL/SIM_GPS.h b/libraries/SITL/SIM_GPS.h index 87eafb00c4..71b8cd8298 100644 --- a/libraries/SITL/SIM_GPS.h +++ b/libraries/SITL/SIM_GPS.h @@ -49,8 +49,9 @@ struct GPS_Data { float speed_acc; uint8_t num_sats; - // Get heading [rad], where 0 = North in WGS-84 coordinate system - float heading() const WARN_IF_UNUSED; + // Get course over ground [rad], where 0 = North in WGS-84 coordinate system. + // Calculated from 2D velocity. + float ground_track_rad() const WARN_IF_UNUSED; // Get 2D speed [m/s] in WGS-84 coordinate system float speed_2d() const WARN_IF_UNUSED; diff --git a/libraries/SITL/SIM_GPS_NMEA.cpp b/libraries/SITL/SIM_GPS_NMEA.cpp index 161f0ef0f0..0cfd0c6a5f 100644 --- a/libraries/SITL/SIM_GPS_NMEA.cpp +++ b/libraries/SITL/SIM_GPS_NMEA.cpp @@ -78,13 +78,13 @@ void GPS_NMEA::publish(const GPS_Data *d) const float speed_mps = d->speed_2d(); const float speed_knots = speed_mps * M_PER_SEC_TO_KNOTS; - const auto heading_rad = d->heading(); + const auto ground_track_deg = degrees(d->ground_track_rad()); //$GPVTG,133.18,T,120.79,M,0.11,N,0.20,K,A*24 nmea_printf("$GPVTG,%.2f,T,%.2f,M,%.2f,N,%.2f,K,A", tstring, - heading_rad, - heading_rad, + ground_track_deg, + ground_track_deg, speed_knots, speed_knots * KNOTS_TO_METERS_PER_SECOND * 3.6); @@ -94,7 +94,7 @@ void GPS_NMEA::publish(const GPS_Data *d) lat_string, lng_string, speed_knots, - heading_rad, + ground_track_deg, dstring); if (_sitl->gps_hdg_enabled[instance] == SITL::SIM::GPS_HEADING_HDT) { @@ -111,7 +111,7 @@ void GPS_NMEA::publish(const GPS_Data *d) d->altitude, wrap_360(d->yaw_deg), d->pitch_deg, - heading_rad, + ground_track_deg, speed_mps, d->roll_deg, d->have_lock?1:0, // 2=rtkfloat 3=rtkfixed, diff --git a/libraries/SITL/SIM_GPS_SBP.cpp b/libraries/SITL/SIM_GPS_SBP.cpp index b3b8e77d89..9f4c8078e8 100644 --- a/libraries/SITL/SIM_GPS_SBP.cpp +++ b/libraries/SITL/SIM_GPS_SBP.cpp @@ -111,6 +111,7 @@ void GPS_SBP::publish(const GPS_Data *d) sbp_send_message(SBP_DOPS_MSGTYPE, 0x2222, sizeof(dops), (uint8_t*)&dops); + hb = {}; hb.protocol_major = 0; //Sends protocol version 0 sbp_send_message(SBP_HEARTBEAT_MSGTYPE, 0x2222, sizeof(hb), (uint8_t*)&hb); diff --git a/libraries/SITL/SIM_GPS_Trimble.cpp b/libraries/SITL/SIM_GPS_Trimble.cpp index 9ddaf64027..9bb3edd541 100644 --- a/libraries/SITL/SIM_GPS_Trimble.cpp +++ b/libraries/SITL/SIM_GPS_Trimble.cpp @@ -98,7 +98,7 @@ void GPS_Trimble::publish(const GPS_Data *d) pos_flags_2, bootcount }; - static_assert(sizeof(gsof_pos_time) - (sizeof(gsof_pos_time::OUTPUT_RECORD_TYPE) + sizeof(gsof_pos_time::RECORD_LEN)) == GSOF_POS_TIME_LEN); + static_assert(sizeof(gsof_pos_time) - (sizeof(gsof_pos_time::OUTPUT_RECORD_TYPE) + sizeof(gsof_pos_time::RECORD_LEN)) == GSOF_POS_TIME_LEN, "Trimble size check failed"); payload_sz += sizeof(pos_time); memcpy(&buf[offset], &pos_time, sizeof(pos_time)); @@ -127,7 +127,7 @@ void GPS_Trimble::publish(const GPS_Data *d) gsof_pack_double(d->longitude * DEG_TO_RAD_DOUBLE), gsof_pack_double(static_cast(d->altitude)) }; - static_assert(sizeof(gsof_pos) - (sizeof(gsof_pos::OUTPUT_RECORD_TYPE) + sizeof(gsof_pos::RECORD_LEN)) == GSOF_POS_LEN); + static_assert(sizeof(gsof_pos) - (sizeof(gsof_pos::OUTPUT_RECORD_TYPE) + sizeof(gsof_pos::RECORD_LEN)) == GSOF_POS_LEN, "Trimble size check failed"); payload_sz += sizeof(pos); memcpy(&buf[offset], &pos, sizeof(pos)); @@ -175,12 +175,12 @@ void GPS_Trimble::publish(const GPS_Data *d) GSOF_VEL_LEN, vel_flags, gsof_pack_float(d->speed_2d()), - gsof_pack_float(d->heading()), + gsof_pack_float(d->ground_track_rad()), // Trimble API has ambiguous direction here. // Intentionally narrow from double. gsof_pack_float(static_cast(d->speedD)) }; - static_assert(sizeof(gsof_vel) - (sizeof(gsof_vel::OUTPUT_RECORD_TYPE) + sizeof(gsof_vel::RECORD_LEN)) == GSOF_VEL_LEN); + static_assert(sizeof(gsof_vel) - (sizeof(gsof_vel::OUTPUT_RECORD_TYPE) + sizeof(gsof_vel::RECORD_LEN)) == GSOF_VEL_LEN, "Trimble size check failed"); payload_sz += sizeof(vel); memcpy(&buf[offset], &vel, sizeof(vel)); @@ -204,13 +204,13 @@ void GPS_Trimble::publish(const GPS_Data *d) } dop {}; // Check the payload size calculation in the compiler constexpr auto dop_size = sizeof(gsof_dop); - static_assert(dop_size == 18); + static_assert(dop_size == 18, "gsof_dop must be 8 bytes"); constexpr auto dop_record_type_size = sizeof(gsof_dop::OUTPUT_RECORD_TYPE); - static_assert(dop_record_type_size == 1); + static_assert(dop_record_type_size == 1, "gsof_dop::OUTPUT_RECORD_TYPE must be 1 byte"); constexpr auto len_size = sizeof(gsof_dop::RECORD_LEN); - static_assert(len_size == 1); + static_assert(len_size == 1, "gsof_dop::RECORD_LEN must be 1 bytes"); constexpr auto dop_payload_size = dop_size - (dop_record_type_size + len_size); - static_assert(dop_payload_size == GSOF_DOP_LEN); + static_assert(dop_payload_size == GSOF_DOP_LEN, "dop_payload_size must be GSOF_DOP_LEN bytes"); payload_sz += sizeof(dop); memcpy(&buf[offset], &dop, sizeof(dop)); @@ -237,7 +237,7 @@ void GPS_Trimble::publish(const GPS_Data *d) uint32_t unit_variance = htobe32(0); uint16_t n_epocs = htobe32(1); // Always 1 for kinematic. } pos_sigma {}; - static_assert(sizeof(gsof_pos_sigma) - (sizeof(gsof_pos_sigma::OUTPUT_RECORD_TYPE) + sizeof(gsof_pos_sigma::RECORD_LEN)) == GSOF_POS_SIGMA_LEN); + static_assert(sizeof(gsof_pos_sigma) - (sizeof(gsof_pos_sigma::OUTPUT_RECORD_TYPE) + sizeof(gsof_pos_sigma::RECORD_LEN)) == GSOF_POS_SIGMA_LEN, "Trimble size check failed"); payload_sz += sizeof(pos_sigma); memcpy(&buf[offset], &pos_sigma, sizeof(pos_sigma)); offset += sizeof(pos_sigma); @@ -536,7 +536,7 @@ void GPS_Trimble::send_gsof(const uint8_t *buf, const uint16_t size) uint64_t GPS_Trimble::gsof_pack_double(const double& src) { uint64_t dst; - static_assert(sizeof(src) == sizeof(dst)); + static_assert(sizeof(src) == sizeof(dst), "src and dst must have equal size"); memcpy(&dst, &src, sizeof(dst)); dst = htobe64(dst); return dst; @@ -545,7 +545,7 @@ uint64_t GPS_Trimble::gsof_pack_double(const double& src) uint32_t GPS_Trimble::gsof_pack_float(const float& src) { uint32_t dst; - static_assert(sizeof(src) == sizeof(dst)); + static_assert(sizeof(src) == sizeof(dst), "src and dst must have equal size"); memcpy(&dst, &src, sizeof(dst)); dst = htobe32(dst); return dst; diff --git a/libraries/SITL/SIM_InertialLabs.cpp b/libraries/SITL/SIM_InertialLabs.cpp index 728c7934f9..edaadf0b87 100644 --- a/libraries/SITL/SIM_InertialLabs.cpp +++ b/libraries/SITL/SIM_InertialLabs.cpp @@ -93,7 +93,7 @@ void InertialLabs::send_packet(void) pkt.gnss_extended_info.fix_type = 2; } - pkt.differential_pressure = 0.5*sq(fdm.airspeed+fabsf(rand_float()*0.25))*1.0e4; + pkt.differential_pressure = 0.5*sq(fdm.airspeed+fabsF(rand_float()*0.25))*1.0e4; pkt.supply_voltage = 12.3*100; pkt.temperature = 23.4*10; diff --git a/libraries/SITL/SIM_Loweheiser.h b/libraries/SITL/SIM_Loweheiser.h index ae4f28cdd7..edad99a556 100644 --- a/libraries/SITL/SIM_Loweheiser.h +++ b/libraries/SITL/SIM_Loweheiser.h @@ -117,12 +117,6 @@ class Loweheiser : public SerialDevice { const float max_current = 50.0f; const float base_supply_voltage = 50.0; - // we share channels with the ArduPilot binary! - // Beware: the mavlink rangefinder and other stuff shares this channel. - const mavlink_channel_t mavlink_ch = (mavlink_channel_t)(MAVLINK_COMM_0+5); - - class SIM *_sitl; - uint32_t last_sent_ms; void update_receive(); diff --git a/libraries/SITL/SIM_QMC5883L.h b/libraries/SITL/SIM_QMC5883L.h index 10aa171965..52346250b3 100644 --- a/libraries/SITL/SIM_QMC5883L.h +++ b/libraries/SITL/SIM_QMC5883L.h @@ -41,13 +41,11 @@ class QMC5883L : public I2CDevice } registers; // 256 1-byte registers: - assert_storage_size assert_storage_size_registers_reg; + assert_storage_size assert_storage_size_registers_reg UNUSED_PRIVATE_MEMBER; Bitmask<256> writable_registers; void reset(); - - uint32_t cmd_take_reading_received_ms; }; } // namespace SITL